/* Shared layout scale. Loaded after the component and wordmark styles. */
:root {
    --content-max: 1240px;
    --header-max: 1500px;
    --site-gutter: clamp(20px, 3vw, 48px);
    --section-space: clamp(44px, 5vw, 76px);
}
body { font-size: 17px; line-height: 1.65; }
main :is(section, article, aside, div, figure) { min-width: 0; }
main :is(h1, h2, h3) { overflow-wrap: break-word; text-wrap: balance; }
main p { text-wrap: pretty; }
body :is(.hero, .page-hero, .guide-hero, .restaurant-hero, .experience-hub-copy, .experience-detail-copy, .error-page) h1 {
    font-size: clamp(2.5rem, 5.2vw, 5rem); line-height: 1.04; letter-spacing: -.025em;
}
body :is(.hero, .guide-hero, .experience-hub-copy, .experience-detail-copy) h1 em { font-size: .8em; line-height: 1.1; }
body main h2:not(.card-body h2):not(.catalog-card h2):not(.menu-groups h2):not(.values h2):not(.menu-philosophy h2) {
    font-size: clamp(1.8rem, 3.1vw, 3rem); line-height: 1.12;
}
.display { font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.1; }
.lead { font-size: 1.125rem; line-height: 1.7; }
.main-nav { gap: clamp(14px, 1.4vw, 24px); }
.main-nav a { font-size: .8125rem; letter-spacing: .025em; }
.header-book { font-size: .8125rem; margin-left: 20px; }
.brand-text { font-size: 1rem; }
.hero { min-height: 600px; height: min(700px, 90svh); }
.hero > picture, .hero-media { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-content { top: 54%; left: max(var(--site-gutter), calc((100% - var(--content-max)) / 2)); width: min(700px, 85%); transform: translateY(-50%); }
.hero h1 em { margin-left: 0; }
.hero-intro, .hero-actions { margin-left: 0; }
.hero-intro { max-width: 56ch; }
.page-hero { padding-top: 140px; padding-bottom: 64px; }
.visual-page-hero { min-height: 0; }
.page-hero h1 { max-width: 960px; }
.page-hero > p:not(.eyebrow) { max-width: 68ch; font-size: 1rem; }
.page-hero .demo-notice { font-size: .875rem; }
.territories-hero .breadcrumbs { margin-bottom: 24px; }
.guide-hero, .experience-hub-hero { min-height: 610px; }
.guide-hero-copy, .experience-hub-copy { bottom: 50px; max-width: 850px; }
.guide-hero-copy > p:not(.eyebrow), .experience-hub-copy > p:not(.eyebrow) { max-width: 62ch; }
.restaurant-hero { height: 600px; }
.restaurant-hero > div { bottom: 48px; }
.has-js .reveal, .has-js .reveal.is-visible { opacity: 1; transform: none; transition: none; }
/* A readable rhythm without large fixed blank intervals. */
:is(.manifesto, .editorial, .image-editorial, .restaurants-section, .experience-section, .territory, .restaurant-detail, .season-journal, .imaginary-journey, .fiction-statement, .signature-dishes, .menu-page, .guide-answer, .guide-chapters, .guides-index, .experience-index, .experience-restaurants, .reservation-page, .contact-page, .visit-guide, .faq-section) { padding-block: var(--section-space); }
:is(.manifesto-grid, .editorial, .image-editorial, .territory-grid, .restaurant-detail, .entity-answer, .territory-reading, .guide-answer, .experience-related-guides, .reservation-page, .contact-page) { gap: clamp(28px, 4vw, 64px); }
.manifesto-grid { grid-template-columns: 1fr 1.15fr .85fr; }
.section-kicker { margin-bottom: 24px; }
.section-head { gap: 28px; }
.section-note { max-width: 46ch; }
.featured-grid, .listing { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
.featured-grid { margin-top: 40px; }
.listing { padding-block: 48px 64px; }
.card-image { aspect-ratio: 3/2; }
.card-body h2 { font-size: 1.6rem; line-height: 1.15; }
.card-body p { font-size: .9375rem; line-height: 1.6; }
.card-body .card-menu { flex-wrap: wrap; gap: 8px 16px; }
.card-body .card-menu span { font-size: .875rem; }
.directory-tools { grid-template-columns: 1.1fr 1.5fr 1fr; padding-top: 36px; }
.directory-refinements { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.directory-refinements select { min-width: 0; }
.directory-tools :is(input, select) { min-width: 0; max-width: 100%; }
.directory-filters button, .guide-tools button, .experience-tools button { font-size: .8125rem; letter-spacing: .025em; padding: 10px 13px; }
.collection-visuals, .restaurant-ambiences { align-items: start; padding-block: 24px 64px; }
.collection-visuals figure, .collection-visuals figure:nth-of-type(2), .restaurant-ambiences figure, .restaurant-ambiences figure:nth-of-type(2) { min-height: 0; height: 380px; }
.collection-visuals img, .restaurant-ambiences img { min-height: 0; }
.editorial-compass-visual { min-height: 0; height: 460px; }
.editorial-compass-visual picture, .editorial-compass-visual img { min-height: 0; }
.image-editorial img { min-height: 0; height: auto; max-height: 520px; aspect-ratio: 4/3; object-position: center; }
.image-editorial img[src*="portrait"] { aspect-ratio: 4/5; max-height: 600px; }
.landscape-band { height: 420px; }
.territory-main img { height: 450px; }
.menu-feature, .signature-menu { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 0; }
.menu-visual, .signature-menu-image { position: relative; min-height: 0; }
.menu-visual img, .signature-menu-image img { position: absolute; inset: 0; width: 100%; height: 100%; }
.menu-copy, .signature-menu-copy { padding: clamp(32px, 4vw, 64px); }
.signature-menu-copy li { grid-template-columns: 82px minmax(0, 1fr); gap: 16px; }
.signature-menu-copy li strong { font-size: 1.2rem; }
.signature-menu-copy .signature-menu-note { font-size: .875rem; }
.signature-menu-image { align-self: start; height: 600px; }
.signature-menu { align-items: start; }
.signature-menu-copy { padding-top: 40px; padding-bottom: 40px; }
.restaurant-connections { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.restaurant-connections > div:first-child { max-width: 80ch; }
.restaurant-connections > div:last-child ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.restaurant-connections > div:last-child li { display: flex; }
.restaurant-connections > div:last-child a { display: flex; align-items: center; width: 100%; padding: 14px; font-size: .9375rem; }
.next-table a { height: 360px; }
.next-table strong { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.1; }
.restaurant-detail aside { padding-left: 28px; }
.territory-card figure { min-height: 0; height: 320px; }
.territory-card a { grid-template-columns: 40% minmax(0, 1fr); }
.territory-card > a > div { padding: 28px; }
.territory-card h3 { font-size: 2rem; }
.territory-card p { font-size: .9375rem; }
.territory-card:first-child { grid-column: auto; }
.territory-reading { padding-block: 48px; }
.territory-listing { padding-top: 36px; }
.catalog-opening-images { min-height: 0; height: 480px; }
.seasonal-atlas figure { min-height: 0; height: 320px; }
.catalog-chapter { padding-block: 48px; contain-intrinsic-size: auto 700px; }
.catalog-chapter-head { gap: 36px; }
.catalog-chapter-head figure { margin: 0; }
.catalog-chapter-head img { width: 100%; height: auto; max-height: 300px; object-fit: cover; aspect-ratio: 3/2; }
.wine-hero, .wine-hero > .section { min-height: 520px; }
.wine-region { padding-block: 48px; contain-intrinsic-size: auto 600px; }
.guide-toc { padding-block: 28px; }
.guide-toc a { min-height: 80px; }
.guide-signals > div { min-height: 0; padding-block: 28px; }
.guide-chapter { padding-block: 40px; gap: 28px; grid-template-columns: 54px minmax(0, 1fr) minmax(220px, .5fr); }
.guide-chapter-copy > p, .experience-chapter > div > p { max-width: 68ch; }
.guide-chapter aside { padding-left: 22px; }
.guide-table-links a { min-height: 0; padding: 16px; }
.guide-matrix .section, .guide-sources { padding-block: 48px; }
.guide-matrix { padding-block: 0; }
.guide-table-links { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.guide-index-media { height: auto; aspect-ratio: 3/2; }
.guides-index-grid .guide-index-media { margin: -24px -24px 24px !important; }
.guides-index-grid article, .guides-index-grid article:nth-child(2n) { border-right: 1px solid var(--line); }
.guides-index-grid article:nth-child(3n) { border-right: 0; }
.hero-media { animation: none; }
.catalog-chapter-head h3 { font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.15; }
.contact-grid { padding-block: var(--section-space); gap: clamp(28px, 4vw, 64px); }
.seasonal-atlas figure:nth-child(2), .seasonal-atlas figure:nth-child(5) { transform: none; }
.guide-table-wrap { max-width: 100%; overflow: auto; }
.guide-table-wrap th, .guide-table-wrap td { padding: 16px; font-size: .9375rem; line-height: 1.55; }
.guide-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guide-related-grid a { min-height: 0; padding: 24px; }
.guides-index-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guides-index-grid article { min-height: 0; padding: 24px; }
.guides-index-grid figure { aspect-ratio: 3/2; height: auto; }
.guides-index-grid h3 { font-size: 1.6rem; line-height: 1.15; }
.guides-index-grid p { font-size: .9375rem; }
.experience-detail-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 0; padding-top: 76px; }
.experience-detail-copy { padding: 48px max(var(--site-gutter), calc((100vw - var(--content-max)) / 2)); padding-right: 40px; }
.experience-detail-hero > figure { position: relative; min-height: 540px; }
.experience-detail-hero > figure img { position: absolute; inset: 0; }
.experience-index-grid article > a { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); min-height: 0; }
.experience-index-grid figure { position: relative; min-height: 0; }
.experience-index-grid img { position: absolute; inset: 0; }
.experience-index-grid article a > div { padding: 28px; }
.experience-index-grid p { font-size: .9375rem; }
.experience-chapter { padding-block: 40px; gap: 28px; }
.experience-restaurants a { min-height: 0; padding: 24px; }
.form-editorial { margin: 24px 0 0; }
.form-editorial img { width: 100%; height: 360px; object-fit: cover; object-position: center 60%; }
.form-editorial figcaption { margin-top: 12px; font-size: .875rem; }
.reservation-form, .contact-form { align-self: start; }
.reservation-form :is(input, select, textarea), .contact-form :is(input, select, textarea) { min-width: 0; width: 100%; font-size: 1rem; }
.reservation-cta { min-height: 360px; padding: 48px 24px; }
.compact-cta { padding-block: 60px; }
.footer-top p, .footer-top a, .footer-bottom, .ai-disclosure { font-size: .875rem; }
.footer-brand h2 { letter-spacing: .025em; }
.documentary-context { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; gap: 40px; padding-block: 48px; }
.documentary-photo { margin: 0; }
.documentary-photo img { width: 100%; height: auto; max-height: 420px; object-fit: contain; background: var(--cream); }
.documentary-photo figcaption { margin-top: 12px; font-size: .875rem; line-height: 1.6; }
.documentary-photo figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.documentary-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding-block: 32px 64px; }
#home-documentary-title + p { max-width: 60ch; }
@media (min-width: 1001px) { section:has(#home-documentary-title) .documentary-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1001px) and (max-width: 1240px) {
    .demo-label { display: none; }
    .main-nav { gap: 12px; }
    .main-nav a { font-size: .6875rem; letter-spacing: 0; }
    .header-book { margin-left: 14px; padding-inline: 10px; }
    .language-switcher { margin-left: 12px; }
}
@media (max-width: 1000px) {
    .featured-grid, .listing, .guides-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .directory-tools { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .directory-filters { grid-column: 1 / -1; }
    .guide-chapter { grid-template-columns: 44px minmax(0, 1fr); }
    .guide-chapter aside { grid-column: 2; }
    .guide-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .restaurant-connections > div:last-child ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .manifesto-grid { grid-template-columns: 1fr 1fr; }
    .quote-card { grid-column: 1 / -1; }
    .territory-card a { grid-template-columns: 1fr; }
    .territory-card figure { height: 250px; }
    .main-nav a { font-size: 1.1rem; }
    .guides-index-grid article:nth-child(3n) { border-right: 1px solid var(--line); }
    .guides-index-grid article:nth-child(2n) { border-right: 0; }
}
@media (max-width: 700px) {
    :root { --site-gutter: 20px; --section-space: 44px; }
    body { font-size: 16px; }
    body :is(.hero, .page-hero, .guide-hero, .restaurant-hero, .experience-hub-copy, .experience-detail-copy, .error-page) h1 { font-size: clamp(2.25rem, 9.2vw, 3.3rem); line-height: 1.08; }
    body main h2:not(.card-body h2):not(.catalog-card h2):not(.menu-groups h2):not(.values h2):not(.menu-philosophy h2) { font-size: clamp(1.75rem, 7.3vw, 2.25rem); }
    .hero { min-height: 610px; height: auto; }
    .hero-content { position: relative; inset: auto; width: auto; padding: 140px var(--site-gutter) 90px; transform: none; }
    .hero-actions { flex-wrap: wrap; gap: 20px; }
    .page-hero { padding-top: 112px; padding-bottom: 44px; }
    .guide-hero, .experience-hub-hero { min-height: 0; }
    .guide-hero-copy, .experience-hub-copy { position: relative; inset: auto; max-width: none; padding: 112px 20px 48px; }
    .restaurant-hero { height: 500px; }
    .restaurant-hero > div { bottom: 32px; }
    .restaurant-hero h1 { max-width: 100%; }
    .featured-grid, .listing, .guides-index-grid, .manifesto-grid, .territory-cards, .guide-related-grid { grid-template-columns: minmax(0, 1fr); }
    .listing { gap: 36px; padding-block: 36px 48px; }
    .directory-tools, .directory-refinements { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .directory-refinements, .directory-filters { grid-column: 1; }
    .section-head { align-items: start; gap: 20px; }
    .quote-card { grid-column: 1; }
    .card-body h2 { font-size: 1.6rem; }
    .collection-visuals figure, .collection-visuals figure:nth-of-type(2), .restaurant-ambiences figure, .restaurant-ambiences figure:nth-of-type(2) { height: 300px; }
    .editorial-compass-visual { height: 340px; }
    .image-editorial img, .image-editorial img[src*="portrait"] { max-height: 420px; }
    .landscape-band { height: 300px; }
    .territory-main img { height: 320px; }
    .menu-feature, .signature-menu { grid-template-columns: minmax(0, 1fr); }
    .menu-visual, .signature-menu-image { height: 360px; }
    .menu-copy, .signature-menu-copy { padding: 32px 20px; }
    .signature-menu-copy li { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .signature-menu-image figcaption { font-size: .8125rem; }
    .signature-menu-image { height: 360px; }
    .restaurant-connections > div:last-child ul { grid-template-columns: minmax(0, 1fr); }
    .restaurant-detail aside { padding-left: 0; }
    .next-table a { height: 300px; }
    .territory-card > a > div { padding: 24px; }
    .catalog-opening-images { height: 460px; }
    .seasonal-atlas figure { height: 260px; }
    .catalog-chapter-head { gap: 24px; }
    .wine-hero, .wine-hero > .section { min-height: 0; }
    .wine-hero > .section { padding-block: 48px; }
    .guide-signals > div { padding: 24px 0; }
    .guide-toc a { min-height: 64px; padding: 16px; }
    .guide-chapter { grid-template-columns: minmax(0, 1fr); gap: 18px; padding-block: 32px; }
    .guide-chapter aside { grid-column: 1; padding-left: 0; }
    .guide-table-wrap th, .guide-table-wrap td { padding: 12px; font-size: .875rem; }
    .experience-detail-hero { grid-template-columns: minmax(0, 1fr); }
    .experience-detail-copy { order: 0; padding: 36px 20px; }
    .experience-detail-hero > figure { min-height: 0; height: 320px; max-height: none; }
    .experience-index-grid article > a { grid-template-columns: minmax(0, 1fr); }
    .experience-index-grid figure { height: 280px; max-height: none; }
    .experience-index-grid article a > div { min-height: 0; padding: 24px; }
    .form-editorial img { height: 280px; }
    .documentary-context, .documentary-gallery { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .documentary-photo img { max-height: 320px; }
    .form-row { grid-template-columns: minmax(0, 1fr); }
    .reservation-cta { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero-media, .card-image img, .restaurant-ambiences img { animation: none; transition: none; }
}
/* Keep tall photographs and narrow menu columns under control on tablets. */
@media (min-width: 701px) and (max-width: 1000px) {
    .menu-feature, .signature-menu { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .menu-visual, .signature-menu-image { height: 420px; }
}
.catalog-hero-stats { margin-top: 24px; gap: 20px; }
.catalog-hero-stats strong { font-size: 2rem; }
@media (max-width: 480px) {
    .header-inner[data-logo-host] { flex-wrap: nowrap !important; column-gap: 8px !important; row-gap: 0; }
    .site-header .demo-label { display: none; }
    .site-header .menu-toggle, .site-header .language-switcher { flex-shrink: 0; }
}
@media (min-width: 1001px) and (max-width: 1240px) {
    .main-nav { position: fixed; z-index: 1; inset: 0; display: none; align-items: flex-start; flex-direction: column; gap: 28px; overflow-y: auto; overscroll-behavior: contain; padding: 130px 35px 40px; background: var(--ink); }
    .main-nav.is-open { display: flex; }
    .main-nav a { font: 1.1rem var(--serif); letter-spacing: 0; text-transform: none; }
    .main-nav .mobile-book { display: inline-flex; align-items: center; gap: 12px; margin-top: 6px; color: var(--bronze); }
    .menu-toggle { position: relative; z-index: 2; display: grid; order: 2; width: 48px; gap: 5px; margin-left: 20px; border: 0; padding: 10px; color: white; background: none; cursor: pointer; }
    .menu-toggle span { display: block; width: 22px; height: 1px; background: currentColor; }
    .menu-toggle b { position: absolute; clip: rect(0,0,0,0); }
    .language-switcher { margin-left: auto; }
}
