:root{
  --bone:#F4EEE4; --paper:#FBF7F0; --ink:#2A2520; --ink-soft:#6A6056;
  --line:#DED4C4; --clay:#A86B4C; --clay-deep:#8C5638; --max:1280px;
  --serif:"Cormorant Garamond",Georgia,serif; --sans:"Hanken Grotesk",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bone);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;letter-spacing:-.01em;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px;}
.eyebrow{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--clay);}
.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:14px;}
.sec-head .num{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--clay);}
.pad{padding:110px 0;}

/* buttons */
.btn{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:13px 24px;border:1px solid currentColor;border-radius:2px;cursor:pointer;background:none;color:inherit;display:inline-block;transition:background .3s,color .3s,border-color .3s;}
.btn.solid{background:var(--clay);border-color:var(--clay);color:#fff;}
.btn.solid:hover{background:var(--clay-deep);border-color:var(--clay-deep);}
.btn.ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}

/* nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:22px 40px;transition:background .4s,padding .4s,box-shadow .4s,color .4s;color:var(--paper);text-shadow:0 1px 16px rgba(20,15,10,.4);}
header.nav.scrolled{background:rgba(244,238,228,.92);backdrop-filter:blur(10px);color:var(--ink);padding:14px 40px;box-shadow:0 1px 0 var(--line);text-shadow:none;}
header.nav .btn{border-color:currentColor;}
.brand{display:flex;align-items:center;gap:13px;}
.brand .logo{height:46px;width:auto;display:block;transition:height .4s;}
.brand .logo.li{display:none;}
header.nav.scrolled .brand .logo{height:40px;}
header.nav.scrolled .brand .logo.lw{display:none;}
header.nav.scrolled .brand .logo.li{display:block;}
.brand small{font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;opacity:.8;border-left:1px solid currentColor;padding-left:13px;line-height:1.3;max-width:11ch;}
nav.links{display:flex;align-items:center;gap:34px;}
nav.links a{font-size:13px;letter-spacing:.06em;font-weight:500;position:relative;padding:4px 0;}
nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s;}
nav.links a:hover::after{width:100%;}
.menu-toggle{display:none;background:none;border:none;color:inherit;font-size:24px;cursor:pointer;}

/* hero */
.chero{position:relative;min-height:78vh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:140px;background:#cdbfa9 center/cover no-repeat;}
.chero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(95deg,rgba(26,21,16,.66) 0%,rgba(26,21,16,.32) 42%,rgba(26,21,16,0) 70%),linear-gradient(180deg,rgba(26,21,16,.4) 0%,rgba(26,21,16,0) 26%,rgba(26,21,16,.12) 56%,rgba(26,21,16,.74) 100%);}
.chero .hero-content{position:relative;z-index:2;color:var(--paper);padding-bottom:70px;text-shadow:0 1px 30px rgba(18,13,9,.45);}
.chero .eyebrow{color:#EAD9C7;}
.chero h1{font-size:clamp(38px,5vw,76px);font-weight:500;margin:16px 0 0;max-width:16ch;}
.chero h1 em{font-style:italic;font-weight:400;}
.chero p.lede{max-width:54ch;font-size:18px;line-height:1.6;color:#F3E9DC;margin-top:22px;}
.chero .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;}

/* award strip */
.award{background:var(--ink);color:#EADFCF;padding:20px 0;text-align:center;font-family:var(--serif);font-style:italic;font-size:21px;}
.award b{color:var(--clay);font-style:normal;font-weight:500;}

/* intro */
.intro{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center;}
.intro h2{font-size:clamp(32px,4.2vw,52px);margin:14px 0 24px;max-width:16ch;}
.intro h2 em{font-style:italic;color:var(--clay);}
.intro p{color:var(--ink-soft);margin-bottom:18px;max-width:50ch;}
.intro-img{aspect-ratio:4/5;overflow:hidden;background:#E7DECF;}
.intro-img img{width:100%;height:100%;object-fit:cover;}

/* services grid */
.services{background:var(--paper);}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:46px;}
.cell{background:var(--paper);padding:34px 28px;transition:background .3s;}
.cell:hover{background:#fff;}
.cell .idx{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--clay);}
.cell h3{font-size:25px;font-weight:500;margin:10px 0 10px;}
.cell p{color:var(--ink-soft);font-size:15px;line-height:1.55;}

/* gallery */
.gal-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:16px;margin-top:46px;}
.gal-grid .tile{overflow:hidden;background:#E7DECF;}
.gal-grid .tile img{width:100%;height:100%;object-fit:cover;}
.cg1{grid-column:span 5;grid-row:span 3;}
.cg2{grid-column:span 4;grid-row:span 2;}
.cg3{grid-column:span 3;grid-row:span 3;}
.cg4{grid-column:span 5;grid-row:span 2;}
.cg2b{grid-column:span 4;grid-row:span 2;}

/* venues */
.venues{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.venues .wrap{text-align:center;}
.venues .eyebrow{display:block;margin-bottom:22px;}
.venue-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 0;}
.venue-row span{font-family:var(--serif);font-size:clamp(20px,2.4vw,30px);color:var(--ink);padding:4px 30px;position:relative;line-height:1.2;}
.venue-row span:not(:last-child)::after{content:"\273F";font-family:var(--sans);font-size:11px;color:var(--clay);position:absolute;right:-5px;top:50%;transform:translateY(-50%);}
.venues p.note{margin-top:24px;color:var(--ink-soft);font-size:15px;max-width:60ch;margin-left:auto;margin-right:auto;}

/* reviews */
.revs{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:46px;}
.rev{background:var(--paper);border:1px solid var(--line);padding:36px;display:flex;flex-direction:column;}
.rev .stars2{color:var(--clay);letter-spacing:2px;margin-bottom:18px;font-size:15px;}
.rev blockquote{font-family:var(--serif);font-size:22px;font-style:italic;line-height:1.35;color:var(--ink);}
.rev cite{margin-top:20px;font-style:normal;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);}
.rev cite b{color:var(--ink);font-weight:600;}

/* faq */
.faq-grid{max-width:880px;margin:44px auto 0;}
details.faq{border-top:1px solid var(--line);}
details.faq:last-child{border-bottom:1px solid var(--line);}
details.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 4px;font-family:var(--serif);font-size:clamp(19px,2.2vw,26px);color:var(--ink);}
details.faq summary::-webkit-details-marker{display:none;}
.pl{flex-shrink:0;width:24px;height:24px;position:relative;}
.pl::before,.pl::after{content:"";position:absolute;background:var(--clay);left:50%;top:50%;}
.pl::before{width:14px;height:1.5px;transform:translate(-50%,-50%);}
.pl::after{width:1.5px;height:14px;transform:translate(-50%,-50%);transition:opacity .3s;}
details.faq[open] .pl::after{opacity:0;}
details.faq .ans{padding:0 4px 26px;color:var(--ink-soft);max-width:66ch;font-size:16px;line-height:1.65;}
details.faq .ans strong{color:var(--ink);}

/* cta */
.cta{background:var(--clay);color:#fff;text-align:center;}
.cta .eyebrow{color:#F4DDCB;}
.cta h2{font-size:clamp(36px,5vw,68px);margin:14px 0 20px;color:#fff;}
.cta h2 em{font-style:italic;}
.cta p{color:#F6E4D6;max-width:48ch;margin:0 auto 30px;}
.cta .hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta .btn.solid{background:#fff;border-color:#fff;color:var(--clay-deep);}
.cta .btn.solid:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.cta .contact-row{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;margin-top:34px;font-size:16px;}
.cta .contact-row a{display:flex;align-items:center;gap:10px;}
.cta .contact-row span{opacity:.75;font-size:11px;letter-spacing:.16em;text-transform:uppercase;}

/* footer */
footer{background:var(--ink);color:#C9BFB2;padding:74px 0 32px;}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.14);}
.foot-brand{font-family:var(--serif);font-size:30px;color:var(--paper);}
.foot-brand img{height:80px;width:auto;display:block;}
.foot-brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#9C9286;margin-top:10px;}
footer h4{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#9C9286;margin-bottom:18px;font-weight:600;}
footer ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
footer ul a{font-size:14.5px;color:#C9BFB2;transition:color .25s;}
footer ul a:hover{color:var(--paper);}
.foot-bot{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:12.5px;color:#8B8175;flex-wrap:wrap;gap:14px;}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;}}

/* drawer */
.drawer{position:fixed;inset:0;z-index:80;background:var(--bone);transform:translateX(100%);transition:transform .45s cubic-bezier(.4,0,.1,1);display:flex;flex-direction:column;padding:30px 28px;}
.drawer.open{transform:none;}
.drawer .x{align-self:flex-end;background:none;border:none;font-size:30px;cursor:pointer;color:var(--ink);}
.drawer a{font-family:var(--serif);font-size:34px;padding:13px 0;border-bottom:1px solid var(--line);}
.drawer .btn{margin-top:24px;text-align:center;}

/* responsive */
@media(max-width:980px){
  .intro{grid-template-columns:1fr;gap:44px;}
  .svc-grid{grid-template-columns:1fr 1fr;}
  .revs{grid-template-columns:1fr;}
  .gal-grid{grid-auto-rows:120px;}
  .cg1,.cg3{grid-column:span 12;grid-row:span 3;}
  .cg2,.cg4,.cg2b{grid-column:span 6;grid-row:span 2;}
  .foot-top{grid-template-columns:1fr 1fr;}
}
@media(max-width:680px){
  .wrap{padding:0 22px;}
  header.nav{padding:16px 22px;}
  header.nav.scrolled{padding:12px 22px;}
  nav.links{display:none;}
  .menu-toggle{display:block;}
  .pad{padding:72px 0;}
  .svc-grid{grid-template-columns:1fr;}
  .contact-row{gap:18px;}
}
