:root {
  --night:#1b1024; --night-deep:#120b19; --plum:#2b1736; --wine:#692b51;
  --gold:#e7c482; --gold-light:#f6dcaa; --ink:#302638; --muted:#6b6270;
  --paper:#fcfbf9; --soft:#f2efea; --line:#ded8d1; --green:#365543;
  --sans:'Manrope',Arial,Helvetica,sans-serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; font-family:var(--sans); font-size:16px; line-height:1.75; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
body,button { font-family:var(--sans); }
::selection { background:var(--gold); color:var(--night); }
a { color:inherit; text-underline-offset:5px; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #ae803d; outline-offset:6px; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
figure { margin:0; }
p { margin:0 0 1.35rem; }
h1,h2,h3 { margin:0; font-weight:500; }
h1,h2 { font-family:var(--serif); line-height:1; letter-spacing:-.035em; }
h2 { font-size:clamp(3.2rem,4.8vw,5rem); }
h1 em,h2 em { font-weight:400; }
h3 { font-size:1.3rem; line-height:1.35; font-weight:600; letter-spacing:-.035em; }
ul { padding:0; margin:0; }
.icon { width:22px; height:22px; flex:0 0 22px; }
.wrap { width:min(1256px,calc(100% - 112px)); margin-inline:auto; }
.section { padding-block:112px; }
.eyebrow { font-size:.75rem; font-weight:700; letter-spacing:.17em; line-height:1.6; text-transform:uppercase; color:var(--wine); margin-bottom:22px; }
.text-link { display:inline-flex; align-items:center; gap:24px; font-size:.875rem; font-weight:700; text-decoration:none; padding-bottom:8px; border-bottom:1px solid currentColor; }
.text-link .icon,.button .icon,.nav-cta .icon,.hero-secondary .icon { transition:transform .25s ease; }
.text-link:hover .icon,.button:hover .icon,.nav-cta:hover .icon { transform:translate(3px,-3px); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:56px; padding:16px 24px; font-size:.875rem; line-height:1.45; font-weight:700; text-decoration:none; border:1px solid transparent; transition:background .25s,color .25s,box-shadow .25s; }
.button-gold { background:var(--gold); color:var(--night); }
.button-gold:hover { background:var(--gold-light); box-shadow:0 6px 22px #160b1920; }
.button-outline { color:var(--ink); border-color:#9d929e; background:transparent; }
.button-outline:hover { background:var(--night); color:white; border-color:var(--night); }
.site-header { height:90px; background:var(--night-deep); color:#fff; position:sticky; top:0; z-index:50; border-bottom:1px solid #ffffff12; transition:background .3s,box-shadow .3s; }
.site-header.is-scrolled { background:#170d20f5; box-shadow:0 5px 20px #00000012; }
.header-inner { max-width:1536px; height:100%; padding-inline:4vw; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand-mark { display:block; height:56px; width:64px; overflow:hidden; flex:0 0 64px; }
.brand-mark img { width:72px; height:72px; max-width:none; transform:translate(-4px,-4px); object-fit:contain; }
.brand-name { font-size:1.2rem; font-weight:700; line-height:1.12; letter-spacing:.12em; }
.brand-name>span { display:block; font-size:.8rem; letter-spacing:.09em; padding-top:4px; }
#navigation { display:flex; align-items:center; gap:26px; }
#navigation>a { font-size:.875rem; text-decoration:none; font-weight:500; color:#ddd4e3; position:relative; transition:color .2s; white-space:nowrap; }
#navigation>a:not(.nav-cta)::after { content:''; position:absolute; left:0; right:0; bottom:-8px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
#navigation>a:hover,#navigation>a[aria-current] { color:var(--gold); }
#navigation>a:hover::after,#navigation>a[aria-current]::after { transform:scaleX(1); }
#navigation .nav-cta { display:flex; align-items:center; gap:22px; padding:12px 20px; border:1px solid #e7c48290; color:var(--gold); font-weight:700; margin-left:5px; }
.menu-toggle { display:none; }
.hero { position:relative; isolation:isolate; color:var(--paper); background:var(--night); }
.hero-art,.hero-art img,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-art { z-index:-3; overflow:hidden; }
.hero-art img { object-fit:cover; object-position:60% 70%; }
.hero-shade { z-index:-2; background:linear-gradient(90deg,#140b1b88 0%,#140b1b25 52%,transparent 75%),linear-gradient(0deg,#170e22 0%,transparent 22%); }
.hero-content { padding-top:60px; padding-bottom:65px; position:relative; }
.hero .eyebrow { color:#d9c0e0; margin-bottom:18px; }
.hero .eyebrow>span { padding-inline:8px; color:#aa819f; }
.hero-date { display:flex; align-items:center; flex-wrap:wrap; gap:13px; font-size:.875rem; color:var(--gold-light); }
.date-separator { width:20px; height:1px; background:#e7c48290; }
h1 { font-size:clamp(6.3rem,10.6vw,10.6rem); line-height:.88; letter-spacing:-.045em; margin:30px 0 28px; }
h1 em { color:var(--gold-light); padding-left:.38em; letter-spacing:-.045em; }
.title-period { color:var(--gold-light); }
.hero-description { font-size:1rem; line-height:1.8; color:#e9e0ea; max-width:440px; margin-bottom:28px; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.hero-secondary { display:inline-flex; align-items:center; gap:12px; text-decoration:none; font-size:.875rem; }
.hero-secondary .icon { width:18px; flex-basis:18px; }
.hero-secondary:hover .icon { transform:translateX(4px); }
.hero-venue { display:flex; align-items:center; gap:9px; font-size:.875rem; color:#cbbdd2; margin:25px 0 0; }
.hero-venue .icon { width:16px; height:16px; flex-basis:16px; }
.hero-poster-link { position:absolute; right:4vw; bottom:150px; color:#f2e1c7; display:inline-flex; align-items:center; gap:10px; font-size:.75rem; text-decoration:none; border-bottom:1px solid #f2e1c780; padding-bottom:5px; }
.hero-poster-link .icon { width:17px; height:17px; flex-basis:17px; }
.hero-facts { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #cfb3c747; padding-block:25px; }
.hero-facts>a { display:flex; align-items:center; gap:20px; text-decoration:none; padding:5px 32px; border-right:1px solid #cfb3c72e; transition:background .3s; }
.hero-facts>a:first-child { padding-left:0; }
.hero-facts>a:last-child { border:0; padding-right:0; }
.hero-facts>a:hover .fact-number { color:var(--gold-light); }
.hero-facts>a>.icon { margin-left:auto; width:18px; flex-basis:18px; color:#b898b6; }
.fact-number { font-family:var(--serif); font-size:3.6rem; color:var(--gold); line-height:1; font-weight:500; letter-spacing:-.05em; }
.fact-number>span { font-family:var(--sans); font-size:.75rem; margin-left:4px; letter-spacing:0; }
.fact-label { font-size:.875rem; font-weight:600; line-height:1.6; }
.fact-label small { font-size:.75rem; color:#bbadbf; font-weight:400; }
.hero-enter { animation:hero-enter .9s cubic-bezier(.16,1,.3,1) both; }
.hero-date.hero-enter { animation-delay:.08s; }h1.hero-enter { animation-delay:.15s; }.hero-description.hero-enter { animation-delay:.23s; }.hero-actions.hero-enter { animation-delay:.31s; }.hero-venue.hero-enter { animation-delay:.37s; }
@keyframes hero-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
.intro-grid { display:grid; grid-template-columns:.94fr 1fr; gap:105px; align-items:center; }
.intro-photo { padding-right:18px; position:relative; }
.intro-photo>img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }
.intro-photo::after { content:''; position:absolute; left:18px; right:0; top:18px; bottom:46px; border:1px solid #bfa878; z-index:-1; }
.intro-photo figcaption { margin-top:17px; font-size:.75rem; color:var(--muted); letter-spacing:.025em; }
.intro-copy h2 { margin-bottom:28px; }
.intro-copy .lead { font-family:var(--serif); font-size:1.75rem; line-height:1.3; color:var(--ink); margin-bottom:23px; font-weight:500; }
.intro-copy>p:not(.eyebrow):not(.lead) { color:var(--muted); font-size:1rem; }
.intro-signoff { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:35px; padding-top:26px; border-top:1px solid var(--line); }
.intro-signoff>span { font-family:var(--serif); font-size:1.9rem; color:var(--wine); line-height:1; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:48px; }
.section-heading>p { margin:0 0 5px; font-size:1rem; color:var(--muted); max-width:400px; }
.routes-section { background:var(--soft); }
.route-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.route-card { background:var(--paper); }
.route-image { position:relative; height:320px; overflow:hidden; background:#425243; isolation:isolate; }
.route-image::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#111b1c65,transparent 50%); z-index:1; }
.route-image img { width:100%; height:100%; object-fit:cover; object-position:50% 62%; transition:transform .7s cubic-bezier(.2,.65,.3,1); }
.route-card:nth-child(2) .route-image img { object-position:50% 65%; }
.route-type { position:absolute; top:22px; left:24px; padding:7px 12px; font-size:.75rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; background:#faf8f2ed; color:var(--ink); z-index:2; }
.route-image-distance { position:absolute; bottom:15px; right:28px; z-index:2; color:white; font-family:var(--serif); font-size:6.5rem; font-weight:500; line-height:1; letter-spacing:-.05em; }
.route-image-distance small { font-family:var(--sans); font-size:1rem; margin-left:7px; letter-spacing:0; }
.route-body { padding:34px 36px 30px; }
.route-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.route-heading h3 { font-family:var(--serif); font-size:2.8rem; font-weight:500; line-height:1; }
.route-index { font-size:.75rem; color:#918593; }
.route-body>p { font-size:1rem; color:var(--muted); min-height:5.3em; }
.check-list { list-style:none; }
.check-list li { display:flex; gap:10px; align-items:flex-start; font-size:.875rem; line-height:1.6; margin-bottom:13px; }
.check-list .icon { flex:0 0 16px; width:16px; height:16px; margin-top:3px; color:var(--wine); }
.route-body .check-list { border-top:1px solid var(--line); padding-top:23px; margin-top:24px; min-height:143px; }
.route-link { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.875rem; font-weight:700; text-decoration:none; padding-top:19px; border-top:1px solid var(--line); }
.route-link:hover { color:var(--wine); }
.route-link .icon { transition:transform .25s; }.route-link:hover .icon { transform:translate(2px,-2px); }
.equipment-note { display:flex; align-items:center; gap:23px; border:1px solid #cfc5b8; padding:25px 30px; margin-top:28px; }
.equipment-note>.icon { width:32px; height:32px; flex-basis:32px; color:var(--wine); }
.equipment-note strong { font-family:var(--serif); font-size:1.8rem; font-weight:500; line-height:1.1; }
.equipment-note p { margin:6px 0 0; font-size:.875rem; color:var(--muted); }
.equipment-note>a { margin-left:auto; display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; }
.wine-section { background:var(--plum); color:var(--paper); position:relative; overflow:hidden; }
.wine-heading { text-align:center; max-width:850px; margin:auto; }
.wine-heading .eyebrow { color:#ccb3d3; }
.wine-kicker { font-family:var(--serif); color:var(--gold); font-style:italic; font-size:1.7rem; margin-bottom:14px; }
.wine-heading h2 { font-size:clamp(3.5rem,5.6vw,5.8rem); }
.wine-heading h2 em { color:var(--gold-light); }
.wine-description { max-width:620px; margin:30px auto 0; font-size:1rem; color:#d5c8dc; }
.wineries { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:60px; }
.winery { position:relative; text-align:center; padding:30px 24px 25px; background:var(--paper); color:var(--ink); }
.winery-number { position:absolute; top:16px; left:20px; font-size:.75rem; color:#938392; }
.winery-logo { height:125px; display:flex; align-items:center; justify-content:center; padding:18px 15px; }
.winery-logo img { max-width:100%; max-height:90px; object-fit:contain; }
.winery h3 { font-family:var(--serif); font-size:1.8rem; font-weight:500; margin-top:17px; }
.winery p { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; margin:10px 0 0; color:var(--muted); }
.wine-bottom { display:flex; align-items:center; justify-content:space-between; margin-top:45px; gap:30px; }
.wine-bottom>p { color:#e2d6e5; font-size:1rem; margin:0; }
.wine-note { margin:32px 0 0; color:#bcaac5; font-size:.75rem; }
.program-grid { display:grid; grid-template-columns:.92fr 1fr; gap:100px; align-items:start; }
.program-aside { position:sticky; top:125px; }
.program-aside h2 { font-size:clamp(3.2rem,4.4vw,4.8rem); }
.event-date { display:flex; align-items:center; gap:20px; margin:34px 0 25px; padding-top:25px; border-top:1px solid var(--line); max-width:345px; }
.event-date>span { font-family:var(--serif); font-size:6.5rem; line-height:.85; letter-spacing:-.05em; font-weight:500; color:var(--wine); }
.event-date>div { font-size:.75rem; letter-spacing:.13em; line-height:1.8; }
.event-date strong { font-weight:400; color:var(--muted); letter-spacing:.1em; }
.program-aside>p:not(.eyebrow) { font-size:1rem; color:var(--muted); }
.timeline { list-style:none; margin:0; padding:0; }
.timeline li { position:relative; display:grid; grid-template-columns:117px 1fr; gap:26px; border-top:1px solid var(--line); padding:32px 0; }
.timeline li:last-child { border-bottom:1px solid var(--line); }
.timeline time { font-size:.875rem; color:var(--wine); font-weight:700; padding-top:5px; }
.timeline h3 { font-family:var(--serif); font-size:1.95rem; font-weight:500; line-height:1.1; margin-bottom:10px; }
.timeline p { font-size:.875rem; color:var(--muted); margin:0; }
.booking-section { background:#eee9e3; }
.prices { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.price-card { background:var(--paper); padding:30px 28px; display:flex; flex-direction:column; position:relative; border:1px solid #dfd7ce; }
.ticket-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ticket-top .eyebrow { font-size:.75rem; letter-spacing:.12em; margin-bottom:20px; }
.ticket-top>span { align-self:flex-start; font-size:.75rem; color:#a092a2; }
.price-card h3 { font-family:var(--serif); font-size:2rem; font-weight:500; letter-spacing:-.02em; min-height:2.1em; }
.price { display:flex; gap:9px; align-items:center; margin:12px 0 20px; }
.price>span { font-family:var(--serif); font-size:6rem; font-weight:500; letter-spacing:-.07em; line-height:.9; }
.price>div { font-family:var(--serif); font-size:1.8rem; line-height:1.3; }
.price small { display:block; font-family:var(--sans); font-size:.75rem; color:var(--muted); }
.price-card>p { font-size:.875rem; color:var(--muted); min-height:4.8em; margin-bottom:22px; }
.ticket-rule { border-top:1px dashed #cfc4cf; margin:0 -28px 25px; }
.price-card .check-list { margin-bottom:28px; }
.price-card .check-list li { font-size:.875rem; }
.price-card .button { margin-top:auto; width:100%; font-size:.875rem; gap:12px; padding:15px 17px; }
.price-card .button .icon { width:18px; height:18px; flex-basis:18px; }
.price-card.featured { background:var(--plum); color:#fcf8f3; border-color:var(--plum); }
.featured .eyebrow,.featured .price { color:var(--gold); }.featured .check-list .icon { color:var(--gold); }
.featured>p,.featured .price small { color:#d5c7dc; }.featured .ticket-rule { border-color:#806085; }
.registration { display:flex; align-items:center; justify-content:space-between; gap:60px; margin-top:45px; }
.registration-help { max-width:790px; }
.small-heading { display:block; font-family:var(--serif); font-size:2rem; margin-bottom:12px; line-height:1; }
.registration p { font-size:.875rem; color:var(--muted); margin-bottom:12px; }.registration p:last-child { margin:0; }
.registration a:not(.registration-qr) { color:var(--ink); }
.registration-qr { text-align:center; text-decoration:none; flex-shrink:0; }
.registration-qr img { margin:auto; padding:7px; background:#fff; }
.registration-qr span { display:block; font-size:.75rem; margin-top:9px; color:var(--muted); }
.info-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; align-items:start; }
.info-title { position:sticky; top:125px; }
.info-title>p:not(.eyebrow) { font-size:1rem; max-width:290px; color:var(--muted); margin:25px 0; }
.faqs details { border-bottom:1px solid var(--line); }.faqs details:first-child { border-top:1px solid var(--line); }
.faqs summary { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:25px 0; font-size:1rem; font-weight:600; cursor:pointer; list-style:none; line-height:1.6; }
.faqs summary::-webkit-details-marker { display:none; }
.faqs summary .icon { width:18px; height:18px; flex-basis:18px; color:var(--wine); transition:transform .25s; }
.faqs details[open] summary .icon { transform:rotate(180deg); }
.faq-content { padding-right:30px; }.faq-content p { font-size:.875rem; color:var(--muted); margin:0 0 25px; }
.archive-section { background:#e9eee7; }
.archive-grid { display:grid; grid-template-columns:1fr 1fr; gap:95px; align-items:center; }
.archive-visual { position:relative; padding-right:80px; padding-bottom:50px; }
.archive-photo>img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.archive-poster { position:absolute; width:49%; right:0; bottom:0; transform:rotate(5deg); box-shadow:0 20px 35px #17231830; border:5px solid #fcfbf7; transition:transform .4s; }
.archive-poster:hover { transform:rotate(2deg) translateY(-5px); }.archive-poster img { width:100%; height:auto; }
.archive-copy .eyebrow { color:var(--green); }
.archive-copy h2 { margin-bottom:24px; }
.archive-date { font-family:var(--serif); font-size:2rem; color:var(--green); margin-bottom:20px; }
.archive-copy>p:not(.eyebrow):not(.archive-date) { font-size:1rem; color:#596353; }
.archive-copy .archive-note { font-size:.75rem!important; margin:28px 0 0; padding-top:22px; border-top:1px solid #c8d1c3; }
.partners { padding-block:62px; text-align:center; background:var(--paper); }
.partners .eyebrow { color:var(--muted); }
.partner-row { display:flex; align-items:center; justify-content:center; gap:60px; margin-top:30px; flex-wrap:wrap; }
.partner-row>img { max-width:180px; max-height:78px; object-fit:contain; }
.partner-dark { background:var(--plum); width:180px; height:72px; display:flex; align-items:center; justify-content:center; padding:14px; }
.partner-dark img { max-width:150px; max-height:48px; object-fit:contain; }
.partner-row>span { font-size:.875rem; font-weight:700; line-height:1.4; }
.site-footer { background:var(--night-deep); color:var(--paper); padding-block:80px 30px; }
.footer-invitation { text-align:center; padding-bottom:65px; border-bottom:1px solid #ffffff1a; margin-bottom:55px; }
.footer-invitation .eyebrow { color:#c6b0cb; }
.footer-invitation>p:not(.eyebrow) { font-family:var(--serif); font-size:clamp(3.5rem,6.2vw,6.5rem); line-height:1; letter-spacing:-.03em; margin:10px 0 30px; }
.footer-invitation em { color:var(--gold); }
.footer-invitation .button { min-width:190px; }
.footer-grid { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:70px; }
.footer-grid>div>p { color:#bcaec6; font-size:.875rem; margin:22px 0 0; }
.footer-grid h2 { font-family:var(--sans); font-size:.75rem; font-weight:600; letter-spacing:.06em; line-height:1.5; text-transform:uppercase; margin:10px 0 25px; color:var(--gold); }
.footer-grid>div>a:not(.brand) { display:flex; align-items:center; gap:6px; font-size:.875rem; margin-bottom:12px; text-decoration:none; color:#d5c8de; overflow-wrap:anywhere; }
.footer-grid>div>a:hover { color:var(--gold); }
.footer-grid>div>a>.icon { width:15px; height:15px; flex-basis:15px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:45px; padding-top:24px; border-top:1px solid #ffffff1a; font-size:.75rem; color:#ad9cb9; }
.footer-bottom>a { display:flex; align-items:center; gap:8px; text-decoration:none; }.footer-bottom .icon { transform:rotate(180deg); width:16px; height:16px; }
.mobile-booking { display:none; }
.skip { position:fixed; z-index:100; top:-100px; left:15px; padding:10px 20px; background:white; color:var(--night); }.skip:focus { top:10px; }
.regulation-header .text-link { color:#ece0f1; }
.regulation { max-width:870px; padding-block:70px 110px; }
.regulation h1 { font-size:clamp(3.2rem,7vw,5.5rem); line-height:1; margin:15px 0 45px; }
.regulation h2 { font-family:var(--sans); font-size:1.25rem; line-height:1.5; letter-spacing:-.02em; font-weight:600; margin:45px 0 22px; padding-top:20px; border-top:1px solid var(--line); scroll-margin-top:115px; }
.regulation p { color:#615767; font-size:1rem; overflow-wrap:anywhere; }
.regulation .button { margin-top:30px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .route-card:hover .route-image>img { transform:scale(1.04); } }
@media(min-width:1600px) { .hero-content { padding-top:85px; padding-bottom:85px; } }
@media(max-width:1200px) {
 .wrap { width:calc(100% - 80px); }.header-inner { padding-inline:32px; }#navigation { gap:18px; }#navigation>a { font-size:.75rem; }#navigation .nav-cta { gap:14px; }
 .intro-grid,.program-grid,.archive-grid,.info-grid { gap:60px; }.hero-content { padding-top:52px; padding-bottom:55px; }.hero-facts>a { padding-inline:24px; gap:15px; }.fact-label { font-size:.875rem; }.fact-label small { font-size:.75rem; }
 .price-card { padding:26px 22px; }.ticket-rule { margin-inline:-22px; }.price-card h3 { font-size:1.85rem; }.price-card .button { padding-inline:13px; font-size:.75rem; }
 .route-image { height:295px; }.route-body { padding:30px 28px; }.route-body>p { min-height:7em; }.footer-grid { gap:45px; }
}
@media(max-width:1050px) {
 .site-header { height:80px; }.menu-toggle { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid #c5a5d242; background:transparent; color:#ece3f1; font-size:.875rem; }.menu-toggle .icon { width:21px; height:21px; }
 #navigation { display:none; position:absolute; left:0; right:0; top:80px; background:var(--night-deep); padding:15px 30px 30px; border-top:1px solid #ffffff1a; border-bottom:1px solid #76577c; max-height:calc(100dvh - 80px); overflow:auto; }
 #navigation.open { display:flex; flex-direction:column; align-items:stretch; gap:0; }#navigation>a { padding:14px 6px; font-size:1rem; }#navigation>a:not(.nav-cta)::after { display:none; }#navigation .nav-cta { justify-content:space-between; margin:14px 0 0; padding:14px 18px; }
 .hero h1 { font-size:clamp(6.5rem,13vw,9rem); }.hero-art img { object-position:65% 60%; }.hero-shade { background:linear-gradient(90deg,#140b1baa,transparent 85%),linear-gradient(0deg,#170e22,transparent 30%); }.hero-poster-link { right:40px; bottom:132px; }
 .hero-facts>a>.icon { display:none; }.hero-facts>a { gap:14px; padding-inline:16px; }.fact-number { font-size:3rem; }.fact-label { font-size:.75rem; }.fact-label small { font-size:.75rem; }
 .section { padding-block:85px; }.section-heading { gap:25px; }.section-heading>p { font-size:.875rem; max-width:310px; }
 .intro-grid { gap:45px; }.intro h2 { font-size:3.5rem; }.intro-signoff { flex-wrap:wrap; }.intro-signoff>span { font-size:1.6rem; }.intro-copy>p:not(.eyebrow):not(.lead) { font-size:.875rem; }
 .price-card h3 { font-size:1.7rem; }.price-card .check-list li { font-size:.75rem; }.price-card>p { min-height:6.5em; }.wineries { gap:18px; }.winery { padding-inline:18px; }.winery h3 { font-size:1.6rem; }.wine-bottom>p { font-size:.875rem; }
 .timeline li { grid-template-columns:98px 1fr; gap:20px; }.timeline h3 { font-size:1.8rem; }.timeline time { font-size:.75rem; }.program-grid { gap:50px; }.info-grid { gap:50px; }
 .archive-visual { padding-right:55px; }.archive-grid { gap:55px; }.archive h2 { font-size:3.5rem; }.partner-row { gap:35px; }.footer-grid { gap:25px; }
}
@media(max-width:800px) {
 .wrap { width:calc(100% - 56px); }.hero-content { padding-top:46px; padding-bottom:75px; }.hero h1 { font-size:7.5rem; }.hero-art img { object-position:68% center; }.hero-poster-link { display:none; }.hero-venue { font-size:.75rem; }
 .hero-facts { gap:0; }.hero-facts>a { gap:11px; padding-inline:12px; }.fact-label { font-size:.75rem; }.fact-label small { display:none; }.fact-number { font-size:2.8rem; }
 .intro-grid { grid-template-columns:.85fr 1fr; gap:35px; }.intro-photo { padding-right:12px; }.intro-photo>img { aspect-ratio:3/5; }.intro-copy h2 { font-size:3rem; }.intro-copy .lead { font-size:1.6rem; }
 .section-heading h2 { font-size:3.5rem; }.section-heading>p { max-width:250px; font-size:.875rem; }.route-grid { gap:20px; }.route-image { height:250px; }.route-body { padding:25px 22px; }.route-heading h3 { font-size:2.4rem; }.route-body>p { font-size:.875rem; min-height:8.8em; }.route-body .check-list { min-height:178px; }.route-link { font-size:.875rem; }
 .prices { grid-template-columns:1fr; gap:22px; }.price-card { padding:30px; }.ticket-top .eyebrow { font-size:.75rem; }.price-card h3 { min-height:0; font-size:2.3rem; }.price { margin-block:23px; }.price-card>p { min-height:0; max-width:490px; font-size:1rem; }.price-card .check-list li { font-size:.875rem; }.ticket-rule { margin-inline:-30px; }.price-card .button { width:auto; min-width:270px; align-self:flex-start; font-size:.875rem; padding:16px 22px; }
 .wine-heading h2 { font-size:4.3rem; }.wine-description { font-size:1rem; }.winery-logo { height:90px; padding-inline:5px; }.winery h3 { font-size:1.5rem; }.winery p { font-size:.75rem; letter-spacing:.07em; }.wine-bottom { align-items:flex-start; }.wine-bottom .button { min-width:270px; padding-inline:18px; font-size:.875rem; }.wine-note { font-size:.75rem; }
 .program-grid,.info-grid { grid-template-columns:1fr; gap:45px; }.program-aside,.info-title { position:static; }.program-aside h2 br,.info-title h2 br { display:none; }.program-aside h2 { font-size:3.7rem; }.event-date { margin-top:28px; }.timeline li { grid-template-columns:150px 1fr; gap:30px; }.timeline time { font-size:.875rem; }.timeline h3 { font-size:2.2rem; }.timeline p { font-size:1rem; }
 .info-title>p:not(.eyebrow) { max-width:none; }.registration { gap:35px; }.archive-grid { grid-template-columns:.85fr 1fr; gap:35px; }.archive h2 { font-size:3rem; }.archive-date { font-size:1.7rem; }.archive-copy>p:not(.eyebrow):not(.archive-date) { font-size:.875rem; }.archive-visual { padding-right:30px; }.archive-poster { width:55%; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:35px; }.footer-grid>div:first-child { grid-column:1/-1; }.footer-grid>div:first-child>p { margin-top:15px; }.partner-row>img { max-width:140px; }.partner-dark { width:145px; }
}
@media(max-width:600px) {
 html { scroll-padding-top:90px; }.wrap { width:calc(100% - 40px); }.site-header { height:74px; }.header-inner { padding-inline:16px; }.brand { gap:8px; }.brand-mark { width:54px; height:50px; flex-basis:54px; }.brand-mark img { width:62px; height:62px; }.brand-name { font-size:1rem; }.brand-name>span { font-size:.75rem; }.menu-toggle { padding:8px 10px; font-size:.875rem; }.menu-toggle>span { display:none; }#navigation { top:74px; max-height:calc(100dvh - 74px); padding-inline:22px; }
 .hero-content { padding-top:38px; padding-bottom:120px; }.hero .eyebrow { font-size:.75rem; letter-spacing:.13em; margin-bottom:15px; }.hero .eyebrow>span { padding-inline:4px; }.hero-date { gap:7px; max-width:360px; font-size:.875rem; line-height:1.7; }.hero-date .date-separator { width:12px; }.hero h1 { font-size:clamp(5.1rem,22.3vw,7.6rem); line-height:.93; margin:27px 0 23px; }.hero h1 em { padding-left:.23em; }.hero-description { font-size:1rem; line-height:1.8; max-width:345px; margin-bottom:24px; }.desktop-break { display:none; }.hero-art img { object-position:73% bottom; }.hero-shade { background:linear-gradient(90deg,#170c229c,#170c2240),linear-gradient(0deg,#170e22 0%,transparent 35%,#170e2230 100%); }
 .hero-actions { gap:20px; align-items:flex-start; flex-direction:column; }.hero-actions .button { min-width:238px; padding:15px 20px; }.hero-secondary { font-size:.875rem; }.hero-venue { font-size:.75rem; max-width:310px; align-items:flex-start; margin-top:24px; }.hero-venue .icon { margin-top:3px; }
 .hero-facts { width:100%; padding:20px 12px; background:#1c1126bd; border-color:#cab5ce26; }.hero-facts>a,.hero-facts>a:first-child,.hero-facts>a:last-child { padding:0 8px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:9px; }.hero-facts>a { border-color:#ffffff20; }.fact-number { font-size:3rem; }.fact-number>span { font-size:.75rem; }.fact-label { font-size:.75rem; font-weight:500; line-height:1.5; }.fact-label br { display:none; }
 .section { padding-block:65px; }h2 { font-size:3.25rem; }.eyebrow { font-size:.75rem; letter-spacing:.13em; margin-bottom:18px; }
 .intro-grid { grid-template-columns:1fr; gap:37px; }.intro-photo { width:86%; padding-right:12px; }.intro-photo>img { aspect-ratio:4/4.5; }.intro-photo::after { left:14px; top:14px; bottom:41px; }.intro-photo figcaption { font-size:.75rem; }.intro-copy h2 { font-size:3.35rem; }.intro-copy .lead { font-size:1.75rem; }.intro-copy>p:not(.eyebrow):not(.lead) { font-size:1rem; }.intro-signoff { margin-top:28px; padding-top:22px; }.intro-signoff .text-link { font-size:.875rem; gap:12px; }.intro-signoff>span { font-size:1.7rem; }
 .section-heading { display:block; margin-bottom:32px; }.section-heading h2 { font-size:3.45rem; }.section-heading>p { max-width:none; margin-top:25px; font-size:.875rem; }.section-heading>p>br { display:none; }.route-grid { grid-template-columns:1fr; gap:30px; }.route-image { height:280px; }.route-type { left:20px; top:20px; font-size:.75rem; }.route-image-distance { font-size:6rem; }.route-body { padding:27px 24px; }.route-heading h3 { font-size:2.7rem; }.route-body>p { min-height:0; font-size:1rem; }.route-body .check-list { min-height:0; padding-top:22px; margin-top:22px; margin-bottom:24px; }.check-list li { font-size:.875rem; }.route-link { font-size:.875rem; }
 .equipment-note { padding:23px 19px; align-items:flex-start; gap:14px; }.equipment-note>.icon { width:25px; height:25px; flex-basis:25px; }.equipment-note strong { font-size:1.65rem; }.equipment-note p { font-size:.875rem; margin-top:9px; }.equipment-note>a { display:none; }
 .wine-kicker { font-size:1.45rem; }.wine-heading h2 { font-size:3.35rem; }.wine-heading .eyebrow { font-size:.75rem; }.wine-description { margin-top:25px; font-size:1rem; }.wineries { grid-template-columns:1fr; gap:15px; margin-top:35px; }.winery { display:grid; grid-template-columns:135px 1fr; grid-template-rows:1fr 1fr; column-gap:16px; text-align:left; padding:20px 18px; }.winery-logo { grid-row:1/3; height:92px; padding:8px; }.winery h3 { align-self:end; font-size:1.65rem; line-height:1.15; margin-top:0; }.winery p { align-self:start; font-size:.75rem; margin-top:8px; line-height:1.6; }.winery-number { font-size:.75rem; left:11px; top:9px; }.wine-bottom { flex-direction:column; gap:23px; margin-top:30px; }.wine-bottom>p { font-size:1rem; }.wine-bottom>p br { display:none; }.wine-bottom .button { min-width:0; width:100%; font-size:.875rem; }.wine-note { font-size:.75rem; line-height:1.7; margin-top:25px; }
 .program-grid { gap:35px; }.program-aside h2 { font-size:3.35rem; }.event-date { max-width:none; }.event-date>span { font-size:6rem; }.timeline li { grid-template-columns:92px 1fr; gap:18px; padding-block:26px; }.timeline time { font-size:.75rem; padding-top:3px; }.timeline h3 { font-size:1.85rem; }.timeline p { font-size:.875rem; }
 .price-card { padding:28px 25px; }.ticket-top .eyebrow { font-size:.75rem; }.price-card h3 { font-size:2.3rem; }.price { margin-top:25px; }.price>span { font-size:6rem; }.price-card>p { font-size:1rem; }.ticket-rule { margin-inline:-25px; }.price-card .button { width:100%; min-width:0; font-size:.875rem; padding-inline:16px; }.price-card .check-list { margin-bottom:28px; }.registration { align-items:flex-start; gap:25px; margin-top:35px; flex-direction:column; }.registration-help>p { overflow-wrap:anywhere; }.registration-qr { display:none; }
 .info-grid { gap:30px; }.info-title h2 { font-size:3.35rem; }.info-title>p:not(.eyebrow) { margin-block:20px; }.faqs summary { font-size:.875rem; gap:17px; padding-block:23px; }.faq-content { padding-right:16px; }.faq-content p { font-size:.875rem; }.faqs summary .icon { width:16px; height:16px; flex-basis:16px; }
 .archive-grid { grid-template-columns:1fr; gap:38px; }.archive-visual { padding-right:65px; padding-bottom:45px; max-width:380px; }.archive-photo>img { aspect-ratio:4/5; }.archive-poster { width:46%; right:12px; }.archive h2 { font-size:3.35rem; }.archive-copy>p:not(.eyebrow):not(.archive-date) { font-size:1rem; }.archive-note { font-size:.75rem!important; }.archive-date { font-size:1.85rem; }
 .partners { padding-block:45px; }.partner-row { display:grid; grid-template-columns:1fr 1fr; justify-items:center; gap:26px 20px; margin-top:28px; }.partner-dark { width:135px; height:65px; padding:12px; }.partner-dark img { max-width:115px; }.partner-row>img { max-width:135px; height:64px; }.partner-row>span { font-size:.875rem; }
 .site-footer { padding-block:58px 25px; }.footer-invitation { padding-bottom:45px; margin-bottom:40px; }.footer-invitation>p:not(.eyebrow) { font-size:3.6rem; max-width:330px; margin-inline:auto; }.footer-invitation .eyebrow { font-size:.75rem; }.footer-invitation .button { min-width:190px; }.footer-grid { grid-template-columns:1fr; gap:28px; }.footer-grid>div:first-child { grid-column:auto; }.footer-grid h2 { margin-bottom:20px; }.footer-grid>div>a:not(.brand) { font-size:.875rem; }.footer-bottom { margin-top:30px; font-size:.75rem; gap:20px; }
 .mobile-booking:not([hidden]) { position:fixed; z-index:45; inset:auto 0 0; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:var(--night-deep); border-top:1px solid #76557a; box-shadow:0 -5px 25px #1b0c2220; }
 .mobile-booking>span { display:flex; flex-direction:column; line-height:1.45; color:var(--paper); font-size:.875rem; }.mobile-booking small { color:#baa9c3; font-size:.75rem; }.mobile-booking>a { display:flex; align-items:center; gap:12px; background:var(--gold); color:var(--night); text-decoration:none; padding:12px 14px; font-size:.75rem; font-weight:700; }.mobile-booking .icon { width:16px; height:16px; flex-basis:16px; }
 .regulation-header .text-link { font-size:.75rem; gap:8px; }.regulation-header .text-link>.icon { display:none; }.regulation { padding-block:40px 65px; }.regulation h1 { font-size:3.1rem; }.regulation h2 { font-size:1.1rem; margin-top:30px; }
}
@media(max-width:360px) { .hero-date { flex-direction:column; align-items:flex-start; gap:1px; }.date-separator { display:none; }.hero-content { padding-bottom:95px; }.hero h1 { font-size:5rem; }.hero-venue { font-size:.75rem; }.hero-facts>a { padding-inline:5px; }.fact-label { font-size:.75rem; }.intro-signoff { gap:16px; }.winery { grid-template-columns:112px 1fr; gap:12px; }.winery h3 { font-size:1.5rem; }.timeline li { grid-template-columns:83px 1fr; gap:14px; }.mobile-booking { gap:8px!important; }.mobile-booking>a { padding-inline:10px; gap:6px; font-size:.75rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { animation:none!important; transition:none!important; }.archive-poster:hover { transform:rotate(5deg); } }
@media print { .site-header,.mobile-booking,.hero-poster-link,.hero-actions,.footer-invitation,.menu-toggle { display:none!important; }.hero { background:#fff; color:#000; }.hero-art,.hero-shade { display:none; }.hero-content { padding-block:20px; }.hero h1,.hero h1 em,.hero h1 .title-period,.hero p,.hero .eyebrow,.hero-date,.hero-venue { color:#000; }.hero h1 { font-size:60pt; }.section { padding-block:25px; }.wrap { width:100%; }.site-footer { color:#000; background:#fff; }.program-aside,.info-title { position:static; }.regulation { max-width:none; }.regulation h1 { font-size:34pt; }.regulation h2 { break-after:avoid; }.regulation p { font-size:11pt; }.route-card,.price-card { break-inside:avoid; } }

/* Keep primary copy and controls readable across all viewports. */
#navigation>a{font-size:.875rem}
.intro-copy>p:not(.eyebrow):not(.lead),.route-body>p,.section-heading>p,.wine-description,.wine-bottom>p,.timeline p,.price-card>p,.registration-help>p,.info-title>p:not(.eyebrow),.faq-content p,.archive-copy>p:not(.eyebrow):not(.archive-date):not(.archive-note),.program-aside>p:not(.eyebrow){font-size:1rem}
.price-card .check-list li,.price-card .button{font-size:.875rem}
@media(max-width:360px){.mobile-booking>a{font-size:.75rem}}

h1,h2,h3{overflow-wrap:break-word}
.intro-grid>*,.program-grid>*,.archive-grid>*,.info-grid>*,.route-grid>*,.prices>*{min-width:0}
