/* ORIGO — UX pubblica v2: scorrimento naturale e scelta delle sessioni più leggibile.
   Presentazione soltanto: nessuna modifica a calendario, API, pagamenti o database. */

/* HOMEPAGE — il vecchio scrollytelling a scene sovrapposte intercettava il trackpad.
   Ripristiniamo layout nel flusso naturale del documento a tutte le dimensioni. */
body.page-home{overflow-x:clip;scroll-behavior:auto}
body.page-home .oc-scroll-story{height:auto!important;min-height:0!important;position:relative!important;overflow:visible!important}
body.page-home .oc-story-stage{position:relative!important;top:auto!important;height:auto!important;min-height:0!important;overflow:visible!important;isolation:auto!important;padding:0!important;background:transparent!important}
body.page-home .oc-scene{position:relative!important;inset:auto!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;transform:none!important;transition:none!important;will-change:auto!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
body.page-home .oc-scene-nav{display:none!important}
body.page-home #approccio,body.page-home #come-funziona,body.page-home #esperienza,body.page-home #sessioni{scroll-margin-top:74px}
body.page-home .oc-hero-grid{padding-block:clamp(70px,8vw,112px)!important}
body.page-home .oc-areas>.shell,body.page-home .oc-method>.shell,body.page-home .oc-experience>.shell{padding-block:clamp(80px,9vw,128px)!important}
body.page-home .oc-areas .oc-area-grid article{min-height:340px}
body.page-home .oc-method{padding:0!important}
body.page-home .oc-experience{padding:0!important}
body.page-home .oc-experience-collage{height:clamp(360px,45vw,560px)}

/* HOMEPAGE — sessioni e affiancamento: editoriale e leggibile, senza banner promozionale. */
body.page-home .oc-sessions{padding:0!important;background:#f4f1e9!important}
body.page-home .oc-sessions>.shell{width:min(calc(100% - 44px),1170px);padding:clamp(70px,7vw,112px) 0 clamp(78px,8vw,118px)!important}
body.page-home .oc-sessions .oc-section-head{margin:0 auto 28px!important;max-width:780px}
body.page-home .oc-sessions .oc-section-head h2{font-size:clamp(40px,4.3vw,67px);line-height:.99;letter-spacing:-.055em}
body.page-home .oc-session-head-sub{margin:14px auto 0;max-width:560px;font-size:15px;line-height:1.55;color:#697078}
body.page-home .oc-sessions .origo-session-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
body.page-home .oc-sessions .origo-session-card{min-width:0;min-height:355px;padding:26px 24px 23px;border:1px solid #dadbd9;border-radius:19px;box-shadow:none;transform:none!important;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}
body.page-home .oc-sessions .origo-session-card:hover{border-color:#89919a;box-shadow:0 18px 40px rgba(12,15,24,.06)}
body.page-home .oc-sessions .origo-session-card.is-featured{background:#14171d;border-color:#14171d;color:#fff;box-shadow:none}
body.page-home .oc-sessions .origo-session-card.is-featured:hover{box-shadow:0 18px 40px rgba(12,15,24,.16)}
body.page-home .origo-session-badge{right:20px;top:-12px;padding:6px 10px;border-radius:50px;background:#c8f49b;font-size:9px}
body.page-home .origo-session-type{font-size:10px;letter-spacing:.13em}
body.page-home .origo-session-top h3{font-size:clamp(21px,2vw,26px);line-height:1.12;margin-top:11px}
body.page-home .origo-session-top>strong{font-size:24px}
body.page-home .origo-session-card>p{font-size:13px;line-height:1.5;margin:14px 0 12px;min-height:42px}
body.page-home .origo-session-duration{font-size:12px;margin:0 0 13px;color:#4c535d}
body.page-home .origo-session-card.is-featured .origo-session-duration{color:#e2e5eb}
body.page-home .origo-session-card ul{margin-bottom:21px;gap:7px;font-size:12px}
body.page-home .origo-session-card .btn{min-height:44px;padding:11px 10px;font-size:12px;border-radius:100px}
body.page-home .oc-ad-teaser--home{margin-top:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:25px 28px;background:transparent;color:#12151b;border:1px solid #c9cbd0;border-left:3px solid #171a20;border-radius:6px;box-shadow:none}
body.page-home .oc-ad-teaser--home .oc-ad-eyebrow{opacity:1;color:#686e78;font-size:9px;letter-spacing:.16em}
body.page-home .oc-ad-teaser--home .oc-ad-teaser-copy{max-width:750px}
body.page-home .oc-ad-teaser--home .oc-ad-teaser-copy strong{font-size:clamp(22px,2.4vw,31px);line-height:1.12;margin:7px 0 10px;letter-spacing:-.045em}
body.page-home .oc-ad-teaser--home .oc-ad-teaser-copy p{font-size:13px;line-height:1.55;color:#5a606a;max-width:64ch}
body.page-home .oc-ad-teaser--home .oc-ad-teaser-link{background:#151820;color:#fff!important;border-radius:99px;min-height:44px;padding:12px 17px;font-size:12px;white-space:nowrap;box-shadow:none}
body.page-home .oc-ad-teaser--home .oc-ad-teaser-link:hover{background:#313747;transform:none}

/* PRENOTAZIONE — altezza determinata dai contenuti, nessun footer fisso e
   nessuna scroll-area interna forzata. Gli orari e la form seguono il documento. */
body.page-prenota{height:auto!important;min-height:100vh!important;overflow-x:clip!important;overflow-y:auto!important;padding-bottom:0!important}
body.page-prenota .origo-footer{position:relative!important;inset:auto!important;height:auto!important;min-height:0!important;z-index:1!important}
body.page-prenota .origo-footer-row{min-height:65px!important}
body.page-prenota .booking-wizard-v9{height:auto!important;min-height:calc(100vh - 160px)!important;padding:30px 0 75px!important;overflow:visible!important;display:block!important}
body.page-prenota .booking-v9-head{max-width:840px;margin:0 auto 22px;text-align:center}
body.page-prenota .booking-v9-head h1{font-size:clamp(30px,3.4vw,45px);line-height:1.04;letter-spacing:-.048em;margin:8px 0 9px}
body.page-prenota .booking-v9-head p{font-size:14px;line-height:1.5;max-width:620px}
body.page-prenota .booking-v9-progress{max-width:920px;margin-bottom:18px}
body.page-prenota .booking-v9-progress>div{padding:9px 12px}
body.page-prenota .booking-v9-progress strong{display:block}
body.page-prenota .booking-v9-shell{max-width:1050px;display:block!important;height:auto!important;min-height:0!important;width:min(calc(100% - 40px),1050px)}
body.page-prenota .booking-v9-stage{height:auto!important;min-height:0!important}
body.page-prenota .booking-v9-stage.is-active{height:auto!important;display:block}
body.page-prenota .booking-v9-card{height:auto!important;min-height:0!important;display:block!important;padding:24px!important;overflow:visible!important;border-radius:20px}
body.page-prenota .booking-v9-stage-head{margin-bottom:20px;align-items:center}
body.page-prenota .booking-v9-stage-head h2{font-size:clamp(20px,2.2vw,27px);line-height:1.15}
body.page-prenota .booking-v9-stage-head p{max-width:295px;line-height:1.5;text-align:right}
body.page-prenota .booking-v9-services{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;align-items:stretch!important;min-height:0!important;overflow:visible!important}
body.page-prenota .booking-wizard-v9 .booking-service{height:auto!important;min-height:0!important;padding:20px!important;border-radius:15px!important;gap:0!important;justify-content:flex-start!important;box-shadow:none!important}
body.page-prenota .booking-v9-service-name{font-size:14px}
body.page-prenota .booking-v9-time{margin:14px 0 6px}
body.page-prenota .booking-v9-time strong{font-size:37px}
body.page-prenota .booking-wizard-v9 .booking-service p{font-size:12px!important;line-height:1.45;margin:8px 0 12px!important;min-height:35px}
body.page-prenota .booking-v12-features{margin-top:auto;padding-top:6px;gap:6px}
body.page-prenota .booking-v12-feature{font-size:11px}
body.page-prenota .booking-service:hover{border-color:#8d94a1!important}
body.page-prenota .booking-service:focus-visible{outline:3px solid #6076f4!important;outline-offset:3px}
body.page-prenota .booking-v9-hint{font-size:11px;margin-top:14px}
body.page-prenota .oc-ad-teaser--booking{max-width:none;margin:14px 0 0;padding:17px 22px;border:1px solid #d9dbdf;border-radius:14px;background:#f7f8f8;color:#111820;box-shadow:none;gap:15px}
body.page-prenota .oc-ad-teaser--booking .oc-ad-eyebrow{opacity:1;color:#727882;font-size:9px}
body.page-prenota .oc-ad-teaser--booking .oc-ad-teaser-copy strong{font-size:17px;margin:5px 0 0;line-height:1.25}
body.page-prenota .oc-ad-teaser--booking .oc-ad-teaser-link{background:#151820;color:#fff!important;border-radius:99px;padding:11px 17px;font-size:11px}
body.page-prenota .oc-ad-teaser--booking .oc-ad-teaser-link:hover{background:#313747;transform:none}
body.page-prenota .booking-v11-availability{min-height:0!important;grid-template-columns:minmax(0,1.06fr) minmax(285px,.94fr);align-items:start}
body.page-prenota .booking-v11-panel{min-height:0!important;overflow:visible!important;display:block!important;padding:17px!important}
body.page-prenota .booking-v11-panel--times{padding:0!important;overflow:hidden!important}
body.page-prenota .booking-v11-date-list{flex:none!important;align-content:initial!important}
body.page-prenota .booking-v11-time-groups{flex:none!important;max-height:none!important;overflow:visible!important;padding:4px 0 8px}
body.page-prenota .booking-v11-fast-note{margin:0!important}
body.page-prenota .booking-v9-form{overflow:visible!important;height:auto!important;min-height:0!important;padding:0!important}
body.page-prenota .booking-v10-order{position:sticky;top:100px}
body.page-prenota .booking-v9-status{margin-top:12px;min-height:20px}
body.page-prenota .booking-v9-back{font-size:12px;display:inline-flex;align-items:center;gap:5px}

@media(max-width:1050px){
  body.page-home .oc-sessions .origo-session-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.page-home .oc-sessions .origo-session-card{padding:22px 17px;min-height:365px}
  body.page-home .origo-session-top{flex-wrap:wrap;gap:6px}
  body.page-home .oc-ad-teaser--home{gap:18px}
}
@media(max-width:800px){
  body.page-home .oc-sessions .origo-session-grid{grid-template-columns:1fr;gap:12px}
  body.page-home .oc-sessions .origo-session-card{min-height:0!important;padding:24px 22px}
  body.page-home .origo-session-top{flex-wrap:nowrap}
  body.page-home .origo-session-card>p{min-height:0!important}
  body.page-home .origo-session-card.is-featured{transform:none!important}
  body.page-home .oc-ad-teaser--home{grid-template-columns:1fr;padding:24px 20px}
  body.page-home .oc-ad-teaser--home .oc-ad-teaser-link{justify-self:start}
  body.page-home .oc-areas>.shell,body.page-home .oc-method>.shell,body.page-home .oc-experience>.shell{padding-block:70px!important}
  body.page-home .oc-hero-grid{padding-block:56px!important}
  body.page-home .oc-experience-collage{height:auto}
  body.page-prenota .booking-wizard-v9{padding:27px 0 90px!important;min-height:0!important}
  body.page-prenota .booking-v9-shell{width:min(calc(100% - 24px),650px)}
  body.page-prenota .booking-v9-services{grid-template-columns:1fr!important}
  body.page-prenota .booking-wizard-v9 .booking-service{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:18px!important}
  body.page-prenota .booking-v9-service-top{grid-column:1/-1}
  body.page-prenota .booking-v9-time{grid-column:2;grid-row:2;margin:8px 0 0;white-space:nowrap}
  body.page-prenota .booking-v9-time strong{font-size:29px}
  body.page-prenota .booking-wizard-v9 .booking-service p{grid-column:1;grid-row:2;margin:9px 0 0!important;min-height:0}
  body.page-prenota .booking-v12-features{grid-column:1/-1;display:none}
  body.page-prenota .booking-v9-stage-head{align-items:flex-start}
  body.page-prenota .booking-v9-stage-head p{text-align:left}
  body.page-prenota .booking-v11-availability{grid-template-columns:1fr}
  body.page-prenota .booking-v10-order{position:static}
  body.page-prenota .oc-ad-teaser--booking{flex-direction:column;align-items:flex-start}
}
@media(max-width:480px){
  body.page-home .oc-sessions>.shell{width:min(calc(100% - 32px),1170px);padding-block:64px!important}
  body.page-home .oc-sessions .oc-section-head h2{font-size:40px}
  body.page-prenota .booking-v9-head{padding:0 16px}
  body.page-prenota .booking-v9-head h1{font-size:32px}
  body.page-prenota .booking-v9-progress{width:min(calc(100% - 24px),650px)}
  body.page-prenota .booking-v9-progress strong{display:none}
  body.page-prenota .booking-v9-card{padding:17px!important;border-radius:17px}
  body.page-prenota .booking-v9-stage-head{margin-bottom:16px}
  body.page-prenota .booking-v9-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  body.page-home,body.page-prenota{scroll-behavior:auto!important}
  body.page-home *,body.page-prenota *{scroll-behavior:auto!important}
}

/* Rifiniture dopo verifica dei viewport desktop e mobile. */
html:has(> body.page-home){overflow-x:clip!important;scroll-snap-type:none!important}
body.page-home .origo-footer{position:relative!important;inset:auto!important;height:auto!important;min-height:0!important;z-index:1!important}
body.page-home .origo-footer-row{min-height:62px!important}
body.page-prenota .booking-v9-progress .is-current{color:#fff!important;border-color:#111318!important;background:#111318!important}
body.page-prenota .booking-v9-progress .is-current span{color:#fff!important;background:#5b7cff!important}

/* Icona menu leggibile su header nero, solo nelle pagine interessate. */
body.page-home .origo-topbar .menu span:not(.sr-only),body.page-prenota .origo-topbar .menu span:not(.sr-only){background:#111318!important}
