/* ============================================================
   SECURENOID — TACTICAL DARK / LIGHT  ·  v2
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=JetBrains+Mono:wght@300;400;500;700&family=Barlow:ital,wght@0,300;0,400;0,500;0,600;1,300&family=Barlow+Condensed:wght@400;600;700&display=swap');

/* ============================================================
   TOKENS — DARK (default)
   ============================================================ */
:root {
    --bg0:#040608; --bg1:#070b0f; --bg2:#0c1118; --bg3:#111820;
    --surf:#141d28; --surf2:#1a2536;
    --bdr:#1b2738; --bdr2:#263848;
    --acc:#e85010; --acc2:#ff6b2b;
    --acc-glow:rgba(232,80,16,0.14); --acc-dim:rgba(232,80,16,0.07);
    --teal:#00c8a0; --teal-d:rgba(0,200,160,0.08);
    --txt:#a8bcc8; --txt2:#d8e8f0; --txt3:#e8f2f8;
    --dim:#3a5060; --dimmer:#1e3040;
    --mono:'JetBrains Mono',monospace;
    --disp:'Bebas Neue',sans-serif;
    --body:'Barlow',sans-serif;
    --cond:'Barlow Condensed',sans-serif;
    --r:4px; --r2:8px;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.3);
    --shadow-md: 0 8px 32px rgba(0,0,0,.4);
}

/* ============================================================
   TOKENS — LIGHT
   ============================================================ */
[data-theme="light"] {
    --bg0:#f4efe9; --bg1:#f8f3ed; --bg2:#fdfaf7; --bg3:#ffffff;
    --surf:#ede8e2; --surf2:#e4ddd6;
    --bdr:#d4c8be; --bdr2:#c4b4a8;
    --acc:#cc3d08; --acc2:#e85010;
    --acc-glow:rgba(204,61,8,0.12); --acc-dim:rgba(204,61,8,0.07);
    --teal:#007a60; --teal-d:rgba(0,122,96,0.08);
    --txt:#3e2c1e; --txt2:#2a1c10; --txt3:#180e04;
    --dim:#8a7060; --dimmer:#c0b0a0;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.08);
    --shadow-md: 0 8px 32px rgba(0,0,0,.12);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; cursor:none; }
body {
    background:var(--bg0);
    color:var(--txt);
    font-family:var(--body);
    font-size:16px;
    line-height:1.6;
    overflow-x:hidden;
    transition: background .35s ease, color .35s ease;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
button { cursor:none; }
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-track { background:var(--bg1); }
::-webkit-scrollbar-thumb { background:var(--bdr2); border-radius:2px; }

/* ============================================================
   CUSTOM CURSOR
   ============================================================ */
.cursor {
    position:fixed; width:8px; height:8px;
    background:var(--acc); border-radius:50%;
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition: width .25s, height .25s, background .25s;
    will-change:transform;
}
.cursor-ring {
    position:fixed; width:32px; height:32px;
    border:1px solid rgba(232,80,16,.35); border-radius:50%;
    pointer-events:none; z-index:9998;
    transform:translate(-50%,-50%);
    transition: width .3s, height .3s, border-color .3s;
    will-change:transform;
}
[data-theme="light"] .cursor-ring { border-color:rgba(204,61,8,.3); }
.cursor.big  { width:14px; height:14px; }
.cursor-ring.big { width:52px; height:52px; border-color:rgba(232,80,16,.6); }

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:0 2.5rem;
    background:rgba(4,6,8,.9);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--bdr);
    transition: border-color .3s, box-shadow .3s, background .35s;
}
[data-theme="light"] .nav { background:rgba(244,239,233,.92); }
.nav.stuck { border-bottom-color:var(--bdr2); box-shadow:var(--shadow-md); }
.nav-inner {
    max-width:1240px; margin:0 auto; height:64px;
    display:flex; align-items:center; justify-content:space-between;
}
.nav-logo {
    font-family:var(--mono); font-size:.9rem; font-weight:700;
    letter-spacing:.14em; color:var(--txt3);
    transition:color .2s;
}
.nav-logo:hover { color:var(--acc); }
.logo-sym { color:var(--acc); font-weight:300; }
.nav-links { display:flex; align-items:center; gap:2rem; }
.nav-link {
    font-family:var(--cond); font-size:.78rem; font-weight:600;
    letter-spacing:.12em; text-transform:uppercase;
    color:var(--dim); transition:color .2s;
}
.nav-link:hover { color:var(--txt3); }
.nav-cta {
    padding:.38rem 1.1rem; border:1px solid var(--acc);
    border-radius:var(--r); color:var(--acc) !important;
    transition:background .2s, color .2s !important;
}
.nav-cta:hover { background:var(--acc); color:#fff !important; }

/* Theme toggle */
.theme-toggle {
    width:36px; height:36px;
    background:var(--surf); border:1px solid var(--bdr);
    border-radius:var(--r); display:flex; align-items:center;
    justify-content:center; padding:.5rem; cursor:none;
    transition: background .2s, border-color .2s;
    color:var(--dim);
    flex-shrink:0;
}
.theme-toggle:hover { border-color:var(--acc); color:var(--acc); }
.theme-toggle svg { width:16px; height:16px; }
.icon-moon { display:none; }
[data-theme="light"] .icon-sun  { display:none; }
[data-theme="light"] .icon-moon { display:block; }

.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; }
.hamburger span { display:block; width:22px; height:1px; background:var(--txt); transition:all .3s; }

.mobile-menu {
    display:none; position:fixed; top:64px; left:0; right:0;
    background:var(--bg1); border-bottom:1px solid var(--bdr);
    padding:1.5rem 2.5rem; flex-direction:column; gap:1.5rem; z-index:99;
    transition:background .35s;
}
.mobile-menu.open { display:flex; }
.mobile-link { font-family:var(--cond); font-size:1.1rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--txt); }

/* ============================================================
   HERO
   ============================================================ */
.hero {
    position:relative; min-height:100vh;
    display:flex; align-items:center;
    overflow:hidden; padding-top:64px;
}
.hero-grid {
    position:absolute; inset:0;
    background-image:
        linear-gradient(rgba(27,39,56,.45) 1px, transparent 1px),
        linear-gradient(90deg, rgba(27,39,56,.45) 1px, transparent 1px);
    background-size:52px 52px;
    mask-image:radial-gradient(ellipse 65% 70% at 35% 50%, rgba(0,0,0,.5) 0%, transparent 80%);
    transition:opacity .35s;
}
[data-theme="light"] .hero-grid {
    background-image:
        linear-gradient(rgba(180,164,148,.45) 1px, transparent 1px),
        linear-gradient(90deg, rgba(180,164,148,.45) 1px, transparent 1px);
}
.hero-scanlines {
    position:absolute; inset:0; pointer-events:none;
    background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.04) 2px, rgba(0,0,0,.04) 4px);
}
[data-theme="light"] .hero-scanlines { background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.018) 2px, rgba(0,0,0,.018) 4px); }
.hero-glow {
    position:absolute; width:700px; height:700px; right:-80px; top:5%;
    background:radial-gradient(ellipse, var(--acc-glow) 0%, transparent 65%);
    pointer-events:none; transition:opacity .35s;
}

.hero-inner {
    position:relative; max-width:1240px; margin:0 auto;
    padding:5rem 2.5rem 7rem; z-index:2; width:100%;
    display:grid; grid-template-columns:1fr 480px; gap:4rem; align-items:center;
}

/* Left column */
.hero-content { display:flex; flex-direction:column; }
.hero-badge {
    display:inline-flex; align-items:center; gap:.65rem;
    padding:.32rem 1rem; border:1px solid var(--bdr2); border-radius:2px;
    font-family:var(--mono); font-size:.62rem; letter-spacing:.2em;
    color:var(--dim); background:var(--bg2); margin-bottom:2rem;
    text-transform:uppercase; width:fit-content;
    transition:background .35s, border-color .35s;
}
.badge-pulse {
    width:6px; height:6px; background:var(--teal); border-radius:50%;
    animation:pulse 2.2s ease-in-out infinite;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.75)} }

.hero-title {
    font-family:var(--disp);
    font-size:clamp(3.5rem, 7.5vw, 8.5rem);
    line-height:.9; letter-spacing:.025em;
    color:var(--txt3); margin-bottom:1.75rem;
}
.title-row { display:block; }
.title-row.accent { color:var(--acc); }
.hero-sub {
    max-width:520px; font-size:1.05rem; font-weight:300;
    color:var(--txt); line-height:1.75; margin-bottom:2.25rem;
}

/* Terminal */
.hero-terminal {
    max-width:520px; background:var(--bg2);
    border:1px solid var(--bdr); border-radius:var(--r);
    overflow:hidden; margin-bottom:2.25rem;
    transition:background .35s, border-color .35s;
}
.term-bar {
    display:flex; align-items:center; gap:.45rem;
    padding:.65rem 1rem; background:var(--bg3);
    border-bottom:1px solid var(--bdr);
    transition:background .35s, border-color .35s;
}
.term-dot { width:10px; height:10px; border-radius:50%; }
.td-red    { background:#ff5f57; }
.td-yellow { background:#febc2e; }
.td-green  { background:#28c840; }
.term-title { margin-left:.4rem; font-family:var(--mono); font-size:.65rem; color:var(--dim); }
.term-body {
    padding:.9rem 1.2rem; font-family:var(--mono); font-size:.78rem;
    color:var(--teal); min-height:52px; display:flex; align-items:center; gap:.2rem;
}
.term-cursor { color:var(--acc); animation:blink 1s step-end infinite; font-size:.7rem; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* Actions */
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3.5rem; }
.btn-primary {
    padding:.78rem 2rem; background:var(--acc); color:#fff;
    font-family:var(--cond); font-size:.875rem; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase;
    border-radius:var(--r); border:2px solid var(--acc);
    transition:background .2s, box-shadow .2s, transform .2s; display:inline-block;
}
.btn-primary:hover { background:var(--acc2); border-color:var(--acc2); transform:translateY(-2px); box-shadow:0 8px 24px var(--acc-glow); }
.btn-ghost {
    padding:.78rem 2rem; background:transparent; color:var(--txt);
    font-family:var(--cond); font-size:.875rem; font-weight:600;
    letter-spacing:.1em; text-transform:uppercase;
    border-radius:var(--r); border:1px solid var(--bdr2);
    transition:border-color .2s, color .2s; display:inline-block;
}
.btn-ghost:hover { border-color:var(--dim); color:var(--txt3); }

/* Stats */
.hero-stats { display:flex; align-items:center; gap:2.5rem; }
.stat-item { display:flex; flex-direction:column; gap:.15rem; }
.stat-num { font-family:var(--disp); font-size:2.6rem; line-height:1; color:var(--txt3); }
.stat-label { font-family:var(--mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.stat-sep { width:1px; height:42px; background:var(--bdr); }

/* Hero visual column */
.hero-visual {
    display:flex; align-items:center; justify-content:center;
    position:relative;
}
.hero-svg-wrap {
    width:100%; max-width:460px;
    filter:drop-shadow(0 0 40px rgba(232,80,16,.08));
}
[data-theme="light"] .hero-svg-wrap {
    filter:drop-shadow(0 0 32px rgba(204,61,8,.08));
}

/* Scroll hint */
.scroll-hint {
    position:absolute; right:3rem; bottom:3rem;
    display:flex; flex-direction:column; align-items:center; gap:.75rem;
    font-family:var(--mono); font-size:.55rem; letter-spacing:.2em;
    color:var(--dimmer); writing-mode:vertical-lr;
}
.scroll-bar {
    width:1px; height:64px;
    background:linear-gradient(var(--dimmer), transparent);
    animation:drop 2.4s ease-in-out infinite;
}
@keyframes drop {
    0%  { opacity:0; transform:scaleY(0); transform-origin:top; }
    50% { opacity:1; transform:scaleY(1); }
    100%{ opacity:0; transform:scaleY(0); transform-origin:bottom; }
}

/* ============================================================
   SHARED SECTION PARTS
   ============================================================ */
.section-inner { max-width:1240px; margin:0 auto; padding:6rem 2.5rem; }
.section-head  { margin-bottom:4rem; max-width:680px; }
.tag {
    display:block; font-family:var(--mono); font-size:.62rem;
    letter-spacing:.22em; text-transform:uppercase; color:var(--acc); margin-bottom:1rem;
}
.section-title {
    font-family:var(--disp); font-size:clamp(2.4rem, 4vw, 4.2rem);
    line-height:.95; color:var(--txt3); margin-bottom:1rem;
}
.section-desc { font-size:.975rem; font-weight:300; color:var(--txt); line-height:1.75; }

/* ============================================================
   SERVICES SECTION
   ============================================================ */
.services { background:linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 40%, var(--bg0) 100%); border-top:1px solid var(--bdr); }

.svc-grid {
    display:grid; grid-template-columns:repeat(6,1fr);
    gap:1px; background:var(--bdr); border:1px solid var(--bdr);
    border-radius:var(--r2); overflow:hidden;
}
.svc-card {
    grid-column:span 2; position:relative; background:var(--bg2);
    padding:2.5rem; display:flex; flex-direction:column;
    transition:background .3s; overflow:hidden; cursor:none;
}
.svc-card:nth-child(4), .svc-card:nth-child(5) { grid-column:span 3; }
.svc-card::after {
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:transparent; transition:background .3s;
}
.svc-card:hover { background:var(--bg3); }
.svc-card:hover::after { background:var(--acc); }
.svc-card.featured { background:var(--surf); }
.svc-card.featured::after { background:var(--acc); }

.svc-num { position:absolute; top:1.5rem; right:1.5rem; font-family:var(--mono); font-size:.6rem; color:var(--dimmer); }
.svc-badge-tag {
    position:absolute; top:2.4rem; right:2.4rem;
    background:var(--acc); color:#fff; font-family:var(--mono);
    font-size:.55rem; letter-spacing:.14em; padding:.18rem .48rem; border-radius:2px;
}
.svc-badge-tag.new { background:var(--teal); color:var(--bg0); }

.svc-icon { width:38px; height:38px; color:var(--acc); margin-bottom:1.5rem; }
.svc-icon svg { width:100%; height:100%; }
.svc-title { font-family:var(--cond); font-size:1.25rem; font-weight:700; color:var(--txt3); margin-bottom:.65rem; }
.svc-desc  { font-size:.85rem; font-weight:300; color:var(--txt); line-height:1.7; margin-bottom:1.25rem; flex:1; }
.svc-features { list-style:none; margin-bottom:2rem; display:flex; flex-direction:column; gap:.38rem; }
.svc-features li {
    font-family:var(--mono); font-size:.68rem; color:var(--dim);
    letter-spacing:.04em; padding-left:1.1rem; position:relative;
}
.svc-features li::before { content:'>'; position:absolute; left:0; color:var(--acc); font-weight:700; }
.svc-link {
    font-family:var(--mono); font-size:.7rem; letter-spacing:.1em;
    color:var(--acc); border-top:1px solid var(--bdr); padding-top:1.1rem;
    display:block; transition:color .2s, letter-spacing .2s;
}
.svc-link:hover { color:var(--acc2); letter-spacing:.14em; }

/* ============================================================
   ABOUT SECTION
   ============================================================ */
.about { background:var(--bg0); border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr); }
.about-grid { display:grid; grid-template-columns:1fr 380px; gap:6rem; align-items:start; }
.about-para { font-size:.975rem; font-weight:300; color:var(--txt); line-height:1.8; margin-bottom:1.4rem; }
.pillars { margin-top:2.5rem; display:flex; flex-direction:column; gap:1.4rem; }
.pillar  { display:flex; gap:1rem; align-items:flex-start; }
.pillar-sym { color:var(--acc); font-size:1.05rem; flex-shrink:0; margin-top:.15rem; }
.pillar strong { display:block; font-family:var(--cond); font-size:.92rem; font-weight:700; color:var(--txt3); margin-bottom:.3rem; }
.pillar p { font-size:.85rem; font-weight:300; color:var(--txt); line-height:1.65; }

.about-card-wrap { position:sticky; top:80px; }
.about-card { background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r2); overflow:hidden; }
.about-card-top {
    background:var(--bg3); padding:3.5rem 2rem; text-align:center;
    border-bottom:1px solid var(--bdr); position:relative; overflow:hidden;
}
.about-card-top::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at top, var(--acc-glow) 0%, transparent 65%);
}
.card-logo-lg { font-family:var(--mono); font-size:2.6rem; font-weight:700; color:var(--txt3); letter-spacing:.12em; position:relative; }
.card-status-ring { position:absolute; bottom:1.5rem; right:1.5rem; width:8px; height:8px; background:var(--teal); border-radius:50%; animation:pulse 2s ease-in-out infinite; }
.about-card-rows { padding:1.25rem 1.5rem; display:flex; flex-direction:column; }
.card-row { display:flex; justify-content:space-between; align-items:center; padding:.8rem 0; border-bottom:1px solid var(--bdr); }
.card-row:last-child { border-bottom:none; }
.crow-label { font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.crow-val { font-size:.82rem; color:var(--txt2); text-align:right; }
.crow-val.active { color:var(--teal); font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; }

/* ============================================================
   WHY US / FEATURES ROW
   ============================================================ */
.why-us { background:var(--bg1); border-bottom:1px solid var(--bdr); }
.why-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--bdr); border:1px solid var(--bdr); border-radius:var(--r2); overflow:hidden; }
.why-card { background:var(--bg2); padding:2rem 1.75rem; transition:background .3s; }
.why-card:hover { background:var(--bg3); }
.why-icon { width:32px; height:32px; color:var(--acc); margin-bottom:1.25rem; }
.why-icon svg { width:100%; height:100%; }
.why-title { font-family:var(--cond); font-size:1rem; font-weight:700; color:var(--txt3); margin-bottom:.5rem; }
.why-desc  { font-size:.82rem; font-weight:300; color:var(--txt); line-height:1.65; }

/* ============================================================
   CONTACT SECTION
   ============================================================ */
.contact { background:var(--bg1); }
.contact-grid { display:grid; grid-template-columns:300px 1fr; gap:4rem; align-items:start; }
.cinfo-item { display:flex; align-items:flex-start; gap:1rem; margin-bottom:2rem; }
.cinfo-icon {
    width:36px; height:36px; flex-shrink:0; background:var(--acc-dim);
    border:1px solid rgba(232,80,16,.18); border-radius:var(--r);
    display:flex; align-items:center; justify-content:center; padding:.55rem; color:var(--acc);
}
.cinfo-icon svg { width:100%; height:100%; }
.cinfo-label { display:block; font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-bottom:.28rem; }
.cinfo-val { font-size:.88rem; color:var(--txt2); }
.cinfo-val.link { transition:color .2s; }
.cinfo-val.link:hover { color:var(--acc); }
.secure-note { margin-top:2.5rem; padding:1.25rem; background:var(--bg2); border:1px solid var(--bdr); border-left:2px solid var(--acc); border-radius:var(--r); }
.secure-note p { font-size:.8rem; font-weight:300; color:var(--txt); line-height:1.65; margin-top:.5rem; }

.contact-form-wrap { position:relative; }
.form-success { display:none; text-align:center; padding:4rem 2rem; background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r2); }
.form-success.show { display:block; }
.success-icon { width:56px; height:56px; background:var(--acc-dim); border:1px solid rgba(232,80,16,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem; color:var(--acc); }
.success-icon svg { width:24px; height:24px; }
.form-success h3 { font-family:var(--disp); font-size:2rem; color:var(--txt3); margin-bottom:.75rem; }
.form-success p { font-size:.9rem; font-weight:300; color:var(--txt); line-height:1.7; max-width:380px; margin:0 auto; }

.contact-form { background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r2); padding:2.5rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-bottom:1.25rem; }
.form-group { display:flex; flex-direction:column; gap:.48rem; margin-bottom:1.25rem; }
.form-group:last-of-type { margin-bottom:0; }
.form-group label { font-family:var(--mono); font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim); }
.req { color:var(--acc); }
.form-group input, .form-group select, .form-group textarea {
    background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r);
    padding:.72rem 1rem; color:var(--txt3); font-family:var(--body);
    font-size:.9rem; font-weight:300; outline:none; width:100%; cursor:none;
    transition:border-color .2s, box-shadow .2s, background .35s, color .35s;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:var(--dimmer); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--acc); box-shadow:0 0 0 3px var(--acc-dim); }
.form-group select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233a5060' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
.form-group select option { background:var(--bg3); color:var(--txt3); }
.form-group textarea { resize:vertical; min-height:130px; }
.check-label { display:flex; align-items:center; gap:.7rem; font-family:var(--mono); font-size:.72rem; color:var(--txt); cursor:none; text-transform:none !important; }
.check-label input[type="checkbox"] { display:none; }
.check-box { width:17px; height:17px; border:1px solid var(--bdr2); border-radius:2px; background:var(--bg3); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s; }
.check-label input:checked + .check-box { background:var(--acc); border-color:var(--acc); }
.check-label input:checked + .check-box::after { content:'✓'; color:#fff; font-size:10px; font-weight:700; }
.btn-submit { width:100%; margin-top:1.5rem; padding:.9rem 2rem; background:var(--acc); border:2px solid var(--acc); color:#fff; font-family:var(--cond); font-size:.95rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-radius:var(--r); cursor:none; display:flex; align-items:center; justify-content:center; gap:.75rem; transition:background .2s, border-color .2s, box-shadow .2s, transform .2s; }
.btn-submit svg { width:16px; height:16px; flex-shrink:0; }
.btn-submit:hover { background:var(--acc2); border-color:var(--acc2); transform:translateY(-2px); box-shadow:0 8px 28px var(--acc-glow); }
.btn-submit:active { transform:translateY(0); }
.btn-submit:disabled { opacity:.6; transform:none; }
.field-error { font-family:var(--mono); font-size:.6rem; color:#f05050; letter-spacing:.04em; margin-top:.2rem; }
.form-level-error { font-family:var(--mono); font-size:.7rem; color:#f05050; background:rgba(240,80,80,.08); border:1px solid rgba(240,80,80,.25); border-radius:var(--r); padding:.65rem 1rem; margin-bottom:1rem; letter-spacing:.03em; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background:var(--bg0); border-top:1px solid var(--bdr); padding:4rem 2.5rem 2rem; }
.footer .section-inner { padding:0; max-width:1240px; }
.footer-top { display:grid; grid-template-columns:1fr auto; gap:4rem; padding-bottom:3rem; margin-bottom:2rem; border-bottom:1px solid var(--bdr); }
.footer-logo { font-family:var(--mono); font-size:.9rem; font-weight:700; color:var(--txt3); letter-spacing:.12em; display:block; margin-bottom:.75rem; }
.footer-brand p { font-size:.82rem; font-weight:300; color:var(--dim); line-height:1.7; max-width:320px; }
.footer-nav { display:flex; gap:4rem; }
.fnav-col { display:flex; flex-direction:column; gap:.65rem; }
.fnav-title { font-family:var(--mono); font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); margin-bottom:.35rem; }
.fnav-col a { font-size:.82rem; font-weight:300; color:var(--txt); transition:color .2s; }
.fnav-col a:hover { color:var(--acc); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; font-family:var(--mono); font-size:.65rem; letter-spacing:.06em; color:var(--dim); padding-top:1.5rem; }
.footer-tag { letter-spacing:.12em; }

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal-up {
    opacity:0; transform:translateY(28px);
    transition: opacity .65s ease var(--delay,0s), transform .65s ease var(--delay,0s);
}
.reveal-up.in { opacity:1; transform:translateY(0); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1200px) {
    .hero-inner { grid-template-columns:1fr 380px; }
}
@media (max-width:1100px) {
    .hero-inner { grid-template-columns:1fr; gap:3rem; }
    .hero-visual { display:none; }
    .about-grid { grid-template-columns:1fr; gap:3rem; }
    .about-card-wrap { position:static; }
    .contact-grid { grid-template-columns:1fr; gap:3rem; }
    .footer-top { grid-template-columns:1fr; gap:2.5rem; }
    .why-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
    .svc-grid { grid-template-columns:1fr 1fr; }
    .svc-card, .svc-card:nth-child(4), .svc-card:nth-child(5) { grid-column:span 1; }
}
@media (max-width:768px) {
    .nav-links { display:none; }
    .hamburger  { display:flex; }
    .hero-title { font-size:clamp(3rem, 11vw, 5rem); }
    .hero-stats { gap:1.5rem; }
    .stat-sep   { width:40px; height:1px; }
    .svc-grid   { grid-template-columns:1fr; }
    .svc-card, .svc-card:nth-child(4), .svc-card:nth-child(5) { grid-column:span 1; }
    .form-row   { grid-template-columns:1fr; }
    .footer-nav { flex-direction:column; gap:2rem; }
    .footer-bottom { flex-direction:column; gap:.4rem; text-align:center; }
    .scroll-hint { display:none; }
    .cursor, .cursor-ring { display:none; }
    html { cursor:auto; }
    *, button { cursor:auto !important; }
    .why-grid { grid-template-columns:1fr; }
}
@media (max-width:540px) {
    .section-inner { padding:4rem 1.5rem; }
    .hero-inner    { padding:5rem 1.5rem 6rem; }
    .hero-stats    { flex-direction:column; align-items:flex-start; gap:1.25rem; }
    .contact-form  { padding:1.75rem; }
    .footer        { padding:3rem 1.5rem 1.5rem; }
}


