/* =========================================================================
   INFITEX Global Advisory — "Meridian"
   Vanilla CSS. Light-first professional B2B palette: deep navy + brass on
   warm paper, with a muted eucalyptus for positive signals. Dark toggle.
   ========================================================================= */

/* ----- Design tokens ----- */
:root{
  /* Meridian LIGHT (default) — warm paper, navy ink, brass accent */
  --bg:#F5F3EE;             /* warm paper */
  --bg-2:#FFFFFF;           /* card surface */
  --bg-3:#EFEBE3;           /* sunken surface / alt sections */
  --line:#E2DCD0;
  --line-2:#D2C9B8;
  --fg:#16202B;             /* near-black navy text */
  --muted:#5A6675;
  --ink:#12304F;            /* logo wordmark / brand navy */
  --primary:#12304F;        /* deep navy — brand fills, headers */
  --primary-2:#1C4A78;      /* lighter navy for hovers/gradients */
  --primary-ink:#F5F3EE;    /* text on navy surfaces */
  --accent:#9A6A1C;         /* brass — AA link/text colour on paper */
  --accent-fill:#B6802E;    /* brass — button fills */
  --accent-2:#2F6B4A;       /* eucalyptus — positive/ticks */
  --sage:#AEB9A8;           /* sage — logo X accent blade */
  --accent-ink:#FFFFFF;     /* text on brass fills */
  --positive:#2F6B4A;
  --link:#9A6A1C;
  --danger:#B4291C;
  --shadow:0 18px 44px -26px rgba(18,48,79,.30);
  --ring:0 0 0 3px rgba(182,128,46,.45);

  --maxw:1340px;
  --pad:clamp(14px, 3vw, 30px);
  --radius:14px;
  --radius-sm:9px;

  --font-head:'Space Grotesk','IBM Plex Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-body:'IBM Plex Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;

  --type-scale-step:0px; /* a11y text-size offset */
}

:root[data-theme="dark"]{
  /* Meridian DARK — navy-black base, brighter brass for contrast */
  --bg:#0B1622;
  --bg-2:#11202F;
  --bg-3:#16293B;
  --line:#20364B;
  --line-2:#2C4860;
  --fg:#E8EEF5;
  --muted:#93A4B6;
  --ink:#E8EEF5;
  --primary:#16324F;
  --primary-2:#1F4A73;
  --primary-ink:#E8EEF5;
  --accent:#D4982E;         /* brighter brass on dark */
  --accent-fill:#D4982E;
  --accent-2:#5BBE8C;       /* eucalyptus on dark */
  --sage:#AEB9A8;           /* sage — logo X accent blade (constant across themes) */
  --accent-ink:#0B1622;
  --positive:#5BBE8C;
  --link:#D4982E;
  --danger:#FF6B5E;
  --shadow:0 18px 50px -22px rgba(0,0,0,.7);
  --ring:0 0 0 3px rgba(212,152,46,.5);
}

/* High contrast */
:root[data-contrast="high"]{
  --muted:var(--fg);
  --line:var(--fg);
  --line-2:var(--fg);
}
:root[data-contrast="high"][data-theme="dark"]{ --fg:#FFFFFF; --bg:#000000; --bg-2:#070A08; --bg-3:#0B130E; }
:root[data-contrast="high"][data-theme="light"]{ --fg:#000000; --bg:#FFFFFF; --bg-2:#FFFFFF; --bg-3:#F0F3F0; }

/* Grayscale */
:root[data-grayscale="on"]{ filter:grayscale(1); }

/* ----- Reset ----- */
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-body);
  font-size:calc(1rem + var(--type-scale-step));
  line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{max-width:100%;}
a{color:var(--link);text-underline-offset:3px;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.12;letter-spacing:-.01em;margin:0 0 .5em;color:var(--fg);}
p{margin:0 0 1em;}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px;}
::selection{background:var(--accent-fill);color:var(--accent-ink);}

.shell{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
.skip-link{position:absolute;left:8px;top:-60px;background:var(--accent-fill);color:var(--accent-ink);padding:10px 16px;border-radius:8px;z-index:200;font-weight:700;transition:top .15s;}
.skip-link:focus{top:8px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 14px;display:inline-block;}
.eyebrow::before{content:"> ";opacity:.7;}

.muted{color:var(--muted);}
.center{text-align:center;}
.lead{font-size:1.12rem;color:var(--muted);max-width:78rem;}

/* ----- Buttons ----- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);font-weight:700;
  font-size:.95rem;padding:12px 20px;border-radius:var(--radius-sm);border:1px solid transparent;
  cursor:pointer;text-decoration:none;transition:transform .12s ease,filter .15s ease,background .15s;white-space:nowrap;}
.btn:hover{text-decoration:none;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent-fill);color:var(--accent-ink);}
.btn-primary:hover{filter:brightness(1.08);}
.btn-ghost{background:transparent;color:var(--fg);border-color:var(--line-2);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-block{width:100%;justify-content:center;}
.btn-sm{padding:8px 14px;font-size:.85rem;}
.btn svg{width:1.05em;height:1.05em;}

/* ----- Terminal window panel ----- */
.term-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.term-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-3);}
.term-bar i{width:11px;height:11px;border-radius:50%;background:var(--line-2);display:block;}
.term-bar i:nth-child(1){background:#ff5f56;}
.term-bar i:nth-child(2){background:#ffbd2e;}
.term-bar i:nth-child(3){background:var(--accent);}
.term-bar span{margin-left:8px;font-family:var(--font-mono);font-size:.74rem;color:var(--muted);}
.term-body{padding:clamp(18px,3vw,30px);}

/* ----- Header ----- */
.site-header{position:sticky;top:0;z-index:80;background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.header-inner{display:flex;align-items:center;gap:18px;height:68px;}
.brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.brand-logo{height:30px;width:auto;display:block;}
/* INFITE wordmark is now vector paths (Saira Condensed 900), so it renders
   identically regardless of font loading. --ink auto-flips light/dark. */
.brand-word path{fill:var(--ink);}
.bx-ink{fill:var(--ink);}            /* left blade follows wordmark colour */
.bx-acc{fill:var(--sage);}           /* sage rounded right blade (constant) */
.bx-dot{fill:var(--ink);}            /* pivot dot follows wordmark colour */
.bx-ring circle{stroke:var(--ink);stroke-width:1.6;opacity:.14;}
[data-theme="dark"] .bx-dot{fill:var(--sage);}
[data-theme="dark"] .bx-ring circle{opacity:.20;}

.nav{display:flex;align-items:center;gap:2px;margin-left:6px;}
.nav-link{font-size:.92rem;color:var(--fg);text-decoration:none;padding:8px 11px;border-radius:7px;font-weight:500;
  display:inline-flex;align-items:center;gap:5px;background:transparent;border:0;cursor:pointer;font-family:inherit;line-height:1;white-space:nowrap;}
.nav-link:hover,.nav-link[aria-current="page"],.nav-link[data-current="true"]{background:var(--bg-3);color:var(--accent);}
.nav-link .caret{width:15px;height:15px;transition:transform .18s ease;flex-shrink:0;}

/* mega-menu dropdowns */
.nav-item{position:relative;}
.nav-item .mega-panel{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);
  min-width:560px;max-width:min(92vw,720px);background:var(--bg-2,var(--bg));border:1px solid var(--line);
  border-radius:14px;padding:18px;box-shadow:0 18px 50px -12px rgba(0,0,0,.55),0 0 0 1px color-mix(in srgb,var(--line) 60%,transparent);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s;z-index:90;}
.nav-item.has-mega:hover .mega-panel,
.nav-item.open .mega-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.nav-item.has-mega:hover > .nav-trigger .caret,
.nav-item.open > .nav-trigger .caret{transform:rotate(180deg);}
.nav-item .mega-panel::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:12px;height:12px;background:var(--bg-2,var(--bg));border-left:1px solid var(--line);border-top:1px solid var(--line);}
.mega-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 22px;}
.mega-col{min-width:0;}
.mega-h{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);
  margin:6px 0 6px;padding:0 8px;}
.mega-col ul{list-style:none;margin:0;padding:0;}
.mega-col li{margin:0;}
.mega-col li a{display:block;padding:8px 8px;border-radius:9px;text-decoration:none;transition:background .14s;}
.mega-col li a:hover{background:var(--bg-3);}
.mega-t{display:block;font-size:.9rem;font-weight:600;color:var(--fg);}
.mega-col li a:hover .mega-t{color:var(--accent);}
.mega-d{display:block;font-size:.78rem;color:var(--muted);margin-top:1px;line-height:1.35;}
@media(max-width:1120px){.nav-item .mega-panel{min-width:460px;}}
.header-tools{margin-left:auto;display:flex;align-items:center;gap:8px;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9px;
  background:transparent;border:1px solid var(--line);color:var(--fg);cursor:pointer;transition:border-color .15s,color .15s;}
.icon-btn:hover{border-color:var(--accent);color:var(--accent);}
.icon-btn svg{width:19px;height:19px;}
.search-btn{width:auto;gap:8px;padding:0 12px;font-family:var(--font-mono);font-size:.8rem;color:var(--muted);}
.search-btn kbd{font-family:var(--font-mono);background:var(--bg-3);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:.72rem;color:var(--muted);}
.phone-slot{font-family:var(--font-mono);font-size:.85rem;color:var(--fg);text-decoration:none;padding:0 6px;display:none;}
.phone-slot:hover{color:var(--accent);}
@media(min-width:1180px){.phone-slot{display:inline;}}
.header-cta{display:none;}
@media(min-width:1180px){.header-cta{display:inline-flex;}}
@media(min-width:1024px) and (max-width:1179.98px){.header-inner{gap:12px;} .header-tools{gap:6px;}}

.hamburger{display:inline-flex;}
@media(min-width:1024px){.nav{display:flex;} .hamburger{display:none;}}
@media(max-width:1023px){.nav{display:none;}}

/* Small mobile: collapse header tools so nothing overflows the viewport */
@media(max-width:560px){
  .header-inner{gap:10px;}
  .header-tools{gap:6px;}
  .search-btn{width:44px;padding:0;gap:0;justify-content:center;}
  .search-btn span,.search-btn kbd{display:none;}
  .icon-btn{width:44px;height:44px;}
}
@media(max-width:380px){
  /* hide the accessibility quick-toggle on very small screens (still in the menu) */
  .header-tools [data-open-a11y]{display:none;}
}

/* mobile nav drawer */
.mobile-nav{position:fixed;inset:0;z-index:120;background:var(--bg);transform:translateX(100%);
  transition:transform .25s ease;display:flex;flex-direction:column;padding:20px;overflow:auto;}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.mobile-nav nav{display:flex;flex-direction:column;}
.m-link{font-family:var(--font-head);font-size:1.3rem;padding:14px 6px;border-bottom:1px solid var(--line);
  color:var(--fg);text-decoration:none;display:block;}
.m-link:hover{color:var(--accent);}
.m-acc{border-bottom:1px solid var(--line);}
.m-acc-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--font-head);font-size:1.3rem;padding:14px 6px;background:transparent;border:0;
  color:var(--fg);cursor:pointer;text-align:left;line-height:1.1;}
.m-acc-btn:hover{color:var(--accent);}
.m-acc-btn .caret{width:22px;height:22px;transition:transform .2s ease;flex-shrink:0;color:var(--muted);}
.m-acc-btn[aria-expanded="true"] .caret{transform:rotate(180deg);}
.m-acc-panel{display:none;padding:4px 6px 12px;}
.m-acc-panel.open{display:block;}
.m-group{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);margin:12px 0 4px;}
.m-group:first-child{margin-top:2px;}
.m-sublink{display:block;font-size:1rem;padding:9px 8px;color:var(--fg);text-decoration:none;border-radius:8px;}
.m-sublink:hover{background:var(--bg-3);color:var(--accent);}
@media(prefers-reduced-motion:reduce){.mobile-nav{transition:none;}}

/* ----- Section rhythm ----- */
.section{padding:clamp(46px,6.5vw,84px) 0;}
.section-head{max-width:82rem;margin-bottom:36px;}
.section-title{font-size:clamp(1.6rem,3.5vw,2.4rem);}
.section.alt{background:var(--bg-2);border-block:1px solid var(--line);}
/* collapse doubled whitespace between two adjacent same-background sections */
.section + .section:not(.alt){padding-top:0;}
.section.alt + .section.alt{padding-top:0;}
.section.alt + .section:not(.alt),.section:not(.alt) + .section.alt{padding-top:clamp(46px,6.5vw,84px);}

/* ----- Hero ----- */
.hero{position:relative;padding:clamp(40px,7vw,84px) 0 clamp(40px,6vw,72px);overflow:hidden;}
.hero-grid::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:46px 46px;mask-image:radial-gradient(circle at 70% 30%,#000,transparent 75%);opacity:.5;}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
@media(max-width:920px){.hero-inner{grid-template-columns:1fr;gap:32px;}}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.7rem);margin-bottom:.4em;}
.hero h1 .accent{color:var(--accent);}
.hero-sub{font-size:1.15rem;color:var(--muted);max-width:66rem;margin-bottom:28px;}
.answer-lede{font-size:1.06rem;line-height:1.6;color:var(--fg);max-width:66rem;margin:0 0 18px;
  padding-left:16px;border-left:3px solid var(--accent);font-weight:500;}
@media(max-width:480px){.answer-lede{font-size:1rem;padding-left:12px;}}

/* ----- contact layout + QR (vCard) card ----- */
.qr-card--wide .qr-card__body{display:flex;gap:28px;align-items:center;}
.qr-card--wide .qr-wrap{flex-shrink:0;}
.qr-card--wide .qr-wrap img{width:170px;height:170px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:10px;}
.qr-card__text{max-width:54ch;}
.qr-card__text .ico{margin-bottom:10px;}
.qr-card__text h3{margin:0 0 8px;}
.qr-card__text p{margin:0;}
.qr-hint{font-family:var(--font-mono);font-size:.76rem;color:var(--muted);margin:10px 0 0 !important;}
.qr-scan-art{margin-left:auto;flex-shrink:0;width:300px;max-width:34%;}
.qr-scan-art svg{width:100%;height:auto;}
@media(max-width:1100px){.qr-scan-art{display:none;}}
@media(max-width:560px){
  .qr-card--wide .qr-card__body{flex-direction:column;text-align:center;}
  .qr-card__text .ico{margin-inline:auto;}
}
.qr-dialog-card{max-width:380px;}
.qr-dialog-img img{width:220px;height:220px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;}
/* QR header button: wide desktop only — avoids crowding the header */
.qr-header-btn{display:none;}
@media(min-width:1280px){.qr-header-btn{display:inline-flex;}}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px;}
.hero-paths{display:flex;gap:10px;flex-wrap:wrap;}
.path-chip{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 13px;text-decoration:none;}
.path-chip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none;}
.path-chip b{color:var(--fg);font-weight:700;}

/* terminal hero console */
.console .term-body{font-family:var(--font-mono);font-size:.86rem;line-height:1.7;color:var(--muted);min-height:230px;}
.console .cl{display:block;}
.console .pr{color:var(--accent);} 
.console .ok{color:var(--accent);}
.console .cy{color:var(--accent-2);}
.console .dim{opacity:.6;}
span.caret{display:inline-block;width:.55em;height:1.05em;background:var(--accent);vertical-align:-.16em;margin-left:1px;}
@media(prefers-reduced-motion:no-preference){span.caret{animation:blink 1.05s steps(1) infinite;}}
@keyframes blink{50%{opacity:0;}}

/* ----- Typewriter ----- */
.tw{white-space:pre-wrap;}
.tw .tw-caret{display:inline-block;width:.5em;height:1em;background:currentColor;color:var(--accent);
  vertical-align:-.12em;margin-left:2px;}
@media(prefers-reduced-motion:no-preference){.tw .tw-caret{animation:blink 1s steps(1) infinite;}}

/* ----- Reveal ----- */
.reveal{opacity:0;transform:translateY(14px);}
.reveal.in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;}}

/* ----- Stack strip ----- */
.stack-strip{display:flex;flex-wrap:wrap;gap:10px;}
.stack-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-style:normal;
  font-size:.82rem;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:8px 14px;color:var(--fg);}
.stack-chip .dot{width:9px;height:9px;border-radius:2px;flex-shrink:0;}

/* ----- Cards grid ----- */
.grid{display:grid;gap:20px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:border-color .15s,transform .15s;}
.card:hover{border-color:var(--line-2);}
.card .ico{width:42px;height:42px;border-radius:10px;background:var(--bg-3);border:1px solid var(--line);
  display:grid;place-items:center;color:var(--accent);margin-bottom:16px;}
.card .ico svg{width:22px;height:22px;}
.card h3{font-size:1.15rem;margin-bottom:.4em;}
.card p{color:var(--muted);margin:0 0 .8em;font-size:.95rem;}
.card .more{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);text-decoration:none;}
.card .more:hover{text-decoration:underline;}

.division{display:flex;flex-direction:column;}
.division .tag{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;}

/* ----- Steps ----- */
.steps{counter-reset:step;display:grid;gap:16px;}
.step{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:var(--bg-2);
  border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;}
.step .num{counter-increment:step;font-family:var(--font-mono);font-weight:700;color:var(--accent);
  background:var(--bg-3);border:1px solid var(--line);border-radius:8px;min-width:42px;height:42px;display:grid;place-items:center;}
.step .num::before{content:counter(step,decimal-leading-zero);}
.step h3{font-size:1.05rem;margin:.1em 0 .3em;}
.step p{margin:0;color:var(--muted);font-size:.94rem;}

/* ----- Compliance cycle / lists ----- */
.cycle-list{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.cycle-list li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;}
.cycle-list .mark{color:var(--accent);font-family:var(--font-mono);flex-shrink:0;}
.cycle-list b{display:block;font-family:var(--font-mono);font-size:.95rem;}
.cycle-list span{color:var(--muted);font-size:.9rem;}

/* job/frequency two-column table */
.jobtable-wrap{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:760px){.jobtable-wrap{grid-template-columns:1fr;}}
table.jobtable{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem;background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;}
table.jobtable caption{font-family:var(--font-mono);text-align:left;color:var(--accent);font-size:.78rem;
  text-transform:uppercase;letter-spacing:.12em;padding:14px 16px 12px;background:var(--bg-3);border-bottom:2px solid var(--accent);}
table.jobtable th,table.jobtable td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;}
table.jobtable thead th{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);}
table.jobtable tbody tr:nth-child(even){background:color-mix(in srgb,var(--bg-3) 55%,transparent);}
table.jobtable tbody tr:last-child td{border-bottom:0;}
table.jobtable td:last-child{font-family:var(--font-mono);color:var(--accent-2);white-space:nowrap;}

/* ----- Security feature list ----- */
.feature-list{list-style:none;padding:0;margin:0;display:grid;gap:14px;}
.feature-list li{display:grid;grid-template-columns:auto 1fr;gap:14px;}
.feature-list .ico{width:36px;height:36px;border-radius:9px;background:var(--bg-3);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);}
.feature-list .ico svg{width:18px;height:18px;}
.feature-list b{font-family:var(--font-mono);font-size:.95rem;}
.feature-list p{margin:.2em 0 0;color:var(--muted);font-size:.92rem;}

/* ----- two-column split (security etc.) ----- */
.split-2{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;}
.split-2--rev{align-items:center;}
@media(max-width:860px){.split-2{grid-template-columns:1fr;gap:26px;}}
.feature-grid-2{grid-template-columns:1fr 1fr;gap:18px 26px;}
@media(max-width:560px){.feature-grid-2{grid-template-columns:1fr;}}
.sec-visual{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-align:center;}
.sec-visual svg{width:100%;max-width:300px;height:auto;}
.sec-cap{color:var(--muted);font-size:.9rem;margin:12px 0 0;}

/* ----- vision / mission / believe ----- */
.vmb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px;}
@media(max-width:820px){.vmb-grid{grid-template-columns:1fr;}}
.vmb-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;border-top:3px solid var(--accent);}
.vmb-card .ico{width:42px;height:42px;border-radius:11px;background:var(--bg-3);display:grid;place-items:center;color:var(--accent);margin-bottom:14px;}
.vmb-card .ico svg{width:22px;height:22px;}
.vmb-card h3{font-size:1.12rem;margin:0 0 8px;color:var(--fg);}
.vmb-card p{color:var(--muted);font-size:.92rem;margin:0;line-height:1.55;}

/* ----- soft (non-financial) savings ----- */
.soft-savings{margin-top:34px;padding-top:30px;border-top:1px solid var(--line);}

/* ----- hero with dashboard widget ----- */
.hero-2col{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
@media(max-width:920px){.hero-2col{grid-template-columns:1fr;gap:34px;}}
.status-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px 22px 16px;}
.status-card__top{display:flex;align-items:center;justify-content:space-between;
  padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid var(--line);}
.status-card__top .t{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);}
.status-card__top .dot{width:10px;height:10px;border-radius:50%;background:var(--positive);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--positive) 22%,transparent);}
.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 0;border-bottom:1px dashed var(--line);}
.ledger-row:last-of-type{border-bottom:0;}
.ledger-row .k{font-size:.92rem;color:var(--fg);}
.ledger-row .v{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);
  border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;white-space:nowrap;}
.ledger-row .v.ok{color:var(--positive);border-color:color-mix(in srgb,var(--positive) 50%,var(--line));
  background:color-mix(in srgb,var(--positive) 10%,transparent);}
.ledger-row .v.warn{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,transparent);}
.status-card__foot{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);
  margin-top:12px;padding-top:10px;border-top:1px solid var(--line);}

/* ----- finance dashboard visual (Business hero) ----- */
.dash-visual{display:flex;flex-direction:column;align-items:center;}
.dash-svg{width:100%;height:auto;max-width:520px;filter:drop-shadow(0 18px 40px rgba(8,18,30,.18));}
.dash-cap{font-family:var(--font-mono);font-size:.74rem;color:var(--muted);margin:14px 0 0;text-align:center;}

/* ----- industry cards (Who we help) ----- */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:900px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.ind-grid{grid-template-columns:1fr;}}
.ind-card{display:flex;align-items:center;gap:13px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:16px 18px;font-weight:600;font-size:.95rem;color:var(--fg);
  transition:border-color .15s,transform .15s;}
.ind-card:hover{border-color:var(--accent);transform:translateY(-2px);}
.ind-ic{display:grid;place-items:center;flex-shrink:0;color:var(--accent);}
.ind-ic svg{width:20px;height:20px;}

/* ----- testimonials ----- */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:920px){.tgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.tgrid{grid-template-columns:1fr;}}
.tcard{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;position:relative;display:flex;flex-direction:column;}
.tquote-mark{font-family:var(--font-head);font-size:2.6rem;line-height:.6;color:var(--accent);
  opacity:.5;margin-bottom:6px;}
.tcard blockquote{margin:0 0 18px;font-size:.98rem;line-height:1.6;color:var(--fg);}
.tcard figcaption{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:2px;}
.tcard .tname{font-weight:700;font-size:.92rem;color:var(--fg);}
.tcard .torg{font-size:.84rem;color:var(--muted);}

/* ----- digitech split sections (Found on Google / devices) ----- */
.dt-split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
@media(max-width:860px){.dt-split{grid-template-columns:1fr;gap:28px;}}
.dt-split-rev .dt-visual{order:-1;}
@media(max-width:860px){.dt-split-rev .dt-visual{order:0;}}
.dt-visual{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;justify-content:center;}
.dt-svg{width:100%;max-width:440px;height:auto;}
.ticks{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:11px;}
.ticks li{position:relative;padding-left:30px;color:var(--fg);font-size:.96rem;}
.ticks li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:9px;
  border-left:2.5px solid var(--positive);border-bottom:2.5px solid var(--positive);transform:rotate(-45deg);}

/* ----- Calculator ----- */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
@media(max-width:820px){.calc{grid-template-columns:1fr;}}
.calc .field{margin-bottom:18px;}
.calc label{display:block;font-family:var(--font-mono);font-size:.82rem;margin-bottom:8px;color:var(--fg);}
.calc input[type=range]{width:100%;accent-color:var(--accent);}
.calc .rowval{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.82rem;color:var(--muted);}
.calc .rowval b{color:var(--accent);}
.calc-out{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;justify-content:center;}
.calc-out .figure{font-family:var(--font-mono);font-size:clamp(1.7rem,4vw,2.6rem);color:var(--accent);font-weight:700;line-height:1.1;}
.calc-out .figure small{display:block;font-size:.9rem;color:var(--muted);font-weight:400;margin-top:6px;}
.note{font-size:.82rem;color:var(--muted);font-style:italic;}

/* ----- Key dates ----- */
.dates-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.94rem;background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;}
.dates-table th,.dates-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);}
.dates-table thead th{font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--fg);background:var(--bg-3);border-bottom:2px solid var(--accent);}
.dates-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--bg-3) 60%,transparent);}
.dates-table tbody tr:hover{background:var(--bg-3);}
.dates-table tbody tr:last-child td{border-bottom:0;}
.dates-table td.date{font-family:var(--font-mono);color:var(--accent-2);white-space:nowrap;}

/* ----- FAQ ----- */
.faq-spotlight{position:relative;}
.faq-stage{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,34px);min-height:200px;}
.faq-slide{display:none;}
.faq-slide.active{display:block;animation:fade .4s ease;}
@media(prefers-reduced-motion:reduce){.faq-slide.active{animation:none;}}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.faq-q{font-family:var(--font-head);font-size:1.2rem;color:var(--fg);margin-bottom:.5em;}
.faq-q::before{content:"? ";color:var(--accent);}
.faq-a{color:var(--muted);margin:0;}
.faq-controls{display:flex;align-items:center;gap:14px;margin-top:20px;}
.faq-controls>button{width:44px;height:44px;flex-shrink:0;}
.faq-dots{display:flex;gap:6px;flex-wrap:wrap;flex:1;align-items:center;}
.faq-dot{width:26px;height:5px;border-radius:3px;background:var(--line-2);border:0;padding:0;cursor:pointer;transition:background .2s,width .2s;}
.faq-dot:hover{background:var(--muted);}
.faq-dot.on{background:var(--accent);width:44px;}
.faq-progress{height:3px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:16px;}
.faq-progress span{display:block;height:100%;background:var(--accent);width:0;}
.faq-accordion{margin-top:24px;}
.faq-accordion>summary{cursor:pointer;font-family:var(--font-mono);color:var(--accent);padding:10px 0;list-style:none;}
.faq-accordion>summary::-webkit-details-marker{display:none;}
.faq-accordion>summary::before{content:"+ ";}
.faq-accordion[open]>summary::before{content:"– ";}
.faq-item{border-top:1px solid var(--line);}
.faq-item summary{cursor:pointer;padding:16px 4px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";color:var(--accent);font-family:var(--font-mono);}
.faq-item[open] summary::after{content:"–";}
.faq-item p{color:var(--muted);padding:0 4px 18px;margin:0;}

/* ----- Contact grid ----- */
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-cards{display:flex;flex-direction:column;gap:18px;}
.contact-qr-row{margin-top:22px;}

/* ----- Forms ----- */
.form-row{margin-bottom:16px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){.form-grid{grid-template-columns:1fr;}}
label.lbl{display:block;font-family:var(--font-mono);font-size:.8rem;margin-bottom:7px;color:var(--fg);}
label.lbl .req{color:var(--accent);}
.input,select.input,textarea.input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;
  color:var(--fg);font-family:var(--font-body);font-size:.95rem;padding:12px 13px;transition:border-color .15s;}
textarea.input{min-height:120px;resize:vertical;font-family:var(--font-body);}
.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring);}
.input::placeholder{color:var(--muted);opacity:.7;}
.field-err{color:var(--danger);font-size:.82rem;margin-top:6px;display:none;font-family:var(--font-mono);}
.form-row.invalid .field-err{display:block;}
.form-row.invalid .input,.form-row.invalid select.input,.form-row.invalid textarea.input,
.form-row.invalid .tel-combo{border-color:var(--danger);}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.form-note{font-size:.82rem;color:var(--muted);}
.form-status{margin-top:14px;font-family:var(--font-mono);font-size:.88rem;}
.form-status.ok{color:var(--accent);}
.form-status.err{color:var(--danger);}

/* phone with country-code combobox */
.tel-wrap{display:grid;grid-template-columns:auto 1fr;gap:10px;}
.cc-combo{position:relative;}
.cc-input{width:84px;background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--fg);
  font-family:var(--font-mono);font-size:.95rem;padding:12px 10px;text-align:left;}
.cc-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring);}
.cc-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:260px;max-height:240px;overflow:auto;
  background:var(--bg-2);border:1px solid var(--line-2);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:none;}
.cc-list.open{display:block;}
.cc-opt{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:7px;cursor:pointer;font-size:.9rem;}
.cc-opt .code{font-family:var(--font-mono);color:var(--accent);min-width:48px;}
.cc-opt .cn{color:var(--muted);font-size:.85rem;}
.cc-opt[aria-selected="true"],.cc-opt:hover{background:var(--bg-3);}
.tel-num{font-family:var(--font-mono);letter-spacing:.04em;}

/* ----- Subscribe ----- */
.subscribe{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;}
@media(max-width:680px){.subscribe{grid-template-columns:1fr;}}
.freq-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;}
.freq-row label{font-family:var(--font-mono);font-size:.85rem;display:flex;align-items:center;gap:6px;color:var(--fg);cursor:pointer;}
.optin{display:flex;gap:9px;align-items:flex-start;font-size:.82rem;color:var(--muted);margin-top:12px;}
.optin input{margin-top:3px;}

/* ----- CTA band ----- */
.cta-band{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(28px,5vw,52px);text-align:center;background-image:radial-gradient(circle at 50% 0%,rgba(107,255,77,.08),transparent 60%);}
.cta-band h2{font-size:clamp(1.5rem,3vw,2.1rem);}
.cta-band .hero-cta{justify-content:center;margin-top:22px;}

/* ----- Footer ----- */
.site-footer{background:var(--bg-2);border-top:1px solid var(--line);padding:44px 0 24px;margin-top:8px;}
.footer-top{display:grid;grid-template-columns:1.5fr 2.4fr;gap:40px;align-items:start;}
@media(max-width:860px){.footer-top{grid-template-columns:1fr;gap:28px;}}
.footer-brand{max-width:42ch;}
.footer-blurb{color:var(--muted);font-size:.9rem;margin:12px 0 14px;}
.footer-contact{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:7px;}
.footer-contact li{display:flex;align-items:center;gap:8px;font-size:.9rem;}
.footer-contact li svg{width:16px;height:16px;color:var(--accent);flex-shrink:0;}
.footer-contact a{color:var(--fg);text-decoration:none;}
.footer-contact a:hover{color:var(--accent);}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
@media(max-width:560px){.footer-cols{grid-template-columns:1fr 1fr;gap:22px;}}
.footer-col h4{font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:12px;}
.footer-col ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.footer-col a{color:var(--fg);text-decoration:none;font-size:.9rem;}
.footer-col a:hover{color:var(--accent);}
.socials{display:flex;gap:9px;margin-top:6px;}
.socials a{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;color:var(--fg);}
.socials a:hover{border-color:var(--accent);color:var(--accent);}
.socials svg{width:18px;height:18px;}
.footer-bottom{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.84rem;color:var(--muted);}
.footer-legal{display:flex;gap:16px;flex-wrap:wrap;}
.footer-legal a{color:var(--muted);text-decoration:none;}
.footer-legal a:hover{color:var(--accent);}
.compliance-line{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);margin-top:14px;border-top:1px dashed var(--line);padding-top:14px;}

/* ----- Floating action buttons ----- */
.fab{position:fixed;right:18px;bottom:18px;z-index:70;display:flex;flex-direction:column;gap:10px;}
.fab button,.fab a{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);
  background:var(--bg-2);color:var(--fg);cursor:pointer;box-shadow:var(--shadow);text-decoration:none;transition:transform .15s,border-color .15s;}
.fab button:hover,.fab a:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent);}
.fab .wa{color:#25D366;border-color:#25D366;}
.fab svg{width:23px;height:23px;}
#backTop{opacity:0;pointer-events:none;transition:opacity .2s;}
#backTop.show{opacity:1;pointer-events:auto;}

/* ----- Dialog / popovers ----- */
dialog{border:0;padding:0;background:transparent;color:var(--fg);max-width:min(560px,94vw);width:100%;}
dialog::backdrop{background:rgba(0,0,0,.62);backdrop-filter:blur(2px);}
.dialog-card{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);max-height:90vh;overflow:auto;}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg-2);}
.dialog-head h2{margin:0;font-size:1.1rem;}
.dialog-body{padding:18px;}
.dialog-foot{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}

/* ----- Search overlay ----- */
.search-overlay{position:fixed;inset:0;z-index:140;background:color-mix(in srgb,var(--bg) 78%,transparent);
  backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;}
.search-overlay.open{display:flex;}
.search-panel{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius);width:min(680px,100%);
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;max-height:84vh;}
.search-input-row{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);}
.search-input-row svg{width:20px;height:20px;color:var(--accent);flex-shrink:0;}
#searchInput{flex:1;background:transparent;border:0;color:var(--fg);font-family:var(--font-mono);font-size:1.05rem;outline:none;}
.search-results{overflow:auto;padding:8px;}
.search-group-label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:12px 12px 6px;}
.search-result{display:block;padding:11px 12px;border-radius:9px;text-decoration:none;color:var(--fg);}
.search-result:hover,.search-result.active{background:var(--bg-3);}
.search-result .r-title{font-weight:600;font-size:.96rem;}
.search-result .r-title mark{background:var(--accent-fill);color:var(--accent-ink);border-radius:3px;padding:0 2px;}
.search-result .r-snip{color:var(--muted);font-size:.85rem;margin-top:2px;}
.search-result .r-snip mark{background:transparent;color:var(--accent);font-weight:600;}
.search-empty{padding:30px;text-align:center;color:var(--muted);font-family:var(--font-mono);font-size:.9rem;}
.search-foot{padding:10px 16px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.74rem;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap;}
@media(max-width:560px){.search-overlay{padding:0;}.search-panel{max-height:100vh;height:100vh;width:100vw;border-radius:0;}}

/* ----- Section navigator (home) ----- */
.section-nav{position:sticky;top:68px;z-index:60;background:color-mix(in srgb,var(--bg) 90%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.section-nav ul{list-style:none;margin:0;padding:10px 0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;justify-content:center;}
@media(max-width:760px){.section-nav ul{justify-content:flex-start;}}
.section-nav a{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);text-decoration:none;white-space:nowrap;padding:6px 11px;border-radius:7px;}
.section-nav a:hover,.section-nav a.active{color:var(--accent);background:var(--bg-3);}

/* breadcrumbs */
.crumbs{font-family:var(--font-mono);font-size:.8rem;color:var(--muted);padding:16px 0 0;}
.crumbs a{color:var(--muted);text-decoration:none;}
.crumbs a:hover{color:var(--accent);}
.crumbs span{color:var(--accent);}

/* utility */
.mt-0{margin-top:0;}
.divider{height:1px;background:var(--line);border:0;margin:0;}
.pill-tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;color:var(--accent);
  border:1px solid var(--line);border-radius:999px;padding:4px 11px;background:var(--bg-2);}
.prose h2{margin-top:1.6em;}
.prose h3{margin-top:1.3em;font-size:1.05rem;}
.prose ul{padding-left:1.2em;color:var(--muted);}
.prose li{margin-bottom:.4em;}
.prose h2[id]{scroll-margin-top:90px;}

/* ----- legal pages (privacy / terms) ----- */
.legal-shell{max-width:80ch;}
.legal-toc{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;margin:26px 0 8px;}
.legal-toc strong{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted);display:block;margin-bottom:10px;}
.legal-toc ol{margin:0;padding-left:1.3em;columns:2;column-gap:34px;}
@media(max-width:620px){.legal-toc ol{columns:1;}}
.legal-toc li{margin-bottom:6px;}
.legal-toc a{color:var(--accent);text-decoration:none;font-size:.9rem;}
.legal-toc a:hover{text-decoration:underline;}

/* =========================================================================
   About spacing + balanced two-up
   ========================================================================= */
.about-prose{max-width:80rem;}
.about-cards{margin-top:26px;}

/* =========================================================================
   Justified body copy — clean edges on long-form paragraphs.
   Applied to prose/about/legal paragraphs (not headings, leads or labels).
   hyphens:auto + word-break avoid ugly rivers/large gaps.
   ========================================================================= */
.about-prose p,
.prose > p,
.legal-shell p:not(.lead),
.answer-lede{
  text-align:justify;
  -webkit-hyphens:auto;hyphens:auto;
  hyphenate-limit-chars:7 4 3;
  overflow-wrap:break-word;
}
/* On narrow phones, justify creates big gaps — fall back to left-align */
@media(max-width:560px){
  .about-prose p,.prose > p,.legal-shell p:not(.lead),.answer-lede{
    text-align:left;-webkit-hyphens:none;hyphens:none;
  }
}

/* =========================================================================
   Subscribe (digest) — two-column with preview card
   ========================================================================= */
.digest-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:stretch;}
@media(max-width:900px){.digest-grid{grid-template-columns:1fr;}}
.digest-grid #subscribeForm{max-width:none;margin:0;display:flex;flex-direction:column;}
.sub-perks{list-style:none;margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--line);display:grid;gap:11px;}
.sub-perks li{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;color:var(--fg);line-height:1.4;}
.sub-perks li svg{width:18px;height:18px;flex-shrink:0;color:var(--positive);margin-top:1px;}
.digest-grid #subscribeForm .form-status{margin-top:auto;}
.digest-preview{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;}
.digest-preview .term-bar{border-bottom:1px solid var(--line);}
.digest-preview .dp-body{padding:18px 20px;font-family:var(--font-mono);font-size:.86rem;color:var(--muted);}
.dp-row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px dashed var(--line);}
.dp-row:last-child{border-bottom:0;}
.dp-row .d{color:var(--accent-2);white-space:nowrap;}
.dp-tag{display:inline-block;font-family:var(--font-mono);font-size:.7rem;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:3px 10px;margin-bottom:6px;}

/* =========================================================================
   DIGITECH VISUALS — animated workflow (light beam), charts, channel bars
   ========================================================================= */
.viz-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,32px);}
.viz-card .viz-cap{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;display:block;}

/* --- workflow with flowing light beam --- */
.flow{position:relative;padding:8px 0 4px;}
.flow-line{position:absolute;top:32px;left:0;width:100%;height:8px;overflow:visible;z-index:0;}
.flow-line .track{stroke:var(--line-2);stroke-width:2;}
.flow-beam{stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:150 850;}
@media(prefers-reduced-motion:no-preference){
  .flow-beam{animation:flowbeam 3.4s linear infinite;filter:drop-shadow(0 0 6px var(--accent));}
  @keyframes flowbeam{from{stroke-dashoffset:1000;}to{stroke-dashoffset:0;}}
}
.flow-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media(max-width:760px){.flow-row{grid-template-columns:repeat(2,1fr);row-gap:34px;}.flow-line{display:none;}}
@media(max-width:440px){.flow-row{grid-template-columns:1fr;}}
.flow-stage{text-align:center;}
.flow-node{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;
  background:var(--bg-3);border:2px solid var(--accent);color:var(--accent);font-family:var(--font-mono);font-weight:700;font-size:1.05rem;
  box-shadow:0 0 0 6px color-mix(in srgb,var(--bg) 80%,transparent);position:relative;}
@media(prefers-reduced-motion:no-preference){
  .flow-stage:nth-child(1) .flow-node{animation:nodepulse 3.4s ease-in-out infinite;}
  .flow-stage:nth-child(2) .flow-node{animation:nodepulse 3.4s ease-in-out .85s infinite;}
  .flow-stage:nth-child(3) .flow-node{animation:nodepulse 3.4s ease-in-out 1.7s infinite;}
  .flow-stage:nth-child(4) .flow-node{animation:nodepulse 3.4s ease-in-out 2.55s infinite;}
  @keyframes nodepulse{0%,72%,100%{box-shadow:0 0 0 6px color-mix(in srgb,var(--bg) 80%,transparent);}
    82%{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 30%,transparent);}}
}
.flow-stage b{font-family:var(--font-head);font-size:1rem;color:var(--fg);display:block;margin-bottom:4px;}
.flow-stage p{color:var(--muted);font-size:.86rem;margin:0;}

/* --- 5-stage flow variant --- */
.flow-row-5{grid-template-columns:repeat(5,1fr);}
@media(max-width:880px){.flow-row-5{grid-template-columns:repeat(3,1fr);row-gap:34px;}}
@media(max-width:560px){.flow-row-5{grid-template-columns:repeat(2,1fr);}}
@media(max-width:400px){.flow-row-5{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:no-preference){
  .flow-5 .flow-stage:nth-child(1) .flow-node{animation:nodepulse 4s ease-in-out infinite;}
  .flow-5 .flow-stage:nth-child(2) .flow-node{animation:nodepulse 4s ease-in-out .7s infinite;}
  .flow-5 .flow-stage:nth-child(3) .flow-node{animation:nodepulse 4s ease-in-out 1.4s infinite;}
  .flow-5 .flow-stage:nth-child(4) .flow-node{animation:nodepulse 4s ease-in-out 2.1s infinite;}
  .flow-5 .flow-stage:nth-child(5) .flow-node{animation:nodepulse 4s ease-in-out 2.8s infinite;}
}

/* --- what's included tick grid --- */
.incl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 26px;}
@media(max-width:820px){.incl-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.incl-grid{grid-template-columns:1fr;}}
.incl-grid li{display:flex;align-items:flex-start;gap:10px;color:var(--fg);font-size:.95rem;line-height:1.4;}
.incl-grid li svg{width:20px;height:20px;flex-shrink:0;color:var(--positive);margin-top:1px;}

/* --- website care plans (3 tiers) --- */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;}
@media(max-width:880px){.plan-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto;}}
.plan-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;display:flex;flex-direction:column;}
.plan-card.featured{border-color:var(--accent-fill);box-shadow:0 0 0 1px var(--accent-fill),var(--shadow);position:relative;}
.plan-card .tier{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
.plan-card .tier>span:first-child{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
.plan-card .pill{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  background:var(--accent-fill);color:var(--accent-ink);padding:3px 9px;border-radius:999px;font-weight:600;}
.plan-card h3{font-size:1.16rem;margin:0 0 6px;color:var(--fg);}
.plan-card .blurb{color:var(--muted);font-size:.9rem;margin:0 0 16px;}
.plan-feats{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:9px;}
.plan-feats li{position:relative;padding-left:24px;font-size:.92rem;color:var(--fg);}
.plan-feats li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;
  border-left:2px solid var(--positive);border-bottom:2px solid var(--positive);transform:rotate(-45deg);}
.plan-price{margin-top:auto;font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;}

/* --- illustrative growth chart (animated bars) --- */
.chart{display:flex;align-items:flex-end;gap:10px;height:180px;padding:14px 6px 0;border-bottom:2px solid var(--line-2);position:relative;}
.chart .bar{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 35%,transparent));
  height:var(--h);align-self:flex-end;transition:height 1s cubic-bezier(.2,.7,.2,1);min-width:14px;}
@media(prefers-reduced-motion:no-preference){
  .chart.armed .bar{height:0;}
  .chart.armed.grow .bar{height:var(--h);}
}
.chart .bar:last-child{background:linear-gradient(var(--accent-2),color-mix(in srgb,var(--accent-2) 35%,transparent));}
.chart-legend{display:flex;justify-content:space-between;margin-top:10px;font-family:var(--font-mono);font-size:.74rem;color:var(--muted);}
.chart-trend{position:absolute;left:6px;right:6px;bottom:0;height:100%;pointer-events:none;}
.chart-trend polyline{fill:none;stroke:var(--fg);stroke-width:2;opacity:.35;stroke-dasharray:4 4;}

/* --- channel equalizer bars --- */
.eq{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.eq-item{text-align:center;}
.eq-bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:64px;margin-bottom:12px;}
.eq-bars span{width:7px;border-radius:3px;background:var(--accent);height:30%;}
@media(prefers-reduced-motion:no-preference){
  .eq-bars span{animation:eq 1.2s ease-in-out infinite;}
  .eq-bars span:nth-child(2){animation-delay:.15s;background:var(--accent-2);}
  .eq-bars span:nth-child(3){animation-delay:.3s;}
  .eq-bars span:nth-child(4){animation-delay:.45s;background:var(--accent-2);}
  @keyframes eq{0%,100%{height:25%;}50%{height:90%;}}
}
.eq-item b{font-family:var(--font-head);font-size:.92rem;display:block;}
.eq-item span.lbl{color:var(--muted);font-size:.8rem;font-family:var(--font-mono);}

.viz-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:22px;align-items:stretch;}
@media(max-width:860px){.viz-grid{grid-template-columns:1fr;}}

/* ============================================================
   RESPONSIVE TIERS (explicit) + CLS PREVENTION + TOUCH TARGETS
   Mobile <480 · Tablet 480–768 · Laptop 768–1024 · Desktop 1024+
   ============================================================ */

/* CLS: reserve intrinsic size for media so layout doesn't shift on load */
.brand-logo{width:auto;height:30px;aspect-ratio:309/72;}
.dash-svg{aspect-ratio:520/360;}
.sec-visual svg{aspect-ratio:320/300;}
.dt-svg{aspect-ratio:460/320;}
img,svg{max-width:100%;}

/* Touch targets: ensure interactive controls clear ~44–48px */
.btn{min-height:44px;}
.nav-link,.m-link,.m-acc-btn,.m-sublink{min-height:44px;display:inline-flex;align-items:center;}
.fab a,.fab button{min-width:48px;min-height:48px;}
.input,.cc-input,select.input,textarea.input{min-height:44px;}
.optin input[type="checkbox"]{min-width:20px;min-height:20px;}

/* --- Mobile: under 480px --- */
@media (max-width:479.98px){
  .shell{padding-inline:16px;}
  .section{padding-block:40px;}
  .hero-cta{flex-wrap:wrap;}
  .hero-cta .btn{flex:1 1 auto;justify-content:center;}
  h1{font-size:clamp(2rem,9vw,2.6rem);}
}

/* --- Tablet: 480–768px --- */
@media (min-width:480px) and (max-width:767.98px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}
  .hero-inner,.hero-2col{grid-template-columns:1fr;}
}

/* --- Laptop: 768–1024px --- */
@media (min-width:768px) and (max-width:1023.98px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .hero-inner,.hero-2col{gap:32px;}
}

/* --- Desktop: 1024px and up --- */
@media (min-width:1024px){
  .shell{max-width:1200px;}
}
