/*
 * Restyling 2026 — Gruppo Cabrini
 * CSS estratto dai blocchi HTML e portato su file, dopo la conversione delle
 * pagine Home/Azienda/Servizi in widget Elementor nativi.
 * Generato da build-css.js — non modificare a mano senza rigenerare.
 */

/*
 * Normalizzazione dei default Elementor sugli elementi generati dalla
 * conversione. Sta in testa e usa selettori a due classi: batte le regole
 * di Elementor (questo file carica dopo), ma perde contro le regole del
 * restyling qui sotto, che sono prefissate con .elementor.
 */
.e-con.cc-el, .cc-el{
  display:block; --display:block;
  --width:auto; --min-height:0; max-width:none;
  --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px;
  --gap:0px; --row-gap:0px; --column-gap:0px;
  --margin-top:0px; --margin-right:0px; --margin-bottom:0px; --margin-left:0px;
  /* Elementor imposta questi tramite variabili, con default pensati per i suoi
     container (flex in colonna). Gli elementi originali erano div normali:
     qui si ripristinano i default del CSS, che le regole del restyling
     possono comunque sovrascrivere. */
  /* Elementor mette min-width:0 sui container; gli elementi originali erano
     div/a normali, quindi come figli di flex/grid avevano min-width:auto e non
     si restringevano sotto il contenuto (es. le card categoria su mobile). */
  min-width:auto;
  --flex-direction:row; --flex-wrap:nowrap;
  --justify-content:normal; --align-items:normal; --align-content:normal;
  --text-align:initial; --height:auto;
}
/* Il contenitore che sostituisce il widget html deve comportarsi come il
   widget che rimpiazza: min-width:0, altrimenti non si restringe e trascina
   fuori viewport la pagina (le card categoria su mobile sono piu' larghe
   della colonna, e devono sforare dentro la griglia, non stirare il padre). */
.e-con.cc-holder{ min-width:0; max-width:100%; }

.cc-w{ margin:0; width:auto; max-width:none; }
.cc-w > .elementor-widget-container{ margin:0; padding:0; }
/* I titoli devono comportarsi come i tag HTML originali, non come widget. */
.cc-w .elementor-heading-title{
  /* Neutralizza la tipografia globale del Kit Elementor (font-family, peso e
     colore), che nell'originale non si applicava: erano tag semplici. */
  color:inherit; font-family:inherit; padding:0;
}
/* Elementor azzera margini e interlinea dei titoli (.elementor-heading-title
   {line-height:1;margin:0}). Qui si ripristinano i valori che il reset del
   tema hello-elementor dava ai tag originali. */
.cc-w :is(h1,h2,h3,h4,h5,h6).elementor-heading-title{
  font-weight:500; line-height:1.2;
  margin-block-start:.5rem; margin-block-end:1rem;
}
.cc-w p.elementor-heading-title{
  font-weight:inherit; line-height:inherit; margin-block-start:0; margin-block-end:.9rem;
}
.cc-w :is(div,span).elementor-heading-title{
  font-weight:inherit; line-height:inherit; margin:0;
}
/* I wrapper del widget immagine cambierebbero la base delle percentuali
   (es. max-height:100% dentro una cella flex) e la posizione come figlio flex:
   display:contents li toglie dal layout, lasciando l'<img> figlio diretto del
   contenitore originale. Sicuro qui: nessuna immagine ha classi proprie. */
.cc-w.elementor-widget-image,
.cc-w.elementor-widget-image > .elementor-widget-container{ display:contents; }


/* ================= Home (post 61) ================= */
.elementor.elementor .cch-hero{background:linear-gradient(100deg,rgba(51,51,51,.92) 30%,rgba(51,51,51,.55) 75%,rgba(51,51,51,.25)),url('https://www.gruppocabrini.it/wp-content/uploads/2025/07/Sir-240508-174636-_MB69523-scaled.jpg') center/cover no-repeat;color:#F0EAD1;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cch-wrap{max-width:1180px;margin:0 auto;padding:76px 32px 0;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;}
.elementor.elementor .cch-tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#F0EAD1;text-transform:uppercase;letter-spacing:.04em;}
.elementor.elementor .cch-tag::before{content:"";width:10px;height:10px;background:#007A8C;border-radius:2px;display:inline-block;}
.elementor.elementor .cch-left h1{font-family:'Montserrat',sans-serif;font-weight:800;font-size:46px;line-height:1.08;margin:18px 0 20px;max-width:600px;color:#fff;}
.elementor.elementor .cch-left p{font-size:16px;color:#E3DDC8;max-width:460px;margin:0 0 28px;}
.elementor.elementor .cch-ctas{display:flex;gap:14px;margin-bottom:54px;flex-wrap:wrap;}
.elementor.elementor .cch-btn{display:inline-flex;align-items:center;padding:14px 24px;font-weight:700;font-size:14.5px;font-family:'Montserrat',sans-serif;text-decoration:none;border-radius:4px;}
.elementor.elementor .cch-btn-primary{background:#A91B2C;color:#fff;}
.elementor.elementor .cch-btn-outline{border:1.5px solid #F0EAD1;color:#F0EAD1;}
.elementor.elementor .cch-panel{background:#A91B2C;color:#fff;padding:26px;display:flex;flex-direction:column;justify-content:space-between;min-height:190px;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);}
.elementor.elementor .cch-panel-lbl{font-size:13.5px;font-weight:600;}
.elementor.elementor .cch-panel-num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:30px;line-height:1.15;margin-top:6px;}
.elementor.elementor .cch-strip{background:#333333;border-top:1px solid #4A473C;margin-top:56px;}
.elementor.elementor .cch-strip-wrap{max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:repeat(4,1fr);}
.elementor.elementor .cch-stat{padding:22px 0;border-left:1px solid #4A473C;padding-left:24px;}
.elementor.elementor .cch-stat:first-child{border-left:none;padding-left:0;}
.elementor.elementor .cch-n{font-family:'Montserrat',sans-serif;font-weight:800;font-size:24px;color:#007A8C;}
.elementor.elementor .cch-l{font-size:12.5px;color:#B0AC94;margin-top:4px;}
@media(max-width:900px){
.elementor.elementor .cch-wrap{grid-template-columns:1fr;}
.elementor.elementor .cch-left h1{font-size:32px;}
.elementor.elementor .cch-strip-wrap{grid-template-columns:repeat(2,1fr);}

}
.elementor.elementor .cca-wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.elementor.elementor .cca-cats, .elementor.elementor .cca-vet, .elementor.elementor .cca-serv, .elementor.elementor .cca-test{padding:64px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-sec-head{margin-bottom:30px;}
.elementor.elementor .cca-sec-head h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:30px;color:#333;margin:0 0 8px;}
.elementor.elementor .cca-desc{font-size:14.5px;color:#5C5A54;}
.elementor.elementor .cca-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#D8D4C8;border:1px solid #D8D4C8;}
.elementor.elementor .cca-cat{background:#FFFDF8;padding:26px 20px;display:flex;flex-direction:column;gap:38px;min-height:190px;}
.elementor.elementor .cca-icon{width:38px;height:38px;background:#E7E4DC;}
.elementor.elementor .cca-cat h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;line-height:1.25;color:#333;margin:0;}
.elementor.elementor .cca-count{font-size:12.5px;color:#8A8780;font-weight:600;margin-top:6px;}
.elementor.elementor .cca-cat:hover{background:#333;}
.elementor.elementor .cca-cat:hover h3, .elementor.elementor .cca-cat:hover .cca-count{color:#F0EAD1;}
.elementor.elementor .cca-vet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.elementor.elementor .cca-card{background:#FFFDF8;border:1px solid #D8D4C8;}
.elementor.elementor .cca-media{aspect-ratio:4/3;background-color:#fff;background-position:center;background-repeat:no-repeat;position:relative;}
.elementor.elementor .cca-badge{position:absolute;top:10px;left:10px;background:#F0EAD1;color:#A91B2C;border:1.5px solid #A91B2C;border-radius:20px;font-size:11px;font-weight:700;padding:5px 12px;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-body{padding:20px;}
.elementor.elementor .cca-body h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;margin:0 0 10px;color:#333;}
.elementor.elementor .cca-price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;color:#A91B2C;}
.elementor.elementor .cca-pers{background:#A91B2C;color:#fff;padding:64px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-pers-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.elementor.elementor .cca-tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#F0EAD1;text-transform:uppercase;}
.elementor.elementor .cca-tag::before{content:"";width:10px;height:10px;background:#F0EAD1;display:inline-block;}
.elementor.elementor .cca-pers-l h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:28px;margin:16px 0;color:#fff;}
.elementor.elementor .cca-pers-l p{font-size:15px;color:#F2C9CD;margin:0 0 22px;max-width:420px;}
.elementor.elementor .cca-btn{display:inline-flex;padding:14px 24px;font-weight:700;font-size:14.5px;border-radius:4px;text-decoration:none;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-btn-invert{background:#F0EAD1;color:#A91B2C;}
.elementor.elementor .cca-pers-r{background:#333;padding:24px;}
.elementor.elementor .cca-grid4{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.elementor.elementor .cca-mini{background:rgba(0,122,140,.12);border:1px solid #007A8C;border-radius:8px;padding:16px;font-size:13px;font-weight:700;color:#F0EAD1;}
.elementor.elementor .cca-mini span{font-weight:400;opacity:.8;font-size:12px;}
.elementor.elementor .cca-serv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #D8D4C8;border-left:1px solid #D8D4C8;}
.elementor.elementor .cca-serv-item{padding:32px 28px;border-right:1px solid #D8D4C8;border-bottom:1px solid #D8D4C8;background:#FFFDF8;}
.elementor.elementor .cca-step{font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;color:#F0EAD1;background:#333;display:inline-block;padding:4px 10px;margin-bottom:18px;border-radius:4px;}
.elementor.elementor .cca-serv-item h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:17px;margin:0 0 10px;color:#333;}
.elementor.elementor .cca-serv-item p{font-size:14px;color:#5C5A54;margin:0;}
.elementor.elementor .cca-test{background:#E4DBBB;}
.elementor.elementor .cca-test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.elementor.elementor .cca-test-card{background:#FFFDF8;border:1px solid #D8D4C8;padding:22px;}
.elementor.elementor .cca-stars{color:#A91B2C;font-size:13px;letter-spacing:2px;margin-bottom:12px;}
.elementor.elementor .cca-test-card p{font-size:14px;color:#3B3A36;margin:0 0 16px;}
.elementor.elementor .cca-who{font-size:12.5px;font-weight:700;color:#8A8780;}
@media(max-width:900px){
.elementor.elementor .cca-grid{grid-template-columns:repeat(2,1fr);}
.elementor.elementor .cca-vet-grid{grid-template-columns:1fr;}
.elementor.elementor .cca-pers-wrap{grid-template-columns:1fr;}
.elementor.elementor .cca-serv-grid{grid-template-columns:1fr;}
.elementor.elementor .cca-test-grid{grid-template-columns:1fr;}

}

/* ================= Azienda (post 325) ================= */
.elementor.elementor .cca-hero{background:linear-gradient(100deg,rgba(51,51,51,.90) 25%,rgba(51,51,51,.55) 70%,rgba(51,51,51,.2)),url('https://www.gruppocabrini.it/wp-content/uploads/2022/02/MAS_8821-1.jpg') center/cover no-repeat;color:#F0EAD1;font-family:'Montserrat',sans-serif;padding:90px 0;}
.elementor.elementor .cca-wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.elementor.elementor .cca-eyebrow{font-size:13.5px;font-weight:700;color:#007A8C;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:8px;}
.elementor.elementor .cca-eyebrow::before{content:"";width:10px;height:10px;background:#007A8C;border-radius:2px;}
.elementor.elementor .cca-eyebrow-dark{color:#A91B2C;}
.elementor.elementor .cca-eyebrow-dark::before{background:#A91B2C;}
.elementor.elementor .cca-hero h1{font-family:'Montserrat',sans-serif;font-weight:800;font-size:42px;line-height:1.12;color:#fff;margin:16px 0 20px;max-width:640px;}
.elementor.elementor .cca-hero p{font-size:16px;color:#E3DDC8;max-width:560px;}
.elementor.elementor .cca-stats{background:#333333;color:#F0EAD1;}
.elementor.elementor .cca-stats-wrap{max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:repeat(4,1fr);}
.elementor.elementor .cca-stat{padding:30px 0;border-left:1px solid #4A473C;padding-left:24px;}
.elementor.elementor .cca-stat:first-child{border-left:none;padding-left:0;}
.elementor.elementor .cca-n{font-size:30px;font-weight:800;color:#007A8C;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-l{font-size:12.5px;color:#B0AC94;margin-top:4px;}
.elementor.elementor .cca-section{padding:66px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:36px;}
.elementor.elementor .cca-intro-grid h2{font-size:28px;margin-bottom:18px;font-weight:800;}
.elementor.elementor .cca-intro-grid p{font-size:15px;color:#4A473C;margin-bottom:16px;}
.elementor.elementor .cca-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:16px;}
.elementor.elementor .cca-svc-card{background:#FFFDF8;border:1px solid #DCD3AE;overflow:hidden;}
.elementor.elementor .cca-svc-media{aspect-ratio:4/3;background-size:cover;background-position:center;}
.elementor.elementor .cca-svc-body{padding:18px 20px;}
.elementor.elementor .cca-svc-body h3{font-size:16px;font-weight:700;}
.elementor.elementor .cca-gallery{background:#FFFDF8;padding:66px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:8px;margin-top:30px;}
.elementor.elementor .cca-gal-grid > :is(.cc-el,.cc-w){background-size:cover;background-position:center;}
.elementor.elementor .cca-big{grid-column:span 2;grid-row:span 2;}
.elementor.elementor .cca-ref-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#DCD3AE;border:1px solid #DCD3AE;margin-top:20px;}
.elementor.elementor .cca-ref-cell{background:#FFFDF8;aspect-ratio:2/1;display:flex;align-items:center;justify-content:center;padding:14px;}
.elementor.elementor .cca-ref-cell img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(100%);opacity:.75;}
.elementor.elementor .cca-sub{font-size:14px;color:#5C5A4E;margin-top:6px;}
.elementor.elementor .cca-video{background:#E4DBBB;padding:66px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-video-wrap{max-width:820px;margin:32px auto 0;aspect-ratio:16/9;background-size:cover;background-position:center;position:relative;}
.elementor.elementor .cca-video-wrap::after{content:"";position:absolute;inset:0;background:rgba(51,51,51,.35);}
.elementor.elementor .cca-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:74px;background:#A91B2C;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.elementor.elementor .cca-play::after{content:"";border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px;}
.elementor.elementor .cca-cta{background:#A91B2C;color:#fff;text-align:center;padding:56px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .cca-cta h2{color:#fff;font-size:28px;margin-bottom:8px;font-weight:800;}
.elementor.elementor .cca-cta p{font-size:14.5px;color:#F2C9CD;margin-bottom:26px;}
.elementor.elementor .cca-btn{display:inline-flex;padding:14px 26px;background:#F0EAD1;color:#A91B2C;font-weight:700;font-family:'Montserrat',sans-serif;text-decoration:none;border-radius:4px;}
@media(max-width:900px){
.elementor.elementor .cca-stats-wrap{grid-template-columns:repeat(2,1fr);}
.elementor.elementor .cca-intro-grid{grid-template-columns:1fr;}
.elementor.elementor .cca-svc-grid{grid-template-columns:1fr;}
.elementor.elementor .cca-gal-grid{grid-template-columns:repeat(2,1fr);}
.elementor.elementor .cca-big{grid-column:span 1;grid-row:span 1;}
.elementor.elementor .cca-ref-grid{grid-template-columns:repeat(2,1fr);}

}

/* ================= Servizi (post 946) ================= */
.elementor.elementor .ccs-hero{--ccs-hero-img:url('/wp-content/uploads/2026/09/sfondo-servizi.jpg');background:linear-gradient(90deg,rgba(26,26,26,.86) 0%,rgba(26,26,26,.74) 45%,rgba(26,26,26,.44) 100%),var(--ccs-hero-img) center/cover no-repeat #333333;color:#F0EAD1;padding:70px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .ccs-wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.elementor.elementor .ccs-eyebrow{font-size:13.5px;font-weight:700;color:#A91B2C;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:8px;}
.elementor.elementor .ccs-eyebrow::before{content:"";width:10px;height:10px;background:#A91B2C;border-radius:2px;}
.elementor.elementor .ccs-eyebrow-light{color:#F0EAD1;}
.elementor.elementor .ccs-eyebrow-light::before{background:#F0EAD1;}
.elementor.elementor .ccs-hero h1{font-size:38px;color:#fff;margin-top:14px;max-width:640px;font-weight:800;}
.elementor.elementor .ccs-section{padding:64px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .ccs-num{width:36px;height:36px;background:#A91B2C;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex:none;}
.elementor.elementor .ccs-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.elementor.elementor .ccs-head h2{font-size:26px;font-weight:800;}
.elementor.elementor .ccs-block{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.elementor.elementor .ccs-block-2fr{grid-template-columns:2fr 1fr;}
.elementor.elementor .ccs-text p{font-size:14.5px;color:#4A473C;margin-bottom:14px;}
.elementor.elementor .ccs-text b{color:#1a1a1a;}
.elementor.elementor .ccs-photo{aspect-ratio:4/3;background-size:cover;background-position:center;border:1px solid #DCD3AE;}
.elementor.elementor .ccs-photo-sq{aspect-ratio:1/1;}
.elementor.elementor .ccs-div{height:1px;background:#DCD3AE;margin:64px 0;}
.elementor.elementor .ccs-cta{background:#A91B2C;color:#fff;text-align:center;padding:56px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .ccs-cta h2{color:#fff;font-size:26px;margin:10px 0 0;font-weight:800;}
.elementor.elementor .ccs-shop-block{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center;}
.elementor.elementor .ccs-shop-list{columns:2;column-gap:24px;font-size:14.5px;color:#4A473C;margin-top:18px;}
.elementor.elementor .ccs-shop-list :is(.cc-el,.cc-w){break-inside:avoid;padding:8px 0 8px 20px;position:relative;margin-bottom:2px;}
.elementor.elementor .ccs-shop-list :is(.cc-el,.cc-w)::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;background:#A91B2C;border-radius:2px;}
.elementor.elementor .ccs-btn{display:inline-flex;padding:14px 26px;background:#A91B2C;color:#fff;font-weight:700;font-family:'Montserrat',sans-serif;text-decoration:none;border-radius:4px;margin-top:8px;}
.elementor.elementor .ccs-btn-invert{display:inline-flex;padding:14px 26px;background:#F0EAD1;color:#A91B2C;font-weight:700;font-family:'Montserrat',sans-serif;text-decoration:none;border-radius:4px;}
.elementor.elementor .ccs-gallery{background:#FFFDF8;padding:64px 0;font-family:'Montserrat',sans-serif;}
.elementor.elementor .ccs-gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:8px;margin-top:30px;}
.elementor.elementor .ccs-gal-grid > :is(.cc-el,.cc-w){background-size:cover;background-position:center;}
.elementor.elementor .ccs-big{grid-column:span 2;grid-row:span 2;}
@media(max-width:900px){
.elementor.elementor .ccs-block, .elementor.elementor .ccs-block-2fr, .elementor.elementor .ccs-shop-block{grid-template-columns:1fr;}
.elementor.elementor .ccs-shop-list{columns:1;}
.elementor.elementor .ccs-gal-grid{grid-template-columns:repeat(2,1fr);}
.elementor.elementor .ccs-big{grid-column:span 1;grid-row:span 1;}
/* Su mobile il testo occupa tutta la larghezza: la velatura diventa verticale e piu' fitta. */
.elementor.elementor .ccs-hero{background-image:linear-gradient(180deg,rgba(26,26,26,.70) 0%,rgba(26,26,26,.86) 100%),var(--ccs-hero-img);}

}

/* ====== style inline dell'originale, conservati ====== */
.elementor.elementor .cc-i325-1{justify-content:center}
.elementor.elementor .cc-i325-2{font-size:26px;margin-top:10px}
.elementor.elementor .cc-i325-2 .elementor-heading-title{font-size:26px}
.elementor.elementor .cc-i325-3{text-align:center}
.elementor.elementor .cc-i946-1{margin-top:22px}

/* ====== correzione overflow orizzontale del footer su mobile ====== */
footer .elementor-widget-text-editor,
footer .elementor-icon-list-text { overflow-wrap: break-word; }

/* ====== menu: contorno dei sottomenu ====== */
.elementor-nav-menu--main ul.sub-menu.elementor-nav-menu--dropdown{
  border: 1px solid #DCD3AE;
}

/* ====== Azienda: colonna destra allineata al testo, non al titolo ====== */
@media(min-width:901px){
  .elementor.elementor .cca-intro-grid > :is(.cc-el,.cc-w):nth-child(2){
    padding-top: calc(0.5rem + 28px * 1.2 + 18px);
  }
}

/* ====== Azienda: riquadro video, ora widget video di Elementor ====== */
.elementor.elementor .cca-video-wrap .cca-video-player{ position:absolute; inset:0; margin:0; }
.elementor.elementor .cca-video-wrap .cca-video-player > .elementor-widget-container,
.elementor.elementor .cca-video-wrap .elementor-wrapper,
.elementor.elementor .cca-video-wrap .elementor-custom-embed-image-overlay{
  position:absolute; inset:0; height:100%; padding:0;
}
.elementor.elementor .cca-video-wrap .elementor-custom-embed-image-overlay{
  background-size:cover; background-position:center;
  display:flex; align-items:center; justify-content:center;
}
/* La velatura scura e' su ::after del riquadro, quindi sta sopra al widget:
   senza pointer-events:none intercetterebbe il clic sul pulsante play. */
.elementor.elementor .cca-video-wrap::after{ pointer-events:none; }
/* Pulsante play identico a .cca-play: cerchio rosso, triangolo bianco. */
.elementor.elementor .cca-video-wrap .elementor-custom-embed-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:74px; height:74px; background:#A91B2C; border-radius:50%;
  display:flex; align-items:center; justify-content:center; opacity:1;
}
.elementor.elementor .cca-video-wrap .elementor-custom-embed-play > :is(i,svg){ display:none; }
.elementor.elementor .cca-video-wrap .elementor-custom-embed-play::after{
  content:""; border-left:20px solid #fff;
  border-top:12px solid transparent; border-bottom:12px solid transparent;
  margin-left:5px;
}

/* --- recensioni Google (al posto di .cca-test-grid) --- */
/* Layout e ordine sono gestiti dalle opzioni native del plugin nello
   shortcode (tema a tre colonne, avatar off, testo prima). Qui restano solo
   i colori, per allineare le card a quelle di Enrico (.cca-test-card). */
.elementor.elementor .cca-dyn-reviews ul.listing{ align-items:stretch; }
.elementor.elementor .cca-dyn-reviews ul.listing > li{
  background:#FFFDF8; border:1px solid #D8D4C8; padding:22px;
}
.elementor.elementor .cca-dyn-reviews .rating{ color:#A91B2C; letter-spacing:2px; }
.elementor.elementor .cca-dyn-reviews .text,
.elementor.elementor .cca-dyn-reviews .review-snippet,
.elementor.elementor .cca-dyn-reviews .review-full-text{ font-size:14px; color:#3B3A36; }
.elementor.elementor .cca-dyn-reviews .author-name,
.elementor.elementor .cca-dyn-reviews .author-name a,
.elementor.elementor .cca-dyn-reviews .relative-time-description{
  font-size:12.5px; font-weight:700; color:#8A8780; text-decoration:none;
}
.elementor.elementor .cca-dyn-reviews .author-name a:hover{ color:#A91B2C; }
/* Attribuzione Google: obbligatoria, resa discreta. */
.elementor.elementor .cca-dyn-reviews .attribution{ margin-top:16px; opacity:.7; }

/* ====== widget dinamici con l'aspetto del restyling ====== */
/* I selettori rispecchiano la struttura di WooCommerce (ul.products li.product)
   perche' le sue regole e quelle di Elementor Pro hanno specificita alta:
   .elementor-widget-woocommerce-products... e .woocommerce ul.products li.product .button */

/* --- categorie prodotto (al posto di .cca-grid) --- */
.elementor.elementor .cca-dyn-cats ul.products{
  display:grid; grid-template-columns:repeat(5,1fr);
  --grid-column-gap:1px; --grid-row-gap:1px; gap:1px;
  background:#D8D4C8; border:1px solid #D8D4C8;
  margin:0; padding:0; list-style:none;
}
.elementor.elementor .cca-dyn-cats ul.products li.product-category{
  margin:0; padding:0; width:auto; float:none; list-style:none;
}
.elementor.elementor .cca-dyn-cats ul.products li.product-category > a{
  display:flex; flex-direction:column; gap:38px;
  background:#FFFDF8; padding:26px 20px; min-height:190px;
  height:100%; text-decoration:none;
}
/* Le icone sono PNG bianchi (nate per fondo scuro): invisibili sul crema.
   Il filtro le rende scure come il titolo, al posto del quadrato grigio
   che nella replica statica faceva da segnaposto. */
.elementor.elementor .cca-dyn-cats ul.products li.product-category img{
  width:38px; height:38px; object-fit:contain; margin:0; display:block;
  filter:brightness(0); opacity:.72;
}
.elementor.elementor .cca-dyn-cats ul.products li.product-category .woocommerce-loop-category__title{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:15px;
  line-height:1.25; color:#333; margin:0; padding:0;
}
.elementor.elementor .cca-dyn-cats ul.products li.product-category .woocommerce-loop-category__title .count{
  display:block; margin-top:6px; background:none;
  font-size:12.5px; font-weight:600; color:#8A8780;
}
.elementor.elementor .cca-dyn-cats ul.products li.product-category > a:hover{ background:#333; }
.elementor.elementor .cca-dyn-cats ul.products li.product-category > a:hover .woocommerce-loop-category__title,
.elementor.elementor .cca-dyn-cats ul.products li.product-category > a:hover .woocommerce-loop-category__title .count{ color:#F0EAD1; }
.elementor.elementor .cca-dyn-cats ul.products li.product-category > a:hover img{ filter:brightness(0) invert(1); opacity:.9; }

/* --- prodotti in vetrina (al posto di .cca-vet-grid) --- */
.elementor.elementor .cca-dyn-prod ul.products{
  display:grid; grid-template-columns:repeat(3,1fr);
  --grid-column-gap:24px; --grid-row-gap:24px; gap:24px;
  margin:0; padding:0; list-style:none;
  /* Stessa cornice delle liste prodotto dello shop (shop-2026.css): stesso
     rosso, stesso spessore, stesso raggio, stesso sollevamento all'hover.
     Cambiando queste due variabili cambia la cornice di tutte le card della
     vetrina; per allinearla al rosso dei bottoni basta metterle a #A91B2C /
     169, 27, 44. Nello shop la stessa scelta e' commentata in shop-2026.css. */
  --cc-cornice: #942F2E;
  --cc-cornice-ombra: 148, 47, 46;
}
.elementor.elementor .cca-dyn-prod ul.products li.product{
  position:relative; display:flex; flex-direction:column;
  background:#FFFDF8;
  border:2px solid var(--cc-cornice); border-radius:10px;
  /* L'immagine e' a filo del bordo: senza overflow:hidden i suoi angoli
     quadrati sporgerebbero dagli angoli arrotondati della cornice. */
  overflow:hidden;
  transition:box-shadow .25s ease, transform .25s ease;
  margin:0; padding:0; width:auto; float:none; list-style:none;
}
.elementor.elementor .cca-dyn-prod ul.products li.product:hover{
  box-shadow:0 8px 20px rgba(var(--cc-cornice-ombra), .18);
  transform:translateY(-3px);
}
.elementor.elementor .cca-dyn-prod ul.products li.product img{
  aspect-ratio:4/3; width:100%; object-fit:contain;
  background:#fff; padding:14px; margin:0; display:block;
}
.elementor.elementor .cca-dyn-prod ul.products li.product .woocommerce-loop-product__title{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:16px;
  color:#333; margin:0; padding:20px 20px 10px;
}
.elementor.elementor .cca-dyn-prod ul.products li.product .price{
  display:block; padding:0 20px 20px;
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:20px; color:#A91B2C;
}
.elementor.elementor .cca-dyn-prod ul.products li.product .price del,
.elementor.elementor .cca-dyn-prod ul.products li.product .price ins{ color:inherit; background:none; }
/* Badge dei prodotti con varianti, come nelle card statiche. */
.elementor.elementor .cca-dyn-prod ul.products li.product-type-variable::before{
  content:"Più varianti"; position:absolute; top:10px; left:10px; z-index:2;
  background:#F0EAD1; color:#A91B2C; border:1.5px solid #A91B2C; border-radius:20px;
  font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; padding:5px 12px;
}
/* Pulsante di acquisto, vestito come i pulsanti del restyling (.cch-btn-primary).
   Le stelle restano nascoste: nelle card statiche non c'erano. */
.elementor.elementor .cca-dyn-prod ul.products li.product .star-rating{ display:none; }
.elementor.elementor .cca-dyn-prod ul.products li.product .button,
.elementor.elementor .cca-dyn-prod ul.products li.product .added_to_cart{
  display:inline-flex; align-items:center; align-self:flex-start;
  margin:auto 20px 20px; padding:14px 24px; border:0; border-radius:4px;
  background:#A91B2C; color:#fff; text-decoration:none;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:14.5px; line-height:1;
}
.elementor.elementor .cca-dyn-prod ul.products li.product .button:hover,
.elementor.elementor .cca-dyn-prod ul.products li.product .added_to_cart:hover{
  background:#7E1421; color:#fff;
}
/* Dopo l'aggiunta compare anche "Vedi carrello": secondario,
   come .cca-btn-invert, per non avere due pulsanti rossi uguali. */
.elementor.elementor .cca-dyn-prod ul.products li.product .added_to_cart{
  margin-top:0; background:#F0EAD1; color:#A91B2C; border:1.5px solid #A91B2C;
}
.elementor.elementor .cca-dyn-prod ul.products li.product .added_to_cart:hover{
  background:#A91B2C; color:#fff;
}
/* margin-top:auto sul pulsante: resta in fondo alla card, cosi i pulsanti
   sono allineati anche quando i titoli occupano righe diverse. */

@media(max-width:900px){
  .elementor.elementor .cca-dyn-cats ul.products{ grid-template-columns:repeat(2,1fr); }
  .elementor.elementor .cca-dyn-prod ul.products{ grid-template-columns:1fr; }
}
