/* Netvision Solutions — marketing site
   Tokens adapted from the Netvision Solutions Design System (tokens/*.css). */
/* Self-hosted brand fonts (latin subset) — no third-party font requests. */
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/Poppins-400-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/Poppins-500-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/Poppins-600-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/Poppins-700-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/IBM-Plex-Sans-400-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/IBM-Plex-Sans-400-italic.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/IBM-Plex-Sans-500-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/IBM-Plex-Sans-600-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/IBM-Plex-Sans-700-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/IBM-Plex-Mono-400-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/IBM-Plex-Mono-500-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/Sacramento-400-normal.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --coral-50:#FFF2F4; --coral-100:#FFE2E7; --coral-200:#FFC6D0; --coral-300:#FFA0B0;
  --coral-400:#FF8496; --coral-500:#FF677E; --coral-600:#F04463; --coral-700:#C82E4A;
  --coral-800:#992438; --coral-900:#661828;

  --ink-25:#FAF9F9; --ink-50:#F5F3F3; --ink-100:#EAE6E7; --ink-200:#D7D1D2; --ink-300:#B4ABAD;
  --ink-400:#8E8587; --ink-500:#6E6567; --ink-600:#524A4C; --ink-700:#413B3C; --ink-800:#2E2A2B; --ink-900:#1D1A1B;

  --slate-100:#EDEFF3; --slate-300:#B9BFCB; --slate-500:#6C7789; --slate-700:#3C4553; --slate-900:#1B2130;

  --green-100:#DFF3EA; --green-700:#14724D;
  --blue-100:#E1EBF7; --blue-700:#1E4C80;

  --white:#FFFFFF;

  --text-strong:var(--ink-900); --text-body:var(--ink-700); --text-muted:var(--ink-500); --text-subtle:var(--ink-400);
  --text-brand:var(--coral-700); --text-on-dark-muted:rgba(255,255,255,.72); --text-link:var(--coral-700); --text-link-hover:var(--coral-800);

  --surface-page:var(--white); --surface-subtle:var(--ink-25); --surface-sunken:var(--ink-50);
  --surface-inverse:var(--ink-900); --surface-brand:var(--coral-700); --surface-brand-soft:var(--coral-50);
  --surface-brand-hover:var(--coral-800); --surface-brand-active:var(--coral-900);

  --border-subtle:var(--ink-100); --border-default:var(--ink-200); --border-strong:var(--ink-300);
  --border-inverse:rgba(255,255,255,.16); --focus-ring:rgba(255,103,126,.42);

  --status-success-fg:var(--green-700); --status-success-bg:var(--green-100);
  --status-info-fg:var(--blue-700); --status-info-bg:var(--blue-100);

  --gradient-brand:linear-gradient(103deg,var(--coral-700) 0%,#B32842 58%,#9E2340 100%);
  --gradient-ink:linear-gradient(160deg,var(--ink-900) 0%,var(--slate-900) 100%);
  --gradient-wash:linear-gradient(180deg,var(--coral-50) 0%,rgba(255,255,255,0) 100%);

  --font-display:"Poppins","Helvetica Neue",Arial,sans-serif;
  --font-body:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-script:"Sacramento",cursive;

  --text-2xs:11px; --text-xs:12px; --text-sm:14px; --text-base:16px; --text-md:18px; --text-lg:21px;
  --text-xl:26px; --text-2xl:32px; --text-3xl:40px; --text-4xl:52px;

  --leading-tight:1.05; --leading-snug:1.18; --leading-normal:1.35; --leading-relaxed:1.6;
  --tracking-tighter:-0.03em; --tracking-tight:-0.015em; --tracking-eyebrow:0.14em;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-7:32px; --space-8:40px; --space-9:48px; --space-10:64px; --space-11:80px; --space-12:96px;

  --container-max:1200px; --container-narrow:760px;
  --control-h-sm:32px; --control-h-md:40px; --control-h-lg:48px;

  --radius-xs:3px; --radius-sm:6px; --radius-md:10px; --radius-lg:14px; --radius-xl:20px; --radius-pill:999px;
  --radius-control:var(--radius-sm); --radius-card:var(--radius-lg); --radius-panel:var(--radius-xl);

  --shadow-xs:0 1px 2px rgba(29,26,27,.06);
  --shadow-md:0 4px 12px rgba(29,26,27,.08),0 1px 3px rgba(29,26,27,.05);
  --shadow-lg:0 12px 32px rgba(29,26,27,.10),0 2px 6px rgba(29,26,27,.05);
  --shadow-brand:0 10px 26px rgba(200,46,74,.26);
  --ring-focus:0 0 0 3px var(--focus-ring);
  --blur-panel:saturate(140%) blur(14px);

  --duration-fast:140ms; --duration-base:220ms;
  --ease-standard:cubic-bezier(.2,.6,.2,1);
  --ease-emphasis:cubic-bezier(.16,.84,.28,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;color:var(--text-strong);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);margin:0 0 var(--space-4)}
h1{font-size:var(--text-4xl);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight)}
h2{font-size:var(--text-2xl)}
h3{font-size:var(--text-lg)}
p{margin:0 0 var(--space-4)}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
img{max-width:100%;display:block}
button{font-family:inherit}
::selection{background:var(--coral-200);color:var(--ink-900)}

.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}
.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-brand);margin-bottom:var(--space-3);display:block}
.eyebrow.on-dark{color:var(--coral-500)}
.script{font-family:var(--font-script);font-size:var(--text-xl);color:var(--ink-600);line-height:1.1}
.lead{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--text-muted);max-width:34em}
.section{padding:var(--space-12) 0}
.section--md{padding:var(--space-11) 0}
.section--sm{padding:var(--space-9) 0}
.section--subtle{background:var(--surface-subtle)}
.section--sunken{background:var(--surface-sunken)}
.section--inverse{background:var(--surface-inverse);color:var(--text-on-dark-muted)}
.section--inverse h2,.section--inverse h1{color:#fff}
.section-head{max-width:680px;margin-bottom:var(--space-9)}
.section-head p{margin:0}
.icon{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.15em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--space-5);border-radius:var(--radius-control);font-weight:600;font-size:var(--text-sm);border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);white-space:nowrap}
.btn svg{width:16px;height:16px}
.btn-lg{height:var(--control-h-lg);padding:0 var(--space-6);font-size:var(--text-base)}
.btn-sm{height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--text-sm)}
.btn-primary{background:var(--surface-brand);color:#fff;box-shadow:var(--shadow-xs)}
.btn-primary:hover{background:var(--surface-brand-hover)}
.btn-primary:active{background:var(--surface-brand-active);transform:translateY(1px)}
.btn-secondary{background:transparent;color:var(--ink-800);border-color:var(--border-strong)}
.btn-secondary:hover{background:var(--ink-25);border-color:var(--ink-400)}
.btn-inverse{background:#fff;color:var(--ink-900)}
.btn-inverse:hover{background:var(--ink-50)}
.btn-ghost{background:transparent;color:var(--coral-700);height:auto;padding:0}
.btn-ghost:hover{color:var(--coral-800)}
.btn:focus-visible{outline:none;box-shadow:var(--ring-focus)}

/* Header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.86);backdrop-filter:var(--blur-panel);-webkit-backdrop-filter:var(--blur-panel);border-bottom:1px solid var(--border-subtle)}
.site-header .container{height:76px;display:flex;align-items:center;gap:var(--space-8)}
.site-header .logo{height:22px;display:block}
.nav-links{display:flex;gap:var(--space-6);margin-left:var(--space-4)}
.nav-links a{font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}
.nav-links a:hover,.nav-links a.active{color:var(--ink-900)}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}
.nav-toggle{display:none;background:none;border:0;padding:var(--space-2);cursor:pointer;color:var(--ink-900);flex:0 0 auto}
.nav-cta-mobile{display:none}

/* Hero */
.hero{background:var(--gradient-wash);border-bottom:1px solid var(--border-subtle)}
.hero .container{padding-top:var(--space-12);padding-bottom:var(--space-12);display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-10);align-items:center}
.hero h1{max-width:11em;margin-bottom:var(--space-5)}
.hero-ctas{display:flex;gap:var(--space-3);margin-bottom:var(--space-8)}
.stat-row{display:flex;gap:var(--space-9)}
.stat-value{font-family:var(--font-mono);font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text-strong)}
.stat-value.on-dark{color:#fff}
.stat-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px}
.stat-label.on-dark{color:var(--text-on-dark-muted)}
.image-placeholder{border-radius:var(--radius-card);background-image:var(--gradient-ink);background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:flex-end;padding:var(--space-5);position:relative;overflow:hidden;color:rgba(255,255,255,.5)}
.image-placeholder::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,26,27,0) 0%,rgba(29,26,27,.6) 100%);pointer-events:none}
.image-placeholder span{position:relative;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}

/* Client row */
.client-row{display:flex;flex-wrap:wrap;gap:var(--space-8);align-items:center;justify-content:space-between;opacity:.75}
.client-row span{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--ink-400);letter-spacing:-.01em}
.client-row-label{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-subtle);margin-bottom:var(--space-7);text-align:center}

/* Cards */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);transition:box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}
.card--raised{box-shadow:var(--shadow-md);border-color:transparent}
.card--accent{position:relative}
.card--accent::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--gradient-brand)}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.card-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--coral-50);color:var(--coral-600);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-1)}
.card-icon svg{width:22px;height:22px}
.card h3{margin:0}
.card p{margin:0;color:var(--text-muted);font-size:var(--text-sm);flex:1}

/* Process */
.process-list{display:flex;flex-direction:column;gap:var(--space-4)}
.process-item{display:flex;gap:var(--space-4);align-items:flex-start}
.process-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:#fff}
.process-icon svg{width:19px;height:19px}
.process-title{color:#fff;font-family:var(--font-display);font-weight:600;font-size:var(--text-base)}
.process-desc{color:var(--text-on-dark-muted);font-size:var(--text-sm)}

/* Badges & tags */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600}
.badge-brand{background:var(--surface-brand-soft);color:var(--coral-700)}
.badge-neutral{background:var(--ink-50);color:var(--ink-600)}
.badge-success{background:var(--status-success-bg);color:var(--status-success-fg)}
.badge-info{background:var(--status-info-bg);color:var(--status-info-fg)}
.badge-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tag{display:inline-flex;align-items:center;padding:6px 14px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;border:1px solid var(--border-default);background:#fff;color:var(--ink-600);cursor:pointer}
.tag:hover{border-color:var(--ink-400)}
.tag.selected{background:var(--coral-50);border-color:var(--coral-300);color:var(--coral-800)}

/* Case study cards */
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}
.case-card{border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;background:#fff}
.case-card .image-placeholder{border-radius:0}
.case-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.case-body h3{margin:0}
.case-body p{margin:0;font-size:var(--text-sm);color:var(--text-muted)}
.case-tags{display:flex;gap:var(--space-2)}
.case-metric{font-family:var(--font-mono);font-size:var(--text-base);color:var(--coral-700)}
.case-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-2)}

/* CTA panel */
.cta-panel{background:var(--gradient-brand);border-radius:var(--radius-panel);padding:var(--space-11) var(--space-10);display:flex;align-items:center;justify-content:space-between;gap:var(--space-9);box-shadow:var(--shadow-brand)}
.cta-panel h2{color:#fff;margin-bottom:var(--space-3)}
.cta-panel p{color:rgba(255,255,255,.9);margin:0;font-size:var(--text-md);max-width:40em}

/* Testimonial */
.testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:center}
.testimonial-quote{font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--text-strong);font-family:var(--font-display);font-weight:500;letter-spacing:var(--tracking-tight);margin:0 0 var(--space-5)}
.testimonial-attr{font-size:var(--text-sm);color:var(--text-muted)}
.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.credential-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6)}
.credential-card h4{margin:0 0 var(--space-2);font-size:var(--text-base)}
.credential-card p{margin:0;font-size:var(--text-sm);color:var(--text-muted)}

/* Forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:var(--text-sm);font-weight:600;color:var(--ink-800)}
.field input,.field select,.field textarea{height:var(--control-h-md);border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:0 var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-body);background:#fff}
.field textarea{height:auto;padding:var(--space-3) var(--space-4);min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--coral-500);box-shadow:var(--ring-focus)}
.field .hint{font-size:var(--text-xs);color:var(--text-subtle)}
.field .error{font-size:var(--text-xs);color:var(--coral-700)}
.field.has-error input{border-color:var(--coral-600)}
.radio-group{display:flex;flex-direction:column;gap:var(--space-3)}
.radio-option{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer}
.radio-option:has(input:checked){border-color:var(--coral-400);background:var(--coral-50)}
.radio-option input{margin-top:3px}
.radio-option .radio-title{font-size:var(--text-sm);font-weight:600;color:var(--ink-800)}
.radio-option .radio-desc{font-size:var(--text-xs);color:var(--text-muted)}
.checkbox-row{display:flex;gap:var(--space-3);align-items:flex-start}
.checkbox-row input{margin-top:3px}
.checkbox-row .cb-title{font-size:var(--text-sm);font-weight:600;color:var(--ink-800)}
.checkbox-row .cb-desc{font-size:var(--text-xs);color:var(--text-muted)}
.contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:var(--space-10);align-items:start}
.contact-side{display:flex;flex-direction:column;gap:var(--space-5)}
.contact-item{display:flex;gap:var(--space-3);align-items:center;font-size:var(--text-sm)}
.contact-item svg{color:var(--coral-600);width:17px;height:17px}
.form-success{display:none;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--status-success-bg);color:var(--status-success-fg);font-size:var(--text-sm);font-weight:600;margin-top:var(--space-5)}
.form-success.visible{display:flex}

/* Footer */
.site-footer{background:var(--surface-inverse);color:var(--text-on-dark-muted);padding:var(--space-12) 0 var(--space-7)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-9)}
.footer-logo{height:54px}
.footer-desc{margin-top:var(--space-5);font-size:var(--text-sm);line-height:var(--leading-relaxed);max-width:280px}
.footer-col-title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:#fff;margin-bottom:var(--space-4)}
.footer-col a{display:block;font-size:var(--text-sm);color:var(--text-on-dark-muted);margin-bottom:var(--space-3)}
.footer-col a:hover{color:#fff}
.footer-bottom{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--border-inverse);display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);flex-wrap:wrap;gap:var(--space-4)}
.footer-bottom-links{display:flex;gap:var(--space-6)}
.footer-bottom-links a{color:var(--text-on-dark-muted)}
.footer-bottom-links a:hover{color:#fff}

/* Reveal-on-scroll */
.reveal{opacity:0;transform:translateY(12px);transition:opacity 560ms var(--ease-emphasis),transform 560ms var(--ease-emphasis)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* Responsive */
@media (max-width:960px){
  .hero .container{grid-template-columns:1fr}
  .hero .image-placeholder{order:-1;height:280px!important}
  .testimonial-grid{grid-template-columns:1fr}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .case-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1 / -1}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .site-header .container{gap:var(--space-4)}
  .nav-links,.header-actions .btn-primary{display:none}
  .nav-toggle{display:inline-flex}
  .site-header.open .nav-links{display:flex;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);gap:var(--space-4);box-shadow:var(--shadow-md)}
  .nav-cta-mobile{display:none;justify-content:center;margin-top:var(--space-2)}
  .site-header.open .nav-cta-mobile{display:inline-flex}
  h1{font-size:var(--text-3xl)}
  .card-grid{grid-template-columns:1fr}
  .stat-row{gap:var(--space-6);flex-wrap:wrap}
  .cta-panel{flex-direction:column;align-items:flex-start;padding:var(--space-8) var(--space-6)}
  .form-grid{grid-template-columns:1fr}
  .credential-grid{grid-template-columns:1fr}
}
