@charset "UTF-8";

:root {
  --chalk: #faf8f2;
  --paper: #f3efe5;
  --limestone: #e7dfd0;
  --limestone-deep: #d5c9b6;
  --green: #173c32;
  --green-deep: #0e2922;
  --ink: #242723;
  --muted: #68706a;
  --olive: #70775a;
  --gold: #b99a58;
  --burgundy: #753b43;
  --flint: #687472;
  --white: #fffef9;
  --line: rgba(36, 39, 35, 0.18);
  --line-light: rgba(250, 248, 242, 0.24);
  --shadow: 0 20px 55px rgba(23, 60, 50, 0.11);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: 1280px;
  --gutter: clamp(20px, 4vw, 64px);
  --ease: cubic-bezier(.2, .75, .2, 1);
}

[data-theme="dark"] {
  --chalk: #151a17;
  --paper: #1b211d;
  --limestone: #29312c;
  --limestone-deep: #3a443d;
  --green: #d8e3d8;
  --green-deep: #0b1511;
  --ink: #f1eee5;
  --muted: #aeb8af;
  --olive: #b7be98;
  --gold: #d0b473;
  --burgundy: #c8838c;
  --flint: #a7b4b2;
  --white: #202722;
  --line: rgba(241, 238, 229, 0.16);
  --line-light: rgba(241, 238, 229, 0.2);
  --shadow: 0 24px 65px rgba(0, 0, 0, 0.25);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: light; }
[data-theme="dark"] { color-scheme: dark; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 20% 10%, rgba(185, 154, 88, .055), transparent 31rem),
    linear-gradient(90deg, rgba(36,39,35,.018) 1px, transparent 1px),
    var(--chalk);
  background-size: auto, 72px 72px, auto;
  font: 16px/1.65 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.overlay-open { overflow: hidden; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
.media-credit {
  margin: 0; color: var(--muted); font: 600 .56rem/1.35 var(--sans);
  letter-spacing: .045em; text-transform: uppercase;
}
.media-credit--overlay {
  position: absolute; z-index: 4; right: 0; bottom: 0; left: 0;
  display: flex; justify-content: space-between; gap: 16px; margin: 0;
  padding: 34px 14px 10px; color: rgba(255,255,255,.78);
  background: linear-gradient(transparent, rgba(4,14,11,.76)); pointer-events: none;
  text-shadow: 0 1px 8px rgba(0,0,0,.45);
}
.media--bottle, .media--product { background: #eee9de !important; }
.media--bottle img, .media--product img { object-fit: contain !important; padding: clamp(10px,2vw,22px); filter: saturate(.94) contrast(1.02) !important; }
.media--panorama img, .media--landscape img { object-fit: cover; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.03;
}
h1 { font-size: clamp(3.5rem, 8vw, 7rem); }
h2 { font-size: clamp(2.55rem, 5vw, 5rem); }
h3 { font-size: clamp(1.6rem, 2.5vw, 2.45rem); }
::selection { color: var(--chalk); background: var(--burgundy); }

.shell { width: min(100% - (var(--gutter) * 2), var(--shell)); margin-inline: auto; }
.sr-only {
  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;
}
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.skip-link {
  position: fixed; left: 20px; top: -80px; z-index: 999;
  padding: 12px 18px; color: var(--chalk); background: var(--green-deep);
  transition: top .2s;
}
.skip-link:focus { top: 16px; }
.eyebrow, .card-kicker, .method-label, .section-number {
  margin-bottom: 13px; color: var(--olive); font: 700 .72rem/1.25 var(--sans);
  letter-spacing: .16em; text-transform: uppercase;
}
.eyebrow--light { color: rgba(250,248,242,.69); }
.text-link {
  display: inline-flex; align-items: center; gap: 10px; width: fit-content;
  padding-bottom: 2px; border-bottom: 1px solid currentColor;
  font-size: .88rem; font-weight: 700; letter-spacing: .025em;
}
.text-link span { transition: transform .25s var(--ease); }
.text-link:hover span { transform: translateX(5px); }
.outline-button, .button-link {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 48px; padding: 11px 20px; border: 1px solid currentColor;
  font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase;
  transition: color .25s, background .25s, transform .25s;
}
.outline-button:hover, .button-link:hover { color: var(--chalk); background: var(--green); transform: translateY(-2px); }
.section { padding-block: clamp(86px, 11vw, 154px); }
.section-heading { margin-bottom: clamp(42px, 6vw, 76px); }
.section-heading--split {
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr);
  gap: 7vw; align-items: end;
}
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { max-width: 560px; margin: 0; color: var(--muted); font: 1.1rem/1.65 var(--serif); }
.section-action { display: flex; justify-content: center; margin-top: 50px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-row span {
  padding: 5px 9px; border: 1px solid var(--line); color: var(--muted);
  font-size: .67rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase;
}
.tag-row--light span { color: rgba(250,248,242,.75); border-color: var(--line-light); }
.editorial-note, .practical-note {
  padding: 18px 22px; border-left: 3px solid var(--gold); color: var(--muted); background: var(--paper);
  font-size: .88rem;
}

/* Header */
.notice-bar { color: rgba(250,248,242,.76); background: var(--green-deep); }
.notice-bar__inner {
  min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  font-size: .66rem; letter-spacing: .09em; text-transform: uppercase;
}
.notice-bar p { margin: 0; }
.notice-bar a { border-bottom: 1px solid rgba(250,248,242,.38); }
.site-header {
  position: sticky; top: 0; z-index: 100; color: var(--ink);
  background: color-mix(in srgb, var(--chalk) 94%, transparent); backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line); transition: box-shadow .25s, background .25s;
}
.site-header.is-scrolled { box-shadow: 0 9px 30px rgba(20,35,29,.09); }
.masthead {
  position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  min-height: 92px; gap: 28px;
}
.wordmark { display: grid; justify-items: center; line-height: 1; }
.wordmark__edition, .wordmark__line {
  font: 650 .53rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted);
}
.wordmark__name { margin-block: 7px; font: 500 clamp(1.38rem, 2.1vw, 2rem)/1 var(--serif); letter-spacing: -.02em; }
.masthead__actions { justify-self: end; display: flex; align-items: center; gap: 7px; }
.language-picker { position: relative; flex: 0 0 auto; }
.language-picker__toggle {
  min-width: 44px; min-height: 38px; display: inline-grid; grid-auto-flow: column; place-items: center; padding: 8px;
  border: 1px solid var(--line); color: var(--muted); background: transparent; cursor: pointer;
  font: 700 .62rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; list-style: none;
}
.language-picker__toggle::-webkit-details-marker { display: none; }
.language-picker__toggle::after { content: "⌄"; margin-inline-start: 4px; color: var(--olive); font-size: .68rem; }
.language-picker[open] .language-picker__toggle { color: var(--ink); background: var(--paper); }
.language-picker__menu {
  position: absolute; z-index: 130; inset-inline-end: 0; top: calc(100% + 9px);
  width: min(330px, calc(100vw - (2 * var(--gutter)))); max-height: min(470px, calc(100vh - 130px));
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; padding: 10px;
  overflow: auto; color: var(--ink); background: var(--chalk); border: 1px solid var(--line); box-shadow: var(--shadow);
}
.language-picker__menu a {
  min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .72rem;
}
.language-picker__menu a:hover, .language-picker__menu a:focus-visible, .language-picker__menu a[aria-current="true"] { color: var(--ink); background: var(--paper); }
.language-picker__menu small { color: var(--olive); font: 700 .55rem var(--sans); letter-spacing: .08em; }
.icon-button, .theme-toggle {
  display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 8px 10px;
  border: 0; color: inherit; background: transparent; font-size: .66rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.theme-toggle { width: 38px; justify-content: center; border: 1px solid var(--line); border-radius: 50%; font-size: 1rem; }
.menu-toggle { justify-self: start; }
.menu-mark { position: relative; display: inline-block; width: 19px; height: 13px; }
.menu-mark i { position: absolute; left: 0; width: 19px; height: 1px; background: currentColor; transition: transform .2s, top .2s; }
.menu-mark i:first-child { top: 3px; }
.menu-mark i:last-child { top: 10px; width: 13px; }
.menu-toggle.is-active .menu-mark i:first-child { top: 7px; transform: rotate(45deg); }
.menu-toggle.is-active .menu-mark i:last-child { top: 7px; width: 19px; transform: rotate(-45deg); }
.search-mark { position: relative; display: inline-block; width: 14px; height: 14px; border: 1.5px solid currentColor; border-radius: 50%; }
.search-mark::after { content: ""; position: absolute; width: 6px; height: 1.5px; right: -5px; bottom: -2px; background: currentColor; transform: rotate(45deg); }
.saved-link { position: relative; }
.saved-count { min-width: 18px; padding: 1px 4px; color: var(--chalk); background: var(--burgundy); border-radius: 10px; text-align: center; }
.primary-nav { border-top: 1px solid var(--line); }
.primary-nav__inner { display: flex; justify-content: center; align-items: center; min-height: 48px; gap: clamp(15px, 2.1vw, 31px); }
.primary-nav a, .nav-group__toggle {
  border: 0; padding: 14px 0 12px; color: var(--muted); background: none;
  font: 700 .67rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase;
}
.primary-nav a:hover, .nav-group__toggle:hover { color: var(--ink); }
.primary-nav__ask { color: var(--burgundy) !important; }
.nav-group { position: relative; }
.nav-group__menu {
  position: absolute; left: -20px; top: calc(100% - 2px); display: grid; min-width: 190px;
  padding: 9px 18px 15px; background: var(--chalk); border: 1px solid var(--line); box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s var(--ease);
}
.nav-group__menu--end { left: auto; right: -20px; }
html[dir="rtl"] .nav-group__menu { left: auto; right: -20px; }
html[dir="rtl"] .nav-group__menu--end { right: auto; left: -20px; }
.nav-group:hover .nav-group__menu, .nav-group:focus-within .nav-group__menu { opacity: 1; visibility: visible; transform: none; }
.nav-group__menu a { padding: 10px 0; border-bottom: 1px solid var(--line); }
.mobile-menu, .search-drawer {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 90; max-height: calc(100vh - 122px);
  overflow: auto; color: var(--ink); background: var(--chalk); border-bottom: 1px solid var(--line); box-shadow: var(--shadow);
}
.mobile-menu__inner { padding-block: 38px 52px; }
.mobile-menu__lead { display: flex; gap: 10px; margin-bottom: 42px; }
.mobile-menu__lead a { flex: 1; padding: 18px; color: var(--chalk); background: var(--green-deep); font: 1.25rem var(--serif); }
.mobile-menu__columns { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; }
.mobile-menu h2 { margin-bottom: 16px; font: 700 .7rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--olive); }
.mobile-menu section a { display: block; padding: 9px 0; border-bottom: 1px solid var(--line); }
.search-drawer__inner { padding-block: 36px 48px; }
.search-drawer__topline { display: flex; justify-content: space-between; gap: 30px; color: var(--muted); }
.search-drawer__topline span { color: var(--ink); font-family: var(--serif); font-size: 1.3rem; }
.search-close { border: 0; background: none; text-decoration: underline; }
.global-search-form { display: grid; grid-template-columns: 1fr auto; border-bottom: 2px solid var(--ink); }
.global-search-form input { min-width: 0; padding: 18px 0; border: 0; outline: 0; background: transparent; font: clamp(1.6rem,4vw,3.4rem)/1.1 var(--serif); }
.global-search-form button { border: 0; background: none; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.search-results.has-results { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 28px; padding-top: 28px; }
.search-status { grid-column: 1/-1; color: var(--muted); }
.search-group-title { display: flex; justify-content: space-between; margin: 0 0 10px; font: 700 .72rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.search-group-count { color: var(--muted); }
.search-group-list { display: grid; }
.search-result-item { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--line); }
.search-result-eyebrow, .search-result-summary { color: var(--muted); font-size: .69rem; }
.search-result-title { font-family: var(--serif); font-size: 1.08rem; }
.search-shortcuts { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding-top: 22px; color: var(--muted); font-size: .72rem; }
.search-suggestion { padding: 6px 10px; border: 1px solid var(--line); background: transparent; }

/* Hero */
.home-hero { position: relative; min-height: min(850px, calc(100vh - 170px)); display: grid; align-items: center; overflow: hidden; color: var(--chalk); background: var(--green-deep); }
.home-hero__media, .home-hero__wash { position: absolute; inset: 0; }
.home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 47%; filter: saturate(.72) contrast(1.03); }
.home-hero__wash { background: linear-gradient(90deg, rgba(8,32,25,.92) 0%, rgba(8,32,25,.67) 42%, rgba(8,32,25,.08) 76%), linear-gradient(0deg, rgba(8,24,19,.4), transparent 50%); }
.home-hero__content { position: relative; z-index: 2; padding-block: 90px 125px; }
.home-hero h1 { max-width: 940px; margin-bottom: 27px; font-size: clamp(4.2rem, 8.1vw, 8.1rem); letter-spacing: -.045em; }
.home-hero h1 em { color: #e5d5ae; font-weight: 400; }
.home-hero__dek { max-width: 700px; margin-bottom: 43px; color: rgba(250,248,242,.82); font: clamp(1.15rem,1.7vw,1.45rem)/1.55 var(--serif); }
.hero-search { width: min(100%, 780px); }
.hero-search > label { display: block; margin-bottom: 9px; color: rgba(250,248,242,.62); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero-search__field { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; min-height: 72px; padding: 8px 10px 8px 25px; color: var(--ink); background: var(--chalk); box-shadow: 0 18px 45px rgba(0,0,0,.18); }
.search-mark--large { width: 18px; height: 18px; }
.hero-search input { min-width: 0; border: 0; outline: 0; background: transparent; font: 1.03rem var(--sans); }
.hero-search button { align-self: stretch; padding-inline: 25px; border: 0; color: #faf8f2; background: var(--burgundy); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.hero-quicklinks { display: flex; flex-wrap: wrap; gap: 9px 22px; margin-top: 18px; color: rgba(250,248,242,.72); font-size: .76rem; }
.hero-quicklinks span { color: rgba(250,248,242,.47); text-transform: uppercase; letter-spacing: .12em; }
.hero-quicklinks a { border-bottom: 1px solid rgba(250,248,242,.28); }
.hero-scroll { position: absolute; z-index: 2; right: var(--gutter); bottom: 34px; display: flex; align-items: center; gap: 13px; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.hero-scroll i { width: 45px; height: 1px; background: currentColor; }
.hero-credit { position: absolute; left: var(--gutter); bottom: 18px; z-index: 3; margin: 0; color: rgba(250,248,242,.56); font-size: .57rem; letter-spacing: .04em; }
.hero-credit a { text-decoration: underline; }
.atlas-stats { color: var(--chalk); background: var(--green-deep); border-top: 1px solid rgba(250,248,242,.14); }
.atlas-stats__grid { display: grid; grid-template-columns: repeat(5,1fr); }
.atlas-stats__grid div { min-height: 114px; display: grid; align-content: center; border-right: 1px solid rgba(250,248,242,.13); }
.atlas-stats__grid div:last-child { border: 0; }
.atlas-stats strong { font: 500 2.1rem var(--serif); }
.atlas-stats span { color: rgba(250,248,242,.54); font-size: .64rem; letter-spacing: .09em; text-transform: uppercase; }

/* Home modules */
.explore-section { background: var(--chalk); }
.chapter-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.chapter-card { min-height: 260px; display: flex; flex-direction: column; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .3s, background .3s; }
.chapter-card:hover { color: var(--chalk); background: var(--green); }
.chapter-card__number { color: var(--gold); font-size: .7rem; letter-spacing: .12em; }
.chapter-card__body { margin: auto 0; display: grid; gap: 11px; }
.chapter-card__body strong { font: 500 2rem var(--serif); }
.chapter-card__body span { color: var(--muted); font-size: .88rem; transition: color .3s; }
.chapter-card:hover .chapter-card__body span { color: rgba(250,248,242,.7); }
.chapter-card__action { display: flex; justify-content: space-between; gap: 10px; padding-top: 15px; border-top: 1px solid currentColor; font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.map-feature { color: var(--chalk); background: var(--green); overflow: hidden; }
.map-feature__grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 7vw; align-items: center; }
.map-feature__copy h2 { margin-bottom: 25px; }
.map-feature__copy > p { color: rgba(250,248,242,.69); font: 1.1rem/1.7 var(--serif); }
.map-caveat { font: .7rem/1.5 var(--sans) !important; letter-spacing: .05em; text-transform: uppercase; }
.map-legend { display: flex; flex-wrap: wrap; gap: 18px; margin: 28px 0 35px; font-size: .69rem; text-transform: uppercase; letter-spacing: .08em; }
.legend-dot { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--gold); }
.legend-dot--producer { background: #d7d0ba; }
.legend-dot--vineyard { background: var(--burgundy); }
.atlas-map { position: relative; min-height: 570px; color: var(--green-deep); background: #e8e0d0; box-shadow: 0 30px 80px rgba(2,18,13,.3); }
.map-toolbar { position: absolute; z-index: 6; top: 18px; left: 18px; display: flex; background: rgba(250,248,242,.87); backdrop-filter: blur(8px); }
.map-filter { padding: 9px 13px; border: 0; border-right: 1px solid rgba(20,40,32,.14); background: transparent; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.map-filter.is-active, .map-filter[aria-pressed="true"] { color: #faf8f2; background: var(--green-deep); }
.map-field { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 35% 50%, rgba(112,119,90,.18), transparent 38%), linear-gradient(135deg, transparent 48%, rgba(117,59,67,.09) 48% 51%, transparent 51%); }
.map-field::before { content: ""; position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(23,60,50,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(23,60,50,.16) 1px, transparent 1px); background-size: 62px 62px; }
.map-contour { position: absolute; border: 1px solid rgba(23,60,50,.27); border-radius: 48% 52% 44% 56%; transform: rotate(-13deg); }
.map-contour--one { inset: 14% 25% 20% 8%; }
.map-contour--two { inset: 21% 32% 29% 15%; }
.map-contour--three { inset: 31% 40% 37% 23%; }
.map-river { position: absolute; right: 8%; top: -4%; width: 16%; height: 110%; border-left: 22px solid rgba(85,126,133,.28); border-radius: 48%; transform: rotate(8deg); }
.map-river span { position: absolute; left: -6px; top: 65%; color: var(--flint); font: italic .8rem var(--serif); transform: rotate(-86deg); }
.map-node { position: absolute; z-index: 4; display: grid; justify-items: center; gap: 5px; font-size: .65rem; font-weight: 700; }
.map-node i { width: 10px; height: 10px; border: 2px solid #e8e0d0; border-radius: 50%; background: var(--burgundy); box-shadow: 0 0 0 1px rgba(23,60,50,.3); }
.map-node:hover { color: var(--burgundy); }
.map-node--1 { left: 59%; top: 38%; }.map-node--2 { left: 36%; top: 50%; }.map-node--3 { left: 24%; top: 66%; }
.map-node--4 { left: 42%; top: 25%; }.map-node--5 { left: 18%; top: 19%; }.map-node--6 { left: 69%; top: 67%; }
.map-node--7 { left: 77%; top: 35%; }.map-node--8 { left: 51%; top: 71%; }.map-node--9 { left: 29%; top: 36%; }
.map-north { position: absolute; right: 22px; top: 20px; font-size: .65rem; letter-spacing: .15em; }
.map-scale { position: absolute; left: 22px; bottom: 20px; padding-top: 7px; border-top: 2px solid var(--green-deep); font-size: .59rem; }
.start-section { background: var(--paper); }
.start-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 55px; }
.start-feature { min-height: 500px; display: flex; flex-direction: column; justify-content: flex-end; padding: 40px; color: var(--chalk); background: var(--green) radial-gradient(circle at 75% 18%, rgba(185,154,88,.28), transparent 15rem); }
.start-feature__number { margin-bottom: auto; font-size: .66rem; letter-spacing: .15em; text-transform: uppercase; }
.start-feature strong { font: 500 clamp(2.7rem,5vw,4.8rem)/1 var(--serif); }
.start-feature p { max-width: 460px; color: rgba(250,248,242,.7); }
.start-feature .button-link { margin-top: 15px; }
.lesson-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.lesson-list a { display: grid; grid-template-columns: 42px 1fr auto; gap: 10px 20px; align-items: center; min-height: 82px; padding: 14px 4px; border-bottom: 1px solid var(--line); transition: padding .2s; }
.lesson-list a:hover { padding-left: 12px; }
.lesson-list > li span { grid-row: 1/3; color: var(--gold); font-size: .67rem; }
.lesson-list strong { font: 500 1.35rem var(--serif); }
.lesson-list small { grid-column: 2; color: var(--muted); }
.lesson-list i { grid-column: 3; grid-row: 1/3; font-style: normal; }
.soil-section { background: var(--limestone); }
.soil-explorer { border: 1px solid var(--line); background: var(--chalk); }
.soil-tabs { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--line); }
.soil-tab { display: grid; grid-template-columns: auto 1fr; gap: 6px 15px; padding: 22px; border: 0; border-right: 1px solid var(--line); text-align: left; background: transparent; }
.soil-tab:last-child { border-right: 0; }
.soil-tab span { grid-row: 1/3; color: var(--gold); font-size: .65rem; }
.soil-tab strong { font: 500 1.35rem var(--serif); }
.soil-tab small { color: var(--muted); }
.soil-tab.is-active, .soil-tab[aria-selected="true"] { color: var(--chalk); background: var(--green); }
.soil-tab.is-active small, .soil-tab[aria-selected="true"] small { color: rgba(250,248,242,.65); }
.soil-panel { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 440px; }
.soil-profile { position: relative; min-height: 400px; overflow: hidden; background: #d9d1c2; }
.soil-profile::before { content: ""; position: absolute; inset: 0; opacity: .75; background-image: radial-gradient(circle at 10% 20%, #f5f0e6 0 4px, transparent 5px), radial-gradient(circle at 70% 40%, #857e71 0 7px, transparent 8px), radial-gradient(circle at 30% 80%, #b8a989 0 10px, transparent 11px); background-size: 45px 43px, 70px 68px, 92px 85px; }
.soil-panel--silex .soil-profile { background: #7e8885; }.soil-panel--caillottes .soil-profile { background: #e1d7c3; }
.soil-profile span { position: absolute; left: 28px; bottom: 25px; color: rgba(23,60,50,.65); font: italic 2.5rem var(--serif); }
.soil-profile--image::before { display: none; }
.soil-profile--image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 50%,rgba(7,24,18,.58)); pointer-events: none; }
.soil-profile--image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) contrast(1.04); transition: transform 1s var(--ease); }
.soil-panel:hover .soil-profile--image img { transform: scale(1.025); }
.soil-profile--image .soil-profile__name { z-index: 3; bottom: 40px; color: rgba(250,248,242,.92); text-shadow: 0 2px 18px rgba(0,0,0,.38); }
.soil-profile--image .media-credit { z-index: 4; }
.soil-panel__copy { align-self: center; padding: clamp(34px,6vw,80px); }
.soil-panel__copy > p { color: var(--muted); font: 1.08rem/1.7 var(--serif); }
.soil-panel__copy dl { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin-block: 28px; }
.soil-panel__copy dt { font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--olive); }
.soil-panel__copy dd { margin: 5px 0 0; font-size: .82rem; }
.soil-section > .shell > .editorial-note { margin: 22px 0 0; background: rgba(250,248,242,.45); }
.producer-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.producer-feature-card { display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--white); }
.producer-feature-card__portrait { position: relative; min-height: 250px; display: grid; place-items: center; overflow: hidden; color: var(--chalk); background: var(--green); }
.producer-feature-card__portrait::before, .producer-feature-card__portrait::after { content: ""; position: absolute; width: 240px; height: 240px; border: 1px solid rgba(250,248,242,.2); border-radius: 45%; transform: rotate(26deg); }
.producer-feature-card__portrait::after { width: 165px; height: 165px; transform: rotate(-12deg); }
.producer-feature-card__portrait span { position: relative; z-index: 2; font: italic 5rem var(--serif); }
.producer-feature-card__portrait--image::before, .producer-feature-card__portrait--image::after { display: none; }
.producer-feature-card__media-link { position: absolute; inset: 0; }
.producer-feature-card__portrait--image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) contrast(1.03); transition: transform .8s var(--ease); }
.producer-feature-card:hover .producer-feature-card__portrait--image img { transform: scale(1.035); }
.producer-feature-card__body { flex: 1; display: flex; flex-direction: column; padding: 28px; }
.producer-feature-card h3 { margin-bottom: 14px; }
.producer-feature-card__body > p { color: var(--muted); font-size: .88rem; }
.producer-feature-card .tag-row { margin-block: 22px; }
.producer-feature-card__body > .text-link { margin-top: auto; }
.vintage-section { background: var(--paper); }
.vintage-chart-wrap { overflow-x: auto; }
.vintage-chart { width: 100%; border-collapse: collapse; min-width: 900px; background: var(--chalk); }
.vintage-chart th, .vintage-chart td { padding: 17px 13px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.vintage-chart thead th { color: var(--muted); font-size: .61rem; letter-spacing: .1em; text-transform: uppercase; }
.vintage-chart tbody th { font: 500 1.55rem var(--serif); }
.vintage-chart td { font-size: .79rem; }
.vintage-chart td strong { display: block; font-family: var(--serif); font-size: 1.05rem; }
.vintage-chart td small { display: block; max-width: 280px; color: var(--muted); line-height: 1.35; }
.score-seal { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--burgundy); font: 600 1rem var(--serif); }
.score-seal--word { min-width: 72px; padding: 5px 8px; border-radius: 0; font: 700 .62rem var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.status-pill { display: inline-block; padding: 5px 8px; color: var(--green); background: var(--limestone); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vintage-toggle { width: 30px; height: 30px; border: 1px solid var(--line); background: transparent; transition: transform .2s; }
.vintage-row.is-expanded .vintage-toggle { transform: rotate(45deg); }
.vintage-detail td { padding: 20px 45px; background: var(--limestone); }
.vintage-detail p { margin-bottom: 8px; color: var(--muted); }
.vintage-compare-teaser { display: grid; grid-template-columns: .55fr 1.45fr; gap: 30px 60px; align-items: center; margin-top: 35px; padding: 30px; color: var(--chalk); background: var(--green); }
.vintage-compare-teaser h3 { margin: 0; }
.compare-controls { display: grid; grid-template-columns: auto 1fr auto auto 1fr auto; gap: 10px; align-items: center; }
.compare-controls label { position: absolute; clip: rect(0,0,0,0); }
.compare-controls select, .compare-controls button { height: 44px; padding: 0 14px; border: 1px solid rgba(250,248,242,.3); color: var(--chalk); background: transparent; }
.compare-controls button { background: var(--burgundy); border-color: var(--burgundy); font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.comparison-output { grid-column: 1/-1; overflow-x: auto; }
.vintage-comparison-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.vintage-comparison-table th, .vintage-comparison-table td { padding: 10px; border-top: 1px solid rgba(250,248,242,.18); text-align: left; }
.pairing-section { background: var(--chalk); }
.pairing-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.pairing-card { min-height: 330px; display: flex; flex-direction: column; padding: 26px; background: var(--chalk); transition: color .3s, background .3s; }
.pairing-card:hover { color: var(--chalk); background: var(--burgundy); }
.pairing-card__figure { position: relative; min-height: 120px; display: grid; place-items: center; margin-bottom: 25px; }
.pairing-card__figure i { width: 95px; height: 60px; border: 1px solid var(--line); border-radius: 50%; transform: rotate(-9deg); }
.pairing-card__figure b { position: absolute; color: var(--gold); font: 500 2.7rem var(--serif); }
.pairing-card__figure--image { aspect-ratio: 5/4; min-height: 0; margin: -26px -26px 25px; overflow: hidden; background: var(--green-deep); }
.pairing-card__figure--image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.02); transition: transform .75s var(--ease), filter .35s; }
.pairing-card--has-image:hover .pairing-card__figure--image img { transform: scale(1.04); filter: saturate(1) contrast(1.02); }
.pairing-card__figure--image .media-credit { text-align: left; }
.pairing-card strong { margin-bottom: 12px; font: 500 1.8rem var(--serif); }
.pairing-card > span:not(.pairing-card__figure):not(.card-kicker) { color: var(--muted); font-size: .83rem; }
.pairing-card:hover > span { color: rgba(250,248,242,.72) !important; }
.pairing-card__arrow { margin-top: auto; align-self: end; font-style: normal; }
.journal-section { background: var(--paper); }
.journal-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.story-card--lead { grid-column: span 2; }
.story-card__media { position: relative; overflow: hidden; background: var(--green); }
.story-card__image { position: relative; min-height: 230px; display: grid; place-items: center; overflow: hidden; color: var(--chalk); background: var(--green) repeating-radial-gradient(circle at 40% 60%, transparent 0 28px, rgba(250,248,242,.13) 29px 30px); }
.story-card--lead .story-card__image { min-height: 350px; }
.story-card__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.03); transition: transform .8s var(--ease); }
.story-card:hover .story-card__image img { transform: scale(1.03); }
.story-card__monogram { font: italic 4.5rem var(--serif); }
.story-card__body { padding: 25px 2px; }
.story-card__body h3 { margin-bottom: 14px; }
.story-card__body > p { color: var(--muted); font-size: .86rem; }
.newsletter-section { color: var(--chalk); background: var(--burgundy); }
.newsletter-section__inner { min-height: 390px; display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; align-items: center; }
.newsletter-section h2 { margin: 0; }
.newsletter-section__form-wrap > p, .newsletter-section small { color: rgba(250,248,242,.72); }
.newsletter-form { display: grid; grid-template-columns: 1fr auto; margin: 25px 0 8px; border-bottom: 1px solid rgba(250,248,242,.5); }
.newsletter-form input { min-width: 0; padding: 15px 0; border: 0; outline: 0; color: var(--chalk); background: transparent; }
.newsletter-form input::placeholder { color: rgba(250,248,242,.5); }
.newsletter-form button { border: 0; color: var(--chalk); background: transparent; font-size: .69rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.newsletter-form .form-message { grid-column: 1/-1; margin: 4px 0; font-size: .72rem; }

/* Directories */
.directory-hero { padding-block: 78px 70px; background: var(--paper); border-bottom: 1px solid var(--line); }
.directory-hero__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: end; }
.directory-hero--with-image { padding-block: 46px; }
.directory-hero--with-image .directory-hero__grid {
  grid-template-columns: minmax(0,1fr) minmax(380px,.78fr); grid-template-rows: auto 1fr;
  column-gap: clamp(45px,6vw,90px); row-gap: 26px; align-items: end;
}
.directory-hero--with-image .directory-hero__title { align-self: end; }
.directory-hero--with-image .directory-hero__intro { grid-column: 1; align-self: start; max-width: 660px; }
.directory-hero__media {
  position: relative; grid-column: 2; grid-row: 1/3; align-self: stretch;
  min-height: 430px; overflow: hidden; background: var(--green-deep); box-shadow: var(--shadow);
}
.directory-hero__media::after {
  content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); pointer-events: none;
}
.directory-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85) contrast(1.03); }
.breadcrumbs { display: flex; gap: 9px; margin-bottom: 28px; color: var(--muted); font-size: .67rem; letter-spacing: .07em; text-transform: uppercase; }
.breadcrumbs--light { color: rgba(250,248,242,.65); }
.breadcrumbs a { border-bottom: 1px solid currentColor; }
.directory-hero h1 { margin: 0; }
.directory-hero__intro > p { color: var(--muted); font: 1.22rem/1.65 var(--serif); }
.directory-count { display: flex; align-items: baseline; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.directory-count strong { font: 500 2.2rem var(--serif); }.directory-count span { color: var(--muted); font-size: .69rem; text-transform: uppercase; letter-spacing: .08em; }
.directory-shell { display: grid; grid-template-columns: 265px minmax(0,1fr); gap: 65px; padding-block: 65px 110px; }
.directory-sidebar { align-self: start; position: sticky; top: 170px; }
.directory-search label, .filter-form legend, .filter-select > span { display: block; margin-bottom: 8px; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.directory-search > div { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--ink); }
.directory-search input { min-width: 0; padding: 10px 0; border: 0; outline: 0; background: transparent; }
.directory-search button { border: 0; background: transparent; }
.filter-form { display: grid; gap: 20px; margin-top: 38px; }
.filter-form__heading { display: flex; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.filter-form__heading button { border: 0; background: transparent; color: var(--muted); font-size: .7rem; }
.filter-form fieldset { display: grid; gap: 7px; margin: 0; padding: 0; border: 0; }
.filter-form fieldset label { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: .78rem; }
.filter-form input[type="checkbox"] { accent-color: var(--burgundy); }
.filter-apply { min-height: 42px; border: 1px solid var(--green); color: var(--chalk); background: var(--green); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.directory-jump { display: grid; margin-top: 40px; }.directory-jump h2 { font: 700 .68rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.directory-jump a { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .8rem; }
.directory-help { display: flex; gap: 12px; margin-top: 32px; padding: 16px; background: var(--paper); font-size: .72rem; }
.directory-help > span { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; }.directory-help p { margin: 0; }
.results-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 30px; }
.results-toolbar h2 { margin: 0; font-size: 2.4rem; }.results-toolbar label { color: var(--muted); font-size: .68rem; }.results-toolbar select { margin-left: 8px; padding: 7px; border: 1px solid var(--line); background: var(--chalk); }
.directory-note { margin-bottom: 25px; padding: 18px 20px; border: 1px solid var(--line); background: var(--paper); }.directory-note p { margin: 4px 0 0; color: var(--muted); }
.entity-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.entity-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--white); transition: transform .25s, box-shadow .25s; }
.entity-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.entity-card__media { position: relative; overflow: hidden; background: #173c32; }
.entity-card__visual { position: relative; aspect-ratio: 4/3; min-height: 0; display: grid; place-items: center; overflow: hidden; color: #faf8f2; background: #173c32; }
.entity-card__visual::before { content: ""; position: absolute; width: 250px; height: 120px; border: 1px solid rgba(250,248,242,.17); border-radius: 50%; transform: rotate(-16deg); }
.entity-card--has-image .entity-card__visual::before { display: none; }
.entity-card__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease), filter .5s; }
.entity-card:hover .entity-card__visual img { transform: scale(1.035); }
.entity-card__image-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,29,23,.04) 48%, rgba(9,29,23,.42)); pointer-events: none; }
.entity-card__fallback { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.entity-card__fallback::before, .entity-card__fallback::after {
  content: ""; position: absolute; width: 78%; aspect-ratio: 2/1; border: 1px solid rgba(250,248,242,.2);
  border-radius: 50%; transform: rotate(-14deg);
}
.entity-card__fallback::after { width: 54%; transform: rotate(17deg); }
.entity-card__fallback small { position: absolute; top: 18px; left: 20px; z-index: 2; color: rgba(250,248,242,.62); font: 700 .57rem var(--sans); letter-spacing: .15em; text-transform: uppercase; }
.entity-card__fallback strong { position: relative; z-index: 2; max-width: 88%; overflow: hidden; font: italic clamp(3.6rem,7vw,6rem)/1 var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.entity-card__fallback > i { position: absolute; right: 20px; bottom: 19px; width: 35px; height: 1px; background: rgba(250,248,242,.6); }
.entity-card--wines .entity-card__fallback { background: linear-gradient(135deg,#1d4b3e,#0d2b22); }
.entity-card--vintages .entity-card__fallback { background: linear-gradient(145deg,#6d313b,#2a2925); }
.entity-card--villages .entity-card__fallback, .entity-card--vineyards .entity-card__fallback { background: linear-gradient(145deg,#747758,#354237); }
.entity-card--food .entity-card__fallback { background: linear-gradient(145deg,#873e45,#533531); }
.entity-card--travel .entity-card__fallback { background: linear-gradient(145deg,#496c67,#203f37); }
.entity-card__index { position: relative; font: italic 3.3rem var(--serif); }
.entity-card__score { position: absolute; z-index: 5; top: 13px; right: 13px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(250,248,242,.64); border-radius: 50%; color: #faf8f2; background: rgba(10,32,25,.4); backdrop-filter: blur(8px); font-size: .72rem; }
.entity-card__body { flex: 1; display: flex; flex-direction: column; padding: 25px; }
.entity-card h3 { margin-bottom: 13px; font-size: 1.8rem; }
.entity-card__body > p { color: var(--muted); font-size: .82rem; }
.entity-card__facts { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; padding: 15px 0; border-block: 1px solid var(--line); }
.entity-card__facts div { min-width: 0; }.entity-card__facts dt { color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .07em; }.entity-card__facts dd { margin: 2px 0 0; font-size: .73rem; overflow-wrap: anywhere; }
.entity-card .tag-row { margin-top: 18px; }
.entity-card__footer { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 22px; }
.save-toggle { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); background: transparent; border-radius: 50%; }
.save-toggle.is-saved, .save-toggle[aria-pressed="true"] { color: var(--chalk); background: var(--burgundy); border-color: var(--burgundy); }
.filter-empty, .empty-state { padding: 40px; text-align: center; color: var(--muted); background: var(--paper); }
.empty-state { grid-column: 1/-1; }.empty-state__mark { display: block; margin-bottom: 20px; font: italic 3rem var(--serif); color: var(--gold); }
.directory-cta { padding-block: 65px; color: var(--chalk); background: var(--green); }
.directory-cta__inner { display: grid; grid-template-columns: 1fr 1fr auto; gap: 50px; align-items: center; }.directory-cta h2 { margin: 0; font-size: 3rem; }.directory-cta p { margin: 0; color: rgba(250,248,242,.7); }.directory-cta a { border-bottom: 1px solid currentColor; }

/* Detail and editorial pages */
.producer-hero, .soil-hero, .vintage-hero, .detail-hero { position: relative; padding-block: 70px 76px; color: #faf8f2; background: #173c32; overflow: hidden; }
.producer-hero::before, .soil-hero::before, .vintage-hero::before {
  content: ""; position: absolute; width: 54vw; height: 25vw; right: -15vw; top: -8vw;
  border: 1px solid rgba(250,248,242,.09); border-radius: 50%; transform: rotate(-13deg); pointer-events: none;
}
.producer-hero > .shell, .soil-hero > .shell, .vintage-hero > .shell { position: relative; z-index: 1; }
.producer-hero__grid, .soil-hero__grid, .vintage-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: center; }
.producer-hero__grid--with-image, .soil-hero__grid--with-image, .vintage-hero__grid--with-image { grid-template-columns: minmax(0,1fr) minmax(400px,1fr); gap: clamp(48px,7vw,105px); }
.producer-hero h1, .soil-hero h1, .vintage-hero h1 { margin-bottom: 23px; }
.producer-hero__summary, .soil-hero__summary, .vintage-hero__copy > p { color: rgba(250,248,242,.72); font: 1.12rem/1.65 var(--serif); }
.producer-hero__alternate { color: rgba(250,248,242,.5); font-size: .72rem; }
.producer-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.producer-hero__seal { aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(250,248,242,.25); border-radius: 50%; font: italic clamp(5rem,12vw,9rem) var(--serif); background: radial-gradient(circle, rgba(185,154,88,.22), transparent 65%); }
.detail-hero__media { position: relative; width: 100%; aspect-ratio: 5/4; overflow: hidden; background: var(--green-deep); box-shadow: 0 30px 75px rgba(4,18,14,.34); }
.detail-hero__media::after { content: ""; position: absolute; inset: 0; z-index: 2; box-shadow: inset 0 0 0 1px rgba(250,248,242,.2); pointer-events: none; }
.detail-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.04); transition: transform 1s var(--ease); }
.detail-hero__media:hover img { transform: scale(1.025); }
.detail-hero__media-mark { position: absolute; z-index: 3; top: 18px; left: 22px; color: rgba(250,248,242,.7); font: italic 3.6rem/1 var(--serif); text-shadow: 0 2px 18px rgba(0,0,0,.34); }
.soil-hero__geology-label { position: absolute; z-index: 3; top: 18px; left: 20px; max-width: 75%; padding: 7px 10px; color: rgba(250,248,242,.9); background: rgba(12,37,30,.48); backdrop-filter: blur(8px); font: 700 .58rem/1.25 var(--sans); letter-spacing: .11em; text-transform: uppercase; }
.vintage-hero__media { aspect-ratio: 4/3; }
.vintage-hero__year-mark { position: absolute; z-index: 3; top: 8px; right: 18px; color: rgba(250,248,242,.8); font: italic clamp(3.7rem,7vw,6rem)/1 var(--serif); text-shadow: 0 2px 22px rgba(0,0,0,.38); }
.vintage-hero__identity > .vintage-hero__copy { margin-top: 28px; }
.vintage-status { display: inline-flex; padding: 6px 10px; border: 1px solid rgba(250,248,242,.36); color: rgba(250,248,242,.74); font-size: .61rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.producer-keyfacts, .soil-keyfacts, .vintage-keyfacts { color: var(--ink); background: var(--limestone); }
.producer-hero > .shell > .producer-keyfacts, .soil-hero > .shell > .soil-keyfacts, .vintage-hero > .shell > .vintage-keyfacts {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); margin: 50px 0 0; border-block: 1px solid var(--line); box-shadow: 0 18px 50px rgba(4,20,15,.12);
}
.producer-keyfacts > .shell, .soil-keyfacts > .shell, .vintage-keyfacts > .shell { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); }
.producer-keyfacts dl, .soil-keyfacts dl, .vintage-keyfacts dl { display: contents; }
.producer-keyfacts div, .soil-keyfacts div, .vintage-keyfacts div { min-height: 105px; display: grid; align-content: center; padding: 18px; border-right: 1px solid var(--line); }
.producer-keyfacts dt, .soil-keyfacts dt, .vintage-keyfacts dt { color: var(--muted); font-size: .59rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.producer-keyfacts dd, .soil-keyfacts dd, .vintage-keyfacts dd { margin: 4px 0 0; font-family: var(--serif); font-size: 1.05rem; }
.detail-layout, .article-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 7vw; padding-block: 80px 120px; }
.detail-toc, .article-aside { align-self: start; position: sticky; top: 180px; }
.detail-toc { display: grid; order: 2; }.detail-toc > p { font-size: .66rem; letter-spacing: .11em; text-transform: uppercase; }.detail-toc a { padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.detail-content, .article-body { min-width: 0; }
.detail-section { padding-bottom: 70px; margin-bottom: 70px; border-bottom: 1px solid var(--line); }
.detail-section__heading { display: grid; grid-template-columns: 50px 1fr; gap: 20px; align-items: start; margin-bottom: 30px; }.detail-section__heading h2 { margin: 0; font-size: clamp(2.35rem,4vw,4rem); }.section-number { padding-top: 8px; color: var(--gold); }
.lead-copy, .factual-summary, .article-prose > p:first-child { font: 1.34rem/1.67 var(--serif); }
.lead-copy--small { font-size: 1.12rem; }
.prose, .article-prose { max-width: 720px; }.prose p, .article-prose p { margin-bottom: 1.35em; }.prose a, .article-prose a { color: var(--burgundy); border-bottom: 1px solid currentColor; }
.fact-list, .definition-grid, .factor-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; margin: 30px 0; }
.fact-list div, .definition-grid > *, .factor-grid > * { padding: 18px; border: 1px solid var(--line); background: var(--paper); }
.fact-list dt, .definition-grid dt { color: var(--muted); font-size: .61rem; text-transform: uppercase; letter-spacing: .08em; }.fact-list dd, .definition-grid dd { margin: 6px 0 0; font-family: var(--serif); }
.style-profile, .association-panel, .drinking-panel { padding: 28px; background: var(--paper); }
.style-profile__intro { color: var(--muted); }
.style-meters { display: grid; gap: 14px; }.style-meter { display: grid; grid-template-columns: 120px 1fr auto; gap: 14px; align-items: center; font-size: .72rem; }.style-meter i { height: 5px; background: var(--limestone); }.style-meter i::after { content: ""; display: block; width: var(--value,65%); height: 100%; background: var(--burgundy); }
.wine-lineup, .relationship-grid, .related-grid, .wine-style-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.wine-lineup__item, .relationship-card, .related-grid article, .wine-style-grid article { padding: 20px; border: 1px solid var(--line); background: var(--white); }
.wine-lineup__item { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 20px; align-items: stretch; }
.wine-lineup__media { position: relative; min-height: 235px; overflow: hidden; background: #eee9de; }
.wine-lineup__media img { width: 100%; height: 100%; padding: 10px; object-fit: contain; filter: saturate(.92) contrast(1.02); }
.wine-lineup__media .media-credit { padding-inline: 8px; font-size: .48rem; }
.bottle-silhouette { min-height: 235px; display: grid; align-content: center; justify-items: center; gap: 14px; padding: 15px 6px; color: var(--muted); background: var(--paper); }
.bottle-silhouette i { position: relative; width: 38px; height: 128px; border: 1px solid var(--line); border-radius: 8px 8px 16px 16px; background: linear-gradient(90deg,rgba(255,255,255,.07),transparent), var(--green-deep); }
.bottle-silhouette i::before { content: ""; position: absolute; left: 10px; top: -39px; width: 16px; height: 42px; border: 1px solid var(--line); border-bottom: 0; border-radius: 3px 3px 0 0; background: var(--green-deep); }
.bottle-silhouette span { font-size: .53rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.wine-lineup__item h3, .relationship-card h3, .related-grid h3 { font-size: 1.35rem; }
.quote-grid, .connection-columns { display: grid; grid-template-columns: repeat(2,1fr); gap: 25px; }
.producer-quote { margin: 0; padding: 28px; border-left: 2px solid var(--gold); background: var(--paper); font: italic 1.22rem/1.6 var(--serif); }
.visit-card { padding: 24px; border: 1px solid var(--line); }.verification-status { display: inline-block; margin-bottom: 12px; padding: 4px 7px; color: var(--burgundy); border: 1px solid currentColor; font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; }
.geology-figure { position: relative; min-height: 330px; overflow: hidden; background: #c7b99f; }.geology-figure__sky { position: absolute; inset: 0 0 58%; background: #e8e3d7; }.geology-layer { position: absolute; left: -5%; right: -5%; border-radius: 50% 50% 0 0; }.geology-layer--top { top: 37%; height: 24%; background: #d9cbb2; }.geology-layer--middle { top: 53%; height: 26%; background: #a79476; }.geology-layer--base { top: 70%; bottom: 0; background: #6c7169; }
.soil-switcher { display: grid; gap: 8px; }.soil-switcher a { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); }.soil-swatch { width: 16px; height: 16px; border-radius: 50%; background: var(--limestone-deep); }.soil-swatch--silex { background: var(--flint); }.soil-swatch--caillottes { background: #d9caa7; }
.mini-map { min-height: 180px; position: relative; overflow: hidden; background: var(--limestone); }.mini-map__shape { position: absolute; inset: 18% 22%; border: 1px solid var(--green); border-radius: 45%; transform: rotate(-13deg); }.mini-map__label { position: absolute; left: 16px; bottom: 14px; font: italic 1.3rem var(--serif); }
.season-timeline { display: grid; gap: 0; border-left: 1px solid var(--gold); }.season-timeline > * { position: relative; padding: 0 0 28px 28px; }.season-timeline > *::before { content: ""; position: absolute; left: -5px; top: 4px; width: 9px; height: 9px; border-radius: 50%; background: var(--burgundy); }
.article-hero { position: relative; padding-block: 70px; overflow: hidden; background: var(--paper); }
.article-hero::before { content: ""; position: absolute; width: 62vw; height: 25vw; right: -20vw; top: -5vw; border: 1px solid color-mix(in srgb,var(--ink) 9%,transparent); border-radius: 50%; transform: rotate(-12deg); }
.article-hero--with-image { color: #faf8f2; background: #102f27; }
.article-hero--with-image::before { border-color: rgba(250,248,242,.11); }
.article-hero__grid { position: relative; z-index: 1; }
.article-hero__grid--with-image { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr); gap: clamp(45px,7vw,105px); align-items: center; }
.article-hero__inner { max-width: 940px; }
.article-hero h1 { font-size: clamp(3.4rem,7vw,6.8rem); }
.article-hero--with-image h1 { font-size: clamp(3.2rem,5.6vw,5.9rem); }
.article-hero__dek { max-width: 770px; color: var(--muted); font: 1.3rem/1.6 var(--serif); }
.article-hero--with-image .article-hero__dek, .article-hero--with-image .article-byline { color: rgba(250,248,242,.7); }
.article-hero__media { position: relative; justify-self: end; width: 100%; max-height: 650px; aspect-ratio: 4/5; overflow: hidden; background: var(--green-deep); box-shadow: 0 35px 80px rgba(0,0,0,.32); }
.article-hero__media::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(250,248,242,.18); pointer-events: none; }
.article-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.04); transition: transform 1s var(--ease); }
.article-hero__media:hover img { transform: scale(1.025); }
.article-byline { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; margin-top: 30px; font-size: .7rem; color: var(--muted); }.author-mark { width: 38px; height: 38px; display: grid; place-items: center; color: var(--chalk); background: var(--green); border-radius: 50%; font-family: var(--serif); }
.article-byline p { margin: 0; }
.article-byline .save-toggle { width: auto; min-width: 36px; height: 38px; display: inline-flex; gap: 7px; margin-left: auto; padding-inline: 12px; border-radius: 999px; }
.article-hero--with-image .author-mark { color: #102f27; background: #eee7d6; }
.article-hero--with-image .save-toggle { border-color: rgba(250,248,242,.3); }
.article-simple { margin-bottom: 45px; padding: 30px; border-left: 4px solid var(--gold); background: var(--limestone); }.article-simple h2 { font-size: 1.7rem; }.article-simple p { margin: 0; font: 1.2rem/1.6 var(--serif); }
.article-aside__card { margin-bottom: 18px; padding: 20px; border: 1px solid var(--line); background: var(--paper); }.article-aside__card h2 { font: 700 .67rem var(--sans); letter-spacing: .11em; text-transform: uppercase; }.article-aside__card a { display: block; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: .75rem; }
.article-sources, .sources-section { margin-top: 60px; padding-top: 30px; border-top: 1px solid var(--line); }.source-line { color: var(--muted); font-size: .75rem; }

/* Ask, utilities, saved */
.ask-stage {
  position: relative; isolation: isolate; min-height: max(690px, calc(100svh - 172px));
  display: grid; overflow: hidden; color: #f8f4ea; background: #0b2a22;
}
.ask-stage::before {
  content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle at 50% 38%, transparent 0 28%, rgba(4,18,14,.13) 64%, rgba(4,18,14,.62) 100%),
    linear-gradient(180deg, rgba(7,30,24,.02), rgba(5,22,18,.5));
}
.ask-stage__art {
  position: absolute; z-index: -2; inset: 0; opacity: .54; pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(9,38,30,.42), rgba(9,38,30,.18) 50%, rgba(9,38,30,.42)),
    url("/static/images/editorial/ask-sancerre-vine-study.jpg");
  background-color: #143d31; background-position: center 48%; background-size: cover;
  filter: saturate(.76) contrast(1.06);
}
.ask-stage__vine { position: absolute; z-index: -1; width: clamp(230px,25vw,420px); height: 110%; top: -5%; opacity: .55; pointer-events: none; }
.ask-stage__vine::before {
  content: ""; position: absolute; inset: -8% 26% -8% 18%; border-left: 1px solid rgba(220,197,144,.34);
  border-radius: 50%; transform: rotate(13deg);
}
.ask-stage__vine i { position: absolute; display: block; width: clamp(55px,7vw,106px); aspect-ratio: 1.65/1; border: 1px solid rgba(220,197,144,.27); border-radius: 80% 8% 78% 12%; transform: rotate(24deg); }
.ask-stage__vine--left { left: -5vw; }.ask-stage__vine--left i:nth-child(1) { left: 26%; top: 15%; }.ask-stage__vine--left i:nth-child(2) { left: 44%; top: 48%; transform: scaleX(-1) rotate(26deg); }.ask-stage__vine--left i:nth-child(3) { left: 12%; top: 77%; }
.ask-stage__vine--right { right: -7vw; transform: scaleX(-1) rotate(-4deg); }.ask-stage__vine--right i:nth-child(1) { left: 31%; top: 23%; }.ask-stage__vine--right i:nth-child(2) { left: 44%; top: 66%; transform: scaleX(-1) rotate(25deg); }
.ask-stage__inner {
  position: relative; z-index: 1; width: calc(100% - var(--gutter) - var(--gutter)); max-width: 1100px; min-width: 0; min-height: inherit;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  margin-inline: auto; padding-block: clamp(38px,5.5vh,70px) clamp(26px,4vh,48px); text-align: center;
}
.ask-stage__intro { width: 100%; max-width: 760px; margin-bottom: clamp(25px,3.5vh,42px); }
.ask-stage__intro .eyebrow { margin-bottom: 17px; }
.ask-stage__intro h1 { margin-bottom: 18px; color: #fbf7ee; font-size: clamp(4.5rem,8.4vw,8.5rem); line-height: .82; letter-spacing: -.055em; text-shadow: 0 4px 40px rgba(0,0,0,.18); }
.ask-stage__intro h1 em { color: #e7d6ab; font-weight: 400; }
.ask-stage__intro > p:last-child { max-width: 660px; margin: 0 auto; color: rgba(248,244,234,.75); font: clamp(1.03rem,1.4vw,1.25rem)/1.55 var(--serif); }
.ask-console {
  width: min(100%,980px); min-width: 0; padding: clamp(23px,3vw,38px); color: var(--ink);
  border: 1px solid rgba(238,222,183,.62); background: color-mix(in srgb,var(--chalk) 96%,transparent);
  box-shadow: 0 34px 90px rgba(2,16,12,.42), inset 0 0 0 1px rgba(255,255,255,.36);
  backdrop-filter: blur(16px); text-align: left;
}
.ask-console__topline {
  position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  min-height: 30px; margin-bottom: 24px; color: var(--muted); font-size: .55rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
}
.ask-console__topline > span:last-child { text-align: right; }
.ask-console__seal { width: 31px; height: 31px; display: grid; place-items: center; color: var(--burgundy); border: 1px solid color-mix(in srgb,var(--burgundy) 55%,transparent); border-radius: 50%; font: italic .72rem var(--serif); letter-spacing: 0; }
.ask-form { padding: 0; color: inherit; background: transparent; }
.ask-form > label { display: block; margin-bottom: 10px; font: 500 clamp(1.08rem,1.8vw,1.35rem)/1.2 var(--serif); letter-spacing: -.015em; }
.ask-composer {
  display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch;
  min-height: 92px; border: 1px solid color-mix(in srgb,var(--ink) 30%,transparent); background: var(--white);
  box-shadow: inset 0 0 0 3px color-mix(in srgb,var(--limestone) 40%,transparent);
  transition: border-color .25s, box-shadow .25s;
}
.ask-composer:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px color-mix(in srgb,var(--gold) 20%,transparent); }
.ask-form textarea {
  width: 100%; min-height: 90px; max-height: 210px; padding: 20px 22px; border: 0; outline: 0;
  color: var(--ink); background: transparent; resize: none; font: 1rem/1.55 var(--sans);
}
.ask-form textarea::placeholder { color: color-mix(in srgb,var(--muted) 76%,transparent); opacity: 1; }
.ask-form button {
  align-self: stretch; min-width: 178px; margin: 0; padding: 17px 22px; border: 0;
  display: inline-flex; justify-content: center; align-items: center; gap: 17px;
  color: #fbf7ee; background: #753b43; font-size: .68rem; font-weight: 750;
  letter-spacing: .105em; text-transform: uppercase; transition: background .25s, transform .25s, opacity .25s;
}
.ask-form button i { font: normal 1.2rem/1 var(--serif); transition: transform .25s var(--ease); }
.ask-form button:hover { background: #603038; }.ask-form button:hover i { transform: translateX(4px); }
.ask-form button:disabled { cursor: wait; opacity: .65; }
.ask-shortcut { display: block; margin-top: 7px; color: var(--muted); font-size: .58rem; text-align: right; }
.ask-starters { display: flex; align-items: stretch; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.ask-starters > span { flex: 0 0 auto; align-self: center; padding: 5px 9px 5px 0; color: var(--olive); font-size: .58rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.ask-example {
  flex: 1 1 180px; min-width: 0; padding: 8px 11px; border: 1px solid var(--line); color: var(--muted);
  background: transparent; text-align: left; font-size: .65rem; line-height: 1.38; transition: color .2s, border-color .2s, background .2s, transform .2s;
}
.ask-example:hover { color: var(--ink); border-color: color-mix(in srgb,var(--gold) 75%,transparent); background: color-mix(in srgb,var(--gold) 9%,transparent); transform: translateY(-1px); }
.ask-form__note { display: flex; justify-content: center; align-items: center; gap: 9px; margin: 19px auto 0; color: var(--muted); font-size: .62rem; line-height: 1.5; text-align: center; }
.ask-form__note-mark { flex: 0 0 auto; color: var(--gold); font-size: 1rem; }
.ask-output { margin-top: 29px; padding-top: 28px; border-top: 1px solid var(--line); animation: ask-answer-arrive .45s var(--ease) both; }
.ask-output__heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-bottom: 17px; }
.ask-output__heading .eyebrow { margin-bottom: 8px; color: var(--burgundy); }
.ask-output h2 { margin: 0; font-size: clamp(1.8rem,3vw,2.7rem); }
.ask-output__edition { flex: 0 0 auto; margin-top: 5px; padding: 5px 8px; color: var(--muted); border: 1px solid var(--line); font-size: .55rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.ask-output__answer, .ask-answer__copy { max-width: 790px; margin: 0; color: var(--ink); font: clamp(1.02rem,1.6vw,1.21rem)/1.7 var(--serif); }
.ask-answer__copy, .ask-answer__loading, .ask-answer__error { margin-bottom: 0; }
.ask-answer__loading { color: var(--muted); font-style: italic; }
.ask-answer__loading::after { content: ""; display: inline-block; width: 1.8em; height: 1px; margin-left: .55em; vertical-align: middle; background: var(--gold); transform-origin: left; animation: ask-reading 1.1s ease-in-out infinite; }
.ask-answer__error { padding: 13px 15px; color: var(--burgundy); border-left: 2px solid currentColor; background: color-mix(in srgb,var(--burgundy) 7%,transparent); font: .8rem/1.55 var(--sans); }
.ask-output__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ask-links__label { flex: 0 0 100%; margin-bottom: 1px; color: var(--muted); font-size: .57rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ask-source-link {
  display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 8px 11px;
  color: var(--ink); border: 1px solid var(--line); background: transparent; font-size: .66rem; font-weight: 700;
}
.ask-source-link:hover { color: var(--chalk); border-color: var(--green); background: var(--green); }.ask-source-link__arrow { font-size: .9rem; }
.ask-stage__scope { margin: 22px 0 0; color: rgba(248,244,234,.56); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }
.ask-stage__scope span { color: #e2c98f; }
.ask-method { padding-block: clamp(80px,9vw,130px); background: var(--chalk); }
.ask-method__grid { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(55px,9vw,140px); align-items: start; }
.ask-method__intro { position: sticky; top: 180px; }.ask-method__intro h2 { margin: 0; font-size: clamp(2.8rem,4.6vw,4.8rem); }
.ask-method__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.ask-method__list li { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 25px; padding: 28px 0 30px; border-bottom: 1px solid var(--line); }
.ask-method__list li > span { padding-top: 4px; color: var(--gold); font: italic 1rem var(--serif); }
.ask-method__list h3 { margin-bottom: 8px; font-size: 1.45rem; }.ask-method__list p { max-width: 610px; margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.65; }
.ask-boundary { padding-block: 44px; color: #f8f4ea; background: var(--green-deep); }
.ask-boundary__inner { display: grid; grid-template-columns: minmax(180px,.45fr) minmax(0,1fr); gap: clamp(35px,7vw,100px); align-items: center; }
.ask-boundary .eyebrow { margin: 0; }.ask-boundary__inner > p:last-child { max-width: 800px; margin: 0; color: rgba(248,244,234,.68); font: 1.05rem/1.6 var(--serif); }
@keyframes ask-answer-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes ask-reading { 0%,100% { transform: scaleX(.28); opacity: .45; } 50% { transform: scaleX(1); opacity: 1; } }
.saved-hero, .utility-hero { padding-block: 70px; background: var(--paper); }.saved-hero > .shell, .utility-hero__inner { max-width: 1000px; }.utility-hero__inner > p { max-width: 700px; color: var(--muted); font: 1.2rem/1.65 var(--serif); }
.utility-layout { display: grid; grid-template-columns: 220px minmax(0,760px); gap: 8vw; padding-block: 75px 120px; }.utility-layout > aside { align-self: start; position: sticky; top: 175px; display: grid; }.utility-layout > aside p { font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.utility-layout > aside a { padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .78rem; }.utility-content section { padding-bottom: 45px; margin-bottom: 45px; border-bottom: 1px solid var(--line); }.utility-content h2 { font-size: 2.5rem; }.utility-content p, .utility-content li { color: var(--muted); }
.credits-hero { position: relative; overflow: hidden; }
.credits-hero::after { content: ""; position: absolute; right: -8vw; bottom: -12vw; width: 38vw; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; pointer-events: none; }
.credits-summary { display: flex; align-items: center; gap: 15px; width: fit-content; margin-top: 34px; padding-top: 18px; border-top: 1px solid var(--line); }
.credits-summary strong { font: italic 3.6rem/1 var(--serif); color: var(--green); }
.credits-summary span { color: var(--muted); font-size: .68rem; line-height: 1.45; letter-spacing: .09em; text-transform: uppercase; }
.credits-layout { grid-template-columns: 190px minmax(0,1fr); gap: clamp(45px,7vw,105px); }
.credits-principle { margin-bottom: 72px; padding: 30px clamp(25px,4vw,50px); border-left: 3px solid var(--gold); background: var(--limestone); }
.credits-principle > p:last-child { max-width: 850px; margin: 0; font: 1.2rem/1.65 var(--serif); color: var(--ink); }
.credits-content .credit-group { padding-bottom: 80px; margin-bottom: 80px; }
.credit-group__header { display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,.7fr); column-gap: 50px; align-items: end; margin-bottom: 34px; }
.credit-group__header .eyebrow, .credit-group__header h2 { grid-column: 1; }
.credit-group__header > p:last-child { grid-column: 2; grid-row: 1 / span 2; margin: 0; align-self: end; font: 1rem/1.65 var(--serif); }
.credit-group__header h2 { margin-bottom: 0; font-size: clamp(2.45rem,4vw,4.2rem); }
.credit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.credit-card { min-width: 0; margin: 0; border: 1px solid var(--line); background: var(--white); }
.credit-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--limestone); }
.credit-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.03); transition: transform .8s var(--ease); }
.credit-card:hover .credit-card__media img { transform: scale(1.025); }
.credit-card__badge { position: absolute; left: 14px; bottom: 14px; padding: 7px 9px; color: var(--chalk); background: rgba(16,47,39,.88); font-size: .57rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.credit-card__body { position: relative; padding: 24px; }
.credit-card__number { position: absolute; right: 22px; top: 19px; margin: 0; font: italic 1.2rem var(--serif); color: var(--gold) !important; }
.credit-card h3 { max-width: calc(100% - 42px); margin-bottom: 20px; font-size: 1.65rem; line-height: 1.12; }
.credit-card dl { display: grid; gap: 8px; margin: 0 0 18px; }
.credit-card dl div { display: grid; grid-template-columns: 66px minmax(0,1fr); gap: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.credit-card dt { color: var(--muted); font-size: .59rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.credit-card dd { min-width: 0; margin: 0; font-size: .72rem; line-height: 1.5; overflow-wrap: anywhere; }
.credit-card dd a { color: var(--burgundy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.credit-card code { font: .62rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--muted); overflow-wrap: anywhere; }
.credit-card__source { display: inline-block; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: .7rem; font-weight: 700; }
.credit-card__note { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: .67rem; line-height: 1.55; }
.credits-content .credits-corrections { margin-bottom: 0; padding: clamp(30px,5vw,60px); color: rgba(250,248,242,.72); border: 0; background: var(--green-deep); }
.credits-corrections h2 { color: var(--chalk); }
.credits-corrections p { max-width: 650px; color: inherit; }
.credits-corrections a { color: var(--chalk); border-bottom: 1px solid rgba(250,248,242,.5); }
.contact-form { display: grid; gap: 10px; }.contact-form label { margin-top: 8px; font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.contact-form input, .contact-form textarea { width: 100%; padding: 12px; border: 1px solid var(--line); background: var(--chalk); }.contact-form button { width: fit-content; margin-top: 10px; padding: 12px 20px; border: 0; color: var(--chalk); background: var(--green); }.contact-form small { color: var(--muted); }
.form-message--notice { padding: 14px; border-left: 3px solid var(--gold); background: var(--paper); }
.saved-workspace { padding-block: 65px 110px; }.saved-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }.saved-toolbar button { border: 1px solid var(--line); padding: 9px 13px; background: transparent; }.saved-items { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }.saved-card { display: flex; justify-content: space-between; gap: 20px; padding: 22px; border: 1px solid var(--line); background: var(--white); }.saved-card h2 { font-size: 1.4rem; }.saved-remove { align-self: center; border: 0; color: var(--burgundy); background: transparent; }.saved-empty { padding: 60px; text-align: center; background: var(--paper); }.saved-privacy { margin-top: 30px; color: var(--muted); font-size: .76rem; }
.not-found { min-height: 65vh; display: grid; align-items: center; padding-block: 80px; }.not-found__grid { display: grid; grid-template-columns: .45fr 1fr; gap: 8vw; align-items: center; }.not-found__mark { font: italic clamp(7rem,18vw,15rem)/1 var(--serif); color: var(--limestone-deep); }.not-found h1 { font-size: clamp(3rem,6vw,6rem); }.not-found__search { display: flex; max-width: 550px; border-bottom: 1px solid var(--ink); }.not-found__search input { flex: 1; min-width: 0; padding: 11px 0; border: 0; outline: 0; background: transparent; }.not-found__search button { border: 0; background: transparent; }

/* Footer */
.site-footer { color: rgba(250,248,242,.74); background: var(--green-deep); }
.footer-main { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; padding-block: 75px 55px; }
.footer-wordmark { display: block; margin-bottom: 16px; color: #faf8f2; font: 500 2.1rem var(--serif); }.footer-brand p { max-width: 360px; }.footer-ask { display: inline-flex; gap: 10px; margin-top: 16px; color: #faf8f2; border-bottom: 1px solid rgba(250,248,242,.4); }
.footer-nav { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; }.footer-nav h2 { color: #faf8f2; font: 700 .65rem var(--sans); letter-spacing: .11em; text-transform: uppercase; }.footer-nav a { display: block; padding: 4px 0; font-size: .75rem; }
.footer-rule { height: 1px; background: rgba(250,248,242,.16); }
.footer-meta { display: flex; justify-content: space-between; gap: 30px; padding-block: 20px; font-size: .66rem; }.footer-meta p { margin: 0; }.footer-meta nav { display: flex; flex-wrap: wrap; gap: 15px; }
.footer-disclaimer { padding-bottom: 35px; color: rgba(250,248,242,.46); font-size: .62rem; }.footer-disclaimer p { max-width: 1000px; margin-bottom: 5px; }

/* Responsive */
@media (max-width: 1080px) {
  .primary-nav { display: none; }
  .masthead { min-height: 76px; }
  .site-header { top: 0; }
  .home-hero { min-height: 730px; }
  .chapter-grid { grid-template-columns: repeat(2,1fr); }
  .producer-feature-grid, .journal-grid { grid-template-columns: repeat(2,1fr); }
  .producer-feature-card:last-child { grid-column: 1/-1; display: grid; grid-template-columns: .7fr 1.3fr; }
  .pairing-grid { grid-template-columns: repeat(2,1fr); }
  .directory-shell { grid-template-columns: 220px minmax(0,1fr); gap: 35px; }
  .entity-grid { grid-template-columns: 1fr; }
  .article-hero__grid--with-image { grid-template-columns: minmax(0,1fr) minmax(310px,.78fr); gap: 45px; }
  .producer-hero__grid--with-image, .soil-hero__grid--with-image, .vintage-hero__grid--with-image { grid-template-columns: minmax(0,1fr) minmax(350px,.9fr); gap: 45px; }
  .detail-layout, .article-layout { grid-template-columns: minmax(0,1fr) 230px; gap: 45px; }
  .footer-main { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  :root { --gutter: 20px; }
  body { font-size: 15px; }
  .ask-stage { min-height: max(650px,calc(100svh - 108px)); }
  .ask-stage__inner { padding-block: 34px 25px; }
  .ask-stage__intro { margin-bottom: 24px; }
  .ask-stage__intro h1 { margin-bottom: 15px; font-size: clamp(4.2rem,16vw,6.3rem); }
  .ask-stage__intro > p:last-child { max-width: 530px; font-size: 1rem; }
  .ask-console { padding: 23px; }
  .ask-console__topline { margin-bottom: 17px; }
  .ask-starters { flex-wrap: nowrap; margin-inline: -23px; padding: 1px 23px 7px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .ask-starters > span { position: sticky; left: 0; z-index: 1; padding-right: 14px; background: linear-gradient(90deg,var(--chalk) 75%,transparent); }
  .ask-example { flex: 0 0 min(235px,67vw); scroll-snap-align: start; }
  .ask-stage__scope { margin-top: 17px; }
  .ask-method__grid { grid-template-columns: 1fr; gap: 45px; }.ask-method__intro { position: static; max-width: 620px; }
  .ask-boundary__inner { grid-template-columns: 1fr; gap: 15px; }
  .notice-bar__inner { justify-content: center; text-align: center; }.notice-bar a { display: none; }
  .masthead { grid-template-columns: auto 1fr auto; gap: 10px; }
  .wordmark__edition, .wordmark__line { display: none; }.wordmark__name { font-size: 1.32rem; white-space: nowrap; }
  .icon-button > span:last-child:not(.saved-count), .saved-link > span:nth-child(2) { display: none; }
  .masthead__actions { gap: 0; }.saved-link { display: none; }
  .mobile-menu__columns, .ask-boundary__inner { grid-template-columns: 1fr; }
  .mobile-menu__lead { display: grid; }
  .search-drawer__topline p { display: none; }.global-search-form input { font-size: 1.6rem; }.search-shortcuts { align-items: flex-start; }
  .home-hero { min-height: calc(100svh - 108px); align-items: end; }
  .home-hero__wash { background: linear-gradient(0deg, rgba(8,32,25,.95) 0%, rgba(8,32,25,.5) 68%, rgba(8,32,25,.12)); }
  .home-hero__content { padding-block: 180px 100px; }.home-hero h1 { font-size: clamp(3.5rem,15vw,5.6rem); }.home-hero__dek { font-size: 1.08rem; }
  .hero-search__field { min-height: 61px; padding-left: 17px; }.hero-search button { padding-inline: 15px; }.hero-scroll { display: none; }.hero-credit { bottom: 9px; max-width: 78%; }
  .atlas-stats__grid { grid-template-columns: repeat(2,1fr); }.atlas-stats__grid div { min-height: 92px; border-bottom: 1px solid rgba(250,248,242,.13); }.atlas-stats__grid div:last-child { grid-column: 1/-1; }
  .section { padding-block: 80px; }.section-heading--split { grid-template-columns: 1fr; gap: 20px; }.section-heading > p { font-size: 1rem; }
  .chapter-grid { grid-template-columns: 1fr; }.chapter-card { min-height: 210px; }
  .map-feature__grid, .start-layout, .soil-panel, .newsletter-section__inner, .directory-hero__grid, .producer-hero__grid, .soil-hero__grid, .vintage-hero__grid, .article-hero__grid, .vintage-compare-teaser, .not-found__grid { grid-template-columns: 1fr; }
  .directory-hero--with-image .directory-hero__grid { grid-template-columns: 1fr; grid-template-rows: auto; row-gap: 25px; }
  .directory-hero--with-image .directory-hero__title, .directory-hero--with-image .directory-hero__intro, .directory-hero__media { grid-column: auto; grid-row: auto; }
  .directory-hero__media { min-height: 390px; aspect-ratio: 16/10; }
  .article-hero__grid--with-image, .producer-hero__grid--with-image, .soil-hero__grid--with-image, .vintage-hero__grid--with-image { grid-template-columns: 1fr; }
  .article-hero__media { justify-self: stretch; max-height: none; aspect-ratio: 16/10; }
  .detail-hero__media { aspect-ratio: 16/10; }
  .atlas-map { min-height: 480px; }.map-feature__copy { order: 2; }
  .start-feature { min-height: 430px; }.soil-tabs { grid-template-columns: 1fr; }.soil-tab { border-right: 0; border-bottom: 1px solid var(--line); }.soil-panel__copy { padding: 30px; }
  .producer-feature-grid, .journal-grid { grid-template-columns: 1fr; }.producer-feature-card:last-child { grid-column: auto; display: block; }.story-card--lead { grid-column: auto; }
  .pairing-grid { grid-template-columns: 1fr; }
  .newsletter-section__inner { padding-block: 70px; min-height: auto; gap: 30px; }
  .directory-shell { grid-template-columns: 1fr; padding-top: 38px; }.directory-sidebar { position: static; }.filter-form { grid-template-columns: repeat(2,1fr); }.filter-form__heading, .filter-apply { grid-column: 1/-1; }
  .entity-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.entity-card__body { padding: 19px; }.entity-card h3 { font-size: 1.45rem; }
  .directory-cta__inner { grid-template-columns: 1fr; gap: 18px; }
  .detail-layout, .article-layout { grid-template-columns: 1fr; padding-top: 50px; }.detail-toc, .article-aside { position: static; order: -1; }
  .detail-toc { display: flex; overflow-x: auto; gap: 15px; }.detail-toc > p { display: none; }.detail-toc a { white-space: nowrap; }
  .detail-section__heading { grid-template-columns: 35px 1fr; }.fact-list, .definition-grid, .factor-grid, .wine-lineup, .relationship-grid, .related-grid, .wine-style-grid, .quote-grid, .connection-columns { grid-template-columns: 1fr; }
  .utility-layout { grid-template-columns: 1fr; padding-top: 40px; }.utility-layout > aside { position: static; display: flex; overflow-x: auto; gap: 14px; }.utility-layout > aside p { display: none; }.utility-layout > aside a { white-space: nowrap; }
  .credit-group__header { grid-template-columns: 1fr; gap: 12px; }.credit-group__header .eyebrow, .credit-group__header h2, .credit-group__header > p:last-child { grid-column: 1; grid-row: auto; }
  .saved-items { grid-template-columns: 1fr; }
  .footer-nav { grid-template-columns: repeat(2,1fr); }.footer-meta { display: grid; }
}

@media (max-width: 540px) {
  .masthead { gap: 4px; }
  .masthead__actions { gap: 2px; }
  .wordmark__name { font-size: 1.08rem; }
  .icon-button { min-height: 34px; padding: 6px; }
  .theme-toggle { width: 34px; min-height: 34px; }
  .language-picker__toggle { min-width: 38px; min-height: 34px; padding: 5px; }
  .language-picker__menu { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ask-stage { min-height: max(660px,calc(100svh - 108px)); }
  .ask-stage__vine { opacity: .34; }
  .ask-stage__intro { margin-bottom: 21px; }
  .ask-stage__intro .eyebrow { margin-bottom: 13px; font-size: .62rem; }
  .ask-stage__intro h1 { margin-bottom: 13px; font-size: clamp(3.75rem,18vw,5.35rem); }
  .ask-stage__intro > p:last-child { font-size: .94rem; line-height: 1.48; }
  .ask-console { padding: 19px 17px 18px; }
  .ask-console__topline { grid-template-columns: 1fr auto; min-height: 25px; margin-bottom: 14px; }.ask-console__topline > span:last-child { display: none; }
  .ask-console__seal { width: 27px; height: 27px; }
  .ask-form > label { margin-bottom: 8px; font-size: 1rem; }
  .ask-composer { grid-template-columns: 1fr; min-height: 0; }
  .ask-form textarea { min-height: 76px; padding: 15px 16px; font-size: .9rem; }
  .ask-form button { min-width: 0; min-height: 47px; padding: 12px 18px; }
  .ask-shortcut { display: none; }
  .ask-starters { margin: 14px -17px 0; padding-inline: 17px; }.ask-starters > span { display: none; }.ask-example { flex-basis: min(220px,72vw); }
  .ask-form__note { align-items: flex-start; margin-top: 12px; font-size: .57rem; text-align: left; }
  .ask-output { margin-top: 20px; padding-top: 19px; }.ask-output__edition { display: none; }.ask-output__heading { margin-bottom: 12px; }.ask-output h2 { font-size: 1.7rem; }
  .ask-output__answer, .ask-answer__copy { font-size: 1rem; line-height: 1.6; }
  .ask-stage__scope { display: none; }
  .ask-method__list li { grid-template-columns: 34px minmax(0,1fr); gap: 14px; }
  .home-hero h1 { font-size: 3.55rem; }
  .hero-search__field { grid-template-columns: 1fr auto; }.hero-search__field .search-mark { display: none; }.hero-search input { font-size: .85rem; }
  .chapter-card { min-height: 190px; padding: 20px; }.chapter-card__body strong { font-size: 1.7rem; }
  .atlas-map { min-height: 420px; }.map-toolbar { right: 12px; left: 12px; }.map-filter { flex: 1; padding-inline: 7px; }.map-node span { display: none; }
  .soil-panel__copy dl { grid-template-columns: 1fr; }.soil-profile { min-height: 300px; }
  .producer-feature-card__portrait { min-height: 200px; }
  .compare-controls { grid-template-columns: 1fr auto 1fr; }.compare-controls button { grid-column: 1/-1; }.compare-controls label { position: absolute; }
  .directory-results { order: 1; }.directory-sidebar { order: 2; margin-top: 48px; padding-top: 38px; border-top: 1px solid var(--line); }
  .entity-grid { grid-template-columns: 1fr; }.filter-form { grid-template-columns: 1fr; }.filter-form__heading, .filter-apply { grid-column: auto; }
  .directory-hero { padding-block: 50px; }.directory-hero h1 { font-size: 3.4rem; }
  .directory-hero__media { min-height: 260px; aspect-ratio: 4/3; }
  .credit-grid { grid-template-columns: 1fr; }.credits-content .credit-group { padding-bottom: 55px; margin-bottom: 55px; }.credit-card__body { padding: 20px; }
  .producer-hero, .soil-hero, .vintage-hero, .detail-hero, .article-hero { padding-block: 50px; }.producer-hero h1, .soil-hero h1, .vintage-hero h1, .article-hero h1 { font-size: 3.4rem; }
  .article-hero__media, .detail-hero__media { aspect-ratio: 4/3; }
  .producer-hero__seal { max-width: 230px; margin-inline: auto; }
  .producer-keyfacts > .shell, .soil-keyfacts > .shell, .vintage-keyfacts > .shell, .producer-hero > .shell > .producer-keyfacts, .soil-hero > .shell > .soil-keyfacts, .vintage-hero > .shell > .vintage-keyfacts { grid-template-columns: repeat(2,1fr); }
  .wine-lineup__item { grid-template-columns: 76px minmax(0,1fr); gap: 14px; padding: 14px; }
  .wine-lineup__media, .bottle-silhouette { min-height: 205px; }
  .style-meter { grid-template-columns: 90px 1fr; }.style-meter > :last-child { display: none; }
  .footer-nav { grid-template-columns: 1fr 1fr; gap: 22px 15px; }.footer-main { padding-top: 55px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .notice-bar, .site-header, .site-footer, .hero-scroll, .newsletter-section, .directory-sidebar, .save-toggle { display: none !important; }
  body { color: #111; background: #fff; }
  .shell { width: 100%; }
  a { color: inherit; }
}
