@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,600;1,500&display=swap');

:root { --ink:#171817; --cream:#f4f0e7; --paper:#fbf8f1; --wine:#681f2d; --gold:#c9a56a; --line:rgba(23,24,23,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.65; }
a { color:inherit; }
.site-header { height:86px; padding:0 clamp(22px,5vw,76px); display:flex; align-items:center; justify-content:space-between; position:absolute; inset:0 0 auto; z-index:10; color:white; border-bottom:1px solid rgba(255,255,255,.2); }
.brand { display:flex; gap:12px; align-items:center; text-decoration:none; font-family:"Playfair Display",serif; font-size:1.35rem; line-height:1.05; }
.brand small { display:block; font:500 .61rem/1.4 "DM Sans",sans-serif; letter-spacing:.2em; text-transform:uppercase; opacity:.78; margin-top:5px; }
.brand-mark { width:40px; height:40px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-style:italic; }
nav { display:flex; gap:32px; align-items:center; }
nav a { text-decoration:none; font-size:.9rem; }
.nav-cta { border:1px solid rgba(255,255,255,.55); padding:9px 18px; border-radius:999px; }
.menu-toggle { display:none; }
.hero { min-height:760px; height:96vh; max-height:920px; position:relative; color:white; overflow:hidden; display:flex; align-items:flex-end; }
.hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.05); filter:saturate(.86) contrast(1.04); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,12,10,.78) 0%,rgba(13,12,10,.27) 62%,rgba(13,12,10,.1)),linear-gradient(0deg,rgba(10,10,9,.56),transparent 55%); }
.hero-content { position:relative; z-index:2; width:min(760px,90%); margin:0 clamp(22px,8vw,128px) clamp(68px,10vh,110px); }
.eyebrow { margin:0 0 18px; text-transform:uppercase; letter-spacing:.2em; font-size:.76rem; font-weight:600; color:#ead4a9; }
.eyebrow.dark { color:var(--wine); }
h1,h2,h3 { font-family:"Playfair Display",serif; font-weight:600; margin:0; line-height:1.08; }
h1 { font-size:clamp(3.6rem,7.4vw,7rem); max-width:900px; letter-spacing:-.04em; }
.hero-content>p:not(.eyebrow) { max-width:590px; font-size:1.15rem; color:rgba(255,255,255,.84); margin:28px 0; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:34px; }
.button { display:inline-flex; padding:14px 23px; text-decoration:none; border-radius:2px; font-weight:600; }
.button.light { background:var(--cream); color:var(--ink); }
.button.dark { background:var(--ink); color:white; }
.text-link { text-decoration:none; font-weight:600; }
.text-link span { margin-left:10px; }
.intro { padding:clamp(82px,11vw,150px) clamp(22px,8vw,128px); display:grid; grid-template-columns:1fr 1fr; gap:46px 8vw; }
h2 { font-size:clamp(2.6rem,5vw,5rem); letter-spacing:-.035em; }
.intro-copy { font-size:1.08rem; color:#4c4a45; max-width:650px; }
.intro-copy p:first-child { margin-top:0; }
.facts { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts div { padding:34px 28px; border-right:1px solid var(--line); }
.facts div:last-child { border:0; }
.facts strong { display:block; font:600 2rem/1.1 "Playfair Display",serif; color:var(--wine); }
.facts span { color:#68655e; font-size:.88rem; }
.landscape-story { padding:clamp(82px,10vw,140px) clamp(22px,8vw,128px); background:#ebe7dd; }
.landscape-story-heading { max-width:800px; margin:0 auto 38px; text-align:center; }
.landscape-story-heading .eyebrow { margin-bottom:10px; }
.landscape-story-heading h2 { margin-bottom:8px; }
.landscape-subtitle { font:600 clamp(1.4rem,2.5vw,2rem)/1.25 "Playfair Display",serif; color:var(--wine); margin:0; }
.landscape-story-heading>p:last-child { color:#5b5953; margin:20px 0 0; }
.landscape-photo { display:block; width:100%; max-width:780px; height:auto; aspect-ratio:2/1; object-fit:cover; margin:0 auto 55px; }
.landscape-prose { max-width:780px; margin:auto; }
.landscape-prose article + article { border-top:1px solid var(--line); margin-top:32px; padding-top:32px; }
.landscape-prose h3 { font-size:clamp(1.5rem,2.3vw,2rem); margin-bottom:14px; }
.landscape-prose p { color:#474640; font-size:1.03rem; margin:0 0 16px; }
.landscape-prose p:last-child { margin-bottom:0; }
.story-band { background:var(--wine); color:white; padding:76px clamp(22px,8vw,128px); display:grid; grid-template-columns:.3fr 1fr 1fr; gap:46px; align-items:start; }
.story-number { font:italic 5rem/1 "Playfair Display",serif; color:rgba(255,255,255,.22); }
.story-band h2 { font-size:clamp(2.5rem,4vw,4.5rem); }
.story-band>p { color:rgba(255,255,255,.78); margin:5px 0 0; max-width:580px; }
.wines { padding:clamp(82px,11vw,150px) clamp(22px,6vw,96px); }
.section-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; margin:0 auto 55px; max-width:1200px; }
.section-heading>p { max-width:430px; color:#68655e; }
.wine-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:1400px; margin:auto; gap:2px; }
.wine-sheet { display:contents; }
.wine-card { min-height:535px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; color:white; position:relative; overflow:hidden; }
.wine-photo { display:block; width:158px; height:200px; object-fit:cover; object-position:center; align-self:center; margin:0 auto auto; border-radius:2px; box-shadow:0 12px 30px rgba(0,0,0,.25); }
.wine-card.red { background:#742536; }
.wine-card.stone { background:#8b7b68; }
.wine-card.ink { background:#222b2a; }
.wine-card.pale { background:#b28b46; }
.wine-card>* { position:relative; z-index:1; }
.wine-type { text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; opacity:.75; margin-bottom:10px; }
.wine-card h3 { font-size:2rem; }
.wine-card p { color:rgba(255,255,255,.88); line-height:1.55; }
.wine-card span { font-size:.79rem; border-top:1px solid rgba(255,255,255,.25); padding-top:15px; }
.selection-note { text-align:center; color:#77736c; font-size:.82rem; margin:24px 0 0; }
.stories { padding:clamp(82px,10vw,140px) clamp(22px,6vw,96px); background:#f1ebe2; }
.story-grid { max-width:1200px; margin:auto; display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.story-grid article { background:var(--paper); border-top:3px solid var(--wine); padding:34px; }
.story-grid span { display:block; font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; color:var(--wine); font-weight:600; margin-bottom:18px; }
.story-grid h3 { font-size:clamp(1.9rem,3vw,2.7rem); }
.story-grid p { color:#4c4a45; margin:18px 0 0; }
.tasting { background:#1d2422; color:white; padding:clamp(82px,10vw,140px) clamp(22px,8vw,128px); display:grid; grid-template-columns:1.1fr .9fr; gap:9vw; align-items:center; }
.tasting>div:first-child>p:last-child { max-width:600px; color:rgba(255,255,255,.72); font-size:1.08rem; }
.quote { font:italic 500 clamp(2rem,3.4vw,3.8rem)/1.2 "Playfair Display",serif; color:#e5cfa4; border-left:1px solid var(--gold); padding-left:42px; }
.contact { text-align:center; padding:clamp(90px,12vw,170px) 22px; }
.contact>p:not(.eyebrow) { color:#67645e; max-width:610px; margin:24px auto 32px; }
footer { background:#111312; color:rgba(255,255,255,.68); padding:52px clamp(22px,6vw,96px); display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:30px; font-size:.82rem; }
.footer-brand { color:white; }
footer p { margin:0; }

@media (max-width:900px) {
  .site-header { height:72px; }
  .menu-toggle { display:block; color:white; background:transparent; border:1px solid rgba(255,255,255,.5); padding:7px 12px; }
  nav { display:none; position:absolute; top:72px; left:0; right:0; padding:24px; background:#171817; flex-direction:column; align-items:flex-start; gap:19px; }
  nav.open { display:flex; }
  .hero { min-height:680px; }
  .intro,.tasting { grid-template-columns:1fr; }
  .story-band { grid-template-columns:.25fr 1fr; }
  .story-band>p { grid-column:2; }
  .wine-grid { grid-template-columns:repeat(2,1fr); }
  .story-grid { grid-template-columns:1fr; }
  footer { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  h1 { font-size:3.35rem; }
  .hero-content { margin-bottom:60px; }
  .hero img { transform:scale(1.54); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .intro { padding-top:78px; }
  .landscape-photo { margin-bottom:35px; }
  .facts { grid-template-columns:1fr; }
  .facts div { border-right:0; border-bottom:1px solid var(--line); }
  .story-band { grid-template-columns:1fr; gap:18px; }
  .story-number { font-size:3.5rem; }
  .story-band>p { grid-column:1; }
  .section-heading { display:block; }
  .wine-grid { grid-template-columns:1fr; }
  .wine-card { min-height:510px; }
  .quote { padding-left:24px; }
}

@media print {
  @page { size:A4; margin:12mm; }
  html { scroll-behavior:auto; }
  body { background:white; color:#171817; font-size:9.5pt; line-height:1.35; }
  .site-header { position:static; height:auto; padding:0 0 5mm; color:#171817; border-bottom:1px solid #aaa; }
  .brand { font-size:16pt; }
  .brand small { font-size:7pt; }
  .brand-mark { width:9mm; height:9mm; }
  nav, .menu-toggle, .hero, .intro, .landscape-story, .story-band, .stories, .tasting, footer { display:none !important; }
  .wines { padding:6mm 0 0; }
  .section-heading { display:block; margin:0 0 5mm; }
  .section-heading .eyebrow { display:none; }
  .section-heading h2 { font-size:21pt; letter-spacing:0; }
  .section-heading>p { max-width:none; margin:2mm 0 0; font-size:9pt; }
  .wine-grid { display:block; max-width:none; }
  .wine-sheet { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3mm; }
  .wine-sheet + .wine-sheet { break-before:page; page-break-before:always; }
  .wine-card {
    display:grid; grid-template-columns:27mm minmax(0,1fr);
    grid-template-areas:"photo type" "photo title" "photo description" "photo note";
    grid-template-rows:auto auto 1fr auto;
    column-gap:3mm; min-height:43mm; padding:3mm;
    background:white !important; color:#171817;
    border:1px solid #bbb; break-inside:avoid;
  }
  .wine-photo { grid-area:photo; width:27mm; height:36mm; margin:0; object-fit:contain; align-self:center; box-shadow:none; }
  .wine-type { grid-area:type; color:#555; opacity:1; font-size:7pt; letter-spacing:.04em; margin:0 0 1mm; }
  .wine-card h3 { grid-area:title; font-size:13pt; line-height:1.1; }
  .wine-card p { grid-area:description; color:#222; font-size:8.5pt; line-height:1.3; margin:1.5mm 0; }
  .wine-card span { grid-area:note; color:#555; font-size:8pt; border-top:1px solid #ccc; padding-top:1.5mm; }
  .selection-note { font-size:8pt; margin:4mm 0; text-align:left; }
  .contact { padding:5mm 0 0; text-align:left; border-top:1px solid #aaa; break-inside:avoid; }
  .contact .eyebrow { display:none; }
  .contact h2 { font-size:14pt; }
  .contact>p:not(.eyebrow) { margin:1mm 0; max-width:none; font-size:8pt; }
  .contact .button { padding:0; background:none; color:#171817; font-size:9pt; }
}
