/* Homepage visual language inspired by the supplied reference. */
body.home {
  --home-red: #a40709;
  --home-red-dark: #830608;
  --home-ink: #191715;
  --home-cream: #faf7f3;
  --home-layout-gutter: max(20px, calc(50vw - 705px));
  color: var(--home-ink);
  background: var(--home-cream);
}

.home #wrapper-navbar,
.home #mainNav,
.home .menu-sotto {
  background: linear-gradient(110deg, #870306, #ae0b0e 55%, #870306) !important;
}
.home #mainNav { box-shadow: 0 4px 20px rgb(35 0 0 / 14%); }
.home #mainNav .navbar-nav > li > a,
.home #mainNav .icona-mobile,
.home #mainNav .icona-mobile a { color: #fff !important; }
.home #mainNav .navbar-nav > li > a:hover { color: #f2d9b6 !important; }

.home #full-width-page-wrapper { padding-top: 0; padding-bottom: 0; }
.home #full-width-page-wrapper > #content { max-width: none; padding: 0; }
.home #full-width-page-wrapper > #content > .row { margin: 0; }
.home #full-width-page-wrapper #primary { padding: 0; }
.home .pre-footer .container,
.home #wrapper-footer-full .container { max-width: 1440px; }
.home .site-main > .wp-block-group,
.home .site-main > .wp-block-columns,
.home .site-main > .wp-block-query,
.home .site-main > .wp-block-gallery {
  padding: clamp(38px, 5vw, 76px) var(--home-layout-gutter);
  margin-bottom: 0;
}
.home .site-main > .wp-block-group:nth-of-type(even) { background: #f5f1ec; }
.home .site-main > .wp-block-cover.alignfull,
.home .site-main > .wp-block-cover:first-child { margin: 0; }
.home .site-main > .wp-block-cover:first-child { min-height: clamp(440px, 43vw, 680px); }
.home .site-main > .wp-block-cover:first-child .wp-block-cover__background {
  background: linear-gradient(180deg, rgb(0 0 0 / 8%), rgb(0 0 0 / 43%)) !important;
  opacity: 1 !important;
}
.home .site-main > .wp-block-cover:first-child .wp-block-cover__inner-container {
  max-width: 850px;
  text-align: center;
}
.home .site-main > .wp-block-cover:first-child h1,
.home .site-main > .wp-block-cover:first-child h2 {
  color: #fff;
  font-size: clamp(2.8rem, 5.3vw, 5.2rem);
  line-height: 1.08;
  text-shadow: 0 3px 18px rgb(0 0 0 / 35%);
}
.home .site-main h1,
.home .site-main h2,
.home .site-main h3,
.home .site-main .wp-block-post-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.035em;
}
.home .site-main h2 { font-size: clamp(2.15rem, 3.3vw, 3.65rem); line-height: 1.1; }
.home .site-main h3 { line-height: 1.18; }
.home .site-main p { line-height: 1.55; }
.home .site-main .has-small-font-size,
.home .site-main .section-label {
  color: var(--home-red);
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.home .site-main .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.home .site-main a.btn.btn-primary {
  background: var(--home-red) !important;
  border: 1px solid var(--home-red) !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-size: .82rem !important;
  font-weight: 700;
  letter-spacing: .035em;
  padding: 12px 28px !important;
  text-transform: uppercase;
}
.home .site-main .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.home .site-main a.btn.btn-primary:hover { background: var(--home-red-dark) !important; }
.home .site-main .wp-block-button.is-style-outline .wp-block-button__link {
  border-color: var(--home-red);
  border-radius: 999px;
  color: var(--home-red);
}
.home .site-main .wp-block-post-template,
.home .site-main .wp-block-columns { gap: 20px; }
.home .site-main .wp-block-post-template > li,
.home .site-main .wp-block-gallery > figure,
.home .site-main .wp-block-cover:not(:first-child),
.home .site-main .wp-block-image img,
.home .site-main .card-event {
  border-radius: 10px;
  overflow: hidden;
}
.home .site-main .wp-block-post-template > li,
.home .site-main .card-event { box-shadow: 0 8px 25px rgb(26 13 7 / 9%); }
.home .site-main .wp-block-post-featured-image img,
.home .site-main .wp-block-gallery img { object-fit: cover; }
.home .site-main .wp-block-post-template > li:hover img,
.home .site-main .wp-block-gallery figure:hover img { transform: scale(1.035); }
.home .site-main .wp-block-post-template img,
.home .site-main .wp-block-gallery img { transition: transform .3s ease; }
.home .site-main .wp-block-media-text { gap: clamp(22px, 4vw, 64px); }
.home .site-main .wp-block-media-text__media img { border-radius: 12px; }

/* The current homepage uses a video hero and Swiper cards. */
.home .video-block {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 16 / 9;
  background-color: #111;
  container-type: normal;
  overflow: hidden;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.home .video-block .video-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.home .video-block .mobile-bg {
  width: 100%;
  height: 100%;
  margin: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.home .video-block .video-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9;
  max-width: 100% !important;
  transform: none !important;
  scale: 1 !important;
  pointer-events: none;
}
.home .video-block .video-overlay {
  background: linear-gradient(180deg, rgb(0 0 0 / 5%), rgb(0 0 0 / 36%));
}
.home .video-block h1 {
  color: #fff;
  font-size: clamp(2.8rem, 5.3vw, 5.2rem);
  line-height: 1.08;
  text-shadow: 0 3px 18px rgb(0 0 0 / 35%);
}
.home .video-block h3 {
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: clamp(1rem, 1.7vw, 1.45rem);
  font-weight: 600;
  letter-spacing: 0;
}
.home .site-main > .wp-block-columns {
  padding-block: clamp(40px, 5vw, 76px);
}
/* The page content contains the video first, followed by the sections in this order. */
.home .site-main .wp-block-columns.home-section--magic {
  padding: clamp(28px, 4vw, 54px) var(--home-layout-gutter);
  background: #f5f1ec;
  border: 0;
  box-shadow: none;
}
.home .home-section__eyebrow {
  color: var(--home-red);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .09em;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.home .site-main > .wp-block-columns.home-section--attractions {
  background: #fff;
}
.home .home-attractions__previous {
  margin: 0 auto clamp(40px, 5vw, 68px);
  max-width: 880px;
  text-align: center;
}
.home .home-attractions__previous h2 {
  font-size: clamp(1.9rem, 3vw, 3rem);
  margin-bottom: 14px;
  padding: 0 !important;
}
.home .home-attractions__previous p { margin-bottom: 0; }
.home .home-attractions__intro { max-width: 680px; margin-bottom: 0; }
.home .home-attractions__eyebrow {
  color: var(--home-red);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .09em;
  margin-bottom: 4px;
  text-transform: uppercase;
}
.home .home-attractions__intro h2 { margin: 0 0 8px; }
.home .home-attractions__intro > p:last-child { margin-bottom: 0; }
.home .site-main > .wp-block-columns.home-section--attractions .bg-white > .row h2 { display: none; }
.home .site-main > .wp-block-columns.home-section--attractions .bg-white > .row {
  justify-content: flex-end;
}
.home .site-main > .wp-block-columns.home-section--attractions .bg-white.mt-5 {
  margin-top: clamp(32px, 3vw, 44px) !important;
}
.home .site-main > .wp-block-columns.home-section--events,
.home .site-main > .wp-block-columns.home-section--locations {
  background: #fff;
}
.home .site-main > .wp-block-columns.home-section--discover { background: #f5f1ec; }
.home .home-section--discover .home-discover__cta { margin-top: 22px; }
.home .site-main > .wp-block-columns.home-section--magic::before,
.home .site-main > .wp-block-columns.home-section--magic::after { display: none; }
.home .site-main > .wp-block-columns.home-section--magic > .wp-block-column,
.home .site-main > .wp-block-columns.home-section--magic .wp-block-image,
.home .site-main > .wp-block-columns.home-section--magic .wp-block-image img {
  border: 0 !important;
  box-shadow: none !important;
}
.home .site-main > .wp-block-columns.home-section--events .swiper-personaggi {
  min-height: 0;
  overflow: hidden;
}
.home .site-main > .wp-block-columns.home-section--events .swiper-personaggi:has(.swiper-slide > p:only-child) {
  display: none;
}
.home .site-main > .wp-block-columns.home-section--events .wp-block-buttons {
  position: relative;
  z-index: 3;
  clear: both;
  margin-top: 28px !important;
  padding-top: 8px;
}
.home .site-main > .wp-block-columns.home-section--events .wp-block-button { position: relative; }
.home .site-main > .wp-block-columns > .wp-block-column > .bg-white {
  background: transparent !important;
  margin-top: 0 !important;
  padding: 0 !important;
}
.home .site-main > .wp-block-columns > .wp-block-column > .bg-white .row { margin-inline: 0; }
.home .site-main .swiper-personaggi .swiper-slide,
.home .site-main .swiper-personaggi .immagine-loop,
.home .site-main .swiper-personaggi .img-zoom { border-radius: 10px !important; overflow: hidden; }
.home .site-main .img-zoom {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
}
.home .site-main .img-zoom > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home .site-main .swiper-personaggi .meta-article { z-index: 1; }
.home .site-main .swiper-personaggi .titolo-post {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(1rem, 1.3vw, 1.35rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .025em;
}
.home .site-main .swiper-personaggi .titolo-post a {
  font-family: inherit !important;
  font-size: inherit;
  letter-spacing: inherit;
}
.home .site-main .swiper-personaggi .categoria-tag { background: var(--home-red) !important; }
.home .site-main .swiper-personaggi {
  overflow: hidden !important;
  padding-bottom: 0 !important;
}
.home .site-main .swiper-personaggi .swiper-pagination-progressbar {
  position: relative !important;
  inset: auto !important;
  display: block;
  height: 3px;
  margin-top: 14px;
  width: 100%;
}
.home .site-main .swiper-personaggi .swiper-pagination-progressbar-fill {
  background: var(--home-red);
}
.home .site-main .swiper-button-prev,
.home .site-main .swiper-button-next {
  border-color: var(--home-red) !important;
  background: var(--home-red) !important;
  color: #fff !important;
}
.home .site-main .swiper-button-prev::after,
.home .site-main .swiper-button-next::after {
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700;
  opacity: 1 !important;
  visibility: visible !important;
}
.home .site-main > .logo-patrocinio,
.home .site-main > .logo-patrocinio .logo-partner img { background: #fff; }
.home .site-main .logo-partner img { border-radius: 0; }
.home .site-main > .home-calendar {
  background: #fff;
  padding: 56px var(--home-layout-gutter) 58px;
}
.home .home-calendar__eyebrow {
  color: var(--home-red);
  font-size: .77rem;
  font-weight: 700;
  letter-spacing: .09em;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.home .home-calendar h2 { margin: 0 0 8px; }
.home .home-calendar__intro { margin-bottom: 32px; }
.home .home-calendar__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.home .home-calendar__item {
  padding: 0 25px;
  text-align: center;
}
.home .home-calendar__item + .home-calendar__item { border-left: 1px solid #e8ddd7; }
.home .home-calendar__icon {
  align-items: center;
  background: #f7eeeb;
  border-radius: 50%;
  color: var(--home-red);
  display: inline-flex;
  font-size: 2rem;
  height: 72px;
  justify-content: center;
  margin-bottom: 10px;
  width: 72px;
}
.home .home-calendar h3 { font-size: 1.3rem; margin-bottom: 8px; }
.home .home-calendar__item p { font-size: .95rem; margin: 0; }
.home .site-main > .wp-block-columns.home-section--organizers,
.home .site-main > .wp-block-columns.home-section--partners {
  margin: 0;
  padding-block: 22px;
}
.home .site-main > .wp-block-columns.home-section--organizers { background: #faf8f5; }
.home .site-main > .wp-block-columns.home-section--partners { background: #fff; }
.home .site-main > .wp-block-columns:empty,
.home .site-main > .wp-block-columns:has(> .wp-block-column:empty):not(:has(> .wp-block-column:not(:empty))),
.home .site-main > p.wp-block-paragraph:empty { display: none !important; }
.home .site-main > .wp-block-columns.home-section--organizers {
  padding-top: 40px;
}
.home .site-main > .wp-block-columns.home-section--organizers > .wp-block-column,
.home .site-main > .wp-block-columns.home-section--partners > .wp-block-column {
  flex-basis: 100% !important;
}
.home .site-main > .wp-block-columns.home-section--partners {
  display: grid !important;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) minmax(0, 1fr);
  align-items: start;
  gap: 28px;
}
/* Temporary: keep the partner blocks in the editor, but show only "È un evento di". */
.home .site-main > .wp-block-columns.home-section--partners.logo-patrocinio {
  display: none !important;
}
.home .site-main > .wp-block-columns.home-section--partners > .wp-block-column {
  display: contents;
}
.home .site-main > .wp-block-columns.home-section--partners > .wp-block-column > .wp-block-columns {
  display: contents;
}
.home .site-main > .wp-block-columns.home-section--partners > .wp-block-column > .wp-block-columns > .wp-block-column {
  min-width: 0;
  align-self: start !important;
  width: 100%;
}
.home .site-main > .wp-block-columns.home-section--partners > .wp-block-column > .wp-block-columns > .wp-block-column > h4 {
  margin: 0 0 18px;
  padding: 0 !important;
}
.home .site-main > .wp-block-columns.home-section--partners .logo-partner.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  gap: 12px !important;
}
.home .site-main > .wp-block-columns.home-section--partners .logo-partner.wp-block-columns:has(> .wp-block-column:only-child) {
  grid-template-columns: 1fr;
}
.home .site-main > .wp-block-columns.home-section--partners .logo-partner > .wp-block-column {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.home .site-main > .wp-block-columns.home-section--partners .logo-partner figure {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.home .site-main > .wp-block-columns.home-section--partners .logo-partner img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: 68px !important;
  max-height: 68px !important;
  object-fit: contain;
}
.home .site-main > .wp-block-columns.home-section--organizers h4,
.home .site-main > .wp-block-columns.home-section--partners h4 {
  color: var(--home-red);
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .72rem;
  font-weight: 700 !important;
  letter-spacing: .09em;
  line-height: 1.2;
  text-transform: uppercase;
}
.home .site-main > .wp-block-columns.home-section--organizers .wp-block-columns,
.home .site-main > .wp-block-columns.home-section--partners .wp-block-columns {
  align-items: center;
  gap: 24px;
}
.home .site-main > .wp-block-columns.home-section--organizers .logo-partner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.home .site-main > .wp-block-columns.home-section--organizers .logo-partner figure,
.home .site-main > .wp-block-columns.home-section--partners .logo-partner figure { margin: 0; }
.home .site-main > .wp-block-columns.home-section--organizers .logo-partner img,
.home .site-main > .wp-block-columns.home-section--partners .logo-partner img {
  max-width: 100%;
  max-height: 95px;
  width: auto;
  height: auto;
  object-fit: contain;
}

@media (max-width: 767px) {
  .home .site-main > .wp-block-group,
  .home .site-main > .wp-block-columns,
  .home .site-main > .wp-block-query,
  .home .site-main > .wp-block-gallery { padding: 38px var(--home-layout-gutter); }
  .home .site-main > .wp-block-cover:first-child { min-height: 520px; }
  .home .site-main .wp-block-post-template { gap: 16px; }
  .home .site-main .wp-block-media-text { gap: 20px; }
  .home .video-block {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }
  .home .site-main > .home-calendar { padding: 40px var(--home-layout-gutter); }
  .home .home-calendar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 26px; }
  .home .home-calendar__item { padding: 0 12px; }
  .home .home-calendar__item:nth-child(3) { border-left: 0; }
  .home .site-main > .wp-block-columns.home-section--organizers .wp-block-columns,
  .home .site-main > .wp-block-columns.home-section--partners .wp-block-columns { justify-content: center; }
  .home .site-main > .wp-block-columns.home-section--partners {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .home .site-main > .wp-block-columns.home-section--organizers .logo-partner,
  .home .site-main > .wp-block-columns.home-section--partners .logo-partner { flex-basis: calc(50% - 12px) !important; }
}
@media (max-width: 480px) {
  .home .home-calendar__grid { grid-template-columns: 1fr; }
  .home .home-calendar__item + .home-calendar__item { border-left: 0; border-top: 1px solid #e8ddd7; padding-top: 22px; }
}


/* Homepage image cards: portrait 4:5 with white overlay titles. */
.home .site-main .swiper-personaggi .img-zoom {
  aspect-ratio: 4 / 5;
}
.home .site-main .swiper-personaggi .titolo-post,
.home .site-main .swiper-personaggi .titolo-post a {
  color: #fff !important;
}

/* Temporarily hide the generated homepage calendar section. */
.home .home-calendar {
  display: none !important;
}


/* White space inside the three homepage sections; override Bootstrap's py-3 utility. */
.home .site-main > .wp-block-columns.home-section--attractions,
.home .site-main > .wp-block-columns.home-section--events,
.home .site-main > .wp-block-columns.home-section--locations {
  margin-block: 0 !important;
  padding-block: clamp(56px, 7vw, 96px) !important;
  background: #fff;
}
.home .site-main > .wp-block-columns.home-section--attractions {
  padding-top: clamp(32px, 4.5vw, 64px) !important;
  padding-bottom: clamp(16px, 2vw, 28px) !important;
}


/* Let the magic section background span the viewport even when nested in the attractions block. */
.home .site-main .wp-block-columns.home-section--magic {
  position: relative;
  z-index: 0;
  isolation: isolate;
  padding-top: clamp(48px, 5vw, 72px) !important;
  padding-bottom: clamp(12px, 1.5vw, 20px) !important;
  background: transparent;
}
.home .site-main .home-section--attractions .wp-block-columns.home-section--magic {
  padding-inline: 0;
}
.home .site-main .home-section--attractions .home-attractions__intro {
  padding-top: clamp(56px, 7vw, 96px);
  margin-inline: auto;
  text-align: center;
}
.home .site-main > .wp-block-columns:is(.home-section--events, .home-section--locations) :is(h2.wp-block-heading, p, .home-section__eyebrow) {
  text-align: center !important;
}
.home .site-main > .wp-block-columns:is(.home-section--events, .home-section--locations) .bg-white > .row > .col-lg-10 {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  text-align: center !important;
}
.home .site-main > .wp-block-columns:is(.home-section--attractions, .home-section--events, .home-section--locations) .wp-block-buttons {
  justify-content: center !important;
}
.home .site-main .wp-block-columns.home-section--magic > .wp-block-column > :last-child {
  margin-bottom: 0;
}
.home .site-main .wp-block-columns.home-section--magic::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset-block: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: #f5f1ec;
}

/* Extra space above the edition heading, using the attractions section background. */
.home .home-attractions__heading {
  padding-top: clamp(12px, 1.5vw, 22px) !important;
  background: #fff;
}

/* Use one bottom fade on every homepage carousel card. */
body.home .site-main :is(.home-section--attractions, .home-section--events, .home-section--locations) .cont-loop .img-zoom,
body.home .site-main .cont-loop .img-zoom {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
}
body.home .site-main :is(.home-section--attractions, .home-section--events, .home-section--locations) .cont-loop .img-zoom::before,
body.home .site-main .cont-loop .img-zoom::before {
  content: none !important;
  display: none !important;
}
body.home .site-main :is(.home-section--attractions, .home-section--events, .home-section--locations) .cont-loop .img-zoom::after,
body.home .site-main .cont-loop .img-zoom::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  background: linear-gradient(180deg, transparent 0%, transparent 32%, rgba(0, 0, 0, 0.22) 48%, rgba(0, 0, 0, 0.68) 72%, rgba(0, 0, 0, 0.92) 100%) !important;
  mix-blend-mode: normal !important;
  opacity: 1 !important;
  pointer-events: none !important;
}
body.home .site-main .cont-loop .img-zoom > img {
  position: relative !important;
  z-index: 0 !important;
}
body.home .site-main .cont-loop .img-zoom .meta-article {
  position: absolute !important;
  z-index: 3 !important;
}

/* Give the mobile hero room below the menu and crop the video as a background. */
@media (max-width: 767px) {
  body.home .video-block {
    height: 540px !important;
    height: max(540px, 72svh) !important;
    min-height: 540px !important;
    max-height: none !important;
    aspect-ratio: auto !important;
  }
  body.home .video-block .video-wrapper iframe {
    inset: auto !important;
    top: 50% !important;
    left: 50% !important;
    width: max(960px, 177.78svh) !important;
    height: max(540px, 100svh) !important;
    max-width: none !important;
    transform: translate(-50%, -50%) !important;
  }
  body.home .video-block .video-overlay {
    padding: clamp(88px, 15svh, 128px) 20px 32px;
  }
}

/* Match the content edges of the Event and Attraction detail containers. */
body.home .video-block .video-overlay {
  padding-inline: 0;
}
body.home .video-block .video-overlay > .container {
  width: calc(100% - 2 * var(--home-layout-gutter));
  max-width: 1410px;
  margin-inline: auto;
  padding-inline: 0 !important;
}
