/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */
body {
  font-size: 17px;
}
.e-n-tab-title i {
  font-family: "Font Awesome 5 Free" !important;
  font-style: normal !important;
}

.e-n-tab-title .far {
  font-weight: 400 !important;
}

.e-n-tab-title .fas {
  font-weight: 900 !important;
}
i.fa-facebook,
i.fa-twitter,
i.fa-linkedin,
i.fa-whatsapp,
i.fa-pinterest-p,
i.fa-telegram {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}
.entry-content a,
.elementor-widget-text-editor a,
.elementor-icon-list-text a,
.elementor-post__excerpt a,
.elementor-heading-title a {
  color: #0B2E63; /* colore normale */
  text-decoration: none;
}
.entry-content a:hover,
.elementor-widget-text-editor a:hover,
.elementor-icon-list-text a:hover,
.elementor-post__excerpt a:hover,
.elementor-heading-title a:hover {
  text-decoration: underline;
}

body.uc-menu-open .cky-btn-revisit-wrapper,
body.uc-menu-open .ue-scroll-to {
  display: none !important;
}
b, strong {
  color: #000;
  font-weight: 500 !important;
}


.lista-custom2 li {
  margin-bottom: 10px;
  line-height: 1.6;
  padding-left: 10px
}

.lista-custom2 li::marker {
  content: "•";
  color: #E83E72;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
  font-size: 22px;
  line-height: 1;
 
}

.lista-custom2 strong {
  color: #0B2E63 !important;
  font-weight: 700;
}
.lista-custom2 b {
  color: #0B2E63 !important;
  font-weight: 700;
}

a { 
transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}
.ue-menu > li a{
  transition: color .15s ease, background-color .15s ease;
}
.jr-megabutton-item{
    transition: color .15s ease, background-color .15s ease, border-color .15s ease;
    will-change: background-color, color;
    transform: translateZ(0);
}
.wp-block-list ul li a{
  color: #0B2E63; 
}
.wp-block-list ul li a:hover{
  color: #0B2E63;
  text-decoration: underline;
}
p a{
  color: #0B2E63; 
}
p a:hover{
  color: #0B2E63;
  text-decoration: underline;
}
a.elementor-button{
    transition:
        background-color .15s ease,
        color .15s ease,
        border-color .15s ease,
        box-shadow .15s ease !important;
}

a.elementor-button i{
    transition: color .15s ease !important;
}

a.elementor-button svg,
a.elementor-button svg *{
    transition: fill .15s ease, stroke .15s ease, color .15s ease !important;
}

/*Modifiche tiqets*/
.bg-primary-button-bg{
    background:#E83E72 !important;
}
.bg-primary-button-bg:hover{
    background:#D92F67 !important;
}

/* iOS tap fix */
a[href],
button,
[role="button"],
.elementor-button {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
/* iOS FIX – forza il click sul link */
.elementor-button * {
  pointer-events: none;
}

.elementor-button {
  pointer-events: auto;
}
/*Anchor scroll offset desktop*/
@media only screen and (min-width: 992px){
.elementor-menu-anchor { 
 top: -85px;
 position: relative;
}
body:not(.elementor-editor-active) .elementor-widget-menu-anchor {
   position: relative;
   z-index: -1;
 }
 body:not(.elementor-editor-active) .elementor-menu-anchor:before {
   content: "";
   display: block;
   height: 10px; 
   margin: -10px 0 0; 
   visibility: hidden;
   pointer-events: none;
 }
}
/*Anchor scroll offset mobile*/
@media only screen and (max-width: 600px) {
	.elementor-menu-anchor { 
 top: -60px;
 position: relative;
}
body:not(.elementor-editor-active) .elementor-widget-menu-anchor {
   position: relative;
   z-index: -1;
 }
 body:not(.elementor-editor-active) .elementor-menu-anchor:before {
   content: "";
   display: block;
   height: 10px !important; 
   margin: -10px 0 0 !important; 
   visibility: hidden;
   pointer-events: none;
 }
}
/*Modifiche Faq Accordion*/
.schema-faq-question {
  display: block;
  color: var(--Primary);
  padding: .20em 0;
  font-size: 1.25em;
  cursor: pointer;
  background: #f9f9f9;
  margin-bottom: 10px;
  border-radius: 10px;
  padding: .105em .395em !important;
}
.wp-block-yoast-faq-block .schema-faq-question button{
	all: unset !important;
	padding: 10px !important;
	font-size: 16px !important;
	color: #000 !important;
}
.wp-block-yoast-faq-block .schema-faq-question button:focus svg {
  outline: none !important;
}
.schema-faq.wp-block-yoast-faq-block.customfaq {
  margin-bottom: 25px;
}
/*Modifiche gutenkit*/

.gkit-icon-box {
  padding: 25px 20px !important;
}

/* JustParigi Custom Marker */

#custom-marker ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

#custom-marker li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 12px;
}

#custom-marker li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #E83E72;
}

#custom-marker li a {
  color: #0B2E63;
  text-decoration: none;
}

#custom-marker li a:hover {
  text-decoration: underline;
}

/* JustParigi Arrow Marker */

#custom-marker-arrow ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

#custom-marker-arrow li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 12px;
}

#custom-marker-arrow li::before {
  content: "›";
  position: absolute;
  left: 0;
  top: 4px;
  color: #E83E72;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

#custom-marker-arrow li a {
  color: #0B2E63;
  text-decoration: none;
}

#custom-marker-arrow li a:hover {
  color: #E83E72;
  text-decoration: underline;
}
/* Ticket custom marker */
#ticket-list ul {
  list-style: none !important; /* rimuove i bullet standard */
  padding-left: 0;
  margin: 0;
}

#ticket-list li {
  position: relative;
  padding-left: 38px; 
  margin-bottom: 0.9em;
  font-size: 16px;
  line-height: 1.6;
}

/* Icona ticket */
#ticket-list li::before {
  content: "\f145"; 
  font-family: "Font Awesome 6 Free";
  font-weight: 600;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%); 
  font-size: 22px; 
  color: #0B2E63;
}

/* Link stile coerente con lista Elementor */
#ticket-list li a {
  color: #0B2E63;
  font-weight: 400 !important;
 }
#ticket-list li a:hover {
  text-decoration: underline;
}
/*Eliminare ancho invisibile*/
.elementor-menu-anchor {
  position: relative !important;
  z-index: 0 !important;
}

.elementor-menu-anchor:before {
  content: "";
  display: block;
  height: 0 !important;
  margin-top: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/*STILE TABELLA RESPONSIVE*/
.table-scroll-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.09);
}

.table-scroll-wrapper::-webkit-scrollbar {
  height: 8px;
}
.table-scroll-wrapper::-webkit-scrollbar-thumb {
  background: #c5c5c5;
  border-radius: 4px;
}

.table-justroma {
  width: 100%;
  min-width: 800px; /* per attivare lo scroll su mobile */
  border-collapse: collapse;
  font-size: 15px;
  color: #313131;
}
.table-justroma thead th {
  border-top: none !important;
}

.table-justroma thead {
  background-color: #E83E72;
  color: #0B2E63;
}

.table-justroma th,
.table-justroma td {
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: middle;
}

.table-justroma th {
  font-weight: 700;
  text-align: center;
  font-size: 22px;
  color: #fff;
}
/* Larghezza minima prima colonna */
.table-justroma td:first-child,
.table-justroma th:first-child {
  min-width: 170px;
  width: 170px; /* mantiene proporzione anche su desktop */
}
.table-justroma tr:nth-child(even) {
  background-color: #fafafa;
}
/* Righe alternate corrette per tabella JustRoma */
.table-justroma tr:nth-child(odd) td {
  background-color: #ffffff !important;
}

.table-justroma tr:nth-child(even) td {
  background-color: #fafafa !important;
}
.table-justroma td strong {
  color: #0B2E63;
}
/* Effetto hover per le righe della tabella JustRoma */
.table-justroma tbody tr:hover td {
  *background-color: #F5F7FA !important; /* colore di hover */
}
/* Rimuove il bordo esterno della tabella JustRoma */
.table-justroma th:first-child,
.table-justroma td:first-child {
  border-left: none;
}

.table-justroma th:last-child,
.table-justroma td:last-child {
  border-right: none;
}

.table-justroma tr:first-child th {
  border-top: none;
}

.table-justroma tr:last-child td {
  border-bottom: none;
}
.table-scroll-wrapper {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.table-justroma {
  margin-bottom: 0 !important;
}
.table-justroma th img.pass-img {
  display: block;
  margin: 0 auto 8px;
  height: 60px;
  width: auto;
  max-height: 60px;
  object-fit: contain;
  border: 2px solid #ffffff;       /* bordo bianco */
  border-radius: 6px;              /* angoli arrotondati */
  background-color: #ffffff;       /* fondo neutro per loghi con trasparenza */
  padding: 4px;                    /* piccolo margine interno */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.10); /* ombra leggera */
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

/* Effetto hover elegante */
.table-justroma th img.pass-img:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);
}
/* Riga finale pulsanti */
.table-justroma .buy-row td {
  text-align: center;
  padding: 16px 10px;
  background: #f9f9f9;
}

.table-justroma .buy-row td:first-child {
  background: #fff;
  font-weight: 600;
  color: #0B2E63;
}
/* --- Disattiva colore unico del thead --- */
.table-justroma thead {
  background: none !important;
  color: inherit;
}
.table-justroma thead th:first-child {
  background: #fafafa !important; /* sfondo grigio chiaro */
}
/* --- Colori individuali per le 3 card --- */
.table-justroma thead tr > th:nth-of-type(2) {
  background-color: #CE003B !important; /* Roma Pass */
  color: #fff !important;
  border-top-left-radius: 8px;
}

.table-justroma thead tr > th:nth-of-type(3) {
  background-color: #FCC200 !important; /* Omnia Card */
  color: #fff !important;
}

.table-justroma thead tr > th:nth-of-type(4) {
  background-color: #E5533B !important; /* Rome Tourist Card */
  color: #fff !important;
  border-top-right-radius: 8px;
}

/* --- Per garantire visibilità testo e immagine --- */
.table-justroma thead th {
  text-align: center;
  font-weight: 700;
  font-size: 22px;
  padding: 16px 20px;
}

/* --- Immagini centrate con bordo --- */
.table-justroma th img.pass-img {
  display: block;
  margin: 0 auto 8px;
  height: 60px;
  width: auto;
  max-height: 60px;
  object-fit: contain;
  border: 2px solid #fff;
  border-radius: 6px;
  background-color: #fff;
  padding: 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}


@media (max-width: 767px) {
  /* Intera card cliccabile quando ha classe .linkable */
  .uc_carousel_item.linkable {
      position: relative;
      cursor: pointer;
  }

  .uc_carousel_item.linkable::after {
      content: "";
      position: absolute;
      inset: 0; /* copre tutta la card */
      z-index: 5;
  }

}


@media (min-width: 768px){
  .archive-wrap .archive-desc{ -webkit-line-clamp:unset; }
  .archive-readmore{ display:none; } /* visibile solo su mobile */
}
/* DESKTOP: testo completo */
@media (min-width: 768px){
  .archive-desc{
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
  }
}

/* Tabella metro*/
.table-metro {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 15px;
  line-height: 1.7;
  text-align: left;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.table-metro thead th {
  border-top: none !important;
}

.table-metro th,
.table-metro td {
  padding: 18px 20px;
  vertical-align: top;
}

.table-metro th {
  text-align: center;
  font-weight: 700;
  font-size: 16px;
}

.table-metro td:first-child {
  font-weight: 600;
  width: 120px;
  color: #1a1a1a;
}

/* ✅ Lista verticale con scroll */
.scroll-stazioni {
  list-style: none;
  margin: 0;
  padding: 0 10px 0 0;
  max-height: 310px; /* altezza visibile */
  overflow-y: auto;
}

.scroll-stazioni li {
  margin-bottom: 4px;
  padding-left: 6px;
  border-left: 3px solid transparent;
}

/* ✅ Scrollbar sottile */
.scroll-stazioni::-webkit-scrollbar {
  width: 6px;
}
.scroll-stazioni::-webkit-scrollbar-track {
  background: #f2f2f2;
  border-radius: 3px;
}
.scroll-stazioni::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 3px;
}
.scroll-stazioni::-webkit-scrollbar-thumb:hover {
  background: #999;
}

/* Responsive */
@media (max-width: 768px) {
  .scroll-stazioni {
    max-height: 400px;
  }
}

/* fine tabella metro*/


/* Pulsanti */
.btn-pass {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 6px;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  transition: 0.2s;
}

.btn-pass.roma { background: #0B2E63; color: #ffffff; }
.btn-pass.omnia { background: #0B2E63; color: #ffffff; }
.btn-pass.tourist { background: #0B2E63; color: #ffffff; }

.btn-pass:hover {
  background: #E83E72; 
  color: #ffffff;
}
/* Aumenta padding solo per la riga dei pulsanti */
.table-justroma .buy-row td {
  padding: 24px 10px; /* aumentato da 16px a 24px */
}


/* Responsive tip: rendi la tabella più maneggevole sui device piccoli */
@media (max-width: 480px) {
  .table-justroma {
    font-size: 14px;
  }
  .table-justroma th {
  font-size: 18px;
 }
}
/*FINE STILE TABELLA RESPONSIVE*/

i.fas.fa-ticket-alt::before,
i.fa-solid.fa-ticket-alt::before {
  content: "\f145" !important;
  font-family: "Font Awesome 6 Free" !important;
}
/* Regola unica per i widget con classe icon-circle-style */
.elementor-element.icon-circle-style > .elementor-widget-container {
  border-radius: 10px !important;
  box-sizing: border-box !important;
  border: 1px solid #ebebeb !important;
}

/*Sfondo icona circolare bianco*/
.icon-circle-style .elementor-icon {
  background: #ffffff;
  border-radius: 50%;
  padding: 20px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  display: inline-block;
  transition: box-shadow 0.3s ease;
}
/*Banner nascosti*/
.future-banner {
  display: none;
}

/*immagini titoli sezioni*/
.icona-sezione .elementor-image-box-img {
  background-color: #fff;
  border-radius: 50%;
  width: 80px !important;
  height: 80px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 80px !important; /* blocca l’allungamento */
  margin-right: 14px;
}

.icona-sezione .elementor-image-box-img img {
  width: 55px;
  height: 55px;
  object-fit: contain;
  display: block;
}

/* MOBILE: sblocca l'auto-centratura e tieni icona + titolo in riga */
@media (max-width: 767px) {
  /* 1) cancella il center imposto da Elementor */
  .icona-sezione{
    align-self: auto !important;
    --align-self: auto !important;   /* Elementor usa anche la var */
  }

  /* 2) layout orizzontale */
  .icona-sezione .elementor-image-box-wrapper{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    text-align: left !important;
    flex-wrap: nowrap !important;
  }
  
    /* 3) cerchio e spaziatura */
  .icona-sezione .elementor-image-box-img{
    background: #E83E72;
    border-radius: 50%;
    width: 60px !important;
    height: 60px !important;
    flex: 0 0 60px !important;
    margin: 0 12px 0 0 !important;
    display: flex; align-items: center; justify-content: center;
  }
  .icona-sezione .elementor-image-box-img img{
    width: 40px !important; height: 40px !important; object-fit: contain;
  }
}


/* immagini titoli sezioni – ICONA TOP */
.icona-sezione-top .elementor-image-box-wrapper{
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important; /* 🔥 icona in alto */
  text-align: left !important;
}

.icona-sezione-top .elementor-image-box-img{
  background-color: #FFF8FA;
  border-radius: 50%;
  width: 80px !important;
  height: 80px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 80px !important;
  margin-right: 14px;
}

.icona-sezione-top .elementor-image-box-img img{
  width: 55px;
  height: 55px;
  object-fit: contain;
  display: block;
}
@media (max-width: 767px) {

  /* layout orizzontale con icona TOP */
  .icona-sezione-top .elementor-image-box-wrapper{
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important; /* 🔥 resta TOP */
    text-align: left !important;
    flex-wrap: nowrap !important;
  }

  /* cerchio e spaziatura */
  .icona-sezione-top .elementor-image-box-img{
    background: #E83E72;
    border-radius: 50%;
    width: 60px !important;
    height: 60px !important;
    flex: 0 0 60px !important;
    margin: 0 12px 0 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .icona-sezione-top .elementor-image-box-img img{
    width: 40px !important;
    height: 40px !important;
    object-fit: contain;
  }
}


.uc_carousel_item:hover {
  box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.14) !important;
}

/* === LIGHTBOX VIDEO (corretto, non tocca le immagini) === */

/* Applica SOLO se il lightbox contiene un iframe o video */
.elementor-lightbox .elementor-video-container {
  position: relative !important;
  width: 85vw !important;
  max-width: 900px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: 0 6px 24px rgba(0, 34, 85, 0.4);
}

/* Applica SOLO agli iframe/video YouTube/Vimeo */
.elementor-lightbox .elementor-video-container iframe,
.elementor-lightbox .elementor-video-container video {
  position: absolute !important;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: none !important;
  object-fit: contain !important;
}

/* Wrapper 16:9 solo per i video */
.elementor-lightbox .elementor-video-container::before {
  content: "";
  display: block;
  padding-top: 56.25%; /* 16:9 */
}

/* Centra la lightbox solo quando contiene video */
.elementor-lightbox[data-elementor-type="video"] .dialog-widget-content,
.elementor-lightbox .elementor-video-container + .dialog-widget-content {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.85);
}

/* Mobile */
@media (max-width: 768px) {
  .elementor-lightbox .elementor-video-container {
    width: 95vw !important;
    max-width: 100% !important;
    border-radius: 10px !important;
  }
}


@media only screen and (max-width: 767px) {
  .icon-circle-style .elementor-icon {
    padding: 12px; /* cambia qui il valore come preferisci */
  }
}
/*stile cards hotel*/
.info-list-hotel {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  color: #0B2E63;
}

.info-list-hotel li {
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}

.info-list-hotel li i {
  color: #0B2E63; /* colore giallo JustRoma */
  margin-right: 8px;
  width: 18px;
  text-align: center;
}
/*stile cards ristoranti*/
.info-list-ristoranti {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  color: #0B2E63;
}

.info-list-ristoranti li {
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}

.info-list-ristoranti li i {
  color: #E83E72; /* colore giallo JustRoma */
  margin-right: 8px;
  width: 18px;
  text-align: center;
}
.elementor-widget-text-editor p:last-child {
  margin-block-end: 0 !important;
}
#post-list-custom .uc_post_list_box:hover {
    box-shadow: 0px 6px 20px rgba(0,0,0,0.15);
}
/*rimozione spazio vuoto widget viator*/
.uc_ac_box [data-vi-partner-id] {
  line-height: 0 !important;
  font-size: 0 !important;
}

/* Ombra sotto il mega menu SOLO su desktop */
/*@media (min-width: 1025px) {
  .uc-mega_menu_section {
    box-shadow: 0 10px 20px rgba(0,0,0,0.09) !important;
  }
}*/
/* Nascondi sempre "Mostra meno" */
.read-less {
  display: none !important;
}

/* Quando aria-expanded è true (cioè il testo è aperto) */
[aria-expanded="true"] .read-more {
  display: none !important;
}
[aria-expanded="true"] .read-less {
  display: inline !important;
}
 
 /* Carousel card con ombra */
  .shadow-carousel .item.ue-item {
    box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.05);
    margin-bottom: 10px;
    z-index: 2;
  }
   .shadow-carousel-collezioni .item.ue-item {
    box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.05);
    margin-bottom: 10px;
    z-index: 2;
  }
  .shadow-carousel-collezioni .item_title {
  min-height: 70px !important;     /* altezza uniforme */
  display: flex !important;
  align-items: center !important;  /* centra verticalmente */
  justify-content: flex-start !important; /* allinea a sinistra */
  text-align: left !important;     /* forza testo a sinistra */
  padding-left: 8px;               /* margine opzionale */
}


  /* clip immagine nel bordo arrotondato */
  .shadow-carousel .owl-carousel .owl-item img {
  border-radius: 8px 8px 10px 10px;
 }
  .shadow-carousel-collezioni .owl-carousel .owl-item img {
  border-radius: 8px 8px 10px 10px;
 }
/* layout */
.border-btn .elementor-button{
  display:block;
  width: calc(100% + 2px);
  margin: 0 -1px -1px;
  border-radius: 0 0 8px 8px;
}

/* Wrapper immagine Elementor */
.elementor-widget-theme-post-featured-image {
  position: relative;
  overflow: hidden;
}

.img-contenitore {
  background-blend-mode: normal;
  background-color: transparent;
  filter: brightness(1.05);
}

/* Stile base del badge */
.jr-badge {
  top: 20px;
  left: 20px;
  width: auto !important;
  max-width: fit-content !important;
  min-width: 0 !important;
  display: inline-flex !important;
}
#cotral-map:empty {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* === COLORI PER BADGE CATEGORIA === */

/* Sezioni DA VEDERE */
.cat-itinerari .elementor-post__badge { background-color: #E83E72 !IMPORTANT; } /* Giallo */
.cat-monumenti .elementor-post__badge { background-color: #0B2E63 !IMPORTANT; } /* Blu profondo */
.cat-fontane .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; } /* Blu medio */
.cat-piazze .elementor-post__badge { background-color: #355FA8 !IMPORTANT; } /* Blu brillante */
.cat-chiese-e-basiliche .elementor-post__badge { background-color: #1E4176 !IMPORTANT; } /* Blu freddo profondo */
.cat-musei-e-gallerie .elementor-post__badge { background-color: #406AA3 !IMPORTANT; } /* Blu chiaro */
.cat-parchi-ville-e-giardini .elementor-post__badge { background-color: #234F83 !IMPORTANT; } /* Blu acceso */
.cat-colonne-e-obelischi .elementor-post__badge { background-color: #E83E72 !IMPORTANT; } /* Giallo */
.cat-roma-da-vivere .elementor-post__badge { background-color: #365D8E !IMPORTANT; }
.cat-roma-da-scoprire .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; }
.cat-guide-e-consigli .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }
.cat-tour-consigliati .elementor-post__badge { background-color: #F2A900 !IMPORTANT; }
.cat-esperienze .elementor-post__badge { background-color: #0B2E63 !IMPORTANT; }
.cat-ispirazioni .elementor-post__badge { background-color: #1C3F74 !IMPORTANT; }
.cat-curiosita .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; }
.cat-quartieri-autentici .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; }
.cat-roma-su-misura .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }
.cat-per-famiglie .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; }
.cat-per-coppie .elementor-post__badge { background-color: #0B2E63 !IMPORTANT; }
.cat-per-giovani .elementor-post__badge { background-color: #446DB1 !IMPORTANT; }
.cat-per-senior .elementor-post__badge { background-color: #1E4176 !IMPORTANT; }
.cat-accessibile .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }
.cat-dove-dormire .elementor-post__badge { background-color: #0B2E63 !IMPORTANT; }
.cat-mangiare-a-roma .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }
.cat-itinerari .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }
.cat-roma-gratis-low-cost .elementor-post__badge { background-color: #2F5C9D !IMPORTANT; }
.cat-blog .elementor-post__badge { background-color: #234F83 !IMPORTANT; }
.cat-da-vedere .elementor-post__badge { background-color: #1E4176 !IMPORTANT; }
.cat-come-muoversi .elementor-post__badge { background-color: #365D8E !IMPORTANT; }
.cat-roma-da-vivere .elementor-post__badge { background-color: #0B2E63 !IMPORTANT; }
.cat-da-provare .elementor-post__badge { background-color: #E83E72 !IMPORTANT; }

/* Box consiglio */
.box-consiglio {
  position: relative;
  border: 1px solid #00796b;
  border-radius: 6px;
  background-color: #f7fdfc;
  padding: 16px 18px;
  margin: 25px 0;
  font-size: 16px;
  line-height: 1.5;
}

/* Etichetta sopra il bordo */
.box-consiglio::before {
  content: "I consigli di JustRoma";
  position: absolute;
  top: -12px;
  left: 14px;
  background-color: #00796b;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 4px;
}

/* Link */
.box-consiglio a {
  color: #00796b;
  text-decoration: underline;
  font-weight: 500;
}

.box-consiglio a:hover {
  text-decoration: none;
  color: #004d40;
}
/* ===== PREZZO CAROUSEL BIGLIETTI + TOUR ===== */

/* nasconde meta completamente vuoti */
.jr-tickets-uecarousel .ue-grid-item-meta-data:empty{
display:none !important;
}

/* layout meta: prezzo sopra pulsante */
.jr-tickets-uecarousel .ue-meta-data{
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:6px !important;
}

/* stile prezzo */
.jr-tickets-uecarousel .ue-grid-item-meta-data.jr-price-ready{
font-size:20px;
font-weight:700 !important;
color:#E83E72 !important;
line-height:1 !important;
order:-1;
}
.jr-price-26 .ue-grid-item-meta-data.jr-price-ready{
    font-size: 26px !important;
}
.jr-price-26 .ue-grid-item-meta-data.jr-price-ready::before {
  margin-top: 8px !important;
}
@media (min-width:1025px){
  .jr-tickets-uecarousel.jr-price-26 .uc_post_title {
    min-height: 46px;
  }
}

/* aggiunge "da" */
.jr-tickets-uecarousel .ue-grid-item-meta-data.jr-price-ready::before{
content:"da ";
font-size:13px;
font-weight:400;
color:#6b7280;
margin-right:4px;
margin-top: 2px;
}

/* aggiunge simbolo euro */
.jr-tickets-uecarousel .ue-grid-item-meta-data.jr-price-ready::after{
content:" €";
margin-left:2px;
}

/* mantiene spazio corretto tra meta */
.jr-tickets-uecarousel .ue-grid-item-meta-data{
margin:0 !important;
}
.jr-tickets-uecarousel .uc_post_title{
min-height:38px;
}

.ue-grid-item-meta-data {
  gap: 0 !important;
}
.ue-grid-item-meta-data .jr-aff-btn {
  display:inline-block;
  background:#E83E72;
  color:#fff !important;
  font-weight:600;
  border-radius:6px;
  padding:8px 12px;
  text-decoration:none;
  font-size: 13px !important;
  margin-top: 5px;
}
.ue-grid-item-meta-data .jr-aff-btn:hover{
  background:#0B2E63;
  color:#fff !important;
}
/*Pulsanti e prezzi archivi categorie*/
.jr-aff-btn{
    display:inline-block;
    color:#fff !important;
    font-weight:600;
    border-radius:6px;
    padding:8px 12px;
    text-decoration:none;
    font-size:13px !important;
    font-family:inherit !important;
    line-height:1 !important;
    letter-spacing:0 !important;
}
.jr-aff-btn:hover{
  background:#0B2E63;
  color:#fff !important;
}
.jr-aff-btn.jr-btn-ticket{
    background:#E83E72!important;
	font-weight:600;
	font-family: "Poppins" !important;
	width: 100%;
    text-align: center;
}
.jr-aff-btn.jr-btn-ticket:hover{
    background:#0B2E63!important;
	font-weight:600;
	font-family: "Poppins" !important;
}

.jr-aff-btn.jr-btn-tour{
    background:#1E5B4F!important;
	font-weight:600;
	font-family: "Poppins" !important;
	width: 100%;
    text-align: center;
}
.jr-aff-btn.jr-btn-tour:hover{
    background: #16463D !important;
}
.jr-aff-btn.jr-btn-hotel{
    background:#0B2E63!important;
	font-weight:600;
	font-family: "Poppins" !important;
	width: 100%;
    text-align: center;
}
.jr-aff-btn.jr-btn-hotel:hover{
    background:#E83E72!important;
}
.jr-price-ready{
    font-size:20px !important;
    font-family:"Poppins" !important;
    font-weight:700;
    line-height:1;
    display:flex;
    align-items:center;
    gap:0;
}
.jr-price-ready:before{
    content:"da";
    font-size:13px;
    font-weight:400;
    margin-right:4px;
    color:#6b7280;
}

/* BIGLIETTI = ROSA */
.jr-price-ticket{
    color:#E83E72;
}

/* ESPERIENZE = VERDE */
.jr-price-tour{
    color:#1E5B4F;
}

.jr-price-ready:after{
    content:"€";
    margin-left:2px;
}
.jr-btn-default{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:600;
    font-size:15px !important;
    color:#0B2E63 !important;
    text-decoration:none;
    transition:all .2s ease;
}

.jr-btn-default::after{
    content:"→";
    font-size:16px;
    line-height:1;
    transition:transform .2s ease;
}
@media(max-width:767px){
    .jr-btn-default{
        font-size:13px !important;
        gap:4px;
    }

    .jr-btn-default::after{
        font-size:15px;
    }
}

.jr-btn-default:hover{
    color:#E83E72 !important;
}

.jr-btn-default:hover::after{
    transform:translateX(4px);
}
/* --- Allineamento pulsante in fondo alla card per caroselli affiliati --- */
.carousel-affiliati .uc_image_carousel_content_holder {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* il blocco meta con il pulsante viene spinto in basso */
.carousel-affiliati .uc-meta-data,
.carousel-affiliati .ue-meta-data {
  margin-top: auto !important;
}

/* piccolo margine sopra al pulsante */
.carousel-affiliati .jr-aff-btn {
  display: inline-block;
  margin-top: 12px;
}


/*MOTORE COTRAL*/

/* === Fix layout griglia orari Cotral === */
#cotral-times {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-top: 16px !important;
}

/* Layout griglia */
.cotral-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
  margin-top: 12px;
}

/* Box orario */
.cotral-chip {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 90px;
  height: 80px;
  background: #fafafa;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  color: #0B2E63;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
  *transition: all 0.25s ease;
}

.cotral-chip strong {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 4px;
  color: #0B2E63;
}

.cotral-chip span {
  font-size: 13px;
  color: #0B2E63b3;
}

/* Hover blu JustRoma */
.cotral-chip:hover {
  background: #0B2E63;
  color: #fff;
  *transform: translateY(-2px);
}

.cotral-chip:hover strong,
.cotral-chip:hover span {
  color: #fff;
}
/* === Campi input stile JustRoma rivisitato === */
#cotral-from, 
#cotral-to {
  width: 100%;
  padding: 14px 18px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  background-color: #fff;
  font-size: 16px;
  color: #0B2E63;
  transition: all 0.25s ease-in-out;
  box-shadow: 0 2px 6px rgba(0,0,0,0.03);
}

/* Placeholder elegante */
#cotral-from::placeholder,
#cotral-to::placeholder {
  color: #9aa1b2;
  opacity: 1;
}

/* Effetto focus: blu elegante */
#cotral-from:focus,
#cotral-to:focus {
  outline: none !important;
  border-color: #0B2E63;
  box-shadow: 0 0 0 3px rgba(2,49,105,0.15);
}

/* Hover discreto */
#cotral-from:hover,
#cotral-to:hover {
  border-color: #0B2E63;
  box-shadow: 0 0 0 2px rgba(2,49,105,0.08);
}

/* Autocomplete dropdown */
.ui-autocomplete {
  border-radius: 10px !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: 0 6px 15px rgba(0,0,0,0.08) !important;
  background-color: #fff !important;
  padding: 8px 0 !important;
  font-size: 15px !important;
  color: #0B2E63 !important;
  max-height: 320px;
  overflow-y: auto;
  z-index: 9999 !important;
}

/* Elementi suggeriti */
.ui-menu-item-wrapper {
  padding: 10px 16px !important;
  transition: background 0.2s ease, color 0.2s ease;
}

/* Hover sui risultati: blu con testo bianco */
.ui-menu-item-wrapper:hover {
  background-color: #0B2E63 !important;
  color: #fff !important;
}

/* Etichette titolo */
#cotral-box label,
#cotral-box .label,
#cotral-box .title {
  font-weight: 700;
  color: #0B2E63;
  font-size: 18px;
  margin-bottom: 6px;
  display: block;
}

/* Evidenzia prossima partenza */
.cotral-chip.next-departure {
  background: #E83E72 !important;
  color: #0B2E63 !important;
  font-weight: 700;
  box-shadow: 0 0 10px rgba(250,181,16,0.4);
}
/* Rende la X bianca anche se è un'emoji SVG */
#cotral-reset img {
  filter: invert(1) brightness(2);
  width: 16px;
  height: 16px;
  transition: all 0.2s ease-in-out;
}
#cotral-swap i {
  color: #fff;
  font-size: 17px;
  transition: transform 0.3s ease, color 0.2s ease;
}
#cotral-swap:hover i {
  transform: rotate(180deg);
  color: #Fff;
}


/* In hover torna blu JustRoma */
#cotral-reset:hover img {
  *filter: invert(0) brightness(0);
}

/* ➜ Attiva griglia vera solo sotto i 1024px */
@media (max-width: 1024px) {
  .cotral-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    justify-content: center;
  }
}

/* ➜ E due colonne sugli schermi molto piccoli */
@media (max-width: 600px) {
  .cotral-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .tab-panel .cotral-chip {
  margin: 0px !important;
}
}

/*FINE COTRAL*/

/*MOTORE ATAC*/ 
/* === Motore Orari JustRoma – stile moderno === */
.motore-wrapper {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
  padding: 35px 40px;
  max-width: 900px;
  margin: 30px auto;
  transition: all 0.3s ease;
}
.motore-wrapper:hover {
  box-shadow: 0 8px 22px rgba(0,0,0,0.08);
}

/* Etichette sopra i campi */
.motore-wrapper label {
  font-weight: 700;
  color: #0B2E63;
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
}

/* Input */
.motore-wrapper input {
  width: 100%;
  border: 1.5px solid #e3e8ef;
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 16px;
  color: #333;
  background: #fafafa;
  transition: all 0.25s ease;
}
.motore-wrapper input:focus {
  outline: none;
  border-color: #fab510;
  box-shadow: 0 0 0 3px rgba(250,181,16,0.25);
  background: #fff;
}

/* Pulsanti */
.motore-btns {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}
.motore-btns button {
  border: none;
  cursor: pointer;
  font-weight: 600;
  border-radius: 10px;
  padding: 14px 20px;
  font-size: 16px;
  transition: all 0.25s ease;
}

/* Cerca orari */
.motore-btns .btn-cerca {
  background: #fab510;
  color: #0B2E63;
}
.motore-btns .btn-cerca:hover {
  background: #0B2E63;
  color: #fff;
}

/* Inverti e Reset */
.motore-btns .btn-swap,
.motore-btns .btn-reset {
  background: #0B2E63;
  color: #fff;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.motore-btns .btn-swap:hover {
  transform: rotate(180deg);
  background: #fab510;
  color: #0B2E63;
}
.motore-btns .btn-reset:hover {
  background: #b40000;
}

/* Suggerimento */
.motore-suggerimento {
  margin-top: 14px;
  font-size: 14px;
  color: #666;
}
.motore-suggerimento strong {
  color: #0B2E63;
  font-weight: 600;
}

/* Mobile */
@media (max-width: 767px) {
  .motore-wrapper {
    padding: 25px;
  }
  .motore-btns {
    flex-wrap: wrap;
  }
  .motore-btns button {
    width: 100%;
  }
}

/* Mobile badge archive*/
@media (max-width:767px){
  .elementor-post__badge{ top:15px; left:15px; padding:4px 10px; font-size:10px !important; }
}


/* Versione mobile badge post */
@media (max-width: 767px) {
  .jr-badge {
    top: 15px;
    left: 15px;
    font-size: 11px;
    padding: 4px 10px;
  }
}

/* Aumenta dimensione TOC su mobile */
@media (max-width: 767px) {
  .elementor-toc__list-item-text {
    font-size: 15px !important;
  }
  .uc-mega_menu_section.uc-active_item[style] {
    padding-top: 5px !important;
  }
  .scheda-img h3 {
  font-size: 20px;
 }
}

/* Font fluido per i titoli del mega menu */
@media (min-width: 1025px) {
  .uc-mega_menu_title {
    font-size: clamp(15px, 1.2vw, 17px) !important;
    line-height: 1.2em !important;
  }
}

/* Fix per schermi 1367px – 1471px */
@media (min-width: 1367px) and (max-width: 1471px) {
  .uc-mega_menu_title {
    font-size: 15px !important;
  }
}
@media (max-width: 1366px) and (min-width: 1280px) {
  .uc-mega_menu_title {
    font-size: 15px !important;
  }
}
@media (min-width: 1025px) and (max-width: 1100px) {
  .uc-mega_menu_title {
    font-size: 13px !important;
  }
}
/* Fix per MacBook Pro 14" (viewport ~1512px) */
@media (min-width: 1480px) and (max-width: 1540px) {
  .uc-mega_menu_title {
    font-size: 16px !important;
    line-height: 1.2em !important;
  }
}

/* Fix padding header su MacBook Pro 14" */
@media (min-width: 1480px) and (max-width: 1540px) {
  header .elementor-container,
  header .e-con-inner,
  header .e-con-boxed {
    padding-left: 20px !important;
    padding-right: 20px !important;
    max-width: 1500px;
    margin: 0 auto !important;
    box-sizing: border-box;
  }
}
/* Fix font menu principale – MacBook Pro 14" */
@media (min-width: 1480px) and (max-width: 1540px) {
  header .elementor-nav-menu .elementor-item {
    font-size: 16px !important;   /* era 17px */
  }
}



/* =========================================
   CAROUSEL – FRECCE
   Classe container: jr-carousel-arrows
   ========================================= */
/* OMBRA SOLO DESKTOP */
@media (min-width: 1024px) {
  .jr-carousel-arrows .owl-nav button.owl-prev,
  .jr-carousel-arrows .owl-nav button.owl-next {
    box-shadow: 0 2px 10px rgba(0,0,0,0.09) !important;
  }
  .jr-carousel-arrows .owl-nav button.owl-prev:hover,
  .jr-carousel-arrows .owl-nav button.owl-next:hover {
    box-shadow: 0 8px 22px rgba(11,46,99,.14) !important;
  }
}

/* NASCONDI SU MOBILE */
@media (max-width: 1023px) {
  .jr-carousel-arrows .owl-nav button.owl-prev,
  .jr-carousel-arrows .owl-nav button.owl-next {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .elementor-widget-text-editor h3 {
    font-size: 1.35rem;
    line-height: 1.3;
  }
}

/*PULSANTI STYCKY BOTTOM*/

/* Prezzo affiliato – versione desktop */
/* wrapper prezzo */
.jr-aff-price {
  display: flex;
  align-items: baseline;
  *gap: 6px;
  color: #0B2E63;
}
/* "Da" */
.jr-price-from {
  font-weight: 700;       /* grassetto */
  font-size: 20px;
  text-transform: lowercase;
  margin-right: 6px;
}

/* valore prezzo */
.jr-price-value {
  font-size: 24px;        /* PIÙ grande del pulsante */
  font-weight: 700;
  line-height: 1;
}

/* simbolo € */
.jr-price-currency {
  font-size: 24px;
  margin-left: 2px;
}

.jr-price-value,
.jr-price-currency {
  color: #E83E72 !important;
}
.jr-price-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
/* Mobile: leggermente più leggibile */
@media (max-width: 768px) {
  .jr-aff-price {
    font-size: 22px;
}
  /* "Da" */
.jr-price-from {
  font-weight: 700;       /* grassetto */
  font-size: 16px;
  text-transform: uppercase;
  margin-right: 6px;
}
/* valore prezzo */
.jr-price-value {
  font-size: 22px;        /* PIÙ grande del pulsante */
  font-weight: 700;
  line-height: 1;
}
/* simbolo € */
.jr-price-currency {
  font-size: 22px;
  margin-left: 2px;
 }
}
/* Se C'È prezzo BIGLIETTI → nascondi TOUR + HOTEL */
body.has-affiliate-price .jr-experience-container,
body.has-affiliate-price .jr-hotel-container {
  display: none !important;
}
/* Se C'È prezzo TOUR → nascondi BIGLIETTI + HOTEL */
body.has-affiliate-tour-price .jr-ticket-container,
body.has-affiliate-tour-price .jr-hotel-container {
  display: none !important;
}
/* ESPERIENZE: di default (senza prezzo) → pulsante a DESTRA */
.jr-experience-container{
  display: flex !important;
  justify-content: flex-end !important;
}
/* In Esperienze: MAI biglietti e hotel */
body.is-esperienze .jr-ticket-container,
body.is-esperienze .jr-hotel-container {
  display: none !important;
}
/* In Esperienze: SEMPRE visibili le esperienze */
body.is-esperienze .jr-experience-container {
  display: flex !important;
}
/* SOLO esperienze visibile → centro */
body.is-esperienze.no-affiliate-tour-price .jr-experience-container,
body.is-esperienze.no-affiliate-tour-price .jr-experience-container > .e-con-inner{
  justify-content: center !important;
}
body.is-esperienze .jr-ticket-container,
body.is-esperienze .jr-hotel-container {
  display: none !important;
}
/* ESPERIENZE: con prezzo → space-between (anche su inner) */
body.has-affiliate-tour-price .jr-experience-container,
body.has-affiliate-tour-price .jr-experience-container > .e-con-inner{
  justify-content: space-between !important;
}

/* BIGLIETTI: con prezzo a sx e pulsante a dx */
body.has-affiliate-price .jr-ticket-container {
  display: flex !important;
  justify-content: space-between !important;
}
/* BIGLIETTI: pulsante al centro quando non c'è prezzo */
body.is-biglietti.no-affiliate-price .jr-ticket-container {
  display: flex !important;
  justify-content: center !important;
}
/* BIGLIETTI: solo pulsante biglietti, centrato */
body.is-biglietti .jr-hotel-container,
body.is-biglietti .jr-experience-container {
  display: none !important;
}
/* Se NON c'è il prezzo → nascondi solo il testo prezzo */

body.no-affiliate-price:not(.has-affiliate-tour-price) .jr-aff-price {
  display: none !important;
}
/* Se categoria DOVE DORMIRE nascondo container prezzo e esperienze */
body.is-dove-dormire .jr-ticket-container,
body.is-dove-dormire .jr-experience-container {
  display: none !important;
}
/* Se categoria GUIDE E CONSIGLI POST SPECIFICI */
body.is-guide-special .jr-ticket-container,
body.is-guide-special .jr-experience-container {
  display: none !important;
}
/* Mobile: nascondo esperienze ovunque */
@media (max-width: 768px) {
  .jr-experience-container{
    display: none !important;
  }

  /* ECCEZIONE: Esperienze */
 body.is-esperienze .jr-experience-container,
  body.has-affiliate-tour-price .jr-experience-container{
    display:flex !important;
  }
}
/*PULSANTE DOVE DOORMIRE CENTRATO IN MOBILE*/
@media (max-width: 768px) {
  body.is-dove-dormire .jr-hotel-container {
    display: flex !important;
    justify-content: center !important;
  }
}
@media (max-width:768px){
.jr-hotel-container .elementor-widget-button{
    margin-left:auto;
 }
}
@media (max-width:375px){

.just-sticky-footer a.elementor-button{
    font-size:13px !important;
    padding:12px 8px !important;
 }
}
/* Pulsanti centrali quando non c'è prezzo*/
@media (min-width:900px){
	
  /* SOLO quando nello sticky NON esiste nessun prezzo */
  .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  > .e-con-inner{
      max-width:800px !important;
      margin:0 auto !important;
      display:flex !important;
      justify-content:center !important;
      gap:40px !important;
  }

  .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  a.elementor-button-link{
      min-width:220px !important;
      display:flex !important;
      justify-content:center !important;
  }
}
@media (max-width:1024px){
  .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  > .e-con-inner{
      max-width:600px !important;
      margin:0 auto !important;
      display:flex !important;
      justify-content:center !important;
      gap:40px !important;
  }
    .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  a.elementor-button-link{
      min-width:180px !important;
      display:flex !important;
      justify-content:center !important;
  }
}
/* Mobile standard */
@media (max-width:767px){
  .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  a.elementor-button-link{
      min-width:160px !important;
  }
}

/* Schermi più piccoli */
@media (max-width:380px){
  .just-sticky-footer:not(:has(.jr-aff-price)):not(:has(.jr-tour-price)) 
  a.elementor-button-link{
      min-width:140px !important;
  }
}

/* Hide sticky bottom when menu open under 1024px */
@media (max-width:1024px){

  html.uc-menu-open .just-sticky-footer{
    opacity: 0;
    pointer-events: none;
  }

}
/* BIGLIETTI senza prezzo → bottone full width SOLO MOBILE */
@media (max-width:768px){

  body.no-affiliate-price .jr-ticket-container .elementor-widget-button{
    flex:1 1 auto;
  }

  body.no-affiliate-price .jr-ticket-container .elementor-button-wrapper{
    width:100%;
  }

  body.no-affiliate-price .jr-ticket-container .elementor-button-link{
    width:100%;
    justify-content:center;
  }

}

/* SEARCH come categoria generale */
body.is-archive-general .just-sticky-footer > .e-con-inner{
    max-width:800px !important;
    margin:0 auto !important;
    display:flex !important;
    justify-content:center !important;
    gap:40px !important;
}
/* SEARCH sticky come categorie */
body.is-archive-general .just-sticky-footer > .e-con-inner{
    max-width:800px !important;
    margin:0 auto !important;
    display:flex !important;
    justify-content:center !important;
    gap:40px !important;
}

/* Tablet */
@media (max-width:1024px){
  body.is-archive-general .just-sticky-footer > .e-con-inner{
      max-width:600px !important;
  }
}
/* SEARCH – dimensione pulsanti sticky */
body.is-archive-general .just-sticky-footer a.elementor-button-link{
    min-width:220px !important;
    display:flex !important;
    justify-content:center !important;
}

/* Tablet */
@media (max-width:1024px){
  body.is-archive-general .just-sticky-footer a.elementor-button-link{
      min-width:180px !important;
  }
}

/* Mobile */
@media (max-width:767px){
  body.is-archive-general .just-sticky-footer a.elementor-button-link{
      min-width:160px !important;
  }
}

/* Mobile piccoli */
@media (max-width:380px){
  body.is-archive-general .just-sticky-footer a.elementor-button-link{
      min-width:140px !important;
  }
}
/*FINE PULSANTI STICKY*/

/* MOBILE – sistema frecce dropdown reali */
@media (max-width:1024px){

.menu-mobile-principale .uc-mega_menu_list_item{
  position:relative;
}

.menu-mobile-principale .uc-mega_menu_list_item .sub-arrow{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,0.12);
}
.menu-mobile-principale .sub-arrow i{
  line-height:1;
  font-size:14px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.menu-mobile-principale .sub-arrow .uc_expand_indicator{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}

.menu-mobile-principale .uc-mega_menu_list_item > a{
  padding-right:48px !important;
 }
}

/*Modifiche cards menu drodown MOBILE*/
@media (max-width: 768px){

  .ue-link-item-inner,
  .ue-link-item{

    background: #ffffff;
    border-radius: 16px !important;

    box-shadow: 0 3px 18px rgba(0,0,0,0.10) !important;

    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
}

/* ===== LIFT DESKTOP — GRID + UC/OWL (FORZATO con !important) ===== */
@media (min-width:1025px){

  /* ---------------- GRID (JG / JT) ---------------- */
.jg-box,
.jt-card{
  position: relative !important;
  transition: transform .22s cubic-bezier(.4,0,.2,1), 
              box-shadow .22s cubic-bezier(.4,0,.2,1) !important;

  transform: translateZ(0);                /* FIX SUBPIXEL */
  backface-visibility: hidden;             /* FIX DISTORSIONE */
  will-change: transform;
}

.jg-box:hover,
.jt-card:hover{
  transform: translate3d(0,-6px,0) !important;  /* 3D invece di 2D */
  box-shadow: 0 6px 14px rgba(0,0,0,.10) !important;
  z-index: 30 !important;
}

  /* spazio anti-taglio */
  .owl-carousel .owl-stage-outer{
    padding-top: 10px !important;
    padding-bottom: 18px !important;
    margin-top: -10px !important;
    margin-bottom: -18px !important;
  }

  /* overlay non deve bloccare hover */
  .owl-carousel .ue_pos_carousel_image_overlay,
  .uc_overlay_image_carousel:before,
  .uc_overlay_image_carousel:after{
    pointer-events: none !important;
  }

  /* z-index tra item */
  .owl-carousel .owl-item{
    position: relative !important;
    z-index: 1 !important;
  }
  .owl-carousel .owl-item:hover{
    z-index: 50 !important;
  }

  /* CARD INTERNA */
  .owl-carousel .uc_image_carousel_container_holder{
    position: relative !important;
    transition: transform .22s cubic-bezier(.4,0,.2,1), 
            box-shadow .22s cubic-bezier(.4,0,.2,1) !important;
    will-change: transform !important;
  }

  /* LIFT SOLO QUI */
  .owl-carousel .uc_image_carousel_container_holder:hover{
    transform: translateY(-6px) !important;
    box-shadow: 0 6px 14px rgba(0,0,0,.10) !important;
  }
  
  /* UC POST GRID */
  .uc_post_grid_style_one_item{
    position: relative !important;
    transition: transform .22s cubic-bezier(.4,0,.2,1),
                box-shadow .22s cubic-bezier(.4,0,.2,1) !important;

    transform: translateZ(0);         /* stabilità GPU */
    backface-visibility: hidden;      /* no subpixel glitch */
    will-change: transform;
  }

  .uc_post_grid_style_one_item:hover{
    transform: translate3d(0,-6px,0) !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.14) !important;
    z-index: 20 !important;
  }
  
   /* ELEMENTOR ARCHIVE POSTS */
  .elementor-post__card{
    position: relative;
    transition: transform .22s cubic-bezier(.4,0,.2,1),
                box-shadow .22s cubic-bezier(.4,0,.2,1);

    transform: translateZ(0);          /* stabilità GPU */
    backface-visibility: hidden;
    will-change: transform;
  }

  .elementor-post__card:hover{
    transform: translate3d(0,-6px,0);
    box-shadow: 0 10px 22px rgba(0,0,0,.14);
    z-index: 20;
  }

.ue-link-item{
  position: relative;
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform;
}

   /* BOX DROPDOWN MENU */
.ue-link-item,
.ue-link-item:hover{
  transition: transform .22s cubic-bezier(.4,0,.2,1),
              box-shadow .22s cubic-bezier(.4,0,.2,1) !important;
}

.ue-link-item:hover{
  transform: translate3d(0,-6px,0);
  box-shadow: 0 10px 22px rgba(0,0,0,.14);
  z-index: 20;
 }
 
 /* UC POST LIST BOX - LIFT */
  .uc_post_list_box{
    position: relative;
    transform: translateZ(0);
    backface-visibility: hidden;
    will-change: transform;

    transition: transform .22s cubic-bezier(.4,0,.2,1),
                box-shadow .22s cubic-bezier(.4,0,.2,1);
  }

  .uc_post_list_box:hover{
    transform: translate3d(0,-6px,0);
    box-shadow: 0 10px 22px rgba(0,0,0,.14);
    z-index: 20;
  }
}

.jr-list,
.jr-list li,
.jr-list span {
  letter-spacing: 0.2px !important;
}

/* Evita flash bianco nelle tab con carousel */
.e-n-tabs-content {
  position: relative;
}

.e-n-tab-content {
  min-height: 420px; /* metti altezza reale delle card */
}

/* Migliora paint iniziale */
.e-n-tab-content .owl-carousel {
  opacity: 1;
  transform: translateZ(0);
}

/*Card carousel customization*/
@media (min-width:1025px){
  .jr-custom-card-carousel .elementor-heading-title {
    max-width: 22ch;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

}
/* CUSTOM BADGE CAROUSEL */
.jr-newcarousel-badge .uc_image_carousel_image {
    position: relative;
}

/* BADGE */
.jr-newcarousel-badge .ue-meta-data {
    position: absolute !important;
    top: 20px !important;
    left: 15px !important;
    transform: none !important;
    z-index: 999 !important;
    pointer-events: none !important;
}

/* Contenitore singolo meta */
.jr-newcarousel-badge .ue-meta-data .ue-grid-item-meta-data {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 4px 10px !important;
    background-color: #E83E72 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    border-radius: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
    line-height: 1 !important;
}

/* Elimina davvero l'icona e qualsiasi spazio collegato */
.jr-newcarousel-badge .ue-meta-data .ue-grid-item-meta-data-icon,
.jr-newcarousel-badge .ue-meta-data .ue-grid-item-meta-data-icon *,
.jr-newcarousel-badge .ue-meta-data .ue-grid-item-meta-data i {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

/* MOBILE */
@media (max-width: 767px) {
    .jr-newcarousel-badge .ue-meta-data {
        top: 8px !important;
        left: 8px !important;
    }

    .jr-newcarousel-badge .ue-meta-data .ue-grid-item-meta-data {
        font-size: 10px !important;
        padding: 3px 8px !important;
    }
}

/* Badge sopra immagine principale */
.featured-image-container {
  position: relative !important;
  z-index: 1;
}

.featured-image-container .jr-badge {
  position: absolute !important;
  top: 20px !important;
  left: 20px !important;
  z-index: 2 !important;
  margin: 0 !important;
}

.featured-image-container .elementor-widget-image {
  position: relative;
  z-index: 1;
}

/* Badge MOBILE */
@media (max-width: 767px) {
  .featured-image-container .jr-badge {
    top: 15px !important;
    left: 15px !important;
  }
}
/* =========================
   Elementor Search – Fix Delay & Layout Shift
   ========================= */
/* Fix delay Elementor search */
.elementor-widget-search .e-search {
    visibility: visible !important;
    opacity: 1 !important;
    transition: none !important;
}

/* Remove delay on results */
.elementor-widget-search .e-search-results-container {
    transition: none !important;
    animation: none !important;
}
/* FIX DELAY SEARCH ELEMENTOR */
.elementor-widget-search .e-search,
.elementor-widget-search .e-search-form,
.elementor-widget-search .e-search-input-wrapper,
.elementor-widget-search .e-search-results-container,
.elementor-widget-search .e-search-results {
    transition: none !important;
    animation: none !important;
}

/* il widget search deve restare visibile */
.elementor-widget-search .e-search {
    visibility: visible !important;
    opacity: 1 !important;
}
.e-search-results-container > div {
  border-style: none;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.09);
}

@media (max-width: 767px) {
	  .jr-search-hero {
        position: relative;
    }
    .jr-search-hero .e-search-results-container {
        position: absolute !important;
        top: calc(100% + 6px) !important;
        left: 50% !important;
        transform: translateX(-50%);
        width: 95vw !important;
        max-width: 95vw !important;
        z-index: 9999 !important;
        background: #ffffff !important;
		box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.09);
		max-height: none !important;
       overflow: visible !important;
       -webkit-overflow-scrolling: auto !important;
	   margin-left: 5.5vw;
  }
}
/* DESKTOP scrollbar fix */
@media (min-width: 1025px) {
    body:has(.elementor-search-form input:focus),
    body:has(.elementor-search-form input:not(:placeholder-shown)),
    body:has(.e-search-results-container:not(.hidden)) {
        overflow-y: scroll !important;
        padding-right: 0 !important;
    }
}

/* Elementor search clear icon */
.e-search-input-wrapper svg {
    display: none !important;
	padding-right: 6px;
	
}

.e-search-input-wrapper input:not(:placeholder-shown) ~ svg {
    display: block !important;
}
/* Fix input style before Elementor CSS loads */
.elementor-widget-search input[type="search"],
.e-search-input {
    padding: 8px 15px !important;
    box-sizing: border-box !important;
}

/* LIVE SEARCH TITOLI */

.title-live-search-results .elementor-heading-title a {
    font-family: "Epilogue", sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1b355e !important;
    line-height: 1.25 !important;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* MENU PRINCIPALE */
.menu-mobile-principale {
    position: relative !important;
    z-index: 100 !important;
}
/* MOBILE LIVE SEARCH FINAL */
@media (max-width: 767px) {

 .jr-search-header .e-search-results-container {
        position: fixed !important;
        top: 90px !important; /* altezza header */
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 70vh;
        overflow-y: auto;
        border-radius: 0;
        z-index: 9999 !important;
		padding: 0 10px 0 20px;
    }

.e-search-results-list img {
    width: 70px !important;
    height: 50px !important;
    border-radius: 6px;
    margin-right: 10px;
 }
}
.e-search-results-list > div {
    display: flex;
    position: relative;
    padding: 8px 0 4px 0;
    background: #ffffff;
    border-radius: 12px;
    align-items: center;
    transition: background 0.2s ease;
}

/* LINEA SOTTO 70% */
.e-search-results-list > div::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
	width: 85%;
    height: 1px;
    background: #e9ecef;
}

/* niente linea ultimo elemento */
.e-search-results-list > div:last-child::after {
    display: none;
}

/* HOVER */
.e-search-results-list > div:hover {
    background: #F4F6F8;
}

/* CONTENITORE SEARCH OFFCANVAS */
.search-offcanvas {
    position: relative;
    z-index: 9999;
}


/* RISULTATI LIVE SEARCH OFFCANVAS */
@media (max-width: 767px) {
.search-offcanvas .e-search-results-container {
        position: fixed !important;
        top: 120px !important; /* altezza header */
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 80vh;
        overflow-y: auto;
        border-radius: 0;
        z-index: 9999 !important;
		padding: 0 10px 0 20px;
  }
}

/*Risoluzione problemi icone internal css*/
.jr-folder-icon .ue-item-title::before{
  content: "\f07c" !important;
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
  margin-right: 6px;
  color: #F4B51E;
}
.box-content ul li::before{
  content: "\f105" !important;
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900 !important;
  margin-right: 6px;
    margin-top: 0px !important;
}
/* Wrapper */
.jr-accordion-bus .e-n-accordion-item-title-text {
  position: relative;
  padding-left: 35px;
}

/* Icona base */
.jr-accordion-bus .e-n-accordion-item-title-text::before {
  content: "\f059"; /* fallback */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 22px;
  color: #E83E72;
}

/* Icone specifiche */
.jr-accordion-bus .e-n-accordion-item:nth-child(1) .e-n-accordion-item-title-text::before {
  content: "\f207";
}

.jr-accordion-bus .e-n-accordion-item:nth-child(2) .e-n-accordion-item-title-text::before {
  content: "\f207";
}

.jr-accordion-bus .e-n-accordion-item:nth-child(3) .e-n-accordion-item-title-text::before {
  content: "\f239"; /* metro */
}

.jr-accordion-bus .e-n-accordion-item:nth-child(4) .e-n-accordion-item-title-text::before {
  content: "\f207";
}

.jr-accordion-bus .e-n-accordion-item:nth-child(5) .e-n-accordion-item-title-text::before {
  content: "\f207";
}

.jr-accordion-bus .e-n-accordion-item:nth-child(6) .e-n-accordion-item-title-text::before {
  content: "\f207";
}

.jr-accordion-bus .e-n-accordion-item:nth-child(7) .e-n-accordion-item-title-text::before {
  content: "\f207";
}
/* Lista ATAC */
.atac-stops {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 10px 0 0 5px !important;
}

/* Spazio per icona */
.atac-stops li {
  position: relative;
  padding-left: 25px;
}

/* Icona */
.atac-stops li::before {
  content: "\f207" !important;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 2px;
  color: #E83E72;
  font-size: 15px;
}
/* === CONTAINER === */
.atac-steps {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 80px;
  flex-wrap: nowrap;
  text-align: center;
  margin-bottom: 35px;
  position: relative;
}

/* === SINGOLO STEP === */
.atac-step {
  max-width: 250px;
  position: relative;
}

/* === CERCHIO NUMERO === */
.atac-step-number {
  background-color: #E83E72;
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 12px auto;
  position: relative;
  z-index: 2;
}

/* === FRECCIA CENTRATA TRA I CERCHI === */
.atac-step:not(:last-child)::after {
  content: "\f061"; /* freccia destra */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #0B2E63;
  position: absolute;
  top: 22px;
  left: calc(100% + 18px);
  font-size: 16px;
  opacity: 0.85;
  z-index: 1;
}

/* === TESTO === */
.atac-step-text {
  font-size: 15px;
  color: #111;
  line-height: 1.5;
}

.atac-step-text strong {
  color: #0B2E63;
}

/* === TABLET E MOBILE: 2 colonne === */
@media (max-width: 991px) {
  .atac-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 35px 30px;
    justify-items: center;
  }

  .atac-step {
    max-width: 100%;
  }

  .atac-step-number {
    width: 52px;
    height: 52px;
    font-size: 18px;
    margin-bottom: 8px;
  }

  /* Freccia orizzontale sempre visibile anche su mobile */
  .atac-step:not(:last-child)::after {
    content: "\f061";
    top: 22px;
    left: calc(100% + 14px);
    transform: none;
    font-size: 14px;
    opacity: 0.8;
  }

  /* Nascondi la freccia dopo il 2° e 4° elemento (fine riga) */
  .atac-step:nth-child(2)::after,
  .atac-step:nth-child(4)::after {
    display: none;
  }

  .atac-step-text {
    font-size: 14px;
    line-height: 1.4;
  }
}
/* === Tabella ATAC - Stile JustRoma === */
.atac-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-top: 25px;
  font-size: 15.5px;
  color: #222;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 3px 14px rgba(2, 49, 105, 0.08);
   border: 0 !important;  
}
/* Rimuove bordi ereditati da tema/Elementor */
.atac-table td {
  border-top: 1px solid #E6EEF6;  /* separatore orizzontale */
  box-shadow: none !important;
  border-right:1px solid #E6EEF6; !important; 
  border-left:0 !important;  
  border-bottom:0 !important; 
}
.atac-table th + th,
.atac-table td + td {
  border-left: 1px solid #EFF4F9;
}

/* Intestazione */
.atac-table thead {
  background-color: #0B2E63;
}

.atac-table th {
  padding: 16px 20px;
  color: #fff;
  font-weight: 700;
  font-size: 15.5px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  border-bottom: 3px solid #E83E72; /* linea dorata brand */
}

/* Celle corpo tabella */
.atac-table td {
  padding: 15px 20px;
  border-bottom: 1px solid rgba(2, 49, 105, 0.08);
  line-height: 1.7;
}

/* Riga alternata */
.atac-table tbody tr:nth-child(even) {
  background-color: #F9FBFD;
}

/* Hover */
.atac-table tbody tr:hover {
  background-color: rgba(250, 181, 16, 0.08);
  transition: background 0.25s ease;
}

/* Colonna 2 (linee bus) */
.atac-table td:nth-child(2) {
  color: #0B2E63;
  font-weight: 700;
}

/* Colonna 3 (fermata consigliata) */
.atac-table td:nth-child(3) {
  color: #444;
  font-style: italic;
}

/* Icona piccola nella prima colonna (opzionale) */
.atac-table td:first-child::before {
  content: "\f207"; /* icona bus Font Awesome */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #E83E72;
  margin-right: 8px;
}

/* Ultima riga - bordo più chiaro */
.atac-table tbody tr:last-child td {
  border-bottom: none;
}

/* Responsive */
@media (max-width: 768px) {
  .atac-table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
  .atac-table th,
  .atac-table td {
    padding: 12px 16px;
  }
}
/* === CONTAINER === */
.metro-steps {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 80px;
  flex-wrap: nowrap;
  text-align: center;
  margin-bottom: 35px;
  position: relative;
}

/* === SINGOLO STEP === */
.metro-step {
  max-width: 250px;
  position: relative;
}

/* === CERCHIO NUMERO === */
.metro-step-number {
  background-color: #0B2E63;
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  width: 75px;
  height: 75px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 12px auto;
  position: relative;
  z-index: 2;
}

/* === FRECCIA CENTRATA TRA I CERCHI === */
.metro-step:not(:last-child)::after {
  content: "\f061"; /* freccia destra */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #E83E72;
  position: absolute;
  top: 22px;
  left: calc(100% + 18px);
  font-size: 16px;
  opacity: 0.85;
  z-index: 1;
}

/* === TESTO === */
.metro-step-text {
  font-size: 15px;
  color: #111;
  line-height: 1.5;
}

.metro-step-text strong {
  color: #0B2E63;
}

/* === TABLET E MOBILE: 2 colonne === */
@media (max-width: 991px) {
  .metro-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 35px 30px;
    justify-items: center;
  }

  .metro-step {
    max-width: 100%;
  }

  .metro-step-number {
    width: 52px;
    height: 52px;
    font-size: 18px;
    margin-bottom: 8px;
  }

  /* Freccia orizzontale sempre visibile anche su mobile */
  .metro-step:not(:last-child)::after {
    content: "\f061";
    top: 22px;
    left: calc(100% + 14px);
    transform: none;
    font-size: 14px;
    opacity: 0.8;
  }

  /* Nascondi la freccia dopo il 2° e 4° elemento (fine riga) */
  .metro-step:nth-child(2)::after,
  .metro-step:nth-child(4)::after {
    display: none;
  }

  .metro-step-text {
    font-size: 14px;
    line-height: 1.4;
  }
}

/* Badge colorati Base comune */
[class^="jr-badge-box-"] {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  margin-bottom: 8px;
  letter-spacing: 0.3px;
}

/* Varianti colore */
.jr-badge-box-green {
  background: #e6f6ec;
  color: #1e7e34;
}

.jr-badge-box-yellow {
  background: #fff5d6;
  color: #b58100;
}

.jr-badge-box-blue {
  background: #e7f1ff;
  color: #1f5fbf;
}
.jr-badge-box-darkblue {
  background: #E7EFF8;
  color: #1F3F6B;
}

.jr-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.jr-check-list li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 8px;
  line-height: 1.4;
  color: #2f2f2f;
}

/* cerchio dietro */
.jr-check-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 14px;
  height: 16px;
  background: #e8f5e9;
  border-radius: 5px; 0px 2px 10px /* 👈 non tondo perfetto */
}

/* check sopra */
.jr-check-list li::after {
  content: "✔";
  position: absolute;
  left: 5px;
  top: 1px;
  font-size: 16px;
  color: #2e7d32;
  font-weight: 700;
}

/*Side CTA right floating*/
@media(min-width:1400px){

.jr-floating-cta{
position:fixed;
right:20px;
top:140px;
width:280px;
z-index:999;
 }
}

.bordo-singolo {
  border-left: 3px solid #E83E72;
  padding-left: 14px;
}
/* JustParigi - lista cerchietto blu */

#jp-lista-blu li::marker{
    color:#0B2E63;
}

/* JustParigi - lista cerchietto rosa */

#jp-lista-rosa li::marker{
    color:#E83E72;
}
#jp-lista-blu li,
#jp-lista-rosa li{
    padding-left:4px;
}
#jp-lista-blu li,
#jp-lista-rosa li{
    margin-bottom:12px;
}

.jp-curiosita li{
    margin-bottom:14px;
    line-height:1.7;
}
.jp-curiosita li::marker{
    color:#E83E72;
}

.single-post .jr-experience-container .jr-aff-price .jr-price-value,
.single-post .jr-experience-container .jr-aff-price .jr-price-currency{
    color:#1E5B4F!important;
}
.page-id-25916 .jr-price-value,
.page-id-25916 .jr-price-currency{
    color:#1E5B4F!important;
}
.ue-item.esperienze-a-parigi .jr-aff-btn{
    background:#1E5B4F!important;
}

.ue-item.esperienze-a-parigi .jr-aff-btn:hover{
    background:#16463D!important;
}

.ue-item.esperienze-a-parigi .jr-price-value,
.ue-item.esperienze-a-parigi .jr-price-currency{
    color:#1E5B4F!important;
}
.ue-item.esperienze-a-parigi .ue-grid-item-meta-data.jr-price-ready{
    color:#1E5B4F!important;
}
.ue-item.esperienze-a-parigi .uc_more_btn{
    background:#1E5B4F!important;
}
.jr-imglist-arrow{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:.8;
    font-size:18px;
    color:#0B2E63;
    line-height:1;
    min-height:18px;
    flex-shrink:0;
}

.jr-imglist-arrow i{
    display:block;
    line-height:1;
    transform:translateY(0);
}
/* =========================================
   JUSTPARIGI – BOX PRO E CONTRO
   ========================================= */

.jp-pro-contro-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0px 0 20px;
}

/* Card base */
.jp-pro-contro-column {
    padding: 24px;
    border: 1px solid;
    border-radius: 14px;
}

/* Titolo */
.jp-pro-contro-column h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 20px;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 700;
}

/* Icona circolare prima del titolo */
.jp-pro-contro-column h3::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 50%;
    color: #ffffff;
    font-family: "Font Awesome 6 Free";
    font-size: 14px;
    font-weight: 900;
}

/* Lista */
.jp-pro-contro-column ul {
    display: flex;
    flex-direction: column;
    gap: 17px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Elemento lista */
.jp-pro-contro-column li {
    position: relative;
    margin: 0;
    padding-left: 18px;
    color: #475569;
    font-size: 15px;
    line-height: 1.55;
}

/* Pallino */
.jp-pro-contro-column li::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

/* Testo evidenziato */
.jp-pro-contro-column li strong {
    color: #0B2E63;
    font-weight: 700;
}

/* =========================================
   PRO
   ========================================= */

.jp-pro {
    background-color: #EAF6F1;
    border-color: #D6ECE4;
}

.jp-pro h3 {
    color: #1E5B4F;
}

.jp-pro h3::before {
    content: "\f00c";
    background-color: #1E5B4F;
}

.jp-pro li::before {
    background-color: #1E5B4F;
}

/* =========================================
   CONTRO
   ========================================= */

.jp-contro {
    background-color: #FFF8FA;
    border-color: #F6DCE6;
}

.jp-contro h3 {
    color: #E83E72;
}

.jp-contro h3::before {
    content: "\f068";
    background-color: #E83E72;
}

.jp-contro li::before {
    background-color: #E83E72;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 767px) {

    .jp-pro-contro-container {
        grid-template-columns: 1fr;
        gap: 30px;
       
    }

    .jp-pro-contro-column {
        padding: 20px;
        border-radius: 12px;
    }

    .jp-pro-contro-column h3 {
        margin-bottom: 17px;
        font-size: 18px;
    }

    .jp-pro-contro-column h3::before {
        width: 32px;
        height: 32px;
        min-width: 32px;
        font-size: 13px;
    }

    .jp-pro-contro-column ul {
        gap: 15px;
    }

    .jp-pro-contro-column li {
        font-size: 15px;
        line-height: 1.5;
    }
}
/* ========================================
   CARDS RISTORANTI - JUSTPARIGI
======================================== */

.jp-restaurants-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}


/* CARD */
.jp-restaurant-card{
  background:#FFFFFF;
  border:1px solid #E7EEF7;
  border-radius:18px;
  padding:26px;
  box-shadow:0 8px 28px rgba(11,46,99,.07);
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

/* PARTE SUPERIORE */
.jp-restaurant-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin-bottom:12px;
}


/* TIPOLOGIA RISTORANTE */
.jp-restaurant-type{
  display:inline-flex;
  align-items:center;
  font-size:13px;
  font-weight:500;
  color:#E83E72;
  background:#FFF8FA;
  border:1px solid #F6DCE6;
  border-radius:999px;
  padding:6px 11px;
}


/* FASCIA PREZZO */
.jp-restaurant-price{
  font-size:13px;
  font-weight:600;
  color:#0B2E63;
}


/* TITOLO */
.jp-restaurant-card h3{
  margin:0 0 10px;
  font-size:22px;
  line-height:1.25;
  color:#0B2E63;
}


/* DESCRIZIONE */
.jp-restaurant-card p{
  margin:0 0 22px;
  font-size:15px;
  line-height:1.65;
  color:#4F5968;
}


/* FOOTER */
.jp-restaurant-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding-top:18px;
  border-top:1px solid #F4F4F7;
}


/* POSIZIONE */
.jp-restaurant-footer span{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  color:#667085;
}

.jp-restaurant-footer span i{
  color:#E83E72;
}


/* LINK MAPPA */
.jp-restaurant-footer a{
  display:inline-flex;
  align-items:center;
  gap:7px;

  font-size:13px;
  font-weight:600;

  color:#0B2E63;
  background:#F5F9FF;
  border:1px solid #E7EEF7;

  border-radius:999px;
  padding:7px 12px;

  text-decoration:none;

  transition:
    color .2s ease,
    background .2s ease,
    border-color .2s ease;
}


/* HOVER LINK MAPPA */
.jp-restaurant-footer a:hover{
  color:#FFFFFF;
  background:#0B2E63;
  border-color:#0B2E63;
}


/* MOBILE */
@media (max-width:767px){

  .jp-restaurants-grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  .jp-restaurant-card{
    padding:21px;
    border-radius:16px;
  }

  .jp-restaurant-footer{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
}
/* ========================================
   HOME - LIVE SEARCH HERO
   ======================================== */

/* Sblocca SOLO l'overflow dei container che contengono la ricerca */
.home .e-con:has(.jr-search-hero) {
    overflow: visible !important;
}

/* Il widget ricerca può stare sopra alla sezione successiva */
.home .jr-search-hero {
    position: relative !important;
    z-index: 20;
    overflow: visible !important;
}

.home .jr-search-hero .e-search-results-container {
    overflow: visible !important;
    z-index: 100 !important;
}

/* Radius immagine */
.home .jp-hero-img img {
    border-radius: 20px 0 0 20px !important;
}
/* Tablet + Mobile */
@media (max-width: 1024px) {
    .home .jp-hero-img img {
        border-radius: 20px !important;
    }
}