/* Layout and motion faithfully ported from the supplied Therapeutica site. Fonts served locally. */

.pd-hero{top:0px;left:0;width:1440px;height:609px;overflow:hidden;background:#0e1713;}
.pd-hero video{width:100%;height:100%;object-fit:cover;object-position:center 80%;opacity:.85;}
.pd-hero img{width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.9;}
.pd-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(146,188,165,.34),rgba(146,188,165,0) 42%),linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,0) 35%);pointer-events:none;}
.pd-hero-label{position:absolute;left:50%;top:270px;transform:translateX(-50%);width:90%;text-align:center;font-family:var(--sans);font-weight:500;font-size:24px;letter-spacing:6px;text-transform:uppercase;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.6);z-index:2;line-height:1.4;}
.pd-body{top:609px;left:0;width:1440px;background:#000;padding-bottom:1px;}
.pd-title{position:absolute;left:88px;top:77px;width:300px;font-family:var(--sans);font-weight:700;font-size:24px;letter-spacing:6px;text-transform:uppercase;color:var(--sage);line-height:1.35;}
.pd-desc{position:absolute;left:422px;top:70px;width:391px;font-family:var(--sans);font-weight:300;font-size:16px;letter-spacing:1.6px;line-height:1.6;color:#fff;}
.pd-desc.wide{width:820px;}
.pd-desc b{font-weight:700;}
.pd-list-lead{position:absolute;left:893px;top:70px;width:435px;font-family:var(--sans);font-weight:300;font-size:16px;letter-spacing:1.6px;line-height:1.6;color:#fff;}
.pd-acc{position:absolute;left:893px;top:115px;width:460px;}
.pd-item{border-top:1px solid rgba(255,255,255,.18);}
.pd-item:last-child{border-bottom:1px solid rgba(255,255,255,.18);}
.pd-item-h{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 4px;cursor:pointer;user-select:none;}
.pd-item-h span.t{font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:2.6px;text-transform:uppercase;color:#fff;}
.pd-item-h .plus{position:relative;width:16px;height:16px;flex:0 0 auto;}
.pd-item-h .plus::before,.pd-item-h .plus::after{content:'';position:absolute;background:var(--sage);transition:transform .35s cubic-bezier(.6,.2,.2,1);}
.pd-item-h .plus::before{left:0;top:7px;width:16px;height:1.5px;}
.pd-item-h .plus::after{left:7px;top:0;width:1.5px;height:16px;}
.pd-item.open .plus::after{transform:rotate(90deg) scaleY(0);}
.pd-item-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.65,0,.35,1);}
.pd-item.open .pd-item-panel{grid-template-rows:1fr;}
.pd-item-panel-inner{overflow:hidden;}
.pd-item-panel p{margin:0 4px 20px;font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.65;color:rgba(255,255,255,.75);letter-spacing:.2px;max-width:420px;}
.pd-item-panel ul{margin:0 4px 20px;padding-left:18px;}
.pd-item-panel li{font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.7;color:rgba(255,255,255,.75);}



.contatti-hero{top:0px;left:0;width:1440px;height:608px;overflow:hidden;background:#05070a;}
.contatti-hero .hero-slide{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;transition:opacity 1.6s ease;}
.contatti-hero .hero-slide.active{opacity:1;}
.contatti-hero .hero-slide.kenburns{animation:heroZoom 9s ease-out forwards;}
@keyframes heroZoom{from{transform:scale(1.1);}to{transform:scale(1);}}
.contatti-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,7,8,.35) 0%,rgba(5,7,8,.5) 55%,rgba(5,7,8,.78) 100%);}
.contatti-hero-content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:0 6vw;text-align:center;}
.contatti-hero-eyebrow{font-family:var(--serif);font-style:normal;font-weight:300;font-size:33.7px;letter-spacing:5px;text-transform:uppercase;color:#fff;max-width:754px;line-height:1.3;margin:0;}
.chiamaci-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:17px 38px;border:1.5px solid var(--sage);border-radius:40px;background:rgba(146,188,165,.05);color:#fff;font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:3.2px;text-transform:uppercase;cursor:pointer;transition:background .45s ease, color .45s ease, transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .45s ease;}
.chiamaci-btn svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.chiamaci-btn::before{content:'';position:absolute;inset:-1.5px;border-radius:inherit;border:1.5px solid var(--sage);animation:ringPulse 2.8s ease-out infinite;pointer-events:none;}
@keyframes ringPulse{0%{transform:scale(1);opacity:.6;}75%,100%{transform:scale(1.32);opacity:0;}}
.chiamaci-btn:hover,.chiamaci-btn:focus-visible{background:var(--sage);color:#0f1a13;transform:translateY(-3px) scale(1.045);box-shadow:0 14px 34px rgba(146,188,165,.32);}
.chiamaci-btn:hover::before,.chiamaci-btn:focus-visible::before{animation-play-state:paused;opacity:0;}
.chiamaci-btn:active{transform:translateY(-1px) scale(1.01);}
@media(max-width:900px){
  .contatti-hero.abs{width:100%!important;height:420px;position:relative!important;}
  .contatti-hero-eyebrow{font-size:20px;max-width:22ch;}
}


:root{
  --sans:'Poppins',sans-serif; --serif:'Newsreader',serif;
  --lavender:#9fa6d5; --lavender-light:#cacde5; --sage:#92bca5; --sage-light:#b9d2c3;
  --grey:#706f6f; --ink:#16241d;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
html,body{background:#000;overflow-x:hidden;}
body{font-family:var(--sans);color:var(--ink);}
img{display:block;max-width:none;}
.stage{width:100vw;overflow:hidden;}
.canvas{position:relative;width:1440px;transform-origin:top left;}
.abs{position:absolute;}
a{color:inherit;text-decoration:none;}
button{background:none;border:none;font:inherit;color:inherit;cursor:pointer;}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.16,.84,.44,1),transform .9s cubic-bezier(.16,.84,.44,1);transition-delay:var(--d,0s);}
[data-reveal="scale"]{transform:translateY(0) scale(1.04);}
[data-reveal].in{opacity:1;transform:translateY(0);}
[data-reveal="scale"].in{transform:translateY(0) scale(1);}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important;}}

/* ---------------- NAV (shared) ---------------- */
.nav-logo{left:86px;top:71px;width:207px;height:67px;filter:brightness(0) invert(1);}
.nav-logo img{width:100%;height:100%;object-fit:contain;}
.mainnav{left:775px;top:94px;display:flex;gap:60px;}
.mainnav a,.mainnav button{font-size:14px;letter-spacing:4.2px;text-transform:uppercase;color:#fff;position:relative;}
.burger{display:none;}
.mainnav a::after,.mainnav button::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--sage);transition:width .3s ease;}
.mainnav a:hover::after,.mainnav button:hover::after{width:100%;}

/* ---------------- FOOTER (shared) ---------------- */
.footer{background:#000;}
.footer-logo{width:207px;height:67px;filter:brightness(0) invert(1);}
.footer-logo img{width:100%;height:100%;object-fit:contain;}
.footer h4{font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:14px;}
.footer .loc-name{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--sage);margin-bottom:6px;}
.footer p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:16px;line-height:1.5;color:#fff;max-width:170px;}
.footer .copy{font-family:var(--serif);font-style:italic;font-weight:300;font-size:12px;color:#fff;}

/* ---------------- HERO (HP) ---------------- */
.hp-hero{top:0;left:0;width:1440px;height:800px;overflow:hidden;background:#0c1410;}
.hp-hero .tex{position:absolute;inset:0;overflow:hidden;}
.hp-hero .tex video,.hp-hero .tex img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hp-hero .tex .slide[data-hs="2"] video{object-position:center 66%;}
.hp-hero .tex .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.42) 60%,rgba(0,0,0,.58)),linear-gradient(0deg,rgba(146,188,165,.42),rgba(146,188,165,0) 30%);}
.hp-hero .tex .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease;}
.hp-hero .tex .slide.on{opacity:1;}
.dots{position:absolute;left:86px;bottom:40px;display:flex;gap:8px;z-index:6;}
.dots button{width:22px;height:2.5px;background:rgba(255,255,255,.4);transition:background .3s;cursor:pointer;}
.dots button.on{background:#fff;}
.df-dots{position:absolute;left:50%;top:650px;transform:translateX(-50%);z-index:6;display:flex;gap:8px;}
.df-dots button{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);transition:background .3s,transform .3s;cursor:pointer;}
.df-dots button.on{background:#fff;transform:scale(1.2);}
.df-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(146,188,165,.4),rgba(146,188,165,0) 32%);pointer-events:none;}
.hp-hero .headline{left:0;top:0;width:1440px;height:800px;pointer-events:none;}
.hp-hero .headline em{position:absolute;font-family:var(--serif);font-style:italic;font-weight:400;color:#fff;white-space:nowrap;}
.hp-hero .h1{left:520px;top:342px;font-size:123px;line-height:1;}
.hp-hero .h2{left:816px;top:392px;font-size:56px;line-height:1;}
.hp-hero .h3{left:619px;top:413px;font-size:161px;line-height:1;color:var(--sage);}

/* ---------------- PREVENIRE ---------------- */
.prevenire{top:800px;left:0;width:1440px;height:934px;background:#000;overflow:hidden;}
.prevenire .tex-strip{position:absolute;left:0;top:0;width:1440px;height:934px;background:
  radial-gradient(ellipse 900px 700px at 78% 62%, rgba(146,188,165,.22), transparent 65%),
  #000;}
.prevenire-h{left:86px;top:148.77px;color:#fff;}
.prevenire-h > span{font-family:var(--sans);font-weight:700;font-size:51.24px;line-height:1.14;}
.prevenire-h > span.accent{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--sage);text-transform:none;font-size:61.14px;}
.dashes{width:28px;height:28px;position:relative;}
.dashes::before{content:'';position:absolute;left:3px;top:2px;width:1.5px;height:24px;background:var(--sage);}
.dashes::after{content:'';position:absolute;left:3px;top:13px;width:23px;height:1.5px;background:var(--sage);}
.prevenire-icon{left:720px;top:284px;}
.prevenire-quote{left:720px;top:371px;width:382px;font-family:var(--sans);font-weight:700;color:var(--sage);font-size:16px;letter-spacing:1.6px;text-transform:uppercase;line-height:1.5;}
.prevenire-quote .author{display:block;margin-top:18px;font-family:var(--serif);font-style:italic;font-weight:400;color:#fff;text-transform:none;}
.prevenire-body{left:720px;top:530px;width:384px;color:#fff;font-size:16px;line-height:1.7;letter-spacing:1.6px;font-weight:400;}
.prevenire-body b{font-weight:700;}
.prevenire-photo{left:86px;top:379px;width:370px;height:463px;overflow:hidden;}
.prevenire-photo img{width:100%;height:100%;object-fit:cover;}
.prevenire-filo{left:1120px;top:230px;width:340px;height:auto;opacity:.9;pointer-events:none;}
.prevenire-filo img{width:100%;height:auto;object-fit:contain;}

/* ---------------- DIVIDER1 + FILOSOFIA (merged component) ---------------- */
.df{top:1733px;left:0;width:1440px;height:1344px;overflow:hidden;}
.df-photo{position:absolute;left:0;top:0;width:1440px;height:707px;overflow:hidden;}
.df-photo .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease;}
.df-photo .slide.on{opacity:1;}
.df-photo video{width:100%;height:100%;object-fit:cover;}
.df-photo img{width:100%;height:100%;object-fit:cover;}
.df-photo-label{position:absolute;top:340px;width:100%;display:flex;justify-content:space-between;padding:0 246px;font-family:var(--sans);font-weight:700;font-size:18.5px;letter-spacing:5.5px;text-transform:uppercase;color:rgba(255,255,255,.92);}
.df-panel{position:absolute;left:0;top:707px;width:1440px;height:637px;background:var(--sage);}
.df-panel-media{left:0;top:0;width:592px;height:637px;overflow:hidden;background:#0a1512;opacity:0;transition:opacity .6s ease;pointer-events:none;}
.df-panel-media.on{opacity:1;pointer-events:auto;}
.df-panel-media video{width:100%;height:100%;object-fit:cover;}
.df-panel-media img{width:100%;height:100%;object-fit:cover;}
.df-panel-text{left:720px;top:99px;width:530px;opacity:0;transition:opacity .6s ease;pointer-events:none;}
.df-panel-text.on{opacity:1;pointer-events:auto;}
.df-panel-icon{left:720px;top:57px;width:28px;height:28px;}
.df-panel-icon::before{content:'';position:absolute;inset:0;border:1.5px solid var(--ink);border-radius:50%;}
.df-panel-h{font-family:var(--sans);font-weight:700;font-size:35.2px;line-height:1.14;color:var(--ink);}
.df-panel-h em{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:38.4px;}
.df-panel-body{margin-top:32px;color:var(--ink);font-size:16px;line-height:1.7;}
.df-panel-body b{font-weight:700;}
.df-arrows{margin-top:34px;display:flex;gap:14px;}
.df-arrows span{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:.3s;}
.df-arrows span:hover{background:var(--ink);color:var(--sage);}

/* ---------------- DIVIDER2 ---------------- */
.divider2{top:3077px;left:0;width:1440px;height:598px;overflow:hidden;}
.divider2 img{width:100%;height:100%;object-fit:cover;}
.divider2-label{position:absolute;top:286px;width:100%;display:flex;justify-content:space-between;padding:0 246px;font-family:var(--sans);font-weight:700;font-size:18.5px;letter-spacing:5.5px;text-transform:uppercase;color:var(--sage);}

/* ---------------- MOVIMENTO ---------------- */
.movimento{top:3675px;left:0;width:1440px;height:475px;background:#fff;}
.movimento-h{left:87px;top:76px;font-family:var(--sans);font-weight:600;font-size:44px;line-height:1.05;color:var(--ink);}
.movimento-h em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--sage);font-size:48px;}
.movimento-icon{left:720px;top:79px;}
.movimento-lead{left:720px;top:159px;width:300px;color:var(--sage);font-weight:700;font-size:16px;letter-spacing:3.2px;text-transform:uppercase;line-height:1.5;}
.movimento-body{left:720px;top:275px;width:434px;color:var(--ink);font-size:16px;line-height:1.7;font-weight:400;}
.movimento-body b{font-weight:700;}

/* ---------------- GALLERY ---------------- */
.gallery{top:4145px;left:0;width:1440px;height:526px;overflow:hidden;background:#ddd;}
.gallery .cell{position:absolute;top:0;height:526px;overflow:hidden;}
.gallery .cell img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.22,.68,.36,1);}
.gallery .cell:hover img{transform:scale(1.08);}
.gallery .cell::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(146,188,165,.32),rgba(146,188,165,0) 45%);pointer-events:none;}
.g1{left:0;width:351px;} .g2{left:351px;width:369px;} .g3{left:720px;width:360px;} .g4{left:1052px;width:388px;}

/* ---------------- OLTRE IL SINTOMO ---------------- */
.sintomo{left:798px;top:4447px;width:537px;height:552px;overflow:hidden;z-index:5;box-shadow:0 40px 80px rgba(0,0,0,.18);}
.sintomo img{width:100%;height:100%;object-fit:cover;}
.sintomo-heading,.sintomo-body{color:var(--ink);}
.sintomo-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 104px;}
.sintomo-heading{font-family:var(--sans);font-weight:600;font-size:24.5px;letter-spacing:12px;text-transform:uppercase;color:var(--ink);line-height:1.3;}
.sintomo-body{margin-top:56px;font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--ink);}
.sintomo-body b{font-weight:700;}

/* ---------------- PERCORSI (4x4) ---------------- */
.percorsi{top:5100px;left:0;width:1440px;height:1857px;background:#000;overflow:hidden;z-index:6;}
.percorsi-h{left:87px;top:0px;}
.percorsi-h > span{margin:0;font-weight:600;font-size:44px;line-height:1;color:#fff;}
.percorsi-h em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--sage);font-size:48px;}
.percorsi-grid{left:0;top:125px;width:1440px;height:1440px;display:grid;grid-template-columns:repeat(4,360px);grid-template-rows:repeat(4,360px);}
.percorsi-grid::-webkit-scrollbar{display:none;}
.percorsi-arrows{display:none;}
.percorsi-arrows button{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s;}
.percorsi-arrows button:hover{background:#fff;border-color:#fff;}
.percorsi-arrows button svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.8;transition:stroke .3s;}
.percorsi-arrows button:hover svg{stroke:var(--ink);}
.pcell{position:relative;overflow:hidden;scroll-snap-align:start;}
.pcell img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.68,.36,1);}
.pcell.photo:hover img{transform:scale(1.06);}
.pcell.color{padding:40px;display:flex;align-items:flex-end;transition:filter .3s;}
.pcell.color[data-tone="sage"]{background:var(--sage);}
.pcell.color[data-tone="sage-light"]{background:var(--sage-light);}
.pcell.color[data-tone="lavender"]{background:var(--lavender);}
.pcell.color[data-tone="lavender-light"]{background:var(--lavender-light);}
.pcell.color:hover{filter:brightness(.94);}
.pcell.color .cat{font-family:var(--sans);font-weight:500;font-size:31px;line-height:1;color:var(--ink);}
.pcell.color .cat em{display:block;font-family:var(--serif);font-style:italic;font-weight:300;font-size:34px;margin-top:6px;}

/* ================= MOBILE RESPONSIVE (<=900px) ================= */
@media (max-width:900px){
  .stage{overflow:visible;}
  .canvas{width:100%!important;}
  .abs{position:static!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;transform:none!important;}
  .df-panel-media{display:none!important;}
  .df-photo .slide[data-ds="1"] img{object-position:center 25%;}

  /* ---- header / nav ---- */
  .nav-logo{display:block!important;position:static!important;width:100px!important;height:auto!important;margin:20px 0 20px 22px;}
  .mainnav{display:none;}
  .mainnav.open{display:flex!important;flex-direction:column;position:fixed!important;inset:0!important;left:0!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;background:#07100c;z-index:40;justify-content:center;align-items:center;gap:30px;}
  .mainnav.open a{font-size:17px;}
  .burger{display:flex!important;width:24px;height:18px;flex-direction:column;justify-content:space-between;background:none;border:none;cursor:pointer;padding:0;position:fixed;top:22px;right:22px;z-index:41;}
  .burger span{display:block;width:100%;height:1.6px;background:#fff;}
  .burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

  /* ---- hero ---- */
  .hp-hero{position:relative!important;width:100%!important;height:480px;overflow:hidden;}
  .hp-hero .tex{position:absolute;inset:0;}
  .hp-hero .headline{position:absolute!important;left:0!important;top:50%!important;width:100%!important;box-sizing:border-box;height:auto;padding:0 22px;pointer-events:none;z-index:3;text-align:center;transform:translateY(-50%)!important;}
  .hp-hero .h1,.hp-hero .h2,.hp-hero .h3{position:static!important;display:block;white-space:normal!important;}
  .hp-hero .h1{font-size:42px;}
  .hp-hero .h2{font-size:26px;margin-top:-4px;}
  .hp-hero .h3{font-size:56px;color:var(--sage);margin-top:-2px;}
  .dots{left:22px;bottom:20px;}

  /* ---- prevenire ---- */
  .prevenire{position:relative!important;width:100%!important;height:auto;padding:60px 22px 50px;box-sizing:border-box;}
  .prevenire .tex-strip{position:absolute;inset:0;width:100%!important;height:100%!important;}
  .prevenire-h{position:relative!important;margin-bottom:22px;}
  .prevenire-h > span{font-size:30px;line-height:1.1;}
  .prevenire-h > span.accent{font-size:34px;}
  .prevenire-icon{position:relative!important;margin-bottom:18px;}
  .prevenire-quote{position:relative!important;width:100%!important;font-size:13px;margin-bottom:26px;}
  .prevenire-body{position:relative!important;width:100%!important;font-size:15px;margin-bottom:26px;}
  .prevenire-photo{position:relative!important;width:100%!important;height:320px!important;margin-bottom:10px;}
  .prevenire-filo{display:none;}

  /* ---- filosofia / terapia ---- */
  .df{position:relative!important;width:100%!important;height:auto;}
  .df-photo{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:280px!important;overflow:hidden;}
  .df-photo-label{padding:0 20px;font-size:11px;letter-spacing:3px;top:131px!important;bottom:auto!important;transform:none;}
  .df-dots{top:246px!important;bottom:auto!important;}
  .df-panel{position:relative!important;top:auto!important;left:auto!important;width:100%!important;height:auto!important;display:flex;flex-direction:column;}
  .df-panel-media{position:relative!important;width:100%!important;height:300px!important;}
  .df-panel-text{position:relative!important;width:100%!important;padding:34px 22px;opacity:1!important;pointer-events:auto!important;}
  .df-panel-text:not(.on){display:none;}
  .df-panel-icon{display:none!important;}
  .df-panel-h{font-size:26px;}
  .df-panel-h em{font-size:28px;}
  .df-panel-body{font-size:14px;margin-top:20px;}

  /* ---- divider2 / movimento ---- */
  .divider2{position:relative!important;width:100%!important;height:340px;overflow:hidden;}
  .divider2 img{object-position:center 35%;}
  .divider2-label{padding:0 20px;font-size:11px;letter-spacing:3px;top:50%!important;bottom:auto!important;transform:translateY(-50%);}
  .movimento{width:100%!important;height:auto;padding:60px 22px 50px;background:#fff;box-sizing:border-box;}
  .movimento-h{position:relative!important;font-size:30px;margin-bottom:20px;}
  .movimento-h em{font-size:32px;}
  .movimento-icon{position:relative!important;margin-bottom:16px;}
  .movimento-lead{position:relative!important;width:100%!important;font-size:14px;margin-bottom:20px;}
  .movimento-body{position:relative!important;width:100%!important;font-size:15px;}

  /* ---- gallery ---- */
  .gallery{width:100%!important;height:auto;display:grid;grid-template-columns:1fr 1fr;}
  .gallery .cell{position:relative!important;height:190px!important;width:100%!important;left:auto!important;}

  /* ---- oltre il sintomo ---- */
  .sintomo{position:relative!important;width:100%!important;height:460px!important;margin:0;overflow:hidden;}
  .sintomo-content{padding:0 28px!important;}
  .sintomo-heading{font-size:18px!important;letter-spacing:6px!important;}
  .sintomo-body{font-size:13px!important;line-height:1.55!important;margin-top:22px!important;}

  /* ---- percorsi grid ---- */
  /* titolo a sinistra e frecce a destra, appoggiati alla stessa linea di base */
  .percorsi{width:100%!important;height:auto;padding:60px 0 20px;display:grid!important;grid-template-columns:1fr auto;align-items:end;}
  .percorsi-h{position:relative!important;padding:0 22px;margin-bottom:0;grid-column:1;}
  .percorsi-grid{position:relative!important;width:100%!important;height:420px!important;display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .percorsi-grid::-webkit-scrollbar{display:none;}
  .pcell{flex:0 0 100%!important;width:100%!important;height:420px!important;scroll-snap-align:start;}
  .pcell.photo{display:none!important;}
  .percorsi-arrows{display:flex!important;position:relative!important;right:auto!important;top:auto!important;justify-content:flex-end;align-self:end;gap:22px;padding:0 22px;margin-bottom:0;grid-column:2;}
  .percorsi-grid{grid-column:1 / -1;margin-top:22px;}
  .pcell.color .cat{font-size:24px;}
  .pcell.color .cat em{font-size:26px;}

  /* ---- footer ---- */
  .footer{width:100%!important;height:auto!important;padding:50px 22px 30px;display:block;box-sizing:border-box;text-align:center;}
  .footer p{max-width:none!important;}
  .footer > .abs{margin-top:26px;}
  .footer-phones{text-align:center!important;width:auto!important;}
  .footer-logo{display:block!important;width:110px!important;margin:0 auto;}
  .copy{margin-top:24px!important;display:block;}

  /* ---- service detail pages ---- */
  .pd-hero{position:relative!important;width:100%!important;height:260px;overflow:hidden;margin-top:8px;}
  .pd-hero-label{top:50%!important;transform:translate(-50%,-50%);width:80%!important;padding:0 10px;font-size:16px;letter-spacing:3px;text-align:center;}
  .pd-body{width:100%!important;height:auto!important;padding:50px 22px;box-sizing:border-box;}
  .pd-title{position:relative!important;left:auto!important;top:auto!important;width:100%!important;font-size:22px;letter-spacing:3px;margin-bottom:22px;}
  .pd-desc,.pd-desc.wide{position:relative!important;left:auto!important;top:auto!important;width:100%!important;font-size:15px;margin-bottom:28px;}
  .pd-list-lead{position:relative!important;left:auto!important;top:auto!important;width:100%!important;font-size:15px;margin-bottom:6px;}
  .pd-acc{position:relative!important;left:auto!important;top:auto!important;width:100%!important;}
}

body{position:relative;}
header{position:absolute;top:0;left:0;width:100%;z-index:30;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:54px 5vw 50px;box-sizing:border-box;}
header .logo{display:block;width:clamp(155px,13vw,195px);height:auto;}
header .logo img{width:100%;height:auto;}
header nav{display:flex;gap:clamp(30px,3.5vw,54px);}
header nav a,header nav span{font-size:14.5px;font-weight:600;letter-spacing:2.8px;text-transform:uppercase;color:#fff;position:relative;padding-bottom:4px;}
header nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--sage);transition:width .35s ease;}
header nav a:hover::after{width:100%;}
.burger{display:none;width:26px;height:20px;position:relative;cursor:pointer;background:none;border:none;z-index:41;}
.burger span{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:transform .3s,opacity .3s;}
.burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:9px;} .burger span:nth-child(3){top:18px;}
.burger.open span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
@media(max-width:900px){
  header{padding:22px 6vw;}
  header nav{display:none;}
  .burger{display:block;}
  nav#mainnav.open{display:flex!important;flex-direction:column;position:fixed;inset:0;background:#07100c;z-index:40;justify-content:center;align-items:center;gap:30px;}
  nav#mainnav.open a{font-size:18px;}
}

.header-minimal{position:absolute;top:0;left:0;width:100%;z-index:30;background:transparent;display:flex;align-items:center;justify-content:center;padding:42px 5vw 38px;box-sizing:border-box;}
.header-minimal .logo{display:block;width:clamp(140px,11.5vw,175px);height:auto;}
.header-minimal .logo img{width:100%;height:auto;}
@media(max-width:900px){
  .header-minimal{padding:28px 6vw;}
}

footer{background:#000;padding:70px 6vw 40px;display:flex;flex-wrap:wrap;gap:60px;justify-content:space-between;align-items:flex-start;}
footer .footer-brand .logo{width:clamp(120px,9vw,140px);margin-bottom:0;}
footer .footer-cols{display:flex;gap:clamp(50px,8vw,120px);flex-wrap:wrap;}
footer .footer-col h2{margin:0 0 14px;font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:2px;text-transform:uppercase;color:#fff;}
footer .footer-col .loc-name{margin:0 0 6px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#fff;}
footer .footer-col p{margin:0 0 6px;font-family:var(--serif);font-style:italic;font-weight:300;font-size:16px;line-height:1.5;color:#fff;}
footer .footer-col p a{color:inherit;}
footer .footer-col p+p{margin-top:12px;}
footer .footer-bottom{width:100%;margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-family:var(--serif);font-style:italic;font-size:12px;color:rgba(255,255,255,.4);}
@media(max-width:900px){
  footer{padding:60px 7vw 32px;flex-direction:column;align-items:center;text-align:center;}
  footer .footer-cols{flex-direction:column;align-items:center;text-align:center;}
}
.form-section{background:#000;padding:clamp(60px,9vw,120px) 6vw;display:flex;justify-content:center;}
.form-wrap{width:100%;max-width:720px;}
.form-wrap h2{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(30px,4vw,44px);color:#fff;margin-bottom:14px;text-align:center;}
.form-wrap .form-sub{font-family:var(--sans);font-weight:300;font-size:15px;color:rgba(255,255,255,.65);text-align:center;margin-bottom:48px;line-height:1.6;}
.doc{max-width:860px;margin:0 auto;padding:clamp(170px,17vw,230px) clamp(22px,6vw,48px) clamp(70px,9vw,110px);}
.doc .eyebrow{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:4.5px;
  text-transform:uppercase;color:var(--sage);margin:0 0 18px;}
.doc h1{font-family:var(--serif);font-weight:300;font-style:normal;font-size:clamp(34px,5.4vw,58px);
  line-height:1.1;color:#fff;margin:0 0 14px;}
.doc h1 em{font-style:italic;color:var(--sage);}
.doc .rif{font-family:var(--serif);font-style:italic;font-size:16px;color:rgba(255,255,255,.5);
  margin:0 0 54px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12);}
.doc h2{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--sage);margin:46px 0 16px;}
.doc p{font-family:var(--serif);font-weight:300;font-size:17.5px;line-height:1.75;
  color:rgba(255,255,255,.78);margin:0 0 16px;}
.doc p.voce{padding-left:24px;position:relative;}
.doc p.voce::before{content:'';position:absolute;left:2px;top:14px;width:7px;height:7px;
  border-radius:50%;background:var(--sage);}
@media (max-width:900px){
  .doc{padding-top:150px;}
  .doc p{font-size:16px;}
}

/* Therapeutica — animazione del logo e oscillazione delle immagini */

/* ----------------------------------------------------------- il logo ----
   Al passaggio del mouse il logo si solleva appena e cresce di un soffio.
   Nessun ritaglio del contenitore: il marchio non deve mai essere tagliato,
   in nessun punto della pagina. */
.logo-anim{
  transition:transform .55s cubic-bezier(.22,.68,.36,1);
  -webkit-tap-highlight-color:transparent;
}
.logo-anim img{
  display:block;
  max-width:100%;
  height:auto;
  transition:transform .55s cubic-bezier(.22,.68,.36,1);
  will-change:transform;
}
.logo-anim:hover{ transform:translateY(-2px); }
.logo-anim:hover img{ transform:scale(1.035); }

/* ------------------------------------------------------ l'oscillazione --
   Lo spostamento lo scrive il javascript; qui serve solo che l'immagine sia
   leggermente più grande del suo contenitore, altrimenti muovendosi
   scoprirebbe i bordi. */
.tilt{
  will-change:transform;
  transform:scale(1.09);
}

/* chi ha chiesto meno animazioni non deve vedere nulla di tutto questo */
@media (prefers-reduced-motion: reduce){
  .logo-anim,
  .logo-anim img,
  .tilt{
    transition:none!important;
    animation:none!important;
    transform:none!important;
  }
}

/* --------------------------------------------- la sfumatura che respira --
   L'immagine di "Oltre il sintomo" e' una sfumatura morbida: spostarla non si
   nota, perche' non ha bordi che si vedano muovere. Sopra di essa metto quindi
   uno strato di macchie di colore nei toni del marchio, sfocate e fuse con la
   fotografia, che vagano lentamente. E' quello a far sembrare viva la
   sfumatura. Il testo resta sopra e immobile. */
.sintomo img{
  transform-origin:50% 50%;
  will-change:transform;
  animation:sintomoDrift 23s ease-in-out infinite alternate;
}
@keyframes sintomoDrift{
  0%  { transform:scale(1.18) translate3d(-3%,-2%,0) rotate(-1.8deg); }
  50% { transform:scale(1.26) translate3d(2.5%,1%,0) rotate(1.6deg); }
  100%{ transform:scale(1.20) translate3d(-1.5%,2.5%,0) rotate(-0.8deg); }
}

.sintomo{ isolation:isolate; }

/* Due strati di macchie colorate, sfocati, che vagano in direzioni opposte.
   Niente fusioni sofisticate: opacita' piena e sfocatura alta, perche' il
   movimento si deve vedere. Restano sotto al testo, che non si muove. */
.sintomo::before,
.sintomo::after{
  content:"";
  position:absolute;
  inset:-35%;
  z-index:0;
  pointer-events:none;
  filter:blur(34px);
  will-change:transform, opacity;
}
.sintomo::before{
  background:
    radial-gradient(circle at 30% 28%, rgba(146,188,165,.95), rgba(146,188,165,0) 50%),
    radial-gradient(circle at 76% 70%, rgba(159,166,213,.9),  rgba(159,166,213,0) 50%);
  opacity:.62;
  animation:sintomoA 11s ease-in-out infinite alternate;
}
.sintomo::after{
  background:
    radial-gradient(circle at 70% 25%, rgba(255,255,255,.95), rgba(255,255,255,0) 48%),
    radial-gradient(circle at 25% 78%, rgba(146,188,165,.85), rgba(146,188,165,0) 52%);
  opacity:.5;
  animation:sintomoB 14s ease-in-out infinite alternate;
}
@keyframes sintomoA{
  0%  { transform:translate3d(-14%,-10%,0) scale(1);    opacity:.45; }
  50% { transform:translate3d(10%,6%,0)    scale(1.25); opacity:.72; }
  100%{ transform:translate3d(-6%,14%,0)   scale(1.1);  opacity:.5;  }
}
@keyframes sintomoB{
  0%  { transform:translate3d(12%,8%,0)    scale(1.15); opacity:.58; }
  50% { transform:translate3d(-11%,-6%,0)  scale(1);    opacity:.34; }
  100%{ transform:translate3d(6%,-12%,0)   scale(1.22); opacity:.6;  }
}
/* il testo deve restare sopra le macchie e perfettamente fermo */
.sintomo-content{ position:absolute; z-index:1; }

@media (prefers-reduced-motion: reduce){
  .sintomo img{ animation:none!important; transform:none!important; }
  .sintomo::before,
  .sintomo::after{ display:none!important; }
}

/* ------------------------------------------------------------- social ---
   Le due icone stanno sotto ai recapiti, nella colonna "Contatti".
   Bianche piene, senza cerchio: sul fondo scuro si leggono molto meglio. */
.footer-social{
  display:flex;
  gap:20px;
  align-items:center;
  margin:22px 0 0;
}
.footer-social a{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  transition:color .25s ease, transform .25s ease, opacity .25s ease;
}
.footer-social a:hover{
  color:#92bca5;
  transform:translateY(-2px);
}
.footer-social svg{
  width:26px;
  height:26px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.footer-social svg [fill="currentColor"]{ stroke:none; }

@media (max-width:900px){
  .footer-social{ justify-content:flex-start; margin-top:20px; }
}
@media (prefers-reduced-motion: reduce){
  .footer-social a{ transition:none!important; transform:none!important; }
}

/* rimando all'informativa in fondo a ogni pagina */
.privacy-foot{
  color:rgba(255,255,255,.6);
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color .25s ease;
}
.privacy-foot:hover{ color:#92bca5; }
/* Native WordPress markup and keyboard accessibility, without changing reference geometry. */
header nav ul{display:flex;gap:inherit;list-style:none;align-items:center;}
header nav a{display:inline-block;}
header .logo,footer .logo{display:block;}
footer .logo img{width:100%;height:auto;}
.prevenire-h > span,.percorsi-h > span{display:block;}
.df-panel-h > span{display:block;}
.sintomo-heading > span{display:block;}
.pd-item-h{width:100%;text-align:left;}
.pd-item-panel-inner>div{margin:0 4px 20px;font-weight:300;font-size:15px;line-height:1.65;color:rgba(255,255,255,.75);letter-spacing:.2px;max-width:420px;}
.pd-item-panel-inner>div p{margin:0 0 20px;}
.rich-copy>p+p{margin-top:1.7em;}
.rich-copy ul,.rich-copy ol{padding-left:1.2em;}
.contatti-hero .hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.dots button,.df-dots button{position:relative;flex-shrink:0;}
.dots button::before,.df-dots button::before{content:'';position:absolute;inset:-12px -4px;}
.burger::after{content:'';position:absolute;inset:-12px;}
.footer-email{margin-top:26px!important;}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;}
.footer-tools{display:flex;flex-wrap:wrap;gap:18px;}
.footer-tools a,.footer-tools button{font:inherit;text-decoration:underline;text-underline-offset:3px;}
.footer-tools a:hover,.footer-tools button:hover{color:var(--sage);}
.motion-toggle[hidden]{display:none;}
.skip-link{position:fixed;top:12px;left:12px;padding:12px 18px;background:#fff;color:#16241d;z-index:100;transform:translateY(-150%);}
.skip-link:focus{transform:none;}
:focus-visible{outline:2px solid var(--sage);outline-offset:5px;}
.menu-open{overflow:hidden;}
.form-wrap .email-application{text-align:center;}
.doc .prose a{text-decoration:underline;}
.doc .prose img{max-width:100%;height:auto;}
.doc .prose ul,.doc .prose ol{padding-left:24px;color:#fff;}
.no-js [data-reveal]{opacity:1;transform:none;}
.motion-paused *, .motion-paused *::before, .motion-paused *::after{animation-play-state:paused!important;}
.motion-paused [data-reveal]{opacity:1;transform:none;transition:none;}
.motion-paused .tilt{transform:none!important;}
@media(min-width:901px){.canvas{transform:scale(calc(100vw / 1440px));}.home-stage{height:calc(100vw * 6957 / 1440);}.landing-stage{height:calc(100vw * 608 / 1440);}}
@media(max-width:900px){header nav.open ul{flex-direction:column;gap:30px;}.footer-bottom{justify-content:center;}.footer-tools{justify-content:center;}.canvas{height:auto!important;transform:none!important;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation:none!important;transition:none!important;}.tilt{transform:none!important;}}
.crop-high{object-position:center 25%!important;}
header nav li{display:flex;}
/* The reference footer logo retains its native 207 × 67 px size. */
footer .footer-brand .logo{display:inline;}
footer .logo img{width:207px;height:67px;object-fit:contain;}
footer .footer-col .loc-name:not(:first-of-type){margin-top:12px;}
/* Interior reference pages render with browser fallback fonts: their remote
   @import follows ordinary rules and is ignored. Use the same generic fallback
   so the WordPress replica matches the published rendering. */
.page-template-template-service,.page-template-template-contact,.page-template-template-careers{--sans:sans-serif;--serif:serif;}
.pd-item-h{font-size:16px;font-weight:400;}
