/* The existing shop-paper palette, with a calmer reading rhythm. */
:root { --section-space: clamp(64px, 7vw, 104px); }
html { scroll-padding-top: 100px; }
::selection { background: var(--yellow); color: var(--ink); }
input, textarea { caret-color: var(--red); }
main h1, main h2, main h3 { letter-spacing: -.025em; overflow-wrap: break-word; }
main h2 { font-size: clamp(34px, 4.2vw, 60px); line-height: 1.04; }
.section { padding-block: var(--section-space); }
.section-heading { margin-bottom: 38px; }
.section-heading--split { gap: 48px; }
.section-heading h2, .guide__intro h2, .story__copy h2, .visit h2, .review-story h2 { font-size: clamp(34px, 4.2vw, 60px); line-height: 1.04; }
.section-heading > p { font-size: 16px; line-height: 1.65; }
.button:hover { transform: translateY(-2px); box-shadow: none; }
.site-header { background: var(--paper); backdrop-filter: none; }
.hero, .hero__content { min-height: 640px; }
.hero__paper { padding: 42px 44px 48px; width: min(600px, 60vw); box-shadow: none; }
.hero__paper h1 { font-size: clamp(42px, 4.65vw, 70px); line-height: .99; max-width: 12ch; letter-spacing: -.03em; text-wrap: balance; }
.hero__lead { margin-top: 25px; font-size: 17px; }
.hero__actions { gap: 22px; margin-top: 28px; }
.hero-shopline { margin: 33px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: #625449; }
.intro-strip__grid { min-height: 88px; }
.intro-strip p { font-size: 21px; }

/* Photograph-led selection; the full catalog is deliberate disclosure. */
.taste-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; }
.taste-item { position: relative; grid-column: span 5; min-width: 0; min-height: 280px; overflow: hidden; color: var(--white); background: var(--green); text-decoration: none; }
.taste-item > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.taste-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(33,22,16,.9), rgba(33,22,16,.08) 78%); pointer-events: none; }
.taste-item > div { position: relative; z-index: 1; padding: 28px; height: 100%; display: flex; flex-direction: column; justify-content: end; }
.taste-item h3 { max-width: 15ch; margin: 0 0 9px; font-size: clamp(27px, 2.5vw, 36px); line-height: 1.05; }
.taste-item p { max-width: 36ch; margin: 0 0 15px; font-size: 15px; line-height: 1.55; }
.taste-item span { align-self: start; padding-bottom: 4px; border-bottom: 1px solid var(--yellow); font-size: 14px; font-weight: 700; }
.taste-item:hover > img { transform: scale(1.025); }
.taste-item--large { grid-column: span 7; grid-row: span 2; min-height: 578px; }
.taste-item--large h3 { font-size: clamp(35px, 3.4vw, 48px); }
.taste-item--gift > img { object-position: 50% 78%; }
.taste-item--small { grid-column: span 4; min-height: 285px; }
.taste-item--small h3 { font-size: 29px; }
.catalog-expand { margin-top: 36px; border-block: 1px solid var(--line); }
.catalog-expand > summary, .gallery-expand > summary, .wine-prices > summary { padding: 24px 0; font-family: var(--serif); font-size: 27px; cursor: pointer; line-height: 1.2; }
.catalog-expand > summary span { margin-left: 20px; font: 14px var(--sans); color: #625449; }
.catalog-expand[open] > summary { margin-bottom: 12px; }
.catalog-tools { box-shadow: none; }
.category-index { display: none; }
.catalog-status { margin: 22px 0 14px; align-items: center; }
.result-count { font-size: 14px; }
.product-list { border-color: var(--line); background: var(--line); }
.product-row { min-height: 210px; }
.product-row__index { display: none; }
.product-row__name { margin-top: 8px; font-size: 25px; line-height: 1.1; }
.product-row__desc { font-size: 15px; }
.category-story { max-width: 78ch; padding: 28px 0 32px; }
.category-story h3 { margin: 0 0 12px; font-size: 30px; }
.category-story p { margin: 0; font-size: 16px; line-height: 1.7; }
.catalog-guide-link { display: inline-block; margin-top: 22px; font-size: 15px; text-underline-offset: 4px; }

.service--large { min-height: 0; }
.service h3 { margin-top: 0; }
.service--large h3 { margin-top: 26px; font-size: 44px; }
.service-plank-photo { width: 100%; height: 265px; object-fit: cover; }
.service--image img { object-position: 50% 78%; }
.service--dark { display: flex; flex-direction: column; }
.service small { font-size: 13px; }
.partners { margin-top: 18px; font-size: 14px; }
.partners > summary { cursor: pointer; }
.partners p { font-size: 14px; line-height: 1.8; }
.gallery-expand { margin-top: 28px; border-top: 1px solid var(--line); }
.gallery-expand .catering-slider-section { margin-top: 0; padding-top: 14px; }
.catering-photo-item { flex: 0 0 auto; padding: 0; border: 0; background: transparent; text-align: inherit; cursor: pointer; }

.builder-examples { margin-bottom: 35px; display: grid; grid-template-columns: 1.45fr .55fr; gap: 20px; }
.builder-examples figure { margin: 0; min-width: 0; }
.builder-examples img { width: 100%; height: 280px; object-fit: cover; }
.builder-examples figure:nth-child(2) img { object-position: 50% 78%; }
.builder-examples figcaption { padding-top: 11px; color: var(--paper); font-size: 14px; line-height: 1.5; }
.builder-examples > p { grid-column: 1 / -1; margin: 0; font-size: 13px; color: var(--paper); }
.builder__summary, .guide-form, .hours-card { box-shadow: 0 12px 30px rgba(33,22,16,.15); }
.builder__summary h3 { font-size: 34px; line-height: 1.08; }
.board-builder .section-heading h2 { max-width: 16ch; }
.summary-note { font-size: 14px; line-height: 1.6; }
.practical-info { margin-top: 46px; border-top: 1px solid rgba(244,234,216,.45); padding-top: 28px; }
.practical-info h3 { margin: 0 0 24px; font-size: 32px; }
.practical-info details { padding: 17px 0; border-top: 1px solid rgba(244,234,216,.25); }
.practical-info summary { cursor: pointer; font-weight: 600; line-height: 1.5; }
.practical-info p { max-width: 74ch; margin: 16px 0 5px; color: var(--paper); font-size: 15px; line-height: 1.7; }
.practical-info > a { display: inline-block; margin-top: 20px; color: var(--yellow); text-underline-offset: 4px; }
.cheese-guide::before { display: none; }
.guide__grid { gap: 65px; }
.guide__stamp { display: none; }
.guide-form { border: 1px solid var(--line); }
.story__photo-wrapper { height: auto; aspect-ratio: 750 / 541; overflow: hidden; }
.story__photo img { width: 100%; height: 100%; object-fit: cover; }
.story__copy blockquote { margin: 26px 0; padding: 20px 0; border-left: 0; border-block: 1px solid var(--line); font-size: 26px; }
.local-story { margin-top: 70px; display: grid; grid-template-columns: .65fr 1fr; gap: 55px; align-items: center; padding-top: 50px; border-top: 1px solid var(--line); }
.local-story img { width: 100%; max-height: 380px; object-fit: contain; background: var(--paper-deep); }
.local-story h3 { max-width: 18ch; margin: 0 0 18px; font-size: 40px; line-height: 1.06; }
.local-story p { max-width: 52ch; line-height: 1.7; }
.local-story a { text-underline-offset: 4px; font-size: 15px; }

.wine-section { background: var(--paper-deep); }
.wine-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.wine-intro h2 { margin: 0 0 24px; max-width: 13ch; }
.wine-intro p { max-width: 55ch; line-height: 1.7; }
.wine-intro img { width: 100%; height: 370px; object-fit: cover; }
.wine-intro .button { margin-top: 14px; }
.wine-prices { margin-top: 38px; border-block: 1px solid var(--line); }
.table-scroll { overflow-x: auto; }
.wine-prices table { border-collapse: collapse; width: 100%; font-size: 15px; }
.wine-prices caption { padding-bottom: 16px; text-align: left; }
.wine-prices th, .wine-prices td { padding: 16px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.wine-prices th[scope=row] { font-weight: 500; max-width: 46ch; }
.wine-prices td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.wine-prices > p { font-size: 14px; margin: 20px 0 26px; }
.real-reviews { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 42px; align-items: start; }
.real-reviews h2 { margin: 0 0 18px; font-size: 42px; }
.real-reviews > div p { font-size: 15px; }
.real-reviews a { font-size: 14px; text-underline-offset: 4px; }
.real-reviews figure { margin: 0; padding-top: 25px; border-top: 1px solid var(--line); }
.real-reviews blockquote { margin: 0 0 22px; font: 28px/1.2 var(--serif); }
.real-reviews figcaption { color: #625449; font-size: 13px; }
.map-panel { margin-top: 28px; padding: 24px; background: var(--paper); color: var(--ink); display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.map-address { display: grid; gap: 4px; flex: 1 1 100%; }
.map-address strong { font-family: var(--serif); font-size: 28px; }
.map-address span { font-size: 14px; }
.map-panel button { border: 1px solid var(--ink); padding: 10px 15px; color: var(--ink); background: transparent; cursor: pointer; }
.map-panel a { font-size: 14px; text-underline-offset: 4px; }
.map-panel:has(iframe) { padding: 0; }
.map-panel iframe { width: 100%; height: 300px; border: 0; }
.social-links { margin-top: 18px; display: flex; gap: 18px; }
.footer__note { color: var(--paper); font-size: 14px; }
.product-dialog { max-height: calc(100dvh - 40px); overflow-y: auto; box-shadow: 0 14px 45px rgba(33,22,16,.35); }
.product-dialog h2 { font-size: clamp(32px, 4vw, 46px); line-height: 1.06; overflow-wrap: anywhere; }

@media (max-width: 1000px) {
  .hero__paper { width: min(600px, 72vw); }
  .section-heading--split { grid-template-columns: 1fr; gap: 22px; }
  .section-heading > p { max-width: 65ch; }
  .taste-item--large { grid-column: span 6; }
  .taste-item:not(.taste-item--large):not(.taste-item--small) { grid-column: span 6; }
  .guide__grid, .wine-intro { gap: 35px; }
  .local-story { gap: 35px; }
  .real-reviews { grid-template-columns: 1fr 1fr; }
  .real-reviews > div { grid-column: 1 / -1; }
}
@media (max-width: 650px) {
  :root { --shell: calc(100vw - 32px); }
  html { scroll-padding-top: 76px; }
  .hero, .hero__content { min-height: 570px; }
  .hero__content { padding-block: 32px 42px; }
  .hero__paper { width: 100%; padding: 30px 26px 37px; }
  .hero__paper h1 { font-size: clamp(39px, 10.8vw, 52px); max-width: 13ch; line-height: 1.02; }
  .hero__lead { font-size: 16px; margin-top: 21px; }
  .hero__actions { gap: 18px; }
  .hero-shopline { margin-top: 26px; font-size: 12px; line-height: 1.7; }
  .intro-strip__grid { grid-template-columns: 1fr; }
  .intro-strip p, .intro-strip a { border-right: 0; padding: 18px 0; }
  .intro-strip a { border-top: 1px solid var(--line); }
  .intro-strip p { display: none; }
  .section-heading h2, .guide__intro h2, .story__copy h2, .visit h2, .review-story h2 { font-size: 36px; }
  .taste-gallery { gap: 14px; }
  .taste-item--large { grid-column: 1 / -1; grid-row: auto; min-height: 345px; }
  .taste-item:not(.taste-item--large):not(.taste-item--small) { grid-column: 1 / -1; min-height: 270px; }
  .taste-item--small { grid-column: 1 / -1; min-height: 210px; }
  .taste-item > div { padding: 24px; }
  .taste-item h3, .taste-item--small h3 { font-size: 29px; }
  .taste-item--large h3 { font-size: 36px; }
  .catalog-expand > summary { font-size: 25px; }
  .catalog-expand > summary span { display: block; margin: 9px 0 0; font-size: 13px; }
  .catalog-tools { padding: 18px; }
  .catalog-status { gap: 15px; }
  .product-row__name { font-size: 26px; }
  .service { padding: 24px; }
  .service--image { padding: 0; min-height: 280px; }
  .service--image img { max-height: 380px; }
  .service--large h3 { font-size: 36px; }
  .service-plank-photo { height: 220px; }
  .gallery-expand > summary, .wine-prices > summary { font-size: 25px; }
  .builder-examples { grid-template-columns: 1fr; gap: 22px; }
  .builder-examples img { height: 235px; }
  .builder-examples figure:nth-child(2) { display: grid; grid-template-columns: .55fr 1fr; gap: 18px; align-items: center; }
  .builder-examples figure:nth-child(2) img { height: 170px; }
  .builder-examples figure:nth-child(2) figcaption { padding: 0; }
  .builder { gap: 26px; }
  .builder__summary h3 { font-size: 31px; }
  .guide__grid, .local-story, .wine-intro, .real-reviews { grid-template-columns: 1fr; }
  .guide__grid { gap: 28px; }
  .local-story { margin-top: 45px; padding-top: 35px; gap: 28px; }
  .local-story img { max-height: 370px; }
  .local-story h3 { font-size: 34px; }
  .wine-intro img { height: 260px; }
  .wine-intro h2 { font-size: 38px; }
  .wine-prices table { font-size: 14px; min-width: 550px; }
  .real-reviews { gap: 30px; }
  .real-reviews > div { grid-column: auto; }
  .real-reviews blockquote { font-size: 27px; }
  .map-panel { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .taste-item > img, .button { transition: none; }
  .taste-item:hover > img, .button:hover { transform: none; }
}

.catering-lightbox-overlay { margin: 0; border: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; }
.catering-lightbox-overlay::backdrop { background: rgba(33,22,16,.8); }
.catering-lightbox-container { max-height: calc(100dvh - 48px); overflow-y: auto; }
@media (max-width: 650px) {
  .wine-prices table { table-layout: fixed; min-width: 0; }
  .wine-prices th:first-child { width: 52%; }
  .wine-prices th, .wine-prices td { padding: 12px 6px; white-space: normal; overflow-wrap: break-word; }
  .taste-item--small { grid-column: span 6; min-height: 225px; }
  .taste-item--small > div { padding: 16px; }
  .taste-item--small h3 { font-size: 23px; }
  .taste-item--small span { font-size: 12px; }
  .taste-item--small:last-child { grid-column: 1 / -1; min-height: 190px; }
}
@media (max-width: 360px) {
  .service:not(.service--large) h3 { font-size: 27px; }
}
