footer#colophon {
    margin-top: -23px;
}

section.percorso-single-wrap{
    position:relative;
    overflow:hidden;
}

section.percorso-single-wrap::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        90deg,
        rgba(17,112,112,.75) 0%,
        rgba(17,112,112,.50) 45%,
        rgba(17,112,112,.20) 100%
    );
    z-index:1;
    pointer-events:none;
}

section.percorso-single-wrap > *{
    position:relative;
    z-index:2;
}
.percorso-single-wrap {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 40px 20px; 
  width: 100vw;
  height: 100vh;
  margin-left: calc(50% - 50vw);
  display: flex;
  align-items: center;
  justify-content: center;
}
.percorso-single {
  background-color: var(--color-sfondo-chiaro-hero);
  padding: 60px; 
  max-width: 1000px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
  border-radius: 4px;
  z-index: 2;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.percorso-single__title {
  font-family: var(--ff-titoli);
  color: #fff;
  font-size: 52px;
  text-align: center;
  display: block;
  margin-top: 0 !important; 
  margin-bottom: 20px !important; 
  text-transform: uppercase;
  line-height: 1.1;
}
.percorso-single__descrizione {
  font-family: var(--ff-paragrafi);
  color: #fff;
  line-height: 1.6;
  max-width: 800px;
  width: 100% !important; 
  height: auto !important;  
  font-size: 17px;
  text-align: justify; 
  margin: 0 auto 35px auto !important; 
  font-weight:700;
}

#forminator-module-1316:not(.select2-dropdown){
    margin-bottom:3rem;
}
.info-hero__button {
  font-family: var(--ff-paragrafi);
  display: inline-flex;
  margin: 0 auto !important;
  align-items: center;
  justify-content: center;
  padding: 0 40px;
  height: 50px;
  border-radius: 0.45rem;
  background: var(--color-primario) !important;
  color: #ffffff !important;
  text-decoration: none;
  font-size: 1.05rem;
  font-weight: 600;
  transition: all 0.3s ease;
}

.info-hero__button:hover {
  color: #ffffff !important;
  opacity: 0.9;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.percorso-hero {
  position: relative;
  z-index: 2;
}

.percorso-visite-wrap {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: var(--space-4) var(--space-3);
  padding-top: 0px;
}

.percorso-visite {
  max-width: 1280px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(2rem, 4vw, 5rem);
  align-items: center;
  background: #fff;
  border-radius: var(--radius-card);
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  border: 1px solid var(--color-verde-cuore);
  padding: clamp(2rem, 4vw, 3rem);
  justify-content: center;
}


.percorso-visite__media {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}

.masthead-sentinel {
  margin-bottom: 0px!important;
  height:40px!important;
  }

.percorso-visite__media img,
.percorso-visite__placeholder {
  width: 373px;
  height:370px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-card);
  background: var(--color-border);
}

.percorso-visite__nome {
    display: inline-block !important;
    background-color: var( --color-verde-cuore) !important; 
    color: #ffffff !important;           
    padding: 8px 25px !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    text-transform: lowercase !important;
    transition: all 0.3s ease !important; 
}

.percorso-visite__nome:hover {
    opacity: 0.92 !important;            
    transform: translateY(-1px) !important; 
    color: #ffffff !important;           
    background-color: var( --color-verde-cuore) !important; 
    
}

.percorso-visite__nome:active {
    transform: translateY(0px) !important; 
}
.percorso-visite__title {
  font-family: var(--ff-titoli);
  color: var(--color-primario);
  font-size: 52px;
  margin-left: 148px; 
  margin-top: 40px !important;    
  margin-bottom: 40px !important; 
}
.percorso-visite__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  width: 100%;       
  max-width: 680px; 
  margin-right: 0px !important;
}


.visita-accordion {
  background: var(--color-bianco);
  border-radius: var(--radius-card); 
  margin-bottom: var(--space-2); 
  overflow: hidden;
  transition: all 0.3s ease;
  border: none; 
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.07); 
}

.visita-accordion:hover {
  transform: translateY(-2px); 
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); 
}

.visita-accordion__head {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 0.5rem;
  padding: var(--space-3) var(--space-4);
  background: transparent;
  cursor: pointer;
  border: none;
}

.visita-accordion__head:hover {
  background: var(--color-sfondo-chiaro)!important;
  }


.visita-accordion__title {
  font-family: var(--ff-titoli);
  color: var(--color-paragrafi);
  font-size: 1.2rem;
}

.visita-accordion.is-open .visita-accordion__title {
  color: var(--color-primario);
  font-weight: bold;
}

.visita-accordion.is-open .visita-accordion__head {
  background: var(--color-accordtion-open);
}

.visita-accordion__icon {
  font-size: 2rem;
  line-height: 1;
  color: var(--color-verde-cuore);
  flex-shrink: 0;
}

.visita-accordion.is-open .visita-accordion__icon {
  transform: rotate(45deg);
}

.visita-accordion__content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.4s ease-in-out;
}

.visita-accordion.is-open .visita-accordion__content {
  max-height: 1000px;
  opacity: 1;
  display: block;
  padding-bottom: 20px;
}

.visita-accordion__inner {
  padding: 1.5rem;
}

.visita-accordion__excerpt {
  margin: 0 0 1.5rem;
  font-family: var(--ff-paragrafi);
  color: var(--color-paragrafi);
  line-height: 1.6;
}

.visita-accordion:not(.is-open) .visita-accordion__head:hover {
    background: var(--color-sfondo-chiaro) !important;
}
.visita-accordion.is-open .visita-accordion__head {
    background: var(--color-accordtion-open) !important;
}
.visita-accordion.is-open .visita-accordion__head:hover {
    background: var(--color-accordtion-open) !important; 
    
}


.visita-accordion__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  padding: 1rem 1.6rem;
  border-radius: 0.45rem;
  background: var(--color-verde-cuore);
  color: #fff;
  text-decoration: none;
  font-family: var(--ff-paragrafi);
}

.visita-accordion__button:hover,
.visita-accordion__button:visited,
.visita-accordion__button:focus {
  color: #fff !important;
  text-decoration: none;
  opacity:0.92;
  transform: translateY(-1px);

}

@media (max-width: 900px) {
  .percorso-visite {
    grid-template-columns: 1fr;
  }
}




.medico-slide {
    display: none !important;
    opacity: 0;
}

.medico-slide.is-active {
    display: block !important;
    opacity: 1;
}
.medico-foto-box {
    position: relative !important;
    width: 373px;
    height: 370px;
    margin-bottom: 20px;
    border-radius: var(--radius-card);
    overflow: visible !important; 
}

.medico-foto-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-card);
    display: block;
}
.medico-badge-info {
    position: absolute !important;
    bottom: 15px !important; 
    left: 50% !important;
    transform: translateX(-50%) !important; 
    background-color: var(--color-primario)!important;
    padding: 8px 18px !important;
    opacity: 0.75;
    color: #ffffff !important;
    z-index: 10 !important;
    pointer-events: none;
    width: 100% !important;
    text-align: center !important; 
    white-space: nowrap !important; 
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.medico-badge-info__nome {
    font-size: 14px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    display: block !important;
}

.medico-badge-info__spec {
    font-size: 11px !important;
    font-weight: 400 !important;
    opacity: 0.95;
    text-transform: lowercase;
    margin-top: 2px !important;
    display: block !important;
}


  

.medico-nav-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    z-index: 20 !important;
    background-color: #ffffff !important;
    border: 1px solid #eee !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
    padding: 0 !important;
    transition: all 0.3s ease !important;
}

.medico-nav-arrow.prev { left: -22px !important; }
.medico-nav-arrow.next { right: -22px !important; }


.medico-nav-arrow svg, 
.medico-nav-arrow svg path {
    width: 20px !important;
    height: 20px !important;
    stroke: #616162 !important; 
    fill: none !important; 
    transition: stroke 0.3s ease !important;
}

/* --- STATO HOVER --- */
.medico-nav-arrow:hover {
    background-color: var(--color-primario) !important;
    border-color: var(--color-primario) !important;
}

.medico-nav-arrow:hover svg,
.medico-nav-arrow:hover svg path {
    stroke: #ffffff !important;
}



/* 3. ALTRI PERCORSI */
.medico-percorsi {
    max-width: 1280px;
    margin: 80px auto;
    padding: 0 20px;
}

.medico-percorsi__title {
    font-family: var(--ff-titoli);
    font-size: 2.5rem;
    color: var(--color-primario);
    margin-bottom: 30px;
}

.medico-percorsi__container {
    display: flex;
    align-items: center;
    gap: 20px;
}

.medico-percorsi__slider {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    flex-grow: 1;
    padding: 10px 0;
}

.medico-percorsi__slider::-webkit-scrollbar { display: none; }

.percorso-card {
    flex: 0 0 350px;
    height: 250px;
    background-color: #508c8c;
    border-radius: 15px;
    position: relative;
    overflow: hidden;
}

.percorso-card__link {
    display: flex;
    align-items: flex-end;
    padding: 20px;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.percorso-card__title {
    color: white;
    margin: 0;
    font-size: 1.5rem;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
}

/* GESTIONE SLIDER MEDICI */
.medico-slide {
    display: none !important;
    opacity: 0;
}

.medico-slide.is-active {
    display: block!important;
    opacity: 1;
}

/* POSIZIONAMENTO FRECCE SULLA FOTO */
.medico-foto-box {
    position: relative;
    width: 373px;
    height: 370px;
    margin-bottom: 20px;
}

.medico-nav-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: var(--color-verde-cuore);
    color: white !important;
    border: none;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.medico-nav-arrow.prev { left: -22px; }
.medico-nav-arrow.next { right: -22px; }



.percorso-visite__media {
    display: flex;
    flex-direction: column;
    align-items: center; 
    gap: var(--space-3);
    justify-self: start; 
    margin-left: 30px;     
    margin-right:20px;
}





/* --- RESPONSIVE DESIGN --- */
@media (max-width: 900px) {

  /* 1. HERO & TITOLI */
  .percorso-single-wrap {
    height: auto; 
    min-height: 100vh;
    padding: 60px 15px;
  }

  .percorso-single {
    padding: 30px 20px;
    width: 95%;
  }

  .percorso-single__title {
    font-size: 32px !important;
    margin-bottom: 15px !important;
  }

  .percorso-single__descrizione {
    font-size: 16px;
    text-align: left;
    line-height: 1.5;
  }

  /* 2. SEZIONE VISITE (CARDS) */
  .percorso-visite-wrap {
    padding: 20px 10px;
  }

  .percorso-visite {
    grid-template-columns: 1fr !important; 
    padding: 20px 15px !important;
    gap: 1.5rem;
  }

  /* Titolo sezione centratura */
  .percorso-visite__title {
    font-size: 28px !important;
    margin: 20px 0 !important;
    text-align: center !important;
    width: 100% !important;
  }

  /* 3. FOTO MEDICO & BLOCCO MEDIA */
  .percorso-visite__media {
    margin: 0 auto !important; 
    width: 100%;
  }

  .medico-foto-box {
    width: 100% !important;
    max-width: 330px; 
    height: auto !important;
    aspect-ratio: 1 / 1;
    margin: 0 auto 15px auto !important;
  }

  .percorso-visite__media img {
    width: 100% !important;
    height: auto !important;
  }

  /* Badge Medico - lo facciamo aderire alla foto anche in mobile */
  .medico-badge-info {
    width: 100% !important;
    left: 0 !important;
    bottom: 0 !important;
    transform: none !important;
    border-radius: 0 0 var(--radius-card) var(--radius-card) !important;
    padding: 10px 5px !important;
    white-space: normal !important;
  }


  .medico-nav-arrow.prev { left: -15px !important; }
  .medico-nav-arrow.next { right: -15px !important; }

  /* 4. ACCORDION (LISTA PRESTAZIONI) */
  .percorso-visite__list {
    margin-left: 0 !important;  
    margin-right: 0 !important; 
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }

  .visita-accordion__title {
    font-size: 1.05rem !important;
  }

  .visita-accordion__button {
    width: 100% !important; 
    min-width: unset !important;
  }

  .percorso-visite__nome {
    width: 100% !important;
    max-width: 280px;
    margin: 10px auto !important;
    text-align: center;
  }

  /*  SLIDER ALTRI PERCORSI */
  .medico-percorsi__title {
    font-size: 1.8rem;
    text-align: center;
  }

  .percorso-card {
    flex: 0 0 85%;
    height: 180px;
  }
}
.percorso-info-wrap{
    max-width:1100px;
    margin:4rem auto;
    padding:0 2rem;
}

.percorso-info-card{
    background:var(--color-bianco);
    border:1px solid var(--color-border);
    border-radius:var(--radius-card);
    padding:2rem;
    margin-bottom:2rem;
}

.percorso-info-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:2rem;
}

.percorso-info-card h2{
    font-family:var(--ff-titoli);
    font-size:var(--fs-h2);
    font-weight:var(--fw-h);
    color:var(--color-primario);
    letter-spacing:var(--letter-spacing);
    margin-bottom:1rem;
}

.percorso-info-card__text{
    font-family:var(--ff-paragrafi);
    font-size:var(--fs-p);
    color:var(--color-paragrafi);
    line-height:1.6;
}

.percorso-info-card__text p:last-child{
    margin-bottom:0;
}

.percorso-info-card--highlight{
    background:var(--color-sfondo-chiaro);
    border-left:6px solid var(--color-primario);
}

.percorso-info-card__link{
    display:inline-flex;
    align-items:center;
    margin-top:1.5rem;
    color:var(--color-primario);
    font-family:var(--ff-paragrafi);
    font-weight:700;
    text-decoration:none;
}

.percorso-info-card__link::after{
    content:" →";
    transition:.3s ease;
}

.percorso-info-card__link:hover{
    color:var(--color-verde-cuore);
}

.percorso-info-card__link:hover::after{
    transform:translateX(4px);
}

@media(max-width:768px){
    .percorso-info-grid{
        grid-template-columns:1fr;
    }

    .percorso-info-wrap{
        padding:0 1rem;
    }
}
