*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --paper:#E9EDE7;
  --surface:#FFFFFF;
  --ink:#16261C;
  --ink-soft:#55625A;
  --line:rgba(22,38,28,0.12);
  --cobalt:#2F6B47;
  --cobalt-deep:#1F4B32;
  --cobalt-mist:#E4EEE6;
  --sans-display:'Familjen Grotesk',system-ui,sans-serif;
  --sans:'Source Sans 3',system-ui,sans-serif;
  --mono:'Space Mono',monospace;
  --radius:14px;
  /* Emil Kowalski curves — stronger than default CSS easings */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  /* ── Layered ambient shadows — diffused, never harsh drop shadows ── */
  --shadow-sm:0 1px 2px rgba(22,38,28,.04), 0 4px 12px -4px rgba(22,38,28,.07);
  --shadow-md:0 1px 2px rgba(22,38,28,.03), 0 12px 30px -12px rgba(22,38,28,.11), 0 40px 72px -40px rgba(22,38,28,.13);
  --shadow-lg:0 2px 6px rgba(22,38,28,.04), 0 24px 54px -20px rgba(22,38,28,.16), 0 64px 120px -60px rgba(22,38,28,.20);
  /* ── Concentric radii for nested (double-bezel) enclosures ── */
  --bezel-pad:7px;
  --bezel-outer:28px;
  --bezel-inner:21px;
  --section-pad:4.5rem;
  /* consolidated accent tokens — replaces scattered ad-hoc hex values */
  --accent-mint:#B7D6C2;
  --accent-periwinkle:#9DB6F5;
  --accent-sage:#7FC79A;
  --accent-sky:#5C8AF0;
}
html{scroll-behavior:smooth;font-size:17px;scroll-padding-top:112px;}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
p{text-align:justify;text-justify:inter-word;}
.serve-head p,.serve-card-inner p,.pkg-card p,.final-cta p{text-align:center;}
.hero-tagline,.footer-tagline{text-align:left;}

/* ── FILM GRAIN — fixed, pointer-events-none so it never repaints on scroll ── */
body::after{content:'';position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}
a{color:inherit;}
:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px;}
img{max-width:100%;display:block;border-radius:var(--radius);}
.wrap{max-width:1200px;margin:0 auto;padding:0 2rem;}
h1,h2,h3,h4{font-family:var(--sans-display);font-weight:700;letter-spacing:-0.022em;}
h1,h2{text-wrap:balance;}
h1{letter-spacing:-0.034em;}
section[id]{scroll-margin-top:112px;}
.skip-link{position:absolute;top:-100px;left:1rem;background:var(--ink);color:#fff;padding:.75rem 1.25rem;border-radius:8px;z-index:1000;text-decoration:none;font-weight:600;transition:top 200ms var(--ease-out);}
.skip-link:focus{top:1rem;}

/* ── SCROLL REVEAL — transitions not keyframes, so interruptible; starts from
   a natural offset never scale(0); ease-out because elements are entering ── */
.reveal{opacity:0;transform:translateY(20px);filter:blur(7px);transition:opacity 820ms var(--ease-out),transform 820ms var(--ease-out),filter 820ms var(--ease-out);}
.reveal.in{opacity:1;transform:none;filter:blur(0);}
.stagger > *{opacity:0;transform:translateY(14px);filter:blur(5px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out),filter 700ms var(--ease-out);}
.stagger.in > *{opacity:1;transform:none;filter:blur(0);}
.stagger.in > *:nth-child(1){transition-delay:0ms;}
.stagger.in > *:nth-child(2){transition-delay:60ms;}
.stagger.in > *:nth-child(3){transition-delay:120ms;}
.stagger.in > *:nth-child(4){transition-delay:180ms;}
.stagger.in > *:nth-child(5){transition-delay:240ms;}
.stagger.in > *:nth-child(6){transition-delay:300ms;}
.stagger.in > *:nth-child(7){transition-delay:360ms;}

@media (prefers-reduced-motion:reduce){
  .reveal,.stagger > *{opacity:1;transform:none;filter:none;transition:opacity 200ms ease;}
  html{scroll-behavior:auto;}
  .marquee-track{animation:none !important;}
}

/* ── NAV ── */
/* Floating glass island — detached from the top edge, overlays the hero */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.15rem clamp(1rem,3vw,2rem);background:none;border:none;height:auto;display:block;pointer-events:none;}
.nav-inner{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1160px;margin:0 auto;padding:.55rem .55rem .55rem 1.65rem;
  background:rgba(16,30,22,0.66);
  -webkit-backdrop-filter:blur(26px) saturate(180%);
  backdrop-filter:blur(26px) saturate(180%);
  border:1px solid rgba(255,255,255,0.11);
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10), var(--shadow-md);}
.logo{display:flex;align-items:center;text-decoration:none;white-space:nowrap;flex-shrink:0;}
.logo-img{height:32px;width:auto;display:block;}
.nav-links{display:flex;align-items:center;gap:1.9rem;list-style:none;}
.nav-links li{position:relative;}
.nav-links a{font-size:.82rem;text-decoration:none;color:rgba(255,255,255,0.72);font-weight:500;transition:color 240ms var(--ease-out);}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1.5px;background:var(--accent-sage);transform:scaleX(0);transform-origin:left;transition:transform 380ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .nav-links a:hover{color:#fff;}
  .nav-links a:hover::after{transform:scaleX(1);}
}
.nav-links a.active{color:#fff;}
.nav-links a.active::after{transform:scaleX(1);}
.nav-cta{font-size:.82rem;background:#fff;color:var(--ink);padding:.62rem 1.35rem;border-radius:999px;text-decoration:none;font-weight:600;letter-spacing:-0.01em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 2px 10px -2px rgba(0,0,0,.25);
  transition:background 300ms var(--ease-out),transform 400ms var(--ease-out),box-shadow 300ms var(--ease-out);display:inline-block;}
@media (hover:hover) and (pointer:fine){.nav-cta:hover{background:var(--accent-mint);box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 6px 20px -4px rgba(0,0,0,.32);}}
.nav-cta:active{transform:scale(0.97);}
@media (max-width:900px){.nav-links{display:none;}.nav-inner{padding-left:1.35rem;}}

/* ── HAMBURGER — morphs into an X; hidden above 900px ── */
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.4rem;height:2.4rem;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.18);border-radius:999px;cursor:pointer;padding:0;flex-shrink:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.hamburger span{display:block;width:16px;height:1.5px;background:#fff;border-radius:2px;transition:transform 420ms var(--ease-out),opacity 300ms var(--ease-out);}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
@media (max-width:900px){.hamburger{display:flex;}.nav-cta{display:none;}}

/* ── MOBILE MENU — screen-filling glass overlay, staggered link reveal ── */
.mobile-menu{position:fixed;inset:0;z-index:99;
  background:rgba(9,19,13,0.92);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  backdrop-filter:blur(28px) saturate(180%);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity 420ms var(--ease-out),visibility 420ms;
  display:flex;flex-direction:column;overflow-y:auto;}
.mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;}
.mobile-menu-inner{margin:auto 0;padding:7.5rem 2rem 3rem;display:flex;flex-direction:column;min-height:100%;}
.mobile-menu-links{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin-bottom:2.25rem;}
.mobile-menu-links > li > a{display:block;padding:.85rem 0;font-family:var(--sans-display);font-size:1.4rem;font-weight:600;letter-spacing:-0.015em;color:rgba(255,255,255,0.88);text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.08);
  opacity:0;transform:translateY(18px);transition:opacity 520ms var(--ease-out),transform 520ms var(--ease-out);}
.mobile-menu-links > li > a.active{color:var(--accent-sage);}
.mobile-menu.open .mobile-menu-links > li > a{opacity:1;transform:none;}
.mobile-menu-links > li:nth-child(1) > a{transition-delay:60ms;}
.mobile-menu-links > li:nth-child(2){transition-delay:110ms;}
.mobile-menu-links > li:nth-child(3) > a,.mobile-menu-links > li:nth-child(3) .mobile-services-toggle{transition-delay:110ms;}
.mobile-menu-links > li:nth-child(4) > a{transition-delay:160ms;}
.mobile-menu-links > li:nth-child(5) > a{transition-delay:210ms;}
.mobile-menu-links > li:nth-child(6) > a{transition-delay:260ms;}
.mobile-menu-links > li:nth-child(7) > a{transition-delay:310ms;}
.mobile-services-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;background:none;border:none;border-bottom:1px solid rgba(255,255,255,0.08);font-family:var(--sans-display);font-size:1.4rem;font-weight:600;letter-spacing:-0.015em;color:rgba(255,255,255,0.88);cursor:pointer;
  opacity:0;transform:translateY(18px);transition:opacity 520ms var(--ease-out),transform 520ms var(--ease-out);}
.mobile-menu.open .mobile-services-toggle{opacity:1;transform:none;}
.mobile-services-toggle .caret{font-size:1rem;transition:transform 380ms var(--ease-out);opacity:.7;}
.mobile-services.open .mobile-services-toggle .caret{transform:rotate(180deg);}
.mobile-services-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 420ms var(--ease-in-out);}
.mobile-services.open .mobile-services-panel{grid-template-rows:1fr;}
.mobile-services-panel-inner{overflow:hidden;}
.mobile-services-list{list-style:none;}
.mobile-services-list a{display:block;padding:.7rem 0 .7rem 1rem;font-size:1rem;font-weight:500;color:rgba(255,255,255,0.65);text-decoration:none;border-left:2px solid rgba(255,255,255,0.14);}
.mobile-services-list a.active{color:var(--accent-sage);border-left-color:var(--accent-sage);}
.mobile-menu-cta{text-align:center;width:100%;
  opacity:0;transform:translateY(18px);transition:opacity 520ms var(--ease-out) 360ms,transform 520ms var(--ease-out) 360ms;}
.mobile-menu.open .mobile-menu-cta{opacity:1;transform:none;}
body.menu-open{overflow:hidden;}

/* ── NAV DROPDOWN — Services menu; label links straight to the overview page,
   the caret is a separate toggle for hover/touch, so neither action blocks the other ── */
.has-dropdown-wrap{display:flex;align-items:center;gap:.15rem;}
.has-dropdown{text-decoration:none;font-size:.82rem;font-weight:500;color:rgba(255,255,255,0.72);transition:color 240ms var(--ease-out);position:relative;}
.has-dropdown::after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1.5px;background:var(--accent-sage);transform:scaleX(0);transform-origin:left;transition:transform 380ms var(--ease-out);}
.nav-dropdown:hover .has-dropdown,.has-dropdown.active{color:#fff;}
.nav-dropdown:hover .has-dropdown::after,.has-dropdown.active::after{transform:scaleX(1);}
.dropdown-toggle{display:flex;align-items:center;justify-content:center;cursor:pointer;background:none;border:none;padding:.2rem;color:rgba(255,255,255,0.72);transition:color 240ms var(--ease-out);}
.nav-dropdown:hover .dropdown-toggle,.nav-dropdown.open .dropdown-toggle{color:#fff;}
.caret{font-size:.6rem;transition:transform 420ms var(--ease-out);color:inherit;opacity:.8;}
.nav-dropdown{position:relative;}
/* .nav-dropdown-panel is the HIT-BOX: flush against the trigger (top:100%, zero
   gap) with padding-top standing in for the visual gap. Because padding is part
   of the element's own box, hovering that "empty" strip still counts as hovering
   the panel (and via ancestry, the li) — so the cursor never crosses dead space
   between trigger and card while moving down. The card's actual look (glass
   background, blur, border, shadow) lives on the nested .nav-dropdown-panel-card
   so the gap strip itself stays fully transparent. */
.nav-dropdown-panel{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:540px;padding-top:18px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity 380ms var(--ease-out),visibility 380ms;}
.nav-dropdown:hover .nav-dropdown-panel,.nav-dropdown:focus-within .nav-dropdown-panel,.nav-dropdown.open .nav-dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;}
.nav-dropdown-panel-card{transform:translateY(10px) scale(.985);display:grid;grid-template-columns:1fr 1fr;gap:.15rem .4rem;
  background:rgba(255,255,255,0.99);
  -webkit-backdrop-filter:blur(26px) saturate(180%);
  backdrop-filter:blur(26px) saturate(180%);
  border:1px solid rgba(255,255,255,0.8);border-radius:24px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), var(--shadow-lg);
  padding:.6rem;
  transition:transform 380ms var(--ease-out);}
.nav-dropdown:hover .nav-dropdown-panel-card,.nav-dropdown:focus-within .nav-dropdown-panel-card,.nav-dropdown.open .nav-dropdown-panel-card{transform:translateY(0) scale(1);}
.nav-dropdown:hover .caret,.nav-dropdown.open .caret{transform:rotate(180deg);}
.nav-dropdown-panel-card a{display:block;padding:.7rem .9rem;border-radius:15px;font-size:.85rem;font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:-0.01em;transition:background 300ms var(--ease-out),transform 300ms var(--ease-out);}
.nav-dropdown-panel-card a::after{display:none;}
.nav-dropdown-panel-card a:hover{background:var(--cobalt-mist);color:var(--cobalt-deep);transform:translateX(2px);}
.nav-dropdown-panel-card a .svc-desc{display:block;font-size:.71rem;font-weight:400;color:var(--ink-soft);margin-top:.15rem;line-height:1.45;letter-spacing:0;}
.nav-dropdown-panel-card a:hover .svc-desc{color:var(--cobalt-deep);}

/* ── BUTTONS — spring-physics press feedback, nested trailing icon ── */
.btn-primary{background:var(--cobalt);color:#fff;padding:.92rem 1.75rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:-0.01em;display:inline-block;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 1px 2px rgba(22,38,28,.12), 0 10px 26px -10px rgba(31,75,50,.5);
  transition:background 320ms var(--ease-out),transform 420ms var(--ease-out),box-shadow 320ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--cobalt-deep);box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 2px 4px rgba(22,38,28,.14), 0 18px 40px -12px rgba(31,75,50,.6);transform:translateY(-1px);}}
.btn-primary:active{transform:scale(0.975);}
.btn-secondary{background:rgba(255,255,255,0.10);color:#fff;padding:.92rem 1.75rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:-0.01em;
  border:1px solid rgba(255,255,255,0.22);display:inline-block;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  transition:background 320ms var(--ease-out),border-color 320ms var(--ease-out),transform 420ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){.btn-secondary:hover{background:rgba(255,255,255,0.18);border-color:rgba(255,255,255,0.34);transform:translateY(-1px);}}
.btn-secondary:active{transform:scale(0.975);}
/* Secondary sitting on light backgrounds needs the inverse treatment */
.btn-secondary.on-light{background:var(--ink);border-color:var(--ink);color:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;}
@media (hover:hover) and (pointer:fine){.btn-secondary.on-light:hover{background:var(--cobalt-deep);border-color:var(--cobalt-deep);}}

/* Button-in-button: trailing icon nested in its own circular well */
.btn-icon{display:inline-flex;align-items:center;gap:.9rem;padding:.5rem .5rem .5rem 1.6rem;}
.btn-ico{width:2.1rem;height:2.1rem;border-radius:999px;background:rgba(255,255,255,0.17);display:flex;align-items:center;justify-content:center;font-size:.78rem;flex-shrink:0;
  transition:transform 480ms var(--ease-out),background 320ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){.btn-icon:hover .btn-ico{transform:translate(2px,-2px) scale(1.07);background:rgba(255,255,255,0.28);}}
.btn-secondary .btn-ico{background:rgba(255,255,255,0.14);}

/* ── HERO — full-width banner, edge-to-edge background image ── */
.hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:center;overflow:hidden;padding-top:6rem;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transform:scale(1.03);}
.hero-scrim{position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(103deg, rgba(9,19,13,0.93) 0%, rgba(11,23,16,0.82) 34%, rgba(13,26,18,0.46) 66%, rgba(15,29,20,0.24) 100%),
    radial-gradient(130% 90% at 14% 52%, rgba(0,0,0,0.42) 0%, transparent 62%),
    linear-gradient(180deg, rgba(9,19,13,0.55) 0%, transparent 22%, transparent 74%, rgba(9,19,13,0.42) 100%);}
.hero-inner{position:relative;z-index:2;padding-top:3.5rem;padding-bottom:4rem;margin:0;max-width:900px;padding-left:clamp(2rem,6vw,5rem);padding-right:2rem;}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.6rem;
  background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.20);
  -webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);
  padding:.45rem 1.05rem;border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
.eyebrow span{font-size:.64rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.2em;}
h1{color:#fff;font-size:clamp(2.3rem,4.4vw,3.7rem);line-height:1.08;margin-bottom:1.35rem;max-width:20ch;}
h1 .accent{color:var(--accent-mint);}
.hero-tagline{font-family:var(--sans-display);font-weight:700;font-size:1.05rem;color:var(--accent-sage);letter-spacing:-0.01em;margin-bottom:.9rem;}
.hero-sub{font-size:1.05rem;color:rgba(255,255,255,0.80);max-width:46ch;margin-bottom:2.1rem;line-height:1.7;}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;}

/* ── PAGE HERO — smaller banner for interior pages ── */
.page-hero{position:relative;min-height:min(46vh,480px);display:flex;align-items:center;overflow:hidden;padding-top:6rem;}
.page-hero .hero-inner{padding-top:2.5rem;padding-bottom:3.5rem;max-width:800px;}
.page-hero h1{max-width:24ch;font-size:clamp(2.05rem,3.5vw,2.95rem);}
.breadcrumbs{display:flex;gap:.5rem;align-items:center;font-size:.76rem;color:rgba(255,255,255,0.62);margin-bottom:1.15rem;letter-spacing:.01em;}
.breadcrumbs a{text-decoration:none;color:rgba(255,255,255,0.85);}
.breadcrumbs a:hover{text-decoration:underline;}

@media (max-width:760px){
  .hero{min-height:auto;padding-top:4.5rem;}
  .hero-scrim{background:linear-gradient(180deg,rgba(9,19,13,0.62) 0%,rgba(9,19,13,0.80) 46%,rgba(9,19,13,0.90) 100%);}
  .hero-inner{padding-top:2.5rem;padding-bottom:3rem;}
  h1{font-size:2rem;line-height:1.12;max-width:16ch;}
  .hero-sub{font-size:.98rem;margin-bottom:1.8rem;}
  .hero-actions{gap:.7rem;}
  .page-hero{min-height:auto;padding-top:4.5rem;}
  .page-hero .hero-inner{padding-top:2rem;padding-bottom:2.5rem;}
  .page-hero h1{font-size:1.85rem;max-width:18ch;}
}

/* Floating toast — adapted pattern: small proof-point overlay, ties to "we track compliance" story */
.hero-toast{position:absolute;top:7.5rem;right:2rem;background:var(--surface);border-radius:12px;padding:.85rem 1.1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 10px 30px -8px rgba(22,38,28,0.35);z-index:2;
  opacity:0;transform:translateY(-8px);animation:toastIn 600ms var(--ease-out) 900ms forwards;}
@keyframes toastIn{to{opacity:1;transform:none;}}
.hero-toast-check{width:26px;height:26px;border-radius:50%;background:var(--cobalt);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0;}
.hero-toast-title{font-size:.82rem;font-weight:600;color:var(--ink);}
.hero-toast-sub{font-size:.7rem;color:var(--ink-soft);}

/* Rotating ring badge — one per page, continuous motion so linear easing (per motion rules) */
.hero-ring{position:absolute;bottom:3rem;right:3rem;top:auto;left:auto;width:84px;height:84px;z-index:2;}
.hero-ring-svg{width:100%;height:100%;color:rgba(255,255,255,0.85);animation:ringSpin 16s linear infinite;}
@keyframes ringSpin{to{transform:rotate(360deg);}}
.hero-ring-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:1.2rem;}
@media (prefers-reduced-motion:reduce){.hero-ring-svg{animation:none;}}
@media (max-width:760px){.hero-toast,.hero-ring{display:none;}}

/* ── TRUST MARQUEE — single marquee on the page, linear easing (constant motion),
   pauses on hover, respects reduced-motion above ── */
.trust{padding:3rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);}
.marquee-viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.marquee-track{display:flex;gap:.75rem;width:max-content;animation:marquee 28s linear infinite;}
.marquee-viewport:hover .marquee-track{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.trust-pill{background:var(--surface);border:1px solid rgba(22,38,28,.07);border-radius:999px;padding:.7rem 1.35rem;font-size:.82rem;font-weight:500;white-space:nowrap;color:var(--ink-soft);box-shadow:var(--shadow-sm);letter-spacing:-0.005em;}
.trust-pill.is-current{border-color:var(--cobalt);color:var(--cobalt-deep);}

/* ── THE BUILD — stack reveal animates bottom-to-top matching the metaphor
   itself: this is "explanation" purpose motion, not decoration ── */
.build{padding:var(--section-pad) 0 2.5rem;}
#build{padding-top:1.5rem;}
.build-head{max-width:60ch;margin-bottom:3rem;}
/* ── INTRO SPLIT — text left, supporting photo right ── */
.intro-split{display:grid;grid-template-columns:1.15fr 0.85fr;gap:3.5rem;align-items:center;}
.intro-split .build-head{margin-bottom:0;}
.intro-media{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-lg);}
.intro-media img{width:100%;height:100%;object-fit:cover;border-radius:0;}
@media (max-width:900px){
  .intro-split{grid-template-columns:1fr;gap:2rem;}
  .intro-media{order:-1;aspect-ratio:16/10;}
}
h2{font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.18;margin-bottom:.85rem;}
.section-body{color:var(--ink-soft);font-size:.98rem;max-width:56ch;line-height:1.7;}
.stack{display:flex;flex-direction:column-reverse;gap:10px;}
.course{background:var(--surface);border:1px solid rgba(22,38,28,.07);border-radius:18px;padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;box-shadow:var(--shadow-sm);
  opacity:0;transform:translateY(18px) scale(0.98);transition:border-color 200ms ease,opacity 550ms var(--ease-out),transform 220ms var(--ease-out),box-shadow 220ms ease;}
.course-main{display:flex;align-items:center;gap:1.1rem;min-width:0;}
.course-icon{width:46px;height:46px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cobalt-mist);transition:background 220ms ease,transform 220ms var(--ease-out);}
.course-icon svg{width:22px;height:22px;color:var(--cobalt-deep);}
.stack.in .course{opacity:1;transform:none;}
.stack.in .course-foundation{transition-delay:0ms;}
.stack.in .course-1{transition-delay:110ms;}
.stack.in .course-2{transition-delay:220ms;}
.stack.in .course-3{transition-delay:330ms;}
.stack.in .course-4{transition-delay:440ms;}
@media (hover:hover) and (pointer:fine){
  .course:hover{border-color:rgba(47,107,71,.35);transform:translateX(6px);box-shadow:var(--shadow-md);}
  .course:hover .course-icon{transform:scale(1.08) rotate(-4deg);}
}
.course-foundation{background:var(--ink);border-color:var(--ink);color:#fff;width:100%;}
.course-foundation .course-icon{background:rgba(255,255,255,0.12);}
.course-foundation .course-icon svg{color:#fff;}
.course-1{width:100%;}
.course-1 .course-icon{background:rgba(127,199,154,0.22);}
.course-1 .course-icon svg{color:var(--cobalt-deep);}
.course-2{width:91%;margin-left:auto;}
.course-2 .course-icon{background:rgba(183,214,194,0.35);}
.course-2 .course-icon svg{color:var(--cobalt-deep);}
.course-3{width:82%;margin-left:auto;}
.course-3 .course-icon{background:rgba(157,182,245,0.22);}
.course-3 .course-icon svg{color:var(--accent-sky);}
.course-4{width:73%;margin-left:auto;}
.course-4 .course-icon{background:rgba(92,138,240,0.16);}
.course-4 .course-icon svg{color:var(--accent-sky);}
.course-label{font-family:var(--sans-display);font-weight:700;font-size:1.02rem;color:var(--ink);}
.course-foundation .course-label{color:#fff;}
.course-code{font-family:var(--mono);font-size:.68rem;font-weight:600;color:var(--cobalt-deep);background:var(--cobalt-mist);padding:.4rem .8rem;border-radius:999px;flex-shrink:0;letter-spacing:.02em;}
.course-foundation .course-code{color:#fff;background:rgba(255,255,255,0.14);}
.course-desc{font-size:.82rem;color:var(--ink-soft);margin-top:.15rem;}
.course-foundation .course-desc{color:rgba(255,255,255,0.65);}
@media (max-width:640px){
  .course{padding:1rem 1.1rem;}
  .course-icon{width:38px;height:38px;}
  .course-icon svg{width:19px;height:19px;}
  .course-code{display:none;}
}

/* ── SERVE — centered card pattern with distinct supporting visuals ── */
.serve{padding:3.5rem 0 var(--section-pad);border-top:1px solid var(--line);}
.serve-head{text-align:center;max-width:640px;margin:0 auto;}
.serve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3.5rem;align-items:stretch;}
/* Double-bezel: outer tray + inner core with concentric radii */
.serve-card{background:rgba(22,38,28,0.035);border:1px solid rgba(22,38,28,0.07);border-radius:var(--bezel-outer);padding:var(--bezel-pad);
  box-shadow:var(--shadow-md);
  display:flex;flex-direction:column;height:100%;
  opacity:0;transform:translateY(18px);filter:blur(6px);
  transition:opacity 760ms var(--ease-out),transform 760ms var(--ease-out),filter 760ms var(--ease-out),box-shadow 420ms var(--ease-out);}
.serve-card-inner{background:var(--surface);border-radius:var(--bezel-inner);padding:2.35rem 1.75rem;text-align:center;
  flex:1;display:flex;flex-direction:column;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
@media (hover:hover) and (pointer:fine){.serve-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);}}
.serve.in .serve-card{opacity:1;transform:none;filter:blur(0);}
.serve.in .serve-card:nth-child(1){transition-delay:0ms;}
.serve.in .serve-card:nth-child(2){transition-delay:110ms;}
.serve.in .serve-card:nth-child(3){transition-delay:220ms;}
.serve-pill{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.36rem 1rem;margin-bottom:1.25rem;background:rgba(22,38,28,0.02);}
.serve-pill span{font-size:.62rem;font-weight:600;color:var(--cobalt-deep);text-transform:uppercase;letter-spacing:.16em;}
.serve-title{font-size:1.22rem;margin-bottom:.6rem;}
.serve-desc{font-size:.88rem;color:var(--ink-soft);line-height:1.68;max-width:32ch;margin:0 auto 1.75rem;flex:1 0 auto;}
.serve-btn{width:100%;flex-shrink:0;text-align:center;}
.serve-visual{margin-top:1.6rem;text-align:left;border-radius:16px;overflow:hidden;flex-shrink:0;border:1px solid rgba(22,38,28,0.05);min-height:126px;}


.serve-visual-timeline{background:var(--paper);padding:1.1rem 1.2rem;display:flex;flex-direction:column;justify-content:center;gap:.65rem;}
.tl-row{display:flex;align-items:center;gap:.65rem;}
.tl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.tl-dot.done{background:var(--cobalt);}
.tl-dot.active{background:var(--line);border:2px solid var(--cobalt);}
.tl-label{font-size:.78rem;color:var(--ink-soft);}

.serve-visual-stat{background:var(--paper);padding:1.1rem 1.2rem;display:flex;align-items:center;gap:1.1rem;}
.stat-ring{position:relative;width:64px;height:64px;flex-shrink:0;}
.stat-ring svg{width:100%;height:100%;}
.stat-ring-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.78rem;font-weight:700;}
.stat-checklist{list-style:none;display:flex;flex-direction:column;gap:.35rem;}
.stat-checklist li{font-size:.76rem;color:var(--ink-soft);padding-left:1.1rem;position:relative;}
.stat-checklist li::before{content:'✓';position:absolute;left:0;color:var(--cobalt);font-weight:700;}

@media (max-width:900px){.serve-grid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto;}}

/* ── WHY ── */
.why{padding:var(--section-pad) 0;background:var(--ink);color:#fff;}
.why h2{color:#fff;}
.why .section-body{color:rgba(255,255,255,0.6);}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,0.14);margin-top:3rem;border-radius:var(--bezel-outer);overflow:hidden;border:1px solid rgba(255,255,255,0.14);}
.why-col{background:rgba(255,255,255,0.07);padding:2.25rem;}
.why-col h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-sage);margin-bottom:1rem;}
.why-row{padding:.85rem 0;border-top:1px solid rgba(255,255,255,0.12);font-size:.9rem;color:rgba(255,255,255,0.85);}
@media (max-width:760px){.why-grid{grid-template-columns:1fr;}}

/* ── STAY ON — photo collage + solid panel composition ── */
.stayon{padding:var(--section-pad) 0;border-top:1px solid var(--line);}
.stayon-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:0;border-radius:24px;overflow:visible;}

.stayon-media{position:relative;padding:2.5rem 2.5rem 2.5rem 0;}
.stayon-blob{position:absolute;left:-1.5rem;bottom:2rem;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,var(--cobalt) 0%,var(--cobalt-mist) 70%);opacity:.5;filter:blur(2px);z-index:0;}
.stayon-photo-main{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:0.82/1;z-index:1;}
.stayon-photo-main img{width:100%;height:100%;object-fit:cover;}
.stayon-photo-small{position:absolute;top:1.5rem;left:0;width:38%;aspect-ratio:1/1;border-radius:16px;overflow:hidden;z-index:2;box-shadow:0 16px 34px -10px rgba(22,38,28,0.35);}
.stayon-photo-small img{width:100%;height:100%;object-fit:cover;}
.stayon-toast{position:absolute;bottom:1.25rem;left:1.25rem;z-index:3;background:var(--surface);border-radius:14px;padding:.85rem 1.1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 14px 34px -10px rgba(22,38,28,0.35);
  opacity:0;transform:translateY(10px);transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out);}
.stayon.in .stayon-toast{opacity:1;transform:none;transition-delay:400ms;}

.stayon-panel{background:linear-gradient(155deg,#1B2E22 0%,var(--ink) 55%,#0F1D15 100%);color:#fff;border-radius:32px;padding:3.5rem 3rem;display:flex;flex-direction:column;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.08), var(--shadow-lg);}
.stayon-pill{display:inline-flex;background:rgba(255,255,255,0.1);padding:.45rem 1rem;border-radius:999px;margin-bottom:1.25rem;width:fit-content;}
.stayon-pill span{font-size:.72rem;font-weight:600;color:#B7D6C2;}
.stayon-h2{color:#fff;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.2;margin-bottom:.9rem;}
.stayon-body{color:rgba(255,255,255,0.68);font-size:.95rem;line-height:1.65;margin-bottom:1.5rem;max-width:42ch;}
.stayon-checklist{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-bottom:2rem;}
.stayon-checklist li{font-size:.86rem;color:rgba(255,255,255,0.85);padding-left:1.3rem;position:relative;}
.stayon-checklist li::before{content:'✓';position:absolute;left:0;color:var(--accent-sage);font-weight:700;}
.stayon-btn{width:fit-content;}
.dash-disclaimer,.stayon-disclaimer{font-size:.75rem;margin-top:1.5rem;font-style:italic;}
.dash-disclaimer{color:var(--ink-soft);}
.stayon-disclaimer{color:rgba(255,255,255,0.45);margin-top:1.25rem;}

@media (max-width:900px){
  .stayon-grid{grid-template-columns:1fr;}
  .stayon-media{padding:0 0 2.5rem 1.5rem;}
  .stayon-panel{padding:2.5rem;}
}
@media (max-width:560px){
  .stayon-photo-small{width:44%;}
  .stayon-toast{position:static;margin-top:1rem;transform:none;}
}


/* ── PACKAGES — cost strip + minimal centered icon-card tiers ── */
.packages{padding:var(--section-pad) 0;border-top:1px solid var(--line);}
.cost-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(22,38,28,.07);border:1px solid rgba(22,38,28,.07);border-radius:var(--bezel-outer);overflow:hidden;margin-top:3rem;box-shadow:var(--shadow-md);}
.cost-item{background:var(--surface);padding:1.75rem 1.5rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.cost-label{font-size:.78rem;color:var(--ink-soft);margin-bottom:.4rem;}
.cost-range{font-family:var(--sans-display);font-weight:700;font-size:1.05rem;margin-bottom:.3rem;color:var(--ink);}
.cost-note{font-size:.72rem;color:var(--ink-soft);}

.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;}
.pkg-card{background:var(--surface);border-radius:20px;padding:2.5rem 2rem;text-align:center;box-shadow:0 1px 2px rgba(22,38,28,0.04);
  opacity:0;transform:translateY(14px);transition:opacity 480ms var(--ease-out),transform 480ms var(--ease-out);}
.packages.in .pkg-card{opacity:1;transform:none;}
.packages.in .pkg-card:nth-child(1){transition-delay:0ms;}
.packages.in .pkg-card:nth-child(2){transition-delay:110ms;}
.packages.in .pkg-card:nth-child(3){transition-delay:220ms;}
.pkg-featured{box-shadow:0 16px 40px -14px rgba(47,107,71,0.28);border:1px solid rgba(47,107,71,0.25);}
.pkg-icon{width:56px;height:56px;margin:0 auto 1.25rem;color:var(--cobalt);}
.pkg-icon svg{width:100%;height:100%;}
.pkg-tag{font-family:var(--mono);font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem;}
.pkg-name{font-size:1.15rem;margin-bottom:.65rem;}
.pkg-desc{font-size:.86rem;color:var(--ink-soft);line-height:1.6;max-width:30ch;margin:0 auto 1.5rem;}
.pkg-link{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.86rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:.2rem;transition:border-color 180ms ease,color 180ms ease;}
.pkg-link span{transition:transform 200ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .pkg-link:hover{color:var(--cobalt-deep);border-color:var(--cobalt);}
  .pkg-link:hover span{transform:translate(2px,2px);}
}
@media (max-width:860px){.cost-strip{grid-template-columns:1fr 1fr;}.pkg-grid{grid-template-columns:1fr;max-width:380px;margin-left:auto;margin-right:auto;}}

/* ── EMIRATES — tags pop in with spring-like overshoot ── */
.emirates{padding:var(--section-pad) 0;}
.em-strip{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;}
.em-tag{background:var(--cobalt-mist);color:var(--cobalt-deep);padding:.75rem 1.45rem;border-radius:999px;font-weight:600;font-size:.88rem;text-decoration:none;display:inline-block;border:1px solid rgba(47,107,71,.10);letter-spacing:-0.01em;
  opacity:0;transform:scale(0.9);transition:opacity 380ms var(--ease-out),transform 380ms var(--ease-out),background 180ms ease,color 180ms ease;}
.emirates.in .em-tag{opacity:1;transform:scale(1);}
.emirates.in .em-tag:nth-child(1){transition-delay:0ms;}
.emirates.in .em-tag:nth-child(2){transition-delay:40ms;}
.emirates.in .em-tag:nth-child(3){transition-delay:80ms;}
.emirates.in .em-tag:nth-child(4){transition-delay:120ms;}
.emirates.in .em-tag:nth-child(5){transition-delay:160ms;}
.emirates.in .em-tag:nth-child(6){transition-delay:200ms;}
.emirates.in .em-tag:nth-child(7){transition-delay:240ms;}
@media (hover:hover) and (pointer:fine){.em-tag:hover{background:var(--cobalt);color:#fff;}}

.em-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:3rem;}
.em-detail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;}
.em-detail-card h3{font-size:1.1rem;margin-bottom:.5rem;}
.em-detail-card p{font-size:.88rem;color:var(--ink-soft);line-height:1.65;}
@media (max-width:760px){.em-detail-grid{grid-template-columns:1fr;}}

/* ── PROCESS ── */
.process{padding:var(--section-pad) 0;border-top:1px solid var(--line);}
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.5rem;}
.proc-step h4{font-size:1rem;margin-bottom:.4rem;}
.proc-step p{font-size:.85rem;color:var(--ink-soft);line-height:1.6;}
.proc-num{font-family:var(--mono);font-size:.78rem;color:var(--cobalt);display:block;margin-bottom:.6rem;}
@media (max-width:860px){.proc-grid{grid-template-columns:1fr 1fr;}}

/* ── SERVICE PAGE BODY — long-form content blocks for interior service pages ── */
.svc-body{padding:var(--section-pad) 0;}
.svc-body-grid{display:grid;grid-template-columns:1.3fr 0.85fr;gap:3rem;align-items:start;}
.svc-lead{font-size:1.05rem;color:var(--ink-soft);line-height:1.75;max-width:60ch;margin-bottom:2rem;}
.svc-block{margin-bottom:2.25rem;}
.svc-callout{background:#FBF3E3;border:1px solid #E9D6A8;border-left:4px solid #B8862F;border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:2.25rem;}
.svc-callout h3{font-size:1.05rem;margin-bottom:.6rem;color:#6B4A16;}
.svc-callout p{font-size:.92rem;color:var(--ink-soft);line-height:1.75;max-width:64ch;text-align:left;}
.svc-callout p+p{margin-top:.6rem;}
.svc-callout a{color:#6B4A16;text-decoration:underline;}
.svc-block h3{font-size:1.15rem;margin-bottom:.6rem;}
.svc-block p{font-size:.92rem;color:var(--ink-soft);line-height:1.75;max-width:62ch;}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:.9rem;}
.svc-list li{font-size:.9rem;color:var(--ink);padding-left:1.4rem;position:relative;line-height:1.6;}
.svc-list li::before{content:'✓';position:absolute;left:0;color:var(--cobalt);font-weight:700;}
.svc-side{position:sticky;top:100px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;}
.svc-side h4{font-size:.95rem;margin-bottom:1rem;}
.svc-side .btn-primary{width:100%;text-align:center;margin-bottom:.9rem;}
.svc-side-note{font-size:.78rem;color:var(--ink-soft);line-height:1.6;}
.svc-related{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line);}
.svc-related h5{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:.75rem;}
.svc-related a{display:block;font-size:.86rem;font-weight:600;color:var(--cobalt-deep);text-decoration:none;padding:.4rem 0;}
.svc-related a:hover{text-decoration:underline;}
@media (max-width:900px){.svc-body-grid{grid-template-columns:1fr;}.svc-side{position:static;}}

/* ── FAQ — smooth accordion via CSS grid-rows trick, since native <details>
   snaps open with no animation. ease-in-out because content is moving/resizing ── */
.faq{padding:var(--section-pad) 0;border-top:1px solid var(--line);}
.faq-list{max-width:760px;margin-top:2rem;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-trigger{width:100%;text-align:left;background:none;border:none;padding:1.35rem 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:var(--sans-display);font-weight:600;font-size:1.02rem;color:var(--ink);}
.faq-icon{font-family:var(--mono);font-size:1.3rem;color:var(--cobalt);flex-shrink:0;transition:transform 260ms var(--ease-in-out);}
.faq-item[data-open="true"] .faq-icon{transform:rotate(45deg);}
.faq-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms var(--ease-in-out);}
.faq-item[data-open="true"] .faq-panel{grid-template-rows:1fr;}
.faq-panel-inner{overflow:hidden;}
.faq-panel p{padding-bottom:1.35rem;color:var(--ink-soft);font-size:.9rem;line-height:1.65;max-width:64ch;}
.faq-tabs{display:flex;gap:.6rem;margin:1.75rem 0 .5rem;flex-wrap:wrap;}
.faq-tab{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);padding:.55rem 1.1rem;border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background 180ms ease,color 180ms ease,border-color 180ms ease;}
.faq-tab.active{background:var(--ink);color:#fff;border-color:var(--ink);}
@media (hover:hover) and (pointer:fine){.faq-tab:not(.active):hover{border-color:var(--cobalt);color:var(--cobalt-deep);}}
.faq-item{display:none;}
.faq-item.faq-visible{display:block;}
.faq-teaser-link{display:inline-block;margin-top:1.5rem;font-weight:600;font-size:.9rem;color:var(--cobalt-deep);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:.2rem;}
.faq-teaser-link:hover{border-color:var(--cobalt);}

/* ── CTA ── */
.final-cta{padding:var(--section-pad) 0;text-align:center;border-top:1px solid var(--line);}
.final-cta h2{max-width:520px;margin:0 auto .85rem;}
.final-cta .section-body{margin:0 auto 2rem;}
.final-cta .hero-actions{justify-content:center;}

/* ── CONTACT ── */
.contact-body{padding:var(--section-pad) 0;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2.25rem;}
.contact-card-logo{height:70px;width:auto;display:block;margin-bottom:1.4rem;}
.contact-card h3{font-size:1.05rem;margin-bottom:.5rem;}
.contact-card p{font-size:.9rem;color:var(--ink-soft);line-height:1.7;margin-bottom:1.25rem;}
.contact-row{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:1.5rem;}
.contact-line{font-size:.9rem;}
.contact-line strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:.25rem;font-weight:600;}
.contact-line a{color:var(--cobalt-deep);text-decoration:none;font-weight:600;}
.contact-line a:hover{text-decoration:underline;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.contact-map{margin-top:2.5rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);}
.contact-map iframe{width:100%;height:340px;border:0;display:block;}

/* ── LEAD FORM ── */
.lead-form{margin-top:2.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;max-width:520px;}
.lead-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.lead-field{margin-bottom:1.1rem;}
.lead-field:last-of-type{margin-bottom:1.5rem;}
.lead-field label{display:block;font-size:.78rem;font-weight:600;color:var(--ink-soft);margin-bottom:.45rem;}
.lead-field input,.lead-field textarea,.lead-field select{width:100%;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;font-size:.92rem;font-family:var(--sans);background:var(--paper);color:var(--ink);transition:border-color 160ms ease;resize:vertical;}
.lead-field input:focus,.lead-field textarea:focus,.lead-field select:focus{outline:none;border-color:var(--cobalt);background:var(--surface);}
.lead-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2355625A' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.2rem;cursor:pointer;}
.lead-field select:invalid{color:var(--ink-soft);}
.lead-form-status{font-size:.85rem;margin-top:.9rem;min-height:1.2em;}
.lead-form-status-success{color:var(--cobalt-deep);font-weight:600;}
.lead-form-status-error{color:#B3261E;font-weight:600;}
.lead-form-error{color:#B3261E;font-size:.78rem;font-weight:600;margin-top:.5rem;}
@media (max-width:480px){.lead-form-row{grid-template-columns:1fr;}}

/* ── COMPARE TABLE — entity-type / jurisdiction comparison on long-form pages ── */
.compare-wrap{overflow-x:auto;margin:1.5rem 0 2rem;border:1px solid var(--line);border-radius:var(--radius);position:relative;}
@media (max-width:680px){
  .compare-wrap{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);}
}
.compare-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:560px;}
.compare-table th,.compare-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.55;}
.compare-table thead th{background:var(--ink);color:#fff;font-family:var(--sans-display);font-weight:600;font-size:.82rem;}
.compare-table tbody tr:last-child td{border-bottom:none;}
.compare-table tbody tr:nth-child(even){background:var(--paper);}
.compare-table td:first-child,.compare-table th:first-child{font-weight:600;color:var(--ink);white-space:nowrap;}

/* ── ENTITY TYPE CARDS ── */
.entity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin:1.5rem 0 2rem;}
.entity-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;}
.entity-card h4{font-size:.98rem;margin-bottom:.5rem;}
.entity-card p{font-size:.85rem;color:var(--ink-soft);line-height:1.65;}
.entity-tag{display:inline-block;font-family:var(--mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--cobalt-deep);background:var(--cobalt-mist);padding:.25rem .6rem;border-radius:999px;margin-bottom:.7rem;}
@media (max-width:700px){.entity-grid{grid-template-columns:1fr;}}

/* ── NUMBERED STEP LIST — incorporation process, documents checklist ── */
.step-list{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:1.1rem;margin:1.5rem 0 2rem;}
.step-list li{counter-increment:step;position:relative;padding-left:2.75rem;}
.step-list li::before{content:counter(step);position:absolute;left:0;top:0;width:2rem;height:2rem;border-radius:50%;background:var(--cobalt);color:#fff;font-family:var(--mono);font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.step-list h4{font-size:.95rem;margin-bottom:.25rem;}
.step-list p{font-size:.86rem;color:var(--ink-soft);line-height:1.6;max-width:56ch;}

/* ── DOC CHECKLIST — compact two-column tick list ── */
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.5rem;margin:1.25rem 0 2rem;}
.doc-grid li{font-size:.88rem;color:var(--ink);padding-left:1.5rem;position:relative;line-height:1.6;}
.doc-grid li::before{content:'\2713';position:absolute;left:0;color:var(--cobalt);font-weight:700;}
@media (max-width:600px){.doc-grid{grid-template-columns:1fr;}}

/* ── STAT HIGHLIGHT ROW — quick E-E-A-T / authority signals ── */
.stat-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(22,38,28,.07);border:1px solid rgba(22,38,28,.07);border-radius:var(--bezel-outer);overflow:hidden;margin:2.75rem 0 0;box-shadow:var(--shadow-md);}
.stat-highlight{background:var(--surface);padding:1.75rem 1.5rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.stat-highlight-num{font-family:var(--mono);font-weight:700;font-size:1.5rem;color:var(--cobalt-deep);margin-bottom:.45rem;letter-spacing:-0.02em;}
.stat-highlight-label{font-size:.76rem;color:var(--ink-soft);line-height:1.4;}
@media (max-width:760px){.stat-highlights{grid-template-columns:1fr 1fr;}}

/* ── INLINE ANCHOR NAV — jump links for long-form pages ── */
.toc{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 2.5rem;}
.toc a{font-size:.8rem;font-weight:600;color:var(--cobalt-deep);background:var(--cobalt-mist);padding:.5rem 1rem;border-radius:999px;text-decoration:none;transition:background 160ms ease;}
.toc a:hover{background:var(--cobalt);color:#fff;}

/* ── BLOG INDEX — double-bezel article cards ── */
.blog-index{padding:var(--section-pad) 0;}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.5rem;align-items:stretch;}
.blog-card{background:rgba(22,38,28,0.035);border:1px solid rgba(22,38,28,0.07);border-radius:var(--bezel-outer);padding:var(--bezel-pad);
  box-shadow:var(--shadow-md);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;height:100%;
  transition:box-shadow 420ms var(--ease-out),transform 420ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){.blog-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);}}
.blog-card-inner{background:var(--surface);border-radius:var(--bezel-inner);overflow:hidden;flex:1;display:flex;flex-direction:column;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.blog-card-img{aspect-ratio:16/10;overflow:hidden;border-radius:0;}
.blog-card-img img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform 600ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){.blog-card:hover .blog-card-img img{transform:scale(1.05);}}
.blog-card-body{padding:1.6rem 1.5rem 1.85rem;flex:1;display:flex;flex-direction:column;}
.blog-card-date{font-family:var(--mono);font-size:.68rem;color:var(--cobalt-deep);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.65rem;}
.blog-card-title{font-family:var(--sans-display);font-weight:700;font-size:1.08rem;line-height:1.35;margin-bottom:.6rem;letter-spacing:-0.015em;}
.blog-card-excerpt{font-size:.85rem;color:var(--ink-soft);line-height:1.65;flex:1 0 auto;}
.blog-card-link{margin-top:1.25rem;font-size:.82rem;font-weight:600;color:var(--cobalt-deep);display:inline-flex;align-items:center;gap:.35rem;}
@media (max-width:900px){.blog-grid{grid-template-columns:1fr;max-width:460px;margin-left:auto;margin-right:auto;}}

/* ── BLOG POST — long-form article body, reuses svc-body-grid two-column layout ── */
.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.9rem;margin-bottom:.4rem;font-size:.8rem;color:var(--ink-soft);}
.post-meta-date{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--cobalt-deep);}
.post-meta-author{font-weight:600;color:var(--ink);}
.post-updated{font-size:.75rem;color:var(--ink-soft);margin-bottom:1.5rem;}
.post-body p{font-size:.94rem;color:var(--ink-soft);line-height:1.8;max-width:64ch;margin-bottom:1.3rem;}
.post-body h2{font-size:1.35rem;margin:2.25rem 0 .9rem;}
.post-body h3{font-size:1.1rem;margin:1.75rem 0 .7rem;}
.post-body ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin:1.3rem 0;}
.post-body ul li{font-size:.92rem;color:var(--ink);padding-left:1.4rem;position:relative;line-height:1.65;}
.post-body ul li::before{content:'\2713';position:absolute;left:0;color:var(--cobalt);font-weight:700;}

/* ── EMPLOYEE COST CALCULATOR ── */
.calc-section{padding:var(--section-pad) 0;}
.calc-intro{max-width:70ch;margin-bottom:2.5rem;}
.calc-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:2.25rem;align-items:start;}
.calc-inputs{background:var(--surface);border:1px solid var(--line);border-radius:var(--bezel-outer);padding:2.25rem;box-shadow:var(--shadow-md);}
.calc-field{margin-bottom:1.6rem;}
.calc-field:last-child{margin-bottom:0;}
.calc-field-label{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:.6rem;}
.calc-field-label .calc-live-value{font-family:var(--mono);font-weight:700;color:var(--cobalt-deep);font-size:.85rem;}
.calc-hint{font-size:.74rem;color:var(--ink-soft);margin-top:.5rem;line-height:1.5;}
.calc-input-wrap{position:relative;}
.calc-input-wrap .calc-prefix{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-family:var(--mono);font-size:.85rem;pointer-events:none;}
.calc-input-wrap input[type="number"]{width:100%;padding:.85rem 1rem .85rem 3.4rem;border:1px solid var(--line);border-radius:12px;font-size:1rem;font-family:var(--mono);font-weight:600;background:var(--paper);color:var(--ink);transition:border-color 160ms ease;}
.calc-input-wrap input[type="number"]:focus{outline:none;border-color:var(--cobalt);background:var(--surface);}
.calc-toggle-group{display:flex;gap:.6rem;flex-wrap:wrap;}
.calc-toggle{flex:1;min-width:90px;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:center;font-size:.83rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:background 180ms ease,color 180ms ease,border-color 180ms ease;}
.calc-toggle.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.calc-toggle:not(.active):hover{border-color:var(--cobalt);color:var(--cobalt-deep);}
input[type="range"].calc-slider{width:100%;height:6px;border-radius:999px;background:var(--line);appearance:none;-webkit-appearance:none;outline:none;}
input[type="range"].calc-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--cobalt);cursor:pointer;box-shadow:0 2px 8px -2px rgba(47,107,71,.6);}
input[type="range"].calc-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--cobalt);border:none;cursor:pointer;box-shadow:0 2px 8px -2px rgba(47,107,71,.6);}

.calc-results{background:linear-gradient(155deg,#1B2E22 0%,var(--ink) 55%,#0F1D15 100%);color:#fff;border-radius:var(--bezel-outer);padding:2.5rem;position:sticky;top:100px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),var(--shadow-lg);}
.calc-results-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.55);margin-bottom:.6rem;}
.calc-results-total{font-family:var(--mono);font-weight:700;font-size:clamp(2.1rem,4vw,2.75rem);margin-bottom:.3rem;letter-spacing:-0.02em;}
.calc-results-sub{font-size:.85rem;color:rgba(255,255,255,.62);margin-bottom:1.5rem;}
.calc-multiplier{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.1);padding:.5rem 1.1rem;border-radius:999px;font-size:.78rem;color:rgba(255,255,255,.85);margin-bottom:1.75rem;font-family:var(--mono);}
.calc-breakdown{display:flex;flex-direction:column;gap:0;margin-bottom:1.75rem;}
.calc-breakdown-row{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.09);font-size:.87rem;}
.calc-breakdown-row:last-child{border-bottom:none;}
.calc-breakdown-label{color:rgba(255,255,255,.72);}
.calc-breakdown-value{font-family:var(--mono);font-weight:600;color:#fff;}
.calc-disclaimer{font-size:.72rem;color:rgba(255,255,255,.42);line-height:1.65;margin-top:.5rem;font-style:italic;}
@media (max-width:900px){
  .calc-grid{grid-template-columns:1fr;gap:1.75rem;}
  .calc-results{position:static;}
}

/* ── WHATSAPP CHAT BUTTON ── */
.whatsapp-fab{position:fixed;right:1.75rem;bottom:1.75rem;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px -6px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.15);z-index:999;transition:transform 200ms var(--ease-out,ease),box-shadow 200ms ease;}
.whatsapp-fab:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 12px 30px -6px rgba(0,0,0,.4),0 2px 10px rgba(0,0,0,.18);}
.whatsapp-fab svg{width:30px;height:30px;fill:#fff;}
.whatsapp-fab-tooltip{position:absolute;right:70px;top:50%;transform:translateY(-50%) translateX(6px);background:var(--ink);color:#fff;font-size:.8rem;font-weight:600;padding:.5rem .9rem;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 180ms ease,transform 180ms ease;}
.whatsapp-fab-tooltip::after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-left-color:var(--ink);}
.whatsapp-fab:hover .whatsapp-fab-tooltip{opacity:1;transform:translateY(-50%) translateX(0);}
@media (max-width:640px){
  .whatsapp-fab{right:1.1rem;bottom:1.1rem;width:52px;height:52px;}
  .whatsapp-fab svg{width:26px;height:26px;}
  .whatsapp-fab-tooltip{display:none;}
}

/* ── LEGAL PAGES ── */
.legal-body{padding:var(--section-pad) 0;}
.legal-body .wrap{max-width:820px;}
.legal-body h2{margin-top:2rem;}
.legal-body p,.legal-body li{font-size:.92rem;color:var(--ink-soft);line-height:1.75;margin-top:.75rem;}
.legal-flag{background:#3A2F0A;color:#F0C94A;font-family:var(--mono);font-size:.72rem;padding:.5rem .9rem;border-radius:8px;display:inline-block;margin-bottom:1.5rem;}
.legal-updated{font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--cobalt-deep);margin-bottom:1.5rem;}
.decision{padding:3.5rem 0 var(--section-pad);background:var(--surface);}
.decision h2{max-width:38ch;}
.decision .section-body{max-width:64ch;margin-top:.75rem;}
.decision-docs{margin-top:2.5rem;}
.decision-docs h3{font-size:1.05rem;margin-bottom:.4rem;}
.legal-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem;}
.legal-list li{font-size:.92rem;color:var(--ink-soft);padding-left:1.4rem;position:relative;line-height:1.75;}
.legal-list li::before{content:'\2013';position:absolute;left:0;color:var(--cobalt);font-weight:700;}

/* ── 404 ── */
.notfound-hero{background:var(--ink);padding:9rem 0 6rem;text-align:center;}
.notfound-inner{max-width:640px;margin:0 auto;}
.notfound-code{font-family:var(--mono);font-weight:700;font-size:clamp(3.5rem,8vw,5.5rem);color:var(--accent-sage);line-height:1;margin-bottom:1rem;letter-spacing:-0.02em;}
.notfound-hero h1{color:#fff;max-width:none;margin:0 auto 1rem;}
.hero-sub-dark{color:rgba(255,255,255,0.68);font-size:1.02rem;line-height:1.7;max-width:44ch;margin:0 auto 2.25rem;}
.notfound-hero .hero-actions{justify-content:center;margin-bottom:2.75rem;}
.notfound-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem 1.4rem;font-size:.85rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,0.12);}
.notfound-links span{color:rgba(255,255,255,0.45);}
.notfound-links a{color:rgba(255,255,255,0.75);text-decoration:none;font-weight:600;transition:color 180ms ease;}
@media (hover:hover) and (pointer:fine){.notfound-links a:hover{color:var(--accent-sage);}}
@media (max-width:640px){.notfound-hero{padding:7rem 0 4rem;}}

/* ── FOOTER ── */
footer{background:var(--ink);color:rgba(255,255,255,0.5);padding:2.25rem 0 1.5rem;}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1.75rem;}
.footer-brand{display:inline-flex;align-items:center;text-decoration:none;}
.footer-logo-img{height:26px;width:auto;display:block;}
.footer-tagline{font-size:.76rem;font-weight:600;color:rgba(255,255,255,0.75);margin-top:.5rem;letter-spacing:-0.005em;}
.footer-note{font-size:.78rem;max-width:32ch;margin-top:.35rem;line-height:1.55;}
.footer-social{display:flex;gap:.6rem;margin-top:1.25rem;}
.footer-social a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;transition:background 180ms ease,transform 180ms ease;}
.footer-social a svg{width:16px;height:16px;fill:rgba(255,255,255,0.75);transition:fill 180ms ease;}
@media (hover:hover) and (pointer:fine){
  .footer-social a:hover{background:var(--cobalt);transform:translateY(-2px);}
  .footer-social a:hover svg{fill:#fff;}
}
.footer-cols{display:grid;grid-template-columns:repeat(6,1fr);gap:2rem 1.5rem;flex:1;}
.footer-col h5{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,0.4);margin-bottom:.65rem;}
.footer-links{display:flex;flex-direction:column;gap:.48rem;list-style:none;}
.footer-links-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem;row-gap:.48rem;}
.footer-links a{font-size:.8rem;text-decoration:none;color:rgba(255,255,255,0.55);transition:color 180ms ease;}
@media (hover:hover) and (pointer:fine){.footer-links a:hover{color:#fff;}}
.footer-copy{font-size:.72rem;margin-top:1.5rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,0.1);}
.placeholder-flag{background:#3A2F0A;color:#F0C94A;font-family:var(--mono);font-size:.68rem;padding:.15rem .5rem;border-radius:3px;margin-left:.5rem;}

@media (max-width:900px){
  .footer-cols{grid-template-columns:repeat(3,1fr);gap:1.75rem 1.25rem;}
}
@media (max-width:560px){
  .footer-inner{gap:2rem;}
  .footer-cols{grid-template-columns:repeat(2,1fr);gap:1.75rem 1.25rem;width:100%;}
}
