@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Oxanium:wght@300;400;500;600;700&display=swap");

:root{--ink:#112147;--blue:#263f98;--sky:#3d91c8;--aqua:#55c5c4;--ice:#eaf4f5;--paper:#f8fbfa;--line:rgba(17,33,71,.16);--sans:"Montserrat",Arial,sans-serif;--serif:"Montserrat",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}.site-shell{min-height:100vh}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,76px);background:rgba(248,251,250,.84);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);position:relative;z-index:50}.brand{display:flex;align-items:center;gap:13px;font-size:24px;letter-spacing:-1px}.brand b{font-family:var(--serif);font-style:italic;font-weight:500}.brand small{display:block;font-size:7px;letter-spacing:2.2px;margin-top:2px;color:#5f6d8b}.brand-mark{width:43px;height:43px;border:1px solid var(--blue);border-radius:50%;position:relative;display:grid;place-items:center;transform:rotate(-18deg)}.brand-mark:after{content:"";position:absolute;inset:7px;border:1px solid var(--aqua);border-radius:50%}.brand-mark i{position:absolute;width:28px;height:1px;background:var(--blue);transform:rotate(calc(var(--n,0)*60deg))}.brand-mark i:nth-child(2){transform:rotate(60deg)}.brand-mark i:nth-child(3){transform:rotate(120deg)}.nav{display:flex;align-items:center;gap:clamp(20px,2.5vw,42px);font-size:12px;text-transform:uppercase;letter-spacing:1.4px}.nav>a:not(.nav-cta){padding:38px 0 35px;position:relative}.nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:26px;height:1px;background:var(--aqua);transition:.3s}.nav>a:hover:after{right:0}.nav-cta,.button{border:none;display:inline-flex;justify-content:space-between;align-items:center;gap:35px;padding:17px 22px;text-transform:uppercase;letter-spacing:1.5px;font-size:11px;cursor:pointer}.nav-cta{background:var(--blue);color:white}.nav-cta span,.button span{font-size:17px}.menu-button{display:none;background:none;border:0;width:40px;height:40px}.menu-button span{display:block;width:24px;height:1px;background:var(--ink);margin:7px}
.hero{min-height:calc(100vh - 92px);display:grid;grid-template-columns:54% 46%;position:relative;background:radial-gradient(circle at 80% 40%,rgba(85,197,196,.2),transparent 28%),linear-gradient(135deg,#f8fbfa,#e7f1f2)}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(17,33,71,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,33,71,.045) 1px,transparent 1px);background-size:62px 62px;mask-image:linear-gradient(90deg,black,transparent 75%)}.hero-copy{padding:clamp(70px,9vw,135px) 4vw clamp(80px,8vw,120px) clamp(24px,7vw,104px);z-index:2}.eyebrow,.section-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;display:flex;gap:15px;align-items:center}.eyebrow span{width:31px;height:31px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center}.hero h1,.detail-hero h1{font-size:clamp(60px,7vw,110px);line-height:.88;letter-spacing:-.065em;margin:42px 0 34px;font-weight:600}.hero h1 em,.detail-hero h1 em,.services h2 em,.profile h2 em,.booking h2 em{font-family:var(--serif);font-weight:400;color:var(--aqua)}.hero-copy>p{font-size:clamp(16px,1.35vw,20px);line-height:1.7;color:#596682;max-width:570px}.hero-actions{display:flex;align-items:center;gap:34px;margin-top:45px}.button.primary{background:var(--blue);color:#fff;box-shadow:0 16px 35px rgba(38,63,152,.2)}.button.dark{background:var(--ink);color:#fff}.text-link{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;border-bottom:1px solid;padding-bottom:5px}.hero-visual{position:relative;min-height:650px;display:grid;place-items:center;overflow:hidden}.hero-visual:before{content:"";position:absolute;width:70%;height:76%;border:1px solid rgba(38,63,152,.13);border-radius:50%;transform:rotate(-18deg)}
.spine-scene{width:min(520px,80%);aspect-ratio:1;position:relative;perspective:900px;display:grid;place-items:center;transform-style:preserve-3d;animation:sceneFloat 7s ease-in-out infinite}.spine-core{height:78%;width:35%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;transform-style:preserve-3d;animation:spineTurn 12s ease-in-out infinite}.spine-core span{--angle:calc(var(--i)*24deg);display:block;width:calc(100% - var(--i)*1.2px);height:18px;border-radius:50%;border:1px solid rgba(38,63,152,.8);background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(85,197,196,.35),rgba(255,255,255,.8),rgba(61,145,200,.26));box-shadow:0 3px 10px rgba(38,63,152,.12),inset 0 0 8px white;transform:rotateY(var(--angle)) rotateZ(calc(sin(var(--i))*2deg)) translateZ(calc(var(--i)*1px));animation:vertebra 4s ease-in-out infinite;animation-delay:calc(var(--i)*-.12s)}.orbit{position:absolute;border:1px solid rgba(61,145,200,.28);border-radius:50%;transform-style:preserve-3d}.orbit:before,.orbit:after{content:"";position:absolute;width:7px;height:7px;background:var(--aqua);border-radius:50%;box-shadow:0 0 18px var(--aqua)}.orbit-a{inset:10%;transform:rotateX(68deg) rotateZ(10deg);animation:orbitA 9s linear infinite}.orbit-a:before{top:18%;left:7%}.orbit-b{inset:20%;transform:rotateY(68deg) rotateZ(-22deg);animation:orbitB 7s linear infinite}.orbit-b:after{bottom:4%;right:28%}.pulse{position:absolute;width:8px;height:8px;background:var(--blue);border-radius:50%;box-shadow:0 0 0 8px rgba(38,63,152,.08),0 0 24px rgba(38,63,152,.4)}.pulse-a{top:30%;left:27%}.pulse-b{right:24%;top:49%;animation-delay:-2s}.pulse-c{bottom:27%;left:36%;animation-delay:-4s}.pulse{animation:pulse 2.5s ease-out infinite}.spine-scene>p{position:absolute;bottom:4%;font-size:9px;text-transform:uppercase;letter-spacing:2px;color:#596682}.spine-scene>p em{color:var(--aqua);margin:0 6px}.spine-scene.compact{position:absolute;right:3vw;width:min(470px,45vw);opacity:.78}.availability{position:absolute;bottom:42px;right:4vw;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);padding:17px 20px;border:1px solid white;font-size:8px;letter-spacing:1.7px;line-height:2;color:#61708d}.availability i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#54b976;margin-right:7px}.availability b{font-size:11px;color:var(--ink)}.scroll-note{position:absolute;left:23px;bottom:26px;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px;display:flex;gap:15px;align-items:center}.scroll-note span{font-size:16px}.reveal{animation:reveal .9s ease-out both}
.manifesto{padding:clamp(85px,11vw,170px) clamp(24px,7vw,104px);background:#fff;display:grid;grid-template-columns:20% 80%}.section-label{color:#64708a;align-self:start}.manifesto-copy h2,.services h2,.profile h2,.catalog h2,.about h2,.booking h2{font-size:clamp(42px,5.5vw,78px);line-height:1.02;letter-spacing:-.045em;font-weight:500;margin:0}.manifesto-copy h2 em{font-family:var(--serif);font-weight:400;color:var(--blue)}.manifesto-copy>p{max-width:560px;color:#68748b;line-height:1.8;font-size:17px;margin:35px 0 70px}.path{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.path>div{padding:32px 40px 0 0;min-height:190px;border-right:1px solid var(--line)}.path>div+div{padding-left:40px}.path b{font:italic 22px var(--serif);color:var(--aqua)}.path-icon{display:block;width:58px;height:58px;object-fit:contain;transition:transform .25s ease,filter .25s ease}.path>div:hover .path-icon{transform:translateY(-2px);filter:drop-shadow(0 6px 8px rgba(10,94,154,.12))}.path span{display:block;font-size:11px;letter-spacing:1.6px;font-weight:700;margin:25px 0 12px}.path p{font-size:13px;line-height:1.7;color:#6b7790;max-width:250px}.path-more{display:inline-flex;align-items:center;margin-top:18px;padding:12px 16px;border:1px solid var(--jm-blue,#0a5e9a);color:var(--jm-blue,#0a5e9a);font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:.25s}.path-more:hover{background:var(--jm-blue,#0a5e9a);color:#fff;transform:translateY(-2px)}
.services{background:var(--ink);color:#fff;padding:clamp(85px,9vw,140px) clamp(24px,7vw,104px)}.section-label.light{color:#8d9aba}.services-head{display:flex;justify-content:space-between;align-items:flex-end;margin:55px 0 75px}.services-head p{max-width:380px;color:#9ba6bf;line-height:1.8}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.service-card{padding:30px;min-height:390px;border-right:1px solid rgba(255,255,255,.18);position:relative;transition:.4s}.service-card:last-child{border:0}.service-card>span{font:italic 16px var(--serif);color:var(--aqua)}.service-glyph{height:145px;display:grid;place-items:center;font-size:65px;color:transparent;-webkit-text-stroke:1px #7dd4d4;transition:.5s;transform-style:preserve-3d}.service-card:hover{background:rgba(85,197,196,.08);transform:translateY(-8px)}.service-card:hover .service-glyph{transform:rotateY(35deg) rotateX(-12deg) scale(1.12)}.service-card h3{font-size:20px;font-weight:500}.service-card p{font-size:12px;line-height:1.7;color:#98a6c1}.service-card>i{position:absolute;right:24px;bottom:22px;font-size:20px;font-style:normal;color:var(--aqua)}
.profile{display:grid;grid-template-columns:48% 52%;min-height:780px;background:#eef5f4}.profile-art{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#d5e9e8,#8ccacb)}.portrait{width:56%;aspect-ratio:.76;border-radius:48% 48% 18% 18%;background:linear-gradient(150deg,#1c306b,#3c91c8 55%,#7cd2cd);display:grid;place-items:center;box-shadow:0 30px 90px rgba(17,33,71,.26);position:relative;z-index:2;overflow:hidden}.portrait:after{content:"";position:absolute;width:140%;height:35%;top:20%;background:rgba(255,255,255,.2);transform:rotate(-30deg)}.portrait span{font:italic clamp(58px,9vw,130px) var(--serif);color:rgba(255,255,255,.75)}.profile-orbit{position:absolute;width:70%;aspect-ratio:1;border:1px solid rgba(17,33,71,.25);border-radius:50%;animation:orbitA 10s linear infinite}.profile-orbit:before{content:"";position:absolute;inset:15%;border:1px dashed rgba(17,33,71,.18);border-radius:50%}.profile-copy{padding:clamp(70px,9vw,135px) clamp(24px,8vw,120px)}.profile-copy .kicker{font-size:11px;letter-spacing:2px;color:var(--sky);margin-top:70px}.profile-copy h2{font-size:clamp(42px,4.5vw,68px);margin:30px 0}.profile-copy>p:not(.kicker){color:#637089;line-height:1.9;max-width:560px}.profile-copy .button{margin-top:32px}.cta-band{background:var(--aqua);padding:85px clamp(24px,7vw,104px);display:grid;grid-template-columns:1fr auto;align-items:end}.cta-band p{grid-column:1/-1;font-size:10px;letter-spacing:2px}.cta-band h2{font-size:clamp(48px,6vw,90px);letter-spacing:-.055em;margin:14px 0 0}.cta-band a{border-bottom:1px solid;letter-spacing:1.5px;font-size:11px;padding-bottom:8px}.cta-band a span{font-size:18px;margin-left:20px}
footer{background:#0b1737;color:#fff;padding:70px clamp(24px,7vw,104px) 35px;display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:50px;position:relative}footer .brand{margin-bottom:28px}footer>div>p{font-size:13px;line-height:1.8;color:#aab4c9}footer>div>span{font-size:8px;letter-spacing:2px;color:#7d8aa5}footer .footer-end{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.14);padding-top:28px;margin-top:30px;font-size:9px;letter-spacing:1.5px}footer a:hover{color:var(--aqua)}
.detail-hero{min-height:650px;position:relative;overflow:hidden;display:flex;align-items:center;padding:90px clamp(24px,7vw,104px);background:radial-gradient(circle at 78% 50%,rgba(85,197,196,.22),transparent 32%),linear-gradient(135deg,#f9fbfa,#e3f0f0)}.detail-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(17,33,71,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,33,71,.045) 1px,transparent 1px);background-size:58px 58px}.detail-title{width:66%;position:relative;z-index:2}.detail-hero h1{font-size:clamp(54px,6vw,92px);margin:40px 0 30px}.detail-hero h1 span:last-child{font-family:var(--serif);font-style:italic;color:var(--blue);font-weight:400}.detail-title>p{font-size:18px;line-height:1.8;color:#65718b;max-width:610px}.catalog{padding:clamp(80px,10vw,150px) clamp(24px,7vw,104px);background:#fff}.catalog-intro{display:grid;grid-template-columns:20% 50% 30%;align-items:end;margin-bottom:80px}.catalog-intro h2{font-size:clamp(38px,4.3vw,65px)}.catalog-intro>p{color:#68748b;line-height:1.8;font-size:14px}.catalog-list{border-top:1px solid var(--line)}.catalog-list article{display:grid;grid-template-columns:9% 30% 1fr 30px;align-items:center;gap:20px;padding:35px 15px;border-bottom:1px solid var(--line);transition:.3s}.catalog-list article:hover{background:var(--ice);padding-left:28px}.catalog-list article>span{font:italic 20px var(--serif);color:var(--aqua)}.catalog-list h3{font-size:22px;font-weight:500;margin:0}.catalog-list p{color:#69758d;line-height:1.7;font-size:13px;max-width:670px}.catalog-list i{font-style:normal;font-size:22px}.detail-cta{margin-top:70px;padding:45px;background:var(--ice);display:flex;align-items:center;justify-content:space-between}.detail-cta p{font:italic 28px var(--serif)}
.about{padding:clamp(85px,10vw,150px) clamp(24px,7vw,104px);background:#fff}.about-quote{max-width:1000px;margin:0 auto 110px;position:relative}.about-quote>span{position:absolute;left:-60px;top:-80px;font:170px var(--serif);color:var(--ice)}.about-quote h2{position:relative;font-family:var(--serif);font-style:italic;color:var(--blue)}.about-body{display:grid;grid-template-columns:38% 1fr;gap:8vw}.portrait.large{width:100%;max-width:430px}.about-body h3{font-size:35px;font-weight:500;margin-top:0}.about-body>div>p{line-height:1.9;color:#68748b}.milestones{margin:45px 0;border-top:1px solid var(--line)}.milestones>div{display:grid;grid-template-columns:90px 1fr;border-bottom:1px solid var(--line);align-items:center}.milestones b{font:italic 20px var(--serif);color:var(--aqua)}.milestones p{font-size:13px;color:#67748c}.chips{display:flex;flex-wrap:wrap;gap:9px}.chips span{border:1px solid var(--line);border-radius:50px;padding:10px 15px;font-size:10px;text-transform:uppercase;letter-spacing:1px}
.contact-layout{display:grid;grid-template-columns:58% 42%;min-height:720px}.map-art{background:#dceeed;position:relative;overflow:hidden;display:grid;place-items:center}.map-grid{position:absolute;inset:-20%;background:repeating-linear-gradient(22deg,transparent 0 68px,rgba(38,63,152,.12) 69px 71px),repeating-linear-gradient(103deg,transparent 0 82px,rgba(38,63,152,.08) 83px 85px);transform:rotate(-8deg)}.map-grid:after{content:"";position:absolute;left:40%;top:0;width:60px;height:100%;background:rgba(61,145,200,.15);transform:rotate(17deg)}.map-pin{z-index:2;background:var(--blue);color:white;padding:18px 22px;font-size:11px;letter-spacing:1.5px;box-shadow:0 18px 40px rgba(17,33,71,.25)}.map-pin i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--aqua);margin-right:10px}.map-pin small{display:block;font-size:7px;margin:7px 0 0 24px;color:#c0d6ea}.contact-panel{background:white;padding:80px clamp(30px,6vw,90px)}.contact-panel>div{border-bottom:1px solid var(--line);padding:0 0 25px;margin-bottom:28px}.contact-panel span,.contact-mini span{display:block;font-size:8px;letter-spacing:2px;color:#79859c;margin-bottom:13px}.contact-panel a{font-size:20px}.contact-panel p{font-size:15px;line-height:1.7;margin:0;color:#65718a}.contact-panel>.button{margin-top:20px}
.booking{display:grid;grid-template-columns:40% 60%;padding:clamp(75px,9vw,135px) clamp(24px,7vw,104px);gap:9vw;background:#fff}.booking h2{font-size:clamp(38px,4.3vw,64px);margin:45px 0 28px}.booking-info>p{color:#68748b;line-height:1.8}.contact-mini{border-top:1px solid var(--line);margin-top:45px;padding-top:30px}.contact-mini a{font-size:18px}.booking form{display:grid;gap:24px}.booking label{display:grid;gap:10px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700}.booking input,.booking select,.booking textarea{width:100%;background:var(--paper);border:0;border-bottom:1px solid var(--line);padding:17px 15px;color:var(--ink);outline:0;text-transform:none;letter-spacing:0}.booking input:focus,.booking select:focus,.booking textarea:focus{border-color:var(--aqua);background:var(--ice)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.booking .privacy{display:flex;grid-auto-flow:column;justify-content:start;align-items:center;font-weight:400;text-transform:none;letter-spacing:0;color:#69758d}.privacy input{width:16px}.booking button{justify-self:start}
@keyframes reveal{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes sceneFloat{50%{transform:translateY(-14px) rotateZ(1deg)}}@keyframes spineTurn{0%,100%{transform:rotateY(-18deg) rotateX(5deg)}50%{transform:rotateY(28deg) rotateX(-4deg)}}@keyframes vertebra{50%{filter:hue-rotate(20deg);transform:rotateY(calc(var(--angle) + 30deg)) translateX(4px)}}@keyframes orbitA{to{transform:rotateX(68deg) rotateZ(370deg)}}@keyframes orbitB{to{transform:rotateY(68deg) rotateZ(-382deg)}}@keyframes pulse{0%{transform:scale(.7);opacity:.25}50%{opacity:1}100%{transform:scale(1.3);opacity:.2}}
@media(max-width:900px){.site-header{height:76px}.menu-button{display:block;z-index:3}.nav{position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:35px;display:flex;flex-direction:column;align-items:stretch;gap:0;transform:translateY(-130%);opacity:0;transition:.35s;z-index:-1;border-bottom:1px solid var(--line)}.nav.open{transform:none;opacity:1}.nav>a:not(.nav-cta){padding:18px 0}.hero{grid-template-columns:1fr}.hero-copy{padding-top:75px}.hero-visual{min-height:480px}.scroll-note{display:none}.manifesto{grid-template-columns:1fr;gap:45px}.path{grid-template-columns:1fr}.path>div,.path>div+div{padding:26px 0;border-right:0;border-bottom:1px solid var(--line);min-height:auto}.services-head{display:block}.services-head p{margin-top:25px}.service-grid{grid-template-columns:1fr 1fr}.profile{grid-template-columns:1fr}.profile-art{min-height:620px}.cta-band{grid-template-columns:1fr}.cta-band a{margin-top:30px;justify-self:start}.catalog-intro{grid-template-columns:1fr;gap:28px}.about-body{grid-template-columns:1fr}.contact-layout,.booking{grid-template-columns:1fr}.map-art{min-height:520px}.detail-title{width:100%}.detail-hero .spine-scene{opacity:.2;width:80%;right:-20%}footer{grid-template-columns:1fr 1fr}footer>div:first-child{grid-column:1/-1}}
@media(max-width:560px){.brand{font-size:20px}.brand-mark{width:36px;height:36px}.hero h1{font-size:57px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-visual{min-height:390px}.spine-scene{width:92%}.availability{bottom:10px;right:20px}.service-grid{grid-template-columns:1fr}.service-card{min-height:340px;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.services-head h2{font-size:47px}.profile-art{min-height:480px}.cta-band h2{font-size:50px}.detail-hero{min-height:560px}.detail-hero h1{font-size:50px}.catalog-list article{grid-template-columns:45px 1fr 20px}.catalog-list article p{grid-column:2/-1}.detail-cta{display:block}.detail-cta .button{margin-top:15px}.about-quote>span{left:-20px}.form-row{grid-template-columns:1fr}footer{grid-template-columns:1fr}.footer-end{gap:20px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}

/* Minimal motion arrow for the method calls to action. */
.path-more{gap:12px;padding:12px 15px 12px 16px;overflow:visible}
.path-arrow{position:relative;width:27px;height:14px;flex:0 0 27px;background:radial-gradient(circle at 3px 7px,var(--aqua) 0 3px,transparent 3.5px);transition:transform .3s ease}
.path-arrow:before{content:"";position:absolute;left:6px;right:1px;top:6px;height:1.5px;background:currentColor;transform-origin:right center;transition:transform .3s ease}
.path-arrow:after{content:"";position:absolute;right:1px;top:2px;width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.path-more:hover .path-arrow,.path-more:focus-visible .path-arrow{transform:translateX(4px)}
.path-more:hover .path-arrow:before,.path-more:focus-visible .path-arrow:before{transform:scaleX(1.12)}
.button:hover .path-arrow,.button:focus-visible .path-arrow{transform:translateX(4px)}
.button:hover .path-arrow:before,.button:focus-visible .path-arrow:before{transform:scaleX(1.12)}
.path-more:focus-visible{outline:2px solid var(--aqua);outline-offset:4px}

/* Persistent anatomical WebGL background, visible through translucent sections. */
body{background:radial-gradient(circle at 70% 20%,#dff4f3 0,#edf5f4 33%,#f8fbfa 72%);background-attachment:fixed}.site-shell{position:relative;isolation:isolate}.spine-background-3d{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.spine-background-3d:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,251,250,.44) 0%,rgba(248,251,250,.18) 45%,rgba(248,251,250,.05) 100%)}.spine-background-3d canvas{display:block;width:100%!important;height:100%!important;filter:drop-shadow(0 34px 54px rgba(22,56,139,.28)) saturate(1.12)}.site-shell main,.site-shell footer,.site-header{position:relative;z-index:1}.hero-copy,.hero-actions,.availability{position:relative;z-index:12}.depth-rings{position:absolute;inset:13%;z-index:4;perspective:900px;transform-style:preserve-3d}.depth-rings i{position:absolute;inset:15%;border:1px solid rgba(50,69,150,.2);border-radius:50%;transform-style:preserve-3d}.depth-rings i:nth-child(1){animation:ring3dA 8s linear infinite}.depth-rings i:nth-child(2){inset:25% 8%;border-color:rgba(85,197,196,.36);animation:ring3dB 10s linear infinite}.depth-rings i:nth-child(3){inset:4% 30%;animation:ring3dC 12s linear infinite}
.hero{background:radial-gradient(circle at 80% 40%,rgba(85,197,196,.2),transparent 30%),linear-gradient(135deg,rgba(248,251,250,.88),rgba(231,241,242,.76))}.manifesto,.catalog,.about,.booking{background:rgba(255,255,255,.83);backdrop-filter:blur(3px)}.services{background:rgba(11,23,55,.88);backdrop-filter:blur(3px)}.profile{background:rgba(238,245,244,.82)}.profile-art{background:linear-gradient(145deg,rgba(213,233,232,.84),rgba(140,202,203,.78))}.cta-band{background:rgba(85,197,196,.9);backdrop-filter:blur(2px)}.detail-hero{background:radial-gradient(circle at 78% 50%,rgba(85,197,196,.2),transparent 34%),linear-gradient(135deg,rgba(249,251,250,.88),rgba(227,240,240,.78))}.contact-panel{background:rgba(255,255,255,.86);backdrop-filter:blur(3px)}.map-art{background:rgba(220,238,237,.82)}footer{background:rgba(11,23,55,.92);backdrop-filter:blur(4px)}
@keyframes ring3dA{to{transform:rotateX(360deg) rotateY(150deg)}}@keyframes ring3dB{to{transform:rotateY(-360deg) rotateX(210deg)}}@keyframes ring3dC{to{transform:rotateZ(360deg) rotateX(65deg)}}
@media(max-width:560px){.spine-background-3d{opacity:.82}.spine-background-3d:after{background:rgba(248,251,250,.2)}.depth-rings{inset:9%}}
@media(prefers-reduced-motion:reduce){.depth-rings i{animation:none!important}}

/* Keep the restored spine clearly visible inside a fixed right-hand lane. */
.spine-background-3d:after{background:linear-gradient(90deg,rgba(248,251,250,.52) 0%,rgba(248,251,250,.22) 50%,rgba(248,251,250,0) 72%)}
.spine-background-3d canvas{filter:drop-shadow(0 34px 54px rgba(22,56,139,.32)) saturate(1.16)}
.hero{background:radial-gradient(circle at 80% 40%,rgba(85,197,196,.16),transparent 30%),linear-gradient(90deg,rgba(248,251,250,.97) 0%,rgba(239,247,247,.86) 56%,rgba(231,241,242,.42) 100%)}
.manifesto,.catalog,.about,.booking{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.87) 61%,rgba(255,255,255,.48) 100%);backdrop-filter:blur(1px)}
.services{background:linear-gradient(90deg,rgba(11,23,55,.97) 0%,rgba(11,23,55,.91) 63%,rgba(11,23,55,.65) 100%);backdrop-filter:blur(1px)}
.profile{background:linear-gradient(90deg,rgba(238,245,244,.93),rgba(238,245,244,.48))}
.cta-band{background:linear-gradient(90deg,rgba(85,197,196,.96),rgba(85,197,196,.72));backdrop-filter:blur(1px)}
.detail-hero{background:radial-gradient(circle at 78% 50%,rgba(85,197,196,.15),transparent 34%),linear-gradient(90deg,rgba(249,251,250,.97) 0%,rgba(238,247,247,.83) 58%,rgba(227,240,240,.43) 100%)}
footer{background:linear-gradient(90deg,rgba(11,23,55,.98),rgba(11,23,55,.76));backdrop-filter:blur(2px)}
@media(max-width:700px){.manifesto,.catalog,.about,.booking{background:rgba(255,255,255,.84)}.services{background:rgba(11,23,55,.9)}}

/* One continuous luminous stage for the spine throughout the page. */
.site-shell:before{content:"";position:fixed;z-index:-2;top:0;right:0;width:46vw;height:100vh;background:radial-gradient(ellipse at 68% 42%,rgba(255,255,255,.94) 0 13%,rgba(184,235,239,.88) 38%,rgba(102,199,211,.68) 67%,rgba(43,105,170,.36) 100%);box-shadow:inset 30px 0 70px rgba(241,250,250,.72);pointer-events:none}
.hero{background:linear-gradient(90deg,rgba(248,251,250,.98) 0%,rgba(239,247,247,.93) 53%,rgba(239,247,247,.28) 69%,transparent 82%)}
.manifesto,.catalog,.about,.booking{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 54%,rgba(255,255,255,.25) 70%,transparent 82%)}
.detail-hero{background:linear-gradient(90deg,rgba(249,251,250,.98) 0%,rgba(238,247,247,.91) 54%,rgba(238,247,247,.24) 70%,transparent 82%)}
.profile{background:linear-gradient(90deg,rgba(238,245,244,.96) 0%,rgba(238,245,244,.88) 51%,rgba(238,245,244,.22) 69%,transparent 82%)}
.cta-band{background:linear-gradient(90deg,rgba(85,197,196,.97) 0%,rgba(85,197,196,.86) 53%,rgba(85,197,196,.2) 70%,transparent 82%)}
.services{background:linear-gradient(90deg,rgba(11,23,55,.98) 0%,rgba(11,23,55,.93) 53%,rgba(11,23,55,.32) 70%,transparent 82%)}
.service-card:last-child{background:rgba(11,23,55,.58);backdrop-filter:blur(7px)}
footer{background:linear-gradient(90deg,rgba(11,23,55,.98) 0%,rgba(11,23,55,.9) 54%,rgba(11,23,55,.28) 71%,transparent 84%)}
@media(max-width:900px){.site-shell:before{width:60vw;opacity:.84}.hero,.manifesto,.catalog,.about,.booking,.detail-hero,.profile,.cta-band,.services,footer{background-size:100% 100%}}
@media(max-width:700px){.site-shell:before{width:100vw;opacity:.58}.spine-background-3d{opacity:.68}.manifesto,.catalog,.about,.booking{background:rgba(255,255,255,.8)}.services{background:rgba(11,23,55,.86)}}

/* Full-site midnight theme, matching the “Ogni movimento” section. */
body{background:#0b1737;color:#f7fbff}
.site-shell:before{width:48vw;background:radial-gradient(ellipse at 68% 42%,rgba(92,232,227,.28) 0 10%,rgba(35,98,151,.25) 36%,rgba(12,38,82,.82) 72%,#0b1737 100%);box-shadow:inset 40px 0 90px rgba(11,23,55,.72)}
.spine-background-3d:after{background:linear-gradient(90deg,rgba(11,23,55,.72) 0%,rgba(11,23,55,.32) 49%,rgba(11,23,55,0) 72%)}
.spine-background-3d canvas{filter:drop-shadow(0 30px 58px rgba(68,232,228,.28)) brightness(1.12) saturate(1.22)}
.site-header{background:rgba(11,23,55,.88);color:#f7fbff;border-bottom-color:rgba(255,255,255,.13)}
.brand small{color:#91a1bd}.brand-mark{border-color:#7bd9db}.brand-mark i{background:#e7fbff}.menu-button span{background:#f7fbff}
.hero,.manifesto,.catalog,.about,.booking,.detail-hero,.profile,.cta-band,.services,footer{background:linear-gradient(90deg,rgba(11,23,55,.99) 0%,rgba(11,23,55,.96) 54%,rgba(11,23,55,.72) 72%,rgba(11,23,55,.42) 100%);color:#f7fbff;backdrop-filter:none}
.hero:before,.detail-hero:before{background-image:linear-gradient(rgba(116,216,219,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(116,216,219,.07) 1px,transparent 1px)}
.hero h1,.detail-hero h1,.manifesto h2,.profile h2,.catalog h2,.about h2,.booking h2,.cta-band h2,.catalog-list h3,.about-body h3{color:#f7fbff}
.hero-copy>p,.manifesto-copy>p,.path p,.services-head p,.service-card p,.profile-copy>p:not(.kicker),.detail-title>p,.catalog-intro>p,.catalog-list p,.about-body>div>p,.milestones p,.contact-panel p,.booking-info>p,.booking .privacy{color:#aebbd0}
.eyebrow,.section-label,.section-label.light,.profile-copy .kicker,.contact-panel span,.contact-mini span{color:#78d9d8}
.manifesto-copy h2 em,.detail-hero h1 span:last-child,.about-quote h2{color:#68d5d3}
.path,.path>div,.catalog-list,.catalog-list article,.milestones,.milestones>div,.contact-panel>div,.contact-mini,.chips span{border-color:rgba(255,255,255,.16)}
.catalog-list article:hover{background:rgba(85,197,196,.1)}
.detail-cta,.contact-panel{background:rgba(18,39,82,.8);color:#f7fbff;border:1px solid rgba(255,255,255,.1)}
.profile-art,.map-art{background:linear-gradient(145deg,rgba(21,51,96,.92),rgba(33,119,137,.62))}
.profile-orbit{border-color:rgba(116,216,219,.32)}.profile-orbit:before{border-color:rgba(116,216,219,.22)}
.cta-band{border-top:1px solid rgba(85,197,196,.35);border-bottom:1px solid rgba(85,197,196,.35)}
.button.dark{background:#55c5c4;color:#0b1737}.text-link{color:#f7fbff}
.availability{background:rgba(10,27,61,.76);border-color:rgba(255,255,255,.2);color:#aebbd0}.availability b{color:#f7fbff}
.booking input,.booking select,.booking textarea{background:rgba(255,255,255,.075);border-bottom-color:rgba(255,255,255,.2);color:#f7fbff}.booking input::placeholder,.booking textarea::placeholder{color:#7f90ad}.booking select option{background:#0b1737;color:#f7fbff}.booking input:focus,.booking select:focus,.booking textarea:focus{background:rgba(85,197,196,.1)}
.map-grid{opacity:.65}.about-quote>span{color:rgba(85,197,196,.08)}
.service-card:last-child{background:rgba(11,23,55,.3)}
@media(max-width:900px){.nav{background:rgba(11,23,55,.97);border-bottom-color:rgba(255,255,255,.13);color:#f7fbff}}
@media(max-width:700px){.site-shell:before{opacity:1}.hero,.manifesto,.catalog,.about,.booking,.detail-hero,.profile,.cta-band,.services,footer{background:rgba(11,23,55,.9)}}

/* Frosted satin treatment for “Competenza clinica. Presenza umana.” */
.profile{background:linear-gradient(115deg,rgba(18,39,79,.94),rgba(14,33,70,.88) 55%,rgba(24,58,92,.82));backdrop-filter:blur(28px) saturate(.78);-webkit-backdrop-filter:blur(28px) saturate(.78);border-top:1px solid rgba(155,239,236,.16);border-bottom:1px solid rgba(155,239,236,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 90px rgba(132,222,222,.055)}
.profile-art{background:linear-gradient(145deg,rgba(24,53,92,.72),rgba(39,125,137,.42));backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-right:1px solid rgba(255,255,255,.09)}
.profile-copy{background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:inset 1px 0 0 rgba(255,255,255,.06)}
@media(max-width:900px){.profile-art{border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}}

/* Aqua CTA matching the progressive, personal treatment message. */
.cta-band{background:#68d5d3;color:#0b1737;border-color:rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.32)}
.cta-band h2,.cta-band p,.cta-band a{color:#0b1737}
.cta-band a{border-bottom-color:rgba(11,23,55,.55)}
@media(max-width:700px){.cta-band{background:#68d5d3}}

/* Frosted aqua glass for the closing home CTA. */
.cta-band{background:linear-gradient(115deg,rgba(104,213,211,.82),rgba(104,213,211,.7) 58%,rgba(122,225,221,.59));backdrop-filter:blur(26px) saturate(.82);-webkit-backdrop-filter:blur(26px) saturate(.82);border-top:1px solid rgba(232,255,255,.48);border-bottom:1px solid rgba(232,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.36),inset 0 0 72px rgba(255,255,255,.08)}
@media(max-width:700px){.cta-band{background:rgba(104,213,211,.77);backdrop-filter:blur(22px) saturate(.82);-webkit-backdrop-filter:blur(22px) saturate(.82)}}

/* Universal two-line hamburger and persistent booking action. */
.header-actions{display:flex;align-items:center;gap:14px;position:relative;z-index:52}
.header-booking-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:15px 20px;background:#68d5d3;color:#0b1737;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:1.6px;box-shadow:0 12px 32px rgba(63,216,211,.18);transition:transform .25s,box-shadow .25s}
.header-booking-cta:hover{transform:translateY(-2px);box-shadow:0 17px 38px rgba(63,216,211,.28)}
.header-booking-cta span{font-size:17px}
.menu-button{display:flex!important;width:48px;height:48px;padding:0 10px;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);cursor:pointer}
.menu-button span{display:block;height:1.5px;margin:0;background:#f7fbff;transition:width .3s,transform .3s;width:28px;transform-origin:center}
.menu-button span+span{width:19px}
.menu-button[aria-expanded="true"] span:first-child{width:28px;transform:translateY(4.75px) rotate(45deg)}
.menu-button[aria-expanded="true"] span+span{width:28px;transform:translateY(-4.75px) rotate(-45deg)}
.site-header .nav{position:fixed;top:92px;right:0;bottom:0;left:auto;width:min(430px,100vw);padding:68px 54px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:rgba(11,23,55,.93);backdrop-filter:blur(30px) saturate(.82);-webkit-backdrop-filter:blur(30px) saturate(.82);border-left:1px solid rgba(255,255,255,.12);border-bottom:0;box-shadow:-24px 30px 70px rgba(0,0,0,.24);transform:translateX(105%);opacity:0;pointer-events:none;transition:transform .42s cubic-bezier(.22,.8,.22,1),opacity .3s;z-index:49}
.site-header .nav.open{transform:translateX(0);opacity:1;pointer-events:auto}
.site-header .nav>a:not(.nav-cta){padding:24px 0;font-size:17px;letter-spacing:1.8px;border-bottom:1px solid rgba(255,255,255,.12)}
.site-header .nav>a:not(.nav-cta):after{bottom:-1px}
@media(max-width:900px){.site-header .nav{top:76px;z-index:49}.header-actions{gap:9px}.header-booking-cta{padding:13px 16px;gap:20px}}
@media(max-width:560px){.header-booking-cta{padding:12px 13px;gap:12px;font-size:9px}.header-booking-cta span{font-size:14px}.menu-button{width:43px;height:43px;padding:0 8px}.site-header .nav{padding:50px 28px}}

/* High-contrast open navigation. */
.site-header{z-index:1000}
.header-actions{z-index:1002}
.site-header .nav{width:min(480px,100vw);z-index:1001;background:linear-gradient(155deg,#132a57 0%,#0b1737 54%,#071128 100%);backdrop-filter:none;-webkit-backdrop-filter:none;border-left:2px solid rgba(104,213,211,.72);box-shadow:-100vw 0 0 100vw rgba(2,7,20,.68),-34px 30px 80px rgba(0,0,0,.48)}
.site-header .nav>a:not(.nav-cta){padding:28px 2px;color:#fff;font-size:clamp(20px,2vw,27px);font-weight:600;letter-spacing:1.2px;border-bottom-color:rgba(255,255,255,.2);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.site-header .nav>a:not(.nav-cta):hover{color:#68d5d3;padding-left:12px}
.site-header .nav>a:not(.nav-cta):after{background:#68d5d3;height:2px}
@media(max-width:560px){.site-header .nav{width:100vw;border-left:0;border-top:1px solid rgba(104,213,211,.5)}.site-header .nav>a:not(.nav-cta){font-size:22px;padding:25px 0}}

/* Fully opaque menu surface. */
.site-header .nav{isolation:isolate;background:#07142f!important;opacity:0}
.site-header .nav:before{content:"";position:absolute;inset:0;z-index:-1;background:#07142f;opacity:1;pointer-events:none}
.site-header .nav.open{background:#07142f!important;opacity:1!important}

/* Let the opaque panel wrap the menu items instead of filling the viewport. */
.site-header .nav{bottom:auto;height:auto;min-height:0;max-height:calc(100vh - 92px);padding-top:34px;padding-bottom:38px;overflow-y:auto}
@media(max-width:900px){.site-header .nav{max-height:calc(100vh - 76px);padding-top:28px;padding-bottom:32px}}

/* Luminous white and sky-blue visual system. */
body{background:radial-gradient(circle at 18% 12%,#fff 0 12%,transparent 38%),radial-gradient(circle at 86% 28%,rgba(86,210,218,.3),transparent 34%),linear-gradient(145deg,#f9fdff 0%,#e7f6fa 48%,#cdebf2 100%);background-attachment:fixed;color:#10224b}
.site-shell:before{width:50vw;background:radial-gradient(ellipse at 68% 40%,rgba(255,255,255,.98) 0 12%,rgba(207,242,246,.92) 38%,rgba(126,213,224,.68) 70%,rgba(76,159,201,.32) 100%);box-shadow:inset 42px 0 100px rgba(255,255,255,.78)}
.spine-background-3d:after{background:linear-gradient(90deg,rgba(250,254,255,.68) 0%,rgba(238,249,251,.3) 50%,rgba(238,249,251,0) 72%)}
.spine-background-3d canvas{filter:drop-shadow(0 32px 54px rgba(24,81,149,.28)) brightness(1.03) saturate(1.13)}
.site-header{background:rgba(247,253,255,.88);color:#10224b;border-bottom-color:rgba(31,79,128,.14);box-shadow:0 10px 35px rgba(37,94,137,.08)}
.brand small{color:#60748d}.brand-mark{border-color:#3c87bf}.brand-mark i{background:#245b9c}.menu-button{background:rgba(255,255,255,.66);border-color:rgba(24,74,124,.2)}.menu-button span{background:#153666}
.hero{background:linear-gradient(100deg,rgba(255,255,255,.96) 0%,rgba(239,249,252,.88) 55%,rgba(217,242,246,.45) 78%,rgba(217,242,246,.18) 100%)}
.manifesto,.catalog,.about,.booking,.detail-hero{background:linear-gradient(105deg,rgba(255,255,255,.92),rgba(230,247,250,.76) 66%,rgba(205,237,243,.42));color:#10224b}
.services{background:linear-gradient(120deg,rgba(214,242,246,.94),rgba(244,252,253,.85) 52%,rgba(187,229,237,.58));color:#10224b;border-top:1px solid rgba(36,101,147,.12);border-bottom:1px solid rgba(36,101,147,.12)}
.profile{background:linear-gradient(115deg,rgba(235,249,251,.94),rgba(199,235,241,.82) 56%,rgba(171,220,230,.68));color:#10224b;border-color:rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 0 90px rgba(255,255,255,.22)}
.profile-art{background:linear-gradient(145deg,rgba(207,239,243,.82),rgba(95,189,202,.5));border-right-color:rgba(31,91,137,.12)}
.profile-copy{background:linear-gradient(135deg,rgba(255,255,255,.48),rgba(255,255,255,.12));box-shadow:inset 1px 0 0 rgba(255,255,255,.56)}
.cta-band{background:linear-gradient(115deg,rgba(106,216,214,.9),rgba(142,228,225,.8) 58%,rgba(202,247,245,.7));color:#10224b;border-color:rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 18px 55px rgba(34,133,157,.12)}
footer{background:linear-gradient(120deg,rgba(218,243,247,.98),rgba(245,252,253,.92) 56%,rgba(188,230,238,.78));color:#10224b;border-top:1px solid rgba(31,92,139,.14)}
.hero h1,.detail-hero h1,.manifesto h2,.services h2,.profile h2,.catalog h2,.about h2,.booking h2,.cta-band h2,.catalog-list h3,.about-body h3{color:#10224b}
.hero-copy>p,.manifesto-copy>p,.path p,.services-head p,.service-card p,.profile-copy>p:not(.kicker),.detail-title>p,.catalog-intro>p,.catalog-list p,.about-body>div>p,.milestones p,.contact-panel p,.booking-info>p,.booking .privacy,footer>div>p{color:#5c7088}
.eyebrow,.section-label,.section-label.light,.profile-copy .kicker,.contact-panel span,.contact-mini span,footer>div>span{color:#278c9e}
.manifesto-copy h2 em,.detail-hero h1 span:last-child,.about-quote h2{color:#2b94b7}
.path,.path>div,.service-grid,.service-card,.catalog-list,.catalog-list article,.milestones,.milestones>div,.contact-panel>div,.contact-mini,.chips span,footer .footer-end{border-color:rgba(24,71,119,.15)}
.service-card:last-child{background:rgba(255,255,255,.46)}.service-card:hover{background:rgba(255,255,255,.66)}.service-glyph{-webkit-text-stroke-color:#2a9fae}.service-card>i{color:#258d9b}
.detail-cta,.contact-panel{background:rgba(255,255,255,.7);color:#10224b;border-color:rgba(41,101,144,.14);box-shadow:0 20px 54px rgba(38,103,145,.08)}
.map-art{background:linear-gradient(145deg,#d9f2f5,#8fd0da)}.map-grid{opacity:.7}
.availability{background:rgba(255,255,255,.8);border-color:rgba(255,255,255,.92);color:#5c7088;box-shadow:0 18px 45px rgba(35,100,144,.12)}.availability b{color:#10224b}
.button.primary{background:linear-gradient(135deg,#2f65b0,#2b91b7);box-shadow:0 16px 36px rgba(37,104,164,.22)}.button.dark{background:#143667;color:#fff}.text-link{color:#143667}
.booking input,.booking select,.booking textarea{background:rgba(255,255,255,.68);border-bottom-color:rgba(30,84,130,.2);color:#10224b}.booking input::placeholder,.booking textarea::placeholder{color:#8192a6}.booking select option{background:#fff;color:#10224b}.booking input:focus,.booking select:focus,.booking textarea:focus{background:#fff}
footer .brand small{color:#60748d}footer a:hover{color:#258d9b}
.site-header .nav,.site-header .nav.open{background:#eaf8fa!important;border-left-color:#65cfd2;box-shadow:-100vw 0 0 100vw rgba(22,49,76,.32),-32px 28px 75px rgba(36,87,126,.22)}
.site-header .nav:before{background:#eaf8fa}.site-header .nav>a:not(.nav-cta){color:#10224b;border-bottom-color:rgba(26,78,122,.16);text-shadow:none}.site-header .nav>a:not(.nav-cta):hover{color:#228ba0}
@media(max-width:700px){body{background:#e9f7fa}.site-shell:before{opacity:.85}.hero,.manifesto,.catalog,.about,.booking,.detail-hero,.services,.profile,footer{background:rgba(239,249,251,.88);color:#10224b}.cta-band{background:rgba(112,216,214,.88)}}

/* Montserrat-only typography and the real professional portrait. */
html,body,button,input,select,textarea{font-family:"Montserrat",Arial,sans-serif}
.professional-photo{width:min(66%,480px);aspect-ratio:.72;border-radius:46% 46% 20% 20%;background:#d9eef1;border:1px solid rgba(255,255,255,.82);box-shadow:0 34px 85px rgba(30,94,132,.24),inset 0 1px 0 rgba(255,255,255,.7)}
.professional-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 24%;filter:saturate(.92) contrast(1.03)}
.professional-photo:after{height:28%;top:8%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.2),transparent);transform:rotate(-18deg)}
@media(max-width:560px){.professional-photo{width:68%;max-width:360px}}

/* Clean rectangular portrait frame. */
.professional-photo{width:min(68%,500px);aspect-ratio:4/5;border-radius:30px}
.professional-photo img{border-radius:inherit}
@media(max-width:560px){.professional-photo{width:76%;border-radius:22px}}

/* Versione statica: sfondo anatomico disegnato dal JavaScript nativo. */
#spine-canvas{display:block;width:100%;height:100%}
.nav a[aria-current="page"]{color:#228ba0}
.nav a[aria-current="page"]:after{right:0!important}
body.menu-open{overflow:hidden}
.form-feedback{min-height:22px;color:#237f91;font-size:12px;line-height:1.5;margin:0}

/* ================================================================
   DYNAMIC FISIO / MEDICAL-TECH EDITION
   Ispirazione: ritmo editoriale, contrasto e griglie di J Medical.
   Palette proprietaria: bianco, azzurro, blu profondo.
   ================================================================ */
:root{
  --jm-navy:#06172b;
  --jm-navy-2:#0a2440;
  --jm-blue:#0e5fa8;
  --jm-sky:#55d6ed;
  --jm-ice:#eaf8fc;
  --jm-white:#fff;
  --jm-line:rgba(82,214,237,.34);
}
html,body,button,input,select,textarea{font-family:"Oxanium","Montserrat",Arial,sans-serif}
body{background:#fff;color:var(--jm-navy);letter-spacing:.01em}
.site-shell{background:#fff;isolation:isolate}
.site-shell:before{width:52vw;background:radial-gradient(ellipse at 72% 38%,rgba(255,255,255,.95) 0 8%,rgba(99,220,236,.38) 31%,rgba(19,102,164,.35) 65%,rgba(6,23,43,.16) 100%);box-shadow:none}
.spine-background-3d{z-index:-1;opacity:.98}
.spine-background-3d:after{background:linear-gradient(90deg,rgba(6,23,43,.92) 0%,rgba(6,23,43,.6) 47%,rgba(6,23,43,.08) 76%,transparent 100%)}
.spine-background-3d canvas{filter:drop-shadow(0 25px 45px rgba(74,220,235,.33)) brightness(1.1) saturate(1.16)}

/* Header: barra tecnica compatta, come una console clinica. */
.site-header{height:82px;padding:0 clamp(22px,3.8vw,64px);position:relative;background:var(--jm-navy);color:#fff;border-bottom:1px solid rgba(255,255,255,.13);box-shadow:none;z-index:1000}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:linear-gradient(90deg,var(--jm-sky) 0 31%,transparent 31% 100%)}
.brand{gap:11px;color:#fff;font-size:22px;font-weight:500;letter-spacing:-.7px;white-space:nowrap}
.brand b{font-style:normal;font-weight:700}
.brand small{color:#72ddec;font-size:6px;letter-spacing:2.4px}
.brand-mark{width:46px;height:46px;border-color:#fff;border-radius:0;transform:none;clip-path:polygon(22% 0,100% 0,78% 100%,0 100%)}
.brand-mark:after{inset:8px;border-color:var(--jm-sky);border-radius:0;clip-path:inherit}
.brand-mark i{background:#fff}
.header-actions{gap:13px}
.header-booking-cta{background:var(--jm-sky);color:var(--jm-navy);padding:13px 24px;border-radius:999px;box-shadow:none;font-size:10px;font-weight:800}
.header-booking-cta:hover{background:#fff;box-shadow:none;transform:none}
.menu-button{border-color:rgba(255,255,255,.25);background:transparent}
.menu-button span{background:#fff}
.site-header .nav,.site-header .nav.open{background:var(--jm-navy-2)!important;border-left:1px solid var(--jm-sky);box-shadow:-100vw 0 0 100vw rgba(0,12,28,.62)}
.site-header .nav:before{background:var(--jm-navy-2)}
.site-header .nav>a:not(.nav-cta){color:#fff;border-bottom-color:rgba(255,255,255,.15);font-weight:600;text-transform:uppercase}
.site-header .nav>a:not(.nav-cta):hover,.site-header .nav a[aria-current="page"]{color:var(--jm-sky)}

@media(min-width:1100px){
  .site-header{gap:42px}
  .site-header .nav,.site-header .nav.open{position:static;inset:auto;transform:none;opacity:1!important;pointer-events:auto;width:auto;height:82px;max-height:none;padding:0;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;background:transparent!important;border:0;box-shadow:none;overflow:visible;flex:1}
  .site-header .nav:before{display:none}
  .site-header .nav>a:not(.nav-cta){padding:0 clamp(18px,2.1vw,34px);height:28px;display:flex;align-items:center;font-size:10px;letter-spacing:1.15px;border-bottom:0;border-right:1px solid rgba(255,255,255,.3)}
  .site-header .nav>a:not(.nav-cta):last-child{border-right:0}
  .site-header .nav>a:not(.nav-cta):after{left:18px;right:100%;bottom:-10px;background:var(--jm-sky)}
  .site-header .nav>a:not(.nav-cta):hover{padding-left:clamp(18px,2.1vw,34px)}
  .menu-button{display:none!important}
}

/* Hero: palcoscenico scuro, griglia scientifica e colonna 3D. */
.hero{min-height:calc(100vh - 82px);grid-template-columns:59% 41%;background:linear-gradient(90deg,rgba(6,23,43,.99) 0%,rgba(6,23,43,.97) 54%,rgba(6,23,43,.7) 73%,rgba(6,23,43,.15) 100%);color:#fff;overflow:hidden}
.hero:before{background-image:linear-gradient(rgba(85,214,237,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(85,214,237,.11) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000 0 72%,transparent);opacity:.68}
.hero:after{content:"MOTION / CLINICAL PATH / 01";position:absolute;left:clamp(24px,7vw,104px);right:0;top:29%;height:1px;padding-top:9px;background:linear-gradient(90deg,var(--jm-sky) 0 24%,rgba(255,255,255,.25) 24% 76%,transparent 76%);color:rgba(255,255,255,.5);font-size:7px;letter-spacing:2.8px}
.hero-copy{padding-top:clamp(94px,10vw,150px);max-width:880px}
.eyebrow{color:var(--jm-sky);font-size:9px;letter-spacing:2.5px}
.eyebrow span{border-radius:0;border-color:rgba(85,214,237,.8);transform:skewX(-12deg)}
.hero h1{color:#fff;text-transform:uppercase;font-size:clamp(58px,6.5vw,104px);line-height:.86;letter-spacing:-.06em;margin-top:54px}
.hero h1 em{color:var(--jm-sky);font-style:normal;font-weight:300}
.hero-copy>p{color:#c4d8e7;max-width:640px;font-size:clamp(15px,1.18vw,18px);line-height:1.75;border-left:3px solid var(--jm-sky);padding-left:22px}
.hero-actions{margin-top:36px}
.button,.nav-cta{font-family:inherit;font-weight:700}
.button.primary{background:var(--jm-sky);color:var(--jm-navy);box-shadow:none;border-radius:999px}
.button.primary:hover{background:#fff}
.text-link{color:#fff;border-bottom-color:var(--jm-sky)}
.hero-visual:before{border-color:rgba(85,214,237,.34);box-shadow:0 0 0 46px rgba(85,214,237,.035),0 0 0 92px rgba(85,214,237,.025)}
.depth-rings i{border-color:rgba(85,214,237,.35)}
.availability{bottom:9%;right:6%;background:rgba(6,23,43,.86);border:1px solid rgba(85,214,237,.5);color:#8fb1c8;box-shadow:none;padding:18px 23px}
.availability b{color:#fff}
.availability i{background:var(--jm-sky);box-shadow:0 0 12px var(--jm-sky)}
.scroll-note{color:rgba(255,255,255,.62)}

/* Sezioni bianche: grandi titoli tecnici e linee di scansione. */
.manifesto,.catalog,.about,.booking{background:#fff;color:var(--jm-navy);position:relative}
.manifesto:before,.catalog:before,.about:before,.booking:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 8%,rgba(10,94,154,.055) 8% 8.08%,transparent 8.08% 92%,rgba(10,94,154,.055) 92% 92.08%,transparent 92.08%);pointer-events:none}
.section-label,.section-label.light{color:var(--jm-blue);font-size:9px;letter-spacing:2.5px}
.manifesto-copy h2,.services h2,.profile h2,.catalog h2,.about h2,.booking h2{font-weight:600;text-transform:uppercase;letter-spacing:-.055em;color:var(--jm-navy)}
.manifesto-copy h2 em{font-style:normal;color:var(--jm-blue);font-weight:300}
.manifesto-copy>p,.path p,.catalog-intro>p,.catalog-list p,.about-body>div>p,.milestones p,.booking-info>p,.booking .privacy{color:#526b80}
.path{border-top:3px solid var(--jm-navy)}
.path>div{position:relative;border-color:#c7dbe7}
.path>div:after{content:"";position:absolute;top:-3px;left:0;width:52px;height:3px;background:var(--jm-sky)}
.path b{color:var(--jm-blue);font-style:normal;font-weight:700}
.path span{font-size:13px;color:var(--jm-navy)}

/* Servizi: pannello azzurro chiaro, card da portale medicale. */
.services{background:linear-gradient(135deg,#dff7fb 0%,#f7fdff 58%,#c8edf4 100%);color:var(--jm-navy);position:relative;border:0;padding-top:clamp(75px,8vw,120px)}
.services:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(14,95,168,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(14,95,168,.07) 1px,transparent 1px);background-size:94px 94px;pointer-events:none}
.services-head{position:relative}
.services-head p,.service-card p{color:#526b80}
.service-grid{position:relative;background:#fff;border:1px solid rgba(14,95,168,.22);box-shadow:0 28px 80px rgba(5,63,105,.12)}
.service-card{border-color:#c7dbe7;min-height:420px;background:#fff}
.service-card:last-child{background:#fff}
.service-card:hover{background:var(--jm-navy);color:#fff;transform:none}
.service-card:hover p{color:#bed5e3}
.service-card>span,.service-card>i{color:var(--jm-blue)}
.service-card:hover>span,.service-card:hover>i{color:var(--jm-sky)}
.service-glyph{-webkit-text-stroke-color:var(--jm-blue)}
.service-card:hover .service-glyph{-webkit-text-stroke-color:var(--jm-sky)}

/* Professionista: editoriale scuro con foto clinica. */
.profile{background:var(--jm-navy);color:#fff;border:0;box-shadow:none;min-height:760px}
.profile-art{background:linear-gradient(145deg,#dff7fb,#84d7e5);border:0}
.profile-art:before{content:"/ CHI SONO";position:absolute;top:28px;left:28px;color:var(--jm-blue);font-size:7px;letter-spacing:2.3px;z-index:4}
.profile-copy{background:linear-gradient(135deg,rgba(255,255,255,.045),transparent);box-shadow:none}
.profile-copy .kicker,.profile-copy .section-label{color:var(--jm-sky)}
.profile h2{color:#fff}
.profile h2 em{color:var(--jm-sky);font-style:normal;font-weight:300}
.hero h1 em,.manifesto-copy h2 em,.profile h2 em{font-family:var(--serif);font-style:italic;font-weight:400}
.profile-copy>p:not(.kicker){color:#b9cede}
.button.dark{background:#fff;color:var(--jm-navy);border-radius:999px}
.button.dark:hover{background:var(--jm-sky)}
.professional-photo{border-radius:0;clip-path:polygon(7% 0,100% 0,93% 100%,0 100%);box-shadow:24px 24px 0 rgba(6,23,43,.12)}

/* CTA e footer. */
.cta-band{background:var(--jm-sky);color:var(--jm-navy);border:0;box-shadow:none;backdrop-filter:none;position:relative;overflow:hidden}
.cta-band:after{content:"";position:absolute;width:45vw;height:45vw;right:-14vw;top:-22vw;border:1px solid rgba(6,23,43,.26);border-radius:50%;box-shadow:0 0 0 60px rgba(6,23,43,.035),0 0 0 120px rgba(6,23,43,.025)}
.cta-band h2{color:var(--jm-navy);text-transform:uppercase;font-weight:700;position:relative;z-index:1}
.cta-band a,.cta-band p{position:relative;z-index:1}
.cta-band{background:#eef1f3;backdrop-filter:none;-webkit-backdrop-filter:none;border-top:1px solid rgba(6,23,43,.1);border-bottom:1px solid rgba(6,23,43,.13);box-shadow:none}
.cta-band:after{display:none}
.cta-band:before{display:none}
.cta-band .cta-action{justify-self:end;align-self:center;display:inline-flex;align-items:center;gap:12px;margin:0;padding:12px 15px 12px 16px;border:1px solid #0a5e9a;background:#0a5e9a;color:#fff;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;box-shadow:0 10px 28px rgba(10,94,154,.22)}
.cta-band .cta-action:hover,.cta-band .cta-action:focus-visible{background:#073f69;border-color:#073f69;color:#fff;transform:translateY(-2px)}
.cta-band .cta-action:focus-visible{outline:2px solid #fff;outline-offset:4px}
footer{background:var(--jm-navy);color:#fff;border:0;backdrop-filter:none}
footer>div>p{color:#9eb8ca}
footer>div>span{color:var(--jm-sky)}
footer .footer-end{border-color:rgba(255,255,255,.18)}

/* Pagine interne: stesso linguaggio, hero più compatta. */
.detail-hero{min-height:620px;background:linear-gradient(90deg,rgba(6,23,43,.99) 0%,rgba(6,23,43,.96) 56%,rgba(6,23,43,.66) 76%,rgba(6,23,43,.12));color:#fff}
.detail-hero:before{background-image:linear-gradient(rgba(85,214,237,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(85,214,237,.11) 1px,transparent 1px);background-size:72px 72px}
.detail-hero:after{content:"DYNAMIC FISIO / CLINICAL DEPARTMENT";position:absolute;left:clamp(24px,7vw,104px);right:0;bottom:48px;border-top:1px solid rgba(85,214,237,.48);padding-top:10px;color:rgba(255,255,255,.45);font-size:7px;letter-spacing:2.6px}
.detail-hero h1{color:#fff;text-transform:uppercase;font-size:clamp(50px,5.5vw,86px)}
.detail-hero h1 span:last-child{color:var(--jm-sky);font-style:normal;font-weight:300}
.detail-title>p{color:#bed1df;border-left:3px solid var(--jm-sky);padding-left:20px}
.catalog-intro{border-top:3px solid var(--jm-navy);padding-top:30px}
.catalog-list{border-top:1px solid #bbd3df}
.catalog-list article{border-color:#c8dce6}
.catalog-list article:hover{background:var(--jm-ice);padding-left:15px}
.catalog-list article>span{color:var(--jm-blue);font-style:normal;font-weight:700}
.catalog-list h3{font-weight:600}
.detail-cta,.contact-panel{background:var(--jm-ice);border:1px solid #bed9e5;box-shadow:none;color:var(--jm-navy)}
.about-quote h2{color:var(--jm-blue);font-style:normal}
.about-quote>span{color:rgba(85,214,237,.25)}
.chips span{border-color:#b9d5e2;border-radius:0;background:var(--jm-ice)}
.contact-layout{background:var(--jm-ice)}
.map-art{background:linear-gradient(145deg,#dff8fb,#76cede)}
.map-pin{background:var(--jm-navy)}
.contact-panel span,.contact-mini span{color:var(--jm-blue)}
.booking input,.booking select,.booking textarea{background:#f1f9fc;color:var(--jm-navy);border-bottom:2px solid #c2dce7}
.booking input:focus,.booking select:focus,.booking textarea:focus{background:#e5f7fb;border-color:var(--jm-blue)}
.booking select option{background:#fff;color:var(--jm-navy)}

@media(max-width:1099px){
  .site-header{height:76px}
  .site-header .nav{top:76px}
  .hero{min-height:calc(100vh - 76px)}
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;background:rgba(6,23,43,.9)}
  .hero-copy{padding-bottom:60px}
  .hero-visual{min-height:480px}
  .site-shell:before{width:100vw;opacity:.75}
  .detail-hero{background:rgba(6,23,43,.9)}
  .profile{grid-template-columns:1fr}
  .cta-band .cta-action{justify-self:start;margin-top:30px}
}
@media(max-width:560px){
  .brand{font-size:18px}.brand-mark{width:39px;height:39px}
  .header-booking-cta{padding:11px 14px}
  .hero h1{font-size:51px}
  .hero:after{top:31%;font-size:6px}
  .manifesto-copy h2,.services h2,.profile h2,.catalog h2,.about h2,.booking h2{font-size:40px}
  .service-card{min-height:340px}
  .detail-hero h1{font-size:44px}
}

/* Hero opening sequence: every textual element enters in a controlled rhythm. */
.js-intro-active .hero-copy>.eyebrow,
.js-intro-active .hero-copy>h1,
.js-intro-active .hero-copy>p,
.js-intro-active .hero-actions>a,
.js-intro-active .availability,
.js-intro-active .scroll-note,
.js-intro-active .detail-title>.eyebrow,
.js-intro-active .detail-title>h1,
.js-intro-active .detail-title>p{animation:none;opacity:0}
.hero-copy.reveal{animation:none}
.hero-copy>.eyebrow,
.hero-copy>h1,
.hero-copy>p,
.hero-actions>a,
.availability,
.scroll-note,
.detail-title>.eyebrow,
.detail-title>h1,
.detail-title>p{
  opacity:0;
  will-change:transform,opacity,clip-path,filter;
  animation:heroTextReveal .85s cubic-bezier(.2,.75,.2,1) forwards;
}
.hero-copy>.eyebrow{animation-delay:.12s}
.hero-copy>h1{animation-name:heroTitleReveal;animation-duration:1.05s;animation-delay:.25s}
.hero-copy>p{animation-delay:.48s}
.hero-actions>a:first-child{animation-delay:.68s}
.hero-actions>a:last-child{animation-delay:.82s}
.availability{animation-delay:.92s}
.scroll-note{animation-delay:1.06s}
.detail-title>.eyebrow{animation-delay:.12s}
.detail-title>h1{animation-name:heroTitleReveal;animation-duration:1.05s;animation-delay:.27s}
.detail-title>p{animation-delay:.52s}
.hero:before{transform-origin:center;animation:heroGridCompose 1.45s cubic-bezier(.16,.82,.18,1) .12s both}
.hero:after{transform-origin:left center;animation:heroScanLine 1.55s cubic-bezier(.16,.82,.18,1) .48s both}
.hero-visual:before{animation:heroOrbitCompose 1.6s cubic-bezier(.16,.82,.18,1) .62s both}
.depth-rings{animation:heroRingsCompose 1.65s cubic-bezier(.16,.82,.18,1) .82s both}

@keyframes heroTextReveal{
  0%{opacity:0;transform:translate3d(0,28px,0);filter:blur(7px)}
  45%{filter:blur(0)}
  100%{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}
}
@keyframes heroTitleReveal{
  0%{opacity:0;transform:translate3d(0,54px,0);clip-path:inset(0 0 100% 0);filter:blur(4px)}
  100%{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0 0 0 0);filter:blur(0)}
}
@keyframes heroScanLine{
  0%{opacity:0;transform:scaleX(0)}
  35%{opacity:1}
  100%{opacity:1;transform:scaleX(1)}
}
@keyframes heroGridCompose{
  0%{opacity:0;transform:scale(1.06);filter:blur(4px)}
  100%{opacity:.68;transform:scale(1);filter:blur(0)}
}
@keyframes heroOrbitCompose{
  0%{opacity:0;transform:rotate(-18deg) scale(.62)}
  100%{opacity:1;transform:rotate(-18deg) scale(1)}
}
@keyframes heroRingsCompose{
  0%{opacity:0;transform:scale(.72) rotate(-8deg);filter:blur(8px)}
  100%{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}
}

@media(prefers-reduced-motion:reduce){
  .hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>p,.hero-actions>a,.availability,.scroll-note,.detail-title>.eyebrow,.detail-title>h1,.detail-title>p{opacity:1;transform:none;clip-path:none;filter:none}
}

/* Esperienze fisioterapiche: carousel editoriale a pannello diviso. */
.services-carousel-section{padding:clamp(76px,8vw,120px) clamp(24px,7vw,104px) 0;overflow:visible;background:linear-gradient(135deg,#dff7fb 0%,#f7fdff 58%,#c8edf4 100%);color:var(--jm-navy)}
.services-carousel-section .services-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:7vw;align-items:end;margin:48px 0 64px}
.services-carousel-section .services-head p{max-width:480px;margin:0;line-height:1.8;color:#526b80}
.experience-scroll-stage{position:relative;width:100vw;height:100vh;margin-left:calc(50% - 50vw)}
.experience-carousel{position:relative;height:100%;background:#fff;border-top:3px solid var(--jm-navy);box-shadow:0 30px 85px rgba(5,63,105,.16);outline:none;overflow:hidden}
.experience-carousel:focus-visible{box-shadow:0 0 0 3px var(--jm-sky),0 30px 85px rgba(5,63,105,.16)}
.experience-viewport{height:100%;overflow:hidden;touch-action:pan-y}
.experience-track{display:flex;height:100%;transform:translate3d(0,0,0);transition:transform .62s cubic-bezier(.2,.76,.2,1);will-change:transform}
.experience-slide{display:grid;grid-template-columns:1fr 1fr;flex:0 0 100%;min-width:0;min-height:0;height:100%;background:#fff}
.experience-copy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(48px,6vw,86px);overflow:hidden}
.experience-copy:before{content:"";position:absolute;left:0;top:0;width:72px;height:3px;background:var(--jm-sky)}
.experience-copy:after{content:"DYNAMIC / EXPERIENCE";position:absolute;right:26px;top:26px;color:#8ba8ba;font-size:7px;letter-spacing:2.2px;writing-mode:vertical-rl}
.experience-index{display:flex;align-items:baseline;gap:7px;margin-bottom:28px;color:var(--jm-blue)}
.experience-index span{font-size:15px;font-weight:800;letter-spacing:1px}
.experience-index i{font-style:normal;font-size:9px;letter-spacing:1.5px;color:#83a2b6}
.experience-slide h3{margin:0;color:var(--jm-blue);font-size:clamp(46px,5vw,76px);font-weight:650;line-height:.91;letter-spacing:-.055em;text-transform:uppercase}
.experience-slide p{max-width:440px;margin:30px 0 34px;color:#526b80;font-size:14px;line-height:1.8}
.experience-link{display:inline-flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--jm-blue);color:var(--jm-blue);font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}
.experience-link .path-arrow{transition:transform .3s ease}
.experience-link:hover .path-arrow,.experience-link:focus-visible .path-arrow{transform:translateX(4px)}
.experience-link:focus-visible{outline:2px solid var(--jm-sky);outline-offset:5px}
.experience-media{position:relative;min-width:0;margin:0;overflow:hidden;background:#b9dfe8}
.experience-media:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(6,23,43,.16),transparent 42%),linear-gradient(0deg,rgba(6,23,43,.15),transparent 35%);pointer-events:none}
.experience-media img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04);transform:scale(1.055);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.experience-slide[aria-hidden="false"] .experience-media img{transform:scale(1.015)}
.experience-controls{position:absolute;left:calc(50% - 42px);right:20px;bottom:20px;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}
.experience-progress{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:5px;background:var(--jm-sky);color:var(--jm-navy);box-shadow:0 12px 28px rgba(6,23,43,.18);font-size:13px;font-weight:800;letter-spacing:1px}
.experience-progress i{font-style:normal;font-weight:400;opacity:.55}
.experience-buttons{display:flex;gap:10px;pointer-events:auto}
.carousel-nav{width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(10,94,154,.3);background:rgba(255,255,255,.94);color:var(--jm-blue);cursor:pointer;transition:background .25s,color .25s,transform .25s}
.carousel-nav:hover{background:var(--jm-navy);color:#fff;transform:translateY(-2px)}
.carousel-nav:disabled{opacity:.38;cursor:default;transform:none;background:rgba(255,255,255,.8);color:var(--jm-blue)}
.carousel-nav:focus-visible{outline:2px solid var(--jm-sky);outline-offset:3px}
.carousel-prev .path-arrow{transform:rotate(180deg)}
.carousel-prev:hover .path-arrow,.carousel-prev:focus-visible .path-arrow{transform:rotate(180deg) translateX(4px)}
.carousel-next:hover .path-arrow,.carousel-next:focus-visible .path-arrow{transform:translateX(4px)}

@media(max-width:900px){
  .services-carousel-section .services-head{grid-template-columns:1fr;gap:24px}
}
@media(max-width:700px){
  .services-carousel-section{overflow:hidden;padding-bottom:clamp(80px,9vw,120px)}
  .experience-scroll-stage{width:100%;height:auto;margin-left:0}
  .experience-carousel{position:relative;top:auto;height:auto;overflow:hidden}
  .experience-viewport,.experience-track{height:auto}
  .experience-track{transition:transform .58s cubic-bezier(.2,.76,.2,1)}
  .experience-slide{grid-template-columns:1fr;min-height:0;height:auto}
  .experience-copy{min-height:500px;padding:58px clamp(28px,8vw,64px) 100px}
  .experience-media{height:420px}
  .experience-controls{left:24px;right:24px;bottom:20px}
}
@media(max-width:560px){
  .services-carousel-section{padding-left:18px;padding-right:18px}
  .services-carousel-section .services-head{margin:38px 0 46px}
  .experience-copy{min-height:440px;padding:48px 26px 94px}
  .experience-copy:after{display:none}
  .experience-slide h3{font-size:42px}
  .experience-slide p{margin:24px 0 26px;font-size:13px}
  .experience-media{height:300px}
  .experience-progress{width:62px;height:62px;font-size:11px}
  .experience-controls{left:16px;right:16px;bottom:16px}
  .carousel-nav{width:46px;height:46px}
}

@media(prefers-reduced-motion:reduce){
  .experience-track{transition:transform .32s ease!important}
  .experience-media img,.carousel-nav,.experience-link .path-arrow{transition:none!important}
}

/* Official Dynamic Fisio wordmark. */
.brand-logo{display:block;width:200px;max-width:100%;height:auto;object-fit:contain}
footer .brand-logo{width:240px}
@media(max-width:560px){
  .site-header .brand-logo{width:165px}
  footer .brand-logo{width:210px}
}

/* Unified CTA arrows and larger primary pathway actions. */
.hero-text-action{display:inline-flex;align-items:center;gap:12px}
.hero-text-action:hover .path-arrow,.hero-text-action:focus-visible .path-arrow{transform:translateX(4px)}
.hero-text-action:hover .path-arrow:before,.hero-text-action:focus-visible .path-arrow:before{transform:scaleX(1.12)}
.button.primary .path-arrow{background:radial-gradient(circle at 3px 7px,var(--jm-blue) 0 3px,transparent 3.5px)}
.path .path-more,.cta-band .cta-action{gap:15px;padding:16px 21px;font-size:11px;letter-spacing:1.35px}

/* Homepage reading size requested for actions and supporting copy. */
.hero-actions .button,.hero-actions .text-link,.path .path-more,.experience-link,.profile-copy .button,.cta-band .cta-action{font-size:16px}
.hero-copy>p,.manifesto-copy>p,.services-head p,.experience-slide p,.profile-copy>p:not(.kicker),.path p{font-size:16px}
.path p{max-width:90%}

/* Equal split for the professional section, matching the carousel slides. */
.profile{grid-template-columns:1fr 1fr}
.profile-art,.profile-copy{min-width:0}
@media(max-width:900px){.profile{grid-template-columns:1fr}}

/* Use the page content width for an exact shared 50% divider. */
@media(min-width:701px){
  .services-carousel-section{--carousel-gutter:clamp(24px,7vw,104px)}
  .experience-scroll-stage{width:calc(100% + var(--carousel-gutter) + var(--carousel-gutter));margin-left:calc(0px - var(--carousel-gutter))}
}

/* Consistent label size across every site button. */
.button,.nav-cta,.header-booking-cta,.path-more,.experience-link,.hero-text-action,.booking button{font-size:14px!important}
.button span,.nav-cta span,.header-booking-cta span,.path-more span,.experience-link span,.hero-text-action span,.booking button span{font-size:14px!important}

.path>div>span{font-size:18px}

.footer-tagline>span{display:block;white-space:nowrap}

/* Footer typography: primary copy and section titles. */
footer>div:not(.footer-end)>p{font-size:16px;color:#fff}
footer>div:not(.footer-end)>span{font-size:16px;color:var(--jm-sky)}

/* Keep the clinical scan line in flow so the hero title sits below it. */
.hero:after{display:none}
.hero-scanline{position:relative;height:24px;margin-top:38px;border-top:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.5);font-size:7px;letter-spacing:2.8px;transform-origin:left center;animation:heroScanLine 1.55s cubic-bezier(.16,.82,.18,1) .48s both}
.hero-scanline:before{content:"";position:absolute;left:0;top:-2px;width:32%;height:3px;background:var(--jm-sky)}

/* Rectangular action language across the whole site. */
.button,.nav-cta,.header-booking-cta,.path-more,.experience-link,.carousel-nav,.menu-button{border-radius:0!important}
.hero-scanline span{display:block;padding-top:9px}
.hero-copy .hero-scanline+h1{margin-top:34px}

/* Coordinated opening-hours cards in the hero visual. */
.availability-group{position:absolute;inset:0 0 0 59%;z-index:12;pointer-events:none}
.availability-group .availability{position:absolute;inset:auto;width:min(220px,40%);padding:14px 18px;background:rgba(6,23,43,.62);border:1px solid rgba(85,214,237,.36);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);box-shadow:0 12px 34px rgba(1,12,29,.14);pointer-events:auto}
.availability-group .availability b{display:block;margin-left:18px;letter-spacing:.35px;line-height:1.65}
.availability-group .availability a{color:inherit}
.availability-group .availability-contact i{background:#fff;box-shadow:0 0 12px rgba(255,255,255,.72)}
.availability-group .availability-contact{width:min(280px,50%)}
.availability-group .availability:nth-child(1){top:13%;right:4%}
.availability-group .availability:nth-child(2){top:40%;left:4%;animation-delay:1.02s}
@media(max-width:900px){
  .hero{display:block;background:linear-gradient(135deg,rgba(6,23,43,.88),rgba(6,23,43,.68))}
  .hero-copy{padding-bottom:28px}
  .hero-visual{display:none!important}
  .availability-group{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0 clamp(22px,7vw,64px) 58px;pointer-events:auto}
  .availability-group .availability,.availability-group .availability-contact{position:relative;inset:auto;width:auto;min-width:0;padding:13px 14px}
  .availability-group .availability b{margin:5px 0 0;line-height:1.55}
  .availability-group .availability-contact b{overflow-wrap:anywhere}
  .spine-background-3d{opacity:1}
}
@media(max-width:560px){
  .availability-group{margin-left:18px;margin-right:18px;gap:8px}
  .availability-group .availability,.availability-group .availability-contact{padding:11px 10px}
  .availability-group .availability b{font-size:10px}
}

/* Hamburger navigation on every viewport. */
.menu-button{display:flex!important;width:48px;height:48px;padding:0 9px;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.25);background:transparent;cursor:pointer}
.menu-button span{display:block;height:1.5px;margin:0;background:#fff;transition:width .3s,transform .3s;width:30px;transform-origin:center}
.menu-button span+span{width:20px}
.menu-button[aria-expanded="true"] span:first-child{width:30px;transform:translateY(4.75px) rotate(45deg)}
.menu-button[aria-expanded="true"] span+span{width:30px;transform:translateY(-4.75px) rotate(-45deg)}
.site-header .nav,.site-header .nav.open{position:fixed;inset:82px 0 auto auto;width:min(480px,100vw);height:auto;max-height:calc(100vh - 82px);padding:34px 54px 38px;display:flex;flex:none;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;overflow-y:auto;background:var(--jm-navy-2)!important;border:0;border-left:1px solid var(--jm-sky);box-shadow:-100vw 0 0 100vw rgba(0,12,28,.62),-34px 30px 80px rgba(0,0,0,.42);transition:transform .42s cubic-bezier(.22,.8,.22,1),opacity .3s;z-index:1001}
.site-header .nav{transform:translateX(105%);opacity:0!important;pointer-events:none}
.site-header .nav.open{transform:translateX(0);opacity:1!important;pointer-events:auto}
.site-header .nav:before{display:block;background:var(--jm-navy-2)}
.site-header .nav>a:not(.nav-cta){display:block;height:auto;padding:25px 2px;color:#fff;font-size:clamp(20px,2vw,27px);font-weight:600;letter-spacing:1.2px;border:0;border-bottom:1px solid rgba(255,255,255,.16)}
.site-header .nav>a:not(.nav-cta):last-child{border-bottom:0}
.site-header .nav>a:not(.nav-cta):hover{padding-left:12px;color:var(--jm-sky)}
.header-booking-cta .path-arrow{background:radial-gradient(circle at 3px 7px,var(--jm-blue) 0 3px,transparent 3.5px)}
.header-booking-cta:hover .path-arrow,.header-booking-cta:focus-visible .path-arrow{transform:translateX(4px)}
.header-booking-cta:hover .path-arrow:before,.header-booking-cta:focus-visible .path-arrow:before{transform:scaleX(1.12)}
@media(max-width:1099px){.site-header .nav,.site-header .nav.open{top:76px;max-height:calc(100vh - 76px)}}
@media(max-width:560px){.site-header .nav,.site-header .nav.open{width:100vw;padding:28px}.menu-button{width:43px;height:43px}}

/* Treatment slides retain the exact home-carousel height; long copy opens in a modal. */
.treatments-carousel-section .experience-index{margin-bottom:20px}
.treatments-carousel-section .experience-slide h3{font-size:clamp(34px,3.7vw,58px);line-height:.94}
.treatments-carousel-section .experience-description{position:relative;width:100%;max-width:590px;max-height:clamp(145px,21vh,215px);margin:23px 0 12px;overflow:hidden}
.treatments-carousel-section .experience-description.is-overflowing{-webkit-mask-image:linear-gradient(#000 0,#000 68%,transparent 100%);mask-image:linear-gradient(#000 0,#000 68%,transparent 100%)}
.treatments-carousel-section .experience-description p{max-width:none;margin:0 0 14px;color:#526b80;font-size:clamp(13px,1vw,15px)!important;line-height:1.62}
.treatments-carousel-section .experience-description p:last-child{margin-bottom:0}
.treatments-carousel-section .experience-description ul{margin:0;padding:0 0 0 20px;color:#526b80;font-size:clamp(13px,1vw,15px);line-height:1.62}
.treatments-carousel-section .experience-description li+li{margin-top:6px}
.experience-more{display:inline-flex;align-items:center;padding:8px 0;margin:0 0 6px;border:0;border-bottom:1px solid var(--jm-blue);background:transparent;color:var(--jm-blue);font:inherit;font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;cursor:pointer}
.experience-more[hidden]{display:none!important}
.experience-more:hover,.experience-more:focus-visible{color:var(--jm-navy)}
.experience-more:focus-visible{outline:2px solid var(--jm-sky);outline-offset:4px}
.treatments-carousel-section .experience-link{margin-top:4px}

.treatment-modal[hidden]{display:none!important}
body.treatment-modal-open{overflow:hidden}
.treatment-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:clamp(16px,4vw,48px)}
.treatment-modal-backdrop{position:absolute;inset:0;background:rgba(2,15,33,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.treatment-modal-dialog{position:relative;width:min(900px,100%);max-height:calc(100vh - clamp(32px,8vw,96px));overflow-y:auto;padding:clamp(38px,6vw,76px);background:#fff;border-top:4px solid var(--jm-sky);box-shadow:0 35px 100px rgba(0,0,0,.38);color:var(--jm-navy);outline:none}
.treatment-modal-close{position:absolute;right:20px;top:18px;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(10,94,154,.3);background:#fff;color:var(--jm-blue);font-size:30px;font-weight:300;line-height:1;cursor:pointer}
.treatment-modal-close:hover,.treatment-modal-close:focus-visible{background:var(--jm-navy);color:#fff}
.treatment-modal-close:focus-visible{outline:2px solid var(--jm-sky);outline-offset:3px}
.treatment-modal-dialog h2{max-width:720px;margin:20px 0 30px;color:var(--jm-blue);font-size:clamp(38px,6vw,72px);line-height:.94;letter-spacing:-.045em;text-transform:uppercase}
.treatment-modal-copy{max-width:760px;color:#526b80;font-size:16px;line-height:1.75}
.treatment-modal-copy p{margin:0 0 20px}
.treatment-modal-copy ul{margin:0 0 24px;padding-left:24px}
.treatment-modal-copy li+li{margin-top:8px}
.treatment-modal-dialog .button{margin-top:16px}

@media(max-width:700px){
  .treatments-carousel-section .experience-copy{height:500px;min-height:500px;padding:40px clamp(28px,8vw,64px) 82px;overflow:hidden}
  .treatments-carousel-section .experience-description{max-height:120px;margin:18px 0 8px}
  .treatments-carousel-section .experience-slide h3{font-size:clamp(35px,10vw,48px)}
  .treatments-carousel-section .experience-description p{font-size:14px!important;line-height:1.65}
  .treatments-carousel-section .experience-description ul{font-size:14px;line-height:1.65}
  .treatments-carousel-section .experience-more{padding:6px 0;margin-bottom:3px}
  .treatments-carousel-section .experience-link{padding:9px 0}
  .treatment-modal-dialog{padding:58px 24px 34px}
  .treatment-modal-close{right:12px;top:10px}
  .treatment-modal-dialog h2{font-size:clamp(34px,10vw,50px)}
  .treatment-modal-copy{font-size:15px;line-height:1.7}
}
@media(max-width:560px){
  .treatments-carousel-section .experience-copy{height:440px;min-height:440px;padding:32px 26px 70px}
  .treatments-carousel-section .experience-index{margin-bottom:14px}
  .treatments-carousel-section .experience-slide h3{font-size:34px}
  .treatments-carousel-section .experience-description{max-height:105px;margin-top:15px}
}

/* Colore condiviso dei titoli sulle sezioni chiare. */
.manifesto-copy h2,
.services-head h2,
.catalog-intro h2,
.catalog-list h3,
.about-body h3,
.booking-info h2,
.cta-band h2{color:#0a2440}
