/* Stencil & Signal: shared styles for steveschonberg.com */
:root{
  --ink:#131313; --concrete:#EDEBE7; --plaster:#FCFBF9; --crimson:#C8103F;
  --graphite:#5E626A; --navy:#223A6E; --mint:#6FD3B4; --brass:#9A6F16;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--concrete); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.6;}
h1,h2,h3{font-family:'Archivo Black',sans-serif; text-transform:uppercase; letter-spacing:-0.03em; line-height:0.95;}
.wrap{max-width:1040px; margin:0 auto; padding:0 32px;}
a{color:inherit;}
img{max-width:100%;}

/* Nav */
nav{position:sticky; top:0; z-index:10; background:var(--plaster); border-bottom:1px solid var(--ink);}
nav .wrap{display:flex; justify-content:space-between; align-items:center; gap:24px; padding:14px 32px;}
nav .name{font-family:'Archivo Black',sans-serif; font-size:16px; text-transform:uppercase; text-decoration:none; white-space:nowrap;}
nav ul{list-style:none; display:flex; gap:28px; margin-left:auto;}
nav ul a{font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:0.04em; text-decoration:none; border-bottom:2px solid transparent;}
nav ul a:hover, nav ul a[aria-current="page"]{border-bottom-color:var(--crimson);}
.nav-cta{font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:0.04em; text-decoration:none; background:var(--crimson); color:var(--plaster); padding:9px 16px; white-space:nowrap; border:2px solid var(--crimson);}
.nav-cta:hover{background:var(--ink); border-color:var(--ink);}

/* Hero */
.hero{position:relative; background:var(--concrete); padding:96px 0 80px; overflow:hidden;}
.hero-inner{position:relative; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:end;}
.hero h1{font-size:clamp(42px,6.5vw,80px); max-width:11ch;}
.page-hero{padding:80px 0 56px;}
.page-hero h1{font-size:clamp(38px,5.5vw,64px); max-width:16ch;}
.accent{color:var(--crimson);}
.tagline{margin-top:20px; font-size:19px; max-width:42ch; font-weight:600;}
.kicker-flag{display:inline-block; margin-bottom:14px; font-weight:600; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--crimson);}
.proof{margin-top:22px; font-size:16px; max-width:48ch;}
.proof strong{display:block; font-size:17px; margin-bottom:4px;}
.cut-panel{position:relative; aspect-ratio:4/5; background:var(--ink); clip-path:polygon(18% 0, 100% 0, 100% 100%, 0 100%, 0 22%);}
.cut-panel::before{content:""; position:absolute; inset:0; background-image:radial-gradient(var(--crimson) 2.4px, transparent 2.5px); background-size:14px 14px; opacity:.55;}
.cut-panel .photo-frame{position:absolute; left:8%; right:8%; bottom:8%; top:26%; border:6px solid var(--ink); background:var(--graphite); overflow:hidden;}
.cut-panel .photo-frame img{width:100%; height:100%; object-fit:cover; object-position:center 25%; display:block;}

/* Sections */
section{padding:76px 0;}
section.plaster{background:var(--plaster);}
section.navy{background:var(--navy); color:var(--concrete);}
section.ink{background:var(--ink); color:var(--plaster);}
.kicker{font-weight:600; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--crimson); margin-bottom:14px;}
.navy .kicker{color:var(--concrete); opacity:.85;}
.ink .kicker{color:var(--crimson);}
h2{font-size:clamp(28px,4vw,42px); max-width:20ch; margin-bottom:26px;}
h3{font-size:18px; margin-bottom:8px;}
.lede{font-size:19px; font-weight:600; max-width:58ch; margin-bottom:18px;}
p{max-width:66ch; margin-bottom:16px; font-size:16px;}
.graphite{color:var(--graphite); font-size:14px;}
.navy p, .navy .graphite{color:var(--concrete); opacity:.9;}
.more{font-weight:600; text-transform:uppercase; font-size:14px; letter-spacing:0.03em; text-decoration:none; border-bottom:2px solid var(--crimson); padding-bottom:2px;}
.navy .more{border-bottom-color:var(--crimson);}

/* Stat boxes */
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:8px;}
.stat-grid.three{grid-template-columns:1.4fr 1fr 1fr;}
.stat{background:var(--plaster); border:6px solid var(--ink); margin:-3px; padding:26px 22px; position:relative;}
.navy .stat{background:var(--plaster); color:var(--ink);}
.stat .num{font-family:'Archivo Black',sans-serif; font-size:clamp(36px,4.6vw,54px); line-height:1; color:var(--crimson); letter-spacing:-0.03em; display:block; margin-bottom:10px;}
.stat.lead .num{font-size:clamp(44px,6vw,72px);}
.stat p{font-size:14px; margin-bottom:6px; max-width:none; color:var(--ink); opacity:1;}
.stat .src{font-size:11px; color:var(--graphite); text-transform:uppercase; letter-spacing:0.04em; margin:0;}
.navy .stat .src{color:var(--graphite); opacity:1;}

/* Grids */
.about-grid, .two-col{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.split-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:start;}
.bio-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:48px; align-items:start;}
.bio-grid video{width:100%; display:block; border:1px solid var(--ink);}
.trailer-caption{margin-top:8px; font-size:12px; color:var(--graphite); letter-spacing:0.03em; text-transform:uppercase;}
blockquote{border-left:5px solid var(--crimson); padding-left:20px; font-weight:600; font-size:18px; max-width:44ch; margin:26px 0;}
.credit-list{list-style:none; margin-top:6px;}
.credit-list li{padding:12px 0; border-bottom:1px solid rgba(19,19,19,0.12); font-size:15px;}
.credit-list strong{display:block; font-size:16px;}

/* Service lists */
.svc-group h3{font-size:22px; padding-bottom:12px; border-bottom:6px solid var(--ink); margin-bottom:4px;}
.navy .svc-group h3{border-bottom-color:var(--plaster);}
.svc-list{list-style:none;}
.svc-list li{padding:14px 0; border-bottom:1px solid rgba(19,19,19,0.14);}
.navy .svc-list li{border-bottom-color:rgba(237,235,231,0.2);}
.svc-list strong{display:block; font-size:16px;}
.svc-list span{font-size:14px; color:var(--graphite);}
.svc-list a{text-decoration:none;}
.svc-list a:hover strong{color:var(--crimson);}
.svc-list .tag, .tag{display:inline-block; color:var(--plaster); font-size:11px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; background:var(--crimson); color:var(--plaster); padding:2px 8px; margin-left:8px; vertical-align:middle;}
.price{display:block; margin-top:6px; font-size:13px; font-weight:600; color:var(--ink);}

/* Tier cards */
.tier-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:10px;}
.tier{background:var(--plaster); color:var(--ink); border:6px solid var(--ink); margin:-3px; padding:26px 22px; display:flex; flex-direction:column;}
.tier.featured{background:var(--ink); color:var(--plaster);}
.tier h3{font-size:20px; margin-bottom:6px;}
.tier .amt{font-family:'Archivo Black',sans-serif; font-size:30px; color:var(--crimson); line-height:1.05; margin-bottom:4px;}
.tier.featured .amt{color:var(--plaster);}
.tier .per{font-size:12px; text-transform:uppercase; letter-spacing:0.04em; color:var(--graphite); margin-bottom:14px;}
.tier.featured .per{color:var(--concrete); opacity:.75;}
.tier p{font-size:14px; max-width:none;}
.tier ul{list-style:none; font-size:14px; margin-top:8px;}
.tier li{padding:6px 0; border-top:1px solid rgba(19,19,19,0.12);}
.tier.featured li{border-top-color:rgba(252,251,249,0.18);}

.diff-list{list-style:none; counter-reset:d;}
.diff-list li{counter-increment:d; display:flex; gap:18px; padding:18px 0; border-bottom:1px solid rgba(19,19,19,0.14);}
.diff-list li::before{content:"0" counter(d); font-family:'Archivo Black',sans-serif; color:var(--crimson); font-size:18px; flex:none; width:2em;}
.diff-list strong{display:block; font-size:17px; margin-bottom:2px;}
.diff-list p{margin:0; font-size:15px;}

/* FAQ */
.faq{max-width:760px;}
.faq details{border-bottom:1px solid rgba(19,19,19,0.18); padding:18px 0;}
.faq summary{cursor:pointer; list-style:none; font-weight:600; font-size:17px; display:flex; justify-content:space-between; gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; font-family:'Archivo Black',sans-serif; color:var(--crimson); font-size:20px; line-height:1;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{margin:12px 0 0; font-size:15px;}

/* Buttons */
.buy-row, .cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}
.btn{display:inline-block; font-weight:600; font-size:14px; text-transform:uppercase; letter-spacing:0.03em; padding:13px 22px; text-decoration:none; background:var(--ink); color:var(--plaster); border:2px solid var(--ink); cursor:pointer; font-family:inherit;}
.btn:hover{background:var(--crimson); border-color:var(--crimson); color:var(--plaster);}
.btn-crimson{background:var(--crimson); border-color:var(--crimson);}
.btn-crimson:hover{background:var(--ink); border-color:var(--ink);}
.btn-outline{background:transparent; color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--plaster); border-color:var(--ink);}
.btn-mint{background:var(--crimson); color:var(--plaster); border:2px solid var(--crimson);}
.btn-mint:hover{background:var(--plaster); color:var(--ink); border-color:var(--plaster);}
.btn-outline-light{background:transparent; color:var(--concrete); border:2px solid var(--concrete);}
.btn-outline-light:hover{background:var(--concrete); color:var(--navy);}

/* Press */
.press-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:8px;}
.press-item{background:var(--plaster); padding:24px 26px; border:1px solid var(--ink);}
.press-item h3{font-size:15px; margin-bottom:6px;}
.press-item p{font-size:14px; margin-bottom:0; max-width:none;}

/* Sample report viewer (pop-up, no download link) */
.viewer{position:fixed; inset:0; background:rgba(19,19,19,0.92); z-index:50; display:none; align-items:center; justify-content:center; padding:24px;}
.viewer.open{display:flex;}
.viewer-inner{background:var(--plaster); border:6px solid var(--ink); max-width:900px; width:100%; max-height:90vh; overflow:auto; position:relative;}
.viewer-inner img{display:block; width:100%; -webkit-user-drag:none; user-select:none;}
.viewer-close{position:fixed; top:16px; right:16px; background:var(--ink); color:var(--plaster); border:0; font-weight:600; padding:10px 16px; cursor:pointer; font-family:inherit; text-transform:uppercase; font-size:13px; z-index:2;}

/* Footer */
footer{background:var(--ink); color:var(--plaster); padding:64px 0 36px;}
footer h2{color:var(--plaster); max-width:20ch;}
footer .line{color:var(--concrete); font-weight:600; font-size:17px; margin-top:10px;}
.contact-links{margin-top:28px; display:flex; gap:22px; flex-wrap:wrap;}
.contact-links a{color:var(--plaster); text-decoration:none; font-weight:600; font-size:14px; text-transform:uppercase; letter-spacing:0.03em; border-bottom:2px solid var(--crimson); padding-bottom:2px;}
.foot-nav{margin-top:40px; display:flex; gap:18px; flex-wrap:wrap; font-size:13px;}
.foot-nav a{color:var(--concrete); text-decoration:none; opacity:.8;}
.foot-nav a:hover{opacity:1;}
.fine-print{margin-top:22px; color:var(--graphite); font-size:12px;}

@media (max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .tier-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .wrap{padding:0 20px;}
  .hero{padding:64px 0 56px;}
  .page-hero{padding:56px 0 40px;}
  .hero-inner{grid-template-columns:1fr;}
  .cut-panel{max-width:340px; margin-top:20px;}
  .about-grid, .two-col, .split-grid, .bio-grid{grid-template-columns:1fr; gap:36px;}
  .press-grid{grid-template-columns:1fr;}
  .stat-grid, .stat-grid.three, .tier-grid{grid-template-columns:1fr;}
  section{padding:56px 0;}
  nav .wrap{flex-wrap:wrap; row-gap:10px; column-gap:12px; padding:12px 20px;}
  nav .name{order:1;}
  .nav-cta{order:2; padding:7px 12px; font-size:12px;}
  nav ul{order:3; width:100%; margin-left:0; justify-content:space-between; gap:8px; flex-wrap:nowrap;}
  nav ul a{font-size:clamp(11px,3.5vw,13px); letter-spacing:0.02em; white-space:nowrap;}
}
@media (max-width:400px){
  nav .name{font-size:14px;}
  .nav-cta{padding:6px 10px; font-size:11px;}
}
.navy .svc-list span{color:var(--concrete); opacity:.82;}
.navy .svc-list .tag{opacity:1; color:var(--plaster);}
.navy .price{color:var(--plaster);}
.viewer-note{background:var(--ink); color:var(--concrete); font-size:13px; padding:14px 110px 14px 18px; margin:0; max-width:none;}
section[id]{scroll-margin-top:80px;}
/* Blog */
.post{max-width:680px;}
.post p{font-size:18px; line-height:1.7; margin-bottom:22px; max-width:none;}
.post h2{font-size:24px; margin:40px 0 16px; max-width:none;}
.post .series-note{font-size:15px; border-top:6px solid var(--ink); padding-top:20px; margin-top:40px; color:var(--graphite);}
.post a{color:var(--crimson);}
.post-hero h1{max-width:22ch; font-size:clamp(32px,4.6vw,52px);}
.post-list{list-style:none; max-width:820px;}
.post-list li{border-bottom:1px solid rgba(19,19,19,0.14);}
.post-list a{display:block; padding:26px 0; text-decoration:none;}
.post-list .post-date{display:block; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:var(--crimson); margin-bottom:6px;}
.post-list strong{display:block; font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:22px; line-height:1.1; letter-spacing:-0.02em; margin-bottom:8px;}
.post-list a:hover strong{color:var(--crimson);}
.post-list .post-ex{display:block; color:var(--graphite); font-size:15px;}
@media (max-width:760px){ .post p{font-size:17px;} .post-list strong{font-size:19px;} }

.rtb-chips{list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; max-width:720px;}
.rtb-chips li{font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; border:2px solid var(--ink); padding:6px 10px; background:var(--plaster);}
.line .accent{color:var(--crimson);}
.wl-band{margin-top:40px; border:6px solid var(--ink); background:var(--plaster); padding:28px 30px; max-width:820px;}
.wl-band h3{font-size:24px; margin-bottom:12px;}
.wl-band p{font-size:15px;}
@media (max-width:760px){ .wl-band{padding:22px 20px;} }
