/* ============================================================
   GRO-HEMP.COM — "Field & Statute" design system
   Palette: parchment ledger + forest ink + stamped verdict colors
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700;9..144,900&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --parchment:#EDE8DC;
  --paper:#F8F5EC;
  --ink:#1F2E1A;
  --ink-soft:#3B4A34;
  --moss:#4C6B3F;
  --moss-deep:#33472B;
  --brick:#A63D2F;
  --gold:#B9852A;
  --line:#CBC3AC;
  --line-soft:#DDD6C2;
  --gray-area:#8A6F3C;
  --restricted:#B9852A;
  --shadow: 0 1px 0 rgba(31,46,26,0.08);
  --radius: 3px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--parchment);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
}
h1,h2,h3,h4{
  font-family:'Fraunces',serif;
  color:var(--ink);
  font-weight:700;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2.2rem,5vw,3.6rem); font-weight:900; line-height:1.05;}
h2{font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.15;}
h3{font-size:1.3rem;}
a{color:var(--moss-deep);}
a:hover{color:var(--brick);}
p{margin:0 0 1em;}
.mono{font-family:'IBM Plex Mono',monospace;}
.container{max-width:1080px; margin:0 auto; padding:0 24px;}
.container-narrow{max-width:760px; margin:0 auto; padding:0 24px;}

/* ---------- For-sale banner ---------- */
.forsale-banner{
  background:var(--ink);
  color:var(--paper);
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:.82rem;
  letter-spacing:.04em;
  padding:8px 16px;
}
.forsale-banner a{color:var(--gold); text-decoration:underline;}

/* ---------- Nav ---------- */
header.site-header{
  background:var(--paper);
  border-bottom:2px solid var(--ink);
}
.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; max-width:1080px; margin:0 auto;
}
.logo{
  font-family:'Fraunces',serif; font-weight:900; font-size:1.5rem; color:var(--ink);
  text-decoration:none; letter-spacing:-0.02em;
}
.logo span{color:var(--moss);}
nav.main-nav ul{list-style:none; display:flex; gap:28px; margin:0; padding:0;}
nav.main-nav a{
  text-decoration:none; color:var(--ink-soft); font-weight:600; font-size:.95rem;
  text-transform:uppercase; letter-spacing:.04em;
}
nav.main-nav a:hover{color:var(--brick);}
.nav-toggle{display:none;}

@media (max-width:760px){
  nav.main-nav ul{
    position:absolute; left:0; right:0; top:100%;
    background:var(--paper); flex-direction:column; gap:0;
    border-bottom:2px solid var(--ink); display:none; padding:8px 24px 16px;
  }
  nav.main-nav ul.open{display:flex;}
  nav.main-nav a{display:block; padding:10px 0; border-bottom:1px solid var(--line-soft);}
  .nav-toggle{
    display:block; background:none; border:2px solid var(--ink); border-radius:var(--radius);
    font-family:'IBM Plex Mono',monospace; font-size:.85rem; padding:6px 10px; cursor:pointer;
  }
  .nav-wrap{position:relative;}
}

/* ---------- Social row ---------- */
.social-row{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:10px 24px; background:var(--moss-deep); color:var(--paper);
}
.social-row .container{display:flex; align-items:center; gap:16px; flex-wrap:wrap; max-width:1080px; margin:0 auto; padding:0 24px; width:100%;}
.social-row span.label{font-family:'IBM Plex Mono',monospace; font-size:.78rem; opacity:.85;}
.social-icons{display:flex; gap:10px;}
.social-icons a{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%; background:var(--paper); color:var(--moss-deep)!important;
  text-decoration:none; font-size:.85rem; font-weight:700;
}
.bookmark-link{
  margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:.82rem;
  color:var(--paper)!important; text-decoration:underline; cursor:pointer; background:none; border:none;
}

/* ---------- Hero / stamp ---------- */
.hero{padding:56px 0 40px; border-bottom:1px solid var(--line);}
.eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:.8rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--moss-deep); font-weight:600; margin-bottom:10px; display:block;
}
.stat-line{
  font-family:'IBM Plex Mono',monospace; background:var(--paper); border:1px solid var(--line);
  border-left:4px solid var(--moss); padding:14px 18px; margin:20px 0; font-size:.95rem;
}

.stamp{
  display:inline-flex; align-items:center; justify-content:center;
  border:4px double currentColor; border-radius:8px;
  padding:10px 22px; font-family:'IBM Plex Mono',monospace; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em; font-size:1.05rem;
  transform:rotate(-3deg); opacity:.92;
}
.stamp.legal{color:var(--moss-deep);}
.stamp.restricted{color:var(--gray-area);}
.stamp.banned{color:var(--brick);}
.stamp.gray{color:var(--gold);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block; background:var(--ink); color:var(--paper)!important;
  padding:12px 22px; border-radius:var(--radius); text-decoration:none; font-weight:600;
  font-size:.95rem; border:2px solid var(--ink); cursor:pointer;
}
.btn:hover{background:var(--moss-deep); border-color:var(--moss-deep);}
.btn.outline{background:transparent; color:var(--ink)!important; border:2px solid var(--ink);}
.btn.outline:hover{background:var(--ink); color:var(--paper)!important;}

/* ---------- Tool card ---------- */
.tool-card{
  background:var(--paper); border:1px solid var(--line); border-radius:6px;
  padding:28px; box-shadow:var(--shadow);
}
select, input[type=text]{
  font-family:'IBM Plex Mono',monospace; padding:10px 12px; border:2px solid var(--ink);
  border-radius:var(--radius); background:#fff; font-size:1rem; width:100%;
}
label{font-weight:600; font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; display:block; margin-bottom:6px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px;}
@media(max-width:600px){.field-row{grid-template-columns:1fr;}}

.result-box{
  margin-top:24px; padding:24px; border:1px solid var(--line); border-radius:6px; background:#fff;
  display:none;
}
.result-box.show{display:block;}
.result-grid{display:grid; grid-template-columns:auto 1fr; gap:10px 20px; margin-top:16px; font-size:.95rem;}
.result-grid dt{font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--ink-soft);}
.result-grid dd{margin:0;}

.countdown{
  display:flex; gap:16px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace;
  background:var(--ink); color:var(--paper); padding:18px 22px; border-radius:6px; margin:24px 0;
}
.countdown .unit{text-align:center;}
.countdown .num{font-size:1.8rem; font-weight:700; display:block; color:var(--gold);}
.countdown .lbl{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; opacity:.8;}

/* ---------- Ledger table ---------- */
table.ledger{width:100%; border-collapse:collapse; font-size:.92rem; margin:20px 0;}
table.ledger th{
  text-align:left; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;
  font-size:.72rem; letter-spacing:.05em; border-bottom:2px solid var(--ink); padding:8px 10px; color:var(--ink-soft);
}
table.ledger td{padding:9px 10px; border-bottom:1px solid var(--line-soft); vertical-align:top;}
table.ledger tr:hover td{background:var(--paper);}
.status-pill{
  font-family:'IBM Plex Mono',monospace; font-size:.75rem; font-weight:700; padding:3px 9px;
  border-radius:20px; text-transform:uppercase; display:inline-block; white-space:nowrap;
}
.status-pill.legal{background:#E4EBDF; color:var(--moss-deep);}
.status-pill.restricted{background:#F3E7D0; color:var(--gray-area);}
.status-pill.banned{background:#F3DEDA; color:var(--brick);}
.status-pill.gray{background:#F0E6C9; color:var(--gold);}

/* ---------- Cards / grids ---------- */
.grid{display:grid; gap:24px; grid-template-columns:repeat(3,1fr); margin:32px 0;}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid{grid-template-columns:1fr;}}
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:22px;
  text-decoration:none; color:var(--ink); display:block; transition:transform .15s;
}
.card:hover{transform:translateY(-2px); border-color:var(--moss);}
.card .cat{font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; color:var(--moss-deep); font-weight:700;}
.card h3{margin:8px 0 6px; font-size:1.1rem;}
.card p{font-size:.9rem; color:var(--ink-soft); margin:0;}
.card .date{font-family:'IBM Plex Mono',monospace; font-size:.75rem; color:var(--ink-soft); margin-top:10px; display:block;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line-soft); padding:16px 0;}
.faq-item summary{font-weight:700; cursor:pointer; font-size:1.02rem; list-style:none; position:relative; padding-right:24px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; position:absolute; right:0; top:0; font-size:1.2rem; color:var(--moss);}
.faq-item[open] summary::after{content:'–';}
.faq-item p{margin-top:10px; color:var(--ink-soft);}

/* ---------- Facts ticker ---------- */
.facts-section{background:var(--moss-deep); color:var(--paper); padding:48px 0; margin-top:48px;}
.facts-section h2{color:var(--paper);}
.facts-list{columns:2; column-gap:40px; font-size:.95rem;}
@media(max-width:760px){.facts-list{columns:1;}}
.facts-list li{margin-bottom:14px; break-inside:avoid;}
.fact-live{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:6px;
  padding:16px 20px; margin-bottom:24px; font-family:'IBM Plex Mono',monospace; font-size:.9rem;
}

/* ---------- Newsletter ---------- */
.newsletter-box{
  background:var(--gold); color:var(--ink); border-radius:6px; padding:26px 28px; margin:32px 0;
}
.newsletter-box h3{margin-bottom:6px;}
.ad-slot{margin:28px 0;padding:14px;border:1px dashed rgba(0,0,0,.15);border-radius:8px;text-align:center;min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.ad-slot-label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,0,0,.35);margin-bottom:6px;}
.ad-slot-inner{width:100%;}
.newsletter-form{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap;}
.newsletter-form input[type=email]{
  flex:1; min-width:220px; padding:12px 14px; border:2px solid var(--ink); border-radius:var(--radius); font-family:'Inter',sans-serif;
}
.newsletter-form button{border:2px solid var(--ink);}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--ink); color:var(--paper); padding:48px 0 24px; margin-top:60px;}
footer.site-footer a{color:var(--paper); opacity:.85; text-decoration:none;}
footer.site-footer a:hover{opacity:1; text-decoration:underline;}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px;}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h4{color:var(--paper); font-family:'IBM Plex Mono',monospace; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px;}
.footer-grid ul{list-style:none; padding:0; margin:0;}
.footer-grid li{margin-bottom:8px; font-size:.9rem;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); margin-top:32px; padding-top:20px; font-size:.8rem; opacity:.7;}
.disclaimer-strip{font-size:.78rem; opacity:.65; max-width:700px; margin-top:10px;}

/* ---------- Article ---------- */
.article-body{font-size:1.08rem; line-height:1.75;}
.article-body h2{margin-top:2em;}
.article-body h3{margin-top:1.5em;}
.byline{font-family:'IBM Plex Mono',monospace; font-size:.85rem; color:var(--ink-soft); margin-bottom:24px;}
blockquote{border-left:4px solid var(--gold); margin:24px 0; padding:4px 20px; font-style:italic; color:var(--ink-soft);}
.sources-box{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:18px 22px; margin:32px 0; font-size:.9rem;}

.breadcrumb{font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--ink-soft); margin-bottom:18px;}
.breadcrumb a{color:var(--ink-soft);}

.section{padding:56px 0;}
.section-alt{background:var(--paper);}
