/* Exotic Touch Massage · Atelier edition V3
   Frontend-only editorial redesign. No backend routes, forms, or permissions changed.
   Loaded after site.css and motion-premium.css so it can be removed independently. */
:root{
  --luxe-forest:#20372d;
  --luxe-forest-2:#344b3a;
  --luxe-olive:#6b785c;
  --luxe-gold:#b6a477;
  --luxe-gold-light:#e3d6ae;
  --luxe-ivory:#fcfaf4;
  --luxe-linen:#f3f0e6;
  --luxe-ease:cubic-bezier(.19,1,.22,1);
  --luxe-shadow:0 28px 72px rgba(31,53,37,.14);
}
html{scroll-padding-top:108px}
body{background:var(--luxe-ivory);color:#26372c}
::selection{background:#a5b198;color:#173124}
.shell{width:min(1280px,calc(100% - 92px))}
h1,h2{letter-spacing:-.047em}
h1 em,h2 em{color:#718363;font-style:italic}
.eyebrow{letter-spacing:.23em;color:#778466;font-size:.68rem}
.eyebrow::before{content:'';display:inline-block;width:20px;height:1px;background:#ac9b6b;vertical-align:middle;margin:0 12px 4px 0}
.eyebrow:has(.dot)::before{display:none}
.etm-reading-progress{height:2px;position:fixed;top:0;left:0;width:100%;z-index:101;pointer-events:none}
.etm-reading-progress>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#a1af8e,#d6bd84,#a1af8e);transform:scaleX(0);transform-origin:left;will-change:transform}
.etm-topline{background:#253b2f;color:#f4efe3;font-size:.61rem;letter-spacing:.19em;line-height:1.5}
.etm-topline>.shell{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.etm-topline i{font-style:normal;color:#d7c393;margin:0 10px}
.site-header{border-bottom:1px solid rgba(151,159,131,.24);background:rgba(252,250,244,.94)}
.site-header.is-scrolled{background:rgba(252,250,244,.98);box-shadow:0 14px 42px rgba(30,48,33,.09)}
.nav-inner{height:88px}
.brand{font-size:19px;gap:12px;letter-spacing:.08em}
.brand small{letter-spacing:.27em;color:#69745e;font-size:9px}
.brand img{filter:drop-shadow(0 5px 8px rgba(36,57,38,.12))}
.nav{gap:32px;letter-spacing:.025em}
.nav>a:not(.button){font-size:.76rem;font-weight:600}
.nav>a.is-active:not(.button){border-bottom-color:transparent}
.button{min-height:52px;padding-inline:28px;border-radius:2px;background:var(--luxe-forest);border-color:var(--luxe-forest);letter-spacing:.035em;box-shadow:0 7px 20px rgba(33,56,40,.13)}
.button:hover{background:#455b47;box-shadow:0 16px 38px rgba(33,56,40,.22)}
.button.small{border-radius:2px;padding-inline:20px}
.button.outline{border-color:#a5b09e}
.button.light{background:#f5f0de;border-color:#f5f0de;color:#2a402e!important}
.text-link{border:0;gap:20px;position:relative;letter-spacing:.04em}
.text-link::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,#9b9b78,#c8b783);transform-origin:left;transition:scale .5s var(--luxe-ease)}
@media(hover:hover){.text-link:hover::after{scale:.55 1}}
/* Hero: crafted botanical art, not placeholder copy or unrelated stock photography. */
.hero{position:relative;isolation:isolate;background:radial-gradient(ellipse 55% 75% at 90% 53%,rgba(191,198,163,.42),transparent 76%),linear-gradient(107deg,#fbf9f2 0%,#f5f2e9 51%,#e8e9dc 100%);overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.22;pointer-events:none;background-image:radial-gradient(#9aa28a .45px,transparent .7px);background-size:7px 7px;mask-image:linear-gradient(90deg,transparent 22%,#000 100%)}
.hero::after{content:'EXOTIC / TOUCH / MASSAGE';position:absolute;right:-23px;bottom:35px;font:500 9px/1 'DM Sans',sans-serif;letter-spacing:.38em;writing-mode:vertical-rl;color:#69745d;opacity:.66}
.hero-inner{min-height:745px;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:15px}
.hero-copy{padding:95px 0 80px}
.hero-copy>.eyebrow{color:#5e725e;margin-bottom:32px;font-size:.68rem}
.hero h1{font-size:clamp(4.8rem,7.2vw,8.4rem);line-height:.97;max-width:780px;letter-spacing:-.068em;margin-bottom:36px;color:#22392d}
.hero h1 em{font-weight:400;line-height:1.14;padding-right:.1em;color:#66795e}
.hero-lead{font-size:1.06rem;color:#586b5b;max-width:440px;line-height:1.95}
.hero-actions{margin-top:39px;gap:30px}
.hero-meta{margin-top:91px;color:#61705e;font-size:.64rem;letter-spacing:.13em;gap:27px;display:flex;align-items:center;flex-wrap:wrap}
.hero-location-link{display:inline-flex;align-items:center;gap:9px;color:#61705e;border-left:1px solid #b5b49b;padding-left:14px;white-space:nowrap;transition:color .28s ease,transform .28s ease}
.hero-location-number{font-size:.9em;letter-spacing:.18em;color:#9b8b62;font-weight:700}
.hero-location-rule{width:15px;height:1px;background:rgba(155,139,98,.72);display:inline-block;transform-origin:left center;transition:width .28s ease,background .28s ease}
.hero-location-name{letter-spacing:.13em}
.hero-location-arrow{font-size:.72rem;color:#8f805b;opacity:0;transform:translateX(-5px);transition:opacity .28s ease,transform .28s ease}
@media(hover:hover){.hero-location-link:hover{color:#2d4938;transform:translateY(-1px)}.hero-location-link:hover .hero-location-rule{width:23px;background:#9b8b62}.hero-location-link:hover .hero-location-arrow{opacity:1;transform:translateX(0)}}
.hero-visual{height:670px;min-width:0;overflow:visible}
.hero-orbit{top:52px;right:18px;width:548px;height:548px;border-color:rgba(138,156,127,.46);animation-duration:19s}
.hero-orbit:before{inset:34px;border-color:rgba(141,155,128,.34)}
.hero-stage{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:min(460px,90%);height:565px;overflow:hidden;border-radius:234px 234px 5px 5px;background:radial-gradient(ellipse 66% 52% at 70% 39%,#dae0c9,transparent 95%),linear-gradient(160deg,#f3efdf 0%,#d9dfc9 43%,#b2bfa7 100%);border:9px solid #faf8ee;box-shadow:0 42px 95px rgba(35,57,36,.22),inset 0 0 0 1px rgba(255,255,255,.76);transform:rotate(1deg)}
.hero-stage::before{content:'';position:absolute;inset:15px;border:1px solid rgba(255,255,245,.65);border-radius:223px 223px 2px 2px;pointer-events:none;z-index:5}
.hero-stage::after{content:'';position:absolute;inset:-45%;pointer-events:none;z-index:0;opacity:.21;background:linear-gradient(109deg,transparent 30%,#fff 43%,transparent 56%);transform:translateX(-90%) rotate(-8deg);animation:luxe-sheen 17s 3s ease-in-out infinite}
.hero-stage-border{position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.56);border-radius:50%;top:43px;left:calc(50% - 210px);box-shadow:0 0 0 25px rgba(255,255,255,.035),0 0 0 50px rgba(255,255,255,.035)}
.hero-stage-center{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:50px;max-width:280px;color:#273f30;text-shadow:0 1px rgba(255,255,255,.35)}
.hero-stage-star{font:300 35px 'Playfair Display',Georgia,serif;color:#ab9566;margin-bottom:28px}
.hero-stage-label,.hero-stage-caption{font:600 10px 'DM Sans',sans-serif;letter-spacing:.27em;color:#5a6e56}
.hero-stage-monogram{font:400 clamp(4.7rem,6.9vw,7rem)/1 'Playfair Display',Georgia,serif;letter-spacing:-.14em;margin:22px 0;color:#344e3b}
.hero-stage-monogram span{font-size:1.35rem;color:#a08f66;display:inline-block;vertical-align:middle;margin:0 22px 0 17px;letter-spacing:0}
.hero-stage-subtitle{font:500 clamp(.8rem,1.4vw,1rem)/1.45 'Playfair Display',Georgia,serif;letter-spacing:.29em}
.hero-stage-line{width:48px;height:1px;background:#9a9877;margin:29px 0 19px}
.hero-leaf{position:absolute;z-index:1;opacity:.5;animation:etm-leaf-sway 15s ease-in-out infinite}
.hero-leaf-back{width:310px;top:-6px;right:-55px;left:auto;transform:rotate(28deg);opacity:.28}
.hero-leaf-front{width:285px;left:-83px;top:auto;bottom:-50px;transform:rotate(-40deg);opacity:.63;filter:drop-shadow(0 14px 15px rgba(30,60,30,.08))}
.hero-stage-index{position:absolute;right:0;bottom:37px;color:#586d55;font:600 .65rem 'DM Sans',sans-serif;letter-spacing:.2em;transform:rotate(90deg);transform-origin:bottom right}
.hero-stage-index span{color:#859075;margin-left:11px}
.floating-note{left:-23px;bottom:73px;transform:rotate(-5deg);border:1px solid #d5c9ac;border-radius:2px;background:rgba(252,249,239,.96);padding:20px 27px;box-shadow:0 19px 45px rgba(28,51,30,.16);font-size:1.13rem}
.floating-note::before{content:'✧';position:absolute;top:-16px;right:15px;color:#b49b64;font-size:34px}
.floating-note span{letter-spacing:.08em;margin-top:8px}
.stats-band{position:relative;background:#24392c;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.1)}
.stats-band::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.13;background:repeating-linear-gradient(117deg,transparent 0 25px,#c1b385 26px,transparent 27px 52px)}
.stats-inner{position:relative;padding:27px 0;color:#f3f0e4;font-size:.67rem;letter-spacing:.14em}
.stats-inner span::first-letter{color:#d7c393}
/* Stronger editorial rhythm while keeping every real branch and therapist record intact. */
.section{padding-top:132px;padding-bottom:132px}
.section.compact{padding-top:53px}
.section-top{margin-bottom:52px}
.section-top h2,.editorial h2{font-size:clamp(3rem,4.7vw,5.1rem);line-height:1.07}
.section-top .muted{max-width:445px;line-height:1.9}
.location-grid,.staff-grid{gap:24px}
.location-card,.staff-card,.service-card{background:#fffdf8;border:1px solid rgba(124,142,113,.22);box-shadow:0 12px 35px rgba(32,55,38,.045);border-radius:2px;overflow:hidden}
.location-card::before,.staff-card::before{content:'';position:absolute;inset:9px;z-index:2;border:1px solid rgba(250,246,232,.45);pointer-events:none}
.location-art{height:350px;background:linear-gradient(130deg,#cdd6c3,#ece9dd)}
.location-art::after,.staff-photo::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(28,48,33,.27),transparent 43%)}
.location-art>img{filter:saturate(.72) contrast(1.015)}
.location-photo-label{z-index:1;bottom:21px;left:21px;background:rgba(251,249,240,.96);border-left:2px solid #b5a274;border-radius:0;font-size:.65rem;letter-spacing:.12em;padding:10px 13px}
.location-body{padding:31px 29px 33px}
.location-body h3{font-size:1.7rem;letter-spacing:-.025em}
.location-body>p:not(.eyebrow){line-height:1.8;color:#647363}
.location-links{border-top-color:#e6e6dc;margin-top:25px;letter-spacing:.035em}
.soft-section{background:linear-gradient(135deg,#ebeee4 0%,#f1f1e9 65%,#e9ecdf 100%);position:relative;overflow:hidden}
.soft-section::before{content:'✦';position:absolute;right:3%;top:4%;font:400 160px 'Playfair Display',serif;color:#bbc6af;opacity:.18;pointer-events:none}
.staff-photo{height:385px;background:#e8e9df}
.photo-badge{bottom:20px;left:20px;padding:10px 14px;font-size:.63rem;letter-spacing:.16em;background:#faf8f0;z-index:1;border-left:2px solid #b7a576}
.staff-info{padding:30px}
.staff-info h3{font-size:1.8rem}
.staff-info p:not(.eyebrow){line-height:1.85}
.editorial{gap:min(10vw,135px)}
.editorial-art{border-radius:260px 260px 4px 4px;background:linear-gradient(160deg,#d5ddc6,#f6f0df);box-shadow:var(--luxe-shadow)}
.editorial-art::after{content:'A LITTLE TIME FOR YOURSELF';position:absolute;bottom:30px;left:30px;right:30px;padding:19px 8px;text-align:center;letter-spacing:.19em;font-size:.65rem;color:#f9f7ed;background:rgba(42,64,46,.72);border:1px solid rgba(255,255,255,.27);backdrop-filter:blur(9px)}
.editorial-leaf{width:290px;opacity:.65}
.steps>div{padding:22px 0;gap:30px}
.steps strong{font-size:1.26rem;color:#9c916e}
.steps b{letter-spacing:-.01em}
.cta-section{padding:132px 0 145px;background:radial-gradient(ellipse at 18% 100%,rgba(129,152,112,.24),transparent 50%),radial-gradient(ellipse at 84% 5%,rgba(167,164,117,.17),transparent 51%),#20372b;position:relative;isolation:isolate}
.cta-section::after{content:'';position:absolute;inset:16px;border:1px solid rgba(224,210,169,.23);pointer-events:none;z-index:0}
.cta-section .shell{position:relative;z-index:1}
.cta-section h2{font-size:clamp(3rem,5.8vw,6.2rem);line-height:1.05;max-width:820px}
.cta-section h2 em{color:#d4c8a0}
.cta-section p:not(.eyebrow){font-size:1.03rem;line-height:1.9}
.cta-section .eyebrow{color:#d8c79e}
.cta-section .button{margin-top:28px}
.footer{background:#eaece1;padding-top:91px}
.footer h4{letter-spacing:.2em;font-size:.65rem}
.footer-grid>div:not(:first-child)>a{transition:color .2s,translate .3s var(--luxe-ease)}
@media(hover:hover){.footer-grid>div:not(:first-child)>a:hover{translate:4px 0;color:#304f36}}
.footer-bottom{border-top-color:#cfd7ca}
/* Inner pages and forms share the same refined look. No checkout features invented. */
.page-hero{position:relative;padding-top:88px;padding-bottom:64px}
.page-hero::after{content:'✧';position:absolute;right:6px;top:0;font:300 clamp(7rem,13vw,13rem) 'Playfair Display',serif;color:#e4e6d8;z-index:-1}
.page-hero h1{font-size:clamp(3.6rem,6.4vw,7.1rem)}
.page-hero>p:not(.crumb):not(.eyebrow){line-height:1.9}
.chip{background:#fffdf7;border-radius:2px;padding:11px 18px;border-color:#cad3c2;transition:background .3s,color .3s,translate .3s var(--luxe-ease)}
.chip.selected,.chip:hover{background:#304935;border-color:#304935}
@media(hover:hover){.chip:hover{translate:0 -2px}}
.booking-form,.booking-sidebar,.contact-form,.contact-location,.branch-info,.service-card{box-shadow:0 15px 45px rgba(34,57,39,.06)}
.booking-sidebar{background:linear-gradient(135deg,#e7eddf,#f7f6eb)}
.form-section{border-color:#e3e6d9}
input,select,textarea{border-radius:2px;background:#fffdf8;transition:border-color .3s,box-shadow .3s}
input:focus,select:focus,textarea:focus{border-color:#839c76;box-shadow:0 0 0 3px rgba(123,155,112,.11)}
.slot-choice{border-radius:3px}
.slot-choice.selected{background:#344f3c}
.profile-image img{box-shadow:var(--luxe-shadow)}
/* Reveal content is never hidden if JavaScript fails; existing V2.1 observer is retained. */
.etm-motion-target{transition-duration:1.05s;transition-timing-function:var(--luxe-ease)}
.etm-motion-target.etm-motion-pending{translate:0 38px}
.etm-motion-target.etm-motion-visible.etm-stagger-1{transition-delay:.11s}
.etm-motion-target.etm-motion-visible.etm-stagger-2{transition-delay:.22s}
/* A tiny amount of interaction follows only fine pointers, not scrolling or taps. */
@media(hover:hover) and (pointer:fine){
  .location-card:hover,.staff-card:hover,.service-card:hover{transform:translateY(-11px);box-shadow:0 32px 75px rgba(28,48,34,.17);border-color:#afbea5}
  .hero-stage:hover .hero-stage-monogram{transform:translateY(-4px);transition:transform 1s var(--luxe-ease)}
}
@keyframes luxe-sheen{0%,18%{transform:translateX(-95%) rotate(-8deg)}34%,100%{transform:translateX(95%) rotate(-8deg)}}
/* Responsive: keep generous spacing but no horizontal scrolling or oversized art. */
@media(max-width:1050px){
 .shell{width:min(1220px,calc(100% - 48px))}
 .hero-inner{min-height:655px}
 .hero h1{font-size:clamp(4rem,6.9vw,6rem)}
 .hero-visual{height:580px}
 .hero-stage{height:490px;width:min(380px,92%)}
 .hero-orbit{width:420px;height:420px;top:72px;right:0}
 .hero-stage-monogram{font-size:5rem}
 .floating-note{left:-7px;bottom:50px}
 .nav{gap:17px}
 .section{padding-top:95px;padding-bottom:95px}
 .location-art{height:285px}.staff-photo{height:315px}
}
@media(max-width:760px){
 .shell{width:calc(100% - 38px)}
 .etm-topline>.shell{min-height:29px;justify-content:center;text-align:center;font-size:.52rem}
 .etm-topline>.shell span:last-child{display:none}
 .nav-inner{height:72px}
 .nav{top:72px;background:#fcfaf4;border-top:1px solid #e7e7dd;z-index:50}
 .hero-inner{grid-template-columns:1fr;min-height:0;gap:0}
 .hero-copy{padding:70px 0 18px}
 .hero h1{font-size:clamp(3.7rem,11.7vw,6.2rem);margin-bottom:28px}
 .hero-lead{font-size:.97rem}
 .hero-actions{gap:21px;margin-top:27px}
 .hero-meta{margin:42px 0 7px;display:grid;grid-template-columns:1fr;gap:0;font-size:1rem;line-height:1.35;letter-spacing:0;border-top:1px solid rgba(155,139,98,.28);border-bottom:1px solid rgba(155,139,98,.28)}
 .hero-meta .hero-location-link{display:grid;grid-template-columns:34px 24px minmax(0,1fr) 18px;align-items:center;gap:9px;width:100%;min-height:54px;padding:14px 2px;border-left:0;border-bottom:1px solid rgba(95,112,85,.14);color:#536454;white-space:normal;animation:luxe-location-nav-in .58s both cubic-bezier(.22,.72,.24,1)}
 .hero-meta .hero-location-link:last-child{border-bottom:0}
 .hero-meta .hero-location-link:nth-child(1){animation-delay:.56s}
 .hero-meta .hero-location-link:nth-child(2){animation-delay:.66s}
 .hero-meta .hero-location-link:nth-child(3){animation-delay:.76s}
 .hero-location-number{font-size:.69rem;letter-spacing:.16em;color:#9c8a61;font-weight:700}
 .hero-location-rule{width:18px;background:rgba(156,138,97,.68)}
 .hero-location-name{font:500 .98rem/1.3 'DM Sans',Arial,sans-serif;letter-spacing:.075em;color:#59695a}
 .hero-location-arrow{justify-self:end;font-size:.78rem;color:#9c8a61;opacity:.62;transform:none}
 .hero-location-link:active{background:rgba(143,155,120,.065);transform:scale(.995)}
 .hero-visual{height:490px;max-width:510px;width:100%;margin:0 auto;overflow:hidden}
 .hero-stage{height:425px;width:min(325px,77%);border-width:7px;border-radius:180px 180px 4px 4px}
 .hero-stage::before{inset:11px;border-radius:170px 170px 3px 3px}
 .hero-stage-center{margin-top:30px}
 .hero-stage-star{margin-bottom:6px;font-size:27px}
 .hero-stage-label,.hero-stage-caption{font-size:8px}
 .hero-stage-monogram{font-size:4.4rem;margin:17px 0}
 .hero-stage-monogram span{margin:0 15px;font-size:1.05rem}
 .hero-stage-subtitle{font-size:.77rem}
 .hero-stage-line{margin:20px 0 13px}
 .hero-orbit{width:385px;height:385px;top:30px;right:calc(50% - 192px)}
 .hero-leaf-back{width:225px;right:-50px}.hero-leaf-front{width:205px;left:-54px;bottom:-20px}
 .floating-note{left:4px;bottom:18px;font-size:.99rem;padding:14px 16px}
 .hero-stage-index{display:none}
 .stats-inner{flex-direction:column;align-items:center;gap:8px;padding:20px 0;text-align:center}
 .section{padding-top:78px;padding-bottom:78px}
 .section-top h2,.editorial h2{font-size:clamp(2.65rem,7vw,3.7rem)}
 .location-grid,.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
 .location-art{height:230px}.staff-photo{height:260px}
 .location-body,.staff-info{padding:22px 18px}
 .location-body h3,.staff-info h3{font-size:1.45rem}
 .editorial{gap:35px}
 .cta-section{padding:95px 0 110px}
 .footer{padding:70px 0 25px}
 .page-hero{padding-top:52px;padding-bottom:35px}
}
@media(max-width:520px){
 .shell{width:calc(100% - 36px)}
 .hero-copy{padding-top:52px}
 .hero h1{font-size:clamp(3.55rem,12.8vw,5.5rem)}
 .hero-visual{height:415px}
 .hero-stage{height:363px;width:min(280px,78%)}
 .hero-stage-center{margin-top:24px}
 .hero-stage-star{font-size:23px;margin-bottom:5px}
 .hero-stage-monogram{font-size:3.7rem;margin:10px 0}
 .hero-stage-subtitle{font-size:.69rem}
 .hero-stage-line{margin:15px 0 10px}
 .hero-orbit{width:340px;height:340px;right:calc(50% - 170px);top:17px}
 .hero-leaf-front{width:170px;left:-35px}
 .hero-leaf-back{width:170px;right:-44px}
 .floating-note{left:0;bottom:9px;font-size:.85rem;padding:12px 15px}
 .floating-note span{font-size:.55rem}
 .hero-meta{font-size:1rem;gap:0;line-height:1.35;margin-top:38px}
 .hero-meta .hero-location-link{grid-template-columns:32px 22px minmax(0,1fr) 17px;min-height:52px;padding:13px 1px}
 .hero-location-name{font-size:.94rem;letter-spacing:.065em}
 .hero-actions>.button{width:100%}
 .stats-inner{font-size:.62rem}
 .location-grid,.staff-grid,.service-grid{grid-template-columns:1fr;gap:20px}
 .location-art{height:300px}.staff-photo{height:350px}
 .location-body,.staff-info{padding:27px 24px}
 .location-body h3,.staff-info h3{font-size:1.7rem}
 .section{padding-top:71px;padding-bottom:71px}
 .editorial-art,.editorial-art>img:first-child{height:370px;min-height:370px}
 .cta-section h2{font-size:3.1rem}
 .footer-grid{gap:24px}
 .page-hero h1{font-size:clamp(3.1rem,12vw,4.7rem)}
}
@keyframes luxe-location-nav-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 .hero-location-link{animation:none!important;transition:none!important}
 .hero-stage::after{animation:none!important;opacity:0}
 .etm-reading-progress>span{will-change:auto}
 .hero-stage-monogram{transition:none!important}
 .etm-motion-target.etm-motion-pending{opacity:1!important;translate:none!important}
}
