/* Mobile layout and touch behavior, shared across every page. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,video{max-width:100%}button,a{touch-action:manipulation}
.service-panel,.service-stage,.seo-copy,.vp-intro>*,.vp-contact-grid>*,.vp-package,.menu-service-group{min-width:0}
.footer-bottom a,.footer-legal a,.vp-breadcrumb,.menu-bottom a{overflow-wrap:anywhere}
.janus-menu{height:100dvh;max-height:100dvh;-webkit-overflow-scrolling:touch}
.janus-menu nav a:after{display:none}
.whatsapp-float{right:max(18px,calc(env(safe-area-inset-right) + 12px));bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px))}
@media(max-width:900px),(pointer:coarse){
  .work-section{height:auto!important}.work-sticky{position:relative;height:auto;padding:65px 5%}
  .work-track{width:100%;display:flex;overflow-x:auto;gap:24px;transform:none!important;scroll-snap-type:x proximity;padding-bottom:20px;overscroll-behavior-x:contain}
  .work-card{flex:0 0 78%;scroll-snap-align:start}.work-image{height:auto;aspect-ratio:4/3;min-height:0}
  .work-hint{display:none}.work-heading h2{font-size:clamp(40px,8vw,80px)}
  .vp-packages{grid-template-columns:1fr;gap:24px}.vp-package p{min-height:0}
  .vp-package h3{font-size:90px}.vp-package .vp-button{font-size:12px;min-height:48px}
}
@media(max-width:700px){
  .section-pad{padding:60px 6%}.video-page{--vp-space:6vw}
  .janus-menu .menu-links{padding:22px 6%;gap:4px}
  .janus-menu .menu-links a{min-height:48px}.menu-service-group a{min-height:48px;font-size:14px}
  .janus-menu .menu-services{padding:28px 6% 34px}.menu-service-grid{gap:24px 18px}
  .janus-menu .menu-top{padding-top:max(12px,env(safe-area-inset-top));height:auto;min-height:76px}
  .janus-menu .menu-bottom{padding-bottom:max(26px,calc(env(safe-area-inset-bottom) + 16px))}
  .menu-location{max-width:46%;line-height:1.4}.menu-location strong{font-size:12px}
  .seo-hero{padding:115px 6% 50px;min-height:0}.seo-related{display:flex;gap:12px 22px}
  .seo-related a,.vp-text-link,.video-service-links a{display:inline-flex;align-items:center;min-height:44px;line-height:1.5}
  .seo-art{max-height:320px}.seo-faq article{min-width:0}
  .vp-button{max-width:100%;white-space:normal;line-height:1.45;min-height:48px}
  .vp-button>span{flex-shrink:0}.vp-intro{gap:24px;margin-bottom:38px}
  .vp-section{padding-top:55px;padding-bottom:55px}.vp-kicker{margin-bottom:35px;line-height:1.5}
  .vp-contact-grid .vp-button{width:100%;font-size:12px}
  .vp-reels{gap:16px;padding-top:35px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
  .vp-reels .vp-film{flex-basis:78%;scroll-snap-align:start}.vp-reels .vp-film:nth-child(2n){padding-top:0}
  .vp-film figcaption{flex-direction:row;align-items:center;line-height:1.4}
  .vp-cross strong{max-width:100%;padding-right:28px;font-size:clamp(38px,10vw,62px)}
  .vp-cross-arrow{font-size:54px;right:5%;top:28px}.vp-cross>span:first-child{display:block;max-width:80%;line-height:1.5}
  .footer-bottom{display:grid;gap:22px;line-height:1.5}.footer-legal{padding-bottom:80px;gap:14px}
  .footer-legal a{min-height:44px;display:flex;align-items:center}
}
@media(max-width:660px){
  .service-round{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;aspect-ratio:auto;margin:0 0 24px;min-height:0}
  .service-round .compass-orbit{display:none}
  .service-round .compass-seal{position:relative;inset:auto;grid-column:1/-1;justify-self:center;width:70px;height:70px;margin:0 0 18px}
  .service-round .service-direction{position:relative;inset:auto;transform:none;width:100%;min-height:70px;display:flex;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px;border:1px solid #ffffff30;text-align:left}
  .service-round .service-direction>span{font-size:26px;flex-shrink:0}
  .service-round .service-direction>b{font-size:11px;line-height:1.4;letter-spacing:.2px;max-width:none}
  .service-round .service-direction[aria-selected=true]{border-color:var(--orange);background:#ff67250b}
  .service-round .compass-caption{position:static;grid-column:1/-1;transform:none;margin-top:8px;line-height:1.5}
  .service-stage,.service-panel{min-height:0}.service-panel h3{font-size:clamp(38px,10vw,62px)}
  .service-panel p{font-size:16px;line-height:1.6}.service-stage:after{display:none}.service-ghost{opacity:.12;max-width:100%;overflow:hidden}
}
@media(max-width:560px){
  header.minimal-header{top:max(16px,env(safe-area-inset-top));left:6%;width:88%}
  .hero-sequence .hero{height:100svh;min-height:520px;max-height:none}
  .hero-title-wrap{right:6%;width:88%;bottom:16%}.hero-title-wrap h1{font-size:11.7vw;line-height:1.08}
  .hero-signature{font-size:12px;line-height:1.5}.hero-scroll{left:6%;bottom:6%;max-width:70%}
  .hero-pointer-effect{display:none}
  .vp-hero{height:auto;min-height:0;max-height:none}.vp-hero-content{height:auto;min-height:100svh;padding-top:118px;padding-bottom:38px;gap:28px}
  .vp-hero h1,.seo-copy h1{font-size:clamp(42px,13vw,74px);line-height:.98;overflow-wrap:normal}
  .vp-social-copy h1{font-size:clamp(56px,18vw,92px);line-height:.95}
  .vp-hero-bottom{gap:18px}.vp-hero-bottom .vp-button{width:100%;font-size:11px}
  .vp-breadcrumb{font-size:10px;letter-spacing:.8px;line-height:1.6;margin-bottom:25px}
  .video-page h2{font-size:clamp(38px,11vw,62px);line-height:1}.video-page .vp-lead{font-size:22px}
  .vp-benefits{gap:16px}.vp-benefits p{font-size:14px}.vp-included li{line-height:1.55}
  .vp-social-visual{margin-left:6%;margin-right:6%;height:auto;aspect-ratio:1}
  .vp-visual-label{left:16px;bottom:16px;right:16px;font-size:9px;line-height:1.5}
  .vp-package{padding:24px}.vp-package h3{font-size:100px}
  .work-track{display:flex;flex-direction:column;overflow:visible;gap:32px}.work-card{flex:auto;width:100%;padding:0!important}
  .work-image{height:auto;aspect-ratio:4/3}.team-person h3{font-size:17px;line-height:1.2}.team-person p{font-size:13px}
  .big-contact{font-size:13.4vw}.vp-contact h2{overflow-wrap:anywhere}
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape){
  .hero-sequence .hero{height:100svh;min-height:360px}.hero-title-wrap{width:62%;right:5%;bottom:12%}.hero-title-wrap h1{font-size:7.6vw}
  .hero-scroll{bottom:7%;font-size:9px}.hero-signature{font-size:11px;margin-top:10px}
  .janus-menu .menu-top{min-height:68px}.janus-menu .menu-layout{min-height:0}
}
@media(hover:none){
  .vp-button:hover,.vp-package:hover,.work-card:hover img{transform:none}
  .janus-menu::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
  .janus-menu .menu-top,.janus-menu .menu-bottom{backdrop-filter:none;-webkit-backdrop-filter:none}
}
.hero-media .hero-film,.hero-media .hero-loop-fallback{max-width:none}
@media(max-width:660px){.service-round .service-directions{position:static;inset:auto;grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

.not-found{min-height:100svh;padding:150px 6% 100px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px}.not-found h1{font-family:var(--display);font-size:clamp(54px,10vw,140px);line-height:.95;margin:0}.not-found h1 em{color:var(--orange);font-style:normal}.not-found p{line-height:1.7;max-width:540px}
/* footer compatto su telefono: link in due colonne */
@media (max-width:700px){.vp-contact .footer-legal{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.vp-contact .footer-legal>span{grid-column:1/-1;margin-bottom:8px}.vp-contact .footer-legal a{min-height:44px}}
/* mobile: tocco e leggibilità */
.video-page main{overflow-x:clip}
@media (max-width:700px){
  .vp-breadcrumb{font-size:11px;letter-spacing:.9px}
  a.vp-breadcrumb{padding:12px 0;margin-bottom:13px}
  nav.vp-breadcrumb a{display:inline-block;padding:14px 0}
  .footer-bottom a{padding:12px 0}
  .seo-territory .sj-cities{gap:0 22px}
  .seo-territory .sj-cities a{display:inline-flex;align-items:center;min-height:44px;padding:0;border-bottom:0;text-decoration:underline;text-underline-offset:4px}
  .fx-404-links a{display:inline-flex;align-items:center;min-height:44px}
  .vp-down{font-size:11px;display:inline-flex;align-items:center;min-height:44px}
  .vp-film figcaption span{font-size:11px}
  .ba-meta{font-size:11px}
}
