:root{--ink:#251f23;--paper:#f7f5f2;--white:#fffdfb;--plum:#6f304a;--plum-dark:#4b2032;--sage:#687a69;--gold:#b98d59;--muted:#716a6e;--line:rgba(37,31,35,.14);--max:1240px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper);overflow-x:hidden}body.locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit}img{max-width:100%;display:block}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}.concept-bar{height:30px;padding:0 max(18px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;align-items:center;color:#e8dde2;background:var(--plum-dark);font-size:.68rem}.concept-bar a{display:flex;align-items:center;gap:8px;color:#fff}.concept-bar i,.primary i,.text-link i,footer>a i,.mobile-book i,.next i{position:relative;width:15px;height:15px;display:inline-block}.concept-bar i:before,.primary i:before,.text-link i:before,footer>a i:before,.mobile-book i:before,.next i:before{content:"";position:absolute;left:1px;top:7px;width:11px;height:1px;background:currentColor}.concept-bar i:after,.primary i:after,.text-link i:after,footer>a i:after,.mobile-book i:after,.next i:after{content:"";position:absolute;right:1px;top:4px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor}.site-header{position:absolute;top:30px;left:50%;z-index:40;width:min(100%,var(--max));height:84px;padding:0 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;transform:translateX(-50%);color:#fff}.brand{display:flex;align-items:center;gap:11px;width:max-content}.brand img{width:42px;height:42px}.brand>span,.footer-brand>span{display:flex;flex-direction:column;font:700 1.05rem/1 "Manrope"}.brand small,.footer-brand small{margin-top:4px;font:500 .52rem/1 "DM Sans";text-transform:uppercase;letter-spacing:0;opacity:.7}.desktop-nav{display:flex;gap:30px;font-size:.79rem}.desktop-nav a{padding:10px 0;opacity:.82;transition:opacity .2s}.desktop-nav a:hover{opacity:1}.header-book{justify-self:end;min-height:44px;padding:0 8px 0 17px;display:flex;align-items:center;gap:15px;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:rgba(37,31,35,.2);backdrop-filter:blur(14px);color:#fff;font-size:.78rem}.header-book span{width:29px;height:29px;display:grid;place-items:center;border-radius:4px;color:var(--ink);background:#fff}.menu-toggle,.mobile-menu{display:none}.hero{position:relative;min-height:calc(100svh - 30px);padding:150px max(22px,calc((100vw - var(--max))/2)) 38px;display:flex;align-items:center;overflow:hidden;color:#fff;background:#34252c}.hero-media,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-media{object-fit:cover;object-position:center}.hero-shade{background:linear-gradient(90deg,rgba(24,16,20,.88) 0%,rgba(24,16,20,.62) 38%,rgba(24,16,20,.08) 74%),linear-gradient(0deg,rgba(22,15,18,.48),transparent 45%)}.hero-copy{position:relative;z-index:2;width:min(720px,62vw);padding-bottom:60px}.eyebrow,.kicker{font:600 .68rem/1 "Manrope";text-transform:uppercase;letter-spacing:0}.eyebrow{margin-bottom:28px;display:flex;align-items:center;gap:10px}.eyebrow span{width:22px;height:1px;background:#fff}.hero h1,.section h2,.consultation h2,.clinic h2,.closing h2,.booking-panel h2,.detail-panel h2{font:400 clamp(3.2rem,6.6vw,6.8rem)/.91 "Newsreader",serif}.hero h1 em,.intro h2 em{font-style:italic;color:#e4b7c8}.hero-copy>p:last-of-type{max-width:570px;margin-top:27px;color:rgba(255,255,255,.76);font-size:1rem;line-height:1.65}.hero-actions{margin-top:30px;display:flex;align-items:center;gap:25px}.primary{min-height:54px;padding:0 17px 0 21px;display:inline-flex;align-items:center;justify-content:center;gap:25px;border:0;border-radius:6px;background:var(--plum);color:#fff;font-weight:600;font-size:.82rem;box-shadow:0 12px 35px rgba(65,18,37,.22);transition:transform .25s,background .25s}.primary:hover{transform:translateY(-2px);background:var(--plum-dark)}.hero-actions>a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.5);font-size:.82rem}.hero-assurance{position:absolute;z-index:2;left:max(22px,calc((100vw - var(--max))/2));right:max(22px,calc((100vw - var(--max))/2));bottom:28px;padding-top:20px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.22)}.hero-assurance div{display:flex;gap:16px;align-items:center}.hero-assurance strong{font:500 .64rem "Manrope";opacity:.55}.hero-assurance span{font-size:.75rem}.section{padding:120px max(22px,calc((100vw - var(--max))/2))}.intro{display:grid;grid-template-columns:160px 1fr 150px;gap:30px;align-items:start;background:var(--white)}.section-tag{padding-top:14px;font-size:.68rem;text-transform:uppercase;color:var(--muted)}.intro h2,.section-head h2,.consultation h2,.journey h2,.faq h2{font-size:clamp(2.8rem,4.8vw,5rem);line-height:.98}.intro>div:nth-child(2)>p{max-width:660px;margin-top:30px;color:var(--muted);line-height:1.75}.intro-seal{justify-self:end;width:120px;height:120px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;text-align:center}.intro-seal span{font:500 2.4rem/1 "Newsreader";color:var(--plum)}.intro-seal small{font-size:.57rem;line-height:1.3;color:var(--muted)}.services{background:#ece9e5}.section-head{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:end}.kicker{margin-bottom:20px;color:var(--plum)}.section-head>p{color:var(--muted);line-height:1.65}.filters{margin:55px 0 22px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{flex:0 0 auto;min-height:42px;padding:0 15px;border:1px solid var(--line);border-radius:100px;background:transparent;font-size:.73rem}.filters button.active{border-color:var(--plum);color:#fff;background:var(--plum)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{position:relative;min-height:330px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.2);transition:background .35s,transform .35s}.service-card:hover{z-index:2;background:var(--white);transform:translateY(-3px)}.service-card[hidden]{display:none}.service-no{color:#9d9799;font-size:.63rem}.service-card small{color:var(--plum);font-size:.66rem;text-transform:uppercase}.service-card h3{margin:12px 0 17px;font:500 2rem/1 "Newsreader"}.service-card p{color:var(--muted);font-size:.8rem;line-height:1.55}.service-card>i{position:absolute;right:23px;bottom:24px;width:26px;height:26px;border:1px solid var(--line);border-radius:50%}.service-card>i:before,.service-card>i:after{content:"";position:absolute;background:var(--ink)}.service-card>i:before{left:7px;right:7px;top:12px;height:1px}.service-card>i:after{top:7px;bottom:7px;left:12px;width:1px}.consultation{display:grid;grid-template-columns:1.08fr .92fr;min-height:720px;background:var(--ink);color:#fff}.consultation-media{position:relative;min-height:620px}.consultation-media img{width:100%;height:100%;object-fit:cover}.consultation-media span{position:absolute;left:24px;bottom:24px;padding:10px 13px;border-radius:4px;background:rgba(32,24,28,.72);backdrop-filter:blur(12px);font-size:.69rem}.consultation-copy{padding:90px max(35px,calc((100vw - var(--max))/2));padding-left:clamp(45px,6vw,100px);display:flex;flex-direction:column;justify-content:center}.consultation h2{max-width:600px}.consultation-copy>p:nth-of-type(2){max-width:560px;margin:28px 0 30px;color:#b9b2b6;line-height:1.72}.consultation ul{list-style:none;border-top:1px solid rgba(255,255,255,.13)}.consultation li{padding:15px 0;display:flex;gap:20px;border-bottom:1px solid rgba(255,255,255,.13);font-size:.8rem}.consultation li span{color:#a78694}.text-link{margin-top:30px;width:max-content;display:flex;gap:12px;align-items:center;border:0;border-bottom:1px solid rgba(255,255,255,.45);padding:0 0 8px;background:transparent;color:#fff;font-size:.78rem}.journey{background:var(--white)}.journey-grid{margin-top:65px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.journey article{min-height:260px;padding:23px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.journey article span{color:var(--plum);font-size:.65rem}.journey article h3{margin-top:auto;font:500 1.7rem "Newsreader"}.journey article p{margin-top:13px;color:var(--muted);font-size:.78rem;line-height:1.55}.clinic{position:relative;min-height:760px;overflow:hidden}.clinic>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.clinic:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,19,22,.56),transparent 68%)}.clinic-card{position:absolute;z-index:2;left:max(22px,calc((100vw - var(--max))/2));top:50%;width:min(470px,calc(100% - 44px));padding:42px;background:rgba(255,253,251,.94);transform:translateY(-50%);backdrop-filter:blur(18px)}.clinic h2{font-size:4rem}.clinic-card>p:nth-of-type(2){margin:22px 0;color:var(--muted);line-height:1.65}.clinic-card>div{display:flex;flex-direction:column;border-top:1px solid var(--line)}.clinic-card>div span{padding:13px 0;border-bottom:1px solid var(--line);font-size:.76rem}.faq{display:grid;grid-template-columns:.75fr 1.25fr;gap:100px;background:var(--paper)}.accordion{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{position:relative;padding:23px 45px 23px 0;list-style:none;cursor:pointer;font-weight:600;font-size:.9rem}summary::-webkit-details-marker{display:none}summary i{position:absolute;right:4px;top:22px;width:20px;height:20px}summary i:before,summary i:after{content:"";position:absolute;background:var(--ink);transition:transform .25s}summary i:before{left:3px;right:3px;top:9px;height:1px}summary i:after{top:3px;bottom:3px;left:9px;width:1px}details[open] summary i:after{transform:scaleY(0)}details p{padding:0 45px 24px 0;color:var(--muted);font-size:.83rem;line-height:1.65}.closing{padding:110px 22px;text-align:center;color:#fff;background:var(--plum-dark)}.closing .kicker{color:#d8b1c0}.closing h2{font-size:clamp(3rem,5.6vw,5.8rem)}.closing .primary{margin-top:30px;background:#fff;color:var(--plum-dark)}footer{padding:45px max(22px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1.2fr auto;gap:50px;align-items:center;background:#1d181b;color:#fff}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:48px;height:48px}footer>p{color:#9f989c;font-size:.68rem;line-height:1.55}footer>a{display:flex;gap:10px;align-items:center;font-size:.74rem}.mobile-book{display:none}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:100}.modal-backdrop{position:absolute;inset:0;background:rgba(20,14,17,.68);backdrop-filter:blur(8px)}.detail-panel,.booking-panel{position:absolute;right:0;top:0;width:min(620px,100%);height:100%;padding:60px;overflow-y:auto;background:var(--paper);box-shadow:-30px 0 80px rgba(0,0,0,.2);animation:panel-in .45s var(--ease)}@keyframes panel-in{from{transform:translateX(100%)}}.modal-close{position:absolute;right:22px;top:22px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent}.modal-close:before,.modal-close:after{content:"";position:absolute;left:12px;top:20px;width:17px;height:1px;background:var(--ink);transform:rotate(45deg)}.modal-close:after{transform:rotate(-45deg)}.detail-panel h2,.booking-panel h2{margin-top:24px;font-size:3.8rem;line-height:.95}.detail-panel>p:nth-of-type(2){margin-top:25px;color:var(--muted);line-height:1.7}.detail-facts{margin:35px 0;display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.detail-facts div{padding:18px 10px 18px 0;display:flex;flex-direction:column;gap:7px}.detail-facts span{color:var(--muted);font-size:.63rem}.detail-facts strong{font-size:.76rem}.detail-panel>small{display:block;margin-top:18px;color:var(--muted);font-size:.63rem;line-height:1.5}.booking-panel{width:min(760px,100%)}.booking-head{padding-right:50px;display:flex;justify-content:space-between;gap:30px;align-items:end}.booking-panel h2{font-size:3rem}.progress{display:flex;gap:5px}.progress span{width:32px;height:3px;background:#d8d3d5}.progress span.active{background:var(--plum)}#booking-form{margin-top:45px}.booking-step{display:none}.booking-step.active{display:block;animation:fade-in .35s ease}@keyframes fade-in{from{opacity:0;transform:translateY(8px)}}.booking-step h3{margin-bottom:24px;font:500 1.7rem "Newsreader"}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-grid input{position:absolute;opacity:0}.choice-grid label span{min-height:82px;padding:17px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:6px;background:var(--white);font-size:.8rem;cursor:pointer;transition:border .2s,background .2s}.choice-grid label small{margin-top:6px;color:var(--muted);font-size:.65rem}.choice-grid input:checked+span{border-color:var(--plum);background:#f2e8ec}.date-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.date-list button,.time-list button{min-height:64px;border:1px solid var(--line);border-radius:5px;background:var(--white)}.date-list button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}.date-list button small{font-size:.58rem;color:var(--muted)}.date-list button strong{font-size:.85rem}.date-list button.active,.time-list button.active{border-color:var(--plum);color:#fff;background-color:var(--plum)}.date-list button.active small,.date-list button.active strong{color:#fff}.time-list{margin-top:20px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.time-list button{min-height:46px;font-size:.73rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-step label{display:flex;flex-direction:column;gap:8px}.booking-step label>span:first-child,.note-field>span{font-size:.67rem;color:var(--muted)}.booking-step input,.booking-step textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:5px;background:var(--white);outline:none}.booking-step input:focus,.booking-step textarea:focus{border-color:var(--plum)}.note-field{margin-top:16px}.consent{margin-top:17px!important;display:grid!important;grid-template-columns:18px 1fr;align-items:start}.consent input{width:17px;height:17px;accent-color:var(--plum)}.consent span{font-size:.63rem!important;line-height:1.45}.booking-summary{margin-top:20px;padding:14px;background:#ece7e8;font-size:.7rem;line-height:1.55}.booking-actions{min-height:70px;margin-top:35px;padding-top:20px;display:flex;align-items:center;gap:15px;border-top:1px solid var(--line)}.booking-actions .back{min-height:44px;padding:0 17px;border:1px solid var(--line);border-radius:5px;background:transparent}.booking-error{margin-right:auto;color:#a63245;font-size:.68rem}.booking-actions .next{min-height:48px;padding:0 16px 0 19px;display:flex;align-items:center;gap:18px;border:0;border-radius:5px;-webkit-appearance:none;appearance:none;background-color:var(--plum);color:#fff;font-weight:600;font-size:.75rem;-webkit-backface-visibility:hidden;backface-visibility:hidden}.booking-actions>button[hidden]{display:none!important}.booking-success{margin-top:80px;text-align:center}.success-mark{position:relative;width:62px;height:62px;margin:0 auto 28px;display:block;border-radius:50%;background:var(--sage)}.success-mark:before{content:"";position:absolute;left:23px;top:16px;width:13px;height:24px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(42deg)}.booking-success>p:nth-of-type(2){max-width:450px;margin:20px auto;color:var(--muted);line-height:1.65}.booking-success>a{display:inline-flex;margin-top:10px;padding:15px 19px;border-radius:5px;color:#fff;background:var(--plum)}
@media(max-width:900px){.desktop-nav,.header-book{display:none}.site-header{grid-template-columns:1fr auto}.menu-toggle{justify-self:end;width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:rgba(30,22,26,.25)}.menu-toggle i{width:18px;height:1px;background:#fff;transition:.25s}.menu-toggle.active i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle.active i:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu{position:absolute;top:75px;left:14px;right:14px;padding:13px 20px;display:flex;flex-direction:column;border-radius:8px;background:rgba(30,23,27,.97);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s}.mobile-menu.open{opacity:1;visibility:visible;transform:none}.mobile-menu a,.mobile-menu button{min-height:51px;display:flex;align-items:center;border:0;border-bottom:1px solid rgba(255,255,255,.12);background:transparent;color:#fff;text-align:left}.mobile-menu button{border:0;color:#e7b5c8}.intro{grid-template-columns:120px 1fr}.intro-seal{display:none}.service-grid{grid-template-columns:1fr 1fr}.consultation{grid-template-columns:1fr}.consultation-media{min-height:580px}.consultation-copy{padding:80px 40px}.faq{gap:55px}.journey-grid{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:640px){.concept-bar{height:34px}.concept-bar>span{display:none}.concept-bar{justify-content:center}.site-header{top:34px;height:70px;padding:0 14px}.brand img{width:39px;height:39px}.brand>span{font-size:.98rem}.hero{min-height:820px;padding:124px 18px 120px;align-items:flex-start}.hero-media{object-position:62% center}.hero-shade{background:linear-gradient(180deg,rgba(23,16,19,.66) 0%,rgba(23,16,19,.28) 35%,rgba(23,16,19,.9) 78%)}.hero-copy{width:100%;padding-bottom:0}.eyebrow{margin-bottom:20px}.hero h1{font-size:clamp(3rem,14.7vw,4.15rem);line-height:.92}.hero-copy>p:last-of-type{margin-top:20px;font-size:.91rem;line-height:1.55}.hero-actions{margin-top:24px;align-items:stretch;flex-direction:column;gap:3px}.hero-actions .primary{width:100%}.hero-actions>a{width:max-content}.hero-assurance{left:18px;right:18px;bottom:24px;grid-template-columns:1fr;gap:10px}.hero-assurance div{gap:9px}.hero-assurance div:nth-child(n+3){display:none}.section{padding:82px 18px}.intro{display:block}.section-tag{margin-bottom:25px}.intro h2,.section-head h2,.consultation h2,.journey h2,.faq h2{font-size:clamp(2.65rem,12vw,3.6rem)}.intro>div:nth-child(2)>p{margin-top:23px}.section-head{display:block}.section-head>p{margin-top:20px}.filters{margin-top:35px}.service-grid{grid-template-columns:1fr}.service-card{min-height:250px;padding:22px}.service-card h3{font-size:1.8rem}.consultation-media{min-height:440px}.consultation-copy{padding:70px 18px}.consultation-copy>p:nth-of-type(2){margin-top:22px}.journey-grid{margin-top:42px;grid-template-columns:1fr 1fr}.journey article{min-height:220px;padding:18px}.journey article h3{font-size:1.45rem}.clinic{min-height:680px}.clinic>img{object-position:58% center}.clinic-card{left:18px;width:calc(100% - 36px);top:auto;bottom:18px;padding:27px;transform:none}.clinic h2{font-size:3.2rem}.faq{display:block}.faq>div:first-child{margin-bottom:42px}summary{padding-block:20px}.closing{padding:86px 18px 110px}footer{padding:42px 18px 95px;display:flex;align-items:flex-start;flex-direction:column;gap:25px}.mobile-book{position:fixed;z-index:60;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:54px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(75,32,50,.94);backdrop-filter:blur(16px);color:#fff;font-weight:600;box-shadow:0 15px 45px rgba(36,20,27,.25)}.detail-panel,.booking-panel{top:auto;bottom:0;width:100%;height:min(92svh,790px);padding:55px 18px 25px;border-radius:12px 12px 0 0;animation:sheet-in .45s var(--ease)}@keyframes sheet-in{from{transform:translateY(100%)}}.detail-panel h2{font-size:3.2rem}.detail-facts{grid-template-columns:1fr}.detail-facts div{border-bottom:1px solid var(--line)}.booking-panel h2{font-size:2.45rem}.booking-head{display:block}.progress{margin-top:20px}.choice-grid{grid-template-columns:1fr}.choice-grid label span{min-height:68px}.date-list{grid-template-columns:repeat(5,74px);overflow-x:auto;padding-bottom:5px}.time-list{grid-template-columns:repeat(3,1fr)}.field-row{grid-template-columns:1fr}.booking-actions{position:sticky;bottom:-25px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--paper)}.booking-error{position:absolute;left:0;top:2px}.booking-actions .next{margin-left:auto}.booking-success{margin-top:45px}}
@media(max-width:370px){.hero h1{font-size:2.8rem}.hero{min-height:780px}.journey-grid{grid-template-columns:1fr}.journey article{min-height:185px}.booking-panel h2{font-size:2.15rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Mobile experience: compact sections and swipeable content rails */
@media(max-width:640px){
  .hero{min-height:calc(100svh - 34px);padding-top:112px;padding-bottom:112px}
  .hero-copy>p:last-of-type{max-width:33rem}
  .hero-assurance{padding-top:14px}
  .section{padding-top:68px;padding-bottom:68px}
  .intro .section-tag{margin-bottom:18px}
  .services{overflow:hidden}
  .services .section-head>p{font-size:.88rem;line-height:1.58}
  .filters{margin:28px -18px 18px;padding:0 18px 4px;scroll-padding-left:18px}
  .filters button{min-height:44px}
  .service-grid{display:flex;width:calc(100% + 18px);margin-right:-18px;padding:0 18px 14px 0;gap:12px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border:0}
  .service-grid::-webkit-scrollbar{display:none}
  .service-card{flex:0 0 min(82vw,330px);min-height:230px;padding:20px;border:1px solid var(--line);border-radius:10px;scroll-snap-align:start;background:rgba(255,255,255,.36)}
  .service-card h3{font-size:1.72rem}
  .service-card p{max-width:90%;font-size:.77rem}
  .consultation-media{min-height:340px}
  .consultation-media span{left:14px;bottom:14px}
  .consultation-copy{padding:58px 18px}
  .consultation-copy>p:nth-of-type(2){margin-bottom:22px}
  .journey{overflow:hidden}
  .journey-grid{display:flex;width:calc(100% + 18px);margin-right:-18px;padding:0 18px 12px 0;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border:0}
  .journey-grid::-webkit-scrollbar{display:none}
  .journey article{flex:0 0 min(70vw,260px);min-height:185px;border:1px solid var(--line);border-radius:9px;scroll-snap-align:start}
  .clinic{min-height:620px}
  .clinic-card{padding:24px}
  .clinic h2{font-size:2.85rem}
  .faq>div:first-child{margin-bottom:30px}
  summary{min-height:60px;display:flex;align-items:center}
  .closing{padding-top:74px}
}

@media(max-width:370px){
  .hero{min-height:720px}
  .service-card{flex-basis:86vw}
  .journey article{flex-basis:76vw}
}

/* VIONA interaction motion: soft, polished and deliberately restrained */
.header-book,
.primary,
.text-link,
.mobile-book,
.filters button,
.service-card > i,
.modal-close,
.choice-grid label span,
.date-list button,
.time-list button,
.booking-actions button,
.booking-success > a {
  transition:
    color .28s var(--ease),
    background-color .28s var(--ease),
    border-color .28s var(--ease),
    box-shadow .28s var(--ease),
    transform .28s var(--ease);
}

.concept-bar i,
.primary i,
.text-link i,
footer > a i,
.mobile-book i,
.next i {
  transition: transform .32s var(--ease);
}

.header-book span {
  transition: color .28s var(--ease), background-color .28s var(--ease), transform .38s var(--ease);
}

.service-card > i::before,
.service-card > i::after {
  transition: background-color .28s var(--ease), transform .38s var(--ease);
}

.filters button.ui-tap,
.primary.ui-tap,
.header-book.ui-tap,
.text-link.ui-tap,
.mobile-book.ui-tap,
.modal-close.ui-tap,
.date-list button.ui-tap,
.time-list button.ui-tap,
.booking-actions button.ui-tap,
.service-card.ui-tap {
  animation: viona-button-tap .34s var(--ease);
}

@keyframes viona-button-tap {
  45% { transform: scale(.975); box-shadow: 0 8px 22px rgba(65,18,37,.2); }
}

@media(hover:hover) {
  .header-book:hover {
    border-color: rgba(255,255,255,.72);
    background: rgba(75,32,50,.48);
    box-shadow: 0 10px 30px rgba(27,15,21,.18);
    transform: translateY(-2px);
  }
  .header-book:hover span { transform: rotate(90deg); }
  .primary:hover,
  .mobile-book:hover,
  .booking-actions .next:hover {
    box-shadow: 0 15px 38px rgba(65,18,37,.28);
    transform: translateY(-2px);
  }
  .primary:hover i,
  .text-link:hover i,
  .mobile-book:hover i,
  .next:hover i,
  .concept-bar a:hover i,
  footer > a:hover i {
    transform: translate(3px,-3px);
  }
  .text-link:hover { border-color: currentColor; }
  .filters button:not(.active):hover {
    border-color: rgba(111,48,74,.55);
    background: rgba(255,255,255,.58);
    transform: translateY(-1px);
  }
  .service-card:hover > i {
    border-color: var(--plum);
    background: var(--plum);
    transform: rotate(90deg);
  }
  .service-card:hover > i::before,
  .service-card:hover > i::after { background: #fff; }
  .modal-close:hover {
    border-color: var(--plum);
    background: #f2e8ec;
    transform: rotate(90deg);
  }
  .choice-grid label:hover span,
  .date-list button:hover,
  .time-list button:hover {
    border-color: rgba(111,48,74,.5);
    box-shadow: 0 8px 22px rgba(67,37,50,.07);
    transform: translateY(-1px);
  }
  .booking-actions .back:hover,
  .booking-success > a:hover {
    border-color: var(--plum);
    transform: translateY(-1px);
  }
}

.filters button:active,
.primary:active,
.header-book:active,
.text-link:active,
.mobile-book:active,
.modal-close:active,
.date-list button:active,
.time-list button:active,
.booking-actions button:active,
.service-card:active {
  transform: scale(.975);
}

.choice-grid input:checked + span,
.date-list button.active,
.time-list button.active {
  box-shadow: 0 8px 24px rgba(111,48,74,.12);
  animation: viona-choice-in .36s var(--ease);
}

@keyframes viona-choice-in {
  45% { transform: scale(.985); }
}

/* Keep the mobile booking footer stable in iOS Safari. */
.booking-actions {
  position: relative;
  border-top: 0;
  isolation: isolate;
}

.booking-actions::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background-color: #d2c9cd;
  pointer-events: none;
}

.booking-actions .back {
  position: relative;
  z-index: 1;
  -webkit-appearance: none;
  appearance: none;
  border-color: #b9abb1;
  background-color: var(--paper);
  color: var(--plum-dark);
  opacity: 1;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

@media(prefers-reduced-motion:reduce) {
  .filters button.ui-tap,
  .primary.ui-tap,
  .header-book.ui-tap,
  .text-link.ui-tap,
  .mobile-book.ui-tap,
  .modal-close.ui-tap,
  .date-list button.ui-tap,
  .time-list button.ui-tap,
  .booking-actions button.ui-tap,
  .service-card.ui-tap,
  .choice-grid input:checked + span,
  .date-list button.active,
  .time-list button.active {
    animation: none !important;
  }
}
