/* Mobile experience, touch interaction and progressively enhanced motion. */
html{scroll-padding-bottom:20px}
body{overflow-wrap:break-word}
.header-inner .brand>span,.mobile-menu-top .brand>span{display:flex;flex-direction:column;gap:2px;line-height:1}
.header-inner .brand small,.mobile-menu-top .brand small{margin-top:0;line-height:1.2}
.topline .wrap{align-items:center;flex-wrap:wrap;gap:6px 20px}
.opening-status{display:inline-flex;align-items:baseline;gap:8px;font-size:.875rem;line-height:1.5;font-weight:500;color:var(--muted)}
.opening-status.is-open{color:#247047}
.opening-status.is-closed{color:var(--muted)}
.mobile-menu-bottom .opening-status{display:flex;margin-bottom:18px;color:#e4cfdd}
.mobile-menu-bottom .opening-status.is-open{color:#b2eac9}
.contacts .opening-status{display:flex;margin-bottom:14px;color:#ddced8}
.contacts .opening-status.is-open{color:#b2eac9}
.menu-button{display:none!important}
.mobile-menu{padding:0;border:0;margin:0 0 0 auto;width:min(100%,560px);max-width:100%;height:100%;height:100dvh;max-height:100%;max-height:100dvh;background:var(--plum);color:#fff;overscroll-behavior:contain}
.mobile-menu::backdrop{background:rgb(25 13 23 / .48);backdrop-filter:blur(5px)}
.mobile-menu-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-shrink:0;padding:calc(20px + env(safe-area-inset-top)) 25px 20px;border-bottom:1px solid #ffffff25}
.mobile-menu-top .brand img{background:#fff;border-radius:50%;padding:4px}
.mobile-menu-top .brand small{color:#ead1df}
.mobile-menu-top .brand{min-width:0;white-space:normal}
.mobile-menu-top .brand img{flex-shrink:0}
.mobile-menu-links>a>span:nth-child(2){overflow-wrap:anywhere}
.menu-close{width:46px;height:46px;display:grid;place-items:center;flex-shrink:0;border:1px solid #ffffff55;border-radius:50%;background:transparent;color:#fff}
.menu-close svg{width:24px;height:24px}
.menu-close:hover{background:#ffffff17}
.mobile-menu-body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:29px 30px calc(30px + env(safe-area-inset-bottom));flex:1;min-height:0;display:flex;flex-direction:column}
.mobile-menu-body>.eyebrow{color:#edb7d0;letter-spacing:.12em;font-size:.75rem;margin-bottom:15px}
.mobile-menu-links{margin-bottom:30px}
.mobile-menu-links>a{display:grid;grid-template-columns:24px 1fr 24px;align-items:center;column-gap:19px;padding:18px 0;min-height:74px;border-bottom:1px solid #ffffff29;font-size:clamp(1.8rem,7vw,2.5rem);font-weight:500;letter-spacing:-.045em;line-height:1.17}
.mobile-menu-links .menu-index{align-self:start;padding-top:9px;font-size:.75rem;letter-spacing:0;color:#e6b4cd}
.mobile-menu-links .arrow{font-size:1.55rem;justify-self:end;color:#e6b4cd}
.mobile-menu-links a:hover{color:#f4c3da}
.mobile-menu-links a[aria-current]{color:#f4c3da}
.mobile-menu-bottom{margin-top:auto;padding-top:10px}
.mobile-menu-bottom p{color:#e4cfdd;font-size:.85rem}
.menu-phone{display:flex;align-items:center;justify-content:space-between;font-size:1.65rem;font-weight:600;letter-spacing:-.03em;margin:8px 0 20px;min-height:44px}
.mobile-menu-bottom .btn{width:100%;min-height:50px}
.mobile-menu-bottom small{display:block;font-size:.75rem;line-height:1.9;color:#e4cfdd;margin-top:20px}
.menu-lines{position:relative;width:18px;height:12px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
.menu-lines::after{content:'';position:absolute;left:0;right:4px;top:4px;border-top:1.5px solid currentColor}

.menu-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.search-box{min-height:52px}
#servizi .section-head{display:block}
#servizi .section-head>p{max-width:680px;margin-top:23px}
.services{border:0;gap:16px}
.service-card{border:1px solid var(--line);border-radius:15px}
.search-box input{font-size:1rem;min-width:0;min-height:48px}
.search-box:focus-within{border-color:var(--rose);box-shadow:0 2px 0 var(--rose)}
.contacts a,.footer-bottom a{display:inline-block;min-height:44px;align-content:center}
.service-card,.btn,.menu-close{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn:active,.menu-close:active{transform:scale(.97)}
.service-card:active{background:var(--blush)}
.hero-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover) and (pointer:fine){.hero-photo:hover img{transform:scale(1.025)}.service-card .arrow{transition:transform .25s}.service-card:hover .arrow{transform:translate(3px,-3px)}}
@media(max-width:950px){
 .topline .address-top{display:none}
 .menu-ready .menu-button{display:flex!important;align-items:center;justify-content:center;gap:12px;min-height:46px;min-width:96px}
 .nav{display:none!important}
 .no-dialog .header-inner{height:auto;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
 .no-dialog .nav{display:flex!important;position:static;flex-basis:100%;box-shadow:none;flex-direction:row;flex-wrap:wrap;padding:12px 0 0}
 .menu-button{border-color:var(--line);font-size:.875rem;color:var(--plum);background:#fff}
 .header-inner>.btn{min-height:46px}
 .detail-body{min-width:0}
 .detail-content{min-width:0}
 .breadcrumb{font-size:.875rem;line-height:1.8}
}
@media(max-width:600px){
 .iubenda-tp-btn.iubenda-cs-preferences-link{bottom:calc(12px + env(safe-area-inset-bottom))!important}
 .topline .wrap{flex-direction:column;align-items:center;gap:3px;padding:8px 0;text-align:center}
 .wrap{width:calc(100% - 40px)}
 .header-inner{height:auto;min-height:74px;gap:14px;flex-wrap:wrap;padding:10px 0}
 .header-inner .brand{min-width:0;white-space:normal}
 .header-inner .brand img{flex-shrink:0}
 .brand{gap:8px}
 .brand strong{font-size:1.4rem}
 .brand small{font-size:.55rem;letter-spacing:.065em}
 .hero{padding-top:25px}
 .hero-copy{padding:0}
 .hero .eyebrow{font-size:.7rem;letter-spacing:.055em;line-height:1.7;margin-bottom:17px}
 .hero h1{font-size:clamp(2.5rem,10vw,3.75rem);line-height:1.1;letter-spacing:-.06em;margin-bottom:20px}
 .hero-first-break{display:none}
 .hero-copy p{font-size:1rem;line-height:1.75}
 .hero-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;margin-top:24px;align-items:center}
 .hero-actions .btn{font-size:.875rem;min-height:52px;padding:14px 20px;gap:16px}
 .hero-actions .text-link{font-size:.875rem;min-height:48px;display:inline-flex;align-items:center;border-bottom:0;text-decoration:underline;text-decoration-color:#bfaeb9;text-underline-offset:6px}
 .hero-grid{gap:25px}
 .hero-photo{height:310px;height:clamp(280px,78vw,390px);border-radius:20px}
 .photo-note{padding:13px 17px;bottom:15px;left:15px;max-width:calc(100% - 30px);border-radius:11px}
 .photo-note strong{font-size:.875rem}
 .photo-note small{font-size:.75rem;line-height:1.6}
 .trust{margin-top:25px;padding:5px 0}
 .trust-item{padding:17px 3px!important;gap:18px!important}
 .trust strong{font-size:1.4rem;min-width:108px}
 .trust span{font-size:.875rem;line-height:1.55}
 h2{font-size:clamp(2rem,8.4vw,2.65rem);line-height:1.18;letter-spacing:-.045em}
 .section{padding:58px 0}
 .section-head>p,.step p,.service-card p,.detail-aside p{font-size:1rem;line-height:1.75}
 .section-head>p{margin-top:20px}
 .services{border:none;gap:12px}
 .service-card{border:1px solid var(--line);border-radius:15px;padding:23px 22px 25px;min-width:0}
 .service-card h3{font-size:1.35rem;line-height:1.35;margin-bottom:10px}
 .service-card p{padding-bottom:24px}
 .service-number{font-size:.8rem;margin-bottom:16px}
 .service-card .arrow{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--blush);right:19px;bottom:16px;font-size:1.2rem}
 .help-card{padding:27px 22px}
 .help-card a{font-size:1rem;min-height:44px;display:flex;align-items:center}
 .help-card h3{font-size:1.75rem}
 .about-grid{gap:32px}
 .step{grid-template-columns:28px minmax(0,1fr);gap:16px;padding:25px 0}
 .step h3{font-size:1.2rem;line-height:1.4}
 .lab{gap:28px}
 .lab-photo{height:290px;border-radius:16px}
 .lab-meta{flex-wrap:wrap;gap:18px 30px}
 .lab-meta strong{font-size:1rem}
 .lab-meta span{font-size:.875rem}
 .lab .btn{width:100%;min-height:52px;font-size:.875rem;gap:18px}
 .contact-top p{font-size:1rem}
 .contact-actions{display:grid;grid-template-columns:1fr;gap:12px}
 .contact-actions .btn{min-height:52px;font-size:1rem;white-space:normal;text-align:center}
 .contacts{gap:24px;padding-top:30px}
 .contacts>div+div{border-top:1px solid #ffffff25;padding-top:24px}
 .contacts p,.contacts a{font-size:1rem}
 .contacts strong{overflow-wrap:anywhere}
 .contacts small{font-size:.8rem}
 .footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))}
 .footer-top>p{font-size:.875rem}
 .footer-bottom{font-size:.8rem;padding-top:19px;gap:7px}
 .footer-bottom div{gap:25px}
 
 
 
 .detail-hero{padding:34px 0}
 .detail-hero h1{font-size:clamp(2.05rem,8.8vw,3.1rem);overflow-wrap:anywhere;hyphens:auto;line-height:1.14;letter-spacing:-.045em}
 .detail-hero>p{font-size:1rem;line-height:1.8}
 .tags{gap:8px;margin-top:22px}
 .tags span{font-size:.8rem;padding:7px 12px}
 .detail-body{gap:15px;padding-top:29px}
 .detail-content h2{font-size:1.8rem;line-height:1.2}
 .detail-content section{margin-bottom:35px}
 .detail-content h3{font-size:1.2rem;line-height:1.4}
 .detail-content ul{padding-left:22px}
 .detail-content li{padding:7px 0}
 .detail-aside{padding:27px 23px;border-radius:16px}
 .detail-aside .btn{min-height:52px;font-size:1rem}
 .detail-aside small{font-size:.875rem}
 .related a{display:inline-flex;align-items:center;min-height:48px}
}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.brand img{width:35px;height:35px}.brand strong{font-size:1.25rem}.brand small{font-size:.5rem}.menu-ready .menu-button{min-width:83px;padding:9px 12px;gap:9px}.hero-actions{grid-template-columns:1fr;gap:5px}.hero-actions .text-link{justify-content:center}.hero h1{font-size:2.55rem}.mobile-menu-top{padding-left:18px;padding-right:18px}.mobile-menu-body{padding-left:22px;padding-right:22px}.mobile-menu-links>a{column-gap:13px;font-size:1.85rem}}
@media(max-height:500px) and (orientation:landscape){.mobile-menu-top{padding-top:12px;padding-bottom:12px}.mobile-menu-body{padding-top:20px}.mobile-menu-links>a{padding:13px 0;min-height:60px;font-size:1.7rem}.mobile-menu-bottom{padding-top:0}.footer{padding-bottom:20px}}
@keyframes enter-soft{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes menu-enter{from{opacity:.4;transform:translateX(25px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:no-preference){
 .hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>p,.hero-actions,.hero-photo{animation:enter-soft .65s cubic-bezier(.2,.7,.2,1) both}
 .hero-copy>h1{animation-delay:.06s}.hero-copy>p{animation-delay:.12s}.hero-actions{animation-delay:.18s}.hero-photo{animation-delay:.12s}
 .mobile-menu[open]{animation:menu-enter .28s ease-out}
 .mobile-menu[open] .mobile-menu-links>a{animation:enter-soft .35s ease-out both}
 .mobile-menu-links>a:nth-child(2){animation-delay:.035s}.mobile-menu-links>a:nth-child(3){animation-delay:.07s}.mobile-menu-links>a:nth-child(4){animation-delay:.105s}
 .reveal.in-view{animation:enter-soft .6s cubic-bezier(.2,.7,.2,1) both}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:active,.menu-close:active{transform:none}}
