 :root{
  --bg:#14100c;
  --bg-soft:#1b150f;
  --panel:#1f1812;
  --panel-strong:#271f17;
  --line:#3a2b1d;
  --line-strong:#6c5530;
  --text:#f3e7d1;
  --muted:#ccb896;
  --gold:#b88f43;
  --gold-2:#d6b06b;
  --shadow:0 18px 48px rgba(0,0,0,.28);
  --radius:22px;
  --container:min(1180px, calc(100vw - 36px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  --header-offset:130px;
}
body.nav-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.site-bg{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at top right, rgba(214,176,107,.16), transparent 24%),
    radial-gradient(circle at top left, rgba(214,176,107,.08), transparent 26%),
    linear-gradient(180deg, #1b150f 0%, #14100c 100%);
}
.container{width:var(--container);margin-inline:auto}
.center{text-align:center}
.mt-32{margin-top:32px}

section[id]{scroll-margin-top:calc(var(--header-offset) + 18px)}


.site-header{
  position:sticky;
  top:0;
  z-index:90;
}

.topbar{
  background:#110d09;
  border-bottom:1px solid rgba(214,176,107,.18);
  max-height:56px;
  overflow:hidden;
  opacity:1;
  transition:max-height .28s ease, opacity .24s ease, border-color .24s ease;
}
.topbar__inner{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:.95rem;
  color:var(--muted);
}
.topbar__text,
.topbar__hours{margin:0}
.topbar__phone{font-weight:800;color:#f4d99a}

.navbar-wrap{
  position:relative;
  z-index:1;
  background:rgba(20,16,12,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(214,176,107,.16);
}
.site-header.is-scrolled .navbar-wrap{box-shadow:0 12px 28px rgba(0,0,0,.28)}
.site-header.is-compact .topbar{
  max-height:0;
  opacity:0;
  border-bottom-color:transparent;
}
.site-header.is-compact .topbar__inner{
  min-height:0;
  padding-top:0;
  padding-bottom:0;
}
.navbar{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand img{width:220px;height:auto}
.nav{display:flex;align-items:center;gap:18px}
.nav__list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:6px}
.nav__link{
  display:block;
  padding:10px 14px;
  border-radius:999px;
  color:var(--muted);
  font-weight:700;
  transition:.2s ease;
}
.nav__link:hover,
.nav__link.is-active{
  color:#f7e3b3;
  background:rgba(214,176,107,.12);
}
.nav__cta{margin-left:10px}

.nav-toggle{
  display:none;
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--line-strong);
  background:#1d1711;
  cursor:pointer;
  place-items:center;
}
.nav-toggle span{
  display:block;
  width:20px;
  height:2px;
  margin:3px 0;
  background:#f1d089;
  border-radius:999px;
  transition:.25s ease;
}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:50px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:800;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover{transform:translateY(-1px)}
.button--gold{
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  color:#1f170d;
  box-shadow:0 10px 24px rgba(184,143,67,.18);
}
.button--ghost{
  background:rgba(214,176,107,.08);
  color:var(--text);
  border-color:var(--line-strong);
}
.button--full{width:100%}
.inline-link{color:#d6b06b;font-weight:800}
.inline-link:hover{text-decoration:underline}

.hero{
  position:relative;
  overflow:hidden;
  min-height:620px;
}
.hero--page{min-height:420px}
.hero__media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}
.hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(27,20,13,.72) 0%, rgba(27,20,13,.42) 52%, rgba(27,20,13,.18) 100%);
}
.hero__content{
  position:relative;
  z-index:2;
  padding:110px 0 80px;
}
.hero__content--page{
  padding-top:120px;
  padding-bottom:56px;
  max-width:760px;
}
.hero-home-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(300px, .85fr);
  gap:28px;
  align-items:end;
}
.hero__eyebrow{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.26);
  color:#fff6e6;
  font-weight:800;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero h1,
.section-heading h2,
.split__content h2,
.cta-box h2,
.contact-card h2,
.booking-panel h2,
.notice-card h2,
.highlight-panel h3,
.service-card h3,
.service-detail h2,
.policy-note__content h2,
.faq-item summary,
.quick-book-card h2,
.site-footer h3{
  font-family:"Cormorant Garamond", Georgia, serif;
}
.hero h1{
  margin:18px 0 14px;
  font-size:clamp(3rem, 5.6vw, 5.4rem);
  line-height:.95;
  color:#f6d99d;
}
.hero__lead{
  margin:0;
  max-width:60ch;
  color:#f6efe6;
  font-size:1.08rem;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}
.quick-book-card{
  padding:28px;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(39,31,23,.96), rgba(28,21,15,.96));
  box-shadow:var(--shadow);
  border:1px solid var(--line);
}
.quick-book-card h2{
  margin:0 0 8px;
  font-size:2.1rem;
}
.quick-book-card p{margin:0;color:#e3ceb0}
.quick-book-card__rows{
  display:grid;
  gap:16px;
  margin-top:18px;
}
.quick-book-card__rows strong{
  display:block;
  margin-bottom:4px;
  color:#f1d089;
}
.quick-book-card__rows a,
.quick-book-card__rows span{
  display:block;
  color:#e9dbc4;
}
.quick-book-card__actions{display:grid;gap:12px;margin-top:22px}

.section{padding:84px 0}
.section--plain{background:transparent}
.section--soft{background:rgba(255,255,255,.02);border-top:1px solid rgba(214,176,107,.14);border-bottom:1px solid rgba(214,176,107,.14)}
.section--cta{padding-top:72px}
.section-intro,
.section-heading{
  margin-bottom:30px;
}
.section-heading.center,
.section-intro.center{margin-inline:auto;max-width:760px}
.section-kicker,
.policy-note__eyebrow{
  display:inline-block;
  margin-bottom:10px;
  color:#d6b06b;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.section-heading h2,
.split__content h2,
.cta-box h2,
.booking-panel h2,
.policy-note__content h2{
  margin:0 0 12px;
  font-size:clamp(2.2rem, 4vw, 3.5rem);
  line-height:1;
}
.section-heading p,
.section-intro p,
.split__content p,
.cta-box p,
.service-card p,
.contact-card p,
.highlight-panel p,
.booking-panel p,
.policy-note__content p,
.faq-item p,
.service-detail p{
  margin:0;
  color:var(--muted);
}

.split{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(280px, .92fr);
  gap:28px;
  align-items:start;
}
.bullet-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}
.bullet-list span,
.rate-chip,
.filter-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:#241c15;
  border:1px solid var(--line-strong);
  color:#efd5a4;
  font-weight:700;
}
.card-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.card-grid--services .service-card{height:100%}
.service-card,
.highlight-panel,
.contact-card,
.booking-panel,
.notice-card,
.policy-note,
.cta-box,
.faq-item,
.service-detail,
.gallery-card__button{
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.service-card{
  overflow:hidden;
  border-radius:var(--radius);
}
.service-card__image img{
  width:100%;
  height:240px;
  object-fit:cover;
}
.service-card__content{padding:22px}
.service-card h3,
.highlight-panel h3,
.contact-card h2,
.booking-panel h2,
.faq-item summary{
  margin:0 0 10px;
  font-size:1.8rem;
  line-height:1.05;
}
.rate-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.rate-grid.compact{margin-bottom:18px}
.rate-chip{background:#2a2017}

.highlight-panel{
  padding:28px;
  border-radius:26px;
}
.highlight-panel p + p{margin-top:14px}
.highlight-panel strong{color:#f1d089}

.gallery-preview{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.gallery-preview--simple{grid-template-columns:repeat(4, minmax(0, 1fr))}
.gallery-preview__item,
.gallery-card__button{
  overflow:hidden;
  border-radius:22px;
}
.gallery-preview__item img{
  width:100%;
  height:320px;
  object-fit:cover;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.gallery-card__button{
  position:relative;
  width:100%;
  padding:0;
  cursor:pointer;
}
.gallery-card__button img{
  width:100%;
  height:420px;
  object-fit:cover;
  transition:transform .35s ease;
}
.gallery-card__button:hover img{transform:scale(1.03)}
.gallery-card__overlay{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(12,9,7,.72);
  color:#f7e7c4;
  font-weight:700;
}
.gallery-card.is-hidden{display:none}

.services-list{display:grid;gap:22px}
.service-detail{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
  gap:24px;
  padding:22px;
  border-radius:28px;
}
.service-detail__image img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  border-radius:20px;
}
.service-detail__count{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:#2a2017;
  border:1px solid var(--line-strong);
  color:#f1d089;
  font-weight:800;
}
.service-detail h2{margin:14px 0 8px;font-size:2.2rem;color:#f1d089}
.service-detail__summary{font-weight:700;color:#f4dcc0 !important}
.service-detail__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.service-detail__actions .button{
  min-width:220px;
  justify-content:center;
}

.contact-layout{display:grid;grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);gap:24px}
.contact-info,.contact-side{display:grid;gap:18px}
.contact-card,
.booking-panel,
.map-card,
.notice-card{padding:24px;border-radius:24px}
.contact-card{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:start;
}
.contact-card img{margin-top:4px}
.map-card{
  overflow:hidden;
  padding:10px;
  background:#1c150f;
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:var(--shadow);
}
.booking-panel__actions,
.cta-box__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}

.policy-note{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:20px;
  align-items:center;
  padding:24px 26px;
  border-radius:26px;
}
.policy-note--compact{padding:20px 22px}
.policy-note__icon-wrap{
  width:90px;
  height:90px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:#241b14;
  border:1px solid var(--line);
}
.policy-note__icon-wrap img{width:58px;height:58px;object-fit:contain}
.policy-note__content h2{font-size:2rem}
.policy-note--compact .policy-note__content h2{font-size:1.6rem}

.policy-strip{
  margin-top:26px;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  background:#2a2017;
  color:#fff4e1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
}
.policy-strip p{margin:0}
.policy-strip strong{color:#fff}

.cta-box{
  border-radius:30px;
  padding:32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.faq-list{display:grid;gap:16px;max-width:900px;margin:0 auto}
.faq-item{
  padding:22px 24px;
  border-radius:22px;
}
.faq-item summary{cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item[open] p{margin-top:12px}

.floating-contact{
  position:fixed;
  right:max(14px, calc(env(safe-area-inset-right) + 14px));
  bottom:max(14px, calc(env(safe-area-inset-bottom) + 14px));
  z-index:80;
  display:flex;
  flex-direction:column-reverse;
  align-items:flex-end;
  gap:10px;
}
.floating-contact__toggle{
  position:relative;
  width:58px;
  height:58px;
  border:none;
  border-radius:50%;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  color:#1f170d;
  font-size:2rem;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(184,143,67,.24);
}
.floating-contact__glow{display:none}
.floating-contact__panel{
  display:grid;
  gap:10px;
  opacity:0;
  transform:translateY(10px) scale(.98);
  transform-origin:bottom right;
  pointer-events:none;
  transition:.2s ease;
}
.floating-contact.is-open .floating-contact__panel{opacity:1;transform:none;pointer-events:auto}
.floating-contact__item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:999px;
  background:#201811;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.floating-contact__item span{font-weight:700}

.lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(24,18,12,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 76px;
}
.lightbox__figure{
  margin:auto;
  width:100%;
  max-width:min(1100px, 100%);
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.lightbox__figure img{
  display:block;
  margin-inline:auto;
  width:auto;
  height:auto;
  max-width:min(92vw, 1100px);
  max-height:78vh;
  object-fit:contain;
  object-position:center;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.lightbox__figure figcaption{margin-top:14px;color:#f7efe0}
.lightbox__close,
.lightbox__nav{
  position:fixed;
  z-index:3;
  width:52px;
  height:52px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.15);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:2rem;
  cursor:pointer;
}
.lightbox__close{top:20px;right:20px}
.lightbox__nav{top:50%;transform:translateY(-50%)}
.lightbox__nav--prev{left:18px}
.lightbox__nav--next{right:18px}
.lightbox[hidden]{display:none !important}

.site-footer{
  padding:58px 0 24px;
  background:#0f0b08;
  color:#f0e2ca;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr 1fr .9fr;
  gap:24px;
}
.site-footer h3{margin:0 0 12px;font-size:1.45rem;color:#fff3da}
.footer-copy{margin:16px 0 0;color:#ccb99a;max-width:38ch}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:#d9c9ae}
.footer-links a:hover{color:#fff}
.footer-bottom{
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.1);
  color:#b7a386;
  font-size:.95rem;
}

[data-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
[data-reveal].is-visible{opacity:1;transform:none}

@media (max-width: 1080px){
  .hero-home-grid,
  .split,
  .contact-layout,
  .service-detail,
  .footer-grid,
  .card-grid{
    grid-template-columns:1fr;
  }
  .gallery-preview--simple,
  .gallery-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .cta-box{flex-direction:column;align-items:flex-start}
}

@media (max-width: 820px){
  .topbar__inner{flex-direction:column;justify-content:center;padding:10px 0;text-align:center}
  .nav-toggle{display:grid}
  .nav{
    position:absolute;
    left:18px;
    right:18px;
    top:100%;
    margin-top:10px;
    padding:18px;
    background:#1c150f;
    border:1px solid var(--line);
    border-radius:22px;
    box-shadow:var(--shadow);
    display:none;
    flex-direction:column;
    align-items:stretch;
  }
  .nav-open .nav{display:flex}
  .nav__list{flex-direction:column;align-items:stretch}
  .nav__link{display:block}
  .nav__cta{margin-left:0}
  .hero{min-height:auto}
  .hero__content{padding:104px 0 68px}
  .hero__content--page{padding-top:108px;padding-bottom:46px}
  .hero h1{font-size:clamp(2.7rem, 10vw, 4rem)}
  .hero__actions,
  .service-detail__actions,
  .booking-panel__actions,
  .cta-box__actions{flex-direction:column;align-items:stretch}
  .hero__actions .button,
  .service-detail__actions .button,
  .booking-panel__actions .button,
  .cta-box__actions .button{width:100%}
  .gallery-preview,
  .gallery-preview--simple,
  .gallery-grid,
  .card-grid{grid-template-columns:1fr !important}
  .policy-note{grid-template-columns:1fr;text-align:center}
  .policy-note__icon-wrap{margin-inline:auto}
}

@media (max-width: 560px){
  .section{padding:70px 0}
  .navbar{min-height:76px}
  .brand img{width:188px}
  .container{width:min(100vw - 24px, 100%)}
  .hero__content{padding:98px 0 56px}
  .hero__lead{font-size:1rem}
  .quick-book-card,
  .contact-card,
  .booking-panel,
  .highlight-panel,
  .policy-note,
  .cta-box,
  .service-card__content,
  .service-detail{padding:18px}
  .service-detail__image img{min-height:280px}
  .contact-card{grid-template-columns:1fr;gap:12px}
  .gallery-card__button img,
  .gallery-preview__item img{height:320px}
  .lightbox{padding:16px 10px 86px}
  .lightbox__nav{top:auto;bottom:16px;transform:none}
  .lightbox__nav--prev{left:calc(50% - 68px)}
  .lightbox__nav--next{right:calc(50% - 68px)}
}


.section-heading h2,
.section-intro h2,
.split__content h2,
.cta-box h2,
.contact-card h2,
.booking-panel h2,
.notice-card h2,
.highlight-panel h3,
.service-card h3,
.service-detail h2,
.policy-note__content h2,
.quick-book-card h2,
.site-footer h3,
.faq-item summary{
  color:#f1d089;
}

.quick-book-card,
.service-card,
.highlight-panel,
.contact-card,
.booking-panel,
.notice-card,
.policy-note,
.cta-box,
.faq-item,
.service-detail,
.gallery-card__button,
.map-card{
  background:linear-gradient(180deg, rgba(39,31,23,.96), rgba(28,21,15,.96));
}

.quick-book-card__rows strong,
.contact-card a,
.highlight-panel a,
.booking-panel a,
.cta-box a:not(.button),
.footer-links a{
  color:#f6d99d;
}

.hero__lead,
.footer-copy{
  color:#e8d6b8;
}

.topbar__inner,
.topbar__hours{
  color:#ccb896;
}

.brand img{filter:drop-shadow(0 0 18px rgba(214,176,107,.12));}
