@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500;600&display=swap');

#heroPhoto { background-image: url("https://cdn.prod.website-files.com/67d9b4aefc78031664182db4/69b0a6ac0d7e3ea98e1ceffb_DesertMesaBackground.jpg"); }

/* ── TOKENS ─────────────────────────────────────────── */
:root {
  --ochre:      #C17F3A;
  --ochre-text: #8C5A1A;
  --rust:       #7A3A1A;
  --rust-dark:  #5E2C12;
  --parch:      #F5EDE0;
  --sand:       #E8D9C4;
  --stone:      #D4C0A8;
  --dusk:       #2E1E10;

  --bg:             #F5EDE0;
  --bg-alt:         #EFE4D2;
  --bg-dark:        #2A1A0E;
  --text-primary:   #2E1E10;
  --text-secondary: #4A3728;
  --text-muted:     #5C4535;
  --nav-bg:         rgba(245,237,224,0.96);
  --nav-border:     rgba(139,74,43,0.25);
  --dropdown-bg:    #FFFAF4;
  --dropdown-shadow:0 20px 60px rgba(61,43,31,0.12),0 4px 16px rgba(61,43,31,0.08);
  --divider:        rgba(139,74,43,0.18);
  --hover-pill:     rgba(193,127,58,0.08);
  --focus-ring:     #8C5A1A;
  --card-bg:        #FFFAF4;
  --radius:         12px;
  --nav-height:     72px;
}
[data-theme="dark"] {
  --ochre-text: #D4974A;
  --rust:       #C06030;
  --rust-dark:  #9A4820;
  --bg:             #1A0F08;
  --bg-alt:         #221508;
  --bg-dark:        #100A04;
  --text-primary:   #F2E4D0;
  --text-secondary: #D4B896;
  --text-muted:     #B89478;
  --nav-bg:         rgba(20,12,8,0.97);
  --nav-border:     rgba(193,127,58,0.28);
  --dropdown-bg:    #1A0F09;
  --dropdown-shadow:0 20px 60px rgba(0,0,0,0.5),0 4px 16px rgba(0,0,0,0.4);
  --divider:        rgba(193,127,58,0.15);
  --hover-pill:     rgba(193,127,58,0.12);
  --focus-ring:     #D4974A;
  --card-bg:        #211408;
}

/* ── RESET ──────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Jost',sans-serif; background:var(--bg); color:var(--text-primary); overflow-x:hidden; transition:background 0.4s,color 0.4s; }
:focus { outline:none; }
:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; border-radius:4px; }
img { max-width:100%; display:block; }

/* ── SHARED UTILS ───────────────────────────────────── */
.section-wrap { max-width:1280px; margin:0 auto; padding:0 40px; }
.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--ochre-text); margin-bottom:18px;
}
.eyebrow::before { content:''; width:24px; height:1px; background:var(--ochre-text); opacity:0.5; }
.section-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,4.5vw,60px);
  font-weight:300; line-height:1.1; color:var(--text-primary);
}
.section-title em { font-style:italic; color:var(--ochre-text); }
.section-body { font-size:16px; color:var(--text-muted); line-height:1.8; max-width:560px; }
.btn-primary {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 28px; background:var(--rust); color:#fff;
  border-radius:9px; font-size:13px; font-weight:600; letter-spacing:0.1em;
  text-transform:uppercase; text-decoration:none; border:none; cursor:pointer;
  transition:background 0.2s,transform 0.15s,box-shadow 0.2s; min-height:44px;
  box-shadow:0 2px 16px rgba(122,58,26,0.3);
  font-family:'Jost',sans-serif;
}
.btn-primary:hover { background:var(--rust-dark); transform:translateY(-1px); box-shadow:0 4px 24px rgba(122,58,26,0.45); }
.btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 24px; background:transparent; color:var(--ochre-text);
  border-radius:9px; font-size:13px; font-weight:600; letter-spacing:0.1em;
  text-transform:uppercase; text-decoration:none;
  border:1.5px solid rgba(140,90,26,0.4);
  transition:border-color 0.2s,background 0.2s,transform 0.15s; min-height:44px;
  font-family:'Jost',sans-serif;
}
.btn-ghost:hover { border-color:var(--ochre-text); background:var(--hover-pill); transform:translateY(-1px); }
.divider-line { width:48px; height:2px; background:linear-gradient(to right,var(--ochre),transparent); margin:20px 0 32px; }

/* scroll-reveal */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }
.reveal-delay-4 { transition-delay:0.4s; }
.reveal-delay-5 { transition-delay:0.5s; }

/* ── NAVBAR ─────────────────────────────────────────── */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--nav-height); background:var(--nav-bg); border-bottom:1px solid var(--nav-border); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); transition:background 0.4s,border-color 0.4s; opacity:0; transform:translateY(-12px); animation:navSlideIn 1s cubic-bezier(0.22,1,0.36,1) 2.2s forwards; }
@keyframes navSlideIn { to { opacity:1; transform:none; } }
.nav-inner { max-width:1280px; margin:0 auto; height:100%; display:flex; align-items:center; justify-content:space-between; padding:0 32px; }
.logo { display:flex; flex-direction:row; align-items:center; gap:12px; line-height:1; text-decoration:none; flex-shrink:0; }
.logo-mark { width:40px; height:32px; flex-shrink:0; transition:opacity 0.2s; }
.logo:hover .logo-mark { opacity:0.8; }
.logo-text { display:flex; flex-direction:column; }
.logo-top { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--text-primary); letter-spacing:0.04em; line-height:1; }
.logo-sub { font-size:10px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--ochre-text); margin-top:4px; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-item { position:static; }
.nav-link { display:flex; align-items:center; gap:6px; padding:8px 16px; font-size:14px; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-secondary); border-radius:8px; cursor:pointer; transition:color 0.2s,background 0.2s; border:none; background:none; white-space:nowrap; min-height:44px; font-family:'Jost',sans-serif; }
.nav-link:hover, .nav-item.active > .nav-link { color:var(--text-primary); background:var(--hover-pill); }
.nav-link .chevron { width:14px; height:14px; transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1); opacity:0.7; flex-shrink:0; stroke:currentColor; }
.nav-item.active > .nav-link .chevron { transform:rotate(180deg); opacity:1; }
.mega-backdrop { position:fixed; top:var(--nav-height); left:0; right:0; bottom:0; background:rgba(20,10,5,0.35); opacity:0; pointer-events:none; transition:opacity 0.3s; z-index:999; backdrop-filter:blur(3px); }
.mega-backdrop.visible { opacity:1; pointer-events:auto; }
.mega-menu { position:fixed; top:var(--nav-height); left:0; right:0; z-index:1001; background:var(--dropdown-bg); border-bottom:1px solid var(--nav-border); box-shadow:var(--dropdown-shadow); transform:translateY(-10px); opacity:0; pointer-events:none; transition:transform 0.3s cubic-bezier(0.22,1,0.36,1),opacity 0.25s; }
.mega-menu.open { transform:translateY(0); opacity:1; pointer-events:auto; }
.mega-inner { max-width:1280px; margin:0 auto; padding:40px 48px 44px; }
.layout-about { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.layout-services { display:grid; grid-template-columns:240px 1fr; gap:32px; }
.services-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; align-content:start; }
.layout-patients { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; max-width:640px; }
.layout-faq { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.menu-section-label { font-size:11px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--ochre-text); margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.menu-section-label::after { content:''; flex:1; height:1px; background:var(--divider); }
.drop-card { display:flex; flex-direction:column; padding:18px 20px; border-radius:var(--radius); text-decoration:none; border:1px solid transparent; transition:background 0.2s,border-color 0.2s,transform 0.2s; cursor:pointer; }
.drop-card:hover { background:var(--hover-pill); border-color:var(--nav-border); transform:translateY(-1px); }
.drop-card-icon { width:32px; height:32px; border-radius:8px; background:linear-gradient(135deg,rgba(193,127,58,0.15),rgba(160,82,45,0.08)); display:flex; align-items:center; justify-content:center; margin-bottom:12px; flex-shrink:0; }
.drop-card-icon svg { width:16px; height:16px; stroke:var(--ochre-text); }
.drop-card-title { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:600; color:var(--text-primary); margin-bottom:6px; line-height:1.2; transition:color 0.2s; }
.drop-card:hover .drop-card-title { color:var(--ochre-text); }
.drop-card-desc { font-size:14px; color:var(--text-muted); line-height:1.65; }
.services-feature { background:linear-gradient(150deg,rgba(193,127,58,0.12),rgba(107,58,42,0.08)); border:1px solid var(--nav-border); border-radius:var(--radius); padding:28px 24px; display:flex; flex-direction:column; justify-content:space-between; }
.feature-eyebrow { font-size:11px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--ochre-text); margin-bottom:10px; }
.feature-title { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--text-primary); line-height:1.25; margin-bottom:12px; }
.feature-body { font-size:14px; color:var(--text-muted); line-height:1.75; flex:1; margin-bottom:20px; }
.feature-cta { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-text); text-decoration:none; transition:gap 0.2s; }
.feature-cta:hover { gap:12px; }
.feature-cta svg { width:14px; height:14px; stroke:currentColor; }
.faq-cta-panel { background:linear-gradient(135deg,rgba(193,127,58,0.1),rgba(160,82,45,0.05)); border:1px solid var(--nav-border); border-radius:var(--radius); padding:32px 28px; text-align:center; }
.faq-cta-panel h3 { font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--text-primary); margin-bottom:10px; }
.faq-cta-panel p { font-size:14px; color:var(--text-muted); margin-bottom:20px; line-height:1.7; }
.faq-contact-list { display:flex; flex-direction:column; gap:12px; }
.faq-contact-item { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:10px; border:1px solid var(--divider); transition:background 0.2s,border-color 0.2s; text-decoration:none; min-height:44px; }
.faq-contact-item:hover { background:var(--hover-pill); border-color:var(--nav-border); }
.faq-contact-item svg { width:18px; height:18px; stroke:var(--ochre-text); flex-shrink:0; }
.faq-contact-text strong { display:block; font-size:14px; color:var(--text-primary); font-weight:600; }
.faq-contact-text span { font-size:13px; color:var(--text-muted); }
.nav-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.theme-toggle { width:44px; height:44px; border-radius:10px; background:var(--hover-pill); border:1px solid var(--nav-border); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background 0.2s,transform 0.15s; flex-shrink:0; }
.theme-toggle:hover { background:rgba(140,90,26,0.15); transform:scale(1.05); }
.theme-toggle svg { width:18px; height:18px; stroke:var(--text-secondary); transition:stroke 0.2s; }
.theme-toggle:hover svg { stroke:var(--ochre-text); }
.icon-sun,.icon-moon { display:none; }
[data-theme="light"] .icon-sun { display:block; }
[data-theme="dark"] .icon-moon { display:block; }
.nav-cta { padding:11px 20px; background:var(--rust); color:#fff; border-radius:9px; font-size:13px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; text-decoration:none; border:none; cursor:pointer; transition:background 0.2s,transform 0.15s,box-shadow 0.2s; white-space:nowrap; box-shadow:0 2px 12px rgba(122,58,26,0.35); min-height:44px; display:inline-flex; align-items:center; font-family:'Jost',sans-serif; }
.nav-cta:hover { background:var(--rust-dark); transform:translateY(-1px); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; border-radius:8px; background:none; border:none; transition:background 0.2s; }
.hamburger:hover { background:var(--hover-pill); }
.hamburger span { display:block; width:22px; height:2px; background:var(--text-secondary); border-radius:2px; transition:transform 0.3s,opacity 0.3s; transform-origin:center; }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }
.mobile-drawer { position:fixed; top:var(--nav-height); left:0; right:0; bottom:0; background:var(--dropdown-bg); z-index:999; overflow-y:auto; transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.22,1,0.36,1); padding:24px 20px 40px; display:none; }
.mobile-drawer.open { transform:translateX(0); }
.mobile-nav-section { margin-bottom:8px; }
.mobile-section-btn { width:100%; display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-radius:10px; background:none; border:none; cursor:pointer; font-family:'Jost',sans-serif; font-size:15px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-primary); transition:background 0.2s; min-height:48px; }
.mobile-section-btn:hover { background:var(--hover-pill); }
.mobile-section-btn .chevron { width:16px; height:16px; stroke:var(--text-muted); transition:transform 0.3s; }
.mobile-section-btn.open .chevron { transform:rotate(180deg); }
.mobile-sub { overflow:hidden; max-height:0; transition:max-height 0.35s ease; }
.mobile-sub.open { max-height:600px; }
.mobile-sub-link { display:flex; align-items:center; gap:12px; padding:13px 20px; text-decoration:none; border-radius:9px; margin:2px 4px; transition:background 0.2s; cursor:pointer; min-height:48px; }
.mobile-sub-link:hover { background:var(--hover-pill); }
.mobile-sub-link .dot { width:6px; height:6px; border-radius:50%; background:var(--ochre-text); opacity:0.7; flex-shrink:0; }
.mobile-sub-link span { font-size:15px; color:var(--text-secondary); }
.mobile-divider { height:1px; background:var(--divider); margin:12px 0; }
.mobile-actions { margin-top:24px; display:flex; flex-direction:column; gap:10px; }
.mobile-actions .btn-primary { width:100%; padding:16px; font-size:14px; }

/* ── HERO ───────────────────────────────────────────── */
.hero { position:relative; width:100%; height:100vh; min-height:600px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.hero-photo { position:absolute; inset:-16px; background-size:cover; background-position:center 60%; transform:scale(1.12); filter:blur(1.8px); animation:kenBurns 22s cubic-bezier(0.25,0.46,0.45,0.94) 0.3s forwards; will-change:transform; }
@keyframes kenBurns { 0% { transform:scale(1.12) translate(0,0); } 100% { transform:scale(1.03) translate(-0.8%,-0.5%); } }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(12,6,2,0.82) 0%,rgba(18,8,3,0.42) 32%,rgba(20,10,4,0.12) 55%,transparent 78%),linear-gradient(to bottom,rgba(10,5,2,0.40) 0%,transparent 30%); }
.hero-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,transparent 40%,rgba(15,6,2,0.5) 100%); }
.hero-tint { position:absolute; inset:0; background:linear-gradient(105deg,rgba(180,90,20,0.15) 0%,transparent 50%); mix-blend-mode:multiply; }
.hero-particles { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.particle { position:absolute; border-radius:50%; background:rgba(220,170,80,0.6); animation:particleDrift linear infinite; }
.hero-content { position:relative; z-index:10; text-align:center; padding:0 24px; max-width:820px; }
.hero-eyebrow { display:inline-flex; align-items:center; gap:12px; font-size:11px; font-weight:600; letter-spacing:0.32em; text-transform:uppercase; color:#EECF82; text-shadow:0 1px 4px rgba(0,0,0,0.6); margin-bottom:28px; opacity:0; animation:fadeUp 1.1s cubic-bezier(0.22,1,0.36,1) 1s forwards; font-family:'Jost',sans-serif; }
.hero-eyebrow::before,.hero-eyebrow::after { content:''; display:block; width:32px; height:1px; background:rgba(220,175,90,0.7); }
.hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(52px,8.5vw,110px); font-weight:300; color:#FFF5E8; line-height:1.04; letter-spacing:-0.015em; margin-bottom:24px; text-shadow:0 2px 16px rgba(0,0,0,0.4); opacity:0; animation:fadeUp 1.3s cubic-bezier(0.22,1,0.36,1) 1.2s forwards; }
.hero-title em { font-style:italic; font-weight:300; color:#E8B96A; }
.hero-sub { font-size:clamp(15px,1.6vw,18px); font-weight:400; color:#ECD9BC; line-height:1.8; max-width:520px; margin:0 auto 40px; text-shadow:0 1px 6px rgba(0,0,0,0.5); opacity:0; animation:fadeUp 1.2s cubic-bezier(0.22,1,0.36,1) 1.5s forwards; font-family:'Jost',sans-serif; }
.hero-ctas { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; opacity:0; animation:fadeUp 1.1s cubic-bezier(0.22,1,0.36,1) 1.8s forwards; }
.hero-btn-primary { padding:14px 32px; background:var(--rust); color:#fff; border-radius:10px; font-family:'Jost',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; text-decoration:none; border:none; cursor:pointer; box-shadow:0 4px 24px rgba(50,20,5,0.5); transition:background 0.25s,transform 0.2s; min-height:48px; display:inline-flex; align-items:center; }
.hero-btn-primary:hover { background:var(--rust-dark); transform:translateY(-2px); }
.hero-btn-ghost { padding:13px 28px; background:rgba(255,255,255,0.08); color:#FFF5E8; border-radius:10px; font-family:'Jost',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; text-decoration:none; border:1.5px solid rgba(255,220,160,0.55); transition:border-color 0.25s,background 0.25s,transform 0.2s; min-height:48px; display:inline-flex; align-items:center; }
.hero-btn-ghost:hover { border-color:rgba(255,220,160,0.9); background:rgba(255,255,255,0.14); transform:translateY(-2px); }
.hero-scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; opacity:0; animation:fadeIn 1.2s ease 2.4s forwards; z-index:10; }
.hero-scroll span { font-family:'Jost',sans-serif; font-size:10px; font-weight:500; letter-spacing:0.25em; text-transform:uppercase; color:#C8A060; text-shadow:0 1px 3px rgba(0,0,0,0.5); }
.scroll-line { width:1px; height:44px; background:linear-gradient(to bottom,rgba(200,160,96,0.8),transparent); animation:scrollPulse 2.2s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100% { opacity:0.8; } 50% { opacity:0.3; } }
.hero-badge { position:absolute; bottom:36px; right:40px; display:flex; align-items:center; gap:8px; opacity:0; animation:fadeIn 1.2s ease 2.5s forwards; z-index:10; }
.hero-badge svg { width:14px; height:14px; stroke:#C8A060; flex-shrink:0; }
.hero-badge span { font-size:11px; letter-spacing:0.15em; text-transform:uppercase; color:#C8A060; text-shadow:0 1px 4px rgba(0,0,0,0.6); }
@keyframes fadeUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes particleDrift { 0% { transform:translateY(0) translateX(0); opacity:0; } 10% { opacity:1; } 90% { opacity:0.6; } 100% { transform:translateY(-100vh) translateX(var(--drift)); opacity:0; } }

/* ── MISSION ────────────────────────────────────────── */
#mission { padding:120px 0; background:var(--bg); }
.mission-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.mission-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:52px; padding-top:52px; border-top:1px solid var(--divider); }
.mission-stat { }
.mission-stat-num { font-family:'Cormorant Garamond',serif; font-size:52px; font-weight:300; color:var(--ochre-text); line-height:1; margin-bottom:6px; }
.mission-stat-label { font-size:13px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.12em; }
.mission-visual { position:relative; }
.mission-img-frame { border-radius:16px; overflow:hidden; aspect-ratio:4/5; background:#C8A882; position:relative; }
.mission-img-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,transparent 60%,rgba(30,15,5,0.4)); }
.mission-img-inner { width:100%; height:100%; background:linear-gradient(160deg,#E8C89A 0%,#C17F3A 35%,#8B4A2B 65%,#4A2010 100%); display:flex; align-items:center; justify-content:center; }
.mission-badge-float { position:absolute; bottom:-20px; right:-20px; background:var(--rust); color:#fff; border-radius:50%; width:112px; height:112px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 8px 32px rgba(122,58,26,0.4); z-index:2; }
.mission-badge-float strong { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:600; line-height:1; }
.mission-badge-float span { font-size:10px; letter-spacing:0.12em; text-transform:uppercase; opacity:0.85; margin-top:3px; }

/* ── SERVICES ───────────────────────────────────────── */
#services { padding:120px 0; background:var(--bg-alt); }
.services-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:60px; gap:32px; }
.services-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card { background:var(--card-bg); border-radius:16px; overflow:hidden; border:1px solid var(--divider); transition:transform 0.3s,box-shadow 0.3s; cursor:pointer; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(61,30,10,0.12); }
.service-card-top { height:200px; position:relative; overflow:hidden; }
.svc-icon-bg { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.svc-icon-bg svg { width:56px; height:56px; opacity:0.18; }
.service-card-body { padding:28px 28px 32px; }
.service-card-num { font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:0.2em; color:var(--ochre-text); margin-bottom:10px; font-weight:600; }
.service-card-title { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:600; color:var(--text-primary); margin-bottom:12px; line-height:1.2; }
.service-card-desc { font-size:14px; color:var(--text-muted); line-height:1.7; margin-bottom:20px; }
.service-card-link { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-text); text-decoration:none; transition:gap 0.2s; }
.service-card-link:hover { gap:10px; }
.service-card-link svg { width:14px; height:14px; stroke:currentColor; }

/* ── TEAM ───────────────────────────────────────────── */
#team { padding:120px 0; background:var(--bg); }
.team-header { text-align:center; margin-bottom:64px; }
.team-header .section-body { margin:0 auto; }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.team-card { text-align:center; }
.team-photo { width:100%; aspect-ratio:3/4; border-radius:14px; overflow:hidden; margin-bottom:20px; position:relative; }
.team-photo-inner { width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center; padding-bottom:20px; }
.team-photo-inner svg { width:64px; height:64px; opacity:0.25; }
.team-name { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--text-primary); margin-bottom:4px; }
.team-role { font-size:12px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--ochre-text); margin-bottom:12px; }
.team-bio { font-size:14px; color:var(--text-muted); line-height:1.7; }

/* ── REVIEWS ────────────────────────────────────────── */
#reviews { padding:120px 0; background:var(--bg-dark); position:relative; overflow:hidden; }
#reviews::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(193,127,58,0.08),transparent); pointer-events:none; }
.reviews-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:32px; }
.reviews-header .section-title, .reviews-header .eyebrow { color:#F2E4D0; }
.reviews-header .eyebrow { color:#D4974A; }
.reviews-header .eyebrow::before { background:#D4974A; }
.reviews-track { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.review-card { background:rgba(255,245,230,0.05); border:1px solid rgba(193,127,58,0.18); border-radius:16px; padding:32px; backdrop-filter:blur(8px); transition:background 0.3s,border-color 0.3s,transform 0.3s; }
.review-card:hover { background:rgba(255,245,230,0.08); border-color:rgba(193,127,58,0.35); transform:translateY(-3px); }
.review-stars { display:flex; gap:4px; margin-bottom:18px; }
.review-stars svg { width:16px; height:16px; fill:#E8B96A; stroke:none; }
.review-text { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; color:#ECD9BC; line-height:1.7; margin-bottom:24px; }
.review-author { display:flex; align-items:center; gap:14px; }
.review-avatar { width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,rgba(193,127,58,0.3),rgba(122,58,26,0.5)); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:600; color:#E8C890; flex-shrink:0; }
.review-name { font-size:14px; font-weight:600; color:#F2E4D0; }
.review-meta { font-size:12px; color:#B89478; margin-top:2px; }
.reviews-aggregate { display:flex; align-items:center; gap:24px; margin-top:48px; padding-top:40px; border-top:1px solid rgba(193,127,58,0.15); }
.aggregate-score { font-family:'Cormorant Garamond',serif; font-size:56px; font-weight:300; color:#E8B96A; line-height:1; }
.aggregate-detail { }
.aggregate-stars { display:flex; gap:4px; margin-bottom:6px; }
.aggregate-stars svg { width:18px; height:18px; fill:#E8B96A; }
.aggregate-count { font-size:14px; color:#B89478; }

/* ── BLOG ───────────────────────────────────────────── */
/* ══ BEFORE & AFTER ═══════════════════════════════════════════ */
#before-after { padding:120px 0; background:var(--bg); position:relative; }
#before-after::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 50% at 50% 50%, rgba(193,127,58,0.05) 0%, transparent 70%); pointer-events:none; }
.ba-header { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:64px; }
.ba-header > div { flex:1; }
.ba-header .section-body { max-width:480px; font-size:16px; color:var(--text-muted); line-height:1.8; margin-top:0; }
.ba-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-bottom:56px; }
.ba-card { background:var(--dropdown-bg); border:1px solid var(--divider); border-radius:20px; overflow:hidden; transition:transform 0.3s,box-shadow 0.3s; }
.ba-card:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(61,30,10,0.12); }
.ba-img-wrap { position:relative; aspect-ratio:16/9; overflow:hidden; }
.ba-img-placeholder { width:100%; height:100%; }
/* Single combined before/after image placeholders */
.ba-case-1 { background:linear-gradient(105deg,#C8A882 0%,#8B6040 48%,#F5E8D0 52%,#D4A870 100%); }
.ba-case-2 { background:linear-gradient(105deg,#B09878 0%,#7A5035 48%,#EED8B8 52%,#C89858 100%); }
.ba-case-3 { background:linear-gradient(105deg,#C0A080 0%,#855840 48%,#F2E0C8 52%,#CEAA70 100%); }
/* Images supplied — no overlay needed */
.ba-card-body { padding:20px 24px 24px; }
.ba-treatment-tag { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ochre-text); background:rgba(193,127,58,0.1); border:1px solid rgba(193,127,58,0.2); border-radius:20px; padding:4px 12px; margin-bottom:12px; }
.ba-caption { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:400; font-style:italic; color:var(--text-primary); line-height:1.55; margin-bottom:10px; }
.ba-meta { font-size:12px; font-weight:500; letter-spacing:0.1em; color:var(--text-muted); text-transform:uppercase; }
/* Stats bar */
.ba-stats { display:flex; align-items:center; justify-content:center; gap:0; background:var(--dropdown-bg); border:1px solid var(--divider); border-radius:16px; padding:32px 40px; }
.ba-stat { flex:1; text-align:center; }
.ba-stat-num { display:block; font-family:'Cormorant Garamond',serif; font-size:42px; font-weight:300; color:var(--ochre-text); line-height:1; margin-bottom:6px; }
.ba-stat-label { font-size:12px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-muted); }
.ba-stat-divider { width:1px; height:48px; background:var(--divider); flex-shrink:0; margin:0 8px; }
/* B&A responsive handled in main breakpoints below */
@media(max-width:1024px) { .ba-grid { grid-template-columns:1fr 1fr; } .ba-card:last-child { grid-column:1/-1; max-width:560px; margin:0 auto; } }

#blog { padding:120px 0; background:var(--bg); }
.blog-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:32px; }
.blog-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:24px; align-items:start; }
.blog-card { background:var(--card-bg); border-radius:16px; overflow:hidden; border:1px solid var(--divider); transition:transform 0.3s,box-shadow 0.3s; }
.blog-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(61,30,10,0.1); }
.blog-card-img { width:100%; overflow:hidden; }
.blog-card-img-inner { width:100%; display:flex; align-items:center; justify-content:center; }
.blog-card-img-inner svg { opacity:0.12; }
.blog-card-body { padding:24px 28px 28px; }
.blog-tag { display:inline-flex; padding:4px 12px; background:rgba(193,127,58,0.1); border-radius:20px; font-size:11px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-text); margin-bottom:14px; }
.blog-card-title { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--text-primary); line-height:1.25; margin-bottom:12px; }
.blog-card.featured .blog-card-title { font-size:28px; }
.blog-card-excerpt { font-size:14px; color:var(--text-muted); line-height:1.7; margin-bottom:20px; }
.blog-meta { display:flex; align-items:center; gap:16px; }
.blog-meta-date { font-size:12px; color:var(--text-muted); }
.blog-read-link { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-text); text-decoration:none; margin-left:auto; transition:gap 0.2s; }
.blog-read-link:hover { gap:10px; }
.blog-read-link svg { width:14px; height:14px; stroke:currentColor; }

/* ── FIND US ─────────────────────────────────────────── */
#findus { padding:120px 0; background:var(--bg-alt); }
.findus-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.map-container { border-radius:16px; overflow:hidden; border:1px solid var(--divider); background:var(--card-bg); height:440px; position:relative; }
.map-placeholder { width:100%; height:100%; background:linear-gradient(160deg,#D4C4A8 0%,#B8A080 40%,#9A7850 70%,#7A5830 100%); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.map-grid-lines { position:absolute; inset:0; opacity:0.15; }
.map-pin { position:absolute; display:flex; flex-direction:column; align-items:center; top:40%; left:52%; transform:translate(-50%,-100%); }
.map-pin-icon { width:44px; height:44px; background:var(--rust); border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(122,58,26,0.5); }
.map-pin-icon svg { transform:rotate(45deg); width:20px; height:20px; stroke:#fff; }
.map-pin-label { margin-top:8px; background:rgba(255,250,244,0.95); border-radius:8px; padding:8px 14px; font-size:13px; font-weight:600; color:var(--rust); white-space:nowrap; box-shadow:0 4px 16px rgba(0,0,0,0.15); }
.findus-info { }
.hours-table { width:100%; margin-top:8px; }
.hours-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--divider); font-size:14px; }
.hours-row:last-child { border-bottom:none; }
.hours-day { color:var(--text-secondary); font-weight:500; }
.hours-time { color:var(--text-muted); }
.hours-closed { color:rgba(160,82,45,0.6); font-style:italic; }
.findus-details { display:flex; flex-direction:column; gap:16px; margin-top:32px; }
.findus-detail-row { display:flex; gap:14px; align-items:flex-start; }
.findus-detail-row svg { width:18px; height:18px; stroke:var(--ochre-text); flex-shrink:0; margin-top:2px; }
.findus-detail-text strong { display:block; font-size:14px; color:var(--text-primary); font-weight:600; margin-bottom:2px; }
.findus-detail-text span { font-size:14px; color:var(--text-muted); }

/* ── CONTACT ────────────────────────────────────────── */
#contact { padding:120px 0; background:var(--bg); }
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; align-items:start; }
.contact-form { background:var(--card-bg); border-radius:20px; padding:48px; border:1px solid var(--divider); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:13px; font-weight:600; letter-spacing:0.06em; color:var(--text-secondary); margin-bottom:8px; text-transform:uppercase; }
.form-input, .form-select, .form-textarea {
  width:100%; padding:13px 16px;
  background:var(--bg); border:1.5px solid var(--divider);
  border-radius:10px; font-size:15px; color:var(--text-primary);
  font-family:'Jost',sans-serif; transition:border-color 0.2s,box-shadow 0.2s;
  appearance:none; outline:none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--ochre-text); box-shadow:0 0 0 3px rgba(140,90,26,0.12); }
.form-textarea { resize:vertical; min-height:120px; }
.form-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238C5A1A' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:42px; cursor:pointer; }
.form-input::placeholder, .form-textarea::placeholder { color:var(--stone); }
.form-submit { width:100%; margin-top:8px; padding:16px; font-size:14px; letter-spacing:0.12em; }
.contact-aside { }
.contact-promise { background:linear-gradient(145deg,rgba(193,127,58,0.1),rgba(122,58,26,0.06)); border:1px solid var(--nav-border); border-radius:16px; padding:36px; margin-bottom:28px; }
.contact-promise h3 { font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--text-primary); margin-bottom:12px; line-height:1.2; }
.contact-promise p { font-size:15px; color:var(--text-muted); line-height:1.8; }
.contact-cards { display:flex; flex-direction:column; gap:14px; }
.contact-card { display:flex; gap:16px; align-items:center; padding:18px 20px; background:var(--card-bg); border:1px solid var(--divider); border-radius:12px; text-decoration:none; transition:border-color 0.2s,background 0.2s,transform 0.2s; min-height:44px; }
.contact-card:hover { border-color:var(--nav-border); background:var(--hover-pill); transform:translateX(3px); }
.contact-card-icon { width:40px; height:40px; border-radius:10px; background:linear-gradient(135deg,rgba(193,127,58,0.15),rgba(122,58,26,0.08)); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-card-icon svg { width:18px; height:18px; stroke:var(--ochre-text); }
.contact-card-text strong { display:block; font-size:14px; color:var(--text-primary); font-weight:600; }
.contact-card-text span { font-size:13px; color:var(--text-muted); }

/* ── FOOTER ─────────────────────────────────────────── */
footer { background:var(--bg-dark); color:#D4B896; padding:80px 0 36px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:64px; }
.footer-brand .logo-top { color:#F2E4D0; }
.footer-brand .logo-sub { color:#D4974A; }
.footer-tagline { font-size:15px; color:#B89478; line-height:1.8; margin-top:16px; max-width:280px; }
.footer-social { display:flex; gap:12px; margin-top:24px; }
.footer-social-btn { width:38px; height:38px; border-radius:9px; border:1px solid rgba(193,127,58,0.2); display:flex; align-items:center; justify-content:center; transition:border-color 0.2s,background 0.2s; }
.footer-social-btn:hover { border-color:rgba(193,127,58,0.5); background:rgba(193,127,58,0.1); }
.footer-social-btn svg { width:16px; height:16px; stroke:#B89478; }
.footer-col-title { font-size:11px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:#D4974A; margin-bottom:20px; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-links a { font-size:14px; color:#B89478; text-decoration:none; transition:color 0.2s; }
.footer-links a:hover { color:#F2E4D0; }
.footer-bottom { border-top:1px solid rgba(193,127,58,0.12); padding-top:28px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.footer-copy { font-size:13px; color:#6A5040; }
.footer-legal { display:flex; gap:24px; }
.footer-legal a { font-size:13px; color:#6A5040; text-decoration:none; transition:color 0.2s; }
.footer-legal a:hover { color:#B89478; }
.footer-accred { display:flex; gap:16px; align-items:center; }
.accred-badge { padding:5px 12px; border:1px solid rgba(193,127,58,0.2); border-radius:6px; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:#6A5040; }

/* ── RESPONSIVE ─────────────────────────────────────── */
@media(max-width:1100px) {
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px; }
  .blog-grid { grid-template-columns:1fr 1fr; }
  .blog-card.featured { grid-column:1/-1; }
}
@media(max-width:900px) {
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
  .mobile-drawer { display:block; }
  .mega-menu,.mega-backdrop { display:none!important; }
  .hero-badge { display:none; }
  .section-wrap { padding:0 20px; }
  /* Section padding reduced */
  #mission,#services,#team,#reviews,#before-after,#blog,#findus,#contact { padding:80px 0; }
  /* Mission */
  .mission-grid { grid-template-columns:1fr; gap:48px; }
  .mission-visual { order:-1; }
  .mission-badge-float { bottom:-10px; right:10px; }
  /* Services */
  .services-header { flex-direction:column; align-items:flex-start; gap:20px; }
  .services-cards { grid-template-columns:1fr 1fr; }
  /* Team */
  /* (already 2-col from 1100px breakpoint) */
  /* Reviews */
  .reviews-header { flex-direction:column; align-items:flex-start; gap:20px; }
  .reviews-track { grid-template-columns:1fr; }
  .reviews-aggregate { flex-wrap:wrap; gap:16px; }
  /* Before & After */
  .ba-header { flex-direction:column; align-items:flex-start; gap:20px; }
  /* Blog */
  .blog-header { flex-direction:column; align-items:flex-start; gap:20px; }
  .blog-grid { grid-template-columns:1fr; }
  /* Find Us */
  .findus-grid { grid-template-columns:1fr; gap:40px; }
  .map-container { min-height:280px; }
  /* Contact */
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  /* Footer */
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
  .nav-inner { padding:0 16px; }
  .logo-top { font-size:18px; }
  #mission,#services,#team,#reviews,#before-after,#blog,#findus,#contact { padding:64px 0; }
  /* Hero */
  .hero-btn-primary,.hero-btn-ghost { width:100%; justify-content:center; }
  .hero-ctas { flex-direction:column; align-items:stretch; width:100%; max-width:280px; }
  /* Mission */
  .mission-stat-row { grid-template-columns:1fr 1fr; }
  .mission-img-frame { aspect-ratio:3/4; }
  /* Services */
  .services-cards { grid-template-columns:1fr; }
  /* Team */
  .team-grid { grid-template-columns:1fr 1fr; }
  /* Reviews */
  .reviews-aggregate { flex-direction:column; align-items:flex-start; }
  /* Before & After */
  .ba-grid { gap:20px; }
  .ba-stats { flex-wrap:wrap; gap:20px; padding:24px 16px; }
  .ba-stat-divider { display:none; }
  .ba-stat { flex:0 0 calc(50% - 10px); }
  /* Blog */
  .blog-card-img { min-height:160px; }
  /* Find Us */
  .hours-table { font-size:13px; }
  /* Contact */
  .form-row { grid-template-columns:1fr; }
  .contact-form { padding:24px 16px; }
  .contact-promise { padding:24px 16px; }
  /* Footer */
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; gap:16px; }
  .footer-legal { flex-wrap:wrap; justify-content:center; }
  .footer-accred { flex-wrap:wrap; }
  /* Footer padding */
  footer { padding:56px 0 28px; }
  /* Section body full width in single-column */
  .section-body { max-width:100%; }
  .ba-header .section-body { max-width:100%; }
  /* Reviews aggregate */
  .reviews-aggregate { flex-direction:column; align-items:flex-start; gap:14px; }
  /* Hours table font */
  .hours-table { font-size:13px; }
  /* Svc card text */
  .svc-title { font-size:20px; }
}
/* Extra small — prevent horizontal scroll */
@media(max-width:380px) {


  .mission-stat-num { font-size:40px; }
  .ba-stat-num { font-size:32px; }
  .section-wrap { padding:0 16px; }
}

.ba-case-1-img { background-size:cover; background-position:center; background-repeat:no-repeat; }
  .ba-case-2-img { background-size:cover; background-repeat:no-repeat; background-position:center; }