/*
Theme Name: Birch Island Farm
Theme URI: https://birchislandfarm.com/
Author: Custom build
Description: Custom theme for Birch Island Farm, a Christmas tree farm and pumpkin
  patch in Waldron, Indiana. Seasonal fall/Christmas homepage, illustrated hero,
  and WooCommerce support. Compatible with the Beaver Builder plugin.
Version: 1.0.12
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: birch-island-farm
Tags: custom-logo, custom-menu, e-commerce, one-column, editor-style
*/

:root{
  --paper:#FDF8EE;
  --paper-2:#F4E9D4;
  --paper-3:#EADCC0;
  --ink:#241F18;
  --ink-soft:#5E564A;
  --ink-faint:#776D5F;
  --evergreen:#1E5A06;
  --evergreen-deep:#123D03;
  --evergreen-mid:#297A01;
  --carmine:#7A1414;
  --carmine-deep:#5A0F0F;
  --amber:#C2610F;
  --honey:#F5B201;
  --birch:#FFFDF7;
  --rule:rgba(36,31,24,.16);
  --season:#B25709;
  --season-deep:#8F4409;

  --sky-1:#F7D9A0;
  --sky-2:#F3B87A;
  --sky-3:#E9E2CF;
  --hill-far:#B9B08C;
  --hill-near:#8E9A63;
  --field:#C9B679;
  --water:#9FB7A8;
  /* Tree rows are fully opaque. Depth comes from aerial perspective:
     distant rows sit nearer the haze colour of the sky, near rows hold the
     farm's true green. The -d values outline each tree so overlapping ones
     stay readable instead of merging into a single silhouette. */
  --tree-1:#88A05F; --tree-1-d:#868F61;
  --tree-2:#6C9346; --tree-2-d:#6D814C;
  --tree-3:#51862D; --tree-3-d:#517133;
  --tree-4:#387A17; --tree-4-d:#35611B;
  --tree-5:#237004; --tree-5-d:#1A5303;
  --orb:#FBEFC8;

  --shadow-soft:0 18px 40px -28px rgba(13,42,30,.55);
  --measure:34rem;
}
:root:not([data-theme="light"]) { color-scheme: light; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#14170F; --paper-2:#1C2015; --paper-3:#272B1D;
    --ink:#F2EADA; --ink-soft:#BDB29D; --ink-faint:#8E8571;
    --evergreen:#17460A; --evergreen-deep:#0E3003;
    --rule:rgba(242,234,218,.18); --birch:#1C2015;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --paper:#14170F; --paper-2:#1C2015; --paper-3:#272B1D;
  --ink:#F2EADA; --ink-soft:#BDB29D; --ink-faint:#8E8571;
  --evergreen:#17460A; --evergreen-deep:#0E3003;
  --rule:rgba(242,234,218,.18); --birch:#1C2015;
  color-scheme: dark;
}

html[data-season="christmas"]{
  --season:#7A1414;
  --season-deep:#5A0F0F;
  --sky-1:#2B3F53; --sky-2:#5B6C78; --sky-3:#C9CBC4;
  --hill-far:#A9B2B4; --hill-near:#7C8C84;
  --field:#E4E6DE; --water:#CDD6D4;
  --tree-1:#728F6E; --tree-1-d:#718271;
  --tree-2:#5B8152; --tree-2-d:#5C7358;
  --tree-3:#447235; --tree-3-d:#44623C;
  --tree-4:#30651C; --tree-4-d:#2C5220;
  --tree-5:#1E5A06; --tree-5-d:#164304;
  --orb:#F4F1E4;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{animation:none!important;transition:none!important} }

body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:Karla,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:Fraunces,Georgia,"Times New Roman",serif;font-weight:800;line-height:1.05;letter-spacing:-.015em;margin:0}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--season);outline-offset:3px;border-radius:2px}
.wrap{width:min(1180px,92vw);margin-inline:auto}

/* ---------- header ---------- */
.topbar{position:sticky;top:0;z-index:60;background:var(--evergreen-deep);color:#F2EFE2;border-bottom:1px solid rgba(255,255,255,.1)}
.topbar__inner{display:flex;align-items:center;gap:1.25rem;min-height:76px}
.brand{display:flex;align-items:center;gap:.85rem;margin-right:auto;padding:.45rem 0;text-decoration:none}
.brand img{height:58px;width:58px;flex:none}
.brand__name{font-family:Fraunces,Georgia,serif;font-weight:800;font-size:1.3rem;letter-spacing:-.02em;line-height:1.05;color:#FFFCF2}
.brand__name span{display:block;font-family:Karla,sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.16em;color:#B7D2A4;margin-top:.22rem}
@media (max-width:520px){ .brand img{height:48px;width:48px} .brand__name{font-size:1.08rem} .brand__name span{font-size:.62rem} }
.nav{display:flex;gap:1.6rem;align-items:center}
/* wp_nav_menu wraps links in a <ul>, so the flex row and the list reset
   live on that list rather than on .nav itself. */
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.6rem;align-items:center}
.nav li{margin:0}
.nav a{text-decoration:none;font-weight:600;font-size:.95rem;color:#E4E7DC;padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"],
.nav .current-menu-item>a,.nav .current_page_item>a,.nav .current-menu-ancestor>a{
  border-bottom-color:var(--honey);color:#fff}
.callbtn{display:inline-flex;align-items:center;gap:.5rem;background:var(--honey);color:#26200C;text-decoration:none;font-weight:700;font-size:.95rem;padding:.6rem 1.05rem;border-radius:999px}
.callbtn:hover{background:#FFC72C}
.menubtn{display:none;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:.6rem .85rem;min-height:44px;font:inherit;font-weight:600;cursor:pointer}
@media (max-width:980px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--evergreen-deep);flex-direction:column;align-items:stretch;gap:0;padding:.5rem 4% 1.25rem;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav[data-open="true"]{display:flex}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .nav a{display:block;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .menubtn{display:block}
}
/* The phone number is the main thing a visitor needs on a phone, so it stays
   on screen at every width - it just sheds its label on narrow devices. */
@media (max-width:620px){
  .callbtn{padding:.65rem;border-radius:50%;width:44px;height:44px;justify-content:center}
  .callbtn span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .callbtn svg{width:19px;height:19px}
}
@media (max-width:400px){ .brand__name{display:none} }

/* ---------- hero ---------- */
.hero{position:relative;background:var(--evergreen-deep);overflow:hidden;isolation:isolate;padding:0}
.scene{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.scene svg{width:100%;height:100%;display:block}
.fadein{transition:opacity .7s ease}
.hero__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgba(8,28,4,.86) 0%,rgba(8,28,4,.62) 42%,rgba(8,28,4,.08) 72%,rgba(8,28,4,0) 100%)}
.hero__inner{position:relative;z-index:2;padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5.5rem)}
.hero h1:focus{outline:none}
.pagehead h1:focus{outline:none}
/* Both seasons' headlines occupy the same grid cell, the inactive one hidden
   but still laid out. The hero therefore sizes to whichever season is taller
   and does not change height when the toggle is used - no fixed height, so it
   holds at every viewport width. */
.hero__stack{display:grid}
.hero__stack > *{grid-area:1/1}
.hero__stack--lede{margin-top:1.4rem}
.hero .ghost{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}
.hero h1,.hero .ghost--title{
  color:#FFFCF2;font-family:Fraunces,Georgia,"Times New Roman",serif;font-weight:800;
  font-size:clamp(2.55rem,6.4vw,5.1rem);line-height:1.05;letter-spacing:-.015em;
  max-width:15ch;text-wrap:balance;margin:0;text-shadow:0 2px 26px rgba(6,20,13,.5)}
.hero p.lede,.hero .ghost--lede{
  color:#E2E8DC;font-size:clamp(1.05rem,1.6vw,1.22rem);
  max-width:31rem;line-height:1.6;margin:0}
.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;font-weight:700;font-size:1rem;padding:.95rem 1.6rem;border-radius:999px;border:2px solid transparent;transition:transform .12s ease,background .2s ease;cursor:pointer}
.btn--solid{background:var(--season);color:#fff}
.btn--solid:hover{background:var(--season-deep)}
.btn--ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.btn:active{transform:translateY(1px)}
.seasonpick{display:inline-flex;gap:.25rem;padding:.3rem;border-radius:999px;background:rgba(6,20,13,.5);border:1px solid rgba(255,255,255,.22);margin-bottom:1.9rem;backdrop-filter:blur(4px)}
.seasonpick button{font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;border:0;background:none;color:#DCE3D8;padding:.72rem 1.25rem;min-height:44px;border-radius:999px;display:inline-flex;align-items:center;gap:.45rem;transition:background .2s,color .2s}
.seasonpick button[aria-pressed="true"]{background:var(--season);color:#fff}
.seasonpick button:hover[aria-pressed="false"]{color:#fff;background:rgba(255,255,255,.12)}

/* ---------- strip ---------- */
.strip{background:var(--evergreen);color:#EAF0E6}
.strip__inner{display:flex;flex-wrap:wrap;gap:1.25rem 2.5rem;align-items:center;padding:1.15rem 0}
.strip p{margin:0;font-size:1rem}
.strip b{color:var(--honey)}
.strip a{color:#EAF0E6;font-weight:600}

/* ---------- section furniture ---------- */
section{padding:clamp(3.5rem,7vw,6rem) 0}
/* Only the anchored homepage sections need to clear the sticky header. */
section[id],div[id].strip{scroll-margin-top:92px}
.marker{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem;color:var(--season);font-weight:700;font-size:.98rem}
.marker svg{flex:none}
h2{font-size:clamp(2rem,4vw,3.1rem);max-width:18ch;text-wrap:balance}
h3{font-size:clamp(1.35rem,2.2vw,1.75rem)}
.sub{color:var(--ink-soft);max-width:38rem;margin-top:1.1rem;font-size:1.1rem}

/* ---------- panels ---------- */
.panels{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin-top:2.8rem}
@media (max-width:820px){.panels{grid-template-columns:1fr}}
.panel{position:relative;overflow:hidden;border-radius:22px;padding:2.2rem 2rem 2.4rem;color:#fff;min-height:26rem;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow-soft)}
.panel--fall{background:linear-gradient(170deg,#D2761E 0%,#A8480D 52%,#7A3407 100%)}
.panel--tree{background:linear-gradient(170deg,#3B9406 0%,#1E5A06 55%,#123D03 100%)}
.panel__art{position:absolute;inset:0;opacity:.9;pointer-events:none}
.panel__art svg{width:100%;height:100%}
.panel__body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;width:100%}
/* The panels used to bottom-align their whole content block, so a longer
   paragraph in one panel pushed its heading higher than the other's. The body
   now fills the panel, which lines the headings up at the top, and the button
   is pushed down with an auto margin, which lines the buttons up at the
   bottom - whatever length the copy is. */
.panel__body > .btn{margin-top:auto;align-self:flex-start}
.panel h3{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.7rem}
.panel p{color:rgba(255,255,255,.9);max-width:30ch}
.panel ul{list-style:none;margin:1.2rem 0 1.5rem;padding:0;display:grid;gap:.5rem}
.panel li{display:flex;gap:.6rem;align-items:flex-start;font-size:.98rem;color:rgba(255,255,255,.94)}
.panel li svg{flex:none;margin-top:.35rem}
.panel .btn--solid{background:#fff;color:#2A2016}
.panel .btn--solid:hover{background:var(--paper-2)}

/* ---------- offerings ---------- */
.offer{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media (max-width:860px){.offer{grid-template-columns:1fr}}
.offer__list{display:grid;gap:0;border-top:1px solid var(--rule)}
.offer__item{display:grid;grid-template-columns:2.4rem 1fr;gap:1.1rem;padding:1.5rem 0;border-bottom:1px solid var(--rule)}
.offer__item h3{font-size:1.28rem;margin-bottom:.35rem}
.offer__item p{margin:0;color:var(--ink-soft);font-size:1rem}
.offer__icon{color:var(--season);margin-top:.15rem}
.plate{background:var(--paper-2);border-radius:24px;padding:2rem;border:1px solid var(--rule)}
.plate svg{width:100%;height:auto;border-radius:14px;display:block}
/* The farm illustration follows the season toggle in the hero. */
.plate svg{
  --plate-sky-1:#E8DFC4; --plate-sky-2:#F6EFDC; --plate-orb:#F5B201;
  --plate-ground:#8E9A63; --plate-water:#9FB7A8; --plate-island:#7C9440;
  --plate-field:#B7A96E;  --plate-tree:#237004;
}
html[data-season="christmas"] .plate svg{
  --plate-sky-1:#AEBECA; --plate-sky-2:#DDE8EB; --plate-orb:#F2F7F9;
  --plate-ground:#C3D0C9; --plate-water:#CFDADB; --plate-island:#B2C1B7;
  --plate-field:#E6EDEB;  --plate-tree:#1E5A06;
}
.plate .season-fall,.plate .season-winter{transition:opacity .7s ease}
.plate .season-winter{opacity:0}
html[data-season="christmas"] .plate .season-fall{opacity:0}
html[data-season="christmas"] .plate .season-winter{opacity:1}


/* ---------- story (shared) ---------- */
.story{background:var(--evergreen);color:#F0EFE4}
.story h2{color:#FFFCF2}
.story .marker{color:var(--honey)}
.story__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:860px){.story__grid{grid-template-columns:1fr}}
.story p{color:#D3DCD2;max-width:38rem}
.pullquote{font-family:Fraunces;font-size:clamp(1.3rem,2.4vw,1.85rem);font-weight:400;font-style:italic;line-height:1.35;color:#FFFCF2;border-left:3px solid var(--honey);padding-left:1.4rem;margin:2rem 0 0}
.ribbon{margin-top:2.2rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:1.5rem 1.6rem;display:flex;gap:1.1rem;align-items:flex-start}
.ribbon p{margin:0;color:#D3DCD2;font-size:1rem}
.ribbon strong{color:#FFFCF2;display:block;font-family:Fraunces;font-size:1.15rem;margin-bottom:.3rem}

/* ---------- visit ---------- */
.visit__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start;margin-top:2.8rem}
@media (max-width:860px){.visit__grid{grid-template-columns:1fr}}
.hours{background:var(--paper-2);border:1px solid var(--rule);border-radius:22px;overflow:hidden}
.hours__head{background:var(--evergreen);color:#F0EFE4;padding:1.2rem 1.6rem}
.hours__head h3{color:#FFFCF2;font-size:1.3rem}
.hours__head p{margin:.3rem 0 0;font-size:.92rem;color:#B9CDBF}
.hours ol{list-style:none;margin:0;padding:.4rem 1.6rem 1.2rem}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--rule);font-size:1rem}
.hours li:last-child{border-bottom:0}
.hours li span:first-child{font-weight:600}
.hours li span:last-child{color:var(--ink-soft);font-variant-numeric:tabular-nums}
.hours__note{padding:0 1.6rem 1.5rem;color:var(--ink-soft);font-size:.95rem;margin:0}
.info{display:grid;gap:1.5rem}
.info__block{border-left:3px solid var(--season);padding-left:1.25rem}
.info__block h3{font-size:1.15rem;margin-bottom:.3rem}
.info__block p{margin:0;color:var(--ink-soft)}
.info__block a{color:var(--ink);font-weight:600;text-decoration-color:var(--season);text-underline-offset:3px}
.bigcta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}
.btn--dark{background:var(--evergreen);color:#fff}
.btn--dark:hover{background:var(--evergreen-deep)}
.btn--outline{border-color:var(--ink);color:var(--ink)}
.btn--outline:hover{background:var(--paper-2)}

/* ================= OUR STORY PAGE ================= */
.pagehead{background:var(--evergreen-deep);color:#F0EFE4;padding:clamp(3rem,7vw,5.5rem) 0 clamp(3rem,6vw,4.5rem);position:relative;overflow:hidden}
.pagehead__art{position:absolute;right:-4%;bottom:-10%;width:min(46%,520px);opacity:.28;pointer-events:none}
.pagehead h1{color:#FFFCF2;font-size:clamp(2.4rem,5.6vw,4.4rem);max-width:16ch;position:relative;z-index:2}
.pagehead .kicker{color:var(--honey);font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.7rem;position:relative;z-index:2}
.pagehead .standfirst{color:#CBD7CB;max-width:40rem;font-size:clamp(1.05rem,1.6vw,1.2rem);margin-top:1.4rem;position:relative;z-index:2}
.backlink{display:inline-flex;align-items:center;gap:.5rem;color:#9FB3A2;text-decoration:none;font-weight:600;font-size:.95rem;margin-bottom:1.4rem;position:relative;z-index:2}
.backlink:hover{color:var(--honey)}

.chapter{max-width:42rem}
.chapter + .chapter{margin-top:clamp(2.75rem,5vw,4rem)}
.chapter h2{font-size:clamp(1.65rem,3vw,2.35rem);max-width:22ch;margin-bottom:1rem}
.chapter p{color:var(--ink-soft);font-size:1.075rem;max-width:36rem}
.chapter p strong{color:var(--ink);font-weight:700}
.dropcap::first-letter{
  font-family:Fraunces;font-weight:800;font-size:3.6em;line-height:.82;
  float:left;padding:.06em .1em 0 0;color:var(--season)
}
.aside{
  background:var(--paper-2);border:1px solid var(--rule);border-radius:18px;
  padding:1.5rem 1.6rem;margin:2rem 0;max-width:36rem
}
.aside h3{font-size:1.1rem;margin-bottom:.45rem}
.aside p{margin:0;font-size:1rem;color:var(--ink-soft)}
.aside p:last-of-type{margin-bottom:0}

.timeline{border-left:2px solid var(--rule);padding-left:1.9rem;margin:0;max-width:38rem}
.timeline > div{position:relative;padding-bottom:2rem}
.timeline > div:last-child{padding-bottom:0}
.timeline > div::before{
  content:"";position:absolute;left:calc(-1.9rem - 7px);top:.55rem;
  width:12px;height:12px;border-radius:50%;background:var(--season);
  box-shadow:0 0 0 4px var(--paper)
}
.timeline dt{font-family:Fraunces;font-weight:800;font-size:1.2rem;color:var(--ink);letter-spacing:-.01em}
.timeline dd{margin:.3rem 0 0;color:var(--ink-soft)}
.storyquote{
  font-family:Fraunces;font-style:italic;font-weight:400;
  font-size:clamp(1.4rem,3vw,2.15rem);line-height:1.32;color:var(--ink);
  max-width:24ch;margin:0
}
.storyquote cite{display:block;font-family:Karla;font-style:normal;font-size:.95rem;font-weight:600;color:var(--ink-faint);margin-top:1.1rem}
.quoteband{background:var(--paper-2)}
.quoteband .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (max-width:820px){.quoteband .wrap{grid-template-columns:1fr}}
.endcta{background:var(--evergreen);color:#F0EFE4;text-align:left}
.endcta h2{color:#FFFCF2}
.endcta p{color:#CBD7CB;max-width:34rem;margin-top:1rem}
.endcta .bigcta{margin-top:1.8rem}
.endcta .btn--outline{border-color:rgba(255,255,255,.55);color:#fff}
.endcta .btn--outline:hover{background:rgba(255,255,255,.12)}

/* ---------- footer ---------- */
footer{background:var(--evergreen-deep);color:#C6D2C6;padding:3.5rem 0 2.5rem;font-size:.97rem}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
@media (max-width:760px){.foot__grid{grid-template-columns:1fr;gap:2rem}}
footer h4{font-family:Fraunces;font-size:1.05rem;color:#FFFCF2;margin-bottom:.9rem;font-weight:700}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
footer a{color:#C6D2C6;text-decoration:none}
footer a:hover{color:var(--honey)}
.foot__brand p{max-width:30ch;color:#A9C29A}
.foot__logo{height:76px;width:76px;margin-bottom:1rem}
.foot__bottom{margin-top:2.75rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:.75rem 2rem;justify-content:space-between;color:#8FA593;font-size:.9rem}
.social{display:flex;gap:.7rem;margin-top:1.1rem}
.social a{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center}
.social a:hover{background:var(--honey);border-color:var(--honey);color:#26200C}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:.6rem;z-index:99;position:fixed;background:#fff;color:#111;padding:.7rem 1rem;border-radius:8px}

/* Without JavaScript the router never runs, so reveal every page rather than
   stranding the Our Story content behind a dead link. */
@media print{
  .topbar,.seasonpick,.hero__actions,.bigcta,.social,.menubtn,.backlink{display:none!important}
  .hero,.strip,.story,.pagehead,.endcta,footer{background:#fff!important;color:#000!important}
  .hero h1,.story h2,.pagehead h1,.endcta h2,footer h4{color:#000!important}
  .story p,.pagehead .standfirst,footer,.endcta p{color:#222!important}
  .scene,.hero__veil,.panel__art,.pagehead__art{display:none!important}
  .panel{color:#000!important;background:#fff!important;border:1px solid #999;min-height:0}
  .panel p,.panel li{color:#000!important}
  body{font-size:11pt}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}

/* ============================================================
   WORDPRESS INTEGRATION
   ============================================================ */
.admin-bar .topbar{top:32px}
@media screen and (max-width:782px){ .admin-bar .topbar{top:46px} }
@media screen and (max-width:600px){ .admin-bar .topbar{position:static} }

.alignleft{float:left;margin:.4rem 1.5rem 1rem 0}
.alignright{float:right;margin:.4rem 0 1rem 1.5rem}
.aligncenter{margin-inline:auto;display:block}
.alignwide{max-width:min(1180px,92vw);margin-inline:auto}
.alignfull{max-width:none;width:100%}
.wp-caption{max-width:100%}
.wp-caption-text,figcaption{font-size:.9rem;color:var(--ink-soft);margin-top:.5rem}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sticky,.gallery-caption,.bypostauthor{}

/* Generic page + post body, also the canvas Beaver Builder draws into */
.page-body{padding:clamp(3rem,6vw,5rem) 0}

/* Blocks dropped between the homepage sections get the site's normal measure.
   This list is deliberately opt-in. An earlier version used a
   everything-except-sections rule, which also caught Beaver Builder's
   .fl-builder-content wrapper and capped every BB row at 1180px. Name the
   things to constrain rather than excluding from a wildcard. */
.front-sections > p,
.front-sections > h2,
.front-sections > h3,
.front-sections > h4,
.front-sections > ul,
.front-sections > ol,
.front-sections > figure,
.front-sections > .wp-block-heading,
.front-sections > .wp-block-paragraph,
.front-sections > .wp-block-image,
.front-sections > .wp-block-table,
.front-sections > .wp-block-buttons,
.front-sections > .wp-block-columns,
.front-sections > .wp-block-group,
.front-sections > [class*="wp-block-woocommerce"]{
  width:min(1180px,92vw);margin-inline:auto;
}
/* Beaver Builder sizes its own rows. Never constrain its wrapper. */
.front-sections--builder,
.front-sections > .fl-builder-content,
.front-sections .fl-row{width:100%;max-width:none;margin-inline:0}
.front-sections > .wp-block-woocommerce-all-products,
.front-sections > .wp-block-woocommerce-product-collection,
.front-sections > .wp-block-query,
.front-sections > .wp-block-columns,
.front-sections > .wp-block-heading,
.front-sections > .wp-block-group{padding-block:clamp(2rem,5vw,3.5rem)}
.front-sections > .alignfull{width:100%;max-width:none}
/* Reading styles apply wherever editor content lands, not only inside
   .page-body. Scoping them to .page-body left the Our Story template - which
   uses its own wrapper - with unstyled body copy at full container width. */
.entry-content{max-width:42rem}
.entry-content h2{font-size:clamp(1.65rem,3vw,2.35rem);margin:2.2rem 0 1rem;max-width:22ch}
.entry-content h3{font-size:1.3rem;margin:1.8rem 0 .6rem}
.entry-content p,.entry-content li{color:var(--ink-soft);font-size:1.075rem}
.entry-content a{color:var(--season);text-underline-offset:3px}
.entry-content blockquote{border-left:3px solid var(--season);padding-left:1.4rem;margin-left:0;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:1.25rem;color:var(--ink)}
.entry-content img{border-radius:14px}
/* Full width: a Beaver Builder layout, or a block that asks for it. */
.entry-content--full{max-width:none}
.page-body--full .entry-content{max-width:none}
.entry-content--full > .fl-builder-content{width:100%;max-width:none}
.entry-header{margin-bottom:2rem}
.entry-header h1{font-size:clamp(2.2rem,5vw,3.4rem);max-width:20ch}
.entry-meta{color:var(--ink-faint);font-size:.95rem;margin-top:.7rem}

/* Full-width template: no measure cap, so Beaver Builder rows run edge to edge */
.page-body--full{padding:0}

.pagination{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:2.5rem}
.pagination .page-numbers{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0 .8rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;font-weight:600}
.pagination .current,.pagination .page-numbers:hover{background:var(--season);color:#fff;border-color:var(--season)}

.postlist{display:grid;gap:2rem;max-width:42rem}
.postlist article{border-bottom:1px solid var(--rule);padding-bottom:2rem}
.postlist h2{font-size:1.5rem;margin-bottom:.4rem}
.postlist a{text-decoration:none}
.postlist a:hover h2{color:var(--season)}

/* ============================================================
   WOOCOMMERCE
   Shop pages inherit the farm's type and palette instead of
   looking like a bolted-on storefront.
   ============================================================ */
.woocommerce-page .page-body,.woocommerce .page-body{padding-top:clamp(2rem,4vw,3rem)}
.woocommerce .woocommerce-products-header__title,
.woocommerce-page h1.entry-title{font-family:Fraunces,Georgia,serif;font-weight:800;letter-spacing:-.015em}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.15rem!important;letter-spacing:-.01em;color:var(--ink)}
.woocommerce ul.products li.product .price{color:var(--ink-soft);font-weight:600}
.woocommerce ul.products li.product img{border-radius:14px}
.woocommerce ul.products li.product .onsale,.woocommerce span.onsale{
  background:var(--carmine);color:#fff;font-family:Karla,sans-serif;font-weight:700;border-radius:999px;min-height:2.4em;line-height:2.4}
.woocommerce #respond input#submit,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,
.woocommerce button.button.alt,.woocommerce input.button.alt{
  background:var(--season);color:#fff;font-family:Karla,sans-serif;font-weight:700;
  border-radius:999px;padding:.85rem 1.5rem;line-height:1.2;transition:background .2s ease}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,
.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--season-deep);color:#fff}
.woocommerce .quantity .qty{min-height:44px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);color:var(--ink)}
.woocommerce div.product .product_title{font-family:Fraunces,Georgia,serif;font-weight:800}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ink)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{border-radius:10px 10px 0 0}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--paper-2)}
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info{border-top-color:var(--season);background:var(--paper-2);color:var(--ink)}
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before{color:var(--season)}
.woocommerce .woocommerce-error{border-top-color:var(--carmine);background:var(--paper-2);color:var(--ink)}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.woocommerce form .form-row select,.woocommerce-page form .form-row input.input-text{
  min-height:46px;border:1px solid var(--rule);border-radius:10px;padding:.6rem .8rem;
  background:var(--paper);color:var(--ink);font:inherit}
.woocommerce table.shop_table{border-radius:14px;border-color:var(--rule)}
.woocommerce-cart table.cart img{border-radius:10px}
.cartlink{position:relative}
.cartlink[data-count]::after{
  content:attr(data-count);position:absolute;top:-.35rem;right:-.7rem;
  background:var(--honey);color:#26200C;font-size:.68rem;font-weight:700;
  min-width:1.25rem;height:1.25rem;border-radius:999px;display:grid;place-items:center;padding:0 .3rem}
.woocommerce .star-rating span{color:var(--honey)}

@media print{ .woocommerce .cart, .cartlink{display:none!important} }
