/* Wright Advisory design system, v5 "brand" edition.
   Theme architecture: EVERY colour lives in a custom property on :root
   (light) with a [data-theme="dark"] override block. Component rules only
   reference tokens, never raw colour values, so themes cannot drift.
   Palette per brand guideline: #6F2DBD, #A663CC, #171123, #FBFBFB,
   gradient #171123 to #6F2DBD. Display face: ABC Favorit Expanded Bold. */

@font-face{
  font-family:"ABC Favorit Expanded";
  src:url("/assets/fonts/ABCFavoritExpanded-Bold.woff2") format("woff2");
  font-weight:700 800;
  font-style:normal;
  font-display:swap;
}

:root{
  /* brand constants (same in both themes) */
  --brand-purple:#6F2DBD;
  --brand-lilac:#A663CC;
  --brand-ink:#171123;
  --brand-bone:#FBFBFB;
  --brand-white:#FFFFFF;
  --brand-gradient:linear-gradient(135deg,#171123 0%,#6F2DBD 100%);

  /* semantic tokens: LIGHT theme */
  --page-bg:var(--brand-bone);
  --page-bg-image:none;
  --text:var(--brand-ink);
  --text-soft:rgba(23,17,35,.68);
  --text-faint:rgba(23,17,35,.42);
  --accent:var(--brand-purple);
  --accent-soft:var(--brand-lilac);
  --accent-text:var(--brand-purple);      /* small accent text (kickers, metas) */
  --accent-text-soft:var(--brand-lilac);  /* labels on dark panels */
  --on-accent:var(--brand-white);
  --btn-bg:var(--brand-purple);
  --btn-text:var(--brand-white);
  --line:rgba(23,17,35,.10);
  --line-strong:rgba(23,17,35,.25);
  --surface:var(--brand-white);
  --surface-glass:rgba(255,255,255,.90);
  --surface-glass-heavy:rgba(255,255,255,.92);
  --surface-raised:var(--brand-white);
  --surface-tint:rgba(111,45,189,.07);
  --track:rgba(23,17,35,.08);
  --veil:rgba(251,251,251,.55);
  --header-bg:rgba(251,251,251,.80);
  --menu-bg:rgba(251,251,251,.97);
  --shadow-sm:0 3px 10px rgba(23,17,35,.12);
  --shadow-md:0 8px 26px rgba(23,17,35,.08);
  --shadow-lg:0 10px 30px rgba(23,17,35,.10);
  --shadow-btn:0 10px 24px rgba(111,45,189,.28);
  --ring-shadow:drop-shadow(0 10px 18px rgba(23,17,35,.16));
  --aurora-opacity-1:.45;
  --aurora-opacity-2:.28;
  --aurora-opacity-3:.22;
  --swirl-opacity:.5;
  --banner-bg:linear-gradient(120deg,var(--brand-ink) 40%,var(--brand-purple) 140%);
  --banner-border:transparent;
  --chip-border:transparent;
  --logo:url("/assets/brand/lockup-colour.svg");
  --logo-sm:url("/assets/brand/logomark-colour.svg");

  /* structure */
  --font:'Montserrat',sans-serif;
  --font-display:"ABC Favorit Expanded",'Montserrat',sans-serif;
  --r:10px;

  /* legacy aliases: pre-refresh token names still referenced by inline
     styles in older markup. Mapped to semantic tokens so they follow the
     theme instead of dangling. Do not use in new code. */
  --ink:var(--text);
  --ink-soft:var(--text-soft);
  --ink-faint:var(--text-faint);
  --purple:var(--accent-text);
  --lilac:var(--accent-soft);
}

[data-theme="dark"]{
  --page-bg:var(--brand-ink);
  --page-bg-image:var(--brand-gradient);
  --text:#F4F1FA;
  --text-soft:rgba(244,241,250,.75);
  --text-faint:rgba(244,241,250,.50);
  --accent:var(--brand-lilac);
  --accent-soft:var(--brand-lilac);
  /* Small accent text sits over the gradient's purple corner, where
     #A663CC alone fails contrast; a lighter lilac keeps the hue and
     passes AA everywhere on the page. */
  --accent-text:#DEC7F2;
  --accent-text-soft:#DEC7F2;
  --on-accent:var(--brand-white);
  /* Solid buttons invert in dark mode (white fill, purple label), the same
     way accent text lightens: purple fills disappear into the gradient. */
  --btn-bg:var(--brand-white);
  --btn-text:var(--brand-purple);
  --line:rgba(255,255,255,.14);
  --line-strong:rgba(255,255,255,.30);
  --surface:rgba(23,17,35,.62);
  --surface-glass:rgba(23,17,35,.55);
  --surface-glass-heavy:rgba(23,17,35,.66);
  --surface-raised:rgba(23,17,35,.80);
  --surface-tint:rgba(255,255,255,.06);
  --track:rgba(255,255,255,.14);
  --veil:rgba(23,17,35,.55);
  --header-bg:rgba(23,17,35,.72);
  --menu-bg:rgba(23,17,35,.95);
  --shadow-sm:0 3px 10px rgba(0,0,0,.35);
  --shadow-md:0 8px 26px rgba(0,0,0,.35);
  --shadow-lg:0 10px 30px rgba(0,0,0,.40);
  --shadow-btn:0 10px 24px rgba(0,0,0,.45);
  --ring-shadow:drop-shadow(0 0 10px rgba(255,255,255,.28)) drop-shadow(0 10px 18px rgba(0,0,0,.45));
  --aurora-opacity-1:.14;
  --aurora-opacity-2:.10;
  --aurora-opacity-3:.08;
  --swirl-opacity:.16;
  --banner-bg:linear-gradient(120deg,rgba(255,255,255,.07),rgba(111,45,189,.30));
  --banner-border:rgba(255,255,255,.28);
  --chip-border:rgba(255,255,255,.28);
  --logo:url("/assets/brand/lockup-white.svg");
  --logo-sm:url("/assets/brand/logomark-white.svg");
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--font);background-color:var(--page-bg);background-image:var(--page-bg-image);
  background-attachment:fixed;background-size:cover;color:var(--text);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
body.p-home{text-align:center;}
a{color:inherit;}
img{max-width:100%;display:block;}
[id]{scroll-margin-top:80px;}
::selection{background:var(--accent);color:var(--on-accent);}

/* ================= background: aurora + swirls ================= */
#aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;background-color:var(--page-bg);
  background-image:var(--page-bg-image);background-size:cover;}
#aurora .blob{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform;}
#aurora .b1{width:60vmax;height:60vmax;left:-20vmax;top:-25vmax;opacity:var(--aurora-opacity-1);
  background:radial-gradient(circle at 30% 30%, var(--brand-lilac), transparent 65%);animation:drift1 26s ease-in-out infinite alternate;}
#aurora .b2{width:50vmax;height:50vmax;right:-18vmax;top:15vh;opacity:var(--aurora-opacity-2);
  background:radial-gradient(circle at 60% 40%, var(--brand-purple), transparent 65%);animation:drift2 32s ease-in-out infinite alternate;}
#aurora .b3{width:55vmax;height:55vmax;left:10vw;bottom:-30vmax;opacity:var(--aurora-opacity-3);
  background:radial-gradient(circle at 50% 50%, var(--brand-lilac), transparent 62%);animation:drift3 38s ease-in-out infinite alternate;}
@keyframes drift1{to{transform:translate(8vw,6vh) scale(1.1);}}
@keyframes drift2{to{transform:translate(-6vw,10vh) scale(.92);}}
@keyframes drift3{to{transform:translate(6vw,-8vh) scale(1.08);}}
#swirls{position:absolute;inset:0;width:100%;height:100%;opacity:var(--swirl-opacity);}
#swirls path{fill:none;stroke:url(#swgrad);stroke-width:1.2;stroke-linecap:round;
  stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 14s ease-in-out infinite alternate;}
#swirls path:nth-child(2){animation-delay:2s;}
#swirls path:nth-child(3){animation-delay:4s;}
#swirls path:nth-child(4){animation-delay:6s;}
@keyframes draw{to{stroke-dashoffset:0;}}

/* ================= buttons ================= */
.btn{display:inline-block;font-family:var(--font);font-weight:600;font-size:14px;letter-spacing:.01em;
  text-decoration:none;border-radius:var(--r);padding:14px 26px;cursor:pointer;border:none;
  transition:transform .18s ease, box-shadow .18s ease;}
.btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-btn);}
.btn-primary{background:var(--btn-bg);color:var(--btn-text);}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--text);}
.btn-light{background:var(--brand-white);color:var(--brand-purple);}

/* ================= header ================= */
header.site{position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px 22px;background:var(--header-bg);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);text-align:left;}
.wordmark{display:block;width:176px;height:34px;flex:none;font-size:0;color:transparent;
  background-image:var(--logo);background-repeat:no-repeat;background-position:left center;background-size:contain;}
nav.links{display:flex;gap:26px;font-size:13px;font-weight:500;}
nav.links a{color:var(--text-soft);text-decoration:none;transition:color .15s;white-space:nowrap;}
nav.links a:hover{color:var(--accent-text);}
.hdr-cta{padding:10px 20px;font-size:13px;white-space:nowrap;}
#burger{display:none;background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--text);}
#mobilemenu{display:none;position:fixed;top:54px;left:0;right:0;z-index:49;background:var(--menu-bg);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:18px 22px;flex-direction:column;gap:16px;font-weight:500;text-align:left;}
#mobilemenu a{color:var(--text);text-decoration:none;font-size:15px;}
#mobilemenu.open{display:flex;}
@media(max-width:760px){
  nav.links{display:none;}
  #burger{display:block;}
}
@media(max-width:400px){
  .wordmark{width:34px;background-image:var(--logo-sm);}
  .hdr-cta{padding:9px 13px;font-size:12px;}
}

/* theme toggle: icon-only sun/moon */
.theme-toggle{background:none;border:1.5px solid var(--line);border-radius:var(--r);
  width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--text);flex:none;transition:border-color .15s, transform .15s;padding:0;}
.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px);}
.theme-toggle svg{width:17px;height:17px;display:block;}
.theme-toggle .icon-sun{display:none;}
.theme-toggle .icon-moon{display:block;}
[data-theme="dark"] .theme-toggle .icon-sun{display:block;}
[data-theme="dark"] .theme-toggle .icon-moon{display:none;}
#mobilemenu .theme-toggle{width:100%;height:42px;justify-content:flex-start;gap:10px;padding:0 12px;
  font-family:var(--font);font-size:14px;font-weight:500;color:var(--text);}

/* ================= type ================= */
h1,h2,h3,h4,.qtext,.verdict,.final-q{text-wrap:balance;}
p,li,.subline,.stageword,.leak-explain,.leak-basis,.bigcap,.cap,.rex,.lead{text-wrap:pretty;}
@media(max-width:480px){
  .subline,.stageword{max-width:36ch;margin-left:auto;margin-right:auto;}
}
.kicker{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px;}
h1{font-family:var(--font-display);font-size:clamp(30px,7vw,54px);font-weight:700;line-height:1.06;letter-spacing:-.01em;margin-bottom:14px;}
h1 .alt{color:var(--accent);}
.subline{font-size:clamp(14px,3.8vw,17px);color:var(--text-soft);max-width:52ch;font-weight:400;margin:0 auto;}
.subline b{font-weight:600;color:var(--text);}
h2{font-family:var(--font-display);font-size:clamp(21px,4.6vw,30px);font-weight:700;letter-spacing:-.01em;line-height:1.12;}
h3{font-family:var(--font);font-weight:800;}
.stageword{font-size:clamp(14px,3.6vw,16px);color:var(--text-soft);margin:10px auto 0;max-width:48ch;}
.lead{font-size:clamp(14px,3.8vw,17px);color:var(--text-soft);max-width:56ch;font-weight:400;}
.dim{color:var(--text-soft);}
.mono{font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;}
.tlink{color:var(--accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.tlink:hover{color:var(--accent-soft);}

/* shared page scaffolding */
.wrap{max-width:1160px;margin:0 auto;padding:0 22px;}
main{padding-top:66px;}
.page-hero{padding:110px 0 40px;}
.page-hero h1{font-size:clamp(26px,6vw,46px);max-width:20ch;}
.page-hero .lead{margin-top:14px;}

/* ================= hero (home) ================= */
#hero{padding:44px 22px 8px;max-width:900px;margin:0 auto;}
#hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;justify-content:center;}

/* ================= funnel (home) ================= */
#funnel{max-width:760px;margin:0 auto;padding:30px 18px 0;}
.stage{padding:16px 0 20px;}
.ring-wrap{position:relative;margin:0 auto 96px;}
.stage[data-s="6"] .ring-wrap{margin-bottom:8px;}
.stage[data-s="1"] .ring-wrap{width:100%;}
.stage[data-s="2"] .ring-wrap{width:88%;}
.stage[data-s="3"] .ring-wrap{width:76%;}
.stage[data-s="4"] .ring-wrap{width:64%;}
.stage[data-s="5"] .ring-wrap{width:54%;}
.stage[data-s="6"] .ring-wrap{width:46%;}
.ring-wrap svg{display:block;width:100%;height:auto;filter:var(--ring-shadow);}
.ring-label{position:absolute;left:0;right:0;top:52%;transform:translateY(-50%);
  color:var(--brand-white);font-family:var(--font-display);font-weight:700;font-size:clamp(13px,3.4vw,18px);letter-spacing:.06em;text-transform:uppercase;
  text-shadow:0 1px 6px rgba(23,17,35,.55);pointer-events:none;}
.ring-num{font-weight:700;font-size:.72em;opacity:.85;margin-right:8px;letter-spacing:.16em;}

/* ---- pouring leak: pool, teardrops, splash, chip button ---- */
.pour{position:absolute;top:calc(100% - 16px);right:7%;width:44px;height:84px;
  cursor:pointer;background:none;border:none;z-index:2;}
.pool{position:absolute;top:2px;left:50%;transform:translateX(-50%);
  width:18px;height:7px;border-radius:50%;background:var(--brand-lilac);
  animation:pool 1.9s ease-in-out infinite;}
@keyframes pool{
  0%,100%{transform:translateX(-50%) scale(.75,.7);opacity:.85;}
  45%{transform:translateX(-50%) scale(1.2,1.1);opacity:1;}
  60%{transform:translateX(-50%) scale(1.05,.95);}
}
.drop{position:absolute;left:50%;top:5px;width:9px;height:11px;margin-left:-4.5px;
  background:linear-gradient(180deg,var(--brand-lilac),var(--brand-purple));
  border-radius:50% 50% 55% 55% / 68% 68% 32% 32%;
  opacity:0;animation:dripfall 1.9s infinite;}
.drop:nth-child(3){animation-delay:.63s;}
.drop:nth-child(4){animation-delay:1.26s;}
@keyframes dripfall{
  0%{transform:translateY(0) scale(.35,.45);opacity:0;}
  14%{transform:translateY(1px) scale(.85,.9);opacity:1;}
  24%{transform:translateY(2px) scale(.9,1.22);}
  30%{transform:translateY(6px) scale(.82,1.28);}
  48%{transform:translateY(20px) scale(.85,1.2);}
  68%{transform:translateY(44px) scale(.88,1.26);opacity:1;}
  76%{transform:translateY(54px) scale(1.5,.45);opacity:.85;}
  84%{transform:translateY(55px) scale(2,.28);opacity:.45;}
  100%{transform:translateY(55px) scale(2.3,.2);opacity:0;}
}
.pour-tag{position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  background:var(--surface-raised);border:1px solid var(--line);color:var(--accent-text);
  font-family:var(--font);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 11px;border-radius:8px;box-shadow:var(--shadow-sm);
  transition:transform .18s ease, box-shadow .18s ease;}
.pour:hover .pour-tag,.pour:focus-visible .pour-tag{
  transform:translateX(-50%) translateY(-3px);
  box-shadow:var(--shadow-btn);}

.stage-text{margin-top:0;padding:0 22px;}

/* leak card */
.leak-body{max-height:0;overflow:hidden;transition:max-height .35s ease;margin:0 auto;max-width:480px;position:relative;z-index:3;}
.stage.open .leak-body{max-height:340px;}
.leak-inner{position:relative;margin:6px 22px 20px;background:var(--surface-glass-heavy);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:14px;padding:22px 20px 20px;box-shadow:var(--shadow-md);}
.leak-close{position:absolute;top:10px;right:12px;background:none;border:none;cursor:pointer;
  color:var(--accent-text);font-size:17px;font-weight:700;line-height:1;padding:4px;
  transition:transform .15s ease;}
.leak-close:hover{transform:scale(1.2);}
.leak-name{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:8px;}
.leak-cost{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--accent-text);margin-bottom:6px;}
.leak-explain{font-size:13.5px;color:var(--text-soft);}
.leak-basis{font-size:10.5px;color:var(--text-faint);margin-top:10px;font-weight:500;}

/* ================= likelihood chip (home) ================= */
#chip{position:fixed;z-index:60;left:50%;bottom:14px;transform:translateX(-50%);
  background:var(--brand-ink);color:var(--brand-white);font-size:11px;font-weight:500;
  padding:11px 18px;border-radius:var(--r);display:flex;align-items:center;gap:12px;
  box-shadow:0 10px 32px rgba(23,17,35,.35);white-space:nowrap;max-width:calc(100vw - 24px);
  border:1px solid var(--chip-border);}
#chip .pct{color:var(--brand-lilac);font-weight:700;}
#chip .dot{width:6px;height:6px;border-radius:50%;background:var(--brand-lilac);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
#chip-note{position:fixed;z-index:59;left:50%;bottom:58px;transform:translateX(-50%);
  font-size:11px;font-weight:500;color:var(--text-soft);background:var(--surface-raised);border:1px solid var(--line);
  padding:7px 13px;border-radius:var(--r);opacity:0;transition:opacity .4s;pointer-events:none;
  max-width:calc(100vw - 40px);text-align:center;box-shadow:var(--shadow-md);}
#chip-note.show{opacity:1;}

/* ================= final / meter payoff (home) ================= */
#final{padding:90px 24px 20px;max-width:820px;margin:0 auto;}
.final-q{font-family:var(--font-display);font-size:clamp(16px,3.8vw,22px);font-weight:700;letter-spacing:-.01em;margin-bottom:26px;}
#final .big-pct{font-family:var(--font-display);font-size:clamp(52px,14vw,104px);font-weight:700;letter-spacing:-.02em;line-height:1;
  background:linear-gradient(120deg,var(--accent),var(--accent-soft));-webkit-background-clip:text;background-clip:text;color:transparent;}
#final .cap{font-size:11.5px;color:var(--text-faint);margin-top:10px;font-weight:500;}

/* ================= content rails (homepage + listing pages) ================= */
.rail-sec{padding:56px 0 14px;}
#rail-notes{padding-bottom:72px;}
.rail-sec h2{margin-bottom:8px;}
.rail-sec .kicker{margin:0;}
.rail{max-width:1160px;margin:28px auto 0;padding:0 22px;display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(205px,1fr));text-align:left;}
.rtile{background:var(--surface-glass-heavy);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;}
.rtile .rimg{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.rimg-ph{width:100%;aspect-ratio:16/9;background:var(--brand-gradient);
  display:flex;align-items:center;justify-content:center;}
.rimg-ph i{width:34px;height:34px;background:url("/assets/brand/logomark-white.svg") no-repeat center/contain;border-radius:0;opacity:.95;}
.rtile .rbody{padding:15px 16px 17px;display:flex;flex-direction:column;gap:8px;flex:1;}
.rtile h3{font-size:14.5px;font-weight:700;letter-spacing:-.01em;line-height:1.35;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rtile .rex{font-size:12.5px;color:var(--text-soft);margin:0;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rtile .btn{margin-top:auto;align-self:flex-start;padding:9px 15px;font-size:11.5px;}
.rtile-more{border-style:dashed;border-color:var(--line-strong);box-shadow:none;text-decoration:none;
  background:var(--surface-tint);
  align-items:center;justify-content:center;gap:8px;min-height:180px;padding:20px;
  transition:transform .18s ease, box-shadow .18s ease;}
.rtile-more:hover{transform:translateY(-3px);box-shadow:var(--shadow-btn);}
.rtile-more .rm-label{font-size:13px;font-weight:700;color:var(--accent-text);}
.rtile-more .rm-arrow{font-size:18px;color:var(--accent-text);}
@media(max-width:700px){
  .rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:4px 30px 18px;gap:14px;scrollbar-width:none;scroll-padding-left:30px;}
  .rail::-webkit-scrollbar{display:none;}
  .rail .rtile{flex:0 0 76%;max-width:300px;scroll-snap-align:start;}
}

/* ================= leak-finder banner (site-wide component) ================= */
#leakbanner .inner{background:var(--banner-bg);
  border-top:1px solid var(--banner-border);border-bottom:1px solid var(--banner-border);
  color:var(--brand-white);padding:64px 24px;position:relative;overflow:hidden;text-align:center;}
#leakbanner .swirl-dark{position:absolute;inset:0;width:100%;height:100%;opacity:.25;}
#leakbanner h2{position:relative;font-size:clamp(22px,5vw,34px);max-width:24ch;margin:0 auto;}
#leakbanner p{position:relative;margin:16px auto 0;max-width:52ch;font-size:14.5px;color:rgba(255,255,255,.78);}
#leakbanner p b{color:var(--brand-white);}
#leakbanner .btn{position:relative;margin-top:28px;}
#leakbanner .micro{position:relative;display:block;margin-top:14px;font-size:11px;color:rgba(255,255,255,.55);font-weight:500;}

/* ================= footer (dark in both themes) ================= */
footer{background:var(--brand-ink);color:rgba(255,255,255,.65);padding:56px 24px 40px;font-size:13px;text-align:left;
  border-top:1px solid var(--banner-border);}
.p-home footer{padding-bottom:96px;}
.foot-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px;}
footer h4{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-lilac);margin-bottom:14px;}
footer a{color:rgba(255,255,255,.85);text-decoration:none;display:block;margin-bottom:9px;font-weight:500;}
footer a:hover{color:var(--brand-lilac);}
.foot-logo{display:block;width:190px;height:auto;}
.foot-blurb{font-size:12.5px;color:rgba(255,255,255,.6);margin-top:14px;max-width:30ch;line-height:1.7;}
.foot-bar{max-width:1100px;margin:44px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  font-size:11px;color:rgba(255,255,255,.4);display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap;}
.foot-bar a{display:inline;margin:0;color:rgba(255,255,255,.6);font-weight:600;white-space:nowrap;}
@media(max-width:760px){
  .foot-grid{grid-template-columns:1fr 1fr;}
  .foot-col-about{grid-column:1 / -1;}
}

/* ================= prose (articles) ================= */
.prose{max-width:64ch;margin:0 auto;}
.prose p{font-size:15.5px;line-height:1.8;margin-bottom:1.35em;color:var(--text-soft);}
.prose h2{font-size:clamp(19px,3vw,26px);margin:1.8em 0 .6em;color:var(--text);}
.prose blockquote{margin:2em 0;padding:6px 0 6px 24px;border-left:4px solid var(--accent);
  font-size:18px;font-weight:700;line-height:1.45;letter-spacing:-.015em;color:var(--text);}
.prose img{max-width:100%;border-radius:14px;margin:1.4em 0;box-shadow:var(--shadow-md);}
.prose figure{margin:1.6em 0;}
.prose figure img{margin:0;}
.prose figcaption{font-size:11px;color:var(--text-faint);font-weight:500;margin-top:8px;}
.prose ul,.prose ol{margin:0 0 1.35em 22px;font-size:15.5px;line-height:1.8;color:var(--text-soft);}
.prose li{margin-bottom:.4em;}
.prose h3{font-size:clamp(17px,2.4vw,22px);font-weight:800;letter-spacing:-.015em;margin:1.5em 0 .5em;color:var(--text);}
.prose a{color:var(--accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;}

/* ============================================================
   FAQ (.p-faq)
   ============================================================ */
.p-faq .page-hero{padding-bottom:28px;}
@media(max-width:600px){
  .p-faq .page-hero{padding-top:36px;}
  .faqbar{top:64px;}
}
.faqbar{position:sticky;top:68px;z-index:40;background:var(--header-bg);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);padding:14px 0;}
.faqbar .wrap{display:flex;flex-direction:column;gap:10px;}
#fsearch{width:100%;padding:13px 16px;font-family:var(--font);font-size:14px;
  border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--text);}
#fsearch:focus{outline:none;border-color:var(--accent);}
#fsearch::placeholder{color:var(--text-faint);}
.fselects{display:flex;gap:8px;}
@media(min-width:601px){.fselects select{flex:0 1 240px;}}
.fselects select{flex:1;min-width:0;padding:11px 34px 11px 12px;font-family:var(--font);font-size:13px;font-weight:600;
  color:var(--text);border:1.5px solid var(--line);border-radius:var(--r);background-color:var(--surface);appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 L6 6.5 L11 1.5' fill='none' stroke='%23A663CC' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;}
.fselects select:focus{outline:none;border-color:var(--accent);}
.faqlist{max-width:820px;margin:30px auto 90px;padding:0 22px;display:flex;flex-direction:column;gap:12px;text-align:left;}
.fcat-label{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin:16px 0 0;}
.fcat-label:first-child{margin-top:0;}
.faqitem{background:var(--surface-glass-heavy);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-md);overflow:hidden;scroll-margin-top:190px;}
.fq{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:16px 18px;
  cursor:pointer;background:none;border:none;font-family:var(--font);font-weight:700;font-size:14.5px;
  line-height:1.4;color:var(--text);text-align:left;text-wrap:balance;}
.fq .fx{color:var(--accent-text);font-size:19px;font-weight:700;line-height:1;transition:transform .2s;flex:none;}
.faqitem.open .fq .fx{transform:rotate(45deg);}
.fa-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease;}
.faqitem.open .fa-wrap{grid-template-rows:1fr;}
.fa{overflow:hidden;}
.fa p{padding:0 18px 16px;font-size:13.5px;line-height:1.7;color:var(--text-soft);margin:0;}
.fa a{color:var(--accent-text);}
.fnone{display:none;text-align:center;color:var(--text-faint);font-size:13.5px;padding:30px 0;}
.fnone.show{display:block;}

/* ============================================================
   LEAK FINDER (.p-leak)
   ============================================================ */
.p-leak main{padding:110px 22px 90px;max-width:680px;margin:0 auto;text-align:center;}
.p-leak .lf-sub{font-size:15px;color:var(--text-soft);max-width:46ch;margin:0 auto 34px;}
.p-leak h1{font-size:clamp(26px,6vw,42px);}

#prog{height:5px;background:var(--track);border-radius:3px;margin:0 auto 30px;max-width:420px;overflow:hidden;}
#prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand-purple),var(--brand-lilac));border-radius:3px;transition:width .3s;}
#prog2{height:5px;background:var(--track);border-radius:3px;margin:0 auto 30px;max-width:420px;}
#prog2 i{display:block;height:100%;width:94%;background:linear-gradient(90deg,var(--brand-purple),var(--brand-lilac));border-radius:3px;}
#stepword{font-size:11px;font-weight:600;color:var(--text-faint);margin-bottom:26px;letter-spacing:.06em;}

.qcard{background:var(--surface-glass);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;
  padding:34px 26px;box-shadow:var(--shadow-lg);}
.qstage{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin-bottom:12px;}
.qtext{font-family:var(--font-display);font-size:clamp(16px,4vw,19px);font-weight:700;letter-spacing:-.01em;line-height:1.3;margin-bottom:22px;}
.opt{display:block;width:100%;margin:10px 0;padding:15px 18px;font-family:var(--font);font-size:14px;font-weight:500;
  background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);cursor:pointer;color:var(--text);
  transition:transform .15s,box-shadow .15s,border-color .15s;}
.opt:hover{transform:translateY(-2px);box-shadow:var(--shadow-btn);border-color:var(--accent-soft);}

#mrrval{font-family:var(--font-display);font-size:clamp(30px,8vw,46px);font-weight:700;letter-spacing:-.01em;
  background:linear-gradient(120deg,var(--accent),var(--accent-soft));-webkit-background-clip:text;background-clip:text;color:transparent;margin:8px 0 4px;}
#mrrcap{font-size:11px;color:var(--text-faint);font-weight:600;margin-bottom:22px;}
.p-leak input[type=range]{width:100%;max-width:420px;accent-color:var(--accent);height:6px;cursor:pointer;}

#gatehook{font-size:15px;color:var(--text-soft);margin-bottom:6px;}
.blurnum{font-family:var(--font-display);font-size:clamp(34px,9vw,52px);font-weight:700;letter-spacing:-.01em;
  background:linear-gradient(120deg,var(--accent),var(--accent-soft));-webkit-background-clip:text;background-clip:text;color:transparent;margin:2px 0 18px;}
#gate input[type=email]{width:100%;max-width:380px;padding:15px 18px;font-family:var(--font);font-size:14px;
  border:1.5px solid var(--line);border-radius:var(--r);margin-bottom:14px;text-align:center;background:var(--surface);color:var(--text);}
#gate input[type=email]:focus{outline:none;border-color:var(--accent);}
.optin{display:flex;align-items:flex-start;gap:9px;max-width:380px;margin:0 auto 16px;text-align:left;
  font-size:11.5px;font-weight:500;color:var(--text-soft);cursor:pointer;line-height:1.5;}
.optin input{margin-top:2px;accent-color:var(--accent);flex:none;cursor:pointer;}
.gatemicro{display:block;margin-top:14px;font-size:11px;color:var(--text-faint);font-weight:500;}

#report{text-align:left;}
.rhead{text-align:center;margin-bottom:38px;}
.verdict{font-family:var(--font-display);font-size:clamp(21px,5vw,30px);font-weight:700;letter-spacing:-.01em;line-height:1.16;}
.bigleak{font-family:var(--font-display);font-size:clamp(36px,9vw,56px);font-weight:700;letter-spacing:-.015em;margin:14px 0 2px;
  background:linear-gradient(120deg,var(--accent),var(--accent-soft));-webkit-background-clip:text;background-clip:text;color:transparent;}
.bigcap{font-size:11.5px;color:var(--text-faint);font-weight:500;}

.rcard{background:var(--surface-glass-heavy);border:1px solid var(--line);border-radius:16px;padding:26px 24px;margin-bottom:22px;
  box-shadow:var(--shadow-md);}
.rlabel{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px;}

.bar-row{display:flex;align-items:center;gap:12px;margin:12px 0;}
.bar-name{width:96px;font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--text-soft);text-transform:uppercase;flex:none;text-align:right;}
.bar-track{flex:1;height:12px;background:var(--track);border-radius:7px;position:relative;overflow:visible;}
.bar-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--brand-purple),var(--brand-lilac));transition:width .8s ease;}
.bar-bench{position:absolute;top:-3px;width:2px;height:18px;background:var(--text);opacity:.55;}
.bar-score{width:58px;font-size:11px;font-weight:700;color:var(--text-soft);flex:none;}
.leaktag{font-size:8.5px;font-weight:800;letter-spacing:.1em;background:var(--brand-purple);color:var(--brand-white);border-radius:5px;padding:2px 6px;margin-left:6px;}
.benchnote{font-size:10.5px;color:var(--text-faint);margin-top:12px;}
.benchnote i{display:inline-block;width:2px;height:10px;background:var(--text);opacity:.55;margin-right:5px;vertical-align:-1px;}

.stage-item{border-top:1px solid var(--line);padding:18px 0;}
.stage-item:first-of-type{border-top:none;padding-top:4px;}
.si-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
.si-name{font-size:14px;font-weight:700;}
.si-cost{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--accent-text);}
.si-meta{font-size:11px;color:var(--text-faint);font-weight:600;margin:2px 0 8px;}
.si-fix{font-size:13px;color:var(--text-soft);}
.si-fix b{color:var(--text);font-weight:700;}

.prio{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.prio span{background:var(--brand-ink);color:var(--brand-white);font-size:12px;font-weight:600;border-radius:8px;padding:8px 13px;
  border:1px solid var(--chip-border);}
.prio span b{color:var(--brand-lilac);margin-right:6px;}

.holdback{background:var(--banner-bg);border:1px solid var(--banner-border);color:var(--brand-white);}
.holdback .rlabel{color:var(--brand-lilac);}
.holdback p{font-size:13.5px;color:rgba(255,255,255,.78);margin-bottom:10px;}
.holdback p b{color:var(--brand-white);}
.holdback .btn{margin-top:14px;}

.p-leak details{margin-top:6px;}
.p-leak summary{font-size:11px;font-weight:600;color:var(--text-faint);cursor:pointer;}
.p-leak details p{font-size:11.5px;color:var(--text-faint);margin-top:8px;}
.hidden{display:none;}

/* ============================================================
   CASE STUDIES (.p-cases)
   ============================================================ */
.tear{background:var(--surface-glass);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-md);margin-top:44px;padding:8px 24px;}
.tear .row{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--line);}
.tear .row:first-child{border-top:none;}
.tear .st{color:var(--accent-text);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:22px 18px 22px 0;}
.tear .tx{padding:20px 0;font-size:14px;color:var(--text-soft);max-width:66ch;}
.tear .tx b{font-weight:700;font-size:15px;color:var(--text);display:block;margin-bottom:4px;letter-spacing:-.01em;}
@media(max-width:620px){
  .tear .row{grid-template-columns:1fr;}
  .tear .st{padding:14px 0 0;}
  .tear .tx{padding:8px 0 18px;}
}
.pending{border:1.5px dashed var(--line-strong);border-radius:14px;padding:34px;margin-top:30px;color:var(--text-soft);font-size:14px;}
.pending .mono{color:var(--accent-text);display:block;margin-bottom:10px;}

/* ============================================================
   FIELD NOTES (.p-blog) + POST (.p-post)
   ============================================================ */
.fnrow{display:grid;grid-template-columns:230px 1fr;gap:24px;align-items:start;
  border-top:1px solid var(--line);padding:30px 0;text-decoration:none;transition:padding-left .15s;}
.fnrow:last-of-type{border-bottom:1px solid var(--line);}
.fnrow:hover{padding-left:12px;}
.fnthumb{border-radius:12px;overflow:hidden;box-shadow:var(--shadow-md);}
.fnthumb-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.fnthumb .rimg-ph{border-radius:0;}
.fnrow .meta{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:8px;display:flex;gap:18px;flex-wrap:wrap;}
.fnrow h2{font-size:clamp(17px,2.8vw,24px);margin-bottom:.3em;}
.fnrow p{color:var(--text-soft);max-width:60ch;margin:0;font-size:14px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.fnrow .go{font-size:12px;font-weight:700;color:var(--accent-text);margin-top:12px;display:inline-block;}
@media(max-width:640px){
  .fnrow{grid-template-columns:1fr;gap:14px;}
  .fnthumb{max-width:100%;}
}

.pager{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:34px;}
.pbtn{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 12px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);
  font-family:var(--font);font-size:13px;font-weight:600;color:var(--text);text-decoration:none;
  transition:transform .15s,box-shadow .15s,border-color .15s;}
a.pbtn:hover{transform:translateY(-2px);box-shadow:var(--shadow-btn);border-color:var(--accent-soft);}
.pcur{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-text);}
.pdis{opacity:.35;}
.pgap{font-weight:700;color:var(--text-faint);padding:0 2px;}

/* legacy postrow (kept for any cached pages) */
.postrow{display:block;border-top:1px solid var(--line);padding:34px 0;text-decoration:none;transition:padding-left .15s;}
.postrow:last-of-type{border-bottom:1px solid var(--line);}
.postrow:hover{padding-left:14px;}
.postrow .meta{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:10px;display:flex;gap:18px;flex-wrap:wrap;}
.postrow h2{font-size:clamp(20px,3.4vw,30px);margin-bottom:.3em;}
.postrow p{color:var(--text-soft);max-width:60ch;margin:0;font-size:14.5px;}
.postrow .go{font-size:12px;font-weight:700;color:var(--accent-text);margin-top:14px;display:inline-block;}

.p-post .ahero{padding:110px 0 36px;border-bottom:1px solid var(--line);margin-bottom:52px;}
.p-post .ahero .meta{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);display:flex;gap:18px;flex-wrap:wrap;margin-bottom:22px;}
.p-post .ahero h1{font-size:clamp(22px,4.8vw,40px);max-width:24ch;}
.endcta{background:var(--surface-glass-heavy);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-md);padding:30px;margin:60px auto 0;max-width:62ch;}
.endcta h3{margin-bottom:8px;font-size:19px;font-weight:800;letter-spacing:-.015em;}
.endcta .kicker{margin-bottom:10px;}
.endcta p{font-size:14px;}

/* field-note article extras (also used by generated posts) */
.fn-featured{margin:0 0 34px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);}
.fn-featured img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.fn-sources{max-width:64ch;margin:48px auto 0;}
.fn-sources h2{font-size:clamp(18px,3vw,24px);margin-bottom:.6em;}
.fn-sources ul{margin:0 0 0 20px;font-size:13px;line-height:1.9;color:var(--text-soft);}
.fn-sources a{color:var(--accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;}
.ce-chart{background:var(--brand-white);border-radius:14px;padding:10px;}
.ce-chart img{margin:0;}

/* comparison post extras: sourced table + last-verified line */
.prose table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.55;
  margin:1.4em 0 .6em;display:block;overflow-x:auto;}
.prose table th{font-family:var(--font);font-weight:700;font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--text);background:var(--surface-tint);
  border:1px solid var(--line);padding:10px 12px;text-align:left;}
.prose table td{border:1px solid var(--line);padding:10px 12px;color:var(--text-soft);
  vertical-align:top;min-width:120px;}
.prose table td a{overflow-wrap:anywhere;}
.fn-verified{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-faint);
  margin:-0.2em 0 1.6em;}

/* ============================================================
   LEGAL PAGES (.p-legal)
   ============================================================ */
.p-legal .page-hero{padding-bottom:24px;}
.updated{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-text);background:var(--surface-tint);border:1px solid var(--line-strong);
  border-radius:8px;padding:6px 12px;margin-top:16px;}
.legal{max-width:70ch;padding-bottom:90px;}
.legal h2{font-size:clamp(17px,2.8vw,22px);margin:2em 0 .5em;}
.legal p,.legal li{font-size:14.5px;line-height:1.8;color:var(--text-soft);}
.legal p{margin-bottom:1.1em;}
.legal ul{margin:0 0 1.1em 20px;}
.legal li{margin-bottom:.4em;}
.legal b{color:var(--text);font-weight:700;}
.legal a{color:var(--accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;}

/* ============================================================
   AI AUTOMATION stub (.p-ai)
   ============================================================ */
.p-ai .page-hero{padding-bottom:60px;}
.soonbox{background:var(--surface-glass);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-md);padding:34px;max-width:640px;}
.soonbox .mono{color:var(--accent-text);display:block;margin-bottom:10px;}
.soonbox p{color:var(--text-soft);font-size:14.5px;}

/* ================= reduced motion ================= */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}
