/* ============================================
   VEDENNIUS brand stylesheet
   ============================================ */

:root{
  --ink:#0b0b0c;
  --ink-2:#141312;
  --ink-3:#1c1a18;
  --paper:#f6f3ec;
  --paper-dim:#e8e3d6;
  --bronze:#b08d57;
  --bronze-light:#d3b483;
  --line: rgba(246,243,236,.12);
  --line-strong: rgba(246,243,236,.22);
  --text-dim: rgba(246,243,236,.62);
  --text-dimmer: rgba(246,243,236,.42);
  --radius: 10px;
  --maxw: 1180px;
  --serif: 'Fraunces', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
section{ position:relative; }

::selection{ background:var(--bronze); color:var(--ink); }

/* ---------- utility type ---------- */
.eyebrow{
  display:inline-block;
  font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--bronze-light); font-weight:600;
}
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; margin:0; letter-spacing:-.01em; }
p{ margin:0; }
.lede{ color:var(--text-dim); font-size:1.08rem; max-width:640px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; border-radius:999px; font-size:.92rem; font-weight:600;
  text-decoration:none; letter-spacing:.01em; cursor:pointer; border:1px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  font-family:var(--sans);
}
.btn-primary{ background:var(--bronze); color:var(--ink); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(176,141,87,.28); background:var(--bronze-light); }
.btn-ghost{ background:transparent; color:var(--paper); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--bronze); color:var(--bronze-light); }
.btn-arrow{ transition:transform .25s ease; }
.btn:hover .btn-arrow{ transform:translateX(3px); }

/* ============ HEADER ============ */
header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(11,11,12,0); border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
header.scrolled{
  background:rgba(11,11,12,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding:20px 0; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand img{ height:30px; width:auto; }
.brand-word{ font-family:var(--serif); font-size:1.24rem; letter-spacing:.04em; font-weight:600; color:var(--paper); }
.nav-links{ display:flex; align-items:center; gap:30px; }
.nav-links a{
  text-decoration:none; color:var(--text-dim); font-size:.9rem; font-weight:500;
  letter-spacing:.01em; position:relative; padding:4px 0; white-space:nowrap;
  transition:color .2s ease;
}
.nav-links a:hover{ color:var(--paper); }
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--bronze); transition:width .25s ease;
}
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-cta .btn{ padding:10px 18px; font-size:.85rem; white-space:nowrap; }
.burger{ display:none; }
@media (max-width:1080px){
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .burger{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; background:transparent; border:1px solid var(--line-strong); border-radius:8px; color:var(--paper); cursor:pointer; flex:none; }
}

/* ============ HERO ============ */
.hero{
  min-height:100vh; display:flex; align-items:center; position:relative;
  padding:150px 0 90px;
  background:
    radial-gradient(ellipse 900px 520px at 82% -10%, rgba(176,141,87,.16), transparent 60%),
    radial-gradient(ellipse 700px 500px at 8% 110%, rgba(176,141,87,.08), transparent 60%),
    var(--ink);
  overflow:hidden;
}
.hero-grid{
  position:absolute; inset:0; opacity:.5;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.6), transparent 75%);
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.6), transparent 75%);
}
.hero-in{ position:relative; z-index:2; max-width:800px; }
.hero .eyebrow{ margin-bottom:22px; }
.hero h1{
  font-size:clamp(2.5rem, 5.6vw, 4.4rem); line-height:1.06; color:var(--paper);
  margin-bottom:24px;
}
.hero h1 .accent{ color:var(--bronze-light); font-style:italic; }
.hero .lede{ font-size:1.18rem; margin-bottom:40px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:64px; }
.hero-proof{ display:flex; gap:40px; flex-wrap:wrap; padding-top:32px; border-top:1px solid var(--line); max-width:720px; }
.hero-proof div{ display:flex; flex-direction:column; gap:4px; }
.hero-proof b{ font-family:var(--serif); font-size:1.7rem; color:var(--paper); font-weight:600; }
.hero-proof span{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dimmer); }

/* marquee strip */
.marquee{
  position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--ink-2); overflow:hidden; padding:18px 0;
}
.marquee-track{ display:flex; width:max-content; animation:scroll 34s linear infinite; }
.marquee-track span{
  display:inline-flex; align-items:center; gap:18px;
  font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--text-dimmer);
  padding:0 26px; white-space:nowrap; letter-spacing:.02em;
}
.marquee-track span::after{ content:'\2022'; color:var(--bronze); font-style:normal; margin-left:18px; }
@keyframes scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============ SECTION HEADERS ============ */
.sec-head{ max-width:640px; margin-bottom:56px; }
.sec-head h2{ font-size:clamp(1.9rem, 3.4vw, 2.7rem); color:var(--paper); margin:16px 0 18px; line-height:1.14; }
.sec-pad{ padding:120px 0; }
.on-paper{ background:var(--paper); color:var(--ink); }
.on-paper .lede{ color:rgba(11,11,12,.62); }
.on-paper .eyebrow{ color:#8a6a3c; }
.on-paper .sec-head h2{ color:var(--ink); }

/* ============ SYSTEMS / SERVICES ============ */
.systems-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.sys-card{ background:var(--ink); padding:44px 40px; transition:background .3s ease; }
.sys-card:hover{ background:var(--ink-3); }
.sys-num{ font-family:var(--serif); font-size:.85rem; color:var(--bronze); letter-spacing:.1em; margin-bottom:22px; display:block; }
.sys-card h3{ font-size:1.4rem; color:var(--paper); margin-bottom:14px; }
.sys-card p{ color:var(--text-dim); font-size:.98rem; margin-bottom:20px; }
.sys-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.sys-tags span{
  font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--text-dimmer);
  border:1px solid var(--line-strong); border-radius:999px; padding:5px 12px;
}

/* ============ PROCESS ============ */
.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.proc-step{ position:relative; padding-top:28px; border-top:2px solid var(--bronze); }
.proc-step .n{ font-family:var(--serif); font-size:2.4rem; color:var(--line-strong); display:block; margin-bottom:16px; line-height:1; }
.proc-step h4{ color:var(--paper); font-size:1.15rem; margin-bottom:10px; }
.proc-step p{ color:var(--text-dim); font-size:.92rem; }

/* ============ STANDARD / STORY ============ */
.standard{
  background:
    radial-gradient(ellipse 800px 500px at 90% 10%, rgba(176,141,87,.10), transparent 60%),
    var(--ink-2);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.standard-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:80px; align-items:start; }
.standard-copy p{ color:var(--text-dim); font-size:1.02rem; margin-bottom:20px; }
.standard-copy .cap{
  font-family:var(--serif); font-size:1.35rem; color:var(--paper); line-height:1.5; margin-bottom:26px;
}
.standard-copy .cap b{ color:var(--bronze-light); font-weight:600; font-style:italic; }
.name-note{
  display:inline-block; margin-top:6px; font-size:.82rem; color:var(--text-dimmer);
  border-left:2px solid var(--bronze); padding-left:14px; line-height:1.6;
}
.medallion{
  border:1px solid var(--line-strong); border-radius:var(--radius); padding:40px;
  background:rgba(246,243,236,.02);
}
.medallion-mark{ width:64px; margin-bottom:28px; opacity:.9; }
.principle{ padding:22px 0; border-top:1px solid var(--line); }
.principle:first-of-type{ border-top:none; padding-top:0; }
.principle h5{ font-family:var(--serif); font-size:1.08rem; color:var(--paper); margin-bottom:8px; font-weight:600; }
.principle p{ color:var(--text-dim); font-size:.9rem; }
.latin{ font-family:var(--serif); font-style:italic; color:var(--bronze-light); }

/* ============ BLUEPRINT ============ */
.blueprint-section{ background:var(--ink); padding-top:96px; padding-bottom:104px; }
.blueprint-section .sec-head{ margin-bottom:64px; }
.blueprint-scroll{ position:relative; height:340vh; }
.blueprint-sticky{
  position:sticky; top:96px; height:calc(100vh - 156px); min-height:460px; max-height:680px;
  display:flex; align-items:center; justify-content:center;
}
.blueprint-frame{
  position:relative; width:100%; max-width:var(--maxw); margin:0 28px;
  aspect-ratio:1320/760; max-height:100%;
  background:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px),
    var(--ink-3);
  background-size:32px 32px, 32px 32px, auto;
  border:1px solid var(--line-strong); border-radius:var(--radius);
  overflow:hidden;
}
@media (min-width:1240px){ .blueprint-frame{ margin:0 auto; } }
.bp-corner{ position:absolute; width:20px; height:20px; z-index:2; }
.bp-corner-tl{ top:14px; left:14px; border-top:2px solid var(--bronze); border-left:2px solid var(--bronze); }
.bp-corner-tr{ top:14px; right:14px; border-top:2px solid var(--bronze); border-right:2px solid var(--bronze); }
.bp-corner-bl{ bottom:14px; left:14px; border-bottom:2px solid var(--bronze); border-left:2px solid var(--bronze); }
.bp-corner-br{ bottom:14px; right:14px; border-bottom:2px solid var(--bronze); border-right:2px solid var(--bronze); }
.bp-tag{ position:absolute; top:16px; left:44px; z-index:2; display:flex; flex-direction:column; gap:2px; }
.bp-tag-title{ font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--paper); letter-spacing:.01em; }
.bp-tag-sub{
  font-family:'Inter', monospace; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--bronze-light); opacity:.85;
}
#blueprintSvg{ position:relative; z-index:1; display:block; width:100%; height:100%; }
.bp-ground{ stroke:var(--line-strong); stroke-width:1; stroke-dasharray:4 4; }
.bp-stage{ opacity:1; }
.bp-draw{ fill:none; stroke:var(--text-dim); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.bp-draw.bp-thick{ stroke-width:2.4; stroke:var(--paper); }
.bp-draw.bp-lead{ stroke:var(--bronze); stroke-width:1; opacity:.75; }
.bp-dot{ fill:var(--bronze-light); }
.bp-dim{ stroke:var(--bronze); stroke-width:1; stroke-dasharray:3 3; opacity:.8; }
.bp-label{ font-family:'Inter', monospace; font-size:11px; letter-spacing:.06em; fill:var(--bronze-light); opacity:.85; }
.bp-label-out{ font-size:12px; letter-spacing:.08em; }
.bp-circuit-line{
  fill:none; stroke:var(--bronze-light); stroke-width:1.4; stroke-dasharray:6 5;
  filter:drop-shadow(0 0 3px rgba(211,180,131,.55));
  animation:bpFlow 2.6s linear infinite;
}
.bp-node{
  fill:var(--ink-2); stroke:var(--bronze-light); stroke-width:1.6;
  filter:drop-shadow(0 0 4px rgba(211,180,131,.7));
  animation:bpPulse 2.4s ease-in-out infinite;
}
@keyframes bpFlow{ to{ stroke-dashoffset:-22; } }
@keyframes bpPulse{ 0%,100%{ opacity:.75; } 50%{ opacity:1; } }
.blueprint-modern-caption{
  position:absolute; left:50%; bottom:22px; transform:translateX(-50%);
  width:90%; max-width:520px; text-align:center; z-index:2;
  font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--bronze-light);
  transition:opacity .6s ease;
}
@media (max-width:900px){
  .blueprint-scroll{ height:280vh; }
  .blueprint-sticky{ top:84px; height:calc(100vh - 120px); min-height:380px; }
  .bp-tag{ left:40px; }
  .bp-tag-title{ font-size:.92rem; }
  .bp-tag-sub{ font-size:.58rem; }
  .blueprint-modern-caption{ font-size:.86rem; bottom:14px; }
}
@media (max-width:560px){
  .blueprint-section{ padding-top:84px; padding-bottom:84px; }
  .blueprint-scroll{ height:240vh; }
  .bp-label-out{ display:none; }
}

/* ============ INDUSTRIES ============ */
.industry-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(11,11,12,.08); border:1px solid rgba(11,11,12,.1); border-radius:var(--radius); overflow:hidden; }
.industry-grid div{
  background:var(--paper); padding:26px 24px; font-size:.95rem; font-weight:500;
  display:flex; align-items:center; gap:12px; color:var(--ink);
}
.industry-grid div::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--bronze); flex:none; }

/* ============ CTA ============ */
.cta-band{
  background:linear-gradient(135deg, var(--ink-3), var(--ink));
  border:1px solid var(--line); border-radius:24px; padding:72px 60px;
  display:grid; grid-template-columns:1.2fr .8fr; gap:50px; align-items:center;
  position:relative; overflow:hidden;
}
.cta-band::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 20%, rgba(176,141,87,.22), transparent 55%);
  pointer-events:none;
}
.cta-band h2{ font-size:clamp(1.8rem,3.2vw,2.5rem); color:var(--paper); margin-bottom:16px; }
.cta-band .lede{ margin-bottom:0; }
.cta-form{ position:relative; z-index:2; display:flex; flex-direction:column; gap:12px; }
.cta-form input, .cta-form textarea, .cta-form select{
  background:rgba(246,243,236,.05); border:1px solid var(--line-strong); border-radius:8px;
  padding:14px 16px; color:var(--paper); font-family:var(--sans); font-size:.92rem; width:100%;
}
.cta-form input::placeholder, .cta-form textarea::placeholder{ color:var(--text-dimmer); }
.cta-form input:focus, .cta-form textarea:focus, .cta-form select:focus{ outline:none; border-color:var(--bronze); }
.cta-form label{ font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dimmer); margin-bottom:-4px; }
.cta-note{ font-size:.78rem; color:var(--text-dimmer); margin-top:4px; }

/* ============ FOOTER ============ */
footer{ padding:60px 0 40px; border-top:1px solid var(--line); }
.foot-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; margin-bottom:50px; }
.foot-brand img{ height:34px; margin-bottom:16px; }
.foot-brand p{ color:var(--text-dimmer); font-size:.86rem; max-width:280px; }
.foot-cols{ display:flex; gap:64px; flex-wrap:wrap; }
.foot-col h6{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dimmer); margin-bottom:16px; font-weight:600; }
.foot-col a{ display:block; text-decoration:none; color:var(--text-dim); font-size:.9rem; margin-bottom:11px; transition:color .2s; }
.foot-col a:hover{ color:var(--bronze-light); }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:26px; border-top:1px solid var(--line); flex-wrap:wrap; gap:14px; }
.foot-bottom span{ font-size:.78rem; color:var(--text-dimmer); }
.foot-motto{ font-family:var(--serif); font-style:italic; color:var(--bronze-light); letter-spacing:.04em; font-size:.85rem; }

/* ---------- section entrance ----------
   Content is visible by default (no JS/observer dependency) so it renders
   correctly for no-JS clients, link-preview crawlers, print, and full-page
   screenshots. JS only adds a one-time fade-up the first time each section
   nears the viewport, purely as a progressive enhancement. */
.reveal{ opacity:1; transform:none; }
.reveal.pre{ opacity:0; transform:translateY(22px); }
.reveal.in{ opacity:1; transform:translateY(0); transition:opacity .7s ease, transform .7s ease; }

/* ============ RESPONSIVE ============ */
@media (max-width: 900px){
  .systems-grid{ grid-template-columns:1fr; }
  .process{ grid-template-columns:1fr 1fr; row-gap:36px; }
  .standard-grid{ grid-template-columns:1fr; gap:48px; }
  .industry-grid{ grid-template-columns:1fr 1fr; }
  .cta-band{ grid-template-columns:1fr; padding:44px 28px; border-radius:18px; }
  .hero{ padding-top:130px; }
  .hero-proof{ gap:28px; }
}
@media (max-width: 560px){
  .wrap{ padding:0 20px; }
  .process{ grid-template-columns:1fr; }
  .industry-grid{ grid-template-columns:1fr; }
  .sys-card{ padding:34px 26px; }
  .sec-pad{ padding:84px 0; }
  .hero-actions .btn{ width:100%; justify-content:center; }
  .cta-band{ padding:34px 20px; }
}

/* mobile menu panel */
.mobile-menu{
  position:fixed; inset:0; background:var(--ink); z-index:300;
  display:flex; flex-direction:column; padding:26px 24px;
  transform:translateX(100%); transition:transform .35s ease;
}
.mobile-menu.open{ transform:translateX(0); }
.mobile-menu .top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:50px; }
.mobile-menu a{ font-family:var(--serif); font-size:1.6rem; text-decoration:none; color:var(--paper); padding:14px 0; border-bottom:1px solid var(--line); }
.mobile-menu .btn{ margin-top:30px; justify-content:center; }

/* ============ BLUEPRINT: added detail classes ============ */
.bp-mask{ fill:rgba(28,26,24,.85); stroke:none; }
.bp-draw.bp-hair{ stroke-width:.9; opacity:.5; }
.blueprint-plate{ display:flex; justify-content:space-between; align-items:baseline;
  gap:20px; max-width:var(--maxw); margin:0 auto 26px; padding:0 28px; flex-wrap:wrap; }
.blueprint-plate .eyebrow{ margin:0; }
.blueprint-plate span.plate-note{ font-family:var(--serif); font-style:italic;
  font-size:.95rem; color:var(--text-dimmer); }

/* ============ SKIP LINK + FOCUS ============ */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:400;
  background:var(--bronze); color:var(--ink); padding:12px 20px;
  border-radius:0 0 8px 0; font-weight:600; font-size:.9rem; text-decoration:none;
}
.skip-link:focus{ left:0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--bronze-light); outline-offset:3px; border-radius:4px;
}

/* ============ INTERIOR PAGE HERO ============ */
.page-hero{
  padding:170px 0 74px; position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 820px 420px at 78% -20%, rgba(176,141,87,.16), transparent 62%),
    var(--ink);
  border-bottom:1px solid var(--line);
}
.page-hero h1{ font-size:clamp(2.1rem, 4.2vw, 3.3rem); line-height:1.1; color:var(--paper); margin:18px 0 20px; }
.page-hero .lede{ font-size:1.12rem; max-width:680px; }
.crumb{ font-size:.78rem; letter-spacing:.06em; color:var(--text-dimmer); text-decoration:none; }
.crumb:hover{ color:var(--bronze-light); }
.nav-links a.active{ color:var(--paper); }
.nav-links a.active::after{ width:100%; }

/* ============ EXPANDED SYSTEM DETAIL ============ */
.sys-detail{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.sys-row{ background:var(--ink); padding:46px 44px; display:grid;
  grid-template-columns:.9fr 1.1fr; gap:44px; align-items:start; }
.sys-row:hover{ background:var(--ink-3); }
.sys-row h3{ font-size:1.5rem; color:var(--paper); margin:14px 0 12px; }
.sys-row > div > p{ color:var(--text-dim); font-size:.99rem; }
.sys-points{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.sys-points li{ position:relative; display:block; padding-left:22px;
  color:var(--text-dim); font-size:.94rem; line-height:1.65; }
.sys-points li::before{ content:''; position:absolute; left:0; top:9px;
  width:6px; height:6px; border-radius:50%; background:var(--bronze); }
.sys-points b{ color:var(--paper); font-weight:600; }

/* ============ STEP LIST ============ */
.steps{ display:grid; gap:1px; background:rgba(11,11,12,.09);
  border:1px solid rgba(11,11,12,.1); border-radius:var(--radius); overflow:hidden; }
.step{ background:var(--paper); padding:38px 36px; display:grid;
  grid-template-columns:80px 1fr; gap:26px; align-items:start; }
.step .n{ font-family:var(--serif); font-size:2.2rem; color:#c3ab86; line-height:1; }
.step h4{ font-size:1.2rem; color:var(--ink); margin-bottom:10px; }
.step p{ color:rgba(11,11,12,.66); font-size:.96rem; }
.step .meta{ display:block; margin-top:12px; font-size:.76rem; letter-spacing:.1em;
  text-transform:uppercase; color:#8a6a3c; }

/* ============ INDUSTRIES (with detail) ============ */
.industry-grid div b{ display:block; color:var(--ink); font-weight:600; font-size:.98rem; margin-bottom:6px; }
.industry-grid.detailed div{ display:block; padding:28px 26px; }
.industry-grid.detailed div::before{ content:''; display:block; width:7px; height:7px;
  border-radius:50%; background:var(--bronze); margin-bottom:14px; }
.industry-grid.detailed p{ color:rgba(11,11,12,.62); font-size:.89rem; line-height:1.62; }

/* ============ FAQ ============ */
.faq{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; }
.faq details{ background:var(--ink); }
.faq summary{ padding:24px 30px; cursor:pointer; font-family:var(--serif);
  font-size:1.06rem; color:var(--paper); list-style:none; display:flex;
  justify-content:space-between; gap:20px; align-items:center; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; color:var(--bronze); font-size:1.3rem; flex:none; }
.faq details[open] summary::after{ content:'\2212'; }
.faq details p{ padding:0 30px 26px; color:var(--text-dim); font-size:.95rem; max-width:760px; }

/* ============ LEGAL / LONG-FORM ============ */
.legal{ padding:150px 0 100px; background:var(--paper); color:var(--ink); }
.legal .wrap{ max-width:820px; }
.legal h1{ font-size:clamp(2rem,3.6vw,2.7rem); margin:14px 0 10px; color:var(--ink); }
.legal .updated{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:#8a6a3c; }
.legal .intro{ font-family:var(--serif); font-size:1.15rem; line-height:1.6;
  color:rgba(11,11,12,.8); margin:26px 0 8px; }
.legal h2{ font-size:1.22rem; color:var(--ink); margin:44px 0 12px; }
.legal h3{ font-size:1rem; color:var(--ink); margin:26px 0 8px; font-family:var(--sans); font-weight:700; }
.legal p, .legal li{ color:rgba(11,11,12,.72); font-size:.97rem; line-height:1.72; }
.legal p{ margin:0 0 14px; }
.legal ul{ margin:0 0 16px; padding-left:22px; }
.legal li{ margin-bottom:9px; }
.legal a{ color:#8a6a3c; text-decoration:underline; text-underline-offset:3px; }
.legal .callout{ border-left:2px solid var(--bronze); padding:4px 0 4px 18px; margin:22px 0; }
.legal .callout p:last-child{ margin-bottom:0; }
.legal hr{ border:none; border-top:1px solid rgba(11,11,12,.12); margin:44px 0; }
.legal-nav{ display:flex; flex-wrap:wrap; gap:10px; margin:34px 0 0; }
.legal-nav a{ font-size:.82rem; padding:8px 16px; border:1px solid rgba(11,11,12,.16);
  border-radius:999px; text-decoration:none; color:rgba(11,11,12,.66); }
.legal-nav a:hover{ border-color:var(--bronze); color:#8a6a3c; }
.legal-nav a[aria-current]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* ============ CONTACT PAGE ============ */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.contact-aside h3{ font-size:1.25rem; color:var(--paper); margin-bottom:12px; }
.contact-aside p{ color:var(--text-dim); font-size:.97rem; margin-bottom:18px; }
.contact-aside .row{ padding:20px 0; border-top:1px solid var(--line); }
.contact-aside .row h5{ font-family:var(--serif); font-size:1.02rem; color:var(--paper); margin-bottom:6px; }
.contact-aside .row p{ font-size:.9rem; margin:0; }
.form-consent{ font-size:.78rem; color:var(--text-dimmer); line-height:1.6; margin-top:4px; }
.form-consent a{ color:var(--bronze-light); }

@media (max-width:900px){
  .sys-row{ grid-template-columns:1fr; gap:24px; padding:34px 28px; }
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .step{ grid-template-columns:56px 1fr; gap:18px; padding:30px 24px; }
  .page-hero{ padding:140px 0 60px; }
  .legal{ padding:130px 0 80px; }
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .marquee-track{ animation:none; }
  .bp-circuit-line, .bp-node{ animation:none; }
  .reveal, .reveal.pre, .reveal.in{ opacity:1 !important; transform:none !important; transition:none !important; }
  .btn, .btn-arrow, .nav-links a::after{ transition:none !important; }
}

/* Pages whose first screen is light need the header solid from the top. */
body.on-light header{
  background:rgba(11,11,12,.94); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
