#faq .toggle-title, #faq .toggle-content { color:white }
#footer { font-size: 13px }
#footer p { margin-bottom: 0px }
#footer a { text-decoration: underline!important }
#mg_logo { width: 230px; border-radius: 20px; padding: 10px; background: rgba(255,255,255,0.8); margin-bottom: 20px }
#preloader { position: absolute; height: 100%; width: 100%; z-index:10000 }
#preloader .css3-spinner { background-color: white; height: 100%; width: 100% }
#preview_3d { border: 2px solid rgba(var(--bs-emphasis-color-rgb), 0.05) }
#sticky_model { width: 600px!important }
#whatsappBtn { position:fixed; bottom:10px; left: 10px; width: 45px; height: 45px; z-index: 10000 }
#b { color: #e32525}

.border_select_pump { border: 1px solid #ddd; border-radius: 20px }
.error input, .error textarea, .error select, .error div.well, .error img, .error video, .error .thumbnail { border: 1px solid #e32525!important; background-color: #e325254f !important }
.error label.form_label, .error label { color: #e32525 !important}
.error div.checkbox{ color: #e32525!important;}
.error #consentLabel { color: #e32525!important}
.fbox-border .fbox-icon i, .fbox-border .fbox-icon img { background-color: #fff !important; }
.fbox_dashboard { border: 3px solid #e32525; padding:10px }
.fbox_dashboard:hover{ box-shadow: inset 0px 0px 7px rgba(27, 134, 56, 0.5) }
/* ---- feature-box-border-vertical ---- */
:root { --bs-primary: #171d4b; }

.feature-box-border-vertical .feature-box { position: relative; }

.feature-box-border-vertical .feature-box:not(.noborder)::before,
.feature-box-border-vertical .fbox-active.feature-box:not(.noborder)::after {
    content: "";
    position: absolute;
    top: 0;
    left: 35px;
    width: 3px;
    height: 100%;
    background-color: var(--bs-gray-200);
}

.feature-box-border-vertical .fbox-icon i,
.feature-box-border-vertical .fbox-border.fbox-light .fbox-icon i {
    position: relative;
    z-index: 5;
    text-align: center;
    box-shadow: 0 0 0 6px #FFF;
    border: 1px solid #EEE;
    background-color: #FFF !important;
}

.feature-box-border-vertical .fbox-active.feature-box .fbox-icon i,
.feature-box-border-vertical .fbox-active.feature-box .fbox-border.fbox-light .fbox-icon i,
.feature-box-border-vertical .fbox-active.feature-box:not(.noborder)::after {
    background-color: var(--bs-primary) !important;
    border-color: transparent !important;
    color: #FFF;
}

.dark .feature-box-border-vertical .feature-box:not(.noborder)::before,
.dark .feature-box-border-vertical .fbox-active.feature-box:not(.noborder)::after {
    background-color: var(--bs-gray-600);
}

.dark .feature-box-border-vertical .fbox-icon i,
.dark .feature-box-border-vertical .fbox-border.fbox-light .fbox-icon i {
    box-shadow: 0 0 0 6px var(--bs-dark);
    background-color: var(--bs-dark) !important;
    color: var(--bs-gray-600);
    border-color: var(--bs-gray-600);
}

.dark .feature-box-border-vertical .fbox-active.feature-box .fbox-icon i,
.dark .feature-box-border-vertical .fbox-active.feature-box .fbox-border.fbox-light .fbox-icon i,
.dark .feature-box-border-vertical .fbox-active.feature-box:not(.noborder)::after {
    background-color: var(--bs-warning) !important;
    color: var(--bs-dark);
}
.icon_pr { border: 2px solid #3900be; padding: 3px }
.icon_amber { border: 2px solid #EB9C4D; padding: 3px }
.icon_red { border: 2px solid #C02942; padding: 3px }
.icon_green { border: 2px solid #59ba41; padding: 3px }
.icon_grey { border: 2px solid #777777; padding: 3px }
.icon_info img { width: 15px; height: 15px }
.icon_counter { width: 64px; height: 64px }
.icon_info { width: 15px; height: 15px }
.img_blur { filter: blur(10px)!important; -webkit-filter: blur(10px)!important; transition: filter 0.3s ease, -webkit-filter 0.3s ease!important }
.img_blur:hover { filter: blur(0)!important; -webkit-filter: blur(0)!important; opacity: 1!important }
.modalTitle { padding: 30px; padding-bottom: 15px }
.modalTitle h4 { margin: 0px }
.modalBody { padding: 15px 30px }
.modalFooter { padding: 30px }
.modalFooter .button-mini { width:100px }
.modal_stripe { border-bottom: 1px solid #e32525; background: #e32525; height: 20px }
.modal-content form { margin-bottom: 0px }
.notice { width: 400px; position: fixed; z-index: 20000; right: 5px; top: 5px; }
.powered_by { display:inline-block; min-width:20px; font-size:11px; line-height:1.25; padding:4px 8px; background:white; border-radius:3px; color:rgba(0,0,0,0.65)!important; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 1px -1px rgba(0, 0, 0, 0.15); font-weight:bold; vertical-align:middle; }
.powered_by:hover { background-color: #ddd; color:rgba(0,0,0,0.65)!important; }
.powered_by img { height:14px!important; margin-right:0px }
.table_colored { vertical-align: middle; margin-bottom: 0px }
.table_colored th, .table_colored td, .table_colored select, .table_colored input { font-size: 13px }
.table_colored thead th { background-color: #e32525!important; color: #fff!important; text-transform: uppercase; }
.table.b_none th, .table.b_none td { border: 0px !important }
.td_action { min-width: 50px; width: 50px }
.td_action img, .icon_action { min-width: 30px; min-height: 30px; width: 30px; height: 30px; cursor:pointer }
.td_img { min-width: 70px; width: 70px }
.td_img img, .icon_img { min-width: 50px; min-height: 50px; width: 50px; height: 50px; cursor:pointer; object-fit: contain }
.tutorialMsg { background-color: #ddd }

/* REVOLUTION SLIDER CSS */
.revo-slider-emphasis-text { font-size: 80px!important; font-weight: 400; letter-spacing: -1px; padding: 15px 20px; border-top: 2px solid #FFF; border-bottom: 2px solid #FFF; }
.revo-slider-desc-text { font-size: 40px; width: 1000px; text-align: center; line-height: 1.5; }
.revo-slider-caps-text { font-size: 16px; font-weight: 400; letter-spacing: 3px; }
.tp-video-play-button { display: none !important; }
.tp-caption { white-space: nowrap; }
h1.slider_title, h3.slider_subtitle { color: #FFF!important; text-shadow: 0px 0px 5px black;  font-weight: 100}
h1.slider_title { font-size:80px }
h3.slider_subtitle { font-size:60px }

@media (min-width: 1100px){
    #sticky_model { position: sticky !important; top: 120px!important; right: 20px!important; z-index: 100!important }
}


/* ================================================================
   Fondazione Vincenziana — Design system
   Palette istituzionale navy + azzurro + crema.
   ================================================================ */

@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Poppins:wght@300;400;500;600;700&family=Open+Sans:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@1,400;1,500&display=swap");

:root {
  --vz-bordeaux:        #171d4b;
  --vz-bordeaux-rgb:    23, 29, 75;
  --vz-bordeaux-dark:   #101540;
  --vz-bordeaux-deep:   #0a0e2e;
  --vz-bordeaux-soft:   rgba(23, 29, 75, .08);
  --vz-accent:          #99b8d7;
  --vz-accent-rgb:      153, 184, 215;
  --vz-accent-dark:     #7a9fbe;
  --vz-accent-soft:     rgba(153, 184, 215, .18);
  --vz-gold:            #b78850;
  --vz-gold-rgb:        183, 136, 80;
  --vz-gold-dark:       #9a7140;
  --vz-gold-soft:       rgba(183, 136, 80, .12);
  --vz-cream:           #fdf6f0;
  --vz-cream-2:         #f4ece0;
  --vz-parchment:       #efe7d7;
  --vz-ink:             #171d4b;
  --vz-ink-2:           #2b3260;
  --vz-body:            #3a4060;
  --vz-muted:           #7a8099;
  --vz-line:            rgba(23, 29, 75, .12);
  --vz-line-soft:       rgba(23, 29, 75, .06);
  --vz-c-sfn:           #ed1c24;
  --vz-c-sp:            #df461e;
  --vz-c-bert:          #297f84;
  --vz-c-smr:           #ae0a0a;
  --vz-font-display:    "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --vz-font-ui:         "Poppins", system-ui, sans-serif;
  --vz-font-body:       "Open Sans", system-ui, sans-serif;
  --vz-font-italic:     "Playfair Display", Georgia, serif;
  --rpg-fs-h1:          2.75rem;
  --rpg-fs-h2:          2.125rem;
  --rpg-fs-h3:          1.625rem;
  --rpg-fs-h4:          1.25rem;
  --rpg-space-section:  6rem;
  --rpg-radius:         3px;
  --rpg-radius-md:      4px;
  --rpg-radius-lg:      6px;
  --vz-shadow-soft:     0 .5rem 2rem rgba(23, 29, 75, .08);
  --vz-shadow-card:     0 .25rem 1rem rgba(23, 29, 75, .06);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--vz-font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--vz-body);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--vz-font-display);
  color: var(--vz-ink);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 1rem 0;
}
h1 { font-size: var(--rpg-fs-h1); }
h2 { font-size: var(--rpg-fs-h2); }
h3 { font-size: var(--rpg-fs-h3); }
h4 { font-size: var(--rpg-fs-h4); font-family: var(--vz-font-ui); font-weight: 600; }

p { margin: 0 0 1rem 0; }

a { color: var(--vz-bordeaux); text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--vz-bordeaux-dark); }

::selection { background: var(--vz-bordeaux); color: #fff; }

.vz-kicker { font-family: var(--vz-font-italic); font-style: italic; font-weight: 400; font-size: 1.0625rem; color: var(--vz-gold); letter-spacing: .01em; display: inline-block; margin-bottom: .75rem; }
.vz-display { font-family: var(--vz-font-display); font-weight: 500; font-size: clamp(2.75rem, 5.5vw, 5.5rem); line-height: 1.04; letter-spacing: -0.015em; color: var(--vz-ink); }
.vz-display em { font-family: var(--vz-font-italic); font-style: italic; font-weight: 400; color: var(--vz-bordeaux); }
.vz-lead { font-family: var(--vz-font-body); font-size: 1.1875rem; line-height: 1.65; color: var(--vz-body); font-weight: 300; }
.vz-eyebrow { font-family: var(--vz-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--vz-gold); }

.vz-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 1.5rem; }
.vz-container--narrow { max-width: 880px; }
.vz-container--wide   { max-width: 1440px; }

.vz-section { padding: var(--rpg-space-section) 0; position: relative; }
.vz-section--cream     { background: var(--vz-cream); }
.vz-section--parchment { background: var(--vz-parchment); }
.vz-section--dark { background: var(--vz-bordeaux-deep); color: rgba(255,255,255,.85); }
.vz-section--dark h1, .vz-section--dark h2, .vz-section--dark h3, .vz-section--dark h4 { color: #fff; }
.vz-section--dark .vz-kicker { color: var(--vz-gold); }
.vz-section--dark a { color: #fff; }

.vz-btn { display: inline-flex; align-items: center; gap: .625rem; padding: .875rem 1.625rem; font-family: var(--vz-font-ui); font-size: .9375rem; font-weight: 500; letter-spacing: .01em; border: 1px solid transparent; border-radius: var(--rpg-radius); cursor: pointer; transition: all .25s ease; text-decoration: none; background: var(--vz-bordeaux); color: #fff; line-height: 1; }
.vz-btn:hover { color: #fff; transform: translateY(-1px); filter: brightness(0.85); }
.vz-btn--ghost { background: transparent; color: var(--vz-bordeaux); border-color: var(--vz-bordeaux); }
.vz-btn--ghost:hover { background: transparent; color: var(--vz-bordeaux); }
.vz-btn--gold { background: var(--vz-gold); color: var(--vz-ink); }
.vz-btn--gold:hover { background: var(--vz-gold-dark); color: #fff; }
.vz-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.vz-btn--ghost-light:hover { background: #fff; color: var(--vz-bordeaux); border-color: #fff; }
.vz-btn--lg { padding: 1.0625rem 2rem; font-size: 1rem; }
.vz-btn--icon-arrow::after { content: "→"; font-family: var(--vz-font-ui); font-weight: 400; transition: transform .25s ease; }
.vz-btn--icon-arrow:hover::after { transform: translateX(3px); }

.vz-card { background: #fff; border: 1px solid var(--vz-line); border-radius: var(--rpg-radius-md); padding: 1.75rem; transition: all .3s ease; }
.vz-card:hover { box-shadow: var(--vz-shadow-card); transform: translateY(-2px); }

.vz-input, .vz-textarea, .vz-select { width: 100%; padding: .875rem 1rem; font-family: var(--vz-font-body); font-size: 1rem; color: var(--vz-ink); background: #fff; border: 1px solid var(--vz-line); border-radius: var(--rpg-radius); transition: border-color .25s, box-shadow .25s; }
.vz-input:focus, .vz-textarea:focus, .vz-select:focus { outline: none; border-color: var(--vz-bordeaux); box-shadow: 0 0 0 3px var(--vz-bordeaux-soft); }
.vz-textarea { min-height: 140px; resize: vertical; }
.vz-label { display: block; font-family: var(--vz-font-ui); font-size: .8125rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--vz-muted); margin-bottom: .5rem; }

.vz-rule-gold { display: block; width: 60px; height: 2px; background: var(--vz-gold); border: 0; margin: 0 0 1.25rem 0; }
.vz-rule-gold--center { margin-left: auto; margin-right: auto; }

.vz-header__logo { height: 48px; width: auto; display: block; transition: opacity .25s; }
.vz-header.is-shrunk .vz-header__logo { height: 36px; }
.vz-header__brand:hover .vz-header__logo { opacity: .85; }
.vz-footer__logo { height: 56px; width: auto; display: block; }

.vz-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 2rem; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--vz-line-soft); transition: padding .3s ease, background .3s ease; }
.vz-header.is-shrunk { padding: .625rem 2rem; }
.vz-header.is-on-dark { background: transparent; border-bottom-color: rgba(255,255,255,.1); }
.vz-header.is-on-dark .vz-header__brand, .vz-header.is-on-dark .vz-header__cta { color: #fff; }
.vz-header.is-on-dark .vz-header__menu-btn { color: #fff; border-color: rgba(255,255,255,.4); }
.vz-header__brand { display: flex; align-items: center; gap: .875rem; font-family: var(--vz-font-display); color: var(--vz-ink); text-decoration: none; }
.vz-header__brand-mark { width: 44px; height: 44px; border: 1.5px solid var(--vz-bordeaux); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--vz-font-display); font-size: 1.25rem; font-weight: 600; color: var(--vz-bordeaux); letter-spacing: -.02em; }
.vz-header__brand-name { font-size: 1.25rem; font-weight: 600; letter-spacing: .01em; line-height: 1; }
.vz-header__brand-sub { font-family: var(--vz-font-italic); font-style: italic; font-size: .8125rem; color: var(--vz-muted); display: block; margin-top: .125rem; }
.vz-header__right { display: flex; align-items: center; gap: 1.25rem; }
.vz-header__lang { display: inline-flex; gap: .25rem; font-family: var(--vz-font-ui); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.vz-header__lang a { color: var(--vz-muted); padding: .25rem .375rem; }
.vz-header__lang a.is-active { color: var(--vz-ink); }
.vz-header__lang span { color: var(--vz-line); }
.flag { height: 18px; width: auto; display: block; }
.vz-header__menu-btn { display: inline-flex; align-items: center; gap: .625rem; padding: .5rem .875rem .5rem 1rem; font-family: var(--vz-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--vz-ink); background: transparent; border: 1px solid var(--vz-line); border-radius: 999px; cursor: pointer; transition: all .25s; }
.vz-header__menu-btn:hover { background: var(--vz-bordeaux); color: #fff; border-color: var(--vz-bordeaux); }
.vz-header__menu-btn-icon { display: inline-flex; flex-direction: column; gap: 3px; }
.vz-header__menu-btn-icon span { width: 18px; height: 1.5px; background: currentColor; }

.vz-menu { position: fixed; inset: 0; z-index: 200; pointer-events: none; }
.vz-menu__overlay { position: absolute; inset: 0; background: rgba(20, 8, 12, .55); opacity: 0; transition: opacity .35s ease; }
.vz-menu__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); background: var(--vz-cream); transform: translateX(100%); transition: transform .45s cubic-bezier(.215,.61,.355,1); display: flex; flex-direction: column; overflow-y: auto; }
.vz-menu.is-open { pointer-events: auto; }
.vz-menu.is-open .vz-menu__overlay { opacity: 1; }
.vz-menu.is-open .vz-menu__panel { transform: translateX(0); }
.vz-menu__head { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem 2.25rem; border-bottom: 1px solid var(--vz-line); }
.vz-menu__head-title { font-family: var(--vz-font-italic); font-style: italic; color: var(--vz-gold); }
.vz-menu__close { width: 36px; height: 36px; border-radius: 50%; background: transparent; border: 1px solid var(--vz-line); cursor: pointer; font-size: 1.125rem; color: var(--vz-ink); transition: all .25s; }
.vz-menu__close:hover { background: var(--vz-bordeaux); color: #fff; border-color: var(--vz-bordeaux); }
.vz-menu__list { list-style: none; margin: 0; padding: 1rem 2.25rem 2rem; flex: 1; }
.vz-menu__item { border-bottom: 1px solid var(--vz-line-soft); }
.vz-menu__item:last-child { border-bottom: none; }
.vz-menu__link { display: flex; align-items: baseline; justify-content: space-between; padding: 1.125rem 0; font-family: var(--vz-font-display); font-size: 1.875rem; font-weight: 500; color: var(--vz-ink); letter-spacing: -.01em; transition: color .25s, padding .25s; }
.vz-menu__link:hover { color: var(--vz-bordeaux); padding-left: .5rem; }
.vz-menu__num { font-family: var(--vz-font-ui); font-size: .75rem; font-weight: 500; letter-spacing: .12em; color: var(--vz-muted); }
.vz-menu__sub { list-style: none; margin: 0; padding: 0 0 1rem .25rem; display: none; }
.vz-menu__item.is-expanded .vz-menu__sub { display: block; }
.vz-menu__sub-link { display: block; padding: .375rem 0; font-family: var(--vz-font-body); font-size: 1rem; color: var(--vz-body); }
.vz-menu__sub-link:hover { color: var(--vz-bordeaux); }
.vz-menu__expand { background: none; border: none; cursor: pointer; color: var(--vz-muted); font-family: var(--vz-font-ui); font-size: 1rem; padding: 0 .25rem; }
.vz-menu__foot { padding: 1.5rem 2.25rem 2rem; border-top: 1px solid var(--vz-line); background: rgba(255,255,255,.5); }
.vz-menu__foot-row { display: flex; justify-content: space-between; align-items: center; font-size: .875rem; color: var(--vz-muted); }
.vz-menu__lang a { color: var(--vz-muted); padding: 0 .375rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; }
.vz-menu__lang a.is-active { color: var(--vz-bordeaux); }

.vz-footer { background: var(--vz-cream); color: var(--vz-ink); padding: 5rem 0 0; font-size: .9375rem; }
.vz-footer > .vz-container { margin-top: 2rem; margin-bottom: 2rem; }
.vz-footer h4 { color: var(--vz-bordeaux); font-family: var(--vz-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 1rem 0; }
.vz-footer__cols { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; }
@media (max-width: 992px) { .vz-footer__cols { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
@media (max-width: 480px) { .vz-footer__cols { grid-template-columns: 1fr; } }
.vz-footer__addr { list-style: none; margin: 1rem 0 0 0; padding: 0; font-size: .9rem; color: var(--vz-body); line-height: 1.6; }
.vz-footer__addr li { margin-bottom: .625rem; }
.vz-footer a { color: var(--vz-ink); }
.vz-footer a:hover { color: var(--vz-bordeaux); }
.vz-footer__desc { color: var(--vz-body); margin: 0 0 1rem 0; }
.vz-footer__label { font-weight: 700; color: var(--vz-ink); }
.vz-footer__brand { display: flex; align-items: center; gap: .875rem; margin-bottom: 1.25rem; color: var(--vz-ink); }
.vz-footer__brand-mark { width: 48px; height: 48px; border: 1.5px solid var(--vz-bordeaux); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-family: var(--vz-font-display); font-weight: 600; font-size: 1.375rem; color: var(--vz-bordeaux); }
.vz-footer__brand-name { font-family: var(--vz-font-display); font-size: 1.5rem; font-weight: 600; line-height: 1; color: var(--vz-ink); }
.vz-footer ul { list-style: none; margin: 0; padding: 0; }
.vz-footer ul li { margin-bottom: .875rem; line-height: 1.5; }
.vz-footer__bar { margin-top: 4rem; padding: 1.5rem 0; border-top: 1px solid var(--vz-line); font-size: .8125rem; color: var(--vz-muted); }
.vz-footer__bar-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.vz-footer__legal a { margin: 0 .75rem; color: var(--vz-muted); }
.vz-footer__legal a:hover { color: var(--vz-bordeaux); }
.vz-footer__social { display: flex; gap: .625rem; margin-top: 1.25rem; }
.vz-footer__social a { width: 36px; height: 36px; border: 1px solid var(--vz-line); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--vz-ink); transition: all .25s; }
.vz-footer__social a:hover { background: var(--vz-bordeaux); border-color: var(--vz-bordeaux); color: #fff; }
#copyrights { background: var(--vz-bordeaux); padding: .75rem 1.5rem; font-size: .8125rem; color: rgba(255,255,255,.8); }
#copyrights a { color: rgba(255,255,255,.8); }
#copyrights a:hover { color: #fff; }
#copyrights img { display: inline; height: 14px; width: auto; vertical-align: middle; margin-right: .25rem; }
#copyrights .powered_by img { height: 14px; }

.vz-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3rem; align-items: center; }
.vz-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.vz-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
@media (max-width: 768px) { .vz-grid-2, .vz-grid-3, .vz-grid-4 { grid-template-columns: 1fr; gap: 2rem; } }

.vz-aspect-photo { aspect-ratio: 4/5; background: var(--vz-parchment); overflow: hidden; }
.vz-aspect-wide  { aspect-ratio: 16/10; background: var(--vz-parchment); overflow: hidden; }
.vz-aspect-square{ aspect-ratio: 1/1; background: var(--vz-parchment); overflow: hidden; }
.vz-aspect-photo img, .vz-aspect-wide img, .vz-aspect-square img { width:100%; height:100%; object-fit: cover; }

/* Mobile: logo collegi su sfondo bianco, centrato e limitato a 200x200 */
@media (max-width: 768px) {
    .vz-college-logo {
        aspect-ratio: auto !important;
        background: #fff !important;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 1.5rem;
    }
    .vz-college-logo img {
        width: auto !important;
        height: auto !important;
        max-width: 200px;
        max-height: 200px;
        object-fit: contain;
    }
}

.vz-placeholder { width: 100%; height: 100%; background: repeating-linear-gradient(45deg, var(--vz-parchment), var(--vz-parchment) 10px, var(--vz-cream-2) 10px, var(--vz-cream-2) 20px); display: flex; align-items: center; justify-content: center; font-family: var(--vz-font-italic); font-style: italic; color: var(--vz-muted); font-size: .9375rem; text-align: center; padding: 1rem; }

.vz-stat { text-align: center; padding: 2rem 1rem; }
.vz-stat__num { font-family: var(--vz-font-display); font-size: 4.5rem; font-weight: 500; line-height: 1; color: var(--vz-bordeaux); letter-spacing: -.02em; }
.vz-stat__label { font-family: var(--vz-font-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--vz-muted); margin-top: .5rem; }

.vz-testimonial { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; align-items: center; }
@media (max-width: 768px) { .vz-testimonial { grid-template-columns: 1fr; } }
.vz-testimonial__quote { font-family: var(--vz-font-display); font-size: 1.625rem; line-height: 1.4; color: var(--vz-ink); font-weight: 400; }
.vz-testimonial__quote::before { content: "\201C"; color: var(--vz-gold); font-size: 3rem; line-height: 0; vertical-align: -0.5rem; margin-right: .25rem; }
.vz-testimonial__author { margin-top: 1.5rem; display: flex; align-items: center; gap: 1rem; }
.vz-testimonial__avatar { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; }
.vz-testimonial__name { font-family: var(--vz-font-ui); font-weight: 600; color: var(--vz-ink); }
.vz-testimonial__role { font-family: var(--vz-font-italic); font-style: italic; color: var(--vz-muted); font-size: .9375rem; }

.vz-faq__item { border-bottom: 1px solid var(--vz-line); }
.vz-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; font-family: var(--vz-font-display); font-size: 1.25rem; font-weight: 500; color: var(--vz-ink); cursor: pointer; background: none; border: none; text-align: left; width: 100%; }
.vz-faq__icon { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: var(--vz-bordeaux-soft); color: var(--vz-bordeaux); display: inline-flex; align-items: center; justify-content: center; transition: transform .3s, background .25s; font-size: 1.125rem; }
.vz-faq__item.is-open .vz-faq__icon { transform: rotate(45deg); background: var(--vz-bordeaux); color: #fff; }
.vz-faq__a { max-height: 0; overflow: hidden; transition: max-height .35s ease; color: var(--vz-body); line-height: 1.7; }
.vz-faq__a-inner { padding: 0 0 1.5rem; max-width: 760px; }
.vz-faq__item.is-open .vz-faq__a { max-height: 600px; }

.vz-timeline { position: relative; padding-left: 40px; }
.vz-timeline::before { content: ''; position: absolute; left: 10px; top: 0; bottom: 0; width: 3px; background: var(--vz-bordeaux); opacity: .25; }
.vz-timeline__item { position: relative; margin-bottom: 1.5rem; }
.vz-timeline__dot { position: absolute; left: -43px; top: 4px; width: 22px; height: 22px; border-radius: 50%; background: var(--vz-bordeaux); border: 3px solid #fff; box-shadow: 0 0 0 3px var(--vz-bordeaux); }
.vz-timeline__card { background: #fff; border: 1px solid var(--vz-line); border-radius: var(--rpg-radius-md); padding: 1rem 1.25rem; box-shadow: var(--vz-shadow-card); }
.vz-timeline__anno { color: var(--vz-bordeaux); font-size: 1.1rem; display: block; margin-bottom: .25rem; }
.vz-timeline__card p { margin: 0; color: var(--vz-body); }

.vz-map { width: 100%; aspect-ratio: 16/9; background: var(--vz-parchment); position: relative; }
.vz-map iframe { width: 100%; height: 100%; border: 0; }

[data-reveal] { opacity: 1; transform: none; transition: opacity .8s ease, transform .8s ease; }
.js-ready [data-reveal] { opacity: 0; transform: translateY(20px); }
.js-ready [data-reveal].is-revealed { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  [data-reveal], .js-ready [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

.vz-page-hero { height: 500px; background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; display: flex; align-items: flex-end; }
.vz-page-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 14, 46, .7) 0%, rgba(10, 14, 46, .25) 60%, transparent 100%); }
.vz-page-hero .container { position: relative; z-index: 1; }
.vz-page-hero__inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding-bottom: 2.5rem; flex-wrap: wrap; }
.vz-page-hero__content h1 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 .25rem; }
.vz-page-hero__sub { color: rgba(255,255,255,.8); font-family: var(--vz-font-italic); font-style: italic; font-size: 1.0625rem; }
.vz-page-hero .breadcrumb { margin: 0; background: transparent; padding: 0; }
.vz-page-hero .breadcrumb-item, .vz-page-hero .breadcrumb-item a { color: rgba(255,255,255,.75); font-size: .875rem; }
.vz-page-hero .breadcrumb-item.active { color: #fff; }
.vz-page-hero .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.5); }
/* Hero centered variant (college pages) */
.vz-page-hero--center { align-items: center; }
.vz-page-hero--center::after { background: rgba(10, 14, 46, .50); }
.vz-page-hero--center .container { width: 100%; }
.vz-page-hero--center .vz-page-hero__inner { align-items: center; justify-content: center; padding-bottom: 0; text-align: center; }
.vz-page-hero--center .vz-page-hero__content { display: flex; flex-direction: column; align-items: center; }
@media (max-width: 576px) {
  .vz-page-hero { height: 320px; }
  .vz-page-hero__inner { flex-direction: column; align-items: flex-start; padding-bottom: 1.5rem; }
  .vz-page-hero--center .vz-page-hero__inner { align-items: center; padding-bottom: 0; }
}

.vz-hslider { position: relative; }
.vz-hslider__panel { padding: var(--rpg-space-section) 0; }
.vz-hslider__panel:first-child { min-height: 100vh; display: flex; align-items: center; padding-top: 8rem; padding-bottom: 4rem; }
.vz-hslider-chrome { display: none !important; }

/* ── Utilities aggiuntive ─────────────────────────────────────────── */
.vz-section--compact { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.vz-bg-cover  { background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }
.vz-overlay   { position: absolute; inset: 0; pointer-events: none; }
.vz-overlay--55 { background: rgba(23,29,75,.55); }
.vz-overlay--80 { background: rgba(23,29,75,.80); }
.min_h_420p   { min-height: 420px !important; }
.min_h_500p   { min-height: 500px !important; }
.vz-img-cover { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.vz-title-hero { font-size: clamp(1.8rem, 4vw, 3rem) !important; }
.max_w_560p   { max-width: 560px !important; }
.vz-sticky    { position: sticky; top: 6rem; }
.vz-cat-link  { display: flex; align-items: center; gap: .5rem; padding: .5rem 0; font-size: .9rem; color: inherit; text-decoration: none; border-bottom: 1px solid var(--vz-line-soft); transition: color .2s, padding-left .2s; }
.vz-cat-link:hover, .vz-cat-link.is-active { color: var(--vz-gold); padding-left: .375rem; }
.vz-cat-link .vz-cat-count { font-size: .75rem; color: var(--vz-muted); margin-left: auto; }
/* FAQ sidebar list-group vz colors */
.vz-list-group .list-group-item { border-color: var(--vz-line); font-size: .9rem; }
.vz-list-group .list-group-item-action:hover,
.vz-list-group .list-group-item-action:focus { color: var(--vz-bordeaux); background-color: var(--vz-cream); }
.vz-list-group .list-group-item-action.is-active { background-color: var(--vz-bordeaux); border-color: var(--vz-bordeaux); color: #fff; }
/* Nav pills vz colors */
.vz-nav-pills .nav-link { color: var(--vz-ink); background: var(--vz-cream); border-radius: 2rem; padding: .5rem 1.25rem; font-size: .9rem; transition: background .2s, color .2s; border: none; }
.vz-nav-pills .nav-link:hover { background: var(--vz-cream-2); color: var(--vz-bordeaux); }
.vz-nav-pills .nav-link.active { background: var(--vz-bordeaux) !important; color: #fff !important; }
/* Gallery thumbnail */
.vz-gallery-thumb { height: 200px; overflow: hidden; border-radius: 6px; display: block; }

/* Gallery: gap 12px solo in xs */
@media (max-width: 575.98px) {
  .vz-gallery-grid { --bs-gutter-x: 12px; --bs-gutter-y: 12px; }
}
.vz-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; display: block; }
.vz-gallery-thumb:hover img { transform: scale(1.08); }
/* Activity card with image on top */
.vz-card--img { padding: 0 !important; overflow: hidden; }
.vz-card--img img { height: 180px; width: 100%; object-fit: cover; display: block; }
.vz-card--img .vz-card-ph { height: 180px; background: var(--vz-cream); display: flex; align-items: center; justify-content: center; font-size: 2.5rem; color: var(--vz-bordeaux); }
.vz-card--img .vz-card__body { padding: 1.25rem; }
/* Regulation number badge */
.vz-reg-num { width: 36px; height: 36px; border-radius: 50%; background: var(--vz-bordeaux); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .95rem; }
/* FAQ card variant */
.vz-faq--cards .vz-faq__item { background: #fff; border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.08); margin-bottom: .75rem; border-bottom: none; overflow: hidden; }
.vz-faq--cards .vz-faq__q { padding: .875rem 1.25rem; font-size: 1rem; font-family: var(--vz-font-body); }
.vz-faq--cards .vz-faq__q-ico { flex: 0 0 22px; color: var(--vz-bordeaux); font-size: 1rem; }
.vz-faq--cards .vz-faq__a-inner { border-top: 1px solid var(--vz-line); padding: 1rem 1.25rem 1rem 3.25rem; max-width: none; }

/* ── Navbar — active/hover color ─────────────────────────────────── */
#header {
  --cnvs-primary-menu-hover-color:              var(--vz-bordeaux);
  --cnvs-primary-menu-active-color:             var(--vz-bordeaux);
  --cnvs-primary-menu-submenu-top-border:       2px solid var(--vz-bordeaux);
  --cnvs-primary-menu-submenu-color:            var(--vz-ink);
  --cnvs-primary-menu-submenu-hover-color:      var(--vz-bordeaux);
}

/* ── Tabelle iscrizioni: header col colore del collegio ─────────────── */
#content .table > thead > tr > th {
    background-color: var(--vz-college) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.2) !important;
}

/* ── Tabelle iscrizioni — responsive mobile (xs/sm) ──────────────────── */
@media (max-width: 767.98px) {
    /* lo scroll resta dentro il box, mai overflow di pagina */
    #content .table-responsive {
        -webkit-overflow-scrolling: touch;
    }
    #content .table {
        font-size: .8125rem;   /* 13px, celle più compatte */
    }
    #content .table > thead > tr > th,
    #content .table > tbody > tr > td {
        padding: .25rem .4rem;
        vertical-align: middle;
        line-height: 1.2;
    }
    /* i prezzi non vanno mai spezzati su due righe */
    #content .table > tbody > tr > td.text-end {
        white-space: nowrap;
    }
    /* le intestazioni possono andare a capo su più righe */
    #content .table > thead > tr > th {
        white-space: normal;
    }
    /* la tipologia può andare a capo ma resta leggibile */
    #content .table > tbody > tr > td:first-child {
        min-width: 8.5rem;
        white-space: normal;
        line-height: 1.25;
    }
}

/* ── Iscrizioni — process-steps college color ─────────────────────── */
.process-steps .i-style.bg-color { background-color: var(--vz-college) !important; border-color: var(--vz-college) !important; }
.process-steps .i-style.bg-color:hover { background-color: var(--vz-college) !important; border-color: var(--vz-college) !important; filter: brightness(0.85); }
.process-steps li::before { background-color: var(--vz-college) !important; }
#content a:not(.vz-btn):not(.i-style) { color: var(--vz-college, inherit); text-decoration: underline; }

/* ── Horizontal Scroll (GSAP) — Homepage ────────────────────────── */
/* Desktop (≥ 1200px) → scroll orizzontale; mobile/tablet (< 1200px) → homepage normale */
@media (min-width: 1200px) { .vz-mobile-only { display: none !important; } }
@media (max-width: 1199px) { .vz-desktop-only { display: none !important; } }

@media (min-width: 1200px) {
  .page-home #main {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
}

#vz-hscroll-full { background: var(--vz-cream); }

.vz-hs-pin {
  position: relative;
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.vz-hs-track {
  flex: 1;
  min-height: 0;
  display: flex;
  will-change: transform;
}

/* ── Base slide ── */
.vz-hs-slide {
  flex: 0 0 100vw;
  width: 100vw;
  height: 100%;
  display: flex;
  position: relative;
  overflow: hidden;
  background: var(--vz-cream);
}

/* ── Grande parola-chiave che sovrappone entrambe le colonne ── */
.vz-hs-kw {
  position: absolute;
  top: -0.12em;
  left: -0.01em;
  font-family: var(--vz-font-display);
  font-size: clamp(6rem, 15vw, 17rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  z-index: 5;
  color: rgba(255,255,255,.14);
  mix-blend-mode: overlay;
}

/* ── Colonna sinistra: foto (full-bleed) ── */
.vz-hs-img {
  flex: 0 0 50%;
  position: relative;
  overflow: hidden;
}

.vz-hs-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .9s cubic-bezier(.215,.61,.355,1);
}

.vz-hs-slide:hover .vz-hs-img img { transform: scale(1.04); }

.vz-hs-img-caption {
  position: absolute;
  bottom: 1.5rem; left: 2rem;
  font-family: var(--vz-font-ui);
  font-size: .6875rem; letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65); z-index: 2;
}

/* ── Colonna sinistra: logo collegio (sfondo scuro) ── */
.vz-hs-logo {
  flex: 0 0 42%;
  position: relative;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background: var(--vz-bordeaux-deep);
}

.vz-hs-logo img {
  max-width: 52%; max-height: 52%;
  object-fit: contain;
  filter: drop-shadow(0 6px 24px rgba(0,0,0,.5));
  transition: transform .7s cubic-bezier(.215,.61,.355,1);
}

.vz-hs-slide:hover .vz-hs-logo img { transform: scale(1.07); }

/* ── Colonna destra: testo su sfondo crema ── */
.vz-hs-txt {
  flex: 0 0 50%;
  display: flex; flex-direction: column; justify-content: center;
  padding: 5rem 6vw 4rem 5vw;
  background: var(--vz-cream);
  position: relative;
}

.vz-hs-slide-n { display: none; }

/* ── Contatti footer in fondo al carosello ── */
.vz-hs-contacts {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  border-top: 1px solid var(--vz-line-soft);
  background: var(--vz-cream);
  font-family: var(--vz-font-ui);
  font-size: .6875rem;
  color: var(--vz-muted);
  letter-spacing: .06em;
  padding: 0 2.5rem;
  height: 38px;
}

.vz-hs-contacts__item {
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: 0 1.5rem 0 0;
}

.vz-hs-contacts__item + .vz-hs-contacts__item {
  padding-left: 1.5rem;
  border-left: 1px solid var(--vz-line);
}

.vz-hs-contacts a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}

.vz-hs-contacts a:hover { color: var(--vz-bordeaux); }

.vz-hs-contacts__social {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .625rem;
}

.vz-hs-contacts__social a {
  width: 26px; height: 26px;
  border: 1px solid var(--vz-line);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--vz-muted);
  font-size: .6875rem;
  transition: all .2s;
}

.vz-hs-contacts__social a:hover {
  background: var(--vz-bordeaux);
  border-color: var(--vz-bordeaux);
  color: #fff;
}

/* ── Vita in Collegio: citazioni rotanti in basso ── */
.vz-hs-vita-quotes {
  position: absolute;
  bottom: 2rem;
  left: 5vw;
  right: 2.5rem;
  border-top: 1px solid var(--vz-line-soft);
  padding-top: 1rem;
}

.vz-hs-vita-quote { display: none; animation: vzQuoteFade .5s ease; }
.vz-hs-vita-quote.is-active { display: block; }

@keyframes vzQuoteFade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.vz-hs-vita-quote__text {
  font-family: var(--vz-font-display);
  font-style: italic;
  font-size: .9375rem;
  color: var(--vz-body);
  line-height: 1.5;
  margin: 0 0 .5rem;
}

.vz-hs-vita-quote__text::before { content: "\201C"; color: var(--vz-gold); margin-right: .1rem; }
.vz-hs-vita-quote__text::after  { content: "\201D"; color: var(--vz-gold); margin-left: .1rem; }

.vz-hs-vita-quote__author {
  font-family: var(--vz-font-ui);
  font-size: .75rem;
  color: var(--vz-muted);
  display: flex;
  align-items: center;
  gap: .5rem;
}

.vz-hs-vita-quote__author strong { color: var(--vz-ink); font-weight: 600; }

.vz-hs-vita-quote__dots {
  display: flex;
  gap: .375rem;
  margin-top: .625rem;
}

.vz-hs-vita-quote__dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--vz-line);
  transition: background .3s;
}

.vz-hs-vita-quote__dot.is-active { background: var(--vz-bordeaux); }

/* ── Hero: nessun effetto hover/transform ── */
.vz-hs-slide--hero img { transform: none !important; transition: none !important; }
.vz-hs-slide--hero:hover img { transform: none !important; }

/* ── Slide Collegi: 4 celle sulla stessa riga ── */
.vz-hs-colleges-row {
  flex: 0 0 70%;
  display: flex;
  height: 100%;
  border-left: 1px solid var(--vz-line);
}

.vz-hs-college-cell {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.25rem;
  border-right: 1px solid var(--vz-line);
  border-top: 3px solid var(--college-color, var(--vz-gold));
  text-align: center;
  text-decoration: none;
  color: inherit;
  background: var(--vz-cream);
  transition: background .25s;
}

.vz-hs-college-cell:last-child { border-right: none; }
.vz-hs-college-cell:hover { background: var(--vz-parchment); }

.vz-hs-college-cell img {
  max-width: 90px;
  max-height: 90px;
  object-fit: contain;
  margin: 0 auto 1.25rem;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.12));
}

.vz-hs-college-cell h3 {
  font-family: var(--vz-font-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--vz-ink);
  margin: 0 0 .5rem;
  line-height: 1.25;
}

.vz-hs-college-cell p {
  font-size: .8125rem;
  color: var(--vz-muted);
  margin: 0;
  line-height: 1.5;
  max-width: 160px;
}

.vz-hs-cat {
  font-family: var(--vz-font-italic);
  font-style: italic;
  color: var(--vz-accent-col, var(--vz-gold));
  font-size: 1rem; margin-bottom: .875rem; display: block;
}

.vz-hs-heading {
  font-family: var(--vz-font-display);
  font-size: clamp(1.875rem, 3.2vw, 3.75rem);
  font-weight: 700;
  color: var(--vz-ink);
  line-height: 1.06; margin: 0 0 1.25rem;
  letter-spacing: -0.02em;
}

.vz-hs-body {
  font-size: 1rem;
  color: var(--vz-body);
  line-height: 1.7;
  max-width: 440px;
  margin: 0 0 2.25rem;
}

/* CTA: testo sottolineato (stile Ascheri) */
.vz-hs-cta {
  font-family: var(--vz-font-ui);
  font-size: .8125rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--vz-ink);
  text-decoration: none;
  display: inline-flex; align-items: center; gap: .75rem;
  border-bottom: 1.5px solid var(--vz-ink);
  padding-bottom: .3rem; align-self: flex-start;
  transition: color .25s, border-color .25s;
}

.vz-hs-cta:hover {
  color: var(--vz-accent-col, var(--vz-gold));
  border-color: var(--vz-accent-col, var(--vz-gold));
}

.vz-hs-cta--light {
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.45);
}
.vz-hs-cta--light:hover { color: #fff; border-color: #fff; }

/* ── Hero slide (full-bleed) ── */
.vz-hs-slide--hero {
  position: relative;
  align-items: center; justify-content: center;
  background: var(--vz-bordeaux-deep);
}

.vz-hs-hero-bg { position: absolute; inset: 0; z-index: 0; }

.vz-hs-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
}

.vz-hs-hero-overlay {
  position: absolute; inset: 0;
  background: rgba(20,8,12,.58); z-index: 1;
}

.vz-hs-hero-content {
  position: relative; z-index: 2; text-align: center;
  display: flex; flex-direction: column; align-items: center;
  max-width: 860px; padding: 2rem 4vw;
}

.vz-hs-hero-title {
  font-family: var(--vz-font-display);
  font-size: clamp(1.875rem, 3.5vw, 3.5rem);
  color: #fff; font-weight: 500; line-height: 1.18; margin: .75rem 0 0;
}

/* ── Hint freccia ── */
.vz-hs-hint {
  display: inline-flex; align-items: center; gap: .875rem;
  color: var(--vz-muted); font-family: var(--vz-font-ui);
  font-size: .75rem; letter-spacing: .1em; text-transform: uppercase;
  margin-top: 2rem; margin-bottom: 0;
}

/* ── HUD crema (come nel riferimento) ── */
.vz-hs-hud {
  flex: 0 0 52px;
  display: flex; align-items: center; gap: 1.5rem;
  padding: 0 2.5rem;
  border-top: 1px solid var(--vz-line-soft);
  background: var(--vz-cream);
}

.vz-hs-hud__bar {
  flex: 1; height: 1px;
  background: var(--vz-line);
  overflow: hidden;
}

.vz-hs-hud__fill {
  height: 100%; width: 0%;
  background: var(--vz-bordeaux);
}

.vz-hs-hud__count {
  font-family: var(--vz-font-ui);
  font-size: .75rem; letter-spacing: .1em;
  color: var(--vz-muted);
  display: flex; align-items: baseline; gap: .2rem; white-space: nowrap;
}

.vz-hs-hud__n { font-size: 1rem; font-weight: 700; color: var(--vz-ink); }

/* ── Gallery modale — pagine collegi ──────────────────────────────── */
.vz-gallery-preview { position:relative; cursor:pointer; overflow:hidden; border-radius:.5rem; }
.vz-gallery-preview img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.vz-gallery-preview:hover img { transform:scale(1.04); }
.vz-gallery-badge { position:absolute; bottom:14px; right:14px; background:#fff; border-radius:100px; padding:6px 14px; display:flex; align-items:center; gap:7px; font-weight:700; font-size:.85rem; color:#222; box-shadow:0 2px 10px rgba(0,0,0,.25); pointer-events:none; }
#vz-gallery-modal { display:none; position:fixed; inset:0; z-index:10000; background:rgba(0,0,0,.91); flex-direction:column; }
#vz-gallery-modal.is-open { display:flex; }
#vz-gallery-modal-close { position:absolute; top:18px; right:24px; z-index:10; background:none; border:none; color:#fff; font-size:2.2rem; line-height:1; cursor:pointer; opacity:.8; }
#vz-gallery-modal-close:hover { opacity:1; }
#vz-gallery-modal-counter { position:absolute; bottom:20px; right:24px; z-index:10; color:#fff; font-size:.88rem; font-weight:600; background:rgba(0,0,0,.45); padding:4px 14px; border-radius:20px; }
.vz-gallery-swiper { flex:1; min-height:0; overflow:hidden; }
.vz-gallery-swiper .swiper-wrapper { align-items:center; height:100%; }
.vz-gallery-swiper .swiper-slide { width:65%; display:flex; align-items:center; justify-content:center; opacity:.35; transition:opacity .3s; }
.vz-gallery-swiper .swiper-slide-active { opacity:1; }
.vz-gallery-swiper .swiper-slide img { max-height:82vh; max-width:100%; object-fit:contain; }
.vz-gallery-swiper .swiper-button-next,.vz-gallery-swiper .swiper-button-prev { color:#fff; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.2); }
.vz-gallery-swiper .swiper-button-next::after,.vz-gallery-swiper .swiper-button-prev::after { font-size:18px; font-weight:900; }
.vz-gallery-swiper .swiper-button-disabled { opacity:0; pointer-events:none; }
@media (max-width:767px) { .vz-gallery-swiper .swiper-slide { width:90%; } }

/* Galleria camere — modal separati per tipologia */
.gallery-preview { position:relative; cursor:pointer; overflow:hidden; }
.gallery-preview img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s; }
.gallery-preview:hover img { transform:scale(1.04); }
.gallery-badge { position:absolute; bottom:16px; right:16px; background:#fff; border-radius:100px; padding:7px 16px; display:flex; align-items:center; gap:8px; font-weight:700; font-size:.9rem; color:#222; box-shadow:0 2px 10px rgba(0,0,0,.25); pointer-events:none; }
.vz-room-modal { display:none; position:fixed; inset:0; z-index:10000; background:rgba(0,0,0,.91); flex-direction:column; }
.vz-room-modal.is-open { display:flex; }
.vz-room-modal-close { position:absolute; top:18px; right:24px; z-index:10; background:none; border:none; color:#fff; font-size:2.2rem; line-height:1; cursor:pointer; opacity:.8; }
.vz-room-modal-close:hover { opacity:1; }
.vz-room-modal-counter { position:absolute; bottom:20px; right:24px; z-index:10; color:#fff; font-size:.88rem; font-weight:600; background:rgba(0,0,0,.45); padding:4px 14px; border-radius:20px; }
.gallery-modal-swiper { flex:1; min-height:0; overflow:visible !important; }
.gallery-modal-swiper .swiper-wrapper { align-items:center; height:100%; }
.gallery-modal-swiper .swiper-slide { width:72%; display:flex; align-items:center; justify-content:center; opacity:.55; transition:opacity .3s; }
.gallery-modal-swiper .swiper-slide-active { opacity:1; }
.gallery-modal-swiper .swiper-slide img { max-height:82vh; max-width:100%; object-fit:contain; }
.gallery-modal-swiper .swiper-button-next,.gallery-modal-swiper .swiper-button-prev { color:#fff; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.2); }
.gallery-modal-swiper .swiper-button-next::after,.gallery-modal-swiper .swiper-button-prev::after { font-size:18px; font-weight:900; }
.gallery-modal-swiper .swiper-button-disabled { opacity:0; pointer-events:none; }
@media (max-width:767px) { .gallery-modal-swiper .swiper-slide { width:90%; } }
