/* ===================================================
   WebFlames - Main Stylesheet
   Brand Colors: #035A3E #02735E #038C3E #033B3E #0CF25D
   Fonts: Aquire (titles) | Roboto / Cairo (body)
   =================================================== */

@font-face {
    font-family: 'Gilgan Regular';
    src: url('../fonts/Gilgan-Regular.woff') format('woff');
    font-weight: 700;
    font-display: swap;
}

:root {
    --green-900: #033B3E;
    --green-800: #035A3E;
    --green-700: #02735E;
    --green-600: #038C3E;
    --green-500: #05a84d;
    --green-accent: #0CF25D;
    --green-glow: rgba(12,242,93,0.35);
    --green-glow-soft: rgba(12,242,93,0.12);

    --bg-darkest: #020e08;
    --bg-dark:    #041a10;
    --bg-mid:     #062416;
    --bg-card:    #0a2e1a;

    --white: #FFFFFF;
    --gray-100: #e8f5ee;
    --gray-200: #c5ddd0;
    --gray-300: #92b8a3;
    --gray-400: #6a9680;
    --gray-500: #6a9680; /* was #4a7060 (3.5:1, failed WCAG AA) */
    --gray-600: #2e4d3a;

    --gradient-primary: linear-gradient(245deg, #035A3E 0%, #0CF25D 100%);
    --gradient-accent:  linear-gradient(245deg, #0CF25D 0%, #02735E 100%);
    --gradient-accent2:  linear-gradient(245deg, #04843f 0%, #02654f 100%); /* white text ≥ 4.8:1 (WCAG AA) */
    --gradient-bright:   linear-gradient(245deg, #0CF25D 0%, #09cd51 100%); /* for dark text */
    --whatsapp-dark:     linear-gradient(135deg, #0a6b5f, #0b8457);       /* white text ≥ 4.7:1 */
    --gradient-dark:    linear-gradient(180deg, var(--bg-darkest) 0%, var(--bg-dark) 100%);

    --font-display: 'Gilgan Regular', 'Space Grotesk', sans-serif;
    --font-body:    'Roboto', 'Cairo', sans-serif;

    --section-padding: 120px;
    --container-max: 1280px;

    --t-fast: 0.2s ease;
    --t-base: 0.3s ease;
    --t-slow: 0.5s ease;

    --shadow-sm:   0 2px 8px rgba(0,0,0,0.2);
    --shadow-md:   0 8px 24px rgba(0,0,0,0.3);
    --shadow-lg:   0 16px 48px rgba(0,0,0,0.4);
    --shadow-glow: 0 0 40px rgba(12,242,93,0.25);

    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 20px;
    --r-xl: 32px;

    /* Used by services.css (contact page) and page inline CSS — were never defined */
    --text-primary:   #e8f5ec;
    --text-secondary: #b0c4b8;
    --text-muted:     #8a9a8e;
    --border-subtle:  rgba(12,242,93,0.12);
    --radius-md: var(--r-md);
    --radius-lg: var(--r-lg);
    --radius-xl: var(--r-xl);
}

/* === Reset === */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }
body {
    font-family: var(--font-body);
    background: var(--bg-darkest);
    color: var(--gray-300);
    line-height: 1.7;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
::selection { background: var(--green-accent); color: var(--bg-darkest); }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg-darkest); }
::-webkit-scrollbar-thumb { background: var(--green-800); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--green-accent); }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-display); color:var(--white); font-weight:700; line-height:1.2; }
a { text-decoration:none; color:inherit; transition:var(--t-fast); }
img { max-width:100%; height:auto; }

.gradient-text {
    background: var(--gradient-accent);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.section-container { max-width:var(--container-max); margin:0 auto; padding:0 24px; }
.section-cta { text-align:center; margin-top:60px; }

/* ===================================================
   LOADER
   =================================================== */
.loader {
    position:fixed; inset:0; background:var(--bg-darkest);
    display:flex; align-items:center; justify-content:center;
    z-index:9999; transition:opacity .5s ease, visibility .5s ease;
}
.loader.hidden { opacity:0; visibility:hidden; }
/* Safety net: if JavaScript fails, never leave the page covered */
.loader { animation:loaderAutoHide .4s ease 3s forwards; }
@keyframes loaderAutoHide { to { opacity:0; visibility:hidden; } }
.loader-content { text-align:center; }
.loader-flame { display:flex; justify-content:center; gap:8px; margin-bottom:24px; }
.loader-flame .flame {
    width:12px; height:40px;
    background:var(--gradient-accent);
    border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
    animation:flameFloat 1s ease-in-out infinite;
}
.loader-flame .flame:nth-child(2) { height:52px; animation-delay:.15s; }
.loader-flame .flame:nth-child(3) { animation-delay:.3s; }
@keyframes flameFloat {
    0%,100% { transform:scaleY(1) translateY(0); opacity:.8; }
    50%      { transform:scaleY(1.2) translateY(-5px); opacity:1; }
}
.loader-text { font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--white); letter-spacing:3px; }

/* ===================================================
   NAVIGATION
   =================================================== */
.navbar { position:fixed; top:0; left:0; width:100%; z-index:1000; padding:20px 0; transition:all var(--t-base); }
.navbar.scrolled {
    background:rgba(4,26,16,0.96); backdrop-filter:blur(20px);
    padding:14px 0; box-shadow:0 4px 30px rgba(0,0,0,0.3), 0 1px 0 rgba(12,242,93,0.08);
}
.nav-container { max-width:var(--container-max); margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--white); }
.nav-logo picture, img.logo_img { display:block; } /* no inline descender gap under the logo */
img.logo_img {
    max-width: 159px;
}
.nav-menu { display:flex; align-items:center; gap:36px; }
.nav-link { position:relative; font-size:.92rem; font-weight:500; color:var(--gray-300); padding:8px 0; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gradient-accent); transition:width var(--t-base); }
.nav-link:hover, .nav-link.active { color:var(--white); }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-actions { display:flex; align-items:center; gap:12px; }
.nav-toggle { display:none; flex-direction:column; gap:6px; padding:8px; background:none; border:none; cursor:pointer; position:relative; z-index:1001; /* stays above the open mobile panel */ }
.nav-toggle span { width:24px; height:2px; background:var(--white); border-radius:2px; transition:var(--t-base); }
/* Light/dark theme switch (sun shown in dark theme, moon in light theme) */
.theme-toggle { width:40px; height:40px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; padding:0; border-radius:50%; border:1px solid rgba(12,242,93,0.25); background:rgba(12,242,93,0.06); color:var(--gray-200); cursor:pointer; transition:all var(--t-base); }
.theme-toggle:hover { border-color:var(--green-accent); color:var(--green-accent); }
.theme-toggle:focus-visible { outline:2px solid var(--green-accent); outline-offset:2px; }
.theme-toggle svg { width:18px; height:18px; }
.theme-toggle .icon-moon, [data-theme="light"] .theme-toggle .icon-sun { display:none; }
[data-theme="light"] .theme-toggle .icon-moon { display:block; }

@media(max-width:968px) {
    .nav-menu { position:fixed; top:0; right:-100%; width:300px; max-width:85vw; height:100vh; height:100dvh; overflow-y:auto; background:var(--bg-mid); flex-direction:column; justify-content:flex-start; gap:32px; transition:right var(--t-base), visibility var(--t-base); box-shadow:-10px 0 40px rgba(0,0,0,0.4); visibility:hidden; }
    .nav-menu.active { visibility:visible; }
    /* Backdrop behind the open menu: a tap outside closes it instead of hitting a link underneath */
    body.nav-open::before { content:''; position:fixed; inset:0; z-index:999; background:rgba(0,0,0,0.55); }
    .nav-menu.active { right:0; }
    .nav-toggle { display:flex; }
    .nav-toggle.active span:nth-child(1) { transform:rotate(45deg) translate(6px,6px); }
    .nav-toggle.active span:nth-child(2) { opacity:0; }
    .nav-toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(6px,-6px); }
    /* Compact header on phones/tablets: smaller logo + tighter bar (~84px instead of ~120px) */
    .navbar, .navbar.scrolled { padding:12px 0; }
    img.logo_img { max-width:130px; }
    /* Hide "Get Started" button on mobile — accessible via hamburger menu */
    .nav-actions .btn { display:none; }
}

/* ===================================================
   BUTTONS
   =================================================== */
.btn { display:inline-flex; align-items:center; gap:10px; padding:14px 28px; font-family:var(--font-body); font-size:.93rem; font-weight:600; border-radius:var(--r-md); border:none; cursor:pointer; transition:all var(--t-base); position:relative; overflow:hidden; }
.btn-primary { background:var(--gradient-accent2); color:var(--white); }
.btn-primary::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent); transition:left .5s ease; }
.btn-primary:hover::before { left:100%; }
.btn-primary:hover { box-shadow:var(--shadow-glow); transform:translateY(-2px); }
.btn-outline { background:transparent; border:2px solid var(--green-700); color:var(--gray-200); }
.btn-outline:hover { border-color:var(--green-accent); color:var(--green-accent); box-shadow:0 0 20px rgba(12,242,93,0.15); }
.btn-whatsapp { background:var(--whatsapp-dark); color:#fff; }
.btn-whatsapp:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,211,102,0.35); }
.btn-lg { padding:18px 36px; font-size:1rem; }
.btn svg { transition:transform var(--t-base); }
.btn:hover svg { transform:translateX(4px); }

/* ===================================================
   HERO
   =================================================== */
.hero {     transform: none !important;position:relative; min-height:100vh; display:flex; align-items:center; padding-top:140px; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-gradient {
    
    position: absolute;
    inset: 0;
    background-color: #00130e;
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url(../images/wf_bg_abstract.jpg);
    background-image: image-set(url(../images/wf_bg_abstract.webp) type("image/webp"), url(../images/wf_bg_abstract.jpg) type("image/jpeg"));
    background-blend-mode: soft-light;
    background-attachment: fixed;
    
}
.hero-grid {
    position:absolute; inset:0;
    background-image: linear-gradient(rgba(12,242,93,0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(12,242,93,0.025) 1px, transparent 1px);
    background-size:60px 60px;
    mask-image:radial-gradient(ellipse 70% 70% at 50% 50%, black 20%, transparent 70%);
}
.floating-shapes { position:absolute; inset:0; overflow:hidden; }
.shape { position:absolute; border-radius:50%; filter:blur(70px); animation:floatShape 20s ease-in-out infinite; }
.shape-1 { width:400px;height:400px;background:rgba(3,90,62,0.18);top:10%;left:10%; }
.shape-2 { width:300px;height:300px;background:rgba(12,242,93,0.07);top:60%;right:10%;animation-delay:5s; }
.shape-3 { width:250px;height:250px;background:rgba(2,115,94,0.08);bottom:20%;left:30%;animation-delay:10s; }
.shape-4 { width:200px;height:200px;background:rgba(3,140,62,0.07);top:30%;right:30%;animation-delay:15s; }
.shape-5 { width:350px;height:350px;background:rgba(3,59,62,0.1);bottom:10%;right:20%;animation-delay:8s; }
@keyframes floatShape {
    0%,100% { transform:translate(0,0) scale(1); }
    25%      { transform:translate(30px,-30px) scale(1.05); }
    50%      { transform:translate(-20px,20px) scale(0.95); }
    75%      { transform:translate(20px,10px) scale(1.02); }
}
.hero-container { position:relative; z-index:1; max-width:var(--container-max); margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.hero-content { max-width:640px; }
.hero-badge { display:inline-flex; align-items:center; gap:10px; padding:10px 20px; background:rgba(12,242,93,0.08); border:1px solid rgba(12,242,93,0.2); border-radius:100px; font-size:.875rem; color:var(--green-accent); margin-bottom:32px; }
.badge-dot { width:8px; height:8px; background:var(--green-accent); border-radius:50%; animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.2)} }
.hero-title { font-family: var(--font-display); font-size:clamp(2.4rem,5vw,3.2rem); line-height:1.1; margin-bottom:28px; }
.title-line { display:block; }
.hero-description { font-size:1.1rem; color:var(--gray-200); margin-bottom:40px; max-width:540px; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:60px; }
.hero-stats { display:flex; align-items:center; gap:32px; }
.stat-item { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px; }
.stat-number { font-family:var(--font-display); font-size:2.4rem; font-weight:700; color:var(--white); }
.stat-suffix { font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--green-accent); }
.stat-label { width:100%; font-size:.875rem; color:var(--gray-300); }
.stat-divider { width:1px; height:50px; background:linear-gradient(to bottom, transparent, var(--gray-600), transparent); }
.hero-scroll { position:absolute; bottom:40px; left:50%; transform:translateX(-50%); }
.scroll-indicator { display:flex; flex-direction:column; align-items:center; gap:12px; color:var(--gray-500); font-size:.875rem; }
.scroll-mouse { width:24px; height:40px; border:2px solid var(--gray-600); border-radius:12px; position:relative; }
.scroll-wheel { position:absolute; top:8px; left:50%; width:4px; height:8px; background:var(--green-accent); border-radius:2px; transform:translateX(-50%); animation:scrollWheel 2s ease-in-out infinite; }
@keyframes scrollWheel { 0%,100%{opacity:1;transform:translateX(-50%) translateY(0)} 50%{opacity:.3;transform:translateX(-50%) translateY(12px)} }

/* ===================================================
   SECTIONS COMMON
   =================================================== */
section { padding:var(--section-padding) 0; position:relative; }
.section-header { text-align:center; max-width:700px; margin:0 auto 80px; }
.section-tag { display:inline-block; padding:8px 20px; background:rgba(12,242,93,0.08); border-radius:100px; font-size:.875rem; font-weight:600; color:var(--green-accent); text-transform:uppercase; letter-spacing:1px; margin-bottom:20px; }
.section-title { font-size:clamp(1.9rem,4vw,2.9rem); margin-bottom:20px; text-wrap:balance; /* no single-word last lines */ }
.section-description { font-size:1.1rem; color:var(--gray-200); }

/* ===================================================
   SERVICES
   =================================================== */
.services { background: linear-gradient(181deg, black, #004e2782, black); }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.service-card {
    position:relative; padding:38px;
    background:linear-gradient(145deg, rgba(10,46,26,0.6), rgba(4,26,16,0.8));
    border:1px solid rgba(12,242,93,0.08); border-radius:var(--r-lg);
    transition:all var(--t-base); overflow:hidden;
}
.service-card::before { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(145deg, rgba(12,242,93,0.04), transparent); opacity:0; transition:opacity var(--t-base); pointer-events:none; }
.service-card:hover { transform:translateY(-8px); border-color:rgba(12,242,93,0.25); box-shadow:0 20px 40px rgba(0,0,0,0.4), var(--shadow-glow); }
.service-card:hover::before { opacity:1; }
.service-card.featured { border-color:rgba(12,242,93,0.22); background:linear-gradient(145deg, rgba(12,242,93,0.06), rgba(4,26,16,0.8)); }

.service-icon { position:relative; width:68px; height:68px; margin-bottom:26px; }
.icon-bg { position:absolute; inset:0; background:#0f3460b0; border-radius:var(--r-md); opacity:.4; transition:all var(--t-base); }
.service-card:hover .icon-bg { opacity:.18; transform:scale(1.1); }
.service-icon svg { position:relative; z-index:1; width:100%; height:100%; padding:16px; color:var(--green-accent); }
.service-title { font-size:1.3rem; margin-bottom:14px; }
.service-description { color:var(--gray-400); margin-bottom:22px; font-size:.93rem; line-height:1.65; }
.service-features { list-style:none; margin-bottom:26px; }
.service-features li { position:relative; padding-left:22px; margin-bottom:9px; font-size:.88rem; color:var(--gray-300); }
.service-features li::before { content:''; position:absolute; left:0; top:8px; width:7px; height:7px; background:var(--green-accent); border-radius:50%; }
.service-link { display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--green-accent); font-size:.92rem; }
.service-link:hover { gap:13px; }

/* ===================================================
   BRAND STATEMENT
   =================================================== */

/* ===================================================
   HOSTING
   =================================================== */
.hosting {  background: linear-gradient(180deg, black 0%, var(--bg-dark) 4%, #06241655, #00152a); }
.hosting .section-header { max-width:1000px; } /* title fits on one row on desktop */
.hosting .section-header .section-description { max-width:700px; margin:0 auto; }
.hosting-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; align-items:start; }
.hosting-subtitle { font-family:var(--font-display); font-size:1.5rem; color:var(--white); margin-bottom:32px; }
.hosting-list { display:flex; flex-direction:column; }
.hosting-item { display:flex; gap:18px; align-items:flex-start; padding:20px 0; border-bottom:1px solid rgba(12,242,93,0.06); transition:all var(--t-base); }
.hosting-item:last-child { border-bottom:none; }
.hosting-item:hover { padding-left:8px; }
.hosting-icon { width:42px; height:42px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(12,242,93,0.08); border-radius:var(--r-sm); transition:all var(--t-base); }
.hosting-item:hover .hosting-icon { background:rgba(12,242,93,0.15); }
.hosting-icon svg { width:20px; height:20px; color:var(--green-accent); }
.hosting-item h4 { font-size:1rem; color:var(--white); margin-bottom:4px; }
.hosting-item p { font-size:.875rem; color:var(--gray-300); line-height:1.6; }
.hosting-cta { position:sticky; top:120px; }
.hosting-cta-card { padding:48px 40px; background:linear-gradient(145deg, rgba(12,242,93,0.06), rgba(4,26,16,0.95)); border:1px solid rgba(12,242,93,0.2); border-radius:var(--r-xl); box-shadow:0 20px 60px rgba(0,0,0,0.4), inset 0 1px 0 rgba(12,242,93,0.1); }
.hosting-badge { display:flex; align-items:center; gap:12px; margin-bottom:24px; padding:14px 20px; background:rgba(12,242,93,0.1); border-radius:var(--r-md); color:var(--green-accent); }
.hosting-badge span { font-family:var(--font-display); font-size:1rem; font-weight:700; }
.hosting-cta-card h3 { font-size:1.6rem; margin-bottom:16px; color:var(--white); }
.hosting-cta-card p { color:var(--gray-400); font-size:.95rem; line-height:1.7; margin-bottom:28px; }
.hosting-plans { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; }
.plan-badge { padding:8px 16px; border:1px solid rgba(12,242,93,0.2); border-radius:100px; font-size:.8rem; font-weight:600; color:var(--green-accent); background:rgba(12,242,93,0.05); }
.hosting-cta-actions { display:flex; flex-direction:column; gap:14px; }

/* ===================================================
   ABOUT
   =================================================== */
.about { 
    background-color: #002f27;
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url(../images/wffbg2.jpg);
    background-image: image-set(url(../images/wffbg2.webp) type("image/webp"), url(../images/wffbg2.jpg) type("image/jpeg"));
    background-blend-mode: soft-light;
    background-attachment: fixed;
}
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-content .section-tag { display:inline-block; margin-bottom:16px; }
.about-content .section-title { text-align:left; margin-bottom:24px; }
.about-text { color:var(--gray-300); margin-bottom:18px; font-size:1.02rem; }
.about-features { margin-top:36px; }
.about-feature { display:flex; gap:18px; margin-bottom:26px; }
.feature-icon { width:48px; height:48px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(12,242,93,0.08); border-radius:var(--r-sm); }
.feature-icon svg { width:22px; height:22px; color:var(--green-accent); }
.feature-content h4 { font-size:1.05rem; margin-bottom:5px; }
.feature-content p { font-size:.88rem; color:var(--gray-300); }
.about-visual { position:relative; height:500px; }
.about-image-container { position:relative; width:100%; height:100%; }
.about-shape { position:absolute; border-radius:var(--r-xl); }
.about-shape.shape-1 { width:300px; height:300px; background:linear-gradient(135deg, rgba(3,90,62,0.2), rgba(12,242,93,0.05)); top:10%; left:10%; animation:floatAbout 8s ease-in-out infinite; }
.about-shape.shape-2 { width:200px; height:200px; background:linear-gradient(135deg, rgba(2,115,94,0.15), rgba(3,140,62,0.05)); bottom:15%; right:10%; animation:floatAbout 10s ease-in-out infinite reverse; }
@keyframes floatAbout { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-20px) rotate(5deg)} }
.about-card { position:absolute; display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 28px; background:rgba(15, 52, 96, 0.45); backdrop-filter:blur(20px); border:1px solid rgba(12,242,93,0.15); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); animation:floatCard 6s ease-in-out infinite; }
.card-icon { width:36px; height:36px; }
.card-icon svg { width:100%; height:100%; color:var(--green-accent); }
.about-card span { font-weight:700; color:var(--white); font-size:.9rem; }
.about-card.card-1 { top:5%; right:20%; animation-delay:0s; }
.about-card.card-2 { top:35%; left:5%; animation-delay:1s; }
.about-card.card-3 { bottom:30%; right:5%; animation-delay:2s; }
.about-card.card-4 { bottom:5%; left:20%; animation-delay:3s; }
@keyframes floatCard { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-15px)} }

/* ===================================================
   PORTFOLIO
   =================================================== */
.portfolio { background:var(--bg-darkest); }
.portfolio-filter { display:flex; justify-content:center; gap:12px; margin-bottom:60px; flex-wrap:wrap; }
.filter-btn { padding:11px 28px; background:transparent; border:1px solid var(--green-800); border-radius:100px; font-family:var(--font-body); font-size:.88rem; font-weight:500; color:var(--gray-400); cursor:pointer; transition:all var(--t-base); }
.filter-btn:hover, .filter-btn.active { background:var(--gradient-bright); border-color:transparent; color:var(--bg-darkest); }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.portfolio-item { position:relative; border-radius:var(--r-lg); overflow:hidden; background:rgba(10,46,26,0.4); border:1px solid rgba(12,242,93,0.08); transition:all var(--t-base); }
.portfolio-item:hover { transform:translateY(-8px); box-shadow:0 20px 40px rgba(0,0,0,0.4); border-color:rgba(12,242,93,0.25); }
.portfolio-image { position:relative; height:240px; overflow:hidden; }
.portfolio-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg, rgba(10,46,26,0.6), rgba(4,26,16,0.8)); }
.portfolio-placeholder svg { width:80px; height:80px; }
.portfolio-overlay { position:absolute; inset:0; background:rgba(4,26,16,0.9); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity var(--t-base); }
.portfolio-item:hover .portfolio-overlay { opacity:1; }
.portfolio-link { width:58px; height:58px; display:flex; align-items:center; justify-content:center; background:var(--gradient-accent); border-radius:50%; color:var(--bg-darkest); transform:scale(0.8); transition:transform var(--t-base); }
.portfolio-item:hover .portfolio-link { transform:scale(1); }
.portfolio-link svg { width:22px; height:22px; }
.portfolio-content { padding:26px; }
.portfolio-category { display:inline-block; font-size:.78rem; font-weight:700; color:var(--green-accent); text-transform:uppercase; letter-spacing:1px; margin-bottom:9px; }
.portfolio-title { font-size:1.2rem; margin-bottom:8px; }
.portfolio-description { font-size:.88rem; color:var(--gray-300); }

/* ===================================================
   TESTIMONIALS
   =================================================== */
.testimonials { background:linear-gradient(180deg, var(--bg-mid) 0%, var(--bg-darkest) 100%); overflow:hidden; }
.testimonials-slider { position:relative; padding:0 48px; }
.tslider-viewport { overflow:hidden; }
.testimonial-track { display:flex; gap:28px; transition:transform .4s ease; }
.testimonial-card { flex-shrink:0; width:calc(33.333% - 19px); padding:38px; background:rgba(10,46,26,0.4); border:1px solid rgba(12,242,93,0.1); border-radius:var(--r-lg); }
.tslider-btn { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:1px solid rgba(12,242,93,0.25); background:rgba(12,242,93,0.07); color:var(--green-accent); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s,border-color .2s; z-index:2; }
.tslider-btn:hover { background:rgba(12,242,93,0.15); border-color:rgba(12,242,93,0.5); }
.tslider-btn svg { width:20px; height:20px; }
.tslider-prev { left:0; }
.tslider-next { right:0; }
.tslider-dots { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:28px; }
.tslider-dot { width:8px; height:8px; border-radius:4px; border:none; background:rgba(12,242,93,0.55); cursor:pointer; padding:0; transition:width .25s,background .25s; }
.tslider-dot.active { width:24px; background:var(--green-accent); }
.testimonial-stars { display:flex; gap:4px; margin-bottom:18px; }
.testimonial-stars svg { width:18px; height:18px; color:var(--green-accent); }
.testimonial-text { font-size:1rem; color:var(--gray-300); line-height:1.8; margin-bottom:26px; }
.testimonial-author { display:flex; align-items:center; gap:14px; }
.author-avatar { width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:var(--gradient-bright); border-radius:50%; font-weight:700; color:var(--bg-darkest); font-family:var(--font-display); }
.author-info { display:flex; flex-direction:column; }
.author-name { font-weight:700; color:var(--white); font-size:.95rem; }
.author-role { font-size:.82rem; color:var(--gray-500); }

/* ===================================================
   CTA
   =================================================== */
.cta { position:relative; padding:100px 0; overflow:hidden; }
.cta-bg { position:absolute; inset:0; }
.cta-gradient { position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 100%, rgba(3,90,62,0.3) 0%, transparent 50%), var(--gradient-dark); }
.cta-pattern { position:absolute; inset:0; background-image:radial-gradient(circle at 20% 50%, rgba(12,242,93,0.03) 1px, transparent 1px), radial-gradient(circle at 80% 50%, rgba(12,242,93,0.03) 1px, transparent 1px); background-size:40px 40px; }
.cta-content { position:relative; z-index:1; text-align:center; max-width:720px; margin:0 auto; }
.cta-title { font-size:clamp(1.9rem,4vw,2.7rem); margin-bottom:18px; }
.cta-description { font-size:1.1rem; color:var(--gray-200); margin-bottom:40px; }
.cta-actions { display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ===================================================
   CONTACT
   =================================================== */
.contact { 
    background-color: #00352b;
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url(../images/wf_globe.jpg);
    background-image: image-set(url(../images/wf_globe.webp) type("image/webp"), url(../images/wf_globe.jpg) type("image/jpeg"));
    background-blend-mode: multiply;
    background-attachment: fixed; 
    transform: none !important;
}
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.contact-info .section-tag { display:inline-block; margin-bottom:16px; }
.contact-info .section-title { text-align:left; margin-bottom:22px; }
.contact-description { color:var(--gray-200); margin-bottom:36px; font-size:1.02rem; }
.contact-details { margin-bottom:36px; }
.contact-item { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.contact-icon { width:48px; height:48px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(12,242,93,0.08); border-radius:var(--r-sm); }
.contact-icon svg { width:22px; height:22px; color:var(--green-accent); }
.contact-icon.whatsapp-icon { background:rgba(37,211,102,0.12); }
.contact-icon.whatsapp-icon svg { color:#25D366; }
.contact-text { display:flex; flex-direction:column; }
.contact-label { font-size:.83rem; color:var(--gray-200); margin-bottom:3px; }
.contact-value { font-weight:600; color:var(--white); }
.contact-link { color:var(--green-accent) !important; }
.contact-link:hover { text-decoration:underline; }
.contact-form-container { padding:46px; background:rgb(10 46 26 / 73%); border:1px solid rgba(12,242,93,0.1); border-radius:var(--r-xl); }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-group { display:flex; flex-direction:column; gap:8px; }
.form-group.full-width { grid-column:span 2; }
.form-group label { font-size:.88rem; font-weight:500; color:var(--gray-200); }
.form-group input, .form-group select, .form-group textarea { padding:15px 18px; background:rgba(4,26,16,0.6); border:1px solid rgba(12,242,93,0.12); border-radius:var(--r-md); font-family:var(--font-body); font-size:.95rem; color:var(--white); transition:all var(--t-base); }
.form-group input::placeholder, .form-group textarea::placeholder { color:var(--gray-400); }
.form-group select { cursor:pointer; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%234a7060' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; }
.form-group select option { background:var(--bg-mid); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:var(--green-accent); box-shadow:0 0 0 3px rgba(12,242,93,0.1); }
.form-group textarea { resize:vertical; min-height:140px; }

/* ===================================================
   FOOTER
   =================================================== */
.footer { background:var(--bg-darkest); border-top:1px solid rgba(12,242,93,0.08); padding:80px 0 30px; }
.footer-container { max-width:var(--container-max); margin:0 auto; padding:0 24px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:60px; margin-bottom:60px; }
.footer-logo { display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--white); margin-bottom:18px; }
.footer-logo img { width:180px; max-width:100%; height:auto; display:block; }
.footer-description { color:var(--gray-200); font-size:.95rem; max-width:320px; line-height:1.7; margin-bottom:24px; }
.footer-social { display:flex; gap:10px; }
.social-link { width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:rgba(12,242,93,0.06); border:1px solid rgba(12,242,93,0.15); border-radius:var(--r-sm); color:var(--green-accent); transition:all var(--t-base); }
.social-link:hover { background:var(--green-accent); color:var(--bg-darkest); transform:translateY(-4px); }
.social-link.whatsapp { background:rgba(37,211,102,0.08); border-color:rgba(37,211,102,0.2); color:#25D366; }
.social-link.whatsapp:hover { background:#0b8457; color:#fff; }
.footer-links h4 { font-size:1rem; margin-bottom:22px; color:var(--white); }
.footer-links ul { list-style:none; }
.footer-links li { margin-bottom:12px; }
.footer-links a { color:var(--gray-500); font-size:.92rem; }
.footer-links a:hover { color:var(--green-accent); }
.footer-contact h4 { font-size:1rem; margin-bottom:22px; color:var(--white); }
.footer-contact p { color:var(--gray-500); font-size:.92rem; margin-bottom:9px; }
.footer-contact a { color:var(--gray-500); }
.footer-contact a:hover { color:var(--green-accent); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:1px solid rgba(12,242,93,0.08); }
.footer-bottom p { color:var(--gray-500); font-size:.88rem; }
.footer-legal { display:flex; gap:22px; }
.footer-legal a { color:var(--gray-500); font-size:.88rem; }
.footer-legal a:hover { color:var(--green-accent); }

/* ===================================================
   WHATSAPP FLOATING BUTTON
   =================================================== */
.whatsapp-float {
    position:fixed; bottom:28px; right:20px; z-index:998;
    width:54px; height:54px; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#128C7E,#25D366);
    border-radius:50%; color:#fff;
    box-shadow:0 4px 20px rgba(37,211,102,0.5);
    transition:all var(--t-base);
    animation:waFloat 3s ease-in-out infinite;
}
.whatsapp-float:hover { transform:scale(1.15); box-shadow:0 8px 32px rgba(37,211,102,0.7); animation:none; }
@keyframes waFloat {
    0%,100% { box-shadow:0 4px 20px rgba(37,211,102,0.5); }
    50%      { box-shadow:0 4px 32px rgba(37,211,102,0.8); }
}

/* ===================================================
   COOKIE CONSENT BANNER
   =================================================== */
.cookie-banner { position:fixed; left:16px; right:16px; bottom:16px; z-index:1001; max-width:880px; margin:0 auto; display:flex; align-items:center; gap:20px; padding:18px 22px; background:#062416; border:1px solid rgba(12,242,93,0.28); border-radius:var(--r-lg); box-shadow:0 18px 50px rgba(0,0,0,0.55); }
.cookie-banner[hidden] { display:none; }
.cookie-text { flex:1; margin:0; font-size:.92rem; line-height:1.6; color:var(--gray-200); }
.cookie-text a { color:var(--green-accent); text-decoration:underline; text-underline-offset:3px; }
.cookie-actions { display:flex; gap:10px; flex-shrink:0; }
.cookie-btn { min-height:44px; padding:10px 24px; font-size:.92rem; justify-content:center; }
.cookie-btn:focus-visible, .cookie-settings-link:focus-visible { outline:2px solid var(--green-accent); outline-offset:3px; }
/* Floating buttons step aside while the banner is open */
body.cookie-open .whatsapp-float, body.cookie-open .back-to-top { visibility:hidden !important; }
.cookie-settings-link { background:none; border:none; padding:0; font:inherit; font-size:.88rem; color:var(--gray-500); cursor:pointer; }
.cookie-settings-link:hover { color:var(--green-accent); }
@media (max-width:640px) {
    .cookie-banner { left:10px; right:10px; bottom:10px; flex-direction:column; align-items:stretch; gap:14px; padding:16px; }
    .cookie-actions .cookie-btn { flex:1; }
}

/* ===================================================
   SCROLL ANIMATIONS
   =================================================== */
[data-animate] { opacity:0; transform:translateY(40px); transition:all .8s cubic-bezier(0.16,1,0.3,1); }
[data-animate="fade-up"].animated { opacity:1; transform:translateY(0); }
[data-animate="fade-left"] { transform:translateX(60px); }
[data-animate="fade-left"].animated { opacity:1; transform:translateX(0); }
[data-animate="fade-right"] { transform:translateX(-60px); }
[data-animate="fade-right"].animated { opacity:1; transform:translateX(0); }

/* ===================================================
   RESPONSIVE
   =================================================== */
@media(max-width:1200px) {
    .services-grid { grid-template-columns:repeat(2,1fr); }
    .portfolio-grid { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:repeat(2,1fr); }
    .hosting-grid { grid-template-columns:1fr; }
    .hosting-cta { position:static; }
    
    
    
    
}
@media(max-width:968px) {
    :root { --section-padding:80px; }
    /* Fix iOS fixed background bug */
    .hero-gradient, .about, .contact { background-attachment:scroll; }
    /* Hero */
    .hero { padding-top:112px; min-height:auto; padding-bottom:80px; } /* clears the ~84px header + breathing room */
    .hero-container { grid-template-columns:1fr; text-align:center; gap:32px; }
    .hero-content { max-width:100%; }
    .hero-description { max-width:100%; }
    .hero-actions { justify-content:center; }
    .hero-stats { justify-content:center; flex-wrap:wrap; gap:24px; }
    /* Keep globe visible on mobile but centered below content */
    .hero-visual { display:flex; justify-content:center; }
    .hero-scroll { display:none; }
    /* Hero badge top spacing on mobile */
    .hero-badge { margin-top:8px; }
    /* About & Contact */
    .about-grid, .contact-grid { grid-template-columns:1fr; gap:50px; }
    .about-visual { height:320px; }
    .about-card { padding:14px 18px; }
    .about-content .section-title, .contact-info .section-title { text-align:center; }
    .about-text, .contact-description { text-align:center; }
    .contact-details { display:flex; flex-direction:column; align-items:center; }
    .contact-form { grid-template-columns:1fr; }
    .form-group.full-width { grid-column:span 1; }
    /* Brand 3D */
    
    
    
    
    /* Hosting */
    .hosting-cta-card { padding:32px 28px; }
    /* Section header */
    .section-header { margin-bottom:50px; }
    /* Nav — top padding clears the navbar; panel scrolls if items overflow */
    .nav-menu { padding:96px 20px 40px; }
}
@media(max-width:768px) {
    :root { --section-padding:60px; }
    .services-grid, .portfolio-grid { grid-template-columns:1fr; }
    .hero { padding-top:112px; }
    .hero-title { font-size:clamp(1.9rem,7vw,2.6rem); }
    .hero-stats { flex-direction:row; flex-wrap:wrap; gap:20px; justify-content:center; }
    .stat-divider { display:none; }
    .stat-item { justify-content:center; text-align:center; } /* number + suffix stay on one line */
    .testimonial-card { width:calc(50% - 14px); }
    .testimonials-slider { padding:0 40px; }
    /* About visual — hide floating cards on mobile */
    .about-card { display:none; }
    .about-visual { height:240px; }
    /* Footer */
    .footer-grid { grid-template-columns:1fr; gap:32px; text-align:center; }
    .footer-description { max-width:100%; margin:0 auto 24px; }
    .footer-logo { justify-content:center; }
    .footer-social { justify-content:center; }
    .footer-bottom { flex-direction:column; gap:14px; text-align:center; }
    .footer-legal { justify-content:center; }
    /* Contact form */
    .contact-form-container { padding:28px 20px; }
    /* CTA */
    .cta { padding:70px 0; }
    /* Section container padding */
    .section-container { padding:0 18px; }
}
@media(max-width:480px) {
    :root { --section-padding:50px; }
    .section-container { padding:0 16px; }
    .testimonial-card { width:100%; }
    .testimonials-slider { padding:0 36px; }
    .hero { padding-top:108px; }
    .hero-title { font-size:1.9rem; }
    .section-title { font-size:1.6rem; }
    .hero-actions { flex-direction:column; width:100%; }
    .hero-actions .btn { width:100%; justify-content:center; }
    .cta-actions { flex-direction:column; align-items:center; }
    .cta-actions .btn { width:100%; justify-content:center; }
    .btn-lg { padding:16px 22px; font-size:.95rem; }
    .contact-form-container { padding:22px 16px; }
    .service-card { padding:24px 18px; }
    
    
    
    
    .whatsapp-float { bottom:16px; right:14px; width:48px; height:48px; }
    .hero-badge { margin-top:12px; }
    .footer-grid { gap:24px; }
    .section-header { margin-bottom:36px; }
    /* Hosting plans responsive */
    .hosting-plans { justify-content:center; }
    .hosting-cta-card { padding:24px 16px; }
    /* Stats */
    .stat-number { font-size:1.9rem; }
    .hero-badge { font-size:.8rem; padding:8px 16px; }
}
@media(prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    html { scroll-behavior:auto; }
}