/* =========================
   Location: Address
   ========================= */

.piw-event-location-info {
    font-size: 16px;
    font-weight: 600;
    color: #FFF;
}

.piw-event-location-info__address {
    font-size: 13px;
    font-weight: 400;
    color: #FFF;
}

/* =========================
   Shortcode: Speaker Card
   ========================= */

.piw-speaker-card{
  display:flex !important;
  align-items:flex-start;
  gap:16px;
  padding:18px 20px;
}

/* Forza l’avatar a rimanere a sinistra e in cerchio */
.piw-speaker-card .piw-speaker-card__avatar{
  flex:0 0 72px;
  width:72px;
  height:72px;
  border-radius:999px;
  overflow:hidden;            /* <-- fondamentale per “tagliare” il cerchio */
}

/* Forza l’immagine a riempire il cerchio */
.piw-speaker-card .piw-speaker-card__avatar img{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
  display:block;
}

/* Colonna destra */
.piw-speaker-card .piw-speaker-card__content{
  flex:1 1 auto;
  min-width:0;
}

.piw-speaker-card .piw-speaker-card__kicker{
  font-size:10px;
  line-height:1.2;
  text-transform: uppercase;
  letter-spacing: 2px;
  color:#6a6a6a;
  margin:0 0 4px 0;
}

.piw-speaker-card .piw-speaker-card__title{
  font-size:18px;
  line-height:1.2;
  font-weight:700;
  margin:0 0 10px 0;
  color:#1f1f1f;
}

/* Se Elementor/tema mette margini strani su p, li azzeriamo */
.piw-speaker-card .piw-speaker-card__desc{
  font-size:14px;
  line-height:1.55;
  color:#2b2b2b;
  margin:0;
}

.piw-speaker-card__actions{
  margin-top:14px;
}

.piw-speaker-card__btn{
  display:inline-block;
  padding:8px 16px;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  color:#D51116;
  background:#FFF;
  border-radius:999px;
  transition:all .25s ease;
}

.piw-speaker-card__btn:hover{
  background:#D51116;
  color:#fff;
  transform:translateY(-1px);
}

/* Lista relatori (multi-term) */
.piw-speaker-list{
  display:block;
}

.piw-speaker-list__divider{
  height:1px;
  background:rgba(0,0,0,0.08);
  margin:14px 0;
}


/* =========================
   Mobile fixes — Speaker card
   ========================= */

@media (max-width: 480px){

  /* ---------- SPEAKER CARD ---------- */
  .piw-speaker-card{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:12px !important;
    padding:16px !important;
  }

  /* immagine sopra */
  .piw-speaker-card__avatar{
    width:86px !important;
    height:86px !important;
    flex:0 0 auto !important;
    border-radius:999px !important;
    overflow:hidden !important;
  }

  .piw-speaker-card__avatar img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    display:block !important;
  }

  /* contenuto sotto (kicker, titolo, desc, btn) */
  .piw-speaker-card__content{
    width:100% !important;
    text-align:left !important;
  }

  .piw-speaker-card__kicker{
    margin:0 0 4px 0 !important;
  }

  .piw-speaker-card__title{
    margin:0 0 10px 0 !important;
  }

  .piw-speaker-card__desc{
    margin:0 !important;
  }

  .piw-speaker-card__actions{
    margin-top:12px !important;
  }

  .piw-speaker-card__btn{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    font-size: 13px !important;
    padding: 5px 10px 5px 10px !important;
    border-radius:50px !important;
  }

  /* Se usi lista relatori (più relatori) */
  .piw-speaker-list__divider{
    margin:14px 0 !important;
  }
}

/* =========================
   Shortcode: Location Card
   ========================= */

.piw-location-card{
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:18px 20px;
}

.piw-location-card__media{
  flex:0 0 120px;
  width:120px;
  border-radius:14px;
  overflow:hidden;
  aspect-ratio: 9 / 16; /* verticale */
}

.piw-location-card__media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.piw-location-card__content{
  flex:1 1 auto;
  min-width:0;
}

.piw-location-card .piw-location-card__kicker{
  font-size:10px;
  line-height:1.2;
  text-transform: uppercase;
  letter-spacing: 2px;
  color:#6a6a6a;
  margin:0 0 4px 0;
}

.piw-location-card__title{
  font-size:16px;
  line-height:1.5;
  font-family: "Sora", sans-serif;
  font-weight:400;
  margin:0 0 8px 0;
  color:#1f1f1f;
}

.piw-location-card__address{
  font-size:13px;
  line-height:1.35;
  color:#6a6a6a;
  margin:0 0 10px 0;
}

.piw-location-card__actions{
  margin-top:14px;
}

.piw-yt-meta{
  margin-top:10px;
}

.piw-yt-desc{
  margin-top:6px;
  font-size:12px;
  line-height:1.45;
  opacity:.82;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.piw-yt-cta{
  margin-top:10px;
}

.piw-yt-btn{
  display:inline-block;
  padding:8px 12px;
  font-size:12px;
  font-weight:700;
  border-radius:999px;
  background:#fff;
  color:#000;
}

/* piccolo effetto al passaggio */
.piw-yt-card:hover .piw-yt-btn{
  transform:translateY(-1px);
}

.piw-location-card__btn{
  display:inline-block;
  padding:8px 16px;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  color:#D51116;
  background:#FFF;
  border-radius:999px;
  transition:all .25s ease;
}


/* =========================
   Mobile fixes — Location card
   ========================= */
@media (max-width: 480px){
    
.piw-location-card{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:12px !important;
    padding:16px !important;
  }

  /* immagine sopra a tutta larghezza */
  .piw-location-card__media{
    width:100% !important;
    flex:0 0 auto !important;
    border-radius:14px !important;
    overflow:hidden !important;
    aspect-ratio: 16 / 9 !important; /* mobile-friendly */
  }

  .piw-location-card__media img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    object-fit:cover !important;
  }

  .piw-location-card__content{
    width:100% !important;
    text-align:left !important;
  }

  .piw-location-card__title{
    margin:0 0 8px 0 !important;
  }

  .piw-location-card__address{
    margin:0 0 10px 0 !important;
  }

  .piw-location-card__desc{
    margin:0 !important;
  }

  .piw-location-card__actions{
    margin-top:12px !important;
  }

  .piw-location-card__btn{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    font-size: 13px !important;
    padding: 5px 10px 5px 10px !important;
    background-color: #FFF;
    border-radius:50px !important;
  }
}


/* =========================
   Archive titles (taxonomy)
   ========================= */

.piw-archive-title{
  display:block;
  font-size: 24px;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #000;
  margin-bottom: 12px;
}

/* =========================
   Format archive button
   ========================= */

.piw-format-btn{
  --format-color:#000; /* fallback */

  display:inline-block;
  padding:12px 22px;
  font-size:15px;
  font-weight:600;
  text-decoration:none;

  background:#fff;
  color:var(--format-color) !important;

  border-radius:999px;

  transition:background .25s ease, color .25s ease, transform .25s ease;
}

.piw-format-btn:hover{

  transform:scale(1.02);
}

/* Mobile */
@media (max-width: 767px){
  .piw-format-btn{
    display:block;
    padding: 5px 10px 5px 10px;
    font-size:13px;
    width:100%;
    text-align:center;
  }
}

/* =========================
   YouTube Netflix Grid
   ========================= */

.piw-yt-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:25px;
}

.piw-yt-card{
  display:block;
  background-color: #FFF;
  padding: 20px;
  border-radius: 20px;
  text-decoration:none;
  color:inherit;
  transform: translateZ(0);
  transition: transform .18s ease, opacity .18s ease;
}

.piw-yt-card:hover{
  transform: scale(1.04);
}

.piw-yt-thumb{
  border-radius:14px;
  overflow:hidden;
  aspect-ratio: 16 / 9;
  background: rgba(0,0,0,.06);
}

.piw-yt-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.piw-yt-meta{
  margin-top:10px;
}

.piw-yt-title{
  font-size:13px;
  line-height:1.35;
  font-weight:700;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:hidden;
  opacity:.92;
}

.piw-yt-desc{
  margin-top:6px;
  font-size:12px;
  font-weight: 400;
  color: #000;
  line-height:1.45;
  opacity:.82;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.piw-yt-cta{
  margin-top:10px;
}

.piw-yt-btn{
  display:inline-block;
  padding:5px 20px 5px 20px;
  font-size:12px;
  font-weight:700;
  border-radius:999px;
  background:#000;
  color:#FFF;
  transition: transform .18s ease;
}

.piw-yt-card:hover .piw-yt-btn{
  transform: translateY(-1px);
}

/* responsive */
@media (max-width: 1024px){
  .piw-yt-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px){
  .piw-yt-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================
   YouTube Modal
   ========================= */

.piw-yt-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
}

.piw-yt-modal[aria-hidden="false"]{
  display:block;
}

.piw-yt-modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.65);
}

.piw-yt-modal__dialog{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:min(960px, calc(100% - 24px));
  border-radius:18px;
  background:#0b0b0b;
  box-shadow:0 18px 60px rgba(0,0,0,.45);
  overflow:hidden;
}

.piw-yt-modal__close{
  position:absolute;
  top:10px;
  right:12px;
  width:40px;
  height:40px;
  border:0;
  border-radius:999px;
  background: #000;
  color:#fff;
  font-size:26px;
  line-height:40px;
  cursor:pointer;
  z-index:2;
}

.piw-yt-modal__frame{
  aspect-ratio: 16 / 9;
  background:#000;
}

.piw-yt-modal__frame iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* blocco scroll pagina quando modal aperta */
.piw-modal-open{
  overflow:hidden;
}