
:root{--ink:#171717;--paper:#fffdf9;--cream:#f5efe7;--lav:#ddd3eb;--yellow:#f3df9c;--rose:#d9aaaa;--line:rgba(23,23,23,.13);--muted:#6e6963}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Montserrat",sans-serif;background:var(--paper);color:var(--ink)}
a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}.site-header{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:18px 5vw;background:rgba(255,253,249,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}.brand-mark{width:38px;height:38px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:12px}.brand-text{font-family:"Playfair Display",serif;font-size:20px}
nav{display:flex;gap:24px;font-size:13px}.nav-cta,.btn{border-radius:999px;padding:12px 18px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.hero{height:84svh;min-height:640px;position:relative;overflow:hidden;color:#fff}.hero-slider,.hero-slide{position:absolute;inset:0}.hero-slide{opacity:0;transition:.7s}.hero-slide.active{opacity:1}.hero-slide img,.hero-slide video{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.1))}
.hero-content{position:absolute;z-index:3;left:7vw;top:50%;transform:translateY(-50%);max-width:760px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em}.hero h1,.page-hero h1,.section h2,.quote{font-family:"Playfair Display",serif;font-weight:500;letter-spacing:-.025em}.hero h1{font-size:clamp(54px,7vw,98px);line-height:.95;margin:15px 0 20px}.hero p{max-width:600px;line-height:1.7}.hero-actions{display:flex;gap:20px;align-items:center;margin-top:28px}.hero .btn{background:#fff;color:var(--ink)}
.slider-controls{position:absolute;z-index:4;right:5vw;bottom:35px;display:flex;gap:10px}.slider-controls button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(0,0,0,.2);color:#fff}
.section{padding:100px 7vw}.section.alt{background:var(--cream)}.section h2{font-size:clamp(42px,5vw,70px);line-height:1.03;margin:0 0 28px}.lead{font-size:19px;line-height:1.8;max-width:760px;color:#514d48}
.page-hero{padding:110px 7vw 80px;background:var(--cream)}.page-hero h1{font-size:clamp(54px,7vw,90px);line-height:.98;margin:10px 0 22px}.page-hero p{max-width:720px;font-size:19px;line-height:1.7}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.two-col img{width:100%;border-radius:24px;min-height:520px;object-fit:cover}
.feature-grid,.package-grid,.review-grid,.gallery-grid{display:grid;gap:18px}.feature-grid{grid-template-columns:repeat(2,1fr)}.feature-card,.package-card,.review-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:#fff}.feature-card h3,.package-card h3{font-family:"Playfair Display",serif;font-size:30px;margin:0 0 12px}
.package-grid{grid-template-columns:repeat(3,1fr)}.package-card.featured{background:var(--lav)}.package-price{font-weight:700}.package-card ul{padding-left:18px;line-height:2}.gallery-grid{grid-template-columns:repeat(12,1fr)}.gallery-item{grid-column:span 6;min-height:360px;overflow:hidden;border-radius:20px}.gallery-item:nth-child(3n+1){grid-column:span 7}.gallery-item:nth-child(3n+2){grid-column:span 5}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover}
.review-grid{grid-template-columns:repeat(2,1fr)}.quote{font-size:34px;line-height:1.15}.faq-list{max-width:900px}.faq-item{border-bottom:1px solid var(--line);padding:22px 0}.faq-q{font-weight:700}.faq-a{color:var(--muted);line-height:1.7}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700}.contact-form input,.contact-form textarea,.contact-form select{border:0;border-bottom:1px solid var(--line);padding:12px 0;background:transparent}.contact-form .full{grid-column:1/-1}
footer{padding:50px 7vw;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:center}.footer-links{display:flex;gap:18px;font-size:13px}
@media(max-width:900px){.package-grid,.review-grid,.two-col,.contact-grid{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr}.gallery-item:nth-child(n){grid-column:span 12}.contact-form{grid-template-columns:1fr}.contact-form .full{grid-column:auto}footer{grid-template-columns:1fr}}

/* Brand logo customization */
.brand-logo-slot{display:flex;align-items:center;flex:0 0 auto}
.brand-logo-image{display:block;width:auto;height:auto;max-width:min(var(--brand-logo-width,150px),700px);max-height:min(var(--brand-logo-height,80px),700px);object-fit:contain;object-position:left center}
footer .brand-logo-image{width:auto;height:auto}
.brand[data-brand-component]{gap:12px}
.honeybook-embed-shell{width:100%;min-width:0}
.honeybook-embed-shell iframe{width:100%!important;max-width:100%;border:0}
.integration-note{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--cream);color:var(--muted);line-height:1.5;margin-bottom:20px}
@media(max-width:650px){.brand-logo-image{width:auto;height:auto;max-width:min(var(--brand-logo-width,150px),80vw);max-height:min(var(--brand-logo-height,80px),180px)}}

/* Editable header/footer brand colors */
.site-header{background:var(--brand-header-bg,#fffaf4);color:var(--brand-header-text,#2b211d)}
.site-header .brand,.site-header nav a,.site-header a{color:var(--brand-header-text,#2b211d)}
footer{background:var(--brand-footer-bg,#2b211d);color:var(--brand-footer-text,#fffaf4)}
footer a,footer p,footer .brand,footer .brand-text{color:var(--brand-footer-text,#fffaf4)}

/* Editable header CTA */
.site-header .nav-cta,
.site-header a.nav-cta{
  background:var(--brand-header-cta-bg,#171717);
  color:var(--brand-header-cta-text,#ffffff);
}

/* Logo rendering correction */
.brand-logo-slot{display:flex;align-items:center;flex:0 0 auto;background:transparent}
.brand-logo-image{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(var(--brand-logo-width,150px),700px)!important;
  max-height:min(var(--brand-logo-height,80px),700px)!important;
  object-fit:contain!important;
  background:transparent!important;
}

/* Header CTA editable colors */
.site-header .nav-cta,
.site-header a.nav-cta{
  background:var(--brand-header-cta-bg,#171717)!important;
  color:var(--brand-header-cta-text,#ffffff)!important;
}

/* Custom pages follow the same site layout system */
.custom-page-body{font-size:1.05rem;line-height:1.8}
.custom-page-body p:first-child{margin-top:0}
.custom-page-button{margin-top:22px;text-decoration:none}
.custom-page-flow.no-image{grid-template-columns:minmax(0,760px)}


/* Mobile dropdown navigation */
.mobile-menu-toggle{
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid currentColor;
  border-radius:50%;
  background:transparent;
  color:var(--brand-header-text,#2b211d);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
}
.mobile-menu-toggle span{
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  transition:transform .22s ease,opacity .22s ease;
}
.site-header.mobile-menu-open .mobile-menu-toggle span:nth-child(1){
  transform:translateY(5.5px) rotate(45deg);
}
.site-header.mobile-menu-open .mobile-menu-toggle span:nth-child(2){
  opacity:0;
}
.site-header.mobile-menu-open .mobile-menu-toggle span:nth-child(3){
  transform:translateY(-5.5px) rotate(-45deg);
}

@media(max-width:900px){
  .site-header{
    padding:14px 5vw;
    gap:12px;
    flex-wrap:nowrap;
  }

  .site-header .brand{
    min-width:0;
    flex:1 1 auto;
  }

  .site-header .brand-text{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .site-header .brand-logo-image{
    max-height:min(var(--brand-logo-height,80px),54px)!important;
    max-width:min(var(--brand-logo-width,150px),48vw)!important;
  }

  .mobile-menu-toggle{
    display:inline-flex;
    flex:0 0 auto;
    order:2;
  }

  .site-header > .nav-cta{
    display:none;
  }

  .site-header nav{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    z-index:50;
    display:flex;
    flex-direction:column;
    gap:0;
    padding:8px 5vw 18px;
    background:var(--brand-header-bg,#fffaf4);
    color:var(--brand-header-text,#2b211d);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 30px rgba(0,0,0,.08);
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
    max-height:calc(100vh - 76px);
    overflow-y:auto;
  }

  .site-header nav a{
    display:block;
    width:100%;
    padding:15px 2px;
    border-bottom:1px solid var(--line);
    font-size:15px;
    font-weight:600;
  }

  .site-header nav a:last-child{
    border-bottom:0;
  }

  .site-header.mobile-menu-open nav{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }

  .hero{
    min-height:560px;
    height:78svh;
  }

  .hero-content{
    left:6vw;
    right:6vw;
    max-width:none;
  }

  .section{
    padding:72px 6vw;
  }

  .page-hero{
    padding:82px 6vw 58px;
  }
}

@media(max-width:560px){
  .site-header{
    padding:12px 4vw;
  }

  .mobile-menu-toggle{
    width:42px;
    height:42px;
  }

  .brand-text{
    font-size:17px;
  }

  .hero h1{
    font-size:clamp(44px,14vw,68px);
  }

  .hero-actions{
    align-items:flex-start;
    flex-direction:column;
  }

  .section h2{
    font-size:clamp(38px,12vw,54px);
  }

  .page-hero h1{
    font-size:clamp(44px,13vw,64px);
  }

  footer{
    padding:42px 6vw;
  }

  .footer-links{
    flex-wrap:wrap;
    gap:12px 18px;
  }
}
