/*
 * Maple Harvest child theme: kitchen-farmhouse design system.
 * Palette and type come from the brand style guide.
 * All classes are prefixed mh- so nothing collides with GeneratePress, GenerateBlocks, or The Events Calendar.
 */

:root{
  --mh-display:"millesime","Millesime",Georgia,serif;
  --mh-body:"acumin-pro","Acumin Pro","Segoe UI",system-ui,sans-serif;

  /* Brand palette */
  --mh-brown:#6b4327; --mh-gold:#e9a357; --mh-red:#921e1e; --mh-green:#2f6c35; --mh-tan:#cdb9a5;
  /* Derived neutrals */
  --mh-night:#2e1c11; --mh-light:#fbf3e4; --mh-wood:#8a5a36;
  --mh-bg:#f7efe2; --mh-bg-alt:#ebdfcd; --mh-card:#fffaf1;
  --mh-ink:#2b1a10; --mh-muted:#5a4333; --mh-rule:#6b4327;
  --mh-stripe:rgba(107,67,39,.06);
  --mh-beadboard:repeating-linear-gradient(90deg,#f4ebda 0 26px,#d9ccb4 26px 28px);
  --mh-gingham:linear-gradient(90deg,rgba(146,30,30,.5) 50%,transparent 50%),linear-gradient(rgba(146,30,30,.5) 50%,transparent 50%);
  --mh-focus:#6b4327;
}

/* ---------- Base ---------- */
/* GeneratePress does not set border-box everywhere; our components assume it */
:where(.mh-page,.mh-header,.mh-footer),
:where(.mh-page,.mh-header,.mh-footer) *,
:where(.mh-page,.mh-header,.mh-footer) *::before,
:where(.mh-page,.mh-header,.mh-footer) *::after{box-sizing:border-box}
body{font-synthesis:none;background:var(--mh-bg);color:var(--mh-ink);font-family:var(--mh-body)}
h1,h2,h3,h4{font-family:var(--mh-display);font-weight:700}
a:focus-visible,button:focus-visible{outline:3px solid var(--mh-focus);outline-offset:3px}
.mh-wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.mh-page{font:400 1.125rem/1.6 var(--mh-body)}
:where(.mh-page) :is(h1,h2,h3){line-height:1.1;margin:0}
:where(.mh-page) h2{font-size:clamp(2rem,4.2vw,3rem);color:var(--mh-green)}
:where(.mh-page) p{margin:0 0 1em}
:where(.mh-page) :is(img,svg){max-width:100%}
/* Links inside our components keep their own colors; GeneratePress link colors (including :hover) must not leak in */
.mh-page a:not(.mh-btn):not(.mh-ticket__link),.mh-page a:not(.mh-btn):not(.mh-ticket__link):hover,.mh-page a:not(.mh-btn):not(.mh-ticket__link):focus,
.mh-header a:not(.mh-btn),.mh-header a:not(.mh-btn):hover,.mh-header a:not(.mh-btn):focus,
.mh-footer a:not(.mh-btn),.mh-footer a:not(.mh-btn):hover,.mh-footer a:not(.mh-btn):focus{color:inherit}
.mh-sec{padding:clamp(52px,7vw,96px) 0}
.mh-sec--alt{background-color:var(--mh-bg-alt);background-image:repeating-linear-gradient(90deg,transparent 0 46px,var(--mh-stripe) 46px 48px)}
.mh-lead{max-width:60ch}
.mh-sec-head{margin-bottom:clamp(24px,3.5vw,40px)}
.mh-sec-head h2{margin-bottom:.35em}

/* ---------- Buttons ---------- */
.mh-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;
  font:700 1.12rem/1 var(--mh-display);text-decoration:none;border:2px solid transparent;border-radius:4px;cursor:pointer}
.mh-btn--red{background:var(--mh-red);border-color:var(--mh-red)}
.mh-btn--red,.mh-btn--red:visited,.mh-btn--red:hover,.mh-btn--red:focus{color:var(--mh-light)}
.mh-btn--red:hover{background:#7a1818}
.mh-btn--gold{background:var(--mh-gold);border-color:var(--mh-gold)}
.mh-btn--gold,.mh-btn--gold:visited,.mh-btn--gold:hover,.mh-btn--gold:focus{color:var(--mh-night)}
.mh-btn--gold:hover{background:#f0b473}
.mh-btn--line{border-color:currentColor;background:transparent}
.mh-btn--line,.mh-btn--line:visited,.mh-btn--line:hover,.mh-btn--line:focus{color:inherit}
.mh-btn--line:hover{background:rgba(255,255,255,.12)}
.mh-btn--line-dark:hover{background:rgba(107,67,39,.1)}

/* Gingham tablecloth band */
.mh-gingham{height:33px;background-color:var(--mh-card);background-image:var(--mh-gingham);background-size:22px 22px}

/* ---------- Header, with the wood sign hanging into the hero ---------- */
.mh-header{position:relative;z-index:20;background:var(--mh-card);border-bottom:3px solid var(--mh-brown);color:var(--mh-ink);font:400 1.125rem/1.6 var(--mh-body)}
.mh-header__inner{position:relative;display:flex;align-items:center;gap:32px;min-height:84px}
.mh-sign{position:absolute;left:0;top:4px;display:block;width:clamp(170px,16vw,210px)}
.mh-sign__img{display:block;width:100%;height:auto;filter:drop-shadow(0 7px 8px rgba(0,0,0,.35))}
.mh-nav{margin-left:auto}
.mh-nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.mh-nav a{display:block;text-decoration:none;color:inherit;padding:8px 0;border-bottom:2px solid transparent}
.mh-nav a:hover,.mh-nav .current-menu-item>a{border-bottom-color:var(--mh-red)}
/* Anchor links (like Store, /#store) shouldn't look "current" */
.mh-nav .current-menu-item>a[href*="#"]:not(:hover){border-bottom-color:transparent}
.mh-header__cta{flex:none}
.mh-menu-toggle{display:none;margin-left:auto;font:700 1.05rem var(--mh-display);padding:10px 14px;border:2px solid var(--mh-rule);
  border-radius:4px;background:transparent;color:inherit;cursor:pointer}
.mh-menu-toggle:hover,.mh-menu-toggle:focus,.mh-menu-toggle[aria-expanded="true"]{background:var(--mh-brown);border-color:var(--mh-brown);color:var(--mh-light)}

/* ---------- Hero: a kitchen wall painted green, sunset light coming through the window ---------- */
.mh-hero{position:relative;color:var(--mh-light);--mh-focus:#e9a357;
  background:radial-gradient(ellipse 46% 72% at 72% 54%,rgba(233,163,87,.32),rgba(233,163,87,0) 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),var(--mh-green)}
.mh-hero .mh-wrap{position:relative;z-index:1;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,3vw,40px);
  align-items:end;padding:clamp(92px,7.4vw,102px) 0 0}
.mh-hero__text{align-self:center;padding-bottom:clamp(12px,2vw,24px)}
.mh-hero h1{font-size:clamp(2.4rem,4vw,3.3rem);margin:0 0 .3em;color:var(--mh-light)}
.mh-hero p{font-size:1.15rem;max-width:38ch;margin:0 0 1.1em}
.mh-actions{display:flex;flex-wrap:wrap;gap:14px}
.mh-shelf{position:absolute;top:6px;right:calc(max(20px,(100% - 1120px)/2) + 16px);width:clamp(190px,16vw,230px);height:auto;display:none}
@media (min-width:1000px){.mh-shelf{display:block}}
@media (prefers-reduced-motion:no-preference){
  .mh-hero h1{animation:mh-stamp-in .5s cubic-bezier(.2,.9,.3,1.2) both}
}
@keyframes mh-stamp-in{from{opacity:0;transform:scale(1.07) rotate(-1.2deg)}to{opacity:1;transform:none}}

/* The window: real photo behind an SVG frame (curtains, valance, muntins, sill) */
.mh-window{position:relative;width:100%;aspect-ratio:692/364;z-index:1}
.mh-window__pane{position:absolute;left:13.584%;top:7.692%;width:72.832%;height:83.516%;overflow:hidden;background:#5f86b3}
.mh-window__photo{position:absolute;left:0;top:7.237%;width:100%;height:92.763%;object-fit:cover;display:block}
.mh-window__frame{position:absolute;inset:0;width:100%;height:100%;display:block}
/* Window size: how far it bleeds past the content column into the right margin (0 on narrow screens).
   Raise 110px for a bigger window, lower it (or use 0px) for a smaller one that keeps more of the page above the fold. */
@media (min-width:901px){
  .mh-window{--mh-bleed:clamp(0px,calc((100vw - 1160px)/2),110px);width:calc(100% + var(--mh-bleed));margin-right:calc(-1 * var(--mh-bleed))}
}

/* ---------- Beadboard wainscot: the sill rests on its chair rail; hours and tickets sit on it ---------- */
.mh-wainscot{position:relative;z-index:1;background:var(--mh-beadboard);border-top:10px solid #fffaf1;box-shadow:0 -2px 0 var(--mh-brown);padding:18px 0 20px}
.mh-info{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mh-ticket{background:var(--mh-card);border:2px solid var(--mh-rule);padding:13px 20px;
  outline:2px dashed rgba(107,67,39,.4);outline-offset:-9px;color:var(--mh-ink)}
.mh-ticket__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 14px;margin-bottom:.25em}
.mh-ticket h3{font-size:1.25rem;color:var(--mh-green)}
.mh-ticket__text{font:400 1.2rem/1.35 var(--mh-body);margin:0}
.mh-ticket__text small{font-size:.9rem;color:var(--mh-muted)}
.mh-ticket__link{font:700 1.05rem var(--mh-display);white-space:nowrap}
.mh-ticket__link,.mh-ticket__link:visited,.mh-ticket__link:hover,.mh-ticket__link:focus{color:var(--mh-red)}

/* ---------- Plan your visit, with a chalkboard ---------- */
.mh-visit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.mh-visit h2{margin-bottom:.35em}
.mh-renamed{max-width:44ch;font-size:1.15rem;margin-bottom:1.4em}
.mh-chalk{background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.07),rgba(255,255,255,0) 60%),#2a382f;
  border:12px solid var(--mh-wood);border-radius:4px;color:#f3efe4;padding:26px 30px 28px;
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.35),0 12px 20px -8px rgba(0,0,0,.4)}
.mh-chalk h3{font-size:clamp(1.6rem,3vw,2.1rem);padding-bottom:.35em;margin-bottom:.6em;border-bottom:2px dashed rgba(243,239,228,.4);
  text-shadow:0 0 1px rgba(255,255,255,.5);color:#f3efe4}
.mh-chalk ul{list-style:none;margin:0;padding:0;font-family:var(--mh-display);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.3}
.mh-chalk li{display:flex;align-items:center;gap:.7em;padding:.3em 0;margin:0}
.mh-chalk li::before{content:"";flex:none;width:.7em;height:.7em;border:2px solid #f3efe4;border-radius:50%;opacity:.85}

/* ---------- Store: each product sits on its own shelf plank ---------- */
.mh-store{display:grid;grid-template-columns:repeat(2,1fr);gap:46px 26px}
.mh-label{position:relative;display:grid;grid-template-columns:150px 1fr;gap:22px;background:var(--mh-card);border:2px solid var(--mh-rule);padding:22px;align-items:start}
.mh-label::after{content:"";position:absolute;left:-13px;right:-13px;bottom:-16px;height:14px;border-radius:2px;
  background:linear-gradient(var(--mh-wood) 0 3px,var(--mh-brown) 3px);box-shadow:0 8px 10px -4px rgba(0,0,0,.35)}
.mh-label img,.mh-ph{aspect-ratio:1/1;width:100%;object-fit:cover;display:block}
.mh-ph{display:grid;place-items:center;text-align:center;padding:8px;font:italic 400 .9rem var(--mh-display);color:var(--mh-muted);
  background:repeating-linear-gradient(135deg,var(--mh-tan) 0 10px,#d8c8b6 10px 20px)}
.mh-label h3{font-size:1.7rem;color:var(--mh-red);text-transform:uppercase;line-height:1.05;margin:0 0 .4em}
.mh-label hr{border:0;border-top:1.5px solid var(--mh-rule);margin:0 0 .8em}
.mh-label p{margin:0;font-size:1.05rem}

/* ---------- Season chart on a gingham-bordered recipe card ---------- */
.mh-frame{padding:14px;background-color:var(--mh-card);background-image:var(--mh-gingham);background-size:14px 14px}
.mh-frame__in{background:var(--mh-card);padding:clamp(22px,3.5vw,40px)}
.mh-season{display:grid;grid-template-columns:1fr 1fr 1.25fr}
.mh-stage{padding:22px 24px 6px 0;border-top:12px solid var(--mh-gold)}
.mh-stage:nth-child(2){border-top-color:var(--mh-red);padding-left:24px}
.mh-stage:nth-child(3){border-top-color:var(--mh-brown);padding-left:24px}
.mh-stage h3{font-size:1.5rem;margin:0 0 .15em;color:var(--mh-ink)}
.mh-stage__when{font:italic 400 1.1rem var(--mh-display);color:var(--mh-muted);margin:0 0 .8em}
.mh-stage ul{list-style:none;margin:0;padding:0;font-size:1.2rem}
.mh-stage li{padding:6px 0;margin:0;border-bottom:1px dotted var(--mh-rule)}
.mh-season-note{margin:22px 0 0;font:italic 400 1.1rem var(--mh-display);color:var(--mh-muted)}

/* ---------- Maze: scalloped edge hangs into the dark, corn rows along the bottom ---------- */
.mh-maze{background:var(--mh-night);color:var(--mh-light);--mh-focus:#e9a357;position:relative;overflow:hidden;padding-bottom:clamp(110px,12vw,140px)}
.mh-maze::before{content:"";position:absolute;top:0;left:0;right:0;height:14px;z-index:1;
  background:radial-gradient(circle at 12px 0,var(--mh-bg) 11px,transparent 11.6px) 0 0/24px 14px repeat-x}
.mh-maze::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='70' viewBox='0 0 48 70'%3E%3Cg fill='%233d2716'%3E%3Crect x='23' y='10' width='2' height='60'/%3E%3Cpath d='M24 62C10 58 4 46 2 38 14 42 22 50 24 62Z'/%3E%3Cpath d='M24 62C38 58 44 46 46 38 34 42 26 50 24 62Z'/%3E%3Cpath d='M24 44C12 40 8 30 8 22 17 26 23 34 24 44Z'/%3E%3Cpath d='M24 44C36 40 40 30 40 22 31 26 25 34 24 44Z'/%3E%3Cellipse cx='24' cy='24' rx='4' ry='11' fill='%235a3b1e'/%3E%3C/g%3E%3C/svg%3E") repeat-x left bottom/48px 70px}
.mh-maze .mh-wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}
.mh-maze h2{color:var(--mh-gold);margin-bottom:.5em}
.mh-maze__times{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:1.4em 0 1.8em}
.mh-maze__times h3{font-size:1.35rem;color:var(--mh-light);margin:0 0 .3em}
.mh-maze__times p{margin:0;color:#eadcc6}
.mh-moon{width:clamp(120px,22vw,220px);aspect-ratio:1;border-radius:50%;background:var(--mh-gold);justify-self:center;box-shadow:inset -.55em -.2em 0 #d18a3c}

/* ---------- Owner: a note on a ruled recipe card ---------- */
.mh-owner .mh-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(28px,5vw,64px);align-items:center}
.mh-note-card{background-color:var(--mh-card);border-top:6px double var(--mh-red);padding:30px 34px;transform:rotate(-1deg);
  background-image:repeating-linear-gradient(transparent 0 37px,rgba(107,67,39,.16) 37px 38px);
  box-shadow:0 12px 20px -10px rgba(0,0,0,.35)}
.mh-note-card blockquote{margin:0;padding:0;border:0;background:none;quotes:none;font-style:normal}
.mh-note-card blockquote p{font-family:var(--mh-display);font-weight:400;font-size:clamp(1.6rem,2.8vw,2rem);line-height:38px;color:var(--mh-ink);margin:0 0 38px}
.mh-note-card cite{font:700 1.1rem/38px var(--mh-display);display:block;font-style:normal}
.mh-note-card .mh-btn{margin-top:22px}
.mh-give h3{font-size:1.5rem;color:var(--mh-green);margin:0 0 .6em}
.mh-give ul{list-style:none;margin:0;padding:0}
.mh-give li{padding:12px 0;margin:0;border-bottom:1px dotted var(--mh-rule);font-size:1.05rem}
.mh-give li strong{display:block;font:700 1.15rem var(--mh-display)}

/* ---------- Private events: an invitation with stitched edges ---------- */
.mh-events__box{background:var(--mh-card);border:2px solid var(--mh-rule);outline:2px dashed rgba(107,67,39,.4);outline-offset:-10px;
  padding:clamp(28px,4vw,44px);display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:center}
.mh-events h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:.4em}
.mh-events p{margin:0}
.mh-events .mh-actions{justify-content:flex-end}

/* ---------- Footer: green wall again, beadboard base for the legal line ---------- */
.mh-footer{background:var(--mh-green);color:var(--mh-light);--mh-focus:#e9a357;font:400 1.125rem/1.6 var(--mh-body)}
.mh-footer__grid{display:grid;grid-template-columns:auto 1fr 1fr;gap:clamp(24px,5vw,64px);padding:48px 0 44px;align-items:start}
.mh-footer__logo{display:block;width:170px;color:var(--mh-light)}
.mh-logo-img{display:block;aspect-ratio:1108/628;background:currentColor;
  -webkit-mask:url("../img/logo-mask.png") center/contain no-repeat;mask:url("../img/logo-mask.png") center/contain no-repeat}
.mh-footer h3{font-size:1.3rem;margin:0 0 .5em;color:var(--mh-light)}
.mh-footer p{margin:0 0 .5em}
.mh-footer ul{list-style:none;margin:0;padding:0}
.mh-footer li{margin-bottom:.3em}
.mh-footer li a{text-decoration:underline;text-underline-offset:.2em}
.mh-legal{background:var(--mh-beadboard);border-top:10px solid #fffaf1;box-shadow:0 -2px 0 var(--mh-brown);color:#3b2a1d;padding:14px 0;font-size:.95rem}
.mh-legal p{margin:0}

/* ---------- GeneratePress integration ---------- */
/* Full-bleed pages (the homepage template): let sections run edge to edge */
body.mh-fullbleed #page,
body.mh-fullbleed .site-content{max-width:none;width:100%;margin:0;padding:0;display:block;background:none}
/* Inner pages: keep GeneratePress's container, but clear the hanging sign */
body:not(.mh-fullbleed) #page{margin-top:96px}
/* Inner-page content boxes and links use the brand palette (also covers older GeneratePress versions that store hex colors) */
body:not(.mh-fullbleed) :is(.inside-article,.comments-area,.page-header,.paging-navigation){background-color:var(--mh-card)}
:where(.site-content) a{color:var(--mh-red)}
:where(.site-content) a:hover,:where(.site-content) a:focus{color:#7a1818}
.mh-sign{pointer-events:auto}

/* ---------- Small screens ---------- */
@media (max-width:900px){
  .mh-hero{background:radial-gradient(ellipse 85% 22% at 50% 92%,rgba(233,163,87,.3),rgba(233,163,87,0) 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),var(--mh-green)}
  .mh-header__inner{min-height:78px}
  .mh-menu-toggle{display:block}
  .mh-header__cta{display:none}
  .mh-nav{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:5;min-width:220px;margin:0;
    background:var(--mh-card);border:2px solid var(--mh-rule);border-radius:4px;padding:8px 0}
  .mh-nav.is-open{display:block}
  .mh-nav ul{flex-direction:column;gap:0}
  .mh-nav a{padding:12px 18px;border-bottom:0}
  .mh-hero .mh-wrap{grid-template-columns:1fr;padding-top:96px}
  .mh-hero p{max-width:none}
  .mh-info{grid-template-columns:1fr}
  .mh-visit,.mh-maze .mh-wrap,.mh-owner .mh-wrap,.mh-events__box{grid-template-columns:1fr}
  .mh-store,.mh-season{grid-template-columns:1fr}
  .mh-stage,.mh-stage:nth-child(2),.mh-stage:nth-child(3){padding:18px 0 6px;margin-bottom:14px}
  .mh-events .mh-actions{justify-content:flex-start}
  .mh-footer__grid{grid-template-columns:1fr}
  .mh-moon{display:none}
  .mh-note-card{transform:none}
}
@media (max-width:520px){
  .mh-label{grid-template-columns:1fr}
  .mh-label img,.mh-ph{aspect-ratio:16/9}
  .mh-maze__times{grid-template-columns:1fr}
}
