/* ============================================================
   Valdisoleappartamenti.it — Portfolio "Immobili realizzati"
   Companion CSS del child theme. Tutti i moduli sono nativi Divi:
   qui si stila soltanto, non si sostituisce il markup.
   ============================================================ */

/* --- intestazione progetto --- */
.vs-phead .vs-eyebrow{font-size:12.5px;font-weight:800;letter-spacing:.14em;
text-transform:uppercase;color:#2f7d27;margin:0}
.vs-phead h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;
font-size:clamp(28px,4.2vw,46px);line-height:1.1;letter-spacing:-.015em;
margin:14px 0 0;color:#172a3a;text-wrap:balance;padding:0}
.vs-phead .vs-meta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.vs-chip{display:inline-block;background:#e8f1f9;color:#14507e;font-size:13px;
font-weight:700;padding:8px 15px;border-radius:999px;line-height:1.2}
.vs-chip-plain{background:#eef2f5;color:#55636f}

/* --- confronto prima/dopo (due moduli immagine nativi) --- */
.vs-ba-row .vs-ba-lab{margin-bottom:10px!important}
.vs-ba-label{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
color:#fff;display:inline-block;padding:7px 14px;border-radius:999px;margin:0;line-height:1}
.vs-ba-prima{background:#0d2335}
.vs-ba-dopo{background:#25611e}
.vs-ba-img .et_pb_image_wrap{width:100%;border-radius:16px;overflow:hidden;display:block}
.vs-ba-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.vs-ba-img{margin-bottom:0!important;box-shadow:0 18px 40px -24px rgba(13,35,53,.5);
border-radius:16px}

/* --- fatti chiave --- */
.vs-facts .et_pb_column{background:#fff;border:1px solid #e3e9ee;border-radius:14px;
padding:20px 16px!important;text-align:center;margin-bottom:12px!important}
.vs-fact{margin-bottom:0!important}
.vs-fact-v{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(17px,2.2vw,24px);
font-weight:600;color:#1a6fb4;line-height:1.15;margin:0}
.vs-fact-l{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
color:#55636f;margin:7px 0 0}

/* --- testo --- */
.vs-ptext{max-width:70ch}
.vs-ptext p{font-size:17px;line-height:1.75;color:#41525f;margin:0 0 16px;padding:0}

/* --- gallery --- */
.vs-gal .et_pb_gallery_image img{aspect-ratio:4/3;object-fit:cover}
.vs-gal .et_pb_gallery_item{margin-bottom:14px!important}

/* --- CTA --- */
.vs-cta-row{align-items:center}
.vs-cta-txt h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:24px;
margin:0;color:#172a3a;padding:0}
.vs-cta-txt p{font-size:15px;color:#55636f;margin:8px 0 0;max-width:48ch}
.vs-cta-btn .et_pb_button{padding:15px 28px!important;font-size:15px!important;
transition:background .15s}
.vs-cta-btn .et_pb_button:hover{background:#25611e!important}
.vs-cta-btn .et_pb_button:after{display:none}
.vs-p-cta{border-top:1px solid #e3e9ee;border-bottom:1px solid #e3e9ee}

/* --- archivio --- */
.vs-arch-head{text-align:center}
.vs-arch-head .vs-eyebrow{font-size:12.5px;font-weight:800;letter-spacing:.14em;
text-transform:uppercase;color:#2f7d27;margin:0}
.vs-arch-head h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;
font-size:clamp(28px,4.2vw,46px);margin:14px 0 0;letter-spacing:-.015em;color:#172a3a;padding:0}
.vs-arch-head .vs-lead{font-size:16.5px;line-height:1.7;color:#55636f;
margin:18px auto 0;max-width:62ch}
.vs-portfolio .et_pb_portfolio_item{background:#fff;border:1px solid #e3e9ee;
border-radius:16px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.vs-portfolio .et_pb_portfolio_item:hover{border-color:#1a6fb4;
box-shadow:0 18px 38px -22px rgba(26,111,180,.45)}
.vs-portfolio .et_portfolio_image img{aspect-ratio:4/3;object-fit:cover;display:block}
.vs-portfolio .et_pb_portfolio_item h2{font-family:'Bricolage Grotesque',sans-serif;
font-weight:600;font-size:20px;line-height:1.25;padding:18px 20px 0;margin:0}
.vs-portfolio .post-meta{padding:6px 20px 20px;font-size:12px;font-weight:700;
letter-spacing:.08em;text-transform:uppercase;color:#55636f;display:block}
.vs-portfolio .post-meta a{color:#55636f}
.vs-portfolio .et_pb_portfolio_filters{margin-bottom:26px}
.vs-portfolio .et_pb_portfolio_filters li a{font-weight:700;color:#55636f;
border-radius:999px;padding:8px 16px}
.vs-portfolio .et_pb_portfolio_filters li a.active{background:#1a6fb4;color:#fff}

@media (max-width:980px){
  .vs-ba-row .et_pb_column{margin-bottom:18px!important;width:100%!important}
  .vs-facts .et_pb_column{width:calc(50% - 8px)!important;margin-right:16px!important}
  .vs-facts .et_pb_column:nth-child(2n){margin-right:0!important}
  .vs-cta-row .et_pb_column{width:100%!important;margin-bottom:16px!important}
}
@media (max-width:640px){
  .vs-ba-img img{aspect-ratio:3/2}
}

/* ============================================================
   Griglia immobili — shortcode [vs_immobili]
   NB: queste regole stanno QUI, dentro lo script che genera il CSS.
   Appenderle a portfolio.css non serve: il build successivo lo riscrive.
   ============================================================ */
.vs-imm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.vs-imm-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e3e9ee;
border-radius:18px;overflow:hidden;color:inherit;text-decoration:none;
transition:border-color .18s,box-shadow .18s,transform .18s}
.vs-imm-card:hover{border-color:#1a6fb4;box-shadow:0 20px 42px -22px rgba(26,111,180,.45);
transform:translateY(-4px)}
.vs-imm-card:hover .vs-imm-img img{transform:scale(1.05)}
.vs-imm-img{position:relative;line-height:0;overflow:hidden}
.vs-imm-img img{width:100%;height:215px;object-fit:cover;display:block;
transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.vs-imm-badge{position:absolute;top:14px;left:14px;background:#2f7d27;color:#fff;
font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
padding:8px 14px;border-radius:999px;line-height:1}
.vs-imm-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.vs-imm-loc{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#55636f}
.vs-imm-body h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:21px;
margin:7px 0 0;line-height:1.25;padding:0;color:#172a3a}
.vs-imm-dati{display:flex;flex-wrap:wrap;gap:14px;font-size:13.5px;color:#55636f;margin:11px 0 0}
.vs-imm-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
margin-top:auto;padding-top:18px}
.vs-imm-prezzo{font-family:'Bricolage Grotesque',sans-serif;font-size:23px;font-weight:600;
color:#14507e;line-height:1}
.vs-imm-go{font-size:14px;font-weight:800;color:#1a6fb4;margin-left:auto;white-space:nowrap}
.vs-imm-vuoto{text-align:center;color:#55636f;padding:36px 0}

/* --- varianti su FONDO SCURO (sezione portfolio della home) ---
   Senza queste, i titoli restano #172a3a su fondo blu: illeggibili. --- */
.vs-realizzati .vs-imm-card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18)}
.vs-realizzati .vs-imm-card:hover{border-color:rgba(255,255,255,.45);
box-shadow:0 22px 46px -24px rgba(0,0,0,.6)}
.vs-realizzati .vs-imm-body h3{color:#ffffff}
.vs-realizzati .vs-imm-loc,.vs-realizzati .vs-imm-dati{color:#b8d8f2}
.vs-realizzati .vs-imm-go{color:#a5d8ff}
.vs-realizzati .vs-imm-prezzo{color:#ffffff}
.vs-realizzati .vs-imm-badge{background:rgba(9,24,38,.9)}
.vs-realizzati .vs-imm-vuoto{color:#c3d4e2}

/* --- scheda immobile: confronto prima/dopo alla stessa altezza --- */
.vs-ba-row{align-items:flex-start}
.vs-ba-lab{margin-bottom:10px!important}
.vs-ba-img{margin-bottom:0!important}
.vs-ba-img .et_pb_image_wrap{display:block;width:100%;height:340px;border-radius:16px;
overflow:hidden;box-shadow:0 18px 40px -24px rgba(13,35,53,.5)}
.vs-ba-img img{width:100%!important;height:100%!important;object-fit:cover;display:block}
.vs-facts .et_pb_column{background:#fff;border:1px solid #e3e9ee;border-radius:14px;
padding:20px 16px!important;text-align:center;margin-bottom:14px!important;
transition:border-color .18s,transform .18s}
.vs-facts .et_pb_column:hover{border-color:#1a6fb4;transform:translateY(-2px)}
.vs-p-text .vs-ptext{max-width:72ch}
.vs-gal .et_pb_gallery_items{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.vs-gal .et_pb_gallery_item{width:auto!important;margin:0!important;float:none!important}
.vs-gal .et_pb_gallery_image{border-radius:14px;overflow:hidden}
.vs-gal .et_pb_gallery_image img{aspect-ratio:4/3;object-fit:cover;width:100%;
transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.vs-gal .et_pb_gallery_item:hover .et_pb_gallery_image img{transform:scale(1.06)}
.vs-p-cta{border-top:0;border-bottom:0}
.vs-p-cta .vs-cta-txt h2{color:#ffffff!important}
.vs-p-cta .vs-cta-txt p{color:#cddeeb!important}

@media (max-width:1100px){.vs-ba-img .et_pb_image_wrap{height:290px}}
@media (max-width:980px){
  .vs-ba-img .et_pb_image_wrap{height:250px}
  .vs-ba-row .et_pb_column{width:100%!important;margin-bottom:18px!important}
  .vs-facts .et_pb_column{width:calc(50% - 8px)!important;margin-right:16px!important}
  .vs-facts .et_pb_column:nth-child(2n){margin-right:0!important}
}
@media (max-width:640px){
  .vs-facts .et_pb_column{width:100%!important;margin-right:0!important}
  .vs-imm-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .vs-imm-card,.vs-imm-img img,.vs-facts .et_pb_column,.vs-gal .et_pb_gallery_image img{transition:none}
  .vs-imm-card:hover,.vs-facts .et_pb_column:hover{transform:none}
  .vs-imm-card:hover .vs-imm-img img,
  .vs-gal .et_pb_gallery_item:hover .et_pb_gallery_image img{transform:none}
}

/* --- stato vuoto della vetrina: invito, non scuse --- */
.vs-imm-attesa{max-width:620px;margin:0 auto;text-align:center;background:#fff;
border:1.5px dashed #b9cbd9;border-radius:22px;padding:clamp(34px,5vw,54px) clamp(24px,4vw,44px)}
.vs-imm-attesa-icona{display:inline-flex;align-items:center;justify-content:center;
width:58px;height:58px;border-radius:50%;background:#e8f1f9;color:#1a6fb4;
font-size:26px;line-height:1;margin-bottom:20px}
.vs-imm-attesa h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;
font-size:clamp(23px,3vw,30px);color:#172a3a;margin:0;padding:0;line-height:1.2}
.vs-imm-attesa p{font-size:16px;line-height:1.7;color:#55636f;margin:14px 0 0}
.vs-imm-attesa-invito{color:#172a3a!important;font-weight:600}
.vs-imm-attesa-cta{display:inline-block;margin:26px 0 0;background:#2f7d27;color:#fff;
font-weight:800;font-size:15px;padding:15px 28px;border-radius:999px;
transition:background .15s;min-height:44px}
.vs-imm-attesa-cta:hover{background:#25611e;color:#fff}
.vs-imm-attesa-alt{font-size:14.5px;margin-top:18px!important}
.vs-imm-attesa-alt a{color:#1a6fb4;font-weight:700;text-decoration:underline}
.vs-imm-attesa-alt a:hover{color:#14507e}
/* su fondo scuro (se la sezione portfolio restasse senza schede) */
.vs-realizzati .vs-imm-attesa{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.3)}
.vs-realizzati .vs-imm-attesa h2{color:#fff}
.vs-realizzati .vs-imm-attesa p{color:#cddeeb}
.vs-realizzati .vs-imm-attesa-invito{color:#fff!important}
