/* Impatto — tema nativo PagineUrbane.
 * Solo presentazione: nessuna logica/modulo duplicato.
 * Colori ereditati esclusivamente dai token della palette del minisito.
 */
.site-theme-impatto{
  --impatto-line:color-mix(in srgb,var(--ink) 16%,transparent);
  --impatto-line-inverse:color-mix(in srgb,var(--paper) 24%,transparent);
  --impatto-surface:color-mix(in srgb,var(--paper) 92%,var(--soft));
  --impatto-radius:clamp(0px,.4vw,6px);
  background:var(--paper);
  color:var(--ink);
}
.site-theme-impatto .mini-container{width:min(1380px,calc(100% - clamp(2rem,6vw,7rem)))}
.site-theme-impatto .mini-nav{background:color-mix(in srgb,var(--paper) 88%,transparent);border-bottom:1px solid var(--impatto-line);backdrop-filter:blur(18px) saturate(130%)}
.site-theme-impatto .mini-nav .mini-container{min-height:82px}
.site-theme-impatto .mini-brand{font-size:clamp(1rem,1.4vw,1.25rem);font-weight:900;letter-spacing:-.035em}
.site-theme-impatto .mini-nav nav{gap:clamp(.8rem,2vw,2rem)}
.site-theme-impatto .mini-nav nav a{position:relative;padding:.4rem 0;font-size:.76rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.site-theme-impatto .mini-nav nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--accent);transition:right .2s ease}
.site-theme-impatto .mini-nav nav a:hover::after{right:0}

.site-theme-impatto .mini-hero{min-height:max(760px,100svh);align-items:end;padding:clamp(9rem,18vh,14rem) 0 clamp(4rem,9vh,7rem);background-color:var(--ink);background-image:linear-gradient(90deg,color-mix(in srgb,var(--ink) 90%,transparent) 0%,color-mix(in srgb,var(--ink) 62%,transparent) 45%,color-mix(in srgb,var(--ink) 20%,transparent) 100%),var(--hero)}
.site-theme-impatto .mini-overlay{position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--ink) 42%,transparent),transparent 48%);pointer-events:none}
.site-theme-impatto .mini-hero-content>span,.site-theme-impatto .mini-kicker{display:inline-flex;align-items:center;gap:.7rem;font-size:.7rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase}
.site-theme-impatto .mini-hero-content>span::before,.site-theme-impatto .mini-kicker::before{content:"";width:2.8rem;height:2px;background:currentColor}
.site-theme-impatto .mini-hero h1{max-width:1180px;margin:clamp(.8rem,2vw,1.5rem) 0 1.25rem;font-size:clamp(4rem,10.8vw,10.5rem);font-weight:900;line-height:.78;letter-spacing:-.075em;overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.site-theme-impatto .mini-hero p{max-width:650px;margin:0;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.65;color:color-mix(in srgb,#fff 82%,transparent)}
.site-theme-impatto .mini-actions{margin-top:2.3rem;gap:.6rem}
.site-theme-impatto .mini-button{min-height:50px;padding:.85rem 1.35rem;border:1px solid transparent;border-radius:var(--impatto-radius);font-size:.78rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;transition:transform .18s ease,background .18s ease,color .18s ease}
.site-theme-impatto .mini-button:hover{transform:translateY(-2px)}
.site-theme-impatto .mini-button-light{background:var(--paper);color:var(--ink)}
.site-theme-impatto .mini-button-ghost{border-color:color-mix(in srgb,#fff 48%,transparent);color:#fff;background:transparent}

.site-theme-impatto .mini-proof{border:0;border-bottom:1px solid var(--impatto-line);background:var(--paper)}
.site-theme-impatto .mini-proof>.mini-container{display:grid;grid-template-columns:repeat(3,1fr);padding-block:0}
.site-theme-impatto .mini-proof>.mini-container>div{min-height:140px;padding:2rem clamp(1rem,3vw,3rem);border-right:1px solid var(--impatto-line)}
.site-theme-impatto .mini-proof>.mini-container>div:first-child{padding-left:0}.site-theme-impatto .mini-proof>.mini-container>div:last-child{border-right:0}
.site-theme-impatto .mini-proof strong{font-size:1.05rem;font-weight:900}.site-theme-impatto .mini-proof span{color:var(--muted);line-height:1.5}

.site-theme-impatto .mini-section{padding:clamp(6rem,11vw,10rem) 0}
.site-theme-impatto .mini-section h2{max-width:1050px;margin:1rem 0 clamp(2.5rem,5vw,5rem);font-size:clamp(3rem,7vw,7.4rem);font-weight:900;line-height:.86;letter-spacing:-.07em;overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.site-theme-impatto .mini-about{grid-template-columns:minmax(0,.95fr) minmax(320px,.65fr);gap:clamp(3rem,9vw,9rem);align-items:start}
.site-theme-impatto .mini-about>div:last-child{padding-top:1rem;border-top:1px solid var(--impatto-line)}
.site-theme-impatto .mini-about p{font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.75}
.site-theme-impatto .mini-location{border-color:var(--impatto-line)}
.site-theme-impatto .mini-section-soft{background:var(--soft)}

.site-theme-impatto .mini-services{grid-template-columns:repeat(12,1fr);gap:0;border-top:1px solid var(--impatto-line)}
.site-theme-impatto .mini-services article{grid-column:span 4;min-height:330px;padding:clamp(1.5rem,3vw,3rem);border:0;border-right:1px solid var(--impatto-line);border-bottom:1px solid var(--impatto-line);border-radius:0;background:transparent}
.site-theme-impatto .mini-services article:nth-child(3n){border-right:0}
.site-theme-impatto .mini-services article>span{font-size:.7rem;letter-spacing:.15em}
.site-theme-impatto .mini-services h3{margin:clamp(4rem,8vw,8rem) 0 .8rem;font-size:clamp(1.5rem,2.4vw,2.3rem);line-height:1;letter-spacing:-.045em}
.site-theme-impatto .mini-services p{line-height:1.65}.site-theme-impatto .mini-services strong{display:block;margin-top:1.2rem;color:var(--accent)}

.site-theme-impatto .mini-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--impatto-line)}
.site-theme-impatto .mini-page-grid a{min-height:310px;padding:clamp(1.7rem,4vw,3.5rem);border:0;border-right:1px solid var(--impatto-line);border-bottom:1px solid var(--impatto-line);border-radius:0;background:transparent;transition:background .2s ease}
.site-theme-impatto .mini-page-grid a:nth-child(even){border-right:0}
.site-theme-impatto .mini-page-grid a:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.site-theme-impatto .mini-page-grid a>span{color:var(--accent);font-size:.7rem;font-weight:900;letter-spacing:.14em}
.site-theme-impatto .mini-page-grid h3{margin:clamp(3rem,6vw,6rem) 0 .8rem;font-size:clamp(1.8rem,3vw,3.2rem);line-height:.95;letter-spacing:-.05em}
.site-theme-impatto .mini-page-grid p{max-width:520px;color:var(--muted);line-height:1.65}.site-theme-impatto .mini-page-grid b{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}

.site-theme-impatto .mini-gallery{grid-template-columns:repeat(12,1fr);gap:clamp(.6rem,1.3vw,1.2rem)}
.site-theme-impatto .mini-gallery img{grid-column:span 4;height:clamp(260px,32vw,480px);border-radius:var(--impatto-radius);box-shadow:none}
.site-theme-impatto .mini-gallery img:first-child{grid-column:span 8;height:clamp(420px,55vw,760px)}
.site-theme-impatto .mini-gallery img:nth-child(4n){grid-column:span 8}

.site-theme-impatto .mini-contact{background:var(--ink);color:var(--paper)}
.site-theme-impatto .mini-contact h2{color:var(--paper)}
.site-theme-impatto .mini-contact .mini-kicker{color:var(--accent)}
.site-theme-impatto .mini-contact-grid{gap:clamp(3rem,8vw,8rem)}
.site-theme-impatto .mini-contact-card,.site-theme-impatto .mini-contact-form-wrap{border:1px solid var(--impatto-line-inverse);border-radius:var(--impatto-radius);box-shadow:none}
.site-theme-impatto .mini-contact-card{background:color-mix(in srgb,var(--paper) 96%,var(--soft));color:var(--ink)}
.site-theme-impatto .mini-contact-form-wrap{background:var(--paper);color:var(--ink)}
.site-theme-impatto .mini-contact-form-wrap h2{color:var(--ink)}
.site-theme-impatto .mini-contact-form input,.site-theme-impatto .mini-contact-form textarea,.site-theme-impatto .mini-contact-form select{border-radius:var(--impatto-radius);box-shadow:none}
.site-theme-impatto .mini-location-section{background:var(--soft)!important}
.site-theme-impatto .mini-location-map{border-radius:var(--impatto-radius)!important;filter:saturate(.8) contrast(1.03)}

/* Moduli condivisi: stesso markup e stessa logica, solo linguaggio visivo Impatto. */
.site-theme-impatto .appointments-public,.site-theme-impatto .vehicles-public,.site-theme-impatto .booking-public,.site-theme-impatto .tables-public{padding-top:0!important;background:var(--impatto-surface)!important;color:var(--ink)}
.site-theme-impatto .appointments-hero,.site-theme-impatto .vehicles-hero,.site-theme-impatto .booking-hero,.site-theme-impatto .tables-hero,.site-theme-impatto .menu-public-hero,.site-theme-impatto .mini-page-hero{padding:clamp(6rem,11vw,11rem) 0!important;background:var(--ink)!important;color:var(--paper)!important}
.site-theme-impatto .appointments-hero h1,.site-theme-impatto .vehicles-hero h1,.site-theme-impatto .booking-hero h1,.site-theme-impatto .tables-hero h1,.site-theme-impatto .menu-public-hero h1,.site-theme-impatto .mini-page-hero h1{max-width:1100px!important;margin:.8rem 0 1rem!important;color:var(--paper)!important;font-size:clamp(3.7rem,9vw,9rem)!important;font-weight:900!important;line-height:.82!important;letter-spacing:-.075em!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;text-wrap:balance}
.site-theme-impatto .appointments-hero p,.site-theme-impatto .vehicles-hero p,.site-theme-impatto .booking-hero p,.site-theme-impatto .tables-hero p,.site-theme-impatto .menu-public-hero p,.site-theme-impatto .mini-page-hero p{max-width:680px!important;color:color-mix(in srgb,var(--paper) 74%,transparent)!important;line-height:1.7!important}
.site-theme-impatto .appointments-content,.site-theme-impatto .vehicles-content,.site-theme-impatto .booking-content,.site-theme-impatto .tables-content,.site-theme-impatto .menu-public-content{background:var(--impatto-surface)!important}
.site-theme-impatto .appointments-calendar-card,.site-theme-impatto .appointments-form,.site-theme-impatto .vehicles-filters,.site-theme-impatto .vehicle-card,.site-theme-impatto .vehicle-detail,.site-theme-impatto .booking-search,.site-theme-impatto .booking-room,.site-theme-impatto .booking-policy,.site-theme-impatto .booking-empty,.site-theme-impatto .tables-form-card,.site-theme-impatto .gymflow-card,.site-theme-impatto .mini-event-card,.site-theme-impatto .menu-category-heading,.site-theme-impatto .menu-service-tabs button,.site-theme-impatto .menu-service-single{border-radius:var(--impatto-radius)!important;border-color:var(--impatto-line)!important;box-shadow:none!important}
.site-theme-impatto .appointments-form input,.site-theme-impatto .appointments-form select,.site-theme-impatto .appointments-form textarea,.site-theme-impatto .vehicles-filters input,.site-theme-impatto .vehicles-filters select,.site-theme-impatto .booking-search input,.site-theme-impatto .booking-search select,.site-theme-impatto .booking-form input,.site-theme-impatto .booking-form select,.site-theme-impatto .booking-form textarea,.site-theme-impatto .tables-form input,.site-theme-impatto .tables-form select,.site-theme-impatto .tables-form textarea,.site-theme-impatto .event-filters input{border-radius:var(--impatto-radius)!important;box-shadow:none!important}
.site-theme-impatto .appointments-public .mini-button,.site-theme-impatto .vehicles-public .mini-button,.site-theme-impatto .booking-public .mini-button,.site-theme-impatto .tables-public .mini-button,.site-theme-impatto .menu-public .mini-button,.site-theme-impatto .event-filters button{border-radius:var(--impatto-radius)!important;background:var(--ink)!important;color:var(--paper)!important}
.site-theme-impatto .menu-category-tabs button.is-active,.site-theme-impatto .menu-category-tabs button:hover,.site-theme-impatto .menu-service-tabs button.is-active,.site-theme-impatto .menu-service-tabs button:hover{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--paper)!important}
.site-theme-impatto .event-result,.site-theme-impatto .event-history-card,.site-theme-impatto .event-video{border-radius:var(--impatto-radius)!important;box-shadow:none!important}.site-theme-impatto .event-history-card{transform:none!important}

@media(max-width:900px){
  .site-theme-impatto .mini-container{width:min(100% - 2rem,1380px)}
  .site-theme-impatto .mini-hero{min-height:760px}.site-theme-impatto .mini-hero h1{font-size:clamp(4rem,15vw,7rem)}
  .site-theme-impatto .mini-about{grid-template-columns:1fr;gap:2.5rem}.site-theme-impatto .mini-services article{grid-column:span 6}.site-theme-impatto .mini-services article:nth-child(3n){border-right:1px solid var(--impatto-line)}.site-theme-impatto .mini-services article:nth-child(2n){border-right:0}
  .site-theme-impatto .mini-proof>.mini-container{grid-template-columns:1fr}.site-theme-impatto .mini-proof>.mini-container>div{min-height:auto;padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--impatto-line)}.site-theme-impatto .mini-proof>.mini-container>div:last-child{border-bottom:0}
}
@media(max-width:620px){
  .site-theme-impatto .mini-nav .mini-container{min-height:70px}.site-theme-impatto .mini-hero{min-height:680px;padding-bottom:3.5rem}.site-theme-impatto .mini-hero h1{font-size:clamp(3.4rem,18vw,5.5rem);line-height:.82}
  .site-theme-impatto .mini-section{padding:5.5rem 0}.site-theme-impatto .mini-section h2{font-size:clamp(2.8rem,14vw,4.8rem)}
  .site-theme-impatto .mini-services{grid-template-columns:1fr}.site-theme-impatto .mini-services article{grid-column:auto;min-height:250px;padding:1.7rem 0;border-right:0!important}.site-theme-impatto .mini-services h3{margin-top:3.5rem}
  .site-theme-impatto .mini-page-grid{grid-template-columns:1fr}.site-theme-impatto .mini-page-grid a{min-height:250px;padding:1.7rem 0;border-right:0}.site-theme-impatto .mini-page-grid h3{margin-top:3rem}
  .site-theme-impatto .mini-gallery{grid-template-columns:1fr}.site-theme-impatto .mini-gallery img,.site-theme-impatto .mini-gallery img:first-child,.site-theme-impatto .mini-gallery img:nth-child(4n){grid-column:auto;height:300px}
  .site-theme-impatto .appointments-hero,.site-theme-impatto .vehicles-hero,.site-theme-impatto .booking-hero,.site-theme-impatto .tables-hero,.site-theme-impatto .menu-public-hero,.site-theme-impatto .mini-page-hero{padding:4.5rem 0!important}
  .site-theme-impatto .appointments-hero h1,.site-theme-impatto .vehicles-hero h1,.site-theme-impatto .booking-hero h1,.site-theme-impatto .tables-hero h1,.site-theme-impatto .menu-public-hero h1,.site-theme-impatto .mini-page-hero h1{font-size:clamp(3rem,16vw,5rem)!important}
}
@media(prefers-reduced-motion:reduce){.site-theme-impatto .mini-button,.site-theme-impatto .mini-nav nav a::after{transition:none}}
