/* One stylesheet for every page. Home: a soft pink hero (treatment photo + quick booking card), a body map with real
   anatomy renders, the stage price list, the team and the sticky motion-capture story scrubbed by a 600vh section.
   The other pages open with a shorter pink page head and reuse the same sections: booking, prices, team, one page per
   body area, contact and FAQ, and the reception system in a dark band.
   Pink and white by choice: the story stage is a sheet of kinesiology tape, the clinic pages are white with pink accents. */
:root{
  --paper:#FFFFFF; --paper-2:#FDEDF3; --paper-3:#F6F3F4; --card:#FFFFFF;
  --ink:#22141C; --ink-2:#6B5862; --ink-3:#A8949E;
  --rule:rgba(34,20,28,.12); --rule-2:rgba(34,20,28,.28);
  --pink:#D42C6E; --pink-deep:#B01E58; --on-pink:#FFFFFF; --on-pink-rule:rgba(255,255,255,.4);
  --tape:#E33D7E; --tape-ink:#B01E58; --tape-soft:rgba(227,61,126,.12);
  --cool:#2A8FB3; --cool-soft:rgba(42,143,179,.13);
  --c-assess:#E33D7E; --c-session:#2A8FB3; --c-massage:#7B68C9; --c-test:#D08A12;
  --app-bg:#0F1921; --app-bg-2:#16232D; --app-bg-3:#1D2C38; --app-ink:#E3EAEC; --app-ink-2:#8B9AA4; --app-rule:rgba(227,234,236,.1);
  --night:#111A22;
  --shadow:0 22px 44px -28px rgba(80,10,40,.38);
  --f-display:"Saira Extra Condensed","Arial Narrow","Roboto Condensed",sans-serif;
  --f-body:"Schibsted Grotesk",-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --gl:max(clamp(16px,4vw,56px),env(safe-area-inset-left,0px));
  --gr:max(clamp(16px,4vw,56px),env(safe-area-inset-right,0px));
  --nav-h:64px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
main{overflow-x:clip}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance}
button,input,textarea,select{font:inherit;color:inherit}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:2px solid var(--tape);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.display{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:.92;letter-spacing:.005em}
.kicker{display:flex;align-items:center;gap:10px;font:500 12px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.kn{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 4px;border:1px solid var(--ink);color:var(--ink);font-weight:600;letter-spacing:0}
.sec-head .kicker::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--tape)}
.wrap{max-width:1520px;margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.wrap-wide{max-width:1640px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border:1.5px solid var(--pink);border-radius:3px;background:var(--pink);color:#fff;font:600 14px var(--f-body);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--pink);border-color:var(--pink);color:#fff}
.btn-soft{background:#fff;color:var(--pink);border-color:var(--pink)}
.btn-soft:hover{background:var(--pink);border-color:var(--pink);color:#fff}
.btn-sm{min-height:36px;padding:0 14px;font-size:13px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn:disabled:hover{background:var(--pink);border-color:var(--pink);color:#fff}

/* ---------- nav ---------- */
.nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.nav-in{height:var(--nav-h);max-width:1520px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-left:var(--gl);padding-right:var(--gr)}
.logo{display:inline-flex;align-items:center;gap:10px;font:800 22px/1 var(--f-display);letter-spacing:.08em;text-decoration:none}
.logo-mark{width:28px;height:16px;flex:none;overflow:visible}
.logo-mark path{fill:none;stroke:var(--pink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.logo-mark circle{fill:var(--tape)}
.nav-links{display:flex;gap:30px}
.nav-links a{font-size:14px;text-decoration:none;padding-block:6px;border-bottom:1.5px solid transparent}
.nav-links a:hover{border-bottom-color:var(--tape)}
.nav-r{display:flex;align-items:center;gap:16px}
.nav-tel{display:inline-flex;align-items:center;gap:8px;font-size:14px;text-decoration:none;white-space:nowrap}
.nav-tel svg{width:17px;height:17px;fill:none;stroke:var(--pink);stroke-width:1.7;stroke-linejoin:round}
.lang{display:flex;border:1px solid var(--rule-2);border-radius:3px;overflow:hidden}
.lang button{background:none;border:0;padding:6px 8px;font:500 11.5px var(--f-mono);cursor:pointer;color:var(--ink-2)}
.lang button[aria-pressed="true"]{background:var(--pink);color:#fff}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding-top:calc(env(safe-area-inset-top,0px) + var(--nav-h));background:linear-gradient(100deg,#FFF7FA 0%,#FDEEF4 45%,#FBE6EE 100%)}
/* the hero fills the first screen (leaving the numbers strip peeking in) and its type grows with the window.
   The photo is portrait and the screen is wide, so it sits between the copy and the booking card: its right edge
   is set from the hero height so the physio's face (51–65% across the photo) always clears the card. */
.hero-in{--qbw:clamp(300px,25vw,380px);--hh:max(600px,calc(100svh - var(--nav-h) - 98px));position:relative;display:grid;grid-template-columns:minmax(0,600px) minmax(0,1fr) var(--qbw);gap:24px;min-height:var(--hh)}
.hero-photo{position:absolute;z-index:0;bottom:0;right:calc(var(--gr) + var(--qbw) + 16px - .435 * var(--hh));height:var(--hh);width:auto;max-width:none;
  /* fade the edges into the pink, but keep the patient on the table (bottom band) visible on the left */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 88%,transparent 100%),linear-gradient(to top,#000 0,#000 34%,transparent 50%),linear-gradient(90deg,transparent 0,rgba(0,0,0,.3) 20%,#000 44%);
  -webkit-mask-composite:source-in,source-over;
  mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 88%,transparent 100%),linear-gradient(to top,#000 0,#000 34%,transparent 50%),linear-gradient(90deg,transparent 0,rgba(0,0,0,.3) 20%,#000 44%);
  mask-composite:intersect,add}
/* a soft haze behind the copy so the photo never fights the text */
.hero-copy::before{content:"";position:absolute;z-index:-1;top:-12%;bottom:-12%;left:-100vw;right:-90px;pointer-events:none;background:linear-gradient(90deg,rgba(255,246,249,.86) calc(100% - 280px),rgba(255,246,249,0))}
.hero-k{font:500 clamp(11px,.8vw,13px)/1.4 var(--f-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-2)}
.hero-copy{position:relative;z-index:2;align-self:center;display:grid;gap:clamp(20px,1.8vw,30px);padding-block:44px}
.hero-h{font-size:clamp(48px,5.6vw,112px);line-height:.9}
.hero-h > span{display:block}
.hero-h em{font-style:normal;color:var(--pink)}
.hero-p{color:var(--ink-2);max-width:44ch;font-size:clamp(16px,1.15vw,20px)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.hero-cta .btn{min-height:clamp(46px,3.4vw,56px);padding:0 clamp(22px,1.9vw,32px);font-size:clamp(14px,1vw,16.5px)}
.hero-feats{list-style:none;margin:clamp(14px,1.4vw,26px) 0 0;padding:0;display:flex;gap:clamp(32px,3vw,56px)}
.hero-feats li{display:grid;gap:8px;justify-items:start;font-size:clamp(12.5px,.9vw,15px);color:var(--ink-2);max-width:9em}
.hero-feats svg{width:clamp(24px,1.8vw,30px);height:clamp(24px,1.8vw,30px);fill:none;stroke:var(--pink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.qb{grid-column:3;position:relative;z-index:3;align-self:center;display:grid;gap:clamp(14px,1.1vw,18px);padding:clamp(22px,1.8vw,32px);margin-block:36px;background:#fff;border-radius:6px;box-shadow:0 30px 60px -32px rgba(110,20,55,.45),0 0 0 1px rgba(34,20,28,.06)}
.qb-title{font:800 clamp(21px,1.6vw,28px)/1 var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.qb-tabs{display:grid;grid-template-columns:1fr 1fr;padding:3px;background:var(--paper-3);border-radius:4px}
.qb-tabs button{padding:clamp(9px,.75vw,12px) 6px;border:0;border-radius:3px;background:none;font-size:clamp(13px,.95vw,15px);color:var(--ink-2);cursor:pointer}
.qb-tabs button[aria-pressed="true"]{background:#fff;color:var(--pink);font-weight:600;box-shadow:inset 0 -2px 0 var(--pink),0 1px 3px rgba(34,20,28,.08)}
.qb-field{display:grid;gap:6px;font-size:clamp(12px,.85vw,13.5px);color:var(--ink-2);min-width:0}
.qb-field select{-webkit-appearance:none;appearance:none;width:100%;padding:clamp(11px,.85vw,14px) 36px clamp(11px,.85vw,14px) 12px;font-size:clamp(14px,1vw,16px)!important;border:1px solid var(--rule);border-radius:4px;background:#FAF8F9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322141C' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/14px;font:500 14px var(--f-body);color:var(--ink);cursor:pointer;text-overflow:ellipsis}
.qb-field select#qbDay{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322141C' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");background-size:16px}
.qb-field select:focus{outline:none;border-color:var(--pink)}
.qb-go{width:100%;margin-top:4px;min-height:clamp(46px,3.4vw,54px);font-size:clamp(14px,1vw,16px)}
.qb-note{display:flex;align-items:center;gap:8px;font-size:clamp(12px,.85vw,13.5px);color:var(--ink-2)}
.qb-note svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}

/* ---------- numbers strip ---------- */
.proof{background:var(--paper-3);border-block:1px solid var(--rule)}
.proof-in{padding-block:clamp(22px,2.2vw,34px)}
.proof-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.proof-list li{display:grid;gap:4px;justify-items:center;text-align:center;padding:4px 12px;border-left:1px solid var(--rule-2)}
.proof-list li:first-child{border-left:0}
.proof-list b{font:800 clamp(34px,2.8vw,48px)/1 var(--f-display);color:var(--ink);letter-spacing:.01em}
.proof-list b i{font-style:normal;color:var(--pink);font-size:.62em;margin-left:4px;vertical-align:.32em}
.proof-list span{font-size:clamp(13px,.95vw,15px);color:var(--ink-2)}

/* ---------- story stage ---------- */
.story{position:relative;height:600vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;color:var(--on-pink);background-color:var(--pink);
  background-image:radial-gradient(70% 60% at 58% 62%,rgba(255,255,255,.13),rgba(255,255,255,0) 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='18'%3E%3Cpath d='M0 9C8 2 16 2 24 9S40 16 48 9' fill='none' stroke='%23fff' stroke-opacity='.08' stroke-width='2'/%3E%3C/svg%3E"),repeating-linear-gradient(90deg,rgba(255,255,255,0) 0 22px,rgba(255,255,255,.035) 22px 24px);background-size:auto,48px 18px,auto}
.bg-num{position:absolute;right:4%;bottom:64px;display:grid;justify-items:start;font:800 min(62vh,40vw)/.8 var(--f-display);letter-spacing:-.02em;color:rgba(255,255,255,.12);font-variant-numeric:tabular-nums;pointer-events:none;user-select:none}
.bg-num small{font:600 14px/1 var(--f-mono);letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:0 0 14px 8px}
#mocap,#mocap3d{position:absolute;inset:0;width:100%;height:100%;display:block}
#mocap3d{opacity:0;transition:opacity .9s}
.stage.is-3d #mocap3d{opacity:1}
.vol{position:absolute;inset:calc(var(--nav-h) + 28px) 25% 120px 33%;pointer-events:none}
.vol i{position:absolute;width:18px;height:18px;border:0 solid rgba(255,255,255,.5)}
.vol i:nth-child(1){left:0;top:0;border-width:1px 0 0 1px}
.vol i:nth-child(2){right:0;top:0;border-width:1px 1px 0 0}
.vol i:nth-child(3){left:0;bottom:0;border-width:0 0 1px 1px}
.vol i:nth-child(4){right:0;bottom:0;border-width:0 1px 1px 0}
.hud-top{position:absolute;left:var(--gl);right:var(--gr);bottom:84px;display:flex;justify-content:space-between;gap:16px;font:500 11px var(--f-mono);letter-spacing:.12em;color:rgba(255,255,255,.75);pointer-events:none}

.acts{position:absolute;left:var(--gl);top:calc(var(--nav-h) + 40px);width:min(440px,34vw);display:grid}
.act{grid-area:1/1;display:grid;gap:18px;align-content:start;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .45s,transform .45s,visibility 0s .45s}
.act.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .45s,transform .45s,visibility 0s}
.act h2{font-size:clamp(42px,5.2vw,84px)}
.act p:not(.kicker){color:var(--on-pink);max-width:40ch}
.act-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.stage .kicker{color:var(--on-pink)}
.stage .kn{border-color:var(--on-pink);color:var(--on-pink)}
.stage .btn{background:#fff;border-color:#fff;color:var(--pink-deep)}
.stage .btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.stage .btn-line{background:transparent;color:#fff;border-color:#fff}
.stage .btn-line:hover{background:#fff;border-color:#fff;color:var(--pink-deep)}

.readouts{position:absolute;right:var(--gr);top:calc(var(--nav-h) + 40px);width:276px;display:grid;gap:14px;padding:16px;background:#fff;color:var(--ink);border-radius:4px;box-shadow:0 24px 48px -24px rgba(80,10,40,.5)}
.ro-head{display:grid;gap:2px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.ro-head b{font-weight:600;font-size:15px}
.ro-dx{font-size:13px;color:var(--tape-ink)}
.ro-k{font:500 10.5px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.ro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ro{display:grid;gap:2px;min-width:0}
.ro-v{font:700 38px/1 var(--f-display);font-variant-numeric:tabular-nums}
.ro-v small{font-size:16px;color:var(--ink-2);margin-left:1px}
.ro-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ro-now{font:700 22px var(--f-display);color:var(--tape-ink);font-variant-numeric:tabular-nums}
.ro-live{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--rule)}
#trace{width:100%;height:56px;display:block}
.lsi{display:grid;gap:7px;padding-top:12px;border-top:1px solid var(--rule)}
.lsi .ro-row b{font:700 22px var(--f-display);font-variant-numeric:tabular-nums}
.lsi-bar{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;font:600 11px var(--f-mono)}
.lsi-bar i{position:relative;display:block;height:9px;background:var(--paper-2)}
.lsi-bar i::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--v);background:var(--ink);transition:width .25s}
.lsi-bar.is-r i::before{background:var(--pink)}
.lsi-bar i::after{content:"";position:absolute;top:-3px;bottom:-3px;left:90%;width:1.5px;background:var(--ink)}
.lsi-goal{display:none}
.ro-note{font-size:12px;color:var(--ink-2)}
.cleared{position:absolute;right:14px;top:14px;padding:6px 10px;border:2px solid var(--tape);color:var(--tape-ink);font:800 18px/1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;transform:rotate(-8deg) scale(1.4);opacity:0;pointer-events:none;transition:opacity .3s,transform .4s cubic-bezier(.2,1.5,.4,1)}
.readouts.is-cleared .cleared{opacity:1;transform:rotate(-8deg) scale(1)}

.rail{position:absolute;left:var(--gl);right:var(--gr);bottom:22px;border-top:1px solid var(--on-pink-rule)}
.rail ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.rail button{width:100%;display:grid;gap:1px;justify-items:start;padding:10px 8px 0 0;background:none;border:0;cursor:pointer;text-align:left;color:rgba(255,255,255,.72);transition:color .3s}
.rail b{font:600 13px var(--f-body)}
.rail span{font:500 11px var(--f-mono);letter-spacing:.06em}
.rail li.on button,.rail li.done button{color:#fff}
.rail li.on b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.rail-fill{position:absolute;left:0;top:-2px;height:3px;width:0;background:#fff}

/* ---------- kinesiology tape band ---------- */
.tape-band{position:relative;z-index:2;display:flex;width:110%;margin:-18px -5% 0;overflow:hidden;transform:rotate(-1.6deg);background-color:#fff;
  background-image:repeating-linear-gradient(90deg,rgba(212,44,110,0) 0 18px,rgba(212,44,110,.07) 18px 20px),radial-gradient(ellipse 14px 5px at 50% 50%,rgba(212,44,110,.08),rgba(212,44,110,0) 70%);background-size:auto,28px 12px;
  color:var(--pink);font:600 13px/1 var(--f-mono);letter-spacing:.18em;white-space:nowrap;box-shadow:0 8px 22px rgba(80,10,40,.22)}
.tape-band span{flex:none;padding:13px 0;animation:tape 26s linear infinite}

@keyframes tape{to{transform:translateX(-100%)}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(72px,9vw,112px)}
.sec-alt{background:linear-gradient(var(--paper-2),#FFF7FA)}
.sec-head{display:grid;gap:14px;max-width:640px;margin-bottom:clamp(32px,4.5vw,52px)}
.sec-head h1,.sec-head h2{font-size:clamp(38px,5vw,64px)}
.sec-head p:not(.kicker){color:var(--ink-2);max-width:56ch}
.sec-head-split{max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:end;gap:16px 48px}
.sec-head-split > div{display:grid;gap:14px}

/* body map */
.tr-grid{display:grid;grid-template-columns:170px minmax(0,300px) minmax(0,1fr) 210px;gap:clamp(20px,3vw,44px);align-items:center}
.tr-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;align-self:center}
.tr-list button{display:flex;align-items:center;gap:14px;width:100%;padding:10px 12px;background:none;border:0;border-left:2px solid transparent;border-radius:0 4px 4px 0;font:500 15px var(--f-body);color:var(--ink);text-align:left;cursor:pointer;transition:background .2s,color .2s}
.tr-list button:hover{background:var(--paper-3)}
.tr-list button[aria-pressed="true"]{background:var(--paper-2);border-left-color:var(--pink);color:var(--pink-deep);font-weight:600}
.tr-list svg{flex:none;width:26px;height:26px;fill:none;stroke:var(--ink-2);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.tr-list .ai-dot{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.2}
.tr-list button[aria-pressed="true"] .ai-dot{fill:var(--pink);stroke:var(--pink)}
.tr-body{position:relative;width:100%;max-width:300px;justify-self:center}
.tr-body img{display:block;width:100%;height:auto}
.spots{position:absolute;inset:0}
.spot{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;padding:0;border-radius:50%;border:1.5px solid rgba(34,20,28,.35);background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(34,20,28,.18);cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s,width .2s,height .2s}
.spot::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-2);transition:background .2s}
.spot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px solid var(--tape);opacity:0}
.spot:hover{border-color:var(--tape)}
.spot[aria-pressed="true"]{width:34px;height:34px;background:var(--pink);border-color:#fff;border-width:3px;box-shadow:0 0 0 7px rgba(212,44,110,.18),0 6px 16px rgba(212,44,110,.4)}
.spot[aria-pressed="true"]::before{content:"+";width:auto;height:auto;border-radius:0;background:none;color:#fff;font:400 22px/1 var(--f-body);margin-top:-2px}
.spot[aria-pressed="true"]::after{animation:ping 1.8s ease-out infinite}
.spot-tag{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:3px 8px;border-radius:3px;background:var(--ink);color:var(--paper);font:500 11px var(--f-mono);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}
.spot.is-right .spot-tag{right:auto;left:calc(100% + 10px)}
.spot:hover .spot-tag,.spot:focus-visible .spot-tag,.spot[aria-pressed="true"] .spot-tag{opacity:1}
@keyframes ping{0%{transform:scale(.7);opacity:.9}100%{transform:scale(1.5);opacity:0}}
.treat-panel{display:grid;gap:22px;min-width:0}
.tp-top{display:grid;gap:10px}
.tp-crumb{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pink)}
.tp-top h3{font:800 clamp(44px,5vw,64px)/.92 var(--f-display);text-transform:uppercase}
.tp-desc{color:var(--ink-2);max-width:46ch}
.tp-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.tp-list a{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:14px;padding:13px 2px;border-bottom:1px solid var(--rule);text-decoration:none;transition:color .2s}
.tp-list a:hover{color:var(--pink-deep)}
.tp-list b{font-weight:500;font-size:15px}
.tp-list span{font:500 11.5px var(--f-mono);color:var(--ink-3);white-space:nowrap}
.tp-list svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tp-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.tp-first{font:500 12px var(--f-mono);color:var(--ink-2)}
.tr-x{margin:0;height:min(460px,52vw);display:grid;place-items:center}
.tr-x img{max-width:100%;max-height:100%;width:auto;height:auto;
  -webkit-mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent),linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent),linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}

/* services: the price list follows the rehab in three cards whose colour gets stronger as it goes:
   white to find out what's wrong, pink to treat it, dark to get back to sport. Each card sets its colours
   as variables and the charts, icons and tags inside pick them up. */
.sec-prices{background-color:#FCEFF4;background-size:48px 18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='18'%3E%3Cpath d='M0 9C8 2 16 2 24 9S40 16 48 9' fill='none' stroke='%23D42C6E' stroke-opacity='.07' stroke-width='2'/%3E%3C/svg%3E")}
/* subgrid rows line the cards up: step, number, title, intro, chart and list each start at the same height */
.stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(6,auto);gap:0 18px}
.st{--bg:#fff;--fg:var(--ink);--fg-2:var(--ink-2);--fg-3:var(--ink-3);--line:var(--rule);--hi:var(--pink);--lo:rgba(212,44,110,.14);--panel:#FFF6F9;--chip:var(--paper-2);--chip-fg:var(--pink-deep);--hover:#FFF4F8;
  position:relative;grid-row:span 6;display:grid;grid-template-rows:subgrid;align-content:start;gap:10px;padding:26px 28px 12px;border-radius:8px;background:var(--bg);color:var(--fg);box-shadow:0 26px 50px -36px rgba(80,10,40,.5)}
.st:nth-child(2){--bg:var(--pink);--fg:#fff;--fg-2:rgba(255,255,255,.86);--fg-3:rgba(255,255,255,.7);--line:rgba(255,255,255,.3);--hi:#fff;--lo:rgba(255,255,255,.22);--panel:rgba(90,0,35,.16);--chip:rgba(255,255,255,.18);--chip-fg:#fff;--hover:rgba(255,255,255,.1)}
.st:nth-child(3){--bg:var(--ink);--fg:#fff;--fg-2:rgba(255,255,255,.74);--fg-3:rgba(255,255,255,.55);--line:rgba(255,255,255,.14);--hi:var(--tape);--lo:rgba(255,255,255,.14);--panel:rgba(255,255,255,.05);--chip:var(--tape);--chip-fg:#fff;--hover:rgba(255,255,255,.06)}
/* an arrow between the cards shows the order */
.st:not(:nth-child(3))::after{content:"→";position:absolute;z-index:2;top:28px;right:-23px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font:600 14px/1 var(--f-body);box-shadow:0 0 0 4px #FCEFF4}
.st-when{justify-self:start;padding:5px 10px;border-radius:999px;background:var(--chip);color:var(--chip-fg);font:600 10.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.st-n{margin:8px 0 6px;font:800 80px/.8 var(--f-display);color:transparent;-webkit-text-stroke:1.5px var(--hi);letter-spacing:-.01em}
.st h3{font:800 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
.st-sub{font-size:14px;color:var(--fg-2);max-width:34ch}
.st-viz{margin:10px 0 0;padding:12px 14px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.st-viz figcaption span{white-space:nowrap}
.st-viz figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font:500 10.5px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2)}
.st-viz svg{display:block;width:100%;height:auto;margin-top:8px;overflow:visible}
.vz-track,.vz-fill{fill:none;stroke-width:8;stroke-linecap:round}
.vz-track{stroke:var(--lo)}
.vz-fill{stroke:var(--hi)}
.vz-line{fill:none;stroke:var(--hi);stroke-width:2;stroke-linejoin:round}
.vz-area{fill:var(--lo)}
.vz-base{stroke:var(--line)}
.vz-goal{stroke:var(--fg);stroke-width:1.2;stroke-dasharray:3 3}
.vz-dot{fill:var(--hi)}
.vz-bar{fill:var(--lo)}
.vz-bar-f{fill:var(--fg-3)}
.vz-bar-f.is-on{fill:var(--hi)}
.vz-big{font:800 34px var(--f-display);fill:var(--fg)}
.vz-mid{font:800 18px var(--f-display);fill:var(--hi)}
.vz-s{font:500 9px var(--f-mono);letter-spacing:.06em;fill:var(--fg-2)}
.st-note{grid-column:1/-1;margin-top:22px;font:500 11px/1.5 var(--f-mono);letter-spacing:.06em;color:var(--ink-2)}
.sv-list{list-style:none;margin:18px 0 0;padding:0;align-self:start}
.sv{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:3px 14px;padding:16px 0;border-top:1px solid var(--line);color:var(--fg);text-decoration:none}
.sv::before{content:"";position:absolute;inset:0 -12px;background:var(--hover);border-radius:4px;opacity:0;transition:opacity .2s}
.sv > span{position:relative}
.sv-ic{grid-column:1;grid-row:1/span 2;align-self:start;display:grid;place-items:center;width:36px;height:36px;margin-top:1px;border-radius:50%;background:var(--chip)}
.sv-ic svg{width:18px;height:18px;fill:none;stroke:var(--chip-fg);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sv-name{grid-column:2;font-weight:600;font-size:17px;line-height:1.3}
.sv-tag{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--hi);color:var(--bg);font:600 10px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.sv-price{grid-column:3;grid-row:1/span 2;align-self:center;font:700 42px/1 var(--f-display);font-variant-numeric:tabular-nums}
.sv-desc{grid-column:2;font-size:13.5px;line-height:1.45;color:var(--fg-2)}
.sv-meta{grid-column:2/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:2px;font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.sv-meta i{font-style:normal;font-weight:600;color:var(--hi);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.sv:hover,.sv:focus-visible{outline:none}
.sv:hover::before,.sv:focus-visible::before{opacity:1}
.sv:focus-visible::before{box-shadow:0 0 0 2px var(--hi)}
.sv:hover .sv-meta i,.sv:focus-visible .sv-meta i{opacity:1;transform:none}
.svc-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:36px;padding-top:24px;border-top:1px solid var(--rule-2)}
.svc-foot p{font-size:15.5px;max-width:62ch;color:var(--ink-2)}
.svc-foot b{color:var(--ink)}
.btn-white{background:#fff;border-color:#fff;color:var(--pink-deep)}
.btn-white:hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* team */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.tm{display:grid;grid-template-rows:auto 1fr;min-width:0;background:var(--card);border:1px solid var(--rule);border-radius:6px;overflow:hidden;box-shadow:0 20px 40px -32px rgba(34,20,28,.4)}
.tm-photo{position:relative;aspect-ratio:4/3.3;background:#E6E6EA;overflow:hidden}
.tm-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 16%;transition:transform .5s}
.tm:hover .tm-photo img{transform:scale(1.03)}
.tm-body{display:grid;gap:10px;align-content:start;padding:16px 18px 18px}
.tm h3{font-size:17px;font-weight:600}
.tm h3 a{text-decoration:none}
.tm h3 a:hover{color:var(--pink)}
.tm-role{color:var(--pink-deep);font-size:13.5px;font-weight:500}
.tm p{color:var(--ink-2);font-size:14px}
.tm-meta{display:flex;flex-wrap:wrap;gap:6px}
.tm-meta span{font:500 11px var(--f-mono);padding:3px 7px;border:1px solid var(--rule);border-radius:3px;color:var(--ink-2)}
.tm-link{justify-self:start;margin-top:2px;color:var(--pink);font:600 14px var(--f-body);text-decoration:none}
.tm-link:hover{color:var(--ink)}

/* booking */
.book-grid{display:grid;grid-template-columns:minmax(0,250px) minmax(0,1fr) 300px;gap:clamp(20px,3vw,40px);align-items:start}
.book-head{margin-bottom:0;position:sticky;top:calc(var(--nav-h) + 28px)}
.book-form{display:grid;gap:28px;min-width:0;padding:26px;background:var(--card);border-radius:6px;box-shadow:var(--shadow),0 0 0 1px rgba(34,20,28,.05)}
.step{border:0;margin:0;padding:0;min-width:0;display:grid;gap:12px}
.step legend{display:flex;align-items:center;gap:10px;padding:0;margin-bottom:12px;font:600 16px/1 var(--f-body)}
.sn{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--pink);color:#fff;font:600 12px var(--f-mono)}
.opts{display:grid;gap:8px}
.opts-svc{grid-template-columns:repeat(auto-fill,minmax(178px,1fr))}
.opts-spec{grid-template-columns:repeat(auto-fill,minmax(172px,1fr))}
.opt{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1.5px solid var(--rule);border-radius:4px;cursor:pointer;min-width:0;transition:border-color .2s,background .2s}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt:hover{border-color:var(--rule-2)}
.opt:has(input:checked){border-color:var(--pink);background:#FFF7FA}
.opt:has(input:focus-visible){outline:2px solid var(--tape);outline-offset:2px}
.opt > span{display:grid;gap:1px;min-width:0}
.opt b{font-weight:600;font-size:13.5px;line-height:1.25}
.opt small{font:500 11px var(--f-mono);color:var(--ink-2)}
.opt-svc svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--ink-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.opt-svc:has(input:checked) svg{stroke:var(--pink)}
.opt-ini{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;object-fit:cover;object-position:50% 20%;background:var(--paper-2);font:700 15px var(--f-display);color:var(--pink)}
.opt:has(input:checked) span.opt-ini{background:var(--pink);color:#fff}
.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.day{flex:none;position:relative;display:grid;justify-items:center;gap:1px;width:62px;padding:9px 0;background:var(--card);border:1.5px solid var(--rule);border-radius:4px;cursor:pointer}
.day input{position:absolute;opacity:0;pointer-events:none}
.day span{font:500 10.5px var(--f-mono);text-transform:uppercase;color:var(--ink-2)}
.day b{font:700 26px/1 var(--f-display)}
.day small{font:500 10px var(--f-mono);color:var(--ink-2)}
.day:has(input:checked){background:var(--pink);border-color:var(--pink);color:#fff}
.day:has(input:checked) span,.day:has(input:checked) small{color:#fff}
.day:has(input:focus-visible){outline:2px solid var(--tape);outline-offset:2px}
.day.is-full{opacity:.45}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
.slot{position:relative;display:grid;place-items:center;height:40px;background:var(--card);border:1.5px solid var(--rule);border-radius:4px;font:500 13.5px var(--f-mono);cursor:pointer}
.slot input{position:absolute;opacity:0;pointer-events:none}
.slot:hover{border-color:var(--rule-2)}
.slot:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.slot:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.slot.is-taken{cursor:not-allowed;color:var(--ink-3);background:transparent;text-decoration:line-through}
.slots-empty{grid-column:1/-1;color:var(--ink-2);font-size:14px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.field{display:grid;gap:6px;min-width:0}
.field-full{grid-column:1/-1}
.field label{font-size:12.5px;color:var(--ink-2)}
.field input,.field textarea{width:100%;padding:11px 12px;background:#FCFBFB;border:1.5px solid var(--rule);border-radius:4px;font-size:14.5px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--pink)}
.field.has-err input{border-color:var(--tape)}
.form-err{color:var(--tape-ink);font-size:14px;min-height:1.4em;margin-top:-14px}
.form-err:empty{display:none}
.book-go{justify-self:start;min-width:200px}

.ticket{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--nav-h) + 20px);display:grid;gap:16px;padding:20px;background:var(--card);border-radius:6px;box-shadow:var(--shadow),0 0 0 1px rgba(34,20,28,.05)}
.tk-head{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.tk-when{display:grid;gap:2px}
.tk-when b{font:800 32px/1 var(--f-display);text-transform:uppercase;font-variant-numeric:tabular-nums}
.tk-when span{color:var(--ink-2);font-size:14px}
.tk-items{list-style:none;margin:0;padding:14px 0 0;display:grid;gap:14px;border-top:1px solid var(--rule)}
.tk-items li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start}
.tk-items svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tk-items div{display:grid;gap:1px;font-size:13.5px}
.tk-items b{font-weight:600}
.tk-items span{color:var(--ink-2)}
.tk-map{position:relative;aspect-ratio:320/150;border-radius:4px;overflow:hidden;background:var(--paper-2)}
.tk-map img,.place-map img{display:block;width:100%;height:100%;object-fit:cover}
.tk-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;border-top:1px solid var(--rule)}
.tk-total span{font-size:14px;color:var(--ink-2)}
.tk-total b{font:700 34px/1 var(--f-display)}
.tk-note{font-size:12.5px;color:var(--ink-2)}
.tk-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tk-code{font:800 38px/1 var(--f-display);letter-spacing:.04em;color:var(--tape-ink)}
.tk-stamp{padding:5px 10px;border:2px solid var(--tape);color:var(--tape-ink);font:800 17px/1 var(--f-display);text-transform:uppercase;transform:rotate(-4deg)}
.ticket.is-done .tk-stamp{animation:stamp .5s cubic-bezier(.2,1.5,.4,1) both}
.tk-rows{margin:0;display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--rule)}
.tk-rows div{display:flex;justify-content:space-between;gap:16px;font-size:14px}
.tk-rows dt{color:var(--ink-2)}
.tk-rows dd{margin:0;text-align:right;font-weight:500}
.tk-actions{display:grid;gap:8px}
@keyframes stamp{from{transform:rotate(-4deg) scale(1.8);opacity:0}to{transform:rotate(-4deg) scale(1);opacity:1}}

/* perks */
.perks{background:#fff;border-bottom:1px solid var(--rule)}
.perks-in{list-style:none;margin-block:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-block:30px}
.perks-in li{display:flex;align-items:center;gap:14px}
.perks-in svg{flex:none;width:44px;height:44px;padding:10px;border-radius:50%;background:var(--paper-2);fill:none;stroke:var(--pink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.perks-in div{display:grid;gap:1px}
.perks-in b{font-size:14.5px;font-weight:600}
.perks-in span{font-size:13px;color:var(--ink-2)}

/* clinic system */
/* a dark band under the page head: the reception app is shown as a window that scrolls inside itself */
.sec-desk{background:var(--night);color:var(--app-ink);padding-block:clamp(56px,6vw,84px)}
.app{min-width:0;background:var(--app-bg);color:var(--app-ink);border-radius:10px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.7),0 0 0 1px rgba(227,234,236,.1);color-scheme:dark}
.app-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--app-bg-2);border-bottom:1px solid var(--app-rule);font-size:13px}
.app-name{display:inline-flex;align-items:center;gap:8px;font:800 18px/1 var(--f-display);letter-spacing:.06em}
.app-day{display:flex;align-items:center;gap:10px}
.app-day b{font-weight:600;min-width:150px;text-align:center}
.app-day button{width:30px;height:30px;border:1px solid var(--app-rule);background:var(--app-bg-3);color:var(--app-ink);cursor:pointer;font-size:16px;border-radius:4px}
.app-day button:hover{border-color:var(--app-ink-2)}
.app-user{color:var(--app-ink-2)}
.app-kpis{display:flex;flex-wrap:wrap;gap:4px 22px;padding:8px 16px;border-bottom:1px solid var(--app-rule)}
.kpi{display:flex;align-items:baseline;gap:7px;min-width:0}
.kpi span{order:2;font:500 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--app-ink-2)}
.kpi b{order:1;font:700 18px/1 var(--f-display);font-variant-numeric:tabular-nums}
.kpi small{display:none}
.app-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;height:540px}
.cal-wrap{overflow:auto;min-width:0;border-right:1px solid var(--app-rule);scrollbar-width:thin;scrollbar-color:var(--app-bg-3) transparent}
.cal{--hr:46px;display:grid;grid-template-columns:52px repeat(4,minmax(124px,1fr));min-width:560px}
.cal-h{position:sticky;top:0;z-index:3;padding:10px 10px 9px;background:var(--app-bg);border-bottom:1px solid var(--app-rule);border-left:1px solid var(--app-rule);font-size:12.5px;font-weight:600;min-width:0}
.cal-h small{display:block;font:500 10.5px var(--f-mono);color:var(--app-ink-2)}
.cal-h:first-child{border-left:0}
.cal-t{position:relative;height:calc(var(--hr) * 13)}
.cal-t span{position:absolute;right:8px;transform:translateY(-50%);font:500 10.5px var(--f-mono);color:var(--app-ink-2)}
.cal-col{position:relative;height:calc(var(--hr) * 13);border-left:1px solid var(--app-rule);background-image:linear-gradient(var(--app-rule) 1px,rgba(0,0,0,0) 1px);background-size:100% var(--hr)}
.cal-off{position:absolute;left:0;right:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(227,234,236,.05) 0 6px,rgba(0,0,0,0) 6px 12px)}
.cal-now{position:absolute;left:0;right:0;height:2px;background:var(--tape);z-index:2;pointer-events:none}
.cal-now::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--tape)}
.ap{position:absolute;left:4px;right:4px;display:grid;align-content:start;gap:1px;padding:6px 8px 6px 10px;background:var(--app-bg-3);border:0;border-left:3px solid var(--c);border-radius:4px;color:var(--app-ink);text-align:left;cursor:pointer;overflow:hidden;font-size:12px;line-height:1.3;transition:background .2s}
.ap::before{content:"";position:absolute;inset:0;background:var(--c);opacity:.13;pointer-events:none}
.ap:hover{background:#243644}
.ap b{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ap span{color:var(--app-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ap.is-short{padding-block:3px;align-content:center}
.ap.is-short b{font-size:11.5px}
.ap.is-short span{display:none}
.ap.is-sel{box-shadow:0 0 0 2px var(--app-ink)}
.ap.is-in{opacity:.55}
.ap.is-new{box-shadow:0 0 0 2px var(--tape);animation:newap 1.6s ease-in-out 3}
.ap-badge{position:absolute;right:6px;top:6px;padding:1px 5px;border-radius:3px;background:var(--tape);color:#fff;font:600 9.5px var(--f-mono);letter-spacing:.06em}
.ap.is-short .ap-badge{top:50%;transform:translateY(-50%)}
@keyframes newap{50%{box-shadow:0 0 0 6px rgba(227,61,126,.25)}}
.app-side{display:grid;gap:14px;align-content:start;padding:16px;min-width:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--app-bg-3) transparent}
.ad-k{font:500 10.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--app-ink-2)}
.ad-name{margin-top:6px;font:800 26px/1 var(--f-display);text-transform:uppercase}
.ad-type{display:inline-flex;align-items:center;gap:8px;font-size:13px}
.ad-type::before{content:"";width:9px;height:9px;background:var(--c)}
.ad-rows{margin:0;display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--app-rule)}
.ad-rows div{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.ad-rows dt{color:var(--app-ink-2)}
.ad-rows dd{margin:0;text-align:right;min-width:0;overflow-wrap:anywhere}
.ad-note{font-size:13px;color:var(--app-ink);padding:10px 12px;background:var(--app-bg-2);border-left:2px solid var(--app-ink-2)}
.ad-prog{display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--app-rule)}
.ad-prog svg{width:100%;height:auto;display:block}
.ad-prog .sp-line{fill:none;stroke:var(--tape);stroke-width:2}
.ad-prog .sp-area{fill:rgba(227,61,126,.14)}
.ad-prog .sp-goal{stroke:var(--app-ink-2);stroke-dasharray:3 3}
.ad-prog .sp-dot{fill:var(--tape)}
.ad-prog text{font:500 9px var(--f-mono);fill:var(--app-ink-2)}
.ad-actions{display:flex;flex-wrap:wrap;gap:8px}
.ad-btn{min-height:34px;padding:0 12px;border:1px solid var(--app-rule);background:var(--app-bg-3);color:var(--app-ink);font-size:13px;cursor:pointer;border-radius:4px}
.ad-btn:hover{border-color:var(--app-ink-2)}
.ad-btn.is-primary{background:var(--app-ink);color:var(--app-bg);border-color:var(--app-ink)}
.ad-empty{color:var(--app-ink-2);font-size:14px}

/* faq + place */
.faq details{border-top:1px solid var(--rule)}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:18px 0;font-size:16.5px;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 22px/1 var(--f-mono);color:var(--tape);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;color:var(--ink-2);max-width:62ch}
.place{display:grid;background:var(--card);border-radius:6px;overflow:hidden;box-shadow:var(--shadow),0 0 0 1px rgba(34,20,28,.06)}
.place-map{position:relative;aspect-ratio:320/170;background:var(--paper-2)}
/* the clinic sits at the centre of img/map.jpg, so the pin stays put however the map is cropped */
.pm-mark{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:16px;margin-left:-7px;transform:translateY(-50%);font:700 11px/1 var(--f-mono);letter-spacing:.08em;color:var(--tape);text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.pm-mark i{flex:none;width:14px;height:14px;border-radius:50%;background:var(--tape);box-shadow:0 0 0 2px #fff,0 0 0 10px rgba(212,44,110,.18),0 0 0 11.5px rgba(212,44,110,.5)}
.place-info{list-style:none;margin:0;padding:6px 18px 10px;display:grid}
.place-info li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.place-info li:last-child{border-bottom:0}
.place-info svg{width:22px;height:22px;fill:none;stroke:var(--pink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.place-info div{display:grid;gap:1px;font-size:14px}
.place-info b{font-weight:600}
.place-info span{color:var(--ink-2)}
.sel{user-select:all}

/* footer */
.foot{border-top:1px solid var(--rule);background:#fff}
.foot-top{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:start;gap:28px clamp(32px,4vw,64px);padding-block:44px 40px}
.foot-brand{display:grid;gap:8px;align-content:start}
.foot-brand p{font-size:13.5px;color:var(--ink-2)}
.foot-addr a{text-decoration:none}
.foot-col{display:grid;grid-template-columns:repeat(2,auto);gap:9px 36px;align-content:start}
.foot-h{grid-column:1/-1;margin-bottom:4px;font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#85707A} /* 4.6:1 on white, still lighter than the links */
.foot-col a{font-size:14px;text-decoration:none;color:var(--ink-2)}
.foot-col a:hover,.foot-addr a:hover,.foot-bot a:hover{color:var(--pink)}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 32px;padding-block:16px 28px;border-top:1px solid var(--rule)}
.foot-bot p{font-size:12.5px;color:var(--ink-2);max-width:90ch}
.foot-bot a{font-size:12.5px;color:var(--ink-2)}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);z-index:70;transform:translate(-50%,16px);max-width:calc(100vw - 32px);padding:12px 18px;border-radius:4px;background:var(--ink);color:var(--paper);font-size:14px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- pages ---------- */
.nav-links a[aria-current="page"]{border-bottom-color:var(--pink);color:var(--pink-deep)}
.nav-links .nl-book{display:none}
.nav-menu{display:none}
.more{justify-self:start;display:inline-block;color:var(--pink);font-weight:600;font-size:15px;text-decoration:none}
.more::after{content:"→";display:inline-block;margin-left:8px;transition:transform .2s}
#areaExtra .more::after{display:inline;margin-left:0;content:"\00a0\2192"} /* the arrow never wraps alone */
.more:hover{color:var(--ink)}
.more:hover::after{transform:translateX(3px)}
.sec-head-split > a.more{justify-self:end;align-self:end}
.sec-tight{padding-block:clamp(40px,5vw,64px)}

/* page head: the hero's pink, shorter, with breadcrumbs */
.page-head{position:relative;overflow:hidden;padding-top:calc(env(safe-area-inset-top,0px) + var(--nav-h));background:linear-gradient(100deg,#FFF7FA 0%,#FDEEF4 45%,#FBE6EE 100%);border-bottom:1px solid var(--rule)}
.ph-in{display:grid;gap:20px;justify-items:start;padding-block:clamp(36px,4.5vw,64px) clamp(44px,5.5vw,80px)}
.ph-copy{display:grid;gap:20px;justify-items:start;align-content:center;min-width:0}
.crumbs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;font:500 11.5px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--ink-3)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--pink)}
.crumbs [aria-current]{color:var(--pink-deep)}
.page-head .kicker::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--tape)}
.ph-h{font-size:clamp(46px,6.2vw,100px);line-height:.9;max-width:15ch}
html[lang="lt"] .ph-h{line-height:1} /* room for the accents on Ė, Š, Č, Ž */
.ph-p{color:var(--ink-2);max-width:54ch;font-size:clamp(16px,1.15vw,19px)}
.ph-cta{display:flex;flex-wrap:wrap;gap:12px}
.ph-split{grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;justify-items:stretch;gap:24px clamp(32px,5vw,80px);padding-block:clamp(24px,3vw,40px)}
.ph-sports{font:500 12px/1.5 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.ph-sports span{color:var(--pink-deep)}
/* a definite row, so the image's max-height:100% resolves instead of the row growing to the image */
.ph-x{margin:0;height:clamp(320px,34vw,500px);display:grid;grid-template-rows:minmax(0,1fr);place-items:center}
/* the anatomy renders sit on white, so multiply drops the white into the pink */
.ph-x img,.ph-body img{max-height:100%;width:auto;mix-blend-mode:multiply}
.ph-x img{-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent),linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent),linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-composite:intersect}
.ph-body{width:min(250px,100%);justify-self:center}
.spot{text-decoration:none}
.page-head.is-dark{background:var(--night);color:#fff;border-bottom:0}
.page-head.is-dark .ph-p,.page-head.is-dark .crumbs,.page-head.is-dark .kicker{color:var(--app-ink-2)}
.page-head.is-dark .crumbs [aria-current]{color:#fff}
.page-head.is-dark .btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.page-head.is-dark + .sec-desk{padding-top:0}

/* pink call to action band */
.cta-band{background:var(--pink);color:#fff;padding-block:clamp(48px,6vw,84px)}
.cta-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px}
.cta-in > div:first-child{display:grid;gap:12px;max-width:680px}
.cta-in h2{font-size:clamp(36px,4.4vw,60px)}
.cta-in p{color:rgba(255,255,255,.9);max-width:56ch}
.cta-band .btn-line{color:#fff;border-color:#fff}
.cta-band .btn-line:hover{background:#fff;border-color:#fff;color:var(--pink-deep)}

/* home: visit band */
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:clamp(28px,5vw,80px);align-items:center}
.cta-grid .sec-head{margin-bottom:0}
.cta-grid .ph-cta{margin-top:6px}

/* treatments: one card per body area */
.areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ac{display:grid;grid-template-rows:auto 1fr;min-width:0;background:var(--card);border:1px solid var(--rule);border-radius:6px;overflow:hidden;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s}
.ac:hover{border-color:var(--pink);box-shadow:var(--shadow);transform:translateY(-2px)}
.ac-x{display:grid;place-items:center;height:230px;padding:14px;background:#fff;border-bottom:1px solid var(--rule)}
.ac-x img{display:block;max-height:200px;max-width:100%;width:auto}
.ac-body{display:grid;gap:8px;align-content:start;padding:18px 20px 20px}
.ac-sports{font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--pink-deep)}
.ac-name{font:800 36px/.95 var(--f-display);text-transform:uppercase}
.ac-desc{font-size:14px;color:var(--ink-2)}
.ac-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding-top:12px;border-top:1px solid var(--rule);font:500 12px var(--f-mono);color:var(--ink-2)}
.ac-meta i{font-style:normal;font-weight:600;color:var(--pink);transition:transform .2s}
.ac:hover .ac-meta i{transform:translateX(3px)}

/* area pages */
.cond-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.cond-grid .sec-head{margin-bottom:0;position:sticky;top:calc(var(--nav-h) + 28px)}
#areaExtra:empty{display:none}
.cond-cap,.cond a{display:grid;grid-template-columns:minmax(0,1fr) 120px 110px;align-items:center;gap:18px}
.cond-cap{padding:0 2px 10px;font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.cond{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.cond a{padding:20px 2px;border-bottom:1px solid var(--rule);text-decoration:none;transition:color .2s,padding .2s}
.cond b{font:600 clamp(17px,1.4vw,21px)/1.3 var(--f-body)}
.cond-wk{font:500 13px var(--f-mono);color:var(--ink-2);white-space:nowrap}
.cond-go{justify-self:end;font-weight:600;font-size:14px;color:var(--pink);white-space:nowrap}
.cond a:hover{color:var(--pink-deep);padding-left:8px}
.when-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,80px);align-items:start}
.when-grid .sec-head{margin-bottom:24px}
.when-grid .sec-head h2{font-size:clamp(34px,3.8vw,52px)}
.when{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.when li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--rule);font-size:16.5px}
.when svg{width:22px;height:22px;fill:none;stroke:var(--pink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.alert{margin-top:22px;padding:14px 16px;border-left:3px solid var(--tape);background:#fff;font-size:14.5px;color:var(--ink-2)}
.alert b{color:var(--ink)}
.steps{list-style:none;margin:0;padding:0;counter-reset:st}
.steps li{display:grid;grid-template-columns:60px minmax(0,1fr);gap:4px 16px;padding:16px 0;border-top:1px solid var(--rule)}
.steps li:last-child{border-bottom:1px solid var(--rule)}
.steps li::before{counter-increment:st;content:"0" counter(st);grid-row:span 2;font:800 46px/.9 var(--f-display);color:transparent;-webkit-text-stroke:1.2px var(--pink)}
.steps b{font-weight:600;font-size:16.5px}
.steps p{color:var(--ink-2);font-size:14.5px}
.team-few{grid-template-columns:repeat(auto-fill,minmax(250px,320px))}
.chips{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 9px;background:var(--card);border:1px solid var(--rule);border-radius:999px;font-size:14px;text-decoration:none;transition:border-color .2s,color .2s}
.chip:hover{border-color:var(--pink);color:var(--pink-deep)}
.chip svg{width:20px;height:20px;fill:none;stroke:var(--ink-2);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.chip .ai-dot{fill:var(--pink);stroke:var(--pink)}

/* team page */
.prof{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(28px,4.5vw,72px);padding-block:clamp(36px,4vw,56px);border-top:1px solid var(--rule);scroll-margin-top:var(--nav-h)}
.prof:first-child{border-top:0;padding-top:0}
.prof-photo{aspect-ratio:4/4.6;border-radius:6px;overflow:hidden;background:#E6E6EA}
.prof-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.prof-body{display:grid;gap:20px;justify-items:start;align-content:center;max-width:680px;min-width:0}
.prof-top{display:grid;gap:10px}
.prof-role{font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.prof-body h2{font-size:clamp(40px,4.4vw,64px)}
.prof-bio{font-size:clamp(16px,1.15vw,18px);color:var(--ink-2)}
.prof-facts{width:100%;margin:0;display:grid;border-top:1px solid var(--rule)}
.prof-facts > div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.prof-facts dt{font:500 11px/2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.prof-facts dd{margin:0;min-width:0}
.prof-facts .chips{margin:0}
.pf-svc{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pf-svc li{display:flex;justify-content:space-between;gap:16px;max-width:360px}
.pf-svc b{font:500 13px/1.7 var(--f-mono)}

/* prices and team: three points between rules, like the price list */
.info3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1.5px solid var(--ink)}
.info3 > *{display:grid;gap:10px;align-content:start;padding:24px 28px 0;border-left:1px solid var(--rule)}
.info3 > :first-child{padding-left:0;border-left:0}
.info-k{font:500 11px var(--f-mono);letter-spacing:.12em;color:var(--pink)}
.info3 h3{font:800 30px/1 var(--f-display);text-transform:uppercase}
.info3 p:not(.info-k){color:var(--ink-2);font-size:15px;max-width:40ch}

/* contact and FAQ */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.contact-side{display:grid;gap:34px}
.contact-side p{color:var(--ink-2);max-width:52ch}
.h-sm{margin-bottom:12px;font:800 30px/1 var(--f-display);text-transform:uppercase}
.hours{margin:0;display:grid;border-top:1px solid var(--rule)}
.hours > div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:15.5px}
.hours dt{color:var(--ink-2)}
.hours dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.hours .is-today dt,.hours .is-today dd{color:var(--pink-deep)}
.hours .is-today dt::after{content:" · today";font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
html:lang(lt) .hours .is-today dt::after{content:" · šiandien"}
.faq-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.faq-grid .sec-head{margin-bottom:0}
.faq-grid .sec-head h2{font-size:clamp(36px,4vw,56px)}

/* booking page */
.sec-first{padding-top:calc(env(safe-area-inset-top,0px) + var(--nav-h) + clamp(32px,4vw,56px))}
.book-head .crumbs{margin-bottom:4px}
.form-legal{margin-top:-12px;font-size:12.5px;color:var(--ink-2)}
.form-legal a{color:inherit}

/* clinic system page */
.desk-feats{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}
.desk-feats li{display:grid;gap:4px;padding-top:16px;border-top:1px solid var(--app-rule);font-size:14.5px;color:var(--app-ink-2)}
.desk-feats b{color:#fff;font-weight:600}

/* privacy */
.prose{max-width:72ch;display:grid;gap:14px}
.prose h2{margin-top:20px;font:800 30px/1 var(--f-display);text-transform:uppercase}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2)}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav-tel{display:none}
  .hero-in{grid-template-columns:1fr;gap:0;min-height:0}
  .hero-copy{order:1;padding-bottom:12px}
  .hero-copy::before{display:none}
  .hero-photo{order:2;position:relative;right:auto;bottom:auto;width:calc(100% + var(--gl) + var(--gr));height:auto;margin-left:calc(-1 * var(--gl));aspect-ratio:16/10;object-fit:cover;object-position:60% 30%;
    -webkit-mask-image:linear-gradient(transparent,#000 16%);mask-image:linear-gradient(transparent,#000 16%)}
  .qb{order:3;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;margin-top:-72px}
  .qb-title,.qb-tabs{grid-column:span 3}
  .qb-tabs{max-width:360px}
  .qb-go{grid-column:span 2;margin-top:0}
  .qb-note{grid-column:span 1}
  .tr-grid{grid-template-columns:160px minmax(0,280px) minmax(0,1fr)}
  .tr-x{display:none}
  .st{padding-inline:22px}
  .st-n{font-size:72px}
  .sv-price{font-size:36px}
  .sv{grid-template-columns:30px minmax(0,1fr) auto;column-gap:10px}
  .sv-ic{width:30px;height:30px}
  .sv-ic svg{width:16px;height:16px}
  .team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .book-grid{grid-template-columns:minmax(0,1fr) 300px}
  .book-head{grid-column:1/-1;position:static;max-width:640px}
  .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-body{grid-template-columns:1fr;height:auto}
  .cal-wrap{max-height:420px;border-right:0;border-bottom:1px solid var(--app-rule)}
  .perks-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-top{grid-template-columns:repeat(3,auto);justify-content:start}
  .foot-brand{grid-column:1/-1}
  .areas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ac{grid-template-columns:minmax(0,190px) minmax(0,1fr);grid-template-rows:none}
  .ac-x{height:auto;min-height:220px;border-bottom:0;border-right:1px solid var(--rule)}
  .ac-x img{max-height:190px}
  .prof{grid-template-columns:minmax(0,320px) minmax(0,1fr)}
  .cond-grid,.faq-grid{grid-template-columns:minmax(0,320px) minmax(0,1fr)}
}
@media (max-width:900px){
  .nav-links{display:none}
  .hero-copy{padding-block:32px 8px}
  .hero-photo{aspect-ratio:4/3.3;object-position:62% 18%}
  .qb{grid-column:auto;grid-template-columns:1fr;margin:-40px 0 32px}
  .qb-title,.qb-tabs,.qb-go,.qb-note{grid-column:auto}
  .qb-tabs{max-width:none}
  .proof-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 0}
  .proof-list li:nth-child(4){border-left:0}
  .sec-head-split{grid-template-columns:1fr}
  .tr-grid{grid-template-columns:1fr;gap:24px}
  .tr-list{display:flex;flex-wrap:wrap;gap:6px}
  .tr-list button{width:auto;padding:7px 12px 7px 8px;border:1px solid var(--rule);border-radius:999px;font-size:14px;gap:8px}
  .tr-list button[aria-pressed="true"]{border-color:var(--pink)}
  .tr-list svg{width:20px;height:20px}
  .tr-body{max-width:250px}
  .stages{grid-template-columns:1fr;grid-template-rows:none;gap:30px}
  .st{grid-row:auto;grid-template-rows:none;padding:22px 20px 10px}
  .st:not(:nth-child(3))::after{content:"↓";top:auto;right:auto;left:50%;bottom:-29px;transform:translateX(-50%)}
  .st-n{font-size:60px}
  .sv-meta i{opacity:1;transform:none}
  .book-grid{grid-template-columns:1fr}
  .ticket{position:static}
  .foot-top{grid-template-columns:1fr;justify-items:start}
  .vol{display:none}
  .bg-num{right:auto;left:50%;bottom:auto;top:28%;transform:translateX(-50%);justify-items:center;font-size:min(42vh,70vw)}
  .bg-num small{display:none}
  .acts{top:calc(var(--nav-h) + 16px);right:var(--gr);width:auto}
  .act{gap:10px}
  .act h2{font-size:clamp(32px,9vw,46px)}
  .act p:not(.kicker){font-size:14px;line-height:1.45}
  .act-cta .btn{min-height:40px;padding:0 14px;font-size:13px}
  .readouts{top:auto;bottom:74px;left:var(--gl);right:var(--gr);width:auto;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px 16px;padding:12px}
  .ro-head,.ro-note,.ro-dx{display:none}
  .ro-grid{grid-column:1/-1}
  .ro-v{font-size:28px}
  .ro-live,.lsi{padding-top:8px;gap:4px}
  #trace{height:30px}
  .lsi-bar i{height:7px}
  .cleared{top:auto;bottom:100%;right:10px;font-size:15px;background:#fff}
  .hud-top{display:none}
  .rail{bottom:14px}
  .rail b{font-size:0}
  .rail span{font-size:10.5px}
  .rail button{padding-top:8px}
  .app-user{display:none}
  .nav-menu{display:grid;place-items:center;width:40px;height:40px;margin-right:-8px;padding:0;background:none;border:0;cursor:pointer}
  .nav-menu span,.nav-menu span::before,.nav-menu span::after{display:block;width:20px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s,background .25s}
  .nav-menu span{position:relative}
  .nav-menu span::before,.nav-menu span::after{content:"";position:absolute;left:0}
  .nav-menu span::before{top:-6px}
  .nav-menu span::after{top:6px}
  .nav.is-open .nav-menu span{background:transparent}
  .nav.is-open .nav-menu span::before{transform:translateY(6px) rotate(45deg)}
  .nav.is-open .nav-menu span::after{transform:translateY(-6px) rotate(-45deg)}
  .nav.is-open .nav-links{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;gap:0;padding:6px var(--gr) 22px var(--gl);background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 30px 40px -30px rgba(34,20,28,.35);max-height:calc(100svh - var(--nav-h));overflow-y:auto}
  .nav.is-open .nav-links a{padding:14px 0;border-bottom:1px solid var(--rule);font-size:17px}
  .nav.is-open .nav-links .nl-book{display:flex;margin-top:18px;padding:0 22px;border:1.5px solid var(--pink);color:#fff;font-size:15px}
  .sec-head-split > a.more{justify-self:start}
  .ph-split{grid-template-columns:1fr}
  .ph-x{height:240px;justify-self:center}
  .ph-body{display:none}
  .cond-grid,.faq-grid,.when-grid,.contact-grid,.cta-grid{grid-template-columns:1fr}
  .cond-grid .sec-head{position:static}
  .prof{grid-template-columns:1fr;gap:24px}
  .prof-photo{aspect-ratio:16/12;max-width:560px}
  .info3{grid-template-columns:1fr;gap:24px;border-top:0}
  .info3 > *,.info3 > :first-child{padding:20px 0 0;border-left:0;border-top:1.5px solid var(--ink)}
  .desk-feats{grid-template-columns:1fr}
  .lang button{min-width:40px;min-height:40px;padding:0 10px}
  .crumbs a{display:inline-block;padding-block:12px;margin-block:-12px}
}
@media (max-width:560px){
  .nav-r .btn{display:none}
  .hero-feats{gap:18px}
  .hero-k{letter-spacing:.18em}
  .proof-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof-list li{border-left:0}
  .proof-list li:nth-child(even){border-left:1px solid var(--rule-2)}
  .proof-list li:last-child{grid-column:1/-1}
  .book-form{padding:18px}
  .fields{grid-template-columns:1fr}
  .opts-svc{grid-template-columns:1fr 1fr}
  .opts-spec{grid-template-columns:1fr}
  .opt{padding:9px 10px;gap:8px}
  .team{grid-template-columns:1fr}
  .tm-photo{aspect-ratio:16/11}
  .perks-in{grid-template-columns:1fr}
  .app-day b{min-width:0}
  .app-day button{flex:none;width:40px;height:40px}
  .ap.is-short{min-height:28px}
  /* the hours stay beside the columns when the calendar is swiped sideways */
  .cal-t{position:sticky;left:0;z-index:3;background:var(--app-bg)}
  .cal-h:first-child{left:0;z-index:4}
  .cal-wrap{overscroll-behavior-x:contain}
  .foot-col{justify-self:stretch;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .foot-col a{display:block;padding-block:9px}
  .areas{grid-template-columns:1fr}
  .ac{grid-template-columns:110px minmax(0,1fr)}
  .ac-x{min-height:0;padding:10px}
  .ac-x img{max-height:120px}
  .ac-name{font-size:30px}
  .ac-desc{display:none}
  .cond-cap{display:none}
  .cond a{grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding-block:16px}
  .cond-wk{grid-row:2;grid-column:1}
  .cond-go{grid-row:1/3;grid-column:2}
  .prof-facts > div{grid-template-columns:1fr;gap:6px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tape-band span,.spot[aria-pressed="true"]::after,.ap.is-new,.ticket.is-done .tk-stamp{animation:none}
  .act,.act.is-on,.cleared{transition:none}
}
