:root{
  --black:#11100f;
  --black-soft:#191715;
  --cream:#f6efe4;
  --paper:#fffaf3;
  --gold:#c99a4a;
  --gold-pale:#e5c27f;
  --burgundy:#9f3035;
  --burgundy-dark:#6e1d25;
  --muted:#736a60;
  --line:rgba(17,16,15,.14);
  --shadow:0 25px 70px rgba(23,15,9,.2)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--black);font-family:"DM Sans",sans-serif;line-height:1.6}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
button,input,textarea,select{font:inherit}
.header{
  position:fixed;inset:0 0 auto;z-index:50;height:82px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(22px,6vw,92px);color:#fff;
  background:linear-gradient(to bottom,rgba(17,16,15,.96),rgba(17,16,15,.72));
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)
}
.logo{display:flex;align-items:center;gap:12px}
.logo-circle{
  width:44px;height:44px;border:1px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;color:var(--gold-pale);
  font:italic 700 25px/1 "Playfair Display",serif
}
.logo-copy strong{display:block;font:700 18px/1.1 "Playfair Display",serif}
.logo-copy small{display:block;margin-top:4px;color:#bcb3a8;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:700}
.nav a{transition:.2s}
.nav a:hover{color:var(--gold-pale)}
.nav-book{padding:10px 18px;border:1px solid var(--gold);border-radius:999px}
.menu-button{display:none;border:0;background:transparent;padding:8px;z-index:3}
.menu-button span{display:block;width:24px;height:2px;margin:5px;background:#fff}

.hero{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;color:#fff}
.hero-photo{
  position:absolute;inset:0;
  background-image:url("assets/lisa-hero.webp");
  background-size:cover;background-position:47% 28%
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(17,16,15,.98) 0%,rgba(17,16,15,.9) 34%,rgba(17,16,15,.4) 64%,rgba(17,16,15,.1) 100%),
    linear-gradient(0deg,rgba(17,16,15,.56),transparent 40%)
}
.hero-content{position:relative;z-index:2;width:min(760px,62vw);padding:140px 0 100px clamp(24px,8vw,125px)}
.eyebrow{margin:0 0 16px;color:var(--burgundy);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.eyebrow.light{color:var(--gold-pale)}
h1,h2,h3{margin-top:0}
h1{margin-bottom:25px;font:700 clamp(58px,7vw,108px)/.94 "Playfair Display",serif;letter-spacing:-.045em}
h1 em{color:var(--gold-pale)}
.hero-description{max-width:650px;margin:0 0 34px;color:#ded5ca;font-size:clamp(17px,1.45vw,21px)}
.hero-buttons{display:flex;gap:13px;flex-wrap:wrap}
.button{
  min-height:51px;padding:12px 24px;border:1px solid transparent;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:.2s
}
.button:hover{transform:translateY(-2px)}
.primary{color:#fff;background:var(--burgundy);box-shadow:0 12px 32px rgba(159,48,53,.28)}
.primary:hover{background:#b33a40}
.outline{color:#fff;border-color:rgba(255,255,255,.45)}
.outline:hover{border-color:var(--gold)}
.hero-proof{margin:52px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);color:#aaa198;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.scroll-cue{position:absolute;z-index:2;right:40px;bottom:30px;display:flex;align-items:center;gap:12px;color:#d3c8bb;font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.scroll-cue b{font-size:18px;color:var(--gold)}
.intro-strip{
  display:flex;justify-content:center;gap:clamp(24px,7vw,100px);flex-wrap:wrap;
  padding:23px 30px;color:#d7cec4;background:#201e1b;
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase
}
.intro-strip span::before{content:"•";margin-right:12px;color:var(--gold)}
.section{padding:clamp(78px,10vw,145px) clamp(24px,7vw,110px)}
.section-title{max-width:780px;margin-bottom:55px}
.section-title.centre{margin-left:auto;margin-right:auto;text-align:center}
.section-title h2,.shows h2,.book h2{
  margin-bottom:18px;font:700 clamp(39px,4.8vw,72px)/1.04 "Playfair Display",serif;letter-spacing:-.04em
}
.about-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(45px,8vw,120px);align-items:start}
.about-copy{max-width:760px}
.about-copy p{color:var(--muted)}
.about-copy .lead{color:var(--black);font:700 clamp(25px,2.6vw,38px)/1.35 "Playfair Display",serif}
.text-link{display:inline-flex;gap:8px;margin-top:17px;color:var(--burgundy);font-weight:700}
.text-link span{transition:.2s}.text-link:hover span{transform:translateX(5px)}
.about-card{padding:clamp(32px,4vw,58px);color:#fff;background:var(--black-soft);box-shadow:var(--shadow)}
.quote-mark{display:block;height:50px;color:var(--gold);font:700 80px/1 "Playfair Display",serif}
.about-card blockquote{margin:0;font:italic 700 clamp(25px,2.5vw,36px)/1.34 "Playfair Display",serif}
.about-card ul{list-style:none;margin:34px 0 0;padding:27px 0 0;border-top:1px solid rgba(255,255,255,.13)}
.about-card li{position:relative;margin:11px 0;padding-left:22px;color:#cfc5ba;font-size:14px}
.about-card li::before{content:"✓";position:absolute;left:0;color:var(--gold)}
.occasions{color:#fff;background:var(--black)}
.occasion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.occasion-grid article{
  min-height:330px;padding:31px;position:relative;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.025);transition:.25s
}
.occasion-grid article:hover{transform:translateY(-7px);border-color:rgba(201,154,74,.58)}
.occasion-grid article:first-child{background:linear-gradient(145deg,var(--burgundy),var(--burgundy-dark));border-color:transparent}
.occasion-grid span{color:rgba(255,255,255,.36);font-size:10px;letter-spacing:.18em}
.occasion-grid h3{margin:95px 0 18px;font:700 27px/1.15 "Playfair Display",serif}
.occasion-grid p{color:#bcb3aa;font-size:14px}
.occasion-grid article:first-child p{color:#f1dfe0}
.shows{color:#fff;background:#181614}
.shows-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:55px}
.shows-heading p:last-child{max-width:480px;color:#aaa097;font-size:14px}
.show-list{border-top:1px solid rgba(255,255,255,.13)}
.show-row{
  display:grid;grid-template-columns:110px 1fr 130px;align-items:center;gap:25px;
  padding:25px 12px;border-bottom:1px solid rgba(255,255,255,.12);transition:.2s
}
.show-row:hover{background:rgba(255,255,255,.035)}
.date{display:flex;align-items:baseline;gap:10px}
.date b{font:700 38px/1 "Playfair Display",serif;color:var(--gold-pale)}
.date span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#aaa198}
.show-main h3{margin:0 0 4px;font:700 21px "Playfair Display",serif}
.show-main p{margin:0;color:#aaa198;font-size:13px}
.time{text-align:right;color:#d7cec4;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.private{opacity:.78}
.schedule-note{margin:25px 0 0;color:#817970;font-size:11px;text-align:right}
.gallery{background:#eee5d8}
.gallery-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:420px 420px;gap:18px}
.gallery-grid figure{margin:0;overflow:hidden;background:#111}
.gallery-grid img{height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-grid figure:hover img{transform:scale(1.025)}
.gallery-one{grid-row:1/3}
.gallery-one img{object-position:50% 36%}
.gallery-two img{object-position:50% 34%}
.gallery-three img{object-position:50% 34%}
.gallery-message{
  grid-column:1/3;margin-top:14px;padding:50px;color:#fff;background:linear-gradient(110deg,var(--burgundy-dark),var(--burgundy))
}
.gallery-message span{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-pale)}
.gallery-message h3{max-width:850px;margin:13px 0 0;font:700 clamp(34px,4vw,62px)/1.08 "Playfair Display",serif}
.reviews{color:#fff;background:var(--black)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1100px;margin:0 auto}
.trust-grid article{padding:36px 30px;border:1px solid rgba(255,255,255,.14);text-align:center;background:rgba(255,255,255,.025)}
.trust-grid strong{display:block;color:var(--gold-pale);font:700 25px/1.2 "Playfair Display",serif}
.trust-grid span{display:block;margin-top:10px;color:#bcb3aa;font-size:13px}
.trust-note{margin:30px 0 0;color:#817970;font-size:11px;text-align:center;letter-spacing:.08em;text-transform:uppercase}
.book{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(50px,9vw,125px);background:var(--cream)}
.book-copy>p:not(.eyebrow){max-width:530px;color:var(--muted)}
.contact-details{margin-top:38px;border-top:1px solid var(--line)}
.contact-details>*{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
.contact-details span,.contact-details strong{display:block}
.contact-details span{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.contact-details strong{margin-top:2px}
.booking-form{padding:clamp(28px,4vw,50px);background:#fff;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;margin-bottom:17px;font-size:12px;font-weight:700}
input,textarea,select{
  width:100%;margin-top:7px;padding:14px 15px;border:1px solid #ddd3c5;background:#fbf8f2;color:var(--black);outline:none
}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,154,74,.13)}
textarea{resize:vertical}
.full{width:100%;border:0}
.form-note{margin:13px 0 0;color:#8e857a;font-size:10px;text-align:center}
footer{
  min-height:120px;padding:30px clamp(24px,7vw,110px);display:flex;align-items:center;justify-content:space-between;gap:25px;
  color:#fff;background:#0d0c0b
}
.footer-centre{text-align:center}
.footer-centre p{margin:5px 0;color:#817a72;font-size:10px}
.social-links{display:flex;justify-content:center;gap:18px;margin:8px 0}
.social-links a{color:#c9bba9;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.social-links a:hover{color:var(--gold-pale)}
.footer-book{color:var(--gold-pale);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}

@media(max-width:1040px){
  .nav{gap:17px}
  .hero-content{width:72vw}
  .occasion-grid{grid-template-columns:repeat(2,1fr)}
  .book{grid-template-columns:1fr}
}
@media(max-width:780px){
  .header{height:70px}
  .menu-button{display:block}
  .nav{
    position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;gap:26px;
    background:#11100f;font-size:22px;transform:translateX(100%);transition:.25s
  }
  .menu-open .nav{transform:translateX(0)}
  .hero-photo{background-position:56% 30%}
  .hero-overlay{background:linear-gradient(90deg,rgba(17,16,15,.94),rgba(17,16,15,.68))}
  .hero-content{width:100%;padding:135px 24px 100px}
  .scroll-cue{display:none}
  .about-layout{grid-template-columns:1fr}
  .shows-heading{display:block}
  .show-row{grid-template-columns:80px 1fr}
  .time{grid-column:2;text-align:left}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:520px 360px 360px}
  .gallery-one{grid-row:auto}
  .gallery-message{grid-column:auto}
  .occasion-grid{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr;gap:0}
  footer{flex-direction:column;text-align:center}
}
@media(max-width:480px){
  h1{font-size:51px}
  .hero-buttons .button{width:100%}
  .intro-strip{justify-content:flex-start}
  .section{padding-left:20px;padding-right:20px}
  .show-row{padding-left:0;padding-right:0}
  .date b{font-size:30px}
  .gallery-grid{grid-template-rows:450px 320px 320px}
}
