:root{
  --paper:#f4ebda; --paper2:#eadfc6; --card:#fbf6ea;
  --ink:#2a1b16; --muted:#6c5a4d; --line:#d9c9a8;
  --wine:#5a1623; --wine2:#3d0e17; --clay:#a85a34; --olive:#5b5a33; --gold:#b98f43;
  --serif:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--sans);overflow-x:hidden}
body.is-locked{overflow:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0;letter-spacing:-.01em}
h2{font-size:clamp(2rem,5.2vw,3.6rem)}
h3{font-size:1.6rem}
em{font-style:italic;color:var(--clay)}
p{margin:0 0 1em}
h2+.lead{margin-top:18px}
.booking em{color:#e6c98e}
.livetotal{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 0;padding:14px 16px;background:var(--paper);border:1px solid var(--line)}
.livetotal span{font:500 .74rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.livetotal b{font:500 1.8rem/1 var(--serif);color:var(--wine)}
.livetotal small{display:block;font:400 .74rem var(--sans);color:var(--muted);text-align:right}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;z-index:300}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* grain */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

.eyebrow{font:500 .74rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin:0 0 18px}
.eyebrow--light{color:#e6c98e}
.lead{font-size:1.12rem;color:var(--muted);max-width:56ch}

/* buttons */
.btn{background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 26px;border:1px solid transparent;border-radius:2px;font:500 .8rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn:active{transform:scale(.98)}
.btn--wine{background:var(--wine);color:#f6ead2}
.btn--wine:hover{background:var(--wine2)}
.btn--light{background:#f4e6c6;color:var(--wine2)}
.btn--light:hover{background:#fff}
.btn--ghost-light{border-color:rgba(244,230,198,.6);color:#f4e6c6}
.btn--ghost-light:hover{background:rgba(244,230,198,.14)}
.btn--ghost-dark{border-color:var(--wine);color:var(--wine)}
.btn--ghost-dark:hover{background:var(--wine);color:#f6ead2}
.btn--full{width:100%}
.btn--sm{padding:12px 18px;font-size:.72rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.textlink{font:500 .8rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--wine);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.iconbtn{width:42px;height:42px;border:1px solid var(--line);background:transparent;border-radius:50%;display:grid;place-items:center;line-height:1}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:90;display:flex;align-items:center;justify-content:space-between;padding:14px max(20px,calc((100% - 1180px)/2));color:#f6ead2;transition:background .35s,box-shadow .35s,padding .35s}
.nav.is-solid{background:rgba(61,14,23,.96);backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(255,255,255,.08);padding-block:10px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand__mark{color:#e6c98e;flex:none}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__txt b{font:500 1.7rem/1 var(--serif);letter-spacing:.04em}
.brand__txt i{font:500 .58rem/1 var(--sans);font-style:normal;letter-spacing:.2em;text-transform:uppercase;opacity:.75;margin-top:5px}
.nav__links{display:flex;gap:30px}
.nav__links a{font:500 .76rem var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;opacity:.88;position:relative;padding:6px 0}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#e6c98e;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__right{display:flex;align-items:center;gap:10px}
.cartbtn{position:relative;width:44px;height:44px;background:none;border:1px solid rgba(246,234,210,.4);border-radius:50%;display:grid;place-items:center;color:inherit}
.cartbtn__n{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:10px;background:#e6c98e;color:var(--wine2);font:600 .7rem/20px var(--sans);text-align:center;padding:0 5px;transition:transform .3s var(--ease)}
.cartbtn__n.bump{transform:scale(1.4)}
.burger{display:none;width:44px;height:44px;background:none;border:0;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:#f6ead2;transition:transform .3s,top .3s}
.burger span:first-child{top:18px}.burger span:last-child{top:26px}
.burger[aria-expanded=true] span:first-child{top:22px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:last-child{top:22px;transform:rotate(-45deg)}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#f6ead2;overflow:hidden;background:var(--wine2)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;transform:scale(1.06);animation:heroZoom 2.6s var(--ease) forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(40,10,16,.55) 0%,rgba(40,10,16,.1) 35%,rgba(40,10,16,.82) 100%),linear-gradient(90deg,rgba(40,10,16,.45),transparent 70%)}
.hero__in{position:relative;width:min(1180px,100% - 40px);margin:0 auto;padding:140px 0 110px}
.hero__in>*{opacity:0;animation:up 1s var(--ease) forwards}
.hero__in>:nth-child(2){animation-delay:.15s}.hero__in>:nth-child(3){animation-delay:.3s}.hero__in>:nth-child(4){animation-delay:.45s}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.hero h1{font-size:clamp(2.9rem,9.2vw,7rem);font-weight:400;max-width:15ch;line-height:.98}
.hero h1 em{color:#e6c98e}
.hero__lead{font-size:clamp(1.05rem,2.3vw,1.3rem);max-width:46ch;margin:26px 0 34px;opacity:.92}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px}
.hero__scroll{position:absolute;left:50%;bottom:26px;width:26px;height:42px;border:1.5px solid rgba(246,234,210,.6);border-radius:14px;transform:translateX(-50%)}
.hero__scroll span{position:absolute;left:50%;top:8px;width:3px;height:8px;margin-left:-1.5px;background:#f6ead2;border-radius:2px;animation:scrollDot 1.8s infinite}
@keyframes scrollDot{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* stats */
.stats{background:var(--wine2);color:#f6ead2;padding:34px 0}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats b{display:block;font:500 clamp(2rem,5vw,3.2rem)/1 var(--serif);color:#e6c98e}
.stats span{font:500 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.75}

.section{padding:clamp(70px,11vw,140px) 0;position:relative}
.sechead{margin-bottom:clamp(40px,6vw,70px);max-width:760px}
.sechead--light h2{color:#f6ead2}
.sechead--light .lead{color:rgba(246,234,210,.78)}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;position:relative;display:flex;flex-direction:column;gap:clamp(40px,6vw,76px)}
.timeline__rail{position:absolute;left:19px;top:0;bottom:0;width:2px;background:var(--line)}
.timeline__rail span{display:block;width:100%;height:0;background:var(--wine);transition:height .15s linear}
.tl{position:relative;padding-left:56px;display:grid;gap:22px}
.tl::before{content:"";position:absolute;left:11px;top:14px;width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--line);transition:background .4s,border-color .4s}
.tl.is-in::before{background:var(--wine);border-color:var(--wine)}
.tl__year{font:500 clamp(3.2rem,9vw,6rem)/.9 var(--serif);color:var(--clay);font-style:italic;opacity:.9}
.tl__card h3{margin-bottom:12px}
.tl__card p{color:var(--muted);margin-bottom:16px;max-width:52ch}
.tl__fig{margin:0;overflow:hidden;border-radius:2px;box-shadow:0 18px 40px -22px rgba(42,27,22,.55)}
.tl__fig img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:sepia(.1)}

/* terroir */
.terroir{background:var(--paper2)}
.terroir__grid{display:grid;gap:44px}
.terroir__media{position:relative}
.terroir__media img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:2px}
.terroir__tag{position:absolute;left:16px;bottom:16px;right:16px;background:rgba(61,14,23,.9);color:#f6ead2;padding:16px 18px;display:flex;flex-direction:column;gap:2px;max-width:320px}
.terroir__tag b{font:500 1.4rem var(--serif)}
.terroir__tag span{font-size:.85rem;opacity:.8}
.facts{list-style:none;padding:0;margin:30px 0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.facts li{border-top:1px solid var(--line);padding-top:12px}
.facts b{display:block;font:500 2rem/1.1 var(--serif);color:var(--wine)}
.facts span{font-size:.82rem;color:var(--muted)}
.soil{border-radius:2px;overflow:hidden;display:grid}
.soil__layer{background:var(--c);color:#f6ead2;padding:14px 18px;display:grid;grid-template-columns:78px 1fr;gap:2px 12px;align-items:baseline}
.soil__layer i{font:500 .72rem var(--sans);font-style:normal;letter-spacing:.1em;opacity:.8;grid-row:span 2}
.soil__layer b{font:500 1.15rem var(--serif)}
.soil__layer span{font-size:.82rem;opacity:.85}
.seasons{margin-top:clamp(50px,8vw,90px);background:var(--card);padding:clamp(22px,4vw,42px);border:1px solid var(--line)}
.seasons__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}
.tabs{display:flex;flex-wrap:wrap;gap:6px}
.tabs button{padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:30px;font:500 .78rem var(--sans);letter-spacing:.1em;text-transform:uppercase;transition:all .25s}
.tabs button[aria-selected=true]{background:var(--wine);border-color:var(--wine);color:#f6ead2}
.seasons__panel{display:grid;gap:10px;min-height:150px;animation:fade .5s var(--ease)}
.seasons__panel h4{font:500 1.9rem/1.1 var(--serif);margin:0;color:var(--wine)}
.seasons__panel .when{font:500 .74rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--clay)}
.seasons__panel p{color:var(--muted);max-width:68ch;margin:0}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* band quote */
.band{position:relative;min-height:70vh;display:grid;place-items:center;overflow:hidden;color:#f6ead2;text-align:center;padding:90px 20px}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band__shade{position:absolute;inset:0;background:rgba(40,10,16,.58)}
.band__q{position:relative;margin:0;max-width:820px}
.band__q p{font:italic 400 clamp(1.7rem,4.6vw,3.2rem)/1.2 var(--serif)}
.band__q cite{font:500 .75rem var(--sans);font-style:normal;letter-spacing:.2em;text-transform:uppercase;color:#e6c98e}

/* wines */
.shopbar{display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center;margin-bottom:34px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:10px 20px;background:transparent;border:1px solid var(--line);border-radius:30px;font:500 .78rem var(--sans);letter-spacing:.1em;text-transform:uppercase;transition:all .25s}
.chip:hover{border-color:var(--wine)}
.chip.is-on{background:var(--wine);border-color:var(--wine);color:#f6ead2}
.shopbar__note{margin:0;font-size:.88rem;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:24px}
.wine{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s;animation:fade .6s var(--ease) both}
.wine:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(61,14,23,.55)}
.wine__top{position:relative;background:radial-gradient(ellipse at 50% 80%,var(--bg1),var(--bg2));padding:26px 20px 0;display:flex;justify-content:center;height:330px;overflow:hidden}
.wine__top svg{height:100%;width:auto;filter:drop-shadow(0 18px 14px rgba(0,0,0,.28));transition:transform .5s var(--ease)}
.wine:hover .wine__top svg{transform:translateY(-6px) rotate(-1.5deg)}
.wine__badge{position:absolute;top:14px;left:14px;background:var(--wine2);color:#f6ead2;font:500 .62rem var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:6px 10px}
.wine__body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;flex:1}
.wine__grape{font:500 .7rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--clay)}
.wine__name{font:500 1.75rem/1.1 var(--serif);margin:0}
.wine__desc{font-size:.93rem;color:var(--muted);margin:0}
.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.tags li{font-size:.76rem;padding:4px 11px;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:var(--paper)}
.pair{font-size:.88rem;border-top:1px dashed var(--line);padding-top:12px;margin:0}
.pair b{font:500 .68rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--olive);display:block;margin-bottom:2px}
.wine__buy{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:6px;flex-wrap:wrap}
.price{font:500 1.8rem/1 var(--serif);color:var(--wine)}
.price small{font:500 .78rem var(--sans);color:var(--muted);margin-left:3px}
.wine__actions{display:flex;gap:8px;align-items:center}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--paper)}
.stepper button{width:38px;height:42px;background:none;border:0;font-size:1.2rem;line-height:1}
.stepper button:hover{background:var(--paper2)}
.stepper output{min-width:32px;text-align:center;font-weight:500}

.strip{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:6px;height:min(54vw,520px)}
.strip figure{margin:0;overflow:hidden}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.strip figure:hover img{transform:scale(1.05)}

/* booking */
.booking{background:var(--wine2);color:#f6ead2;background-image:radial-gradient(ellipse at 90% 0%,rgba(185,143,67,.16),transparent 55%)}
.book{display:grid;gap:34px}
.book__main{background:var(--card);color:var(--ink);padding:clamp(20px,4vw,40px)}
.step{border:0;padding:0;margin:0 0 34px;min-width:0}
.step legend{font:500 1.6rem/1.1 var(--serif);display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:0}
.step legend span{width:32px;height:32px;border-radius:50%;background:var(--wine);color:#f6ead2;font:500 .9rem/32px var(--sans);text-align:center}
.xp{display:grid;gap:10px}
.xp label{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);background:var(--paper);cursor:pointer;transition:border-color .25s,background .25s}
.xp label:hover{border-color:var(--clay)}
.xp label{position:relative}
.xp input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;left:0;top:0}
.xp .dot{width:20px;height:20px;border:1.5px solid var(--wine);border-radius:50%;display:grid;place-items:center}
.xp .dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--wine);transform:scale(0);transition:transform .25s var(--ease)}
.xp label.is-on{border-color:var(--wine);background:#fff7e4;box-shadow:inset 3px 0 0 var(--wine)}
.xp label.is-on .dot::after{transform:scale(1)}
.xp input:focus-visible + .dot{outline:2px solid var(--gold);outline-offset:3px}
.xp h4{margin:0 0 3px;font:500 1.3rem/1.15 var(--serif)}
.xp p{margin:0;font-size:.86rem;color:var(--muted);line-height:1.45}
.xp .dur{font:500 .7rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--clay)}
.xp .pr{font:500 1.35rem/1 var(--serif);color:var(--wine);text-align:right;white-space:nowrap}
.xp .pr small{display:block;font:400 .7rem var(--sans);color:var(--muted)}
.cal{border:1px solid var(--line);background:var(--paper);padding:14px;max-width:440px}
.cal__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cal__head b{font:500 1.35rem var(--serif);text-transform:capitalize}
.cal__head button{width:36px;height:36px;border:1px solid var(--line);background:none;border-radius:50%}
.cal__head button:disabled{opacity:.3;cursor:default}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal__dow{font:500 .65rem var(--sans);letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--muted);padding:4px 0}
.cal__day{aspect-ratio:1;border:0;background:#fff7e4;border-radius:2px;font:500 .88rem var(--sans);display:grid;place-items:center;position:relative;padding:0}
.cal__day:hover:not(:disabled){background:var(--paper2)}
.cal__day:disabled{background:transparent;color:#b8a98f;cursor:not-allowed}
.cal__day.is-full{text-decoration:line-through}
.cal__day.is-sel{background:var(--wine);color:#f6ead2}
.cal__day.is-today::after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--clay)}
.cal__legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.74rem;color:var(--muted);margin-top:10px}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;min-height:44px;align-items:center}
.slots__hint{font-size:.9rem;color:var(--muted);margin:0}
.slot{padding:11px 18px;border:1px solid var(--line);background:var(--paper);border-radius:30px;font:500 .86rem var(--sans)}
.slot:hover:not(:disabled){border-color:var(--wine)}
.slot.is-on{background:var(--wine);color:#f6ead2;border-color:var(--wine)}
.slot:disabled{opacity:.4;text-decoration:line-through;cursor:not-allowed}
.people{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.people__note{margin:0;font-size:.88rem;color:var(--muted);flex:1;min-width:200px}
.fields{display:grid;grid-template-columns:1fr;gap:14px}
.fields label,.cform label,.modal label{display:flex;flex-direction:column;gap:6px;font:500 .74rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
input,textarea,select{font:400 1rem var(--sans);padding:13px 14px;border:1px solid var(--line);background:#fffaf0;border-radius:2px;color:var(--ink);width:100%;text-transform:none;letter-spacing:0}
input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
input.bad,textarea.bad,select.bad{border-color:#b3261e;background:#fff3f0}
.check{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;font:400 .9rem var(--sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important;margin-top:14px;cursor:pointer}
.check input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--wine)}
.formerr{color:#b3261e;font-size:.9rem;margin:10px 0 0}
.book__side{position:relative}
.sum,.done{background:var(--paper);color:var(--ink);padding:24px}
.sum h3{margin-bottom:14px}
.sum__img img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:14px}
.sum__list{margin:0;display:grid;gap:8px}
.sum__list div{display:flex;justify-content:space-between;gap:14px;font-size:.92rem;border-bottom:1px dashed var(--line);padding-bottom:8px}
.sum__list dt{color:var(--muted)}
.sum__list dd{margin:0;text-align:right;font-weight:500}
.sum__total{display:flex;justify-content:space-between;align-items:baseline;margin:16px 0 4px}
.sum__total span{font:500 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase}
.sum__total b{font:500 2.4rem/1 var(--serif);color:var(--wine)}
.sum__note{font-size:.8rem;color:var(--muted);margin:0 0 16px}
.done{text-align:center;animation:fade .6s var(--ease)}
.done[hidden]{display:none}
.done__check{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--olive);color:#fff;font-size:1.9rem;display:grid;place-items:center;animation:pop .6s var(--ease)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.done p{color:var(--muted)}
.done__code{background:var(--card);border:1px dashed var(--wine);padding:14px;margin:16px 0}
.done__code span{display:block;font:500 .68rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.done__code b{font:500 1.9rem var(--serif);letter-spacing:.08em;color:var(--wine)}
.done__actions{display:flex;flex-direction:column;gap:10px}

/* events */
.events{background:var(--paper2)}
.evlist{border-top:1px solid var(--ink)}
.ev{display:grid;grid-template-columns:76px 1fr;gap:6px 20px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start;transition:background .3s,padding .3s}
.ev:hover{background:rgba(255,247,228,.6)}
.ev__d{text-align:center;grid-row:span 2;line-height:1}
.ev__d b{display:block;font:500 3rem/1 var(--serif);color:var(--wine)}
.ev__d span{font:500 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--clay)}
.ev h3{font-size:1.65rem;margin-bottom:6px}
.ev p{color:var(--muted);margin:0 0 10px;font-size:.95rem;max-width:60ch}
.ev__meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.82rem;color:var(--ink);margin-bottom:12px}
.ev__meta b{font-weight:500;color:var(--olive)}
.ev__act{grid-column:2}
.evpic{margin-top:clamp(40px,6vw,70px)}
.evpic img{width:100%;height:min(60vw,520px);object-fit:cover;border-radius:2px}

/* contact */
.contact__grid{display:grid;gap:44px}
.cinfo{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:14px}
.cinfo li{display:grid;grid-template-columns:90px 1fr;gap:12px;border-top:1px solid var(--line);padding-top:12px;font-size:.96rem}
.cinfo b{font:500 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--clay);padding-top:3px}
.cinfo a{color:var(--wine);text-underline-offset:3px}
.cform{background:var(--card);border:1px solid var(--line);padding:clamp(22px,4vw,38px);align-self:start}
.cform h3{margin-bottom:20px}
.cform .btn{margin-top:18px}

/* footer */
.foot{background:var(--wine2);color:#e9dcc0;padding:54px 0 40px}
.foot__grid{display:grid;gap:30px}
.foot__brand{font:500 2.4rem/1 var(--serif);color:#f6ead2;margin:0 0 10px}
.foot__sm{font-size:.82rem;opacity:.75;max-width:52ch}
.foot__credit{display:flex;flex-direction:column;gap:14px;align-items:flex-start;font-size:.88rem}
.foot__credit p{margin:0}
.foot__credit a:not(.btn){color:#e6c98e}

/* drawer */
.overlay{position:fixed;inset:0;background:rgba(30,8,12,.55);z-index:140;opacity:0;transition:opacity .35s}
.overlay.is-on{opacity:1}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--paper);z-index:150;transform:translateX(102%);transition:transform .45s var(--ease);display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.3);visibility:hidden}
.drawer.is-open{transform:none;visibility:visible}
.drawer__head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}
.drawer__head h2{font-size:1.9rem}
.drawer__body{flex:1;overflow-y:auto;padding:20px 24px 28px;display:flex;flex-direction:column}
.ship{font-size:.84rem;margin-bottom:18px}
.ship__bar{height:5px;background:var(--line);margin-top:8px;border-radius:3px;overflow:hidden}
.ship__bar i{display:block;height:100%;background:var(--olive);transition:width .5s var(--ease)}
.citem{display:grid;grid-template-columns:54px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
.citem svg{width:54px;height:80px;background:var(--paper2)}
.citem h4{font:500 1.15rem/1.15 var(--serif);margin:0 0 2px}
.citem small{color:var(--muted);font-size:.78rem;display:block;margin-bottom:8px}
.citem .stepper button{width:30px;height:32px}
.citem .stepper output{min-width:26px;font-size:.88rem}
.citem__r{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.citem__r b{font:500 1.15rem var(--serif);color:var(--wine)}
.rm{background:none;border:0;font-size:.74rem;color:var(--muted);text-decoration:underline;padding:0}
.promo{display:flex;gap:8px;margin:18px 0 6px}
.promo input{padding:11px 12px}
.promo .btn{padding:11px 16px}
.promo__msg{font-size:.8rem;min-height:1.2em;margin:0 0 10px}
.promo__msg.ok{color:var(--olive)}.promo__msg.no{color:#b3261e}
.totals{margin-top:auto;padding-top:14px;border-top:1px solid var(--ink);display:grid;gap:6px;font-size:.92rem}
.totals div{display:flex;justify-content:space-between}
.totals .grand{font:500 1.9rem/1 var(--serif);color:var(--wine);margin:8px 0 14px;align-items:baseline}
.totals .grand span{font:500 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.empty{text-align:center;margin:auto;padding:40px 0;color:var(--muted)}
.empty svg{width:110px;margin:0 auto 18px;color:var(--line)}
.empty h3{color:var(--ink);margin-bottom:8px}
.backlink{background:none;border:0;padding:0;font:500 .78rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--wine);margin-bottom:18px;align-self:flex-start}
.pay{display:grid;gap:8px;margin-top:14px}
.pay label{flex-direction:row!important;align-items:center;gap:10px!important;text-transform:none!important;letter-spacing:0!important;font:400 .95rem var(--sans)!important;color:var(--ink)!important;border:1px solid var(--line);padding:12px 14px;cursor:pointer;background:#fffaf0}
.pay input{width:auto;accent-color:var(--wine)}
.pay label:has(input:checked){border-color:var(--wine);background:#fff7e4}
.mini{font-size:.86rem;color:var(--muted);margin:14px 0}

/* modal */
.modal{position:fixed;inset:0;z-index:160;background:rgba(30,8,12,.6);display:grid;place-items:center;padding:20px;overflow:auto}
.modal[hidden]{display:none}
.modal__box{position:relative;background:var(--paper);width:min(460px,100%);padding:32px 26px 28px;animation:fade .4s var(--ease)}
.modal__x{position:absolute;top:12px;right:12px}
.modal__box h3{margin-bottom:18px;padding-right:40px}
.modal__price{font-size:.9rem;color:var(--muted);margin:16px 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);background:var(--wine2);color:#f6ead2;padding:13px 22px;font-size:.9rem;z-index:180;opacity:0;pointer-events:none;transition:all .4s var(--ease);max-width:calc(100% - 40px);text-align:center}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

/* age gate */
.agegate{position:fixed;inset:0;z-index:500;background:linear-gradient(rgba(40,10,16,.9),rgba(40,10,16,.96)),url(img/hero.webp) center/cover;display:grid;place-items:center;padding:24px;color:#f6ead2;text-align:center;overflow:auto}
.agegate[hidden]{display:none}
.agegate__box{max-width:520px;animation:fade .8s var(--ease)}
.agegate .eyebrow{color:#e6c98e}
.agegate__mark{color:#e6c98e;margin-bottom:14px;display:flex;justify-content:center}
.agegate h2{font-size:clamp(2.4rem,8vw,3.8rem);margin-bottom:16px}
.agegate__txt{opacity:.85}
.agegate__actions{display:flex;flex-direction:column;gap:10px;margin:26px 0 18px}
.agegate__deny{background:rgba(255,255,255,.1);padding:12px 16px;font-size:.92rem}
.agegate__fine{font-size:.76rem;opacity:.55;margin:18px 0 0}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
html.static .reveal{opacity:1;transform:none;transition:none}

/* responsive up */
@media (min-width:600px){
  .fields{grid-template-columns:1fr 1fr}
  .fields .full{grid-column:1/-1}
  .done__actions{flex-direction:row;justify-content:center}
  .agegate__actions{flex-direction:row;justify-content:center}
}
@media (min-width:900px){
  .terroir__grid{grid-template-columns:1fr 1.05fr;gap:70px;align-items:start}
  .terroir__media{position:sticky;top:100px}
  .book{grid-template-columns:1.5fr 1fr;align-items:start}
  .book__side{position:sticky;top:96px}
  .contact__grid{grid-template-columns:1fr 1fr;gap:80px}
  .foot__grid{grid-template-columns:1.2fr 1fr;align-items:end}
  .ev{grid-template-columns:110px 1fr auto;align-items:center;padding:28px 12px}
  .ev__d{grid-row:auto}
  .ev__act{grid-column:auto}
  .ev__d b{font-size:3.8rem}
  /* timeline desktop */
  .timeline__rail{left:50%;margin-left:-1px}
  .tl{padding-left:0;grid-template-columns:1fr 1fr;column-gap:90px;row-gap:18px;grid-template-areas:"year card" "fig card";align-items:center}
  .tl::before{left:50%;margin-left:-9px;top:50%;margin-top:-9px}
  .tl__year{grid-area:year;text-align:right;align-self:end}
  .tl__card{grid-area:card}
  .tl__fig{grid-area:fig;align-self:start}
  .tl:not(:has(.tl__fig)) .tl__year{align-self:center}
  .tl--r{grid-template-areas:"card year" "card fig"}
  .tl--r .tl__year{text-align:left}
  .tl--r .tl__card{text-align:right}
  .tl--r .tl__card p{margin-left:auto}
}
@media (max-width:899px){
  .burger{display:block}
  .nav__links{position:fixed;inset:0;background:var(--wine2);flex-direction:column;justify-content:center;align-items:center;gap:26px;transform:translateY(-100%);transition:transform .5s var(--ease);z-index:-1;visibility:hidden}
  .nav__links.is-open{transform:none;visibility:visible}
  .nav__links a{font:400 2rem var(--serif);letter-spacing:.02em;text-transform:none}
  .stats__grid{grid-template-columns:1fr 1fr;gap:26px 12px}
  .strip{grid-template-columns:1fr 1fr;height:auto}
  .strip figure:nth-child(2){display:none}
  .strip img{aspect-ratio:3/4}
  .hero__scroll{display:none}
  .hero__in{padding-bottom:70px}
  .hero .eyebrow{letter-spacing:.14em;font-size:.68rem}
}
@media (max-width:420px){
  body{font-size:16px}
  .xp label{grid-template-columns:auto 1fr;}
  .xp .pr{grid-column:2;text-align:left}
  .wine__buy{flex-direction:column;align-items:stretch}
  .wine__actions{justify-content:space-between}
  .wine__actions .btn{flex:1}
  .brand__txt i{display:none}
}

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