/* ======================================================
   JUST INFO CARDS — BASE DEFINITIVA
   ====================================================== */

.jp-cards{
  display:grid;
  width:100%;
  gap:20px;
}

.jp-card{
  --jp-card-icon-color:#fff;
  --jp-card-icon-bg:#E83E72;
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  padding:24px;
  background:#fff;
  border:1px solid #e4eaf3;
  border-radius:14px;
  color:inherit;
  text-decoration:none !important;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

a.jp-card:hover{
  transform:translateY(-2px);
  border-color:#dbe3ee;
  box-shadow:0 10px 28px rgba(7,52,111,.08);
}

/* Struttura condivisa */
.jp-card__header,
.jp-card__compact-row{
  display:flex;
  align-items:flex-start;
  gap:16px;
  width:100%;
  min-width:0;
}

.jp-card__compact-content,
.jp-card__heading,
.jp-card__content{
  min-width:0;
}

.jp-card__compact-content,
.jp-card__heading,
.jp-card__content{
  flex:1 1 auto;
}

.jp-card__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:50%;
  color:var(--jp-card-icon-color);
  background:var(--jp-card-icon-bg);
}

.jp-card__icon i{
  font-size:25px;
  line-height:1;
}

.jp-card__icon svg{
  width:25px;
  height:25px;
  fill:currentColor;
}

.jp-card__title{
  margin:0;
  min-width:0;
  color:#0B2E63;
  font-size:19px;
  line-height:1.3;
  font-weight:750;
}

.jp-card__subtitle{
  margin-top:4px;
  color:#666;
  font-size:14px;
  line-height:1.5;
}

.jp-card__content{
  color:#313131;
  font-size:15px;
  line-height:1.65;
}

.jp-card__content > *:first-child{margin-top:0;}
.jp-card__content > *:last-child{margin-bottom:0;}
.jp-card__content p{margin:0 0 12px;}

.jp-card__content ul,
.jp-card__content ol{
  margin:0 0 14px;
  padding-left:20px;
}

.jp-card__content li{margin-bottom:8px;}
.jp-card__content li:last-child{margin-bottom:0;}
.jp-card__content li::marker{color:#E83E72;}
.jp-card__content a{color:#E83E72;text-decoration:underline;}
.jp-card__content strong{font-weight:700;}

/* ======================================================
   LAYOUT COMPATTO
   ====================================================== */

.jp-cards--compact .jp-card__header,
.jp-cards--compact .jp-card__body,
.jp-cards--compact .jp-card__image,
.jp-cards--compact .jp-card__subtitle{
  display:none !important;
}

.jp-cards--compact .jp-card__compact-row{
  display:flex !important;
}

.jp-cards--compact .jp-card__compact-content{
  display:block;
  width:100%;
}

.jp-cards--compact .jp-card__title{
  margin:2px 0 7px;
}

.jp-cards--compact .jp-card__content{
  margin-top:6px;
}

/* ======================================================
   LAYOUT ESTESO
   ====================================================== */

.jp-cards--illustrated .jp-card__compact-row{
  display:none !important;
}

.jp-cards--illustrated .jp-card__header{
  display:flex;
  flex:0 0 auto;
  padding-bottom:16px;
  border-bottom:1px dotted #d9e0e9;
}

.jp-cards--illustrated .jp-card__body{
  display:block;
  width:100%;
  min-width:0;
  margin-top:17px;
}

/* 1 e 2 colonne: testo a sinistra, immagine a destra */
.jp-cards--cols-1.jp-cards--illustrated .jp-card__body--with-image,
.jp-cards--cols-2.jp-cards--illustrated .jp-card__body--with-image{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:22px;
}

.jp-cards--cols-1.jp-cards--illustrated .jp-card__image,
.jp-cards--cols-2.jp-cards--illustrated .jp-card__image{
  display:block;
  position:static;
  float:none;
  width:auto;
  max-width:185px;
  height:auto;
  margin:0;
  object-fit:contain;
  align-self:start;
  justify-self:end;
  border-radius:12px !important;
  overflow:hidden;
}

/* 3 e 4 colonne: immagine sopra, piena larghezza, nessun max-width */
.jp-cards--cols-3.jp-cards--illustrated .jp-card__body--with-image,
.jp-cards--cols-4.jp-cards--illustrated .jp-card__body--with-image{
  display:flex !important;
  flex-direction:column-reverse !important;
  align-items:stretch !important;
  gap:16px !important;
}

.jp-cards--cols-3.jp-cards--illustrated .jp-card__image,
.jp-cards--cols-4.jp-cards--illustrated .jp-card__image{
  display:block !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  margin:0 !important;
  object-fit:cover !important;
  align-self:stretch !important;
  justify-self:auto !important;
  border-radius:12px !important;
  overflow:hidden !important;
  transform:none !important;
}

/* Evita colonne vuote */
.jp-cards--illustrated .jp-card__body--with-image .jp-card__content:empty{
  display:none;
}

/* ======================================================
   POSIZIONE ICONA
   ====================================================== */

.jp-cards--icon-left .jp-card__compact-row,
.jp-cards--icon-left .jp-card__header{
  flex-direction:row;
  align-items:flex-start;
  text-align:left;
}

.jp-cards--icon-top .jp-card__compact-row,
.jp-cards--icon-top .jp-card__header{
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
}

.jp-cards--icon-top .jp-card__compact-content,
.jp-cards--icon-top .jp-card__heading{
  width:100%;
}

.jp-cards--icon-right .jp-card__compact-row,
.jp-cards--icon-right .jp-card__header{
  flex-direction:row-reverse;
  align-items:flex-start;
  justify-content:space-between;
  text-align:left;
}

.jp-cards--icon-top.jp-cards--top-align-left .jp-card__compact-row,
.jp-cards--icon-top.jp-cards--top-align-left .jp-card__header{
  align-items:flex-start;
}

.jp-cards--icon-top.jp-cards--top-align-left .jp-card__heading,
.jp-cards--icon-top.jp-cards--top-align-left .jp-card__title{
  text-align:left;
}

.jp-cards--icon-top.jp-cards--top-align-center .jp-card__compact-row,
.jp-cards--icon-top.jp-cards--top-align-center .jp-card__header{
  align-items:center;
}

.jp-cards--icon-top.jp-cards--top-align-center .jp-card__heading,
.jp-cards--icon-top.jp-cards--top-align-center .jp-card__title{
  width:100%;
  text-align:center;
}

.jp-cards--icon-top.jp-cards--top-align-right .jp-card__compact-row,
.jp-cards--icon-top.jp-cards--top-align-right .jp-card__header{
  align-items:flex-end;
}

.jp-cards--icon-top.jp-cards--top-align-right .jp-card__heading,
.jp-cards--icon-top.jp-cards--top-align-right .jp-card__title{
  width:100%;
  text-align:right;
}

/* Allineamento contenuto */
.jp-cards--content-align-left .jp-card__content{text-align:left;}
.jp-cards--content-align-center .jp-card__content{text-align:center;}
.jp-cards--content-align-right .jp-card__content{text-align:right;}

.jp-cards--content-align-center .jp-card__content ul,
.jp-cards--content-align-center .jp-card__content ol,
.jp-cards--content-align-right .jp-card__content ul,
.jp-cards--content-align-right .jp-card__content ol{
  display:inline-block;
  text-align:left;
}

/* ======================================================
   PULSANTE
   ====================================================== */

.jp-card__button-wrap{
  display:flex;
  align-items:center;
  width:100%;
  margin-top:auto;
  padding-top:18px;
}

.jp-card__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:11px 18px;
  border:0;
  border-radius:8px;
  background:#0B2E63;
  color:#fff;
  font-size:14px;
  line-height:1.2;
  font-weight:700;
  text-decoration:none !important;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease;
  transform:none !important;
}

.jp-card__button:hover{
  background:#E83E72;
  color:#fff;
  transform:none !important;
}

.jp-card__button--disabled{cursor:default;}

/* ======================================================
   TABLET E MOBILE
   In estesa l'immagine resta sempre sopra il testo.
   ====================================================== */

@media (max-width:767px){
  .jp-card{padding:20px;}

  .jp-card__header,
  .jp-card__compact-row{gap:14px;}

  .jp-card__title{font-size:18px;}
  .jp-cards--illustrated .jp-card__body{margin-top:16px;}

  .jp-cards.jp-cards--illustrated .jp-card__body--with-image{
    display:flex !important;
    flex-direction:column-reverse !important;
    align-items:stretch !important;
    gap:16px !important;
  }

  .jp-cards.jp-cards--illustrated .jp-card__content{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
  }

  .jp-cards.jp-cards--illustrated .jp-card__image{
    display:block !important;
    position:static !important;
    float:none !important;
    clear:both !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    margin:0 !important;
    object-fit:cover !important;
    align-self:stretch !important;
    justify-self:auto !important;
    border-radius:12px !important;
    overflow:hidden !important;
    transform:none !important;
  }
}

@media (max-width:480px){
  .jp-card__button{width:100%;}
}

/* ======================================================
   ELEMENTOR EDITOR
   Stesse regole del frontend, anche dentro l'anteprima.
   ====================================================== */

.elementor-editor-active .jp-cards--cols-3.jp-cards--illustrated .jp-card__body--with-image,
.elementor-editor-active .jp-cards--cols-4.jp-cards--illustrated .jp-card__body--with-image,
.elementor-edit-mode .jp-cards--cols-3.jp-cards--illustrated .jp-card__body--with-image,
.elementor-edit-mode .jp-cards--cols-4.jp-cards--illustrated .jp-card__body--with-image{
  display:flex !important;
  flex-direction:column-reverse !important;
  align-items:stretch !important;
  gap:16px !important;
}

.elementor-editor-active .jp-cards--cols-3.jp-cards--illustrated .jp-card__image,
.elementor-editor-active .jp-cards--cols-4.jp-cards--illustrated .jp-card__image,
.elementor-edit-mode .jp-cards--cols-3.jp-cards--illustrated .jp-card__image,
.elementor-edit-mode .jp-cards--cols-4.jp-cards--illustrated .jp-card__image{
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  margin:0 !important;
  border-radius:12px !important;
  overflow:hidden !important;
}
