/* ==========================================================================
   MAGNUS WEBSERVICES — main.css
   Built against Design System v1.0 (April 2026)
   Light mode · Clean · Clinical · Premium
   ========================================================================== */

/* ---------- 1. TOKENS -------------------------------------------------- */
:root{
  --navy:#0D173A;
  --teal:#26B19C;
  --teal-hover:#1F9A86;
  --teal-active:#198A78;
  --light-teal:#E8F6F3;
  --offwhite:#F7F9FC;
  --white:#FFFFFF;
  --body:#1A2744;
  --muted:#6B7A99;
  --border:#E3E8F1;
  --success:#10B981;
  --error:#EF4444;
  --warning:#F59E0B;

  --font-family:'Inter',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;

  --space-xs:4px;
  --space-sm:8px;
  --space-md:16px;
  --space-lg:24px;
  --space-xl:32px;
  --space-2xl:48px;
  --space-3xl:64px;
  --space-4xl:96px;

  --radius-subtle:4px;
  --radius-base:6px;
  --radius-card:8px;
  --radius-container:12px;
  --radius-pill:9999px;

  --shadow-0:none;
  --shadow-1:0 1px 3px rgba(13,23,58,.06);
  --shadow-2:0 4px 12px rgba(13,23,58,.10);
  --shadow-3:0 8px 24px rgba(13,23,58,.14);

  --t-fast:100ms ease;
  --t-base:150ms ease;
  --t-slow:300ms ease;
  --t-hero:400ms ease;
  --ease-out:cubic-bezier(.16,1,.3,1);

  --max-content:1200px;
  --max-text:720px;
  --max-form:560px;
}

/* ---------- 2. RESET --------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-family);font-weight:400;font-size:16px;line-height:1.65;color:var(--body);background:var(--offwhite);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,svg,video{max-width:100%;display:block}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
a{color:var(--teal);text-decoration:none;transition:color var(--t-base)}
a:hover{color:var(--teal-hover)}
ul,ol{list-style:none}
.skip-link{position:absolute;top:-100px;left:16px;background:var(--teal);color:var(--white);padding:12px 20px;border-radius:var(--radius-base);font-weight:500;z-index:9999;transition:top var(--t-base)}
.skip-link:focus{top:16px;color:var(--white)}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:var(--radius-subtle)}

/* ---------- 3. TYPOGRAPHY ---------------------------------------------- */
h1,h2,h3,h4,h5,h6{font-family:var(--font-family);color:var(--navy);letter-spacing:-.015em}
.display-h1{font-size:clamp(32px,5.5vw,56px);font-weight:400;line-height:1.1;letter-spacing:-.02em}
h1{font-size:clamp(28px,4.5vw,48px);font-weight:500;line-height:1.15;letter-spacing:-.015em}
h2{font-size:clamp(24px,3.5vw,36px);font-weight:500;line-height:1.2;letter-spacing:-.01em}
h3{font-size:clamp(20px,2.2vw,26px);font-weight:500;line-height:1.3;letter-spacing:0}
h4{font-size:14px;font-weight:500;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
p{font-size:16px;line-height:1.65;color:var(--body)}
.lede{font-size:clamp(17px,1.5vw,19px);line-height:1.6;color:var(--body);max-width:var(--max-text)}
.small{font-size:14px;line-height:1.6}
.muted{color:var(--muted)}
.fine{font-size:13px;line-height:1.55;color:var(--muted)}
.eyebrow{font-size:13px;font-weight:500;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);display:inline-block;margin-bottom:var(--space-md)}
h1 em,h2 em,h3 em,.display-h1 em{font-style:normal;color:var(--teal);font-weight:500}

/* ---------- 4. LAYOUT -------------------------------------------------- */
.container{width:100%;max-width:var(--max-content);margin:0 auto;padding:0 var(--space-lg)}
@media(min-width:768px){.container{padding:0 var(--space-xl)}}
section{padding:var(--space-3xl) 0}
@media(max-width:767px){section{padding:var(--space-2xl) 0}}
.section-alt{background:var(--offwhite)}
.section-light{background:var(--white)}
.section-tint{background:var(--light-teal)}

/* ---------- 5. BUTTONS ------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);height:48px;padding:0 var(--space-lg);font-size:15px;font-weight:500;letter-spacing:.02em;line-height:1;border-radius:var(--radius-base);transition:background-color var(--t-base),transform var(--t-base),box-shadow var(--t-base),border-color var(--t-base);white-space:nowrap;text-decoration:none;cursor:pointer}
.btn-primary{background:var(--teal);color:var(--white)}
.btn-primary:hover{background:var(--teal-hover);color:var(--white);transform:translateY(-1px);box-shadow:var(--shadow-2)}
.btn-primary:active{background:var(--teal-active);transform:translateY(0)}
.btn-secondary{background:transparent;color:var(--teal);border:1.5px solid var(--teal)}
.btn-secondary:hover{background:var(--light-teal);color:var(--teal-hover)}
.btn-tertiary{color:var(--teal);padding:0;height:auto}
.btn-tertiary:hover{color:var(--teal-hover);text-decoration:underline}
.btn-large{height:56px;padding:0 var(--space-xl);font-size:16px}
.btn-arrow{transition:transform var(--t-base)}
.btn:hover .btn-arrow{transform:translateX(3px)}
.btn:disabled,.btn.disabled{background:var(--border)!important;color:var(--muted)!important;cursor:not-allowed;border-color:var(--border)!important}
@media(max-width:640px){.btn{height:44px}}

/* ---------- 6. NAVIGATION ---------------------------------------------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:72px;background:rgba(247,249,252,.8);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:background-color var(--t-base),border-color var(--t-base),box-shadow var(--t-base)}
.nav.scrolled{background:rgba(255,255,255,.95);border-bottom-color:var(--border);box-shadow:var(--shadow-1)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--max-content);margin:0 auto;padding:0 var(--space-lg)}
@media(min-width:768px){.nav-inner{padding:0 var(--space-xl)}}
.nav-brand{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none}
.nav-brand img{height:40px;width:auto}
@media(max-width:640px){.nav-brand img{height:34px}}
.nav-links{display:none;align-items:center;gap:var(--space-xl)}
@media(min-width:960px){.nav-links{display:flex}}
.nav-link{font-size:15px;font-weight:400;color:var(--navy);padding:8px 0;position:relative;transition:color var(--t-base)}
.nav-link:hover,.nav-link.active{color:var(--teal)}
.nav-link.active::after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--teal);border-radius:2px}
.has-sub{position:relative}
.has-sub > button,.has-sub > a{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--navy);padding:8px 0}
.has-sub .chev{width:14px;height:14px;transition:transform var(--t-base);stroke:currentColor}
.has-sub:hover .chev,.has-sub.open .chev{transform:rotate(180deg)}
/* Bridge the gap between the trigger and submenu so hover is not lost mid-travel */
.has-sub::after{content:'';position:absolute;top:100%;left:-8px;right:-8px;height:14px;pointer-events:auto}
.submenu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-4px);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-2);min-width:260px;padding:var(--space-sm);opacity:0;pointer-events:none;transition:all var(--t-base)}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.submenu a{display:block;padding:12px 14px;font-size:14px;color:var(--navy);border-radius:var(--radius-base);transition:background-color var(--t-base)}
.submenu a strong{display:block;font-weight:500;margin-bottom:2px}
.submenu a span{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.submenu a:hover{background:var(--light-teal)}
.submenu a:hover strong{color:var(--teal)}
.nav-cta{display:none}
@media(min-width:960px){.nav-cta{display:inline-flex}}
.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;align-items:center;border-radius:var(--radius-base);transition:background-color var(--t-base)}
@media(min-width:960px){.nav-toggle{display:none}}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);border-radius:2px;transition:transform var(--t-base),opacity var(--t-base)}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-drawer{position:fixed;top:72px;left:0;right:0;bottom:0;background:var(--white);padding:var(--space-xl) var(--space-lg);transform:translateY(-10px);opacity:0;pointer-events:none;transition:transform var(--t-slow),opacity var(--t-slow);overflow-y:auto}
.nav.open .nav-drawer{transform:translateY(0);opacity:1;pointer-events:auto}
.nav-drawer .nav-link,.nav-drawer .has-sub > button{display:block;padding:var(--space-md) 0;font-size:17px;width:100%;text-align:left;border-bottom:1px solid var(--border)}
.nav-drawer .submenu{position:static;transform:none;opacity:1;pointer-events:auto;box-shadow:none;border:none;background:var(--light-teal);padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);display:none}
.nav-drawer .has-sub.open .submenu{display:block}
.nav-drawer .submenu a{padding:12px 0;border-bottom:1px solid rgba(13,23,58,.08)}
.nav-drawer .submenu a:last-child{border-bottom:none}
.nav-drawer .btn{margin-top:var(--space-lg);width:100%}

/* ---------- 7. HERO ---------------------------------------------------- */
.hero{position:relative;padding:0;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:#0D173A}
.hero-video-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.hero-video-overlay{position:absolute;inset:0;background:linear-gradient(160deg,rgba(5,12,30,.72) 0%,rgba(8,20,55,.58) 100%);z-index:1;pointer-events:none}
.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--max-content);margin:0 auto;padding:calc(72px + var(--space-3xl)) var(--space-lg) var(--space-3xl)}
@media(min-width:768px){.hero-inner{padding-left:var(--space-xl);padding-right:var(--space-xl)}}
.hero-content{max-width:700px}
.hero-content h1{margin-top:var(--space-md);color:#fff}
.hero-content h1 em{color:#4DD9C0}
.hero-content .eyebrow{color:rgba(77,217,192,.9)}
.hero-content .lede{margin-top:var(--space-lg);max-width:600px;color:rgba(255,255,255,.78)}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xl)}
.hero-trust{display:flex;flex-wrap:wrap;gap:var(--space-md) var(--space-lg);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.12)}
.hero-trust-item{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.55);font-weight:500;letter-spacing:.05em}
.hero-trust-item svg{width:16px;height:16px;color:#4DD9C0;flex-shrink:0}

/* --- Hero badge pill --- */
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:rgba(38,177,156,.15);border:1px solid rgba(77,217,192,.38);border-radius:var(--radius-pill);font-size:13px;font-weight:500;color:#4DD9C0;margin-bottom:12px}
.hero-badge-dot{width:8px;height:8px;border-radius:50%;background:#4DD9C0;flex-shrink:0;animation:heroBadgePulse 2.4s ease-in-out infinite}
@keyframes heroBadgePulse{0%,100%{box-shadow:0 0 0 0 rgba(77,217,192,.5)}70%{box-shadow:0 0 0 6px rgba(77,217,192,0)}}

/* --- CTA micro-note --- */
.hero-cta-note{font-size:12px;color:rgba(255,255,255,.38);margin-top:10px;letter-spacing:.01em}

/* --- Ghost/outline button for dark hero background --- */
.btn-hero-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45)}
.btn-hero-outline:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.72)}
.btn-hero-outline:active{background:rgba(255,255,255,.14)}

/* --- Hero mobile --- */
@media(max-width:767px){
  .hero{align-items:flex-start}
  .hero-inner{padding-top:calc(72px + var(--space-xl));padding-bottom:var(--space-2xl)}
  .hero-content .lede{font-size:16px;line-height:1.6}
  .hero-cta-row{flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}
  .hero-cta-row .btn{width:100%;justify-content:center}
  .hero-trust{margin-top:var(--space-lg);gap:var(--space-sm) var(--space-lg)}
  .hero-trust-item{font-size:12px}
  .hero-badge{font-size:12px;padding:5px 12px}
}
@media(max-width:480px){
  .hero-inner{padding-top:calc(72px + var(--space-lg));padding-bottom:var(--space-xl);padding-left:var(--space-md);padding-right:var(--space-md)}
  .hero-trust{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}
  .hero-cta-note{font-size:11px}
}

/* Marquee */
.marquee{padding:var(--space-2xl) 0;background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
.marquee-label{text-align:center;font-size:12px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;font-weight:500;margin-bottom:var(--space-lg)}
.marquee-track{display:flex;gap:var(--space-3xl);animation:marquee 40s linear infinite;width:max-content}
.marquee-item{font-size:13px;color:var(--muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;gap:8px}
.marquee-item svg{width:14px;height:14px;color:var(--teal)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 8. CARDS & GRIDS ------------------------------------------ */
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--t-slow),transform var(--t-slow),border-color var(--t-slow)}
.card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px);border-color:rgba(38,177,156,.3)}
.services-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-top:var(--space-2xl)}
@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr)}}
.service-card{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--t-slow),transform var(--t-slow),border-color var(--t-slow)}
.service-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px);border-color:rgba(38,177,156,.3)}
.service-card .svc-icon{width:48px;height:48px;border-radius:var(--radius-base);background:var(--light-teal);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md);transition:background-color var(--t-slow)}
.service-card .svc-icon svg{width:24px;height:24px;color:var(--teal);transition:color var(--t-slow)}
.service-card:hover .svc-icon{background:var(--teal)}
.service-card:hover .svc-icon svg{color:var(--white)}
.service-card h3{margin-bottom:var(--space-sm);font-size:20px}
.service-card p{font-size:15px;color:var(--muted);line-height:1.6;margin-bottom:var(--space-md)}
.service-card .more{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--teal);transition:gap var(--t-base)}
.service-card:hover .more{gap:10px}

.reasons{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-top:var(--space-2xl)}
@media(min-width:768px){.reasons{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.reasons{grid-template-columns:repeat(3,1fr)}}
.reason{padding:var(--space-lg);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);border-top:3px solid var(--teal);transition:box-shadow var(--t-slow),transform var(--t-slow)}
.reason:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.reason-num{font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--space-sm)}
.reason h3{font-size:19px;margin-bottom:var(--space-sm)}
.reason p{font-size:15px;color:var(--muted);line-height:1.6}

.split{display:grid;grid-template-columns:1fr;gap:var(--space-2xl);align-items:center}
@media(min-width:960px){.split{grid-template-columns:1fr 1fr;gap:var(--space-3xl)}}
.split-image{min-height:320px;border-radius:var(--radius-container);background-size:cover;background-position:center;box-shadow:var(--shadow-2);position:relative;overflow:hidden}
.split-content h2{margin-bottom:var(--space-md)}
.split-content p{margin-bottom:var(--space-md)}

.process{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-top:var(--space-2xl);position:relative}
@media(min-width:640px){.process{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.process{grid-template-columns:repeat(4,1fr)}}
.process-step{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-lg);position:relative;transition:box-shadow var(--t-slow),transform var(--t-slow);z-index:1}
.process-step:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.process-num{width:40px;height:40px;border-radius:var(--radius-pill);background:var(--light-teal);color:var(--teal);font-weight:500;font-size:14px;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md)}
.process-step h3{font-size:18px;margin-bottom:var(--space-sm)}
.process-step p{font-size:14px;color:var(--muted);line-height:1.55}
@media(min-width:1024px){.process::before{content:"";position:absolute;top:44px;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--border) 10%,var(--border) 90%,transparent);z-index:0}}

.compliance-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin-top:var(--space-xl)}
@media(min-width:768px){.compliance-grid{grid-template-columns:repeat(4,1fr)}}
.compliance-badge{background:var(--light-teal);border:1px solid rgba(38,177,156,.25);border-radius:var(--radius-card);padding:var(--space-md);text-align:center;transition:transform var(--t-slow)}
.compliance-badge:hover{transform:translateY(-2px)}
.compliance-badge svg{width:24px;height:24px;color:var(--teal);margin:0 auto var(--space-sm)}
.compliance-badge strong{display:block;font-weight:500;font-size:14px;color:var(--navy);letter-spacing:.04em}
.compliance-badge span{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.4}

.info-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);margin-top:var(--space-xl)}
@media(min-width:640px){.info-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.info-grid{grid-template-columns:repeat(4,1fr)}}
.info-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-lg);transition:box-shadow var(--t-slow),transform var(--t-slow)}
.info-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}
.info-icon{width:40px;height:40px;border-radius:var(--radius-base);background:var(--light-teal);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md)}
.info-icon svg{width:20px;height:20px;color:var(--teal)}
.info-card h3{font-size:17px;margin-bottom:4px}
.info-card p{font-size:14px;color:var(--body);margin-bottom:2px}
.info-card p.small{font-size:12px;color:var(--muted)}

.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);margin-top:var(--space-2xl)}
@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-lg);text-align:center}
.stat-card .num{font-size:36px;font-weight:500;color:var(--navy);letter-spacing:-.02em;line-height:1.1;display:block}
.stat-card .lbl{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:.05em;margin-top:var(--space-sm);display:block}

/* ---------- 9. FAQ ----------------------------------------------------- */
.faq{max-width:var(--max-text);margin:var(--space-2xl) auto 0}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-lg) 0;text-align:left;font-size:17px;font-weight:500;color:var(--navy);line-height:1.4;transition:color var(--t-base)}
.faq-q:hover{color:var(--teal)}
.faq-q .chev{width:18px;height:18px;color:var(--teal);transition:transform var(--t-slow) var(--ease-out);flex-shrink:0;stroke-width:2}
.faq-item.open .faq-q .chev{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height var(--t-slow) var(--ease-out);color:var(--body)}
.faq-item.open .faq-a{max-height:500px}
.faq-a-inner{padding:0 0 var(--space-lg);font-size:15px;line-height:1.65;color:var(--muted)}

/* ---------- 10. CTA BLOCK ---------------------------------------------- */
.cta-block{background:linear-gradient(135deg,var(--navy) 0%,#162252 100%);border-radius:var(--radius-container);padding:var(--space-3xl) var(--space-2xl);text-align:center;color:var(--white);margin:var(--space-2xl) auto 0;position:relative;overflow:hidden;max-width:var(--max-content)}
.cta-block::before{content:"";position:absolute;top:-50%;right:-20%;width:60%;height:200%;background:radial-gradient(circle,rgba(38,177,156,.25) 0%,transparent 60%);pointer-events:none}
.cta-block h2{color:var(--white);margin-bottom:var(--space-md);position:relative}
.cta-block h2 em{color:var(--teal)}
.cta-block p{color:rgba(255,255,255,.8);max-width:560px;margin:0 auto var(--space-xl);position:relative}
.cta-block .btn-row{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center;position:relative}
.cta-block .btn-secondary{border-color:rgba(255,255,255,.4);color:var(--white)}
.cta-block .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:var(--white);color:var(--white)}
@media(max-width:767px){.cta-block{padding:var(--space-2xl) var(--space-lg)}}

/* ---------- 11. PAGE HERO (interior) ----------------------------------- */
.page-hero{padding-top:calc(72px + var(--space-3xl));padding-bottom:var(--space-3xl);background:linear-gradient(180deg,var(--white) 0%,var(--offwhite) 100%);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;top:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(38,177,156,.08) 0%,transparent 65%);pointer-events:none}
.page-hero .container{position:relative;max-width:900px}
.page-hero h1{margin-top:var(--space-sm)}
.page-hero .lede{margin-top:var(--space-lg);font-size:clamp(17px,1.5vw,20px)}

/* ---------- 12. FORMS -------------------------------------------------- */
.form-block{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-2xl);box-shadow:var(--shadow-1);max-width:var(--max-form);margin:0 auto}
.form-block-wide{max-width:720px}
.form-group{margin-bottom:var(--space-lg)}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-lg)}
@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}
.form-label{display:block;font-size:14px;font-weight:500;color:var(--navy);margin-bottom:6px}
.form-label .req{color:var(--error);margin-left:2px}
.form-input,.form-select,.form-textarea{width:100%;height:48px;padding:12px 14px;font-family:var(--font-family);font-size:16px;color:var(--body);background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-base);transition:border-color var(--t-base),box-shadow var(--t-base)}
.form-textarea{height:auto;min-height:120px;padding:14px;line-height:1.55;resize:vertical}
.form-input::placeholder,.form-textarea::placeholder{color:var(--muted)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(38,177,156,.15)}
.form-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2326B19C'%3E%3Cpath d='M5 8l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px}
.form-note{font-size:13px;color:var(--muted);margin-top:var(--space-md);line-height:1.5}
.form-note a{color:var(--teal);text-decoration:underline}
.form-checkbox{display:flex;align-items:flex-start;gap:10px;padding:10px 0;cursor:pointer}
.form-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--teal);flex-shrink:0;cursor:pointer}
.form-checkbox label{font-size:14px;color:var(--body);line-height:1.5;cursor:pointer;flex:1}
.form-checkbox label .req{color:var(--error)}
.form-checkbox-group{display:grid;grid-template-columns:1fr;gap:8px;margin-top:6px}
@media(min-width:640px){.form-checkbox-group{grid-template-columns:repeat(2,1fr)}}
.form-checkbox-group .form-checkbox{padding:10px 14px;background:var(--offwhite);border:1px solid var(--border);border-radius:var(--radius-base);transition:all var(--t-base)}
.form-checkbox-group .form-checkbox:has(input:checked){background:var(--light-teal);border-color:var(--teal)}
.form-radio-group{display:grid;grid-template-columns:1fr;gap:10px;margin-top:6px}
@media(min-width:640px){.form-radio-group{grid-template-columns:repeat(2,1fr)}}
.form-radio{display:flex;flex-direction:column;gap:2px;padding:14px;background:var(--offwhite);border:1.5px solid var(--border);border-radius:var(--radius-base);cursor:pointer;transition:all var(--t-base);position:relative}
.form-radio input{position:absolute;opacity:0;pointer-events:none}
.form-radio span{font-weight:500;color:var(--navy);font-size:15px;line-height:1.3}
.form-radio em{font-style:normal;font-size:12px;color:var(--muted);line-height:1.4}
.form-radio:hover{border-color:var(--teal)}
.form-radio:has(input:checked){background:var(--light-teal);border-color:var(--teal)}
.form-radio:has(input:checked) span{color:var(--teal-hover)}
.form-section-title{margin:var(--space-xl) 0 var(--space-lg);padding-top:var(--space-xl);border-top:1px solid var(--border)}
.form-section-title:first-child{margin-top:0;padding-top:0;border-top:none}
.form-section-title h3{font-size:18px;font-weight:500;color:var(--navy);display:flex;align-items:center;gap:10px}
.form-section-title h3::before{content:attr(data-num);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--light-teal);color:var(--teal);font-size:12px;font-weight:500;letter-spacing:.05em}
.form-section-title p{font-size:14px;color:var(--muted);margin-top:6px;margin-left:38px}
.form-success{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-base);padding:var(--space-md);color:var(--navy);margin-top:var(--space-md);font-size:14px;line-height:1.55}
.form-success strong{color:var(--success)}
.form-error{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-base);padding:var(--space-md);color:var(--error);font-size:14px;line-height:1.55;margin-bottom:var(--space-md)}

/* ---------- 13. FOOTER ------------------------------------------------- */
.footer{background:var(--offwhite);border-top:2px solid var(--teal);padding:var(--space-3xl) 0 var(--space-xl)}
.footer-inner{max-width:var(--max-content);margin:0 auto;padding:0 var(--space-lg)}
@media(min-width:768px){.footer-inner{padding:0 var(--space-xl)}}
.footer-top{display:grid;grid-template-columns:1fr;gap:var(--space-xl);padding-bottom:var(--space-2xl);border-bottom:1px solid var(--border)}
@media(min-width:640px){.footer-top{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.footer-top{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.footer-brand img{height:44px;margin-bottom:var(--space-md)}
.footer-brand p{font-size:14px;color:var(--muted);line-height:1.6;max-width:320px}
.footer-tag{display:inline-block;margin-top:var(--space-md);font-size:13px;color:var(--teal);font-weight:500;letter-spacing:.04em}
.footer h4{font-size:12px;font-weight:500;color:var(--navy);letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--space-md)}
.footer ul{display:flex;flex-direction:column;gap:10px}
.footer ul a{font-size:14px;color:var(--body);transition:color var(--t-base)}
.footer ul a:hover{color:var(--teal)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-lg);font-size:12px;color:var(--muted)}
.footer-bottom a{color:var(--muted)}
.footer-bottom a:hover{color:var(--teal)}
.footer-social{display:flex;gap:10px}
.footer-social a{width:36px;height:36px;border-radius:var(--radius-base);background:var(--white);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--navy);transition:all var(--t-base)}
.footer-social a:hover{background:var(--teal);color:var(--white);border-color:var(--teal)}
.footer-social svg{width:16px;height:16px}

/* ---------- 14. COOKIE BANNER ----------------------------------------- */
.cookie-bar{position:fixed;bottom:0;left:0;right:0;z-index:200;background:rgba(13,23,58,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;gap:var(--space-xl);padding:12px var(--space-xl);font-size:13px;line-height:1.4;transform:translateY(100%);transition:transform .35s var(--ease-out);flex-wrap:wrap}
.cookie-bar.show{transform:translateY(0)}
.cookie-bar-text a{color:#4DD9C0;text-decoration:none}
.cookie-bar-text a:hover{text-decoration:underline}
.cookie-bar-actions{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}
.cookie-btn-accept{background:#26B19C;color:#fff;border:none;border-radius:var(--radius-pill);padding:6px 18px;font-size:12px;font-weight:500;cursor:pointer;transition:background var(--t-base);white-space:nowrap}
.cookie-btn-accept:hover{background:#1F9A86}
.cookie-btn-decline{background:transparent;color:rgba(255,255,255,.42);border:none;padding:4px;font-size:12px;cursor:pointer;transition:color var(--t-base);white-space:nowrap}
.cookie-btn-decline:hover{color:rgba(255,255,255,.75)}
@media(max-width:640px){.cookie-bar{justify-content:space-between;padding:12px var(--space-lg)}}

/* ---------- 15. LEGAL PAGES ------------------------------------------- */
.legal-body{max-width:var(--max-text);margin:0 auto}
.legal-body .updated{display:inline-block;font-size:13px;color:var(--muted);background:var(--offwhite);padding:6px 12px;border-radius:var(--radius-pill);margin-top:var(--space-md)}
.legal-body h2{font-size:22px;margin:var(--space-xl) 0 var(--space-md)}
.legal-body h3{font-size:18px;margin:var(--space-lg) 0 var(--space-sm)}
.legal-body p,.legal-body li{font-size:15px;line-height:1.7;color:var(--body);margin-bottom:var(--space-md)}
.legal-body ul,.legal-body ol{padding-left:var(--space-lg);margin-bottom:var(--space-md)}
.legal-body ul li{list-style:disc}
.legal-body ol li{list-style:decimal}
.legal-body a{color:var(--teal);text-decoration:underline}

/* ---------- 16. REVEAL / PARALLAX ------------------------------------- */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity var(--t-hero) var(--ease-out),transform var(--t-hero) var(--ease-out)}
[data-reveal].in{opacity:1;transform:translateY(0)}
[data-reveal-delay="1"]{transition-delay:.1s}
[data-reveal-delay="2"]{transition-delay:.2s}
[data-reveal-delay="3"]{transition-delay:.3s}
[data-reveal-delay="4"]{transition-delay:.4s}
[data-parallax]{will-change:transform;transition:transform .08s linear}

/* ---------- 17. TESTIMONIAL ------------------------------------------- */
.testimonial{max-width:780px;margin:var(--space-2xl) auto 0;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-container);padding:var(--space-2xl);box-shadow:var(--shadow-1);position:relative}
.testimonial::before{content:"\201C";position:absolute;top:-20px;left:var(--space-xl);font-size:80px;color:var(--teal);line-height:1;font-family:Georgia,serif}
.testimonial p{font-size:18px;line-height:1.6;color:var(--navy);margin-bottom:var(--space-md)}
.testimonial .by{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.testimonial .by strong{display:block;color:var(--navy);font-weight:500}
.testimonial .by .dot{width:4px;height:4px;border-radius:50%;background:var(--teal)}

/* ---------- 18. CHAT MOCKUP ------------------------------------------- */
.chat-mockup{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-container);box-shadow:var(--shadow-2);overflow:hidden;max-width:420px;margin:0 auto}
.chat-head{background:var(--navy);color:var(--white);padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:10px}
.chat-head .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 2s infinite}
.chat-head strong{font-weight:500;font-size:14px}
.chat-head .sub{font-size:12px;color:rgba(255,255,255,.6);margin-left:auto}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.chat-body{padding:var(--space-lg);display:flex;flex-direction:column;gap:12px;min-height:300px;background:var(--offwhite)}
.chat-msg{max-width:80%;padding:10px 14px;border-radius:var(--radius-card);font-size:14px;line-height:1.45}
.chat-msg.bot{align-self:flex-start;background:var(--white);border:1px solid var(--border);color:var(--body);border-bottom-left-radius:2px}
.chat-msg.user{align-self:flex-end;background:var(--teal);color:var(--white);border-bottom-right-radius:2px}
.chat-input{padding:var(--space-md);border-top:1px solid var(--border);background:var(--white);display:flex;gap:8px;align-items:center}
.chat-input input{flex:1;border:1px solid var(--border);border-radius:var(--radius-pill);padding:10px 16px;font-size:14px;font-family:inherit;background:var(--offwhite)}
.chat-input button{width:36px;height:36px;border-radius:50%;background:var(--teal);color:var(--white);display:flex;align-items:center;justify-content:center}

/* ---------- 19. BLOG COMING SOON -------------------------------------- */
.blog-coming-soon{max-width:680px;margin:0 auto;text-align:center}
.bcs-icon{width:72px;height:72px;border-radius:50%;background:var(--light-teal);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg)}
.bcs-icon svg{width:36px;height:36px;color:var(--teal)}
.blog-coming-soon h2{margin-bottom:var(--space-md)}
.blog-coming-soon p{font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:var(--space-xl);max-width:560px;margin-left:auto;margin-right:auto}
.bcs-topics{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:var(--space-2xl)}
.bcs-topic{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:13px;font-weight:500;color:var(--muted)}
.bcs-topic svg{width:14px;height:14px;color:var(--teal);flex-shrink:0}
.bcs-cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}
.bcs-note{font-size:12px;color:var(--muted)}

/* ---------- 19b. BLOG PROMO (legacy external link promo) -------------- */
.blog-promo{background:var(--light-teal);border:1px solid rgba(38,177,156,.25);border-radius:var(--radius-container);padding:var(--space-2xl);text-align:center;max-width:720px;margin:0 auto}
.blog-promo h3{font-size:22px;margin-bottom:var(--space-sm)}
.blog-promo p{color:var(--body);margin-bottom:var(--space-lg)}

/* ---------- 20. SUPPORT SLA ------------------------------------------- */
.sla{display:grid;gap:var(--space-md);margin-top:var(--space-xl);max-width:780px}
.sla-row{display:grid;grid-template-columns:120px 1fr;gap:var(--space-md);align-items:start;padding:var(--space-lg);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);border-left:3px solid var(--teal)}
.sla-row.critical{border-left-color:var(--error)}
.sla-row.high{border-left-color:var(--warning)}
.sla-row.normal{border-left-color:var(--teal)}
.sla-row.low{border-left-color:var(--muted)}
.sla-badge{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:var(--radius-pill);background:var(--light-teal);color:var(--teal);text-align:center;display:inline-block}
.sla-row.critical .sla-badge{background:rgba(239,68,68,.1);color:var(--error)}
.sla-row.high .sla-badge{background:rgba(245,158,11,.12);color:var(--warning)}
.sla-row.low .sla-badge{background:var(--offwhite);color:var(--muted)}
.sla-desc{font-size:14px;color:var(--body);line-height:1.55}
.sla-desc strong{color:var(--navy);font-weight:500}
@media(max-width:640px){.sla-row{grid-template-columns:1fr;gap:10px}}

/* ---------- 21. CHECKLIST --------------------------------------------- */
.checklist{display:flex;flex-direction:column;gap:12px;margin-top:var(--space-lg)}
.checklist li{position:relative;padding-left:28px;font-size:15px;color:var(--body);line-height:1.55}
.checklist li::before{content:"";position:absolute;left:0;top:4px;width:18px;height:18px;border-radius:50%;background:var(--light-teal)}
.checklist li::after{content:"";position:absolute;left:5px;top:8px;width:8px;height:5px;border-left:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg)}

/* ---------- 22. REDUCED MOTION ---------------------------------------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
  [data-parallax]{transform:none!important}
  .marquee-track{animation:none}
}

/* ---------- 23. UTILITIES --------------------------------------------- */
.text-center{text-align:center}
.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}
.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
