/*
V.I.R. Scuola — CSS operativo.
Ogni modifica deve indicare fase, data e obiettivo.
*/

/*
2026-08-06 — Global design system foundations.
Stable tokens and reusable components for V.I.R. Scuola institutional pages.
Home-specific Elementor rules remain scoped to .page-id-15438.
*/
:root {
  --vir-color-navy: #1f2f46;
  --vir-color-red: #8b1e1e;
  --vir-color-cream: #f7f4ee;
  --vir-color-graphite: #1d1d1b;

  --vir-font-body: Inter, Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --vir-font-title: Inter, Manrope, "Helvetica Neue", sans-serif;

  --vir-space-1: 8px;
  --vir-space-2: 12px;
  --vir-space-3: 16px;
  --vir-space-4: 24px;
  --vir-space-5: 32px;
  --vir-space-6: 48px;
  --vir-space-7: 72px;
  --vir-space-8: 104px;

  --vir-width-shell: 1180px;
  --vir-width-text: 760px;
  --vir-width-narrow: 620px;

  --vir-radius-sm: 4px;
  --vir-radius-md: 6px;
  --vir-radius-lg: 8px;

  --vir-shadow-soft: 0 18px 48px rgba(31, 37, 42, 0.06);
  --vir-shadow-lift: 0 24px 58px rgba(31, 37, 42, 0.1);

  --vir-motion-fast: 160ms ease;
  --vir-motion-base: 240ms ease;
  --vir-motion-slow: 360ms ease;
}

/* Clean Header Main Navigation & Submenu Rules */
@media (min-width: 1025px) {
  .site-header .navigation,
  .site-header .main-menu,
  .site-header .main-menu > ul,
  .navigation .width-navigation > ul {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  /* Top-level menu items only */
  .site-header .main-menu > li,
  .navigation .width-navigation > ul > li {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    position: relative !important;
    white-space: nowrap !important;
    margin: 0 4px !important;
  }

  .navigation .width-navigation > ul > li > a,
  .site-header .main-menu > li > a {
    background: transparent !important;
    background-color: transparent !important;
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.3px !important;
    padding: 8px 12px !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    display: inline-block !important;
    transition: opacity var(--vir-motion-fast) !important;
  }

  .navigation .width-navigation > ul > li > a:hover,
  .site-header .main-menu > li > a:hover {
    background: transparent !important;
    background-color: transparent !important;
    color: #ffffff !important;
    opacity: 0.85 !important;
  }

  /* Header Navigation CTA Button - "Fai il test di livello" */
  .site-header .main-menu .btn-test-livello,
  .site-header .navigation .btn-test-livello,
  .thim-nav-final-cta {
    background-color: var(--vir-color-red) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 9px 18px !important;
    border-radius: var(--vir-radius-md) !important;
    transition: background-color var(--vir-motion-fast), transform var(--vir-motion-fast) !important;
    text-shadow: none !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    margin-left: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }

  .site-header .main-menu .btn-test-livello:hover,
  .site-header .navigation .btn-test-livello:hover,
  .thim-nav-final-cta:hover {
    background-color: #6d1717 !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    opacity: 1 !important;
  }

  /* Desktop Submenu & Dropdown Vertical Flow — Ergonomic & Hover-Bridge Enhanced */
  .navigation .width-navigation ul.sub-menu,
  .navigation .width-navigation ul.children,
  .site-header .main-menu ul.sub-menu {
    display: block !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    min-width: 220px !important;
    max-width: 320px !important;
    background: #19232d !important;
    background-color: #19232d !important;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.25) !important;
    border-radius: var(--vir-radius-md) !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    list-style: none !important;
    z-index: 9999 !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--vir-motion-fast), visibility var(--vir-motion-fast) !important;
  }

  /* Safe Invisible Hover Bridge between parent item and dropdown */
  .navigation .width-navigation ul.sub-menu::before,
  .site-header .main-menu ul.sub-menu::before {
    content: '' !important;
    position: absolute !important;
    top: -16px !important;
    left: 0 !important;
    right: 0 !important;
    height: 20px !important;
    background: transparent !important;
    pointer-events: auto !important;
    z-index: 1 !important;
  }

  .navigation .width-navigation li:hover > ul.sub-menu,
  .navigation .width-navigation li:focus-within > ul.sub-menu,
  .site-header .main-menu li:hover > ul.sub-menu,
  .site-header .main-menu li:focus-within > ul.sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Submenu items flow strictly vertically */
  .navigation .width-navigation ul.sub-menu > li,
  .site-header .main-menu ul.sub-menu > li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .navigation .width-navigation ul.sub-menu > li > a,
  .site-header .main-menu ul.sub-menu > li > a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 18px !important;
    color: #e2e8f0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    text-shadow: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
    transition: background-color var(--vir-motion-fast), color var(--vir-motion-fast) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
  }

  .navigation .width-navigation ul.sub-menu > li:last-child > a,
  .site-header .main-menu ul.sub-menu > li:last-child > a {
    border-bottom: none !important;
  }

  .navigation .width-navigation ul.sub-menu > li > a:hover,
  .site-header .main-menu ul.sub-menu > li > a:hover {
    background: var(--vir-color-red) !important;
    color: #ffffff !important;
    opacity: 1 !important;
  }

  .navigation .width-navigation ul.sub-menu > li > a:focus-visible,
  .site-header .main-menu ul.sub-menu > li > a:focus-visible {
    outline: 2px solid #E6A303 !important;
    outline-offset: -2px !important;
    background: rgba(230, 163, 3, 0.15) !important;
    color: #ffffff !important;
  }

  /* Nested Submenu (2nd level+) dropdown positioning */
  .navigation .width-navigation ul.sub-menu ul.sub-menu,
  .site-header .main-menu ul.sub-menu ul.sub-menu {
    top: 0 !important;
    left: 100% !important;
    margin-top: -6px !important;
    margin-left: 2px !important;
  }
}

/* Mobile & Tablet Header Navigation (<= 1024px) */
@media (max-width: 1024px) {
  #masthead .width-navigation,
  .site-header .width-navigation,
  .site-header .navigation .navbar-nav,
  .site-header .main-menu,
  .site-header .thim-nav-final-cta-wrap {
    display: none !important;
  }

  #masthead .thim-nav-wrapper {
    height: 70px !important;
    min-height: 70px !important;
    padding: 0 16px !important;
  }

  #masthead .tm-table {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    height: 70px !important;
    min-height: 70px !important;
  }

  #masthead .width-logo {
    display: flex !important;
    align-items: center !important;
    flex: 0 1 auto !important;
    max-width: 220px !important;
  }

  #masthead .width-logo img {
    max-height: 38px !important;
    width: auto !important;
  }

  #masthead .menu-mobile-effect {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 8px !important;
    cursor: pointer !important;
    z-index: 999 !important;
  }
}


/* Static Hero Images & Headers per Internal Page */
.thim-top-heading,
.vir-page-hero {
  position: relative !important;
  min-height: 380px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-size: cover !important;
  background-position: center center !important;
}

.thim-top-heading::before,
.vir-page-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(15, 23, 30, 0.6) 0%, rgba(15, 23, 30, 0.4) 100%) !important;
  z-index: 1 !important;
}

.thim-top-heading *,
.vir-page-hero * {
  position: relative !important;
  z-index: 2 !important;
  color: #ffffff !important;
}



.page-id-29887 .vir-page-hero,
.page-id-29887 .thim-top-heading,
body.page-id-29887 .thim-top-heading,
body.page-id-29887 .elementor-element-virsc1,
body.page-id-29887 [data-elementor-type="wp-page"] > .elementor-element:first-child,
body.page-id-29887 [data-elementor-type="wp-page"] > .e-con:first-child {
  background-position: center center !important;
  background-size: cover !important;
}

.page-id-29888 .vir-page-hero,
.page-id-29888 .thim-top-heading,
body.page-id-29888 .thim-top-heading,
body.page-id-29888 [data-elementor-type="wp-page"] > .elementor-element:first-child,
body.page-id-29888 [data-elementor-type="wp-page"] > .e-con:first-child {
  background-position: center center !important;
  background-size: cover !important;
}

.page-id-29889 .vir-page-hero,
.page-id-29889 .thim-top-heading,
body.page-id-29889 .thim-top-heading,
body.page-id-29889 [data-elementor-type="wp-page"] > .elementor-element:first-child,
body.page-id-29889 [data-elementor-type="wp-page"] > .e-con:first-child {
  background-position: center center !important;
  background-size: cover !important;
}

.page-id-29891 .vir-page-hero,
.page-id-29891 .thim-top-heading,
body.page-id-29891 .thim-top-heading,
body.page-id-29891 [data-elementor-type="wp-page"] > .elementor-element:first-child,
body.page-id-29891 [data-elementor-type="wp-page"] > .e-con:first-child {
  background-position: center center !important;
  background-size: cover !important;
}

.page-id-29890 .vir-page-hero,
.page-id-29890 .thim-top-heading,
body.page-id-29890 .thim-top-heading,
body.page-id-29890 [data-elementor-type="wp-page"] > .elementor-element:first-child,
body.page-id-29890 [data-elementor-type="wp-page"] > .e-con:first-child {
  background-position: center center !important;
  background-size: cover !important;
}

.vir-shell {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--vir-width-shell);
  width: min(100% - 40px, var(--vir-width-shell));
}

.vir-section {
  padding-bottom: clamp(58px, 7vw, var(--vir-space-8));
  padding-top: clamp(58px, 7vw, var(--vir-space-8));
}

.vir-section--warm {
  background: var(--vir-color-paper);
}

.vir-kicker {
  color: var(--vir-color-gold-text);
  display: block;
  font-family: var(--vir-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
  margin-bottom: var(--vir-space-3);
  text-transform: uppercase;
}

.vir-display {
  color: var(--vir-color-ink);
  font-family: var(--vir-font-title);
  font-size: clamp(32px, 4vw, 56px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.08;
  margin: 0;
}

.vir-lede {
  color: var(--vir-color-text);
  font-size: clamp(18px, 1.55vw, 22px);
  line-height: 1.62;
  margin: var(--vir-space-4) 0 0;
  max-width: var(--vir-width-text);
}

.vir-richtext {
  color: var(--vir-color-text);
  font-size: 16px;
  line-height: 1.82;
}

.vir-richtext p {
  margin: 0 0 var(--vir-space-3);
}

.vir-richtext p:last-child {
  margin-bottom: 0;
}

.vir-split {
  align-items: start;
  display: grid;
  gap: clamp(32px, 5vw, 72px);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.vir-panel {
  border-top: 1px solid var(--vir-color-line);
  padding-top: var(--vir-space-4);
  position: relative;
}

.vir-panel::before,
.vir-value-card::before {
  background: var(--vir-color-gold);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: -1px;
  width: 72px;
}

.vir-card-grid {
  display: grid;
  gap: var(--vir-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vir-value-card {
  background: var(--vir-color-white);
  border: 1px solid var(--vir-color-line-soft);
  border-radius: var(--vir-radius-lg);
  min-height: 100%;
  padding: clamp(24px, 3vw, 34px);
  position: relative;
  transition:
    border-color var(--vir-motion-base),
    box-shadow var(--vir-motion-base),
    transform var(--vir-motion-base);
}

.vir-value-card:hover {
  border-color: rgba(230, 163, 3, 0.34);
  box-shadow: var(--vir-shadow-lift);
  transform: translateY(-4px);
}

.vir-value-card__icon {
  height: 38px;
  margin-bottom: var(--vir-space-4);
  object-fit: contain;
  width: 38px;
}

.vir-value-card h3,
.vir-panel h2,
.vir-cta-band h2 {
  color: var(--vir-color-ink);
  font-family: var(--vir-font-title);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.22;
  margin: 0 0 var(--vir-space-3);
}

.vir-value-card h3 {
  font-size: 20px;
}

.vir-panel h2,
.vir-cta-band h2 {
  font-size: clamp(26px, 2.6vw, 38px);
}

.vir-value-card p,
.vir-panel p,
.vir-cta-band p {
  color: var(--vir-color-text);
  line-height: 1.78;
  margin: 0;
}

.vir-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--vir-space-2);
  margin-top: var(--vir-space-5);
}

.vir-button {
  align-items: center;
  background: var(--vir-color-gold);
  border: 1px solid var(--vir-color-gold);
  border-radius: var(--vir-radius-sm);
  color: var(--vir-color-ink);
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  justify-content: center;
  line-height: 1.3;
  min-height: 46px;
  padding: 14px 20px;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    background-color var(--vir-motion-fast),
    border-color var(--vir-motion-fast),
    box-shadow var(--vir-motion-base),
    color var(--vir-motion-fast),
    transform var(--vir-motion-base);
}

.vir-button:hover,
.vir-button:focus {
  background: var(--vir-color-ink);
  border-color: var(--vir-color-ink);
  box-shadow: 0 14px 30px rgba(31, 37, 42, 0.16);
  color: var(--vir-color-white);
  text-decoration: none;
  transform: translateY(-2px);
}

.vir-button--secondary {
  background: transparent;
  border-color: var(--vir-color-line);
  color: var(--vir-color-ink);
}

.vir-button--secondary:hover,
.vir-button--secondary:focus {
  background: var(--vir-color-petrol);
  border-color: var(--vir-color-petrol);
  color: var(--vir-color-white);
}

.vir-cta-band {
  background:
    linear-gradient(135deg, rgba(41, 73, 86, 0.97), rgba(31, 37, 42, 0.98));
  border-radius: var(--vir-radius-lg);
  color: var(--vir-color-white);
  overflow: hidden;
  padding: clamp(34px, 5vw, 58px);
  position: relative;
}

.vir-cta-band::before {
  background: var(--vir-color-gold);
  content: "";
  height: 100%;
  left: 0;
  opacity: 0.9;
  position: absolute;
  top: 0;
  width: 5px;
}

.vir-cta-band h2,
.vir-cta-band p {
  color: var(--vir-color-white);
}

.vir-cta-band p {
  max-width: var(--vir-width-text);
}

.vir-cta-band .vir-button--secondary {
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--vir-color-white);
}

.vir-page-institutional {
  color: var(--vir-color-text);
  font-family: var(--vir-font-body);
  margin-top: calc(var(--thim-padding-content-pdtop, 60px) * -1);
}

/* Global Header Parity Across All Pages */
#masthead,
#masthead.site-header {
  background: linear-gradient(180deg, rgba(18, 25, 28, 0.58) 0%, rgba(18, 25, 28, 0.36) 100%) !important;
  box-shadow: none !important;
  height: 82px !important;
  min-height: 82px !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 99999 !important;
}

body.no-hero #masthead,
body.no-hero #masthead.site-header {
  background: #1f252a !important;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12) !important;
}

#masthead .elementor-section,
#masthead .elementor-container,
#masthead .elementor-widget-wrap {
  background: transparent !important;
}

#masthead .thim-nav-wrapper {
  background: transparent !important;
  height: 82px !important;
  min-height: 82px !important;
}

#masthead .tm-table {
  align-items: center !important;
  display: flex !important;
  height: 72px !important;
  min-height: 72px !important;
}

#masthead .width-logo {
  align-items: center !important;
  display: flex !important;
  flex: 0 0 220px !important;
  height: 72px !important;
  min-height: 72px !important;
}

#masthead .width-navigation {
  align-items: center !important;
  display: flex !important;
  flex: 1 1 auto !important;
  justify-content: flex-end !important;
  height: 72px !important;
  min-height: 72px !important;
}

.thim-ekits-menu__nav-link,
.thim-ekits-menu__nav-link:visited,
#masthead .thim-ekits-menu__nav-link,
#masthead .thim-ekits-menu__nav-link:visited {
  background-color: transparent !important;
  color: #ffffff !important;
}

.thim-ekits-menu__nav-link:hover,
.thim-ekits-menu__nav-link.active,
.current-menu-item > .thim-ekits-menu__nav-link,
#masthead .thim-ekits-menu__nav-link:hover,
#masthead .thim-ekits-menu__nav-link.active,
#masthead .current-menu-item > .thim-ekits-menu__nav-link {
  color: var(--vir-color-gold, #e6a303) !important;
}

/* Internal Heroes Visual System Parity with Home (Single Image) */
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child {
  min-height: 760px !important;
  height: clamp(650px, 70vh, 850px) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  position: relative !important;
  padding-top: 100px !important;
  box-sizing: border-box !important;
  text-align: center !important;
}

body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child::before,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(18, 25, 28, 0.72) 0%, rgba(18, 25, 28, 0.85) 100%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child > *,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child > * {
  position: relative !important;
  z-index: 2 !important;
}

body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h2,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h2,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-heading-title {
  font-family: "Roboto Slab", serif !important;
  font-size: clamp(36px, 4.5vw, 60px) !important;
  font-weight: 600 !important;
  color: #ffffff !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-shadow: 0 12px 38px rgba(0, 0, 0, 0.4) !important;
  margin: 0 !important;
  text-align: center !important;
}

body:not(.page-id-15438) #breadcrumbs,
body:not(.page-id-15438) #breadcrumbs li,
body:not(.page-id-15438) #breadcrumbs a {
  color: var(--vir-color-text);
}

.vir-institutional-hero {
  background:
    linear-gradient(180deg, var(--vir-color-white) 0%, var(--vir-color-paper) 100%);
  padding-bottom: clamp(60px, 7vw, 96px);
  padding-top: clamp(58px, 7vw, 94px);
}

.vir-institutional-body {
  background: var(--vir-color-white);
}

.site-content.container.sidebar-right,
#main-content .container.sidebar-right {
  max-width: none;
  width: 100%;
}

/* Global Header Navigation Parity across all template renderers */
.site-header .thim-ekits-menu__nav,
.site-header .navigation ul.nav.navbar-nav {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
}

.site-header .thim-ekits-menu__nav > li > a,
.site-header .navigation ul.nav.navbar-nav > li > a,
.site-header .thim-ekits-menu__nav > li.current-menu-item > a,
.site-header .navigation ul.nav.navbar-nav > li.current-menu-item > a,
.site-header .thim-ekits-menu__nav > li.current_page_item > a,
.site-header .navigation ul.nav.navbar-nav > li.current_page_item > a {
  font-family: "Roboto", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  padding: 8px 12px !important;
}

.site-header .btn-test-livello,
.site-header a.thim-nav-final-cta {
  padding: 9px 18px !important;
  letter-spacing: 0.52px !important;
}

body:has(.vir-page-institutional) #main.site-main {
  float: none;
  margin-left: auto;
  margin-right: auto;
  max-width: none;
  width: 100%;
}

@media (min-width: 768px) {
  .vir-richtext p {
    hyphens: auto;
    text-align: justify;
    text-align-last: left;
  }
}

@media (max-width: 1024px) {
  .vir-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vir-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .vir-shell {
    width: min(100% - 30px, var(--vir-width-shell));
  }

  .vir-section,
  .vir-institutional-hero {
    padding-bottom: 48px;
    padding-top: 48px;
  }

  .vir-display {
    font-size: 31px;
  }

  .vir-lede {
    font-size: 17px;
    line-height: 1.58;
  }

  .vir-richtext p {
    hyphens: manual;
    text-align: left;
  }

  .vir-card-grid {
    grid-template-columns: 1fr;
  }

  .vir-value-card {
    padding: 24px;
  }

  .vir-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .vir-button {
    width: 100%;
  }

  .vir-page-institutional {
    margin-top: calc(var(--thim-padding-content-pdtop, 40px) * -1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .vir-button,
  .vir-value-card {
    transform: none !important;
    transition: none !important;
  }
}

/*
2026-07-04 — Target locked: Home / "Perche studiare con V.I.R. Scuola".
Uniforma solo i 5 box della sezione autorizzata; mobile resta naturale.
*/
.elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box,
.elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box > .elementor-widget-container,
.elementor-element-c274f56 .elementor-element-5d299f4 .thim-widget-icon-box,
.elementor-element-c274f56 .elementor-element-5d299f4 .wrapper-box-icon,
.elementor-element-c274f56 .elementor-element-5d299f4 .smicon-box {
  height: 100%;
}

.elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box > .elementor-widget-container {
  min-height: 255px;
  display: flex;
}

.elementor-element-c274f56 .elementor-element-5d299f4 .thim-widget-icon-box {
  width: 100%;
}

.elementor-element-c274f56 .elementor-element-5d299f4 .smicon-box {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.elementor-element-c274f56 .elementor-element-5d299f4 .desc-icon-box {
  text-align: center;
}

@media (max-width: 767px) {
  .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box,
  .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box > .elementor-widget-container,
  .elementor-element-c274f56 .elementor-element-5d299f4 .thim-widget-icon-box,
  .elementor-element-c274f56 .elementor-element-5d299f4 .wrapper-box-icon,
  .elementor-element-c274f56 .elementor-element-5d299f4 .smicon-box {
    height: auto;
  }

  .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box > .elementor-widget-container {
    min-height: 0;
  }
}

/*
2026-08-05 — Home premium refinement.
Improves section rhythm, editorial course layout, justified body copy and
lightweight motion without changing hero imagery or Elementor structure.
*/
/*
2026-08-14 — V.I.R. Scuola "Chi Siamo" (Page ID 29886) Child Theme Component CSS
Binding Technical Contract: _design/approved/chi-siamo.md (1440px Desktop Reference)
*/
.vir-chisiamo-child-body {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

/* Chi Siamo Page — Unified 3-Level Editorial Grid Architecture */
.vir-cs-sec {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Shells */
.vir-cs-shell {
  width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

.vir-cs-shell-editorial {
  max-width: 900px !important;
}

.vir-cs-shell-primary {
  max-width: 1160px !important;
}

/* Typography Tokens */
.vir-cs-gold-bar {
  width: 50px !important;
  height: 2px !important;
  background-color: #E6A303 !important;
  margin-bottom: 16px !important;
}

.vir-cs-eyebrow {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 2.8px !important;
  color: #E6A303 !important;
  margin-bottom: 12px !important;
  display: block !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

.vir-cs-title-large {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 44px !important;
  line-height: 52px !important;
  font-weight: 600 !important;
  color: #12161A !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
  text-align: center !important;
}

.vir-cs-title-medium {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 36px !important;
  line-height: 46px !important;
  font-weight: 600 !important;
  color: #12161A !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

.vir-cs-title-light {
  color: #FFFFFF !important;
}

.vir-cs-support-text p,
.vir-cs-body-text p {
  font-family: 'Roboto', sans-serif !important;
  font-size: 17px !important;
  line-height: 28px !important;
  color: #4B5560 !important;
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  text-align: justify !important;
  text-justify: inter-word !important;
}

.vir-cs-support-text p {
  font-size: 18px !important;
  line-height: 30px !important;
}

.vir-cs-body-light p {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* S1 Editorial Statement */
.vir-cs-s1 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

/* S2 L'idea */
.vir-cs-s2 {
  background-color: #FFFFFF !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-cs-split {
  width: 100% !important;
  max-width: 1440px !important;
  display: flex !important;
  flex-direction: row !important;
  margin: 0 auto !important;
}

.vir-cs-s2 .vir-cs-split-text {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  text-align: left !important;
}

.vir-cs-s2 .vir-cs-split-media {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  overflow: hidden !important;
  border-radius: 4px !important;
}

.vir-cs-img-idea {
  width: 100% !important;
  height: 100% !important;
  max-height: 420px !important;
  object-fit: cover !important;
  object-position: 50% 48% !important;
  display: block !important;
  border-radius: 4px !important;
}

/* S3 Identità */
.vir-cs-s3 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-cs-header-group {
  text-align: center !important;
  margin-bottom: 24px !important;
}

.vir-cs-grid-3col {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  margin-top: 16px !important;
}

.vir-cs-grid-3col .vir-cs-col-item {
  padding: 24px !important;
  background-color: #FFFFFF !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.vir-cs-icon {
  margin-bottom: 12px !important;
}

.vir-cs-col-title {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2.8px !important;
  color: #12161A !important;
  display: block !important;
  margin-bottom: 8px !important;
}

.vir-cs-col-item p {
  font-family: 'Roboto', sans-serif !important;
  font-size: 15px !important;
  line-height: 24px !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

/* S4 Visione */
.vir-cs-s4 {
  background-color: #FFFFFF !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-cs-s4 .vir-cs-split-text {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  background-color: #1F252A !important;
  padding: 40px !important;
  border-radius: 4px 0 0 4px !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  text-align: left !important;
}

.vir-cs-s4 .vir-cs-split-media {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  overflow: hidden !important;
  border-radius: 0 4px 4px 0 !important;
}

.vir-cs-img-vision {
  width: 100% !important;
  height: 100% !important;
  max-height: 420px !important;
  object-fit: cover !important;
  object-position: 52% 52% !important;
  display: block !important;
}

/* S5 Come lavoriamo */
.vir-cs-s5 {
  background-color: #FFFFFF !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-cs-grid-4col {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  margin-top: 16px !important;
}

.vir-cs-step-item {
  background-color: #F8F8F5 !important;
  padding: 24px 20px !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.vir-cs-step-num {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  color: #E6A303 !important;
  display: block !important;
  margin-bottom: 8px !important;
  line-height: 1 !important;
}

.vir-cs-step-title {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #12161A !important;
  display: block !important;
  margin-bottom: 8px !important;
}

.vir-cs-step-item p {
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
  line-height: 22px !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

/* S6 Filosofia */
.vir-cs-s6 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-cs-statement {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 24px !important;
  line-height: 36px !important;
  font-weight: 600 !important;
  color: #12161A !important;
  font-style: italic !important;
  margin: 16px 0 !important;
  text-align: center !important;
}

.vir-cs-attribution {
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  display: block !important;
  text-align: center !important;
  font-style: normal !important;
}

/* S7 CTA */
.vir-cs-s7 {
  background-color: #FFFFFF !important;
  padding-block: clamp(40px, 3.5vw, 52px) !important;
}

.vir-cs-cta-text {
  font-family: 'Roboto', sans-serif !important;
  font-size: 16px !important;
  line-height: 26px !important;
  color: #4B5560 !important;
  margin-bottom: 24px !important;
  text-align: center !important;
}

.vir-cs-cta-actions {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px !important;
  justify-content: center !important;
}

.vir-cs-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 48px !important;
  padding: 0 32px !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
}

.vir-cs-btn-primary {
  background-color: #E6A303 !important;
  color: #FFFFFF !important;
  border: none !important;
}

.vir-cs-btn-primary:hover {
  background-color: #cc9103 !important;
  color: #FFFFFF !important;
}

.vir-cs-btn-secondary {
  border: 1px solid #1F252A !important;
}

.vir-cs-btn-secondary:hover {
  background-color: #1F252A !important;
  color: #FFFFFF !important;
}

/*
2026-08-14 — V.I.R. Scuola "Scuola" (Page ID 29887) Child Theme Component CSS
Binding Technical Contract: Master Specification Blueprint (1440px Desktop Reference)
*/
.vir-scuola-child-body {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

.vir-sc-sec {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/*
==========================================================================
V.I.R. Scuola — Scuola (Page ID 29887) Mandatory 2-Level DOM Architecture
1. SEZIONE ESTERNA: .page-section (width: 100%; height: auto;)
2. CONTENITORE INTERNO UNICO: .page-container (width: min(92vw, 1540px); margin-inline: auto;)
==========================================================================
*/

.vir-scuola-child-body {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

/* Level 1: Full-width outer section band */
.page-section {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Level 2: Structural responsive shell */
.page-container {
  width: 100% !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

/* Level 3: SINGLE UNIFIED EDITORIAL GRID (Shared across ALL sections S1-S7) */
.page-editorial-grid {
  width: min(90vw, 1140px) !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

/* Mandatory Justification of Narrative Paragraphs */
.page-editorial-grid p {
  text-align: justify !important;
  text-justify: inter-word !important;
}

.page-editorial-grid .vir-sc-title-gold {
  text-align: center !important;
}

.page-editorial-grid .vir-sc-title-black.vir-sc-text-center {
  text-align: center !important;
}

.page-editorial-grid .vir-sc-title-black.vir-sc-text-left {
  text-align: left !important;
}

.page-editorial-grid .vir-sc-cta-text {
  text-align: center !important;
}

/* Responsive Editorial Grid Breakpoints */
@media (max-width: 1200px) {
  .page-editorial-grid {
    width: calc(100% - 96px) !important;
  }
}

@media (max-width: 1024px) {
  .page-editorial-grid {
    width: calc(100% - 64px) !important;
  }
  .two-columns {
    gap: 36px !important;
  }
}

@media (max-width: 767px) {
  .page-editorial-grid {
    width: calc(100% - 36px) !important;
  }
  .two-columns {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

/* Scoped Typographic Measure for S1 and S6 Prose Sections */
#s1-la-scuola-online .section-prose,
#s6-studiare-da-luoghi-diversi .section-prose {
  width: 100% !important;
  max-width: 1080px !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

.vir-sc-shell-ink {
  align-items: flex-start !important;
  text-align: left !important;
}

/* Two-Columns Grid System */
.two-columns {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 64px !important;
}

/* Strict Typographic Scale Tokens */
.vir-sc-title-gold {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 32px !important;
  line-height: 40px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  text-align: center !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
  display: block !important;
  width: 100% !important;
}

.vir-sc-title-black {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 24px !important;
  line-height: 34px !important;
  font-weight: 600 !important;
  color: #12161A !important;
  margin-top: 0 !important;
  margin-bottom: 20px !important;
  display: block !important;
  width: 100% !important;
}

.vir-sc-title-white {
  color: #FFFFFF !important;
}

.vir-sc-text-center {
  text-align: center !important;
}

.vir-sc-text-left {
  text-align: left !important;
}

/* ==========================================================================
   V.I.R. Scuola — Institutional Base Typography (Structural Only, No Color)
   ========================================================================== */
.vir-scuola-child-body p,
.page-editorial-grid p,
.page-section p {
  font-family: 'Roboto', sans-serif !important;
  font-size: 16px !important;
  line-height: 27px !important;
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

.page-editorial-grid p:last-child,
.page-section p:last-child {
  margin-bottom: 0 !important;
}

.vir-scuola-child-body .vir-sc-cta-text,
.vir-scuola-child-body .vir-sc-step-name,
.page-editorial-grid .vir-sc-cta-text,
.page-editorial-grid .vir-sc-step-name {
  text-align: left !important;
}

.vir-sc-readable-measure {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}

/* Narrative text justification within canonical editorial body contexts */
.vir-sc-readable-measure p,
.vir-sc-support-text p,
.vir-sc-body-text p,
.vir-sc-cols-2 p,
.vir-sc-col p,
.vir-cs-body-text p,
.vir-cs-body-text,
.vir-mv-intro-body p,
.vir-mv-editorial-body p,
.vir-mv-split-text-panel p,
.vir-mv-dark-body-prose p,
.vir-mv-closing-body p,
.vir-course-editorial p,
.vir-editorial-content p,
.vir-editorial-prose p,
.page-editorial-grid .vir-body-paragraph {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
}

/* Canonical CTA Group Centering below editorial text */
.vir-editorial-actions,
.vir-cta-center,
.vir-mv-closing-actions,
.vir-mv-action-links {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* ==========================================================================
   V.I.R. Scuola — Contextual Text Coloring (Semantic Surface Ownership)
   ========================================================================== */
/* 1. Light surfaces (Default body text on white/light sections) */
.page-section p,
.vir-cs-section-light p,
.vir-mv-section-white p,
.vir-section-light p,
.vir-section-white p,
.vir-bg-light p,
.vir-bg-white p {
  color: #4B5560;
}

.vir-bg-dark,
section.vir-bg-dark {
  background-color: #12161A !important;
}

.vir-sc-shell-ink p,
.vir-sc-shell-ink .page-editorial-grid p,
.vir-cs-ink-panel p,
.vir-cs-body-light p,
.vir-bg-dark p,
.vir-bg-dark .page-editorial-grid p,
.vir-mv-section-cta p,
.vir-tl-s2 .vir-sc-shell-ink p {
  color: #CBD5E1 !important;
}

.vir-sc-shell-ink h2,
.vir-sc-shell-ink h3,
.vir-bg-dark h2,
.vir-bg-dark h3 {
  color: #FFFFFF !important;
}

/* 3. Hero Master Copy (High contrast White H1 & Lead, Gold Label on vibrant photographic background) */
.vir-hero-master-desc,
.vir-mv-hero-lead,
.vir-hub-hero-lead,
.vir-scuola-hero-lead,
.vir-cs-hero-lead,
.vir-tl-hero-section p,
.vir-legal-hero-section p {
  color: #FFFFFF !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6) !important;
}

.vir-hero-master-title,
.vir-mv-hero-title,
.vir-hub-hero-title,
.vir-hub-hero-section h1,
.vir-scuola-hero-section h1,
.vir-cs-hero-section h1,
.vir-tl-hero-title,
.vir-legal-hero-title {
  color: #FFFFFF !important;
  font-family: "Roboto Slab", Georgia, serif !important;
  font-weight: 700 !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65) !important;
}

.vir-hero-master-label,
.vir-hub-hero-eyebrow,
.vir-mv-eyebrow-hero,
.vir-tl-hero-eyebrow {
  color: #E6A303 !important;
  font-family: "Roboto", sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  display: block !important;
  margin: 0 auto 14px !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6) !important;
}

/* Fluid Responsive Image System */
img.vir-sc-img-fluid,
.two-columns img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  border-radius: 4px !important;
  display: block !important;
}

/* Section Backgrounds & Content-Driven Fluid Vertical Padding */
.vir-sc-s1 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-sc-s2 {
  background-color: #FFFFFF !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-sc-split-text {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

.vir-sc-split-media {
  overflow: hidden !important;
}

.vir-sc-s3 {
  background-color: #12161A !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-sc-col p {
  color: rgba(255, 255, 255, 0.85) !important;
}

.vir-sc-ink-footer {
  display: flex !important;
  flex-direction: row !important;
  gap: 24px !important;
  align-items: center !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 2.8px !important;
  color: #E6A303 !important;
  margin-top: 24px !important;
}

.vir-sc-ink-footer .vir-sc-sep {
  color: rgba(255, 255, 255, 0.3) !important;
}

.two-columns.vir-sc-align-center {
  align-items: center !important;
}

.vir-sc-s4 {
  background-color: #F1EEE7 !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-sc-tools-list {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.vir-sc-tools-grid {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin-top: 24px !important;
}

.vir-sc-step-box {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 20px !important;
  background-color: #FFFFFF !important;
  padding: 20px 24px !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
  box-sizing: border-box !important;
}

@media (min-width: 1024px) {
  .vir-sc-step-box {
    height: 220px !important;
  }
}

@media (max-width: 1023px) {
  .vir-sc-step-box {
    height: auto !important;
  }
}

.vir-sc-step-box .vir-sc-step-num {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  color: #E6A303 !important;
  line-height: 1 !important;
}

.vir-sc-step-name {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #12161A !important;
  display: block !important;
  margin-bottom: 4px !important;
}

.vir-sc-step-content p {
  font-size: 14px !important;
  line-height: 21px !important;
  color: #4B5560 !important;
  text-align: left !important;
  margin: 0 !important;
}

.vir-sc-s5 {
  background-color: #FFFFFF !important;
  padding-block: clamp(64px, 5.5vw, 84px) !important;
}

.vir-sc-s6 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-sc-s7 {
  background-color: #FFFFFF !important;
  padding-block: clamp(52px, 4.5vw, 68px) !important;
}

.vir-sc-s8 {
  background-color: #F8F8F5 !important;
  padding-block: clamp(40px, 3.5vw, 52px) !important;
}

.vir-sc-cta-text {
  font-family: 'Roboto', sans-serif !important;
  font-size: 17px !important;
  color: #4B5560 !important;
  margin-bottom: 24px !important;
}

.vir-sc-cta-actions {
  display: flex !important;
  flex-direction: row !important;
  gap: 20px !important;
  justify-content: center !important;
}

.vir-sc-btn {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.vir-sc-btn-primary {
  background-color: #E6A303 !important;
  color: #FFFFFF !important;
  border: 1px solid #E6A303 !important;
}

.vir-sc-btn-primary:hover {
  background-color: #D49400 !important;
  border-color: #D49400 !important;
}

.vir-sc-btn-secondary {
  background-color: transparent !important;
  color: #12161A !important;
  border: 1px solid #12161A !important;
}

.vir-sc-btn-secondary:hover {
  background-color: #12161A !important;
  color: #FFFFFF !important;
}

/* RESPONSIVE BREAKPOINTS: TABLET (1024px and below) */
@media (max-width: 1024px) {
  .vir-sc-s1, .vir-sc-s2, .vir-sc-s3, .vir-sc-s5, .vir-sc-s6 {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
  .vir-sc-s4, .vir-sc-s7 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
  .two-columns {
    gap: 40px !important;
  }
  .vir-sc-title-gold {
    font-size: 28px !important;
    line-height: 36px !important;
  }
  .vir-sc-title-black {
    font-size: 22px !important;
    line-height: 30px !important;
  }
}

/* RESPONSIVE BREAKPOINTS: MOBILE (600px and below) */
@media (max-width: 600px) {
  .vir-sc-s1, .vir-sc-s2, .vir-sc-s3, .vir-sc-s4, .vir-sc-s5, .vir-sc-s6, .vir-sc-s7 {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .two-columns {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-sc-s5 .two-columns {
    display: flex !important;
    flex-direction: column-reverse !important;
  }
  .vir-sc-title-gold {
    font-size: 24px !important;
    line-height: 32px !important;
    letter-spacing: 1.5px !important;
  }
  .vir-sc-title-black {
    font-size: 20px !important;
    line-height: 28px !important;
    text-align: center !important;
  }
  .vir-sc-text-left {
    text-align: center !important;
  }
  .vir-sc-readable-measure p,
  .vir-sc-support-text p,
  .vir-sc-body-text p,
  .vir-sc-cols-2 p {
    text-align: left !important;
    font-size: 15px !important;
    line-height: 24px !important;
  }
  .vir-sc-cta-actions {
    flex-direction: column !important;
    width: 100% !important;
  }
  .vir-sc-btn {
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
}

/* S6 Studiare da luoghi diversi */
.vir-sc-s6 {
  height: auto !important;
  background-color: #F8F8F5 !important;
}

/* S7 IL PERCORSO */
.vir-sc-s7 {
  height: auto !important;
  background-color: #FFFFFF !important;
}

/* S8 CTA FINALE */
.vir-sc-s8 {
  height: auto !important;
  background-color: #F8F8F5 !important;
}

.vir-sc-cta-text {
  font-family: 'Roboto', sans-serif !important;
  font-size: 16px !important;
  line-height: 26px !important;
  color: #4B5560 !important;
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

.vir-sc-cta-actions {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px !important;
  justify-content: center !important;
}

.vir-sc-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 28px !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
  border-radius: 2px !important;
  transition: all 0.2s ease !important;
}

.vir-sc-btn-primary {
  background-color: #E6A303 !important;
  color: #FFFFFF !important;
  border: 1px solid #E6A303 !important;
}

.vir-sc-btn-primary:hover {
  background-color: #D49502 !important;
  color: #FFFFFF !important;
}

.vir-sc-btn-secondary {
  background-color: #FFFFFF !important;
  color: #1F252A !important;
  border: 1px solid #1F252A !important;
}

.vir-sc-btn-secondary:hover {
  background-color: #1F252A !important;
  color: #FFFFFF !important;
}

/* RESPONSIVE CONTRACT FOR SCUOLA (Laptop 1024-1199px, Tablet 768-1023px, Mobile <=767px) */
@media (max-width: 1199px) {
  .vir-sc-sec,
  .vir-sc-s1,
  .vir-sc-s2,
  .vir-sc-s3,
  .vir-sc-s4,
  .vir-sc-s5,
  .vir-sc-s6,
  .vir-sc-s7 {
    height: auto !important;
    min-height: initial !important;
    max-height: initial !important;
    padding-top: 56px !important;
    padding-bottom: 56px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  .vir-sc-shell {
    width: calc(100% - 96px) !important;
    max-width: 100% !important;
  }

  .vir-sc-title-large {
    font-size: 38px !important;
    line-height: 46px !important;
  }

  .vir-sc-title-medium {
    font-size: 38px !important;
    line-height: 46px !important;
  }

  .vir-sc-s2 .vir-sc-split-text,
  .vir-sc-s5 .vir-sc-split-text {
    width: 50% !important;
    min-width: 50% !important;
    max-width: 50% !important;
    padding-left: 48px !important;
    padding-right: 48px !important;
    height: auto !important;
  }

  .vir-sc-s2 .vir-sc-split-media,
  .vir-sc-s5 .vir-sc-split-media {
    width: 50% !important;
    min-width: 50% !important;
    max-width: 50% !important;
    height: auto !important;
  }

  .vir-sc-img-lesson,
  .vir-sc-img-teacher {
    width: 100% !important;
    height: 380px !important;
    min-height: 380px !important;
  }

  .vir-sc-split-wide {
    flex-direction: column !important;
    gap: 32px !important;
  }

  .vir-sc-split-text-left,
  .vir-sc-split-steps-right {
    width: 100% !important;
  }
}

@media (max-width: 1023px) {
  .vir-sc-sec,
  .vir-sc-s1,
  .vir-sc-s2,
  .vir-sc-s3,
  .vir-sc-s4,
  .vir-sc-s5,
  .vir-sc-s6,
  .vir-sc-s7 {
    height: auto !important;
    min-height: initial !important;
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .vir-sc-shell {
    width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  .vir-sc-split {
    flex-direction: column !important;
  }

  .vir-sc-s2 .vir-sc-split-text,
  .vir-sc-s5 .vir-sc-split-text,
  .vir-sc-s2 .vir-sc-split-media,
  .vir-sc-s5 .vir-sc-split-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    padding: 36px 40px !important;
    height: auto !important;
  }

  .vir-sc-img-lesson,
  .vir-sc-img-teacher {
    width: 100% !important;
    height: 320px !important;
    min-height: 320px !important;
  }

  .vir-sc-cols-2 {
    flex-direction: column !important;
    gap: 24px !important;
  }
}

@media (max-width: 767px) {
  .vir-sc-sec,
  .vir-sc-s1,
  .vir-sc-s2,
  .vir-sc-s3,
  .vir-sc-s4,
  .vir-sc-s5,
  .vir-sc-s6,
  .vir-sc-s7 {
    height: auto !important;
    min-height: initial !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  .vir-sc-shell {
    width: 100% !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
  }

  .vir-sc-s2 .vir-sc-split-text,
  .vir-sc-s5 .vir-sc-split-text,
  .vir-sc-s2 .vir-sc-split-media,
  .vir-sc-s5 .vir-sc-split-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    padding: 28px !important;
    height: auto !important;
  }

  .vir-sc-title-large {
    font-size: 32px !important;
    line-height: 38px !important;
  }

  .vir-sc-title-medium {
    font-size: 32px !important;
    line-height: 38px !important;
  }

  .vir-sc-support-text p,
  .vir-sc-body-text p {
    font-size: 16px !important;
    line-height: 26px !important;
  }

  .vir-sc-img-lesson,
  .vir-sc-img-teacher {
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
  }

  .vir-sc-cta-actions {
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
  }

  .vir-sc-btn {
    width: 100% !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 1199px) {
  .vir-cs-sec,
  .vir-cs-s1,
  .vir-cs-s2,
  .vir-cs-s3,
  .vir-cs-s4,
  .vir-cs-s5,
  .vir-cs-s6,
  .vir-cs-s7 {
    height: auto !important;
    min-height: initial !important;
    max-height: initial !important;
    padding-top: 56px !important;
    padding-bottom: 56px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  .vir-cs-shell {
    width: calc(100% - 96px) !important;
    max-width: 100% !important;
  }

  .vir-cs-title-large {
    font-size: 38px !important;
    line-height: 46px !important;
  }

  .vir-cs-title-medium {
    font-size: 38px !important;
    line-height: 46px !important;
  }

  .vir-cs-s2 .vir-cs-split-text,
  .vir-cs-s4 .vir-cs-split-text {
    width: 50% !important;
    min-width: 50% !important;
    max-width: 50% !important;
    padding-left: 48px !important;
    padding-right: 48px !important;
    height: auto !important;
  }

  .vir-cs-s2 .vir-cs-split-media,
  .vir-cs-s4 .vir-cs-split-media {
    width: 50% !important;
    min-width: 50% !important;
    max-width: 50% !important;
    height: auto !important;
  }

  .vir-cs-img-idea,
  .vir-cs-img-vision {
    width: 100% !important;
    height: 380px !important;
    min-height: 380px !important;
  }
}

@media (max-width: 1023px) {
  .vir-cs-sec,
  .vir-cs-s1,
  .vir-cs-s2,
  .vir-cs-s3,
  .vir-cs-s4,
  .vir-cs-s5,
  .vir-cs-s6,
  .vir-cs-s7 {
    height: auto !important;
    min-height: initial !important;
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .vir-cs-shell {
    width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  .vir-cs-split {
    flex-direction: column !important;
  }

  .vir-cs-s2 .vir-cs-split-text,
  .vir-cs-s4 .vir-cs-split-text,
  .vir-cs-s2 .vir-cs-split-media,
  .vir-cs-s4 .vir-cs-split-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    padding: 36px 40px !important;
    height: auto !important;
  }

  .vir-cs-img-idea,
  .vir-cs-img-vision {
    width: 100% !important;
    height: 320px !important;
    min-height: 320px !important;
  }

  .vir-cs-grid-3col {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .vir-cs-grid-3col .vir-cs-col-item {
    width: 100% !important;
    padding: 24px !important;
    border-right: none !important;
    border-bottom: none !important;
  }

  .vir-cs-grid-3col .vir-cs-col-item:last-child {
    border-bottom: none !important;
    padding-bottom: 24px !important;
  }

  .vir-cs-grid-4col {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .vir-cs-step-item {
    width: 100% !important;
    padding-right: 20px !important;
  }
}

@media (max-width: 767px) {
  .vir-cs-sec,
  .vir-cs-s1,
  .vir-cs-s2,
  .vir-cs-s3,
  .vir-cs-s4,
  .vir-cs-s5,
  .vir-cs-s6,
  .vir-cs-s7 {
    height: auto !important;
    min-height: initial !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  .vir-cs-shell {
    width: 100% !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
  }

  .vir-cs-s2 .vir-cs-split-text,
  .vir-cs-s4 .vir-cs-split-text,
  .vir-cs-s2 .vir-cs-split-media,
  .vir-cs-s4 .vir-cs-split-media {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    padding: 28px !important;
    height: auto !important;
  }

  .vir-cs-title-large {
    font-size: 32px !important;
    line-height: 38px !important;
  }

  .vir-cs-title-medium {
    font-size: 32px !important;
    line-height: 38px !important;
  }

  .vir-cs-support-text p,
  .vir-cs-body-text p {
    font-size: 16px !important;
    line-height: 26px !important;
  }

  .vir-cs-statement {
    font-size: 24px !important;
    line-height: 32px !important;
  }

  .vir-cs-img-idea,
  .vir-cs-img-vision {
    width: 100% !important;
    height: 280px !important;
    min-height: 280px !important;
  }

  .vir-cs-cta-actions {
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
  }

  .vir-cs-btn {
    width: 100% !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
  }
}

  .page-id-29886 .elementor-element-vircs_identity > .e-con > .e-con > .e-con,
  .page-id-29886 .elementor-element-vircs_process > .e-con > .e-con > .e-con {
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 24px !important;
    border-right: none !important;
  }
}

@media (max-width: 767px) {
  body.page-id-29886,
  .page-id-29886 #main-content {
    overflow-x: hidden !important;
  }

  .page-id-29886 .elementor-element-vircs_idea > .e-con:first-child,
  .page-id-29886 .elementor-element-vircs_vision > .e-con:first-child,
  .page-id-29886 .elementor-element-vircs_identity > .e-con,
  .page-id-29886 .elementor-element-vircs_process > .e-con,
  .page-id-29886 .elementor-element-vircs_manifesto > .e-con,
  .page-id-29886 .elementor-element-vircs_philosophy > .e-con,
  .page-id-29886 .elementor-element-vircs_cta > .e-con {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .page-id-29886 .elementor-element-vircs_cta .e-con-child,
  .page-id-29886 .elementor-element-vircs_cta .e-con {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
  }

  .page-id-29886 .elementor-button-wrapper,
  .page-id-29886 .elementor-button {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
  }
}

/* Typography & Spacing Precision for Page ID 29887 */
.page-id-29887 h2,
.page-id-29887 .elementor-heading-title {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  line-height: 1.15 !important;
}

.page-id-29887 p {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
}

.page-id-29887 .vir-school-online {
  min-height: 430px !important;
  height: 430px !important;
  max-height: 430px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  background-color: #F8F8F5 !important;
  overflow: hidden !important;
}

.page-id-29887 .vir-school-online h2,
.page-id-29887 .vir-school-online .elementor-heading-title {
  font-size: 32px !important;
  line-height: 38px !important;
  margin-top: 0 !important;
  margin-bottom: 8px !important;
}

/* Legacy vir_school rules removed to enforce clean child theme component rendering */
.page-id-15438 {
  --vir-premium-ink: #1f252a;
  --vir-premium-petrol: #294956;
  --vir-premium-paper: #f8f8f5;
  --vir-premium-line: rgba(31, 37, 42, 0.14);
  --vir-premium-gold: #e6a303;
  --vir-premium-muted: #4b5560;
}

.page-id-15438 .entry-content,
.page-id-15438 .elementor-widget-text-editor {
  color: var(--vir-premium-muted);
}

.page-id-15438 .elementor-widget-text-editor p,
.page-id-15438 .desc-icon-box,
.page-id-15438 .sub-heading p {
  hyphens: auto;
  line-height: 1.72;
  overflow-wrap: anywhere;
  text-align: justify;
  text-align-last: left;
}

.page-id-15438 .sc_heading .title,
.page-id-15438 .heading__primary,
.page-id-15438 .elementor-button,
.page-id-15438 .widget-button,
.page-id-15438 #masthead {
  text-align: inherit;
}

.page-id-15438 .elementor-section {
  scroll-margin-top: 96px;
}

.page-id-15438 .thim-ekits-menu__nav-link,
.page-id-15438 .thim-ekits-menu__nav-link:visited,
.page-id-15438 #masthead .thim-ekits-menu__nav-link,
.page-id-15438 #masthead .thim-ekits-menu__nav-link:visited {
  background-color: transparent !important;
  color: #ffffff !important;
  padding-left: 8px;
  padding-right: 8px;
}

.page-id-15438 .thim-ekits-menu__nav-link:hover,
.page-id-15438 .thim-ekits-menu__nav-link.active,
.page-id-15438 .current-menu-item > .thim-ekits-menu__nav-link,
.page-id-15438 #masthead .thim-ekits-menu__nav-link:hover,
.page-id-15438 #masthead .thim-ekits-menu__nav-link.active,
.page-id-15438 #masthead .current-menu-item > .thim-ekits-menu__nav-link {
  color: var(--vir-premium-gold) !important;
}

.page-id-15438 .elementor-element-c274f56,
.page-id-15438 .elementor-element-f280a47,
.page-id-15438 .elementor-element-e9a59ec,
.page-id-15438 .elementor-element-bd43304 {
  position: relative;
}

.page-id-15438 .elementor-element-c274f56 {
  padding-top: clamp(36px, 3.5vw, 60px);
  padding-bottom: clamp(36px, 3.5vw, 56px);
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container {
  border: 1px solid rgba(31, 37, 42, 0.07);
  box-shadow: 0 18px 48px rgba(31, 37, 42, 0.05);
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container:hover {
  border-color: rgba(230, 163, 3, 0.35);
  box-shadow: 0 24px 58px rgba(31, 37, 42, 0.08);
  transform: translateY(-4px);
}

.page-id-15438 .elementor-element-e9a59ec {
  background: linear-gradient(180deg, #ffffff 0%, var(--vir-premium-paper) 100%);
  padding-top: clamp(48px, 4.5vw, 72px);
  padding-bottom: clamp(48px, 4.5vw, 70px);
}

.page-id-15438 .elementor-element-e9a59ec .elementor-container {
  max-width: 1180px;
}

.page-id-15438 .elementor-element-c274118 {
  display: block;
  margin: 0 auto clamp(42px, 5vw, 68px) !important;
  max-width: 780px;
  opacity: 1 !important;
  text-align: center;
  visibility: visible !important;
  width: 100% !important;
}

.page-id-15438 .elementor-element-c274118.elementor-invisible {
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.page-id-15438 .elementor-element-c274118 .sc_heading {
  text-align: center;
}

.page-id-15438 .elementor-element-c274118 .title {
  color: var(--vir-premium-ink);
  font-size: clamp(28px, 3.1vw, 44px);
  line-height: 1.14;
  margin-left: auto;
  margin-right: auto;
}

.page-id-15438 .elementor-element-c274118 .title::after {
  background: var(--vir-premium-gold);
  content: "";
  display: block;
  height: 3px;
  margin: 22px auto 0;
  width: 72px;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 {
  margin-top: 0;
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon {
  min-height: 188px;
  padding: 8px 14px;
  transition: transform 220ms ease;
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box:hover .wrapper-box-icon {
  transform: translateY(-3px);
}

.page-id-15438 .elementor-element-e9a59ec .boxes-icon {
  margin-bottom: 18px;
}

.page-id-15438 .elementor-element-e9a59ec .heading__primary {
  color: var(--vir-premium-ink);
  font-size: 15px;
  line-height: 1.28;
  margin-bottom: 12px;
}

.page-id-15438 .elementor-element-e9a59ec .desc-content {
  color: var(--vir-premium-muted);
  font-size: 14px;
  line-height: 1.7;
  max-width: 245px;
}

.page-id-15438 .elementor-element-bd43304 {
  background:
    linear-gradient(180deg, #f4f5f2 0%, #ffffff 100%);
  padding-top: clamp(48px, 4.5vw, 76px);
  padding-bottom: clamp(50px, 4.5vw, 78px);
}

.page-id-15438 .elementor-element-bd43304 > .elementor-container {
  max-width: 1040px;
}

.page-id-15438 .elementor-element-bd43304 .elementor-widget-wrap {
  align-content: flex-start;
}

.page-id-15438 .elementor-element-47b5043 {
  margin-bottom: 30px;
  text-align: center;
}

.page-id-15438 .elementor-element-47b5043 .sc_heading {
  margin-left: auto;
  margin-right: auto;
  max-width: 760px;
  text-align: center;
}

.page-id-15438 .elementor-element-47b5043 .title {
  color: var(--vir-premium-ink);
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: 1.15;
  margin-bottom: 12px;
}

.page-id-15438 .elementor-element-47b5043 .sub-heading p {
  color: var(--vir-premium-muted);
  font-size: 15px;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 620px;
  text-align: center;
  text-align-last: center;
}

.page-id-15438 .elementor-element-vircintro {
  margin: 0 auto clamp(46px, 5vw, 68px);
  max-width: 790px;
}

.page-id-15438 .elementor-element-vircintro p {
  color: var(--vir-premium-muted);
  font-size: 16px;
  line-height: 1.86;
  margin: 0;
}

.page-id-15438 .elementor-element-vircrw1,
.page-id-15438 .elementor-element-vircrw2 {
  margin-left: auto;
  margin-right: auto;
  max-width: 1040px;
}

.page-id-15438 .elementor-element-vircrw1 {
  margin-bottom: clamp(34px, 4vw, 54px);
}

.page-id-15438 .elementor-element-vircrw1 > .elementor-container,
.page-id-15438 .elementor-element-vircrw2 > .elementor-container {
  align-items: stretch;
}

.page-id-15438 .elementor-element-vircw1,
.page-id-15438 .elementor-element-vircw2,
.page-id-15438 .elementor-element-vircw3,
.page-id-15438 .elementor-element-vircw4 {
  border-top: 1px solid var(--vir-premium-line);
  min-height: 246px;
  padding: clamp(26px, 3vw, 34px) clamp(26px, 3vw, 42px) 0;
  position: relative;
}

.page-id-15438 .elementor-element-vircw1::before,
.page-id-15438 .elementor-element-vircw2::before,
.page-id-15438 .elementor-element-vircw3::before,
.page-id-15438 .elementor-element-vircw4::before {
  background: var(--vir-premium-gold);
  content: "";
  height: 1px;
  left: clamp(26px, 3vw, 42px);
  position: absolute;
  top: -1px;
  width: 76px;
}

.page-id-15438 .elementor-element-bd43304 .elementor-widget-text-editor h3,
.page-id-15438 .elementor-element-bd43304 .elementor-widget-text-editor strong {
  color: var(--vir-premium-ink);
  display: block;
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1.28;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.page-id-15438 .elementor-element-bd43304 .elementor-widget-text-editor p {
  color: var(--vir-premium-muted);
  font-size: 15px;
  line-height: 1.82;
  margin: 0;
}

.page-id-15438 .elementor-element-bd43304 .elementor-element-be831b9 {
  margin-top: clamp(44px, 5vw, 72px);
  text-align: center;
}

.page-id-15438 .elementor-element-bd43304 .elementor-button {
  box-shadow: 0 12px 26px rgba(230, 163, 3, 0.22);
  transition: box-shadow 220ms ease, transform 220ms ease;
}

.page-id-15438 .elementor-element-bd43304 .elementor-button:hover {
  box-shadow: 0 16px 34px rgba(230, 163, 3, 0.3);
  transform: translateY(-2px);
}

.page-id-15438 .elementor-element-d4199db {
  min-height: clamp(178px, 17vw, 240px);
}

.page-id-15438 .elementor-element-d4199db .title {
  line-height: 1.1;
}

.page-id-15438 .vir-reveal {
  opacity: 1;
  transform: translateY(10px);
  transition:
    opacity 360ms ease,
    transform 360ms ease;
  transition-delay: calc(var(--vir-stagger, 0) * 42ms);
}

.page-id-15438 .vir-reveal.vir-inview {
  opacity: 1;
  transform: translateY(0);
}

@media (min-width: 768px) {
  .page-id-15438 .elementor-element-vircc1 .elementor-widget-wrap,
  .page-id-15438 .elementor-element-vircc3 .elementor-widget-wrap {
    border-right: 1px solid rgba(31, 37, 42, 0.08);
  }
}

@media (max-width: 1024px) {
  .page-id-15438 .elementor-element-e9a59ec,
  .page-id-15438 .elementor-element-bd43304 {
    padding-left: 28px;
    padding-right: 28px;
  }

  .page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon {
    min-height: 160px;
  }
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-widget-text-editor p,
  .page-id-15438 .desc-icon-box,
  .page-id-15438 .sub-heading p {
    line-height: 1.68;
    text-align: justify;
    text-align-last: left;
  }

  .page-id-15438 .elementor-element-c274f56 {
    padding-top: 46px;
    padding-bottom: 50px;
  }

  .page-id-15438 .elementor-element-e9a59ec {
    padding-top: 50px;
    padding-bottom: 58px;
  }

  .page-id-15438 .elementor-element-c274118 {
    margin-bottom: 34px !important;
  }

  .page-id-15438 .elementor-element-c274118 .title,
  .page-id-15438 .elementor-element-47b5043 .title {
    font-size: 26px;
  }

  .page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon {
    margin-left: auto;
    margin-right: auto;
    max-width: 280px;
    min-height: 0;
    padding-bottom: 28px;
    padding-top: 8px;
    text-align: center;
  }

  .page-id-15438 .elementor-element-e9a59ec .desc-content {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    text-align-last: center;
  }

  .page-id-15438 .elementor-element-bd43304 {
    padding-bottom: 70px;
    padding-top: 64px;
  }

  .page-id-15438 .elementor-element-vircintro {
    margin-bottom: 38px;
  }

  .page-id-15438 .elementor-element-vircw1,
  .page-id-15438 .elementor-element-vircw2,
  .page-id-15438 .elementor-element-vircw3,
  .page-id-15438 .elementor-element-vircw4 {
    min-height: 0;
    padding: 24px 0 30px;
  }

  .page-id-15438 .elementor-element-vircw1::before,
  .page-id-15438 .elementor-element-vircw2::before,
  .page-id-15438 .elementor-element-vircw3::before,
  .page-id-15438 .elementor-element-vircw4::before {
    left: 0;
    width: 64px;
  }

  .page-id-15438 .elementor-element-bd43304 .elementor-widget-text-editor h3,
  .page-id-15438 .elementor-element-bd43304 .elementor-widget-text-editor strong {
    font-size: 15px;
  }

  .page-id-15438 .elementor-element-d4199db {
    min-height: 230px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-id-15438 .vir-reveal,
  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container,
  .page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon,
  .page-id-15438 .elementor-element-bd43304 .elementor-button {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/*
2026-08-06 — Home conservative polish.
Keeps the existing Home architecture and hero imagery; improves motion, text
presence, cards, CTA hierarchy and mobile rhythm.
*/
.page-id-15438 {
  --vir-home-shadow-deep: 0 28px 72px rgba(15, 22, 26, 0.18);
  --vir-home-shadow-card: 0 20px 48px rgba(31, 37, 42, 0.08);
  --vir-home-shadow-card-hover: 0 30px 68px rgba(31, 37, 42, 0.14);
}

.page-id-15438 .elementor-element-81e2acb {
  background: #12191c;
  overflow: hidden;
}

.page-id-15438 .elementor-element-c99a0d0,
.page-id-15438 .elementor-element-c99a0d0 .swiper,
.page-id-15438 .elementor-element-c99a0d0 .swiper-wrapper {
  overflow: hidden;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide {
  isolation: isolate;
  overflow: hidden;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide::before {
  content: none;
}

/* Ken Burns — cinematic slow zoom on the active slide background */
.page-id-15438 .elementor-element-c99a0d0 .swiper-slide .e-con-boxed::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  transform-origin: 50% 50%;
  will-change: transform;
  pointer-events: none;
}

@media (min-width: 1024px) {
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide.elementor-element-005fe57 > .e-con-boxed::after {
    transform-origin: 75% 45%;
  }

  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide.elementor-element-b374f1f > .e-con-boxed::after {
    transform-origin: 75% 45%;
  }

  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide.elementor-element-a4b83dc > .e-con-boxed::after {
    transform-origin: 85% 50%;
  }

  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide.elementor-element-26475c0 > .e-con-boxed::after {
    transform-origin: 75% 50%;
  }
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .e-con-boxed::after {
  animation: virHeroKenBurns 9s linear both;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide > .elementor-element {
  position: relative;
  z-index: 2;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide .e-con,
.page-id-15438 .elementor-element-c99a0d0 .swiper-slide [style*="background-image"] {
  background-position: center;
  background-size: cover;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active {
  animation: none;
}

.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading .title,
.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading .heading__primary {
  text-shadow: 0 12px 38px rgba(0, 0, 0, 0.34);
}

.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading,
.page-id-15438 .elementor-element-c99a0d0 .thim-widget-button {
  opacity: 1;
  transform: none;
  transition:
    opacity 620ms ease,
    transform 620ms ease;
  transition-delay: calc(var(--vir-hero-delay, 0) * 80ms);
}

.page-id-15438 .elementor-element-c99a0d0 .elementor-invisible,
.page-id-15438 .elementor-element-c99a0d0 .animated-slow {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading,
.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-widget-button,
.page-id-15438 .elementor-element-c99a0d0 .vir-hero-copy-active {
  opacity: 1;
  transform: translateY(0);
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-widget-button:nth-of-type(2) {
  transition-delay: 90ms;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-button-prev,
.page-id-15438 .elementor-element-c99a0d0 .swiper-button-next {
  backdrop-filter: blur(10px);
  background: rgba(15, 22, 26, 0.38);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  color: #fff;
  height: 48px;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    transform 220ms ease;
  width: 48px;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-button-prev:hover,
.page-id-15438 .elementor-element-c99a0d0 .swiper-button-next:hover {
  background: rgba(230, 163, 3, 0.88);
  border-color: rgba(230, 163, 3, 0.92);
  transform: translateY(-1px);
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.68);
  border-radius: 999px;
  height: 4px;
  opacity: 1;
  transition:
    background-color 220ms ease,
    width 260ms ease;
  width: 18px;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-pagination-bullet-active {
  background: var(--vir-premium-gold);
  width: 42px;
}

.page-id-15438 .elementor-element-1e8a5b5 .thim-counters-box {
  border-left: 1px solid rgba(255, 255, 255, 0.15) !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 16px 28px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: left !important;
  height: 100% !important;
  box-sizing: border-box !important;
  transition: background-color 220ms ease;
}

.page-id-15438 .elementor-element-1e8a5b5 .elementor-column:first-child .thim-counters-box {
  border-left: 0 !important;
}

.page-id-15438 .elementor-element-1e8a5b5 .display-percentage {
  color: #ffffff !important;
  font-size: 0 !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  margin-right: 16px !important;
  flex-shrink: 0 !important;
  opacity: 0.95;
}

.page-id-15438 .elementor-element-1e8a5b5 .display-percentage::before {
  content: attr(data-percentage);
  font-size: clamp(28px, 2.8vw, 42px);
  font-weight: 700;
  line-height: 1;
  font-family: var(--vir-font-title) !important;
}

.page-id-15438 .elementor-element-1e8a5b5 .counter-box-content {
  color: #ffffff !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.page-id-15438 .elementor-element-1e8a5b5 .counter-box-content .title,
.page-id-15438 .elementor-element-1e8a5b5 .counter-box-content p {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  margin: 0 0 2px 0 !important;
  line-height: 1.2 !important;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.page-id-15438 .elementor-element-1e8a5b5 .view-more {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  margin: 0 !important;
  display: inline-block !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.page-id-15438 .elementor-element-1e8a5b5 .thim-counters-box:hover {
  background: rgba(255, 255, 255, 0.05) !important;
}

.page-id-15438 .elementor-element-c274f56 {
  background:
    linear-gradient(90deg, rgba(230, 163, 3, 0.08) 0, transparent 1px) 0 0 / 34px 34px,
    radial-gradient(circle at 8% 15%, rgba(230, 163, 3, 0.13), transparent 28%),
    linear-gradient(180deg, #fbfaf4 0%, #f4f6f2 100%);
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 {
  margin-bottom: clamp(34px, 4vw, 52px);
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 .title,
.page-id-15438 .elementor-element-c274118 .title,
.page-id-15438 .elementor-element-47b5043 .title {
  letter-spacing: 0;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container {
  background: rgba(255, 255, 255, 0.94);
  border-radius: 8px;
  box-shadow: 0 22px 58px rgba(31, 37, 42, 0.1);
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container:hover {
  box-shadow: var(--vir-home-shadow-card-hover);
}

.page-id-15438 .elementor-element-c274f56 .boxes-icon {
  filter: grayscale(1);
  opacity: 0.74;
  transition:
    filter 220ms ease,
    opacity 220ms ease,
    transform 220ms ease;
}

.page-id-15438 .elementor-element-c274f56 .elementor-widget-container:hover .boxes-icon {
  filter: grayscale(0);
  opacity: 1;
  transform: translateY(-3px);
}

.page-id-15438 .elementor-element-c274f56 .heading__primary,
.page-id-15438 .elementor-element-e9a59ec .heading__primary {
  font-weight: 800;
}

.page-id-15438 .elementor-element-f280a47 {
  background:
    linear-gradient(180deg, #ffffff 0%, #f8f8f5 100%);
  padding-bottom: clamp(50px, 5vw, 82px);
  padding-top: clamp(50px, 5vw, 82px);
}

.page-id-15438 .elementor-element-f280a47 .elementor-widget-thim-icon-box {
  height: 100%;
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 24px 58px rgba(31, 37, 42, 0.11);
  height: 100%;
  overflow: hidden;
  transition:
    box-shadow 240ms ease,
    transform 240ms ease;
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box:hover {
  box-shadow: var(--vir-home-shadow-card-hover);
  transform: translateY(-4px);
}

.page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
  padding-bottom: 24px;
}

.page-id-15438 .elementor-element-c60169f,
.page-id-15438 .elementor-element-b6bdd01 {
  isolation: isolate;
  overflow: hidden;
}

.page-id-15438 .elementor-element-c60169f::before,
.page-id-15438 .elementor-element-b6bdd01::before {
  background:
    linear-gradient(90deg, rgba(15, 22, 26, 0.76), rgba(15, 22, 26, 0.34)),
    radial-gradient(circle at 78% 30%, rgba(230, 163, 3, 0.15), transparent 30%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.page-id-15438 .elementor-element-c60169f > .elementor-container,
.page-id-15438 .elementor-element-b6bdd01 > .elementor-container {
  position: relative;
  z-index: 1;
}

.page-id-15438 .elementor-button,
.page-id-15438 .widget-button a,
.page-id-15438 .thim-widget-button a {
  border-radius: 4px;
  letter-spacing: 0;
  min-height: 42px;
  transition:
    box-shadow 220ms ease,
    transform 220ms ease,
    background-color 180ms ease,
    color 180ms ease;
}

.page-id-15438 .elementor-button:hover,
.page-id-15438 .widget-button a:hover,
.page-id-15438 .thim-widget-button a:hover {
  box-shadow: 0 14px 30px rgba(31, 37, 42, 0.18);
  transform: translateY(-2px);
}

.page-id-15438 .elementor-element-e9a59ec {
  background:
    linear-gradient(135deg, rgba(41, 73, 86, 0.08), transparent 42%),
    radial-gradient(circle at 85% 20%, rgba(230, 163, 3, 0.12), transparent 28%),
    linear-gradient(180deg, #f7f8f4 0%, #ffffff 100%);
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon {
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(31, 37, 42, 0.08);
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(31, 37, 42, 0.09);
  min-height: 220px;
  padding: 30px 22px;
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box:hover .wrapper-box-icon {
  border-color: rgba(230, 163, 3, 0.32);
  box-shadow: 0 22px 46px rgba(31, 37, 42, 0.09);
}

.page-id-15438 .elementor-element-b6bdd01 {
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08);
}

.page-id-15438 .elementor-element-b6bdd01 .elementor-heading-title,
.page-id-15438 .elementor-element-b6bdd01 .heading__primary {
  text-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

.page-id-15438 .elementor-element-bd43304 {
  background:
    linear-gradient(90deg, rgba(230, 163, 3, 0.08) 0, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(180deg, #f7f8f4 0%, #ffffff 100%);
}

.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw1,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw2,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw3,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw4 {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(31, 37, 42, 0.08);
  border-radius: 8px;
  box-shadow: 0 24px 58px rgba(31, 37, 42, 0.08);
  padding-bottom: clamp(26px, 3vw, 34px);
}

@media (max-width: 1024px) {
  .page-id-15438 .elementor-element-f280a47 {
    padding-left: 28px;
    padding-right: 28px;
  }

  .page-id-15438 .elementor-element-c99a0d0 .swiper-button-prev,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-button-next {
    height: 42px;
    width: 42px;
  }
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide::before {
    content: none;
  }

  .page-id-15438 .elementor-element-c99a0d0 .swiper-button-prev,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-button-next {
    display: none;
  }

  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container,
  .page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box,
  .page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw1,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw2,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw3,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw4 {
    border-radius: 6px;
    box-shadow: 0 12px 28px rgba(31, 37, 42, 0.06);
  }

  .page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box {
    margin-bottom: 18px;
  }

  .page-id-15438 .elementor-element-b6bdd01 .elementor-button,
  .page-id-15438 .elementor-element-c60169f .elementor-button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .e-con-boxed::after,
  .page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading,
  .page-id-15438 .elementor-element-c99a0d0 .thim-widget-button,
  .page-id-15438 .elementor-button,
  .page-id-15438 .widget-button a,
  .page-id-15438 .thim-widget-button a,
  .page-id-15438 .elementor-element-f280a47 img {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/*
2026-08-06 — Eduma-informed visual pass.
Keeps Home hero imagery and structure intact while making existing Eduma/Thim
sections feel designed for V.I.R. Scuola. Also enriches Chi siamo without
adding fake teachers, testimonials or unconfirmed media.
*/
/* Hero copy — layered cinematic entrance on slide change */
.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .title,
.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .heading__primary {
  animation: virHeroTitleIn 1150ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .sub-heading {
  animation: virHeroSubIn 950ms cubic-bezier(0.16, 1, 0.3, 1) 200ms both;
}

.page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-widget-button {
  animation: virHeroButtonIn 850ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--vir-hero-delay, 0) * 100ms + 350ms) both;
}

.page-id-15438 .elementor-element-1e8a5b5 .counter-box-content {
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1.35;
}

.page-id-15438 .elementor-element-1e8a5b5 .view-more {
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 .title,
.page-id-15438 .elementor-element-c274118 .title,
.page-id-15438 .elementor-element-47b5043 .title {
  color: var(--vir-premium-ink);
  font-family: var(--vir-font-title);
  font-weight: 700;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 .title::after {
  background: var(--vir-premium-gold);
  content: "";
  display: block;
  height: 3px;
  margin: 18px auto 0;
  width: 72px;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 {
  gap: 22px;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container {
  overflow: hidden;
  position: relative;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container::before {
  background: var(--vir-premium-gold);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  top: 0;
  transform: scaleX(0.42);
  transform-origin: left center;
  transition: transform 260ms ease;
  width: 100%;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container:hover::before {
  transform: scaleX(1);
}

.page-id-15438 .elementor-element-c274f56 .desc-icon-box {
  color: var(--vir-premium-muted);
  font-size: 14px;
  line-height: 1.76;
}

.page-id-15438 .elementor-element-f280a47 {
  position: relative;
}

.page-id-15438 .elementor-element-f280a47::before {
  background: linear-gradient(90deg, transparent, rgba(230, 163, 3, 0.32), transparent);
  content: "";
  height: 1px;
  left: 50%;
  max-width: 980px;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: calc(100% - 80px);
}

.page-id-15438 .elementor-element-f280a47 .elementor-container {
  gap: 24px;
}

.page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
  padding: 0 0 26px;
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box .wrapper-box-icon {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 {
  margin-left: auto;
  margin-right: auto;
  max-width: 980px;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 > .elementor-container {
  align-items: stretch;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 > .elementor-container > .elementor-column {
  width: auto !important;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .elementor-widget-wrap,
.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .elementor-widget-container,
.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .thim-widget-icon-box,
.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .wrapper-box-icon,
.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .smicon-box {
  height: 100%;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .wrapper-box-icon {
  min-height: 188px;
  padding: 30px 32px;
  position: relative;
  text-align: left;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .wrapper-box-icon::before {
  background: var(--vir-premium-gold);
  content: "";
  height: 100%;
  left: 0;
  opacity: 0.82;
  position: absolute;
  top: 0;
  transform: scaleY(0.34);
  transform-origin: top center;
  transition: transform 260ms ease;
  width: 4px;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .thim-widget-icon-box:hover .wrapper-box-icon::before {
  transform: scaleY(1);
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .smicon-box {
  align-items: flex-start;
  display: grid;
  gap: 24px;
  grid-template-columns: 64px minmax(0, 1fr);
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .boxes-icon {
  grid-column: 1;
  grid-row: 1;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .content-inner {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  width: auto !important;
}

.page-id-15438 .elementor-element-e9a59ec .boxes-icon {
  align-items: center;
  background: rgba(230, 163, 3, 0.08);
  border: 1px solid rgba(230, 163, 3, 0.18);
  border-radius: 8px;
  display: inline-flex;
  height: 58px;
  justify-content: center;
  margin-left: 0;
  margin-right: 0;
  width: 58px;
}

.page-id-15438 .elementor-element-e9a59ec .boxes-icon svg,
.page-id-15438 .elementor-element-e9a59ec .boxes-icon img {
  max-height: 30px;
  max-width: 30px;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .heading__primary {
  font-size: 18px;
  line-height: 1.22;
  margin-bottom: 12px;
  text-align: left;
}

.page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .desc-content {
  font-size: 15px;
  line-height: 1.72;
  margin: 0;
  max-width: none;
  text-align: left;
  text-align-last: left;
}

.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw1,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw2,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw3,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw4 {
  transition:
    border-color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms ease;
}

.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw1:hover,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw2:hover,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw3:hover,
.page-id-15438 .elementor-element-bd43304 .elementor-element-vircw4:hover {
  border-color: rgba(230, 163, 3, 0.28);
  box-shadow: 0 30px 70px rgba(31, 37, 42, 0.12);
  transform: translateY(-3px);
}

/* Ken Burns zoom */
@keyframes virHeroKenBurns {
  from { transform: scale(1); }
  to   { transform: scale(1.1); }
}

/* Title: blur-to-sharp + rise */
@keyframes virHeroTitleIn {
  from { opacity: 0; transform: translateY(26px); filter: blur(5px); }
  to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* Sub-heading: rise */
@keyframes virHeroSubIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Buttons: rise with stagger via --vir-hero-delay */
@keyframes virHeroButtonIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container {
    min-height: 0;
  }

  .page-id-15438 .elementor-element-f280a47::before {
    width: calc(100% - 30px);
  }

  .page-id-15438 .elementor-element-f280a47 .heading__primary,
  .page-id-15438 .elementor-element-f280a47 .desc-content {
    padding-left: 18px;
    padding-right: 18px;
  }

  .page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 > .elementor-container {
    gap: 16px;
    grid-template-columns: 1fr;
  }

  .page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .wrapper-box-icon {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
    min-height: 0;
    padding: 22px 22px 22px 24px;
    width: 100%;
  }

  .page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .smicon-box {
    gap: 14px;
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .page-id-15438 .elementor-element-e9a59ec .boxes-icon {
    height: 44px;
    width: 44px;
  }

  .page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .heading__primary {
    font-size: 15px;
    margin-bottom: 8px;
  }

  .page-id-15438 .elementor-element-e9a59ec .elementor-element-33320f8 .desc-content {
    font-size: 13px;
    line-height: 1.58;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .e-con-boxed::after,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .title,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .heading__primary,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-ekits-heading .sub-heading,
  .page-id-15438 .elementor-element-c99a0d0 .swiper-slide-active .thim-widget-button,
  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container::before,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw1,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw2,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw3,
  .page-id-15438 .elementor-element-bd43304 .elementor-element-vircw4 {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/*
2026-08-06 — Home: Metodo V.I.R. section (f280a47) + final CTA (vircta).
f280a47 changed from 3 photo cards to heading + intro + 3 SVG-icon pillars;
vircta is a new dark closing band (STUDIA SENZA CONFINI). These rules style
the new structure while overriding the photo-specific rules above.
*/
.page-id-15438 .elementor-element-f280a47 {
  padding-bottom: clamp(36px, 3.5vw, 60px);
  padding-top: clamp(36px, 3.5vw, 60px);
}

/* ---- Metodo heading (virmet2) + intro (virmet3) ---- */
.page-id-15438 .elementor-element-virmet2 {
  margin-left: auto;
  margin-right: auto;
  max-width: 780px;
}

.page-id-15438 .elementor-element-virmet2 .title {
  color: var(--vir-premium-ink);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.14;
}

.page-id-15438 .elementor-element-virmet2 .title::after {
  background: var(--vir-premium-gold);
  content: "";
  display: block;
  height: 3px;
  margin: 20px auto 0;
  width: 72px;
}

.page-id-15438 .elementor-element-virmet2 .sub-heading,
.page-id-15438 .elementor-element-virmet2 .sub-heading p {
  color: var(--vir-premium-muted);
  font-size: 16px;
  line-height: 1.7;
  margin-left: auto;
  margin-right: auto;
  max-width: 620px;
  text-align: center;
  text-align-last: center;
}

.page-id-15438 .elementor-element-virmet3 {
  margin-bottom: clamp(46px, 5vw, 68px);
  max-width: 790px;
  text-align: center;
}

.page-id-15438 .elementor-element-virmet3 p {
  color: var(--vir-premium-muted);
  font-size: 16px;
  line-height: 1.86;
  margin: 0;
  text-align: center;
  text-align-last: center;
}

/* ---- Metodo pillar cards: photo -> SVG icon badge ---- */
.page-id-15438 .elementor-element-f280a47 .boxes-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 24px;
  overflow: visible;
  padding-top: 26px;
}

.page-id-15438 .elementor-element-f280a47 .inner-icon {
  align-items: center;
  background: var(--vir-color-gold-soft);
  border-radius: 50%;
  display: flex;
  height: 88px;
  justify-content: center;
  transition: background-color 240ms ease, transform 240ms ease;
  width: 88px;
}

.page-id-15438 .elementor-element-f280a47 .inner-icon svg {
  height: 42px;
  width: 42px;
}

.page-id-15438 .elementor-element-f280a47 .inner-icon svg path {
  fill: var(--vir-premium-gold) !important;
}

.page-id-15438 .elementor-element-f280a47 .icon-box-link {
  color: inherit;
  text-decoration: none;
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box:hover .inner-icon {
  background: var(--vir-premium-gold);
  transform: translateY(-2px);
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box:hover .inner-icon svg path {
  fill: #ffffff !important;
}

.page-id-15438 .elementor-element-f280a47 .content-inner .sc-heading {
  margin-bottom: 12px;
}

.page-id-15438 .elementor-element-f280a47 .heading__primary {
  color: var(--vir-premium-ink);
  font-size: 16px;
  letter-spacing: 0.01em;
  line-height: 1.28;
  margin: 22px 22px 0;
  text-align: center;
  text-transform: uppercase;
}

.page-id-15438 .elementor-element-f280a47 .desc-content {
  color: var(--vir-premium-muted);
  font-size: 15px;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 250px;
  padding-bottom: 6px;
  text-align: center;
  text-align-last: center;
}

.page-id-15438 .elementor-element-f280a47 .icon-box-link:focus-visible {
  outline: 2px solid var(--vir-premium-gold);
  outline-offset: 3px;
}

/* ---- Final CTA band (vircta: STUDIA SENZA CONFINI) ---- */
.page-id-15438 .elementor-element-vircta {
  align-items: center;
  background-color: #0e1b22;
  display: flex;
}

.page-id-15438 .elementor-element-vircta > .elementor-container {
  max-width: 900px;
}

.page-id-15438 .elementor-element-vircta2 {
  margin-left: auto;
  margin-right: auto;
  max-width: 760px;
}

.page-id-15438 .elementor-element-vircta2 .title {
  color: #ffffff;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.12;
}

.page-id-15438 .elementor-element-vircta2 .title::after {
  background: var(--vir-premium-gold);
  content: "";
  display: block;
  height: 3px;
  margin: 20px auto 0;
  width: 72px;
}

.page-id-15438 .elementor-element-vircta2 .sub-heading,
.page-id-15438 .elementor-element-vircta2 .sub-heading p {
  color: rgba(255, 255, 255, 0.88);
  font-size: 16px;
  line-height: 1.7;
  margin-left: auto;
  margin-right: auto;
  max-width: 560px;
  text-align: center;
  text-align-last: center;
}

.page-id-15438 .elementor-element-vircta3 {
  margin: 0 auto clamp(30px, 4vw, 44px);
  max-width: 640px;
  text-align: center;
}

.page-id-15438 .elementor-element-vircta3 p {
  color: rgba(255, 255, 255, 0.86);
  font-size: 17px;
  line-height: 1.78;
  margin: 0;
  text-align: center;
  text-align-last: center;
}

.page-id-15438 .elementor-element-vircta4 .elementor-button {
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28);
  letter-spacing: 0.04em;
  padding: 14px 38px;
  transition: box-shadow 220ms ease, transform 220ms ease;
}

.page-id-15438 .elementor-element-vircta4 .elementor-button:hover,
.page-id-15438 .elementor-element-vircta4 .elementor-button:focus-visible {
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.34);
  transform: translateY(-2px);
}

/* ---- Responsive: Metodo + CTA ---- */
@media (max-width: 1024px) {
  .page-id-15438 .elementor-element-vircta {
    padding-left: 28px;
    padding-right: 28px;
  }
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-f280a47 {
    padding-bottom: 50px;
    padding-top: 52px;
  }

  .page-id-15438 .elementor-element-virmet3 {
    margin-bottom: 38px;
  }

  .page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box {
    margin-bottom: 18px;
    margin-left: auto;
    margin-right: auto;
    max-width: 420px;
    width: 100%;
  }

  .page-id-15438 .elementor-element-f280a47 .inner-icon {
    height: 76px;
    width: 76px;
  }

  .page-id-15438 .elementor-element-f280a47 .inner-icon svg {
    height: 38px;
    width: 38px;
  }

  .page-id-15438 .elementor-element-f280a47 .heading__primary,
  .page-id-15438 .elementor-element-f280a47 .desc-content {
    padding-left: 18px;
    padding-right: 18px;
  }

  .page-id-15438 .elementor-element-vircta2 .title,
  .page-id-15438 .elementor-element-47b5043 .title {
    font-size: 26px;
  }

  .page-id-15438 .elementor-element-vircta4 .elementor-button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box,
  .page-id-15438 .elementor-element-vircta4 .elementor-button {
    transform: none !important;
    transition: none !important;
  }
}

/*
2026-08-06 — Barra statistiche (1e8a5b5) — UNIFICATA.
Trasparente sopra l'immagine hero, altezza guidata dal contenuto.
*/
.page-id-15438 .elementor-element-1e8a5b5 {
  background: transparent !important;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(230, 163, 3, 0.22);
  margin-bottom: 0 !important;
  margin-top: -136px !important;
  position: relative;
  z-index: 20;
}

.page-id-15438 .elementor-element-1e8a5b5 .elementor-container,
.page-id-15438 .elementor-element-1e8a5b5 .elementor-column,
.page-id-15438 .elementor-element-1e8a5b5 .elementor-widget-wrap {
  background: transparent !important;
}

.page-id-15438 .elementor-element-c274f56 {
  margin-top: 0 !important;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-1e8a5b5 {
    margin-top: -84px !important;
  }
}

/*
2026-08-06 — Home header/hero/why-section refinements.
Fixes logo stability, centered hero subhead, compact why section and non-click
visual treatment for the five value boxes.
*/
#masthead .thim-logo {
  align-items: center;
  display: inline-flex !important;
  min-height: 29px;
  min-width: 126px;
  position: relative;
  z-index: 30;
}

#masthead .thim-logo img,
#masthead.affix .thim-logo img {
  display: block !important;
  height: auto !important;
  max-height: 29px;
  max-width: 126px;
  opacity: 1 !important;
  visibility: visible !important;
  width: auto !important;
}

#masthead.affix {
  background: rgba(14, 18, 23, 0.96) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
  transition: background 0.3s ease, box-shadow 0.3s ease !important;
}

#masthead .toolbar {
  display: none !important;
}

@media (min-width: 1025px) {
  #masthead.site-header {
    height: 82px !important;
    min-height: 82px !important;
    overflow: visible;
  }

  #masthead .thim-nav-wrapper,
  #masthead .navigation,
  #masthead .tm-table,
  #masthead .width-logo,
  #masthead .width-navigation {
    background: transparent !important;
    min-height: 72px !important;
  }

  #masthead .thim-nav-wrapper {
    height: 82px !important;
    max-width: 1400px !important;
    width: calc(100% - 40px) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #masthead .tm-table {
    align-items: center;
    display: flex !important;
    justify-content: space-between !important;
    width: 100% !important;
  }

  #masthead .width-logo {
    align-items: center;
    display: flex !important;
    flex: 0 0 auto !important;
    min-width: 153px !important;
    margin-right: 30px !important;
  }

  #masthead .width-navigation {
    align-items: center;
    display: flex !important;
    flex: 1 1 auto !important;
    justify-content: flex-end !important;
  }

  #masthead .navigation .navbar-nav {
    align-items: center;
    display: flex !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    min-height: 72px;
  }

  #masthead .navigation ul.nav.navbar-nav > li > a {
    padding: 8px 8px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  #masthead .thim-nav-final-cta-wrap {
    margin-left: 10px !important;
  }
}

body.admin-bar #masthead.site-header {
  top: 32px !important;
}

.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading,
.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading .title,
.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading .sub-heading,
.page-id-15438 .elementor-element-c99a0d0 .thim-ekits-heading .sub-heading p {
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-c274f56 {
  min-height: 0 !important;
  padding-bottom: clamp(42px, 4vw, 62px) !important;
  padding-top: clamp(42px, 4vw, 62px) !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-container {
  max-width: 1220px;
}

.page-id-15438 .elementor-element-c274f56 .elementor-column {
  padding-left: 10px;
  padding-right: 10px;
}

.page-id-15438 .elementor-element-c274f56 .elementor-widget-thim-icon-box {
  width: 100%;
}

.page-id-15438 .elementor-element-c274f56 .wrapper-box-icon {
  min-height: 292px;
  padding: 26px 24px 28px;
  width: 100%;
}

.page-id-15438 .elementor-element-c274f56 .icon-box-link {
  color: inherit !important;
  cursor: default;
  pointer-events: none;
  text-decoration: none !important;
}

.page-id-15438 .elementor-element-c274f56 .heading__primary {
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-c274f56 .desc-content,
.page-id-15438 .elementor-element-c274f56 .desc-content .icon-box-link {
  color: var(--vir-color-text) !important;
  hyphens: auto;
  line-height: 1.62;
  text-align: justify !important;
  text-align-last: left !important;
}

/*
2026-08-06 — Unified hero height.
Aligns internal page title heroes with the Home hero rhythm.
*/
:root {
  --vir-page-hero-height: 850px;
  --vir-page-hero-height-mobile: 500px;
}

.page-id-15438 .elementor-element-c99a0d0,
body:not(.page-id-15438):not(.page-id-7):not(.learnpress-profile) .top_site_main {
  min-height: var(--vir-page-hero-height);
}

body:not(.page-id-15438):not(.page-id-7):not(.learnpress-profile) .top_site_main {
  align-items: center;
  background-position: center center !important;
  background-size: cover !important;
  display: flex;
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}

body:not(.page-id-15438):not(.page-id-7):not(.learnpress-profile) .top_site_main .page-title-wrapper {
  align-items: center;
  display: flex;
  min-height: var(--vir-page-hero-height);
  padding-bottom: 0 !important;
  padding-top: 0 !important;
  width: 100%;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-c99a0d0,
  body:not(.page-id-15438):not(.page-id-7):not(.learnpress-profile) .top_site_main,
  body:not(.page-id-15438):not(.page-id-7):not(.learnpress-profile) .top_site_main .page-title-wrapper {
    min-height: var(--vir-page-hero-height-mobile);
  }

  .page-id-15438 #masthead .thim-logo {
    min-height: 54px;
    min-width: 142px;
  }

  .page-id-15438 #masthead .thim-logo img {
    max-height: 34px;
    max-width: 150px;
  }

  .page-id-15438 .elementor-element-c274f56 .wrapper-box-icon {
    min-height: 0;
  }
}

/*
2026-08-06 — Home why section final sizing pass.
Keeps the five value boxes wider, compact and visually non-clickable.
*/
.page-id-15438 .elementor-element-c274f56 {
  height: auto !important;
  min-height: 0 !important;
  padding-bottom: clamp(34px, 3.2vw, 48px) !important;
  padding-top: clamp(34px, 3.2vw, 48px) !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 {
  margin-bottom: clamp(22px, 2.4vw, 34px) !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-61ba067 .title {
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-c274f56 > .elementor-container,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 > .elementor-container {
  column-gap: 16px;
  max-width: 1280px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-column {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-widget-wrap,
.page-id-15438 .elementor-element-c274f56 .elementor-widget-container,
.page-id-15438 .elementor-element-c274f56 .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-c274f56 .thim-widget-icon-box,
.page-id-15438 .elementor-element-c274f56 .wrapper-box-icon,
.page-id-15438 .elementor-element-c274f56 .smicon-box {
  max-width: none !important;
  width: 100% !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container,
.page-id-15438 .elementor-element-c274f56 .wrapper-box-icon {
  min-height: 246px !important;
}

.page-id-15438 .elementor-element-c274f56 .wrapper-box-icon {
  padding: 22px 18px 24px !important;
}

.page-id-15438 .elementor-element-c274f56 .heading__primary {
  font-size: 15px;
  line-height: 1.28;
  margin-bottom: 12px;
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-c274f56 .desc-icon-box,
.page-id-15438 .elementor-element-c274f56 .desc-content {
  font-size: 13px;
  line-height: 1.58;
  text-align: justify !important;
  text-align-last: left !important;
}

.page-id-15438 .elementor-element-c274f56 .icon-box-link {
  cursor: default !important;
  pointer-events: none !important;
  text-decoration: none !important;
}

.page-id-15438 .elementor-element-c274f56 .desc-content .icon-box-link {
  color: var(--vir-color-text) !important;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-c274f56 {
    padding-bottom: 34px !important;
    padding-top: 34px !important;
  }

  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container,
  .page-id-15438 .elementor-element-c274f56 .wrapper-box-icon {
    min-height: 0 !important;
  }
}

/*
2026-08-06 — Home why section hard override for Elementor gutters.
Elementor was shrinking the visible card through nested padding and height rules.
*/
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 > .elementor-container {
  align-items: flex-start !important;
  max-width: min(1420px, calc(100vw - 32px)) !important;
}

.page-id-15438 .elementor-element-c274f56 > .elementor-container {
  max-width: min(1420px, calc(100vw - 32px)) !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 > .elementor-container > .elementor-column {
  flex: 1 1 0 !important;
  max-width: none !important;
  width: auto !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-wrap {
  align-content: flex-start !important;
  padding: 5px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-thim-icon-box > .elementor-widget-container,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .thim-widget-icon-box,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .wrapper-box-icon,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .smicon-box {
  height: auto !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-container {
  display: block !important;
  min-height: 0 !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .wrapper-box-icon {
  min-height: 208px !important;
  padding: 14px 18px 18px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon img {
  max-height: 58px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  margin-bottom: 14px !important;
  text-align: center !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon .icon-box-link {
  align-items: center !important;
  display: inline-flex !important;
  height: 58px !important;
  justify-content: center !important;
  width: 70px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon svg,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon img {
  display: block !important;
  height: 42px !important;
  max-height: 42px !important;
  max-width: 42px !important;
  width: 42px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon .inner-icon,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .boxes-icon .icon {
  align-items: center !important;
  display: inline-flex !important;
  height: 42px !important;
  justify-content: center !important;
  line-height: 1 !important;
  width: 42px !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .heading__primary,
.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .desc-content {
  max-width: none !important;
  width: 100% !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .desc-content .icon-box-link {
  display: block !important;
  width: 100% !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .heading__primary {
  margin-bottom: 8px !important;
}

.page-id-15438 .elementor-element-1e8a5b5 {
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  background: rgba(18, 26, 33, 0.65) !important;
  box-sizing: border-box !important;
  height: 100px !important;
  margin-top: -100px !important;
  min-height: 100px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: none !important;
}

.page-id-15438 .elementor-element-1e8a5b5 .elementor-container,
.page-id-15438 .elementor-element-1e8a5b5 .elementor-column,
.page-id-15438 .elementor-element-1e8a5b5 .elementor-widget-wrap {
  min-height: 100px !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 > .elementor-container {
    max-width: calc(100vw - 30px) !important;
  }

  .page-id-15438 .elementor-element-c274f56 .elementor-element-5d299f4 .elementor-widget-wrap {
    padding: 8px 0 !important;
  }
}

/*
2026-08-06 — Home Metodo section compact editorial pass.
Reduces the section height and sets cleaner text rhythm for the three method cards.
*/
.page-id-15438 .elementor-element-f280a47 {
  margin-bottom: 0 !important;
  padding-bottom: clamp(30px, 2.8vw, 40px) !important;
  padding-top: clamp(30px, 2.8vw, 40px) !important;
}

.page-id-15438 .elementor-element-c274f56 {
  margin-bottom: 24px !important;
}

.page-id-15438 .elementor-element-virmet2 {
  margin-bottom: 0 !important;
  max-width: 720px !important;
}

.page-id-15438 .elementor-element-virmet2 .elementor-widget-container {
  padding-bottom: 18px !important;
}

.page-id-15438 .elementor-element-virmet2 .title {
  font-size: clamp(28px, 2.35vw, 34px) !important;
  line-height: 1.08 !important;
  margin-bottom: 8px !important;
}

.page-id-15438 .elementor-element-virmet2 .title::after {
  margin-top: 16px !important;
}

.page-id-15438 .elementor-element-virmet2 .sub-heading,
.page-id-15438 .elementor-element-virmet2 .sub-heading p {
  font-size: 15px !important;
  line-height: 1.55 !important;
  max-width: 620px !important;
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-virmet3 {
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: clamp(22px, 2.4vw, 32px) !important;
  max-width: 720px !important;
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-virmet3 p {
  font-size: 15px !important;
  line-height: 1.62 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 680px !important;
  text-align: center !important;
  text-align-last: center !important;
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box {
  min-height: 0 !important;
}

.page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
  padding: 20px 26px 22px !important;
}

.page-id-15438 .elementor-element-f280a47 .smicon-box {
  align-items: center !important;
  display: flex !important;
  flex-direction: column !important;
}

.page-id-15438 .elementor-element-f280a47 .boxes-icon {
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  margin-bottom: 16px !important;
  padding-top: 0 !important;
}

.page-id-15438 .elementor-element-f280a47 .inner-icon {
  height: 64px !important;
  width: 64px !important;
}

.page-id-15438 .elementor-element-f280a47 .inner-icon svg {
  height: 32px !important;
  width: 32px !important;
}

.page-id-15438 .elementor-element-f280a47 .content-inner {
  width: 100% !important;
}

.page-id-15438 .elementor-element-f280a47 .content-inner .sc-heading {
  margin-bottom: 8px !important;
}

.page-id-15438 .elementor-element-f280a47 .heading__primary {
  font-size: 15px !important;
  line-height: 1.22 !important;
  margin: 0 0 10px !important;
  text-align: center !important;
  text-align-last: center !important;
  width: 100% !important;
}

.page-id-15438 .elementor-element-f280a47 .desc-icon-box,
.page-id-15438 .elementor-element-f280a47 .desc-content {
  font-size: 14px !important;
  line-height: 1.55 !important;
  margin: 0 auto !important;
  max-width: 280px !important;
  padding: 0 !important;
  text-align: left !important;
  text-align-last: left !important;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-f280a47 {
    padding-bottom: 34px !important;
    padding-top: 36px !important;
  }

  .page-id-15438 .elementor-element-virmet2 .title {
    font-size: 26px !important;
  }

  .page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
    padding: 20px 22px 22px !important;
  }
}

/*
2026-08-06 — Home equal-height card rule.
All card-based sections must keep boxes aligned regardless of text length.
*/
.page-id-15438 .elementor-element-c274f56 .elementor-container,
.page-id-15438 .elementor-element-f280a47 .elementor-container,
.page-id-15438 .elementor-element-e9a59ec .elementor-container {
  align-items: stretch !important;
}

.page-id-15438 .elementor-element-c274f56 .elementor-column,
.page-id-15438 .elementor-element-f280a47 .elementor-column,
.page-id-15438 .elementor-element-e9a59ec .elementor-column,
.page-id-15438 .elementor-element-c274f56 .elementor-widget-wrap,
.page-id-15438 .elementor-element-f280a47 .elementor-widget-wrap,
.page-id-15438 .elementor-element-e9a59ec .elementor-widget-wrap,
.page-id-15438 .elementor-element-c274f56 .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-f280a47 .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-e9a59ec .elementor-widget-thim-icon-box,
.page-id-15438 .elementor-element-c274f56 .thim-widget-icon-box,
.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box,
.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box {
  height: 100% !important;
}

.page-id-15438 .elementor-element-c274f56 .wrapper-box-icon,
.page-id-15438 .elementor-element-f280a47 .wrapper-box-icon,
.page-id-15438 .elementor-element-e9a59ec .wrapper-box-icon,
.page-id-15438 .elementor-element-c274f56 .smicon-box,
.page-id-15438 .elementor-element-f280a47 .smicon-box,
.page-id-15438 .elementor-element-e9a59ec .smicon-box {
  height: 100% !important;
}

.page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box,
.page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
  min-height: 237px !important;
}

.page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box,
.page-id-15438 .elementor-element-e9a59ec .wrapper-box-icon {
  min-height: 225px !important;
}

@media (max-width: 767px) {
  .page-id-15438 .elementor-element-f280a47 .thim-widget-icon-box,
  .page-id-15438 .elementor-element-f280a47 .wrapper-box-icon {
    min-height: 237px !important;
  }

  .page-id-15438 .elementor-element-e9a59ec .thim-widget-icon-box,
  .page-id-15438 .elementor-element-e9a59ec .wrapper-box-icon {
    min-height: 255px !important;
  }
}

/* =========================================================
   V.I.R. SCUOLA — INTERNAL HERO TYPOGRAPHY SYSTEM
   Home esclusa
   ========================================================= */

/* Etichetta / nome sezione: giallo */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h3,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h3 {
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  margin: 0 0 8px 0 !important;
  text-align: center !important;
  text-shadow: none !important;
}

/* Titolo principale: bianco, maiuscolo */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h2,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h2 {
  font-family: "Roboto Slab", serif !important;
  font-size: clamp(38px, 4.5vw, 60px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  margin: 0 !important;
  text-align: center !important;
  text-shadow: 0 8px 30px rgba(0, 0, 0, 0.30) !important;
}

/* Testo descrittivo sotto il titolo */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor {
  color: rgba(255, 255, 255, 0.82) !important;
  text-align: center !important;
}

/* Override anche di eventuali colori inline nei paragrafi */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor p,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor p {
  color: rgba(255, 255, 255, 0.82) !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

/* Spaziatura coerente tra i tre livelli */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget {
  margin-bottom: 0 !important;
}


/* =========================================================
   V.I.R. SCUOLA — FORCE INTERNAL HERO TYPOGRAPHY
   Tutte le pagine interne, Home esclusa
   ========================================================= */

/* HERO: contenuto centrato e coerente */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child {
  text-align: center !important;
}

/* 1. ETICHETTA SUPERIORE — GIALLO */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h3,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h3,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .thim-ekits-heading:first-of-type .title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .thim-ekits-heading:first-of-type .title {
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  margin: 0 0 8px 0 !important;
  text-align: center !important;
  text-shadow: none !important;
}

/* 2. TITOLO PRINCIPALE — BIANCO MAIUSCOLO */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h2,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h1,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h2,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .thim-ekits-heading .title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .thim-ekits-heading .title,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .sc_heading .title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .sc_heading .title {
  font-family: "Roboto Slab", serif !important;
  font-size: clamp(38px, 4.5vw, 60px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  margin: 0 !important;
  text-align: center !important;
  text-shadow: 0 8px 30px rgba(0,0,0,.30) !important;
}

/* Ripristina il primo heading piccolo quando è un H3 */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h3.title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h3.title {
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 3px !important;
  color: #E6A303 !important;
  text-shadow: none !important;
  margin: 0 0 8px 0 !important;
}

/* 3. TESTO DESCRITTIVO — BIANCO OPACO */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor *,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor *,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .sub-heading,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .sub-heading {
  color: rgba(255,255,255,.82) !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  text-transform: none !important;
  text-align: center !important;
  text-shadow: none !important;
}

/* Limite larghezza descrizione */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor p,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor p {
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Nessun widget testuale della hero deve restare nascosto */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .thim-ekits-heading,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .thim-ekits-heading,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-heading,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-heading,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-text-editor,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child .elementor-widget-text-editor {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* =========================================================
   INTERNAL HERO — FIX ELEMENTOR H3 LABEL
   ========================================================= */

/* Elementor standard heading usato come etichetta superiore */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h3.elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h3.elementor-heading-title {
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  margin: 0 0 8px 0 !important;
  text-align: center !important;
  text-shadow: none !important;
}

/* Titolo principale Elementor */
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h1.elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child h2.elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h1.elementor-heading-title,
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child h2.elementor-heading-title {
  font-family: "Roboto Slab", serif !important;
  font-size: clamp(38px, 4.5vw, 60px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  margin: 0 !important;
  text-align: center !important;
  text-shadow: 0 8px 30px rgba(0,0,0,.30) !important;
}

/* =========================================================
   V.I.R. SCUOLA — COURSE CATEGORY HERO
   LearnPress taxonomy archives
   ========================================================= */

body.tax-course_category .top_site_main {
  min-height: 760px !important;
  height: clamp(650px, 70vh, 850px) !important;
  padding: 100px 24px 60px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  position: relative !important;
  overflow: hidden !important;

  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;

  text-align: center !important;
}

/* Overlay coerente con le altre hero */
body.tax-course_category .top_site_main::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    linear-gradient(
      180deg,
      rgba(18,25,28,.72) 0%,
      rgba(18,25,28,.85) 100%
    ) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

/* Neutralizza overlay Eduma originale */
body.tax-course_category .top_site_main > .overlay-top-header {
  display: none !important;
}

/* Contenuto */
body.tax-course_category .top_site_main .page-title-wrapper {
  position: relative !important;
  z-index: 2 !important;

  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;

  text-align: center !important;
}

/* Etichetta superiore */
body.tax-course_category .top_site_main .page-title-wrapper::before {
  content: "CORSI";
  display: block;

  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;

  color: #E6A303 !important;

  margin: 0 0 18px !important;
  text-align: center !important;
  text-shadow: none !important;
}

/* Titolo categoria */
body.tax-course_category .top_site_main .page-title {
  font-family: "Roboto Slab", serif !important;
  font-size: clamp(38px, 4.5vw, 60px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;

  text-transform: uppercase !important;
  color: #FFFFFF !important;

  margin: 0 !important;
  padding: 0 !important;

  text-align: center !important;
  text-shadow: 0 8px 30px rgba(0,0,0,.30) !important;
}

/* Breadcrumb Eduma fuori dalla hero */
body.tax-course_category .breadcrumbs-wrapper {
  display: none !important;
}

@media (max-width: 1024px) {
  body.tax-course_category .top_site_main {
    min-height: 620px !important;
    height: 620px !important;
  }
}

@media (max-width: 767px) {
  body.tax-course_category .top_site_main {
    min-height: 480px !important;
    height: 480px !important;
    padding: 90px 20px 50px !important;
  }

  body.tax-course_category .top_site_main .page-title {
    font-size: clamp(34px, 9vw, 44px) !important;
  }
}

/* Course category hero — remove dark overlay */
body.tax-course_category .top_site_main::before {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* =========================================================
   V.I.R. SCUOLA — REMOVE HERO OVERLAYS
   ========================================================= */

/* Elementor internal heroes */
body:not(.home) [data-elementor-type="wp-page"] > .elementor-element:first-child::before,
body:not(.home) [data-elementor-type="wp-page"] > .e-con:first-child::before {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Eduma / Thim internal heroes */
.thim-top-heading::before,
.vir-page-hero::before {
  content: none !important;
  display: none !important;
  background: none !important;
}


/* === VIR COURSE HERO IMAGES START === */

/* Russo per italiani */
body.tax-course_category.term-russo-per-italiani .top_site_main {
    background-image: url("../../../../uploads/2026/08/bc93c3ac-8e64-4f99-8351-e185c805fb33.png") !important;
    background-position: center center !important;
    background-size: cover !important;
}

/* Italiano per russi */
body.tax-course_category.term-italiano-per-russi .top_site_main {
    background-image: url("../../../../uploads/2026/08/6f4e1e39-a5f8-4a2b-9342-ec06d95e5be2.png") !important;
    background-position: center center !important;
    background-size: cover !important;
}

/* Aziendale */
body.tax-course_category.term-aziendale .top_site_main {
    background-image: url("../../../../uploads/2026/08/8e540f39-bb38-4d7b-8a98-33ade1551afa.png") !important;
    background-position: center center !important;
    background-size: cover !important;
}

/* === VIR COURSE HERO IMAGES END === */










/* =====================================================
   V.I.R. SCUOLA — HOME PREMIUM SYSTEM
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap');

.page-id-15438 {
  --vir-home-ink: #12161A !important;
  --vir-home-paper: #F8F8F5 !important;
  --vir-home-white: #FFFFFF !important;
  --vir-home-gold: #E6A303 !important;
  --vir-home-body: #4B5560 !important;
  --vir-home-muted: #7A848C !important;
  --vir-home-border: #E4E6E8 !important;
}

/* Global Shell & Container Width: 1170px */
.vir-shell {
  max-width: 1170px !important;
  margin-inline: auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box !important;
}

/* Eyebrow Label */
.vir-eyebrow {
  font-family: 'Roboto', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2.5px !important;
  color: #E6A303 !important;
  display: block !important;
  margin-bottom: 8px !important;
}

/* Generic Section Utilities */
.vir-section {
  box-sizing: border-box !important;
  position: relative !important;
}

/* =====================================================
   SECTION 1: I PERCORSI (#F8F8F5)
   ===================================================== */
.vir-home-paths {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
  background-color: #F8F8F5 !important;
}

.vir-home-paths__header {
  text-align: center !important;
  max-width: 860px !important;
  margin: 0 auto 22px auto !important;
}

.vir-home-paths__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: #12161A !important;
  margin: 0 0 10px 0 !important;
  white-space: nowrap !important;
}

.vir-home-paths__sub {
  font-family: 'Roboto', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

.vir-path-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 18px !important;
  align-items: stretch !important;
}

.vir-path-card {
  position: relative !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  width: 100% !important;
  height: 295px !important;
  min-height: 295px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05) !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.vir-path-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12) !important;
}

.vir-path-card__media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transition: transform 0.4s ease !important;
  z-index: 1 !important;
}

/* Aziendale Card Crop Adjustment: focus on people */
.vir-path-card:nth-child(3) .vir-path-card__media {
  object-position: 80% center !important;
}

.vir-path-card:hover .vir-path-card__media {
  transform: scale(1.03) !important;
}

.vir-path-card__overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(to top, rgba(15,20,24,.82) 0%, rgba(15,20,24,.35) 45%, rgba(15,20,24,0) 70%) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.vir-path-card__content {
  position: relative !important;
  z-index: 3 !important;
  padding: 20px 22px !important;
  color: #FFFFFF !important;
}

.vir-path-card__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 21px !important;
  font-weight: 600 !important;
  line-height: 1.16 !important;
  color: #FFFFFF !important;
  margin: 0 0 6px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.vir-path-card__text {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1.4 !important;
  color: rgba(255, 255, 255, 0.9) !important;
  margin: 0 0 12px 0 !important;
}

.vir-path-card__cta {
  font-family: 'Roboto', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: #E6A303 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: gap 0.2s ease !important;
}

/* =====================================================
   SECTION 2: EDITORIAL STATEMENT (#F8F8F5 - Paper Continuation)
   ===================================================== */
.vir-home-statement {
  padding-top: 28px !important;
  padding-bottom: 32px !important;
  background-color: #F8F8F5 !important;
}

.vir-statement {
  text-align: center !important;
  max-width: 820px !important;
  margin: 0 auto !important;
}

.vir-statement__line {
  width: 44px !important;
  height: 2px !important;
  background-color: #E6A303 !important;
  margin: 0 auto 16px auto !important;
}

.vir-statement__quote {
  font-family: 'Roboto Slab', serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: #12161A !important;
  margin: 0 0 10px 0 !important;
  letter-spacing: -0.2px !important;
}

.vir-statement__sub {
  font-family: 'Roboto', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

/* =====================================================
   SECTION 3: PERCHÉ V.I.R. (#FFFFFF - White)
   ===================================================== */
.vir-home-why {
  padding-top: 36px !important;
  padding-bottom: 36px !important;
  background-color: #FFFFFF !important;
}

.vir-editorial-split {
  display: grid !important;
  grid-template-columns: 35% 65% !important;
  gap: 44px !important;
  align-items: start !important;
}

.vir-why__intro {
  padding-right: 10px !important;
}

.vir-why__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: #12161A !important;
  margin: 0 0 14px 0 !important;
}

.vir-why__desc {
  font-family: 'Roboto', sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  color: #4B5560 !important;
  margin: 0 0 14px 0 !important;
}

.vir-why__btn {
  display: inline-block !important;
  margin-top: 10px !important;
  padding: 10px 22px !important;
  background-color: #E6A303 !important;
  color: #12161A !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  transition: background-color 0.2s ease, transform 0.2s ease !important;
}

.vir-why__btn:hover {
  background-color: #d19402 !important;
  color: #12161A !important;
}

.vir-numbered-list {
  display: flex !important;
  flex-direction: column !important;
}

.vir-numbered-item {
  border-top: 1px solid #E4E6E8 !important;
  padding: 10px 0 !important;
  min-height: 58px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 18px !important;
  background: transparent !important;
}

.vir-numbered-item:last-child {
  border-bottom: 1px solid #E4E6E8 !important;
}

.vir-numbered-item__num {
  font-family: 'Roboto Slab', serif !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  color: #E6A303 !important;
  line-height: 1 !important;
  min-width: 42px !important;
  flex-shrink: 0 !important;
}

.vir-numbered-item__icon {
  width: 22px !important;
  height: 22px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  color: #12161A !important;
}

.vir-numbered-item__content {
  flex: 1 !important;
}

.vir-numbered-item__title {
  font-family: 'Roboto', sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: #12161A !important;
  margin: 0 0 3px 0 !important;
}

.vir-numbered-item__desc {
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

/* =====================================================
   SECTION 4: IL METODO V.I.R. (#12161A - Charcoal with Subtle Radial Texture)
   ===================================================== */
.vir-home-method {
  padding-top: 30px !important;
  padding-bottom: 30px !important;
  background: radial-gradient(circle at 50% 30%, rgba(30, 38, 45, 0.45) 0%, rgba(18, 22, 26, 1) 100%), #12161A !important;
  color: #FFFFFF !important;
}

.vir-method-split {
  display: grid !important;
  grid-template-columns: 30% 70% !important;
  gap: 44px !important;
  align-items: start !important;
}

.vir-method__intro {
  padding-right: 10px !important;
}

.vir-method__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  color: #FFFFFF !important;
  margin: 0 0 14px 0 !important;
}

.vir-method__copy {
  font-family: 'Roboto', sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  margin: 0 0 18px 0 !important;
}

.vir-method__btn {
  display: inline-block !important;
  padding: 10px 20px !important;
  background-color: transparent !important;
  border: 1px solid #E6A303 !important;
  color: #E6A303 !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
  border-radius: 4px !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.vir-method__btn:hover {
  background-color: #E6A303 !important;
  color: #12161A !important;
}

.vir-method-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.vir-method-item {
  padding: 14px 14px 14px 0 !important;
  margin-right: 14px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
  background: transparent !important;
}

.vir-method-item__top {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 8px !important;
}

.vir-method-item__num {
  font-family: 'Roboto Slab', serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  color: #E6A303 !important;
  line-height: 1 !important;
}

.vir-method-item__icon {
  width: 20px !important;
  height: 20px !important;
  color: #E6A303 !important;
}

.vir-method-item__title {
  font-family: 'Roboto', sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: #FFFFFF !important;
  margin: 0 0 5px 0 !important;
}

.vir-method-item__desc {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1.4 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  margin: 0 !important;
}

/* =====================================================
   SECTION 5: COME STUDIARE (#F8F8F5 - Paper Background, White Cards)
   ===================================================== */
.vir-home-study {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
  background-color: #F8F8F5 !important;
}

.vir-home-study__header {
  text-align: center !important;
  max-width: 820px !important;
  margin: 0 auto 16px auto !important;
}

.vir-home-study__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: #12161A !important;
  margin: 0 0 8px 0 !important;
  white-space: nowrap !important;
}

.vir-study-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
}

.vir-study-card {
  background-color: #FFFFFF !important;
  border: 1px solid #E4E6E8 !important;
  border-radius: 4px !important;
  padding: 16px 14px !important;
  min-height: 120px !important;
  text-align: center !important;
  box-sizing: border-box !important;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;
}

.vir-study-card:hover {
  border-color: #E6A303 !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05) !important;
}

.vir-study-card__icon {
  width: 30px !important;
  height: 30px !important;
  margin: 0 auto 12px auto !important;
  color: #E6A303 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.vir-study-card__title {
  font-family: 'Roboto Slab', serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  color: #12161A !important;
  letter-spacing: 0.5px !important;
  margin: 0 0 6px 0 !important;
}

.vir-study-card__desc {
  font-family: 'Roboto', sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
  color: #4B5560 !important;
  margin: 0 !important;
}

/* RESPONSIVE BREAKPOINTS */
@media (max-width: 1024px) {
  .vir-home-paths__title,
  .vir-home-study__title {
    white-space: normal !important;
  }
  .vir-path-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .vir-editorial-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-method-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-method-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .vir-study-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-home-paths,
  .vir-home-statement,
  .vir-home-why,
  .vir-home-method,
  .vir-home-study {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
  .vir-path-grid,
  .vir-method-grid,
  .vir-study-grid {
    grid-template-columns: 1fr !important;
  }
}

/* End of custom global styles — Editorial pages use 100% Native JSON Elementor settings */

/* ==========================================================================
   OPTION B — EDITORIAL DISTINCTIVE PILOT STYLES (PAGE SCUOLA ID 29887)
   ========================================================================== */

/* S1 Asymmetric Title & Statement */
.vir-sc-title-asymmetric {
  text-align: left !important;
}

.vir-sc-hero-statement {
  font-size: clamp(24px, 2.5vw, 32px) !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: left !important;
  margin-bottom: 32px !important;
}

/* 2-Column Internal Editorial Grid Split (530px columns + 80px gap at 1440px) */
.vir-sc-prose-2col {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 64px !important;
  align-items: start !important;
}

.vir-sc-lead-paragraph {
  font-size: 18px !important;
  line-height: 29px !important;
  font-weight: 500 !important;
  color: #12161A !important;
  margin-bottom: 20px !important;
}

.vir-sc-quote-callout {
  border-left: 2px solid #E6A303 !important;
  padding-left: 20px !important;
  margin: 0 0 24px 0 !important;
}

.vir-sc-quote-callout p {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 18px !important;
  line-height: 28px !important;
  font-style: italic !important;
  color: #E6A303 !important;
  text-align: left !important;
  margin: 0 !important;
}

/* S4 Option B Continuous Editorial Sequence */
.vir-sc-editorial-seq {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 28px !important;
  position: relative !important;
  padding-left: 24px !important;
  border-left: 1px solid rgba(197, 160, 89, 0.4) !important;
}

.vir-sc-editorial-step {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 20px !important;
  background-color: transparent !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

.vir-sc-editorial-step .vir-sc-step-num {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  line-height: 1 !important;
  min-width: 42px !important;
}

@media (max-width: 991px) {
  .vir-sc-prose-2col {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* S2 & S5 Strict Equal-Height Layout System */
.two-columns.vir-sc-equal-height {
  align-items: stretch !important;
}

.two-columns.vir-sc-equal-height .vir-sc-split-col {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  height: 100% !important;
}

.two-columns.vir-sc-equal-height .vir-sc-media-portrait {
  height: 100% !important;
  width: 100% !important;
}

.two-columns.vir-sc-equal-height .vir-sc-media-portrait img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center top !important;
  border-radius: 4px !important;
  display: block !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
}

/* S2 Bold Statement Styling */
.vir-sc-key-statement {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: 18px !important;
  line-height: 28px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  border-left: 3px solid #E6A303 !important;
  padding-left: 16px !important;
  margin-block: 20px !important;
  text-align: left !important;
}

@media (max-width: 767px) {
  .two-columns.vir-sc-equal-height {
    align-items: flex-start !important;
  }
  .two-columns.vir-sc-equal-height .vir-sc-media-portrait img {
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    max-height: 380px !important;
  }
}

/* ---------- Test di Livello Page Styles ---------- */
.vir-testlivello-child-body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

/* S0: Hero Section (Hero Master Alignment) */
.vir-tl-hero-section {
  position: relative !important;
  min-height: 480px !important;
  background-size: cover !important;
  background-position: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 150px 24px 80px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  overflow: hidden !important;
}
.vir-tl-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(14, 18, 23, 0.38) 0%, rgba(14, 18, 23, 0.62) 100%) !important;
  z-index: 1 !important;
}
.vir-tl-hero-grid {
  position: relative !important;
  z-index: 2 !important;
  text-align: center !important;
  margin: 0 auto !important;
  max-width: 1140px !important;
}
.vir-tl-hero-eyebrow {
  color: #E6A303 !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin: 0 auto 14px !important;
  display: block !important;
  text-align: center !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6) !important;
}
.vir-tl-hero-title {
  color: #FFFFFF !important;
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: clamp(30px, 3.8vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin: 0 auto 16px !important;
  text-align: center !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.65) !important;
}
.vir-tl-hero-subtitle {
  color: #FFFFFF !important;
  font-family: "Roboto", sans-serif !important;
  font-size: clamp(16px, 1.8vw, 18px) !important;
  line-height: 1.6 !important;
  max-width: 880px !important;
  margin: 0 auto !important;
  text-align: center !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6) !important;
}

/* S1: Intro Section (Light) */
.vir-tl-s1 {
  background: #FFFFFF !important;
  padding: 80px 0 !important;
}
.vir-tl-eyebrow-dark {
  color: #B8860B !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.1em !important;
}
.vir-tl-title-dark {
  color: #1F252A !important;
  font-size: clamp(30px, 4vw, 42px) !important;
  font-weight: 700 !important;
  margin: 12px 0 20px 0 !important;
}
.vir-tl-statement-dark {
  color: #4B5560 !important;
  font-size: 18px !important;
  line-height: 1.6 !important;
  margin-bottom: 32px !important;
}
.vir-tl-text-dark {
  color: #2D3748 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}
.vir-tl-quote-light {
  background: #F8F8F5 !important;
  border-left: 4px solid #E6A303 !important;
  padding: 24px !important;
  border-radius: 0 8px 8px 0 !important;
  margin: 0 !important;
}

/* S2: Rules & Action Card Section (Dark Ink) */
.vir-tl-s2 {
  background: #12191C !important;
  padding: 80px 0 !important;
}
.vir-tl-s2 .vir-sc-shell-ink {
  background: transparent !important;
}
.vir-tl-rules-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 24px 0 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}
.vir-tl-rules-list li {
  color: #FFFFFF !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  position: relative !important;
  padding-left: 28px !important;
}
.vir-tl-rules-list li strong {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}
.vir-tl-rules-list li::before {
  content: '✓';
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  color: #E6A303 !important;
  font-weight: bold !important;
  font-size: 18px !important;
}
.vir-tl-action-box {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(230, 163, 3, 0.4) !important;
  border-radius: 8px !important;
  padding: 36px 28px !important;
}
.vir-tl-card-action {
  text-align: center !important;
  width: 100% !important;
}
.vir-tl-card-badge {
  display: inline-block !important;
  background: #E6A303 !important;
  color: #1F252A !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  padding: 6px 14px !important;
  border-radius: 4px !important;
  margin-bottom: 16px !important;
  text-transform: uppercase !important;
}
.vir-tl-card-title {
  color: #FFFFFF !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  margin-bottom: 12px !important;
}
.vir-tl-card-desc,
.vir-tl-card-action p,
.vir-tl-s2 .vir-tl-card-desc {
  color: #FFFFFF !important;
  opacity: 1 !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  margin-bottom: 24px !important;
}
.vir-tl-btn-start {
  display: inline-block !important;
  width: 100% !important;
  max-width: 280px !important;
  background: #E6A303 !important;
  color: #1F252A !important;
  font-weight: 700 !important;
  padding: 14px 28px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.vir-tl-btn-start:hover {
  background: #FFFFFF !important;
  color: #1F252A !important;
}

/* S3: Score Bands Section (Light) */
.vir-tl-s3 {
  background: #FFFFFF !important;
  padding: 80px 0 !important;
}
.vir-tl-card-light {
  background: #F8F8F5 !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 28px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03) !important;
}
.vir-tl-card-title-dark {
  color: #1F252A !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  margin-bottom: 12px !important;
  display: block !important;
  letter-spacing: 0.05em !important;
}

/* S4: Alternative CTA Section (Light Warm) */
.vir-tl-s4 {
  background: #F8F8F5 !important;
  padding: 80px 0 !important;
}

.vir-metodo-child-body {
  width: 100%;
}

/* ==========================================================================
   METODO V.I.R. — CLEAN SCOPED NAMESPACE (Zero Header/Nav Pollution)
   ========================================================================== */

.vir-metodo-child-body {
  background-color: #F8F8F5;
  color: #1F252A;
  font-family: "Roboto", sans-serif;
  width: 100%;
}

body.page-id-30294 .top_site_main,
body.page-id-30294 .top_heading_out,
body.page-id-30294 .breadcrumbs-wrapper,
body.page-id-30294 #sidebar-content,
body.page-id-30294 #secondary,
body.page-id-30294 .widget-area,
body.page-id-30294 .site-content > .row > .col-sm-3,
body.page-id-30295 .top_site_main,
body.page-id-30295 .top_heading_out,
body.page-id-30295 .breadcrumbs-wrapper,
body.page-id-30295 #sidebar-content,
body.page-id-30295 #secondary,
body.page-id-30295 .widget-area,
body.page-id-30295 .site-content > .row > .col-sm-3,
body.page-id-30361 .top_site_main,
body.page-id-30361 .top_heading_out,
body.page-id-30361 .breadcrumbs-wrapper,
body.page-id-30361 #sidebar-content,
body.page-id-30361 #secondary,
body.page-id-30361 .widget-area,
body.page-id-30361 .site-content > .row > .col-sm-3,
body.page-id-30378 .top_site_main,
body.page-id-30378 .top_heading_out,
body.page-id-30378 .breadcrumbs-wrapper,
body.page-id-30378 #sidebar-content,
body.page-id-30378 #secondary,
body.page-id-30378 .widget-area,
body.page-id-30378 .site-content > .row > .col-sm-3,
body.page-id-3 .top_site_main,
body.page-id-3 .top_heading_out,
body.page-id-3 .breadcrumbs-wrapper,
body.page-id-3 #sidebar-content,
body.page-id-3 #secondary,
body.page-id-3 .widget-area,
body.page-id-3 .site-content > .row > .col-sm-3,
body.page-id-30305 .top_site_main,
body.page-id-30305 .top_heading_out,
body.page-id-30305 .breadcrumbs-wrapper,
body.page-id-30305 #sidebar-content,
body.page-id-30305 #secondary,
body.page-id-30305 .widget-area,
body.page-id-30305 .site-content > .row > .col-sm-3,
body.page-id-30306 .top_site_main,
body.page-id-30306 .top_heading_out,
body.page-id-30306 .breadcrumbs-wrapper,
body.page-id-30306 #sidebar-content,
body.page-id-30306 #secondary,
body.page-id-30306 .widget-area,
body.page-id-30306 .site-content > .row > .col-sm-3,
body.page-id-30507 .top_site_main,
body.page-id-30508 .top_site_main,
body.page-id-30509 .top_site_main,
body.page-id-30510 .top_site_main,
body.page-id-30511 .top_site_main,
body.page-id-30512 .top_site_main,
body.page-id-30513 .top_site_main,
body.page-id-30514 .top_site_main,
body.page-id-30515 .top_site_main,
body.page-id-30516 .top_site_main,
body.page-id-30517 .top_site_main,
body.page-id-30518 .top_site_main,
body.page-id-30519 .top_site_main,
body.page-id-30520 .top_site_main,
body.page-id-30542 .top_site_main,
body.page-id-30542 .top_heading_out,
body.page-id-30542 .breadcrumbs-wrapper,
body.page-id-30542 #sidebar-content,
body.page-id-30542 #secondary,
body.page-id-30542 .widget-area,
body.page-id-30542 .site-content > .row > .col-sm-3,
body.page-id-30543 .top_site_main,
body.page-id-30543 .top_heading_out,
body.page-id-30543 .breadcrumbs-wrapper,
body.page-id-30543 #sidebar-content,
body.page-id-30543 #secondary,
body.page-id-30543 .widget-area,
body.page-id-30543 .site-content > .row > .col-sm-3,
body.page-id-30536 .top_site_main,
body.page-id-30536 .top_heading_out,
body.page-id-30536 .breadcrumbs-wrapper,
body.page-id-30536 #sidebar-content,
body.page-id-30536 #secondary,
body.page-id-30536 .widget-area,
body.page-id-30536 .site-content > .row > .col-sm-3,
body.page-id-30537 .top_site_main,
body.page-id-30537 .top_heading_out,
body.page-id-30537 .breadcrumbs-wrapper,
body.page-id-30537 #sidebar-content,
body.page-id-30537 #secondary,
body.page-id-30537 .widget-area,
body.page-id-30537 .site-content > .row > .col-sm-3,
body:has(.vir-partner-child-body) .top_site_main,
body:has(.vir-partner-child-body) .top_heading_out,
body:has(.vir-partner-child-body) .breadcrumbs-wrapper,
body:has(.vir-partner-child-body) #sidebar-content,
body:has(.vir-partner-child-body) #secondary,
body:has(.vir-partner-child-body) .widget-area,
body:has(.vir-partner-child-body) .site-content > .row > .col-sm-3,
body:has(.vir-universita-child-body) .top_site_main,
body:has(.vir-universita-child-body) .top_heading_out,
body:has(.vir-universita-child-body) .breadcrumbs-wrapper,
body:has(.vir-universita-child-body) #sidebar-content,
body:has(.vir-universita-child-body) #secondary,
body:has(.vir-universita-child-body) .widget-area,
body:has(.vir-universita-child-body) .site-content > .row > .col-sm-3,
body:has(.vir-page-wrapper) .top_site_main,
body:has(.vir-page-wrapper) .top_heading_out,
body:has(.vir-page-wrapper) .breadcrumbs-wrapper,
body:has(.vir-page-wrapper) #sidebar-content,
body:has(.vir-page-wrapper) #secondary,
body:has(.vir-page-wrapper) .widget-area,
body:has(.vir-page-wrapper) .site-content > .row > .col-sm-3 {
  display: none !important;
}

body.page-id-30542 .container.site-content,
body.page-id-30542 .site-content > .row,
body.page-id-30543 .container.site-content,
body.page-id-30543 .site-content > .row,
body.page-id-30536 .container.site-content,
body.page-id-30536 .site-content > .row,
body.page-id-30537 .container.site-content,
body.page-id-30537 .site-content > .row,
body:has(.vir-partner-child-body) .container.site-content,
body:has(.vir-partner-child-body) .site-content > .row,
body:has(.vir-universita-child-body) .container.site-content,
body:has(.vir-universita-child-body) .site-content > .row,
body.page-id-30294 .container.site-content,
body.page-id-30294 .site-content > .row,
body.page-id-30295 .container.site-content,
body.page-id-30295 .site-content > .row,
body.page-id-30361 .container.site-content,
body.page-id-30361 .site-content > .row,
body.page-id-30378 .container.site-content,
body.page-id-30378 .site-content > .row,
body.page-id-3 .container.site-content,
body.page-id-3 .site-content > .row,
body.page-id-30305 .container.site-content,
body.page-id-30305 .site-content > .row,
body.page-id-30306 .container.site-content,
body.page-id-30306 .site-content > .row,
body.page-id-30518 .container.site-content,
body.page-id-30518 .site-content > .row,
body.page-id-30519 .container.site-content,
body.page-id-30519 .site-content > .row,
body.page-id-30520 .container.site-content,
body.page-id-30520 .site-content > .row,
body:has(.vir-page-wrapper) .container.site-content,
body:has(.vir-page-wrapper) .site-content > .row {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.page-id-30542 #main,
body.page-id-30542 #main.col-sm-9,
body.page-id-30543 #main,
body.page-id-30543 #main.col-sm-9,
body.page-id-30536 #main,
body.page-id-30536 #main.col-sm-9,
body.page-id-30537 #main,
body.page-id-30537 #main.col-sm-9,
body:has(.vir-partner-child-body) #main,
body:has(.vir-partner-child-body) #main.col-sm-9,
body:has(.vir-universita-child-body) #main,
body:has(.vir-universita-child-body) #main.col-sm-9,
body.page-id-30294 #main,
body.page-id-30294 #main.col-sm-9,
body.page-id-30295 #main,
body.page-id-30295 #main.col-sm-9,
body.page-id-30361 #main,
body.page-id-30361 #main.col-sm-9,
body.page-id-30378 #main,
body.page-id-30378 #main.col-sm-9,
body.page-id-3 #main,
body.page-id-3 #main.col-sm-9,
body.page-id-30305 #main,
body.page-id-30305 #main.col-sm-9,
body.page-id-30306 #main,
body.page-id-30306 #main.col-sm-9,
body.page-id-30518 #main,
body.page-id-30518 #main.col-sm-9,
body.page-id-30519 #main,
body.page-id-30519 #main.col-sm-9,
body.page-id-30520 #main,
body.page-id-30520 #main.col-sm-9,
body:has(.vir-page-wrapper) #main,
body:has(.vir-page-wrapper) #main.col-sm-9 {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  float: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
}

#main-content .vir-metodo-child-body,
.site-content .vir-metodo-child-body,
#main-content .vir-legal-page,
.site-content .vir-legal-page,
#main-content .vir-partner-child-body,
.site-content .vir-partner-child-body,
#main-content .vir-universita-child-body,
.site-content .vir-universita-child-body {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.vir-partner-child-body .page-section,
.vir-universita-child-body .page-section {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 80px 0 !important;
  box-sizing: border-box !important;
}

.vir-partner-child-body .page-container,
.vir-universita-child-body .page-container {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  box-sizing: border-box !important;
}

.vir-metodo-child-body .page-section {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.vir-metodo-child-body .page-container {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  box-sizing: border-box !important;
}

.vir-mv-section-padded {
  padding: 80px 0 !important;
}

.vir-mv-section-white {
  background-color: #FFFFFF !important;
}

/* ==========================================================================
   V.I.R. SCUOLA — HERO MASTER SYSTEM (Source of Truth)
   Binding User Hero Contract: Exact Heights (480px / 440px / 400px / 360px),
   Single-line H1 Scaling, Single-line Description, Zero Gray Wash
   ========================================================================== */

.vir-hero-master,
.vir-hub-hero-section,
.vir-mv-hero-section {
  position: relative !important;
  width: 100% !important;
  height: 750px !important;
  min-height: 750px !important;
  max-height: 750px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 82px 24px 0 !important;
  background-size: cover !important;
  background-position: center center;
  background-repeat: no-repeat !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  z-index: 10 !important;
}

/* Luminous localized cinematic vignette — ZERO uniform grey wash */
.vir-hero-master::before,
.vir-hero-master-overlay,
.vir-hub-hero-section::before,
.vir-mv-hero-overlay {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(14, 18, 23, 0.40) 0%, rgba(14, 18, 23, 0.28) 42%, rgba(14, 18, 23, 0.65) 100%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.vir-hero-master-container,
.vir-hub-hero-container,
.vir-mv-hero-container {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

.vir-hero-master-label,
.vir-hub-hero-eyebrow,
.vir-mv-eyebrow-hero {
  display: block !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  margin: 0 auto 12px !important;
  text-align: center !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6) !important;
}

.site-header .thim-ekits-menu__icon {
  display: block !important;
  width: 20px !important;
  height: 29px !important;
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
}

.site-header .menu-item-has-children {
  position: relative !important;
}

.vir-hero-master-title,
.vir-hub-hero-title,
.vir-mv-hero-title,
.vir-tl-hero-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: #FFFFFF !important;
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto 12px !important;
  text-align: center !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.65) !important;
  white-space: normal;
}

.vir-hero-master-desc,
.vir-hub-hero-lead,
.vir-mv-hero-lead,
.vir-tl-hero-subtitle {
  font-family: "Roboto", sans-serif !important;
  font-size: clamp(14px, 1.3vw, 16.5px) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #FFFFFF !important;
  width: 100% !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  text-align: center !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6) !important;
}

.vir-hero-master-actions,
.vir-hub-hero-ctas,
.vir-mv-hero-actions {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  margin-top: 20px !important;
  flex-wrap: wrap !important;
}

@media (max-width: 1024px) {
  .vir-hero-master,
  .vir-hub-hero-section,
  .vir-mv-hero-section {
    height: 620px !important;
    min-height: 620px !important;
    max-height: 620px !important;
    padding: 72px 20px 0 !important;
  }
}

@media (max-width: 768px) {
  .vir-hero-master,
  .vir-hub-hero-section,
  .vir-mv-hero-section {
    height: 520px !important;
    min-height: 520px !important;
    max-height: 520px !important;
    padding: 60px 16px 0 !important;
  }
  .vir-hero-master-title,
  .vir-hub-hero-title,
  .vir-mv-hero-title {
    font-size: 26px !important;
  }
}

@media (max-width: 480px) {
  .vir-hero-master,
  .vir-hub-hero-section,
  .vir-mv-hero-section {
    height: 440px !important;
    min-height: 440px !important;
    max-height: 440px !important;
    padding: 50px 12px 0 !important;
  }
  .vir-hero-master-title,
  .vir-hub-hero-title,
  .vir-mv-hero-title {
    font-size: 20px !important;
    line-height: 1.25 !important;
  }
  .vir-hero-master-desc,
  .vir-hub-hero-lead,
  .vir-mv-hero-lead {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  .vir-hero-master-actions,
  .vir-hub-hero-ctas,
  .vir-mv-hero-actions {
    margin-top: 12px !important;
    gap: 8px !important;
  }
  .vir-hero-master-actions .vir-btn-primary,
  .vir-hero-master-actions .vir-btn-secondary,
  .vir-hub-hero-ctas .vir-btn-primary,
  .vir-hub-hero-ctas .vir-btn-secondary {
    padding: 8px 14px !important;
    font-size: 12px !important;
  }
}

/* Specific background bindings */
.vir-hero-metodo {
  background-image: url("../images/metodo-hero-v4.jpg") !important;
  background-position: center center !important;
}
.vir-hero-notizie {
  background-image: url("../images/hero-notizie-final.webp") !important;
  background-position: 75% 35% !important;
  background-size: cover !important;
}
.vir-hero-corsi {
  background-image: url("../images/corsi-hero-v1.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
}
.vir-hero-russo {
  background-image: url("../images/hero-russo-per-italiani-v1.webp") !important;
  background-position: 30% 35% !important;
  background-size: cover !important;
}
.vir-hero-italiano {
  background-image: url("../images/hero-italiano-russofoni-family.webp") !important;
  background-position: center center !important;
  background-size: cover !important;
}
.vir-hero-aziende {
  background-image: url("../images/corporate-hero-v1.jpg") !important;
  background-position: 50% 25% !important;
}
.vir-hero-chisiamo {
  background-image: url("../images/hero-chi-siamo-final.webp") !important;
  background-position: 70% 35% !important;
  background-size: cover !important;
}
.vir-hero-scuola {
  background-image: url("../images/scuola-hero-bg.jpg") !important;
  background-position: 50% 35% !important;
}
.vir-hero-test-livello {
  background-image: url("../images/hero-test-di-livello-v1.webp") !important;
  background-position: 75% 35% !important;
  background-size: cover !important;
}
.vir-hero-docenti {
  position: relative !important;
  background-color: #000000 !important;
  background-image: url("../images/docenti-hero-v1.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  min-height: 480px !important;
  padding: 150px 24px 80px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.vir-hero-docenti::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  /* Pure neutral black luminous gradient - zero grey veil, crystal clear authentic colors */
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.12) 40%, rgba(0, 0, 0, 0.58) 100%) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.vir-hero-docenti .vir-hero-master-container {
  position: relative !important;
  z-index: 2 !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  text-align: center !important;
}

@media (min-width: 1200px) {
  .vir-hero-docenti .vir-hero-master-desc {
    font-size: 15.5px !important;
    white-space: nowrap !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

@media (min-width: 1025px) {
  .vir-hero-contatti .vir-hero-master-desc {
    max-width: 1140px !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
}

.vir-hero-contatti {
  background-image: url("../images/hero-contatti-sede-v1.webp") !important;
  background-position: 50% 40% !important;
  background-size: cover !important;
}
.vir-hero-profilo {
  background-image: url("../images/scuola-hero-bg.jpg") !important;
  background-position: center center !important;
}
.vir-hero-legal {
  position: relative !important;
  height: 320px !important;
  min-height: 320px !important;
  max-height: 320px !important;
  padding: 82px 24px 0 !important;
  background-color: #0E1217 !important;
  background-image: url("/vir-scuola/wp-content/uploads/2026/08/vir-scuola-moscow-city-footer.webp") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
}

.vir-hero-legal::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(8, 12, 16, 0.83) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.vir-hero-legal .vir-hero-master-container {
  position: relative !important;
  z-index: 2 !important;
}

/* ==========================================================================
   METODO V.I.R. — STRICT REFINEMENT & 12 EDITORIAL SECTIONS
   ========================================================================== */

/* Hero: Zero Grey Patina / High-Contrast Text */
.vir-hero-metodo::before,
.vir-hero-metodo .vir-hero-master-overlay {
  display: none !important;
  background: none !important;
}

.vir-hero-metodo .vir-hero-master-title {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8), 0 4px 24px rgba(0, 0, 0, 0.65) !important;
}

.vir-hero-metodo .vir-hero-master-desc {
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.85), 0 3px 14px rgba(0, 0, 0, 0.65) !important;
}

.vir-hero-metodo .vir-hero-master-label {
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.9) !important;
}

/* Headings & Header Alignment */
.vir-metodo-page .vir-mv-header-center {
  text-align: center !important;
  max-width: 920px !important;
  margin: 0 auto 36px !important;
}

.vir-metodo-page .vir-mv-section-title {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: clamp(20px, 2.0vw, 26px) !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  color: #1F252A !important;
  margin: 10px auto 0 !important;
  text-align: center !important;
  max-width: 960px !important;
}

#s1-partenza .vir-mv-header-center,
#s1-partenza .vir-mv-section-title {
  max-width: 1080px !important;
  font-size: clamp(19px, 1.9vw, 24.5px) !important;
}

/* 50/50 Split Architecture: TEXT defines height, IMAGE adapts */
.vir-mv-split-pair {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 60px !important;
  align-items: stretch !important;
}

.vir-mv-split-text-panel {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: #FFFFFF !important;
  padding: 40px 38px !important;
  border-radius: 6px !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

.vir-mv-split-text-panel .vir-cs-body-text p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  color: #334155 !important;
  margin-bottom: 16px !important;
  text-align: justify !important;
  text-justify: inter-word !important;
}

.vir-mv-split-text-panel .vir-cs-body-text p:last-child {
  margin-bottom: 0 !important;
}

.vir-mv-split-image-panel {
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05) !important;
  background: #E2E8F0 !important;
}

.vir-mv-split-image-panel img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.4s ease !important;
}

.vir-mv-split-image-panel:hover img {
  transform: scale(1.02) !important;
}

/* Individual Image Focal Points */
.vir-mv-img-s1 { object-position: center 30% !important; }
.vir-mv-img-s3 { object-position: center 25% !important; }
.vir-mv-img-s4 { object-position: center 35% !important; }
.vir-mv-img-s7 { object-position: center 40% !important; }
.vir-mv-img-s8 { object-position: center 35% !important; }
.vir-mv-img-s9 { object-position: center 20% !important; }
.vir-mv-img-s11 { object-position: center 25% !important; }

/* Full-Width Editorial Sections (S2, S5, S6) */
.vir-mv-editorial-panel {
  max-width: 860px !important;
  margin: 0 auto !important;
  background: #FFFFFF !important;
  padding: 44px 48px !important;
  border-radius: 6px !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

.vir-cs-section-light .vir-mv-editorial-panel {
  background: #FFFFFF !important;
}

.vir-mv-editorial-body p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  color: #334155 !important;
  margin-bottom: 16px !important;
  text-align: justify !important;
  text-justify: inter-word !important;
}

.vir-mv-editorial-body p:last-child {
  margin-bottom: 0 !important;
}

.vir-mv-editorial-body .vir-cs-lead-text {
  font-size: 17px !important;
  line-height: 1.65 !important;
  font-weight: 500 !important;
  color: #1E293B !important;
  margin-bottom: 18px !important;
}

/* S10: Full-Width Dark Section (Progresso) */
.vir-mv-section-dark {
  background-color: #0E1217 !important;
  color: #FFFFFF !important;
}

.vir-mv-dark-content-wrap {
  max-width: 860px !important;
  margin: 0 auto !important;
}

.vir-mv-eyebrow-gold {
  color: #E6A303 !important;
}

.vir-mv-title-white {
  font-family: 'Roboto Slab', Georgia, serif !important;
  font-size: clamp(22px, 2.2vw, 28px) !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  margin: 10px auto 0 !important;
  text-align: center !important;
}

.vir-mv-dark-body-prose p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  color: #E2E8F0 !important;
  margin-bottom: 18px !important;
  text-align: justify !important;
  text-justify: inter-word !important;
}

.vir-mv-dark-body-prose p:last-child {
  margin-bottom: 0 !important;
}

.vir-mv-dark-body-prose .vir-cs-lead-text {
  font-size: 17.5px !important;
  line-height: 1.65 !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  margin-bottom: 20px !important;
}

/* S12: Final Centered Synthesis (L'Obiettivo) */
.vir-mv-closing-wrap {
  max-width: 820px !important;
  margin: 0 auto !important;
  text-align: center !important;
}

.vir-mv-closing-body {
  margin-top: 24px !important;
  text-align: center !important;
}

.vir-mv-closing-body p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  color: #334155 !important;
  margin-bottom: 16px !important;
  text-align: center !important;
}

.vir-mv-closing-body .vir-mv-closing-lead {
  font-size: 18px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  color: #1E293B !important;
  margin-bottom: 18px !important;
  text-align: center !important;
}

.vir-mv-closing-actions {
  margin-top: 36px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 16px !important;
}

.vir-mv-closing-actions .vir-btn-primary {
  padding: 15px 38px !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
}

.vir-mv-secondary-action-wrap {
  margin-top: 4px !important;
}

.vir-mv-secondary-link {
  color: #B47B00 !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  transition: color 0.2s ease !important;
}

.vir-mv-secondary-link:hover {
  color: #12161A !important;
  text-decoration: underline !important;
}

/* Metodo Section Padding */
.vir-mv-section-padded {
  padding: 80px 0 !important;
}

/* Responsive Split Stacking */
@media (max-width: 900px) {
  .vir-mv-split-pair {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .vir-mv-split-image-panel {
    position: relative !important;
    width: 100% !important;
    height: 320px !important;
    min-height: 320px !important;
  }
  .vir-mv-split-text-panel {
    padding: 32px 24px !important;
  }
  .vir-mv-editorial-panel {
    padding: 32px 24px !important;
  }
  .vir-mv-section-padded {
    padding: 60px 0 !important;
  }
}

@media (max-width: 480px) {
  .vir-mv-split-image-panel {
    height: 240px !important;
    min-height: 240px !important;
  }
  .vir-mv-split-text-panel {
    padding: 24px 18px !important;
  }
  .vir-mv-editorial-panel {
    padding: 24px 18px !important;
  }
  .vir-mv-section-padded {
    padding: 48px 0 !important;
  }
}

/* ==========================================================================
   SHARED GLOBAL UI & CONTRAST STABILIZATION
   ========================================================================== */

/* Two-Columns & Editorial Prose Responsive Collapse (<= 991px) */
@media (max-width: 991px) {
  .two-columns,
  .vir-sc-prose-2col,
  .page-editorial-grid .two-columns {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .two-columns .vir-sc-split-media,
  .two-columns .vir-cs-split-media {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Chi Siamo Ink Section High Contrast Text */
.vir-cs-ink-panel p,
.vir-cs-body-light p,
.vir-sc-shell-ink p,
.vir-cs-s4 .vir-cs-split-text p {
  color: #CBD5E1 !important;
}

/* Corsi CTA Section High Contrast on Dark Background */
.page-id-29888 .elementor-element-virc21 .elementor-heading-title,
.page-id-29888 .elementor-element-virc21 .thim-ekits-heading__title {
  color: #FFFFFF !important;
}
.page-id-29888 .elementor-element-virc21 .elementor-widget-text-editor,
.page-id-29888 .elementor-element-virc21 p {
  color: #F1F5F9 !important;
}

/* Test di Livello High Contrast Rules */
.vir-tl-card-desc {
  color: rgba(255, 255, 255, 0.92) !important;
}
.vir-tl-rules-list li {
  color: #FFFFFF !important;
}

/* ==================================================
   GLOBAL FOOTER — MOSCOW CITY ATMOSPHERIC BACKGROUND
   ================================================== */
footer#colophon {
  position: relative !important;
  background-color: #12161A !important;
  overflow: hidden !important;
}

.elementor-element-virfootmain {
  position: relative !important;
  background-color: transparent !important;
  background-image: linear-gradient(135deg, rgba(18, 22, 26, 0.92) 0%, rgba(18, 22, 26, 0.82) 50%, rgba(18, 22, 26, 0.72) 100%),
                    url('/vir-scuola/wp-content/uploads/vir-assets/vir-scuola-moscow-city-footer-dark.webp') !important;
  background-size: cover !important;
  background-position: center right !important;
  background-repeat: no-repeat !important;
}

.elementor-element-virfootcopy {
  background-color: rgba(10, 13, 16, 0.95) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* Footer Typography & Contrast */
.elementor-element-virfootmain .elementor-heading-title,
.elementor-element-virfootmain h4 {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 20px !important;
}

.elementor-element-virfootmain p,
.elementor-element-virfootmain .elementor-widget-text-editor {
  color: #CBD5E1 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.elementor-element-virfootmain .thim-header-info li a {
  color: #CBD5E1 !important;
  font-size: 14px !important;
  transition: color 0.2s ease !important;
}

.elementor-element-virfootmain .thim-header-info li a:hover {
  color: #E6A303 !important;
}

.elementor-element-virfootcopy p {
  color: #94A3B8 !important;
  font-size: 13px !important;
}

/* Tablet Crop (768px - 1024px) */
@media (max-width: 1024px) {
  .elementor-element-virfootmain {
    background-image: linear-gradient(180deg, rgba(18, 22, 26, 0.94) 0%, rgba(18, 22, 26, 0.88) 100%),
                      url('/vir-scuola/wp-content/uploads/vir-assets/vir-scuola-moscow-city-footer-dark.webp') !important;
    background-position: center bottom !important;
  }
}

/* Mobile Crop (<= 767px) */
@media (max-width: 767px) {
  .elementor-element-virfootmain {
    background-image: linear-gradient(180deg, rgba(18, 22, 26, 0.96) 0%, rgba(18, 22, 26, 0.92) 100%),
                      url('/vir-scuola/wp-content/uploads/vir-assets/vir-scuola-moscow-city-footer-dark.webp') !important;
    background-position: center right !important;
  }
}



/* ==========================================================================
   V.I.R. SCUOLA — MASTER FOOTER & UNIFIED PAGE LAYOUT SYSTEM
   ========================================================================== */

/* Master Footer Styling (Proportionate, Legible Institutional Architecture) */
footer#colophon.site-footer.vir-master-footer {
  background: #0E1217 !important;
  color: #CBD5E1 !important;
  border-top: 1px solid #1E293B !important;
  padding: 56px 0 0 !important;
  font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.vir-footer-container {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  box-sizing: border-box !important;
}

.vir-footer-grid {
  display: grid !important;
  grid-template-columns: 1.35fr 0.85fr 1.05fr 1.05fr !important;
  gap: 36px !important;
  padding-bottom: 44px !important;
}

.vir-footer-brand {
  display: flex !important;
  flex-direction: column !important;
}

.vir-footer-logo-link {
  display: inline-block !important;
  margin-bottom: 14px !important;
  text-decoration: none !important;
}

.vir-logo-text {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  letter-spacing: 0.04em !important;
}

.vir-logo-text strong {
  color: #E6A303 !important;
}

.vir-footer-desc {
  font-size: 14px !important;
  line-height: 1.62 !important;
  color: #94A3B8 !important;
  margin-bottom: 20px !important;
}

.vir-footer-contact-info {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.vir-contact-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #CBD5E1 !important;
}

.vir-contact-line a {
  color: #CBD5E1 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-contact-line a:hover {
  color: #E6A303 !important;
}

.vir-contact-icon {
  color: #E6A303 !important;
  font-size: 14px !important;
  width: 16px !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}

/* Social Links in Master Footer */
.vir-footer-social {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 16px !important;
  margin-bottom: 4px !important;
}

.vir-social-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: #CBD5E1 !important;
  text-decoration: none !important;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease !important;
}

.vir-social-link:hover {
  color: #E6A303 !important;
  background: rgba(230, 163, 3, 0.08) !important;
  border-color: rgba(230, 163, 3, 0.4) !important;
  transform: translateY(-2px) !important;
}

.vir-social-link:focus-visible {
  color: #E6A303 !important;
  background: rgba(230, 163, 3, 0.12) !important;
  border-color: #E6A303 !important;
  outline: 2px solid #E6A303 !important;
  outline-offset: 2px !important;
}

.vir-social-svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  fill: currentColor !important;
  transition: fill 0.2s ease !important;
}

.vir-footer-heading {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  margin: 0 0 16px !important;
  letter-spacing: 0.02em !important;
  position: relative !important;
  padding-bottom: 8px !important;
}

.vir-footer-heading::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 22px !important;
  height: 2px !important;
  background: #E6A303 !important;
}

ul.vir-footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

ul.vir-footer-links li {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

ul.vir-footer-links li::before {
  display: none !important;
}

ul.vir-footer-links li a {
  color: #94A3B8 !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
  display: inline-block !important;
}

ul.vir-footer-links li a:hover {
  color: #E6A303 !important;
}

.vir-footer-bottom {
  border-top: 1px solid #1E293B !important;
  padding: 22px 0 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #94A3B8 !important;
}

.vir-footer-bottom-copy {
  color: #94A3B8 !important;
}

.vir-footer-bottom-copy strong {
  color: #CBD5E1 !important;
}

.vir-footer-bottom-legal {
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

.vir-footer-bottom-legal a {
  color: #94A3B8 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-footer-bottom-legal a:hover {
  color: #E6A303 !important;
}

.vir-sep {
  color: #475569 !important;
  font-size: 11px !important;
}

/* ==========================================================================
   PAGE HEROES (HEADER OVERLAY & HIGH CONTRAST)
   ========================================================================== */

.vir-hub-hero-section {
  position: relative !important;
  min-height: 460px !important;
  padding: 150px 24px 80px !important;
  background: #12161A url("../images/metodo-hero-v3.jpg") center/cover no-repeat !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #FFFFFF !important;
}

.vir-hero-russo {
  background-image: url("../images/hero-russo-per-italiani-v1.webp") !important;
  background-position: 30% 35% !important;
}

.vir-hero-italiano {
  background-image: url("../images/hero-italiano-russofoni-family.webp") !important;
  background-position: center center !important;
}

.vir-hero-aziende {
  background-image: url("../images/corporate-hero-v1.jpg") !important;
  background-position: 50% 25% !important;
}



.vir-hero-notizie {
  background-image: url("../images/hero-notizie-final.webp") !important;
  background-position: 75% 35% !important;
  background-size: cover !important;
}

.vir-hero-contatti {
  background-image: url("../images/hero-contatti-sede-v1.webp") !important;
  background-position: 50% 40% !important;
}

.vir-hero-profilo {
  background-image: url("../images/scuola-hero-bg.jpg") !important;
}



.vir-hub-hero-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(14, 18, 23, 0.68) 0%, rgba(14, 18, 23, 0.82) 100%) !important;
  z-index: 1 !important;
}

.vir-hub-hero-container {
  position: relative !important;
  z-index: 2 !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  width: 100% !important;
  text-align: center !important;
}

.vir-hub-hero-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  margin: 0 auto 12px !important;
  text-align: center !important;
}

.vir-hub-hero-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(28px, 3.4vw, 42px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #E6A303 !important;
  max-width: 860px !important;
  margin: 0 auto 16px !important;
  text-align: center !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8) !important;
}

.vir-hub-hero-lead {
  font-size: clamp(16px, 1.8vw, 18px) !important;
  line-height: 1.65 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  max-width: 680px !important;
  margin: 0 auto 32px !important;
  text-align: center !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7) !important;
}

.vir-hub-hero-ctas {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  margin: 0 auto !important;
}

/* Common Layout Utilities */
.vir-section {
  padding: 80px 0 !important;
}

.vir-container {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}

.vir-section-header {
  text-align: center !important;
  max-width: 820px !important;
  margin: 0 auto 48px !important;
}

.vir-eyebrow {
  display: inline-block !important;
  color: #E6A303 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
}

.vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(24px, 2.8vw, 36px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  line-height: 1.25 !important;
  margin: 0 0 12px !important;
}

.vir-section-subtitle {
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: #64748B !important;
  margin: 0 !important;
}

.vir-bg-light {
  background: #F8FAFC !important;
}

.vir-bg-white {
  background: #FFFFFF !important;
}

/* Buttons */
.vir-btn-primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #E6A303 !important;
  color: #12161A !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 13px 28px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  border: none !important;
  cursor: pointer !important;
}

.vir-btn-primary:hover {
  background: #D49402 !important;
  transform: translateY(-1px) !important;
  color: #12161A !important;
}

.vir-btn-secondary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  color: #FFFFFF !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 12px 26px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
  transition: all 0.2s ease !important;
  cursor: pointer !important;
}

.vir-btn-secondary:hover {
  border-color: #E6A303 !important;
  color: #E6A303 !important;
}

.vir-btn-block {
  width: 100% !important;
}

.vir-btn-sm {
  padding: 8px 18px !important;
  font-size: 12px !important;
}

/* Courses Grid (2x2 Grid for 4 Courses/Services) */
.vir-hub-courses-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
}

.vir-hub-course-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  padding: 32px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 4px 16px rgba(18, 22, 26, 0.04) !important;
  transition: all 0.25s ease !important;
}

.vir-hub-course-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 28px rgba(18, 22, 26, 0.08) !important;
}

.vir-hub-course-card.vir-hub-card-featured {
  border-color: #E6A303 !important;
}

.vir-hub-card-badge {
  display: inline-block !important;
  background: #12161A !important;
  color: #E6A303 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  margin-bottom: 10px !important;
}

.vir-hub-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 12px !important;
  line-height: 1.25 !important;
}

.vir-hub-card-desc {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  margin-bottom: 24px !important;
  flex-grow: 1 !important;
}

.vir-hub-card-specs {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 16px 18px !important;
  margin-bottom: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.vir-hub-spec-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.vir-hub-spec-label {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

.vir-hub-spec-val {
  font-size: 13px !important;
  color: #1E293B !important;
  font-weight: 600 !important;
}

.vir-hub-spec-price {
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #12161A !important;
}

.vir-hub-spec-sub {
  font-size: 12px !important;
  color: #64748B !important;
}

/* Pricing Table */
.vir-pricing-table-wrapper {
  overflow-x: auto !important;
  margin-bottom: 48px !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
}

.vir-pricing-matrix-table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  text-align: left !important;
}

.vir-pricing-matrix-table th {
  background: #12161A !important;
  color: #FFFFFF !important;
  padding: 16px 20px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
}

.vir-pricing-matrix-table td {
  padding: 18px 20px !important;
  border-bottom: 1px solid #E2E8F0 !important;
  color: #334155 !important;
  vertical-align: top !important;
}

.vir-table-subtext {
  display: block !important;
  font-size: 12px !important;
  color: #64748B !important;
  font-weight: normal !important;
  margin-top: 4px !important;
}

.vir-unit-price {
  display: block !important;
  font-size: 12px !important;
  color: #64748B !important;
  margin-top: 2px !important;
}

.vir-rate-info {
  display: block !important;
  font-size: 11.5px !important;
  color: #0284C7 !important;
  font-weight: 600 !important;
  margin-top: 2px !important;
}

.vir-best-price {
  color: #B45309 !important;
}

.vir-badge-table {
  background: #0284C7 !important;
  color: #FFFFFF !important;
  font-size: 10px !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  font-weight: 800 !important;
  margin-left: 6px !important;
}

.vir-badge-table-gold {
  background: #E6A303 !important;
  color: #12161A !important;
  font-size: 10px !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  font-weight: 800 !important;
  margin-left: 6px !important;
}

/* Commercial Features Grid */
.vir-commercial-features-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
}

.vir-feature-box {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 20px !important;
  display: flex !important;
  flex-direction: column !important;
}

.vir-feature-box.vir-feature-highlight {
  border-color: #E6A303 !important;
  background: #FFFBEB !important;
}

.vir-feature-num {
  font-size: 14px !important;
  font-weight: 800 !important;
  color: #94A3B8 !important;
  margin-bottom: 8px !important;
}

.vir-feature-tag {
  display: inline-block !important;
  background: #E6A303 !important;
  color: #12161A !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
  margin-bottom: 8px !important;
  align-self: flex-start !important;
}

.vir-feature-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-feature-text {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 !important;
}

.vir-feature-bullets {
  list-style: none !important;
  padding: 0 !important;
  margin: 8px 0 !important;
  font-size: 13px !important;
  color: #475569 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.vir-feature-note {
  font-size: 11.5px !important;
  color: #64748B !important;
  margin-top: auto !important;
  padding-top: 12px !important;
}

/* 3-Col Steps */
.vir-steps-3col-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
}

.vir-step-item {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 32px 24px !important;
  text-align: center !important;
}

.vir-step-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: #12161A !important;
  color: #E6A303 !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  margin-bottom: 16px !important;
}

.vir-step-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-step-text {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* Editorial Split Grids */
.vir-editorial-split-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 48px !important;
  align-items: center !important;
}

.vir-rounded-img {
  width: 100% !important;
  border-radius: 12px !important;
  display: block !important;
  object-fit: cover !important;
}

.vir-media-caption {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin-top: 12px !important;
  padding-left: 12px !important;
  border-left: 2px solid #E6A303 !important;
}

.vir-split-heading {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 20px !important;
}

.vir-feature-point {
  display: flex !important;
  gap: 16px !important;
  margin-bottom: 20px !important;
}

.vir-point-num {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  line-height: 1.2 !important;
}

.vir-point-text {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #334155 !important;
}

/* 4-Col Skills Grid (Criteria) */
.vir-skills-grid-4 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
}

.vir-skills-grid-3 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
}

.vir-skill-box {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 28px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.vir-skill-box:hover {
  border-color: #CBD5E1 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important;
}

.vir-skill-num {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  display: block !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
}

.vir-skill-tag {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  display: block !important;
  margin-bottom: 6px !important;
}

.vir-skill-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0E1217 !important;
  margin: 0 0 10px !important;
}

.vir-skill-desc {
  font-size: 14px !important;
  line-height: 1.62 !important;
  color: #475569 !important;
  margin: 0 !important;
  text-align: justify !important;
  text-align-last: left !important;
}

/* 3-Col Pricing Cards */
.vir-hub-pricing-grid-3col {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  margin-top: 40px !important;
}

.vir-pricing-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  padding: 32px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 4px 16px rgba(18, 22, 26, 0.04) !important;
}

.vir-pricing-card.vir-pricing-featured {
  border-color: #E6A303 !important;
  box-shadow: 0 8px 24px rgba(230, 163, 3, 0.12) !important;
}

.vir-pricing-badge {
  display: inline-block !important;
  background: #12161A !important;
  color: #E6A303 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  margin-bottom: 12px !important;
  align-self: flex-start !important;
}

.vir-pricing-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-pricing-desc {
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin-bottom: 20px !important;
}

.vir-course-price-tiers {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 16px 0 !important;
}

.vir-tier-row {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 6px !important;
  padding: 10px 14px !important;
}

.vir-tier-row.vir-tier-featured {
  border-color: #0284C7 !important;
  background: #F0F9FF !important;
}

.vir-tier-row.vir-tier-best {
  border-color: #E6A303 !important;
  background: #FFFBEB !important;
}

.vir-tier-main {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.vir-tier-label {
  font-size: 13.5px !important;
  color: #334155 !important;
}

.vir-tier-price {
  font-size: 16px !important;
  color: #12161A !important;
  font-weight: 800 !important;
}

.vir-tier-sub {
  font-size: 11.5px !important;
  color: #64748B !important;
  margin-top: 4px !important;
}

.vir-pricing-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 16px 0 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: #475569 !important;
}

.vir-pricing-list li {
  position: relative !important;
  padding-left: 18px !important;
}

.vir-pricing-list li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  color: #E6A303 !important;
  font-weight: 800 !important;
}

.vir-pricing-btn-wrap {
  margin-top: auto !important;
}

/* 5 Levels Grid */
.vir-levels-grid {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 20px !important;
}

.vir-level-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 18px !important;
}

.vir-level-badge {
  display: inline-block !important;
  background: #12161A !important;
  color: #FFFFFF !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  margin-bottom: 12px !important;
}

.vir-level-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-level-desc {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* FAQs */
.vir-faq-container {
  max-width: 860px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.vir-faq-item {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 28px !important;
}

.vir-faq-question {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-faq-answer {
  font-size: 14.5px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* Teachers Cards (Enhanced Editorial Layout) */
.vir-teachers-grid {
  display: block !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}

.vir-teacher-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 44px 48px !important;
  display: grid !important;
  grid-template-columns: 340px 1fr !important;
  gap: 48px !important;
  align-items: start !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
}

.vir-teacher-media {
  position: relative !important;
  width: 100% !important;
}

.vir-teacher-photo {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: top center !important;
  border-radius: 6px !important;
  display: block !important;
  background: #F1F5F9 !important;
}

.vir-teacher-badge {
  display: inline-block !important;
  background: #0E1217 !important;
  color: #E6A303 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  margin-top: 12px !important;
}

.vir-teacher-info {
  display: flex !important;
  flex-direction: column !important;
}

.vir-teacher-meta-top {
  margin-bottom: 6px !important;
}

.vir-teacher-exp {
  font-size: 12px !important;
  font-weight: 800 !important;
  color: #0284C7 !important;
  letter-spacing: 0.06em !important;
}

.vir-teacher-name {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #0E1217 !important;
  margin: 0 0 6px !important;
  line-height: 1.25 !important;
}

.vir-teacher-roles {
  font-size: 15px !important;
  color: #64748B !important;
  margin-bottom: 18px !important;
  font-weight: 500 !important;
}

.vir-teacher-bio {
  font-size: 15px !important;
  line-height: 1.72 !important;
  color: #334155 !important;
  margin-bottom: 22px !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-teacher-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 28px !important;
}

.vir-tag {
  background: #F1F5F9 !important;
  color: #475569 !important;
  font-size: 12px !important;
  padding: 5px 12px !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  border: 1px solid #E2E8F0 !important;
}

.vir-teacher-action {
  margin-top: auto !important;
}

/* 4-Col Contact Channels */
.vir-contact-channels-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
}

.vir-contact-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 28px 20px !important;
  text-align: center !important;
  box-shadow: 0 2px 10px rgba(18, 22, 26, 0.03) !important;
}

.vir-contact-card-icon {
  font-size: 24px !important;
  color: #E6A303 !important;
  margin-bottom: 12px !important;
}

.vir-contact-card-label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}

.vir-contact-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
}

.vir-contact-card-title a {
  color: #12161A !important;
  text-decoration: none !important;
}

.vir-contact-card-title a:hover {
  color: #E6A303 !important;
}

.vir-contact-card-desc {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* Forms */
.vir-form-styled {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.vir-form-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.vir-form-label {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #334155 !important;
}

.vir-form-input,
.vir-form-select,
.vir-form-textarea {
  width: 100% !important;
  padding: 11px 14px !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: #1E293B !important;
  background: #FFFFFF !important;
  font-family: inherit !important;
}

.vir-form-input:focus,
.vir-form-select:focus,
.vir-form-textarea:focus {
  outline: none !important;
  border-color: #E6A303 !important;
  box-shadow: 0 0 0 3px rgba(230, 163, 3, 0.15) !important;
}

/* Video Lessons Cinema Grid */
.vir-news-videos-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
}

.vir-video-cinema-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 16px rgba(18, 22, 26, 0.04) !important;
}

.vir-video-cinema-thumb-wrap {
  position: relative !important;
  height: 200px !important;
  overflow: hidden !important;
}

.vir-video-cinema-thumb-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.vir-video-cinema-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(18, 22, 26, 0.35) !important;
}

.vir-video-cinema-play {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 52px !important;
  height: 52px !important;
  background: #E6A303 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

.vir-video-cinema-duration {
  position: absolute !important;
  bottom: 10px !important;
  left: 10px !important;
  background: rgba(18, 22, 26, 0.85) !important;
  color: #FFFFFF !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
}

.vir-video-cinema-body {
  padding: 20px !important;
}

.vir-video-cinema-cat {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #0284C7 !important;
  display: block !important;
  margin-bottom: 6px !important;
}

.vir-video-cinema-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  line-height: 1.35 !important;
  margin: 0 0 8px !important;
}

.vir-video-cinema-desc {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* Guides List */
.vir-guides-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.vir-guide-row {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 28px !important;
  display: grid !important;
  grid-template-columns: 48px 1fr auto !important;
  gap: 24px !important;
  align-items: center !important;
}

.vir-guide-index {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
}

.vir-guide-cat {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  display: inline-block !important;
  margin-right: 12px !important;
}

.vir-guide-date {
  font-size: 12px !important;
  color: #94A3B8 !important;
}

.vir-guide-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 4px 0 !important;
}

.vir-guide-desc {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* Feature News Card */
.vir-news-feature-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  box-shadow: 0 4px 16px rgba(18, 22, 26, 0.04) !important;
}

.vir-news-feature-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.vir-news-feature-content {
  padding: 36px 32px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.vir-news-cat-tag {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
  display: inline-block !important;
  margin-right: 10px !important;
}

.vir-news-date {
  font-size: 12px !important;
  color: #94A3B8 !important;
}

.vir-news-feature-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  line-height: 1.3 !important;
  margin: 10px 0 12px !important;
}

.vir-news-feature-excerpt {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin-bottom: 16px !important;
}

.vir-news-author {
  font-size: 12.5px !important;
  color: #64748B !important;
  margin-bottom: 20px !important;
}

.vir-news-grid-2col {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
}

.vir-news-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px !important;
}

.vir-news-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 8px 0 !important;
}

.vir-news-card-desc {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #64748B !important;
  margin-bottom: 12px !important;
}

.vir-news-card-author {
  font-size: 12.5px !important;
  color: #64748B !important;
}

.vir-news-card-author a {
  color: #E6A303 !important;
  font-weight: 600 !important;
}

.vir-news-filters-bar {
  background: #FFFFFF !important;
  border-bottom: 1px solid #E2E8F0 !important;
  padding: 14px 0 !important;
  overflow: hidden !important;
}

.vir-news-filters-bar .vir-container {
  max-width: 1280px !important;
  padding: 0 16px !important;
}

.vir-news-categories-nav {
  display: flex !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}

.vir-news-categories-nav::-webkit-scrollbar {
  display: none !important;
}

.vir-news-filter-pill {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  color: #475569 !important;
  background: #F1F5F9 !important;
  padding: 6px 10px !important;
  border-radius: 20px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.vir-news-filter-pill:hover,
.vir-news-filter-pill.active {
  background: #E6A303 !important;
  color: #12161A !important;
}

@media (max-width: 1024px) {
  .vir-news-categories-nav {
    justify-content: flex-start !important;
    padding-inline: 12px !important;
  }
}

/* Responsiveness */
@media (max-width: 1024px) {
  .vir-footer-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .vir-hub-courses-grid,
  .vir-hub-pricing-grid-3col,
  .vir-commercial-features-grid,
  .vir-skills-grid-4,
  .vir-skills-grid-3,
  .vir-levels-grid,
  .vir-contact-channels-grid,
  .vir-news-videos-grid,
  .vir-editorial-split-grid,
  .vir-news-feature-card,
  .vir-news-grid-2col,
  .vir-steps-3col-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-teacher-card {
    grid-template-columns: 1fr !important;
  }
  .vir-guide-row {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .vir-footer-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-footer-bottom {
    flex-direction: column !important;
    gap: 12px !important;
    text-align: center !important;
  }
}

/* Contrast & Button Secondary Fixes */
section.vir-bg-dark .vir-section-title,
.vir-bg-dark h2,
.vir-bg-dark h3 {
  color: #FFFFFF !important;
}

.vir-bg-white .vir-btn-secondary,
.vir-bg-light .vir-btn-secondary,
.vir-section .vir-btn-secondary {
  color: #12161A !important;
  border: 1px solid #CBD5E1 !important;
  background: transparent !important;
}

.vir-bg-white .vir-btn-secondary:hover,
.vir-bg-light .vir-btn-secondary:hover,
.vir-section .vir-btn-secondary:hover {
  border-color: #E6A303 !important;
  color: #E6A303 !important;
}

.vir-hub-hero-section .vir-btn-secondary,
.vir-bg-dark .vir-btn-secondary {
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

/* ==========================================================================
   V.I.R. Scuola — /corsi/ (Page ID 29888) Controlled Refinement Styles
   ========================================================================== */
.vir-corsi-hub-page .vir-section-header {
  text-align: center !important;
  margin-bottom: 44px !important;
}

.vir-corsi-hub-page .vir-section-header .vir-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
}

.vir-corsi-hub-page .vir-section-header .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(22px, 2.2vw, 30px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  line-height: 1.25 !important;
  max-width: 960px !important;
}

.vir-corsi-hub-page .vir-section-header .vir-section-subtitle {
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  text-align: center !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

/* Courses Grid */
.vir-corsi-hub-page .vir-hub-courses-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
  align-items: stretch !important;
}

.vir-corsi-hub-page .vir-hub-course-card {
  display: flex !important;
  flex-direction: column !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 32px 28px !important;
  box-shadow: 0 4px 16px rgba(18, 22, 26, 0.04) !important;
  box-sizing: border-box !important;
}

.vir-corsi-hub-page .vir-hub-card-desc,
.vir-corsi-hub-page .vir-corsi-editorial-prose p,
.vir-corsi-hub-page .vir-assessment-clarification,
.vir-corsi-hub-page .vir-feature-text,
.vir-corsi-hub-page .vir-step-text {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
}

.vir-corsi-hub-page .vir-hub-card-desc {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  margin-bottom: 24px !important;
  flex-grow: 1 !important;
}

.vir-corsi-hub-page .vir-hub-card-action {
  display: flex !important;
  justify-content: center !important;
  margin-top: auto !important;
}

.vir-corsi-hub-page .vir-hub-card-action .vir-btn-primary {
  width: 100% !important;
  text-align: center !important;
  justify-content: center !important;
}

/* New Section 3: Cosa Comprende un Percorso */
.vir-corsi-hub-page .vir-bg-warm {
  background-color: #F8F8F5 !important;
}

.vir-corsi-hub-page .vir-editorial-container {
  max-width: 880px !important;
  margin-inline: auto !important;
}

.vir-corsi-editorial-prose {
  background: #FFFFFF !important;
  padding: 40px 38px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

.vir-corsi-editorial-prose p {
  font-size: 15.5px !important;
  line-height: 1.7 !important;
  color: #334155 !important;
  margin-bottom: 18px !important;
}

.vir-corsi-editorial-prose p:last-child {
  margin-bottom: 0 !important;
}

/* Assessment Section Clarification */
.vir-assessment-clarification-wrap {
  max-width: 860px !important;
  margin: 0 auto 36px !important;
}

.vir-assessment-clarification {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: #1E293B !important;
  background: #FFFFFF !important;
  border-left: 4px solid #E6A303 !important;
  padding: 18px 24px !important;
  border-radius: 0 6px 6px 0 !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02) !important;
  margin: 0 !important;
}

/* Pricing Table */
.vir-pricing-table-wrapper {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  margin-bottom: 48px !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  background: #FFFFFF !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
}

.vir-pricing-matrix-table {
  width: 100% !important;
  min-width: 720px !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  text-align: left !important;
}

.vir-pricing-matrix-table th {
  background: #12161A !important;
  color: #FFFFFF !important;
  padding: 16px 20px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}

.vir-pricing-matrix-table td {
  padding: 18px 20px !important;
  border-bottom: 1px solid #E2E8F0 !important;
  color: #334155 !important;
  vertical-align: top !important;
}

.vir-pricing-matrix-table tbody tr:nth-child(even) {
  background-color: #FAFAFA !important;
}

/* Commercial Features 4-Col Grid */
.vir-commercial-features-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}

.vir-commercial-features-grid .vir-feature-box {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
}

/* Steps 3-Col Grid */
.vir-steps-3col-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  align-items: stretch !important;
}

.vir-steps-3col-grid .vir-step-item {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  box-sizing: border-box !important;
}

.vir-steps-3col-grid .vir-step-text {
  width: 100% !important;
}

/* CTAs Centered */
.vir-corsi-hub-page .vir-cta-center {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.vir-corsi-hub-page .vir-cta-buttons-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  margin-top: 24px !important;
}

@media (max-width: 1024px) {
  .vir-corsi-hub-page .vir-hub-courses-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .vir-commercial-features-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-corsi-hub-page .vir-hub-courses-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-commercial-features-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-steps-3col-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — Global Header & Navigation Readability
   ========================================================================== */
.site-header .navbar-nav > li > a,
#masthead .navbar-nav > li > a {
  font-family: "Roboto", sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  color: #FFFFFF !important;
  transition: color 0.15s ease !important;
}

.site-header .navbar-nav > li > a:hover,
#masthead .navbar-nav > li > a:hover,
.site-header .navbar-nav > li.current-menu-item > a,
#masthead .navbar-nav > li.current-menu-item > a {
  color: #E6A303 !important;
}

@media (min-width: 1360px) {
  .site-header .navbar-nav > li,
  #masthead .navbar-nav > li {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .site-header .navbar-nav > li > a,
  #masthead .navbar-nav > li > a {
    padding-left: 11px !important;
    padding-right: 11px !important;
  }
}

@media (min-width: 1200px) and (max-width: 1359px) {
  .site-header .navbar-nav > li > a,
  #masthead .navbar-nav > li > a {
    font-size: 14px !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }
}

/* Header Final CTA Balance & Language Switcher */
.site-header .navigation ul.nav.navbar-nav > li.thim-nav-final-cta-wrap,
.thim-nav-final-cta-wrap {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  gap: 10px !important;
  margin-left: 10px !important;
}

.thim-nav-final-cta-wrap .thim-nav-final-cta,
.btn-test-livello {
  font-family: "Roboto", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  padding: 8px 16px !important;
  background-color: #BA1A1A !important;
  color: #FFFFFF !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
  box-shadow: 0 2px 8px rgba(186, 26, 26, 0.3) !important;
  transition: background-color 0.2s ease, transform 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
}

.thim-nav-final-cta-wrap .thim-nav-final-cta:hover,
.btn-test-livello:hover {
  background-color: #D32F2F !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
  opacity: 1 !important;
}

/* Header Language Switcher Component */
.vir-header-lang-switcher {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  padding-left: 2px !important;
}

.vir-lang-flag-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 4px !important;
  padding: 2px !important;
  opacity: 0.55 !important;
  transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease !important;
  text-decoration: none !important;
  cursor: pointer !important;
  border: 1px solid transparent !important;
}

.vir-lang-flag-link:hover {
  opacity: 1 !important;
  transform: translateY(-1px) !important;
  background-color: rgba(255, 255, 255, 0.08) !important;
}

.vir-lang-flag-link.is-active {
  opacity: 1 !important;
  background-color: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(230, 163, 3, 0.7) !important;
  box-shadow: 0 0 0 1px #E6A303 !important;
}

.vir-lang-flag-link img {
  width: 20px !important;
  height: 14px !important;
  max-width: 20px !important;
  object-fit: cover !important;
  border-radius: 2px !important;
  display: block !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35) !important;
  pointer-events: none !important;
}

.vir-lang-flag-link:focus-visible {
  outline: 2px solid #E6A303 !important;
  outline-offset: 2px !important;
  opacity: 1 !important;
}

/* Mobile Drawer Language Switcher & CTA Integration */
.mobile-menu-container .thim-nav-final-cta-wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 14px !important;
  padding: 16px 20px !important;
  margin: 12px 0 0 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.mobile-menu-container .thim-nav-final-cta-wrap .btn-test-livello {
  width: 100% !important;
  text-align: center !important;
  justify-content: center !important;
  padding: 12px 18px !important;
  font-size: 14px !important;
}

.mobile-menu-container .vir-header-lang-switcher {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 4px 0 !important;
}

.mobile-menu-container .vir-lang-flag-link {
  width: 44px !important;
  height: 44px !important;
  border-radius: 6px !important;
  background-color: rgba(255, 255, 255, 0.04) !important;
}

.mobile-menu-container .vir-lang-flag-link img {
  width: 26px !important;
  height: 18px !important;
  max-width: 26px !important;
}

.mobile-menu-container .vir-lang-flag-link.is-active {
  background-color: rgba(255, 255, 255, 0.14) !important;
}

/* Submenu Dropdown Styling */
.site-header .navbar-nav li .sub-menu,
#masthead .navbar-nav li .sub-menu,
.site-header .navbar-nav li ul.dropdown-menu {
  background-color: #0E1217 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 6px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45) !important;
  padding: 8px 0 !important;
}

.site-header .navbar-nav li .sub-menu li a,
#masthead .navbar-nav li .sub-menu li a {
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #E2E8F0 !important;
  padding: 10px 20px !important;
  transition: background-color 0.15s ease, color 0.15s ease !important;
}

.site-header .navbar-nav li .sub-menu li a:hover,
#masthead .navbar-nav li .sub-menu li a:hover {
  background-color: rgba(230, 163, 3, 0.12) !important;
  color: #E6A303 !important;
}

/* ==========================================================================
   V.I.R. Scuola — /lp-profile/ Area Personale Visual Redesign & Hero Compaction
   ========================================================================== */
body.learnpress-profile .top_heading_out,
body.page-id-7 .top_heading_out {
  margin-bottom: 0 !important;
}

html body.learnpress-profile .top_site_main,
html body.page-id-7 .top_site_main,
html body.learnpress-profile .top_site_main .page-title-wrapper,
html body.page-id-7 .top_site_main .page-title-wrapper {
  min-height: 0 !important;
  height: auto !important;
  max-height: 220px !important;
  padding-top: 90px !important;
  padding-bottom: 24px !important;
  background: #0E1217 !important;
  background-color: #0E1217 !important;
  background-image: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
}

/* Mandatory: Remove grey veil overlay completely on /lp-profile/ */
html body.learnpress-profile .top_site_main .overlay-top-header,
html body.page-id-7 .top_site_main .overlay-top-header,
html body.learnpress-profile .overlay-top-header,
html body.page-id-7 .overlay-top-header,
html body.learnpress-profile .top_site_main::before,
html body.page-id-7 .top_site_main::before,
html body.learnpress-profile .top_site_main::after,
html body.page-id-7 .top_site_main::after {
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

body.learnpress-profile .top_site_main .page-title-wrapper,
body.page-id-7 .top_site_main .page-title-wrapper {
  position: relative !important;
  z-index: 2 !important;
  text-align: center !important;
  width: 100% !important;
}

body.learnpress-profile .top_site_main .banner-wrapper::before,
body.page-id-7 .top_site_main .banner-wrapper::before {
  content: "AREA RISERVATA" !important;
  display: block !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  margin-bottom: 6px !important;
}

body.learnpress-profile .top_site_main .page-title,
body.page-id-7 .top_site_main .page-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(24px, 2.5vw, 32px) !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  margin: 0 !important;
}

body.learnpress-profile .breadcrumbs-wrapper,
body.page-id-7 .breadcrumbs-wrapper {
  background: #141A21 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 8px 0 !important;
}

body.learnpress-profile .breadcrumbs,
body.page-id-7 .breadcrumbs {
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.learnpress-profile .breadcrumbs li,
body.page-id-7 .breadcrumbs li,
body.learnpress-profile .breadcrumbs a,
body.page-id-7 .breadcrumbs a {
  font-size: 13px !important;
  color: #94A3B8 !important;
}

body.learnpress-profile .breadcrumbs a:hover,
body.page-id-7 .breadcrumbs a:hover {
  color: #E6A303 !important;
}

/* Profile Content Container — Generous vertical breathing room & clear avatar display */
body.learnpress-profile #main-content,
body.page-id-7 #main-content {
  background: #F8F8F5 !important;
  padding: 104px 0 80px !important;
}

@media (max-width: 1024px) {
  body.learnpress-profile #main-content,
  body.page-id-7 #main-content {
    padding: 90px 0 60px !important;
  }
}

@media (max-width: 768px) {
  body.learnpress-profile #main-content,
  body.page-id-7 #main-content {
    padding: 72px 16px 50px !important;
  }
}

body.learnpress-profile .container,
body.page-id-7 .container {
  max-width: var(--vir-section-max-width, 1200px) !important;
}

body.learnpress-profile #learn-press-user-profile,
body.page-id-7 #learn-press-user-profile {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 12px !important;
  padding: 36px 32px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
}

/* Avatar & Profile Header Polish */
body.learnpress-profile .lp-profile-header,
body.page-id-7 .lp-profile-header,
body.learnpress-profile .lp-user-profile-header {
  margin-bottom: 28px !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
}

/* LearnPress Popup Course & Single Quiz / Lesson View — Header Clearance & Spacing */
body.course-item-popup #popup-course,
body.viewing-course-item #popup-course {
  top: 86px !important;
  height: calc(100vh - 86px) !important;
}

@media (max-width: 1024px) {
  body.course-item-popup #popup-course,
  body.viewing-course-item #popup-course {
    top: 76px !important;
    height: calc(100vh - 76px) !important;
  }
}

@media (max-width: 768px) {
  body.course-item-popup #popup-course,
  body.viewing-course-item #popup-course {
    top: 68px !important;
    height: calc(100vh - 68px) !important;
  }
}

body.course-item-popup #popup-content,
body.viewing-course-item #popup-content {
  margin-top: 0 !important;
  padding-top: 36px !important;
}

body.course-item-popup #popup-sidebar,
body.viewing-course-item #popup-sidebar {
  padding-top: 16px !important;
}

body.course-item-popup .content-item-summary,
body.viewing-course-item .content-item-summary {
  padding-top: 24px !important;
}


body.learnpress-profile .lp-profile-avatar img,
body.page-id-7 .lp-profile-avatar img,
body.learnpress-profile img.avatar,
body.page-id-7 img.avatar {
  border-radius: 50% !important;
  border: 2px solid #E6A303 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  transition: transform 0.2s ease !important;
}

body.learnpress-profile .lp-profile-username,
body.page-id-7 .lp-profile-username {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
}

body.learnpress-profile .lp-profile-nav-tabs,
body.page-id-7 .lp-profile-nav-tabs {
  border-bottom: 2px solid #EEF2F6 !important;
  margin-bottom: 24px !important;
}

body.learnpress-profile .lp-profile-nav-tabs li.active a,
body.page-id-7 .lp-profile-nav-tabs li.active a {
  color: #E6A303 !important;
  border-bottom: 2px solid #E6A303 !important;
  font-weight: 700 !important;
}

/* ==========================================================================
   V.I.R. Scuola — Famiglia Corsi Italiano per Russofoni (A1/A2 & Hub) Styles
   ========================================================================== */
:root {
  --vir-section-max-width: 1200px;
  --vir-split-gap: 40px;
}

/* 1. Unified Family Hero */
.vir-hero-italiano-family,
.vir-hero-italiano {
  background-image: url("../images/hero-italiano-russofoni-family.webp") !important;
  background-position: center center !important;
  background-size: cover !important;
  min-height: 380px !important;
}

/* 2. Hub Commerciale (50/50 Balanced Panels) */
.vir-corso-italiano-hub-page .vir-container,
.vir-corso-italiano-livello-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

.vir-level-panels-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 32px !important;
  align-items: stretch !important;
  margin-top: 24px !important;
}

.vir-level-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 36px 32px !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.vir-level-panel:hover {
  transform: translateY(-2px) !important;
  border-color: #CBD5E1 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important;
}

.vir-level-badge {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: #FFF9ED !important;
  border: 1px solid rgba(230, 163, 3, 0.3) !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  margin-bottom: 12px !important;
}

.vir-level-panel-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 14px 0 !important;
  line-height: 1.3 !important;
}

.vir-level-panel-desc {
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin-bottom: 24px !important;
  flex-grow: 1 !important;
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
}

.vir-level-panel-specs {
  background: #F8FAFC !important;
  border: 1px solid #EEF2F6 !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  margin-bottom: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.vir-level-spec-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
}

.vir-level-spec-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

.vir-level-spec-val {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  color: #1E293B !important;
  text-align: right !important;
}

.vir-level-panel-action .vir-btn-primary {
  width: 100% !important;
  text-align: center !important;
  justify-content: center !important;
}

/* 3. Commercial A1 / A2 Pages (Summary Strip, Structured Module Rows) */
.vir-course-summary-strip {
  background: #0E1217 !important;
  color: #FFFFFF !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 22px 0 !important;
}

.vir-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  text-align: center !important;
}

.vir-summary-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

.vir-summary-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

.vir-summary-val {
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: #F1F5F9 !important;
  line-height: 1.4 !important;
}

.vir-editorial-split-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 36px !important;
}

.vir-editorial-col {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 32px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02) !important;
}

.vir-editorial-col-header {
  margin-bottom: 20px !important;
}

.vir-col-badge {
  display: inline-block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}

.vir-col-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
}

.vir-feature-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

.vir-feature-list-item {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #334155 !important;
}

.vir-check-bullet {
  color: #E6A303 !important;
  font-weight: bold !important;
  font-size: 18px !important;
  line-height: 1 !important;
  margin-top: 2px !important;
}

/* 5 Structured Module Rows (Visual Core) */
.vir-modules-structured-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin-top: 28px !important;
}

.vir-module-row {
  display: grid !important;
  grid-template-columns: 140px 1fr !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.vir-module-row:hover {
  border-color: #CBD5E1 !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05) !important;
}

.vir-module-row-sidebar {
  background: #0E1217 !important;
  color: #FFFFFF !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px 16px !important;
  text-align: center !important;
}

.vir-module-num {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}

.vir-module-row-main {
  padding: 22px 26px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 12px !important;
}

.vir-module-titles {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.vir-module-ru-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0F172A !important;
  margin: 0 !important;
}

.vir-module-it-sub {
  font-size: 13.5px !important;
  color: #64748B !important;
  font-style: italic !important;
}

.vir-module-details-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  background: #F8FAFC !important;
  border-radius: 6px !important;
  padding: 10px 14px !important;
}

.vir-module-detail-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.vir-detail-tag {
  font-size: 10px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.vir-detail-p {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #1E293B !important;
  margin: 0 !important;
}

/* 4. LearnPress Single Course Pages Visual Integration (IDs 30362 & 30379) */
body.postid-30362 .top_site_main,
body.postid-30379 .top_site_main,
body.postid-30362 .top_heading_out,
body.postid-30379 .top_heading_out,
body.postid-30362 .breadcrumbs-wrapper,
body.postid-30379 .breadcrumbs-wrapper,
body.postid-30362 #sidebar-content,
body.postid-30379 #sidebar-content,
body.postid-30362 #secondary,
body.postid-30379 #secondary {
  display: none !important;
}

.vir-lp-single-course-page {
  width: 100% !important;
  background-color: #F8F8F5 !important;
}

.vir-hero-course-compact {
  min-height: 340px !important;
  max-height: 380px !important;
}

.vir-course-main-content {
  padding: 48px 0 80px !important;
  background-color: #F8F8F5 !important;
}

.vir-course-main-content .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

/* Top Course Grid (60/40 Split) */
.vir-course-top-grid {
  display: grid !important;
  grid-template-columns: 1.15fr 1fr !important;
  gap: 32px !important;
  align-items: stretch !important;
  margin-bottom: 36px !important;
}

.vir-course-media-box {
  border-radius: 10px !important;
  overflow: hidden !important;
  border: 1px solid #E2E8F0 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
  background: #FFFFFF !important;
  display: flex !important;
}

.vir-course-featured-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.vir-course-info-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 32px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.vir-course-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 10px 0 16px 0 !important;
  line-height: 1.3 !important;
}

.vir-course-specs-list {
  background: #F8FAFC !important;
  border: 1px solid #EEF2F6 !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  margin-bottom: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.vir-course-spec-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
}

.vir-course-card-actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.vir-course-card-actions .vir-btn-secondary {
  text-align: center !important;
  justify-content: center !important;
}

.vir-lp-button-wrap form.form-purchase-course,
.vir-lp-button-wrap form.lp-form-enroll-course {
  margin: 0 !important;
}

.vir-lp-button-wrap button.lp-button,
.vir-lp-button-wrap .lp-button {
  width: 100% !important;
  padding: 12px 20px !important;
  background-color: #BA1A1A !important;
  color: #FFFFFF !important;
  font-family: "Roboto", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 4px !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease !important;
}

.vir-lp-button-wrap button.lp-button:hover {
  background-color: #D32F2F !important;
}

/* Course Tabs & Summary Container */
.vir-course-body-wrapper {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 36px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
}

.vir-course-body-wrapper .course-nav-tabs,
body.single-lp_course .course-nav-tabs {
  display: flex !important;
  gap: 28px !important;
  border-bottom: 2px solid #EEF2F6 !important;
  margin-bottom: 28px !important;
  list-style: none !important;
  padding: 0 !important;
}

.vir-course-body-wrapper .course-nav-tabs li a,
body.single-lp_course .course-nav-tabs li a {
  font-family: "Roboto", sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid transparent !important;
  margin-bottom: -2px !important;
  display: inline-block !important;
  transition: color 0.15s ease, border-color 0.15s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.vir-course-body-wrapper .course-nav-tabs li.active a,
.vir-course-body-wrapper .course-nav-tabs li a:hover,
body.single-lp_course .course-nav-tabs li.active a,
body.single-lp_course .course-nav-tabs li a:hover {
  color: #E6A303 !important;
  border-bottom-color: #E6A303 !important;
}

/* Curriculum Sections & Items */
.vir-course-body-wrapper .curriculum-sections .section,
body.single-lp_course .curriculum-sections .section {
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  margin-bottom: 14px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
}

.vir-course-body-wrapper .curriculum-sections .section-header,
body.single-lp_course .curriculum-sections .section-header {
  background: #F8FAFC !important;
  padding: 14px 20px !important;
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #0F172A !important;
  border-bottom: 1px solid #EEF2F6 !important;
}

.vir-course-body-wrapper .curriculum-sections .section-item,
body.single-lp_course .curriculum-sections .section-item {
  padding: 12px 20px !important;
  border-bottom: 1px solid #F1F5F9 !important;
  transition: background-color 0.15s ease !important;
}

.vir-course-body-wrapper .curriculum-sections .section-item:hover,
body.single-lp_course .curriculum-sections .section-item:hover {
  background-color: #F8FAFC !important;
}

/* Hide unneeded default elements on A1/A2 */
body.postid-30362 .thim-related-courses,
body.postid-30379 .thim-related-courses,
body.postid-30362 #comments,
body.postid-30379 #comments,
body.postid-30362 .comment-respond,
body.postid-30379 .comment-respond {
  display: none !important;
}

/* Responsive Overrides */
@media (max-width: 1024px) {
  .vir-course-top-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .vir-course-media-box {
    max-height: 420px !important;
  }
  .vir-level-panels-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-summary-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
  .vir-editorial-split-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .vir-module-row {
    grid-template-columns: 1fr !important;
  }
  .vir-module-row-sidebar {
    padding: 12px 20px !important;
    justify-content: flex-start !important;
  }
  .vir-module-details-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 768px) {
  .vir-course-main-content {
    padding: 28px 0 60px !important;
  }
  .vir-course-body-wrapper {
    padding: 20px 16px !important;
  }
  .vir-course-info-card {
    padding: 20px 16px !important;
  }
  .vir-summary-grid {
    grid-template-columns: 1fr !important;
    text-align: left !important;
  }
  .vir-summary-item {
    padding: 6px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — /corsi/russo-per-italiani/ (Page ID 30296) Styles
   ========================================================================== */
.vir-corso-russo-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

.vir-corso-russo-page .vir-section-header {
  text-align: center !important;
  margin-bottom: 44px !important;
}

.vir-corso-russo-page .vir-section-header .vir-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
}

.vir-corso-russo-page .vir-section-header .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(20px, 1.9vw, 26px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
}

.vir-corso-russo-page .vir-bg-dark .vir-section-header .vir-section-title {
  color: #FFFFFF !important;
}

.vir-corso-russo-page .vir-section-header .vir-section-subtitle {
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  text-align: center !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

/* Editorial Prose — Russian Course */
.vir-corso-russo-page .vir-editorial-prose {
  width: 100% !important;
}

.vir-corso-russo-page .vir-editorial-prose p {
  width: 100% !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
  margin-bottom: 18px !important;
}

.vir-corso-russo-page .vir-editorial-prose p:last-child {
  margin-bottom: 0 !important;
}

.vir-corso-russo-page .vir-editorial-prose-dark p {
  color: #E2E8F0 !important;
}

/* 50/50 Split Architecture — Russian Course */
.vir-corso-russo-page .vir-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: var(--vir-split-gap, 40px) !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-corso-russo-page .vir-split__text {
  box-sizing: border-box !important;
  width: 100% !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.vir-corso-russo-page .vir-split__text p {
  width: 100% !important;
  font-size: 15px !important;
  line-height: 1.68 !important;
  color: #334155 !important;
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
  margin-bottom: 16px !important;
}

.vir-corso-russo-page .vir-split__text p:last-child {
  margin-bottom: 0 !important;
}

.vir-corso-russo-page .vir-split__media {
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  width: 100% !important;
}

.vir-corso-russo-page .vir-split__media img,
.vir-corso-russo-page .vir-split-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.vir-corso-russo-page .vir-split-specs-box {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 16px 20px !important;
  margin-top: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* 4 Structured Focuses (2x2 Grid) */
.vir-focus-grid-2x2 {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
  margin-top: 28px !important;
}

.vir-focus-card {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.vir-focus-num {
  color: #E6A303 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

.vir-focus-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
}

.vir-focus-desc {
  font-size: 14.5px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* 4 Learning Stages Grid */
.vir-stages-grid-4 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
  margin-top: 28px !important;
}

.vir-stage-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.vir-stage-num {
  color: #E6A303 !important;
  font-size: 20px !important;
  font-weight: 800 !important;
}

.vir-stage-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
}

.vir-stage-desc {
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* 6 CEFR Levels Grid (3x2) */
.vir-cefr-grid-6 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  margin-top: 32px !important;
}

.vir-cefr-card {
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.vir-cefr-badge {
  display: inline-block !important;
  background: #12161A !important;
  color: #E6A303 !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  padding: 4px 12px !important;
  border-radius: 4px !important;
  width: fit-content !important;
}

.vir-cefr-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
}

.vir-cefr-desc {
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* ==========================================================================
   V.I.R. Central FAQ Accordion Component (/corsi/)
   ========================================================================== */
.vir-faq-accordion-wrap {
  max-width: 920px !important;
  margin: 32px auto 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.vir-faq-accordion-item {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.vir-faq-accordion-item[open] {
  border-color: #CBD5E1 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
}

.vir-faq-summary {
  padding: 18px 24px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  cursor: pointer !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  list-style: none !important;
  min-height: 48px !important;
}

.vir-faq-summary::-webkit-details-marker {
  display: none !important;
}

.vir-faq-summary:focus-visible {
  outline: 2px solid #E6A303 !important;
  outline-offset: -2px !important;
}

.vir-faq-icon {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  position: relative !important;
  flex-shrink: 0 !important;
  margin-left: 16px !important;
}

.vir-faq-icon::before,
.vir-faq-icon::after {
  content: "" !important;
  position: absolute !important;
  background-color: #64748B !important;
  transition: transform 0.2s ease, opacity 0.2s ease !important;
}

.vir-faq-icon::before {
  top: 8px !important;
  left: 2px !important;
  width: 14px !important;
  height: 2px !important;
}

.vir-faq-icon::after {
  top: 2px !important;
  left: 8px !important;
  width: 2px !important;
  height: 14px !important;
}

.vir-faq-accordion-item[open] .vir-faq-icon::after {
  transform: rotate(90deg) !important;
  opacity: 0 !important;
}

.vir-faq-content {
  padding: 0 24px 20px !important;
  font-size: 14.5px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  border-top: 1px solid #F1F5F9 !important;
  margin-top: 4px !important;
  padding-top: 14px !important;
}

.vir-faq-content p {
  margin: 0 !important;
}

/* Responsive Rules for Course Pages */
@media (max-width: 992px) {
  .vir-corso-italiano-page .vir-split,
  .vir-corso-russo-page .vir-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-corso-italiano-page .vir-split__media,
  .vir-corso-russo-page .vir-split__media {
    position: relative !important;
    min-height: 340px !important;
  }
  .vir-corso-italiano-page .vir-split--reversed .vir-split__media,
  .vir-corso-russo-page .vir-split--reversed .vir-split__media {
    order: 0 !important;
  }
  .vir-focus-grid-2x2 {
    grid-template-columns: 1fr !important;
  }
  .vir-stages-grid-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .vir-cefr-grid-6 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 600px) {
  .vir-stages-grid-4 {
    grid-template-columns: 1fr !important;
  }
  .vir-cefr-grid-6 {
    grid-template-columns: 1fr !important;
  }
  .vir-faq-summary {
    padding: 16px 18px !important;
    font-size: 15px !important;
  }
  .vir-faq-content {
    padding: 0 18px 16px !important;
  }
}

.vir-commercial-info-strip {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  margin-top: 36px !important;
  padding: 24px 28px !important;
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.vir-commercial-info-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.vir-commercial-info-num {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.vir-commercial-info-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.vir-commercial-info-text {
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 !important;
}

@media (max-width: 992px) {
  .vir-commercial-info-strip {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 20px !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — /corsi/lingue-per-aziende/ (Page ID 30297) Styles
   ========================================================================== */
.vir-corso-aziende-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

.vir-corso-aziende-page .vir-section-header {
  text-align: center !important;
  margin-bottom: 44px !important;
}

.vir-corso-aziende-page .vir-section-header .vir-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
}

.vir-corso-aziende-page .vir-section-header .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(20px, 1.9vw, 26px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
}

.vir-corso-aziende-page .vir-bg-dark .vir-section-header .vir-section-title {
  color: #FFFFFF !important;
}

.vir-corso-aziende-page .vir-section-header .vir-section-subtitle {
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  text-align: center !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

/* Editorial Prose — Corporate */
.vir-corso-aziende-page .vir-editorial-prose {
  width: 100% !important;
}

.vir-corso-aziende-page .vir-editorial-prose p {
  width: 100% !important;
  font-size: 15.5px !important;
  line-height: 1.75 !important;
  color: #334155 !important;
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
  margin-bottom: 18px !important;
}

.vir-corso-aziende-page .vir-editorial-prose p:last-child {
  margin-bottom: 0 !important;
}

.vir-corso-aziende-page .vir-editorial-prose-dark p {
  color: #E2E8F0 !important;
}

/* 50/50 Split Architecture — Corporate */
.vir-corso-aziende-page .vir-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: var(--vir-split-gap, 40px) !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-corso-aziende-page .vir-split__text {
  box-sizing: border-box !important;
  width: 100% !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.vir-corso-aziende-page .vir-split__text p {
  width: 100% !important;
  font-size: 15px !important;
  line-height: 1.68 !important;
  color: #334155 !important;
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
  margin-bottom: 16px !important;
}

.vir-corso-aziende-page .vir-split__text p:last-child {
  margin-bottom: 0 !important;
}

.vir-corso-aziende-page .vir-split__media {
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  width: 100% !important;
}

.vir-corso-aziende-page .vir-split__media img,
.vir-corso-aziende-page .vir-split-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* 5-Step Corporate Process Grid */
.vir-corporate-process-grid-5 {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 16px !important;
  margin-top: 28px !important;
}

.vir-corp-step-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 24px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.vir-corp-step-num {
  color: #E6A303 !important;
  font-size: 20px !important;
  font-weight: 800 !important;
}

.vir-corp-step-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 !important;
}

.vir-corp-step-desc {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 !important;
}

@media (max-width: 1024px) {
  .vir-corporate-process-grid-5 {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-corporate-process-grid-5 {
    grid-template-columns: 1fr !important;
  }
  .vir-corso-aziende-page .vir-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-corso-aziende-page .vir-split__media {
    position: relative !important;
    min-height: 340px !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — /contatti/ (Page ID 29889) Styles
   ========================================================================== */
.vir-contatti-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

.vir-contatti-page .vir-section-header {
  text-align: center !important;
  margin-bottom: 44px !important;
}

.vir-contatti-page .vir-section-header .vir-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
}

.vir-contatti-page .vir-section-header .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(20px, 1.9vw, 26px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
}

.vir-contatti-page .vir-section-header .vir-section-subtitle {
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  text-align: center !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

/* 4-Col Contact Channels Grid */
.vir-contatti-page .vir-contact-channels-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-contatti-page .vir-contact-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  height: 100% !important;
  padding: 30px 22px !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  background: #FFFFFF !important;
  box-shadow: 0 2px 10px rgba(18, 22, 26, 0.03) !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

.vir-contatti-page .vir-contact-card-icon-wrap {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: #FEF9C3 !important;
  color: #D97706 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto 16px !important;
}

.vir-contatti-page .vir-contact-card-label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}

.vir-contatti-page .vir-contact-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
  line-height: 1.3 !important;
}

.vir-contatti-page .vir-contact-card-title a {
  color: #12161A !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-contatti-page .vir-contact-card-title a:hover {
  color: #E6A303 !important;
}

.vir-contatti-page .vir-contact-card-desc {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* Contact Page Social Channels Bar */
.vir-contatti-page .vir-contact-social-bar {
  margin-top: 28px !important;
  padding: 20px 28px !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 10px rgba(18, 22, 26, 0.03) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  box-sizing: border-box !important;
}

.vir-contatti-page .vir-contact-social-label-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.vir-contatti-page .vir-contact-social-label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #64748B !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.vir-contatti-page .vir-contact-social-desc {
  display: block !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  color: #12161A !important;
  line-height: 1.3 !important;
}

.vir-contatti-page .vir-contact-social-links {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

.vir-contatti-page .vir-contact-social-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 22px !important;
  border-radius: 6px !important;
  background: #F8FAFC !important;
  border: 1px solid #E2E8F0 !important;
  color: #1E293B !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

.vir-contatti-page .vir-contact-social-btn:hover {
  color: #0E1217 !important;
  background: #FFFDF5 !important;
  border-color: #E6A303 !important;
  box-shadow: 0 4px 12px rgba(230, 163, 3, 0.15) !important;
  transform: translateY(-2px) !important;
}

.vir-contatti-page .vir-contact-social-btn:focus-visible {
  color: #0E1217 !important;
  background: #FFFDF5 !important;
  border-color: #E6A303 !important;
  outline: 2px solid #E6A303 !important;
  outline-offset: 2px !important;
}

.vir-contatti-page .vir-contact-social-svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  fill: currentColor !important;
  flex-shrink: 0 !important;
  transition: fill 0.2s ease !important;
}

/* 50/50 Composition: Form + Orientation */
.vir-contatti-page .vir-contact-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 40px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-contatti-page .vir-contact-form-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 36px 32px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.vir-contatti-page .vir-contact-orientation-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  box-sizing: border-box !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03) !important;
}

.vir-contatti-page .vir-contact-orientation-media {
  position: relative !important;
  width: 100% !important;
  flex: 1 1 220px !important;
  min-height: 220px !important;
  overflow: hidden !important;
}

.vir-contatti-page .vir-contact-orientation-media img,
.vir-contatti-page .vir-orientation-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.vir-contatti-page .vir-contact-orientation-content {
  padding: 32px 30px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

.vir-contatti-page .vir-contact-orientation-content .vir-eyebrow {
  text-align: left !important;
  margin: 0 0 8px !important;
}

.vir-contatti-page .vir-orientation-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 12px !important;
  line-height: 1.3 !important;
}

.vir-contatti-page .vir-orientation-desc {
  font-size: 14.5px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 0 20px !important;
}

.vir-contatti-page .vir-orientation-benefits-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.vir-contatti-page .vir-benefit-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1E293B !important;
}

.vir-contatti-page .vir-benefit-bullet {
  color: #E6A303 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

/* Responsive Rules for Contatti */
@media (max-width: 1024px) {
  .vir-contatti-page .vir-contact-channels-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-contatti-page .vir-contact-channels-grid {
    grid-template-columns: 1fr !important;
  }
  .vir-contatti-page .vir-contact-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-contatti-page .vir-contact-orientation-media {
    position: relative !important;
    min-height: 280px !important;
    flex: none !important;
  }
  .vir-contatti-page .vir-contact-social-bar {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
    padding: 18px 20px !important;
  }
  .vir-contatti-page .vir-contact-social-links {
    width: 100% !important;
  }
  .vir-contatti-page .vir-contact-social-btn {
    flex: 1 1 auto !important;
    justify-content: center !important;
  }
}

@media (max-width: 480px) {
  .vir-contatti-page .vir-contact-social-links {
    flex-direction: column !important;
  }
  .vir-contatti-page .vir-contact-social-btn {
    width: 100% !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — /profilo-personale/ (Page ID 29890) Styles
   ========================================================================== */
.vir-profilo-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

.vir-profilo-page .vir-section-header {
  text-align: center !important;
  margin-bottom: 44px !important;
}

.vir-profilo-page .vir-section-header .vir-eyebrow {
  display: block !important;
  color: #E6A303 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
}

.vir-profilo-page .vir-section-header .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(20px, 1.9vw, 26px) !important;
  font-weight: 700 !important;
  color: #12161A !important;
  text-align: center !important;
  margin: 0 auto 12px !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
}

.vir-profilo-page .vir-section-header .vir-section-subtitle {
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  color: #4B5560 !important;
  text-align: center !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

/* 50/50 Split: Login Panel + Info Panel */
.vir-profilo-page .vir-account-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 40px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-profilo-page .vir-account-login-panel,
.vir-profilo-page .vir-account-info-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 36px 32px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.vir-profilo-page .vir-account-services-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  margin-top: 4px !important;
}

.vir-profilo-page .vir-account-service-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
}

.vir-profilo-page .vir-account-service-num {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
  line-height: 1.4 !important;
  flex-shrink: 0 !important;
  min-width: 24px !important;
}

.vir-profilo-page .vir-account-service-text {
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
}

.vir-profilo-page .vir-account-service-text strong {
  color: #12161A !important;
  font-weight: 700 !important;
}

/* 4-Step Activation Cards */
.vir-profilo-page .vir-activation-steps-grid-4 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-profilo-page .vir-activation-step-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 28px 22px !important;
  box-shadow: 0 2px 10px rgba(18, 22, 26, 0.03) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  height: 100% !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.vir-profilo-page .vir-activation-step-num {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
  margin-bottom: 12px !important;
  display: block !important;
}

.vir-profilo-page .vir-activation-step-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
  line-height: 1.3 !important;
}

.vir-profilo-page .vir-activation-step-desc {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* Logged-in State Card */
.vir-profilo-page .vir-account-logged-in-box {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 48px 36px !important;
  text-align: center !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

/* Responsive Rules for Area Personale */
@media (max-width: 1024px) {
  .vir-profilo-page .vir-activation-steps-grid-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-profilo-page .vir-account-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-profilo-page .vir-activation-steps-grid-4 {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — Master Homepage 2026 Styles (Art Direction Final Pass)
   ========================================================================== */
.vir-home-master-page .vir-container {
  width: 100% !important;
  max-width: var(--vir-section-max-width, 1200px) !important;
  margin-inline: auto !important;
}

/* Multi-State Restored Hero (Editorial Scenes — No Numbers / No Carousel UI) */
.vir-home-hero-multi {
  position: relative !important;
  min-height: 850px !important;
  height: 850px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background: #000000 !important;
}

.vir-home-hero-slides-wrapper {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.vir-home-hero-slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.8s ease, visibility 0.8s ease !important;
  pointer-events: none !important;
}

.vir-home-hero-slide.vir-slide-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 2 !important;
}

.vir-home-hero-bg-wrap {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.vir-home-hero-bg-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  transform: scale(1.018);
  transition: transform 6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.vir-slide-active .vir-home-hero-bg-img {
  transform: scale(1) !important;
}

/* Original Subtle Overlay — 40% Black (No Grey/Dark Veil) */
.vir-home-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, 0.40) !important;
}

.vir-home-hero-container {
  position: relative !important;
  z-index: 3 !important;
  max-width: 900px !important;
  text-align: center !important;
  margin: 0 auto !important;
  padding-block: 60px !important;
}

.vir-home-hero-content {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.8s ease 0.15s, transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.15s !important;
}

.vir-slide-active .vir-home-hero-content {
  opacity: 1;
  transform: translateY(0);
}

.vir-home-hero-eyebrow {
  display: block !important;
  color: #FFFFFF !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  margin-bottom: 14px !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6) !important;
}

.vir-home-hero-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(32px, 3.8vw, 54px) !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  line-height: 1.18 !important;
  margin: 0 0 28px !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.6) !important;
}

.vir-home-hero-actions {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}

/* Discreet Edge Navigation (Subtle Lateral Controls — No Floating Central Bar) */
.vir-hero-edge-nav {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 10 !important;
  width: 44px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(18, 22, 26, 0.28) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 50% !important;
  color: rgba(255, 255, 255, 0.75) !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  padding: 0 !important;
}

.vir-hero-edge-prev {
  left: 28px !important;
}

.vir-hero-edge-next {
  right: 28px !important;
}

.vir-hero-edge-nav:hover,
.vir-hero-edge-nav:focus-visible {
  background: rgba(18, 22, 26, 0.65) !important;
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
  outline: none !important;
}

/* Thin Structural Progress Track (1.5px) */
.vir-hero-progress-track {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 2px !important;
  background: rgba(255, 255, 255, 0.12) !important;
  z-index: 10 !important;
  overflow: hidden !important;
}

.vir-hero-progress-bar {
  width: 0%;
  height: 100% !important;
  background: rgba(230, 163, 3, 0.85) !important;
}

/* ==========================================================================
   1. Brand Identity Typographic Signature
   ========================================================================== */
.vir-identity-section {
  position: relative !important;
  overflow: hidden !important;
}

.vir-identity-watermark {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(38px, 6.2vw, 92px) !important;
  font-weight: 900 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(18, 22, 26, 0.035) !important;
  white-space: nowrap !important;
  user-select: none !important;
  pointer-events: none !important;
  z-index: 1 !important;
  line-height: 1 !important;
}

.vir-identity-container {
  position: relative !important;
  z-index: 2 !important;
}

/* ==========================================================================
   2. Three Paths Stack — Controlled Editorial Rhythm (Unboxed)
   ========================================================================== */
.vir-home-master-page #percorsi .vir-section-header,
.vir-home-master-page #come-funziona .vir-section-header {
  max-width: 1150px !important;
  margin-inline: auto !important;
}

.vir-home-master-page #percorsi .vir-section-title,
.vir-home-master-page #come-funziona .vir-section-title {
  font-size: clamp(20px, 2.15vw, 28px) !important;
  letter-spacing: -0.01em !important;
  max-width: 100% !important;
}

.vir-home-paths-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 56px !important;
  width: 100% !important;
}

.vir-home-master-page .vir-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: var(--vir-split-gap, 44px) !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-home-master-page .vir-split__text {
  box-sizing: border-box !important;
  width: 100% !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.vir-home-master-page .vir-split__media {
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  width: 100% !important;
}

.vir-home-master-page .vir-split__media img,
.vir-home-master-page .vir-split-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.vir-path-split {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

.vir-path-split .vir-split__text {
  padding: 8px 0 !important;
}

.vir-path-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 23px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 14px !important;
  line-height: 1.25 !important;
}

/* Path 01: Standard 50/50 */
.vir-path-italiano {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

/* Path 02: Mirrored 50/50 */
.vir-path-russo {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

/* Path 03: Panoramic Corporate Asymmetry */
.vir-path-corporate {
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr) !important;
}

/* ==========================================================================
   3. 5-Step Editorial Progression Timeline (Subtle Alternating Rhythm)
   ========================================================================== */
.vir-home-process-timeline {
  position: relative !important;
  width: 100% !important;
  margin-top: 36px !important;
  padding-block: 16px !important;
}

.vir-home-process-track {
  position: absolute !important;
  top: 38px !important;
  left: 6% !important;
  right: 6% !important;
  height: 1px !important;
  background: #E2E8F0 !important;
  z-index: 1 !important;
}

.vir-home-process-steps-grid {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 20px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-home-process-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  transition: transform 0.3s ease !important;
}

.vir-step-offset-up {
  transform: translateY(-6px) !important;
}

.vir-step-offset-down {
  transform: translateY(8px) !important;
}

.vir-home-process-indicator {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: #FFFFFF !important;
  border: 2px solid #E6A303 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 16px !important;
  box-shadow: 0 2px 8px rgba(230, 163, 3, 0.15) !important;
}

.vir-home-process-num {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
}

.vir-home-process-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 8px !important;
  line-height: 1.3 !important;
}

.vir-home-process-desc {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* ==========================================================================
   4. Scuola Online (Flagship Editorial Moment)
   ========================================================================== */
.vir-online-flagship-split {
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr) !important;
  gap: 48px !important;
  align-items: center !important;
}

.vir-online-flagship-media {
  min-height: 360px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 28px rgba(18, 22, 26, 0.05) !important;
}

.vir-online-parallax-img {
  transition: transform 0.15s ease-out !important;
}

/* ==========================================================================
   5. Dynamic News Grid
   ========================================================================== */
.vir-home-news-grid-3 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 28px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-home-news-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  box-shadow: 0 2px 10px rgba(18, 22, 26, 0.03) !important;
}

.vir-home-news-thumb-wrap {
  position: relative !important;
  width: 100% !important;
  height: 190px !important;
  overflow: hidden !important;
  background: #F1F5F9 !important;
}

.vir-home-news-thumb-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.vir-home-news-thumb-placeholder {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #12161A 0%, #1E293B 100%) !important;
}

.vir-news-placeholder-logo {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  color: #E6A303 !important;
  letter-spacing: 0.1em !important;
}

.vir-home-news-content {
  padding: 22px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.vir-home-news-meta {
  display: flex !important;
  justify-content: space-between !important;
  font-size: 11.5px !important;
  color: #64748B !important;
  margin-bottom: 8px !important;
}

.vir-home-news-cat {
  color: #E6A303 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.vir-home-news-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin: 0 0 10px !important;
  line-height: 1.35 !important;
}

.vir-home-news-title a {
  color: #12161A !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-home-news-title a:hover {
  color: #E6A303 !important;
}

.vir-home-news-excerpt {
  font-size: 13.5px !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 0 14px !important;
  flex: 1 !important;
}

.vir-home-news-link {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  text-decoration: none !important;
  margin-top: auto !important;
}

/* ==========================================================================
   6. Home Contact Form (Compact 2-Col Layout — Clean Unboxed Look)
   ========================================================================== */
.vir-home-master-page .vir-contact-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 40px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.vir-home-master-page .vir-contact-form-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 32px 28px !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.vir-form-row-2col {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
  margin-bottom: 12px !important;
}

.vir-form-compact .vir-form-row {
  margin-bottom: 12px !important;
}

.vir-form-compact .vir-form-input,
.vir-form-compact .vir-form-select,
.vir-form-compact .vir-form-textarea {
  padding: 9px 12px !important;
  font-size: 13.5px !important;
}

.vir-contact-orient-panel {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
}

/* ==========================================================================
   PERMANENT EDITORIAL TYPOGRAPHY GOVERNANCE (V.I.R. Mandatory Justification)
   ========================================================================== */
.vir-home-master-page .vir-editorial-prose-wrap p,
.vir-home-master-page .vir-split__text p,
.vir-home-master-page .vir-home-process-desc,
.vir-home-master-page .vir-orient-p,
.vir-corso-italiano-page .vir-split__text p,
.vir-corso-russo-page .vir-split__text p,
.vir-corso-aziende-page .vir-split__text p,
.vir-contatti-page .vir-orientation-desc,
.vir-contatti-page .vir-editorial-prose-wrap p,
.vir-profilo-page .vir-editorial-prose-wrap p,
.vir-metodo-page .vir-editorial-prose-wrap p {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  hyphens: auto;
}

/* ==========================================================================
   V.I.R. Scuola — Administrative Map on /contatti/ (Auto Lazy Loaded)
   ========================================================================== */
.vir-contact-map-split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 40px !important;
  align-items: stretch !important;
  width: 100% !important;
  min-height: 400px !important;
}

.vir-location-info-panel {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 10px !important;
  padding: 36px 32px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.vir-interactive-map-panel {
  background: #E2E8F0 !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 400px !important;
  position: relative !important;
}

.vir-map-iframe {
  width: 100% !important;
  height: 100% !important;
  min-height: 400px !important;
  border: 0 !important;
  display: block !important;
}

/* ==========================================================================
   Responsive Rules for Home & Map
   ========================================================================== */
@media (max-width: 1024px) {
  .vir-home-hero-multi {
    min-height: 850px !important;
    height: 850px !important;
  }
  .vir-home-process-steps-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .vir-home-process-track {
    display: none !important;
  }
  .vir-step-offset-up,
  .vir-step-offset-down {
    transform: none !important;
  }
  .vir-home-news-grid-3 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .vir-home-hero-multi {
    min-height: 700px !important;
    height: 700px !important;
  }
  .vir-hero-edge-prev {
    left: 12px !important;
  }
  .vir-hero-edge-next {
    right: 12px !important;
  }
  .vir-hero-edge-nav {
    width: 38px !important;
    height: 38px !important;
  }
  .vir-home-master-page .vir-split {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .vir-home-master-page .vir-split__media {
    position: relative !important;
    min-height: 260px !important;
    height: 260px !important;
  }
  .vir-path-split .vir-split__text {
    padding: 0 0 20px !important;
  }
  .vir-home-process-steps-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .vir-home-news-grid-3 {
    grid-template-columns: 1fr !important;
  }
  .vir-home-master-page .vir-contact-split {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .vir-form-row-2col {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .vir-contact-map-split {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    min-height: auto !important;
  }
  .vir-interactive-map-panel {
    min-height: 320px !important;
    height: 320px !important;
  }
}

@media (max-width: 480px) {
  .vir-home-hero-multi {
    min-height: 500px !important;
    height: 500px !important;
  }
  .vir-home-hero-container {
    padding-block: 40px !important;
  }
  .vir-home-hero-title {
    font-size: 26px !important;
    margin-bottom: 20px !important;
  }
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
  .vir-home-hero-bg-img,
  .vir-home-hero-content,
  .vir-online-parallax-img,
  .vir-home-process-item {
    transition: none !important;
    transform: none !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — Permanent Single Article Template Styles
   ========================================================================== */
.vir-single-article-page {
  background: #FFFFFF !important;
  color: #12161A !important;
}

/* 1. Article Header */
.vir-article-header-section {
  padding-top: 130px !important;
  padding-bottom: 32px !important;
  background: #FFFFFF !important;
}

.vir-article-header-container {
  max-width: 1200px !important;
  margin-inline: auto !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.vir-article-categories-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  justify-content: center !important;
  margin-bottom: 18px !important;
}

.vir-article-cat-pill {
  color: #E6A303 !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-article-cat-pill:hover {
  color: #C28500 !important;
}

.vir-article-h1-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(32px, 3.8vw, 54px) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.015em !important;
  color: #12161A !important;
  max-width: 1100px !important;
  margin: 0 auto 24px !important;
  text-wrap: balance !important;
}

.vir-article-deck-lead {
  max-width: 880px !important;
  margin: 0 auto 22px !important;
}

.vir-article-deck-lead p {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: clamp(18px, 1.4vw, 21px) !important;
  line-height: 1.55 !important;
  color: #475569 !important;
  margin: 0 !important;
  text-align: center !important;
}

.vir-article-meta-line {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #64748B !important;
}

/* 2. Featured Image (1200px, 16:9) */
.vir-article-featured-media-section {
  padding-block: 20px 48px !important;
}

.vir-article-media-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-inline: 24px !important;
  box-sizing: border-box !important;
}

.vir-article-featured-frame {
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 auto !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  background: #F1F5F9 !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
}

.vir-article-featured-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

/* 3. Long-form Article Body (Matching Featured Image Width) */
.vir-article-body-section {
  padding-bottom: 72px !important;
}

.vir-article-body-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-inline: 24px !important;
  box-sizing: border-box !important;
}

.vir-article-prose-content {
  width: 100% !important;
  max-width: 100% !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  color: #1E293B !important;
}

.vir-article-prose-content p {
  font-size: 18.5px !important;
  line-height: 1.58 !important;
  color: #1E293B !important;
  margin: 0 0 22px !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-article-prose-content h2 {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: clamp(24px, 2.2vw, 30px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: #12161A !important;
  margin-top: 56px !important;
  margin-bottom: 20px !important;
  letter-spacing: -0.01em !important;
}

.vir-article-prose-content h3 {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #12161A !important;
  margin-top: 40px !important;
  margin-bottom: 16px !important;
}

.vir-article-prose-content a {
  color: #E6A303 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  transition: color 0.2s ease !important;
}

.vir-article-prose-content a:hover {
  color: #C28500 !important;
}

.vir-article-prose-content blockquote,
.vir-article-prose-content pre {
  background: #F8FAFC !important;
  border-left: 3px solid #E6A303 !important;
  padding: 20px 24px !important;
  margin: 28px 0 !important;
  border-radius: 4px !important;
}

.vir-article-prose-content blockquote p {
  margin: 0 !important;
  font-style: italic !important;
}

.vir-article-prose-content em {
  font-family: inherit !important;
  color: #0F172A !important;
}

/* Share Bar */
.vir-article-share-bar {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 48px !important;
  padding-top: 24px !important;
  border-top: 1px solid #E2E8F0 !important;
}

.vir-share-label {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  color: #64748B !important;
}

.vir-share-btn {
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 6px 14px !important;
  border-radius: 4px !important;
  background: #F1F5F9 !important;
  color: #334155 !important;
  text-decoration: none !important;
  border: 1px solid #CBD5E1 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.vir-share-btn:hover {
  background: #E2E8F0 !important;
  color: #0F172A !important;
}

/* 4. Related Posts Grid */
.vir-article-related-section {
  padding-block: 64px !important;
  border-top: 1px solid #E2E8F0 !important;
}

.vir-article-related-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: 28px !important;
  margin-top: 36px !important;
}

.vir-related-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.vir-related-card-media {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
}

.vir-related-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.vir-related-card-media:hover img {
  transform: scale(1.03) !important;
}

.vir-related-card-body {
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.vir-related-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin: 0 0 10px !important;
}

.vir-related-card-title a {
  color: #12161A !important;
  text-decoration: none !important;
}

.vir-related-card-title a:hover {
  color: #E6A303 !important;
}

.vir-related-card-excerpt {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin: 0 !important;
}

/* 5. Article CTA (Centered) */
.vir-article-cta-section {
  padding-block: 72px !important;
  border-top: 1px solid #F1F5F9 !important;
  text-align: center !important;
}

.vir-article-cta-section .vir-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin-inline: auto !important;
}

.vir-article-cta-section .vir-eyebrow {
  text-align: center !important;
  margin-inline: auto !important;
  margin-bottom: 12px !important;
  display: block !important;
}

.vir-article-cta-section .vir-section-title {
  text-align: center !important;
  margin-inline: auto !important;
  margin-bottom: 16px !important;
  max-width: 900px !important;
}

.vir-article-cta-section .vir-section-subtitle {
  text-align: center !important;
  margin-inline: auto !important;
  margin-bottom: 32px !important;
  max-width: 680px !important;
}

.vir-article-cta-section .vir-cta-buttons-row {
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px !important;
  margin-inline: auto !important;
  width: auto !important;
}

/* Responsive Mobile Rules (390px) */
@media (max-width: 768px) {
  .vir-article-header-section {
    padding-top: 100px !important;
    padding-bottom: 24px !important;
  }
  .vir-article-h1-title {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }
  .vir-article-deck-lead p {
    font-size: 17px !important;
  }
  .vir-article-media-container,
  .vir-article-body-container {
    padding-inline: 18px !important;
  }
  .vir-article-prose-content p {
    font-size: 17px !important;
    line-height: 1.58 !important;
    margin: 0 0 18px !important;
  }
  .vir-article-prose-content h2 {
    font-size: 24px !important;
    margin-top: 40px !important;
  }
}

@media (max-width: 480px) {
  .vir-article-cta-section .vir-cta-buttons-row {
    flex-direction: column !important;
    width: 100% !important;
    max-width: 320px !important;
  }
  .vir-article-cta-section .vir-cta-buttons-row .vir-btn-primary,
  .vir-article-cta-section .vir-cta-buttons-row .vir-btn-secondary {
    width: 100% !important;
    text-align: center !important;
  }
  .vir-nl-input-row {
    flex-direction: column !important;
  }
  .vir-nl-input-row .vir-btn-primary {
    width: 100% !important;
  }
}

/* ==========================================================================
   V.I.R. Scuola — Produzioni Multimediali / Video Section Styles
   ========================================================================== */
.vir-video-section {
  padding-block: 72px !important;
  border-top: 1px solid #E2E8F0 !important;
}

.vir-video-single-feature {
  display: flex !important;
  flex-direction: row !important;
  gap: 36px !important;
  align-items: center !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 28px !important;
  margin-top: 32px !important;
}

.vir-video-preview-wrap {
  flex: 0 0 540px !important;
  max-width: 560px !important;
  width: 100% !important;
  position: relative !important;
  cursor: pointer !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.vir-video-preview-wrap:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}

.vir-video-player-frame {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background: #0F172A !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  position: relative !important;
}

.vir-video-card-thumb {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.3s ease !important;
}

.vir-video-preview-wrap:hover .vir-video-card-thumb {
  transform: scale(1.03) !important;
}

.vir-video-thumb-placeholder {
  width: 100% !important;
  height: 100% !important;
  background: linear-gradient(135deg, #0E1217 0%, #1A232E 100%) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  padding: 16px !important;
  box-sizing: border-box !important;
}

.vir-video-placeholder-category {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #E6A303 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 4px !important;
}

.vir-video-placeholder-title {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  line-height: 1.3 !important;
}

.vir-video-iframe {
  width: 100% !important;
  height: 100% !important;
  border: none !important;
  display: block !important;
  pointer-events: none !important; /* Passes click to trigger wrap */
}

.vir-video-play-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.vir-video-play-triangle {
  width: 38px !important;
  height: 38px !important;
  fill: #E50914 !important;
  color: #E50914 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  transition: transform 0.2s ease, opacity 0.2s ease !important;
}

.vir-video-preview-wrap:hover .vir-video-play-triangle {
  transform: scale(1.08) !important;
  opacity: 0.92 !important;
}

.vir-video-single-content {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  flex: 1 1 auto !important;
}

.vir-video-duration-pill {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  background: #F1F5F9 !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  letter-spacing: 0.05em !important;
}

.vir-video-single-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #12161A !important;
  margin: 0 0 12px !important;
}

.vir-video-single-desc {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: #475569 !important;
  margin: 0 0 18px !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-video-attribution-box {
  padding: 10px 14px !important;
  background: #F8FAFC !important;
  border-left: 2px solid #E6A303 !important;
  border-radius: 4px !important;
}

.vir-attribution-tag {
  display: block !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  margin-bottom: 3px !important;
}

.vir-attribution-text {
  display: block !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #64748B !important;
}

/* Multi-video grid */
.vir-video-grid {
  display: grid !important;
  gap: 28px !important;
  margin-top: 36px !important;
}

.vir-video-grid-2col {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
}

.vir-video-grid-3col {
  grid-template-columns: repeat(3, 1fr) !important;
}

.vir-video-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

.vir-video-card .vir-video-preview-wrap {
  flex: none !important;
  max-width: 100% !important;
  border-radius: 0 !important;
}

.vir-video-card-body {
  padding: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

.vir-video-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin: 0 0 8px !important;
}

.vir-video-card-desc {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #64748B !important;
  margin: 0 0 14px !important;
}

/* ==========================================================================
   V.I.R. Video Modal Lightbox Styles
   ========================================================================== */
.vir-video-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
}

.vir-video-modal.is-active {
  display: flex !important;
}

.vir-video-modal-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(10, 14, 18, 0.88) !important;
  backdrop-filter: blur(4px) !important;
}

.vir-video-modal-dialog {
  position: relative !important;
  width: 100% !important;
  max-width: 1160px !important;
  z-index: 2 !important;
}

.vir-video-modal-close {
  position: absolute !important;
  top: -46px !important;
  right: 0 !important;
  background: transparent !important;
  border: none !important;
  color: #FFFFFF !important;
  cursor: pointer !important;
  padding: 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: color 0.2s ease, transform 0.2s ease !important;
}

.vir-video-modal-close:hover {
  color: #E6A303 !important;
  transform: scale(1.1) !important;
}

.vir-video-modal-frame {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background: #000000 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6) !important;
}

.vir-video-modal-frame iframe {
  width: 100% !important;
  height: 100% !important;
  border: none !important;
  display: block !important;
}

/* Responsive Rules for Video Section & Modal */
@media (max-width: 900px) {
  .vir-video-single-feature {
    flex-direction: column !important;
    padding: 20px !important;
    gap: 20px !important;
  }
  .vir-video-grid-3col,
  .vir-video-grid-2col {
    grid-template-columns: 1fr !important;
  }
  .vir-video-preview-wrap {
    flex: none !important;
    max-width: 100% !important;
  }
  .vir-video-single-title {
    font-size: 20px !important;
  }
  .vir-video-modal {
    padding: 12px !important;
  }
  .vir-video-modal-close {
    top: -40px !important;
    right: 4px !important;
  }
}

@media (max-width: 768px) {
  .vir-video-play-triangle {
    width: 32px !important;
    height: 32px !important;
  }
}

/* ==========================================================================
   V.I.R. Notizie Final CTA Centering
   ========================================================================== */
.vir-notizie-page .vir-text-center {
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.vir-notizie-page .vir-text-center .vir-eyebrow,
.vir-notizie-page .vir-text-center .vir-section-subtitle {
  text-align: center !important;
  margin-inline: auto !important;
}

.vir-notizie-page .vir-text-center .vir-section-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 26px !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
  text-align: center !important;
  margin: 0 auto 16px !important;
  max-width: 100% !important;
}

.vir-notizie-page .vir-cta-buttons-row {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  margin: 0 auto !important;
  flex-wrap: wrap !important;
}

@media (max-width: 1300px) {
  .vir-notizie-page .vir-text-center .vir-section-title {
    font-size: 24px !important;
  }
}

@media (max-width: 1024px) {
  .vir-notizie-page .vir-text-center .vir-section-title {
    white-space: normal !important;
    font-size: 22px !important;
  }
}

@media (max-width: 640px) {
  .vir-notizie-page .vir-text-center .vir-section-title {
    font-size: 20px !important;
  }
  .vir-notizie-page .vir-cta-buttons-row {
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .vir-notizie-page .vir-cta-buttons-row .vir-btn-primary,
  .vir-notizie-page .vir-cta-buttons-row .vir-btn-secondary {
    width: 100% !important;
    max-width: 320px !important;
    text-align: center !important;
  }
}

/* ==========================================================================
   EDITORIAL CATEGORY ARCHIVES SYSTEM
   ========================================================================== */
.vir-category-archive-page {
  background: #F8FAFC !important;
  min-height: 70vh !important;
}

.vir-cat-archive-section {
  padding: 56px 0 80px !important;
}

.vir-cat-articles-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 40px 36px !important;
}

.vir-cat-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.vir-cat-card:hover {
  border-color: #CBD5E1 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
}

.vir-cat-card-media {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  background: #0E1217 !important;
}

.vir-cat-card-media a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.vir-cat-card-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  transition: transform 0.3s ease !important;
}

.vir-cat-card:hover .vir-cat-card-img {
  transform: scale(1.02) !important;
}

.vir-cat-card-body {
  padding: 24px 28px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}

.vir-cat-card-meta {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 12px !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.vir-cat-tag {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  background: rgba(230, 163, 3, 0.1) !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
}

.vir-cat-date {
  font-size: 12px !important;
  color: #64748B !important;
}

.vir-cat-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #0E1217 !important;
  margin: 0 0 14px !important;
  letter-spacing: -0.01em !important;
}

.vir-cat-card-title a {
  color: inherit !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-cat-card-title a:hover {
  color: #E6A303 !important;
}

.vir-cat-card-excerpt {
  font-size: 14.5px !important;
  line-height: 1.62 !important;
  color: #475569 !important;
  margin-bottom: 20px !important;
  flex-grow: 1 !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-cat-card-excerpt p {
  margin: 0 !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-cat-card-footer {
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px solid #F1F5F9 !important;
}

.vir-cat-read-more {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: #0E1217 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: color 0.2s ease, transform 0.2s ease !important;
}

.vir-cat-read-more:hover {
  color: #E6A303 !important;
  transform: translateX(3px) !important;
}

/* Pagination */
.vir-pagination-wrapper {
  margin-top: 48px !important;
  display: flex !important;
  justify-content: center !important;
}

.vir-pagination-wrapper .pagination,
.vir-pagination-wrapper .nav-links {
  display: flex !important;
  gap: 6px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  align-items: center !important;
}

.vir-pagination-wrapper .page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 38px !important;
  height: 38px !important;
  padding: 0 12px !important;
  border-radius: 4px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #475569 !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.vir-pagination-wrapper .page-numbers:hover {
  border-color: #CBD5E1 !important;
  color: #0E1217 !important;
  background: #F8FAFC !important;
}

.vir-pagination-wrapper .page-numbers.current {
  background: #0E1217 !important;
  color: #FFFFFF !important;
  border-color: #0E1217 !important;
}

.vir-empty-category-notice {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 56px 32px !important;
  text-align: center !important;
  max-width: 680px !important;
  margin: 0 auto !important;
}

.vir-empty-text {
  font-size: 16px !important;
  color: #475569 !important;
  margin: 0 0 24px !important;
}

@media (max-width: 860px) {
  .vir-cat-articles-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .vir-cat-card-title {
    font-size: 19px !important;
  }
}

/* ==========================================================================
   DOCENTI HUB & TEACHER PROFILE REFINEMENT (Centering CTA)
   ========================================================================== */
.vir-docenti-page .vir-text-center,
.vir-docente-single-page .vir-text-center {
  text-align: center !important;
}

.vir-docenti-page .vir-text-center .vir-eyebrow,
.vir-docenti-page .vir-text-center .vir-section-title,
.vir-docenti-page .vir-text-center .vir-section-subtitle,
.vir-docente-single-page .vir-text-center .vir-eyebrow,
.vir-docente-single-page .vir-text-center .vir-section-title,
.vir-docente-single-page .vir-text-center .vir-section-subtitle {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.vir-docenti-page .vir-cta-buttons-row,
.vir-docente-single-page .vir-cta-buttons-row {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  align-items: center !important;
}

.vir-docenti-page .vir-editorial-split-grid p,
.vir-docente-single-page .vir-editorial-split-grid p {
  text-align: justify !important;
  text-align-last: left !important;
}

@media (min-width: 1200px) {
  .vir-docenti-page .vir-text-center .vir-section-title,
  .vir-docente-single-page .vir-text-center .vir-section-title {
    font-size: 26px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 1024px) {
  .vir-teacher-card {
    grid-template-columns: 280px 1fr !important;
    gap: 32px !important;
    padding: 36px 32px !important;
  }
}

@media (max-width: 768px) {
  .vir-teacher-card {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 28px 20px !important;
  }
  .vir-teacher-photo {
    max-width: 320px !important;
    margin: 0 auto !important;
  }
  .vir-teacher-media {
    text-align: center !important;
  }
  .vir-docenti-page .vir-cta-buttons-row,
  .vir-docente-single-page .vir-cta-buttons-row {
    flex-direction: column !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .vir-docenti-page .vir-cta-buttons-row .vir-btn-primary,
  .vir-docenti-page .vir-cta-buttons-row .vir-btn-secondary,
  .vir-docente-single-page .vir-cta-buttons-row .vir-btn-primary,
  .vir-docente-single-page .vir-cta-buttons-row .vir-btn-secondary {
    width: 100% !important;
    max-width: 320px !important;
    text-align: center !important;
  }
}

/* ==========================================================================
   SINGLE TEACHER PROFILE HERO (Moscow City Subtle Background + Natural Portrait)
   ========================================================================== */
.vir-hero-teacher-profile {
  position: relative !important;
  background-color: #0E1217 !important;
  background-image: url("/vir-scuola/wp-content/uploads/2026/08/vir-scuola-moscow-city-footer.webp") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  color: #FFFFFF !important;
  padding: 140px 24px 70px !important;
  border-bottom: 1px solid #1E293B !important;
}

.vir-hero-teacher-profile::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(8, 12, 16, 0.82) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.vir-hero-teacher-profile .vir-container {
  position: relative !important;
  z-index: 2 !important;
}

.vir-teacher-profile-hero-grid {
  display: grid !important;
  grid-template-columns: 270px 1fr !important;
  gap: 56px !important;
  align-items: center !important;
  max-width: 1080px !important;
  margin: 0 auto !important;
}

.vir-teacher-profile-media {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
}

.vir-teacher-photo-fade-wrap {
  position: relative !important;
  width: 250px !important;
  max-width: 100% !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.vir-teacher-profile-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: top center !important;
  display: block !important;
}

.vir-teacher-profile-header-content {
  display: flex !important;
  flex-direction: column !important;
}

.vir-teacher-profile-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
}

.vir-teacher-profile-subrole {
  font-size: 15px !important;
  color: #E6A303 !important;
  font-weight: 600 !important;
  margin-bottom: 16px !important;
}

.vir-teacher-profile-lead {
  font-size: 16px !important;
  line-height: 1.68 !important;
  color: #CBD5E1 !important;
  margin: 0 0 28px !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-teacher-profile-ctas {
  display: flex !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
}

@media (max-width: 860px) {
  .vir-teacher-profile-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    text-align: center !important;
  }
  .vir-teacher-profile-header-content {
    align-items: center !important;
  }
  .vir-teacher-profile-lead {
    text-align: center !important;
    text-align-last: center !important;
  }
  .vir-teacher-profile-ctas {
    justify-content: center !important;
  }
  .vir-teacher-profile-title {
    font-size: 28px !important;
  }
}

/* ==========================================================================
   SEARCH RESULTS TEMPLATE (Clean Editorial Layout)
   ========================================================================== */
.vir-search-results-page .vir-hero-search {
  min-height: 380px !important;
  padding: 130px 24px 60px !important;
}

.vir-hero-search .vir-hero-master-title {
  font-size: clamp(24px, 3.2vw, 42px) !important;
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.vir-search-section {
  padding: 60px 0 80px !important;
}

.vir-search-results-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 36px 32px !important;
  margin-bottom: 48px !important;
}

.vir-search-card {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
}

.vir-search-card:hover {
  border-color: #CBD5E1 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important;
  transform: translateY(-2px) !important;
}

.vir-search-card-media {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  background: #F1F5F9 !important;
}

.vir-search-card-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.3s ease !important;
}

.vir-search-card:hover .vir-search-card-img {
  transform: scale(1.03) !important;
}

.vir-search-card-body {
  padding: 24px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}

.vir-search-card.no-media .vir-search-card-body {
  padding: 32px 28px !important;
}

.vir-search-card-meta {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
}

.vir-search-tag {
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #0E1217 !important;
  background: #F1F5F9 !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

.vir-search-date {
  font-size: 12px !important;
  color: #64748B !important;
  font-weight: 500 !important;
}

.vir-search-card-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  margin: 0 0 12px !important;
  color: #0E1217 !important;
}

.vir-search-card-title a {
  color: #0E1217 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-search-card-title a:hover {
  color: #E6A303 !important;
}

.vir-search-card-excerpt {
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin-bottom: 20px !important;
  text-align: justify !important;
  text-align-last: left !important;
  flex-grow: 1 !important;
}

.vir-search-card-excerpt p {
  margin: 0 !important;
  text-align: justify !important;
  text-align-last: left !important;
}

.vir-search-card-footer {
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px solid #F1F5F9 !important;
}

.vir-search-read-more {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0E1217 !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  display: inline-flex !important;
  align-items: center !important;
  transition: color 0.2s ease, transform 0.2s ease !important;
}

.vir-search-read-more:hover {
  color: #E6A303 !important;
  transform: translateX(4px) !important;
}

/* No Results State */
.vir-no-results-box {
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-radius: 8px !important;
  padding: 56px 40px !important;
  text-align: center !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
}

.vir-no-results-title {
  font-family: "Roboto Slab", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #0E1217 !important;
  margin: 0 0 10px !important;
}

.vir-no-results-desc {
  font-size: 15px !important;
  color: #475569 !important;
  line-height: 1.6 !important;
  margin: 0 0 28px !important;
}

.vir-search-form-wrap {
  max-width: 520px !important;
  margin: 0 auto 32px !important;
}

.vir-search-inline-form {
  display: flex !important;
  gap: 10px !important;
}

.vir-search-field {
  flex-grow: 1 !important;
  padding: 12px 16px !important;
  border: 1px solid #CBD5E1 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

.vir-search-field:focus {
  border-color: #0E1217 !important;
}

.vir-search-submit {
  padding: 12px 24px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

.vir-no-results-actions {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}

@media (max-width: 860px) {
  .vir-search-results-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .vir-search-card-title {
    font-size: 18px !important;
  }
  .vir-no-results-box {
    padding: 36px 20px !important;
  }
  .vir-search-inline-form {
    flex-direction: column !important;
  }
  .vir-search-submit {
    width: 100% !important;
  }
  .vir-no-results-actions {
    flex-direction: column !important;
  }
  .vir-no-results-actions .vir-btn-primary,
  .vir-no-results-actions .vir-btn-secondary {
    width: 100% !important;
    text-align: center !important;
  }
}

/* ======================================================================
   2026-09-07 — V.I.R. CULTURA INSTITUTIONAL INTEGRATION
   ====================================================================== */
.vir-cultura-institutional-badge {
  margin-top: 36px;
  padding: 24px 28px;
  background: #FBF9F5;
  border-left: 3px solid #E6A303;
  border-radius: 0 8px 8px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.vir-cultura-badge-label {
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #B8860B;
}
.vir-cultura-badge-text {
  font-size: 15px;
  line-height: 1.6;
  color: #1D1D1B;
  margin: 0 !important;
}
.vir-cultura-badge-link {
  align-self: flex-start;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #1F2F46;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s ease, transform 0.2s ease;
}
.vir-cultura-badge-link:hover {
  color: #E6A303;
  transform: translateX(4px);
}

/* ======================================================================
   2026-09-07 — STUDIARE IN ITALIA & UNIVERSITÀ COMPONENT STYLES
   ====================================================================== */
.vir-hero-studiare-italia {
  background-image: url("../images/studiare-italia-hero-v1.webp"), url("../images/studiare-italia-hero-v1.jpg") !important;
  background-position: center 38% !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  color: #FFFFFF;
}
.vir-hero-universita {
  background: linear-gradient(135deg, #0E1217 0%, #1A222D 100%);
  color: #FFFFFF;
}
.vir-si-eyebrow-dark,
.vir-up-eyebrow-dark {
  color: #B8860B !important;
}
.vir-si-eyebrow-gold {
  color: #E6A303 !important;
}
.vir-si-heading-dark,
.vir-up-heading-dark {
  font-family: 'Roboto Slab', Georgia, serif;
  font-size: clamp(20px, 1.75vw, 25px);
  font-weight: 700;
  color: #12161A;
  margin: 12px 0 20px;
  line-height: 1.3;
  text-align: center;
}
.vir-si-heading-white {
  font-family: 'Roboto Slab', Georgia, serif;
  font-size: 28px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 12px 0 20px;
  line-height: 1.3;
}
.vir-si-prose p,
.vir-up-prose p {
  font-size: 16px;
  line-height: 1.7;
  color: #334155;
  margin-bottom: 16px;
}
.vir-si-lead,
.vir-up-lead {
  font-size: 18px !important;
  font-weight: 500;
  color: #1E293B !important;
}
.vir-si-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.vir-si-card {
  background: #FFFFFF;
  padding: 32px 24px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
}
.vir-si-card-num {
  font-family: 'Roboto Slab', Georgia, serif;
  font-size: 28px;
  font-weight: 700;
  color: #E6A303;
  margin-bottom: 12px;
}
.vir-si-card-title {
  font-size: 19px;
  font-weight: 700;
  color: #12161A;
  margin-bottom: 10px;
}
.vir-si-card-desc {
  font-size: 14.5px;
  line-height: 1.6;
  color: #64748B;
  margin: 0;
}
.vir-si-visa-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 32px;
}
.vir-si-visa-main {
  font-size: 17px;
  line-height: 1.7;
  color: #F8FAFC;
  margin-bottom: 20px;
}
.vir-si-visa-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(230, 163, 3, 0.12);
  border-left: 3px solid #E6A303;
  padding: 16px 20px;
  border-radius: 0 6px 6px 0;
}
.vir-si-disclaimer-icon {
  font-size: 18px;
  color: #E6A303;
  line-height: 1;
}
.vir-si-disclaimer-text {
  font-size: 14px;
  line-height: 1.55;
  color: #F8FAFC;
  margin: 0 !important;
}
.vir-si-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.vir-si-step-item {
  background: #FAF9F6;
  padding: 28px 24px;
  border-radius: 8px;
  border-top: 3px solid #1F2F46;
}
.vir-si-step-num {
  font-family: 'Roboto Slab', Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: #1F2F46;
  margin-bottom: 8px;
}
.vir-si-step-title {
  font-size: 17px;
  font-weight: 700;
  color: #12161A;
  margin-bottom: 8px;
}
.vir-si-step-desc {
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
  margin: 0;
}
/* ==========================================================================
   V.I.R. SCUOLA — PARTNER E COLLABORAZIONI & UNIVERSITÀ PARTNER
   Scoped Component Styling & Art Direction Layout System
   ========================================================================== */

/* 1. Hero Background Bindings (Master Hero system governs heights: 750px / 620px / 520px / 440px) */
.vir-hero-partner {
  background-image: url("../images/partner-hero-v2.webp") !important;
  background-position: 55% 25% !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

@media (max-width: 768px) {
  .vir-hero-partner {
    background-position: 55% 20% !important;
  }
}

@media (max-width: 480px) {
  .vir-hero-partner {
    background-position: 50% 20% !important;
  }
}

.vir-hero-universita {
  background-image: url("../images/universita-hero-v1.webp") !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

/* 2. Common Background Token Classes */
.vir-bg-white {
  background-color: #FFFFFF !important;
}
.vir-bg-soft {
  background-color: #F8F9FB !important;
}
.vir-bg-dark {
  background-color: #0B1325 !important;
}
.vir-text-white {
  color: #FFFFFF !important;
}
.vir-text-gold {
  color: #E6A303 !important;
}

/* 3. Partner Page Component System (.vir-partner-child-body) */
.vir-pt-lead-text {
  font-size: 17px;
  line-height: 1.7;
  color: #4B5560;
  max-width: 860px;
  margin: 0 0 32px;
}

/* Continuous Open Logo Showcase */
.vir-pt-uni-showcase {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  gap: 16px !important;
  margin: 32px 0 24px !important;
  box-sizing: border-box !important;
}

@media (max-width: 1024px) {
  .vir-pt-uni-showcase {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
  }
}

@media (max-width: 768px) {
  .vir-pt-uni-showcase {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
  }
}

@media (max-width: 480px) {
  .vir-pt-uni-showcase {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}

.vir-pt-showcase-item {
  background: #FFFFFF;
  border: 1px solid rgba(11, 19, 37, 0.08);
  border-radius: 10px;
  padding: 16px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
  box-sizing: border-box;
  min-width: 0 !important;
  overflow: hidden;
}

.vir-pt-showcase-item:hover {
  border-color: #E6A303;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
}

@media (max-width: 480px) {
  .vir-pt-showcase-item {
    padding: 12px 6px !important;
  }
}

.vir-pt-showcase-logo {
  height: 52px;
  width: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0 4px;
}

.vir-pt-showcase-logo img {
  max-height: 48px;
  max-width: 100% !important;
  width: auto;
  height: auto;
  object-fit: contain !important;
}

/* Official University Logo Optical Sizing */
.logo-box-msu img {
  max-height: 28px !important;
  max-width: 100% !important;
  width: auto;
  height: auto;
  object-fit: contain !important;
}

.logo-box-mslu img {
  max-height: 46px !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

.logo-box-rudn img {
  max-height: 44px !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

@media (max-width: 480px) {
  .vir-pt-showcase-logo {
    height: 42px !important;
  }
  .vir-pt-showcase-logo img {
    max-height: 36px !important;
  }
  .logo-box-msu img {
    max-height: 22px !important;
  }
  .logo-box-rudn img {
    max-height: 32px !important;
  }
  .logo-box-mslu img {
    max-height: 32px !important;
  }
}

.vir-pt-showcase-name {
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #1F252A;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.25;
  word-break: break-word;
}

.vir-pt-gateway-action {
  text-align: center;
  margin-top: 24px;
}

.vir-pt-action-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #0B1325;
  text-decoration: none !important;
  border-bottom: 2px solid #E6A303;
  padding-bottom: 4px;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.vir-pt-action-link:hover {
  color: #E6A303;
  border-color: #0B1325;
}

/* Economic & Chamber Layout */
.vir-pt-chamber-layout {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 32px;
  margin-top: 32px;
}

.vir-pt-chamber-card {
  background: #FFFFFF;
  border: 1px solid rgba(11, 19, 37, 0.08);
  border-radius: 12px;
  padding: 36px 32px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.vir-pt-chamber-header {
  display: flex;
  align-items: center;
  gap: 20px;
}

.vir-pt-chamber-logo-box {
  height: 54px;
  max-width: 180px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.vir-pt-chamber-logo-box img {
  max-height: 48px;
  max-width: 100%;
  object-fit: contain;
}

.vir-pt-chamber-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.vir-pt-chamber-title {
  font-family: 'Roboto Slab', serif;
  font-size: 19px;
  font-weight: 700;
  color: #1F252A;
  margin: 0;
  line-height: 1.35;
}

.vir-pt-chamber-text {
  font-size: 15.5px;
  line-height: 1.7;
  color: #4B5560;
  margin: 0;
}

.vir-pt-b2b-context {
  background: #F8F9FB;
  border: 1px solid rgba(11, 19, 37, 0.06);
  border-radius: 12px;
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}

.vir-pt-b2b-title {
  font-family: 'Roboto Slab', serif;
  font-size: 18px;
  font-weight: 700;
  color: #1F252A;
  margin: 0;
}

.vir-pt-b2b-text {
  font-size: 14.5px;
  line-height: 1.65;
  color: #4B5560;
  margin: 0;
}

/* Ink Section for VIR Cultura */
.vir-pt-ink-prose {
  max-width: 920px;
  margin-top: 24px;
}

.vir-pt-ink-lead {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.75;
  color: #FFFFFF;
  margin-bottom: 18px;
}

.vir-pt-ink-prose p {
  font-size: 15.5px;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 14px;
}

.vir-link-gold {
  color: #E6A303 !important;
  font-weight: 700 !important;
}

.vir-link-gold:hover {
  color: #F6C042 !important;
}

/* Selected Centers in Italy Split */
.vir-pt-split-study {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 36px;
  align-items: center;
  margin-top: 24px;
}

.vir-pt-study-action-card {
  background: #FFFFFF;
  border: 1px solid rgba(11, 19, 37, 0.08);
  border-radius: 12px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.vir-pt-study-action-title {
  font-family: 'Roboto Slab', serif;
  font-size: 19px;
  font-weight: 700;
  color: #1F252A;
  margin: 0;
}

.vir-pt-study-action-desc {
  font-size: 14.5px;
  line-height: 1.65;
  color: #4B5560;
  margin: 0;
}

/* 4. Università Partner Component System (.vir-universita-child-body) */
.vir-up-s2-nav {
  padding: 20px 0 !important;
  border-bottom: 1px solid rgba(11, 19, 37, 0.06);
}

.vir-up-nav-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.vir-up-nav-title {
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #718096;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.vir-up-nav-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.vir-up-nav-pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background: #FFFFFF;
  border: 1px solid rgba(11, 19, 37, 0.1);
  border-radius: 20px;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #1F252A;
  text-decoration: none !important;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.vir-up-nav-pill:hover {
  background: #0B1325;
  color: #FFFFFF;
  border-color: #0B1325;
  transform: translateY(-1px);
}

/* Profile Editorial Sections */
.vir-up-profile-sec {
  padding: 72px 0 !important;
  scroll-margin-top: 80px;
}

.vir-up-profile-split {
  display: grid;
  gap: 48px;
  align-items: center;
}

.vir-up-split-normal {
  grid-template-columns: 240px 1fr;
}

.vir-up-split-reverse {
  grid-template-columns: 1fr 240px;
}

.vir-up-identity-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}

.vir-up-logo-card {
  width: 100%;
  max-width: 220px;
  height: 120px;
  background: #FFFFFF;
  border: 1px solid rgba(11, 19, 37, 0.08);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.vir-up-logo-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.vir-up-identity-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.vir-up-code-tag {
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #0B1325;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.vir-up-dept-badge {
  display: inline-block;
  background: #F0F3F6;
  color: #4A5568;
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.vir-up-badge-tag {
  display: inline-block;
  background: #F0F3F6;
  color: #4A5568;
  font-family: 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  align-self: flex-start;
}

/* Optical Logo Sizing Rules for Profile Cards */
.vir-up-logo-card.logo-box-msu img {
  max-height: 32px !important;
  max-width: 180px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-mslu img {
  max-height: 56px !important;
  max-width: 130px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-rudn img {
  max-height: 60px !important;
  max-width: 140px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-hse img {
  max-height: 64px !important;
  max-width: 130px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-mgimo img {
  max-height: 64px !important;
  max-width: 130px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-mpgu img {
  max-height: 64px !important;
  max-width: 130px !important;
  object-fit: contain !important;
}

.vir-up-logo-card.logo-box-rsuh img {
  max-height: 64px !important;
  max-width: 130px !important;
  object-fit: contain !important;
}

/* Narrative Column */
.vir-up-narrative-col .vir-cs-eyebrow {
  margin-bottom: 6px;
  display: inline-block;
}

.vir-up-prof-title {
  font-family: 'Roboto Slab', serif;
  font-size: 24px;
  font-weight: 700;
  color: #0B1325;
  line-height: 1.35;
  margin: 0 0 12px;
}

.vir-up-prof-lead {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.65;
  color: #1F252A;
  margin: 0 0 10px;
}

.vir-up-prof-body {
  font-size: 15px;
  line-height: 1.75;
  color: #4B5560;
  margin: 0 0 14px;
}

.vir-up-link-row {
  margin-top: 10px !important;
}

.vir-up-site-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  color: #E6A303 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.vir-up-site-link:hover {
  color: #D49400 !important;
  text-decoration: underline !important;
}

/* 5. Responsive Art Direction */
@media (max-width: 1024px) {
  .vir-pt-chamber-layout,
  .vir-pt-split-study {
    gap: 24px;
  }
  .vir-up-profile-split {
    gap: 32px;
  }
  .vir-up-split-normal {
    grid-template-columns: 200px 1fr;
  }
  .vir-up-split-reverse {
    grid-template-columns: 1fr 200px;
  }
  .vir-up-logo-card {
    height: 110px;
  }
}

@media (max-width: 768px) {
  .vir-partner-child-body .page-section,
  .vir-universita-child-body .page-section {
    padding: 56px 0 !important;
  }
  .vir-pt-chamber-layout,
  .vir-pt-split-study {
    grid-template-columns: 1fr;
  }
  .vir-pt-uni-showcase {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  .vir-up-profile-split,
  .vir-up-split-normal,
  .vir-up-split-reverse {
    grid-template-columns: 1fr !important;
    gap: 20px;
  }
  .vir-up-split-reverse .vir-up-identity-col {
    order: -1;
  }
  .vir-up-identity-col {
    flex-direction: row;
    justify-content: flex-start;
    gap: 16px;
    text-align: left;
  }
  .vir-up-logo-card {
    width: 100px;
    height: 70px;
    padding: 8px;
    flex-shrink: 0;
    overflow: hidden;
  }
  .vir-up-logo-card img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }
  .vir-up-logo-card.logo-box-msu img {
    max-width: 100% !important;
    max-height: 18px !important;
    object-fit: contain !important;
  }
  .vir-up-identity-meta {
    align-items: flex-start;
  }
  .vir-up-prof-title {
    font-size: 21px;
  }
}

@media (max-width: 480px) {
  .vir-partner-child-body .page-section,
  .vir-universita-child-body .page-section {
    padding: 44px 0 !important;
  }
  .vir-pt-uni-showcase {
    grid-template-columns: repeat(2, 1fr);
  }
  .vir-pt-chamber-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .vir-pt-chamber-card,
  .vir-pt-b2b-context,
  .vir-pt-study-action-card {
    padding: 24px 20px;
  }
}









