/* =========================================================
   リオンヌ調査室 — Investigation Office
   v2 — elevated intelligence-firm design
   ========================================================= */

:root{
  --ink:#0d1a29;          /* deep navy */
  --ink-1:#13263a;
  --ink-grad-a:#0d1a29;
  --ink-grad-b:#16304a;
  --paper:#f3f5f8;
  --paper-2:#eef1f5;
  --card:#ffffff;
  --panel:#e9edf2;
  --text:#1c2733;
  --muted:#5a6675;
  --faint:#8893a2;
  --line:#dde2e9;
  --line-2:#c6cdd7;
  --brass:#b08a3a;
  --brass-1:#c79f54;
  --brass-2:#8f6f2c;
  --brass-tint:#f5ecd9;
  --danger:#9a4b46;
  --danger-tint:#f3e6e4;
  --on-ink:#eaeff5;
  --on-ink-mut:#9fb0c2;

  --max:1200px;
  --pad:clamp(1.1rem,4vw,2rem);

  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --mono:"Roboto Mono",ui-monospace,Menlo,monospace;

  --r:12px; --r-sm:6px;
  --sh-sm:0 1px 2px rgba(13,26,41,.05),0 2px 8px rgba(13,26,41,.05);
  --sh-md:0 8px 30px rgba(13,26,41,.10);
  --sh-lg:0 18px 50px rgba(13,26,41,.16);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0; background:var(--paper); color:var(--text);
  font-family:var(--sans); font-size:16px; line-height:1.85;
  font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow-x:hidden;
}
a{ color:inherit; }
img,svg{ display:block; max-width:100%; }
h1,h2,h3,h4{ margin:0; }

.wrap{ max-width:var(--max); margin:0 auto; padding-inline:var(--pad); }
.mono{ font-family:var(--mono); letter-spacing:.02em; font-feature-settings:normal; }

/* icons */
.ico{ width:1.4em; height:1.4em; stroke:currentColor; fill:none;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* eyebrow */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.26em;
  text-transform:uppercase; color:var(--brass-2); font-weight:500;
}
.eyebrow::before{ content:""; width:1.6rem; height:1px; background:var(--brass); }
.eyebrow.center::after{ content:""; width:1.6rem; height:1px; background:var(--brass); }
.eyebrow.center{ justify-content:center; }

/* =========================================================
   Top utility bar
   ========================================================= */
.topbar{ background:var(--ink); color:var(--on-ink-mut);
  font-family:var(--mono); font-size:.7rem; letter-spacing:.06em;
  border-bottom:1px solid rgba(255,255,255,.07); }
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center;
  gap:1rem; min-height:34px; flex-wrap:wrap; }
.topbar a{ color:var(--on-ink); text-decoration:none; }
.topbar a:hover{ color:#fff; }
.topbar .sep{ color:rgba(255,255,255,.25); padding-inline:.5rem; }

/* =========================================================
   Header
   ========================================================= */
.site-head{ position:sticky; top:0; z-index:60;
  background:color-mix(in srgb,var(--paper) 85%,transparent);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--line); }
.site-head .wrap{ display:flex; align-items:center; justify-content:space-between;
  gap:1rem; min-height:68px; }
.brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; flex-shrink:0; }
.brand .logo{ width:34px; height:34px; flex:0 0 auto; }
.brand .bt{ display:flex; flex-direction:column; line-height:1.1; }
.brand .mark{ font-family:var(--serif); font-weight:700; font-size:1.04rem;
  color:var(--ink); letter-spacing:.04em; white-space:nowrap; }
.brand .sub{ font-family:var(--mono); font-size:.56rem; letter-spacing:.2em;
  color:var(--faint); text-transform:uppercase; }
.nav{ display:flex; align-items:center; gap:.2rem; }
.nav a{ text-decoration:none; color:var(--muted); font-size:.86rem;
  padding:.5rem .8rem; border-radius:var(--r-sm); white-space:nowrap;
  transition:color .2s,background .2s; }
.nav a:hover{ color:var(--ink); background:var(--panel); }
.nav a[aria-current="page"]{ color:var(--ink); font-weight:600; }
.nav a[aria-current="page"]::after{ content:""; display:block; height:2px;
  background:var(--brass); margin-top:.3rem; border-radius:2px; }
.nav .cta{ color:#fff; background:var(--ink); padding:.55rem 1.05rem; }
.nav .cta:hover{ background:var(--ink-1); color:#fff; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; color:var(--on-ink); overflow:hidden;
  background:radial-gradient(120% 130% at 82% -20%,#21405e 0%,#16304a 32%,#0d1a29 78%); }
.hero::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:40px 40px; mask-image:linear-gradient(180deg,#000,transparent 88%); }
.hero .wrap{ position:relative; z-index:2; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4rem);
  align-items:center; padding-block:clamp(3rem,7vw,5.5rem); }
.hero .ref{ display:flex; flex-wrap:wrap; gap:.35rem 1.3rem; font-family:var(--mono);
  font-size:.72rem; letter-spacing:.08em; color:var(--on-ink-mut); margin-bottom:1.4rem; }
.hero .ref b{ color:var(--brass-1); font-weight:500; }
.hero h1{ font-family:var(--serif); font-weight:700; color:#fff;
  font-size:clamp(2rem,5vw,3.4rem); line-height:1.34; letter-spacing:.01em;
  margin:.9rem 0 0; }
.hero h1 em{ font-style:normal; color:var(--brass-1); }
.hero .lede{ margin:1.4rem 0 0; max-width:46ch; color:var(--on-ink);
  font-size:1.02rem; line-height:1.95; }
.hero-actions{ margin-top:2rem; display:flex; gap:.8rem; flex-wrap:wrap; }
.btn{ display:inline-flex; align-items:center; gap:.5rem; text-decoration:none;
  font-size:.92rem; padding:.85rem 1.6rem; border-radius:var(--r-sm); letter-spacing:.03em;
  transition:transform .15s,background .2s,border-color .2s,box-shadow .2s; }
.btn .ico{ width:1.1em; height:1.1em; }
.btn-primary{ background:var(--brass); color:#1c1402; font-weight:600; box-shadow:0 8px 24px rgba(176,138,58,.3); }
.btn-primary:hover{ background:var(--brass-1); transform:translateY(-2px); }
.btn-ghost{ border:1px solid rgba(255,255,255,.28); color:#fff; }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.07); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:var(--ink-1); transform:translateY(-2px); }
.btn-line{ border:1px solid var(--line-2); color:var(--ink); }
.btn-line:hover{ border-color:var(--ink); background:var(--card); }

/* hero card with radar */
.hero-card{ position:relative; background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.16); border-radius:16px; padding:1.6rem 1.7rem;
  backdrop-filter:blur(6px); box-shadow:0 30px 70px rgba(0,0,0,.35); overflow:hidden; }
.radar{ position:absolute; inset:auto -40px -60px auto; width:300px; height:300px; opacity:.5; }
.radar .ring{ fill:none; stroke:rgba(122,170,200,.25); }
.radar .cross{ stroke:rgba(122,170,200,.18); }
.radar .blip{ fill:var(--brass-1); }
.radar-sweep{ position:absolute; inset:auto -40px -60px auto; width:300px; height:300px;
  border-radius:50%; background:conic-gradient(from 0deg,rgba(176,138,58,.45),transparent 35%);
  -webkit-mask:radial-gradient(circle at center,#000 60%,transparent 61%);
          mask:radial-gradient(circle at center,#000 60%,transparent 61%);
  animation:sweep 6s linear infinite; opacity:.55; }
@keyframes sweep{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .radar-sweep{ animation:none; } }
.hero-card .hc-label{ font-family:var(--mono); font-size:.66rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--brass-1); position:relative; z-index:2; }
.hc-price{ position:relative; z-index:2; margin:.5rem 0 1.1rem; }
.hc-price .big{ font-family:var(--mono); font-size:2.4rem; font-weight:500; color:#fff; line-height:1; }
.hc-price .from{ color:var(--on-ink-mut); font-size:.85rem; margin-left:.3rem; }
.hc-list{ position:relative; z-index:2; list-style:none; margin:0; padding:0;
  border-top:1px solid rgba(255,255,255,.14); }
.hc-list li{ display:flex; align-items:flex-start; gap:.7rem; padding:.7rem 0;
  border-bottom:1px solid rgba(255,255,255,.1); font-size:.86rem; color:var(--on-ink); }
.hc-list .ico{ color:var(--brass-1); flex:0 0 auto; margin-top:.15rem; width:1.15em; height:1.15em; }

/* =========================================================
   STAT STRIP
   ========================================================= */
.stats{ background:var(--ink-1); border-top:1px solid rgba(255,255,255,.06); }
.stats .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:rgba(255,255,255,.08); }
.stat{ background:var(--ink-1); padding:1.6rem 1.2rem; text-align:center; }
.stat .num{ font-family:var(--serif); font-weight:700; color:#fff;
  font-size:clamp(1.4rem,3vw,2rem); line-height:1; }
.stat .num .u{ font-size:.7em; color:var(--brass-1); margin-left:.15rem; }
.stat .lab{ font-size:.76rem; color:var(--on-ink-mut); margin-top:.5rem; letter-spacing:.04em; }

/* =========================================================
   Sticky in-page sub-nav (anchor pills)
   ========================================================= */
.subnav{ position:sticky; top:68px; z-index:50; background:color-mix(in srgb,var(--paper) 90%,transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.subnav .wrap{ display:flex; gap:.3rem; overflow-x:auto; scrollbar-width:none; padding-block:.55rem; }
.subnav .wrap::-webkit-scrollbar{ display:none; }
.subnav a{ flex:0 0 auto; text-decoration:none; font-size:.8rem; color:var(--muted);
  padding:.4rem .85rem; border-radius:100px; white-space:nowrap; transition:.2s; }
.subnav a:hover{ color:var(--ink); background:var(--panel); }
.subnav a.active{ color:#fff; background:var(--ink); }

/* =========================================================
   Sections
   ========================================================= */
.sec{ padding-block:clamp(3rem,7vw,5rem); scroll-margin-top:120px; }
.sec.alt{ background:var(--paper-2); border-block:1px solid var(--line); }
.sec.dark{ background:var(--ink); color:var(--on-ink); }
.sec-head{ max-width:62ch; margin-bottom:2.2rem; }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head h2{ font-family:var(--serif); font-weight:700; color:var(--ink);
  font-size:clamp(1.5rem,3.4vw,2.2rem); line-height:1.4; margin:.8rem 0 0; letter-spacing:.01em; }
.sec.dark .sec-head h2{ color:#fff; }
.sec-head p{ margin:1rem 0 0; color:var(--muted); font-size:1rem; }
.sec.dark .sec-head p{ color:var(--on-ink-mut); }
.sec-num{ font-family:var(--mono); font-size:.78rem; color:var(--brass); letter-spacing:.1em; }

/* generic grid */
.grid{ display:grid; gap:1.1rem; }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); }
.g-auto{ grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }

/* card */
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:1.5rem 1.5rem; box-shadow:var(--sh-sm); transition:transform .2s,box-shadow .2s,border-color .2s; }
.card h3{ font-family:var(--serif); font-weight:700; color:var(--ink); font-size:1.08rem;
  line-height:1.5; }
.card p{ color:var(--muted); font-size:.9rem; line-height:1.8; margin:.6rem 0 0; }
.icobox{ width:46px; height:46px; border-radius:10px; display:grid; place-items:center;
  background:var(--brass-tint); color:var(--brass-2); margin-bottom:1rem; }
.icobox .ico{ width:24px; height:24px; }

/* service card with price */
.svc{ display:flex; flex-direction:column; }
.svc:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); border-color:var(--line-2); }
.svc p{ flex:1; }
.svc .price{ margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line);
  display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; }
.svc .price .amt{ font-family:var(--mono); font-size:1.35rem; font-weight:500; color:var(--ink); }
.svc .price .amt i{ font-style:normal; font-size:.7em; color:var(--muted); margin-left:.1rem; }
.svc .price .tax{ font-family:var(--mono); font-size:.66rem; color:var(--faint); letter-spacing:.06em; }

/* plan cards (受任可否) */
.plan{ display:flex; flex-direction:column; text-align:center; }
.plan .pt{ font-weight:600; color:var(--ink); font-size:1rem; }
.plan .pp{ font-family:var(--mono); font-size:1.7rem; font-weight:500; color:var(--brass-2);
  margin:.6rem 0 .1rem; }
.plan .pp small{ font-size:.5em; color:var(--muted); display:block; letter-spacing:.06em; }
.plan .pd{ color:var(--muted); font-size:.86rem; line-height:1.75; margin-top:.9rem;
  padding-top:.9rem; border-top:1px solid var(--line); }
.plan.free .pp{ color:var(--ink); }

/* do / dont panels */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.pane{ border-radius:var(--r); padding:1.4rem 1.5rem; border:1px solid var(--line); background:var(--card); }
.pane h3{ display:flex; align-items:center; gap:.6rem; font-family:var(--mono); font-size:.74rem;
  letter-spacing:.12em; text-transform:uppercase; margin-bottom:1rem; padding-bottom:.7rem;
  border-bottom:1px solid var(--line); }
.pane.do{ background:linear-gradient(180deg,var(--brass-tint),var(--card) 60%); }
.pane.do h3{ color:var(--brass-2); }
.pane.dont h3{ color:var(--danger); }
.pane ul{ list-style:none; margin:0; padding:0; }
.pane li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; line-height:1.7;
  padding:.4rem 0; color:var(--text); }
.pane li .ico{ flex:0 0 auto; margin-top:.2rem; width:1.05em; height:1.05em; }
.pane.do li .ico{ color:var(--brass); }
.pane.dont li .ico{ color:var(--danger); }

/* feature list (含まれるもの / 分析項目 / 成果物) */
.flist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.flist .fi{ background:var(--card); padding:1.2rem 1.3rem; }
.flist .fi .ft{ display:flex; align-items:center; gap:.6rem; font-weight:600; color:var(--ink); font-size:.96rem; }
.flist .fi .ft .ico{ color:var(--brass); width:1.2em; height:1.2em; flex:0 0 auto; }
.flist .fi p{ color:var(--muted); font-size:.85rem; line-height:1.7; margin:.5rem 0 0; }

/* stepper (process) */
.stepper{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; }
.step{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:1.2rem;
  background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:1.3rem 1.5rem; box-shadow:var(--sh-sm); }
.step .node{ width:44px; height:44px; border-radius:50%; flex:0 0 auto;
  background:var(--ink); color:#fff; display:grid; place-items:center;
  font-family:var(--mono); font-weight:500; font-size:1rem; align-self:start; }
.step h4{ font-weight:600; color:var(--ink); font-size:1rem; }
.step p{ color:var(--muted); font-size:.88rem; line-height:1.7; margin:.35rem 0 0; }
.step .note{ display:inline-block; margin-top:.5rem; font-family:var(--mono); font-size:.72rem;
  color:var(--brass-2); background:var(--brass-tint); padding:.2rem .6rem; border-radius:100px; }
@media(min-width:760px){
  .stepper{ grid-template-columns:1fr 1fr; }
}

/* checklist (用意いただきたい情報) */
.checks{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:1rem; }
.check{ background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:1.1rem 1.3rem; display:flex; gap:.8rem; }
.check .ico{ color:var(--brass); flex:0 0 auto; margin-top:.15rem; }
.check b{ color:var(--ink); display:block; font-size:.95rem; }
.check span{ color:var(--muted); font-size:.84rem; line-height:1.7; }

/* reject list */
.rejects{ display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:.9rem; }
.rej{ background:var(--danger-tint); border:1px solid #e7cfcc; border-left:3px solid var(--danger);
  border-radius:var(--r-sm); padding:1rem 1.2rem; }
.rej b{ display:flex; align-items:center; gap:.5rem; color:#7e3a36; font-size:.92rem; }
.rej b .ico{ width:1.05em; height:1.05em; flex:0 0 auto; }
.rej span{ color:var(--muted); font-size:.84rem; line-height:1.65; display:block; margin-top:.35rem; }

/* highlight band (policy emphasis) */
.band{ background:var(--ink); color:var(--on-ink); border-radius:var(--r); padding:1.6rem 1.8rem;
  border-left:4px solid var(--brass); font-size:.98rem; line-height:1.95; }
.band strong{ color:#fff; }

/* simple prose helpers */
.prose p{ color:var(--text); margin:1rem 0; }
.prose p.note{ color:var(--muted); font-size:.9rem; }

/* FAQ */
.faq{ max-width:860px; }
.faq details{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-sm);
  margin-bottom:.7rem; overflow:hidden; transition:box-shadow .2s; }
.faq details[open]{ box-shadow:var(--sh-sm); }
.faq summary{ cursor:pointer; list-style:none; padding:1.05rem 1.3rem; font-weight:600;
  color:var(--ink); display:flex; gap:.9rem; align-items:flex-start; font-size:.97rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .q{ font-family:var(--mono); color:var(--brass); flex:0 0 auto; }
.faq summary .pm{ margin-left:auto; color:var(--faint); font-family:var(--mono); transition:transform .2s; }
.faq details[open] summary .pm{ transform:rotate(45deg); }
.faq .ans{ padding:0 1.3rem 1.1rem 3rem; color:var(--muted); font-size:.9rem; line-height:1.85; }

/* CTA band */
.cta{ position:relative; overflow:hidden; color:var(--on-ink);
  background:radial-gradient(120% 160% at 20% 0%,#1d3a57 0%,#16304a 35%,#0d1a29 80%); }
.cta::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:40px 40px; mask-image:radial-gradient(circle at 80% 120%,#000,transparent 70%); }
.cta .wrap{ position:relative; z-index:2; padding-block:clamp(3rem,7vw,4.5rem); text-align:center; }
.cta h2{ font-family:var(--serif); font-weight:700; color:#fff; margin:1rem 0 .6rem;
  font-size:clamp(1.5rem,3.4vw,2.3rem); line-height:1.45; }
.cta p{ color:var(--on-ink-mut); max-width:48ch; margin:0 auto 1.9rem; }
.cta .hero-actions{ justify-content:center; }

/* footer */
.foot{ background:var(--ink); color:var(--on-ink-mut); }
.foot .wrap{ padding-block:3rem; display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:2rem; }
.foot .fb .mark{ font-family:var(--serif); color:#fff; font-size:1.15rem; font-weight:700;
  display:flex; align-items:center; gap:.6rem; }
.foot .fb .logo{ width:30px; height:30px; }
.foot .fb p{ font-size:.83rem; line-height:1.8; margin:.9rem 0 0; max-width:34ch; }
.foot h4{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brass-1); margin-bottom:.9rem; }
.foot ul{ list-style:none; margin:0; padding:0; }
.foot li{ margin:.45rem 0; }
.foot a{ color:var(--on-ink); text-decoration:none; font-size:.85rem; }
.foot a:hover{ color:#fff; text-decoration:underline; }
.foot .meta{ font-family:var(--mono); font-size:.74rem; line-height:1.9; color:var(--on-ink-mut); }
.foot-b{ border-top:1px solid rgba(255,255,255,.1); }
.foot-b .wrap{ padding-block:1.1rem; display:flex; justify-content:space-between; flex-wrap:wrap;
  gap:.6rem; font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; }

/* reveal */
.js-anim .reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease,transform .7s ease; }
.js-anim .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .js-anim .reveal{ opacity:1; transform:none; transition:none; } }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:960px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-card{ max-width:480px; }
  .foot .wrap{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .brand .sub{ display:none; }
  .nav a{ padding:.5rem .55rem; font-size:.8rem; }
  .duo{ grid-template-columns:1fr; }
  .g-3,.g-2{ grid-template-columns:1fr; }
}
@media (max-width:680px){
  body{ font-size:15px; }
  .stats .wrap{ grid-template-columns:1fr 1fr; }
  .stepper{ grid-template-columns:1fr; }
  .foot .wrap{ grid-template-columns:1fr; gap:1.6rem; }
  .subnav{ top:60px; }
  .site-head .wrap{ min-height:60px; }
}

/* lineage motif (ancestry hero) */
.lineage{ position:absolute; inset:auto -26px -34px auto; width:300px; height:300px; opacity:.6; }
.lineage line{ stroke:rgba(122,170,200,.35); stroke-width:1.3; }
.lineage .nd{ fill:#16304a; stroke:var(--brass-1); stroke-width:1.6; }
.lineage .nd-top{ fill:var(--brass); stroke:var(--brass-1); stroke-width:1.6; }
.lineage .nd.sm{ fill:#16304a; stroke:rgba(199,159,84,.72); }

/* plan amount inline (ancestry plans) */
.plan-amt{ display:block; margin-top:.7rem; padding-top:.6rem; border-top:1px solid var(--line);
  font-family:var(--mono); color:var(--brass-2); font-weight:500; font-size:.95rem; }
.card p b{ color:var(--ink); font-weight:600; }

/* breadcrumb (hero) */
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:0 0 .2rem;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; }
.crumbs a{ color:var(--on-ink-mut); text-decoration:none; }
.crumbs a:hover{ color:#fff; }
.crumbs span{ color:rgba(255,255,255,.3); }
.crumbs b{ color:var(--brass-1); font-weight:500; }

/* related investigations cards */
.relcard{ text-decoration:none; display:flex; flex-direction:column; }
.relcard h3{ margin-top:0; }
.rellink{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem;
  font-family:var(--mono); font-size:.78rem; color:var(--brass-2); letter-spacing:.04em; }
.rellink .ico{ width:1.05em; height:1.05em; transition:transform .2s; }
.relcard:hover .rellink .ico{ transform:translateX(4px); }


/* mobile header: two rows, scrollable nav */
@media (max-width:700px){
  .site-head{ position:static; }
  .site-head .wrap{ flex-wrap:wrap; row-gap:.1rem; padding-block:.55rem; min-height:0; }
  .nav{ flex:1 1 100%; overflow-x:auto; justify-content:flex-start;
    scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .nav::-webkit-scrollbar{ display:none; }
  .nav a{ flex:0 0 auto; }
  .subnav{ top:0; }
}


/* ===== v2 additions ===== */
.trust-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
.tchip{ display:inline-flex; align-items:center; gap:.45rem; font-size:.78rem; color:var(--on-ink);
  border:1px solid rgba(255,255,255,.22); border-radius:100px; padding:.4rem .9rem; }
.tchip .ico{ width:1em; height:1em; color:var(--brass-1); }
.badge{ display:inline-block; font-family:var(--mono); font-size:.68rem; letter-spacing:.06em;
  border-radius:4px; padding:.15rem .5rem; margin-right:.4rem; }
.b-a{ background:#123a24; color:#bfe8cf; } .b-b{ background:#12314d; color:#bcd9f5; }
.b-c{ background:#3c3510; color:#eadfa6; } .b-d{ background:#402a12; color:#f0d3b0; }
.b-e{ background:#46171c; color:#f3c1c6; }
.lv{ display:inline-block; font-size:.74rem; border:1px solid var(--line-2); border-radius:4px;
  padding:.12rem .55rem; margin:.15rem .3rem .15rem 0; color:var(--muted); background:var(--paper); }
.lv.ok{ border-color:#9dc3a9; color:#2c5b3d; background:#eef7f1; }
.lv.warn{ border-color:#d9c48a; color:#6d5a1d; background:#faf5e6; }
.lv.ng{ border-color:#d9a3a3; color:#7e3a36; background:var(--danger-tint); }
.todo{ background:#fff8e6; border:1px dashed #d9c48a; color:#6d5a1d; border-radius:6px;
  padding:.15rem .55rem; font-size:.82em; font-weight:600; }
.report{ background:#fff; border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm);
  max-width:900px; }
.report .rp-cover{ background:var(--ink); color:var(--on-ink); border-radius:var(--r) var(--r) 0 0;
  padding:2.2rem 2rem; position:relative; overflow:hidden; }
.report .rp-cover .wm{ position:absolute; right:-10px; top:14px; font-family:var(--mono);
  font-size:2.6rem; color:rgba(255,255,255,.07); letter-spacing:.2em; transform:rotate(8deg); }
.report .rp-cover h3{ font-family:var(--serif); color:#fff; font-size:1.4rem; margin:.6rem 0 0; }
.report .rp-body{ padding:1.6rem 2rem 2rem; }
.report h4{ font-family:var(--serif); color:var(--ink); font-size:1.05rem; border-left:3px solid var(--brass);
  padding-left:.7rem; margin:1.8rem 0 .7rem; }
.report table{ width:100%; border-collapse:collapse; font-size:.85rem; }
.report th,.report td{ border:1px solid var(--line); padding:.55rem .7rem; text-align:left; vertical-align:top; }
.report th{ background:var(--paper-2); font-weight:600; white-space:nowrap; }
.report .note{ color:var(--muted); font-size:.82rem; }
.tablewrap{ overflow-x:auto; }
.price-note{ font-size:.85rem; color:var(--muted); }
.pk .pd{ text-align:left; }
.pk ul{ list-style:none; margin:.4rem 0 0; padding:0; }
.pk li{ padding:.28rem 0; font-size:.86rem; color:var(--text); display:flex; gap:.5rem; }
.pk li::before{ content:"—"; color:var(--brass); }
.art{ display:flex; flex-direction:column; text-decoration:none; }
.art .meta{ font-family:var(--mono); font-size:.7rem; color:var(--faint); margin-top:auto; padding-top:.8rem; }
.art .soon{ display:inline-block; font-family:var(--mono); font-size:.66rem; color:var(--brass-2);
  background:var(--brass-tint); border-radius:100px; padding:.15rem .6rem; margin-bottom:.6rem; width:max-content;}
.toc{ background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:1rem 1.3rem; }
.toc a{ color:var(--muted); text-decoration:none; font-size:.86rem; display:inline-block; padding:.2rem .6rem; }
.toc a:hover{ color:var(--ink); }
.kv{ width:100%; border-collapse:collapse; font-size:.92rem; }
.kv th{ width:32%; background:var(--paper-2); font-weight:600; color:var(--ink); }
.kv th,.kv td{ border:1px solid var(--line); padding:.7rem .9rem; text-align:left; }
@media(max-width:680px){ .kv th{ width:38%; } .report .rp-body{ padding:1.2rem 1rem 1.4rem; } }


/* ===== v3: mobile hamburger / bottom CTA / FV slim ===== */
.menu-btn{display:none}
@media (max-width:820px){
  .site-head{position:sticky;top:0}
  .site-head .wrap{flex-wrap:nowrap;padding-block:.55rem}
  .menu-btn{display:inline-flex;align-items:center;gap:.45rem;margin-left:auto;
    font-family:inherit;font-size:.9rem;font-weight:700;color:#0d1a29;
    background:#fff;border:2px solid #b08a3a;border-radius:8px;
    padding:.6rem 1.05rem;cursor:pointer;min-height:44px}
  .menu-btn:hover{background:#f6efe0}
  .menu-btn::after{content:"▾";font-size:.72em;transition:transform .2s}
  .menu-btn.on::after{transform:rotate(180deg)}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:80;
    flex-direction:column;align-items:stretch;gap:0;background:#102136;
    border-top:1px solid rgba(255,255,255,.08);box-shadow:0 16px 32px rgba(0,0,0,.4);
    padding:.4rem 1rem 1.1rem;overflow:visible}
  .nav.open{display:flex}
  .nav a{padding:.95rem .3rem;border-bottom:1px solid rgba(255,255,255,.08);width:100%;min-height:44px;
    color:#e9eef5;font-size:1rem}
  .nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
  .nav a[aria-current="page"]{color:var(--brass-1)}
  .nav .cta{margin-top:.8rem;justify-content:center;width:100%;border-bottom:none}
  .hero .ref{display:none}
  .hero-card{display:none}
  .trust-chips{gap:.4rem;margin-top:1.1rem}
  .tchip{font-size:.7rem;padding:.32rem .7rem}
}
.mcta{display:none}
@media (max-width:700px){
  body.show-mcta{padding-bottom:74px}
  .mcta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:70;
    background:rgba(13,26,41,.97);backdrop-filter:blur(6px);
    border-top:1px solid rgba(255,255,255,.14);
    padding:.55rem .85rem calc(.55rem + env(safe-area-inset-bottom));
    transform:translateY(110%);transition:transform .25s ease}
  body.show-mcta .mcta{transform:translateY(0)}
  .mcta .btn{width:100%;justify-content:center;min-height:48px}
}
.f-legend{scroll-margin-top:96px}
.f-out,.f-err{scroll-margin-top:96px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible{outline:3px solid var(--brass-2);outline-offset:2px}
.chip input:focus-visible + span{outline:3px solid var(--brass-2);outline-offset:2px}

.c-hero{ position:relative; color:var(--on-ink); overflow:hidden;
  background:radial-gradient(120% 130% at 82% -20%,#21405e 0%,#16304a 32%,#0d1a29 78%); }
.c-hero::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:40px 40px; mask-image:linear-gradient(180deg,#000,transparent 88%); }
.c-hero .wrap{ position:relative; z-index:2; padding-block:clamp(2.6rem,6vw,4rem); }
.c-hero h1{ font-family:var(--serif); font-weight:700; color:#fff;
  font-size:clamp(1.7rem,4vw,2.6rem); line-height:1.4; margin:.9rem 0 0; }
.c-hero h1 em{ font-style:normal; color:var(--brass-1); }
.c-hero .lede{ margin:1rem 0 0; max-width:60ch; color:var(--on-ink); line-height:1.95; }
.form-wrap{ max-width:860px; }
.f-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--sh-sm); padding:clamp(1.4rem,4vw,2.2rem); }
.f-sec{ margin-bottom:1.9rem; }
.f-sec > .f-legend{ display:flex; align-items:center; gap:.6rem; font-family:var(--mono);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-2);
  padding-bottom:.6rem; border-bottom:1px solid var(--line); margin-bottom:1.1rem; }
.f-row{ display:grid; gap:1rem; margin-bottom:1rem; }
.f-2{ grid-template-columns:1fr 1fr; }
label.fl{ display:block; font-weight:600; color:var(--ink); font-size:.9rem; margin-bottom:.4rem; }
label.fl .req{ font-family:var(--mono); font-size:.62rem; color:#fff; background:var(--danger);
  border-radius:4px; padding:.1rem .4rem; margin-left:.5rem; vertical-align:middle; letter-spacing:.08em; }
label.fl .opt{ font-family:var(--mono); font-size:.62rem; color:var(--faint);
  border:1px solid var(--line-2); border-radius:4px; padding:.1rem .4rem; margin-left:.5rem; vertical-align:middle; }
.fi-in, select.fi-in, textarea.fi-in{ width:100%; font:inherit; color:var(--text);
  background:var(--paper); border:1px solid var(--line-2); border-radius:var(--r-sm);
  padding:.7rem .9rem; transition:border-color .2s, box-shadow .2s; }
.fi-in:focus{ outline:none; border-color:var(--brass); box-shadow:0 0 0 3px rgba(176,138,58,.15); background:#fff; }
textarea.fi-in{ min-height:130px; resize:vertical; }
.f-note{ font-size:.8rem; color:var(--muted); margin-top:.35rem; line-height:1.6; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chip{ position:relative; }
.chip input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.chip span{ display:inline-block; font-size:.85rem; color:var(--muted); background:var(--paper);
  border:1px solid var(--line-2); border-radius:100px; padding:.45rem 1rem; transition:.15s; }
.chip input:checked + span{ color:#fff; background:var(--ink); border-color:var(--ink); }
.chip input:focus-visible + span{ box-shadow:0 0 0 3px rgba(176,138,58,.3); }
.agree{ display:flex; gap:.7rem; align-items:flex-start; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--r-sm); padding:1rem 1.1rem; font-size:.87rem; line-height:1.75; }
.agree input{ margin-top:.3rem; width:1.05rem; height:1.05rem; accent-color:var(--brass-2); flex:0 0 auto; }
.f-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.6rem; }
.f-actions .btn{ border:none; cursor:pointer; font-family:inherit; }
.f-err{ display:none; color:#7e3a36; background:var(--danger-tint); border:1px solid #e7cfcc;
  border-left:3px solid var(--danger); border-radius:var(--r-sm); padding:.8rem 1rem;
  font-size:.87rem; margin-top:1.1rem; }
.f-out{ display:none; margin-top:1.4rem; }
.f-out .f-legend{ display:flex; align-items:center; gap:.6rem; font-family:var(--mono);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-2); margin-bottom:.6rem; }
.f-out textarea{ width:100%; min-height:220px; font-family:var(--mono); font-size:.8rem;
  color:var(--text); background:var(--paper); border:1px dashed var(--line-2); border-radius:var(--r-sm); padding:.9rem; }
.f-out .copied{ display:none; color:var(--brass-2); font-family:var(--mono); font-size:.78rem; margin-left:.6rem; }
.side-info .fi{ background:var(--card); }
@media (max-width:680px){ .f-2{ grid-template-columns:1fr; } }
