
/* ── NAV ── */
#nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:0 5vw;
  background:rgba(26,10,18,0);
  transition:background .4s, backdrop-filter .4s, padding .4s;
}
#nav.scrolled {
  background:rgba(26,10,18,.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(245,230,216,.06);
}

/* ── NAV LOGO IMAGE (service nav uses img, not text) ── */
#nav { display:flex; align-items:center; justify-content:space-between; height:72px; }
#nav > .nl img, #nav a.nl img {
  height:34px; width:auto; display:block;
}
#nav .nav-back {
  font-family:var(--font); font-size:11px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  color:#f7f2ec; text-decoration:none; white-space:nowrap;
}
#nav .nav-back:hover { color:var(--tang); }
#nav .nav-cta {
  font-family:var(--font); font-size:11px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  color:#fff; text-decoration:none; white-space:nowrap;
  background:var(--tang); padding:9px 16px; border-radius:100px;
}

.nav-inner {
  display:flex; align-items:center; gap:1.4rem;
  height:72px; max-width:1360px; margin:0 auto;
}
.nav-logo {
  font-family:var(--font); font-weight:900; font-size:22px;
  letter-spacing:-1px; color:var(--fawn); text-decoration:none;
  flex-shrink:0;
}
.nav-logo span { color:var(--tang); }
.nav-links {
  display:flex; align-items:center; gap:1.4rem;
  margin-left:auto; list-style:none;
  flex-wrap:nowrap; min-width:0;
}
.nl, .nd-trigger {
  font-family:var(--font); font-size:10px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase;
  color:#f7f2ec !important; text-decoration:none;
  transition:color .2s; background:none; border:none; cursor:pointer;
  padding:0;
}
.nl:hover, .nd-trigger:hover { color:var(--tang) !important; }
.nd { position:relative; }
.nd-panel {
  position:absolute; top:calc(100% + 4px); left:50%;
  transform:translateX(-50%) translateY(8px);
  background:rgba(22,8,16,.98);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(245,230,216,.1);
  border-radius:6px;
  padding:1.5rem 0; 
  display:flex;
  flex-direction:column;
  min-width:260px;
  max-height:80vh;
  overflow-y:auto;
  z-index:2000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.nd-panel.open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.nd-head {
  font-family:var(--font); font-size:8px; font-weight:800;
  letter-spacing:3px; text-transform:uppercase;
  color:var(--tang); margin-bottom:12px;
}
.nd-col { display:flex; flex-direction:column; gap:10px; min-width:160px; }
.nd-col a {
  font-family:var(--font); font-size:11px; font-weight:600;
  letter-spacing:1px; color:var(--fawn2); text-decoration:none;
  transition:color .2s;
}
.nd-col a:hover { color:var(--fawn); }
.nav-right { display:flex; align-items:center; gap:1rem; flex-shrink:0; }
.nav-phone {
  font-family:var(--font); font-size:10px; font-weight:700;
  letter-spacing:2px; color:var(--fawn3); text-decoration:none;
  transition:color .2s;
}
.nav-phone:hover { color:var(--tang); }
.nav-cta { font-size:10px !important; padding:12px 22px !important; }
.nav-ham {
  display:none;
  flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer;
  padding:12px 10px; margin-left:auto;
  min-width:44px; min-height:44px;
  align-items:center; justify-content:center;
}
@media(max-width:1100px) {
  .nav-ham { display:flex !important; }
  .nav-links, #nav-links { display:none !important; }
  .nav-right { display:none !important; }
}
.nav-ham span { width:22px; height:2px; background:var(--fawn); display:block; transition:.3s; }

/* ── MOBILE DRAWER ── */
.mob-drawer {
  position:fixed; top:0; left:100vw; bottom:0; width:min(340px,90vw);
  background:#481B2E; background:var(--ox,#481B2E); z-index:1100;
  display:flex; flex-direction:column;
  transition:left .4s var(--ease), visibility .4s;
  overflow-y:auto;
  visibility:hidden;
}
.mob-drawer.open { left:calc(100vw - min(340px,90vw)); visibility:visible; }
.mob-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  z-index:1099; opacity:0; pointer-events:none; transition:opacity .3s;
}
.mob-overlay.on { opacity:1; pointer-events:auto; }
.mob-top {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.5rem 1.5rem 1rem;
  border-bottom:1px solid rgba(245,230,216,.06);
}
.mob-logo {
  font-family:var(--font); font-weight:900; font-size:20px;
  letter-spacing:-1px; color:var(--fawn); text-decoration:none;
}
.mob-logo span { color:var(--tang); }
.mob-close {
  background:none; border:none; color:var(--fawn3); font-size:18px;
  cursor:pointer; padding:4px; transition:color .2s;
}
.mob-close:hover { color:var(--fawn); }
.mob-body {
  flex:1; display:flex; flex-direction:column; padding:1rem 1.5rem;
}
.mob-link {
  font-family:var(--font); font-size:14px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase;
  color:var(--fawn); text-decoration:none;
  padding:14px 0; border-bottom:1px solid rgba(245,230,216,.06);
  display:block; transition:color .2s;
}
.mob-link:hover { color:var(--tang); }
.mob-section {
  font-family:var(--font); font-size:8px; font-weight:800;
  letter-spacing:3px; text-transform:uppercase;
  color:var(--tang); padding:16px 0 4px;
}
.mob-sub {
  font-family:var(--font); font-size:12px; font-weight:600;
  letter-spacing:1px; color:var(--fawn2); text-decoration:none;
  padding:9px 0 9px 12px; display:block;
  border-bottom:1px solid rgba(245,230,216,.03);
  transition:color .2s;
}
.mob-sub:hover { color:var(--fawn); }
.mob-divider { height:1px; background:rgba(245,230,216,.06); margin:12px 0; }
.mob-footer {
  padding:1.5rem; display:flex; flex-direction:column; gap:10px;
  border-top:1px solid rgba(245,230,216,.06);
}

/* ── MOBILE CTA BAR ── */
#mob-cta-bar {
  display:none; position:fixed; bottom:0; left:0; right:0;
  z-index:990; background:rgba(26,10,18,.95);
  backdrop-filter:blur(10px);
  border-top:1px solid rgba(245,230,216,.08);
  grid-template-columns:1fr 2fr 1fr; gap:0;
}
.mcta-call, .mcta-book, .mcta-wa {
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font); font-size:9px; font-weight:800;
  letter-spacing:2px; text-transform:uppercase;
  text-decoration:none; padding:14px 8px;
  transition:background .2s;
}
.mcta-call { color:var(--fawn2); background:rgba(245,230,216,.04); }
.mcta-call:hover { background:rgba(245,230,216,.08); color:var(--fawn); }
.mcta-book { color:#fff; background:var(--tang); }
.mcta-book:hover { background:var(--tang2); }
.mcta-wa { color:#fff; background:#25d366; }
.mcta-wa:hover { background:#1da851; }

/* ── FOOTER ── */
#footer {
  background:var(--ox2); border-top:1px solid rgba(245,230,216,.06);
  padding:6rem 6vw 3rem;
}
.ft-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:4rem;
  max-width:1360px; margin:0 auto 4rem;
}
.ft-logo {
  font-family:var(--font); font-weight:900; font-size:24px;
  letter-spacing:-1px; color:var(--fawn); margin-bottom:8px;
}
.ft-logo span { color:var(--tang); }
.ft-tag {
  font-size:11px; font-weight:300; color:var(--fawn2);
  letter-spacing:1px; margin-bottom:16px;
}
#footer address { font-style:normal; font-size:12px; color:var(--fawn3); line-height:1.8; }
.ft-phone, .ft-wa {
  display:block; font-size:12px; font-weight:600;
  text-decoration:none; margin-top:8px; color:var(--tang);
  transition:color .2s;
}
.ft-phone:hover, .ft-wa:hover { color:var(--tang-t); }
.ft-col h4 {
  font-family:var(--font); font-size:9px; font-weight:800;
  letter-spacing:3px; text-transform:uppercase;
  color:var(--tang); margin-bottom:16px;
  font-size:9px !important; text-transform:uppercase;
}
.ft-col a, .ft-col span {
  display:block; font-size:12px; font-weight:400;
  color:var(--fawn3); text-decoration:none;
  padding:4px 0; transition:color .2s; line-height:1.6;
}
.ft-col a:hover { color:var(--fawn); }
.ft-bottom {
  max-width:1360px; margin:0 auto;
  border-top:1px solid rgba(245,230,216,.06);
  padding-top:2rem; display:flex; align-items:flex-start;
  justify-content:space-between; gap:2rem; flex-wrap:wrap;
}
.ft-legal { font-size:10px; color:var(--fawn3); line-height:1.8; max-width:720px; }
.ft-leon {
  font-family:var(--font); font-weight:900; font-size:28px;
  letter-spacing:6px; flex-shrink:0; white-space:nowrap;
}
.medical-disclaimer {
  font-size:10px; color:var(--fawn3); line-height:1.7;
  border-top:1px solid rgba(245,230,216,.06);
  padding-top:2rem; max-width:1360px; margin:2rem auto 0;
}

/* ── RESPONSIVE NAV ── */
@media(max-width:960px){
  .nav-links, .nav-phone { display:none; }
  .nav-ham { display:flex; }
  #mob-cta-bar { display:grid; }
  body { padding-bottom:60px; }
  .ft-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
}
@media(max-width:540px){
  .ft-grid { grid-template-columns:1fr 1fr; gap:1.6rem 1.4rem; }
  .ft-brand { grid-column:1 / -1; }
  .ft-col h4 { margin-bottom:10px; }
  .ft-col a, .ft-col span { font-size:12px; padding:3px 0; line-height:1.5; }
  .ft-bottom { flex-direction:column; gap:1.2rem; }
  .ft-leon { font-size:22px; letter-spacing:5px; white-space:nowrap; }
  #nav { padding:0 4vw; }
}

.nd-panel a {
  display: block !important;
  padding: 10px 20px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #f7f2ec !important;
  text-decoration: none !important;
  transition: color .15s, background .15s;
  white-space: nowrap;
  background: transparent !important;
}
.nd-panel a:hover {
  color: var(--tang) !important;
  background: rgba(231,113,77,.08) !important;
}
.nd-panel a:visited {
  color: #f7f2ec !important;
}
.nd-panel a:active {
  color: var(--tang) !important;
}
.nd-panel-section {
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--tang);
  padding: 12px 20px 4px;
  margin-top: 4px;
}
.nd-panel-section:first-child { margin-top: 0; }
.nd-panel hr { border: none; border-top: 1px solid rgba(247,242,236,.07); margin: 6px 0; }
/* Accessibility: minimum touch targets */
.btn, .mob-link, .mob-sub, .nl, .nav-cta, .nav-back {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.mob-link, .mob-sub {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
#mob-cta-bar a, #mob-cta-bar button {
  min-height: 48px;
}
/* Prevent text size adjustment on orientation change */
html { -webkit-text-size-adjust: 100%; }
/* Smooth momentum scrolling in drawer */
.mob-body { -webkit-overflow-scrolling: touch; }
