/* ==========================================================
   CENTRO YOGA FINALE — PAGINA ORARI
   Roneous 2.1.8 + TLG Framework + WPBakery 8.7.3
   Versione child theme 1.5.19
   ========================================================== */

:root {
  --cyf-orari-container: 1320px;
  --cyf-orari-desktop-gutter: 48px;
  --cyf-orari-tablet-gutter: 25px;
  --cyf-orari-mobile-gutter: 18px;
}

.cyf-orari-hero,
.cyf-orari-status,
.cyf-orari-schedule,
.cyf-orari-events,
.cyf-orari-individual,
.cyf-orari-prepare,
.cyf-orari-cta,
.cyf-orari-hero *,
.cyf-orari-status *,
.cyf-orari-schedule *,
.cyf-orari-events *,
.cyf-orari-individual *,
.cyf-orari-prepare *,
.cyf-orari-cta * {
  box-sizing: border-box;
}

.cyf-orari-hero .wpb_content_element,
.cyf-orari-status .wpb_content_element,
.cyf-orari-schedule .wpb_content_element,
.cyf-orari-events .wpb_content_element,
.cyf-orari-individual .wpb_content_element,
.cyf-orari-prepare .wpb_content_element,
.cyf-orari-cta .wpb_content_element {
  margin-bottom: 0;
}

/* Rimuove soltanto le Row vuote create da Gutenberg tra gli shortcode. */
.wpb-content-wrapper > .vc_row.bg-light.not-equal.not-color:not(.cyf-orari-hero):not(.cyf-orari-status):not(.cyf-orari-schedule):not(.cyf-orari-events):not(.cyf-orari-individual):not(.cyf-orari-prepare):not(.cyf-orari-cta) {
  display: none !important;
}

.cyf-orari-hero h1,
.cyf-orari-schedule h2,
.cyf-orari-events h2,
.cyf-orari-individual h2,
.cyf-orari-prepare h2,
.cyf-orari-cta h2 {
  margin-top: 0;
  font-family: var(--cyf-font-display) !important;
  line-height: 1.02 !important;
  font-weight: 500 !important;
  letter-spacing: -0.035em;
  text-wrap: balance;
  color: var(--cyf-color-charcoal) !important;
}

/* Header chiaro e statico, coerente con le altre pagine interne chiare. */
.nav-container {
  height: auto !important;
}

.nav-container nav.transparent.absolute:not(.fixed) {
  position: relative !important;
  inset: auto !important;
  color: var(--cyf-color-charcoal) !important;
  background: rgba(248, 244, 237, 0.98) !important;
}

.nav-container nav.transparent .logo-light { display: none !important; }
.nav-container nav.transparent .logo-dark { display: inline !important; }

.nav-container nav.transparent .nav-utility,
.nav-container nav.transparent .nav-bar {
  border-color: rgba(53, 55, 53, 0.12) !important;
}

.nav-container nav.transparent .nav-utility,
.nav-container nav.transparent .nav-utility i,
.nav-container nav.transparent .nav-utility span,
.nav-container nav.transparent .nav-utility a,
.nav-container nav.transparent .menu > li > a,
.nav-container nav.transparent .mobile-toggle i {
  color: var(--cyf-color-charcoal) !important;
}

/* I clearfix Bootstrap diventano celle quando trasformiamo le Row in Grid. */
.cyf-orari-hero > div:first-child > .row::before,
.cyf-orari-hero > div:first-child > .row::after,
.cyf-orari-status > div:first-child > .row::before,
.cyf-orari-status > div:first-child > .row::after,
.cyf-orari-schedule-head::before,
.cyf-orari-schedule-head::after,
.cyf-orari-events > div:first-child > .row::before,
.cyf-orari-events > div:first-child > .row::after,
.cyf-orari-individual > div:first-child > .row::before,
.cyf-orari-individual > div:first-child > .row::after,
.cyf-orari-prepare-head::before,
.cyf-orari-prepare-head::after,
.cyf-orari-cta > div:first-child > .row::before,
.cyf-orari-cta > div:first-child > .row::after {
  display: none !important;
  content: none !important;
}

/* ==========================================================
   1. HERO
   ========================================================== */

.cyf-orari-hero {
  height: 620px;
  min-height: 620px;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  background: var(--cyf-color-ivory);
}

.cyf-orari-hero > div:first-child {
  width: 100% !important;
  max-width: none !important;
  height: 620px;
  margin: 0 !important;
  padding: 0 !important;
}

.cyf-orari-hero > div:first-child > .row {
  display: grid !important;
  grid-template-columns: minmax(0, 53%) minmax(0, 47%);
  width: 100%;
  height: 620px;
  margin: 0 !important;
}

.cyf-orari-hero > div:first-child > .row > .wpb_column,
.cyf-orari-hero > div:first-child > .row > .wpb_column > .vc_column-inner {
  float: none !important;
  width: auto !important;
  height: 620px !important;
  min-height: 0 !important;
  padding: 0 !important;
}

.cyf-orari-hero > div:first-child > .row > .cyf-orari-hero-copy > .vc_column-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 82px 58px 76px max(48px, calc((100vw - var(--cyf-orari-container)) * .5)) !important;
}

.cyf-orari-hero-title h1 {
  margin: 0 0 25px !important;
  font-size: clamp(72px, 7vw, 108px) !important;
  line-height: 0.95 !important;
}

.cyf-orari-hero-lead p {
  max-width: 610px;
  margin: 0;
  font-family: var(--cyf-font-display);
  font-size: 31px;
  line-height: 1.26;
  font-weight: 500;
  letter-spacing: -0.018em;
  color: var(--cyf-color-charcoal);
}

.cyf-orari-hero-media,
.cyf-orari-hero-media > .vc_column-inner,
.cyf-orari-hero-media > .vc_column-inner > .wpb_wrapper,
.cyf-orari-hero-image,
.cyf-orari-hero-image .wpb_wrapper,
.cyf-orari-hero-image figure,
.cyf-orari-hero-image .vc_single_image-wrapper {
  position: relative;
  display: block;
  width: 100%;
  height: 620px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cyf-orari-hero-image img {
  display: block;
  width: 100% !important;
  height: 620px !important;
  object-fit: cover;
  object-position: center;
}

.cyf-orari-hero-badge-wrap {
  position: absolute;
  z-index: 2;
  bottom: 44px;
  left: 0;
}

.cyf-orari-hero-badge {
  width: 230px;
  padding: 20px 22px;
  font-family: var(--cyf-font-body);
  font-size: 11px;
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--cyf-color-charcoal);
  background: var(--cyf-color-sage);
}

.cyf-orari-hero-badge strong {
  display: block;
  margin-top: 5px;
  font-family: var(--cyf-font-display);
  font-size: 27px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

/* ==========================================================
   2. STATO DEL CALENDARIO
   ========================================================== */

.cyf-orari-status {
  padding: 27px 0;
  background: var(--cyf-color-charcoal);
}

.cyf-orari-status > div:first-child {
  width: min(var(--cyf-orari-container), calc(100% - (2 * var(--cyf-orari-desktop-gutter)))) !important;
  max-width: var(--cyf-orari-container) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.cyf-orari-status > div:first-child > .row,
.cyf-orari-status > div:first-child > .row > .wpb_column,
.cyf-orari-status > div:first-child > .row > .wpb_column > .vc_column-inner {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cyf-schedule-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  color: var(--cyf-color-ivory);
}

.cyf-schedule-status > span {
  color: var(--cyf-color-terra);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.cyf-schedule-status p {
  margin: 0;
  font-size: 14px;
  color: var(--cyf-color-ivory);
}

.cyf-schedule-status strong {
  padding: 8px 12px;
  border: 1px solid rgba(248, 244, 237, 0.4);
  font-size: 10px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Contenitori standard delle Row non estese. */
.cyf-orari-schedule > .container,
.cyf-orari-prepare > .container {
  width: min(var(--cyf-orari-container), calc(100% - (2 * var(--cyf-orari-desktop-gutter))));
  max-width: var(--cyf-orari-container) !important;
  margin: 0 auto;
  padding: 0 !important;
}

.cyf-orari-schedule > .container > .row,
.cyf-orari-prepare > .container > .row {
  width: 100%;
  margin: 0 !important;
}

.cyf-orari-schedule > .container > .row > .wpb_column,
.cyf-orari-prepare > .container > .row > .wpb_column {
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
}

.cyf-orari-schedule > .container > .row > .wpb_column > .vc_column-inner,
.cyf-orari-prepare > .container > .row > .wpb_column > .vc_column-inner {
  padding: 0 !important;
}

/* ==========================================================
   3. CALENDARIO SETTIMANALE
   ========================================================== */

.cyf-orari-schedule {
  padding: 108px 0 118px;
  background: #fffdf9;
}

.cyf-orari-schedule-head,
.cyf-orari-prepare-head {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 100px;
  align-items: end;
  margin: 0 0 66px !important;
}

.cyf-orari-schedule-head > .wpb_column,
.cyf-orari-prepare-head > .wpb_column {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.cyf-orari-schedule-head > .wpb_column > .vc_column-inner,
.cyf-orari-prepare-head > .wpb_column > .vc_column-inner {
  padding: 0 !important;
}

.cyf-orari-schedule-title h2 {
  max-width: 660px;
  margin: 0;
  font-size: clamp(54px, 5vw, 76px) !important;
}

.cyf-orari-schedule-intro p,
.cyf-orari-prepare-intro p {
  max-width: 650px;
  margin: 0;
  font-family: var(--cyf-font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--cyf-color-body);
  text-wrap: pretty;
}

.cyf-orari-calendar > .wpb_wrapper > p:empty {
  display: none;
}

/* ==========================================================
   4. EVENTI E VARIAZIONI
   ========================================================== */

.cyf-orari-events {
  padding: 84px 0;
  background: var(--cyf-color-sand-soft);
}

.cyf-orari-events > div:first-child,
.cyf-orari-individual > div:first-child,
.cyf-orari-cta > div:first-child {
  width: min(var(--cyf-orari-container), calc(100% - (2 * var(--cyf-orari-desktop-gutter)))) !important;
  max-width: var(--cyf-orari-container) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.cyf-orari-events > div:first-child > .row {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 100px;
  align-items: center;
  margin: 0 !important;
}

.cyf-orari-events > div:first-child > .row > .wpb_column,
.cyf-orari-individual > div:first-child > .row > .wpb_column,
.cyf-orari-cta > div:first-child > .row > .wpb_column {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.cyf-orari-events > div:first-child > .row > .wpb_column > .vc_column-inner,
.cyf-orari-individual > div:first-child > .row > .wpb_column > .vc_column-inner,
.cyf-orari-cta > div:first-child > .row > .wpb_column > .vc_column-inner {
  padding: 0 !important;
}

.cyf-orari-events-title h2 {
  max-width: 610px;
  margin: 0;
  font-size: clamp(48px, 4.5vw, 66px) !important;
}

.cyf-orari-events-note {
  padding: 38px 42px;
  border-left: 4px solid var(--cyf-color-terra);
  background: var(--cyf-color-ivory);
}

.cyf-orari-events-note strong {
  display: block;
  margin: 0 0 10px;
  font-family: var(--cyf-font-display);
  font-size: 28px;
  line-height: 1.2;
  font-weight: 500;
  color: var(--cyf-color-charcoal);
}

.cyf-orari-events-note p {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--cyf-color-body);
}

/* ==========================================================
   5. PERCORSI INDIVIDUALI
   ========================================================== */

.cyf-orari-individual {
  padding: 112px 0;
  background: var(--cyf-color-sage);
}

.cyf-orari-individual > div:first-child > .row {
  display: grid !important;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 90px;
  align-items: center;
  margin: 0 !important;
}

.cyf-orari-individual-title h2 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(54px, 5vw, 74px) !important;
}

.cyf-orari-individual-lead p {
  max-width: 610px;
  margin: 28px 0 22px;
  font-family: var(--cyf-font-display);
  font-size: 31px;
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -0.018em;
  color: var(--cyf-color-charcoal);
}

.cyf-orari-prose p {
  max-width: 610px;
  margin: 0 0 30px;
  font-size: 17px;
  line-height: 1.7;
  color: #41433f;
}

.cyf-orari-step-list {
  border-top: 1px solid rgba(53, 55, 53, 0.35);
}

.cyf-orari-step {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 22px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(53, 55, 53, 0.28);
}

.cyf-orari-step > span {
  color: var(--cyf-color-terra-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.cyf-orari-step h3 {
  margin: 0 0 5px;
  font-family: var(--cyf-font-display);
  font-size: 28px;
  line-height: 1.15;
  font-weight: 500;
  color: var(--cyf-color-charcoal);
}

.cyf-orari-step p {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: #454742;
}

/* ==========================================================
   6. PRIMA DI PARTECIPARE
   ========================================================== */

.cyf-orari-prepare {
  padding: 108px 0 116px;
  background: var(--cyf-color-ivory);
}

.cyf-orari-prepare-title h2 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(54px, 5vw, 72px) !important;
}

.cyf-orari-prepare-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: var(--cyf-rule);
  border-bottom: var(--cyf-rule);
}

.cyf-orari-prepare-item {
  min-height: 250px;
  padding: 34px 30px;
  border-right: var(--cyf-rule);
}

.cyf-orari-prepare-item:last-child {
  border-right: 0;
}

.cyf-orari-prepare-item > span {
  color: var(--cyf-color-terra-dark);
  font-size: 11px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cyf-orari-prepare-item h3 {
  margin: 26px 0 18px;
  font-family: var(--cyf-font-display);
  font-size: 31px;
  line-height: 1.13;
  font-weight: 500;
  color: var(--cyf-color-charcoal);
}

.cyf-orari-prepare-item p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--cyf-color-body);
}

/* ==========================================================
   7. CTA
   ========================================================== */

.cyf-orari-cta {
  padding: 76px 0;
  background: var(--cyf-color-terra);
}

.cyf-orari-cta > div:first-child > .row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 50px;
  align-items: center;
  margin: 0 !important;
}

.cyf-orari-cta-label {
  display: block;
  margin: 0 0 12px;
  color: var(--cyf-color-ivory);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.cyf-orari-cta-title h2 {
  max-width: 790px;
  margin: 0;
  font-size: clamp(48px, 4.5vw, 68px) !important;
  color: var(--cyf-color-ivory) !important;
}

.cyf-orari-cta-action > .vc_column-inner {
  display: flex;
  justify-content: flex-end;
}

.cyf-orari-cta-button {
  min-width: 225px;
  border-color: var(--cyf-color-ivory);
  color: var(--cyf-color-ivory) !important;
  background: transparent;
}

.cyf-orari-cta-button:hover,
.cyf-orari-cta-button:focus-visible {
  color: var(--cyf-color-charcoal) !important;
  background: var(--cyf-color-ivory);
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1100px) {
  .cyf-orari-status > div:first-child,
  .cyf-orari-schedule > .container,
  .cyf-orari-events > div:first-child,
  .cyf-orari-individual > div:first-child,
  .cyf-orari-prepare > .container,
  .cyf-orari-cta > div:first-child {
    width: calc(100% - (2 * var(--cyf-orari-tablet-gutter))) !important;
  }

  .cyf-orari-schedule-head,
  .cyf-orari-events > div:first-child > .row,
  .cyf-orari-individual > div:first-child > .row,
  .cyf-orari-prepare-head {
    gap: 56px;
  }
}

@media (max-width: 900px) {
  .nav-container nav.transparent .nav-utility { display: none !important; }
  .nav-container nav.transparent.absolute,
  .nav-container nav.transparent .nav-bar,
  .nav-container nav.transparent .nav-bar .module {
    height: 80px !important;
    min-height: 80px !important;
  }

  .cyf-orari-hero,
  .cyf-orari-hero > div:first-child,
  .cyf-orari-hero > div:first-child > .row {
    height: auto;
    min-height: 0;
  }

  .cyf-orari-hero > div:first-child > .row {
    grid-template-columns: 1fr;
  }

  .cyf-orari-hero > div:first-child > .row > .wpb_column,
  .cyf-orari-hero > div:first-child > .row > .wpb_column > .vc_column-inner {
    width: 100% !important;
    height: auto !important;
  }

  .cyf-orari-hero > div:first-child > .row > .cyf-orari-hero-copy > .vc_column-inner {
    padding: 86px var(--cyf-orari-tablet-gutter) 68px !important;
  }

  .cyf-orari-hero-media,
  .cyf-orari-hero-media > .vc_column-inner,
  .cyf-orari-hero-media > .vc_column-inner > .wpb_wrapper,
  .cyf-orari-hero-image,
  .cyf-orari-hero-image .wpb_wrapper,
  .cyf-orari-hero-image figure,
  .cyf-orari-hero-image .vc_single_image-wrapper,
  .cyf-orari-hero-image img {
    height: 520px !important;
  }

  .cyf-orari-hero-badge-wrap {
    bottom: 25px;
    left: var(--cyf-orari-tablet-gutter);
  }

  .cyf-schedule-status {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .cyf-schedule-status > span {
    grid-column: 1 / -1;
  }

  .cyf-orari-schedule,
  .cyf-orari-individual,
  .cyf-orari-prepare {
    padding: 78px 0;
  }

  .cyf-orari-schedule-head,
  .cyf-orari-events > div:first-child > .row,
  .cyf-orari-individual > div:first-child > .row,
  .cyf-orari-prepare-head,
  .cyf-orari-cta > div:first-child > .row {
    grid-template-columns: 1fr;
  }

  .cyf-orari-schedule-head,
  .cyf-orari-prepare-head {
    gap: 42px;
    margin-bottom: 52px !important;
  }

  .cyf-orari-events > div:first-child > .row,
  .cyf-orari-individual > div:first-child > .row {
    gap: 46px;
  }

  .cyf-orari-cta > div:first-child > .row {
    gap: 34px;
  }

  .cyf-orari-cta-action > .vc_column-inner {
    justify-content: flex-start;
  }

  .cyf-orari-prepare-list {
    grid-template-columns: 1fr;
  }

  .cyf-orari-prepare-item {
    min-height: 0;
    border-right: 0;
    border-bottom: var(--cyf-rule);
  }

  .cyf-orari-prepare-item:last-child {
    border-bottom: 0;
  }
}

/* ==========================================================
   SMARTPHONE — GUTTER MINIMO 18 PX
   ========================================================== */

@media (max-width: 560px) {
  .nav-container nav.transparent.absolute,
  .nav-container nav.transparent .nav-bar,
  .nav-container nav.transparent .nav-bar .module {
    height: 74px !important;
    min-height: 74px !important;
  }

  .cyf-orari-status > div:first-child,
  .cyf-orari-schedule > .container,
  .cyf-orari-events > div:first-child,
  .cyf-orari-individual > div:first-child,
  .cyf-orari-prepare > .container,
  .cyf-orari-cta > div:first-child {
    width: calc(100% - (2 * var(--cyf-orari-mobile-gutter))) !important;
  }

  .cyf-orari-hero > div:first-child > .row > .cyf-orari-hero-copy > .vc_column-inner {
    padding: 78px var(--cyf-orari-mobile-gutter) 64px !important;
  }

  .cyf-orari-hero-title h1 {
    font-size: 64px !important;
  }

  .cyf-orari-hero-lead p {
    font-size: 26px;
  }

  .cyf-orari-hero-media,
  .cyf-orari-hero-media > .vc_column-inner,
  .cyf-orari-hero-media > .vc_column-inner > .wpb_wrapper,
  .cyf-orari-hero-image,
  .cyf-orari-hero-image .wpb_wrapper,
  .cyf-orari-hero-image figure,
  .cyf-orari-hero-image .vc_single_image-wrapper,
  .cyf-orari-hero-image img {
    height: 390px !important;
  }

  .cyf-orari-hero-badge-wrap {
    bottom: 18px;
    left: var(--cyf-orari-mobile-gutter);
  }

  .cyf-orari-hero-badge {
    width: 206px;
  }

  .cyf-orari-status {
    padding: 24px 0;
  }

  .cyf-schedule-status {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .cyf-schedule-status > span {
    grid-column: auto;
  }

  .cyf-schedule-status strong {
    justify-self: start;
    white-space: normal;
  }

  .cyf-orari-schedule,
  .cyf-orari-individual,
  .cyf-orari-prepare {
    padding: 68px 0;
  }

  .cyf-orari-events {
    padding: 64px 0;
  }

  .cyf-orari-schedule-head,
  .cyf-orari-prepare-head {
    gap: 36px;
    margin-bottom: 44px !important;
  }

  .cyf-orari-schedule-title h2,
  .cyf-orari-individual-title h2,
  .cyf-orari-prepare-title h2 {
    font-size: clamp(45px, 13vw, 56px) !important;
  }

  .cyf-orari-schedule-intro p,
  .cyf-orari-prepare-intro p,
  .cyf-orari-prose p {
    font-size: 16px;
  }

  .cyf-orari-events-note {
    padding: 30px 26px;
  }

  .cyf-orari-individual-lead p {
    font-size: 26px;
  }

  .cyf-orari-step {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
  }

  .cyf-orari-prepare-item {
    padding: 30px 12px;
  }

  .cyf-orari-cta {
    padding: 64px 0;
  }

  .cyf-orari-cta-title h2 {
    font-size: 46px !important;
  }

  .cyf-orari-cta-button {
    width: 100%;
  }
}
