:root {
  color-scheme: light;
  --paper: #f8f2e7;
  --card: #fffaf0;
  --ink: #2b231d;
  --muted: #695749;
  --gold: #d6ae5d;
  --gold-text: #765220;
  --line: #d9c8ad;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.55 system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; overflow-x:clip; }
a { color: inherit; text-underline-offset: 4px; }
h1, h2, h3, .showcase figcaption { font-family: Georgia, serif; font-weight: 500; line-height: 1.05; }
h2 { margin: 0 0 14px; font-size: clamp(2rem, 4.5vw, 3.6rem); letter-spacing: -.04em; }
h3 { font-size: 1.35rem; margin: 0 0 12px; }
img { display: block; width: 100%; }
:focus-visible { outline: 3px solid #a36a27; outline-offset: 4px; }

.masthead { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 32px; padding:10px 3.6vw; border-bottom:1px solid #ae8a51; }
.brand { display:inline-flex; align-items:center; gap:15px; text-decoration:none; font:500 clamp(1.2rem,2.15vw,1.85rem)/1 Georgia,serif; text-transform:uppercase; }
.brand img { width:52px; height:auto; }
.brand small { display:block; margin-top:5px; font-size:.58em; letter-spacing:.23em; }
.main-nav, .category-nav { display:flex; align-items:center; flex-wrap:wrap; gap:10px clamp(14px, 2.3vw, 36px); }
.main-nav a, .category-nav a { text-decoration:none; font:500 1.04rem/1.3 Georgia,serif; }
.category-nav a:hover, footer a:hover { text-decoration:underline; }
.main-nav { gap: 8px; }
.masthead .main-nav a, .masthead .mobile-header > a, .masthead #mobile-menu summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 7px 13px;
  border: 1px solid #c8ab79;
  border-radius: 7px;
  background: var(--card);
  color: var(--ink);
  text-decoration: none;
}
.masthead .main-nav a.button, .masthead .header-cart {
  background: #9e513a;
  border-color: #9e513a;
  color: #fffaf0;
}
.masthead .main-nav a:hover, .masthead #mobile-menu summary:hover, .masthead #mobile-menu[open] summary { background: #f1e4cd; }
.masthead .main-nav a.button:hover, .masthead .header-cart:hover { background: #85412d; }
.header-cart span {
  min-width: 1.35rem;
  padding: 1px 4px;
  border-radius: 1rem;
  background: #f6e4bc;
  color: var(--ink);
  text-align: center;
  font: 650 .74rem/1.35 system-ui, sans-serif;
}
.menu-chevron {
  width: 6px;
  height: 6px;
  border: solid currentColor;
  border-width: 0 1px 1px 0;
  transform: translateY(-2px) rotate(45deg);
}
#mobile-menu[open] .menu-chevron { transform: translateY(2px) rotate(225deg); }

main { width:min(1280px, 92vw); margin:auto; }
.intro { display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:clamp(20px,4vw,56px); padding:clamp(18px,2.5vw,35px) 0; }
.intro-copy { padding:4px 0 5px clamp(0px,1vw,14px); }
.intro h1 { margin:0; font-size:clamp(3.3rem,6.8vw,6.4rem); line-height:.88; letter-spacing:-.055em; font-style:italic; }
.intro-copy p { margin:15px 0 10px; font:1.28rem Georgia,serif; }
.intro-copy a { font:1.12rem Georgia,serif; }
.pickup { background:#ce9782; border-radius:7px; padding:clamp(18px,2.2vw,32px); }
.pickup h2 { margin:0 0 4px; font-size:clamp(1.9rem,3.8vw,3rem); font-style:italic; }
.pickup p { margin:0 0 12px; font:1.13rem Georgia,serif; }
.pickup-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pickup-fields label { font-weight:600; }
.pickup-fields select, .pickup-fields input { margin-top:4px; background:var(--card); border-color:#865743; }
.pickup button { background:#8e351e; border-color:#78301e; padding-inline:22px; }
.pickup button:hover { background:#702b19; }
.collections { margin-inline:calc((100% - 100vi) / 2); overflow:clip; }
.category-nav { justify-content:center; padding:11px 12px; border-block:1px solid #ae8a51; }
.showcase { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
.showcase-piece { margin:0; min-width:0; }
.showcase img { height:clamp(235px,27.5vw,440px); object-fit:cover; }
.showcase figcaption { text-align:center; padding:9px 5px; font-size:clamp(1rem,1.65vw,1.5rem); }
.showcase figcaption a { text-decoration:none; }
.showcase figcaption a:hover { text-decoration:underline; }
.traiteur-link { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:12px; padding:10px 0; border-block:1px solid var(--line); }
.traiteur-link span { font:italic clamp(1.25rem,2.7vw,2rem) Georgia,serif; }
.traiteur-link a { font:1.05rem Georgia,serif; }
#pickup-summary { font-weight:650; color:var(--ink); }
.season, .stores { margin: clamp(36px, 7vw, 92px) 0; }
.season { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.season { background: #493327; color: #fff6e6; }
.season img { height: 100%; max-height: 450px; min-height: 290px; object-fit: cover; }
.season-copy, .stores-copy { align-self: center; padding: clamp(24px, 5vw, 68px); }
.eyebrow { color: var(--gold-text); margin: 0 0 12px; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 750; }
.season .eyebrow { color: #f2cd84; }
.actions { display: flex; gap: 12px 22px; align-items: center; flex-wrap: wrap; margin-top: 22px; }
.text-link { font-size: .92rem; font-weight: 650; }
.button, button { display: inline-block; padding: 10px 15px; border: 1px solid #60401e; border-radius: 3px; background: #68451f; color: #fff8e9; font: inherit; font-weight: 650; text-decoration: none; cursor: pointer; }
.button:hover, button:hover:not(:disabled) { background: #4c3015; }
.season .button { background: var(--gold); color: #2b231d; border-color: var(--gold); }
.season .button:hover { background: #e8c17b; }
button:disabled { opacity: .6; cursor: default; }

.content-block { margin: 0 0 44px; }
.content-block > p { color: var(--muted); margin: 0 0 24px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 10px; }
#products article, #requests article { border: 1px solid var(--line); background: var(--card); padding: 18px; }
.preview-note { color: var(--muted); font-size: .85rem; padding: 10px 0; border-top: 1px solid var(--line); }
.forms { display: grid; grid-template-columns: repeat(2,minmax(0, 1fr)); gap: 12px; }
.form-panel { background: var(--card); padding: clamp(15px, 3vw, 35px); border: 1px solid var(--line); min-width: 0; }
.form-panel h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
label { display: block; margin-bottom: 10px; font-size: .9rem; }
select, input, textarea { display: block; width: 100%; min-width: 0; padding: 8px; border: 1px solid #9e866a; border-radius: 3px; background: #fffdfa; color: var(--ink); font: inherit; }
textarea { resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0, 1fr)); gap: 0 10px; }
.line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--line); padding: 8px 0; }
#validation { margin-top: 12px; }
#validation summary { cursor: pointer; color: var(--muted); }
#requests article { margin-top: 8px; }

.stores { background: #eddfc7; }
.store-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px, 4vw, 42px); }
.store-list article { min-width: 0; }
.store-photos { position: relative; aspect-ratio: 4 / 3; }
.store-photos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.store-slideshow.is-ready .store-photos { touch-action: pan-y pinch-zoom; }
.store-slideshow.is-ready img { opacity: 0; transition: opacity 550ms ease-in-out; }
.store-slideshow.is-ready img.is-current { opacity: 1; }
.store-swipe-hint { display: none; margin: 6px 0 0; text-align: center; font-size: .85rem; }
@media (pointer: coarse) {
  .store-swipe-hint { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .store-slideshow.is-ready img { transition: none; }
}
.store-controls { display: flex; justify-content: center; align-items: center; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
.store-controls button {
  min-width: 44px;
  min-height: 44px;
  padding: 4px 12px;
  background: transparent;
  color: var(--ink);
  border: 1px solid #aa9477;
}
.store-dots { display: flex; }
.store-dots button { display: grid; place-items: center; padding: 0; border: 0; }
.store-dots button::after { content: ""; width: 9px; height: 9px; border: 1px solid currentColor; border-radius: 50%; }
.store-dots button[aria-current="true"]::after { background: currentColor; }
.store-controls button:hover { background: #f7eedf; }
.store-list h3 { margin: 14px 0 5px; }
.store-links { display: flex; flex-wrap: wrap; column-gap: 20px; }
.store-links a { padding: 8px 0; }
@media (max-width: 600px) {
  .store-list { grid-template-columns: 1fr; gap: 24px; }
}
address { font-style: normal; margin-bottom: 5px; }
footer { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; max-width: 1200px; margin: auto; padding: 18px 3vw 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: .87rem; }

@media (max-width: 700px) {
  .masthead { padding-inline:4vw; }
  .intro, .season, .forms { grid-template-columns:1fr; }
  .intro { gap:16px; }
  .showcase { grid-template-columns:1fr 1fr; }
  .showcase img { height:clamp(145px,45vw,260px); }
  .season img { height:250px; min-height:0; }
  .season img { object-position:center 42%; }
}
@media (max-width: 350px) {
  .pickup-fields { grid-template-columns:1fr; }
}

[hidden] { display: none !important; }
.subpage { padding: clamp(24px,5vw,70px) 0; margin: auto; min-height: 55vh; }
.narrow-page { max-width: 650px; }
.catalogue-page { max-width: 900px; }
.back-link { display: inline-block; margin-bottom: 26px; color: var(--muted); font-size: .92rem; }
.subpage h2 { font-size: clamp(2.65rem,6vw,5rem); font-style: italic; }
.subpage h2:focus { outline: none; }
#products { margin: 22px 0; border-top: 1px solid var(--line); }
#products article { display: grid; grid-template-columns: 1fr minmax(150px, .75fr) auto; gap: 14px; align-items: end; padding: 14px 0; background: transparent; border: 0; border-bottom: 1px solid var(--line); }
#products article h3 { align-self: center; }
#products article h3, #products label { margin: 0; }
#products select { margin-top: 4px; }
#checkout-heading { margin-top: 28px; }
#validation { max-width: 650px; margin: 0 auto 32px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 650px) {
  #products article { grid-template-columns: 1fr 1fr; gap: 10px; }
  #products article h3 { grid-column: 1 / -1; }
}
@media (max-width: 380px) {
  #products article { grid-template-columns: 1fr; }
  #products article button { justify-self: start; }
}

.catalogue-nav { display:flex; gap:8px 22px; flex-wrap:wrap; margin:20px 0; border-bottom:1px solid var(--line); }
.catalogue-nav a { text-decoration:none; padding:8px 2px; border-bottom:2px solid transparent; }
.catalogue-nav a[aria-current="page"] { color:#8e351e; border-bottom-color:#8e351e; font-weight:700; }
.unit-price { align-self:center; }

.showcase-piece { display:block; text-decoration:none; }
.showcase-piece figure { margin:0; }
.showcase-piece:hover figcaption { text-decoration:underline; }
.showcase-piece:focus-visible, .feature-photo:focus-visible { outline-offset:-4px; }
.feature-photo { display:block; }

.catalogue-page { max-width: 1160px; }
.catalogue-search { max-width: 400px; }
.catalogue-search input { margin-top: 5px; }
#products { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr)); gap:14px; align-items:start; border:0; }
#products article { display:block; overflow:hidden; border:1px solid var(--line); background:var(--card); padding:0; }
#products figure { position:relative; margin:0; }
#products figure img { width:100%; aspect-ratio: 4 / 3; object-fit:contain; background:#f4f1eb; }
#products figure button { position:absolute; right:6px; bottom:6px; font-size:.73rem; padding:4px 7px; }
.product-body { display:grid; gap:10px; padding:15px; }
#products .product-body button { justify-self:start; }

.season[hidden] { display:none; }

.mobile-header, .mobile-actions, .mobile-family { display: none; }

@media (max-width: 700px) {
  .masthead { flex-wrap: nowrap; gap: 8px; }
  .brand { gap: 7px; font-size: clamp(.9rem, 4vw, 1.24rem); }
  .brand img { width: 37px; }
  .brand small { letter-spacing: .12em; }
  .main-nav, .intro-copy > a, .intro .pickup, .category-nav, .traiteur-link, .catalogue-nav { display: none; }
  .mobile-header { display: flex; align-items: center; gap: 6px; font-size: .82rem; white-space: nowrap; }
  .masthead .mobile-header > a, .masthead #mobile-menu summary { padding-inline: 9px; }
  #mobile-menu { position: relative; }
  #mobile-menu summary { cursor: pointer; list-style: none; }
  #mobile-menu summary::-webkit-details-marker { display: none; }
  #mobile-menu nav { position: absolute; z-index: 2; top: calc(100% + 6px); right: 0; min-width: 174px; padding: 6px; border-radius: 7px; background: var(--card); border: 1px solid var(--line); box-shadow: 0 5px 14px #2b231d22; }
  #mobile-menu nav a { display: flex; align-items: center; min-height: 44px; padding: 6px 9px; border-radius: 4px; text-decoration: none; }
  #mobile-menu nav a:hover, #mobile-menu nav a:focus-visible { background: #f1e4cd; }
  .intro { padding: 22px 0 17px; }
  .intro h1 { font-size: clamp(2.6rem, 10vw, 4rem); }
  .intro-copy p { margin: 10px 0 0; font-size: 1.03rem; }
  .mobile-actions { display: flex; align-items: center; gap: 8px 16px; flex-wrap: wrap; }
  .mobile-actions > a { display: inline-flex; align-items: center; min-height: 44px; }
  .showcase { gap: 10px; }
  .collections { margin-inline: 0; }
  .showcase img { height: clamp(110px, 34vw, 225px); border-radius: 3px; }
  .showcase figcaption { padding: 5px; }
  .stores { margin: 27px 0; }
  .stores h2 { font-size: 1.75rem; }
  .mobile-family { display: block; }
  .mobile-family select, .catalogue-search input { min-height: 44px; font-size: 16px; }
  .subpage { padding-top: 18px; }
  .back-link { margin-bottom: 14px; }
  .subpage h2 { font-size: clamp(2.25rem, 9vw, 3rem); }
  #products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .product-body { padding: 9px; gap: 7px; }
  #products article h3 { font-size: 1.02rem; overflow-wrap: anywhere; }
  #products .product-body button { min-height: 44px; padding: 5px 8px; font-size: .82rem; }
  #products .product-body select { font-size: 16px; }
}

.event-hero { display:grid; grid-template-columns:1fr 1.08fr; align-items:stretch; background:var(--card); margin-top:14px; }
.event-hero-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(25px,5.5vw,84px); }
.event-hero h1 { margin:0; font-size:clamp(3rem,6.4vw,6.5rem); letter-spacing:-.055em; line-height:.94; }
.event-hero-copy p { margin:22px 0 25px; font:italic clamp(1.14rem,2.1vw,1.65rem)/1.32 Georgia,serif; }
.event-hero-copy p::before { content:""; display:block; width:62px; height:1px; margin-bottom:18px; background:#ae8a51; }
.hero-slideshow { min-width:0; align-self:center; }
.hero-slideshow .store-controls, .hero-slideshow .store-swipe-hint { display:none; }
.hero-slideshow .store-photos { aspect-ratio:3 / 4; max-height:740px; margin-inline:auto; }
.event-actions { display:flex; flex-wrap:wrap; gap:10px; }
.event-button { background:#8e351e; border-color:#8e351e; }
.event-button:hover { background:#702b19; }
.event-outline { background:transparent; color:#8e351e; border-color:#8e351e; }
.event-outline:hover { background:#f3e4d7; color:#702b19; }
.event-section-title { display:flex; align-items:center; gap:clamp(10px,3vw,32px); justify-content:center; text-align:center; font-style:italic; margin:clamp(26px,5vw,64px) auto 20px; max-width:min(1280px,92vw); }
.event-section-title::before,.event-section-title::after { content:""; height:1px; flex:1; background:#ae8a51; }
.collections .category-nav { display:none; }
.event-feature { display:grid; grid-template-columns:1fr 1fr; align-items:center; background:#eddfc7; margin:clamp(36px,7vw,92px) 0; }
.event-slideshow { padding: clamp(12px, 2vw, 26px); }
.event-slideshow .store-photos { aspect-ratio: 4 / 5; background: #e4d3b8; overflow: hidden; border-radius: 5px; }
.event-slideshow .store-controls { gap: 8px; }
.event-slide-count { min-width: 3em; text-align: center; color: var(--muted); font-variant-numeric: tabular-nums; }
.event-feature-copy { padding:clamp(22px,4vw,60px); }
.catalogue-pickup { margin:14px 0 20px; max-width:620px; }
.catalogue-pickup summary { cursor:pointer; text-underline-offset:3px; }
.catalogue-pickup .pickup { margin-top:9px; }
@media(max-width:700px){
  .event-hero,.event-feature { grid-template-columns:1fr; }
  .event-hero { margin-top:8px; }
  .hero-slideshow { grid-row:1; }
  .event-hero-copy { align-items:center; text-align:center; padding:25px 16px 29px; }
  .event-hero h1 { font-size:clamp(2.7rem,10vw,4.4rem); }
  .event-hero-copy p { margin:15px 0 19px; }
  .event-hero-copy p::before { margin:0 auto 11px; }
  .event-actions { justify-content:center; }
  .event-actions .event-outline { order:-1; }
  .event-actions a { min-height:44px; }
  .event-section-title { font-size:clamp(1.6rem,6vw,2.4rem); }
}

.history { max-width: 1140px; margin: clamp(35px,6vw,82px) auto; padding: clamp(16px,3.3vw,42px) 0 0; border-block-start: 1px solid #ae8a51; }
.history-intro { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(18px,5vw,68px); align-items:center; }
.history-kicker { margin:0 0 9px; color:var(--gold-text); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.history h2 { margin:0 0 15px; font-size:clamp(2.45rem,5vw,4.35rem); }
.history-copy > p:last-child { margin:0; max-width:45ch; font:clamp(1.15rem,2.1vw,1.42rem)/1.45 Georgia,serif; }
.history figure { margin:0; }
.history img { width:100%; height:clamp(170px,24vw,310px); object-fit:cover; object-position:center 36%; }
.history figcaption { margin-top:6px; font-size:.78rem; color:var(--muted); }
.history-details { margin:12px 0 0; }
.history-details summary { width:max-content; cursor:pointer; color:#8e351e; font-weight:650; padding:9px 0; min-height:44px; text-underline-offset:4px; }
.history-details summary span { text-decoration:underline; }
.history-less, .history-details[open] .history-more { display:none; }
.history-details[open] .history-less { display:inline; }
.history-story { max-width:68ch; padding:12px 0 4px; }
.history-story h3 { margin:20px 0 7px; }
.history-story p { margin:0 0 16px; }
@media(max-width:700px){
  .history-intro { grid-template-columns:1fr; }
  .history img { height:clamp(145px,48vw,245px); }
}

.home-discovery-actions { margin-top: 16px; gap: 8px 18px; }
@media (max-width: 700px) {
  .event-hero-copy { grid-row: 1; }
  .hero-slideshow { grid-row: 2; }
  .home-order-actions .event-outline { order: 0; }
}

.masthead {
  flex-direction: column;
  gap: 14px;
  padding-block: 17px 12px;
}
.masthead .brand {
  justify-content: center;
  gap: clamp(12px, 2vw, 22px);
  text-align: center;
  font-size: clamp(2rem, 4.2vw, 3.25rem);
}
.masthead .brand img { width: clamp(57px, 7vw, 82px); }
.masthead .brand small { font-size: .49em; letter-spacing: .16em; }
.masthead .main-nav { justify-content: center; }

.home-order-actions { margin-top: clamp(20px, 3vw, 32px); }

.event-hero-copy .home-location {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 1.1rem;
}
.event-hero-copy .home-location::before { display: none; }
.event-hero-copy .home-tagline { margin: 20px 0 0; }
.home-reviews { margin: clamp(36px, 7vw, 80px) 0; text-align: center; }
.home-reviews .event-actions { justify-content: center; }
