/* ═══════════════════════════════════════════════════════════
   ChiaraB — Portfolio (listing + single + gallery)  ·  namespace .cbpf-
   Sostituisce le pagine Elementor. Leggero per Core Web Vitals:
   immagini con width/height espliciti (no CLS), niente librerie,
   lightbox vanilla, hover discreti. Mobile-first.
   ═══════════════════════════════════════════════════════════ */
:root{
  --cbpf-blush:#bb847a; --cbpf-blush-dk:#a06f66; --cbpf-text:#54524f; --cbpf-ink:#3d3b39;
  --cbpf-mut:#7a746f; --cbpf-cream:#f4f0ed; --cbpf-paper:#faf7f4; --cbpf-white:#fff; --cbpf-line:#e6ddd6;
  --cbpf-serif:'Cormorant Garamond',Georgia,serif;
  --cbpf-sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --cbpf-wide:1200px; --cbpf-read:740px;
}
/* reset wrapper Solene (come blog/pages) */
.cbpf-page .eltdf-content,.cbpf-page .eltdf-content-inner,
.cbpf-page .eltdf-full-width,.cbpf-page .eltdf-full-width-inner,
.cbpf-page .eltdf-page-content-holder{padding:0!important;margin:0!important}
.cbpf-page .eltdf-grid-row{margin:0!important}
.cbpf-x,.cbpf-x *{box-sizing:border-box}
.cbpf-x img{max-width:100%;display:block}
.cbpf-wide{max-width:var(--cbpf-wide);margin:0 auto;padding:0 22px}
.cbpf-read{max-width:var(--cbpf-read);margin:0 auto;padding:0 22px}

/* ── elementi condivisi ── */
.cbpf-eyebrow{font-family:var(--cbpf-sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cbpf-blush-dk);margin:0 0 12px}
.cbpf-eyebrow a{color:inherit;text-decoration:none}
.cbpf-bc,.cbpf-bc a{font-family:var(--cbpf-serif);font-style:italic;color:var(--cbpf-mut);font-size:15px;text-decoration:none}
.cbpf-bc a:hover{color:var(--cbpf-blush)}
.cbpf-btn{display:inline-block;background:var(--cbpf-blush);color:#fff;font-family:var(--cbpf-serif);
  font-size:19px;font-weight:700;padding:13px 32px;border-radius:6px;text-decoration:none;
  border:1px solid var(--cbpf-blush);transition:background .2s,color .2s}
.cbpf-btn:hover,.cbpf-btn:focus-visible{background:#fff;color:var(--cbpf-text);outline:none}
.cbpf-x a:focus-visible{outline:2px solid var(--cbpf-blush-dk);outline-offset:3px;border-radius:3px}

/* firma decorativa: filo + rombo */
.cbpf-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px auto 0;max-width:240px}
.cbpf-rule::before,.cbpf-rule::after{content:"";height:1px;flex:1;background:var(--cbpf-line)}
.cbpf-rule i{width:7px;height:7px;transform:rotate(45deg);background:var(--cbpf-blush);display:block}

/* ═══ LISTING (/portfolio/) ═══ */
.cbpf-arch{padding:0 0 clamp(54px,8vw,92px)}
.cbpf-arch-body{padding-top:clamp(34px,5vw,56px)}

/* hero con immagine + overlay + testo */
.cbpf-hero{position:relative;display:flex;align-items:flex-end;min-height:clamp(340px,50vh,520px);
  overflow:hidden;background:var(--cbpf-ink);margin-bottom:0}
.cbpf-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.cbpf-hero-shade{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,36,34,.18) 0%,rgba(40,36,34,.22) 42%,rgba(40,36,34,.66) 100%)}
.cbpf-hero-in{position:relative;z-index:2;width:100%;max-width:760px;margin:0 auto;text-align:center;
  padding:clamp(40px,6vw,72px) 22px clamp(32px,4vw,52px);color:#fff}
.cbpf-hero h1{font-family:var(--cbpf-serif);font-weight:400;color:#fff;letter-spacing:.01em;
  font-size:clamp(34px,5.4vw,60px);line-height:1.1;margin:.06em 0 .3em;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.cbpf-hero .lede{font-family:var(--cbpf-serif);font-style:italic;color:rgba(255,255,255,.92);
  font-size:clamp(17px,2.1vw,21px);line-height:1.55;margin:0}
.cbpf-eyebrow--hero{color:#fff;opacity:.92}
.cbpf-bc--hero,.cbpf-bc--hero a{color:rgba(255,255,255,.85)}
.cbpf-bc--hero a:hover{color:#fff}
/* variante senza immagine */
.cbpf-hero--plain{min-height:0;background:var(--cbpf-cream)}
.cbpf-hero--plain h1{color:var(--cbpf-ink);text-shadow:none}
.cbpf-hero--plain .lede{color:var(--cbpf-mut)}
.cbpf-hero--plain .cbpf-eyebrow--hero{color:var(--cbpf-blush-dk);opacity:1}
.cbpf-hero--plain .cbpf-bc--hero,.cbpf-hero--plain .cbpf-bc--hero a{color:var(--cbpf-mut)}

/* filtro categorie (auto-nascosto se assente) */
.cbpf-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 clamp(28px,4vw,42px)}
.cbpf-filter a{font-family:var(--cbpf-serif);font-size:17px;color:var(--cbpf-blush-dk);text-decoration:none;
  border:1px solid var(--cbpf-line);background:var(--cbpf-white);border-radius:24px;padding:7px 20px;transition:.2s}
.cbpf-filter a:hover,.cbpf-filter a[aria-current="page"]{background:var(--cbpf-blush);color:#fff;border-color:var(--cbpf-blush)}

/* griglia: tutte le card allo stesso livello, foto rettangolari */
.cbpf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px)}
.cbpf-card{display:block;text-decoration:none;color:inherit}
.cbpf-card-fig{position:relative;overflow:hidden;border-radius:5px;background:var(--cbpf-cream);
  aspect-ratio:3/2;margin:0}
.cbpf-card-fig img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cbpf-card-fig::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,36,34,0) 38%,rgba(40,36,34,.66) 100%)}
.cbpf-card:hover .cbpf-card-fig img,.cbpf-card:focus-visible .cbpf-card-fig img{transform:scale(1.05)}
/* nome coppia + etichetta sovrimpressi */
.cbpf-card-ov{position:absolute;left:0;right:0;bottom:0;z-index:2;text-align:center;
  padding:0 18px clamp(18px,2vw,24px);color:#fff}
.cbpf-card-ov .cat{display:block;font-family:var(--cbpf-sans);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,255,255,.92);margin:0 0 6px}
.cbpf-card-ov .nm{display:block;font-family:var(--cbpf-serif);font-weight:400;color:#fff;
  font-size:clamp(22px,2.3vw,28px);line-height:1.15;letter-spacing:.04em;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.cbpf-card-ov .ln{display:block;width:54px;height:1px;background:rgba(255,255,255,.7);margin:12px auto 0;
  transition:width .4s}
.cbpf-card:hover .cbpf-card-ov .ln,.cbpf-card:focus-visible .cbpf-card-ov .ln{width:96px}

/* CTA fondo listing */
.cbpf-arch-cta{background:var(--cbpf-cream);text-align:center;padding:clamp(40px,5vw,60px) 22px;
  margin-top:clamp(48px,6vw,80px);border-radius:12px}
.cbpf-arch-cta h2{font-family:var(--cbpf-serif);font-weight:400;color:var(--cbpf-ink);
  font-size:clamp(24px,3vw,34px);margin:0 0 .3em}
.cbpf-arch-cta p{font-family:var(--cbpf-sans);color:var(--cbpf-text);font-size:16px;margin:0 0 1.2em;
  max-width:560px;margin-inline:auto}

/* ═══ SINGLE (/portfolio-item/<slug>/) ═══ */
.cbpf-single{padding-bottom:clamp(50px,7vw,86px)}
.cbpf-cover{position:relative;width:100%;height:clamp(360px,62vh,640px);overflow:hidden;background:var(--cbpf-ink)}
.cbpf-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cbpf-cover::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(61,59,57,.22) 0%,rgba(61,59,57,.12) 38%,rgba(61,59,57,.62) 100%)}
.cbpf-cover-in{position:absolute;left:0;right:0;bottom:0;z-index:2;text-align:center;padding:0 22px clamp(30px,5vw,56px);color:#fff}
.cbpf-cover .cbpf-eyebrow{color:#fff;opacity:.92}
.cbpf-cover h1{font-family:var(--cbpf-serif);font-weight:400;color:#fff;letter-spacing:.01em;
  font-size:clamp(34px,5.4vw,62px);line-height:1.08;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.28)}

.cbpf-bc-bar{max-width:var(--cbpf-wide);margin:0 auto;padding:18px 22px 0}

/* intro testo articolo */
.cbpf-intro{padding:clamp(34px,5vw,56px) 0 0;font-family:var(--cbpf-sans);font-size:18px;line-height:1.8;color:var(--cbpf-text)}
.cbpf-intro > *{margin:0 0 1.1em}
.cbpf-intro h2{font-family:var(--cbpf-serif);font-weight:400;color:var(--cbpf-ink);font-size:clamp(24px,3vw,32px);
  line-height:1.25;margin:1.4em 0 .35em;text-align:center}
.cbpf-intro p{text-align:center}
.cbpf-intro a{color:var(--cbpf-blush-dk);text-decoration:underline;text-underline-offset:2px}
.cbpf-intro strong,.cbpf-intro b{color:var(--cbpf-ink);font-weight:600}

/* galleria masonry */
.cbpf-gallery{margin:clamp(36px,5vw,60px) auto 0;max-width:var(--cbpf-wide);padding:0 14px;
  column-count:3;column-gap:14px}
.cbpf-gallery .g{break-inside:avoid;margin:0 0 14px;border-radius:4px;overflow:hidden;background:var(--cbpf-cream);
  display:block;cursor:zoom-in;border:0;padding:0;width:100%}
.cbpf-gallery .g img{width:100%;height:auto;display:block;transition:transform .5s,filter .3s}
.cbpf-gallery .g:hover img{transform:scale(1.03);filter:brightness(.95)}

/* CTA + back */
.cbpf-scta{background:var(--cbpf-cream);border-radius:12px;text-align:center;padding:clamp(34px,4vw,48px) 24px;
  margin:clamp(44px,6vw,68px) auto 0}
.cbpf-scta h2{font-family:var(--cbpf-serif);font-weight:400;font-size:clamp(24px,3vw,32px);color:var(--cbpf-ink);margin:0 0 .25em}
.cbpf-scta p{font-family:var(--cbpf-sans);color:var(--cbpf-text);font-size:16px;margin:0 0 1.1em}
.cbpf-back{text-align:center;margin-top:clamp(30px,4vw,44px)}
.cbpf-back a{font-family:var(--cbpf-sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cbpf-mut);text-decoration:none}
.cbpf-back a:hover{color:var(--cbpf-blush)}

/* related (altri matrimoni) */
.cbpf-rel{background:var(--cbpf-paper);margin-top:clamp(50px,7vw,84px);padding:clamp(44px,6vw,72px) 0}
.cbpf-rel h2{font-family:var(--cbpf-serif);font-weight:400;text-align:center;color:var(--cbpf-ink);
  font-size:clamp(24px,3vw,34px);margin:0 0 6px}
.cbpf-rel .cbpf-rule{margin-bottom:34px}

/* ── lightbox vanilla ── */
.cbpf-lb{position:fixed;inset:0;z-index:99999;background:rgba(33,31,30,.94);display:none;
  align-items:center;justify-content:center;padding:24px}
.cbpf-lb.is-open{display:flex}
.cbpf-lb img{max-width:96vw;max-height:90vh;width:auto;height:auto;border-radius:3px;box-shadow:0 12px 50px rgba(0,0,0,.5)}
.cbpf-lb-btn{position:absolute;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;
  opacity:.8;transition:opacity .2s;padding:14px}
.cbpf-lb-btn:hover{opacity:1}
.cbpf-lb-close{top:8px;right:12px}
.cbpf-lb-prev{left:6px;top:50%;transform:translateY(-50%);font-size:46px}
.cbpf-lb-next{right:6px;top:50%;transform:translateY(-50%);font-size:46px}
.cbpf-lb-count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#fff;opacity:.7;
  font-family:var(--cbpf-sans);font-size:13px;letter-spacing:.1em}

/* ── responsive ── */
@media(max-width:980px){
  .cbpf-grid{grid-template-columns:repeat(2,1fr)}
  .cbpf-gallery{column-count:2}
}
@media(max-width:560px){
  .cbpf-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .cbpf-gallery{column-count:1;max-width:480px}
  .cbpf-intro{font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  .cbpf-card-fig img,.cbpf-gallery .g img,.cbpf-btn,.cbpf-card .go::after{transition:none}
}

/* ── override specificità tema Solene (h1/h2 maiuscoli forzati) ── */
body.cbpf-page .cbpf-hero h1,
body.cbpf-page .cbpf-cover h1{text-transform:none!important;letter-spacing:.01em!important;font-weight:400!important}
body.cbpf-page .cbpf-card .nm,
body.cbpf-page .cbpf-intro h2,body.cbpf-page .cbpf-rel h2,
body.cbpf-page .cbpf-scta h2,body.cbpf-page .cbpf-arch-cta h2{text-transform:none!important;letter-spacing:.04em!important;font-weight:400!important}
