/* Dhanwanthari — foundations */
:root { --ivory:#f4f1e9; --forest:#203a25; --botanical:#536744; --gold:#a39365; --beige:#eae6db; --ink:#1b241a; --line:#d3d0c3; --display:'Instrument Sans',Arial,sans-serif; --sans:'Instrument Sans',Arial,sans-serif; --gutter:clamp(24px,6.7vw,110px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; background:var(--ivory); color:var(--ink); font:14px/1.6 var(--sans); -webkit-font-smoothing:antialiased; }
body:has(dialog[open]) { overflow:hidden; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; color:inherit; }
a { color:inherit; text-decoration:none; }
button { -webkit-appearance:none; }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
img { display:block; max-width:100%; }
h1,h2,h3,p,blockquote { margin:0; }
h1,h2,h3 { font-family:var(--display); font-weight:500; line-height:1.02; letter-spacing:-.035em; }
h2 { font-size:clamp(38px,4.2vw,66px); }
h3 { font-size:29px; }
button:disabled { opacity:.3; cursor:default; }
[hidden] { display:none!important; }
.eyebrow { font-size:10px; font-weight:500; letter-spacing:.2em; line-height:1.6; margin-bottom:15px; }
.section-space { padding:100px var(--gutter); }
.skip-link { position:fixed; top:10px; left:15px; transform:translateY(-150%); background:var(--forest); color:white; padding:12px 20px; z-index:200; }
.skip-link:focus { transform:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; border:1px solid transparent; border-radius:5px; padding:15px 23px; font-size:12px; line-height:1.3; transition:background .3s,color .3s,transform .3s,box-shadow .3s; white-space:nowrap; }
.button span { font-size:23px; line-height:12px; transition:transform .3s; }
.button:hover { transform:translateY(-2px); box-shadow:0 7px 20px #00000012; }
.button:hover span { transform:translateX(5px); }
.dark { background:var(--forest); color:var(--ivory); }
.dark:hover { background:var(--botanical); }
.cream { background:var(--ivory); color:var(--ink); }
.cream:hover { background:white; }
.text-link { display:inline-flex; gap:22px; align-items:center; border:0; background:none; padding:0 0 5px; border-bottom:1px solid #a9aa98; font-size:13px; line-height:1.4; }
.text-link span { font-size:24px; line-height:1; transition:transform .3s; }
.text-link:hover span { transform:translateX(6px); }
.round-button,.circle-arrow { display:inline-grid; place-items:center; width:40px; height:40px; border:1px solid currentColor; border-radius:50%; background:transparent; font-size:21px; line-height:1; transition:background .3s,color .3s,transform .3s; }
.round-button:hover:not(:disabled) { background:var(--forest); color:var(--ivory); border-color:var(--forest); }
.photo { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.photo svg { width:100%; height:100%; display:block; }
.photo img { position:absolute; max-width:none; }
/* Navigation */
.header { position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:26px; height:88px; padding:0 4.5%; background:#f4f1e9f5; border-bottom:1px solid transparent; backdrop-filter:blur(16px); transition:height .3s,box-shadow .3s; }
.header.scrolled { box-shadow:0 2px 20px #1b241a0a; border-bottom-color:#d3d0c380; }
.brand { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.brand svg { width:48px; height:48px; }
.brand>span { font-family:var(--display); font-size:32px; font-weight:600; line-height:1; letter-spacing:-1.4px; }
.brand sup { font:9px var(--sans); vertical-align:top; }
.brand small { display:block; margin-top:6px; font:9px var(--sans); letter-spacing:2.3px; }
.header nav { display:flex; gap:clamp(18px,2.2vw,36px); font-size:12px; }
.header nav a { padding:12px 0; position:relative; }
.header nav a:after { content:''; position:absolute; bottom:6px; left:0; height:1px; width:100%; background:var(--forest); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.header nav a:hover:after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:25px; }
.search-button,.menu-toggle { display:grid; place-items:center; width:34px; height:40px; border:0; padding:7px; background:none; }
.search-button svg { width:19px; fill:none; stroke:currentColor; stroke-width:1.2; }
.menu-toggle { display:none; font-size:25px; }
/* Hero */
.hero { position:relative; min-height:650px; height:calc(100svh - 88px); max-height:800px; overflow:hidden; background:#1d2e1a; color:var(--ivory); }
.hero .forest-photo { width:43%; opacity:.8; }
.hero-photo { left:38%; width:62%; transform-origin:70% 50%; animation:cinematic 22s ease-in-out infinite alternate; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,#142316ae,#1b2b1ab0 34%,#24341d55 52%,transparent 77%),linear-gradient(0deg,#15261555,transparent 50%); }
.hero-content { position:relative; height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:65px var(--gutter) 46px; }
.hero h1 { font-size:clamp(64px,6.8vw,104px); line-height:.94; max-width:800px; font-weight:400; }
.hero .eyebrow { margin-bottom:24px; }
.hero-description { font-size:15px; line-height:1.7; margin-top:28px; }
.hero-buttons { display:flex; align-items:center; gap:35px; margin-top:27px; }
.journey { border:0; background:none; color:inherit; display:flex; align-items:center; gap:12px; font-size:12px; padding:0; }
.play { display:grid; place-items:center; width:38px; height:38px; padding-left:2px; border:1px solid #e7e5da; border-radius:50%; font-size:11px; transition:background .3s,transform .3s; }
.journey:hover .play { background:#ffffff25; transform:scale(1.1); }
.stats { display:flex; margin-top:60px; }
.stats>div { display:flex; flex-direction:column; border-right:1px solid #d9dece66; padding:0 38px; }
.stats>div:first-child { padding-left:0; }
.stats>div:last-child { border:0; }
.stats strong { font:400 36px/1 var(--display); font-variant-numeric:tabular-nums; min-width:84px; }
.stats span { margin-top:9px; font-size:11px; }
.hero-content>.eyebrow,.hero h1,.hero-description,.hero-buttons,.stats { animation:rise-in 1s both; }
.hero-content>.eyebrow { animation-delay:.15s; }.hero h1 { animation-delay:.25s; }.hero-description { animation-delay:.4s; }.hero-buttons { animation-delay:.55s; }.stats { animation-delay:.7s; }
/* Treatment collection */
.specialties { position:relative; padding:80px 3.2% 75px; }
.leaf-decoration { left:auto; width:17%; height:190px; opacity:.55; }
.section-intro { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; padding:0 3.8%; margin-bottom:46px; }
.intro-copy { border-left:1px solid #c7c5b5; padding-left:46px; max-width:490px; }
.intro-copy p { font-size:14px; line-height:1.75; }
.intro-copy .text-link { margin-top:20px; }
.treatment-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; align-items:start; }
.treatment { position:relative; overflow:hidden; height:350px; text-align:left; padding:0; border:0; border-radius:2px; color:var(--ivory); background:var(--forest); }
.treatment:nth-child(even) { margin-top:25px; }
.treatment .photo { transition:transform .8s cubic-bezier(.2,.6,.2,1),filter .8s; }
.treatment:hover .photo { transform:scale(1.06); filter:brightness(.88); }
.card-gradient { position:absolute; inset:0; background:linear-gradient(transparent 35%,#14251532 55%,#142515ed); transition:opacity .4s; opacity:.85; }
.treatment:hover .card-gradient { opacity:1; }
.card-copy { position:absolute; bottom:26px; left:25px; right:40px; transition:transform .4s; }
.card-copy h3 { font-size:clamp(24px,2.2vw,34px); white-space:nowrap; }
.card-copy p { font-size:11px; margin-top:7px; }
.treatment>.circle-arrow { position:absolute; bottom:26px; right:15px; width:29px; height:29px; font-size:19px; }
.treatment:hover .circle-arrow { transform:rotate(-35deg); background:var(--ivory); color:var(--forest); }
.treatment:hover .card-copy { transform:translateY(-6px); }
/* Retreat / considered care */
.retreat { display:grid; grid-template-columns:1.12fr 1fr; background:var(--forest); color:var(--ivory); }
.retreat-visual { position:relative; min-height:580px; overflow:hidden; }
.retreat-visual .photo { inset:-25px; transform:translateY(var(--parallax,0px)); }
.image-caption { position:absolute; bottom:30px; left:35px; right:35px; font-size:11px; color:white; text-shadow:0 1px 6px #000; }
.retreat-content { padding:65px 11%; align-self:center; }
.retreat h2 { font-size:clamp(42px,4.2vw,65px); }
.retreat-content>p:not(.eyebrow) { font-size:14px; line-height:1.8; color:#e1e4d6; margin:24px 0; max-width:390px; }
.retreat-features { list-style:none; padding:0; margin:0 0 30px; display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
.retreat-features li { border-bottom:1px solid #f4f1e930; padding:13px 0; font-size:11px; white-space:nowrap; }
.retreat-features span { color:#b8b99b; margin-right:10px; font-size:9px; }
.why { display:flex; align-items:center; padding:65px var(--gutter); gap:50px; border-bottom:1px solid var(--line); }
.why-title { flex:0 0 32%; }
.why h2 { font-size:clamp(32px,3vw,45px); }
.benefits { display:grid; grid-template-columns:repeat(4,1fr); flex:1; }
.benefits button { background:none; border:0; border-left:1px solid var(--line); padding:0 14px; font:500 19px/1.15 var(--display); transition:color .3s,transform .3s; }
.benefits button:hover { color:var(--botanical); transform:translateY(-5px); }
.benefits svg { width:42px; height:37px; fill:none; stroke:var(--botanical); stroke-width:1.4; display:block; margin:0 auto 12px; }
/* Physician showcase */
.doctors { display:grid; grid-template-columns:36% 31% 33%; align-items:center; padding:85px 5% 85px 0; gap:0; }
.doctor-photo { position:relative; height:365px; overflow:hidden; }
.doctor-photo svg { transition:transform 1s; }
.doctor-photo:hover svg { transform:scale(1.035); }
.doctor-intro { padding:25px 35px 25px 45px; }
.doctor-intro h2 { font-size:clamp(34px,3.2vw,49px); }
.doctor-intro>p:not(.eyebrow) { margin:20px 0 25px; font-size:13px; line-height:1.7; }
.doctor-intro .desktop { display:none; }
.doctor-list { display:flex; flex-direction:column; gap:16px; }
.doctor-card { display:flex; align-items:center; text-align:left; gap:17px; border:1px solid #d8d2c5; border-radius:5px; padding:20px 15px; background:none; transition:background .3s,transform .3s; }
.doctor-card:hover { background:var(--beige); transform:translateX(-4px); }
.portrait { position:relative; inset:auto; width:65px; height:65px; border-radius:50%; flex-shrink:0; }
.doctor-card strong { font-size:12px; font-weight:500; }
.doctor-card p { font-size:10px; margin-top:6px; line-height:1.7; }
.doctor-card .circle-arrow { width:27px; height:27px; font-size:19px; border-color:#d3cbbb; flex-shrink:0; margin-left:auto; }
.doctor-card:hover .circle-arrow { transform:translateX(4px); }
/* Facilities */
.facilities { background:var(--beige); padding-right:0; padding-bottom:60px; }
.editorial-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:45px; }
.facilities .editorial-heading { padding-right:var(--gutter); }
.heading-side>p,.journal-intro { font-size:13px; line-height:1.7; color:#5a6255; }
.gallery-controls { display:flex; gap:10px; margin-top:25px; }
.facility-gallery { display:flex; gap:25px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:0 var(--gutter) 5px 0; overscroll-behavior-x:contain; }
.facility-gallery::-webkit-scrollbar { display:none; }
.facility-card { flex:0 0 39%; min-width:280px; padding:0; text-align:left; border:0; background:transparent; scroll-snap-align:start; }
.facility-image { position:relative; height:350px; overflow:hidden; background:#d4d2c3; }
.facility-image>img { width:100%; height:100%; object-fit:cover; transition:transform .8s,filter .8s; filter:saturate(.75); }
.facility-image>.photo { transition:transform .8s; }
.facility-card:hover img,.facility-card:hover .photo { transform:scale(1.04); }
.gallery-expand { display:grid; place-items:center; position:absolute; right:20px; bottom:20px; border:1px solid #fff9; border-radius:50%; width:36px; height:36px; color:white; font-size:22px; background:#1b241a30; }
.facility-caption { padding-top:24px; }
.facility-caption>span,.gallery-foot { font-size:9px; letter-spacing:.15em; }
.facility-caption h3 { margin:10px 0 7px; font-size:32px; }
.facility-caption p { color:#65705b; font-size:12px; }
.gallery-foot { display:flex; align-items:center; gap:30px; margin:40px var(--gutter) 0 0; color:#68705e; }
.gallery-foot>span:last-child { letter-spacing:0; }
.gallery-progress { flex:1; height:1px; background:#c9cbbc; }
.gallery-progress span { display:block; height:2px; background:var(--botanical); width:25%; transition:width .2s; }
/* Experiences */
.experiences { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; border-bottom:1px solid var(--line); }
.sample-label { font-size:10px; color:#727565; margin-top:20px; }
.experience-intro h2 { font-size:clamp(40px,4.3vw,65px); }
.testimonial-controls { display:flex; gap:22px; align-items:center; margin-top:35px; }
#testimonial-count { font-size:10px; letter-spacing:.15em; }
.testimonial-stage { position:relative; padding-top:24px; }
.quote-mark { position:absolute; top:-25px; left:-5px; font:100px/1 var(--display); color:#acb296; }
#testimonial-content { min-height:255px; }
#testimonial-content.changing { animation:quote-in .45s both; }
blockquote { font:400 clamp(26px,2.6vw,40px)/1.25 var(--display); letter-spacing:-.02em; position:relative; }
.quote-person { display:flex; align-items:center; gap:15px; margin-top:30px; }
.person-monogram { display:grid; place-items:center; width:45px; height:45px; background:#e6e6d7; border-radius:50%; font:20px var(--display); }
.quote-person strong { display:block; font-size:12px; font-weight:500; }
.quote-person div>span { display:block; color:#727565; font-size:10px; margin-top:3px; }
.testimonial-dots { display:flex; gap:7px; margin-top:30px; }
.testimonial-dots button { width:30px; height:20px; border:0; padding:8px 0; background:transparent; }
.testimonial-dots button:after { content:''; display:block; height:2px; width:100%; background:#d1d4c5; transition:background .3s; }
.testimonial-dots button[aria-pressed=true]:after { background:var(--forest); }
/* Journal */
.journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.journal-card:nth-child(2) { margin-top:42px; }
.journal-image { display:block; border:0; padding:0; position:relative; overflow:hidden; width:100%; height:285px; background:var(--beige); }
.journal-image>img { width:100%; height:100%; object-fit:cover; filter:saturate(.65); transition:transform .8s,filter .8s; }
.journal-image .photo { transition:transform .8s; }
.journal-image:hover>img,.journal-image:hover .photo { transform:scale(1.05); filter:saturate(.9); }
.article-meta { display:flex; justify-content:space-between; gap:10px; margin:22px 0 13px; font-size:9px; letter-spacing:.13em; color:var(--botanical); }
.journal-card h3 { font-size:32px; line-height:1.08; }
.journal-card h3 button { text-align:left; font:inherit; letter-spacing:inherit; border:0; padding:0; background:none; }
.journal-card>p { color:#68705e; font-size:12px; line-height:1.7; margin:15px 0 22px; }
.journal-card .text-link { font-size:11px; }
/* Closing invitation / footer */
.bottom-cta { position:relative; overflow:hidden; display:grid; grid-template-columns:1fr 1.2fr auto; align-items:center; gap:50px; padding:65px var(--gutter); background:var(--forest); color:var(--ivory); }
.bottom-cta>.photo { opacity:.15; width:35%; mix-blend-mode:luminosity; }
.bottom-cta>:not(.photo) { position:relative; }
.bottom-cta h2 { font-size:clamp(42px,4vw,62px); }
.bottom-cta>p { font-size:13px; line-height:1.8; border-right:1px solid #cad4bc60; padding-right:40px; }
.bottom-cta .desktop { display:none; }
.footer { padding:70px var(--gutter) 24px; }
.footer-main { display:grid; grid-template-columns:1.6fr .85fr 1fr 1.1fr; gap:45px; }
.footer .brand>span { font-size:31px; }.footer .brand .footer-leaf { font-size:50px; color:var(--gold); }
.footer-brand>p { font-size:12px; line-height:1.9; color:#6b715f; margin:22px 0; }
.footer-main h3 { font:500 11px var(--sans); margin-bottom:22px; }
.footer-main>div>a:not(.brand),.footer-main>div>button:not(.text-link) { display:block; margin:0 0 10px; font-size:11px; color:#646d59; background:none; border:0; padding:0; }
.footer-main>div>a:hover,.footer-main>div>button:hover { color:var(--forest); }
.footer-contact>p { font-size:12px; }
.contact-placeholder { font-size:10px!important; color:#737a68; margin:10px 0 20px; }
.footer .text-link { font-size:11px; gap:10px; }
.social-links { display:flex; gap:17px; }.social-links button { font-size:10px; border:0; padding:0; background:none; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); margin-top:55px; padding-top:23px; font-size:9px; color:#707764; }
.footer-bottom>div { display:flex; gap:23px; }
.footer-bottom button { font-size:inherit; border:0; background:none; padding:0; }
/* Dialogs */
dialog { width:calc(100% - 36px); max-width:610px; max-height:90svh; overflow:auto; border:1px solid #d4cdbb; border-radius:7px; padding:45px; color:var(--ink); background:var(--ivory); box-shadow:0 25px 100px #101d1650; }
dialog::backdrop { background:#101c16af; backdrop-filter:blur(5px); }
dialog[open] { animation:rise-in .3s both; }
dialog h2 { font-size:45px; margin-bottom:20px; }
.close-dialog { position:absolute; top:10px; right:13px; width:32px; height:32px; border:0; background:none; font-size:27px; font-weight:400; line-height:1; transition:transform .3s; z-index:5; }
.close-dialog:hover { transform:rotate(90deg); }
#detail-content,#article-body { font-size:14px; line-height:1.8; margin-bottom:30px; }
#detail-content a { text-decoration:underline; text-underline-offset:3px; }
#detail-content ul { padding-left:20px; }
.form-description { font-size:13px; color:#65705b; }
form { margin-top:25px; }
label { display:block; font-size:11px; margin-bottom:17px; }
input,select,textarea { display:block; width:100%; margin-top:7px; padding:12px; background:#fcfaf5; border:1px solid #cbcbbb; border-radius:4px; color:var(--ink); outline:none; font-size:13px; }
input:focus,select:focus,textarea:focus { border-color:var(--botanical); box-shadow:0 0 0 3px #53674418; }
textarea { resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.optional { color:#7d816c; }
.prototype-note { color:#6f7561; font-size:10px; line-height:1.6; margin:10px 0 20px; }
#booking-success p { margin:20px 0; font-size:13px; line-height:1.7; }
#booking-success h3 { font-size:32px; }
.success-icon { display:grid; place-items:center; height:55px; width:55px; background:#dfe7d2; color:var(--forest); border-radius:50%; font-size:25px; margin:25px 0; }
#search-results { display:grid; gap:8px; margin-top:22px; }
#search-results button { display:flex; justify-content:space-between; text-align:left; border:1px solid #d8d6c8; padding:13px 15px; border-radius:3px; background:var(--beige); transition:background .2s; }
#search-results button:hover { background:#dce2d1; }
.lightbox { max-width:1050px; padding:0; background:var(--ivory); }
.lightbox>.close-dialog { background:var(--ivory); border-radius:50%; top:15px; right:15px; }
#lightbox-image { height:min(60svh,600px); position:relative; background:#172418; }
#lightbox-image>img { width:100%; height:100%; object-fit:contain; }
.lightbox-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 35px; }
.lightbox-bottom>div:last-child { display:flex; gap:10px; }
.lightbox h2 { font-size:35px; margin-bottom:8px; }.lightbox .eyebrow { margin-bottom:6px; }.lightbox p:not(.eyebrow) { font-size:11px; }.lightbox .sample-label { margin-top:8px; }
#article-dialog { max-width:720px; padding:50px; }
#article-body p { margin:0 0 20px; }
#article-body h3 { font-size:28px; margin:25px 0 12px; }
/* Motion: no interaction depends on animation. */
.page-curtain { position:fixed; inset:0; z-index:100; background:var(--ivory); display:grid; place-items:center; pointer-events:none; animation:curtain-out .8s .1s both; }
.page-curtain span { font:11px var(--sans); letter-spacing:.4em; color:var(--forest); }
.custom-cursor { position:fixed; top:0; left:0; z-index:70; width:80px; height:80px; background:var(--ivory); color:var(--forest); border-radius:50%; display:grid; place-items:center; font-size:10px; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.6); transition:opacity .2s,transform .2s; }
.custom-cursor.active { opacity:.95; transform:translate(-50%,-50%) scale(1); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1); transition-delay:var(--delay,0ms); }
.reveal.visible { opacity:1; transform:none; }
.image-reveal { clip-path:inset(0 8% 0 0); transition:clip-path 1.2s ease; }.image-reveal.visible { clip-path:inset(0); }
@keyframes rise-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes quote-in { from { opacity:.2; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes curtain-out { 0% { opacity:1; } 100% { opacity:0; visibility:hidden; } }
@keyframes cinematic { from { scale:1; } to { scale:1.045; } }
/* Tablet */
@media(max-width:1100px) {
 .header { height:76px; padding:0 3%; gap:20px; }.brand>span { font-size:27px; }.brand svg { width:40px; height:40px; }.brand small { font-size:8px; letter-spacing:1.7px; }.header nav { gap:18px; font-size:10px; }.header-actions { gap:12px; }.header .button { padding:12px 15px; font-size:10px; }
 .hero { min-height:610px; max-height:730px; }.hero h1 { font-size:77px; }.hero-content { padding-top:50px; }.hero-description { font-size:14px; }
 .treatment { height:290px; }.card-copy { left:17px; right:27px; }.card-copy h3 { font-size:26px; }.card-copy p { font-size:9px; }.treatment>.circle-arrow { right:10px; bottom:19px; width:24px; height:24px; }
 .retreat-visual { min-height:540px; }.retreat-content { padding:45px 10%; }.retreat-features { grid-template-columns:1fr; gap:0; }.retreat-features li { padding:8px 0; }.retreat-content>p:not(.eyebrow) { font-size:12px; }
 .why { padding:50px var(--gutter); gap:25px; }.benefits button { font-size:16px; padding:0 9px; }
 .doctors { grid-template-columns:38% 32% 30%; padding-right:3%; }.doctor-photo { height:310px; }.doctor-intro { padding:20px 23px; }.doctor-card { gap:10px; padding:15px 10px; }.portrait { width:45px; height:45px; }.doctor-card .circle-arrow { display:none; }.doctor-card strong { font-size:10px; }.doctor-card p { font-size:9px; }.doctor-intro .button { padding:13px; font-size:11px; }
 .section-space { padding-top:75px; padding-bottom:75px; }.facility-image { height:300px; }.experiences { gap:50px; }.journal-grid { gap:20px; }.journal-image { height:235px; }.journal-card h3 { font-size:28px; }.bottom-cta { gap:30px; }.footer-main { gap:25px; }.footer .brand>span { font-size:25px; }.footer .brand .footer-leaf { font-size:38px; }
}
@media(max-width:800px) {
 .header .header-actions>.button { display:none; }.header nav { gap:18px; }.header { gap:15px; }
 .hero h1 { font-size:65px; }.hero-buttons { gap:22px; }.journey { font-size:10px; }.stats { margin-top:55px; }
 .section-intro { gap:35px; padding:0 3%; }.intro-copy { padding-left:25px; }.intro-copy .desktop { display:none; }.intro-copy p { font-size:12px; }
 .treatment-grid { grid-template-columns:repeat(2,1fr); gap:18px; }.treatment { height:350px; }.treatment:nth-child(even) { margin-top:0; }.card-copy { bottom:26px; left:25px; }.card-copy h3 { font-size:34px; }.card-copy p { font-size:12px; }.treatment>.circle-arrow { bottom:27px; right:20px; width:30px; height:30px; }
 .retreat { grid-template-columns:1fr 1fr; }.retreat h2 { font-size:42px; }.retreat-visual { min-height:570px; }
 .why { display:block; }.why-title { margin-bottom:40px; }.why h2 { font-size:40px; }.benefits button:first-child { border-left:0; }.benefits button { font-size:19px; }
 .doctors { grid-template-columns:45% 55%; padding-right:0; }.doctor-photo { height:350px; }.doctor-intro { padding:30px; }.doctor-intro h2 { font-size:42px; }.doctor-list { grid-column:1/-1; flex-direction:row; padding:30px var(--gutter) 0; }.doctor-card { flex:1; padding:17px; }.doctor-card strong { font-size:12px; }.doctor-card p { font-size:10px; }.portrait { width:55px; height:55px; }
 .editorial-heading { gap:25px; }.heading-side>p { font-size:12px; }.gallery-foot>span:last-child { max-width:160px; }.facility-card { flex-basis:60%; }.experiences { grid-template-columns:1fr 1.3fr; gap:35px; }.testimonial-stage { padding-top:25px; }blockquote { font-size:29px; }.journal-card h3 { font-size:25px; }.article-meta { font-size:8px; letter-spacing:.04em; }.journal-image { height:200px; }
 .bottom-cta { grid-template-columns:1fr 1.2fr; }.bottom-cta>.button { grid-column:2; justify-self:start; }.bottom-cta>p { border:0; padding:0; }.bottom-cta h2 { grid-row:span 2; }.footer-main { grid-template-columns:1.3fr 1fr; gap:40px; }.footer-bottom { flex-direction:column; gap:18px; }
}
/* Mobile */
@media(max-width:640px) {
 html { scroll-padding-top:80px; }.header { height:72px; padding:0 22px; }.brand>span { font-size:27px; }.brand svg { width:39px; height:39px; }.header-actions { gap:12px; }.menu-toggle { display:grid; }.header nav { position:absolute; top:72px; left:0; right:0; display:flex; flex-direction:column; gap:0; padding:12px 25px 22px; background:var(--ivory); box-shadow:0 15px 20px #18251515; opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .25s,transform .25s,visibility .25s; }.header nav.open { opacity:1; visibility:visible; transform:none; }.header nav a { font-size:14px; padding:13px 0; }.header nav a:after { bottom:5px; }
 .hero { min-height:660px; height:calc(100svh - 72px); max-height:850px; }.hero .forest-photo { display:none; }.hero-photo { left:0; width:100%; opacity:.85; }.hero-shade { background:linear-gradient(90deg,#142816c9,#14281655),linear-gradient(0deg,#122416c0,transparent 75%); }.hero-content { padding:58px 24px 42px; justify-content:center; }.hero h1 { font-size:clamp(52px,12vw,76px); line-height:.98; }.hero-description { font-size:13px; max-width:340px; margin-top:25px; }.hero .desktop { display:none; }.hero .eyebrow { font-size:9px; margin-bottom:20px; }.hero-buttons { flex-wrap:wrap; gap:22px; margin-top:28px; }.hero .button { font-size:11px; padding:14px 17px; }.journey { font-size:10px; gap:8px; }.play { width:32px; height:32px; }.stats { margin-top:45px; width:100%; }.stats>div { padding:0 22px; }.stats strong { font-size:32px; min-width:0; }.stats span { font-size:9px; margin-top:7px; }
 .specialties { padding:60px 20px; }.section-intro { display:block; padding:0 4px; margin-bottom:32px; }h2 { font-size:43px; }.intro-copy { margin-top:25px; padding:0; border:0; }.intro-copy p { font-size:13px; max-width:360px; }.leaf-decoration { width:110px; height:130px; opacity:.35; }.treatment-grid { gap:12px; }.treatment { height:270px; }.card-copy { left:15px; right:18px; bottom:21px; }.card-copy h3 { font-size:25px; white-space:normal; }.card-copy p { font-size:9px; max-width:115px; line-height:1.6; }.treatment>.circle-arrow { right:10px; bottom:15px; width:22px; height:22px; font-size:15px; }
 .retreat { grid-template-columns:1fr; }.retreat-visual { min-height:320px; }.image-caption { bottom:24px; left:25px; font-size:10px; }.retreat-content { padding:45px 28px 50px; }.retreat h2 { font-size:47px; }.retreat-content>p:not(.eyebrow) { font-size:13px; }.retreat-features { grid-template-columns:1fr 1fr; gap:0 20px; }.retreat-features li { padding:13px 0; font-size:11px; }.retreat-features span { margin-right:7px; }
 .why { padding:50px 24px; }.why h2 { font-size:39px; }.benefits { grid-template-columns:repeat(2,1fr); gap:28px 0; }.benefits button { font-size:20px; padding:0 18px; }.benefits button:nth-child(odd) { border-left:0; }.benefits svg { height:36px; margin-bottom:12px; }
 .doctors { display:block; padding:50px 0; }.doctor-photo { height:320px; margin-right:25px; }.doctor-intro { padding:35px 25px 25px; }.doctor-intro h2 { font-size:43px; }.doctor-intro>p:not(.eyebrow) { max-width:330px; margin:18px 0 25px; }.doctor-list { padding:0 24px; flex-direction:column; gap:12px; }.doctor-card { padding:17px; gap:20px; }.portrait { width:60px; height:60px; }.doctor-card .circle-arrow { display:grid; }.doctor-card strong { font-size:13px; }.doctor-card p { font-size:11px; }
 .section-space { padding:60px 24px; }.editorial-heading { display:block; margin-bottom:30px; }.editorial-heading h2 { font-size:42px; }.heading-side { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:25px; }.heading-side>p { font-size:11px; max-width:240px; }.heading-side br { display:none; }.gallery-controls { margin-top:0; gap:8px; }.round-button { width:36px; height:36px; font-size:18px; }.facilities { padding-right:0; }.facility-card { flex-basis:82%; min-width:260px; }.facility-image { height:300px; }.facility-gallery { gap:16px; }.facility-caption h3 { font-size:32px; }.gallery-foot { gap:15px; margin-top:30px; flex-wrap:wrap; }.gallery-foot>span:last-child { max-width:none; flex-basis:100%; font-size:9px; }
 .experiences { display:block; }.experience-intro h2 { font-size:43px; }.testimonial-controls { margin-top:22px; }.testimonial-stage { margin-top:50px; }.quote-mark { top:-20px; }blockquote { font-size:31px; }#testimonial-content { min-height:255px; }.testimonial-dots { margin-top:15px; }
 .journal-intro { margin-top:20px; font-size:12px; }.journal-grid { grid-template-columns:1fr; gap:40px; }.journal-card:nth-child(2) { margin-top:0; }.journal-image { height:280px; }.journal-card h3 { font-size:34px; max-width:340px; }.article-meta { font-size:9px; margin:20px 0 12px; }.journal-card>p { margin:13px 0 18px; }
 .bottom-cta { display:block; padding:55px 24px; }.bottom-cta h2 { font-size:50px; }.bottom-cta>p { margin:25px 0; max-width:350px; font-size:13px; }.bottom-cta>.photo { width:75%; left:auto; opacity:.12; }
 .footer { padding:50px 24px 25px; }.footer-main { grid-template-columns:1fr 1fr; gap:35px 20px; }.footer-brand { grid-column:1/-1; }.footer .brand>span { font-size:31px; }.footer-brand>p { margin:18px 0; }.footer-contact { grid-column:1/-1; }.footer-main h3 { margin-bottom:18px; }.footer-bottom { margin-top:35px; }.footer-bottom>div { flex-wrap:wrap; gap:15px 20px; }
 dialog { padding:38px 24px 28px; max-height:92svh; }dialog h2 { font-size:38px; }.form-row { grid-template-columns:1fr; gap:0; }.lightbox-bottom { padding:24px; }.lightbox h2 { font-size:28px; }.lightbox-bottom>div:last-child { flex-direction:column; }.lightbox .sample-label { font-size:9px; }#article-dialog { padding:40px 25px; }#lightbox-image { height:45svh; }
 .custom-cursor { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }*,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.reveal { opacity:1; transform:none; }.image-reveal { clip-path:none; }.page-curtain,.custom-cursor { display:none; }.retreat-visual .photo { transform:none; }
}
@media print { .header,.page-curtain,.custom-cursor,dialog { display:none; }.reveal { opacity:1; transform:none; } }
/* Keep the hero photograph continuous behind the editorial copy. */
.hero .forest-photo { display:none; }
.hero-photo { left:0; width:100%; }
.hero-shade { background:linear-gradient(90deg,#142316dc 0%,#192d1abf 29%,#24341d55 57%,transparent 83%),linear-gradient(0deg,#15261566,transparent 60%); }
