/* Shared styling for the GenesisBox field guides. Dark masthead, paper body, print-clean. */
:root{
  --fog:#ECEFEA;--paper:#F9FBF8;--ink:#10241D;--ink-2:#44564E;--ink-3:#5F6F66;--rule:#CBD4CE;
  --accent:#FF4B1F;--accent-hover:#FF6A3F;--on-accent:#1A0B04;--accent-text:#B63E0E;--accent-soft:#FFE5D9;
  --band:#0F3A2C;--band-ink:#EEF4F0;--band-ink-2:#B4C8BE;--band-rule:rgba(238,244,240,.18);--band-accent:#FF8B5C;--hero:#0A2219;
  --display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-text-size-adjust:100%}
.wrap{max-width:760px;margin:0 auto;padding-inline:20px}
h1,h2,h3{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:.98;margin:0}
.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;font-size:12px}
.acc{color:var(--accent)}
a{color:var(--accent-text)}

/* masthead */
.top{background:var(--hero);color:var(--band-ink)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding-block:12px}
.logo{font-family:var(--display);font-weight:700;font-size:23px;letter-spacing:.06em;color:var(--band-ink);text-decoration:none}
.logo b{color:var(--accent)}
.stamp{border:1.5px solid var(--accent);color:var(--accent);padding:5px 9px;font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em}
.cover{background:var(--hero);color:var(--band-ink);padding-block:40px 52px;border-bottom:3px solid var(--accent)}
.cover .eyebrow{color:var(--band-accent);margin-bottom:14px}
.cover h1{font-size:clamp(2.6rem,9vw,4.6rem);color:var(--band-ink)}
.cover h1 span{color:var(--accent)}
.cover p{color:var(--band-ink-2);max-width:56ch;margin:16px 0 0}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.badges span{border:1px solid var(--band-rule);color:var(--band-ink-2);padding:7px 12px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em}

/* body */
main{padding-block:34px 60px}
section{margin-bottom:40px}
h2{font-size:clamp(1.9rem,5.4vw,2.7rem);margin-bottom:6px}
h3{font-size:1.16rem;letter-spacing:.01em;margin:26px 0 8px}
p{margin:0 0 14px;max-width:68ch}
.lead{font-size:1.06rem;color:var(--ink-2)}
.daymark{display:flex;align-items:baseline;gap:12px;border-top:3px solid var(--ink);padding-top:12px;margin-top:8px}
.daymark .n{font-family:var(--display);font-size:3.1rem;line-height:.8;color:var(--accent)}
.sub{color:var(--ink-3);font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em}

ul.check{list-style:none;margin:0 0 18px;padding:0}
ul.check li{position:relative;padding:9px 0 9px 34px;border-bottom:1px solid var(--rule)}
ul.check li:before{content:"";position:absolute;left:0;top:11px;width:18px;height:18px;border:2px solid var(--ink-3);border-radius:3px}
ul.check li b{font-weight:700}
ul.check li .note{display:block;color:var(--ink-3);font-size:.9rem}

.callout{border-left:4px solid var(--accent);background:var(--accent-soft);padding:14px 16px;margin:18px 0}
.callout p{margin:0;max-width:none}
.callout .mono{color:var(--accent-text);display:block;margin-bottom:5px}
.danger{border-left-color:#B00020;background:#FDE7EA}
.danger .mono{color:#B00020}

.box{border:1px solid var(--rule);background:#fff;padding:18px 20px;margin:20px 0}
.box h3{margin-top:0}
.grid2{display:grid;gap:18px}
@media (min-width:720px){.grid2{grid-template-columns:1fr 1fr}}

/* email gate */
.gate{background:var(--band);color:var(--band-ink);padding:26px 22px;margin:34px 0;border-radius:4px}
.gate h3{color:var(--band-ink);font-size:1.6rem;margin-top:0}
.gate p{color:var(--band-ink-2)}
.gate form{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.gate input[type=email]{flex:1 1 240px;min-width:0;padding:14px 14px;border:1.5px solid var(--band-rule);background:rgba(255,255,255,.06);color:var(--band-ink);border-radius:6px;font:inherit;font-size:16px}
.gate input[type=email]::placeholder{color:var(--band-ink-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--on-accent);font-family:var(--sans);font-weight:700;font-size:17px;border:0;border-radius:6px;padding:14px 22px;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent-hover)}
.btn:disabled{opacity:.6;cursor:default}
.btn.ghost{background:transparent;color:var(--band-ink);border:1.5px solid var(--band-rule)}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:.86rem;color:var(--band-ink-2);max-width:60ch}
.consent a{color:var(--band-accent)}
.err{color:#FFB4A2;font-size:.9rem;margin-top:10px;min-height:1em}
.locked{filter:blur(5px);pointer-events:none;user-select:none;opacity:.55}

.tie{background:var(--hero);color:var(--band-ink);padding:30px 22px;border-radius:4px;margin-top:38px}
.tie h3{color:var(--band-ink);font-size:1.5rem;margin-top:0}
.tie p{color:var(--band-ink-2)}
.foot{border-top:1px solid var(--rule);padding-block:24px 40px;color:var(--ink-3);font-size:.86rem}
.foot a{color:var(--ink-2)}
.disclaimer{font-size:.82rem;color:var(--ink-3);margin-top:26px}

@media print{
  body{background:#fff;font-size:11pt}
  .top,.gate,.no-print{display:none!important}
  .cover{background:#fff;color:#000;border-bottom:2px solid #000;padding-block:0 18px}
  .cover h1,.cover p,.cover .eyebrow{color:#000}
  .badges span{border-color:#999;color:#333}
  .tie{background:#fff;color:#000;border:1px solid #000}
  .tie h3,.tie p{color:#000}
  .locked{filter:none;opacity:1}
  section{break-inside:avoid}
  ul.check li{break-inside:avoid}
  a{text-decoration:none}
}

/* Gate: one clear action, full width where the screen is narrow */
.gate .btn{flex:0 0 auto}
@media (max-width:620px){
  .gate form{flex-direction:column;align-items:stretch}
  .gate .btn{width:100%}
  /* In a column flex container flex-basis sets height, so pin the field back to its own size. */
  .gate input[type=email]{flex:0 0 auto;width:100%}
}
.gate-note{margin:12px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--band-ink-2)}
.endcta{border:1px solid var(--rule);background:#fff;padding:22px;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.endcta div{min-width:220px;flex:1 1 260px}
.endcta h3{margin:0 0 4px;font-size:1.25rem}
.endcta p{margin:0;color:var(--ink-2);font-size:.92rem}
.endcta .btn{flex:0 0 auto}
@media (max-width:620px){.endcta .btn{width:100%}}
a.btn:focus-visible,button.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
