@font-face{font-family:"Bricolage Grotesque";src:url(fonts/display.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Figtree";src:url(fonts/text.woff2) format("woff2");font-weight:300 900;font-display:swap}

:root{
  --red:#c8102e;
  --red-dark:#9c0c23;
  --mustard:#ffb81c;
  --cream:#fff6e5;
  --ink:#1d1612;
  --ink-soft:#4a3f37;
  --paper:#fffdf8;
  --line:#ead9b8;
  --radius:18px;
  --gap:clamp(1rem,3vw,2rem);
  --section:clamp(3rem,8vw,6rem);
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-text:"Figtree",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.6 var(--font-text);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);line-height:1.05;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(2.6rem,9vw,5.6rem);font-weight:800}
h2{font-size:clamp(1.9rem,5vw,3rem);font-weight:800}
h3{font-size:1.35rem;font-weight:700}
p{margin:0 0 1em}
.wrap{width:min(100% - 2*var(--gap),72rem);margin-inline:auto}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--mustard);outline-offset:3px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.7rem 1.6rem;border-radius:999px;background:var(--mustard);color:var(--ink);font-weight:800;text-decoration:none;border:2px solid var(--mustard);transition:transform .15s,background .15s,color .15s}
.btn:hover{transform:translateY(-2px);background:#ffc94d}
.btn-ghost{background:transparent;color:#fff;border-color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-small{min-height:2.5rem;padding:.4rem 1.1rem;font-size:.95rem}
.link{font-weight:700;color:var(--red);text-underline-offset:3px}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--red);color:#fff;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:4rem;gap:1rem}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.brand-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:12px;background:var(--mustard);color:var(--red);font:800 1.5rem/1 var(--font-display)}
.brand-name{font:700 1.35rem/1 var(--font-display);letter-spacing:-.02em}
.brand-name b{color:var(--mustard);font-weight:800}
.nav-desktop{display:none;align-items:center;gap:1.75rem;font-weight:700}
.nav-desktop a:not(.btn){text-decoration:none;padding:.4rem 0;border-bottom:2px solid transparent}
.nav-desktop a:not(.btn):hover{border-color:var(--mustard)}
.nav-toggle{display:grid;gap:5px;width:3rem;height:3rem;place-content:center;background:transparent;border:0;cursor:pointer;color:#fff}
.nav-toggle span{width:24px;height:3px;border-radius:2px;background:currentColor}
@media (min-width:48em){.nav-desktop{display:flex}.nav-toggle{display:none}}

#drawer{inset:0 0 0 auto;margin:0;width:min(20rem,85vw);height:100dvh;border:0;padding:5rem 1.75rem 2rem;background:var(--ink);color:#fff;flex-direction:column;gap:1.25rem;font:700 1.5rem/1.2 var(--font-display)}
#drawer:popover-open{display:flex}
#drawer a:not(.btn){text-decoration:none}
#drawer .btn{font:800 1rem var(--font-text);margin-top:1rem}
#drawer::backdrop{background:rgba(0,0,0,.55)}
.drawer-close{position:absolute;top:1rem;right:1rem;width:3rem;height:3rem;background:transparent;border:0;color:#fff;font-size:2.2rem;cursor:pointer}
@media (min-width:48em){#drawer{display:none!important}}

/* hero */
.hero{position:relative;display:grid;min-height:min(86svh,46rem);color:#fff;isolation:isolate;overflow:clip}
.hero picture,.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,10,5,.82),rgba(20,10,5,.35) 70%,rgba(20,10,5,.15)),linear-gradient(0deg,rgba(20,10,5,.5),transparent 40%)}
.hero-copy{align-self:end;padding-block:clamp(3rem,10vw,6rem)}
.hero h1{max-width:12ch;text-wrap:balance}
.hero p{max-width:32rem;font-size:clamp(1.1rem,2.6vw,1.4rem)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* sections */
.section{padding-block:var(--section)}
.section>h2{margin-bottom:1.25rem}
.cards{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:var(--gap)}
@media (min-width:44em){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.card img{aspect-ratio:4/3;width:100%;object-fit:cover}
.card div{padding:1.25rem 1.4rem 1.5rem}
.card h3{color:var(--red)}
.card p{margin:0;color:var(--ink-soft)}

.band{background:var(--ink);color:#fff;padding-block:var(--section)}
.band h2{color:var(--mustard);max-width:18ch}
.about p{max-width:40rem;font-size:1.2rem;color:#f3e6d0}
.facts{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1rem}
@media (min-width:44em){.facts{grid-template-columns:repeat(3,1fr)}}
.facts li{border-top:3px solid var(--mustard);padding-top:.8rem;display:grid}
.facts b{font:800 1.6rem/1.1 var(--font-display)}
.facts span{color:#d9c7a8}

.info-grid{display:grid;gap:var(--gap)}
@media (min-width:44em){.info-grid{grid-template-columns:1.2fr 1fr}}
.panel{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.panel h3{color:var(--red)}
.hours{margin:0}
.hours div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px dashed var(--line)}
.hours div:last-child{border:0}
.hours dt{font-weight:700}
.hours dd{margin:0;font-variant-numeric:tabular-nums}
address{font-style:normal;font-size:1.2rem;margin-bottom:.8rem}

.site-footer{background:var(--red);color:#fff;padding-block:2rem}
.foot{display:grid;gap:1rem;justify-items:start}
.foot nav{display:flex;flex-wrap:wrap;gap:1.25rem;font-weight:700}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline}
@media (min-width:48em){.foot{grid-template-columns:1fr auto auto;align-items:center}}

/* scroll reveal – progressive enhancement */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
    @keyframes rise{from{opacity:0;translate:0 2rem}to{opacity:1;translate:0 0}}
  }
}
