/* Le Caveau · B · Na terase: tokens, type, header, buttons, shared pieces */
:root{
  --wine:#6A1D1D; --wine-deep:#531717; --cellar:#371010; --charcoal:#1F1F1F; --pencil:#D0D0D0; --paper:#E8E8E8;
  --mustard:#D9A441; --crust:#B5682A; --crust-l:#E7C9A0; --flour:#F5F0E6;
  --f-display:"Anton","Impact","Arial Narrow",sans-serif; --f-text:"Nunito Sans",system-ui,sans-serif; --f-hand:"Caveat","Segoe Script",cursive;
  --gut:clamp(16px,4vw,48px); --max:1240px; --hdr:64px; --ease:cubic-bezier(.2,.8,.2,1);
  --focus:var(--wine);
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .5' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 8px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--charcoal);font:400 17px/1.6 var(--f-text);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.dark{--focus:var(--mustard)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--wine);color:var(--flour);padding:10px 16px;border-radius:8px}
.skip:focus{top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(100%,var(--max));margin-inline:auto;padding-inline:var(--gut)}
.h2{font:400 clamp(38px,6.4vw,84px)/1.1 var(--f-display);text-transform:uppercase;letter-spacing:.005em;max-width:15em;text-wrap:balance}
.eyebrow{font:600 clamp(24px,3vw,30px)/1 var(--f-hand);color:var(--wine);margin-bottom:6px}
.eyebrow--light{color:var(--mustard)} .eyebrow--gold{color:var(--mustard)}
.lede{font-size:clamp(18px,1.8vw,21px);max-width:38em}
.sec{padding:clamp(64px,8vw,112px) 0;position:relative}
.note-hand{font:600 clamp(24px,2.6vw,30px)/1.15 var(--f-hand);color:var(--wine);margin-top:20px}

/* header */
.hdr{position:sticky;top:0;z-index:60;height:var(--hdr);display:flex;align-items:center;gap:12px;padding-inline:var(--gut);background:rgba(232,232,232,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:2px solid var(--charcoal)}
.wm{font:400 28px/1 var(--f-display);text-transform:uppercase;text-decoration:none;letter-spacing:.02em;display:inline-flex;gap:.28em;align-items:center;min-height:44px;margin-right:auto;color:var(--wine)}
.wm__le{color:var(--charcoal)}
.nav{display:flex;align-items:center;gap:2px}
.nav a{font:700 15px/1 var(--f-text);text-decoration:none;padding:15px 12px;border-radius:999px;min-height:44px;display:inline-flex;align-items:center}
.nav__all{color:var(--wine);text-decoration:underline!important;text-underline-offset:4px}
.nav__book{display:none!important}
.lang{display:flex;border:2px solid var(--charcoal);border-radius:999px;overflow:hidden}
.lang button{font:800 13px/1 var(--f-text);min-width:44px;min-height:40px;padding:0 8px;border:0;background:transparent;color:var(--charcoal);cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--charcoal);color:var(--flour)}
.burger{display:none;width:44px;height:44px;border:2px solid var(--charcoal);border-radius:50%;background:transparent;cursor:pointer;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:2px;background:var(--charcoal);transition:transform .3s var(--ease),opacity .2s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:26px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1279px){
  .burger{display:block}
  .nav{position:fixed;left:0;right:0;top:var(--hdr);flex-direction:column;align-items:stretch;gap:0;padding:12px var(--gut) 24px;background:var(--paper);border-bottom:2px solid var(--charcoal);max-height:calc(100svh - var(--hdr));overflow:auto;visibility:hidden;opacity:0;translate:0 -12px;transition:opacity .25s,translate .3s var(--ease),visibility 0s .3s}
  .nav.open{visibility:visible;opacity:1;translate:0 0;transition:opacity .25s,translate .3s var(--ease)}
  .nav a{font:400 34px/1 var(--f-display);text-transform:uppercase;padding:14px 4px;border-bottom:1px solid var(--pencil);border-radius:0}
  .nav__all{font:700 16px/1 var(--f-text)!important;text-transform:none!important;border:0!important;margin-top:8px}
  .nav .nav__book{display:inline-flex!important;margin-top:12px;border:2px solid var(--charcoal);border-radius:999px;font:800 16px/1 var(--f-text);text-transform:none;justify-content:center;padding:14px 20px}
  .hdr__book{display:none!important}
}
@media (max-width:420px){.wm{font-size:24px}.lang button{min-width:40px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:12px 22px;border-radius:999px;border:2px solid var(--charcoal);font:800 15px/1.1 var(--f-text);text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}
.btn--wine{background:var(--wine);color:var(--flour);border-color:var(--wine)}
.btn--ghost{background:transparent;color:var(--charcoal)}
.btn--ghost-l{background:transparent;color:var(--flour);border-color:var(--flour)}
.btn--mustard{background:var(--mustard);color:var(--charcoal);border-color:var(--charcoal)}
@media (hover:hover){.btn:hover{transform:translateY(-3px);box-shadow:0 5px 0 var(--charcoal)}.btn--wine:hover{box-shadow:0 5px 0 var(--wine-deep)}.btn--ghost-l:hover{box-shadow:0 5px 0 var(--mustard)}}
.hdr__tel{font-weight:600;opacity:.9}

/* pill + chip */
.pill,.chip{display:inline-flex;align-items:center;gap:8px;font:800 13px/1 var(--f-text);padding:9px 14px;border-radius:999px;border:2px solid currentColor;white-space:nowrap}
.pill b,.chip b{font-weight:800}
.pill__dot{width:10px;height:10px;border-radius:50%;background:#7a7a7a;flex:none}
[data-open="1"] .pill__dot{background:#1f8a4c;animation:ping 2s ease-out infinite}
[data-open="0"] .pill__dot{background:var(--wine)}
[data-open="1"]{color:#14502d}
[data-open="0"]{color:var(--wine)}
.pill--hdr{background:var(--flour)}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(31,138,76,.55)}80%,100%{box-shadow:0 0 0 9px rgba(31,138,76,0)}}
@media (max-width:719px){.pill--hdr{padding:8px 10px;font-size:12px}}
@media (max-width:359px){.pill--hdr b{display:none}}

/* shared illustration crop: --L --T --w --h are fractions of the 2400x1784 image */
.crop{background:url("../../assets/illustration-terrace.jpg") no-repeat;background-size:calc(100% / var(--w)) calc(100% / var(--h));background-position:calc(var(--L) / (1 - var(--w)) * 100%) calc(var(--T) / (1 - var(--h)) * 100%);aspect-ratio:calc(var(--w) * 2400) / calc(var(--h) * 1784)}

/* band ribbon (wine texture) */
.band,.ribbon{background:var(--wine);position:relative;overflow:hidden}
.band::after{content:"";position:absolute;inset:0;background:var(--noise);mix-blend-mode:multiply;opacity:.55;pointer-events:none}
.band{height:76px;display:flex;align-items:center;color:var(--flour);border-block:2px solid var(--charcoal)}
.band .ribbon__track{font:400 44px/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;animation-duration:36s}
.ribbon__track{display:flex;width:max-content;white-space:nowrap;animation:marq 24s linear infinite}
@keyframes marq{to{translate:-50% 0}}

/* reveal */
html.js .rv{opacity:0;translate:0 28px;transition:opacity .8s var(--ease),translate .8s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
html.js .rv.in{opacity:1;translate:0 0}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js .rv{opacity:1;translate:none;transition:none}
  .ribbon__track,[data-open="1"] .pill__dot{animation:none}
  *{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
}
@media (max-width:1499px){.hdr__tel{display:none}}
/* Anton accents need air: multi-line headings never touch */
.h2{line-height:1.2}
.scene h3,.ticket__band h3,.bk h4,.tbl-h,.press,.ord h3,.dir h3,.ftr h3{line-height:1.2}
.ftr__wm,.hero__wm{line-height:1}
