:root{
  --green:#2f7d32;
  --green-dark:#1f5a22;
  --green-light:#56b65a;
  --leaf:#eef6ec;
  --leaf-2:#e3f0df;
  --cream:#fbf8f1;
  --amber:#c98a4b;
  --ink:#243024;
  --muted:#5d6b5d;
  --line:#e0e8df;
  --bg:#ffffff;
  --radius:16px;
  --maxw:1140px;
  --readw:760px;
  --font:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-size:17px;
}
img,svg{max-width:100%;height:auto;display:block;}
a{color:var(--green-dark);text-decoration:none;}
a:hover{text-decoration:underline;}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.skip-link{position:absolute;left:-999px;top:0;background:#fff;padding:8px 16px;z-index:200;}
.skip-link:focus{left:8px;top:8px;}
h1,h2,h3,h4{line-height:1.18;}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(6px);border-bottom:1px solid var(--line);box-shadow:0 1px 6px rgba(0,0,0,.04);}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:66px;gap:16px;}
.brand{display:flex;align-items:center;gap:10px;font-size:22px;color:var(--ink);}
.brand:hover{text-decoration:none;}
.brand-mark{width:38px;height:38px;flex:0 0 auto;}
.brand-text strong{color:var(--green);}
.site-nav{display:flex;gap:24px;align-items:center;}
.site-nav a{color:var(--ink);font-weight:600;font-size:15px;}
.site-nav a:hover{color:var(--green);text-decoration:none;}
.nav-toggle{display:none;}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;}
.nav-burger span{width:26px;height:3px;background:var(--ink);border-radius:2px;}

/* Buttons */
.btn{display:inline-block;padding:13px 26px;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;border:2px solid transparent;transition:transform .08s ease,background .15s ease,box-shadow .15s ease;}
.btn:hover{text-decoration:none;transform:translateY(-1px);}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 6px 16px rgba(47,125,50,.22);}
.btn-primary:hover{background:var(--green-dark);color:#fff;}
.btn-ghost{background:#fff;color:var(--green-dark);border-color:var(--green);}
.btn-ghost:hover{background:var(--leaf);color:var(--green-dark);}
.btn-light{background:#fff;color:var(--green-dark);}
.btn-light:hover{background:var(--leaf);}

/* Hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--leaf) 0%,#f7fbf5 55%,#fff 100%);padding:66px 0 60px;}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.13em;font-size:12.5px;font-weight:700;color:var(--green);margin:0 0 14px;background:#fff;border:1px solid var(--line);padding:6px 14px;border-radius:999px;}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green-light);}
.hero h1{font-size:clamp(34px,5vw,56px);line-height:1.06;margin:0 0 18px;letter-spacing:-.5px;}
.hero h1 span{color:var(--green);}
.lead{font-size:19.5px;color:#46524a;max-width:540px;margin:0 0 26px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.hero-note{margin:18px 0 0;font-size:14px;color:var(--muted);}
.hero-media{position:relative;}
.hero-media img{width:100%;border-radius:22px;box-shadow:0 24px 50px rgba(31,90,34,.20);object-fit:cover;aspect-ratio:3/2;}
.hero-media .tag{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.94);color:var(--green-dark);font-weight:700;font-size:13.5px;padding:9px 16px;border-radius:999px;box-shadow:0 6px 16px rgba(0,0,0,.12);display:flex;align-items:center;gap:8px;}
.hero-media .tag::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--green-light);}

/* Promise / how-to-use strip */
.promise{background:#fff;border-bottom:1px solid var(--line);padding:30px 0;}
.promise-inner{max-width:var(--readw);margin:0 auto;text-align:center;}
.promise p{margin:0;font-size:18.5px;color:#3a463b;}
.promise strong{color:var(--green-dark);}

/* Big picture steps */
.steps{padding:56px 0;background:var(--cream);}
.steps .lead-block{max-width:var(--readw);margin:0 auto 34px;text-align:center;}
.part-label{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:12.5px;font-weight:800;color:var(--green);margin:0 0 10px;}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;position:relative;}
.step-num{display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;background:var(--green);border-radius:999px;width:40px;height:40px;margin-bottom:14px;}
.step h3{margin:0 0 8px;font-size:19px;}
.step p{margin:0;color:var(--muted);font-size:15.5px;}

/* Readable article sections */
.article{padding:8px 0 0;}
.sec{padding:54px 0;border-top:1px solid var(--line);}
.sec:first-child{border-top:none;}
.sec-alt{background:var(--cream);}
.sec-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.sec-inner.reverse .sec-fig{order:2;}
.sec-copy{max-width:600px;}
.sec h2{font-size:clamp(25px,3.3vw,34px);margin:0 0 6px;color:var(--ink);letter-spacing:-.3px;scroll-margin-top:90px;}
.sec-copy p{color:#3c483d;font-size:17px;margin:14px 0;}
.sec-copy ul{margin:14px 0;padding-left:0;list-style:none;}
.sec-copy ul li{position:relative;padding-left:30px;margin-bottom:11px;color:#3c483d;}
.sec-copy ul li::before{content:"";position:absolute;left:2px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--green-light);box-shadow:0 0 0 4px rgba(86,182,90,.18);}

/* short-answer callout */
.answer{background:var(--leaf);border:1px solid #cfe5c9;border-left:5px solid var(--green);border-radius:12px;padding:16px 20px;margin:6px 0 18px;}
.answer p{margin:0;font-size:16.5px;color:#27431f;font-weight:600;}
.answer .lbl{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:11.5px;color:var(--green-dark);font-weight:800;margin-bottom:4px;}

/* figure */
.sec-fig{margin:0;}
.sec-fig img{width:100%;border-radius:18px;box-shadow:0 18px 40px rgba(31,90,34,.16);object-fit:cover;aspect-ratio:1/1;}
.sec-fig figcaption{margin-top:10px;font-size:13.5px;color:var(--muted);text-align:center;font-style:italic;}

/* full-width chapter band */
.band{background:var(--green);color:#fff;padding:54px 0;}
.band-2{background:linear-gradient(135deg,var(--green-dark),var(--green));}
.band .container{max-width:var(--readw);text-align:center;}
.band h2{font-size:clamp(24px,3.2vw,32px);margin:0 0 12px;color:#fff;}
.band p{margin:0 auto;font-size:18px;opacity:.95;max-width:600px;}
.band .pillrow{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px;}
.band .pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);padding:9px 18px;border-radius:999px;font-weight:600;font-size:14.5px;}

/* pull quote */
.pullquote{max-width:840px;margin:0 auto;padding:46px 24px;text-align:center;}
.pullquote blockquote{margin:0;font-size:clamp(22px,3vw,30px);line-height:1.4;color:var(--green-dark);font-weight:600;letter-spacing:-.3px;}
.pullquote blockquote::before{content:"“";display:block;font-size:60px;color:var(--green-light);line-height:.6;margin-bottom:8px;}
.pullquote cite{display:block;margin-top:16px;font-style:normal;color:var(--muted);font-size:14.5px;}

/* category / what you'll find grid */
.findgrid{padding:56px 0;background:#fff;}
.findgrid .head{max-width:var(--readw);margin:0 auto 34px;text-align:center;}
.findgrid h2{font-size:clamp(25px,3.3vw,34px);margin:0 0 6px;}
.findgrid .sub{color:var(--muted);font-size:18px;margin:0;}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.cat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;transition:transform .12s ease,box-shadow .18s ease,border-color .18s;}
.cat-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(47,125,50,.13);border-color:#cfe5c9;}
.cat-ico{width:46px;height:46px;border-radius:12px;background:var(--leaf);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.cat-ico svg{width:26px;height:26px;}
.cat-card h3{margin:0 0 6px;font-size:18.5px;}
.cat-card p{margin:0;color:var(--muted);font-size:15px;}

/* seasonal table */
.tablewrap{max-width:980px;margin:26px auto 0;}
table.season{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:15.5px;background:#fff;}
table.season caption{caption-side:bottom;text-align:center;color:var(--muted);font-size:13.5px;font-style:italic;padding:12px 8px 0;}
table.season th,table.season td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;}
table.season thead th{background:var(--green);color:#fff;font-weight:700;font-size:14.5px;}
table.season tbody tr:nth-child(even){background:var(--cream);}
table.season td:first-child{font-weight:700;color:var(--green-dark);white-space:nowrap;}
.pill-cat{display:inline-block;background:var(--leaf);color:var(--green-dark);border-radius:999px;padding:2px 11px;font-size:12.5px;font-weight:700;margin:2px 4px 2px 0;}

/* FAQ accordion */
.faq{padding:56px 0;background:var(--cream);}
.faq .head{max-width:var(--readw);margin:0 auto 30px;text-align:center;}
.faq h2{font-size:clamp(25px,3.3vw,34px);margin:0 0 6px;}
.faq-list{max-width:840px;margin:0 auto;}
.faq-item{border:1px solid var(--line);border-radius:12px;margin-bottom:14px;background:#fff;overflow:hidden;}
.faq-item summary{cursor:pointer;list-style:none;padding:18px 22px;font-weight:700;font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:24px;color:var(--green);transition:transform .2s ease;flex:0 0 auto;}
.faq-item[open] summary::after{content:"–";}
.faq-item .faq-body{padding:0 22px 20px;color:#3c483d;}
.faq-item .faq-body p{margin:0 0 10px;}
.faq-item .faq-body p:last-child{margin-bottom:0;}

/* CTA band */
.cta-band{background:var(--green-dark);color:#fff;padding:54px 0;}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;}
.cta-band h2{margin:0 0 6px;font-size:28px;color:#fff;}
.cta-band p{margin:0;opacity:.92;}

/* Footer */
.site-footer{background:#1c2a1c;color:#cdd9cb;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px;padding:54px 24px 36px;max-width:var(--maxw);margin:0 auto;}
.footer-col h4{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;}
.footer-col p,.footer-col address,.footer-col ul{margin:0;font-style:normal;color:#cdd9cb;font-size:15px;}
.footer-col ul{list-style:none;padding:0;}
.footer-col ul li{margin-bottom:9px;}
.footer-col a{color:#9fd8a0;}
.brand-footer .brand-text{color:#fff;font-size:22px;}
.brand-footer .brand-text strong{color:var(--green-light);}
.footer-tag{margin-top:12px !important;max-width:340px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;font-size:13.5px;color:#9aa89a;}
.footer-bottom .container{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.footer-bottom p{margin:0;}

/* Inner pages */
.page-hero{background:linear-gradient(160deg,var(--leaf),#fff);padding:54px 0;border-bottom:1px solid var(--line);}
.page-hero .crumb{color:var(--muted);font-size:13.5px;margin:0 0 12px;}
.page-hero .crumb a{color:var(--green-dark);}
.page-hero h1{font-size:clamp(30px,4vw,44px);margin:0 0 10px;letter-spacing:-.4px;}
.page-hero p{color:#46524a;font-size:18.5px;max-width:680px;margin:0;}
.content{padding:52px 0;}
.content .container{max-width:var(--readw);}
.content h2{font-size:25px;margin:38px 0 12px;color:var(--ink);}
.content h2:first-child{margin-top:0;}
.content h3{font-size:19px;margin:26px 0 8px;color:var(--green-dark);}
.content p{color:#3c483d;font-size:17px;}
.content ul{padding-left:0;list-style:none;}
.content ul li{position:relative;padding-left:28px;margin-bottom:10px;color:#3c483d;}
.content ul li::before{content:"";position:absolute;left:2px;top:9px;width:8px;height:8px;border-radius:50%;background:var(--green-light);box-shadow:0 0 0 4px rgba(86,182,90,.18);}
.content figure{margin:24px 0;}
.content figure img{border-radius:16px;box-shadow:0 14px 30px rgba(31,90,34,.14);width:100%;}
.content figure figcaption{margin-top:8px;font-size:13.5px;color:var(--muted);font-style:italic;text-align:center;}
.callout{background:var(--leaf);border:1px solid #cfe5c9;border-left:5px solid var(--green);border-radius:12px;padding:16px 20px;margin:20px 0;}
.callout p{margin:0;color:#27431f;}

/* Contact info cards (no fake form, honest) */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:8px 0 0;}
.info-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;}
.info-card .ic{width:44px;height:44px;border-radius:12px;background:var(--leaf);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.info-card .ic svg{width:24px;height:24px;}
.info-card h3{margin:0 0 6px;font-size:18px;}
.info-card p{margin:0;color:var(--muted);font-size:15.5px;}

/* Responsive */
@media (max-width:900px){
  body{font-size:16.5px;}
  .hero{padding:48px 0 44px;}
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:30px;}
  .hero-copy{order:2;}
  .hero-media{order:1;}
  .eyebrow{margin-left:auto;margin-right:auto;}
  .lead{margin-left:auto;margin-right:auto;}
  .hero-actions{justify-content:center;}
  .hero-note{text-align:center;}
  .sec-inner{grid-template-columns:1fr;gap:26px;}
  .sec-inner.reverse .sec-fig{order:0;}
  .sec-copy{max-width:none;text-align:left;}
  .sec h2{text-align:left;}
  .step-grid{grid-template-columns:1fr;}
  .cat-grid{grid-template-columns:1fr 1fr;}
  .info-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .cta-inner{flex-direction:column;text-align:center;align-items:center;}
}
@media (max-width:640px){
  .site-nav{position:absolute;top:66px;left:0;right:0;background:#fff;flex-direction:column;gap:0;border-bottom:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .25s ease;box-shadow:0 8px 16px rgba(0,0,0,.06);}
  .nav-toggle:checked ~ .site-nav{max-height:420px;}
  .site-nav a{padding:14px 24px;width:100%;border-top:1px solid var(--line);}
  .nav-burger{display:flex;}
  .cat-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom .container{flex-direction:column;}
  /* seasonal table -> cards */
  table.season,table.season thead,table.season tbody,table.season th,table.season td,table.season tr{display:block;}
  table.season thead{display:none;}
  table.season{border:none;background:transparent;}
  table.season tbody tr{background:#fff !important;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:6px 4px;}
  table.season td{border-bottom:1px solid var(--line);padding:11px 16px;}
  table.season tr td:last-child{border-bottom:none;}
  table.season td::before{content:attr(data-label);display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-weight:800;margin-bottom:3px;}
  table.season td:first-child{white-space:normal;}
}
