/* ==========================================================================
   Fonts — self-hosted, latin subset only.
   Previously loaded from Google Fonts, which cost two extra third-party
   connections on the critical path and sent every visitor's IP to a third
   party before they had made any cookie choice. Self-hosting removes both.
   Manrope is a variable font: one 24KB file covers 400–800.
   ========================================================================== */
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('/fonts/manrope-variable.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/fonts/ibm-plex-mono-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('/fonts/ibm-plex-mono-600.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ==========================================================================
   Rev Cura — "Signal" design system
   Hand-written CSS, no build step. Loaded directly from public/css.
   Sections: tokens · base · layout · buttons · header · dark shell · hero ·
             bento/cards · rails · specialties · forms · faq · prose · footer
   ========================================================================== */

/* --- tokens ------------------------------------------------------------- */
:root{
  /* dark shell */
  --ink:#070B12;
  --ink-2:#0C1220;
  --panel:#111A2B;
  --panel-2:#0E1728;
  --line-d:rgba(255,255,255,.11);

  /* accents */
  --mint:#37E0A5;
  --mint-2:#5FF0C2;
  --mint-ink:#05231A;
  --accent-ink:#0A6B60;   /* mint, darkened to clear AA with headroom on light and tinted surfaces */
  --violet:#8B7CF6;
  --sky:#4CC9F0;
  --alert:#F0616A;

  /* light surfaces */
  --txt:#0B1220;
  --txt-2:#4C5A70;
  --txt-3:#5C6A7E;   /* clears 4.5:1 on both #fff and the tinted --bg-2; #7A8AA3 and #64748B did not */
  --line:#E4E9F2;
  --bg:#fff;
  --bg-2:#F3F8F8;

  --sans:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --wrap:1200px;

  /* Vertical rhythm. Every band of whitespace on the site resolves to one of
     these, so density is tuned here rather than in fifty separate rules. */
  --s-section:clamp(38px,4.2vw,62px);   /* standard section band          */
  --s-section-sm:clamp(28px,3vw,44px);  /* secondary / stacked bands      */
  --s-hero:clamp(40px,4.6vw,66px);      /* hero top                       */
  --s-block:26px;                       /* heading → grid                 */
  --s-block-lg:34px;                    /* section → next block within it */

  --r:16px;
  --r-lg:24px;
  --shadow:0 18px 42px rgba(11,18,32,.10);
  --shadow-d:0 40px 90px rgba(0,0,0,.5);
}

/* --- base --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--txt);
  font-family:var(--sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.035em;line-height:1.1}
h1{font-size:clamp(2.2rem,5vw,3.9rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
h3{font-size:1.15rem;letter-spacing:-.02em}
h4{font-size:1rem}
p,ul,ol{margin:0}
hr{border:0;border-top:1px solid var(--line);margin:0}
::selection{background:var(--mint);color:var(--mint-ink)}
:focus-visible{outline:3px solid var(--mint);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--mint);color:var(--mint-ink);
  padding:.7rem 1.1rem;font-weight:700;border-radius:0 0 10px 0}
.skip:focus{left:0}
.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}

/* --- layout ------------------------------------------------------------- */
/* Heading rhythm. These replace 33 inline margin literals that were scattered
   through the templates, which is why site density could not be tuned before. */
.sect-title{margin:.7rem 0 .5rem}
.sect-title--spaced{margin-top:var(--s-block-lg)}
.card-title{margin:.5rem 0 .4rem}
.card-title--spaced{margin-top:1.4rem}
.step-title{margin:0 0 .5rem;font-size:1.15rem}
.step-title--spaced{margin-top:var(--s-block-lg)}

.wrap{width:min(var(--wrap),calc(100% - 44px));margin-inline:auto}
.wrap--narrow{width:min(820px,calc(100% - 44px))}
.section{padding:var(--s-section) 0;position:relative}
.section:not(.dark)::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(58% 46% at 10% 0%,rgba(55,224,165,.07),transparent 62%),
    radial-gradient(48% 42% at 90% 6%,rgba(139,124,246,.05),transparent 64%);}
.section:not(.dark) > .wrap{position:relative;z-index:1}

/* The tinted band keeps a stronger wash plus an accent hairline, so section
   boundaries read as deliberate rather than as a change of paper. */
.section--alt::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,var(--mint),var(--sky) 38%,var(--violet) 72%,transparent);opacity:.45}
.section--alt{background:var(--bg-2);border-block:1px solid var(--line)}
.section--alt:not(.dark)::before{background:
    radial-gradient(60% 50% at 14% 0%,rgba(55,224,165,.10),transparent 62%),
    radial-gradient(52% 46% at 88% 10%,rgba(76,201,240,.07),transparent 64%);}
.center{text-align:center}
.mx{max-width:760px;margin-inline:auto}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.split--wide-left{grid-template-columns:1.1fr .9fr}
.stack{display:flex;flex-direction:column;gap:1rem}
.head-row{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:end}
.lede{font-size:1.1rem;color:var(--txt-2)}
.lede--d{color:#93A3BC}
.muted{color:var(--txt-2)}
.small{font-size:.88rem}

/* --- tag / eyebrow ------------------------------------------------------ */
.tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.74rem;
  letter-spacing:.14em;text-transform:uppercase;padding:.4rem .75rem;border-radius:999px;
  border:1px solid rgba(14,155,150,.28);color:var(--accent-ink);background:rgba(55,224,165,.10)}
/* A tag inside a dark band picks up the dark treatment automatically. */
.dark .tag{border-color:var(--line-d);color:var(--mint-2);background:rgba(55,224,165,.07)}
.tag--d{border-color:var(--line-d);color:var(--mint-2);background:rgba(55,224,165,.07)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--mint);flex:none}

/* --- buttons ------------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--sans);
  font-weight:700;font-size:.96rem;padding:.9rem 1.45rem;border-radius:12px;border:1px solid transparent;
  cursor:pointer;transition:background .18s,transform .18s,border-color .18s;text-align:center}
.btn--m{background:var(--mint);color:var(--mint-ink);box-shadow:0 6px 22px rgba(55,224,165,.28)}
.btn--m:hover{background:var(--mint-2);transform:translateY(-1px)}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:var(--panel);transform:translateY(-1px)}
.btn--wire{border-color:var(--line-d);color:#fff;background:rgba(255,255,255,.03)}
.btn--wire:hover{background:rgba(255,255,255,.09)}
.btn--wire-l{border-color:var(--line);color:var(--txt);background:#fff}
.btn--wire-l:hover{border-color:var(--ink)}
.btn--sm{padding:.62rem 1.05rem;font-size:.88rem;border-radius:10px}
.btn--block{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}

/* --- dark shell --------------------------------------------------------- */
.dark{background:var(--ink);color:#E7EDF7;position:relative;overflow:hidden}
.dark::before{content:"";position:absolute;inset:-30% -10% auto -10%;height:120%;pointer-events:none;
  background:
    radial-gradient(48% 42% at 22% 12%,rgba(55,224,165,.20),transparent 60%),
    radial-gradient(42% 46% at 82% 4%,rgba(139,124,246,.22),transparent 62%),
    radial-gradient(60% 50% at 60% 76%,rgba(76,201,240,.12),transparent 66%)}
.dark .wrap{position:relative;z-index:1}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark .lede{color:#93A3BC}
.dark .rl h3{color:#fff}
.dark .rl p{color:#93A3BC}
.dark .rl__dot{border-color:var(--ink)}
.dark .b__num{color:var(--mint-2)}
.grid-lines{position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000,transparent);
  mask-image:radial-gradient(70% 60% at 50% 30%,#000,transparent)}

/* --- header ------------------------------------------------------------- */
.hdr{position:sticky;top:0;z-index:70;background:rgba(7,11,18,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-d)}
.hdr__inner{display:flex;align-items:center;gap:24px;padding:.8rem 0}
.logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:1.2rem;letter-spacing:-.045em;flex:none}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{padding:.5rem .7rem;border-radius:9px;font-size:.93rem;font-weight:600;color:#A7B6CE;white-space:nowrap}
.nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.1)}
.hdr .btn{flex:none}
.burger{display:none;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:9px;
  padding:.55rem .65rem;margin-left:auto;cursor:pointer;color:#fff}
.mobile-nav{display:none;border-top:1px solid var(--line-d);background:var(--ink-2)}
.mobile-nav[data-open="true"]{display:block}
.mobile-nav ul{list-style:none;padding:.6rem 0 1.2rem;margin:0;display:grid;gap:2px}
.mobile-nav a:not(.btn){display:block;padding:.75rem .2rem;font-weight:600;color:#C6D3E6;border-bottom:1px solid rgba(255,255,255,.06)}
.mobile-nav .btn{margin-top:1rem}

/* --- page hero (inner pages) -------------------------------------------- */
.page-hero{padding:clamp(32px,3.4vw,50px) 0 clamp(26px,2.8vw,38px)}
.page-hero h1{margin:1rem 0 1rem;max-width:20ch}
.page-hero .lede--d{max-width:60ch}
.page-hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.3rem}
.crumbs{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#7C8DA8}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0}
.crumbs a:hover{color:var(--mint-2)}
.crumbs li+li::before{content:"/";margin-right:.5rem;opacity:.5}

/* --- home hero ---------------------------------------------------------- */
.hero{padding:var(--s-hero) 0 clamp(18px,2.2vw,28px)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,4vw,60px);align-items:center}
.hero h1{margin:1.1rem 0 1.1rem;max-width:16ch}
.hero .lede--d{max-width:52ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4rem}
.hero__meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:1.4rem;font-family:var(--mono);
  font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:#7C8DA8}
/* Right-hand hero column: the credentials line stacked above the console. */
.hero__visual{display:flex;flex-direction:column;gap:.85rem;min-width:0}
.hero__meta--above{
  margin-top:0;
  padding-left:0;
  justify-content:center;   /* centred over the console it labels */
  text-align:center;
  color:var(--mint-2);      /* same accent as the .tag--d eyebrow above the h1 */
}

.glass{background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.03));
  border:1px solid var(--line-d);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-d);
  backdrop-filter:blur(6px);margin:0}
.glass figcaption{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:#7C8DA8;text-align:center;margin-top:12px}

/* --- ticker ------------------------------------------------------------- */
.ticker{border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d);
  background:rgba(255,255,255,.02);padding:14px 0}
.ticker__inner{display:flex;flex-wrap:wrap;gap:14px 42px;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:#8497B2}
.ticker b{color:var(--mint-2);font-weight:600}

/* --- bento / cards ------------------------------------------------------ */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:var(--s-block)}
.bento--3{grid-template-columns:repeat(3,1fr)}
.bento--3 .b{grid-column:span 1}
.b{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;
  transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden;
  display:flex;flex-direction:column}
.b:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(14,155,150,.45)}
.b--wide{grid-column:span 3}
.b--third{grid-column:span 2}
.b--half{grid-column:span 3}
.card-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}
.card-head h2,.card-head h3{margin:0}
.card-head .b__num,.card-head .post__meta{flex:none}
.b h3{margin:0 0 .4rem}
.b p{font-size:.93rem;line-height:1.55;color:var(--txt-2);margin:0}
.b__num{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--accent-ink);line-height:1}
.more{display:inline-flex;gap:.35rem;align-items:center;font-weight:700;font-size:.86rem;color:var(--txt);
  margin-top:auto;padding-top:.7rem;align-self:flex-start}
.more span{border-bottom:2px solid var(--mint);padding-bottom:1px}

/* --- pain list ---------------------------------------------------------- */
.pain{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:8px}
.pain li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--alert);border-radius:10px;padding:.6rem .85rem;font-size:.95rem}
.pain svg{width:17px;height:17px;flex:none;margin-top:4px;color:var(--alert)}

/* --- process rail ------------------------------------------------------- */
.rail{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:var(--s-block-lg);position:relative}
.rail::before{content:"";position:absolute;left:0;right:0;top:26px;height:2px;
  background:linear-gradient(90deg,var(--mint),var(--sky),var(--violet))}
.rl{padding:0 18px 0 0;position:relative}
.rl__dot{width:54px;height:54px;border-radius:50%;background:var(--ink);color:var(--mint);
  display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:.9rem;
  position:relative;z-index:1;border:4px solid var(--bg);box-shadow:0 0 0 1px var(--line)}
.section--alt .rl__dot{border-color:var(--bg-2)}
.rl h3{margin:1.1rem 0 .4rem;font-size:1.05rem}
.rl p{font-size:.92rem;color:var(--txt-2)}

/* --- specialties -------------------------------------------------------- */
.spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:var(--s-block)}
.sp{border-radius:var(--r);padding:16px 18px;color:#fff;position:relative;overflow:hidden;min-height:0;
  display:flex;flex-direction:column;background:linear-gradient(160deg,#0F1A2E,#0A101C);
  border:1px solid var(--line-d);transition:transform .2s,box-shadow .2s}
.sp:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(7,11,18,.35)}
.sp::after{content:"";position:absolute;right:-40px;bottom:-40px;width:150px;height:150px;
  border-radius:50%;filter:blur(24px);opacity:.5}
.sp:nth-child(4n+1)::after{background:rgba(55,224,165,.5)}
.sp:nth-child(4n+2)::after{background:rgba(76,201,240,.5)}
.sp:nth-child(4n+3)::after{background:rgba(139,124,246,.5)}
.sp:nth-child(4n+4)::after{background:rgba(255,196,102,.45)}
.sp h3,.sp p,.sp .more{position:relative;z-index:1}
.sp h3{margin:0 0 .4rem}
.sp p{font-size:.92rem;line-height:1.55;color:#A9BAD3;margin:0}
.sp .sp .more{color:#fff}

/* --- chips -------------------------------------------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:1.1rem}
.chip{font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;padding:.45rem .8rem;border-radius:8px;
  border:1px solid var(--line-d);background:rgba(255,255,255,.05);color:#C6D3E6}
.chip--l{border-color:var(--line);background:var(--bg-2);color:var(--txt-2)}

/* --- feature grid (security etc.) --------------------------------------- */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:var(--s-block)}
.f{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.f h3{font-size:1rem;margin:0 0 .35rem}
.f p{font-size:.9rem;line-height:1.55;color:var(--txt-2);margin:0}
.dark .f{background:rgba(255,255,255,.05);border-color:var(--line-d)}
.dark .f p{color:#A9BAD3}

/* --- forms -------------------------------------------------------------- */
.form{background:#fff;border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-d);border:1px solid var(--line)}
.section:not(.dark) .form{box-shadow:var(--shadow)}
.form h2,.form h3{font-size:1.25rem;color:var(--txt)}
.form__sub{font-size:.9rem;color:var(--txt-2);margin:.45rem 0 1.4rem}
.field{margin-bottom:14px}
.field label{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;
  text-transform:uppercase;color:#5C6B84;margin-bottom:.4rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:.95rem;padding:.7rem .85rem;
  border:1px solid var(--line);border-radius:10px;background:var(--bg-2);color:var(--txt)}
.field input:focus,.field select:focus,.field textarea:focus{background:#fff}
.field textarea{min-height:82px;resize:vertical}
.field .err{display:block;margin-top:.35rem;font-family:var(--sans);font-size:.82rem;
  letter-spacing:0;text-transform:none;color:#C0392B;font-weight:600}
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"]{
  border-color:#C0392B;background:#FFF6F5}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.consent{display:flex;gap:10px;font-size:.78rem;color:var(--txt-2);margin:8px 0 16px;line-height:1.5}
.consent input{margin-top:3px;flex:none}
.consent a{text-decoration:underline}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{border-radius:12px;padding:.9rem 1.1rem;font-size:.92rem;font-weight:600;margin-bottom:1.2rem}
.notice--ok{background:#E9FBF3;border:1px solid #A9E9CD;color:#0A5D42}
.notice--err{background:#FDEFEE;border:1px solid #F3C2BF;color:#8E2A22}

/* --- FAQ ---------------------------------------------------------------- */
.faq{margin-top:var(--s-block);display:grid;gap:8px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 20px}
.faq summary{cursor:pointer;list-style:none;padding:14px 0;font-weight:700;font-size:1rem;
  display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:1.2rem;color:var(--txt-3);flex:none}
.faq details[open] summary::after{content:"–"}
.faq p{padding:0 0 14px;font-size:.95rem;color:var(--txt-2);max-width:75ch}

/* --- prose (content pages) ---------------------------------------------- */
.prose{font-size:1.02rem;color:var(--txt-2)}
.prose h2{margin:1.7rem 0 .7rem;color:var(--txt)}
.prose h3{margin:1.2rem 0 .5rem;color:var(--txt);font-size:1.12rem}
.prose p{margin-bottom:1.1rem;max-width:72ch}
.prose ul,.prose ol{margin:0 0 1.3rem;padding-left:1.3rem;max-width:72ch}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--txt);border-bottom:2px solid var(--mint);font-weight:600}
.prose strong{color:var(--txt)}
.prose>:first-child{margin-top:0}

/* --- CTA band ----------------------------------------------------------- */
.cta-band{background:var(--ink);color:#E7EDF7;position:relative;overflow:hidden}
.cta-band .cta-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,50px);
  align-items:center;padding:clamp(26px,2.8vw,38px) 0}
.cta-band h2{color:#fff}
.cta-band p{color:#93A3BC;margin-top:.8rem;max-width:56ch}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;align-items:center}
.cta-band__talk{flex-basis:100%;text-align:right;font-size:.9rem;color:#93A3BC;margin:.2rem 0 0}
.cta-band__talk a{color:#fff;border-bottom:1px solid var(--mint)}
@media(max-width:1000px){.cta-band__talk{text-align:left}}

/* --- footer ------------------------------------------------------------- */
.ftr{background:var(--ink);color:#8B9BB5;padding:40px 0 22px;font-size:.92rem;border-top:1px solid var(--line-d)}
.ftr__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:28px}
.ftr .ftr__label{color:#fff;font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.ftr a:hover{color:var(--mint-2)}
.ftr__bottom{border-top:1px solid var(--line-d);margin-top:26px;padding-top:18px;display:flex;
  flex-wrap:wrap;justify-content:space-between;gap:14px 24px;font-size:.82rem}
.ftr__legal{display:flex;gap:20px;flex-wrap:wrap}

/* --- responsive --------------------------------------------------------- */
@media(max-width:1040px){
  .nav{display:none}
  .hdr .btn--header{display:none}
  .burger{display:block}
}
@media(max-width:1000px){
  .hero__grid,.split,.split--wide-left,.split--wide-right,.cta-band .cta-inner{grid-template-columns:1fr}
  .cta-band__actions{justify-content:flex-start}
  .bento{grid-template-columns:repeat(4,1fr)}
  .bento--3{grid-template-columns:repeat(2,1fr)}
  .b--wide,.b--half{grid-column:span 4}
  .b--third{grid-column:span 2}
  .rail{grid-template-columns:1fr 1fr;gap:26px 0}
  .rail::before{display:none}
  .spec-grid{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .ftr__grid{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:640px){
  body{font-size:16px}
  .wrap,.wrap--narrow{width:calc(100% - 32px)}
  .bento,.bento--3{grid-template-columns:1fr}
  .b--wide,.b--half,.b--third{grid-column:span 1}
  .rail,.spec-grid,.fgrid,.row2,.ftr__grid{grid-template-columns:1fr}
  .hero__cta .btn,.page-hero__cta .btn{width:100%}
  .form{padding:22px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  .hdr,.ftr,.cta-band,.burger,.mobile-nav{display:none}
  body{background:#fff;color:#000}
}

/* --- cookie consent ------------------------------------------------------ */
.consent-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--ink-2);
  border-top:1px solid var(--line-d);box-shadow:0 -12px 40px rgba(0,0,0,.35);color:#C6D3E6}
.consent-bar[hidden]{display:none}
.consent-bar__inner{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between;padding:18px 0}
.consent-bar p{font-size:.92rem;max-width:74ch;margin:0}
.consent-bar a{color:var(--mint-2);text-decoration:underline}
.consent-bar__actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:640px){
  .consent-bar__inner{padding:16px 0}
  .consent-bar__actions{width:100%}
  .consent-bar__actions .btn{flex:1}
}

/* --- resources: cards ---------------------------------------------------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:var(--s-block)}
.post{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;transition:transform .2s,box-shadow .2s,border-color .2s}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(14,155,150,.45)}
.post__meta{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.post h3{margin:0 0 .45rem;font-size:1.05rem;line-height:1.3}
.post p{font-size:.93rem;line-height:1.55;color:var(--txt-2);flex:1;margin:0}
.post__foot{margin-top:.9rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--txt-3);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* --- resources: stream cards -------------------------------------------- */
.stream{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:var(--s-block)}
.stream a{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:flex;
  flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.stream a:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(14,155,150,.45)}
.stream h2{font-size:1.2rem;margin:0 0 .4rem}
.stream p{font-size:.94rem;line-height:1.55;color:var(--txt-2);margin:0}

/* --- article ------------------------------------------------------------- */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(28px,4vw,56px);align-items:start}
.article__body{max-width:72ch}
.article__body h2{margin:1.8rem 0 .7rem;scroll-margin-top:96px;font-size:clamp(1.4rem,2.4vw,1.85rem)}
.article__body h3{margin:1.3rem 0 .5rem;font-size:1.12rem}
.article__body p{margin-bottom:1.15rem;color:var(--txt-2);font-size:1.03rem}
.article__body ul,.article__body ol{margin:0 0 1.4rem;padding-left:1.3rem;color:var(--txt-2)}
.article__body li{margin-bottom:.55rem}
.article__body a{color:var(--txt);border-bottom:2px solid var(--mint);font-weight:600}
.article__body strong{color:var(--txt)}
.article__body blockquote{margin:1.8rem 0;padding:1.1rem 1.4rem;border-left:3px solid var(--mint);
  background:var(--bg-2);border-radius:0 10px 10px 0;color:var(--txt);font-size:1rem}
.article__body>:first-child{margin-top:0}

.toc{position:sticky;top:96px;border:1px solid var(--line);border-radius:var(--r);padding:22px;background:#fff}
.toc h2{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);
  margin:0 0 .9rem;font-weight:600}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;counter-reset:toc}
.toc li{font-size:.9rem;line-height:1.4}
.toc a{color:var(--txt-2)}
.toc a:hover{color:var(--txt);text-decoration:underline}

.byline{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;font-size:.88rem;color:#93A3BC;margin-top:1.6rem}
.byline a{color:#fff;border-bottom:1px solid var(--mint)}
.byline time{font-variant-numeric:tabular-nums}

.author-box{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start;margin-top:2rem;
  padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2)}
.author-box__avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(140deg,#0C1220,#1B2942);
  color:var(--mint);display:grid;place-items:center;font-weight:800;font-size:1.1rem}
.author-box h2{font-size:1.05rem;margin:0 0 .3rem}
.author-box p{font-size:.92rem;color:var(--txt-2);margin:0}
.author-box .role{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-3)}

.inline-cta{margin:2rem 0;padding:20px;border-radius:var(--r);background:var(--ink);color:#C6D3E6}
.inline-cta h2{color:#fff;font-size:1.2rem;margin:0 0 .5rem}
.inline-cta p{color:#93A3BC;font-size:.95rem;margin:0 0 1.2rem}

.review-note{margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--txt-3)}

/* --- pagination ---------------------------------------------------------- */
.pager{margin-top:var(--s-block);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pager a,.pager span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;
  padding:0 .7rem;border:1px solid var(--line);border-radius:10px;font-size:.9rem;font-weight:600;background:#fff}
.pager a:hover{border-color:var(--ink)}
.pager .is-current{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager .is-disabled{opacity:.4}

@media(max-width:1000px){
  .post-grid{grid-template-columns:1fr 1fr}
  .article{grid-template-columns:1fr}
  .toc{position:static}
}
@media(max-width:640px){
  .post-grid,.stream{grid-template-columns:1fr}
  .author-box{grid-template-columns:1fr}
}

/* --- booking -------------------------------------------------------------- */
.daypicker{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x mandatory}
.daypicker a{flex:none;scroll-snap-align:start;min-width:96px;text-align:center;padding:12px 14px;border-radius:12px;
  border:1px solid var(--line-d);background:rgba(255,255,255,.04);color:#C6D3E6;transition:.18s}
.daypicker a:hover{background:rgba(255,255,255,.1);color:#fff}
.daypicker a[aria-current="true"]{background:var(--mint);border-color:var(--mint);color:var(--mint-ink);font-weight:700}
.daypicker .dow{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.daypicker .dom{display:block;font-size:1.25rem;font-weight:800;line-height:1.3}
.daypicker .mon{display:block;font-size:.72rem;opacity:.75}

.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;margin-top:.9rem}
.slot{position:relative}
.slot input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.slot span{display:block;text-align:center;padding:.7rem .4rem;border-radius:10px;border:1px solid var(--line-d);
  background:rgba(255,255,255,.04);color:#DDE7F5;font-weight:600;font-size:.94rem;transition:.15s}
.slot input:checked + span{background:var(--mint);border-color:var(--mint);color:var(--mint-ink)}
.slot input:focus-visible + span{outline:3px solid var(--mint);outline-offset:2px}
.slot input:disabled + span{opacity:.32;text-decoration:line-through;cursor:not-allowed}
.slot input:not(:disabled):hover + span{background:rgba(255,255,255,.12)}

.booking-note{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#7C8DA8;margin-top:1rem}
.summary-card{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:var(--bg-2)}
.summary-card dl{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.4rem;margin:1rem 0 0;font-size:.95rem}
.summary-card dt{font-weight:700;color:var(--txt)}
.summary-card dd{margin:0;color:var(--txt-2)}
@media(max-width:640px){
  .slots{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
  .summary-card dl{grid-template-columns:1fr;gap:.2rem 0}
  .summary-card dd{margin-bottom:.7rem}
}

/* --- FAQ hub -------------------------------------------------------------- */
.faq-nav{display:flex;flex-wrap:wrap;gap:9px;margin-top:1.1rem}
.faq-nav a{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;padding:.5rem .85rem;border-radius:8px;
  border:1px solid var(--line-d);background:rgba(255,255,255,.05);color:#C6D3E6;transition:.15s}
.faq-nav a:hover{background:var(--mint);border-color:var(--mint);color:var(--mint-ink)}

.faq-group{padding:var(--s-section-sm) 0;border-top:1px solid var(--line)}
.faq-group:first-of-type{border-top:0}
.faq-group__head{max-width:62ch}
.faq-group__count{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}

/* Two columns, row-major: the DOM order is the reading order, so a screen
   reader and a crawler both get the questions in the order they are numbered. */
.faq-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 36px;margin-top:var(--s-block);align-items:start}
.faq-item{scroll-margin-top:96px}
.faq-item h3{font-size:1.02rem;line-height:1.35;margin:0 0 .55rem;letter-spacing:-.015em}
.faq-item h3 a{color:var(--txt-3);font-weight:400;margin-left:.35rem;opacity:0;transition:.15s}
.faq-item:hover h3 a,.faq-item h3 a:focus{opacity:1}
.faq-item p{font-size:.95rem;color:var(--txt-2);margin:0}
.faq-item p a{color:var(--txt);border-bottom:2px solid var(--mint);font-weight:600}
.faq-item + .faq-item{padding-top:0}

.faq-cta{margin-top:var(--s-block-lg);padding:18px 20px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between}
.faq-cta p{font-size:.98rem;color:var(--txt-2);margin:0;max-width:60ch}

@media(max-width:820px){
  .faq-columns{grid-template-columns:1fr;gap:24px}
}

/* --- 404 remittance card -------------------------------------------------- */
.remit{margin:1.6rem 0 0;border:1px solid var(--line-d);border-radius:var(--r);background:rgba(255,255,255,.04);
  padding:16px 18px;max-width:560px;text-align:left}
.remit__head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line-d)}
.remit__title{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#7C8DA8}
.remit__badge{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.3rem .6rem;border-radius:6px;background:rgba(240,97,106,.14);color:#F0616A;border:1px solid rgba(240,97,106,.3)}
.remit dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.6rem;margin:0;font-family:var(--mono);font-size:.8rem}
.remit dt{color:#7C8DA8;letter-spacing:.06em;text-transform:uppercase}
.remit dd{margin:0;color:#DDE7F5}
.remit__note{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-d);font-size:.85rem;color:#93A3BC}
@media(max-width:560px){
  .remit dl{grid-template-columns:1fr;gap:.15rem}
  .remit dd{margin-bottom:.6rem}
}

/* ==========================================================================
   Mobile. Roughly 90% of this site's traffic is phones, so these are not
   graceful degradations — they are the primary experience.
   ========================================================================== */
@media(max-width:820px){

  /* iOS Safari zooms the whole viewport when a focused field is under 16px.
     On a lead-generation form that is a conversion killer: the page jumps,
     the layout shifts and the visitor has to pinch back out mid-form. */
  .field input,.field select,.field textarea{font-size:16px}
  .consent input{width:20px;height:20px}

  /* Touch targets. 44px is the Apple/WCAG floor; several controls sat in the
     low thirties, and the worst of them was the menu button itself. */
  .burger{min-width:44px;min-height:44px;display:grid;place-items:center}
  .logo{min-height:44px}
  .more{min-height:44px;align-items:center}
  .chip{min-height:44px;display:inline-flex;align-items:center;padding:.6rem 1rem}
  .faq-nav a{min-height:44px;display:inline-flex;align-items:center}
  .daypicker a{min-height:64px}
  .pager a,.pager span{min-width:44px;height:44px}
  .ftr ul{gap:.2rem}
  .ftr ul a{display:inline-block;padding:.55rem 0;min-height:44px}
  .ftr__legal{gap:.1rem 1.2rem}
  .ftr__legal a{display:inline-flex;align-items:center;min-height:44px;padding:0}
  .faq summary{padding:16px 0}

  /* Comfortable thumb spacing between stacked actions. */
  .hero__cta,.page-hero__cta{gap:10px}
  .btn{min-height:48px}
}

/* Home-indicator and notch safety on iOS. */
.consent-bar__inner{padding-bottom:calc(18px + env(safe-area-inset-bottom))}

/* --- sticky mobile action bar --------------------------------------------
   The primary conversion action, permanently reachable by thumb. Hidden on
   the pages that already put the action on screen, and suppressed while the
   cookie banner is showing so the two never stack. */
.mobile-cta{display:none}
@media(max-width:820px){
  .mobile-cta{
    display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:80;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(7,11,18,.94);backdrop-filter:blur(12px);
    border-top:1px solid var(--line-d);
  }
  /* One line only. Wrapping made the bar 98px — a eighth of the screen. */
  .mobile-cta .btn{flex:1;min-height:48px;padding:.75rem .9rem;font-size:.94rem;white-space:nowrap}
  .mobile-cta__call{flex:0 0 auto;min-width:56px}
  body:has(.consent-bar:not([hidden])) .mobile-cta{display:none}
  /* Must clear the bar, including the home indicator, or the footer hides
     underneath it. */
  body.has-mobile-cta{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
}

/* --- answer capsule -------------------------------------------------------
   A short, complete answer placed where both a reader skimming and an answer
   engine extracting will find it first. */
.answer-capsule{border-left:3px solid var(--mint);background:rgba(55,224,165,.07);
  border-radius:0 12px 12px 0;padding:14px 18px;margin:0 0 1.2rem}
.answer-capsule__label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:.35rem}
.answer-capsule p{margin:0;font-size:1.02rem;line-height:1.6;color:var(--txt)}
.dark .answer-capsule{background:rgba(55,224,165,.08);border-left-color:var(--mint)}
.dark .answer-capsule__label{color:var(--mint-2)}
.dark .answer-capsule p{color:#DDE7F5}

/* --- on-page contents (long service / specialty / location pages) --------- */
.page-toc{border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;margin:0 0 1.4rem;background:var(--bg-2)}
.page-toc h2{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--txt-3);margin:0 0 .6rem;font-weight:600}
.page-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.page-toc a{font-size:.93rem;color:var(--txt-2);border-bottom:1px solid transparent}
.page-toc a:hover{color:var(--txt);border-bottom-color:var(--mint)}

/* --- glossary ------------------------------------------------------------- */
.glossary-nav{display:flex;flex-wrap:wrap;gap:9px;margin-top:1.1rem}
.glossary-group{padding:clamp(28px,3vw,44px) 0;border-top:1px solid var(--line)}
.glossary-group:first-of-type{border-top:0}
.glossary-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 36px;margin-top:var(--s-block)}
.glossary-term{scroll-margin-top:96px}
.glossary-term h3{font-size:1.02rem;margin:0 0 .35rem}
.glossary-term__aka{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--txt-3);margin-left:.4rem}
.glossary-term__definition{font-size:.95rem;line-height:1.55;color:var(--txt-2);margin:0}
.glossary-term__link{display:inline-block;margin-top:.4rem;font-size:.85rem;font-weight:600;color:var(--accent-ink)}
@media(max-width:820px){
  .glossary-terms{grid-template-columns:1fr;gap:18px}
  .page-toc ol{gap:.2rem 1rem}
  .page-toc a{display:inline-flex;align-items:center;min-height:44px}
}
