:root{
  --ink:#090807;
  --ink-soft:#12100e;
  --bronze:#b98b5f;
  --champagne:#d6b38e;
  --cream:#eadfce;
  --muted:#9f958a;
  --line:rgba(214,179,142,.24);
  --card:rgba(255,255,255,.025);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 20% 0%, rgba(120,78,42,.16), transparent 34rem),
    linear-gradient(180deg,#080706,#0b0908 55%,#070606);
  color:var(--cream);
  font-family:"Inter",sans-serif;
  font-weight:300;
  line-height:1.6;
}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
img{max-width:100%;display:block}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}

.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 5vw;
  background:linear-gradient(180deg,rgba(6,5,4,.94),rgba(6,5,4,.55),transparent);
  backdrop-filter:blur(8px);
}
.brand{width:82px;height:64px;overflow:hidden;display:flex;align-items:center}
.brand img{width:130px;max-width:none;transform:translateX(-22px);filter:drop-shadow(0 4px 20px rgba(0,0,0,.55))}
.nav{display:flex;align-items:center;gap:28px;font-size:.77rem;letter-spacing:.15em;text-transform:uppercase}
.nav a{opacity:.78;transition:.2s}
.nav a:hover{opacity:1;color:var(--champagne)}
.nav .nav-cta{border:1px solid var(--line);padding:10px 18px;border-radius:999px;opacity:1}
.menu-toggle{display:none;background:none;border:0;width:40px;height:40px}
.menu-toggle span{display:block;width:26px;height:1px;background:var(--cream);margin:7px auto}

.hero{
  min-height:100svh;position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.15fr .85fr;align-items:center;
  padding:140px 8vw 90px;
  border-bottom:1px solid var(--line);
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 70% 28%,rgba(184,133,89,.16),transparent 30%),
    radial-gradient(circle at 10% 70%,rgba(103,57,32,.12),transparent 30%);
}
.hero-silk{
  position:absolute;border-radius:50%;filter:blur(16px);opacity:.43;
  background:linear-gradient(135deg,transparent 18%,rgba(210,177,146,.09) 32%,rgba(255,255,255,.15) 35%,rgba(20,15,11,.1) 41%,transparent 54%);
  transform:rotate(-18deg);
}
.silk-one{width:900px;height:480px;right:-280px;top:70px}
.silk-two{width:780px;height:360px;left:-280px;bottom:-40px;transform:rotate(17deg)}
.hero-content{position:relative;z-index:2;max-width:760px}
.eyebrow,.section-kicker{
  color:var(--bronze);font-size:.72rem;letter-spacing:.27em;text-transform:uppercase;font-weight:500;
}
h1,h2,h3{
  font-family:"Cormorant Garamond",serif;font-weight:500;line-height:.95;margin:0;
}
h1{font-size:clamp(4.2rem,8vw,8.8rem);letter-spacing:-.045em}
h1 em,h2 em{font-weight:400;color:var(--champagne)}
.hero-copy{max-width:600px;font-size:1.05rem;color:#c0b6aa;margin:34px 0 0}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}
.button{
  display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;
  border-radius:999px;text-transform:uppercase;font-size:.72rem;font-weight:500;letter-spacing:.16em;
  transition:.25s;border:1px solid transparent;cursor:pointer;
}
.button.primary{background:linear-gradient(135deg,#d0aa81,#9e6d45);color:#0b0806}
.button.primary:hover{transform:translateY(-2px);box-shadow:0 12px 35px rgba(157,104,63,.22)}
.button.ghost{border-color:var(--line);background:rgba(255,255,255,.02)}
.button.ghost:hover{border-color:rgba(214,179,142,.55)}
.button.full{width:100%}
.hero-mark{
  position:relative;z-index:2;justify-self:end;width:min(42vw,600px);
  opacity:.88;filter:drop-shadow(0 24px 60px rgba(0,0,0,.55));
}
.hero-mark img{width:100%}

.section{padding:110px 8vw}
.band{padding:90px 8vw;border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}
.intro-grid h2,.section-heading h2,.about h2,.booking h2,.final-cta h2{font-size:clamp(3.2rem,5vw,6rem);letter-spacing:-.035em}
.intro-grid p{max-width:620px;color:#bcb1a5;margin:0 0 8px}
.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:46px}
.section-heading>div{max-width:780px}
.section-note{max-width:390px;color:#8f857b;font-size:.9rem}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-card{padding:38px 34px 42px;min-height:360px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.018),transparent)}
.service-card:last-child{border-right:0}
.service-card>span{font-family:"Cormorant Garamond";font-size:1rem;color:var(--bronze)}
.service-card h3{font-size:2.35rem;margin:62px 0 20px}
.service-card p{color:#a89d92;max-width:360px}
.text-link{margin-top:22px;padding:0;border:0;background:none;color:var(--champagne);cursor:pointer;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}

.gallery{background:linear-gradient(180deg,#0b0908,#0f0c0a)}
.gallery-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:320px 320px;gap:18px}
.photo-slot{margin:0;position:relative;overflow:hidden;border:1px solid var(--line);background:#0a0807}
.photo-slot.tall{grid-row:span 2}
.photo-slot.wide{grid-column:2}
.placeholder-art{
  height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:26px;
  background:
    linear-gradient(145deg,transparent 0 30%,rgba(185,139,95,.08) 31% 45%,transparent 46%),
    radial-gradient(circle at 75% 25%,rgba(214,179,142,.1),transparent 35%),
    #090807;
}
.placeholder-art::after{
  content:"";position:absolute;inset:12%;border-radius:50%;
  border:1px solid rgba(214,179,142,.10);filter:blur(.1px);
}
.placeholder-art span{color:var(--bronze);font-family:"Cormorant Garamond";font-size:1.1rem}
.placeholder-art p{align-self:flex-end;max-width:210px;text-align:right;color:#91867a;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.photo-slot figcaption{
  position:absolute;left:22px;bottom:18px;color:#d8c7b3;font-family:"Cormorant Garamond";font-size:1.4rem;
}

.about-panel{
  border:1px solid var(--line);display:grid;grid-template-columns:1.3fr .7fr;
  background:
    radial-gradient(circle at 90% 15%,rgba(185,139,95,.12),transparent 28%),
    rgba(255,255,255,.018);
}
.about-copy{padding:70px}
.about-copy p:not(.section-kicker){max-width:670px;color:#aaa095}
.about-quote{border-left:1px solid var(--line);padding:70px;display:flex;flex-direction:column;justify-content:center}
.about-quote span{font-family:"Cormorant Garamond";font-size:8rem;color:var(--bronze);line-height:.5}
.about-quote p{font-family:"Cormorant Garamond";font-size:2.5rem;line-height:1.05;color:var(--champagne)}

.booking{background:#090807}
.booking-shell{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;
  border-top:1px solid var(--line);padding-top:70px;
}
.booking-copy{position:sticky;top:130px;align-self:start}
.booking-copy>p:not(.section-kicker){color:#a79b8f;max-width:480px}
.booking-note{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:4px}
.booking-note strong{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--champagne)}
.booking-note span{font-size:.87rem;color:#8f8479}
.booking-form{display:grid;gap:18px}
.form-grid{display:grid;gap:18px}
.form-grid.two{grid-template-columns:1fr 1fr}
label{display:grid;gap:8px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:#bfb3a6}
input,select,textarea{
  width:100%;border:1px solid var(--line);background:#0f0c0a;color:var(--cream);
  border-radius:2px;padding:15px 16px;outline:none;text-transform:none;letter-spacing:normal;
}
input:focus,select:focus,textarea:focus{border-color:rgba(214,179,142,.62);box-shadow:0 0 0 3px rgba(214,179,142,.06)}
textarea{resize:vertical}
.form-status{min-height:24px;margin:0;color:var(--champagne);font-size:.87rem}

.faq-list{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line);padding:24px 0}
summary{list-style:none;cursor:pointer;font-family:"Cormorant Garamond";font-size:1.8rem;display:flex;justify-content:space-between}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--bronze)}
details[open] summary::after{content:"–"}
details p{color:#a89c91;max-width:760px}

.final-cta{text-align:center;border-top:1px solid var(--line)}
.final-cta h2{max-width:850px;margin:0 auto 34px}

.footer{
  border-top:1px solid var(--line);padding:42px 5vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;
  color:#80766d;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
}
.footer-brand{width:92px;height:70px;overflow:hidden}
.footer-brand img{width:140px;max-width:none;transform:translateX(-23px)}
.footer>div:nth-child(2){text-align:center}
.footer-links{display:flex;justify-content:flex-end;gap:18px}
.footer a:hover{color:var(--champagne)}

@media (max-width:900px){
  .site-header{padding:12px 20px}
  .menu-toggle{display:block;z-index:55}
  .nav{
    position:fixed;inset:0;background:#080706;display:flex;flex-direction:column;justify-content:center;gap:28px;
    transform:translateY(-100%);transition:.35s;font-size:1rem;
  }
  body.menu-open .nav{transform:translateY(0)}
  .hero{grid-template-columns:1fr;padding:130px 24px 70px}
  .hero-mark{display:none}
  .section,.band{padding:80px 24px}
  .intro-grid,.booking-shell,.about-panel{grid-template-columns:1fr}
  .section-heading{display:block}
  .section-note{margin-top:18px}
  .service-grid{grid-template-columns:1fr}
  .service-card{border-right:0;border-bottom:1px solid var(--line);min-height:auto}
  .service-card:last-child{border-bottom:0}
  .service-card h3{margin-top:30px}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:none}
  .photo-slot,.photo-slot.tall,.photo-slot.wide{grid-column:auto;grid-row:auto;min-height:340px}
  .about-quote{border-left:0;border-top:1px solid var(--line)}
  .about-copy,.about-quote{padding:42px 30px}
  .booking-copy{position:static}
  .form-grid.two{grid-template-columns:1fr}
  .footer{grid-template-columns:1fr;gap:22px;text-align:center}
  .footer-brand{margin:auto}
  .footer>div:nth-child(2){text-align:center}
  .footer-links{justify-content:center}
}
