/* Save Our Family Farms — site styles. Built on Town Line tokens
   (assets/colors_and_type.css). Campaign runs warmer/louder than the umbrella. */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
.wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
.wrap-narrow{max-width:920px;margin:0 auto;padding:0 32px;}

/* shared type helpers */
.eyebrow{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin:0 0 16px;}
.eyebrow.on-dark{color:#c98e80;}
.h2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:2.1rem;line-height:1.08;letter-spacing:.01em;color:var(--color-brand);margin:0;}
.lead{font-size:1.18rem;line-height:1.65;color:#3c372f;}

/* ---------- HEADER ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--color-surface-inverse);border-bottom:1px solid rgba(244,239,230,.12);}
.site-header .bar{display:flex;align-items:center;gap:24px;height:74px;}
.site-header nav{display:flex;gap:30px;margin-left:auto;}
.navlink{font-family:var(--font-display);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-on-inverse);background:none;border:0;cursor:pointer;padding:6px 0;position:relative;text-decoration:none;}
.navlink::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:#c98e80;transition:right var(--duration-base) var(--easing-standard);}
.navlink:hover::after,.navlink:focus-visible::after{right:0;}
.navlink:focus-visible{outline:2px solid var(--color-focus-ring-inverse);outline-offset:3px;}
.header-cta{margin-left:8px;}

/* ---------- BUTTONS ---------- */
.btn{font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;border-radius:8px;padding:14px 24px;cursor:pointer;white-space:nowrap;border:0;transition:background var(--duration-base) var(--easing-standard),color var(--duration-base) var(--easing-standard);text-decoration:none;display:inline-flex;align-items:center;gap:10px;}
.btn-lg{padding:17px 30px;font-size:.95rem;}
.btn-sm{padding:10px 16px;font-size:.76rem;}
.btn-primary{background:var(--color-accent);color:#fff;}
.btn-primary:hover{background:var(--color-accent-hover);}
.btn-primary:active{background:var(--color-accent-active);}
.btn-ghost-dark{background:transparent;color:var(--color-text-on-inverse);border:1.5px solid rgba(244,239,230,.55);}
.btn-ghost-dark:hover{background:rgba(244,239,230,.1);}
.btn-ghost{background:transparent;color:var(--color-brand);border:1.5px solid var(--color-brand);}
.btn-ghost:hover{background:var(--navy-50);}
.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
.btn-ghost-dark:focus-visible{outline-color:var(--color-focus-ring-inverse);}

/* ---------- HERO ---------- */
.hero{position:relative;background:var(--color-surface-inverse);color:var(--color-text-on-inverse);overflow:hidden;}
.hero .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(10,33,56,.93) 0%,rgba(10,33,56,.82) 40%,rgba(10,33,56,.34) 100%);}
.hero .inner{position:relative;padding:92px 0 84px;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;max-width:760px;}
.hero h1{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.4rem,4.6vw,3.5rem);line-height:1.02;letter-spacing:.005em;margin:0 0 22px;color:#fff;text-wrap:balance;}
.hero .lede{font-size:1.22rem;line-height:1.62;color:var(--color-text-on-inverse);max-width:60ch;margin:0 0 14px;}
.hero .subtle{color:var(--navy-100);font-size:1.02rem;line-height:1.6;max-width:58ch;margin:0 0 32px;}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.hero-stats{display:flex;gap:0;margin-top:44px;border-top:1px solid rgba(244,239,230,.16);padding-top:26px;flex-wrap:wrap;}
.hero-stat{padding-right:40px;margin-right:40px;border-right:1px solid rgba(244,239,230,.16);}
.hero-stat:last-child{border-right:0;margin-right:0;padding-right:0;}
.hero-stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:2.1rem;line-height:1;color:#fff;}
.hero-stat span{display:block;margin-top:7px;font-family:var(--font-display);font-weight:600;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy-100);max-width:18ch;}

/* ---------- SQUEEZE ---------- */
.squeeze{background:var(--color-surface);padding:84px 0;}
.squeeze .head{max-width:64ch;margin-bottom:44px;}
.squeeze .head .lead{margin:18px 0 0;}
.two-front{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;}
.front{background:none;border:0;border-radius:0;padding:0;}
.front .roof{margin:0;line-height:0;overflow:hidden;}
.front-body{background:var(--card-bg);border:1px solid var(--card-border);border-top:0;border-radius:0 0 var(--card-radius) var(--card-radius);padding:28px 30px 32px;}
.front h3{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.35rem;color:var(--color-brand);margin:0 0 6px;letter-spacing:.02em;}
.front .kick{font-family:var(--font-display);font-weight:700;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 14px;}
.front p{font-size:1rem;line-height:1.62;color:#3c372f;margin:0 0 14px;}
.front ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.front li{display:flex;gap:12px;font-size:.98rem;line-height:1.45;color:#3c372f;align-items:baseline;}
.front li b{font-family:var(--font-display);font-weight:800;color:var(--color-accent);font-size:1.05rem;min-width:62px;white-space:nowrap;}

/* math band */
.math{background:var(--color-surface-inverse);border-radius:var(--card-radius);padding:34px 36px;display:grid;grid-template-columns:1fr auto auto;gap:30px;align-items:center;color:var(--color-text-on-inverse);}
.math .mtitle{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.2rem;line-height:1.18;color:#fff;max-width:22ch;letter-spacing:.01em;}
.math .crop{display:flex;flex-direction:column;gap:4px;text-align:right;border-left:1px solid rgba(244,239,230,.16);padding-left:28px;}
.math .crop .lbl{font-family:var(--font-display);font-weight:700;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy-100);}
.math .crop .row{display:flex;gap:16px;align-items:baseline;justify-content:flex-end;}
.math .crop .grow{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:#fff;}
.math .crop .sell{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:#e8a092;}
.math .crop .cap{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-100);font-family:var(--font-display);font-weight:600;}

/* section divider roofline */
.roof-divide{padding:0;}

/* footnotes / citations */
.squeeze sup.fn{font-family:var(--font-display);font-weight:800;font-size:.46em;color:var(--color-accent);margin-left:2px;vertical-align:super;line-height:0;}
.footnotes{list-style:none;margin:42px 0 0;padding:26px 0 0;border-top:1px solid var(--color-border);display:grid;grid-template-columns:1fr 1fr;gap:9px 40px;}
.sources-x:not([open]) .footnotes{display:none;}
.footnotes li{display:flex;gap:9px;align-items:baseline;font-size:.82rem;line-height:1.5;color:var(--color-text-muted);}
.footnotes .fn-num{font-family:var(--font-display);font-weight:800;font-size:.7rem;color:var(--color-accent);flex-shrink:0;min-width:13px;}
.footnotes em{font-style:italic;}
.fn-note{font-size:.78rem;font-style:italic;color:var(--color-text-muted);margin:18px 0 0;}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--footer-bg);color:var(--color-text-on-inverse);padding:56px 0 40px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start;}
.site-footer p{font-size:.92rem;line-height:1.6;color:var(--navy-100);max-width:42ch;margin:16px 0 0;}
.footer-col h4{font-family:var(--font-display);font-weight:700;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#8ea3b8;margin:0 0 14px;}
.footer-col a{display:block;color:var(--color-text-on-inverse);text-decoration:none;font-size:.95rem;margin-bottom:10px;}
.footer-col a:hover{text-decoration:underline;}
.disclosure{margin-top:40px;padding-top:24px;border-top:1px solid rgba(244,239,230,.14);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center;}
.disclosure .paidfor{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.84rem;color:#fff;}
.disclosure .meta{font-size:.78rem;color:#7d93a8;max-width:60ch;line-height:1.5;}
.disclosure .legal-links{width:100%;font-size:.82rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.disclosure .legal-links a{color:#8ea3b8;text-decoration:none;}
.disclosure .legal-links a:hover{text-decoration:underline;color:#fff;}
.disclosure .legal-links .dot{color:#5a7085;}
/* sources expando (bottom of Squeeze) */
.sources-x{margin:40px 0 0;border-top:1px solid var(--color-border);}
.sources-x>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:18px 0 0;font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);width:fit-content;}
.sources-x>summary::-webkit-details-marker{display:none;}
.sources-x>summary:hover{color:var(--color-accent);}
.sources-x>summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:4px;}
.sources-x .sx-chev{transition:transform var(--duration-base) var(--easing-standard);}
.sources-x[open] .sx-chev{transform:rotate(180deg);}
.sources-x .footnotes{margin-top:22px;padding-top:0;border-top:0;}
@media (prefers-reduced-motion: reduce){ .sources-x .sx-chev{transition:none;} }

@media (max-width:880px){
  .two-front{grid-template-columns:1fr;}
  .footnotes{grid-template-columns:1fr;}
  .math{grid-template-columns:1fr;gap:20px;}
  .math .crop{text-align:left;border-left:0;padding-left:0;border-top:1px solid rgba(244,239,230,.16);padding-top:18px;}
  .math .crop .row{justify-content:flex-start;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .site-header nav{display:none;}
}
@media (max-width:480px){
  .wrap,.wrap-narrow{padding:0 18px;}
  .hero .inner{padding:52px 24px 48px;}
  .hero h1{font-size:1.9rem;}
  .hero .lede{font-size:1.05rem;}
  .hero .subtle{font-size:.92rem;margin-bottom:24px;}
  .hero-stats{gap:0;flex-wrap:wrap;}
  .hero-stat{padding-right:20px;margin-right:20px;margin-bottom:14px;}
  .hero-stat b{font-size:1.6rem;}
  .hero-stat span{font-size:.6rem;}
  .squeeze{padding:52px 0;}
  .mapsec{padding:52px 0;}
  .h2{font-size:1.6rem;}
  .lead{font-size:1.02rem;}
  .front-body{padding:20px 18px 24px;}
  .math{padding:24px 20px;}
}
