

:root{
  
  --bg: #fdfbfb;  
  --card: #ffffff;  
  --section: #faf6f4;  
  --pink-light: #fff1f1;  
  --brand: #ffcbcb;  
  --blush: #f4b3c2;  
  --line: #ece4e4;  
  --logo: #db6f83;  
  --primary: #a8324a;  
  --primary-dark: #8a2439;  
  --wine: #79253d;  
  --wine-deep: #6a2035;  
  --on-primary: #ffffff;  
  --ink: #2d2d2d;  
  --muted: #5f6673;  
  --placeholder: #736d70;  
  --success-bg: #d1fae5;  
  --success-ink: #065f46;  
  --success-border: #6ee7b7;  
  --error-bg: #fee2e2;  
  --error-ink: #991b1b;  
  --error-border: #fca5a5;  
  --star: #f5b301;  
  --star-empty: #e5e1e3;  
  --draft-bg: #fff8db;  
  --draft-border: #f1d36b;  
  --fill-in: #ffe866;  
  --scrim: rgba(45, 45, 45, 0.55);  
  --scrim-photo: rgba(20, 20, 20, 0.93);  

  --text-xs: 0.85rem;  
  --text-sm: 0.95rem;  
  --text-base: 1rem;  
  --text-read: 1.0625rem;  
  --text-md: 1.15rem;  
  --text-lg: 1.45rem;  
  --text-xl: 1.8rem;  
  --text-2xl: 2.5rem;  

  --space-4: 4px;  
  --space-8: 8px;  
  --space-12: 12px;  
  --space-16: 16px;  
  --space-24: 24px;  
  --space-32: 32px;  
  --space-48: 48px;  
  --space-64: 64px;  

  --radius-sm: 8px;  
  --radius-md: 12px;  
  --radius-lg: 16px;  
  --radius-pill: 999px;  
  --radius-round: 50%;  

  --shadow-sm: 0 6px 18px rgba(244, 179, 194, 0.22);  
  --shadow-md: 0 12px 28px rgba(244, 179, 194, 0.34);  
  --shadow-lg: 0 20px 48px rgba(45, 45, 45, 0.18);  
  --shadow-button: 0 6px 16px rgba(168, 50, 74, 0.24);  
  --shadow-focus: 0 0 0 3px rgba(168, 50, 74, 0.18);  

  --container: 1240px;  
  --header-offset: 124px;  
  --tap: 44px;  
  --lift-control: translateY(-1px);  
  --lift-card: translateY(-4px);  

  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-reading: "Merriweather Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-serif: "Fraunces", Georgia, serif;
}

@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20B9, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap; 
  src:url('../fonts/fraunces-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/fraunces-rupee.woff2') format('woff2');
  unicode-range:U+20B9;
}

@font-face{
  font-family:'Merriweather Sans';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('../fonts/merriweather-sans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Merriweather Sans';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('../fonts/merriweather-sans-rupee.woff2') format('woff2');
  unicode-range:U+20B9;
}

:root{
  
  --leading-tight:1.2; --leading-ui:1.5; --leading-read:1.7;
  --ease:0.2s ease;
  --reading-weight:360; 
}

*{box-sizing:border-box}
html{height:100%;scroll-padding-top:96px}
body{
  min-height:100%;margin:0;
  font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-ui);
  background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4{line-height:var(--leading-tight)}

main h2{font-family:var(--font-serif);font-weight:600;font-size:var(--text-xl);color:var(--ink);margin:0 0 var(--space-8)}
p{margin:0 0 var(--space-12)}

.about-grid p,.about-features,
.treatment-body p,.treatment-body li,
.legal-page p,.legal-page li,
.faq-item p,.doctor-dialog-bio,.where-card p,.who-note{
  font-family:var(--font-reading);font-weight:var(--reading-weight);
  font-size:var(--text-read);line-height:var(--leading-read);
}
.treatment-page .lead,.legal-updated + p{font-family:var(--font-reading);font-weight:400;font-size:var(--text-read);line-height:1.6}
.treatment-body strong,.legal-page strong,.faq-item strong{font-weight:600}

a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm);
}

.container{max-width:var(--container);margin:0 auto;padding:var(--space-32)}
.icon{display:inline-block;width:1em;height:1em;fill:currentColor;vertical-align:-0.125em;flex:none}
.icon-sprite{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nowrap{white-space:nowrap}
.hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(255,255,255,0.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);box-shadow:none;
  transition:background var(--ease), box-shadow var(--ease);
}
.site-header.scrolled{background:rgba(255,255,255,0.97);box-shadow:var(--shadow-sm)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-8) var(--space-32)}
.brand{display:flex;align-items:center;gap:var(--space-12);text-decoration:none;color:inherit;transition:opacity var(--ease)}
.brand:hover{opacity:0.85}
.brand-logo{width:64px;height:64px;border-radius:var(--radius-round);object-fit:cover;background:var(--card);border:2px solid var(--brand);box-shadow:var(--shadow-sm)}
.brand-name{font-family:var(--font-serif);font-weight:600;font-size:var(--text-lg);letter-spacing:0.2px;color:var(--primary)}

.primary-nav ul{display:flex;gap:var(--space-8);align-items:center;margin:0;padding:0;list-style:none}
.primary-nav a{color:var(--muted);text-decoration:none;padding:var(--space-8) var(--space-12);border-radius:var(--radius-sm);transition:color var(--ease), background var(--ease)}
.primary-nav a:hover{color:var(--primary);background:var(--pink-light)}
.nav-toggle{display:none;background:none;border:0;padding:var(--space-8);cursor:pointer;transition:opacity var(--ease)}
.nav-toggle:hover{opacity:0.7}
.nav-toggle .hamburger{display:inline-block;width:22px;height:2px;background:var(--primary);position:relative;transition:background var(--ease)}
.nav-toggle .hamburger::before,.nav-toggle .hamburger::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--primary);transition:transform var(--ease), top var(--ease)}
.nav-toggle .hamburger::before{top:-7px}
.nav-toggle .hamburger::after{top:7px}
.nav-toggle[aria-expanded="true"] .hamburger{background:transparent}
.nav-toggle[aria-expanded="true"] .hamburger::before{transform:rotate(45deg);top:0}
.nav-toggle[aria-expanded="true"] .hamburger::after{transform:rotate(-45deg);top:0}

.header-call{
  display:inline-flex;align-items:center;gap:var(--space-8);flex:none;
  min-height:var(--tap);padding:var(--space-8) var(--space-16);border-radius:var(--radius-md);
  background:var(--primary);color:var(--on-primary);font-weight:600;text-decoration:none;white-space:nowrap;
  box-shadow:var(--shadow-button);transition:background var(--ease), transform var(--ease);
}
.header-call:hover{background:var(--primary-dark);transform:var(--lift-control)}

.has-dropdown{position:relative;display:flex;align-items:center}
.dropdown-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:-8px;padding:0;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);cursor:pointer}
.dropdown-toggle:hover{color:var(--primary);background:var(--pink-light)}
.dropdown-toggle .icon{font-size:0.75rem;transform:rotate(90deg);transition:transform var(--ease)}
.has-dropdown.open .dropdown-toggle .icon{transform:rotate(-90deg)}
.primary-nav .dropdown{display:none;margin:0;padding:var(--space-8);list-style:none}
.primary-nav .dropdown a{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-8) var(--space-16);border-radius:var(--radius-sm);color:var(--ink);white-space:nowrap}
.primary-nav .dropdown a:hover,.primary-nav .dropdown a:focus-visible{background:var(--pink-light);color:var(--primary)}
.svc-icon{font-size:var(--text-lg);color:var(--primary);flex:none}
.primary-nav .dropdown-all{border-top:1px solid var(--line);margin-top:var(--space-8);padding-top:var(--space-8)}
.primary-nav .dropdown-all a{color:var(--primary);font-weight:600}
.primary-nav .nav-book{display:none}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);
  min-height:var(--tap);padding:var(--space-8) var(--space-16);border-radius:var(--radius-md);
  font:600 var(--text-base)/1.2 var(--font-sans);text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:background var(--ease), border-color var(--ease), transform var(--ease), box-shadow var(--ease);
}
.btn:hover{transform:var(--lift-control)}
.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-button)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-ghost{background:transparent;border-color:var(--primary);color:var(--primary)}
.btn-ghost:hover{background:var(--pink-light)}
.btn-sm,.btn-outline{min-height:36px;padding:var(--space-4) var(--space-12);font-size:var(--text-sm)} 
.btn-link{display:inline-block;margin-top:var(--space-12);color:var(--primary);font-weight:600;text-decoration:none;transition:color var(--ease)}
.btn-link:hover{color:var(--primary-dark);text-decoration:underline;text-underline-offset:2px}
.phone-link{color:var(--primary);font-weight:600;text-decoration:none;white-space:nowrap}
.phone-link:hover{text-decoration:underline}

.carousel-arrow,.dialog-close-btn,.doctor-dialog-close,.gallery-nav{
  display:inline-flex;align-items:center;justify-content:center;
  width:var(--tap);height:var(--tap);padding:0;border:0;border-radius:var(--radius-round);cursor:pointer;
  transition:background var(--ease), color var(--ease);
}
.carousel-arrow{background:none;color:var(--primary);font-size:var(--text-lg)}
.carousel-arrow:hover{background:var(--pink-light)}
.dialog-close-btn,.doctor-dialog-close,.gallery-nav{background:rgba(255,255,255,0.92);color:var(--ink);font-size:var(--text-md);box-shadow:var(--shadow-lg)}
.dialog-close-btn:hover,.doctor-dialog-close:hover,.gallery-nav:hover{background:var(--card);color:var(--primary)}
.dialog-close-btn,.doctor-dialog-close{position:absolute;top:var(--space-12);right:var(--space-12);z-index:1}

.related-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-8)}
.related-list a{display:inline-flex;align-items:center;min-height:36px;padding:var(--space-4) var(--space-16);border:1px solid var(--primary);border-radius:var(--radius-pill);color:var(--primary);text-decoration:none;font-weight:600;font-size:var(--text-sm);transition:background var(--ease)}
.related-list a:hover{background:var(--pink-light)}

.hero{padding:var(--header-offset) 0 var(--space-48);background:var(--section)}
.hero-wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--space-48);align-items:center} 
.hero-eyebrow{display:block;margin-bottom:var(--space-12);font-size:var(--text-xs);font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--primary)}
.hero-text h1{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.8rem, 3.4vw, var(--text-2xl));line-height:var(--leading-tight);margin:0 0 var(--space-12);color:var(--ink)}
.h1-place{display:block;margin-top:var(--space-12);font-family:var(--font-sans);font-size:var(--text-md);font-weight:600;letter-spacing:0.2px;color:var(--primary)}
.lead{color:var(--muted);font-size:var(--text-md);line-height:var(--leading-ui);margin:0 0 var(--space-16)}
.quick-info{display:flex;gap:var(--space-12);margin-top:var(--space-12);list-style:none;padding:0;color:var(--muted);flex-wrap:wrap}
.hero-media img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg)}

.section{padding:var(--space-64) 0}
.section-soft{background:var(--section)}
.section + .section{border-top:1px solid var(--line)}
.section-title{font-family:var(--font-serif);font-weight:600;font-size:var(--text-xl);line-height:var(--leading-tight);color:var(--ink);margin:0 0 var(--space-8)}
.section-sub{color:var(--muted);font-size:var(--text-md);margin:0 0 var(--space-24)}

.card{background:var(--card);padding:var(--space-24);border-radius:var(--radius-lg);border:1px solid var(--line)}

.card h2,.card h3,.service-card h3,.tech-item strong,.about-card h3,.contact-info-card h2,.contact-form .form-title,.quick-book-head h2{
  font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;line-height:var(--leading-tight);color:var(--primary);margin:0 0 var(--space-8);
}
.about-grid{display:grid;grid-template-columns:1fr 360px;gap:var(--space-32);align-items:start}
.about-features{list-style:disc;margin:0 0 var(--space-12) var(--space-24);padding:0;color:var(--muted);line-height:var(--leading-read)}
.about-location{color:var(--muted)}
.about-card,.reviews-card{background:var(--card)}
.about-card .btn-primary{margin-top:var(--space-12)}
.notice-card h3 .icon{margin-right:var(--space-4)}
.notice-list{list-style:none;margin:0;padding:0}
.notice-list li{padding:var(--space-12) 0;border-bottom:1px solid var(--line);color:var(--ink)}
.notice-list li:last-child{border-bottom:0}
.notice-list strong{color:var(--primary)}

.service-card{
  position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);
  transition:transform var(--ease), box-shadow var(--ease);
}
.service-card:hover{transform:var(--lift-card);box-shadow:var(--shadow-md)}
.service-card img{display:block;width:100%;height:160px;object-fit:cover}

.service-img-placeholder{display:flex;align-items:center;justify-content:center;height:160px;background:var(--pink-light);color:var(--brand);font-size:3rem} 
.service-card h3{margin:var(--space-16) var(--space-24) var(--space-8);color:var(--ink)}
.service-card p{margin:0 var(--space-24) var(--space-16);color:var(--muted);font-size:var(--text-sm)}
.service-card.has-page{display:flex;flex-direction:column}
.service-card h3 .service-link{color:inherit;text-decoration:none}
.service-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}
.service-link:focus-visible{outline:none}
.service-link:focus-visible::after{outline:2px solid var(--primary);outline-offset:2px}
.service-cue{margin:auto var(--space-24) var(--space-24);color:var(--primary);font-weight:600;font-size:var(--text-sm)}
.service-card.has-page:hover .service-cue,.service-card.has-page:hover h3 .service-link{text-decoration:underline;text-underline-offset:2px}

.services-scroller{
  display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * var(--space-24)) / 4);gap:var(--space-24);
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:2px;scroll-behavior:smooth;
  padding:var(--space-8) 2px var(--space-16);scrollbar-width:none;
}
.services-scroller::-webkit-scrollbar{display:none}
.services-scroller .service-card{scroll-snap-align:start}
.scroller-controls{display:flex;justify-content:center;gap:var(--space-16);margin-top:var(--space-8)}
.scroller-controls .carousel-arrow:disabled{opacity:0.3;cursor:default;background:none}
.services-all{text-align:center;margin:var(--space-8) 0 0}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-24);margin:var(--space-8) 0 var(--space-12)}

.tech-grid{display:flex;gap:var(--space-16);flex-wrap:wrap}
.tech-item{flex:1 1 220px;background:var(--card);padding:var(--space-16);border-radius:var(--radius-md);border:1px solid var(--line)}
.tech-item strong{display:block}
.tech-item p{margin:0;color:var(--muted);font-size:var(--text-sm)}

.team-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-24)}
.team-card{
  position:relative;height:100%;display:flex;flex-direction:column;text-align:center;
  background:var(--card);padding:var(--space-12) var(--space-12) var(--space-16);
  border-radius:var(--radius-lg);border:1px solid var(--line);
  transition:transform var(--ease), box-shadow var(--ease);
}
.team-card:hover{transform:var(--lift-card);box-shadow:var(--shadow-md)}
.team-card img{width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:center top;border-radius:var(--radius-md);display:block;margin-bottom:var(--space-12)}
.team-card h3{font-family:var(--font-sans);font-size:var(--text-md);color:var(--ink);margin:0 0 var(--space-4)}
.team-role{margin:0 0 var(--space-8);color:var(--primary);font-weight:600;font-size:var(--text-sm)}
.team-quals{margin:0 0 var(--space-8);color:var(--ink);font-size:var(--text-xs)}
.team-bio{margin:0;color:var(--muted);font-size:var(--text-sm)}
.team-open{background:none;border:0;padding:var(--space-12) 0 0;margin-top:auto;align-self:center;color:var(--primary);font:600 var(--text-sm) var(--font-sans);cursor:pointer}
.team-open::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}
.team-open:focus-visible{outline:none}
.team-open:focus-visible::after{outline:2px solid var(--primary);outline-offset:2px}

.doctor-dialog{border:0;padding:0;width:min(420px,92vw);max-height:90vh;overflow:auto;border-radius:var(--radius-lg);background:var(--card);color:var(--ink);box-shadow:var(--shadow-lg)}
.doctor-dialog::backdrop{background:var(--scrim)}
.doctor-dialog img{display:block;width:100%;aspect-ratio:4/5;max-height:60vh;object-fit:cover;object-position:center top}
.doctor-dialog-body{padding:var(--space-16) var(--space-24) var(--space-24)}
.doctor-dialog h3{margin:0 0 var(--space-4);font-family:var(--font-serif);font-weight:600;font-size:var(--text-lg)}
.doctor-dialog-quals{margin:0 0 var(--space-12);font-size:var(--text-xs)}
.doctor-dialog-bio{margin:0;line-height:var(--leading-read)}
body.dialog-open{overflow:hidden}

.reviews-card{max-width:640px;margin:0 auto;text-align:center;padding:var(--space-32) var(--space-24);border:1px solid var(--line);border-radius:var(--radius-lg)}
.reviews-card .section-title{margin-top:0}
.reviews-icon{display:block;margin:0 auto var(--space-8);font-size:2rem;color:var(--primary)}
.rating{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-8) var(--space-12);margin:var(--space-4) 0}
.rating-score{font-family:var(--font-serif);font-weight:600;font-size:var(--text-2xl);line-height:1;color:var(--ink)}
.rating-stars{position:relative;display:inline-block;font-size:var(--text-lg);line-height:1;--rating:4.9}
.rating-empty,.rating-fill{display:flex;gap:3px;white-space:nowrap}
.rating-empty{color:var(--star-empty)}
.rating-fill{position:absolute;top:0;left:0;overflow:hidden;width:calc(var(--rating) / 5 * 100%);color:var(--star)}
.rating-count{color:var(--ink);font-weight:600}
.rating-asof{margin:0 0 var(--space-12);font-size:var(--text-xs);color:var(--muted)}

.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-16)}
.gallery-item{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;text-align:left;font:inherit;color:inherit;border-radius:var(--radius-md)}
.gallery-item picture,.gallery-item img{display:block;width:100%}
.gallery-item img{aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--ease), box-shadow var(--ease)}
.gallery-item:hover img{transform:var(--lift-card);box-shadow:var(--shadow-md)}
.gallery-caption{display:block;margin-top:var(--space-8);font-weight:600;font-size:var(--text-sm);color:var(--ink)}
.gallery-dialog{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;overflow:visible}
.gallery-dialog::backdrop{background:var(--scrim-photo)}
.gallery-dialog figure{margin:0}
.gallery-dialog img{display:block;max-width:min(1100px,94vw);max-height:80vh;width:auto;height:auto;border-radius:var(--radius-md);margin:0 auto}
.gallery-dialog figcaption{color:#fff;text-align:center;margin-top:var(--space-12);font-weight:600}
.gallery-count{font-weight:400;opacity:0.8;margin-left:var(--space-8)}
.gallery-nav{position:absolute;top:calc(50% - 30px)}
.gallery-prev{left:-8px}
.gallery-next{right:-8px}

.photo-focus-street-entrance-new{object-position:50% 8%}

.contact-section{background:var(--section);color:var(--ink)}
.contact-section .contact-info-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-24);color:var(--ink)}
.contact-section .contact-info-card h2{font-family:var(--font-serif);font-weight:600;font-size:var(--text-xl);color:var(--ink)}
.contact-section .contact-list li{color:var(--ink)}
.contact-section .contact-list strong{color:var(--primary)}
.contact-section .contact-list .landmark{color:var(--ink)}
.contact-section .phone-link{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.contact-section .entrance-photo img,.contact-section .map-embed{border-color:var(--line)}
.contact-section .entrance-photo figcaption{color:var(--primary)}
.contact-section .contact-form{box-shadow:none;border:1px solid var(--line)}
.contact-wrap{display:grid;grid-template-columns:1fr 460px;gap:var(--space-32);align-items:start}
.contact-list{list-style:none;padding:0;margin:var(--space-16) 0}
.contact-list li{margin-bottom:var(--space-8);color:var(--muted)}
.contact-list strong{color:var(--primary)}
.contact-list address{font-style:normal;margin-top:var(--space-4);line-height:var(--leading-read)}
.contact-list .landmark{display:block;margin-top:var(--space-4);color:var(--ink);font-weight:600}
.map-embed{margin-top:var(--space-16);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--brand);aspect-ratio:4/3}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
.entrance-photo{margin:var(--space-4) 0 var(--space-16)}
.entrance-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--brand)}
.entrance-photo figcaption{margin-top:var(--space-8);font-size:var(--text-xs);font-weight:600;color:var(--primary)}

.contact-form{background:var(--card);border:1px solid var(--line)}
.contact-form label{display:block;margin-bottom:var(--space-16)}
.label-text{display:block;margin-bottom:var(--space-8);font-weight:600;font-size:var(--text-sm);color:var(--ink)}
.label-optional{font-weight:400;color:var(--muted)}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;min-height:var(--tap);padding:var(--space-8) var(--space-12);
  border-radius:var(--radius-sm);border:1px solid var(--line);
  font-family:var(--font-sans);font-size:var(--text-base);color:var(--ink);background:var(--card);
  transition:border-color var(--ease), box-shadow var(--ease), background var(--ease);
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus);background:var(--card)}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--placeholder);font-style:italic;opacity:1}
.contact-form textarea{resize:vertical;min-height:104px}
.field-hint{display:block;margin-top:var(--space-8);font-size:var(--text-xs);color:var(--muted)}
.date-note{color:var(--error-ink);font-weight:600}
.date-clear{margin-left:var(--space-8);font-weight:600;font-size:var(--text-xs);color:var(--primary);text-decoration:underline;cursor:pointer}
.date-clear[hidden],.date-note[hidden]{display:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-12)}
.form-row-wide-narrow{grid-template-columns:2fr 1fr}
.contact-form .consent{display:flex;gap:var(--space-12);align-items:flex-start;font-size:var(--text-xs);color:var(--muted);margin:var(--space-4) 0 var(--space-16)}
.contact-form .consent input{width:18px;height:18px;min-height:0;flex:0 0 auto;margin-top:2px;padding:0;accent-color:var(--primary)}
.contact-form .consent a{color:var(--primary);font-weight:600}
.contact-form .consent[hidden]{display:none}
.form-actions{display:flex;gap:var(--space-8);margin-top:var(--space-8)}
.form-note{margin:var(--space-8) 0 0;font-size:var(--text-xs);color:var(--muted)}
.form-result{margin-top:var(--space-8);font-weight:600;padding:var(--space-12);border-radius:var(--radius-sm)}
.form-result.success{background:var(--success-bg);color:var(--success-ink);border:1px solid var(--success-border)}
.form-result.error{background:var(--error-bg);color:var(--error-ink);border:1px solid var(--error-border)}
.form-result.sending{color:var(--muted);padding-inline:0}
.contact-form button[type="submit"]:disabled{opacity:.6;cursor:wait}
.form-noscript{margin:var(--space-8) 0 0;font-size:var(--text-sm);font-weight:600;color:var(--ink)}
.quick-book-form noscript{grid-column:1 / -1;display:block}

.quick-book-form{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-16);align-items:end;margin:var(--space-4) 0 var(--space-16)}
.quick-book-head{grid-column:1 / -1;margin-bottom:var(--space-8)}
.quick-book-head p{margin:0;color:var(--muted)}
.quick-book-submit{margin-bottom:var(--space-12)}
.quick-book-form .consent,.quick-book-form .form-result{grid-column:1 / -1}
.quick-book-form .form-result:empty{display:none}

.site-footer{padding:var(--space-24) 0 var(--space-16);background:var(--wine-deep);color:var(--on-primary);margin-top:0} 
.footer-inner{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-16)}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-16) var(--space-32);padding-top:0}
.footer-col{display:flex;flex-direction:column;align-items:flex-start}
.footer-heading{margin:0 0 var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--brand)}
.footer-col p{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--on-primary);line-height:1.55}
.footer-col .footer-landmark{color:var(--on-primary);font-weight:600}
.footer-col .footer-nearby{font-size:var(--text-xs)}
.footer-action{display:inline-flex;align-items:center;gap:var(--space-8);min-height:32px;font-size:var(--text-sm);color:var(--on-primary);font-weight:600;text-decoration:none}
.footer-action:hover{text-decoration:underline}
.footer-content{width:100%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-12);font-size:var(--text-sm)}
.footer-grid + .footer-content{padding-top:var(--space-12);border-top:1px solid rgba(255,255,255,0.18)}
.footer-content p{margin:0}
.footer-links a{color:var(--on-primary);text-decoration:none;margin-left:var(--space-12);transition:color var(--ease)}
.footer-links a:hover,.footer-links a[aria-current="page"]{color:var(--on-primary);text-decoration:underline}
.site-footer a:focus-visible{outline-color:var(--on-primary)}
.social-links{display:flex;gap:var(--space-12)}
.social-link{
  display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:var(--radius-round);background:transparent;border:1px solid var(--on-primary);color:var(--on-primary);
  font-size:var(--text-base);text-decoration:none;transition:background var(--ease), color var(--ease), transform var(--ease);
}
.social-link:hover{background:var(--on-primary);color:var(--wine-deep);transform:var(--lift-control)}
.mobile-action-bar{display:none}

.legal-page,.treatment-page{padding:var(--header-offset) 0 var(--space-48)}
.legal-wrap{max-width:720px}  
.treatment-wrap{max-width:720px}

.legal-page h1,.treatment-page h1,.services-hub h1{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.8rem, 3.4vw, var(--text-2xl));line-height:var(--leading-tight);margin:0 0 var(--space-12);color:var(--ink)}
.legal-updated{color:var(--muted);font-size:var(--text-xs);margin-top:0}
.legal-page h2,.treatment-body h2,.treatment-section h2{font-family:var(--font-serif);font-weight:600;font-size:var(--text-lg);color:var(--ink);margin:var(--space-32) 0 var(--space-12)}
.legal-page p,.legal-page li,.treatment-body p,.treatment-body li{line-height:var(--leading-read)}
.legal-page ul,.treatment-body ul,.treatment-body ol{padding-left:var(--space-24)}
.legal-contact{background:var(--pink-light);border:1px solid var(--brand);border-radius:var(--radius-md);padding:var(--space-16) var(--space-24)}
.legal-back{margin-top:var(--space-32)}
.not-found-actions{display:flex;flex-wrap:wrap;gap:var(--space-12);margin-top:var(--space-24)}
.not-found .legal-wrap{min-height:40vh}

.breadcrumb{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-16)}
.breadcrumb a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.draft-banner{background:var(--draft-bg);border:1px solid var(--draft-border);border-radius:var(--radius-sm);padding:var(--space-12) var(--space-16);font-size:var(--text-sm);margin:0 0 var(--space-16)}
mark.fill-in{background:var(--fill-in);color:var(--ink);padding:0 3px;border-radius:3px}
.treatment-page .lead{line-height:var(--leading-read)}

.quick-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-12);margin:var(--space-24) 0 var(--space-16);padding:0}
.quick-fact{background:var(--pink-light);border:1px solid var(--brand);border-radius:var(--radius-md);padding:var(--space-12) var(--space-16)}
.quick-fact dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:600}
.quick-fact dd{margin:var(--space-4) 0 0;font-weight:600;color:var(--ink)}
.treatment-cta{display:flex;flex-wrap:wrap;gap:var(--space-12);margin:var(--space-4) 0 var(--space-32)}

.treatment-body p,.treatment-body li{color:var(--ink)}
.treatment-body li{margin-bottom:var(--space-8)}
.treatment-body a{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.table-scroll{overflow-x:auto;margin:var(--space-16) 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card)}
.treatment-body table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}
.treatment-body table.wide{min-width:520px}
.treatment-body th,.treatment-body td{padding:var(--space-12);text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.treatment-body th{background:var(--pink-light);font-weight:600}
.treatment-body tbody th{background:transparent}
.treatment-body tr:last-child td,.treatment-body tr:last-child th{border-bottom:0}
.treatment-diagram{margin:var(--space-8) 0 var(--space-24);text-align:center}
.treatment-diagram img{max-width:100%;height:auto}
.treatment-diagram figcaption{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-8)}
.treatment-photo{margin:var(--space-8) 0 var(--space-24)}
.treatment-photo img{display:block;width:100%;height:auto;border-radius:var(--radius-lg)}
.treatment-photo figcaption{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-8)}
.treatment-photo .photo-credit,.treatment-diagram .photo-credit{display:block;margin-top:var(--space-4)}
.photo-credits{margin:var(--space-16) 0 0;font-size:var(--text-xs);color:var(--muted)}
.photo-credits a{color:inherit;text-underline-offset:2px}

.faq-item{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:var(--space-12);background:var(--card)}
.faq-item summary{cursor:pointer;list-style:none;position:relative;padding:var(--space-16) 48px var(--space-16) var(--space-16);font-weight:600;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:var(--space-16);top:var(--space-12);font-size:var(--text-lg);color:var(--primary)}
.faq-item[open] summary::after{content:"–"}
.faq-item p{margin:0;padding:0 var(--space-16) var(--space-16);line-height:var(--leading-read);color:var(--ink)}

.who-card,.where-card{background:var(--pink-light);border:1px solid var(--brand);border-radius:var(--radius-lg);padding:var(--space-16) var(--space-24)}
.who-name{font-weight:700;font-size:var(--text-md);margin:0 0 var(--space-4);color:var(--ink)}
.who-quals{margin:0 0 var(--space-8);color:var(--muted)}
.who-note{margin:0 0 var(--space-8)}
.where-card p{margin:0 0 var(--space-8);line-height:var(--leading-read)}
.where-actions{display:flex;flex-wrap:wrap;gap:var(--space-12);margin-top:var(--space-12)}
.treatment-page #book{margin-top:var(--space-32)}
.reviewed-by{margin:var(--space-32) 0 var(--space-4);font-size:var(--text-sm);color:var(--muted)}
.treatment-disclaimer{margin:0;font-size:var(--text-xs);color:var(--muted)}
.back-to-services{margin:var(--space-24) 0 0}

@media (min-width:641px){
  .quick-book-form .quick-book-submit{grid-column:1 / -1;justify-self:start;min-width:220px}
}
@media (min-width:1181px){
  .primary-nav .dropdown{position:absolute;top:calc(100% + 12px);left:-12px;min-width:290px;background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:1100}
  .has-dropdown::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
  .has-dropdown.open .dropdown,.primary-nav .dropdown:focus-within{display:block}
}
@media (max-width:1180px){
  .primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--card);border-bottom:1px solid var(--brand);box-shadow:var(--shadow-sm);max-height:calc(100vh - 80px);overflow-y:auto}
  .primary-nav.show-nav{display:block}
  .primary-nav.show-nav ul{display:flex;flex-direction:column;padding:var(--space-12) 0;align-items:stretch}
  .primary-nav.show-nav ul li{width:100%}
  .primary-nav.show-nav a{display:block;padding:var(--space-12) var(--space-32);border-radius:0}
  .primary-nav.show-nav .has-dropdown{flex-wrap:wrap}
  .primary-nav.show-nav .has-dropdown > a{flex:1}
  
  .dropdown-toggle{width:var(--tap);height:var(--tap);margin:0 var(--space-24) 0 0;border-radius:var(--radius-round);background:var(--pink-light);border:1px solid var(--brand);color:var(--primary)}
  .dropdown-toggle .icon{font-size:1.25rem}
  .has-dropdown.open .dropdown-toggle{background:var(--brand)}
  .primary-nav.show-nav .dropdown{display:none;position:static;width:100%;padding:0 0 var(--space-8);background:transparent}
  .primary-nav.show-nav .has-dropdown.open .dropdown{display:block}
  .primary-nav.show-nav .dropdown a{display:flex;padding:var(--space-12) var(--space-32) var(--space-12) 48px;border-radius:0}
  .primary-nav.show-nav .nav-book{display:block;padding:var(--space-12) var(--space-24) var(--space-8)}
  .primary-nav.show-nav .nav-book a{display:flex;gap:var(--space-12);padding:var(--space-12) var(--space-16);border-radius:var(--radius-md);color:var(--on-primary);background:var(--primary)}
  .primary-nav.show-nav .nav-book a:hover,.primary-nav.show-nav .nav-book a:focus-visible{color:var(--on-primary);background:var(--primary-dark)}
  .nav-toggle{display:inline-block;order:3}
  .header-call{margin-left:auto}
}
@media (max-width:980px){
  .hero-wrap,.about-grid,.contact-wrap{grid-template-columns:1fr}
  .hero-wrap{gap:var(--space-24)}
  .hero-media{order:-1}
  .container{padding:var(--space-24) var(--space-16)}
  .header-inner{padding:var(--space-8) var(--space-16)}
  .brand-logo{width:56px;height:56px}
  .brand-name{font-size:var(--text-md)}
  .hero,.legal-page,.treatment-page{padding-top:100px}
  .section{padding:var(--space-48) 0}
  .tech-grid{flex-direction:column}
  .tech-item{flex-basis:auto}
  .team-list{grid-template-columns:repeat(2,1fr)}
  .services-scroller{grid-auto-columns:calc((100% - var(--space-24)) / 2.3)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:768px){
  .header-call{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-12) var(--space-16);text-align:left}
  .footer-col:first-child{grid-column:1 / -1} 
  .footer-content{justify-content:center;text-align:center}
  .primary-nav.show-nav{max-height:calc(100vh - 140px - env(safe-area-inset-bottom))}
  .mobile-action-bar{
    display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:1000;
    background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(45,45,45,0.08);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-action-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:60px;color:var(--primary);text-decoration:none;font-weight:600;font-size:var(--text-xs)}
  .mobile-action-bar a:first-child{background:var(--primary);color:var(--on-primary)}
  .mobile-action-bar .icon{font-size:var(--text-lg)}
  body{padding-bottom:calc(60px + env(safe-area-inset-bottom))}
}
@media (max-width:640px){
  .quick-info{flex-direction:column;gap:var(--space-4)}
  .footer-links a{margin:0 var(--space-8)}
  .quick-book-form{grid-template-columns:1fr}
  .services-scroller{grid-auto-columns:80%}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-12)}
  .gallery-prev{left:4px} .gallery-next{right:4px}
  .team-list{grid-template-columns:1fr;gap:0}
  .team-card{display:grid;grid-template-columns:84px 1fr;column-gap:var(--space-16);align-items:center;text-align:left;padding:var(--space-12) var(--space-4);background:transparent;box-shadow:none;border:0;border-bottom:1px solid var(--brand);border-radius:0}
  .team-card:hover{transform:none;box-shadow:none}
  .team-card img{grid-row:1 / span 5;width:84px;height:84px;aspect-ratio:auto;margin:0;border-radius:var(--radius-round);object-position:center 15%;border:2px solid var(--brand)}
  .team-card > :not(img){grid-column:2}
  .team-card h3{font-size:var(--text-base);margin-bottom:2px}
  .team-role{font-size:var(--text-xs);margin-bottom:var(--space-4)}
  .team-bio{font-size:var(--text-xs);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .team-open{margin-top:var(--space-4);padding-top:0;justify-self:start;align-self:auto;font-size:var(--text-xs)}
  .team-open::after{border-radius:0}
}
@media (max-width:480px){
  .form-row,.form-row-wide-narrow{grid-template-columns:1fr}
  .contact-form .form-actions .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  .services-scroller{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0.01ms !important}
  .btn:hover,.header-call:hover,.social-link:hover,.service-card:hover,.team-card:hover,.gallery-item:hover img{transform:none}
}

@media (min-width:700px){
  .quick-facts{grid-template-columns:repeat(5,1fr)}
  .quick-facts:has(> :last-child:nth-child(4)){grid-template-columns:repeat(4,1fr)}
  .quick-facts:has(> :nth-child(6)){grid-template-columns:repeat(3,1fr)}
}

.services-scroller:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--radius-lg)}
.gallery-item:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:var(--radius-md)}
.breadcrumb a:hover{text-decoration:underline}

.treatment-layout > .treatment-wrap{margin-inline:auto}
.treatment-aside{display:none}
@media (min-width:1181px){
  .treatment-layout{display:grid;grid-template-columns:minmax(0,720px) 300px;gap:56px;justify-content:center}
  .treatment-layout > .treatment-wrap{margin:0}
  .treatment-cta{display:none}
  .treatment-aside{display:flex;flex-direction:column;gap:var(--space-16);position:sticky;top:96px;align-self:start;max-height:calc(100vh - 112px)}
  .aside-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-16) 20px}
  .aside-toc{min-height:0;overflow-y:auto}   
  .aside-book{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--space-8)}
  .aside-title{margin:0 0 var(--space-8);font-family:var(--font-serif);font-weight:600;font-size:var(--text-md);color:var(--ink)}
  .aside-toc ol{margin:0;padding-left:1.7rem;font-size:var(--text-sm);line-height:1.5}
  .aside-toc li{margin:0 0 6px}
  .aside-toc a{color:var(--ink);text-decoration:none}
  .aside-toc a:hover,.aside-toc a:focus-visible{color:var(--primary);text-decoration:underline}
  .aside-book .btn{width:100%;justify-content:center}
  .aside-meta{margin:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--muted);line-height:1.5}
  .aside-meta a{color:var(--primary);font-weight:600}
  .treatment-body h2,.treatment-section{scroll-margin-top:100px}   
}

.legal-page:not(.not-found) .legal-wrap{max-width:var(--container)}
@media (min-width:981px){
  .legal-page:not(.not-found) p,.legal-page:not(.not-found) li{line-height:1.75}
}

@media (min-width:981px){
  .team-list:has(> :last-child:nth-child(3)){grid-template-columns:repeat(3,1fr);max-width:960px;margin-inline:auto}
}

@media (min-width:981px){
  .hero{padding-bottom:var(--space-32)}
}

@media (min-width:981px) and (max-width:1180px){
  .contact-info-card .map-embed{aspect-ratio:16/9}
}
@media (min-width:641px) and (max-width:980px),(min-width:1181px){
  .contact-info-card{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-16);grid-auto-flow:row dense;align-items:start}
  .contact-info-card > *{grid-column:1 / -1}
  .contact-info-card .entrance-photo{grid-column:1;margin:var(--space-4) 0 var(--space-16)}
  .contact-info-card .entrance-photo img{aspect-ratio:4/3}
  .contact-info-card .map-embed{grid-column:2;margin:var(--space-4) 0 var(--space-16)}
  .contact-info-card:not(:has(.entrance-photo)) .map-embed{grid-column:1 / -1;aspect-ratio:16/9}
  .contact-info-card > .btn{justify-self:start}
  .contact-info-card .contact-list{margin-bottom:var(--space-8)}
}

@media (min-width:981px){
  .contact-wrap{align-items:stretch}
}
@media (min-width:1181px){
  .contact-info-card{grid-template-rows:auto auto auto minmax(220px,1fr) auto auto}
  .contact-info-card .entrance-photo{grid-row:span 2;display:grid;grid-template-rows:subgrid;margin:var(--space-4) 0 0}
  .contact-info-card .entrance-photo picture{display:block;min-height:0}
  .contact-info-card .entrance-photo img{aspect-ratio:auto;height:100%;min-height:0}
  .contact-info-card .map-embed{align-self:stretch;aspect-ratio:auto;margin:var(--space-4) 0 0}
  .contact-info-card > .btn{margin-top:var(--space-16)}
}
