





:root {
  
  --cream:#FAF7F2;
  --cream-mid:#F5EFE5;
  --cream-dark:#EDE4D6;
  --white:#FEFCF8;

  
  --gold:#C9A96E;          
  --gold-light:#DEC28E;    
  --gold-pale:#F2E5CC;     
  --gold-deep:#8B6F3F;     
  --gold-ink:#735831;      
  --gold-bronze:#5C4A28;   

  
  --charcoal:#2A2420;
  --text-primary:#1E1A17;  
  --text-body:#2D2622;     
  --text-sub:#4A3D32;      
  --text-muted:#6B5949;    

  
  --footer-bg-from:#F5EFE5;
  --footer-bg-to:#EFE7D9;

  
  --fs-xs:13px;
  --fs-sm:14.5px;
  --fs-base:17.5px;
  --fs-md:21px;
  --fs-lg:28px;
  --fs-xl:clamp(34px, 5.2vw, 56px);
  --fs-2xl:clamp(48px, 6.6vw, 82px);

  
  --ls-tight:-0.012em;
  --ls-snug:0.005em;
  --ls-wide:0.06em;
  --ls-wider:0.12em;
  --ls-widest:0.22em;       

  
  --lh-tight:1.15;
  --lh-snug:1.28;
  --lh-base:1.65;
  --lh-loose:1.78;

  
  --sp-section:clamp(64px, 8vw, 104px);
  --sp-section-tight:clamp(44px, 6vw, 72px);

  --transition:all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease:cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

html {
  scroll-behavior:smooth;
  scroll-padding-top:132px;
  -webkit-text-size-adjust:100%;
}
.skip-link { scroll-behavior:auto; }

body {
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background:var(--cream);
  color:var(--text-body);
  font-size:var(--fs-base);
  line-height:var(--lh-base);
  letter-spacing:0.005em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"liga","kern","calt";
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

a:focus-visible, button:focus-visible {
  outline:2px solid var(--gold-deep);
  outline-offset:3px;
  border-radius:2px;
}

.skip-link {
  position:absolute; top:-100px; left:0;
  background:var(--charcoal); color:var(--cream);
  padding:14px 22px; z-index:10000;
  text-decoration:none; font-size:var(--fs-sm); font-weight:700;
}
.skip-link:focus { top:0; }


.age-bar {
  background:var(--cream-mid);
  color:var(--text-body);
  font-size:14px;
  text-align:center;
  padding:14px 40px;
  line-height:1.55;
  border-bottom:1px solid rgba(115,88,49,0.16);
  font-weight:500;
  letter-spacing:0.005em;
}
.age-bar strong {
  color:var(--charcoal);
  font-weight:700;
  margin-right:5px;
}
@media (max-width:768px) {
  .age-bar { font-size:13px; padding:12px 18px; line-height:1.5; }
}


.site-header {
  position:sticky; top:0; z-index:1000;
  background:var(--white);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(115,88,49,0.14);
  transition:box-shadow 0.3s;
}
.site-header.scrolled { box-shadow:0 6px 30px rgba(42,36,32,0.08); }

.header-inner {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  max-width:1440px;
  margin:0 auto;
  padding:0 40px;
  height:84px;
}

.site-logo { text-align:center; text-decoration:none; }
.site-logo .wordmark {
  font-family:'Cormorant Garamond', serif;
  font-size:26px; font-weight:500;
  letter-spacing:0.14em;
  color:var(--text-primary);
  text-transform:uppercase;
  display:block;
  line-height:1.1;
}
.site-logo .sub-line {
  font-size:11px;
  letter-spacing:0.26em;
  color:var(--gold-ink);
  text-transform:uppercase;
  display:block;
  margin-top:4px;
  font-weight:700;
}

.phone-link {
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-wide);
  color:var(--text-sub);
  text-decoration:none;
  font-weight:700;
  text-transform:uppercase;
  transition:color 0.3s var(--ease);
  display:inline-flex; align-items:center; gap:8px;
}
.phone-link:hover { color:var(--gold-ink); }
.phone-link svg { width:15px; height:15px; }

.header-right { display:flex; justify-content:flex-end; align-items:center; gap:24px; }

.btn-book {
  background:var(--charcoal);
  color:var(--cream);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  padding:14px 30px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
  display:inline-block;
}
.btn-book:hover { background:transparent; color:var(--charcoal); }

.hamburger {
  display:none; background:none; border:none; cursor:pointer;
  padding:8px; flex-direction:column; gap:5px;
  min-width:44px; min-height:44px;
  align-items:center; justify-content:center;
}
.hamburger span {
  display:block; width:22px; height:1.8px;
  background:var(--charcoal);
  transition:transform 0.3s, opacity 0.3s;
}

@media (max-width:900px) {
  .header-inner { padding:0 20px; height:72px; }
  .hamburger { display:flex; }
  .phone-link { display:inline-flex; gap:0; padding:8px; }
  .phone-link .phone-text { display:none; }
  .phone-link svg { width:20px; height:20px; }
  .header-right { gap:14px; }
  .btn-book { padding:11px 20px; font-size:13px; letter-spacing:0.08em; }
  .site-logo .wordmark { font-size:21px; letter-spacing:0.12em; }
  .site-logo .sub-line { font-size:10px; letter-spacing:0.24em; }
}
@media (max-width:560px) {
  .header-inner { padding:0 14px; height:60px; }
  .header-right { gap:8px; }
  .site-logo .wordmark { font-size:14px; letter-spacing:0.05em; white-space:nowrap; }
  .site-logo .sub-line { font-size:10px; letter-spacing:0.16em; margin-top:3px; }
  .btn-book { padding:9px 13px; font-size:11.5px; letter-spacing:0.06em; }
  .btn-book-extra { display:none; }
  .phone-link { padding:6px; }
  .phone-link svg { width:19px; height:19px; }
  .hamburger { padding:6px; min-width:40px; min-height:40px; }
  .anchor-nav { top:60px; }
}


.visually-hidden {
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}




.header-left {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;            
}


.search-btn {
  width:42px; height:42px;
  border-radius:50%;
  background:transparent;
  border:1.5px solid rgba(115,88,49,0.28);
  color:var(--text-sub);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
  transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;     
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
}
.search-btn svg {
  width:18px; height:18px;
  transition:transform 0.3s var(--ease);
}
.search-btn:hover {
  border-color:var(--gold-deep);
  background:var(--gold-pale);
  color:var(--gold-ink);
}
.search-btn:hover svg { transform:scale(1.06); }
.search-btn:focus-visible {
  outline:2px solid var(--gold-deep);
  outline-offset:3px;
}
.search-btn.is-active {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--cream);
}


.search-backdrop {
  position:fixed; inset:0;
  background:rgba(30,26,23,0.32);
  z-index:1099;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.3s var(--ease), visibility 0.3s var(--ease);
}
.search-backdrop.is-open { opacity:1; visibility:visible; }


.search-overlay {
  position:fixed;
  top:0; left:0; right:0;
  max-height:100dvh;            
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  background:rgba(254,252,248,0.99);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(115,88,49,0.16);
  box-shadow:0 14px 44px rgba(42,36,32,0.10);
  z-index:1100;
  transform:translateY(-100%);
  opacity:0;
  visibility:hidden;
  transition:transform 0.4s var(--ease), opacity 0.3s var(--ease), visibility 0.4s var(--ease);
}
.search-overlay.is-open {
  transform:translateY(0);
  opacity:1;
  visibility:visible;
}
.search-overlay-inner {
  max-width:880px;
  margin:0 auto;
  padding:36px 40px 28px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.search-label {
  font-family:'Cormorant Garamond', serif;
  font-size:12px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
}


.search-form {
  display:flex;
  align-items:center;
  gap:14px;
  border-bottom:1.5px solid rgba(115,88,49,0.30);
  padding-bottom:14px;
  transition:border-color 0.3s var(--ease);
  margin:0;
}
.search-form:focus-within { border-color:var(--gold-deep); }
.search-form .search-icon {
  width:22px; height:22px;
  color:var(--gold-ink);
  flex-shrink:0;
}
.search-input {
  flex:1; min-width:0;          
  background:transparent;
  border:none;
  outline:none;
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(20px, 3vw, 32px);
  color:var(--text-primary);
  letter-spacing:0.01em;
  padding:6px 0;
  font-weight:500;
  width:100%;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;              
}
.search-input::placeholder {
  color:var(--text-muted);
  font-style:italic;
  font-weight:400;
}

.search-input::-webkit-search-cancel-button,
.search-input::-webkit-search-decoration {
  -webkit-appearance:none;
  appearance:none;
}

.search-close {
  background:none; border:none; cursor:pointer;
  color:var(--text-sub);
  padding:8px;
  min-width:40px; min-height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  transition:var(--transition);
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.search-close:hover { color:var(--gold-ink); background:var(--cream-mid); }
.search-close svg { width:20px; height:20px; }

.search-hint {
  font-size:12.5px;
  color:var(--text-muted);
  letter-spacing:0.04em;
  display:flex; flex-wrap:wrap; gap:6px 10px;
  align-items:center;
}
.search-hint kbd {
  font-family:'Nunito Sans', -apple-system, sans-serif;
  font-size:11px;
  background:var(--cream-mid);
  color:var(--text-sub);
  padding:2px 7px;
  border-radius:3px;
  border:1px solid rgba(115,88,49,0.18);
  font-weight:700;
  margin:0 2px;
  white-space:nowrap;
}

@media (hover:none) and (pointer:coarse) {
  .search-hint .kbd-shortcut { display:none; }
}


.search-results {
  display:none;
  flex-direction:column;
  gap:2px;
  margin-top:6px;
  max-height:60dvh;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.search-results.is-visible { display:flex; }
.search-results-heading {
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  padding:14px 4px 6px;
  display:flex; justify-content:space-between; align-items:center;
}
.search-result-item {
  display:block;
  padding:14px 12px;
  text-decoration:none;
  color:var(--text-body);
  border-radius:4px;
  border:1px solid transparent;
  transition:background 0.18s var(--ease), border-color 0.18s var(--ease);
}
.search-result-item:hover,
.search-result-item:focus-visible,
.search-result-item.is-active {
  background:var(--cream-mid);
  border-color:rgba(115,88,49,0.18);
  outline:none;
}
.search-result-title {
  font-family:'Cormorant Garamond', serif;
  font-size:18px;
  font-weight:600;
  color:var(--text-primary);
  letter-spacing:var(--ls-tight);
  line-height:1.3;
  display:block;
  margin-bottom:2px;
}
.search-result-title mark {
  background:var(--gold-pale);
  color:var(--text-primary);
  padding:0 2px;
  border-radius:2px;
}
.search-result-meta {
  font-size:12px;
  color:var(--text-muted);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
}
.search-state {
  padding:18px 4px;
  color:var(--text-muted);
  font-size:14.5px;
  font-style:italic;
}
.search-state-error { color:#8a4030; }


.search-chips {
  display:flex; flex-wrap:wrap; gap:8px;
  padding:6px 0 0;
}
.search-chip {
  background:var(--cream-mid);
  border:1px solid rgba(115,88,49,0.22);
  color:var(--text-sub);
  font-size:13px;
  letter-spacing:0.02em;
  padding:7px 14px;
  border-radius:999px;
  cursor:pointer;
  font-family:inherit;
  transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.search-chip:hover {
  background:var(--gold-pale);
  border-color:var(--gold-deep);
  color:var(--gold-ink);
}


body[data-search-open="true"] {
  position:fixed;
  width:100%;
  overflow:hidden;
}


@media (max-width:900px) {
  .header-left { gap:6px; }
  .search-btn { width:40px; height:40px; }
  .search-btn svg { width:17px; height:17px; }
  .search-overlay-inner { padding:24px 20px 22px; gap:10px; }
  .search-result-title { font-size:17px; }
}
@media (max-width:560px) {
  
  .header-left { gap:4px; }
  .search-btn { width:38px; height:38px; }
  .search-btn svg { width:16px; height:16px; }
  .search-overlay-inner { padding:18px 16px 18px; gap:8px; }
  .search-form { gap:10px; padding-bottom:12px; }
  .search-form .search-icon { width:18px; height:18px; }
  .search-input {
    font-size:18px;             
    padding:8px 0;
  }
  .search-close { min-width:36px; min-height:36px; padding:6px; }
  .search-close svg { width:18px; height:18px; }
  .search-label { font-size:11px; }
  .search-hint { font-size:11.5px; }
  .search-result-item { padding:12px 10px; }
  .search-result-title { font-size:16px; }
}
@media (max-width:360px) {
  
  .header-left { gap:2px; }
  .search-btn { width:36px; height:36px; }
}


.main-nav {
  position:relative;
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.14);
}
.nav-inner {
  max-width:1440px; margin:0 auto;
  padding:0 40px;
  display:flex; justify-content:center; flex-wrap:wrap;
}
.nav-item { position:relative; }
.nav-item > a {
  display:block;
  padding:15px 18px;
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--text-sub);
  text-decoration:none;
  transition:color 0.3s var(--ease);
  white-space:nowrap;
}
.nav-item > a:hover { color:var(--gold-ink); }

.nav-arrow-icon {
  display:inline-block;
  margin-left:4px;
  font-size:10px;
  opacity:0.6;
  transition:transform 0.25s ease;
}
.nav-item:hover .nav-arrow-icon { transform:translateY(2px); opacity:1; }

.dropdown {
  display:none; position:absolute; top:100%; left:0;
  min-width:260px; background:var(--white);
  border:1px solid rgba(115,88,49,0.14);
  border-top:3px solid var(--gold);
  box-shadow:0 20px 50px rgba(42,36,32,0.12);
  z-index:999; padding:14px 0;
}
.nav-item:hover .dropdown { display:block; }
.dropdown a {
  display:block; padding:11px 26px;
  font-size:var(--fs-sm);
  color:var(--text-body);
  text-decoration:none;
  font-weight:500;
  letter-spacing:0.01em;
  transition:var(--transition);
}
.dropdown a:hover {
  color:var(--gold-ink);
  background:rgba(250,247,242,0.6);
}


.nav-item.has-mega { position:static; }
.mega-dropdown {
  display:none; position:absolute; top:100%; left:50%;
  transform:translateX(-50%);
  width:1120px; max-width:calc(100vw - 40px);
  background:var(--white);
  border:1px solid rgba(115,88,49,0.14);
  border-top:3px solid var(--gold);
  box-shadow:0 30px 80px rgba(42,36,32,0.14);
  z-index:999; padding:0;
}
.nav-item.has-mega:hover .mega-dropdown { display:block; }
.mega-grid {
  display:grid; grid-template-columns:repeat(3, 1fr);
  padding:44px 56px 36px; gap:0;
}
.mega-col {
  display:flex; flex-direction:column;
  padding:0 32px;
  border-left:1px solid rgba(115,88,49,0.10);
}
.mega-col:first-child { padding-left:0; border-left:none; }
.mega-col:last-child { padding-right:0; }
.mega-section { margin-bottom:28px; }
.mega-section:last-child { margin-bottom:0; }
.mega-heading {
  display:inline-block;
  font-family:'Cormorant Garamond', serif;
  font-size:22px; font-weight:500;
  line-height:1.2; letter-spacing:0.005em;
  color:var(--charcoal);
  margin:0 0 16px;
  padding:0 0 10px;
  border-bottom:1px solid var(--gold);
  min-width:88px;
}
.mega-col a {
  display:block;
  padding:9px 0;
  font-family:'Nunito Sans', sans-serif;
  font-size:14.5px;
  font-weight:500;
  color:var(--text-body);
  text-decoration:none;
  transition:all 0.25s cubic-bezier(0.25,0.46,0.45,0.94);
  letter-spacing:0.005em;
  position:relative;
}
.mega-col a::before {
  content:''; position:absolute;
  left:0; top:50%;
  width:0; height:1px;
  background:var(--gold-deep);
  transition:width 0.25s ease;
  transform:translateY(-50%);
  opacity:0;
}
.mega-col a:hover { color:var(--gold-ink); padding-left:16px; }
.mega-col a:hover::before { width:10px; opacity:1; }

.mega-footer {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--cream);
  padding:22px 50px;
  border-top:1px solid rgba(115,88,49,0.14);
  gap:20px;
}
.mega-footer-text {
  font-family:'Cormorant Garamond', serif;
  font-size:19px; font-style:italic;
  color:var(--text-body);
  line-height:1.4;
}
.mega-footer-text strong {
  font-style:normal; font-weight:600;
  color:var(--charcoal);
}
.mega-footer-cta {
  display:inline-flex; align-items:center; gap:12px;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px; font-weight:700;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--charcoal);
  text-decoration:none;
  padding:13px 22px;
  border:1px solid var(--gold-deep);
  background:var(--white);
  transition:all 0.3s ease;
  white-space:nowrap; flex-shrink:0;
}
.mega-footer-cta:hover {
  background:var(--charcoal);
  color:var(--cream);
  border-color:var(--charcoal);
}
.mega-footer-cta-arrow {
  font-family:'Cormorant Garamond', serif;
  font-size:18px; font-weight:500; letter-spacing:0;
}


.breadcrumb {
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.08);
}
.breadcrumb-inner {
  max-width:1440px; margin:0 auto;
  padding:14px 40px;
  display:flex; gap:8px; align-items:center;
  font-size:var(--fs-sm);
  color:var(--text-sub);
}
.breadcrumb-inner a {
  color:var(--text-sub);
  text-decoration:none;
  font-weight:500;
  transition:color 0.3s var(--ease);
}
.breadcrumb-inner a:hover { color:var(--gold-ink); }
.breadcrumb-inner .sep { color:var(--gold-ink); opacity:0.7; }
.breadcrumb-inner .current { color:var(--text-primary); font-weight:700; }


.anchor-nav {
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.08);
  padding:0 40px;
  position:sticky; top:84px; z-index:90;
}
.anchor-nav-inner {
  max-width:1440px; margin:0 auto;
  display:flex; align-items:center; gap:18px;
  height:52px;
}
.anchor-link {
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--text-sub);
  text-decoration:none;
  transition:color 0.3s var(--ease);
  white-space:nowrap;
  position:relative;
  padding:8px 0;
}
.anchor-link:hover, .anchor-link.is-active { color:var(--gold-ink); }
.anchor-link.is-active::after {
  content:''; position:absolute;
  bottom:0; left:0; right:0;
  height:2px; background:var(--gold-deep);
}
.anchor-link--cta { margin-left:auto; }
.anchor-sep { color:var(--gold); opacity:0.55; font-size:14px; }


i.i-italic {
  font-style:italic;
  font-weight:inherit;
}


.section-eyebrow {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  display:block;
  margin-bottom:14px;
  font-weight:600;
  line-height:1.4;
}
.section-title {
  font-family:'Cormorant Garamond', serif;
  font-size:var(--fs-xl);
  font-weight:500;
  line-height:1.1;
  color:var(--text-primary);
  margin-bottom:18px;
  letter-spacing:var(--ls-tight);
}
.section-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.body-text {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
  margin-bottom:18px;
}
.body-text a,
.bento-body a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.5);
  font-weight:600;
  transition:var(--transition);
}
.body-text a:hover,
.bento-body a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}



.btn-primary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--charcoal);
  color:var(--cream);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:18px 38px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
}
.btn-primary:hover {
  background:var(--gold-deep);
  border-color:var(--gold-deep);
  color:var(--white);
  transform:translateY(-2px);
  box-shadow:0 14px 32px -14px rgba(139,111,63,0.55);
}
.btn-primary::after { content:'→'; transition:transform 0.2s; font-weight:400; }
.btn-primary:hover::after { transform:translateX(4px); }

.btn-secondary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:transparent;
  color:var(--charcoal);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:18px 38px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
}
.btn-secondary:hover {
  background:var(--charcoal);
  color:var(--cream);
}

.link-arrow {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  text-decoration:none;
  font-weight:700;
  transition:gap 0.2s, color 0.2s;
  padding:4px 0;
}
.link-arrow:hover { gap:18px; color:var(--charcoal); }
.link-arrow::after { content:'→'; font-weight:500; }






.page-hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
  max-width:1440px;
  margin:0 auto;
  padding:64px 40px 72px;
  background:linear-gradient(135deg, rgba(240,232,216,0.55) 0%, rgba(242,229,204,0.4) 100%);
  border-bottom:3px solid var(--gold);
}

.hero-image-col {
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  aspect-ratio:3/2;
  border-radius:2px;
  overflow:hidden;
}
.hero-image-col img {
  width:100%; height:100%; object-fit:cover; display:block;
}

.hero-text-col { padding:20px 0; }
.hero-page-title {
  font-family:'Cormorant Garamond', serif;
  font-size:var(--fs-2xl);
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:24px;
  line-height:1.05;
  letter-spacing:var(--ls-tight);
}
.hero-page-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.hero-bio {
  font-size:19px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:0;
  max-width:560px;
  font-weight:400;
}

@media (max-width:1100px) {
  .page-hero { grid-template-columns:1fr; gap:36px; padding:52px 40px 60px; }
  .hero-image-col { aspect-ratio:16/9; }
}
@media (max-width:640px) {
  .page-hero { padding:44px 22px 52px; gap:28px; }
  .hero-bio { font-size:17px; line-height:1.65; }
}


.credential-row {
  background:var(--white);
  border-top:1px solid rgba(115,88,49,0.20);
  border-bottom:1px solid rgba(115,88,49,0.20);
  padding:34px 40px;
}
.credential-row-inner {
  max-width:1440px; margin:0 auto;
  display:flex; align-items:flex-start; justify-content:center;
  flex-wrap:wrap; gap:0;
}
.credential-item {
  flex:1; min-width:180px;
  text-align:center;
  padding:8px 28px;
  position:relative;
}
.credential-item:not(:last-child)::after {
  content:''; position:absolute;
  right:0; top:50%; transform:translateY(-50%);
  width:1px; height:64px;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(201,169,110,0.25) 15%,
    rgba(201,169,110,0.85) 50%,
    rgba(201,169,110,0.25) 85%,
    transparent 100%);
}
.credential-item:not(:last-child)::before {
  content:'';
  position:absolute;
  right:0; top:50%;
  transform:translate(50%, -50%) rotate(45deg);
  width:6px; height:6px;
  background:var(--gold);
  box-shadow:0 0 0 3px var(--white);
  z-index:1;
}
.credential-label {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  min-height:2.4em;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:10px;
  line-height:1.2;
}
.credential-value {
  display:block;
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:18px;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.4;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.credential-value i.i-italic {
  font-style:normal;
  font-weight:500;
  color:var(--text-body);
  display:block;
  margin-top:3px;
  font-size:14.5px;
  letter-spacing:0.02em;
}
@media (max-width:900px) {
  .credential-row { padding:24px 22px; }
  .credential-item { flex:1 1 45%; min-width:0; padding:14px 16px; }
  .credential-item::after, .credential-item::before { display:none; }
}
@media (max-width:560px) {
  .credential-item { flex:1 1 100%; padding:16px 0; }
  .credential-item::after, .credential-item::before { display:none !important; }
  .credential-item:not(:last-child) {
    border-bottom:1px solid rgba(201,169,110,0.40);
  }
}


.content-section {
  padding:var(--sp-section) 40px;
  max-width:1440px; margin:0 auto;
  background:var(--cream);
  border-top:2px solid var(--gold);
}
.content-section-alt {
  padding:var(--sp-section) 40px;
  background:var(--cream-dark);
  max-width:1440px; margin:0 auto;
  border-top:2px solid var(--gold);
}


.split-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:56px;
  align-items:start;
}
.split-sticky { position:sticky; top:200px; }

.bdh-quote {
  background:linear-gradient(135deg, var(--gold-pale) 0%, rgba(242,229,204,0.5) 100%);
  padding:32px 34px;
  margin:28px 0;
  border-left:3px solid var(--gold-deep);
  border-radius:0;
}
.bdh-quote blockquote {
  font-family:'Cormorant Garamond', serif;
  font-size:23px;
  font-weight:500;
  color:var(--text-primary);
  line-height:1.45;
  margin-bottom:18px;
  font-style:italic;
  letter-spacing:0.005em;
}
.bdh-quote cite {
  font-size:var(--fs-sm);
  color:var(--text-sub);
  letter-spacing:0.03em;
  display:block;
  font-style:normal;
  font-weight:600;
}

.img-placeholder {
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  aspect-ratio:3/2;
  border-radius:2px;
  margin:32px 0;
  overflow:hidden;
}
.img-placeholder img {
  width:100%; height:100%; object-fit:cover; display:block;
}

@media (max-width:1000px) {
  .split-layout { grid-template-columns:1fr; gap:40px; }
  .split-sticky { position:static; }
}




.bento-grid {
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:minmax(220px, auto);
  gap:18px;
  margin-top:8px;
}
.bento-card {
  background:var(--white);
  border:1px solid rgba(115,88,49,0.18);
  padding:36px 32px;
  position:relative;
  transition:var(--transition);
  display:flex; flex-direction:column;
  overflow:hidden;
}
.bento-card::before {
  content:''; position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-deep) 100%);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);
}
.bento-card:hover {
  border-color:rgba(115,88,49,0.4);
  box-shadow:0 24px 50px -28px rgba(42,36,32,0.20);
  transform:translateY(-2px);
}
.bento-card:hover::before { transform:scaleX(1); }

.bento-card--lg { grid-column:span 4; }
.bento-card--md { grid-column:span 3; }
.bento-card--sm { grid-column:span 2; }
.bento-card--feature {
  grid-column:span 3;
  background:linear-gradient(180deg, #FEFCF8 0%, #F5EFE5 100%);
  border-color:rgba(115,88,49,0.30);
  padding-top:72px;
}
.bento-card--feature + .bento-card--md {
  padding-top:72px;
}

.bento-icon {
  width:48px; height:48px;
  margin-bottom:22px;
  color:var(--gold-ink);
  flex-shrink:0;
}
.bento-icon svg { width:100%; height:100%; }
@media (max-width:768px) {
  .bento-icon { width:56px; height:56px; margin-bottom:18px; }
}

.bento-title {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:14px;
  line-height:1.2;
  letter-spacing:var(--ls-tight);
}
.bento-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.bento-body {
  font-size:16px;
  color:var(--text-body);
  line-height:1.7;
  margin:0;
}
.bento-card--feature .bento-eyebrow {
  position:absolute;
  top:36px;
  left:32px;
  display:block;
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:600;
}

@media (max-width:1000px) {
  .bento-grid { grid-template-columns:repeat(4, 1fr); }
  .bento-card--lg { grid-column:span 4; }
  .bento-card--md { grid-column:span 2; }
  .bento-card--sm { grid-column:span 2; }
  .bento-card--feature { grid-column:span 4; }
}
@media (max-width:640px) {
  .bento-grid { grid-template-columns:1fr; gap:14px; }
  .bento-card--lg, .bento-card--md, .bento-card--sm, .bento-card--feature {
    grid-column:span 1;
  }
  .bento-card { padding:30px 24px; }
  .bento-title { font-size:22px; }
}


@media (max-width:1024px) {
  .bento-card.bento-card--feature { padding-top:68px; }
  .bento-card--feature + .bento-card--md { padding-top:32px; }
}
@media (max-width:600px) {
  .bento-card.bento-card--feature { padding-top:28px; }
  .bento-card--feature + .bento-card--md { padding-top:28px; }
  .bento-card--feature .bento-eyebrow {
    position:static;
    top:auto; left:auto;
    margin-bottom:14px;
  }
}




.editorial-interlude {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(201,169,110,0.10) 0%, transparent 60%),
    linear-gradient(180deg, #2A2420 0%, #1F1A16 100%);
  padding:clamp(80px, 11vw, 124px) 40px;
  position:relative;
  overflow:hidden;
}
.editorial-interlude::before {
  content:''; position:absolute;
  top:48px; left:50%; transform:translateX(-50%);
  width:60px; height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
}
.editorial-interlude-inner {
  max-width:1080px; margin:0 auto;
  text-align:center;
  position:relative; z-index:2;
}
.editorial-interlude-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:36px;
}
.editorial-interlude-quote {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(30px, 4.4vw, 56px);
  line-height:1.3;
  color:#FAF7F2;
  letter-spacing:-0.005em;
  margin-bottom:44px;
}
.editorial-interlude-quote::before,
.editorial-interlude-quote::after {
  content:''; display:inline-block;
  width:8px; height:8px;
  background:var(--gold);
  transform:rotate(45deg);
  margin:0 14px;
  vertical-align:middle;
  opacity:0.75;
}
.editorial-interlude-cite {
  display:block;
  font-family:'Nunito Sans', sans-serif;
  font-style:normal;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:rgba(250,247,242,0.78);
  font-weight:700;
}
.editorial-interlude-cite i.i-italic {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:16px;
  letter-spacing:0.02em;
  color:rgba(250,247,242,0.92);
  text-transform:none;
  font-weight:400;
  display:block;
  margin-top:8px;
}
@media (max-width:768px) {
  .editorial-interlude { padding:84px 22px; }
  .editorial-interlude-quote::before,
  .editorial-interlude-quote::after { width:6px; height:6px; margin:0 10px; }
}




.consultation-intro {
  margin-bottom:44px;
  max-width:820px;
}
.consultation-steps-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  margin-top:36px;
}
.consult-card {
  position:relative;
  background:var(--white);
  border:1px solid rgba(115,88,49,0.18);
  border-top:3px solid var(--gold);
  padding:38px 30px;
}
.consult-card--feature {
  background:linear-gradient(180deg, #FEFCF8 0%, #F5EFE5 100%);
  border-top:3px solid var(--gold-deep);
  box-shadow:0 18px 50px -24px rgba(42,36,32,0.18);
}
.consult-tag {
  position:absolute;
  top:-16px; left:50%; transform:translateX(-50%);
  display:inline-block;
  font-size:11.5px;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--cream);
  font-weight:700;
  padding:10px 22px;
  background:var(--charcoal);
  border:1px solid var(--charcoal);
  box-shadow:0 10px 28px -10px rgba(42,36,32,0.55);
  line-height:1;
  white-space:nowrap;
}
.consult-byline {
  display:block;
  margin-top:2px; margin-bottom:14px;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:500;
  font-size:21px;
  color:var(--gold-ink);
  line-height:1.1;
}
.consult-tech {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:600;
  color:var(--gold-ink);
  font-size:1.06em;
  letter-spacing:0;
}
.consult-num {
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:44px;
  font-weight:400;
  color:var(--gold-ink);
  line-height:1;
  margin-bottom:16px;
  letter-spacing:-0.02em;
  opacity:0.85;
}
.consultation-step-title {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:14px;
  letter-spacing:var(--ls-tight);
}
.consult-tech-link {
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(139,111,63,0.45);
  transition:border-color 0.2s ease;
}
.consult-tech-link:hover { border-bottom-color:var(--gold-deep); }

@media (max-width:768px) {
  .consultation-steps-grid { grid-template-columns:1fr; gap:18px; }
}




.mid-cta {
  background:var(--cream-dark);
  padding:72px 40px;
  text-align:center;
  border-top:1px solid rgba(115,88,49,0.25);
  border-bottom:1px solid rgba(115,88,49,0.25);
}
.mid-cta-inner { max-width:780px; margin:0 auto; }
.mid-cta-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:16px;
}
.mid-cta-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(30px, 3.8vw, 44px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.15;
  margin-bottom:16px;
  letter-spacing:var(--ls-tight);
}
.mid-cta-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.mid-cta-sub {
  font-size:17px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:32px;
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}
.mid-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
}
@media (max-width:560px) {
  .mid-cta { padding:52px 22px; }
  .mid-cta-actions { flex-direction:column; }
  .mid-cta-actions a { width:100%; justify-content:center; }
}




.treatment-list { max-width:920px; }
.treatment-category {
  margin-top:32px;
  margin-bottom:0;
  padding:30px 34px;
  background:var(--cream-dark);
  border-left:3px solid var(--gold-deep);
  border-radius:2px;
}
.treatment-category-label {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:18px;
  display:block;
}
.treatment-item {
  margin-bottom:26px;
  padding-bottom:26px;
  border-bottom:2px solid var(--gold-pale);
}
.treatment-item:last-child {
  border-bottom:none; margin-bottom:0; padding-bottom:0;
}
.treatment-name {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:8px;
  letter-spacing:var(--ls-tight);
}
.treatment-name a {
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:var(--transition);
}
.treatment-name a:hover {
  color:var(--gold-ink);
  border-bottom-color:var(--gold-deep);
}
.treatment-provider {
  font-size:12.5px;
  color:var(--text-sub);
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:16px;
  display:inline-block;
}
.treatment-body {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
}
.treatment-footnote {
  margin-top:32px;
  padding:20px 26px;
  background:rgba(254,252,248,0.7);
  border:1px solid rgba(115,88,49,0.20);
  font-size:14.5px;
  color:var(--text-sub);
  line-height:1.7;
}
.treatment-footnote a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.45);
  font-weight:700;
}
.treatment-footnote a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}




.faq-section {
  max-width:920px;
  background:var(--cream-dark);
  padding:36px 40px;
  border-radius:2px;
}
.faq-item { border-bottom:1px solid rgba(115,88,49,0.22); }
.faq-item:last-child { border-bottom:none; }
.faq-btn {
  width:100%;
  padding:22px 0;
  background:none; border:none;
  text-align:left;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  transition:color 0.3s var(--ease);
  font-family:'Cormorant Garamond', serif;
  font-size:21px;
  font-weight:500;
  color:var(--text-primary);
  letter-spacing:var(--ls-tight);
  line-height:1.35;
}
.faq-btn:hover { color:var(--gold-ink); }
.faq-q { flex:1; }
.faq-icon {
  flex-shrink:0;
  width:22px; height:22px;
  position:relative;
  display:inline-block;
  transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  margin-top:8px;
}
.faq-icon::before, .faq-icon::after {
  content:''; position:absolute;
  background:var(--gold-deep);
  transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}
.faq-icon::before {
  top:50%; left:0; right:0;
  height:1.6px; transform:translateY(-50%);
}
.faq-icon::after {
  top:0; bottom:0; left:50%;
  width:1.6px; transform:translateX(-50%);
}
.faq-btn[aria-expanded="true"] .faq-icon::after {
  transform:translateX(-50%) scaleY(0);
}
.faq-answer {
  max-height:0;
  overflow:hidden;
  transition:max-height 0.4s ease;
}
.faq-btn[aria-expanded="true"] + .faq-answer {
  max-height:800px;
  padding-bottom:28px;
}
.faq-answer p {
  color:var(--text-body);
  line-height:1.75;
  margin-bottom:16px;
  font-size:17px;
}
.faq-answer p:last-child { margin-bottom:0; }
.faq-answer a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.45);
  font-weight:600;
}
.faq-answer a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}




.physician-feature {
  background:var(--cream);
  padding:var(--sp-section) 40px;
  position:relative;
  border-top:1px solid rgba(115,88,49,0.18);
}
.physician-feature-inner {
  max-width:1240px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:72px;
  align-items:center;
}
.physician-portrait {
  position:relative;
  aspect-ratio:4/5;
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  border-radius:2px;
  overflow:hidden;
}

.physician-portrait img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.physician-text { padding:8px 0; }
.physician-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.physician-name {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(40px, 5vw, 62px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.05;
  letter-spacing:var(--ls-tight);
  margin-bottom:10px;
}
.physician-name i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
  display:block;
  font-size:0.7em;
  margin-top:6px;
}
.physician-credentials {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:21px;
  font-weight:500;
  color:var(--gold-ink);
  margin-bottom:32px;
  line-height:1.4;
  letter-spacing:0.005em;
}
.physician-rule {
  width:64px; height:1px;
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
  margin-bottom:32px;
}
.physician-philosophy {
  font-size:17.5px;
  line-height:1.78;
  color:var(--text-body);
  margin-bottom:20px;
}
.physician-philosophy:last-of-type { margin-bottom:36px; }
.physician-meta {
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  margin-bottom:36px;
  padding:26px 0;
  border-top:1px solid rgba(115,88,49,0.20);
  border-bottom:1px solid rgba(115,88,49,0.20);
}
.physician-meta-item { flex:1; min-width:140px; }
.physician-meta-label {
  display:block;
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:8px;
}
.physician-meta-value {
  display:block;
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:18px;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.4;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.physician-meta-value i.i-italic {
  font-style:normal;
  font-weight:500;
  color:var(--text-body);
  display:block;
  margin-top:3px;
  font-size:14.5px;
  letter-spacing:0.02em;
}
.physician-actions {
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  align-items:center;
}
@media (max-width:900px) {
  .physician-feature { padding:72px 22px; }
  .physician-feature-inner { grid-template-columns:1fr; gap:48px; }
  .physician-portrait { aspect-ratio:3/4; max-width:480px; margin:0 auto; }
  .physician-meta { gap:24px; }
}
@media (max-width:560px) {
  .physician-meta {
    flex-direction:column;
    gap:22px;
    padding:22px 0;
  }
  .physician-meta-item { flex:1 1 100%; min-width:0; }
}




.cta-section {
  position:relative;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,169,110,0.12) 0%, transparent 55%),
    linear-gradient(180deg, #F5EFE5 0%, #EDE4D6 60%, #E8DBC2 100%);
  padding:clamp(80px, 11vw, 112px) 40px;
  text-align:center;
  border-top:1px solid rgba(115,88,49,0.25);
  border-bottom:1px solid rgba(115,88,49,0.25);
  overflow:hidden;
}
.cta-section::before, .cta-section::after {
  content:''; position:absolute;
  top:24px;
  width:60px; height:60px;
  border:1px solid rgba(115,88,49,0.45);
  opacity:0.7;
}
.cta-section::before { left:24px; border-right:none; border-bottom:none; }
.cta-section::after { right:24px; border-left:none; border-bottom:none; }

.cta-inner {
  position:relative;
  max-width:780px;
  margin:0 auto;
  padding:64px 56px;
  background:rgba(254,252,248,0.6);
  border:1px solid var(--gold-deep);
  box-shadow:
    0 0 0 6px rgba(254,252,248,0.55),
    0 0 0 7px rgba(115,88,49,0.45),
    0 30px 80px -30px rgba(42,36,32,0.22);
}
.cta-ornament {
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin-bottom:22px;
}
.cta-ornament-line {
  width:64px; height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--gold-deep) 100%);
}
.cta-ornament-line.right {
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
}
.cta-ornament-diamond {
  width:9px; height:9px;
  background:var(--gold-deep);
  transform:rotate(45deg);
  flex-shrink:0;
}
.cta-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.cta-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(36px, 5vw, 56px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.1;
  margin-bottom:18px;
  letter-spacing:var(--ls-tight);
}
.cta-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.cta-sub {
  font-size:18px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:32px;
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}
.cta-actions {
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}
@media (max-width:640px) {
  .cta-section { padding:68px 18px; }
  .cta-inner { padding:48px 28px; }
  .cta-actions { flex-direction:column; align-items:stretch; }
  .cta-actions a { width:100%; justify-content:center; }
}




.contact-section {
  background:var(--cream);
  padding:var(--sp-section) 40px;
  border-top:1px solid rgba(115,88,49,0.18);
}
.contact-inner {
  max-width:1240px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:72px;
  align-items:start;
}
.contact-intro { position:sticky; top:200px; }
.contact-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.contact-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(42px, 5.2vw, 64px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.05;
  margin-bottom:20px;
  letter-spacing:var(--ls-tight);
}
.contact-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.contact-lede {
  font-size:18px;
  line-height:1.75;
  color:var(--text-body);
  margin-bottom:32px;
  max-width:440px;
}
.contact-ornament {
  display:flex; align-items:center; gap:12px;
  margin-bottom:32px;
}
.contact-ornament-diamond {
  width:8px; height:8px;
  background:var(--gold-deep);
  transform:rotate(45deg);
}
.contact-ornament-line {
  flex:1; max-width:80px; height:1px;
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
}
.contact-deck { margin-bottom:32px; }
.contact-row {
  display:flex;
  align-items:flex-start;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid rgba(115,88,49,0.20);
}
.contact-row:last-child { border-bottom:none; }
.contact-row-label {
  flex-shrink:0;
  width:100px;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  padding-top:4px;
  line-height:1.2;
}
.contact-row-value {
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:17px;
  font-weight:600;
  color:var(--text-primary);
  line-height:1.55;
  letter-spacing:0.02em;
  text-decoration:none;
  font-variant-numeric:tabular-nums lining-nums;
  transition:color 0.3s var(--ease);
}
.contact-row-value:hover { color:var(--gold-ink); }
.contact-hours-mini {
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:15px;
  font-weight:500;
  color:var(--text-body);
  line-height:1.85;
  padding-top:24px;
  border-top:1px solid rgba(115,88,49,0.20);
  font-variant-numeric:tabular-nums lining-nums;
}
.contact-hours-mini strong {
  display:block;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:12px;
  line-height:1.2;
}

.contact-form-wrap {
  position:relative;
  background:var(--white);
  padding:56px 52px;
  border:1px solid rgba(115,88,49,0.25);
  box-shadow:0 30px 80px -40px rgba(42,36,32,0.18);
}
.form-card-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:14px;
}
.form-card-title {
  font-family:'Cormorant Garamond', serif;
  font-size:30px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:36px;
  letter-spacing:var(--ls-tight);
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  margin-bottom:26px;
}
.form-group { margin-bottom:26px; }
.form-label {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:10px;
}
.form-optional {
  font-size:10.5px;
  font-weight:600;
  letter-spacing:0.1em;
  color:var(--text-muted);
  text-transform:none;
  margin-left:6px;
}
.form-input {
  width:100%;
  border:none;
  border-bottom:1.5px solid rgba(115,88,49,0.38);
  background:transparent;
  padding:14px 0;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  color:var(--text-primary);
  transition:border-color 0.25s;
  -webkit-appearance:none;
  border-radius:0;
}
.form-input::placeholder { color:var(--text-muted); opacity:0.7; }
.form-input:focus {
  outline:none;
  border-bottom-color:var(--gold-deep);
  border-bottom-width:2px;
}
.form-textarea {
  resize:vertical;
  min-height:120px;
  line-height:1.65;
}
.form-footer {
  display:flex;
  gap:26px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-top:8px;
}
.form-disclaimer {
  flex:1;
  font-size:13px;
  color:var(--text-sub);
  line-height:1.65;
  min-width:200px;
  font-weight:500;
}
.btn-submit {
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--charcoal);
  color:var(--cream);
  font-family:'Nunito Sans', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:17px 36px;
  border:1.5px solid var(--charcoal);
  cursor:pointer;
  transition:all 0.25s ease;
}
.btn-submit::after { content:'→'; transition:transform 0.2s; font-weight:400; }
.btn-submit:hover {
  background:var(--gold-deep);
  border-color:var(--gold-deep);
  color:var(--white);
}
.btn-submit:hover::after { transform:translateX(4px); }

.form-success {
  display:none;
  position:absolute; inset:0;
  background:var(--white);
  align-items:center; justify-content:center;
  text-align:center;
  padding:40px;
}
.form-success.is-visible { display:flex; }
.form-success-inner { max-width:400px; }
.form-success-icon {
  display:inline-flex;
  align-items:center; justify-content:center;
  width:60px; height:60px;
  border:1.5px solid var(--gold-deep);
  color:var(--gold-ink);
  font-size:24px;
  margin-bottom:24px;
  border-radius:50%;
}
.form-success h3 {
  font-family:'Cormorant Garamond', serif;
  font-size:28px;
  font-weight:500;
  color:var(--charcoal);
  margin-bottom:12px;
  letter-spacing:var(--ls-tight);
}
.form-success p {
  color:var(--text-body);
  font-size:16px;
  line-height:1.65;
}

@media (max-width:1000px) {
  .contact-inner { grid-template-columns:1fr; gap:48px; }
  .contact-intro { position:static; }
  .contact-title { font-size:clamp(36px, 6vw, 52px); }
}
@media (max-width:640px) {
  .contact-section { padding:68px 18px; }
  .contact-form-wrap { padding:36px 24px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .form-footer { flex-direction:column; align-items:stretch; gap:18px; }
  .btn-submit { width:100%; justify-content:center; }
}
@media (max-width:560px) {
  .contact-row {
    flex-direction:column;
    gap:6px;
    align-items:flex-start;
    padding:16px 0;
  }
  .contact-row-label {
    width:auto;
    padding-top:0;
  }
  .contact-row-value {
    width:100%;
    word-break:break-word;
    overflow-wrap:break-word;
  }
}




@media (max-width:900px) {
  .header-inner { padding:0 20px; }
  .nav-inner { padding:0; }
  .main-nav { display:none; }
  .main-nav.is-open { display:block; }
  .nav-inner { flex-direction:column; align-items:stretch; }
  .nav-item { width:100%; border-bottom:1px solid rgba(115,88,49,0.12); }
  .nav-item.has-mega { position:relative; width:100%; }
  .nav-item > a { padding:16px 24px; }
  .dropdown {
    position:static; min-width:auto;
    border:none; box-shadow:none;
    background:rgba(115,88,49,0.04);
  }
  .nav-item:hover .dropdown, .nav-item.is-open .dropdown { display:block; }
  .mega-dropdown {
    position:static; width:100%; max-width:none;
    transform:none; left:auto;
    border:none; box-shadow:none;
    background:rgba(115,88,49,0.04);
    padding:0;
  }
  .nav-item.has-mega:hover .mega-dropdown,
  .nav-item.has-mega.is-open .mega-dropdown { display:block; }
  .mega-grid { grid-template-columns:1fr; padding:8px 0; gap:0; }
  .mega-col {
    padding:0;
    border-left:none;
    border-top:1px solid rgba(115,88,49,0.10);
  }
  .mega-col:first-child { border-top:none; }
  .mega-section { margin-bottom:8px; padding:0 24px; }
  .mega-heading { margin:18px 0 10px; padding-bottom:8px; font-size:19px; }
  .mega-col a { padding:10px 24px; }
  .mega-col a:hover { padding-left:34px; }
  .mega-footer { flex-direction:column; align-items:flex-start; padding:22px 24px; gap:14px; }
  .mega-footer-cta { width:100%; justify-content:center; }
  .breadcrumb-inner { padding:14px 22px; font-size:13.5px; }
  .anchor-nav { padding:0; top:72px; }
  .anchor-nav-inner {
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding:0 22px;
    gap:18px;
    scrollbar-width:none;
  }
  .anchor-nav-inner::-webkit-scrollbar { display:none; }
  .anchor-link { padding:14px 0; font-size:13px; }
  .content-section, .content-section-alt { padding:56px 22px; }
  .split-layout { gap:40px; }
  .bdh-quote { padding:26px 24px; }
  .bdh-quote blockquote { font-size:20px; line-height:1.5; }
  .faq-section { padding:28px 26px; }
  .faq-btn { font-size:19px; padding:20px 0; gap:18px; }
  .faq-answer p { font-size:16px; line-height:1.7; }
  .treatment-category { padding:26px 24px; }
  .treatment-name { font-size:22px; }
}




.site-footer-dark {
  position:relative;
  background:linear-gradient(180deg, var(--footer-bg-from) 0%, var(--footer-bg-to) 100%);
  color:var(--charcoal);
  border-top:none;
}
.site-footer-dark::before {
  content:''; display:block;
  height:4px;
  background:linear-gradient(90deg,
    transparent 0%,
    var(--gold-deep) 12%,
    var(--gold) 50%,
    var(--gold-deep) 88%,
    transparent 100%);
}
.footer-dark-inner {
  max-width:1440px; margin:0 auto;
  padding:76px 40px 0;
}
.footer-dark-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:38px;
  border-bottom:1px solid rgba(42,36,32,0.20);
  margin-bottom:48px;
  flex-wrap:wrap;
  gap:24px;
}
.footer-dark-logo { text-decoration:none; display:inline-block; }
.footer-dark-wordmark {
  font-family:'Cormorant Garamond', serif;
  font-size:32px;
  font-weight:500;
  letter-spacing:0.16em;
  color:var(--charcoal);
  display:block;
  text-transform:uppercase;
  line-height:1.05;
}
.footer-dark-subline {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  color:var(--gold-ink);
  text-transform:uppercase;
  display:block;
  margin-top:10px;
  font-weight:700;
}
.footer-social {
  display:flex;
  align-items:center;
  gap:14px;
}
.footer-social-label {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-right:6px;
}
.footer-social-link {
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px; height:42px;
  border:1px solid rgba(42,36,32,0.5);
  color:var(--charcoal);
  text-decoration:none;
  transition:all 0.25s ease;
  background:rgba(254,252,248,0.4);
}
.footer-social-link:hover {
  border-color:var(--charcoal);
  color:var(--cream);
  background:var(--charcoal);
  transform:translateY(-2px);
}
.footer-dark-cols {
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:28px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(42,36,32,0.20);
}
.footer-dark-heading {
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  font-weight:600;
  color:var(--charcoal);
  margin-bottom:22px;
  letter-spacing:0.01em;
  padding-bottom:14px;
  position:relative;
}
.footer-dark-heading::after {
  content:''; position:absolute;
  left:0; bottom:0;
  width:32px; height:1.5px;
  background:var(--gold-deep);
}
.footer-dark-col ul { list-style:none; }
.footer-dark-col li { margin-bottom:12px; }
.footer-dark-col a {
  color:var(--charcoal);
  text-decoration:none;
  font-size:14.5px;
  font-weight:600;
  transition:all 0.2s ease;
  line-height:1.5;
  letter-spacing:0.005em;
  position:relative;
  padding-left:0;
}
.footer-dark-col a:hover {
  color:var(--gold-ink);
  padding-left:6px;
}
.footer-dark-contact-line {
  margin-bottom:18px;
  line-height:1.55;
}
.footer-dark-contact-line a {
  color:var(--charcoal);
  text-decoration:none;
  transition:color 0.2s;
  font-weight:600;
  font-size:15px;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-contact-line a:hover { color:var(--gold-ink); }
.footer-dark-label {
  display:block;
  color:var(--gold-ink);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  margin-bottom:7px;
  line-height:1.2;
}
.footer-dark-value {
  display:block;
  color:var(--charcoal);
  font-size:15px;
  font-weight:600;
  line-height:1.55;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-hours {
  font-size:15px;
  color:var(--charcoal);
  line-height:1.85;
  margin-top:18px;
  font-weight:600;
  padding-top:18px;
  border-top:1px solid rgba(42,36,32,0.20);
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-hours strong {
  display:block;
  color:var(--gold-ink);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  margin-bottom:10px;
  line-height:1.2;
}
.footer-dark-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:24px;
  padding:34px 0 40px;
  margin-top:4px;
}
.footer-dark-legal {
  flex:1;
  min-width:280px;
  max-width:820px;
}
.footer-dark-copy {
  font-size:13.5px;
  color:var(--text-body);
  line-height:1.7;
  letter-spacing:0.01em;
  font-weight:500;
  margin-bottom:0;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-policy-row {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  margin:0; padding:0;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(42,36,32,0.18);
}
.footer-policy-row li {
  display:flex;
  align-items:center;
  line-height:1;
}
.footer-policy-row li:not(:last-child)::after {
  content:'·';
  margin:0 12px;
  color:var(--gold-ink);
  font-weight:700;
  font-size:14px;
}
.footer-policy-row a {
  font-size:11.5px;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  font-weight:700;
  color:var(--charcoal);
  text-decoration:none;
  transition:color 0.2s ease;
}
.footer-policy-row a:hover { color:var(--gold-ink); }
.footer-dark-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.footer-action-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:12px 22px;
  background:rgba(254,252,248,0.65);
  border:1px solid rgba(42,36,32,0.4);
  color:var(--charcoal);
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  transition:all 0.25s ease;
}
.footer-action-link:hover {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--cream);
}
@media (max-width:1200px) {
  .footer-dark-cols { grid-template-columns:repeat(3, 1fr); }
}
@media (max-width:700px) {
  .footer-dark-inner { padding:62px 22px 0; }
  .footer-dark-top { flex-direction:column; align-items:flex-start; gap:20px; }
  .footer-dark-cols { grid-template-columns:1fr; gap:28px; }
  .footer-dark-bottom { flex-direction:column; align-items:flex-start; }
  .footer-dark-wordmark { font-size:26px; }
}




@supports(padding:env(safe-area-inset-left)) {
  .header-inner,
  .nav-inner,
  .breadcrumb-inner,
  .anchor-nav-inner,
  .footer-dark-inner,
  .age-bar {
    padding-left:max(env(safe-area-inset-left), 14px);
    padding-right:max(env(safe-area-inset-right), 14px);
  }
}

img, svg, video {
  max-width:100%;
  height:auto;
}


@media (hover:none) and (pointer:coarse) {
  .link-arrow,
  .phone-link,
  .anchor-link,
  .footer-policy-row a,
  .contact-row-value,
  .footer-dark-col a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .footer-dark-col li { margin-bottom:6px; }
}


.expandable {
  position:relative;
}
.expandable__content {
  display:grid;
  grid-template-rows:1fr;            
  transition:grid-template-rows 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__inner {
  overflow:hidden;
  min-height:0;                       
}

.expandable.is-collapsed .expandable__content {
  grid-template-rows:0fr;
}
.expandable.is-collapsed .expandable__preview {
  display:block;
}
.expandable__preview {
  display:none;                       
  position:relative;
  margin-bottom:14px;
}
.expandable__preview p {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
  margin:0;
}

.expandable__preview::after {
  content:'';
  position:absolute;
  left:0; right:0; bottom:0;
  height:2.4em;
  background:linear-gradient(180deg, transparent 0%, var(--cream) 92%);
  pointer-events:none;
}

.content-section-alt .expandable__preview::after,
.faq-section .expandable__preview::after,
.treatment-category .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, var(--cream-dark) 92%);
}
.bento-card .expandable__preview::after,
.consult-card .expandable__preview::after,
.contact-form-wrap .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, var(--white) 92%);
}
.consult-card--feature .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, #FAF4E9 92%);
}


.expandable__toggle {
  display:none;                       
  margin-top:18px;
  background:transparent;
  border:none;
  padding:12px 0 6px;
  cursor:pointer;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  min-height:44px;
  align-items:center;
  gap:10px;
  transition:color 0.25s var(--ease), gap 0.25s var(--ease);
  position:relative;
}
.expandable__toggle::before {
  content:'';
  display:inline-block;
  width:24px; height:1px;
  background:var(--gold-deep);
  transition:background-color 0.25s var(--ease), width 0.25s var(--ease);
}
.expandable__toggle:hover,
.expandable__toggle:focus-visible {
  color:var(--charcoal);
  gap:14px;
  outline:none;
}
.expandable__toggle:hover::before,
.expandable__toggle:focus-visible::before {
  background:var(--charcoal);
  width:32px;
}
.expandable__toggle-icon {
  display:inline-block;
  width:12px; height:12px;
  position:relative;
  margin-left:6px;
  transition:transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__toggle-icon::before,
.expandable__toggle-icon::after {
  content:'';
  position:absolute;
  background:currentColor;
  transition:transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__toggle-icon::before {
  top:50%; left:0; right:0;
  height:1.5px; transform:translateY(-50%);
}
.expandable__toggle-icon::after {
  top:0; bottom:0; left:50%;
  width:1.5px; transform:translateX(-50%);
}

.expandable:not(.is-collapsed) .expandable__toggle-icon::after {
  transform:translateX(-50%) scaleY(0);
}

@media (prefers-reduced-motion: reduce) {
  .expandable__content,
  .expandable__toggle,
  .expandable__toggle::before,
  .expandable__toggle-icon::before,
  .expandable__toggle-icon::after {
    transition:none !important;
  }
}


@media (min-width:901px) {
  .expandable.is-collapsed .expandable__content {
    grid-template-rows:1fr;          
  }
  .expandable.is-collapsed .expandable__preview { display:none; }
  .expandable__toggle { display:none !important; }
}
@media (max-width:900px) {
  .expandable[data-collapsible="true"] .expandable__toggle {
    display:inline-flex;
  }
}


.faq-answer {
  max-height:none;                   
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  overflow:hidden;
}
.faq-answer-inner {
  min-height:0;
  overflow:hidden;
  padding-bottom:0;
  transition:padding-bottom 0.4s var(--ease);
}
.faq-btn[aria-expanded="true"] + .faq-answer {
  max-height:none;
  grid-template-rows:1fr;
  padding-bottom:0;                  
}
.faq-btn[aria-expanded="true"] + .faq-answer .faq-answer-inner {
  padding-bottom:28px;
}

.faq-btn {
  min-height:64px;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}


.nav-backdrop {
  position:fixed;
  inset:0;
  background:rgba(30,26,23,0.42);
  opacity:0;
  visibility:hidden;
  z-index:998;
  transition:opacity 0.35s var(--ease), visibility 0.35s var(--ease);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.nav-backdrop.is-open {
  opacity:1;
  visibility:visible;
}
@media (max-width:900px) {
  .main-nav {
    display:block;                   
    position:fixed;
    top:0; bottom:0; right:0;
    width:min(86vw, 380px);
    background:var(--cream);
    z-index:1001;
    transform:translateX(100%);
    transition:transform 0.42s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    box-shadow:-20px 0 60px -10px rgba(42,36,32,0.18);
    border-left:1px solid rgba(115,88,49,0.16);
    border-bottom:none;
    padding-top:env(safe-area-inset-top, 0);
    padding-bottom:calc(40px + env(safe-area-inset-bottom, 0));
  }
  .main-nav.is-open {
    transform:translateX(0);
  }
  
  .nav-inner::before {
    content:'MENU';
    display:block;
    font-family:'Cormorant Garamond', serif;
    font-size:12px;
    letter-spacing:var(--ls-widest);
    color:var(--gold-ink);
    font-weight:700;
    text-transform:uppercase;
    padding:26px 26px 14px;
    border-bottom:1px solid rgba(115,88,49,0.14);
    background:var(--cream);
    position:sticky;
    top:0;
    z-index:2;
  }
  .nav-inner { padding:0 0 16px; }
  .nav-item {
    width:100%;
    border-bottom:1px solid rgba(115,88,49,0.18);
  }
  .nav-item:last-child { border-bottom:none; }

  
  .nav-item > a {
    display:flex;
    align-items:center;
    gap:14px;
    font-family:'Cormorant Garamond', serif;
    font-size:22px;
    font-weight:500;
    letter-spacing:-0.005em;
    text-transform:none;
    color:var(--charcoal);
    padding:20px 26px 12px;
    line-height:1.15;
    text-decoration:none;
    position:relative;
    background:var(--cream-mid);
    border-left:3px solid var(--gold-deep);
  }
  .nav-item > a::before {
    content:'';
    flex-shrink:0;
    width:6px;
    height:6px;
    background:var(--gold-deep);
    transform:rotate(45deg);
    margin-right:2px;
  }
  .nav-item > a:hover,
  .nav-item > a:focus-visible,
  .nav-item > a:active {
    color:var(--gold-ink);
    background:var(--gold-pale);
  }
  
  .nav-item > a:not([aria-haspopup="true"])::after {
    content:'→';
    margin-left:auto;
    font-family:'Cormorant Garamond', serif;
    font-size:20px;
    color:var(--gold-ink);
    font-weight:400;
    line-height:1;
    transition:transform 0.25s var(--ease);
  }
  .nav-item > a:not([aria-haspopup="true"]):hover::after {
    transform:translateX(4px);
  }
  .nav-arrow-icon { display:none; }    

  
  .dropdown,
  .mega-dropdown {
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:none !important;
    transform:none !important;
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    padding:0 !important;
    min-width:0 !important;
  }
  .mega-grid {
    grid-template-columns:1fr !important;
    padding:0 !important;
    gap:0 !important;
  }
  .mega-col {
    padding:0 !important;
    border-left:none !important;
    border-top:none !important;
  }
  .mega-section {
    margin:0 !important;
    padding:6px 0 4px !important;
    border-top:1px solid rgba(115,88,49,0.10) !important;
  }
  .mega-section:first-child { border-top:none !important; }

  
  .mega-heading {
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    font-family:'Nunito Sans', sans-serif !important;
    font-size:12.5px !important;
    font-weight:700 !important;
    letter-spacing:0.18em !important;
    text-transform:uppercase !important;
    color:var(--gold-ink) !important;
    border:none !important;
    padding:18px 26px 10px !important;
    margin:0 !important;
  }
  .mega-heading::before {
    content:'';
    flex-shrink:0;
    width:18px;
    height:1px;
    background:var(--gold-deep);
  }

  
  .dropdown a,
  .mega-col a {
    display:block !important;
    font-family:'Nunito Sans', sans-serif !important;
    font-size:16px !important;
    font-weight:500 !important;
    letter-spacing:0 !important;
    color:var(--text-primary) !important;
    text-transform:none !important;
    padding:13px 26px 13px 44px !important;
    line-height:1.4 !important;
    text-decoration:none !important;
    border-bottom:1px solid rgba(115,88,49,0.06) !important;
    transition:background 0.2s var(--ease), color 0.2s var(--ease), padding-left 0.2s var(--ease) !important;
    -webkit-tap-highlight-color:transparent;
    position:relative;
  }
  .dropdown a:last-child,
  .mega-col a:last-of-type,
  .mega-col a:last-child { border-bottom:none !important; }
  .dropdown a::before,
  .mega-col a::before {
    content:'' !important;
    position:absolute !important;
    left:26px !important;
    top:50% !important;
    width:6px !important;
    height:1px !important;
    background:var(--gold) !important;
    transform:translateY(-50%) !important;
    opacity:0.7 !important;
    transition:width 0.2s var(--ease), opacity 0.2s var(--ease) !important;
  }
  .dropdown a:active,
  .mega-col a:active,
  .dropdown a:hover,
  .mega-col a:hover {
    background:rgba(115,88,49,0.06) !important;
    color:var(--gold-ink) !important;
    padding-left:52px !important;
  }
  .dropdown a:active::before,
  .mega-col a:active::before,
  .dropdown a:hover::before,
  .mega-col a:hover::before {
    width:14px !important;
    opacity:1 !important;
    background:var(--gold-deep) !important;
  }

  
  .mega-footer {
    flex-direction:column !important;
    align-items:stretch !important;
    padding:20px 26px 24px !important;
    margin:14px 0 0 !important;
    background:linear-gradient(180deg, var(--cream-mid) 0%, var(--cream-dark) 100%) !important;
    border-top:1px solid rgba(115,88,49,0.20) !important;
    gap:14px !important;
  }
  .mega-footer-text {
    font-family:'Cormorant Garamond', serif !important;
    font-size:16px !important;
    line-height:1.45 !important;
    font-style:italic !important;
    color:var(--text-body) !important;
  }
  .mega-footer-text strong {
    color:var(--charcoal) !important;
    font-style:normal !important;
  }
  .mega-footer-cta {
    width:100% !important;
    justify-content:center !important;
    padding:15px 22px !important;
    font-size:11.5px !important;
    background:var(--charcoal) !important;
    color:var(--cream) !important;
    border-color:var(--charcoal) !important;
  }

  
  body[data-nav-open="true"] {
    overflow:hidden;
    position:fixed;
    width:100%;
  }
}


@media (min-width:601px) and (max-width:1024px) {
  
  .content-section,
  .content-section-alt {
    padding:clamp(56px, 7vw, 84px) 32px;
  }
  .page-hero {
    padding:56px 32px 64px;
    gap:32px;
    grid-template-columns:1fr;
  }
  .hero-image-col {
    aspect-ratio:16/9;
    max-height:46vh;
  }
  .hero-page-title {
    font-size:clamp(40px, 5.4vw, 64px);
  }
  .hero-bio {
    font-size:18px;
    line-height:1.7;
  }
  
  .credential-row { padding:30px 28px; }
  .credential-item {
    flex:1 1 calc(33.333% - 0px);
    min-width:140px;
    padding:14px 18px;
  }
  .credential-item::after,
  .credential-item::before { display:none; }
  .credential-item:nth-child(n+1):nth-child(-n+3) {
    border-bottom:1px solid rgba(201,169,110,0.30);
    padding-bottom:22px;
    margin-bottom:6px;
  }
  
  .bento-grid {
    grid-template-columns:repeat(2, 1fr);
    gap:16px;
  }
  .bento-card--lg { grid-column:span 2; }
  .bento-card--md { grid-column:span 1; }
  .bento-card--sm { grid-column:span 1; }
  .bento-card--feature { grid-column:span 2; }
  .bento-card { padding:32px 28px; }
  
  .consultation-steps-grid {
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
  }
  .consult-card { padding:32px 22px; }
  .consultation-step-title { font-size:21px; }
  
  .physician-feature-inner {
    grid-template-columns:1fr;
    gap:44px;
  }
  .physician-feature { padding:clamp(64px, 8vw, 88px) 32px; }
  .physician-name { font-size:clamp(36px, 5vw, 52px); }
  .physician-portrait { aspect-ratio:3/4; max-width:480px; margin:0 auto; }
  
  .contact-inner {
    grid-template-columns:1fr;
    gap:44px;
  }
  .contact-intro { position:static; max-width:none; }
  .contact-form-wrap { padding:44px 36px; }
  
  .footer-dark-cols {
    grid-template-columns:repeat(2, 1fr);
    gap:36px 28px;
  }
  .footer-dark-inner { padding:64px 32px 0; }
}


@media (min-width:768px) and (max-width:1024px) {
  .editorial-interlude { padding:90px 32px; }
  .cta-section { padding:88px 32px; }
  .cta-inner { padding:54px 44px; }
  .mid-cta { padding:64px 32px; }
}


@media (max-width:600px) {
  
  :root {
    --sp-section:clamp(56px, 9vw, 72px);
  }
  .content-section,
  .content-section-alt {
    padding:60px 20px;
  }
  
  .page-hero {
    padding:36px 20px 44px;
    gap:24px;
  }
  .hero-text-col { padding:0; }
  .hero-page-title {
    font-size:clamp(32px, 9.6vw, 44px);
    line-height:1.06;
    margin-bottom:18px;
  }
  .hero-bio {
    font-size:16.5px;
    line-height:1.65;
  }
  .hero-image-col {
    aspect-ratio:4/3;
    max-height:50vh;
    border-radius:3px;
  }
  
  .section-eyebrow {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:12px;
  }
  
  .section-title {
    font-size:clamp(30px, 8.4vw, 40px);
    line-height:1.08;
    margin-bottom:14px;
  }
  
  .body-text {
    font-size:16.5px;
    line-height:1.72;
    margin-bottom:16px;
  }
  
  .credential-row { padding:28px 18px; }
  .credential-item {
    padding:18px 0;
    min-height:auto;
  }
  .credential-label {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:8px;
  }
  .credential-value { font-size:17px; }
  .credential-value i.i-italic { font-size:13.5px; margin-top:2px; }
  
  .btn-primary,
  .btn-secondary {
    padding:16px 28px;
    font-size:13px;
    letter-spacing:0.1em;
    width:100%;
    justify-content:center;
    min-height:52px;
  }
  
  .bdh-quote {
    padding:24px 22px;
    margin:22px 0;
  }
  .bdh-quote blockquote {
    font-size:18.5px;
    line-height:1.5;
    margin-bottom:14px;
  }
  
  .bento-grid { gap:12px; margin-top:6px; }
  .bento-card { padding:28px 22px; }
  .bento-title { font-size:21px; line-height:1.18; margin-bottom:12px; }
  .bento-body { font-size:15.5px; line-height:1.68; }
  .bento-icon { width:44px; height:44px; margin-bottom:16px; }
  
  .editorial-interlude { padding:70px 20px; }
  .editorial-interlude::before { top:38px; }
  .editorial-interlude-eyebrow { margin-bottom:28px; font-size:10.5px; }
  .editorial-interlude-quote {
    font-size:clamp(22px, 6.4vw, 30px);
    line-height:1.36;
    margin-bottom:34px;
  }
  .editorial-interlude-quote::before,
  .editorial-interlude-quote::after {
    width:5px; height:5px;
    margin:0 9px;
  }
  
  .consult-card { padding:34px 24px; }
  .consult-num { font-size:38px; margin-bottom:14px; }
  .consultation-step-title { font-size:21px; margin-bottom:12px; }
  .consult-tag {
    font-size:10.5px;
    padding:9px 18px;
    letter-spacing:0.22em;
    top:-14px;
  }
  
  .treatment-category {
    padding:24px 22px;
    margin-top:24px;
  }
  .treatment-category-label {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:14px;
  }
  .treatment-name { font-size:20px; margin-bottom:6px; }
  .treatment-provider {
    font-size:11.5px;
    letter-spacing:0.16em;
    margin-bottom:12px;
  }
  .treatment-body { font-size:16px; line-height:1.7; }
  .treatment-item { margin-bottom:22px; padding-bottom:22px; }
  .treatment-footnote {
    padding:18px 20px;
    font-size:13.5px;
    line-height:1.7;
    margin-top:26px;
  }
  
  .faq-section { padding:24px 20px; }
  .faq-btn {
    font-size:17.5px;
    padding:18px 0;
    gap:14px;
    line-height:1.38;
  }
  .faq-icon { width:18px; height:18px; margin-top:6px; }
  .faq-answer-inner p {
    font-size:15.5px;
    line-height:1.72;
  }
  .faq-btn[aria-expanded="true"] + .faq-answer .faq-answer-inner {
    padding-bottom:22px;
  }
  
  .physician-feature { padding:64px 20px; }
  .physician-feature-inner { gap:36px; }
  .physician-name { font-size:clamp(34px, 8.8vw, 44px); }
  .physician-credentials { font-size:17px; margin-bottom:24px; }
  .physician-philosophy { font-size:16.5px; line-height:1.72; }
  .physician-meta { padding:20px 0; gap:20px; margin-bottom:28px; }
  .physician-meta-value { font-size:16.5px; }
  .physician-meta-value i.i-italic { font-size:13px; }
  .physician-actions { gap:14px; flex-direction:column; align-items:stretch; }
  .physician-actions .btn-primary { width:100%; justify-content:center; }
  
  .mid-cta { padding:54px 20px; }
  .mid-cta-eyebrow { font-size:10.5px; }
  .mid-cta-title {
    font-size:clamp(26px, 7.6vw, 36px);
    line-height:1.14;
  }
  .mid-cta-sub { font-size:15.5px; margin-bottom:26px; }
  
  .cta-section { padding:60px 16px; }
  .cta-inner {
    padding:42px 26px;
    box-shadow:
      0 0 0 4px rgba(254,252,248,0.55),
      0 0 0 5px rgba(115,88,49,0.45),
      0 20px 50px -24px rgba(42,36,32,0.22);
  }
  .cta-section::before,
  .cta-section::after {
    width:44px; height:44px;
    top:18px;
  }
  .cta-section::before { left:18px; }
  .cta-section::after { right:18px; }
  .cta-title {
    font-size:clamp(28px, 8.4vw, 40px);
    line-height:1.12;
  }
  .cta-sub { font-size:16px; line-height:1.65; margin-bottom:26px; }
  
  .contact-section { padding:60px 16px; }
  .contact-title { font-size:clamp(34px, 8.8vw, 46px); }
  .contact-lede { font-size:16.5px; }
  .contact-form-wrap {
    padding:32px 22px;
  }
  .form-card-title {
    font-size:24px;
    margin-bottom:28px;
  }
  .form-label { font-size:10.5px; letter-spacing:0.16em; }
  .form-input {
    font-size:16px;                  
  }
  
  .anchor-link {
    font-size:12px;
    padding:14px 4px;
    letter-spacing:0.1em;
  }
  .anchor-link.is-active {
    color:var(--charcoal);
  }
  .anchor-link.is-active::after {
    height:2.5px;
    background:var(--gold-deep);
  }
  
  .footer-dark-inner { padding:54px 20px 0; }
  .footer-dark-wordmark { font-size:24px; letter-spacing:0.14em; }
  .footer-dark-heading { font-size:17px; margin-bottom:18px; padding-bottom:12px; }
  .footer-dark-col a { font-size:14px; }
  .footer-dark-bottom {
    padding:28px 0 36px;
    gap:20px;
  }
  .footer-policy-row {
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    margin-top:14px;
    padding-top:14px;
  }
  .footer-policy-row li:not(:last-child)::after {
    display:none;
  }
  .footer-policy-row li {
    padding:8px 0;
    width:100%;
    border-bottom:1px solid rgba(42,36,32,0.10);
  }
  .footer-policy-row li:last-child { border-bottom:none; }
  .footer-policy-row a { font-size:11px; }
  .footer-dark-actions { width:100%; flex-direction:column; gap:8px; }
  .footer-action-link {
    width:100%;
    justify-content:center;
    padding:14px 20px;
  }
}


@media (max-width:400px) {
  .header-inner { padding:0 12px; height:58px; }
  .site-logo .wordmark { font-size:13px; letter-spacing:0.04em; }
  .btn-book {
    padding:8px 11px;
    font-size:11px;
    letter-spacing:0.04em;
  }
  .anchor-nav { top:58px; }
  .content-section,
  .content-section-alt { padding:52px 16px; }
  .hero-page-title { font-size:30px; }
  .section-title { font-size:28px; }
  .editorial-interlude-quote { font-size:21px; }
  .cta-title { font-size:26px; }
  .contact-title { font-size:32px; }
  .form-row { gap:0; }
  .bdh-quote { padding:22px 18px; }
  .faq-btn { font-size:16.5px; }
}


.img-placeholder img,
.hero-image-col img,
.physician-portrait img {
  transition:opacity 0.6s ease;
}


@media print {
  .expandable.is-collapsed .expandable__content { grid-template-rows:1fr !important; }
  .expandable__preview { display:none !important; }
  .expandable__toggle { display:none !important; }
  .faq-answer { grid-template-rows:1fr !important; }
  .faq-answer-inner { padding-bottom:18px !important; }
  .nav-backdrop, .main-nav { display:none !important; }
}





.two-col-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  margin-top: 40px;
}

@media (max-width: 1000px) {
  .two-col-content { grid-template-columns: 1fr; gap: 0; }
}


.content-lead {
  font-family: 'Cormorant Garamond', serif;
  font-size: var(--fs-md);
  font-weight: 500;
  line-height: 1.58;
  color: var(--text-primary);
  margin-bottom: 28px;
  letter-spacing: var(--ls-snug);
}


.consultation-steps-grid.four-col {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 900px) {
  .consultation-steps-grid.four-col { grid-template-columns: 1fr 1fr; gap: 18px; }
}

@media (max-width: 600px) {
  .consultation-steps-grid.four-col { grid-template-columns: 1fr; }
}



.site-logo {
  display:flex; flex-direction:row; align-items:center; justify-content:center;
  gap:20px; text-align:left; text-decoration:none;
}
.logo-mark {
  width:44px; height:44px; object-fit:contain;
  flex-shrink:0; display:block; vertical-align:middle;
}
.logo-text-group {
  display:flex; flex-direction:column; justify-content:center;
  padding-left:20px; border-left:1px solid rgba(201,169,110,0.4);
}
.footer-dark-logo {
  display:flex; flex-direction:row; align-items:center;
  gap:24px; text-align:left; text-decoration:none;
}
.footer-logo-mark {
  width:52px; height:52px; object-fit:contain; flex-shrink:0; display:block;
}
.footer-logo-text {
  display:flex; flex-direction:column; justify-content:center;
  padding-left:24px; border-left:1px solid rgba(201,169,110,0.4);
}
@media (max-width:560px) {
  .logo-mark { width:34px; height:34px; }
  .logo-text-group { padding-left:14px; }
  .site-logo { gap:12px; }
}
@media (max-width:400px) {
  .logo-mark { width:30px; height:30px; }
  .logo-text-group { padding-left:12px; }
  .site-logo { gap:10px; }
}
