/* Specificity intentionally exceeds the cinematic viewport defaults. */
.cinematic-home #main > .visual-section { --visual-original-height:var(--screen-height,calc(100svh - 88px)); }
.cinematic-home #main > .visual-section[class*="v-height-"] { min-height:var(--v-height); height:auto; max-height:none; }
.cinematic-home #main > .visual-section.v-padding-top, .site-footer.v-padding-top { padding-top:var(--visual-padding-top); }
.cinematic-home #main > .visual-section.v-padding-bottom, .site-footer.v-padding-bottom { padding-bottom:var(--visual-padding-bottom); }
.cinematic-home #main > .visual-section[class*="v-align-"] :is(h2,.editorial-body,.about-copy,.trust-items,.cta-inner > div),
.site-footer[class*="v-align-"] { text-align:var(--v-align); }
.cinematic-home #main > .visual-section[class*="v-width-"] :is(h2,.editorial-body,.about-copy,.cta-inner > div) {
  max-width:min(100%,var(--v-width,var(--v-original-width,100%))); margin-inline-start:var(--v-margin-start,0); margin-inline-end:var(--v-margin-end,auto);
}
.cinematic-home #main > .visual-section[class*="v-title-"] :is(h2,.trust-items > span:nth-child(2)) { font-size:var(--v-title-size); overflow-wrap:anywhere; }
.cinematic-home #main > .visual-section .section-image { object-fit:var(--visual-image-fit,cover); }
.cinematic-home :is(#servizi,#contatti) .section-image { object-fit:var(--visual-image-fit,cover); }
.cinematic-home #main > #water .cta-photo { object-fit:var(--visual-image-fit,cover); }
.cinematic-home #main > #water[data-visual-overlay]::after { background:rgb(0 0 0 / var(--visual-overlay)); }
.cinematic-home #water[style*="--visual-image-fit:contain"] .cta-photo { transform:none !important; inset:0; height:100%; }
.cinematic-home #trust.v-layout-centered .trust-items { display:flex; flex-direction:column; align-items:center; text-align:center; }
.cinematic-home #trust.v-layout-centered .editorial-body { text-align:center; }
.cinematic-home #trust[class*="v-width-"] .trust-items > span:nth-child(2) { max-width:min(100%,var(--v-width,1000px)); margin-inline-start:var(--v-margin-start,0); margin-inline-end:var(--v-margin-end,auto); }
.cinematic-home #main > :is(#home,#water).v-layout-overlay::after { background:rgb(0 0 0 / var(--visual-overlay,.4)); }
.cinematic-home #water.v-layout-overlay .cta-inner { padding-left:0; }
.cinematic-home #water.v-layout-overlay .cta-inner > div { max-width:min(100%,var(--v-width,800px)); }
.cinematic-home #chi-siamo .visual-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px 48px; align-items:start; }
.cinematic-home #chi-siamo .visual-split > .about-label { grid-column:1 / -1; grid-row:1; }
.cinematic-home #chi-siamo .visual-split-image { grid-column:1; grid-row:2; min-width:0; }
.cinematic-home #chi-siamo .visual-split-image img { width:100%; height:auto; aspect-ratio:4 / 5; margin:0; }
.cinematic-home #chi-siamo .visual-split > .about-copy { grid-column:2; grid-row:2; }
.cinematic-home #chi-siamo.v-layout-imageright .visual-split-image { grid-column:2; }
.cinematic-home #chi-siamo.v-layout-imageright .visual-split > .about-copy { grid-column:1; }
.cinematic-home #chi-siamo .visual-split .about-detail { display:block; max-width:none; margin-top:32px; }
.cinematic-home #chi-siamo .visual-split .about-detail > * + * { margin-top:20px; }
.cinematic-home #main > .v-layout-grid :is(.values-grid,.workflow,.gallery-grid) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.cinematic-home #main > .v-layout-grid .workflow { counter-reset:none; }
.cinematic-home #main > .v-layout-grid .workflow::before,
.cinematic-home #main > .v-layout-grid .workflow::after,
.cinematic-home #main > .v-layout-grid .workflow li::before { display:none; }
.cinematic-home #main > .v-layout-grid .workflow li { padding:24px 0 0; border-top:1px solid var(--accent,#d99a32); }
.cinematic-home #interventi.v-layout-grid .gallery-item { grid-column:auto; grid-row:auto; margin:0; min-width:0; }
.cinematic-home #interventi.v-layout-grid .gallery-item img { width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; }
.cinematic-home #novita.v-layout-list .news-list { display:grid; grid-template-columns:minmax(0,1fr); }
.cinematic-home #novita.v-layout-list .news-item { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:32px; }
.cinematic-home #novita.v-layout-list .news-item:not(:has(> a)) { grid-template-columns:minmax(0,1fr); }
.cinematic-home #novita.v-layout-list .news-item img { margin:0; }
.site-footer.v-footer-compact .footer-signature { padding-block:24px; }
.site-footer.v-footer-compact .footer-signature > a:first-child { font-size:40px; }
.site-footer.v-footer-compact .footer-top { padding-block:24px; gap:24px; }
.site-footer[class*="v-align-"] .footer-signature { justify-content:space-between; }
@media(min-width:768px) {
  .cinematic-home #contatti.v-layout-reversed .contact-copy { grid-column:2; grid-row:1; }
  .cinematic-home #contatti.v-layout-reversed :is(.contact-form,.contact-preview) { grid-column:1; grid-row:1; }
}
@media(max-width:767px) {
  .cinematic-home #trust[class*="vm-width-"] .trust-items > span:nth-child(2) { max-width:min(100%,var(--v-width,1000px)); }
  .cinematic-home #main > .visual-section[class*="vm-height-"] { min-height:var(--v-height); height:auto; max-height:none; }
  .cinematic-home #main > .visual-section.vm-padding-top, .site-footer.vm-padding-top { padding-top:var(--visual-mobile-padding-top); }
  .cinematic-home #main > .visual-section.vm-padding-bottom, .site-footer.vm-padding-bottom { padding-bottom:var(--visual-mobile-padding-bottom); }
  .cinematic-home #main > .visual-section[class*="vm-align-"] :is(h2,.editorial-body,.about-copy,.trust-items,.cta-inner > div),
  .site-footer[class*="vm-align-"] { text-align:var(--v-align); }
  .cinematic-home #main > .visual-section[class*="vm-width-"] :is(h2,.editorial-body,.about-copy,.cta-inner > div) { max-width:min(100%,var(--v-width,var(--v-original-width,100%))); }
  .cinematic-home #main > .visual-section[class*="v-title-"] :is(h2,.trust-items > span:nth-child(2)) { font-size:var(--v-mobile-title-size); }
  .cinematic-home #chi-siamo .visual-split { grid-template-columns:minmax(0,1fr); gap:24px; }
  .cinematic-home #chi-siamo .visual-split > :is(.visual-split-image,.about-copy) { grid-column:1; grid-row:auto; }
  .cinematic-home #chi-siamo .visual-split-image img { aspect-ratio:4 / 3; }
  .cinematic-home #main > .v-layout-grid :is(.values-grid,.workflow,.gallery-grid),
  .cinematic-home #novita.v-layout-list .news-item { grid-template-columns:minmax(0,1fr); gap:24px; }
  .site-footer.v-footer-compact .footer-signature > a:first-child { font-size:28px; }
}
.cinematic-home #main > :is(#home,#servizi,#contatti) { --visual-original-height: var(--screen-height,calc(100svh - 88px)); --visual-original-padding: 64px; }
.cinematic-home #main > #home { --visual-original-height: calc(100svh - var(--screen-bottom,0px)); --visual-original-padding: 136px; }
.cinematic-home #main > #servizi { --visual-original-padding: 0px; }
.v-height-original { --v-height: var(--visual-original-height); }
.v-height-automatic { --v-height: 0px; }
.v-height-compact { --v-height: 60svh; }
.v-height-spacious { --v-height: 85svh; }
.v-height-fullscreen { --v-height: var(--visual-original-height); }
.cinematic-home #main > :is(#home,#servizi,#contatti)[class*="v-height-"] { min-height:var(--v-height); height:auto; max-height:none; }
.cinematic-home #main > #servizi[class*="v-height-"] > .container { min-height:var(--v-height); }
.cinematic-home #main > :is(#servizi,#contatti).v-padding-top { padding-top:var(--visual-padding-top); }
.cinematic-home #main > :is(#servizi,#contatti).v-padding-bottom { padding-bottom:var(--visual-padding-bottom); }
.cinematic-home #main > #home.v-padding-top .hero-content { padding-top:var(--visual-padding-top); }
.cinematic-home #main > #home.v-padding-bottom .hero-content { padding-bottom:var(--visual-padding-bottom); }
.v-align-left { --v-align:left; --v-margin-start:0; --v-margin-end:auto; }
.v-align-center { --v-align:center; --v-margin-start:auto; --v-margin-end:auto; }
.v-align-right { --v-align:right; --v-margin-start:auto; --v-margin-end:0; }
.v-align-original { --v-align:start; --v-margin-start:0; --v-margin-end:auto; }
.v-width-original { --v-width:initial; }
.v-width-narrow { --v-width:560px; }
.v-width-medium { --v-width:800px; }
.v-width-wide { --v-width:1120px; }
.cinematic-home #main :is(#home,#servizi,#contatti)[class*="v-align-"] :is(.hero-content h1,.hero-baseline,.contact-copy,.service-panel-copy h3,.service-panel-copy p) {
  text-align:var(--v-align,start); margin-inline-start:var(--v-margin-start,0); margin-inline-end:var(--v-margin-end,auto);
}
.service-panel-copy h3 { --v-original-width:1100px; }
.service-panel-copy p { --v-original-width:580px; }
.cinematic-home #main :is(#home,#servizi,#contatti)[class*="v-width-"] :is(.hero-content h1,.hero-baseline,.contact-copy,.service-panel-copy h3,.service-panel-copy p) {
  max-width:min(100%,var(--v-width,var(--v-original-width,100%)));
}
.v-title-small { --v-title-size:56px; --v-mobile-title-size:36px; }
.v-title-medium { --v-title-size:80px; --v-mobile-title-size:48px; }
.v-title-large { --v-title-size:112px; --v-mobile-title-size:64px; }
.cinematic-home #main > :is(#home,#servizi,#contatti)[class*="v-title-"] :is(h1,h2,.service-panel h3) { font-size:var(--v-title-size); }
.cinematic-home #home[class*="v-title-"] .hero-family { font-size:.55em; }
.cinematic-home #home .hero-image, .cinematic-home #servizi .service-photo img { object-fit:var(--visual-image-fit,cover); }
.cinematic-home #home[data-visual-overlay]::after { background:rgb(0 0 0 / var(--visual-overlay)); }
.cinematic-home #servizi .service-panel[data-visual-overlay]::after { inset:0; background:rgb(0 0 0 / var(--visual-overlay)); }
.cinematic-home #home[style*="--visual-image-fit:contain"] .hero-media { inset:0; }
.cinematic-home :is(#home,.service-panel)[style*="--visual-image-fit:contain"] img { animation:none !important; transform:none !important; }
@media(min-width:768px) {
  .cinematic-home #contatti.v-reversed .contact-copy { grid-column:2; grid-row:1; }
  .cinematic-home #contatti.v-reversed :is(.contact-form,.contact-preview) { grid-column:1; grid-row:1; }
}
@media(max-width:767px) {
  .vm-height-original { --v-height:var(--visual-original-height); }
  .vm-height-automatic { --v-height:0px; }
  .vm-height-compact { --v-height:60svh; }
  .vm-height-spacious { --v-height:85svh; }
  .vm-height-fullscreen { --v-height:var(--visual-original-height); }
  .cinematic-home #main > :is(#home,#servizi,#contatti)[class*="vm-height-"] { min-height:var(--v-height); height:auto; max-height:none; }
  .cinematic-home #main > #servizi[class*="vm-height-"] > .container { min-height:var(--v-height); }
  .cinematic-home #main > :is(#servizi,#contatti).vm-padding-top { padding-top:var(--visual-mobile-padding-top); }
  .cinematic-home #main > :is(#servizi,#contatti).vm-padding-bottom { padding-bottom:var(--visual-mobile-padding-bottom); }
  .cinematic-home #main > #home.vm-padding-top .hero-content { padding-top:var(--visual-mobile-padding-top); }
  .cinematic-home #main > #home.vm-padding-bottom .hero-content { padding-bottom:var(--visual-mobile-padding-bottom); }
  .vm-align-original,.vm-align-left { --v-align:left; --v-margin-start:0; --v-margin-end:auto; }
  .vm-align-center { --v-align:center; --v-margin-start:auto; --v-margin-end:auto; }
  .vm-align-right { --v-align:right; --v-margin-start:auto; --v-margin-end:0; }
  .vm-width-original { --v-width:initial; }
  .vm-width-narrow { --v-width:560px; }
  .vm-width-medium { --v-width:800px; }
  .vm-width-wide { --v-width:1120px; }
  .cinematic-home #main :is(#home,#servizi,#contatti)[class*="vm-align-"] :is(.hero-content h1,.hero-baseline,.contact-copy,.service-panel-copy h3,.service-panel-copy p) {
    text-align:var(--v-align,start); margin-inline-start:var(--v-margin-start,0); margin-inline-end:var(--v-margin-end,auto);
  }
  .cinematic-home #main :is(#home,#servizi,#contatti)[class*="vm-width-"] :is(.hero-content h1,.hero-baseline,.contact-copy,.service-panel-copy h3,.service-panel-copy p) {
    max-width:min(100%,var(--v-width,var(--v-original-width,100%)));
  }
  .cinematic-home #main > :is(#home,#servizi,#contatti)[class*="v-title-"] :is(h1,h2,.service-panel h3) { font-size:var(--v-mobile-title-size); }
}
