:root {
  --ink: #10201b;
  --ink-soft: #32423c;
  --paper: #ffffff;
  --mist: #f3f2ed;
  --gold: #a97c3f;
  --gold-text: #8a612a;
  --sea: #315e69;
  --wine: #622f2a;
  --contact: #42554d;
  --line: rgba(16, 32, 27, .17);
  --display: "Boska", "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "gill-sans-nova", "Gill Sans", "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --pad: clamp(1.25rem, 4.4vw, 5.5rem);
  --section: clamp(5.25rem, 9vw, 9rem);
  --header: 7.1rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 1rem; line-height: 1.68; -webkit-font-smoothing: antialiased; }
body.menu-open, body.dialog-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { color: inherit; font: inherit; }
::selection { color: white; background: var(--sea); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 500; top: .75rem; left: .75rem; padding: .7rem 1rem; color: white; background: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: none; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; min-height: var(--header); display: grid; grid-template-columns: minmax(17rem, 32rem) 1fr; align-items: center; gap: 2rem; padding: .95rem var(--pad); background: var(--mist); border-bottom: 1px solid transparent; isolation: isolate; transition: min-height .3s ease, border-color .3s ease, box-shadow .3s ease; }
.site-header.is-scrolled { min-height: 5.6rem; border-color: var(--line); box-shadow: 0 12px 38px rgba(16,32,27,.07); }
.brand { display: block; width: min(100%, 31rem); }
.brand img { width: 100%; height: auto; }
.header-navigation { min-width: 0; display: flex; justify-content: flex-end; align-items: center; gap: clamp(.75rem,1.4vw,1.3rem); }
.site-nav { display: flex; justify-content: flex-end; align-items: center; gap: clamp(1rem, 2.1vw, 2.45rem); }
.site-nav a { position: relative; white-space: nowrap; font-size: .71rem; font-weight: 500; letter-spacing: .115em; text-decoration: none; text-transform: uppercase; }
.site-nav a::after { content: ""; position: absolute; inset: auto 100% -.45rem 0; height: 1px; background: var(--gold); transition: right .25s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after, .site-nav a[aria-current="page"]::after { right: 0; }
.site-nav.is-scroll-tracking a::after { right: 100%; }
.site-nav.is-scroll-tracking a:hover::after, .site-nav.is-scroll-tracking a:focus-visible::after, .site-nav.is-scroll-tracking a.is-scroll-active::after { right: 0; }
.language-switch { flex: 0 0 auto; width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; padding: .55rem; border: 1px solid var(--line); border-radius: 999px; line-height: 1; text-decoration: none; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.language-switch:hover, .language-switch:focus-visible { color: var(--gold-text); border-color: currentColor; background: rgba(255,255,255,.45); }
.language-flag { display: block; width: 1.45rem; height: auto; aspect-ratio: 3 / 2; overflow: hidden; border-radius: .08rem; box-shadow: 0 0 0 1px rgba(16,32,27,.14); }
.menu-toggle { display: none; }

.hero { position: relative; height: clamp(32rem,68svh,43rem); min-height: 32rem; display: flex; align-items: flex-end; overflow: hidden; color: white; background: var(--ink); }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: 50% 53%; animation: hero-in 1.4s cubic-bezier(.2,.7,.2,1) both; }
.hero-shade { pointer-events: none; background: linear-gradient(90deg, rgba(6,20,17,.76) 0%, rgba(6,20,17,.38) 48%, rgba(6,20,17,.06) 80%), linear-gradient(0deg, rgba(6,20,17,.58) 0%, transparent 55%); }
.hero-content { position: relative; z-index: 2; width: min(76rem,100%); padding: clamp(8.5rem,15vh,10rem) var(--pad) 3.5rem; }
.hero h1, .page-hero h1, .section-heading h2, .home-chapter h2, .wine-teaser h2, .contact-band h2, .editorial-section h2, .wine-title, .cepage-copy h2 { margin: 0; font-family: var(--display); font-weight: 400; line-height: .94; letter-spacing: -.04em; }
.hero h1 { max-width: 10ch; font-size: clamp(4.25rem,10vw,9.7rem); }
.hero-intro { max-width: 35rem; margin: 2rem 0 0; font-family: var(--sans); font-size: clamp(1.15rem,2vw,1.58rem); line-height: 1.45; }
.hero-actions, .inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.7rem; margin-top: 2.4rem; }
.hero-video-controls { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.45rem; }
.hero-video-controls button { position: relative; width: 2.05rem; height: 2.05rem; min-height: 0; display: grid; place-items: center; padding: 0; color: white; background: rgba(16,32,27,.2); border: 1px solid rgba(255,255,255,.58); border-radius: 50%; cursor: pointer; touch-action: manipulation; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.hero-video-controls button::before { content: ""; position: absolute; inset: -.35rem; border-radius: 50%; }
.hero-video-controls button:hover, .hero-video-controls button:focus-visible { color: #e8c98e; background: rgba(16,32,27,.38); border-color: #e8c98e; transform: translateY(-1px); }
.hero-video-controls svg { width: .82rem; height: .82rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.eyebrow { margin: 0 0 1.25rem; color: var(--gold-text); font-size: .71rem; font-weight: 500; letter-spacing: .19em; line-height: 1.4; text-transform: uppercase; }
.eyebrow-light { color: #e8c98e; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 3.35rem; padding: .82rem 1.35rem; border: 1px solid; font-size: .72rem; font-weight: 500; letter-spacing: .14em; line-height: 1.2; text-decoration: none; text-transform: uppercase; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.button-light { color: var(--ink); background: white; border-color: white; }
.button-light:hover, .button-light:focus-visible { color: white; background: transparent; }
.button-dark { color: white; background: var(--ink); border-color: var(--ink); }
.button-dark:hover, .button-dark:focus-visible { color: var(--ink); background: transparent; }
.button-outline { color: var(--ink); background: transparent; border-color: var(--ink); }
.button-outline:hover, .button-outline:focus-visible { color: white; background: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .8rem; padding: .65rem 0; border-bottom: 1px solid var(--line); font-size: .75rem; font-weight: 500; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; transition: color .2s ease, border-color .2s ease; }
.text-link:hover, .text-link:focus-visible { color: var(--gold-text); border-color: currentColor; }
.text-link-light { border-color: rgba(255,255,255,.55); }
.text-link-light:hover, .text-link-light:focus-visible { color: #e8c98e; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span, .text-link:focus-visible span { transform: translateX(.2rem); }

.section-pad { padding: var(--section) var(--pad); }
.section-dark { color: white; background: var(--ink); }
.section-index { color: var(--gold-text); font-size: .69rem; font-weight: 500; letter-spacing: .16em; }
.section-heading h2 { font-size: clamp(3rem,6vw,6.1rem); }
.lead { max-width: 55rem; margin: 2.1rem 0 0; font-family: var(--sans); font-size: clamp(1.22rem,2vw,1.67rem); line-height: 1.52; }
.figures { margin: 3.7rem 0 0; border-top: 1px solid var(--line); }
.figures div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.figures dt { font-family: var(--display); font-size: 1.75rem; line-height: 1; }
.figures dd { margin: 0; color: #53615c; font-size: .84rem; line-height: 1.45; }
.home-chapter { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.12fr); min-height: clamp(35rem,53vw,49rem); }
.home-chapter-copy { align-self: center; padding: var(--section) var(--pad); }
.home-chapter-copy .section-index { margin-bottom: clamp(3rem,7vw,6.5rem); }
.home-chapter h2 { color: var(--contact); font-size: clamp(3.5rem,7.4vw,7.7rem); }
.home-chapter .lead { max-width: 34rem; margin-top: 1.65rem; }
.home-chapter .text-link { display: inline-flex; margin-top: 2.2rem; }
.home-chapter-media { min-height: 35rem; display: block; overflow: hidden; background: #25372f; }
.home-chapter-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.home-chapter-media:hover img, .home-chapter-media:focus-visible img { transform: scale(1.035); }
.home-chapter-history { background: var(--mist); }
.home-history-image { object-position: 58% 50%; }
.home-chapter-media-first { grid-template-columns: minmax(0,1.12fr) minmax(0,1fr); background: var(--mist); }
.home-chapter-media-first .home-chapter-copy { order: 2; }
.home-chapter-media-first .home-chapter-media { order: 1; }
.home-chapter-grapes { background: var(--mist); }
.wine-teaser { display: grid; grid-template-columns: minmax(2.6rem,.3fr) minmax(0,1.4fr) minmax(18rem,1fr); gap: clamp(2rem,5vw,6rem); align-items: center; background: var(--mist); }
.wine-teaser h2 { color: var(--gold); font-size: clamp(5rem,11vw,11rem); }
.wine-meaning { margin: .45rem 0 1.5rem; font-family: var(--sans); font-style: italic; font-size: 1.2rem; }
.bottle-stage { position: relative; isolation: isolate; min-height: 37rem; display: grid; place-items: center; overflow: hidden; background: var(--mist); }
.bottle-stage img { position: relative; z-index: 2; width: auto; height: min(33rem,73vw); filter: drop-shadow(0 1.3rem 1.4rem rgba(20,25,22,.18)); }
.bottle-cutout { clip-path: polygon(40.1% 1.7%,59.9% 1.7%,64% 2.2%,65.5% 5%,64.7% 8.3%,65% 13.3%,65.3% 18.3%,66% 25%,68.8% 30%,71.7% 33.3%,75.4% 36.7%,79.3% 40%,82.8% 43.3%,85.8% 46.7%,87.8% 50%,89.2% 53.3%,89.9% 56.7%,89.7% 90%,88.9% 93.3%,87.5% 95%,82.5% 96.7%,77.3% 97.2%,69% 97.5%,57% 97.8%,40.1% 97.8%,25.8% 97.5%,20.1% 97.2%,14.8% 96.7%,10.1% 95%,8.7% 93.3%,8.2% 90%,8.7% 56.7%,9.2% 53.3%,10.4% 50%,12.9% 46.7%,15.8% 43.3%,19.6% 40%,23.1% 36.7%,27.2% 33.3%,30.2% 30%,33.1% 25%,34% 18.3%,34.3% 13.3%,35% 8.3%,34.3% 5%,35.2% 3.3%,35.6% 2.2%); }
.bottle-halo { position: absolute; z-index: 0; width: min(26rem,78vw); aspect-ratio: 1; border-radius: 50%; background: #e6dfd0; pointer-events: none; }
.contact-band { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(17rem,.8fr); gap: 3rem; align-items: end; padding: clamp(4.5rem,8vw,8rem) var(--pad); }
.contact-band-soft { color: white; background: var(--contact); }
.contact-band h2 { font-size: clamp(3.2rem,6vw,6.6rem); }
.contact-band address { margin-bottom: 2rem; color: #d8dfdb; font-family: var(--sans); font-size: 1.25rem; font-style: normal; }
.home-closing-panorama { margin: 0; overflow: hidden; background: var(--contact); }
.home-closing-panorama img { width: 100%; height: auto; }

.page-main { padding-top: var(--header); }
.page-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(20rem,1.1fr); min-height: min(78vh,52rem); color: white; background: var(--ink); }
.page-hero-copy { align-self: end; padding: clamp(5rem,10vw,9rem) var(--pad); }
.page-hero h1 { max-width: 8ch; font-size: clamp(4rem,9vw,8.5rem); }
.page-hero-copy .lead { color: #d8dfdb; }
.page-hero-media { min-height: 32rem; overflow: hidden; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-panorama { grid-template-columns: minmax(20rem,.78fr) minmax(0,1.45fr); min-height: clamp(28rem,54vh,34rem); }
.page-hero-panorama .page-hero-media img { object-position: 50% 50%; }
.page-intro { display: grid; grid-template-columns: minmax(2.6rem,.3fr) minmax(0,2.5fr) minmax(14rem,.8fr); gap: clamp(2rem,4vw,5rem); align-items: start; }
.page-intro .lead { margin-top: 0; }
.side-note { padding-top: .5rem; border-top: 1px solid var(--line); color: #53615c; font-size: .86rem; }
.editorial { padding: 0 var(--pad) var(--section); }
.editorial-section { display: grid; grid-template-columns: minmax(12rem,.85fr) minmax(0,2fr); gap: clamp(2rem,7vw,8rem); padding: clamp(4rem,8vw,8rem) 0; border-top: 1px solid var(--line); }
.editorial-section h2 { position: sticky; top: 8rem; align-self: start; max-width: 10ch; color: var(--sea); font-size: clamp(2.2rem,4.3vw,4.8rem); }
.editorial-section h2.history-mediterranean-title { max-width: none; }
@media (min-width: 821px) {
  .editorial-section.history-mediterranean-section { grid-template-columns: minmax(18rem,1.35fr) minmax(0,1.65fr); gap: clamp(2rem,5vw,6rem); }
}
.prose { max-width: 52rem; }
.prose p { margin: 0 0 1.35rem; }
.prose p:first-child { font-family: var(--sans); font-size: clamp(1.24rem,2.1vw,1.68rem); line-height: 1.5; }
.closing-statement { padding: var(--section) var(--pad); text-align: center; background: var(--mist); }
.closing-statement p { margin: .1em 0; font-family: var(--sans); font-size: clamp(2.7rem,6.5vw,7rem); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
.closing-statement p:last-child { color: var(--sea); font-style: italic; }
.history-page, .history-page .page-main, .terroir-page, .terroir-page .page-main { background: var(--mist); }
.history-page .page-hero, .terroir-page .page-hero, .cepages-page .page-hero { background: var(--contact); }
.history-hero-image { object-position: 70% 50%; }
.history-page .editorial-opening { padding-bottom: 0; }
.history-page .editorial-opening .editorial-section h2 { color: var(--contact); }
.history-figure { margin: clamp(2rem,4vw,3.25rem) 0; }
.history-figure img { width: 100%; height: auto; }
.history-figure figcaption { margin-top: .75rem; padding-top: .65rem; border-top: 1px solid var(--line); color: #58655f; font-size: .73rem; line-height: 1.5; }
.history-family-prose, .history-property-prose { display: flow-root; }
.history-figure-cadastre { float: right; width: min(52%,28rem); margin: .4rem 0 1.5rem clamp(1.5rem,3vw,2.75rem); }
.history-figure-archive { float: right; width: min(36%,15rem); margin: .4rem 0 1.5rem clamp(1.5rem,3vw,2.75rem); }
.history-figure-team { width: 100%; margin-bottom: 0; }
.photo-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 1rem; padding: 0 var(--pad) var(--section); }
.photo-grid figure { grid-column: span 6; margin: 0; }
.photo-grid figure:nth-child(3n) { grid-column: span 12; }
.photo-grid img { width: 100%; height: clamp(18rem,36vw,38rem); object-fit: cover; }
.photo-grid figure:nth-child(3n) img { height: clamp(24rem,48vw,48rem); }
.photo-grid figure.photo-grid-half { grid-column: span 6; }
.photo-grid figure.photo-grid-half img { height: clamp(18rem,36vw,38rem); }
.photo-grid figcaption { padding: .65rem 0 1rem; color: #58655f; font-size: .73rem; }

.map-section { padding: var(--section) var(--pad); background: var(--mist); }
.map-heading { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(16rem,.7fr); gap: 3rem; align-items: end; margin-bottom: 2.7rem; }
.map-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem,6vw,6rem); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.terroir-page #map-title { color: var(--sea); }
.map-frame { padding: clamp(.65rem,1.7vw,1.5rem); background: white; border: 1px solid var(--line); box-shadow: 0 16px 50px rgba(16,32,27,.08); }
.map-frame img { width: 100%; height: auto; }
.map-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 1rem; padding-top: 1rem; }
.plain-button { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .72rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
.map-dialog { width: min(96vw,92rem); max-width: none; height: 92vh; max-height: none; padding: 0; border: 0; background: white; box-shadow: 0 25px 100px rgba(0,0,0,.3); }
.map-dialog::backdrop { background: rgba(5,15,12,.82); }
.dialog-bar { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; background: white; border-bottom: 1px solid var(--line); }
.dialog-bar strong { font-family: var(--display); font-size: 1.1rem; font-weight: 400; }
.dialog-scroller { height: calc(92vh - 4rem); overflow: auto; }
.dialog-scroller img { width: max(100%,75rem); max-width: none; height: auto; }

.cepage-nav { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 2rem; }
.cepage-nav a { padding: .55rem .8rem; border: 1px solid var(--line); font-size: .67rem; font-weight: 500; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.cepage-nav a:hover, .cepage-nav a:focus-visible { color: white; background: var(--ink); }
.cepage-list { padding: 0 var(--pad) var(--section); }
.cepage-entry { display: grid; grid-template-columns: minmax(15rem,.72fr) minmax(0,1.5fr); gap: clamp(2.5rem,7vw,8rem); padding: clamp(4.5rem,8vw,8rem) 0; border-top: 1px solid var(--line); scroll-margin-top: 7rem; }
.cepage-visual { position: sticky; top: 7.5rem; align-self: start; aspect-ratio: 3 / 4; display: grid; place-items: center; margin: 0; overflow: hidden; background: var(--mist); }
.cepage-visual img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; mix-blend-mode: normal; }
.cepage-copy h2 { margin-bottom: 2rem; color: var(--sea); font-size: clamp(3rem,5.8vw,6rem); }
.cepage-copy p { margin: 0 0 1.15rem; }
.cepage-copy strong { color: var(--sea); }

.wine-page { background: var(--mist); }
.wine-page-heading { min-height: clamp(17rem,31vw,27rem); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(4.5rem,8vw,7rem) var(--pad); color: white; background: var(--contact); }
.wine-page-heading h1 { max-width: 8ch; margin: 0; font-family: var(--display); font-size: clamp(4rem,9vw,8.5rem); font-weight: 400; line-height: .94; letter-spacing: -.04em; }
.wine-detail { display: grid; grid-template-columns: minmax(18rem,1fr) minmax(0,1.25fr); min-height: calc(100svh - var(--header)); }
.wine-visual { position: relative; display: grid; place-items: center; min-height: 46rem; padding: 4rem; overflow: hidden; background: #e6dfd0; }
.wine-visual::before { content: ""; position: absolute; width: min(32rem,80%); aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.7); }
.wine-visual img { position: relative; z-index: 1; width: auto; max-height: 43rem; filter: drop-shadow(0 28px 30px rgba(16,32,27,.2)); }
.wine-detail-copy { align-self: center; padding: clamp(4rem,8vw,8rem) var(--pad); }
.wine-title { color: var(--gold); font-size: clamp(6rem,13vw,13rem); }
.wine-summary { max-width: 45rem; font-family: var(--sans); font-size: clamp(1.18rem,2vw,1.5rem); line-height: 1.55; }
.wine-accolades { max-width: 48rem; margin: 2.4rem 0; }
.wine-accolades-heading { padding-bottom: 1.25rem; }
.wine-accolades-heading .eyebrow { margin-bottom: .45rem; }
.wine-accolades-heading h3 { margin: 0; color: var(--sea); font-family: var(--display); font-size: clamp(1.8rem,3vw,2.7rem); font-weight: 400; line-height: 1; }
.wine-ratings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.wine-rating { min-width: 0; padding: clamp(1.25rem,2.5vw,2rem); border: 1px solid var(--line); background: var(--paper); }
.wine-rating + .wine-rating { border-left: 0; }
.wine-score { margin: 0; color: var(--gold); font-family: var(--display); line-height: .8; white-space: nowrap; }
.wine-score strong { font-size: clamp(3.5rem,5.6vw,5.4rem); font-weight: 400; letter-spacing: -.05em; }
.wine-score span { margin-left: .2rem; font-size: 1rem; letter-spacing: .08em; }
.wine-rating h4 { margin: 1rem 0 0; color: var(--ink); font-family: var(--display); font-size: clamp(1.2rem,2vw,1.55rem); font-weight: 400; line-height: 1.2; }
.wine-rating h4 a { text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: .22em; transition: color .2s ease, text-decoration-color .2s ease; }
.wine-rating h4 a:hover, .wine-rating h4 a:focus-visible { color: var(--sea); text-decoration-color: currentColor; }
.wine-facts { max-width: 48rem; margin: 2.4rem 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.wine-facts li { display: grid; grid-template-columns: minmax(8.5rem,.6fr) 1.4fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.wine-facts span { color: #68736e; font-size: .68rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.wine-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.yo-section { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 44rem; color: white; background: var(--wine); }
.yo-section img { width: 100%; height: 100%; min-height: 36rem; object-fit: cover; }
.yo-copy { align-self: center; padding: var(--section) var(--pad); }
.yo-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(5rem,10vw,10rem); font-weight: 400; line-height: .9; }
.yo-copy p { max-width: 42rem; }
.contact-page { display: grid; grid-template-columns: minmax(20rem,.8fr) minmax(0,1.2fr); min-height: calc(100svh - var(--header)); }
.contact-copy { align-self: center; padding: var(--section) var(--pad); }
.contact-copy h1 { margin: 0 0 2rem; color: var(--sea); font-family: var(--display); font-size: clamp(3.5rem,7vw,7rem); font-weight: 400; line-height: .94; letter-spacing: -.04em; }
.contact-copy address { margin: 0 0 2rem; font-family: var(--sans); font-size: 1.25rem; font-style: normal; }
.contact-links { display: grid; justify-items: start; gap: .7rem; margin-bottom: 2rem; }
.contact-links a { text-underline-offset: .3rem; }
.map-embed { min-height: 38rem; background: var(--mist); }
.map-embed iframe { width: 100%; height: 100%; min-height: 38rem; border: 0; }
.social-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-top: 2rem; }
.social-list a { min-width: 0; display: grid; justify-items: start; gap: .55rem; color: var(--ink); font-size: .7rem; font-weight: 500; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.social-list svg { width: 1.9rem; height: 1.9rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; transition: color .2s ease, transform .2s ease; }
.social-list .social-dot { fill: currentColor; stroke: none; }
.social-list .social-fill { fill: currentColor; stroke: none; }
.social-list span { border-bottom: 1px solid var(--line); }
.social-list a:hover svg, .social-list a:focus-visible svg { color: var(--gold); transform: translateY(-.12rem); }
.social-list a:hover span, .social-list a:focus-visible span { border-color: var(--gold); }
.legal { max-width: 60rem; padding: calc(var(--header) + var(--section)) var(--pad) var(--section); }
.legal h1 { margin: 0 0 3rem; font-family: var(--display); font-size: clamp(3.6rem,7vw,7rem); font-weight: 400; line-height: .95; letter-spacing: -.04em; }
.legal p { margin: 0 0 1.1rem; }
.legal a { text-underline-offset: .3rem; }

.site-footer { display: grid; grid-template-columns: minmax(18rem,1.25fr) minmax(11rem,.55fr) minmax(20rem,1.15fr) minmax(13rem,.7fr); gap: clamp(1.5rem,3vw,3.5rem); align-items: end; padding: 3rem var(--pad); border-top: 1px solid var(--line); background: var(--mist); isolation: isolate; }
.site-footer img { height: auto; }
.footer-branding { display: flex; align-items: center; gap: clamp(1rem,2.5vw,2.2rem); }
.footer-branding > a { flex: 1 1 auto; }
.footer-logo { width: min(100%,27rem); }
.footer-hve { flex: 0 0 auto; width: 5.25rem; mix-blend-mode: multiply; }
.footer-links { display: grid; justify-items: start; gap: .45rem; font-size: .73rem; }
.footer-links a { text-underline-offset: .25rem; }
.footer-language-switch { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; padding: .55rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.footer-language-switch:hover, .footer-language-switch:focus-visible { color: var(--gold-text); border-color: currentColor; }
.footer-social { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem 1rem; align-items: start; }
.footer-social-link { min-width: 0; display: grid; justify-items: start; align-content: start; gap: .65rem; color: var(--ink); font-size: .63rem; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
.footer-social-link svg { width: 1.9rem; height: 1.9rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; transition: color .2s ease, transform .2s ease; }
.footer-social-link .social-dot { fill: currentColor; stroke: none; }
.footer-social-link .social-fill { fill: currentColor; stroke: none; }
.footer-social-link span { border-bottom: 1px solid var(--line); }
.footer-social-link:hover svg, .footer-social-link:focus-visible svg { color: var(--gold); transform: translateY(-.12rem); }
.footer-social-link:hover span, .footer-social-link:focus-visible span { border-color: var(--gold); }
.footer-meta { color: #66716c; font-size: .7rem; line-height: 1.55; }
.footer-meta p { margin: .25rem 0; }
.age-gate { width: min(92vw,36rem); max-height: calc(100svh - 1rem); padding: 0; overflow-y: auto; border: 0; background: white; box-shadow: 0 25px 90px rgba(0,0,0,.3); }
.age-gate::backdrop { background: rgba(5,15,12,.88); }
.age-gate-inner { padding: clamp(2rem,6vw,4.5rem); text-align: center; }
.age-gate img { width: min(100%,24rem); height: auto; margin: 0 auto 2.5rem; object-fit: contain; }
.age-gate h2 { margin: 0 0 1rem; font-family: var(--display); font-size: 2.2rem; font-weight: 400; }
.age-gate-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.age-gate small { display: block; margin-top: 1.3rem; color: #64706a; }
.reveal { opacity: 0; transform: translateY(1.3rem); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@keyframes hero-in { from { opacity: .45; transform: scale(1.035); } to { opacity: 1; transform: scale(1); } }

@media (min-width: 1121px) {
  .hero-intro { max-width: none; white-space: nowrap; }
}

@media (min-width: 1121px) and (max-width: 1360px) {
  :root { --header: 6.4rem; }
  .site-header { grid-template-columns: minmax(14rem,21rem) 1fr; gap: 1.25rem; }
  .site-nav { gap: clamp(.65rem,1vw,.9rem); }
  .site-nav a { font-size: .61rem; letter-spacing: .085em; }
  .header-navigation { gap: .7rem; }
}

@media (max-width: 1050px) {
  :root { --header: 6.4rem; }
  .site-header { grid-template-columns: minmax(16rem,24rem) 1fr; }
  .site-nav { gap: 1.1rem; }
  .site-nav a { font-size: .64rem; }
  .page-intro { grid-template-columns: 2.5rem minmax(0,1fr); }
  .page-intro .side-note { grid-column: 2; }
  .site-footer { grid-template-columns: minmax(18rem,1.2fr) minmax(12rem,.8fr); }
  .social-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-social { grid-column: 1 / -1; }
}
@media (max-width: 1120px) {
  .site-header { min-height: var(--header); grid-template-columns: minmax(0,1fr) auto; padding-block: .8rem; }
  .brand { width: min(76vw,26rem); }
  .header-navigation { gap: .8rem; }
  .menu-toggle { display: flex; align-items: center; gap: .65rem; padding: .65rem 0; border: 0; background: transparent; font-size: .75rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
  .menu-toggle i, .menu-toggle i::before { display: block; width: 1.5rem; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-toggle i { position: relative; }
  .menu-toggle i::before { content: ""; position: absolute; top: -.4rem; }
  .menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::before { top: 0; transform: rotate(90deg); }
  .site-nav { position: fixed; z-index: -1; inset: var(--header) 0 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 1.15rem; padding: 2rem var(--pad); background: var(--mist); opacity: 0; pointer-events: none; transform: translateY(-1rem); transition: opacity .25s ease, transform .25s ease; }
  .site-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }
  .site-nav a { font-family: var(--sans); font-size: clamp(1.55rem,4.8vw,3.2rem); font-weight: 500; letter-spacing: -.01em; text-transform: none; }
  .site-nav a::after { bottom: -.1rem; }
}
@media (max-width: 820px) {
  :root { --header: 5.6rem; }
  .site-header { min-height: var(--header); grid-template-columns: minmax(0,1fr) auto; gap: .75rem; padding-block: .8rem; background: var(--mist); }
  .brand { width: min(58vw,17rem); }
  .header-navigation { gap: .65rem; }
  .menu-toggle { display: flex; align-items: center; gap: .65rem; padding: .65rem 0; border: 0; background: transparent; font-size: .67rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; }
  .menu-toggle i, .menu-toggle i::before { display: block; width: 1.5rem; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-toggle i { position: relative; }
  .menu-toggle i::before { content: ""; position: absolute; top: -.4rem; }
  .menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::before { top: 0; transform: rotate(90deg); }
  .site-nav { position: fixed; z-index: -1; inset: var(--header) 0 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 1.3rem; padding: 2rem var(--pad); background: var(--mist); opacity: 0; pointer-events: none; transform: translateY(-1rem); transition: opacity .25s ease, transform .25s ease; }
  .site-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }
  .site-nav a { font-family: var(--sans); font-size: clamp(1.55rem,6vw,3.2rem); font-weight: 500; letter-spacing: -.01em; text-transform: none; }
  .site-nav a::after { bottom: -.1rem; }
  .hero-content { padding-bottom: 4rem; }
  .home-chapter, .home-chapter-media-first, .wine-teaser, .page-intro { grid-template-columns: 1fr; }
  .home-chapter { min-height: 0; }
  .home-history-image { object-position: 60% 50%; }
  .home-chapter-copy, .home-chapter-media-first .home-chapter-copy { order: 1; }
  .home-chapter-media, .home-chapter-media-first .home-chapter-media { order: 2; min-height: clamp(24rem,72vw,36rem); }
  .home-chapter-copy .section-index { margin-bottom: 2.5rem; }
  .section-index { margin-bottom: .4rem; }
  .page-intro .side-note { grid-column: auto; }
  .wine-teaser .bottle-stage { min-height: 31rem; }
  .contact-band, .page-hero, .page-hero-panorama, .editorial-section, .map-heading, .cepage-entry, .wine-detail, .yo-section, .contact-page, .site-footer { grid-template-columns: 1fr; }
  .page-hero { min-height: 0; }
  .page-hero-copy { padding-block: 5rem; }
  .page-hero-media { min-height: 29rem; }
  .history-hero-image { object-position: 70% 46%; }
  .page-hero-panorama .page-hero-media { min-height: clamp(13rem,46vw,19rem); }
  .editorial-section h2, .cepage-visual { position: static; }
  .photo-grid figure, .photo-grid figure:nth-child(3n), .photo-grid figure.photo-grid-half { grid-column: span 12; }
  .photo-grid img, .photo-grid figure:nth-child(3n) img, .photo-grid figure.photo-grid-half img { height: clamp(20rem,82vw,34rem); }
  .photo-grid figure.photo-grid-half img { height: auto; aspect-ratio: 4 / 3; }
  .cepage-visual { width: min(100%,28.5rem); min-height: 0; max-height: none; aspect-ratio: 3 / 4; justify-self: center; }
  .wine-detail { min-height: 0; }
  .wine-visual { min-height: 38rem; }
  .wine-detail-copy { order: -1; }
  .yo-section img { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
  .contact-page { min-height: 0; }
}
@media (max-width: 520px) {
  .brand { width: min(50vw,14rem); }
  .header-navigation { gap: .5rem; }
  .hero h1 { font-size: clamp(3.6rem,19vw,6rem); }
  .hero-actions, .inline-actions { align-items: flex-start; flex-direction: column; }
  .button { width: 100%; }
  .figures div { grid-template-columns: 5.5rem 1fr; }
  .page-hero-media { min-height: 23rem; }
  .map-frame { padding: .4rem; }
  .dialog-scroller img { width: 65rem; }
  .wine-visual { min-height: 32rem; padding: 2rem; }
  .wine-visual img { max-height: 29rem; }
  .wine-ratings-grid { grid-template-columns: 1fr; }
  .wine-rating + .wine-rating { border-top: 0; border-left: 1px solid var(--line); }
  .age-gate-inner { padding: 1.5rem 1.25rem; }
  .age-gate img { width: min(100%,18rem); margin-bottom: 1.5rem; }
  .age-gate h2 { font-size: clamp(1.65rem,8vw,2rem); }
  .home-closing-panorama img { height: clamp(8rem,36vw,10rem); object-fit: cover; object-position: center; }
  .history-figure-cadastre { float: none; width: 100%; margin: .4rem 0 1.75rem; }
  .history-figure-archive { float: none; width: min(72vw,15rem); margin: 0 0 1.75rem; }
  .site-footer { gap: 1.2rem; }
  .social-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-social { grid-template-columns: 1fr; gap: 1.2rem; }
  .footer-social-link { grid-template-columns: 2.2rem minmax(0,1fr); align-items: center; gap: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
