:root{
  --black:#080606;--black2:#120b0b;--red:#c61d24;--red2:#7d0d12;
  --cream:#f2e5d0;--cream2:#dcc9aa;--ink:#211712;--white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:#fff;font-family:Oswald,Arial,sans-serif;overflow-x:hidden}
body.intro-open{overflow:hidden}
a{text-decoration:none;color:inherit}
img{display:block;width:100%}
button{font:inherit}
.intro{position:fixed;inset:0;z-index:999;background:radial-gradient(circle at 68% 38%,#31080c 0,transparent 32%),linear-gradient(#020202,#080606 68%,#170e09);display:grid;place-items:center;overflow:hidden;transition:opacity .8s,visibility .8s}
.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.floor{position:absolute;left:-20%;right:-20%;bottom:-11%;height:39%;background:repeating-linear-gradient(90deg,#21120c 0 2px,#140b08 2px 220px);transform:perspective(700px) rotateX(55deg);box-shadow:inset 0 30px 70px #000}
.boot-stage{position:absolute;width:min(560px,78vw);left:-90vw;bottom:5vh;animation:walkin 4.3s cubic-bezier(.2,.8,.2,1) forwards}
.boot{filter:none;transform-origin:48% 94%;animation:step .62s ease-in-out 6}
.boot-main,.shaft-panel,.toe-panel{fill:url(#leather);stroke:#171313;stroke-width:9;stroke-linejoin:round}
.shaft-panel{fill:url(#shadowLeather);opacity:.34;stroke-width:5}
.toe-panel{fill:#efe2cf;opacity:.82;stroke-width:5}
.sole{fill:#151313;stroke:#080707;stroke-width:7}
.heel{fill:#171313;stroke:#080707;stroke-width:6}
.piping,.top-piping{fill:none;stroke:#3c2d25;stroke-width:10;stroke-linecap:round}
.seam{fill:none;stroke:#9d8467;stroke-width:4;stroke-dasharray:7 7}
.embroidery{fill:none;stroke:#2b201b;stroke-width:5;stroke-linecap:round}
.embroidery.accent{stroke:var(--red);stroke-width:4}
.stitched-star{fill:none;stroke:var(--red);stroke-width:6}
.stitched-heart{fill:var(--red);stroke:#281b18;stroke-width:5}
.boot-script{font-family:Caveat,cursive;font-size:30px;font-weight:700;fill:#161111;text-anchor:middle}
.boot-script.small{font-size:24px}
.intro-copy{z-index:2;text-align:center;opacity:0;transform:translateY(22px);animation:fadeup 1.1s 4s forwards;width:min(520px,88vw)}

.enter-btn{background:rgba(198,29,36,.15);color:#fff;border:1px solid var(--red);padding:1rem 1.5rem;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;margin-top:1rem}
@keyframes walkin{0%{left:-90vw}72%{left:25vw}84%{left:22vw}100%{left:22vw}}
@keyframes step{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(-5deg) translateY(-18px)}70%{transform:rotate(4deg)}}
@keyframes fadeup{to{opacity:1;transform:none}}
.header{height:78px;position:sticky;top:0;z-index:90;display:flex;align-items:center;gap:2rem;padding:0 clamp(1rem,5vw,5rem);background:rgba(6,5,5,.94);border-bottom:1px solid #2b1919;backdrop-filter:blur(12px)}
.wordmark{display:flex;flex-direction:column;line-height:.92}
.wordmark strong{font-family:Rye,serif;color:var(--red);font-size:1.45rem}.wordmark span{letter-spacing:.24em;font-size:.72rem;margin-top:.45rem}
nav{display:flex;gap:2rem;margin-left:auto}nav a{text-transform:uppercase;font-size:.92rem;letter-spacing:.06em}nav a:hover{color:var(--red)}
.menu{display:none;margin-left:auto;background:none;border:1px solid #555;color:#fff;padding:.5rem .8rem}
.button{display:inline-flex;justify-content:center;align-items:center;padding:.9rem 1.3rem;min-height:48px;background:linear-gradient(var(--red),var(--red2));border:1px solid #ef444c;color:#fff;text-transform:uppercase;font-weight:700;letter-spacing:.05em;transition:.2s}
.button:hover{transform:translateY(-2px);filter:brightness(1.1)}
.button.compact{min-height:38px;padding:.55rem .85rem}.button.ghost{background:transparent;border-color:#fff}.dark-button{background:#171010;border-color:#342020}
.hero{position:relative;min-height:calc(100svh - 78px);display:flex;align-items:center;padding:clamp(4rem,9vw,9rem) clamp(1.2rem,7vw,7rem);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.63) 48%,rgba(0,0,0,.24)),url('hall1.webp') center/cover;filter:saturate(.9) contrast(1.07);transform:scale(1.03)}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 40%,rgba(198,29,36,.24),transparent 33%)}
.hero-content{position:relative;z-index:2;max-width:760px}
.kicker{text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:.82rem}.kicker.red{color:var(--red)}
h1,h2{font-family:Rye,serif;line-height:1.05;margin:.4rem 0 1rem}h1{font-size:clamp(3.3rem,8vw,7.3rem)}h2{font-size:clamp(2.5rem,5vw,4.7rem)}h1 em{color:var(--red);font-style:normal}
.hero-content>p{max-width:640px;font-size:1.25rem;line-height:1.65;color:#eee4db}.actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.hero-badge{position:absolute;right:5vw;bottom:8vh;z-index:2;background:rgba(8,5,5,.73);border:1px solid rgba(255,255,255,.2);padding:1rem 1.3rem;transform:rotate(3deg);display:flex;flex-direction:column;box-shadow:0 20px 45px #000}.hero-badge span{font-family:Caveat,cursive;color:var(--red);font-size:1.7rem}.hero-badge strong{text-transform:uppercase}
.quick-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#0d0909;padding:2rem clamp(1rem,5vw,5rem);border-top:1px solid #251313;border-bottom:1px solid #251313}
.quick-strip div{text-align:center;padding:1rem;border-right:1px solid #392020;display:flex;flex-direction:column}.quick-strip div:last-child{border:0}.quick-strip b{color:var(--red);font-size:2rem}.quick-strip strong{text-transform:uppercase}.quick-strip span{color:#bfb0a7}
.section{padding:clamp(4rem,8vw,8rem) clamp(1.2rem,7vw,7rem)}.paper{background:var(--cream);color:var(--ink)}.dark{background:linear-gradient(#0b0707,#120909);color:#fff}
.welcome-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,8rem);align-items:center;max-width:1250px;margin:auto}
.portrait{background:#fff;padding:1rem 1rem 1.4rem;box-shadow:0 25px 60px rgba(33,20,12,.3);transform:rotate(-2deg)}.portrait img{aspect-ratio:3/4;object-fit:cover}.portrait span{display:block;text-align:center;font-family:Caveat,cursive;font-size:2rem;margin-top:.7rem}
.copy{max-width:700px}.copy p{font-size:1.16rem;line-height:1.8}.copy blockquote{font-family:Caveat,cursive;font-size:2.2rem;color:var(--red);border-left:4px solid var(--red);padding-left:1rem;margin:2rem 0}
.section-title{max-width:800px;margin:0 0 2.5rem}.section-title.centre{text-align:center;margin-inline:auto}.section-title>p:last-child{font-size:1.12rem;color:#c8bbb2}
.moment-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:1.2rem}.moment-grid figure,.polaroids figure{margin:0;position:relative;overflow:hidden}.moment-grid img{height:100%;object-fit:cover}.moment-grid .wide{min-height:520px}.moment-grid .tall{min-height:520px}.moment-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.9));font-family:Caveat,cursive;font-size:1.7rem}
.venue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:1150px;margin:auto}.venue-card{background:#fff;box-shadow:0 20px 45px rgba(38,22,12,.18)}.venue-card img,.placeholder-art{height:310px;object-fit:cover}.venue-card>div:last-child{padding:1.5rem}.venue-card h3{font-family:Rye,serif;font-size:2rem;margin:.5rem 0}.tag{display:inline-block;background:#1c1110;color:#fff;padding:.35rem .6rem;text-transform:uppercase;font-size:.78rem}.text-link{color:var(--red);font-weight:700;text-transform:uppercase}.placeholder-art{display:grid;place-items:center;background:radial-gradient(circle,#7c1115,#16090a);color:#fff}.placeholder-art span{font-family:Rye,serif;font-size:6rem;border:2px solid #d6b98b;border-radius:50%;width:190px;height:190px;display:grid;place-items:center}
.polaroids{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:auto}.polaroids figure{background:#f6eddf;padding:.75rem .75rem 1.5rem;color:#241712;box-shadow:0 20px 45px #000}.polaroids figure:nth-child(1){transform:rotate(-3deg)}.polaroids figure:nth-child(2){transform:rotate(2deg)}.polaroids figure:nth-child(3){transform:rotate(-1deg)}.polaroids img{height:420px;object-fit:cover}.polaroids figcaption{text-align:center;font-family:Caveat,cursive;font-size:1.8rem;margin-top:.6rem}
.contact-box{text-align:center;max-width:900px;margin:auto}.contact-box>p{font-size:1.12rem}.centre-actions{justify-content:center}
footer{text-align:center;padding:3rem 1rem;background:#050404;border-top:1px solid #241313}footer img{width:220px;height:150px;object-fit:cover;margin:auto}.script{font-family:Caveat,cursive;font-size:2rem}.reveal{opacity:0;transform:translateY(24px);transition:.75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:950px){nav{display:none;position:fixed;top:78px;left:0;right:0;background:#090606;flex-direction:column;padding:2rem}nav.open{display:flex}.menu{display:block}.header>.button{display:none}.quick-strip{grid-template-columns:repeat(2,1fr)}.welcome-grid{grid-template-columns:1fr}.portrait{max-width:500px;margin:auto}.moment-grid{grid-template-columns:1fr 1fr}.moment-grid .wide{grid-column:1/-1}.venue-grid{grid-template-columns:1fr}.hero-badge{display:none}}
@media(max-width:650px){.header{height:70px}.wordmark strong{font-size:1.05rem}.wordmark span{font-size:.6rem}nav{top:70px}.hero{min-height:calc(100svh - 70px)}h1{font-size:clamp(3rem,16vw,5rem)}.actions{flex-direction:column}.actions .button{width:100%}.quick-strip{grid-template-columns:1fr}.quick-strip div{border-right:0;border-bottom:1px solid #392020}.moment-grid{grid-template-columns:1fr}.moment-grid .wide{grid-column:auto}.moment-grid .wide,.moment-grid .tall{min-height:420px}.polaroids{grid-template-columns:1fr}.polaroids figure{transform:none!important}.boot-stage{width:88vw;left:-92vw}@keyframes walkin{0%{left:-92vw}72%{left:-1vw}84%{left:-4vw}100%{left:-4vw}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.intro{display:none}.reveal{opacity:1;transform:none}}

/* VERSION 4 — PREMIUM OPENING */
.intro-copy{
  z-index:2;
  text-align:center;
  opacity:0;
  transform:translateY(22px);
  animation:fadeup 1.1s 4s forwards;
  width:min(760px,92vw);
  padding:1.5rem;
}
.intro-kicker{
  margin:0 0 .7rem;
  text-transform:uppercase;
  letter-spacing:.45em;
  font-size:.8rem;
  color:#c6b299;
}
.intro-title{
  margin:0;
  font-family:Rye,serif;
  font-size:clamp(3rem,8vw,6.8rem);
  line-height:.95;
  color:var(--red);
  letter-spacing:.02em;
  text-shadow:0 10px 35px #000;
}
.intro-subtitle{
  margin:.8rem 0 1.4rem;
  letter-spacing:.5em;
  font-weight:700;
  font-size:clamp(.9rem,2vw,1.3rem);
}
.intro-tagline{
  margin:0 0 1.8rem;
  font-family:Caveat,cursive;
  font-size:clamp(1.8rem,4vw,3.1rem);
  line-height:1.05;
  color:#f4e9da;
  text-shadow:0 7px 24px #000;
}
.enter-btn{
  background:linear-gradient(180deg,rgba(198,29,36,.26),rgba(125,13,18,.18));
  color:#fff;
  border:1px solid var(--red);
  padding:1rem 1.7rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  cursor:pointer;
  margin-top:.2rem;
  box-shadow:0 10px 35px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.06);
}
.enter-btn:hover{filter:brightness(1.15);transform:translateY(-1px)}

.brand-lockup,.footer-lockup{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.round-mark{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:2px solid var(--red);
  color:#fff;
  background:radial-gradient(circle at 35% 30%,#381014,#120707 68%);
  font-family:Rye,serif;
  font-size:.9rem;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.04),0 5px 18px rgba(0,0,0,.35);
}
.round-mark.large{width:66px;height:66px;font-size:1.2rem}
.footer-lockup{justify-content:center}
.footer-wordmark{text-align:left}

.nameplate{
  fill:#efe2cf;
  stroke:#2b201b;
  stroke-width:4;
}
.boot-script{
  font-family:Oswald,Arial,sans-serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:1px;
  fill:#161111;
  text-anchor:middle;
}
.boot-script.small{
  font-family:Caveat,cursive;
  font-size:22px;
  letter-spacing:0;
}

@media(max-width:650px){
  .intro-copy{transform:translateY(27vh);padding:.8rem}
  .intro-title{font-size:clamp(2.6rem,14vw,4.6rem)}
  .intro-subtitle{font-size:.75rem;letter-spacing:.36em}
  .intro-tagline{font-size:1.8rem}
  .round-mark{width:36px;height:36px;font-size:.75rem}
}


/* VERSION 5 — APPROVED CINEMATIC LANDING ARTWORK */
.poster-intro{
  position:fixed;
  inset:0;
  z-index:999;
  background:#000;
  display:grid;
  place-items:center;
  overflow:hidden;
  transition:opacity .8s ease,visibility .8s ease;
}
.poster-intro.hide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.poster-shell{
  position:relative;
  height:100svh;
  aspect-ratio:2/3;
  max-width:100vw;
  background:#000;
  box-shadow:0 0 70px rgba(0,0,0,.9);
}
.landing-poster{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  user-select:none;
  -webkit-user-drag:none;
}
.poster-enter{
  position:absolute;
  left:34.5%;
  top:55%;
  width:45.5%;
  height:8%;
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:10px;
}
.poster-enter:focus-visible{
  outline:3px solid #fff;
  outline-offset:4px;
  box-shadow:0 0 0 6px rgba(198,29,36,.65);
}
.poster-enter:hover{
  background:rgba(255,255,255,.035);
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media (orientation:landscape){
  .poster-shell{
    height:100vh;
    max-width:min(100vw,calc(100vh * .6667));
  }
}








/* VERSION 10 STABLE — APPROVED LANDING PAGE + WORKING STOMP */
.poster-intro{
  position:fixed;
  inset:0;
  z-index:999;
  background:#000;
  display:grid;
  place-items:center;
  overflow:hidden;
  transition:opacity .75s ease,visibility .75s ease;
}
.poster-intro.hide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.poster-shell{
  position:relative;
  height:100svh;
  aspect-ratio:2/3;
  max-width:100vw;
  background:#000;
  overflow:hidden;
  transform-origin:27% 78%;
}
.landing-poster{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  user-select:none;
  -webkit-user-drag:none;
}
.poster-enter{
  position:absolute;
  z-index:5;
  left:34.5%;
  top:49.2%;
  width:45.5%;
  height:8%;
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:10px;
}
.poster-enter:focus-visible{
  outline:3px solid #fff;
  outline-offset:4px;
  box-shadow:0 0 0 6px rgba(198,29,36,.65);
}
.impact-dust{
  position:absolute;
  z-index:6;
  left:-3%;
  top:70%;
  width:54%;
  height:18%;
  opacity:0;
  pointer-events:none;
  background:radial-gradient(ellipse at 35% 70%,
    rgba(190,126,74,.72),
    rgba(105,59,31,.28) 42%,
    transparent 72%);
  filter:blur(7px);
  transform:scale(.45);
}
.poster-intro.stomping .poster-shell{
  animation:stableStomp .86s cubic-bezier(.18,.82,.22,1) both;
}
.poster-intro.stomping .impact-dust{
  animation:stableDust .86s ease both;
}
@keyframes stableStomp{
  0%{transform:translate3d(0,0,0) rotate(0) scale(1)}
  32%{transform:translate3d(0,-24px,0) rotate(-1deg) scale(1.008)}
  62%{transform:translate3d(0,10px,0) rotate(.4deg) scale(.996)}
  78%{transform:translate3d(0,-3px,0) rotate(-.15deg) scale(1.001)}
  100%{transform:translate3d(0,0,0) rotate(0) scale(1)}
}
@keyframes stableDust{
  0%,38%{opacity:0;transform:scale(.45) translateY(0)}
  62%{opacity:1;transform:scale(1) translateY(-5px)}
  100%{opacity:0;transform:scale(1.5) translateY(-20px)}
}
@media (orientation:landscape){
  .poster-shell{
    height:100vh;
    max-width:min(100vw,calc(100vh * .6667));
  }
}
@media(prefers-reduced-motion:reduce){
  .poster-intro.stomping .poster-shell{animation:none}
  .poster-intro.stomping .impact-dust{display:none}
}


/* VERSION 12 — ABOUT PAGE */
.about-page{padding-top:88px}
.about-hero{min-height:72vh;display:grid;align-items:center}
.about-hero-grid{
  width:min(1120px,90vw);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);
  align-items:center;
  gap:clamp(2rem,6vw,6rem);
}
.about-photo img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:50%;
  border:8px solid #efe3d0;
  box-shadow:0 0 0 2px var(--red),0 28px 65px rgba(0,0,0,.6);
}
.about-intro h1{
  margin:.25rem 0 1rem;
  color:#fff;
  font-family:Rye,serif;
  font-size:clamp(3rem,8vw,6.4rem);
  line-height:1;
}
.about-role{
  text-transform:uppercase;
  letter-spacing:.16em;
  color:#d7c4aa;
  font-size:.92rem;
}
.about-script{font-size:clamp(1.8rem,4vw,3rem);color:#fff}
.story-layout{
  width:min(1120px,90vw);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:start;
}
.story-copy p{font-size:1.08rem;line-height:1.85}
.story-copy blockquote{margin-top:2rem}
.story-panel{
  background:#120b09;
  color:#fff;
  padding:2rem;
  border:1px solid rgba(198,29,36,.55);
  position:sticky;
  top:120px;
}
.story-panel h3{font-size:2rem;margin:.35rem 0 1.2rem}
.about-list{padding:0;margin:0 0 2rem;list-style:none}
.about-list li{
  padding:.75rem 0 .75rem 1.7rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  position:relative;
}
.about-list li::before{
  content:"★";
  color:var(--red);
  position:absolute;
  left:0;
}
.about-closing{text-align:center}
nav a[aria-current="page"]{color:var(--red)}
@media(max-width:760px){
  .about-page{padding-top:72px}
  .about-hero{min-height:auto;padding-top:3rem}
  .about-hero-grid,.story-layout{grid-template-columns:1fr}
  .about-photo{width:min(330px,82vw);margin:auto}
  .about-intro{text-align:center}
  .story-panel{position:static}
}


/* VERSION 14 — INTERACTIVE CLASS CALENDAR */
.calendar-page{padding-top:78px}
.calendar-hero{padding-bottom:3.5rem}
.calendar-hero h1{
  font-family:Rye,serif;
  font-size:clamp(3rem,7vw,6rem);
  margin:.3rem 0 1rem;
}
.calendar-layout{
  width:min(1180px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:2rem;
  align-items:start;
}
.calendar-card{
  background:#fffaf3;
  border:1px solid #d7c5aa;
  box-shadow:0 24px 55px rgba(40,24,14,.18);
  overflow:hidden;
}
.calendar-toolbar{
  display:grid;
  grid-template-columns:56px 1fr 56px;
  align-items:center;
  gap:1rem;
  background:#120b09;
  color:#fff;
  padding:1.2rem;
  text-align:center;
}
.calendar-month{
  font-family:Rye,serif;
  font-size:clamp(1.6rem,4vw,2.4rem);
  margin:0;
}
.calendar-hint{margin:.2rem 0 0;color:#ccbca8;font-size:.9rem}
.calendar-arrow{
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid #7a2427;
  background:#221111;
  color:#fff;
  font-size:2rem;
  cursor:pointer;
}
.calendar-arrow:hover{background:var(--red)}
.calendar-weekdays,.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
}
.calendar-weekdays{
  background:#e9dcc8;
  border-bottom:1px solid #d4c2a7;
}
.calendar-weekdays span{
  text-align:center;
  padding:.8rem .2rem;
  font-weight:700;
  text-transform:uppercase;
  font-size:.75rem;
  letter-spacing:.05em;
}
.calendar-grid{padding:.7rem}
.calendar-day{
  min-height:68px;
  display:grid;
  place-items:center;
  border:1px solid #eadfce;
  background:#fffaf3;
  color:#211712;
  font:inherit;
  font-size:1.05rem;
}
button.calendar-day{cursor:pointer}
.calendar-day.blank{background:#f3eadc;border-color:#f3eadc}
.calendar-day.has-event{
  position:relative;
  color:#fff;
  font-weight:700;
  border-color:#fffaf3;
}
.calendar-day.has-event::after{
  content:"";
  position:absolute;
  bottom:8px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#fff;
}
.calendar-day.has-event.ecc{background:linear-gradient(145deg,#8d151a,#c9222a)}
.calendar-day.has-event.low{background:linear-gradient(145deg,#291313,#7b1116)}
.calendar-day.has-event:hover{filter:brightness(1.15);transform:translateY(-1px)}
.event-panel{
  background:#120b09;
  color:#fff;
  border:1px solid rgba(198,29,36,.55);
  padding:2rem;
  min-height:390px;
  position:sticky;
  top:110px;
}
.event-panel h2{font-size:clamp(2rem,4vw,3rem);margin:.5rem 0 1rem}
.event-empty{
  display:grid;
  place-items:center;
  font-size:5rem;
  min-height:170px;
  opacity:.75;
}
.event-date{
  color:#d8c4a7;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:.3rem 0;
}
.event-details{margin:1.5rem 0}
.event-details div{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:1rem;
  padding:.8rem 0;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.event-details dt{font-weight:700;color:#d8c4a7}
.event-details dd{margin:0}
.event-book{width:100%;margin-top:.7rem}
.calendar-legend{
  width:min(1180px,94vw);
  margin:1.5rem auto 0;
  display:flex;
  justify-content:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.calendar-legend span{display:flex;align-items:center;gap:.55rem}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.ecc-dot{background:#c9222a}
.low-dot{background:#571014}
@media(max-width:800px){
  .calendar-page{padding-top:70px}
  .calendar-layout{grid-template-columns:1fr}
  .event-panel{position:static}
  .calendar-day{min-height:54px}
}
@media(max-width:480px){
  .calendar-toolbar{grid-template-columns:42px 1fr 42px;padding:1rem .6rem}
  .calendar-arrow{width:36px;height:36px;font-size:1.5rem}
  .calendar-weekdays span{font-size:.62rem;padding:.7rem .1rem}
  .calendar-grid{padding:.35rem}
  .calendar-day{min-height:45px;font-size:.92rem}
  .calendar-day.has-event::after{bottom:5px;width:5px;height:5px}
}


/* VERSION 15 — WESTERN TICKETS, VENUE INFO & DANCE DIARY */
.western-ticket{
  position:relative;
  border:1px dashed #b88a54;
  padding:1.4rem;
  background:linear-gradient(145deg,#1a100d,#0c0807);
}
.western-ticket::before,.western-ticket::after{
  content:"";
  position:absolute;
  top:44%;
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--cream);
}
.western-ticket::before{left:-11px}
.western-ticket::after{right:-11px}
.ticket-eyebrow{
  color:#d5b27e;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.75rem;
  margin:0;
}
.ticket-actions{display:grid;gap:.65rem;margin-top:1.2rem}
.ticket-link{
  display:block;
  padding:.72rem .9rem;
  border:1px solid rgba(255,255,255,.18);
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.9rem;
}
.ticket-link:hover{border-color:var(--red);color:#fff;background:#281012}

.diary-page{padding-top:78px}
.diary-hero h1{
  font-family:Rye,serif;
  font-size:clamp(3rem,7vw,6rem);
  margin:.3rem 0 1rem;
}
.diary-list{
  width:min(1100px,94vw);
  margin:auto;
  display:grid;
  gap:1.3rem;
}
.diary-entry{
  background:#fffaf3;
  border:1px solid #d2b993;
  box-shadow:0 18px 40px rgba(40,24,14,.14);
}
.diary-entry summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  padding:1.3rem 1.5rem;
  background:#120b09;
  color:#fff;
}
.diary-entry summary::-webkit-details-marker{display:none}
.diary-entry summary::after{
  content:"+";
  font-size:2rem;
  color:var(--red);
}
.diary-entry[open] summary::after{content:"−"}
.diary-date{font-family:Rye,serif;font-size:clamp(1.2rem,3vw,1.8rem)}
.diary-venue{color:#d7c4aa;text-align:right}
.diary-content{padding:1.5rem}
.diary-intro{font-family:Caveat,cursive;font-size:1.8rem;color:var(--red)}
.dance-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.dance-card{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  min-height:190px;
  padding:1.1rem;
  background:#160d0b;
  color:#fff;
  border:1px solid #3b2220;
}
.dance-card span{font-size:1.8rem}
.dance-card strong{font-size:1.3rem}
.dance-card small{color:#d4c3b5;line-height:1.4}
.dance-card b{
  margin-top:auto;
  color:#ff535b;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.dance-card:hover{border-color:var(--red);transform:translateY(-2px)}
.learning-card{
  margin:1.4rem 0;
  padding:1.4rem;
  border:2px dashed #b88a54;
  text-align:center;
  background:#f3e7d4;
}
.learning-card h3{font-family:Rye,serif;font-size:2rem;margin:.4rem 0}
@media(max-width:800px){
  .diary-page{padding-top:70px}
  .dance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:540px){
  .diary-entry summary{align-items:flex-start}
  .diary-venue{font-size:.85rem}
  .dance-cards{grid-template-columns:1fr}
}


/* VERSION 16 — COMMUNITY HUB, DANCE LIBRARY & PRIVATE EVENTS */
.feature-page{padding-top:78px}
.feature-hero h1{
  font-family:Rye,serif;
  font-size:clamp(3rem,7vw,6rem);
  margin:.3rem 0 1rem;
}
.hub-preview-grid{
  width:min(1120px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.hub-preview-grid a{
  padding:1.35rem;
  border:1px solid #472426;
  background:#130b0a;
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.hub-preview-grid span{font-size:2rem}
.hub-preview-grid strong{font-size:1.25rem}
.hub-preview-grid small{color:#cdb9a8;line-height:1.45}
.hub-preview-grid a:hover{border-color:var(--red);transform:translateY(-3px)}

.library-controls{
  width:min(900px,94vw);
  margin:0 auto 2rem;
  text-align:center;
}
.library-controls label{display:block;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}
.library-controls input{
  width:100%;
  padding:1rem 1.1rem;
  border:2px solid #cbb89d;
  background:#fff;
  font:inherit;
}
.library-filters{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1rem}
.library-filters button{
  border:1px solid #8c6e50;
  background:#f6ead8;
  padding:.6rem .9rem;
  cursor:pointer;
  font:inherit;
}
.library-filters button.active,.library-filters button:hover{background:#17100d;color:#fff;border-color:#17100d}
.library-grid{
  width:min(1180px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.library-item{
  padding:1.4rem;
  background:#fffaf3;
  border:1px solid #d4c1a5;
  display:flex;
  flex-direction:column;
  min-height:330px;
}
.library-item[hidden]{display:none}
.library-item h2{font-size:1.8rem;margin:.25rem 0}
.library-icon{font-size:2.2rem}
.library-meta{font-size:.9rem;color:#765f4b;margin-top:auto;padding-top:1rem}
.library-item .button{margin-top:1rem}
.library-empty{text-align:center;font-size:1.1rem;padding:2rem}

.memory-grid{
  width:min(1180px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.memory-grid figure{margin:0;background:#fff;padding:.65rem;box-shadow:0 12px 30px rgba(35,20,12,.18)}
.memory-grid img{width:100%;height:270px;object-fit:cover}
.memory-grid figcaption{font-family:Caveat,cursive;font-size:1.45rem;text-align:center;padding:.5rem}
.community-note{text-align:center;font-size:1.8rem}
.boots-wall{
  width:min(1100px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.boots-wall article,.community-feature{
  border:1px solid #492324;
  background:#130b0a;
  padding:1.5rem;
}
.boots-wall span{font-size:3rem}
.coming-label,.status-chip{
  width:max-content;
  max-width:90vw;
  margin:1.4rem auto 0;
  padding:.55rem .9rem;
  border:1px dashed #aa7b48;
  color:#e5c89e;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
}
.playlist-grid,.community-columns{
  width:min(1100px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.playlist-card{
  padding:2rem;
  background:#fffaf3;
  border:1px solid #d4c1a5;
}
.playlist-icon{font-size:3rem}
.playlist-card h3{font-size:2rem}
.muted-button{opacity:.55;cursor:not-allowed}
.community-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.community-feature .status-chip{margin:1rem 0 0}
.milestone-line{
  width:min(1100px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  position:relative;
}
.milestone-line::before{
  content:"";
  position:absolute;
  left:8%;right:8%;top:22px;height:2px;background:#b51d24;
}
.milestone-line article{position:relative;padding:3.5rem 1rem 1rem;text-align:center}
.milestone-line article::before{
  content:"★";
  position:absolute;
  top:5px;left:50%;transform:translateX(-50%);
  width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;background:#120b09;color:#fff;z-index:1;
}
.milestone-line time{display:block;color:var(--red);font-weight:700;text-transform:uppercase}
.milestone-line strong{display:block;font-size:1.25rem;margin:.35rem 0}
.mailing-box{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  align-items:center;
  border:1px solid #4b2526;
  padding:2rem;
  background:#100908;
}
.mailing-preview{display:grid;gap:.9rem}
.mailing-preview label{display:grid;gap:.35rem;font-weight:600}
.mailing-preview input[type="text"],.mailing-preview input[type="email"]{
  padding:.85rem;border:1px solid #66504a;background:#1b1110;color:#fff;
}
.consent-preview{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important;font-size:.9rem}

.event-types{
  width:min(1150px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.event-types article{
  padding:1.4rem;background:#fffaf3;border:1px solid #d4c1a5;
}
.event-types span{font-size:2.4rem}
.event-types h2{font-size:1.5rem}
.event-package{
  width:min(1050px,94vw);
  margin:3rem auto 0;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  background:#120b09;color:#fff;padding:2rem;
}
.event-package li{padding:.45rem 0}
.event-enquiry{display:flex;flex-direction:column;justify-content:center;gap:.8rem}
.event-enquiry .script{font-size:2rem}

@media(max-width:1050px){
  .hub-preview-grid,.event-types{grid-template-columns:repeat(2,minmax(0,1fr))}
  .library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .feature-page{padding-top:70px}
  .hub-preview-grid,.library-grid,.boots-wall,.playlist-grid,.community-columns,.event-types,.event-package,.mailing-box{grid-template-columns:1fr}
  .milestone-line{grid-template-columns:1fr}
  .milestone-line::before{left:21px;right:auto;top:5%;bottom:5%;width:2px;height:auto}
  .milestone-line article{text-align:left;padding:1rem 1rem 1rem 4rem}
  .milestone-line article::before{left:21px;top:15px}
}
@media(max-width:520px){
  .memory-grid{grid-template-columns:1fr}
  .memory-grid img{height:320px}
}


/* VERSION 17 — REAL LOGO, DANCE SPECS & REQUESTS */
.brand-logo{
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:50%;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.28);
}
.footer-logo{
  width:82px;
  height:82px;
  border:2px solid rgba(255,255,255,.25);
}

.library-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}
.level-badge{
  display:inline-block;
  padding:.38rem .55rem;
  border-radius:999px;
  font-size:.7rem;
  font-weight:700;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.05em;
  text-align:center;
}
.level-absolute-beginner{background:#efe0c9;color:#402b1d;border:1px solid #cbae82}
.level-beginner{background:#d7b16f;color:#28170d;border:1px solid #a47534}
.level-improver{background:#7d1e23;color:#fff;border:1px solid #9e3036}
.dance-specs{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.6rem;
  margin:1rem 0;
}
.dance-specs span{
  background:#f0e3d1;
  border:1px solid #d5bea0;
  padding:.7rem;
  text-align:center;
  text-transform:uppercase;
  font-size:.75rem;
  letter-spacing:.05em;
}
.dance-specs b{display:block;font-size:1.35rem;color:#a8181e}
.choreographer{font-size:.92rem}
.choreographer a{color:#a8181e;text-decoration:underline;text-underline-offset:3px}
.library-actions{display:grid;gap:.65rem;margin-top:1rem}
.library-actions .text-link{text-align:center}
.library-request{
  width:min(700px,94vw);
  margin:3rem auto 0;
  text-align:center;
  border:2px dashed #b88a54;
  padding:1.5rem;
  background:#f5e8d5;
}
.library-request .script{font-size:2rem;margin:.2rem 0 1rem}

.request-choice{
  width:min(900px,94vw);
  margin:0 auto 1.5rem;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
.request-type{
  border:2px solid #cdb797;
  background:#fffaf3;
  padding:1.4rem;
  cursor:pointer;
  text-align:left;
  display:grid;
  gap:.4rem;
  font:inherit;
}
.request-type span{font-size:2.4rem}
.request-type strong{font-family:Rye,serif;font-size:1.4rem}
.request-type small{font-size:.95rem;color:#725e4d}
.request-type.active{
  border-color:#a8181e;
  box-shadow:inset 0 0 0 2px #a8181e;
  background:#f4e3d0;
}
.request-form-wrap{
  width:min(850px,94vw);
  margin:auto;
  background:#fffaf3;
  border:1px solid #d4c1a5;
  padding:clamp(1.2rem,4vw,2.2rem);
}
.request-form{display:grid;gap:1rem}
.request-form label{display:grid;gap:.4rem;font-weight:700}
.request-form label span{font-weight:400;color:#806b59}
.request-form input,.request-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #bca98e;
  background:#fff;
  padding:.85rem;
  font:inherit;
}
.request-result{
  margin-top:2rem;
  border-top:2px dashed #b88a54;
  padding-top:1.6rem;
}
.request-result pre{
  white-space:pre-wrap;
  word-break:break-word;
  background:#160d0b;
  color:#fff;
  padding:1rem;
  font:inherit;
  line-height:1.6;
}
.request-result-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.dark-ghost{color:#1f1510!important;border-color:#7f6145!important}
.request-help{font-size:.9rem;color:#75604e}
.light-link{color:#fff!important;display:block;margin-top:.9rem}
.request-ticket-link{border-color:#a8181e!important;color:#fff!important}

@media(max-width:640px){
  .request-choice{grid-template-columns:1fr}
  .brand-logo{width:42px;height:42px}
}


/* VERSION 19 — PREMIUM EDITORIAL HOMEPAGE */
.home-v19{background:#080605}
.home-v19 .header{background:rgba(6,5,4,.96);border-bottom:1px solid rgba(255,255,255,.08)}
.v19-hero{
  min-height:720px;
  position:relative;
  display:flex;
  align-items:center;
  background:
    linear-gradient(90deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.80) 35%,rgba(0,0,0,.20) 72%,rgba(0,0,0,.55) 100%),
    url("party2.webp") center 43%/cover no-repeat;
  overflow:hidden;
}
.v19-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:95px;
  background:linear-gradient(180deg,transparent,#f2eadf);
}
.v19-hero-copy{
  position:relative;
  z-index:2;
  width:min(620px,88vw);
  margin-left:max(5vw,calc((100vw - 1300px)/2));
  padding:7rem 0 10rem;
}
.v19-hero-copy h1{
  font-family:Rye,serif;
  font-size:clamp(3.4rem,7vw,7.3rem);
  line-height:.95;
  margin:.35rem 0 1.2rem;
  color:#fff;
}
.v19-hero-copy h1 em{color:#d21f27;font-style:normal}
.v19-hero-copy>p{font-size:1.2rem;line-height:1.6;max-width:560px;color:#f2e8dc}
.music-link{
  display:inline-block;
  margin-top:1.25rem;
  color:#fff;
  border-bottom:1px solid #c61c23;
  padding-bottom:.2rem;
}

.v19-paper-section{
  background:#f2eadf;
  color:#211713;
  padding:clamp(3rem,6vw,6rem) 0;
}
.v19-main-grid{
  width:min(1280px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:.9fr 1.45fr;
  gap:2.5rem;
  align-items:start;
}
.v19-meet{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.2rem;
  align-items:center;
}
.meet-copy h2{font-size:2.8rem;margin:.2rem 0}
.meet-copy p{line-height:1.65}
.polaroid{
  margin:0;
  background:#fff;
  padding:.7rem .7rem 1.1rem;
  box-shadow:0 15px 36px rgba(51,30,20,.24);
  transform:rotate(2deg);
}
.polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover}
.polaroid figcaption{font-family:Caveat,cursive;font-size:1.35rem;text-align:center;padding-top:.55rem}

.section-heading-inline{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:1.3rem;
}
.section-heading-inline h2{margin:.2rem 0 0;font-size:2.2rem}
.class-card-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.v19-class-card{
  background:#fff;
  border:1px solid #d9c9b4;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(44,24,14,.13);
}
.v19-class-card img{width:100%;height:190px;object-fit:cover}
.class-card-body{padding:1rem}
.class-card-body h3{font-size:1.4rem;margin:.6rem 0}
.class-card-body p{margin:.35rem 0}
.class-card-body .button{width:100%;margin-top:.8rem}
.mini-label{
  display:inline-block;
  background:#17100d;
  color:#fff;
  padding:.3rem .5rem;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.v19-benefits{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  background:#0d0908;
  color:#fff;
  padding:2.2rem max(4vw,calc((100vw - 1300px)/2));
  gap:1rem;
}
.v19-benefits div{text-align:center;border-right:1px solid #4c2929;padding:0 1rem}
.v19-benefits div:last-child{border-right:0}
.v19-benefits span{display:block;font-size:2rem;color:#d11f26}
.v19-benefits strong{display:block;text-transform:uppercase;margin:.55rem 0;font-size:.92rem}
.v19-benefits small{color:#cbbdb1;line-height:1.4}

.v19-lower-grid{
  width:min(1280px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
}
.gallery-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.gallery-strip img{width:100%;height:180px;object-fit:cover;border-radius:5px}
.v19-events{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  align-items:center;
}
.events-copy ul{padding-left:1.2rem;line-height:1.9}
.event-polaroids{position:relative;min-height:330px}
.event-polaroids img{
  position:absolute;
  width:68%;
  height:260px;
  object-fit:cover;
  background:#fff;
  padding:.5rem;
  box-shadow:0 12px 28px rgba(40,24,14,.24);
}
.event-polaroids img:first-child{left:0;top:25px;transform:rotate(-5deg)}
.event-polaroids img:last-child{right:0;top:0;transform:rotate(6deg)}

.v19-community-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:#402222;
  border-top:1px solid #4a2627;
  border-bottom:1px solid #4a2627;
}
.v19-community-strip a{
  background:#100a09;
  padding:1.6rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:.4rem;
}
.v19-community-strip a:hover{background:#1b0e0e}
.v19-community-strip span{font-size:2rem}
.v19-community-strip strong{font-size:1.15rem}
.v19-community-strip small{color:#c9b8aa}

.v19-footer{
  background:#070505;
  color:#fff;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:2rem;
  padding:3rem max(4vw,calc((100vw - 1300px)/2)) 2rem;
  align-items:start;
}
.footer-brand{display:flex;gap:1rem;align-items:center}
.footer-brand strong{font-family:Rye,serif;color:#d01f26;font-size:1.35rem;display:block}
.footer-brand span{letter-spacing:.18em;font-size:.8rem}
.footer-brand .script{font-size:1.5rem;margin:.55rem 0 0}
.v19-footer h3{text-transform:uppercase;font-size:.95rem;letter-spacing:.08em}
.v19-footer a{display:block;color:#d7c7b8;margin:.45rem 0}
.footer-slogan .script{font-size:2rem;margin:0}
.footer-copy{grid-column:1/-1;border-top:1px solid #301a1a;padding-top:1rem;color:#8f8178;font-size:.85rem}

@media(max-width:1100px){
  .v19-main-grid{grid-template-columns:1fr}
  .v19-meet{max-width:850px}
  .v19-benefits{grid-template-columns:repeat(3,1fr)}
  .v19-benefits div{border-right:0}
  .v19-footer{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .v19-hero{
    min-height:700px;
    align-items:flex-end;
    background:
      linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.88) 55%,#050404 100%),
      url("party2.webp") center 30%/cover no-repeat;
  }
  .v19-hero-copy{margin:0 auto;padding:18rem 0 7rem;text-align:center}
  .v19-hero-copy h1{font-size:clamp(3rem,15vw,5.2rem)}
  .v19-hero-copy .actions{justify-content:center}
  .v19-meet,.class-card-row,.v19-lower-grid,.v19-events,.v19-community-strip{grid-template-columns:1fr}
  .v19-benefits{grid-template-columns:repeat(2,1fr)}
  .gallery-strip{grid-template-columns:repeat(2,1fr)}
  .event-polaroids{min-height:290px}
  .v19-footer{grid-template-columns:1fr;text-align:center}
  .footer-brand{justify-content:center}
  .footer-copy{grid-column:1}
}
@media(max-width:480px){
  .v19-benefits{grid-template-columns:1fr}
  .v19-meet{grid-template-columns:1fr}
  .polaroid{max-width:310px;margin:auto}
  .section-heading-inline{align-items:flex-start;flex-direction:column}
}


/* VERSION 20 — INSTALLABLE MOBILE WEB APP */
.install-app[hidden],
.install-guide[hidden]{display:none!important}

.install-app{
  position:fixed;
  z-index:1200;
  left:50%;
  bottom:max(18px,env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(680px,calc(100vw - 24px));
  display:grid;
  grid-template-columns:52px 1fr auto 34px;
  gap:.8rem;
  align-items:center;
  padding:.75rem .8rem;
  background:rgba(13,9,8,.97);
  color:#fff;
  border:1px solid #6d292c;
  border-radius:15px;
  box-shadow:0 18px 55px rgba(0,0,0,.55);
  backdrop-filter:blur(14px);
}
.install-app img{
  width:52px;
  height:52px;
  border-radius:50%;
}
.install-app-copy{display:grid;gap:.15rem}
.install-app-copy strong{font-size:1rem}
.install-app-copy span{font-size:.82rem;color:#d2c2b4;line-height:1.3}
.install-app-button{
  border:0;
  border-radius:9px;
  background:#c91f26;
  color:#fff;
  padding:.65rem .9rem;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.install-app-close{
  border:0;
  background:transparent;
  color:#bbaa9d;
  font-size:1.7rem;
  cursor:pointer;
  padding:0;
}

.install-guide{
  position:fixed;
  z-index:1300;
  inset:0;
  display:grid;
  place-items:center;
  padding:1rem;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(8px);
}
.install-guide-card{
  position:relative;
  width:min(480px,94vw);
  max-height:90vh;
  overflow:auto;
  background:#f5ead9;
  color:#211713;
  border:2px solid #9f2429;
  padding:2rem;
  box-shadow:0 30px 90px rgba(0,0,0,.7);
  text-align:center;
}
.install-guide-card>img{
  width:92px;
  height:92px;
  border-radius:50%;
  margin-bottom:.8rem;
}
.install-guide-card h2{font-family:Rye,serif;font-size:2rem;margin:.35rem 0 1rem}
.install-guide-card ol{
  text-align:left;
  padding-left:1.3rem;
  margin:1.2rem 0 1.6rem;
}
.install-guide-card li{padding:.45rem 0;line-height:1.5}
.install-guide-close{
  position:absolute;
  top:.6rem;
  right:.75rem;
  border:0;
  background:transparent;
  color:#3b2820;
  font-size:2rem;
  cursor:pointer;
}
.install-guide-open{overflow:hidden}

@media(max-width:560px){
  .install-app{
    grid-template-columns:44px 1fr auto 25px;
    gap:.55rem;
    padding:.65rem;
  }
  .install-app img{width:44px;height:44px}
  .install-app-copy strong{font-size:.88rem}
  .install-app-copy span{font-size:.72rem}
  .install-app-button{padding:.55rem .68rem;font-size:.85rem}
}


/* VERSION 22 — BOOT SCOOTIN' REWARDS */
.rewards-preview{
  background:#f2eadf;
  color:#211713;
}
.rewards-preview-grid{
  width:min(1080px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:center;
}
.rewards-preview-copy h2{font-size:clamp(2.1rem,5vw,4rem);margin:.35rem 0 1rem}
.rewards-stamp-card{
  background:#110b09;
  border:2px solid #9e2429;
  padding:1.4rem;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:.65rem;
  box-shadow:0 18px 40px rgba(40,20,12,.25);
}
.rewards-stamp-card span,.rewards-stamp-card strong{
  min-height:58px;
  display:grid;
  place-items:center;
  background:#f4e4ce;
  border:1px solid #d0b38d;
  font-size:1.6rem;
}
.rewards-stamp-card strong{
  background:#b71e24;
  color:#fff;
  font-size:.85rem;
  letter-spacing:.08em;
}

.rewards-main{
  width:min(1080px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:2rem;
  align-items:start;
}
.rewards-copy h2{font-size:clamp(2rem,5vw,3.5rem)}
.reward-steps{display:grid;gap:1rem;margin:2rem 0}
.reward-steps article{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:1rem;
  align-items:start;
  padding:1rem 0;
  border-bottom:1px solid #dccbb5;
}
.reward-steps article>span{
  width:48px;height:48px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#a91a20;color:#fff;
  font-weight:700;font-size:1.25rem;
}
.reward-steps h3{margin:.1rem 0 .35rem}
.reward-steps p{margin:0}
.reward-benefits{
  background:#f5e6d2;
  border:1px solid #d8c0a0;
  padding:1.2rem;
}
.reward-benefits li{padding:.35rem 0}

.reward-join-card{
  background:#120b09;
  color:#fff;
  border:1px solid #7a292c;
  padding:1.6rem;
  text-align:center;
  position:sticky;
  top:110px;
}
.reward-qr{
  width:min(330px,100%);
  background:#fff;
  padding:.75rem;
  border-radius:8px;
}
.reward-join-card h2{font-size:2rem}
.reward-join-card small{display:block;color:#c9b8aa;margin-top:.8rem}

.reward-progress-demo{
  width:min(900px,94vw);
  margin:auto;
  text-align:center;
}
.reward-progress-demo h2{font-size:clamp(2rem,5vw,3.5rem)}
.reward-progress-row{
  display:grid;
  grid-template-columns:repeat(9,1fr);
  gap:.65rem;
  margin:1.6rem auto;
  max-width:760px;
}
.reward-progress-row span{
  min-height:66px;
  display:grid;
  place-items:center;
  border:1px solid #5c3334;
  background:#1b1010;
  font-size:1.7rem;
}
.reward-progress-row .earned{
  background:#f0dfc7;
  color:#24150e;
  border-color:#d2b58e;
}

.reward-terms .terms-card{
  width:min(850px,94vw);
  margin:auto;
  background:#fffaf3;
  border:1px solid #d4c0a3;
  padding:1.4rem;
}
.ticket-reward-note{
  margin:.75rem 0 0;
  font-size:.86rem;
  color:#e0c59c;
  text-align:center;
}

@media(max-width:800px){
  .rewards-preview-grid,.rewards-main{grid-template-columns:1fr}
  .reward-join-card{position:static}
}
@media(max-width:520px){
  .rewards-stamp-card{gap:.35rem;padding:.8rem}
  .rewards-stamp-card span,.rewards-stamp-card strong{min-height:48px;font-size:1.25rem}
  .reward-progress-row{grid-template-columns:repeat(5,1fr)}
}


/* VERSION 24 — PREMIUM MUSIC CARDS & MERCHANDISE */
.music-section .section-title{max-width:900px}
.premium-playlists{
  align-items:stretch;
}
.premium-playlist-card{
  overflow:hidden;
  padding:0;
  display:grid;
  grid-template-rows:auto 1fr;
  background:#fffaf3;
}
.playlist-cover{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
}
.playlist-card-copy{
  display:flex;
  flex-direction:column;
  padding:1.5rem;
}
.playlist-card-copy h3{
  font-size:clamp(2rem,4vw,3rem);
  margin:.35rem 0 .8rem;
}
.playlist-card-copy p{
  line-height:1.6;
}
.playlist-card-copy .button{
  margin-top:auto;
  width:max-content;
}
.playlist-placeholder-art{
  aspect-ratio:1/1;
  background:
    linear-gradient(145deg,rgba(0,0,0,.15),rgba(0,0,0,.65)),
    radial-gradient(circle at 50% 25%,#6a171b,#120a09 70%);
  color:#fff;
  display:grid;
  place-content:center;
  text-align:center;
  padding:1rem;
  border-bottom:1px solid #6d292c;
}
.playlist-placeholder-art .playlist-line{
  font-family:Rye,serif;
  color:#d42027;
  font-size:clamp(1.5rem,4vw,2.3rem);
}
.playlist-placeholder-art strong{
  font-family:Rye,serif;
  font-size:clamp(2rem,5vw,3.5rem);
  line-height:1;
  margin:.45rem 0;
}
.playlist-placeholder-art small{
  letter-spacing:.2em;
  color:#d8c4b1;
}
.playlist-update-note{
  text-align:center;
  font-size:1.7rem;
  margin:2rem auto 0;
}

.merchandise-section{
  overflow:hidden;
}
.merch-coming-card{
  width:min(1000px,94vw);
  margin:2rem auto 0;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  background:#110b09;
  color:#fff;
  border:1px solid #6e292c;
  box-shadow:0 20px 55px rgba(40,20,12,.22);
}
.merch-shirt-art{
  min-height:480px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 40%,rgba(157,31,36,.3),transparent 45%),
    linear-gradient(145deg,#1d100f,#090605);
}
.shirt-shape{
  width:260px;
  height:310px;
  position:relative;
  background:#171717;
  clip-path:polygon(23% 0,38% 11%,62% 11%,77% 0,100% 14%,87% 36%,77% 31%,77% 100%,23% 100%,23% 31%,13% 36%,0 14%);
  display:grid;
  align-content:center;
  text-align:center;
  padding:1rem;
  box-sizing:border-box;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.45));
}
.shirt-shape span{
  font-family:Rye,serif;
  color:#d11f26;
  font-size:1.6rem;
}
.shirt-shape small{
  letter-spacing:.18em;
  margin-top:.45rem;
}
.merch-coming-copy{
  padding:clamp(1.5rem,4vw,3rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.merch-coming-copy h3{
  font-size:clamp(2.3rem,5vw,4rem);
  margin:.35rem 0 .9rem;
}
.merch-coming-copy p{line-height:1.65}
.merch-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:1rem 0 1.4rem;
}
.merch-tags span{
  border:1px solid #6d3435;
  padding:.45rem .7rem;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#e5d0bd;
}
.merch-preview{
  background:#0d0908;
  color:#fff;
}
.merch-preview-inner{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:center;
}
.merch-preview-inner h2{
  font-size:clamp(2rem,5vw,3.8rem);
  margin:.35rem 0 1rem;
}
.mini-shirt-card{
  min-height:300px;
  background:
    radial-gradient(circle at 50% 40%,rgba(157,31,36,.35),transparent 40%),
    #160d0c;
  border:1px solid #6b2a2d;
  display:grid;
  place-content:center;
  text-align:center;
  clip-path:polygon(14% 0,32% 10%,68% 10%,86% 0,100% 16%,86% 36%,78% 30%,78% 100%,22% 100%,22% 30%,14% 36%,0 16%);
}
.mini-shirt-card span{
  font-family:Rye,serif;
  color:#d11f26;
  font-size:clamp(1.5rem,4vw,2.4rem);
}
.mini-shirt-card small{
  letter-spacing:.18em;
  margin-top:.5rem;
}

@media(max-width:780px){
  .merch-coming-card,.merch-preview-inner{grid-template-columns:1fr}
  .merch-shirt-art{min-height:380px}
  .mini-shirt-card{min-height:280px}
}


/* VERSION 25 — BRUMMIE COWGIRL & NORA'S COUNTRY CORNER */
.beyond-section{overflow:hidden}
.beyond-grid{
  width:min(1180px,94vw);
  margin:2rem auto 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.beyond-card{
  position:relative;
  min-height:310px;
  padding:1.5rem;
  border:1px solid #4e2829;
  background:#120b0a;
  display:flex;
  flex-direction:column;
}
.beyond-card.featured{
  grid-column:span 2;
  background:
    linear-gradient(135deg,rgba(9,6,5,.98),rgba(64,16,18,.78)),
    url("nora.webp") right center/42% auto no-repeat;
  padding-right:44%;
}
.beyond-card h3{
  font-size:clamp(1.8rem,4vw,2.7rem);
  margin:.35rem 0 .8rem;
}
.beyond-card p{color:#d0bfb0;line-height:1.55}
.beyond-card strong{margin-top:auto;color:#fff}
.beyond-card:hover{border-color:#b42127;transform:translateY(-3px)}
.beyond-number{
  position:absolute;
  right:1rem;
  top:.8rem;
  color:#6f3b3c;
  font-family:Rye,serif;
  font-size:2rem;
}

.brummie-about-card{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:center;
  border:1px solid #55292b;
  padding:clamp(1.5rem,4vw,3rem);
  background:
    radial-gradient(circle at 80% 30%,rgba(130,25,30,.25),transparent 40%),
    #110a09;
}
.brummie-about-card h2{font-size:clamp(2.3rem,5vw,4rem)}
.brummie-about-card blockquote{
  margin:0;
  padding:1.5rem;
  border-left:3px solid #b41f25;
  font-family:Caveat,cursive;
  font-size:clamp(1.8rem,4vw,2.5rem);
  color:#f0ddc7;
}

.country-corner-hero{
  min-height:720px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:stretch;
  background:#0b0706;
  color:#fff;
}
.country-corner-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(5rem,9vw,9rem) max(5vw,calc((100vw - 1200px)/2));
  padding-right:4vw;
}
.country-corner-hero-copy h1{
  font-family:Rye,serif;
  font-size:clamp(3.4rem,7vw,7rem);
  line-height:.95;
  margin:.4rem 0 1rem;
}
.country-corner-hero-copy p{
  max-width:620px;
  font-size:1.15rem;
  line-height:1.65;
}
.country-corner-hero-copy .button{width:max-content;margin-top:1rem}
.country-corner-photo{
  min-height:720px;
  position:relative;
  overflow:hidden;
}
.country-corner-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#0b0706 0%,transparent 28%);
}
.country-corner-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.country-intro-grid{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:3rem;
  align-items:start;
}
.country-intro-grid h2{font-size:clamp(2.3rem,5vw,4rem)}
.country-intro-grid p{font-size:1.1rem;line-height:1.8}

.country-editorial-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:#4b2627;
  padding:1px;
}
.country-editorial-card{
  min-height:360px;
  background:#100908;
  padding:clamp(1.5rem,4vw,3rem);
  position:relative;
  display:flex;
  flex-direction:column;
}
.country-editorial-card h2{
  font-size:clamp(2rem,5vw,3.5rem);
  margin:.35rem 0 1rem;
}
.country-editorial-card p{color:#d0bfb0;line-height:1.6}
.editorial-index{
  position:absolute;
  right:1.5rem;
  top:1rem;
  color:#633436;
  font-family:Rye,serif;
  font-size:2.4rem;
}
.country-editorial-card .status-chip{margin:auto 0 0}

.country-social-card,
.country-hub-preview-inner{
  width:min(1000px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:center;
  padding:2rem;
  border:1px solid #d2b993;
  background:#fffaf3;
}
.country-social-card h2{font-size:clamp(2rem,5vw,3.4rem)}
.country-quote-section blockquote{
  width:min(900px,92vw);
  margin:auto;
  text-align:center;
  font-family:Caveat,cursive;
  font-size:clamp(2.5rem,7vw,5.5rem);
  color:#f3e2cd;
}

.country-hub-preview-inner{
  background:#120b0a;
  color:#fff;
  border-color:#55292b;
  grid-template-columns:1.15fr .85fr;
}
.country-hub-preview-inner h2{font-size:clamp(2.3rem,5vw,4rem)}
.country-hub-preview-inner img{
  width:100%;
  max-height:380px;
  object-fit:cover;
  border:8px solid #f1e5d4;
  transform:rotate(2deg);
}

@media(max-width:900px){
  .beyond-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .beyond-card.featured{grid-column:span 2}
  .country-corner-hero{grid-template-columns:1fr}
  .country-corner-photo{min-height:520px}
  .country-corner-photo::after{background:linear-gradient(180deg,#0b0706 0%,transparent 25%)}
}
@media(max-width:700px){
  .beyond-grid,
  .country-editorial-grid,
  .country-intro-grid,
  .brummie-about-card,
  .country-social-card,
  .country-hub-preview-inner{grid-template-columns:1fr}
  .beyond-card.featured{
    grid-column:auto;
    padding-right:1.5rem;
    background:
      linear-gradient(180deg,rgba(9,6,5,.92),rgba(64,16,18,.84)),
      url("nora.webp") center/cover no-repeat;
  }
  .country-social-card .button{width:100%}
  .country-hub-preview-inner img{max-height:440px}
}


/* VERSION 26 — MOBILE OVERFLOW & TEXT FIT FIXES */
html, body{
  max-width:100%;
  overflow-x:hidden;
}
*, *::before, *::after{
  box-sizing:border-box;
}
img, video, iframe, svg{
  max-width:100%;
}
main, section, article, aside, header, footer, nav, div{
  min-width:0;
}
h1, h2, h3, p, a, button, label, span, strong, small, blockquote{
  overflow-wrap:anywhere;
  word-break:normal;
}
.button,
.ticket-link,
.text-link,
.install-app-button{
  white-space:normal;
  text-align:center;
  line-height:1.25;
  max-width:100%;
}
.mailing-box{
  width:min(1050px,100%);
  max-width:100%;
}
.mailing-box > *,
.mailing-preview,
.mailing-preview label{
  min-width:0;
}
.mailing-preview input[type="text"],
.mailing-preview input[type="email"]{
  width:100%;
  max-width:100%;
}
.consent-preview{
  width:100%;
}
.consent-preview input{
  flex:0 0 auto;
}
.header{
  max-width:100vw;
}
.brand-lockup{
  min-width:0;
}
.wordmark{
  min-width:0;
}
.wordmark strong,
.wordmark span{
  white-space:normal;
}
nav a{
  overflow-wrap:normal;
}
.music-toggle{
  max-width:calc(100vw - 24px);
}

@media(max-width:760px){
  h1{
    font-size:clamp(2.45rem,11vw,4.3rem);
    line-height:1;
  }
  h2{
    font-size:clamp(2rem,8.7vw,3.2rem);
    line-height:1.05;
  }
  h3{
    line-height:1.15;
  }
  .section{
    padding-left:1rem;
    padding-right:1rem;
  }
  .mailing-section{
    padding-left:.75rem;
    padding-right:.75rem;
  }
  .mailing-box{
    grid-template-columns:1fr;
    gap:1.4rem;
    padding:1.15rem;
  }
  .mailing-box h2{
    font-size:clamp(2rem,9vw,3rem);
  }
  .mailing-preview .button{
    width:100%;
    padding:.85rem .7rem;
    font-size:.9rem;
    letter-spacing:.035em;
  }
  .consent-preview{
    grid-template-columns:24px minmax(0,1fr)!important;
    gap:.6rem;
    line-height:1.45;
  }
  .header{
    padding-left:.65rem;
    padding-right:.65rem;
  }
  .brand-logo{
    flex:0 0 40px;
    width:40px;
    height:40px;
  }
  .wordmark strong{
    font-size:clamp(1rem,5vw,1.45rem);
  }
  .wordmark span{
    font-size:.72rem;
    letter-spacing:.18em;
  }
  .menu{
    flex:0 0 auto;
    padding:.65rem .8rem;
  }
}

@media(max-width:420px){
  h2{
    font-size:clamp(1.85rem,8.2vw,2.6rem);
  }
  .mailing-box{
    padding:1rem .8rem;
  }
  .mailing-preview label{
    font-size:.95rem;
  }
  .mailing-preview input[type="text"],
  .mailing-preview input[type="email"]{
    padding:.75rem;
  }
}


/* VERSION 28 — SIGNATURE SONG & LINK FIX */
.signature-song-section{
  overflow:hidden;
}
.signature-song-grid{
  width:min(1120px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:2rem;
  align-items:center;
}
.signature-song-copy h2{
  font-size:clamp(2.8rem,6vw,5.4rem);
  margin:.35rem 0 .2rem;
}
.signature-artist{
  color:#d2b38e;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:700;
  margin:.2rem 0 1.2rem;
}
.signature-song-copy>p:not(.kicker):not(.signature-artist){
  line-height:1.7;
  color:#d6c7ba;
}
.signature-song-copy small{
  display:block;
  margin-top:1rem;
  color:#a9988b;
}
.signature-video,
.signature-mini-player{
  position:relative;
  aspect-ratio:16/9;
  background:#000;
  border:1px solid #65292c;
  box-shadow:0 22px 55px rgba(0,0,0,.48);
  overflow:hidden;
}
.signature-video iframe,
.signature-mini-player iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.signature-music-card{
  width:min(1050px,94vw);
  margin:3rem auto 0;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:2rem;
  align-items:center;
  padding:1.5rem;
  background:#fffaf3;
  border:1px solid #d2b995;
}
.signature-music-card h3{
  font-size:clamp(2.2rem,5vw,3.8rem);
  margin:.3rem 0 .8rem;
}

@media(max-width:800px){
  .signature-song-grid,
  .signature-music-card{
    grid-template-columns:1fr;
  }
}


/* VERSION 30 — REAL MERCH & BUSINESSES WE LOVE */
.real-merch-grid{
  width:min(1100px,94vw);
  margin:2rem auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.4rem;
}
.real-merch-card{
  background:#fffaf3;
  border:1px solid #d1ba99;
  box-shadow:0 16px 40px rgba(40,20,12,.16);
  overflow:hidden;
}
.real-merch-card img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.real-merch-card>div{padding:1.4rem}
.real-merch-card h3{font-size:clamp(1.8rem,4vw,2.8rem);margin:.35rem 0 .8rem}
.merch-order-note{
  display:block;
  margin-top:1rem;
  padding:.7rem;
  border-left:3px solid #b21d23;
  background:#f1e2cf;
  font-weight:700;
}
.merch-created-by{
  width:min(1000px,94vw);
  margin:2.5rem auto 0;
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:center;
  border:1px solid #cdb795;
  padding:1.5rem;
  background:#f7ebd9;
}
.merch-created-by h3{font-size:2rem;margin:.35rem 0}

.business-love-grid{
  width:min(1100px,94vw);
  margin:auto;
  display:grid;
  gap:2rem;
}
.business-love-card{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  background:#fffaf3;
  border:1px solid #d1ba99;
  overflow:hidden;
}
.business-love-visual{
  min-height:390px;
  display:grid;
  place-content:center;
  text-align:center;
  padding:1rem;
  color:#fff;
}
.business-love-visual span{font-family:Rye,serif;font-size:clamp(2rem,5vw,4rem)}
.business-love-visual small{letter-spacing:.2em;margin-top:.6rem}
.threefives-visual{background:linear-gradient(145deg,#1a100e,#6f171b)}
.home-sunday-visual{background:linear-gradient(145deg,#382518,#9b7348)}
.business-love-copy{padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.business-love-copy h2{font-size:clamp(2.2rem,5vw,4rem)}
.business-love-copy p{line-height:1.7}
.business-invite-card{
  width:min(1000px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:center;
  border:1px solid #55282b;
  background:#110a09;
  padding:2rem;
}
.business-invite-card h2{font-size:clamp(2.2rem,5vw,4rem)}
.businesses-preview{background:#f2eadf;color:#211713}
.businesses-preview-inner{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:center;
}
.businesses-preview-inner h2{font-size:clamp(2.2rem,5vw,4rem)}
.business-name-stack{
  min-height:280px;
  display:grid;
  place-content:center;
  text-align:center;
  background:#120b09;
  border:1px solid #72282b;
  color:#fff;
  padding:1rem;
}
.business-name-stack strong{font-family:Rye,serif;color:#d01e25;font-size:2.4rem}
.business-name-stack span{font-family:Rye,serif;font-size:1.6rem;margin-top:1.2rem}

@media(max-width:760px){
  .real-merch-grid,
  .business-love-card,
  .merch-created-by,
  .business-invite-card,
  .businesses-preview-inner{grid-template-columns:1fr}
  .business-love-visual{min-height:260px}
}


/* VERSION 31 — MERCH FIX & IVORY SKY */
.ivory-sky-visual{
  background:linear-gradient(145deg,#efe4d5,#b88a67 48%,#4e2e25);
  color:#24140f;
}
.merch-order-button{
  margin-top:1rem;
  width:100%;
}
.business-name-stack span{
  display:block;
}
.business-name-stack span + span{
  margin-top:.8rem;
}


/* VERSION 32 — COUNTRY MAP, MOONSHINE & MEMBER JOURNEY */
.future-hub-grid,
.member-future-grid{
  width:min(1100px,94vw);
  margin:2rem auto 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.future-hub-grid a,
.member-future-grid>div{
  padding:1.5rem;
  background:#fffaf3;
  border:1px solid #d3bd9e;
}
.future-hub-grid span{font-size:2.3rem}
.future-hub-grid h3{font-size:1.6rem}
.member-future-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.map-toolbar{
  width:min(1100px,94vw);
  margin:0 auto 1rem;
  display:flex;
  align-items:center;
  gap:.8rem;
}
.map-toolbar label{font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.map-toolbar select{padding:.75rem;border:1px solid #bca98d;background:#fff}
.country-map-layout{
  width:min(1100px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:1.4rem;
}
.uk-map-card{
  min-height:560px;
  position:relative;
  overflow:hidden;
  border:1px solid #c9b18e;
  background:
    radial-gradient(circle at 50% 35%,rgba(166,111,63,.20),transparent 40%),
    repeating-linear-gradient(0deg,rgba(72,45,27,.04) 0 1px,transparent 1px 7px),
    #eadbc5;
}
.map-island{
  position:absolute;
  left:24%;
  top:8%;
  width:52%;
  height:76%;
  background:#2b1b14;
  clip-path:polygon(43% 0,58% 10%,64% 20%,61% 31%,71% 42%,68% 54%,78% 65%,65% 74%,61% 88%,49% 100%,38% 89%,30% 77%,20% 67%,26% 56%,17% 44%,25% 34%,21% 22%,34% 13%);
  filter:drop-shadow(0 18px 20px rgba(45,25,12,.25));
}
.map-pin{
  position:absolute;
  width:34px;height:34px;
  border-radius:50%;
  border:2px solid #f2dfc4;
  background:#a91c22;
  color:#fff;
  display:grid;place-items:center;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(0,0,0,.35);
}
.map-pin.active{transform:scale(1.18);background:#e12a32}
.pin-birmingham{left:43%;top:56%}
.pin-longroad{left:50%;top:49%}
.pin-threefives{left:54%;top:65%}
.pin-homebysunday{left:34%;top:38%}
.map-disclaimer{
  position:absolute;left:1rem;right:1rem;bottom:1rem;
  margin:0;padding:.7rem;background:rgba(255,250,243,.88);
  font-size:.85rem;
}
.map-place-panel{
  background:#fffaf3;
  border:1px solid #d0b897;
  padding:1.5rem;
}
.map-place-panel h2{font-size:2.2rem}
.map-place-list{display:grid;gap:.8rem;margin-top:1rem}
.map-place-list a{
  padding:1rem;border:1px solid #ddcbb1;background:#f6ead7;
  display:flex;flex-direction:column;gap:.25rem;
}
.map-place-list span{color:#705d4c}
.map-category-grid{
  width:min(1100px,94vw);
  margin:1.4rem auto 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.map-category-grid article{padding:1.2rem;border:1px solid #d3bd9e;background:#fffaf3}
.map-category-grid span{font-size:2rem}

.moonshine-hero{
  min-height:650px;
  display:flex;align-items:center;
  padding:6rem max(5vw,calc((100vw - 1200px)/2));
  background:
    linear-gradient(90deg,rgba(4,13,30,.96),rgba(4,13,30,.65)),
    radial-gradient(circle at 78% 25%,rgba(115,167,220,.35),transparent 25%),
    #071226;
  color:#fff;
}
.moonshine-hero-copy{max-width:760px}
.moonshine-hero h1{font-size:clamp(3.2rem,7vw,6.6rem)}
.moonshine-story{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:3rem;
}
.moonshine-story blockquote{font-family:Caveat,cursive;font-size:2rem;border-left:3px solid #a91c22;padding-left:1rem}
.moonshine-grid{
  width:min(1100px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.moonshine-grid article{padding:1.4rem;border:1px solid #342857;background:#0c1833}
.moonshine-grid span{font-size:2.2rem}
.long-road-card{
  width:min(1050px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;align-items:center;
}
.long-road-stamp{
  min-height:340px;
  border:4px double #8b4c2b;
  background:#2d1b12;color:#f4ddbd;
  display:grid;place-content:center;text-align:center;padding:1rem;
  transform:rotate(2deg);
}
.long-road-stamp strong{font-family:Rye,serif;font-size:2.6rem}
.long-road-stamp span{font-family:Rye,serif;font-size:1.5rem;margin:.7rem 0}
.long-road-stamp small{letter-spacing:.12em}

.journey-status{
  width:min(850px,94vw);
  margin:0 auto 2rem;
  text-align:center;
}
.journey-dashboard{
  width:min(1150px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:.34fr .66fr;
  gap:1.2rem;
}
.journey-profile,
.journey-main{
  background:#fffaf3;
  border:1px solid #d3bd9e;
  padding:1.4rem;
}
.journey-avatar{
  width:90px;height:90px;border-radius:50%;
  background:#160d0b;color:#fff;
  display:grid;place-items:center;
  font-family:Rye,serif;font-size:2rem;
}
.journey-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.2rem 0}
.journey-metrics div{padding:.7rem;background:#f0e1cd;text-align:center}
.journey-metrics strong{display:block;font-size:1.4rem;color:#a91c22}
.journey-metrics span{font-size:.75rem;text-transform:uppercase}
.journey-privacy{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;align-items:center;
  border-bottom:1px solid #decdb6;
  padding-bottom:1.2rem;margin-bottom:1.2rem;
}
.demo-switch{display:flex;align-items:center;gap:.6rem;font-weight:700}
.journey-dance-list{display:grid;gap:.8rem}
.journey-dance-list article{
  display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;
  padding:1rem;border:1px solid #decdb6;background:#f7ecdc;
}
.journey-dance-list h3{margin:0}
.journey-dance-list p{margin:.25rem 0 0}
.journey-dance-list select{padding:.65rem;max-width:180px}
.privacy-design-grid,
.account-action-grid{
  width:min(1100px,94vw);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.privacy-design-grid article{padding:1.4rem;border:1px solid #442426;background:#120a09}
.privacy-design-grid span{font-size:2rem}
.account-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.account-action-grid article{padding:1.4rem;border:1px solid #d3bd9e;background:#fffaf3}
.danger-card{border-color:#a91c22!important}
.danger-button{background:#82161b;border-color:#b9262d}
.deletion-preview{
  width:min(850px,94vw);
  margin:2rem auto 0;
  padding:1.4rem;
  border:2px dashed #a91c22;
  background:#fff4f1;
}

@media(max-width:900px){
  .country-map-layout,
  .moonshine-story,
  .long-road-card,
  .journey-dashboard{grid-template-columns:1fr}
  .map-category-grid,
  .moonshine-grid,
  .privacy-design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .future-hub-grid,
  .member-future-grid,
  .map-category-grid,
  .moonshine-grid,
  .account-action-grid{grid-template-columns:1fr}
  .journey-privacy,
  .journey-dance-list article{grid-template-columns:1fr}
  .journey-dance-list select{max-width:100%;width:100%}
  .uk-map-card{min-height:430px}
}


/* VERSION 33 — BIRTHDAY BOOTS & OPTIONAL PROFILE PHOTOS */
.journey-photo-preview{
  width:110px;
  height:110px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:#160d0b;
  color:#fff;
  font-family:Rye,serif;
  font-size:2rem;
  border:4px solid #ead8bf;
  margin-bottom:1rem;
}
.journey-photo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.profile-upload-preview{
  display:grid;
  gap:.45rem;
  font-weight:700;
  margin:1rem 0;
}
.profile-upload-preview input{
  width:100%;
  padding:.7rem;
  border:1px solid #cbb697;
  background:#fff;
}
.profile-upload-preview small{
  font-weight:400;
  color:#725e4c;
  line-height:1.4;
}
.profile-visibility-row{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  padding:.8rem;
  border:1px solid #dbc8ae;
  background:#f3e6d4;
  font-weight:600;
}
.profile-visibility-row input{
  margin-top:.2rem;
  flex:0 0 auto;
}
.birthday-settings-preview{
  margin:1.2rem 0 1.5rem;
  padding:1.3rem;
  border:1px solid #d3bd9e;
  background:#f9efe1;
}
.birthday-settings-heading h3{
  margin:.25rem 0 .5rem;
}
.birthday-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:1rem 0;
}
.birthday-options label{
  display:grid;
  gap:.4rem;
  font-weight:700;
}
.birthday-options select{
  width:100%;
  padding:.75rem;
  border:1px solid #bca88c;
  background:#fff;
}
.birthday-sharing{
  display:grid;
  gap:.65rem;
  border:1px solid #d7c3a7;
  padding:1rem;
  margin:1rem 0;
}
.birthday-sharing legend{
  font-weight:700;
  padding:0 .4rem;
}
.birthday-sharing label{
  display:flex;
  align-items:flex-start;
  gap:.6rem;
  line-height:1.4;
}
.birthday-sharing input{
  margin-top:.22rem;
  flex:0 0 auto;
}
.birthday-preview-card{
  margin-top:1rem;
  padding:1rem;
  border-left:4px solid #a91c22;
  background:#fffaf3;
}
.birthday-preview-card h4{
  font-family:Rye,serif;
  font-size:1.3rem;
  margin:.25rem 0 .45rem;
}
.birthday-boots-public{
  overflow:hidden;
}
.birthday-public-grid{
  width:min(1050px,94vw);
  margin:2rem auto 0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.birthday-public-grid article{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:1rem;
  align-items:center;
  padding:1.2rem;
  border:1px solid #4e292a;
  background:#120a09;
}
.birthday-public-grid h3{
  margin:.1rem 0 .35rem;
}
.birthday-public-grid p{
  margin:0;
  color:#cdbcae;
}
.birthday-month-badge,
.birthday-date-badge,
.birthday-private-badge{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #9d383b;
  background:#7e171c;
  color:#fff;
  font-weight:700;
}
.birthday-date-badge{
  font-size:1.4rem;
}
.birthday-private-badge{
  background:#1c1110;
}

@media(max-width:700px){
  .birthday-options,
  .birthday-public-grid{
    grid-template-columns:1fr;
  }
}
