/* =========================================================================
   Consorzio Meuccio Ruini — Brand design system
   Palette dal logo: blu primario + accenti verde/rosso (tricolore).
   ========================================================================= */

:root{
  --brand:      #1a6ecb;   /* azzurro brand (banner Consorzio Ruini) */
  --brand-2:    #3a8ede;   /* azzurro brillante (hover/accenti) */
  --brand-dark: #123a8f;   /* blu profondo */
  --brand-ink:  #0e2f72;   /* blu scurissimo */
  --green:      #0a8f66;   /* verde teal (tricolore banner) — uso grafico */
  --green-ink:  #0a7a56;   /* verde per testo (contrasto AA su bianco) */
  --red:        #d12e27;   /* rosso (tricolore banner) */
  --ink:        #14213f;
  --muted:      #55668c;
  --paper:      #ffffff;
  --soft:       #eef5fd;   /* fondo azzurro tenue */
  --soft-2:     #e2eefb;
  --line:       #d7e3f3;
  --radius:     5px;
  --shadow-sm:  0 1px 2px rgba(18,74,156,.06), 0 4px 14px -8px rgba(18,74,156,.18);
  --shadow:     0 10px 30px -14px rgba(10,47,102,.28);
  --wrap:       1160px;
  --read:       780px;
  --f-head: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-serif: "DM Serif Display", Georgia, "Times New Roman", serif;
}
/* Serif editoriale — solo titoli/accenti selettivi */
.cmr-serif{ font-family:var(--f-serif) !important; font-weight:400 !important; letter-spacing:0; }

/* ---------- Base ---------- */
body{
  font-family: var(--f-body);
  color: var(--ink);
  background: var(--paper);
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6{ font-family: var(--f-head); color: var(--ink); line-height:1.2; font-weight:700; }
a{ color: var(--brand); text-decoration: none; transition: color .18s ease; }
a:hover{ color: var(--brand-2); }
img{ max-width:100%; height:auto; }
::selection{ background: var(--brand); color:#fff; }
:focus-visible{ outline: 3px solid var(--brand-2); outline-offset: 2px; }

/* ---------- Header ---------- */
.site-header.site-header{
  background: var(--paper);
  box-shadow: 0 1px 0 var(--line), 0 6px 24px -18px rgba(10,47,102,.4);
  padding-block: 10px;
  position: sticky;
  top: 0;
  z-index: 1000;
}
/* leggero restringimento della barra allo scroll gestito da Hello; qui garantiamo lo sticky */
.admin-bar .site-header.site-header{ top: 32px; }
@media (max-width:782px){ .admin-bar .site-header.site-header{ top: 46px; } }
.site-header .header-inner{ max-width: var(--wrap); margin-inline:auto; padding-inline: 24px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.site-header .site-branding{ flex:none; }
.site-header .custom-logo{ width:auto; height:62px; display:block; }
/* menu spinto a destra */
.site-navigation{ margin-left:auto; }
/* "Contatti" (ultima voce) come bottone */
.site-navigation .menu > li:last-child > a{
  background: var(--brand); color:#fff; padding:10px 20px; border-radius:5px;
}
.site-navigation .menu > li:last-child > a:hover{ background: var(--brand-dark); color:#fff; }
.site-navigation .menu > li:last-child.current-menu-item > a{ background: var(--brand-dark); }

/* Navigazione */
.site-navigation .menu{ gap: 4px; align-items:center; }
.site-navigation .menu > li > a{
  font-family: var(--f-head);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: .01em;
  color: var(--ink);
  padding: 10px 14px;
  border-radius: 5px;
  position: relative;
}
.site-navigation .menu > li > a:hover,
.site-navigation .menu > li.current-menu-item > a,
.site-navigation .menu > li.current-menu-ancestor > a{
  color: var(--brand);
  background: var(--soft);
}
/* Sottomenu dropdown */
.site-navigation .sub-menu{
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--brand);
  border-radius: 6px;
  box-shadow: var(--shadow);
  padding: 8px;
  min-width: 240px;
}
.site-navigation .sub-menu li a{
  color: var(--ink);
  padding: 9px 12px;
  border-radius: 4px;
  font-size: 14.5px;
}
.site-navigation .sub-menu li a:hover{ background: var(--soft); color: var(--brand); }
.site-navigation .menu-item-has-children > a::after{ color: var(--brand); }

/* ---------- Page header (banda hero interne) ---------- */
.site-main > .page-header,
.page-header{
  background: linear-gradient(120deg, var(--brand) 0%, var(--brand-dark) 62%, var(--brand-ink) 100%);
  position: relative;
  padding: 58px 24px 62px;
  margin-bottom: 0;
  text-align: center;
  overflow: hidden;
  /* full-bleed: hero a tutta larghezza */
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
body{ overflow-x: hidden; }
.page-header::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:5px;
  background: linear-gradient(90deg, var(--green) 0 33.3%, #ffffff 33.3% 66.6%, var(--red) 66.6% 100%);
}
.page-header .entry-title{
  color:#fff; margin:0; max-width: var(--wrap); margin-inline:auto;
  font-size: clamp(28px, 4.4vw, 44px); font-weight:800; letter-spacing:-.02em;
  text-wrap: balance;
}

/* ---------- Contenuto pagina ---------- */
.page-content{
  max-width: var(--read);
  margin: 0 auto;
  padding: 52px 24px 72px;
}
.page-content > *:first-child{ margin-top:0; }
.page-content p{ margin: 0 0 1.15em; }
.page-content h2{
  font-size: clamp(23px, 3vw, 30px); font-weight:800; letter-spacing:-.01em;
  color: var(--brand-dark); margin: 2em 0 .7em; padding-bottom:.35em;
  border-bottom: 2px solid var(--soft-2);
}
.page-content h3{ font-size: 21px; color: var(--ink); margin: 1.6em 0 .5em; }
.page-content h2 + h3{ margin-top:.8em; }
.page-content a{ text-decoration: underline; text-decoration-color: rgba(18,74,156,.35); text-underline-offset: 3px; }
.page-content a:hover{ text-decoration-color: var(--brand-2); }

/* Liste con marcatore brand */
.page-content ul{ list-style:none; padding-left:0; margin: 0 0 1.3em; }
.page-content ul li{ position:relative; padding-left: 1.7em; margin: .5em 0; }
.page-content ul li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:9px; height:9px; border-radius:2px; background: var(--green);
  transform: rotate(45deg);
}
.page-content ol{ padding-left: 1.3em; margin: 0 0 1.3em; }
.page-content ol li{ margin:.5em 0; }
.page-content ol li::marker{ color: var(--brand); font-weight:700; }

/* Immagini */
.page-content img{
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  display:block;
}
.page-content p > img{ margin-inline:auto; }

/* Tabelle */
.page-content table{
  width:100%; border-collapse: collapse; margin: 1.5em 0;
  border:1px solid var(--line); border-radius: var(--radius); overflow:hidden;
}
.page-content th{ background: var(--brand); color:#fff; font-family:var(--f-head); text-align:left; padding:12px 14px; }
.page-content td{ padding:11px 14px; border-top:1px solid var(--line); }
.page-content tbody tr:nth-child(even){ background: var(--soft); }

/* Citazioni / hr */
.page-content blockquote{
  margin: 1.6em 0; padding: 14px 22px; background: var(--soft);
  border-left: 4px solid var(--green); border-radius: 0 4px 4px 0; color: var(--ink);
}
.page-content hr{ border:0; height:1px; background: var(--line); margin: 2.4em 0; }
.page-content strong{ color: var(--brand-dark); }

/* ---------- Bottoni ---------- */
.page-content .wp-block-button__link,
.page-content a.button,
.elementor-button{
  font-family: var(--f-head) !important;
  font-weight: 600 !important;
  letter-spacing:.01em;
  border-radius: 4px !important;
}
.elementor-button:hover{ transform: translateY(-1px); }

/* ---------- Elementor (Home / footer) ---------- */
.elementor-widget-heading .elementor-heading-title{ font-family: var(--f-head); }
.elementor-widget-icon-list .elementor-icon-list-item{ border:0; }
.elementor-widget-icon-list .elementor-icon-list-text{
  font-family: var(--f-body); font-weight:500; color: var(--ink);
}
.elementor-widget-icon-list a:hover .elementor-icon-list-text{ color: var(--brand); }
.elementor-widget-icon-list .elementor-icon-list-icon svg,
.elementor-widget-icon-list .elementor-icon-list-icon i{ color: var(--green) !important; }

/* Card look per le sezioni chiare della Home: liste servizi/progetti in colonna leggibile */
.elementor-widget-icon-list .elementor-icon-list-items{
  max-width: var(--wrap); margin-inline:auto;
}

/* ---------- Footer polish ---------- */
.site-footer, footer[data-elementor-type="footer"]{ margin-top: 0; }
footer[data-elementor-type="footer"] img{ filter: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .site-header .custom-logo{ height:50px; }
}
@media (max-width: 767px){
  body{ font-size:16px; }
  .page-header{ padding: 40px 18px 44px; }
  .page-content{ padding: 36px 18px 52px; }
  .page-content h2{ margin-top:1.5em; }
}

/* =========================================================================
   HOMEPAGE
   ========================================================================= */

/* Eyebrow (occhiello) sopra i titoli di sezione */
.cmr-eyebrow .elementor-heading-title{
  font-family: var(--f-body); font-weight:700; font-size:13px;
  letter-spacing:.16em; text-transform:uppercase;
}

/* Hero */
.cmr-hero{ position:relative; }
.cmr-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:5px;
  background: linear-gradient(90deg, var(--green) 0 33.3%, #ffffff 33.3% 66.6%, var(--red) 66.6% 100%);
}
.cmr-btn-light .elementor-button,
.cmr-btn-ghost .elementor-button{ padding:15px 32px !important; font-size:16px !important; }
.cmr-btn-light .elementor-button{ background:#ffffff !important; color:var(--brand) !important; }
.cmr-btn-light .elementor-button:hover{ background:var(--soft) !important; }
.cmr-btn-ghost .elementor-button{ background:transparent !important; border:2px solid rgba(255,255,255,.65) !important; color:#fff !important; }
.cmr-btn-ghost .elementor-button:hover{ border-color:#fff !important; background:rgba(255,255,255,.12) !important; }
.cmr-btn-out .elementor-button{ background:#fff !important; color:var(--brand) !important; border:2px solid var(--line) !important; padding:12px 24px !important; }
.cmr-btn-out .elementor-button:hover{ border-color:var(--brand) !important; background:var(--soft) !important; }

/* Griglie di card (una colonna Elementor -> CSS grid) */
.cmr-grid .elementor-widget-wrap{ display:grid; gap:22px; align-items:stretch; }
.cmr-grid .elementor-widget-wrap > .elementor-element{ width:auto; max-width:none; margin:0; }
.cmr-grid-4 .elementor-widget-wrap{ grid-template-columns: repeat(4,1fr); }
.cmr-grid-3 .elementor-widget-wrap{ grid-template-columns: repeat(3,1fr); }
.cmr-grid-2 .elementor-widget-wrap{ grid-template-columns: repeat(2,1fr); }
@media (max-width:1024px){
  .cmr-grid-4 .elementor-widget-wrap,
  .cmr-grid-3 .elementor-widget-wrap{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width:600px){
  .cmr-grid .elementor-widget-wrap{ grid-template-columns: 1fr !important; }
}

/* Card servizi (icon-box) */
.cmr-card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius);
  padding:26px 22px; box-shadow: var(--shadow-sm); height:100%;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cmr-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow); border-color:#c9d8ef; }
.cmr-card .elementor-icon-box-icon{ margin-bottom:14px; }
.cmr-card .elementor-icon-box-icon .elementor-icon{
  width:56px; height:56px; display:inline-flex; align-items:center; justify-content:center;
  background: var(--soft); color: var(--brand) !important; border-radius:6px; font-size:24px;
  transition: background .2s ease, color .2s ease;
}
.cmr-card:hover .elementor-icon-box-icon .elementor-icon{ background: var(--brand); color:#fff !important; }
.cmr-card .elementor-icon-box-icon .elementor-icon svg{ fill: currentColor; width:26px; height:26px; }
.cmr-card .elementor-icon-box-title{ font-family: var(--f-head); font-size:17px; font-weight:700; margin:0 0 6px; }
.cmr-card .elementor-icon-box-title a{ color: var(--ink); }
.cmr-card:hover .elementor-icon-box-title a{ color: var(--brand); }
.cmr-card .elementor-icon-box-description{ color: var(--muted); font-size:14.5px; line-height:1.55; margin:0; }

/* Card immagine (image-box: progetti / bilanci) */
.cmr-imgcard{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-sm); height:100%;
  transition: transform .2s ease, box-shadow .2s ease;
}
.cmr-imgcard:hover{ transform: translateY(-4px); box-shadow: var(--shadow); }
.cmr-imgcard .elementor-image-box-wrapper{ display:flex; flex-direction:column; height:100%; }
.cmr-imgcard .elementor-image-box-img{ margin:0 0 0 0 !important; width:100% !important; }
.cmr-imgcard .elementor-image-box-img img{
  width:100%; height:160px; object-fit:contain; background: var(--soft);
  padding:20px; border-radius:0; box-shadow:none;
}
.cmr-imgcard.cmr-cover .elementor-image-box-img img{ object-fit:cover; padding:0; height:230px; }
/* Card illustrazione (banner style) */
.cmr-imgcard.cmr-ill .elementor-image-box-img img{ object-fit:cover; padding:0; height:190px; background:transparent; }
.cmr-imgcard.cmr-ill .elementor-image-box-content{ text-align:center; }
.cmr-imgcard .elementor-image-box-content{ padding:18px 20px; text-align:center; }
.cmr-imgcard .elementor-image-box-title{ font-family: var(--f-head); font-size:16px; margin:0 0 4px; }
.cmr-imgcard .elementor-image-box-title a{ color: var(--ink); }
.cmr-imgcard:hover .elementor-image-box-title a{ color: var(--brand); }
.cmr-imgcard .elementor-image-box-description{ color: var(--muted); font-size:13.5px; margin:0; }

/* Striscia numeri (counter) — hook su classe widget .cmr-stat */
.cmr-stat{ text-align:center; }
.cmr-stat .elementor-counter{ display:flex; flex-direction:column; align-items:center; }
.cmr-stat .elementor-counter-number-wrapper{
  font-family: var(--f-head); color:#fff; font-weight:800; font-size:46px; line-height:1;
}
.cmr-stat .elementor-counter-title{
  color:#eff5fe; font-family:var(--f-body); font-weight:600; font-size:15px;
  letter-spacing:.02em; margin-top:8px;
}

/* Riga di bottoni link (progetti) */
.cmr-btnrow .elementor-widget-wrap{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.cmr-btnrow .elementor-widget-wrap > .elementor-element{ width:auto; margin:0; }

/* =========================================================================
   PAGINE INTERNE — breadcrumb, correlati, CTA
   ========================================================================= */

/* Breadcrumb */
.cmr-breadcrumb{
  font-size:13.5px; color:var(--muted); margin:0 0 26px; padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.cmr-breadcrumb a{ color:var(--brand); text-decoration:none; }
.cmr-breadcrumb a:hover{ text-decoration:underline; }
.cmr-breadcrumb .separator{ margin:0 8px; color:#b9c6dc; }

/* CTA a fondo pagina */
.cmr-cta{
  margin:48px 0 4px; padding:26px 28px; border-radius:var(--radius);
  background:linear-gradient(120deg,var(--soft),var(--soft-2));
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap;
}
.cmr-cta-text{ display:flex; flex-direction:column; }
.cmr-cta-text strong{ font-family:var(--f-head); color:var(--brand-dark); font-size:18px; }
.cmr-cta-text span{ color:var(--muted); font-size:14.5px; }
.cmr-cta-btn{
  flex:none; background:var(--brand); color:#fff !important; font-family:var(--f-head); font-weight:600;
  padding:13px 26px; border-radius:5px; text-decoration:none !important; transition:background .2s, transform .2s;
}
.cmr-cta-btn:hover{ background:var(--brand-dark); transform:translateY(-1px); }

/* Contenuti correlati */
.cmr-related{ margin:54px 0 0; padding-top:32px; border-top:1px solid var(--line); }
.cmr-related-label{
  font-family:var(--f-body); font-weight:700; font-size:12.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--green-ink); margin:0 0 18px;
}
.cmr-related-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:18px; }
.cmr-related-card{
  display:flex; flex-direction:column; border:1px solid var(--line); border-radius:5px;
  overflow:hidden; background:#fff; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease; text-decoration:none !important;
}
.cmr-related-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.cmr-related-media{
  height:172px; background:var(--soft); display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.cmr-related-media img{ width:100%; height:100%; max-height:none; max-width:none; object-fit:cover; object-position:center; box-shadow:none; border-radius:0; }
.cmr-related-media.is-empty{
  background:linear-gradient(135deg,var(--brand),var(--brand-dark));
  color:#fff; font-family:var(--f-head); font-weight:800; font-size:34px;
}
.cmr-related-title{
  padding:13px 15px; font-family:var(--f-head); font-weight:600; font-size:14.5px;
  color:var(--ink); line-height:1.3;
}
.cmr-related-card:hover .cmr-related-title{ color:var(--brand); }

@media (max-width:600px){
  .cmr-cta{ flex-direction:column; align-items:flex-start; }
}

/* =========================================================================
   TEAM / STRUTTURA ORGANIZZATIVA
   ========================================================================= */
.cmr-team{ max-width:var(--wrap); margin:0 auto; }
.cmr-team-group{ margin:0 0 36px; }
.cmr-team-group > h3{
  font-family:var(--f-head); font-weight:800; font-size:1.1rem; color:var(--brand-dark);
  margin:0 0 18px; padding-bottom:9px; border-bottom:2px solid var(--line);
  display:flex; align-items:center; gap:11px; letter-spacing:.01em;
}
.cmr-team-group > h3::before{ content:""; width:18px; height:3px; background:var(--green); border-radius:2px; }
.cmr-team-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.cmr-team-grid.lead{ grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.cmr-mcard{
  display:flex; gap:15px; background:var(--surface); border:1px solid var(--line);
  border-radius:5px; padding:18px; box-shadow:var(--shadow-sm);
  transition:box-shadow .2s ease, border-color .2s ease;
}
.cmr-mcard:hover{ box-shadow:var(--shadow); border-color:#c2d5ee; }
.cmr-ava{
  flex:none; width:58px; height:58px; border-radius:5px;
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-ink) 100%);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-head); font-weight:800; font-size:1.15rem; letter-spacing:.02em;
}
.cmr-team-group.presidenza .cmr-ava{ background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand-dark) 100%); }
.cmr-mbody{ min-width:0; }
.cmr-mname{ font-family:var(--f-head); font-weight:700; font-size:1.02rem; color:var(--ink); margin:0; }
.cmr-mrole{ font-size:.82rem; color:var(--brand); font-weight:600; margin:2px 0 7px; }
.cmr-mbio{ font-size:.86rem; color:var(--muted); margin:0; line-height:1.5; }

/* Card team con foto */
.cmr-team-grid.photos{ grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.cmr-pcard{
  background:var(--surface); border:1px solid var(--line); border-radius:5px; overflow:hidden;
  box-shadow:var(--shadow-sm); transition:box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.cmr-pcard:hover{ box-shadow:var(--shadow); border-color:#c2d5ee; transform:translateY(-3px); }
.cmr-pcard .ph{ aspect-ratio:1/1; background:var(--soft-2); overflow:hidden; }
.cmr-pcard .ph img{ width:100%; height:100%; object-fit:cover; object-position:50% 18%; display:block; }
.cmr-pcard .bd{ padding:15px 17px 17px; }
.cmr-pname{ font-family:var(--f-head); font-weight:700; font-size:1.02rem; color:var(--ink); margin:0; }
.cmr-prole{ font-size:.82rem; color:var(--brand); font-weight:600; margin:2px 0 7px; }
.cmr-pbio{ font-size:.85rem; color:var(--muted); margin:0; line-height:1.5; }

/* =========================================================================
   BLOCCHI PAGINE (contatti, bilanci, partner)
   ========================================================================= */
/* Contatti */
.cmr-contact{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:0 0 8px; }
@media (max-width:640px){ .cmr-contact{ grid-template-columns:1fr; } }
.cmr-infocard{ background:var(--surface); border:1px solid var(--line); border-radius:5px; padding:22px 24px; box-shadow:var(--shadow-sm); }
.cmr-infocard h3{ margin:0 0 12px; font-family:var(--f-head); color:var(--brand-dark); font-size:1.05rem; }
.cmr-infoline{ display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-top:1px solid var(--line); }
.cmr-infoline:first-of-type{ border-top:0; }
.cmr-infoline .k{ font-family:var(--f-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); width:74px; flex:none; padding-top:3px; }
.cmr-infoline .v{ color:var(--ink); }
.cmr-infoline .v a{ color:var(--brand); text-decoration:none; }
.cmr-infoline .v a:hover{ text-decoration:underline; }
.cmr-map{ border-radius:5px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); min-height:320px; }
.cmr-map iframe{ width:100%; height:100%; min-height:340px; border:0; display:block; }

/* Bilancio: card download */
.cmr-bilancio{ display:flex; gap:24px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:5px; padding:24px; box-shadow:var(--shadow-sm); flex-wrap:wrap; }
.cmr-bilancio > img{ width:160px; height:auto; border-radius:4px; box-shadow:var(--shadow-sm); }
.cmr-bilancio .bd{ flex:1; min-width:230px; }
.cmr-bilancio .bd h3{ margin:0 0 6px; font-family:var(--f-head); color:var(--brand-dark); }
.cmr-bilancio .bd p{ color:var(--muted); margin:0 0 14px; }
.cmr-dlbtn{ display:inline-flex; align-items:center; gap:9px; background:var(--brand); color:#fff !important; font-family:var(--f-head); font-weight:600; padding:11px 22px; border-radius:4px; text-decoration:none !important; transition:background .2s; }
.cmr-dlbtn::before{ content:"\2193"; font-weight:800; }
.cmr-dlbtn:hover{ background:var(--brand-dark); }
.cmr-bilancio.soon{ opacity:.9; }
.cmr-bilancio.soon .tag{ display:inline-block; font-family:var(--f-mono); font-size:.72rem; color:var(--muted); border:1px dashed var(--line); border-radius:4px; padding:6px 12px; }

/* Partner */
.cmr-partners{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; margin:10px 0; }
.cmr-partners a, .cmr-partners span{ background:var(--surface); border:1px solid var(--line); border-radius:5px; padding:20px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); transition:box-shadow .2s, border-color .2s; }
.cmr-partners a:hover{ box-shadow:var(--shadow); border-color:#c2d5ee; }
.cmr-partners img{ max-height:60px; max-width:100%; object-fit:contain; box-shadow:none; border-radius:0; }
.cmr-partners.is-cert{ grid-template-columns:repeat(auto-fill,minmax(260px,360px)); }
.cmr-partners.is-cert img{ max-height:90px; }

/* =========================================================================
   TEAM — ritratti scontornati su cuneo brand (stile LCA)
   ========================================================================= */
.cmr-thero-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:1024px){ .cmr-thero-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cmr-thero-grid{ grid-template-columns:1fr; } }
.cmr-thero{
  position:relative; overflow:hidden; border-radius:var(--radius); min-height:420px;
  background:linear-gradient(135deg,#f6f9fd 0%,#e6eef9 100%);
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cmr-thero:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:#c2d5ee; }
.cmr-thero__wedge{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(160deg,var(--brand-2) 0%,var(--brand) 54%,var(--brand-ink) 100%);
  clip-path:polygon(42% 0, 100% 0, 100% 100%, 12% 100%);
}
.cmr-thero__img{
  position:absolute; z-index:2; bottom:0; left:50%; transform:translateX(-50%);
  height:102%; width:auto; max-width:none; object-fit:contain; object-position:bottom;
  filter:drop-shadow(0 12px 22px rgba(10,47,102,.30));
  transition:transform .4s ease;
}
.cmr-thero:hover .cmr-thero__img{ transform:translateX(-50%) scale(1.03); }
.cmr-thero__meta{ position:absolute; z-index:3; left:18px; right:18px; bottom:16px; }
.cmr-thero__role{ font-family:var(--f-body); font-weight:700; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#eaf2ff; margin:0 0 3px; text-shadow:0 1px 6px rgba(10,47,102,.5); }
.cmr-thero__name{ font-family:var(--f-head); font-size:19px; font-weight:800; color:#fff; margin:0; line-height:1.2; text-shadow:0 1px 8px rgba(10,47,102,.55); }

/* =========================================================================
   TEAM — griglia ritratti B/N -> colore all'hover (stile mockup)
   ========================================================================= */
.cmr-pgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:1024px){ .cmr-pgrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cmr-pgrid{ grid-template-columns:1fr; } }
.cmr-person{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cmr-person:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#c2d5ee; }
.cmr-person__photo{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--soft); }
.cmr-person__photo img{
  width:100%; height:100%; object-fit:cover; object-position:top center; display:block;
  filter:grayscale(100%); transition:filter .45s ease, transform .5s ease;
}
.cmr-person:hover .cmr-person__photo img{ filter:grayscale(0); transform:scale(1.045); }
.cmr-person__photo::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
  background:linear-gradient(90deg,var(--brand),var(--brand-2));
  transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
}
.cmr-person:hover .cmr-person__photo::after{ transform:scaleX(1); }
.cmr-person__body{ padding:14px 17px 17px; }
.cmr-person__role{ font-family:var(--f-body); font-weight:700; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--brand); margin:0 0 4px; }
.cmr-person__name{ font-family:var(--f-head); font-size:17px; font-weight:700; color:var(--ink); margin:0; line-height:1.25; }

/* =========================================================================
   HERO MANIFESTO + LINE-ART (benchmark AltraMente, registro istituzionale)
   ========================================================================= */
.cmr-hero-manifesto{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:30px;
  max-width:var(--wrap); margin:0 auto;
}
.cmr-hm__text{ position:relative; z-index:3; }
.cmr-hm__eyebrow{ font-family:var(--f-body); font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:#d4f3e2; margin:0 0 14px; }
.cmr-hm__title{ font-family:var(--f-head); font-weight:800; color:#fff; font-size:clamp(30px,4.6vw,58px); line-height:1.06; letter-spacing:-.02em; margin:0 0 16px; text-wrap:balance; }
.cmr-hm__title em{ font-family:var(--f-serif); font-style:italic; font-weight:400; color:#cfe6ff; }
.cmr-hm__sub{ color:#eaf2fd; font-size:clamp(16px,1.8vw,19px); max-width:46ch; margin:0 0 26px; }
.cmr-hm__cta{ display:flex; gap:12px; flex-wrap:wrap; }
.cmr-hm__btn{ font-family:var(--f-head); font-weight:600; font-size:15px; padding:13px 26px; border-radius:4px; text-decoration:none; transition:background .2s, border-color .2s, transform .2s; }
.cmr-hm__btn.light{ background:#fff; color:var(--brand); }
.cmr-hm__btn.light:hover{ background:var(--soft); transform:translateY(-1px); }
.cmr-hm__btn.ghost{ border:2px solid rgba(255,255,255,.6); color:#fff; }
.cmr-hm__btn.ghost:hover{ border-color:#fff; background:rgba(255,255,255,.12); }
.cmr-hm__figure{ position:relative; z-index:2; display:flex; justify-content:center; }
.cmr-hm__figure img{ position:relative; z-index:2; width:100%; max-width:460px; height:auto; }
.cmr-hm__lineart{ position:absolute; z-index:1; inset:-8% -6% -8% -6%; width:112%; height:116%; pointer-events:none; overflow:visible; }
.cmr-hm__lineart [stroke]{ vector-effect:non-scaling-stroke; }
@media (max-width:820px){
  .cmr-hero-manifesto{ grid-template-columns:1fr; gap:8px; text-align:center; }
  .cmr-hm__cta{ justify-content:center; }
  .cmr-hm__figure{ order:-1; margin-bottom:6px; }
  .cmr-hm__figure img{ max-width:320px; }
  .cmr-hm__sub{ margin-inline:auto; }
}

/* ===== Carosello hero (slide = layout manifesto) ===== */
.cmr-hero-carousel{ position:relative; max-width:var(--wrap); margin:0 auto; }
.cmr-hc__track{ display:grid; grid-template-columns:minmax(0,1fr); }
.cmr-hc__slide{
  grid-area:1 / 1; width:100%; min-width:0;
  opacity:0; visibility:hidden;
  transition:opacity .7s ease, visibility 0s linear .7s;
}
.cmr-hc__slide.is-active{ opacity:1; visibility:visible; transition:opacity .7s ease; }
.cmr-hc__slide .cmr-hm__text{ transform:translateY(12px); transition:transform .8s ease; }
.cmr-hc__slide.is-active .cmr-hm__text{ transform:none; }
.cmr-hc__controls{ display:flex; align-items:center; gap:10px; margin-top:30px; position:relative; z-index:4; }
.cmr-hc__btn{
  width:44px; height:44px; flex:none; display:inline-flex; align-items:center; justify-content:center;
  border:2px solid rgba(255,255,255,.6); border-radius:50%; background:transparent; color:#fff;
  cursor:pointer; padding:0; transition:background .2s, border-color .2s;
}
.cmr-hc__btn:focus{ background:transparent; color:#fff; }
.cmr-hc__btn:hover{ background:rgba(255,255,255,.14); border-color:#fff; color:#fff; }
.cmr-hc__btn svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.cmr-hc__pause{ margin-left:6px; }
.cmr-hc__pause .i-play{ display:none; fill:currentColor; stroke:none; }
.cmr-hero-carousel.is-paused .cmr-hc__pause .i-pause{ display:none; }
.cmr-hero-carousel.is-paused .cmr-hc__pause .i-play{ display:block; }
.cmr-hc__dots{ display:flex; align-items:center; gap:2px; }
.cmr-hero-carousel .cmr-hc__dot,
.cmr-hero-carousel .cmr-hc__dot:hover,
.cmr-hero-carousel .cmr-hc__dot:focus{
  width:28px; height:44px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.cmr-hc__dot::before{
  content:""; display:block; width:10px; height:10px; border-radius:5px;
  background:rgba(255,255,255,.5); transition:width .3s ease, background .3s ease;
}
.cmr-hc__dot:hover::before{ background:rgba(255,255,255,.8); }
.cmr-hero-carousel .cmr-hc__dot.is-active{ width:40px; }
.cmr-hc__dot.is-active::before{ width:28px; background:#fff; }
.cmr-hero-carousel :focus-visible{ outline:3px solid #fff; outline-offset:2px; }
@media (max-width:820px){
  .cmr-hc__controls{ justify-content:center; margin-top:24px; }
}
@media (prefers-reduced-motion: reduce){
  .cmr-hc__slide, .cmr-hc__slide .cmr-hm__text{ transition:none; transform:none; }
}

/* ===== Menu: terzo livello (flyout a destra) ===== */
.site-navigation ul.menu li ul ul{ top:-11px; }

/* ===== Sezione Manifesto ===== */
.cmr-manifesto{ position:relative; overflow:hidden; }
.cmr-manifesto__tex{ position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; }
.cmr-manifesto__grid{
  position:relative; z-index:1; max-width:var(--wrap); margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:start;
}
.cmr-manifesto__title{ font-family:var(--f-serif); font-weight:400; color:#fff; font-size:clamp(26px,3.6vw,42px); line-height:1.12; margin:0; }
.cmr-manifesto__cols{ column-count:2; column-gap:26px; color:#d6e8fb; font-size:15.5px; line-height:1.75; }
.cmr-manifesto__cols p{ margin:0 0 12px; break-inside:avoid; }
@media (max-width:820px){
  .cmr-manifesto__grid{ grid-template-columns:1fr; gap:18px; }
  .cmr-manifesto__cols{ column-count:1; }
}

/* ===== Fascia newsletter scura ===== */
.cmr-newsletter{ background:#0a2559; padding:34px 24px; }
.cmr-newsletter__in{ max-width:var(--wrap); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap; }
.cmr-newsletter__k{ font-family:var(--f-body); font-weight:700; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#8fe0c0; margin:0 0 4px; }
.cmr-newsletter__in h3{ font-family:var(--f-head); font-weight:800; color:#fff; font-size:1.25rem; margin:0; }
.cmr-newsletter__form{ display:flex; gap:10px; flex:1; min-width:280px; max-width:520px; }
.cmr-newsletter__form input{ flex:1; border:0; border-radius:4px; padding:13px 16px; font-family:var(--f-body); font-size:15px; background:#fff; color:var(--ink); }
.cmr-newsletter__form input:focus-visible{ outline:3px solid var(--brand-2); outline-offset:2px; }
.cmr-newsletter__form button{ border:0; border-radius:4px; padding:13px 24px; background:var(--brand); color:#fff; font-family:var(--f-head); font-weight:600; font-size:15px; cursor:pointer; transition:background .2s; }
.cmr-newsletter__form button:hover{ background:var(--brand-2); }
@media (max-width:640px){ .cmr-newsletter__in{ flex-direction:column; align-items:stretch; } .cmr-newsletter__form{ max-width:none; } }

/* ---------- Archivio News ---------- */
.page-header .cmr-archive-eyebrow{
  color: rgba(255,255,255,.85); margin:0 0 8px; text-transform:uppercase;
  letter-spacing:.14em; font-size:12.5px; font-weight:700;
}
.page-header .cmr-archive-intro{
  color: rgba(255,255,255,.9); max-width: 640px; margin:14px auto 0;
  font-size:15.5px; line-height:1.6;
}
.cmr-archive-wrap{ max-width: var(--wrap); margin-inline:auto; padding: 54px 24px 12px; }
.cmr-archive-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;
}
.cmr-ncard{ height:100%; }
.cmr-ncard__link{
  display:flex; flex-direction:column; height:100%;
  background:#fff; border:1px solid var(--line); border-radius: var(--radius);
  overflow:hidden; box-shadow: var(--shadow-sm); color: inherit; text-decoration:none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cmr-ncard__link:hover{ transform: translateY(-4px); box-shadow: var(--shadow); border-color:#c9d8ef; }
.cmr-ncard__thumb{
  display:block; aspect-ratio: 16 / 9; background-size:cover; background-position:center;
  background-color: var(--soft, #eef4fc);
}
.cmr-ncard__thumb.is-empty{ display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-ink) 100%); }
.cmr-ncard__thumb.is-empty span{ color:#fff; font-family: var(--f-serif); font-size:52px; line-height:1; opacity:.9; }
.cmr-ncard__body{ display:flex; flex-direction:column; gap:9px; padding: 18px 20px 22px; flex:1 1 auto; }
.cmr-ncard__meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cmr-ncard__cat{
  display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color: var(--brand); background: var(--soft, #eef4fc);
  padding: 3px 9px; border-radius: 3px;
}
.cmr-ncard__date{ font-size:12.5px; color: var(--muted); }
.cmr-ncard__title{
  font-family: var(--f-head); font-size:17.5px; font-weight:700; line-height:1.32;
  color: var(--ink); letter-spacing:-.01em;
}
.cmr-ncard__link:hover .cmr-ncard__title{ color: var(--brand); }
.cmr-ncard__exc{ font-size:14px; line-height:1.55; color: var(--muted); }

/* Filtri categoria News */
.cmr-news-filters{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 36px; }
.cmr-news-filter{
  display:inline-flex; align-items:center; min-height:40px; padding:0 16px;
  border:1px solid var(--line); border-radius:20px; background:#fff;
  font-family:var(--f-head); font-weight:600; font-size:14px; color:var(--ink); text-decoration:none;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.cmr-news-filter:hover{ border-color:var(--brand); color:var(--brand); }
.cmr-news-filter.is-active{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* In evidenza: Discussioni */
.cmr-news-featured{
  background:var(--soft); border:1px solid var(--line); border-left:4px solid var(--green);
  border-radius:var(--radius); padding:28px 28px 30px; margin:0 0 48px;
}
.cmr-news-featured__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:0 0 22px; }
.cmr-news-featured__eyebrow{ font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--green-ink); margin:0 0 4px; }
.cmr-news-featured__title{ font-family:var(--f-serif); font-weight:400; font-size:clamp(24px,3vw,32px); color:var(--brand-ink); margin:0; }
.cmr-news-featured__all{ font-family:var(--f-head); font-weight:600; font-size:14.5px; color:var(--brand); }
.cmr-news-featured__all::after{ content:" \2192"; }
.cmr-news-latest{ font-size:clamp(22px,2.6vw,28px); font-weight:800; color:var(--brand-dark); margin:0 0 24px; }

/* Paginazione archivio */
.cmr-archive-wrap .pagination,
.cmr-archive-main .navigation.pagination{ margin: 40px 0 8px; }
.cmr-archive-main .nav-links{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.cmr-archive-main .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px;
  padding:0 12px; border:1px solid var(--line); border-radius: var(--radius);
  color: var(--ink); text-decoration:none; font-weight:600; font-size:14.5px; background:#fff;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.cmr-archive-main .page-numbers:hover{ border-color: var(--brand); color: var(--brand); }
.cmr-archive-main .page-numbers.current{ background: var(--brand); border-color: var(--brand); color:#fff; }
.cmr-archive-main .page-numbers.dots{ border-color:transparent; background:transparent; }

/* ---------- Meta articolo singolo ---------- */
.cmr-post-meta{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  margin: 0 0 22px; padding-bottom:16px; border-bottom:1px solid var(--line);
}
.cmr-post-meta .cmr-post-cat{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:#fff; background: var(--brand);
  padding: 4px 11px; border-radius: 3px; text-decoration:none;
}
.cmr-post-meta .cmr-post-cat:hover{ background: var(--brand-ink); }
.cmr-post-meta .cmr-post-date{ font-size:13.5px; color: var(--muted); }
/* Card articoli dentro il contenuto: niente sottolineatura dei link del testo */
.page-content .cmr-ncard__link,
.page-content .cmr-ncard__link *{ text-decoration:none; }

/* Tag articolo come pill ("Taggato" e virgole nascosti) */
.post-tags{ max-width:calc(var(--read) - 48px); margin:8px auto 64px; padding:22px 0 0; border-top:1px solid var(--line); }
@media (max-width:767px){ .post-tags{ margin-inline:18px; } }
.post-tags .tag-links{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:0; }
.post-tags .tag-links::before{
  content:"Argomenti"; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-ink); margin-right:6px;
}
.post-tags .tag-links a{
  font-size:13.5px; font-weight:500; line-height:1; color:var(--brand); background:var(--soft);
  border:1px solid var(--line); border-radius:14px; padding:7px 12px; text-decoration:none;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.post-tags .tag-links a:hover{ background:var(--brand); border-color:var(--brand); color:#fff; }

.cmr-post-back{ margin: 30px 0 0; }
.cmr-post-back a{
  display:inline-flex; align-items:center; gap:7px; font-weight:600; color: var(--brand);
  text-decoration:none; font-size:14.5px;
}
.cmr-post-back a::before{ content:"\2190"; font-size:16px; }
.cmr-post-back a:hover{ color: var(--brand-ink); }

@media (max-width: 600px){
  .cmr-news-featured{ padding:20px 18px 22px; }
  .cmr-archive-wrap{ padding: 36px 18px 8px; }
  .cmr-archive-grid{ grid-template-columns: 1fr; gap:20px; }
}

/* ---------- Accessibilità ---------- */
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; }
}
