@font-face {
  font-family: 'Sisteron';
  src: url('../assets/fonts/Sisteron.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Aleo';
  src: url('../assets/fonts/Aleo-VariableFont_wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

body h1,
body h2,
body .caption-mobile h1,
body .mpfy-title h1 {
  font-family: 'Sisteron', Georgia, serif !important;
  letter-spacing: 0.1rem !important;
}

body .home-section__eyebrow,
body .home-attractions__eyebrow,
body .home-calendar__eyebrow,
body .events-eyebrow,
body .markets-eyebrow,
body .contact-page__eyebrow,
body .section-label,
body.home .site-main .has-small-font-size,
body .home-calendar__item h3,
body .titolo-post,
body .titolo-post a,
body.home .site-main .swiper-personaggi .titolo-post,
body.term-mercati .markets-list__slider .titolo-post,
body.single-attrazioni .attraction-related .titolo-post,
body .card-event .card-title,
body .card-event .card-title a,
body .wp-block-post-title,
body .wp-block-post-title a,
body .btn,
body .btn.interstate-compressed,
body .wp-block-button__link,
body .btn-cta .nav-link,
body button,
body input[type='button'],
body input[type='submit'],
body .single-attrazioni .sidebar-servizi .btn,
body .single-attrazioni .mobile-filters-bar .btn {
  font-family: 'Aleo', Georgia, serif !important;
}

body #mainNav .nav-link,
body .menu-responsive .nav-link,
body .header-sopra a,
body .pre-footer,
body .pre-footer :is(h3, h4, p, a, span, strong, li, small):not(.ti):not(.ph),
body #contact-form,
body #contact-form .wrapper-contact,
body #contact-form :is(p, label, a, span, strong, li, input, textarea):not(.ti):not(.ph),
body #wrapper-footer-full,
body #wrapper-footer-full :is(h3, h4, h5, h6, p, a, span, strong, li, small):not(.ti):not(.ph),
body .sopra-footer,
body .sopra-footer :is(h3, h4, p, a, span, strong, li, small):not(.ti):not(.ph) {
  font-family: 'Aleo', Georgia, serif !important;
}

body .card-event .interstate-compressed:has(> .ti-map-2),
body.post-type-archive-eventi .card-event .card-body .col-xxl-9 > div:has(> .ti-map-2) {
  font-family: 'Aleo', Georgia, serif !important;
}

body .prefooter,
body .prefooter :not(i):not(.ti):not(.ph):not(.fa):not(.fas):not(.far):not(.fab):not(h1):not(h2) {
  font-family: 'Aleo', Georgia, serif !important;
}

body .pre-footer .prefooter h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35em;
}

body .prefooter .home-prefooter__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid #a40709;
  border-radius: 50%;
  color: #a40709;
  font-size: 1.3rem;
  text-decoration: none;
}

body .prefooter .home-prefooter__social:hover {
  background: #a40709;
  color: #fff;
}

body .sopra-footer .interstate-compressed,
body #wrapper-footer-full .footer-content .menu a.nav-link,
body #wrapper-footer-full .sotto-footer .menu a.nav-link {
  font-family: 'Aleo', Georgia, serif !important;
}

body .sopra-footer .interstate-compressed {
  font-size: 1.1rem !important;
}

/* Keep headings and card titles slightly more compact across the site. */
body :is(h1, h2, h3, h4, h5, h6, .entry-title, .page-title, .wp-block-post-title, .titolo-post, .card-title, .widget-title, .day-title) {
  zoom: .92;
}

/* Use the same gold accent for every eyebrow label. */
body :is(.home-section__eyebrow, .home-attractions__eyebrow, .home-calendar__eyebrow, .events-eyebrow, .markets-eyebrow, .contact-page__eyebrow, .section-label),
body.home .site-main :is(.has-small-font-size, .section-label) {
  color: #80651f !important;
}

@media (min-width: 1200px) {
  body .header-centered #mainNav > .container > .row > .col-5:first-child > .col-12 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  body .header-centered #mainNav > .container > .row.align-items-center {
    align-items: flex-end !important;
  }

  /* Both menu groups share one 38px row at the lower part of the logo. */
  body .header-centered #mainNav > .container > .row > .col-5.d-xl-block .navbar-nav {
    align-items: center;
    column-gap: 8px;
    margin-bottom: 0;
    min-height: 38px;
    transform: translateY(-12px);
  }

  /* Keep an equal, clear gap between the centered logo and both menu groups. */
  body .header-centered #mainNav > .container > .row > .col-5:first-child .navbar-nav {
    margin-right: clamp(12px, 1.6vw, 30px) !important;
  }

  body .header-centered #mainNav .menu-right-cluster .menu-destra {
    margin-left: clamp(12px, 1.6vw, 30px);
  }

  body .header-centered #mainNav > .container > .row > .col-5.d-xl-block .navbar-nav > li > .nav-link {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    top: 0;
    transform: none;
  }

  body .header-centered #mainNav .logo-sticky .custom-logo-link {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  body .header-centered #mainNav .logo-sticky .custom-logo-link img {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100%;
    max-height: 80px;
    margin-inline: auto;
    object-fit: contain;
  }

  body #mainNav .navbar-nav .nav-link {
    font-size: .92rem !important;
    line-height: 1.25;
    position: relative;
    top: 0;
  }

  body .header-centered #mainNav .menu-right-cluster {
    display: flex !important;
    align-items: center;
    gap: 8px;
  }

  body .header-centered #mainNav .menu-right-cluster .menu-destra {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
  }

  body .header-centered #mainNav .menu-right-cluster .navbar-nav {
    flex-wrap: nowrap;
  }

  body .header-centered #mainNav .menu-right-cluster .nav-link {
    padding-inline: 8px;
    white-space: nowrap;
  }

  body .header-centered #mainNav .menu-right-cluster .language-bar {
    display: none;
  }

  body .header-centered #mainNav .menu-right-cluster .menu-utility-controls {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 12px;
    margin-left: 14px;
    transform: translate(8px, -12px);
  }

  body .header-centered #mainNav .menu-destra .navbar-nav > li:has(> a[href*='/organizza-il-tuo-viaggio']) {
    display: none !important;
  }

  body .header-centered #mainNav .menu-utility-controls .menu-trip-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 8px;
    border-radius: 999px;
    background: #d9ad45;
    color: #17130a !important;
    font-family: 'Aleo', Georgia, serif !important;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .025em;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
  }

  body .header-centered #mainNav .menu-utility-controls .menu-trip-button:hover {
    background: #c79a33;
    color: #111 !important;
  }

  body .header-centered #mainNav .menu-right-cluster .search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 10px;
    border-right: 1px solid rgb(255 255 255 / 45%);
    color: #fff;
    font-size: 1.15rem;
    line-height: 1;
  }

  body .header-centered #mainNav .menu-right-cluster .language-selector {
    display: flex;
    align-items: center;
    color: #fff;
    font-size: .92rem;
    line-height: 1;
  }

  body .header-centered #mainNav .menu-right-cluster .language-selector a {
    padding: 0 3px !important;
    color: #fff !important;
    line-height: 1 !important;
  }

  body .header-centered #mainNav .menu-right-cluster .wpml-ls-legacy-list-horizontal {
    font-size: 1rem !important;
  }
}

@media (max-width: 1199px) {
  body .header-centered .menu-responsive-overlay .mobile-trip-action {
    margin-top: 24px;
    text-align: left;
  }

  body .header-centered .menu-responsive-overlay .menu-trip-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    max-width: 100%;
    padding: 10px 18px;
    border-radius: 999px;
    background: #d9ad45;
    color: #17130a !important;
    font-family: 'Aleo', Georgia, serif !important;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
  }

  body .header-centered .menu-responsive-overlay .menu-trip-button:hover,
  body .header-centered .menu-responsive-overlay .menu-trip-button:focus-visible {
    background: #c79a33;
    color: #111 !important;
  }

  body .menu-responsive .nav-link {
    font-size: 1rem !important;
  }

  body .header-centered #mainNav .language-selector {
    font-size: .95rem;
  }

  body .header-centered #mainNav .wpml-ls-legacy-list-horizontal a {
    padding: 0 2px !important;
  }
}

/* Tablet header logo: 60% of its original size, preserving proportions. */
@media (min-width: 600px) and (max-width: 1199px) {
  body .header-centered #mainNav .logo-sticky .custom-logo-link img {
    zoom: .6;
  }
}

/* Site wide heading scale and title color. */
body :is(h1, h2, h3, h4, h5, h6, .entry-title, .page-title, .wp-block-post-title, .titolo-post, .card-title, .widget-title, .day-title) {
  zoom: .92;
  color: #671205 !important;
}

/* Keep titles white when they sit over dark or photographic hero/card imagery. */
body.home .video-block :is(h1, h2, h3),
body.home .site-main > .wp-block-cover:first-child :is(h1, h2),
body.post-type-archive-attrazioni .immagine-cover h1,
body.post-type-archive-attrazioni .cont-loop .titolo-post,
body.page-id-2532 .immagine-cover h1,
body.post-type-archive-eventi .immagine-cover h1,
body.term-mercati .immagine-cover h1,
body.term-mercati .markets-list__slider .titolo-post,
body.single-attrazioni .attraction-related .titolo-post,
body.single-eventi #single-wrapper .swiper-attrazioni .titolo-post,
body.single-localita .location-hero h1,
body.page-id-3876 .immagine-cover h1,
body.page-id-2430 .immagine-cover h1 {
  color: #fff !important;
}

/* Category labels on attraction cards: clearer separation and softer corners. */
body .swiper-personaggi .categoria-tag,
body.post-type-archive-attrazioni .cont-loop .categoria-tag,
body.post-type-archive-localita .swiper-attrazioni .categoria-tag,
body.single-attrazioni .attraction-related .categoria-tag,
body.single-eventi #single-wrapper .swiper-attrazioni .categoria-tag {
  display: inline-block;
  margin-bottom: 10px !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  letter-spacing: .06em;
}

body .swiper-personaggi .categoria-tag + .titolo-post,
body.post-type-archive-attrazioni .cont-loop .categoria-tag + .titolo-post,
body.post-type-archive-localita .swiper-attrazioni .categoria-tag + .titolo-post,
body.single-attrazioni .attraction-related .categoria-tag + .titolo-post,
body.single-eventi #single-wrapper .swiper-attrazioni .categoria-tag + .titolo-post {
  margin-top: 2px !important;
}

/* More breathing room between label, title, and dates on image cards. */
body .cont-loop .meta-article .categoria-tag {
  margin-bottom: 16px !important;
}
body .cont-loop .meta-article .titolo-post {
  margin-bottom: 12px !important;
}


/* Tablet content gutters, including smaller portrait tablets. */
@media (min-width: 600px) and (max-width: 1023px) {
  body {
    --tablet-content-gutter: clamp(28px, 4.7vw, 48px);
  }

  body #page-wrapper > .container,
  body #page-wrapper > #content > .container,
  body #single-wrapper > .container,
  body:not(.home) #full-width-page-wrapper > #content.container {
    width: calc(100% - var(--tablet-content-gutter) - var(--tablet-content-gutter));
  }

  body.home {
    --home-layout-gutter: calc(var(--tablet-content-gutter) + 15px);
  }
}

@media (min-width: 600px) and (max-width: 767px) {
  body.home .site-main > .wp-block-group,
  body.home .site-main > .wp-block-columns,
  body.home .site-main > .wp-block-query,
  body.home .site-main > .wp-block-gallery {
    padding-inline: var(--home-layout-gutter);
  }

  body.home .site-main > .home-calendar {
    padding-inline: var(--home-layout-gutter);
  }
}

/* Keep the home sections on the same content edge as detail pages. */
@media (max-width: 1023px) {
  body.home .site-main > .wp-block-columns.home-section--attractions,
  body.home .site-main > .wp-block-columns.home-section--discover {
    padding-inline: var(--home-layout-gutter);
  }

  body.home .site-main > .wp-block-columns.home-section--events .swiper-personaggi,
  body.home .site-main > .wp-block-columns.home-section--locations .swiper-personaggi {
    width: 100%;
    margin-inline: 0;
  }
}

/* Laptop content gutters; keep large desktop layouts unchanged. */
@media (min-width: 1024px) and (max-width: 1535px) {
  body {
    --laptop-content-gutter: clamp(48px, 4.5vw, 64px);
  }

  body #page-wrapper > .container,
  body #page-wrapper > #content > .container,
  body #single-wrapper > .container,
  body:not(.home) #full-width-page-wrapper > #content.container {
    width: calc(100% - var(--laptop-content-gutter) - var(--laptop-content-gutter));
  }

  body.home {
    --home-layout-gutter: calc(var(--laptop-content-gutter) + 15px);
  }
}

/* Give all archive content and hero text the homepage gutters. */
body.archive {
  --archive-content-gutter: 20px;
}

@media (min-width: 600px) and (max-width: 1023px) {
  body.archive {
    --archive-content-gutter: clamp(28px, 4.7vw, 48px);
  }
}

@media (min-width: 1024px) and (max-width: 1535px) {
  body.archive {
    --archive-content-gutter: clamp(48px, 4.5vw, 64px);
  }
}

@media (min-width: 1536px) {
  body.archive {
    --archive-content-gutter: max(64px, calc((100vw - 1410px) / 2));
  }
}

body.archive #page-wrapper > .container,
body.archive .attractions-location > .container,
body.archive .immagine-cover > .container {
  width: calc(100% - 2 * var(--archive-content-gutter));
  max-width: 1410px;
  margin-inline: auto;
  padding-inline: 0;
}

/* The Tirol standard page has extra nested padding around its content. */
body.page-id-3876 {
  --tirol-content-gutter: 20px;
}

@media (min-width: 600px) and (max-width: 1023px) {
  body.page-id-3876 { --tirol-content-gutter: clamp(28px, 4.7vw, 48px); }
}

@media (min-width: 1024px) and (max-width: 1535px) {
  body.page-id-3876 { --tirol-content-gutter: clamp(48px, 4.5vw, 64px); }
}

@media (min-width: 1536px) {
  body.page-id-3876 { --tirol-content-gutter: max(64px, calc((100vw - 1410px) / 2)); }
}

body.page-id-3876 #content > .container,
body.page-id-3876 .immagine-cover > .container {
  width: calc(100% - 2 * var(--tirol-content-gutter));
  max-width: 1410px;
  margin-inline: auto;
  padding-inline: 0;
}

body.page-id-3876 #content > .container > .row { margin-inline: 0; }
body.page-id-3876 #primary { padding-inline: 0; }
body.page-id-3876 #main > .page-content { padding-inline: 0; }

/* Center the title group on internal-page image headers. */
body:not(.home) :is(.immagine-cover, .event-hero, .attraction-hero) {
  display: flex;
  align-items: center !important;
}

body:not(.home) .immagine-cover .titolo,
body:not(.home) .immagine-cover .titolo .row > .col-12,
body:not(.home) :is(.event-hero__inner, .attraction-hero__inner) {
  text-align: center !important;
}

body:not(.home) .immagine-cover .titolo .row > .col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

body:not(.home) :is(.immagine-cover, .event-hero, .attraction-hero) h1 {
  color: #fff !important;
  font-size: clamp(1.9rem, 3vw, 3.2rem) !important;
  line-height: 1.12;
}

body:not(.home) .immagine-cover .titolo-breadcrumb p,
body:not(.home) .event-hero__inner > p,
body:not(.home) .attraction-hero__inner > p {
  max-width: 720px;
  margin-inline: auto !important;
  color: #fff !important;
}

body:not(.home) :is(.immagine-cover, .event-hero, .attraction-hero) .breadcrumbs,
body:not(.home) :is(.immagine-cover, .event-hero, .attraction-hero) .breadcrumbs :is(a, span, i) {
  color: #fff !important;
}

/* Legacy sidebar pages use a breadcrumb bar instead of an image header. */
body:not(.home) .barra-breadcrumb {
  background-color: #671205;
}

body:not(.home) .barra-breadcrumb .row > [class*='col-'] {
  flex: 0 0 100%;
  max-width: 100%;
  text-align: center !important;
}

body:not(.home) .barra-breadcrumb h1 {
  color: #fff !important;
  font-size: clamp(1.9rem, 3vw, 3.2rem) !important;
}

body:not(.home) .barra-breadcrumb .breadcrumbs,
body:not(.home) .barra-breadcrumb .breadcrumbs :is(a, span, i) {
  color: #fff !important;
}

/* Information links on detail pages use the homepage button shape in gold. */
body:is(.single-attrazioni, .single-eventi, .single-localita, .single-ristoranti) a.btn-secondary[href='#contact-form'] {
  background: #d9ad45 !important;
  border: 1px solid #d9ad45 !important;
  border-radius: 999px !important;
  color: #111 !important;
  font-family: 'Aleo', Georgia, serif !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  letter-spacing: .035em;
  padding: 12px 28px !important;
  text-transform: uppercase;
}

body:is(.single-attrazioni, .single-eventi, .single-localita, .single-ristoranti) a.btn-secondary[href='#contact-form']:hover {
  background: #c79a33 !important;
  border-color: #c79a33 !important;
  color: #111 !important;
}

body:is(.single-attrazioni, .single-eventi, .single-localita, .single-ristoranti) a.btn-secondary[href='#contact-form'] i {
  color: inherit !important;
}

/* Ticket calls to action match the information buttons, with a Christmas green background. */
body:is(.single-attrazioni, .single-eventi) a.btn-primary[href='#giorni-orari'] {
  background: #176b3a !important;
  border: 1px solid #176b3a !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-family: 'Aleo', Georgia, serif !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  letter-spacing: .035em;
  padding: 12px 28px !important;
  text-transform: uppercase;
}

body:is(.single-attrazioni, .single-eventi) a.btn-primary[href='#giorni-orari']:hover {
  background: #10542d !important;
  border-color: #10542d !important;
  color: #fff !important;
}

body:is(.single-attrazioni, .single-eventi) a.btn-primary[href='#giorni-orari'] i {
  color: inherit !important;
}

/* Card carousels: same portrait cards, typography and navigation on every page. */
body :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .img-zoom {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden;
  border-radius: 10px !important;
}
body :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .img-zoom > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .titolo-post,
body :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .titolo-post a {
  color: #fff !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: clamp(1rem, 1.3vw, 1.35rem) !important;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .025em !important;
}
body :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .datetime {
  margin-top: 5px;
  color: #fff;
  font-size: .9rem;
  letter-spacing: .015em;
}
body :is(.swiper-personaggi, .swiper-attrazioni) .swiper-pagination-progressbar {
  position: relative !important;
  inset: auto !important;
  display: block;
  width: 100%;
  height: 3px;
  margin-top: 14px;
}
body :is(.swiper-personaggi, .swiper-attrazioni) .swiper-pagination-progressbar-fill {
  background: #a5080b;
}
body .swiper-controls.carousel-controls {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 9px;
  width: 100%;
  margin-top: 18px;
}
body .swiper-controls.carousel-controls :is(.swiper-button-prev, .swiper-button-next) {
  position: relative !important;
  inset: auto !important;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  border: 1px solid #a5080b !important;
  border-radius: 50% !important;
  background: #a5080b !important;
  color: #fff !important;
}
body .swiper-controls.carousel-controls :is(.swiper-button-prev, .swiper-button-next)::after {
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Keep internal page titles centered at every viewport, including wide hero templates. */
body:not(.home) .page-title {
  text-align: center !important;
  margin-inline: auto !important;
}
body:not(.home) .immagine-cover .titolo .row > .titolo-breadcrumb {
  flex: 0 0 100%;
  max-width: 100%;
  text-align: center !important;
}

/* Give carousel titles clear priority over dates on phones. */
@media (max-width: 767px) {
  body #page :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .meta-article .titolo-post,
  body #page :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .meta-article .titolo-post a {
    font-size: 1.6rem !important;
    line-height: 1.12 !important;
    zoom: 1 !important;
  }
  body #page :is(.swiper-personaggi, .swiper-attrazioni) .cont-loop .meta-article .datetime.testo-md {
    font-size: 1.05rem !important;
    line-height: 1.3;
  }
  body.home #page .news-card .card-title {
    font-size: 1.4rem !important;
    zoom: 1 !important;
  }
}

/* Keep every card title in Aleo across home, archives, sliders and detail pages. */
body #page :is(.titolo-post, .card-title, .blog-card__title, .wp-block-post-title, .contact-infopoint-card h4),
body #page :is(.titolo-post, .card-title, .blog-card__title, .wp-block-post-title) a,
body #page :is(.news-card .card-title, .contact-infopoint-card h4 a) {
  font-family: 'Aleo', Georgia, serif !important;
}
