/* ==========================================================================
   EngageQMS — site stylesheet
   Editorial / high-contrast system. Brand palette carried from the
   Process Health Scorecard: Davy's gray / Pumpkin / Cambridge blue /
   Snow / Pale purple — pushed to higher contrast for display use.
   ========================================================================== */

:root{
  /* ---- Brand ---- */
  --gray:#4F4C4C;
  --pumpkin:#F37920;
  --blue:#79AEA3;
  --snow:#FFF9FB;
  --purple:#E3D0D8;

  /* ---- Extended ---- */
  --ink:#151313;            /* near-black for display + dark sections */
  --ink-2:#221F1F;
  --body:#3B3838;
  --muted:#6E6A6A;
  --faint:#9A9595;
  --line:#E4DCDF;
  --line-dark:#332F2F;
  --shell:#F2EEEC;
  --pumpkin-ink:#B85410;    /* AA-safe pumpkin on light */
  --blue-ink:#3F7468;       /* AA-safe blue on light */

  /* ---- Type ---- */
  --sans:"Segoe UI", -apple-system, BlinkMacSystemFont, "Inter", Roboto, Helvetica, Arial, sans-serif;
  --mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, "Courier New", monospace;

  --t-xs:  clamp(.72rem, .70rem + .10vw, .78rem);
  --t-sm:  clamp(.86rem, .83rem + .14vw, .94rem);
  --t-base:clamp(1rem, .96rem + .22vw, 1.1rem);
  --t-lg:  clamp(1.15rem, 1.05rem + .45vw, 1.42rem);
  --t-xl:  clamp(1.5rem, 1.25rem + 1.1vw, 2.2rem);
  --t-2xl: clamp(2rem, 1.5rem + 2.3vw, 3.6rem);
  --t-3xl: clamp(2.6rem, 1.7rem + 4.2vw, 5.6rem);
  --t-4xl: clamp(3.2rem, 1.6rem + 7.4vw, 9rem);

  /* ---- Layout ---- */
  --wrap:1240px;
  --gutter:clamp(1.25rem, 4vw, 3rem);
  --r:16px;
  --r-lg:26px;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  font-size:var(--t-base);
  line-height:1.62;
  color:var(--body);
  background:var(--snow);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto;}
a{color:inherit;text-underline-offset:3px;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
input,select,textarea{font:inherit;color:inherit;}
ul,ol{padding-left:1.15em;}
h1,h2,h3,h4{line-height:1.02;color:var(--ink);font-weight:800;letter-spacing:-.035em;text-wrap:balance;}
p{text-wrap:pretty;}
::selection{background:var(--pumpkin);color:#fff;}
:focus-visible{outline:3px solid var(--pumpkin);outline-offset:3px;border-radius:3px;}

.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--ink);color:#fff;
  padding:14px 22px;font-weight:700;text-decoration:none;}
.skip:focus{left:0;}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ---------- Grain overlay ---------- */
body::after{
  content:"";position:fixed;inset:0;z-index:400;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Layout ---------- */
.wrap{width:min(100% - (var(--gutter) * 2), var(--wrap));margin-inline:auto;}
.narrow{width:min(100% - (var(--gutter) * 2), 800px);margin-inline:auto;}
section{padding-block:clamp(4.5rem,9vw,9rem);position:relative;}
.tight{padding-block:clamp(3rem,5vw,5rem);}

/* ---------- Editorial section index ---------- */
.idx{
  font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;
  color:var(--pumpkin-ink);display:flex;align-items:center;gap:.85rem;margin-bottom:1.6rem;
}
.idx::after{content:"";height:1px;flex:1;max-width:80px;background:currentColor;opacity:.35;}
.idx.on-dark{color:var(--pumpkin);}

.head{max-width:52rem;margin-bottom:clamp(2.5rem,5vw,4.5rem);}
.head p{margin-top:1.4rem;font-size:var(--t-lg);color:var(--muted);line-height:1.5;
  letter-spacing:-.01em;max-width:44rem;}
.on-dark .head p,.dark .head p{color:#A9A3A5;}

h1{font-size:var(--t-4xl);}
h2{font-size:var(--t-3xl);}
h3{font-size:var(--t-lg);letter-spacing:-.02em;line-height:1.2;}
.em{color:var(--pumpkin);font-style:normal;}
.outline{
  color:transparent;
  -webkit-text-stroke:2px var(--ink);
  font-style:normal;
}
/* Light stroke anywhere the background is dark. .hero must be listed
   explicitly — it is a dark surface but does not carry .dark.          */
.dark .outline,.hero .outline,.magnet .outline{
  -webkit-text-stroke-color:rgba(255,249,251,.85);
}
/* Fallback: browsers without text-stroke would render nothing at all. */
@supports not ((-webkit-text-stroke: 1px black)){
  .outline{color:var(--ink);}
  .dark .outline,.hero .outline,.magnet .outline{color:var(--snow);}
}
.muted{color:var(--muted);}
.small{font-size:var(--t-sm);}
.meta{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);}

/* ---------- Dark surface ---------- */
.dark{background:var(--ink);color:#B9B3B5;}
.dark h1,.dark h2,.dark h3,.dark h4{color:var(--snow);}
.dark .meta{color:#7A7476;}
.dark .idx{color:var(--pumpkin);}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--pumpkin);--fg:#fff;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:1.05em 2em;border-radius:100px;font-weight:700;font-size:var(--t-sm);
  text-decoration:none;line-height:1;overflow:hidden;isolation:isolate;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bg);
  transition:color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:translateY(101%);transition:transform .45s var(--ease);
}
.btn:hover{color:#fff;border-color:var(--ink);transform:translateY(-3px);}
.btn:hover::before{transform:translateY(0);}
.btn .arw{transition:transform .35s var(--ease);}
.btn:hover .arw{transform:translateX(4px);}

.btn-line{--bg:transparent;--fg:var(--ink);border-color:var(--ink);}
.btn-line:hover{color:var(--snow);}
.dark .btn-line{--fg:var(--snow);border-color:rgba(255,249,251,.35);}
.dark .btn-line::before{background:var(--snow);}
.dark .btn-line:hover{color:var(--ink);border-color:var(--snow);}
.dark .btn-primary::before{background:var(--snow);}
.dark .btn-primary:hover{color:var(--ink);border-color:var(--snow);}

.btns{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.5rem;}
.btns.mid{justify-content:center;}

/* ---------- Text link ---------- */
.tlink{
  font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:.6em;
  color:var(--ink);padding-bottom:.35em;border-bottom:1.5px solid var(--pumpkin);
  transition:gap .3s var(--ease), color .3s var(--ease);
}
.tlink:hover{gap:1em;color:var(--pumpkin-ink);}
.dark .tlink{color:var(--snow);}
.dark .tlink:hover{color:var(--pumpkin);}

/* ---------- Header ---------- */
.hdr{
  position:sticky;top:0;z-index:200;
  background:rgba(255,249,251,.82);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .3s, border-color .3s;
}
.hdr.on-dark{background:rgba(21,19,19,.78);border-bottom-color:var(--line-dark);}
.nav{display:flex;align-items:center;gap:1.25rem;padding-block:1rem;}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:none;color:var(--ink);}
.hdr.on-dark .brand,.ftr .brand{color:var(--snow);}
.mark{width:34px;height:34px;flex:none;overflow:visible;
  transition:transform .7s var(--ease);}
.brand:hover .mark{transform:rotate(180deg);}
.bname{font-weight:800;letter-spacing:.14em;font-size:.86rem;color:currentColor;
  text-transform:uppercase;white-space:nowrap;}
.bname span{color:var(--pumpkin);}

.nlinks{display:flex;align-items:center;gap:.15rem;margin-left:auto;list-style:none;padding:0;}
.nlinks a:not(.btn){
  display:block;padding:.6rem .9rem;text-decoration:none;color:var(--body);
  font-weight:600;font-size:.9rem;position:relative;
}
.nlinks a:not(.btn)::after{
  content:"";position:absolute;left:.9rem;right:.9rem;bottom:.35rem;height:1.5px;
  background:var(--pumpkin);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.nlinks a:not(.btn):hover::after,
.nlinks a[aria-current="page"]::after{transform:scaleX(1);}
.nlinks a[aria-current="page"]{color:var(--ink);}
.hdr.on-dark .nlinks a:not(.btn){color:#B9B3B5;}
.hdr.on-dark .nlinks a[aria-current="page"]{color:var(--snow);}
.nav .btn{padding:.85em 1.5em;font-size:.82rem;}

.ntoggle{display:none;margin-left:auto;border:1.5px solid var(--line);border-radius:10px;
  padding:.55rem .65rem;color:var(--ink);}
.ntoggle svg{width:22px;height:22px;}
.ntoggle .ic-x{display:none;}
.ntoggle[aria-expanded="true"] .ic-m{display:none;}
.ntoggle[aria-expanded="true"] .ic-x{display:block;}
.hdr.on-dark .ntoggle{color:var(--snow);border-color:var(--line-dark);}

@media (max-width:940px){
  .ntoggle{display:block;}
  .nlinks{
    position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:.2rem;
    background:var(--snow);border-bottom:1px solid var(--line);padding:1rem var(--gutter) 1.6rem;
    margin:0;display:none;box-shadow:0 24px 48px rgba(21,19,19,.12);
  }
  .hdr.on-dark .nlinks{background:var(--ink);border-bottom-color:var(--line-dark);}
  .nlinks.open{display:flex;}
  .nlinks a:not(.btn){padding:.85rem .2rem;font-size:1.05rem;}
  .nlinks a:not(.btn)::after{left:.2rem;right:auto;width:28px;}
  .nlinks .btn{margin-top:.8rem;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;background:var(--ink);color:#B9B3B5;
  padding-block:clamp(5rem,12vw,10rem) clamp(4rem,8vw,7rem);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(48rem 30rem at 82% 6%, rgba(243,121,32,.20), transparent 62%),
    radial-gradient(42rem 30rem at 8% 96%, rgba(121,174,163,.17), transparent 62%);
}
.hero > *{position:relative;}
.hero h1{color:var(--snow);margin-bottom:2rem;}
.hero .lede{font-size:var(--t-lg);color:#A9A3A5;max-width:38rem;line-height:1.55;letter-spacing:-.01em;}

.hero-top{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
  align-items:flex-end;margin-bottom:clamp(2rem,4vw,3.5rem);}
.pill{
  display:inline-flex;align-items:center;gap:.6rem;border:1px solid rgba(255,249,251,.2);
  border-radius:100px;padding:.5rem 1.1rem;font-family:var(--mono);font-size:var(--t-xs);
  letter-spacing:.13em;text-transform:uppercase;color:#C9C3C5;
}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--pumpkin);flex:none;
  box-shadow:0 0 0 0 rgba(243,121,32,.6);animation:pulse 2.6s infinite;}
@keyframes pulse{
  70%{box-shadow:0 0 0 9px rgba(243,121,32,0);}
  100%{box-shadow:0 0 0 0 rgba(243,121,32,0);}
}
.hero-bottom{
  display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,5vw,4.5rem);
  align-items:end;margin-top:clamp(2.5rem,5vw,4rem);
}
@media (max-width:900px){.hero-bottom{grid-template-columns:1fr;}}

.symptoms{border-top:1px solid rgba(255,249,251,.16);padding-top:1.5rem;}
.symptoms .meta{margin-bottom:1.1rem;}
.symptoms ul{list-style:none;padding:0;display:grid;gap:.85rem;}
.symptoms li{display:flex;gap:.85rem;font-size:var(--t-sm);color:#B9B3B5;line-height:1.5;}
.symptoms li span{font-family:var(--mono);color:var(--pumpkin);flex:none;font-size:.78rem;padding-top:.15rem;}

/* ---------- Inner page head ---------- */
.phead{
  padding-block:clamp(3.5rem,8vw,7rem) clamp(2.5rem,5vw,4.5rem);
  background:
    radial-gradient(46rem 26rem at 88% -20%, rgba(121,174,163,.22), transparent 62%),
    radial-gradient(38rem 24rem at 2% 10%, rgba(227,208,216,.55), transparent 62%),
    var(--snow);
  border-bottom:1px solid var(--line);
}
.phead h1{font-size:var(--t-3xl);max-width:20ch;}
.phead .lede{margin-top:1.6rem;font-size:var(--t-lg);color:var(--muted);
  max-width:42rem;line-height:1.5;letter-spacing:-.01em;}
.phead .crumb{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);margin-bottom:1.4rem;}
.phead .crumb a{color:var(--pumpkin-ink);text-decoration:none;}

/* ---------- Anchor offset for sticky header ---------- */
[id]{scroll-margin-top:90px;}

/* ---------- Marquee ---------- */
.marquee{
  background:var(--pumpkin);color:#fff;padding-block:1.05rem;overflow:hidden;
  border-block:1px solid rgba(0,0,0,.08);
}
.marquee-track{display:flex;width:max-content;animation:slide 42s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
@keyframes slide{to{transform:translateX(-50%);}}
.marquee-track span{
  font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;padding-inline:1.6rem;display:inline-flex;align-items:center;gap:1.6rem;white-space:nowrap;
}
.marquee-track span::after{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.65);}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0;}
.stat{padding:clamp(1.8rem,3.5vw,2.8rem) clamp(1.2rem,2.5vw,2.2rem);border-right:1px solid var(--line);}
.stat:last-child{border-right:0;}
@media (max-width:780px){
  .stat{border-right:0;border-bottom:1px solid var(--line);}
  .stat:last-child{border-bottom:0;}
}
.dark .stat{border-color:var(--line-dark);}
.stat .n{font-size:clamp(2.8rem,6vw,4.6rem);font-weight:800;color:var(--ink);
  letter-spacing:-.05em;line-height:.95;display:flex;align-items:baseline;gap:.05em;}
.dark .stat .n{color:var(--snow);}
.stat .n i{font-style:normal;color:var(--pumpkin);}
.stat .l{margin-top:1rem;font-size:var(--t-sm);color:var(--body);line-height:1.5;max-width:22rem;}
.dark .stat .l{color:#A9A3A5;}
.stat .s{margin-top:.7rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);}

/* ---------- Cards ---------- */
.grid{display:grid;gap:1.25rem;}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.g3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));}
.g4{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));}

.card{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.dark .card{background:var(--ink-2);border-color:var(--line-dark);}
.card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--pumpkin);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);
}
a.card:hover{transform:translateY(-6px);box-shadow:0 26px 54px rgba(21,19,19,.13);border-color:transparent;}
a.card:hover::before{transform:scaleX(1);}
.card h3{margin-bottom:.85rem;}
.card p{font-size:var(--t-sm);color:var(--muted);}
.dark .card p{color:#A09A9C;}
.card .n{
  font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.16em;color:var(--faint);
  margin-bottom:1.6rem;display:block;
}
.card .foot{margin-top:auto;padding-top:1.8rem;}
a.card{text-decoration:none;}

.card-hl{border-top:none;}
.card-hl::before{transform:scaleX(1);}

.tag{
  display:inline-block;font-family:var(--mono);font-size:.64rem;letter-spacing:.15em;
  text-transform:uppercase;font-weight:700;padding:.4em 1em;border-radius:100px;
  margin-bottom:1.2rem;align-self:flex-start;background:var(--ink);color:var(--snow);
}
.tag-p{background:var(--pumpkin);color:#fff;}
.tag-b{background:var(--blue);color:#fff;}
.tag-q{background:var(--purple);color:var(--ink);}
.dark .tag{background:rgba(255,249,251,.12);color:var(--snow);}

/* ---------- List with checks ---------- */
.checks{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:.7rem;}
.checks li{display:flex;gap:.75rem;font-size:var(--t-sm);color:var(--body);line-height:1.5;}
.dark .checks li{color:#A9A3A5;}
.checks li::before{
  content:"";flex:none;width:17px;height:17px;margin-top:.22rem;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F37920' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/17px no-repeat;
}

/* ---------- Numbered rows (process) ---------- */
.rows{border-top:1px solid var(--line);}
.dark .rows{border-color:var(--line-dark);}
.row{
  display:grid;grid-template-columns:5rem 1fr 1.35fr;gap:clamp(1rem,3vw,2.5rem);
  padding-block:clamp(1.8rem,3.5vw,2.8rem);border-bottom:1px solid var(--line);
  align-items:start;transition:padding-left .45s var(--ease);
}
.dark .row{border-color:var(--line-dark);}
.row:hover{padding-left:1rem;}
@media (max-width:820px){
  .row{grid-template-columns:1fr;gap:.6rem;}
  .row:hover{padding-left:0;}
}
.row .rn{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.14em;color:var(--pumpkin);padding-top:.4rem;}
.row h3{font-size:var(--t-xl);letter-spacing:-.03em;}
.row p{font-size:var(--t-sm);color:var(--muted);}
.dark .row p{color:#A09A9C;}

/* ---------- Split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;}
.split.top{align-items:start;}
@media (max-width:880px){.split{grid-template-columns:1fr;}}

/* ---------- Pull quote ---------- */
.pull{
  font-size:var(--t-xl);line-height:1.32;color:var(--ink);font-weight:700;
  letter-spacing:-.03em;border-left:3px solid var(--pumpkin);padding-left:clamp(1.2rem,2.5vw,2rem);
}
.dark .pull{color:var(--snow);}
.pull cite{display:block;margin-top:1.2rem;font-family:var(--mono);font-size:var(--t-xs);
  letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-style:normal;font-weight:600;}

/* ---------- Tables ---------- */
.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;}
table{border-collapse:collapse;width:100%;min-width:540px;font-size:var(--t-sm);}
th,td{text-align:left;padding:1.05rem 1.3rem;border-bottom:1px solid var(--line);vertical-align:top;}
thead th{background:var(--shell);font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink);font-weight:700;}
tbody tr:last-child td{border-bottom:0;}
tbody tr{transition:background .25s;}
tbody tr:hover{background:#FDFAFB;}
td.pain{color:var(--muted);}
td.out{color:var(--ink);font-weight:650;}

/* ---------- Price ---------- */
.price{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;color:var(--ink);
  letter-spacing:-.04em;line-height:1;margin:.2rem 0 .3rem;}
.dark .price{color:var(--snow);}
.price small{display:block;font-family:var(--mono);font-size:.68rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-top:.7rem;}

/* ---------- Magnet ---------- */
.magnet{
  background:var(--ink);color:#B9B3B5;border-radius:var(--r-lg);
  padding:clamp(2rem,5vw,4rem);position:relative;overflow:hidden;
}
.magnet::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(34rem 22rem at 88% 12%, rgba(243,121,32,.24), transparent 65%);
}
.magnet > *{position:relative;}
.magnet h2{color:var(--snow);font-size:var(--t-2xl);}

/* ---------- CTA band ---------- */
.cta{
  background:var(--pumpkin);border-radius:var(--r-lg);color:#fff;text-align:center;
  padding:clamp(2.5rem,6vw,5rem) clamp(1.5rem,4vw,3rem);position:relative;overflow:hidden;
}
.cta h2{color:#fff;margin-bottom:1.3rem;}
.cta p{color:rgba(255,255,255,.92);max-width:40rem;margin-inline:auto;font-size:var(--t-base);}
.cta .fine{margin-top:2rem;font-family:var(--mono);font-size:var(--t-xs);
  letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72);}
.cta .btn{--bg:#fff;--fg:var(--ink);border-color:#fff;}
.cta .btn::before{background:var(--ink);}
.cta .btn:hover{color:#fff;border-color:var(--ink);}
.cta .btn-line{--bg:transparent;--fg:#fff;border-color:rgba(255,255,255,.5);}
.cta .btn-line::before{background:#fff;}
.cta .btn-line:hover{color:var(--pumpkin);border-color:#fff;}

/* ---------- Forms ---------- */
.form{display:grid;gap:1.3rem;}
.field{display:grid;gap:.5rem;}
.field label{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.12em;
  text-transform:uppercase;font-weight:700;color:var(--ink);}
.field input,.field select,.field textarea{
  width:100%;padding:.95rem 1.15rem;border:1.5px solid var(--line);border-radius:12px;
  background:#fff;font-size:var(--t-sm);transition:border-color .25s, box-shadow .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--pumpkin);box-shadow:0 0 0 4px rgba(243,121,32,.14);
}
.field textarea{resize:vertical;min-height:140px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;}
@media (max-width:640px){.frow{grid-template-columns:1fr;}}

/* Submit feedback — empty until JS writes to it, so it takes no space. */
.form-status{font-size:var(--t-sm);font-weight:650;line-height:1.5;}
.form-status:empty{display:none;}
.form-status.is-ok{color:var(--blue-ink);}
.form-status.is-error{color:#B03A2E;}

/* ---------- Detail list ---------- */
.dlist{list-style:none;padding:0;display:grid;gap:1.6rem;}
.dlist li{display:flex;gap:1rem;}
.dlist .ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--ink);
  display:flex;align-items:center;justify-content:center;}
.dlist .ic svg{width:19px;height:19px;stroke:var(--pumpkin);}
.dlist .k{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint);}
.dlist .v{font-size:var(--t-base);color:var(--ink);font-weight:650;}
.dlist .v a{text-decoration:none;border-bottom:1.5px solid var(--pumpkin);}

/* ---------- Footer ---------- */
.ftr{background:var(--ink);color:#8F8A8C;padding-block:clamp(3.5rem,7vw,6rem) 2rem;font-size:var(--t-sm);}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem;}
@media (max-width:780px){.fgrid{grid-template-columns:1fr;gap:2.2rem;}}
.ftr .bname{color:var(--snow);}
.ftr h4{color:var(--snow);font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:1.2rem;font-weight:700;}
.ftr ul{list-style:none;padding:0;display:grid;gap:.75rem;}
.ftr a{color:#A09A9C;text-decoration:none;transition:color .25s;}
.ftr a:hover{color:var(--pumpkin);}
.ftr .blurb{margin-top:1.3rem;max-width:26rem;line-height:1.65;color:#8F8A8C;}
.fbot{margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.6rem;border-top:1px solid var(--line-dark);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#6B6668;}

/* ---------- Scroll reveal ----------
   Gated on .js so that if the script fails or is blocked the page still
   renders fully instead of sitting at opacity:0.                        */
.js [data-reveal]{opacity:0;transform:translateY(26px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);}
.js [data-reveal].in{opacity:1;transform:none;}
.js [data-reveal][data-d="1"]{transition-delay:.09s;}
.js [data-reveal][data-d="2"]{transition-delay:.18s;}
.js [data-reveal][data-d="3"]{transition-delay:.27s;}
.js [data-reveal][data-d="4"]{transition-delay:.36s;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;}
  .js [data-reveal]{opacity:1;transform:none;}
  .marquee-track{animation:none;}
  .brand:hover .mark{transform:none;}
}

/* ---------- Utilities ---------- */
.mt1{margin-top:.7rem;} .mt2{margin-top:1.4rem;} .mt3{margin-top:2.4rem;} .mt4{margin-top:3.5rem;}
.mid{text-align:center;} .mid .head{margin-inline:auto;}
.flag{background:#FFF4E5;border:1px dashed var(--pumpkin);border-radius:12px;
  padding:1rem 1.25rem;font-size:var(--t-sm);color:#8A4E12;}
