:root {
    --idf-white: #ffffff;
    --idf-light: #f7f8fa;
    --idf-black: #111111;
    --idf-muted: #5f6670;
    --idf-orange: #f47b20;
    --idf-blue: #16a6d9;
    --idf-border: #e7e9ee;
    --idf-radius: 24px;
    --idf-shadow: 0 20px 50px rgba(17, 17, 17, .08);
}
.border-top-radius{
  border-top-right-radius: 30px ;
  border-top-left-radius: 30px;
}
.border-bottom-radius{
  border-bottom-right-radius: 30px;
  border-bottom-left-radius: 30px;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--idf-black); background: var(--idf-white); line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.container { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }
.narrow { width: min(820px, calc(100% - 40px)); }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: blur(14px); border-bottom: 1px solid var(--idf-border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 82px; gap: 24px; }
.site-brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: -.03em; }
.brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--idf-black); color: var(--idf-white); font-size: 14px; }
.main-menu { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; font-size: 15px; font-weight: 650; }
.main-menu a:hover { color: var(--idf-orange); }
.header-cta, .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border-radius: 999px; font-weight: 750; transition: .2s ease; }
.header-cta, .btn-primary { background: var(--idf-orange); color: var(--idf-white); box-shadow: 0 10px 26px rgba(244,123,32,.25); }
.btn-primary:hover { transform: translateY(-2px); }
.btn-outline { border: 1px solid var(--idf-border); background: var(--idf-white); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--idf-border); border-radius: 50%; background: var(--idf-white); padding: 12px; }
.menu-toggle span { display: block; height: 2px; background: var(--idf-black); margin: 5px 0; }
.overlay-menu { position: fixed; inset: 0; z-index: 100; background: rgba(17,17,17,.5); opacity: 0; pointer-events: none; transition: .2s ease; }
.overlay-menu.is-open { opacity: 1; pointer-events: auto; }
.overlay-panel { margin-left: auto; width: min(420px, 90vw); height: 100%; background: var(--idf-white); padding: 34px; transform: translateX(100%); transition: .25s ease; }
.overlay-menu.is-open .overlay-panel { transform: translateX(0); }
.overlay-close { border: 0; background: var(--idf-black); color: var(--idf-white); border-radius: 50%; width: 42px; height: 42px; font-size: 28px; float: right; }
.overlay-menu-list { clear: both; list-style: none; margin: 80px 0 32px; padding: 0; }
.overlay-menu-list a { display: block; padding: 16px 0; font-size: 26px; font-weight: 800; border-bottom: 1px solid var(--idf-border); }
.hero { padding: 92px 0; background: linear-gradient(135deg, #fff 0%, #f8fbfd 100%); overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center; }
.eyebrow { color: var(--idf-orange); text-transform: uppercase; letter-spacing: .16em; font-size: 12px; font-weight: 900; margin: 0 0 14px; }
h1, h2, h3 { line-height: 1.05; letter-spacing: -.045em; margin: 0; font-weight:500 !important;}
h1 { font-size: clamp(44px, 7vw, 82px); }
h2 { font-size: clamp(34px, 5vw, 56px); }
h3 { font-size: 24px; }
.hero-text { max-width: 630px; font-size: 20px; color: var(--idf-muted); margin: 24px 0 32px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.hero-visual { position: relative; min-height: 440px; border-radius: var(--idf-radius); background: var(--idf-black); box-shadow: var(--idf-shadow); overflow: hidden; }
.shape { position: absolute; border-radius: 50%; filter: blur(2px); }
.shape-orange { width: 240px; height: 240px; background: var(--idf-orange); right: -60px; top: 40px; }
.shape-blue { width: 300px; height: 300px; background: var(--idf-blue); left: -100px; bottom: -80px; }
.hero-card { position: absolute; left: 36px; bottom: 36px; background: rgba(255,255,255,.9); border-radius: 20px; padding: 24px; min-width: 230px; }
.hero-card span { display: block; color: var(--idf-muted); }
.hero-card strong { font-size: 28px; letter-spacing: -.04em; }
.section { padding: 40px; }
.section-light { background: var(--idf-light); }
.section-dark { background: var(--idf-black); color: var(--idf-white); }
.section-dark .eyebrow { color: var(--idf-blue); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
.split p { color: var(--idf-muted); font-size: 19px; }
.section-head { margin-bottom: 34px; }
.cards-grid, .content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.project-card, .post-card, .person-card { border: 1px solid var(--idf-border); border-radius: var(--idf-radius); overflow: hidden; background: var(--idf-white); box-shadow: var(--idf-shadow); }
.project-media, .post-thumb { aspect-ratio: 4/3; background: var(--idf-light); display: grid; place-items: center; font-weight: 800; color: var(--idf-muted); }
.project-media img, .post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.project-body, .post-card-body { padding: 24px; }
.project-body p, .post-card-body p { color: var(--idf-muted); }
.read-more { font-weight: 800; color: var(--idf-orange); }
.people-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.person-card { padding: 24px; color: var(--idf-black); }
.person-photo { width: 100%; aspect-ratio: 1; border-radius: 20px; overflow: hidden; background: var(--idf-light); display: grid; place-items: center; margin-bottom: 18px; }
.person-photo img { width: 100%; height: 100%; object-fit: cover; }
.person-photo span { font-size: 72px; font-weight: 900; color: var(--idf-blue); }
.person-bio { color: var(--idf-muted); font-size: 15px; }
.cta-section { padding:0; background: var(--idf-light); }
.cta-box { border-radius: 32px; padding: 56px; background: var(--idf-white); box-shadow: var(--idf-shadow); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.cta-box p { color: var(--idf-muted); max-width: 480px; }
.page-hero { padding: 90px 0; background: var(--idf-light); }
.page-hero.compact { padding: 70px 0; }
.entry-content { font-size: 18px; }
.entry-content a { color: var(--idf-orange); text-decoration: underline; }
.single-cover { margin-bottom: 34px; border-radius: var(--idf-radius); overflow: hidden; }
.site-footer {     background: linear-gradient(180deg, rgba(0, 38, 75, .88), var(--idf-frost-navy)) !important; color: var(--idf-white); padding: 64px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 34px; }
.footer-grid p, .footer-grid a { color: rgba(255,255,255,.72); }
.footer-menu { list-style: none; margin: 0; padding: 0; }
.footer-menu a { display: block; padding: 5px 0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.12); margin-top: 42px; padding-top: 24px; color: rgba(255,255,255,.58); font-size: 14px; }
@media (max-width: 900px) {
    .main-navigation, .header-cta { display: none; }
    .menu-toggle { display: block; }
    .hero-grid, .split, .footer-grid { grid-template-columns: 1fr; }
    .cards-grid, .content-grid, .people-grid { grid-template-columns: repeat(2, 1fr); }
    .cta-box { display: block; padding: 34px; }
}
@media (max-width: 620px) {
    .container, .narrow { width: min(100% - 28px, 1120px); }
    .hero { padding: 62px 0; }
    .hero-visual { min-height: 300px; }
    .cards-grid, .content-grid, .people-grid { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; }
    .section { padding: 60px 0; }
}

/* Header stile corporate con utility bar, menu desktop e overlay mobile */
:root { --idf-navy:#001f3f; --idf-navy-2:#002f6c; --idf-ice:#eef7fc; }
body.menu-open { overflow: hidden; }
.site-header { position: sticky; top:0; z-index:90; background:transparent; border-bottom:0; backdrop-filter:none; }
.utility-bar { background:#f5fbff; color:var(--idf-navy-2); border-bottom:1px solid rgba(0,31,63,.08); }
.utility-inner { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.market-line { font-size:14px; font-weight:800; letter-spacing:.03em; white-space:nowrap; }
.market-line span { font-weight:700; opacity:.88; }
.utility-menu { display:flex; align-items:center; gap:0; list-style:none; margin:0; padding:0; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.16em; }
.utility-menu li { padding:0 15px; border-left:1px solid rgba(0,47,108,.35); }
.utility-menu li:first-child { border-left:0; }
.utility-menu a { color:var(--idf-navy-2); }
.utility-menu li:nth-child(3) a { color:#b05a00; }
.primary-bar { background:#001a35; color:#fff; }
.header-inner { min-height:80px; }
.site-brand { color:#fff; min-width:210px; }
.site-brand img, .custom-logo { max-height:54px; width:auto; }
.brand-mark { background:#fff; color:#001a35; border-radius:0; width:54px; height:38px; }
.brand-text { font-size:25px; color:#fff; }
.main-navigation { flex:1; display:flex; justify-content:center; }
.main-menu { gap:58px; font-size:15px; font-weight:750; letter-spacing:.01em; }
.main-menu a { color:#fff; }
.main-menu a:hover { color:#9bd8ff; }
.header-actions { display:flex; align-items:center; gap:20px; min-width:150px; justify-content:flex-end; }
.search-link { display:inline-flex; align-items:center; gap:10px; color:#fff; font-size:13px; font-weight:900; letter-spacing:.15em; }
.search-icon { width:18px; height:18px; border:2px solid currentColor; border-radius:50%; position:relative; display:inline-block; }
.search-icon:after { content:""; position:absolute; width:8px; height:2px; background:currentColor; right:-6px; bottom:-3px; transform:rotate(45deg); }
.menu-toggle { display:none; border-color:rgba(255,255,255,.35); background:transparent; border-radius:0; }
.menu-toggle span { background:#fff; }
.side-quick-nav { position:fixed; left:0; top:124px; width:92px; background:#001a35; color:#fff; z-index:80; border-radius:0 0 8px 0; overflow:hidden; }
.quick-menu { list-style:none; margin:0; padding:100px 0 16px; display:flex; flex-direction:column; }
.quick-menu a { min-height:82px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:8px 6px; color:#fff; font-size:13px; font-weight:750; text-align:center; }
.quick-menu a:hover { background:rgba(255,255,255,.08); }
.q-icon { font-size:30px; line-height:1; font-weight:300; color:#dff5ff; }
.overlay-menu { background:#fff; transform:translateY(-100%); opacity:1; pointer-events:none; transition:transform .32s ease; }
.overlay-menu.is-open { transform:translateY(0); pointer-events:auto; }
.overlay-panel { width:100%; max-width:none; min-height:100vh; height:100vh; overflow:auto; padding:0; transform:none !important; background:#fff; color:var(--idf-navy-2); display:flex; flex-direction:column; }
.overlay-head { height:132px; display:flex; align-items:center; justify-content:space-between; padding:0 64px; font-size:34px; line-height:1; letter-spacing:.02em; border-bottom:1px solid rgba(0,47,108,.08); }
.overlay-close { float:none; width:44px; height:44px; background:transparent; border:0; border-radius:0; position:relative; }
.overlay-close:before, .overlay-close:after { content:""; position:absolute; left:4px; top:20px; width:42px; height:4px; background:var(--idf-navy-2); border-radius:2px; }
.overlay-close:before { transform:rotate(45deg); }
.overlay-close:after { transform:rotate(-45deg); }
.overlay-quick-row { background:#eef7fc; padding:26px 40px; }
.overlay-quick-menu { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.overlay-quick-menu a { display:flex; flex-direction:column; align-items:center; gap:12px; color:var(--idf-navy-2); font-size:25px; font-weight:500; text-align:center; }
.overlay-quick-menu .q-icon { color:var(--idf-navy-2); font-size:42px; }
.overlay-nav { flex:1; }
.overlay-menu-list { list-style:none; margin:72px 0 40px; padding:0 64px; clear:none; }
.overlay-menu-list li { border-bottom:0; }
.overlay-menu-list a { display:flex; align-items:center; justify-content:space-between; padding:22px 0; border-bottom:0; color:var(--idf-navy-2); font-size:31px; font-weight:500; letter-spacing:.16em; }
.overlay-menu-list a:after { content:"›"; font-size:64px; line-height:.6; font-weight:300; letter-spacing:0; }
.overlay-footer-links { border-top:1px solid rgba(0,31,63,.15); min-height:150px; padding:35px 64px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:25px; color:var(--idf-navy-2); font-size:23px; font-weight:900; letter-spacing:.12em; }
.overlay-footer-links strong { width:100%; text-align:center; color:#a55700; font-weight:500; }
@media (max-width: 1100px) { .main-menu { gap:30px; } .side-quick-nav{display:none;} }
@media (max-width: 900px) {
  .utility-bar,.main-navigation,.search-link { display:none; }
  .primary-bar { background:#001a35; }
  .menu-toggle { display:block; }
  .header-inner { min-height:76px; }
  .site-brand { min-width:0; }
}
@media (max-width: 700px) {
  .overlay-head { height:132px; padding:0 40px; font-size:30px; }
  .overlay-quick-row { padding:28px 16px; }
  .overlay-quick-menu { gap:0; }
  .overlay-quick-menu a { font-size:15px; gap:8px; }
  .overlay-quick-menu .q-icon { font-size:32px; }
  .overlay-menu-list { margin:70px 0 80px; padding:0 64px; }
  .overlay-menu-list a { font-size:28px; letter-spacing:.16em; padding:20px 0; }
  .overlay-footer-links { padding:35px 64px; font-size:20px; }
}
@media (min-width: 901px) { .site-main { margin-left:92px; } }

/* Nascondi header e sidebar su desktop durante lo scroll */
@media (min-width: 901px) {
  .site-header, .side-quick-nav {
    transition: transform .38s cubic-bezier(.22,.61,.36,1), opacity .28s ease;
    will-change: transform, opacity;
  }
  .site-header.is-hidden-on-scroll {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }
  .side-quick-nav.is-hidden-on-scroll {
    transform: translateX(-110%);
    opacity: 0;
    pointer-events: none;
  }
}

/* Fix contrasto menu mobile: testi sempre blu scuro su fondo bianco/ghiaccio */
.overlay-menu,
.overlay-panel,
.overlay-panel a,
.overlay-panel span,
.overlay-nav a,
.overlay-menu-list a,
.overlay-quick-menu a,
.overlay-footer-links a {
  color: var(--idf-navy-2) !important;
}
.overlay-footer-links strong { color:#a55700 !important; }
.overlay-menu-list .sub-menu {
  list-style:none;
  margin:0;
  padding:0 0 10px 24px;
}
.overlay-menu-list .sub-menu a {
  font-size:18px;
  letter-spacing:.08em;
  padding:10px 0;
  opacity:.9;
}
.overlay-menu-list .sub-menu a:after { display:none; }
@media (max-width: 700px) {
  .overlay-panel { background:#fff !important; }
  .overlay-head { color:var(--idf-navy-2) !important; }
  .overlay-menu-list { padding:0 32px; }
  .overlay-menu-list a {
    color:var(--idf-navy-2) !important;
    text-shadow:none !important;
    font-weight:600;
  }
  .overlay-footer-links {
    color:var(--idf-navy-2) !important;
    font-size:16px;
    align-items:flex-start;
  }
}

/* ==============================
   MENU UPGRADE v2 - corporate desktop + premium mobile
   ============================== */
:root {
  --idf-navy: #001f3f;
  --idf-navy-deep: #00142b;
  --idf-blue-soft: #eaf6fd;
  --idf-blue-line: rgba(0, 47, 108, .14);
  --idf-orange-dark: #b55c00;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 120;
  background: transparent;
  transition: transform .42s cubic-bezier(.22,.61,.36,1), opacity .28s ease, box-shadow .25s ease;
}
.utility-bar {
  background: #f4fbff;
  color: var(--idf-navy-2);
  border-bottom: 1px solid rgba(0, 47, 108, .08);
}
.utility-inner {
  min-height: 46px;
}
.utility-menu a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  opacity: .9;
  transition: color .2s ease, opacity .2s ease;
}
.utility-menu a:hover {
  color: var(--idf-orange-dark);
  opacity: 1;
}
.primary-bar {
  background: linear-gradient(90deg, var(--idf-navy-deep), #001f3f 55%, #002850);
  color: #fff;
  box-shadow: 0 12px 34px rgba(0, 20, 43, .16);
}
.header-inner {
  width: min(1280px, calc(100% - 56px));
  min-height: 86px;
  gap: 30px;
}
.site-brand {
  min-width: 230px;
  transition: transform .2s ease, opacity .2s ease;
}
.site-brand:hover {
  transform: translateY(-1px);
  opacity: .92;
}
.main-navigation {
  align-self: stretch;
}
.main-menu {
  height: 100%;
  gap: clamp(24px, 4vw, 58px);
}
.main-menu > li {
  height: 100%;
  display: flex;
  align-items: center;
  position: relative;
}
.main-menu > li > a {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  color: #fff;
  font-size: 15px;
  font-weight: 760;
  letter-spacing: .015em;
  transition: color .2s ease;
}
.main-menu > li > a:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--idf-orange);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .25s ease;
}
.main-menu > li:hover > a,
.main-menu > li.current-menu-item > a,
.main-menu > li.current-menu-ancestor > a {
  color: #bfeaff;
}
.main-menu > li:hover > a:after,
.main-menu > li.current-menu-item > a:after,
.main-menu > li.current-menu-ancestor > a:after {
  transform: scaleX(1);
}
.main-menu .sub-menu {
  position: absolute;
  left: 50%;
  top: calc(100% + 16px);
  min-width: 260px;
  list-style: none;
  margin: 0;
  padding: 12px;
  background: #fff;
  color: var(--idf-navy-2);
  border: 1px solid rgba(0,47,108,.08);
  border-radius: 22px;
  box-shadow: 0 24px 70px rgba(0,20,43,.22);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 10px);
  transition: .22s ease;
}
.main-menu .sub-menu:before {
  content:"";
  position:absolute;
  left:50%;
  top:-8px;
  width:16px;
  height:16px;
  background:#fff;
  border-left:1px solid rgba(0,47,108,.08);
  border-top:1px solid rgba(0,47,108,.08);
  transform:translateX(-50%) rotate(45deg);
}
.main-menu li:hover > .sub-menu,
.main-menu li:focus-within > .sub-menu {
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}
.main-menu .sub-menu a {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:12px 14px;
  border-radius:14px;
  color:var(--idf-navy-2);
  font-size:14px;
  font-weight:750;
}
.main-menu .sub-menu a:hover {
  background:var(--idf-blue-soft);
  color:var(--idf-orange-dark);
}
.search-link {
  min-height: 42px;
  padding: 0 8px;
  border-radius: 999px;
  transition: background .2s ease, color .2s ease;
}
.search-link:hover {
  background: rgba(255,255,255,.09);
  color: #bfeaff;
}
.menu-toggle {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  transition: background .2s ease, transform .2s ease;
}
.menu-toggle:hover {
  background: rgba(255,255,255,.14);
  transform: translateY(-1px);
}
.menu-toggle span {
  width: 20px;
  margin: 4px auto;
  border-radius: 999px;
}
.side-quick-nav {
  top: 132px;
  width: 96px;
  background: linear-gradient(180deg, #001f3f, #05294f);
  border-radius: 0 0 12px 0;
  box-shadow: 12px 20px 50px rgba(0,20,43,.18);
  transition: transform .42s cubic-bezier(.22,.61,.36,1), opacity .28s ease;
}
.quick-menu {
  padding: 96px 0 18px;
}
.quick-menu a {
  position: relative;
  min-height: 86px;
  color: #fff;
  transition: background .2s ease, color .2s ease;
}
.quick-menu a:before {
  content:"";
  position:absolute;
  left:0;
  top:16px;
  bottom:16px;
  width:3px;
  background:var(--idf-orange);
  transform:scaleY(0);
  transition:transform .2s ease;
}
.quick-menu a:hover {
  background: rgba(255,255,255,.1);
}
.quick-menu a:hover:before {
  transform:scaleY(1);
}
.q-icon {
  font-family: ui-sans-serif, system-ui, sans-serif;
  color: #cbeeff;
  transform: translateY(1px);
}

/* Overlay full-screen: desktop and mobile */
.overlay-menu {
  background: rgba(0, 20, 43, .32);
  backdrop-filter: blur(8px);
  transform: translateY(-102%);
  opacity: 1;
  transition: transform .46s cubic-bezier(.22,.61,.36,1);
}
.overlay-menu.is-open {
  transform: translateY(0);
}
.overlay-panel {
  min-height: 100vh;
  background: #fff;
  color: var(--idf-navy-2);
}
.overlay-head {
  height: 118px;
  padding: 0 clamp(26px, 6vw, 78px);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 500;
  color: var(--idf-navy-2);
  border-bottom: 1px solid var(--idf-blue-line);
}
.overlay-close {
  border-radius: 999px;
  transition: background .2s ease, transform .2s ease;
}
.overlay-close:hover {
  background: var(--idf-blue-soft);
  transform: rotate(90deg);
}
.overlay-close:before,
.overlay-close:after {
  height: 3px;
  background: var(--idf-navy-2);
}
.overlay-quick-row {
  padding: 24px clamp(16px, 5vw, 60px);
  background: linear-gradient(90deg, #edf8ff, #f6fbff);
  border-bottom: 1px solid rgba(0,47,108,.06);
}
.overlay-quick-menu,
.overlay-quick-row .quick-menu {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.overlay-quick-menu li,
.overlay-quick-row .quick-menu li {
  min-width:0;
}
.overlay-quick-menu a,
.overlay-quick-row .quick-menu a {
  min-height: 96px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 8px;
  border-radius: 20px;
  color: var(--idf-navy-2) !important;
  font-size: clamp(14px, 2vw, 24px);
  font-weight: 600;
  letter-spacing:.01em;
  background: transparent;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.overlay-quick-menu a:hover,
.overlay-quick-row .quick-menu a:hover {
  background: #fff;
  box-shadow: 0 16px 40px rgba(0,47,108,.1);
  transform: translateY(-2px);
}
.overlay-quick-menu .q-icon,
.overlay-quick-row .quick-menu .q-icon {
  color: var(--idf-navy-2);
  font-size: clamp(28px, 4vw, 44px);
}
.overlay-nav {
  width: min(980px, calc(100% - 52px));
  margin: 0 auto;
}
.overlay-menu-list {
  margin: clamp(34px, 7vw, 74px) 0 clamp(36px, 7vw, 76px);
  padding: 0;
}
.overlay-menu-list > li {
  border-bottom: 1px solid rgba(0,47,108,.1);
}
.overlay-menu-list > li:first-child {
  border-top: 1px solid rgba(0,47,108,.1);
}
.overlay-menu-list > li > a {
  position: relative;
  padding: clamp(20px, 3vw, 30px) 66px clamp(20px, 3vw, 30px) 0;
  color: var(--idf-navy-2) !important;
  font-size: clamp(30px, 5vw, 62px);
  font-weight: 520;
  letter-spacing: .08em;
  line-height: 1.05;
  transition: color .2s ease, padding-left .2s ease;
}
.overlay-menu-list > li > a:after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 22px;
  height: 22px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transition: transform .2s ease, right .2s ease;
}
.overlay-menu-list > li:hover > a {
  color: var(--idf-orange-dark) !important;
  padding-left: 14px;
}
.overlay-menu-list > li:hover > a:after {
  right: 0;
}
.overlay-menu-list .sub-menu {
  display: none;
  list-style: none;
  margin: -4px 0 18px;
  padding: 0 0 0 22px;
  border-left: 3px solid var(--idf-orange);
}
.overlay-menu-list li.is-submenu-open > .sub-menu {
  display: block;
}
.overlay-menu-list .sub-menu a {
  display:block;
  padding: 10px 0;
  color: var(--idf-navy-2) !important;
  font-size: clamp(16px, 2.2vw, 22px);
  font-weight: 650;
  letter-spacing: .04em;
  opacity: .82;
}
.overlay-menu-list .sub-menu a:hover {
  color: var(--idf-orange-dark) !important;
  opacity: 1;
}
.overlay-menu-list .sub-menu a:after {
  display:none;
}
.overlay-footer-links {
  margin-top: auto;
  min-height: 126px;
  padding: 26px clamp(26px, 6vw, 78px);
  background: #fff;
  border-top: 1px solid rgba(0,31,63,.12);
  color: var(--idf-navy-2);
}
.overlay-footer-links a {
  color: var(--idf-navy-2) !important;
  transition: color .2s ease;
}
.overlay-footer-links a:hover {
  color: var(--idf-orange-dark) !important;
}
.overlay-footer-links strong {
  color: var(--idf-orange-dark) !important;
  letter-spacing: .18em;
}

@media (min-width: 901px) {
  .menu-toggle { display: inline-block; }
  .site-main { margin-left: 96px; }
  body.menu-open .site-header,
  body.menu-open .side-quick-nav {
    transform: none !important;
    opacity: 1 !important;
  }
}

@media (max-width: 1100px) {
  .header-inner { width: min(1200px, calc(100% - 34px)); }
  .main-menu { gap: 22px; }
  .site-brand { min-width: 180px; }
}

@media (max-width: 900px) {
  .site-header { position: sticky; }
  .primary-bar { background: var(--idf-navy-deep); }
  .header-inner {
    width: min(100%, calc(100% - 28px));
    min-height: 74px;
  }
  .site-brand { min-width: 0; }
  .brand-text { font-size: 20px; }
  .menu-toggle { display: inline-block; }
  .menu-toggle span { background:#fff; }
  .side-quick-nav { display: none; }
  .overlay-menu { background:#fff; backdrop-filter:none; }
  .overlay-head { height: 100px; padding: 0 24px; }
  .overlay-close:before,
  .overlay-close:after { left: 7px; width: 34px; }
  .overlay-quick-row { padding: 16px 10px; overflow-x:auto; }
  .overlay-quick-menu,
  .overlay-quick-row .quick-menu {
    grid-template-columns: repeat(5, 112px);
    width:max-content;
    min-width:100%;
  }
  .overlay-quick-menu a,
  .overlay-quick-row .quick-menu a {
    min-height: 92px;
    font-size: 15px !important;
    color: var(--idf-navy-2) !important;
  }
  .overlay-nav { width: calc(100% - 44px); }
  .overlay-menu-list { margin: 38px 0 54px; }
  .overlay-menu-list > li > a {
    font-size: clamp(25px, 7.5vw, 38px);
    letter-spacing: .11em;
    padding: 21px 46px 21px 0;
    color: var(--idf-navy-2) !important;
  }
  .overlay-menu-list > li > a:after {
    width: 17px;
    height: 17px;
    border-width: 3px;
  }
  .overlay-footer-links {
    min-height: 150px;
    padding: 28px 24px 34px;
    display:grid;
    grid-template-columns: 1fr 1fr;
    align-items:center;
    font-size: 14px;
    gap: 18px;
  }
  .overlay-footer-links strong {
    grid-column: 1 / -1;
    width:auto;
    text-align:center;
    font-size: 17px;
    letter-spacing:.12em;
  }
}

@media (max-width: 520px) {
  .overlay-head { height: 86px; font-size: 28px; }
  .overlay-quick-menu,
  .overlay-quick-row .quick-menu {
    grid-template-columns: repeat(5, 96px);
  }
  .overlay-quick-menu a,
  .overlay-quick-row .quick-menu a {
    min-height: 82px;
    font-size: 13px !important;
    border-radius: 16px;
  }
  .overlay-quick-menu .q-icon,
  .overlay-quick-row .quick-menu .q-icon { font-size: 28px; }
  .overlay-menu-list > li > a {
    font-size: 26px;
    letter-spacing: .09em;
  }
  .overlay-footer-links {
    grid-template-columns: 1fr;
    text-align:left;
  }
  .overlay-footer-links strong { text-align:left; }
}

/* IDF custom fixes: doppio logo, layout full width e Persone */
.site-main {
  width: 100%;
  max-width: none;
  margin-left: 0 !important;
}
.site-branding {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 230px;
  flex: 0 0 auto;
}
.site-brand {
  min-width: 0 !important;
  flex-shrink: 0;
}
.site-brand .custom-logo-link,
.site-brand .custom-logo-link img,
.site-brand .default-brand-logo,
.site-brand img.custom-logo {
  display: block;
  max-height: 58px;
  width: auto;
}
.site-brand .custom-logo-link,
.site-brand .default-brand-logo {
  background: rgba(255,255,255,.96);
  border-radius: 4px;
  padding: 6px 10px;
}
.fallback-brand-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.secondary-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
  border-radius: 4px;
  padding: 0px;
  transition: transform .2s ease, opacity .2s ease;
}

a.secondary-brand.secondary-brand-desktop {
    border: 0px !important;
}
a.site-brand {
    background: white;
    padding: 5px;
    border-radius: 99px;
}
img.custom-logo.primary-brand-img {
    border-radius: 20px;
}

a.secondary-brand.secondary-brand-desktop {
    background: #1565c0;
    padding: 5px;
    border-radius: 99px;
}

img.secondary-brand-img{
    border-radius: 20px;  
}

.secondary-brand:hover {
  transform: translateY(-1px);
  opacity: .92;
}
.secondary-brand-img {
  display: block;
  max-height: 58px;
  width: auto;
}
.secondary-brand-mobile {
  display: none;
}
.header-actions {
  min-width: 260px;
}
.header-actions .secondary-brand-desktop {
  margin-right: 8px;
}
.people-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.person-card { padding: 24px; color: var(--idf-black); }
.person-photo { width: 100%; aspect-ratio: 1; border-radius: 20px; overflow: hidden; background: var(--idf-light); display: grid; place-items: center; margin-bottom: 18px; }
.person-photo img { width: 100%; height: 100%; object-fit: cover; }
.person-photo span { font-size: 72px; font-weight: 900; color: var(--idf-blue); }
.person-bio { color: var(--idf-muted); font-size: 15px; }
@media (max-width: 1100px) {
  .site-branding { min-width: 180px; gap: 12px; }
  .site-brand .custom-logo-link,
  .site-brand .default-brand-logo,
  .secondary-brand { padding: 5px 8px; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 48px; }
}
@media (max-width: 900px) {
  .header-inner {
    justify-content: space-between;
    gap: 14px;
  }
  .site-branding {
    min-width: 0;
    max-width: calc(100% - 62px);
    gap: 10px;
  }
  .secondary-brand-desktop,
  .header-actions .search-link {
    display: none !important;
  }
  .secondary-brand-mobile {
    display: inline-flex;
  }
  .header-actions {
    min-width: 46px;
    gap: 0;
  }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 42px; }
  .site-brand .custom-logo-link,
  .site-brand .default-brand-logo,
  .secondary-brand { padding: 4px 6px; }
}
@media (max-width: 520px) {
  .site-branding { gap: 8px; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 34px; }
  .site-brand .custom-logo-link,
  .site-brand .default-brand-logo,
  .secondary-brand { padding: 3px 5px; }
}
@media (max-width: 700px) {
  .people-grid { grid-template-columns: 1fr; }
}

/* ==============================
   IDF layout fix v3: header width, no-wrap desktop menu, sidebar full height,
   hamburger overlay below header
   ============================== */
.utility-inner,
.header-inner {
  width: min(1250px, calc(100% - 56px));
}

@media (min-width: 901px) {
  .header-inner {
    flex-wrap: nowrap;
    gap: clamp(16px, 2vw, 28px);
  }
  .site-branding {
    flex: 0 0 auto;
    min-width: 0;
  }
  .main-navigation {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
  }
  .main-menu {
    flex-wrap: nowrap;
    gap: clamp(18px, 2.5vw, 42px);
  }
  .main-menu > li,
  .main-menu > li > a {
    white-space: nowrap;
  }
  .header-actions {
    flex: 0 0 auto;
    min-width: 0;
  }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img {
    max-height: 50px;
  }
  .side-quick-nav {
    top: 132px;
    bottom: 0;
    height: auto;
    min-height: calc(100vh - 132px);
    border-radius: 0 0 12px 0;
  }
}

@media (max-width: 1250px) and (min-width: 901px) {
  .main-menu { gap: clamp(14px, 1.5vw, 24px); }
  .main-menu > li > a { font-size: 14px; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 44px; }
  .search-link { letter-spacing: .08em; }
}

/* L'overlay hamburger parte sotto la header visibile: quick links orizzontali in alto,
   menu principale verticale sotto. */
.overlay-menu {
  inset: 165px 0 0 0;
  height: calc(100vh - 132px);
  z-index: 110;
}

ul.overlay-menu-list {
    max-width: 1200px;
    margin: 0 auto;
}
.overlay-panel {
  min-height: calc(100vh - 132px);
  height: calc(100vh - 132px);
}
.overlay-head {
  display: none;
}
.overlay-quick-row {
  flex: 0 0 auto;
}
.overlay-quick-menu,
.overlay-quick-row .quick-menu {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
}
.overlay-menu-list,
.overlay-menu-list > li,
.overlay-menu-list > li > a {
  display: block;
  width: 100%;
}
.overlay-menu-list > li > a {
  white-space: normal;
}

@media (max-width: 900px) {
  .utility-inner,
  .header-inner {
    width: min(1250px, calc(100% - 56px));
  }
  .overlay-menu {
    inset: 74px 0 0 0;
    height: calc(100vh - 74px);
  }
  .overlay-panel {
    min-height: calc(100vh - 74px);
    height: calc(100vh - 74px);
  }
  .overlay-quick-row {
    padding: 12px 10px;
    overflow-x: auto;
  }
  .overlay-quick-menu,
  .overlay-quick-row .quick-menu {
    display: grid;
    grid-template-columns: repeat(5, minmax(88px, 1fr));
    width: max-content;
    min-width: 100%;
  }
  .overlay-quick-menu a,
  .overlay-quick-row .quick-menu a {
    min-height: 74px;
    font-size: 13px !important;
    line-height: 1.15;
  }
  .overlay-menu-list {
    display: block;
    margin: 28px 0 46px;
  }
  .overlay-menu-list > li,
  .overlay-menu-list > li > a {
    display: block;
    width: 100%;
  }
}

@media (max-width: 520px) {
  .utility-inner,
  .header-inner {
    width: min(1250px, calc(100% - 28px));
  }
}

/* ==============================
   IDF visual fix v4: effetto blur ghiacciato su header e sidebar,
   loghi configurabili da Personalizza
   ============================== */
:root {
  --idf-frost-navy: rgba(0, 26, 53, .78);
  --idf-frost-navy-strong: rgba(0, 26, 53, .86);
  --idf-frost-light: rgba(246, 251, 255, .72);
}

.site-header {
  background: transparent !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.utility-bar {
  background: var(--idf-frost-light) !important;
  -webkit-backdrop-filter: saturate(175%) blur(18px);
  backdrop-filter: saturate(175%) blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.42) !important;
  box-shadow: 0 10px 28px rgba(0, 26, 53, .08);
}

.primary-bar {
  background: linear-gradient(180deg, rgba(0, 38, 75, .88), var(--idf-frost-navy)) !important;
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  backdrop-filter: saturate(180%) blur(22px);
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 16px 38px rgba(0, 20, 45, .20);
}

.side-quick-nav {
  background: linear-gradient(180deg, rgba(0, 38, 75, .84), rgba(0, 22, 46, .76)) !important;
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  backdrop-filter: saturate(180%) blur(22px);
  border-right: 1px solid rgba(255,255,255,.12);
  box-shadow: 14px 0 34px rgba(0, 20, 45, .18);
}

.side-quick-nav::before,
.primary-bar::before,
.utility-bar::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,0) 52%);
}

.utility-bar,
.primary-bar,
.side-quick-nav {
  position: relative;
}

.utility-inner,
.header-inner {
  width: min(1250px, calc(100% - 56px));
}

.site-brand .custom-logo-link,
.site-brand .primary-brand-img,
.site-brand .default-brand-logo,
.secondary-brand {
  background: rgba(255,255,255,.88);
  -webkit-backdrop-filter: saturate(155%) blur(12px);
  backdrop-filter: saturate(155%) blur(12px);
  border: 1px solid rgba(255,255,255,.66);
}

@media (max-width: 520px) {
  .utility-inner,
  .header-inner {
    width: min(1250px, calc(100% - 28px));
  }
}

/* ==============================
   IDF fix v5: menu hamburger principale sempre verticale
   ============================== */
.overlay-nav ul,
.overlay-nav .overlay-menu-list,
.overlay-nav .main-menu {
  list-style: none !important;
  margin: 0px!important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: min(980px, calc(100% - 52px)) !important;
}

.overlay-nav ul > li,
.overlay-nav .overlay-menu-list > li,
.overlay-nav .main-menu > li {
  display: block !important;
  width: 100% !important;
  border-bottom: 1px solid rgba(0,47,108,.10) !important;
}

.overlay-nav ul > li:first-child,
.overlay-nav .overlay-menu-list > li:first-child,
.overlay-nav .main-menu > li:first-child {
  border-top: 1px solid rgba(0,47,108,.10) !important;
}

.overlay-nav ul > li > a,
.overlay-nav .overlay-menu-list > li > a,
.overlay-nav .main-menu > li > a {
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 21px 46px 21px 0 !important;
  color: var(--idf-navy-2) !important;
  font-size: clamp(25px, 7.5vw, 38px) !important;
  font-weight: 650 !important;
  letter-spacing: .09em !important;
  line-height: 1.1 !important;
  text-align: left !important;
  white-space: normal !important;
  border-bottom: 0 !important;
}

.overlay-nav ul > li > a:after,
.overlay-nav .overlay-menu-list > li > a:after,
.overlay-nav .main-menu > li > a:after {
  content: "" !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: 15px !important;
  height: 15px !important;
  border-top: 3px solid currentColor !important;
  border-right: 3px solid currentColor !important;
  transform: rotate(45deg) !important;
  margin-left: 18px !important;
  position: static !important;
}

@media (max-width: 520px) {
  .overlay-nav ul,
  .overlay-nav .overlay-menu-list,
  .overlay-nav .main-menu {
    width: calc(100% - 44px) !important;
    margin-top: 26px !important;
  }
  .overlay-nav ul > li > a,
  .overlay-nav .overlay-menu-list > li > a,
  .overlay-nav .main-menu > li > a {
    font-size: 24px !important;
    letter-spacing: .06em !important;
    padding: 18px 34px 18px 0 !important;
  }
}

/* =========================================================
   HOTFIX: sidebar desktop sempre agganciata al viewport.
   Problema originale: più in alto nel file .side-quick-nav viene rimessa
   a position: relative insieme a utility-bar/primary-bar, annullando fixed.
   ========================================================= */
@media (min-width: 901px) {
  .side-quick-nav {
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    height: 100vh !important;
    min-height: 100vh !important;
    width: 96px !important;
    z-index: 80 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  /* lascia spazio in alto alle voci, così non finiscono sotto la barra header */
  .quick-menu {
    padding-top: 132px !important;
  }

  /* evita che l'header/menu resti sopra al contenuto quando viene nascosto */
  .site-header.is-hidden-on-scroll {
    transform: translateY(-110%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* Il menu overlay deve essere invisibile e non cliccabile quando chiuso */
.overlay-menu:not(.is-open) {
  pointer-events: none !important;
  visibility: hidden !important;
}
.overlay-menu.is-open {
  pointer-events: auto !important;
  visibility: visible !important;
}

/* =========================================================
   Desktop width tuning: utility/header più stretti
   ========================================================= */
@media (min-width: 901px) {
  .utility-inner,
  .header-inner {
    width: min(1140px, calc(100% - 56px)) !important;
    max-width: 1140px !important;
  }
}


ul.overlay-menu-list {
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}
/* =========================================================
   Archivi CPT: Realizzazioni e Persone
   ========================================================= */
.page-intro {
  max-width: 720px;
  margin-top: 12px;
  color: var(--idf-muted);
  font-size: 18px;
  line-height: 1.6;
}

.archive-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}

.filter-pill,
.project-categories a {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--idf-border);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  background: #fff;
  color: var(--idf-blue);
}

.filter-pill.is-active,
.filter-pill:hover,
.project-categories a:hover {
  background: var(--idf-blue);
  border-color: var(--idf-blue);
  color: #fff;
}

.project-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.single-categories {
  margin-top: 16px;
}

.project-description p,
.person-bio p {
  margin: 0;
}

.person-card h3 a {
  color: inherit;
  text-decoration: none;
}

.person-role {
  margin: -6px 0 12px;
  color: var(--idf-blue);
  font-weight: 800;
}

.person-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.person-links a {
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  color: var(--idf-blue);
}

.single-persona-grid {
  display: grid;
  grid-template-columns: minmax(220px, 360px) 1fr;
  gap: 42px;
  align-items: start;
}

.single-persona-photo {
  border-radius: var(--idf-radius);
  overflow: hidden;
  background: var(--idf-light);
}

.single-persona-photo img {
  display: block;
  width: 100%;
  height: auto;
}

.pagination-wrap {
  margin-top: 28px;
}

@media (max-width: 760px) {
  .single-persona-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   IDF color update: header e sidebar bianchi con testi neri
   ========================================================= */
:root {
  --idf-header-bg: #ffffff;
  --idf-header-text: #111111;
  --idf-sidebar-bg: #ffffff;
  --idf-sidebar-text: #111111;
  --idf-header-border: rgba(17, 17, 17, .12);
}

.site-header,
.utility-bar,
.primary-bar,
.side-quick-nav {
  background: #ffffff !important;
  color: #111111 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 8px 24px rgba(17, 17, 17, .08) !important;
}

.site-header {
  border-bottom: 1px solid var(--idf-header-border) !important;
}

.utility-bar,
.primary-bar {
  border-bottom: 1px solid var(--idf-header-border) !important;
}

.side-quick-nav {
  border-right: 1px solid var(--idf-header-border) !important;
}

.side-quick-nav::before,
.primary-bar::before,
.utility-bar::before {
  display: none !important;
}

.site-header a,
.site-header span,
.site-header .market-line,
.utility-menu a,
.primary-bar,
.site-brand,
.brand-text,
.main-menu a,
.main-menu > li > a,
.search-link,
.side-quick-nav a,
.quick-menu a,
.q-icon {
  color: #111111 !important;
}

.main-menu > li:hover > a,
.main-menu > li.current-menu-item > a,
.main-menu > li.current-menu-ancestor > a,
.main-menu a:hover,
.search-link:hover,
.quick-menu a:hover,
.quick-menu a:hover .q-icon,
.utility-menu a:hover {
  color: #111111 !important;
}

.menu-toggle {
  background: #ffffff !important;
  border-color: rgba(17, 17, 17, .28) !important;
}

.menu-toggle span {
  background: #111111 !important;
}

@media (max-width: 900px) {
  .menu-toggle span {
    background: #111111 !important;
  }
}

.search-link:hover,
.quick-menu a:hover {
  background: rgba(17, 17, 17, .06) !important;
}

.main-menu > li > a:after,
.quick-menu a:before {
  background: #111111 !important;
}

.site-brand .custom-logo-link,
.site-brand .primary-brand-img,
.site-brand .default-brand-logo,
.secondary-brand,
a.site-brand,
a.secondary-brand.secondary-brand-desktop {
  background: #ffffff !important;
  border-color: rgba(17, 17, 17, .12) !important;
}


/* =========================================================
   IDF logo alignment update: entrambi i loghi consecutivi a sinistra anche su desktop
   ========================================================= */
.site-branding {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
}

.site-branding .secondary-brand-desktop,
.site-branding .secondary-brand-left {
  display: inline-flex !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.header-actions .secondary-brand-desktop {
  display: none !important;
}

@media (min-width: 901px) {
  .site-branding {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    max-width: none !important;
  }

  .header-inner {
    justify-content: flex-start !important;
  }

  .main-navigation {
    margin-left: clamp(18px, 2vw, 28px) !important;
  }

  .header-actions {
    margin-left: auto !important;
  }
}

@media (max-width: 900px) {
  .site-branding .secondary-brand-desktop {
    display: none !important;
  }
}


/* =========================================================
   IDF aggiornamento contenuti: home apertura, footer dati, Chi siamo
   ========================================================= */
.home-opening {
  min-height: clamp(520px, 72vh, 820px);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  display: flex;
  align-items: stretch;
}

.home-opening-overlay {
  width: 100%;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 48%, rgba(0,0,0,.08));
  padding: clamp(80px, 12vh, 150px) 0 clamp(60px, 10vh, 120px);
}

.home-opening-content {
  color: #ffffff;
  text-shadow: 0 10px 28px rgba(0,0,0,.35);
}

.home-opening-content .eyebrow {
  color: #ffffff;
  opacity: .9;
}

.home-opening-content h1 {
  max-width: 980px;
  font-size: clamp(46px, 7vw, 96px);
  color: #ffffff;
}

.home-opening-content p:not(.eyebrow) {
  max-width: 820px;
  margin: 22px 0 0;
  font-size: clamp(22px, 3vw, 40px);
  line-height: 1.18;
  font-weight: 650;
  color: #ffffff;
}

.text-link {
  font-weight: 800;
  color: var(--idf-black);
  border-bottom: 2px solid currentColor;
}

.info-card {
  background: #ffffff;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 22px;
  padding: 30px;
  box-shadow: 0 18px 45px rgba(17,17,17,.06);
}

.info-card h3 {
  margin-bottom: 12px;
}

.info-card p {
  margin: 0;
  color: var(--idf-muted);
}

.site-footer {
  background: #ffffff !important;
  color: #111111 !important;
  padding: 56px 0 0 !important;
  border-top: 1px solid rgba(17,17,17,.12);
}

.footer-company-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
}

.footer-company-card {
  display: grid;
  grid-template-columns: minmax(140px, 220px) 1fr;
  gap: 24px;
  align-items: center;
}

.footer-logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.footer-logo img,
.footer-logo .primary-brand-img,
.footer-logo .secondary-brand-img {
  max-height: 86px !important;
  width: auto;
}

.footer-logo a,
.footer-logo .custom-logo-link,
.footer-logo .default-brand-logo,
.footer-logo .secondary-brand,
.footer-logo a.secondary-brand {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  border: 0 !important;
  display: inline-flex;
}

.footer-company-data h3 {
  margin: 0 0 12px;
  font-size: 22px;
  letter-spacing: -.02em;
  color: #111111 !important;
}

.footer-company-data p {
  margin: 5px 0;
  color: #111111 !important;
  font-size: 16px;
  line-height: 1.45;
}

.footer-bottom {
  width: 100% !important;
  max-width: none !important;
  margin-top: 48px !important;
  padding: 22px min(98px, 5vw) !important;
  background: #707070 !important;
  color: #ffffff !important;
  border-top: 0 !important;
  font-size: 15px !important;
}

.footer-bottom a,
.footer-bottom span {
  color: #ffffff !important;
}

.about-content .lead {
  font-size: clamp(21px, 2.2vw, 30px);
  line-height: 1.25;
  font-weight: 700;
  color: #111111;
  padding-bottom: 18px;
  border-bottom: 2px solid #111111;
}

.about-content h2 {
  margin: 42px 0 22px;
  text-align: center;
  font-size: clamp(30px, 4vw, 48px);
}

.about-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.about-cards article {
  border: 2px solid #111111;
  padding: 24px;
  min-height: 180px;
  background: #ffffff;
}

.about-cards h3 {
  margin: 0 0 10px;
  font-size: 24px;
  letter-spacing: -.02em;
}

.about-cards p {
  margin: 0;
  font-size: 18px;
  color: #111111;
}

.about-contact-box {
  margin-top: 46px;
  border-top: 1px solid rgba(17,17,17,.2);
  padding-top: 28px;
  text-align: center;
}

.about-contact-box h2 {
  margin-top: 0;
}

.about-contact-box p {
  margin: 6px 0;
  color: #111111;
}

@media (max-width: 900px) {
  .home-opening {
    min-height: 560px;
  }

  .home-opening-overlay {
    background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.65));
    align-items: flex-end;
  }

  .footer-company-grid,
  .footer-company-card,
  .about-cards {
    grid-template-columns: 1fr;
  }

  .footer-company-card {
    gap: 16px;
  }

  .footer-logo img,
  .footer-logo .primary-brand-img,
  .footer-logo .secondary-brand-img {
    max-height: 70px !important;
  }

  .footer-bottom {
    padding: 22px 24px !important;
  }
}

@media (max-width: 620px) {
  .home-opening {
    min-height: 500px;
  }

  .home-opening-content p:not(.eyebrow) {
    font-size: 22px;
  }

  .site-footer {
    padding-top: 38px !important;
  }

  .footer-company-data p {
    font-size: 15px;
  }

  .about-cards article {
    min-height: auto;
  }
}

/* =========================================================
   Footer update: loghi entrambi a destra come layout richiesto
   ========================================================= */
.site-footer {
  background: #ffffff !important;
  color: #111111 !important;
  padding: 58px 0 0 !important;
  border-top: 1px solid rgba(17,17,17,.12) !important;
}

.footer-main-layout {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.1fr) minmax(280px, .9fr) !important;
  gap: clamp(32px, 6vw, 86px) !important;
  align-items: center !important;
}

.footer-description p {
  margin: 0 !important;
  max-width: 420px !important;
  font-size: clamp(22px, 2vw, 31px) !important;
  line-height: 1.5 !important;
  color: #111111 !important;
}

.footer-contact-data {
  text-align: center !important;
  color: #111111 !important;
}

.footer-contact-data p {
  margin: 14px 0 !important;
  font-size: clamp(18px, 1.65vw, 29px) !important;
  line-height: 1.35 !important;
  color: #111111 !important;
}

.footer-logos-right {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: 34px !important;
}

.footer-logos-right .footer-logo {
  width: 100% !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

.footer-logos-right .footer-logo img,
.footer-logos-right .footer-logo .primary-brand-img,
.footer-logos-right .footer-logo .secondary-brand-img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(360px, 100%) !important;
  max-height: 96px !important;
  object-fit: contain !important;
}

.footer-logos-right .footer-logo-idf img,
.footer-logos-right .footer-logo-idf .primary-brand-img {
  max-height: 78px !important;
}

.footer-logos-right .footer-logo a,
.footer-logos-right .footer-logo .custom-logo-link,
.footer-logos-right .footer-logo .default-brand-logo,
.footer-logos-right .footer-logo .secondary-brand,
.footer-logos-right .footer-logo a.secondary-brand,
.footer-logos-right a.site-brand {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: inline-flex !important;
}

.footer-bottom {
  width: 100% !important;
  max-width: none !important;
  margin-top: 58px !important;
  padding: 24px min(98px, 5vw) !important;
  background: #707070 !important;
  color: #ffffff !important;
  border-top: 0 !important;
  font-size: 15px !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 20px !important;
}

.footer-bottom a,
.footer-bottom span {
  color: #ffffff !important;
}

@media (max-width: 1000px) {
  .footer-main-layout {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .footer-description p {
    max-width: none !important;
  }

  .footer-logos-right,
  .footer-logos-right .footer-logo {
    align-items: center !important;
    justify-content: center !important;
  }
}

@media (max-width: 620px) {
  .footer-main-layout {
    gap: 28px !important;
  }

  .footer-description p {
    font-size: 22px !important;
  }

  .footer-contact-data p {
    font-size: 17px !important;
    margin: 10px 0 !important;
  }

  .footer-bottom {
    flex-direction: column !important;
    padding: 22px 24px !important;
  }
}

/* =========================================================
   MP Costruzioni - aggiornamenti cliente maggio 2026
   ========================================================= */
:root {
  --mp-red: #d71920;
  --mp-orange: #f47b20;
}

body,
button,
input,
select,
textarea {
  font-family: "Quicksand", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

a:hover,
.main-menu a:hover,
.main-menu > li:hover > a,
.main-menu > li.current-menu-item > a,
.main-menu > li.current-menu-ancestor > a,
.utility-contact-link:hover,
.utility-menu a:hover,
.search-link:hover,
.quick-menu a:hover,
.quick-menu a:hover .q-icon,
.overlay-footer-links a:hover,
.footer-grid a:hover,
.footer-main-layout a:hover,
.footer-bottom a:hover,
.text-link:hover,
.read-more:hover,
.entry-content a:hover {
  color: var(--mp-red) !important;
}

.btn,
.header-cta,
.btn-primary,
button[type="submit"],
input[type="submit"] {
  background: var(--mp-orange) !important;
  color: #ffffff !important;
  border-color: var(--mp-orange) !important;
}

.btn:hover,
.header-cta:hover,
.btn-primary:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  color: #ffffff !important;
  filter: brightness(.96);
}

.eyebrow,
.home-opening-content .eyebrow,
.section .eyebrow,
.section-head .eyebrow {
  font-size: 15px !important;
}

/* Topbar contatti */
.utility-contact-inner {
  justify-content: flex-end !important;
}

.utility-contact-list {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(16px, 3vw, 34px);
  min-height: 44px;
}

.utility-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #111111 !important;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: .01em;
  white-space: nowrap;
}

.utility-contact-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  flex: 0 0 30px;
}

.utility-contact-icon svg {
  width: 15px;
  height: 15px;
  display: block;
  fill: currentColor;
}

/* Loghi: niente radius o padding nei contenitori e nelle immagini */
.site-brand .custom-logo-link,
.site-brand .primary-brand-img,
.site-brand .default-brand-logo,
a.site-brand,
.secondary-brand,
a.secondary-brand.secondary-brand-desktop,
.footer-logo,
.footer-logo a,
.footer-logo img,
img.secondary-brand-img,
.site-brand img,
.custom-logo {
  border-radius: 0 !important;
  padding: 0 !important;
}

.site-brand .custom-logo-link,
.site-brand .primary-brand-img,
.site-brand .default-brand-logo,
.secondary-brand,
a.site-brand,
a.secondary-brand.secondary-brand-desktop,
.footer-logo,
.footer-logo a {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Hero home: sfumatura scura da sinistra fino a poco oltre metà foto */
.home-opening-overlay {
  background: linear-gradient(90deg, rgba(0,0,0,.76) 0%, rgba(0,0,0,.60) 34%, rgba(0,0,0,.28) 58%, rgba(0,0,0,0) 72%) !important;
}

.home-opening-content h1 {
  max-width: none !important;
  white-space: nowrap;
  font-size: clamp(34px, 5.3vw, 72px) !important;
  line-height: .98;
}

.home-opening-content p:not(.eyebrow) {
  font-size: clamp(18px, 2.2vw, 31px) !important;
  max-width: 860px;
}

/* Griglia Ambiti home: 2 colonne nella prima riga, 4 nella seconda */
.home-services-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

.home-services-intro,
.home-services-photo {
  grid-column: span 2;
}

.home-services-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 4vw, 54px);
  background: var(--idf-light);
  min-height: 330px;
}

.home-services-intro h2 {
  margin-bottom: 22px;
}

.home-services-intro p,
.home-service-card p {
  color: var(--idf-muted);
}

.home-services-intro .text-link {
  margin-top: 10px;
  font-weight: 800;
  color: var(--mp-orange);
}

.home-services-photo {
  margin: 0;
  min-height: 330px;
  overflow: hidden;
  background: var(--idf-light);
}

.home-services-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-service-card {
  min-height: 230px;
  padding: 28px;
}

/* Footer più compatto */
.site-footer {
  font-size: 13px !important;
  padding-top: 44px !important;
}

.footer-main-layout,
.footer-grid,
.footer-contact-data,
.footer-description,
.footer-bottom {
  font-size: 13px !important;
  line-height: 1.45;
}

.footer-bottom {
  font-size: 12px !important;
}

.footer-logos-right {
  gap: 14px !important;
}

.footer-logo img,
.footer-logo .custom-logo,
.footer-logo .primary-brand-img,
.footer-logo .secondary-brand-img {
  max-height: 38px !important;
  width: auto !important;
}

@media (max-width: 1100px) {
  .home-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-services-intro,
  .home-services-photo {
    grid-column: span 1;
  }
}

@media (max-width: 760px) {
  .utility-contact-list {
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 8px 0;
  }

  .utility-contact-link {
    font-size: 13px;
  }

  .home-opening-content h1 {
    white-space: normal;
    font-size: clamp(32px, 10vw, 48px) !important;
  }

  .home-services-grid {
    grid-template-columns: 1fr;
  }

  .home-services-intro,
  .home-services-photo {
    grid-column: auto;
  }
}

/* =========================================================
   Rifiniture richieste 2026-05-07: footer, home grid, hero
   ========================================================= */
.home-opening-overlay {
  background: linear-gradient(90deg,
    rgba(0,0,0,.68) 0%,
    rgba(0,0,0,.56) 38%,
    rgba(0,0,0,.34) 62%,
    rgba(0,0,0,.08) 100%) !important;
}

.home-services-intro,
.home-services-photo {
  border-radius: 22px !important;
  overflow: hidden;
}

.home-services-intro .text-link {
  display: inline-block !important;
  align-self: flex-start !important;
  width: auto !important;
  max-width: max-content !important;
  padding-bottom: 6px;
  border-bottom: 2px solid currentColor !important;
}

.site-footer,
.site-footer p,
.site-footer a,
.site-footer span,
.footer-main-layout,
.footer-description p,
.footer-contact-data p,
.footer-company-data p {
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.footer-description p {
  font-size: clamp(17px, 2vw, 25px) !important;
  line-height: 1.45 !important;
}

.footer-contact-data {
  font-size: 12px !important;
}

.footer-contact-data p {
  font-size: 18px !important;
  line-height: 1.25 !important;
}

.footer-logos-right .footer-logo img,
.footer-logos-right .footer-logo .primary-brand-img,
.footer-logos-right .footer-logo .secondary-brand-img,
.footer-logo img,
.footer-logo .primary-brand-img,
.footer-logo .secondary-brand-img {
  max-height: 58px !important;
  max-width: 140px !important;
  width: auto !important;
}

.footer-logos-right .footer-logo-idf img,
.footer-logos-right .footer-logo-idf .primary-brand-img {
  max-height: 46px !important;
}

.footer-bottom {
  background: #000000 !important;
  color: #ffffff !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

.footer-bottom a,
.footer-bottom span {
  font-size: 11px !important;
  line-height: 1.3 !important;
}

@media (max-width: 900px) {
  .home-opening-overlay {
    background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.72)) !important;
  }

  .footer-description p {
    font-size: 18px !important;
  }

  .footer-contact-data p {
    font-size: 15px !important;
  }

  .footer-logos-right .footer-logo img,
  .footer-logos-right .footer-logo .primary-brand-img,
  .footer-logos-right .footer-logo .secondary-brand-img,
  .footer-logo img,
  .footer-logo .primary-brand-img,
  .footer-logo .secondary-brand-img {
    max-height: 48px !important;
    max-width: 190px !important;
  }
}

/* =========================================================
   Rifinitura CTA home + footer 15px
   ========================================================= */
.cta-box .btn,
.cta-box .btn-primary {
  white-space: nowrap !important;
  line-height: 1.05 !important;
  min-width: max-content !important;
  padding: 0 34px !important;
  min-height: 66px !important;
  text-align: center !important;
}

.footer-description p,
.footer-contact-data p,
.footer-company-data p {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

.footer-contact-data {
  font-size: 15px !important;
}


/* =========================================================
   Rifiniture richieste: footer dati, CTA e dimensioni link/bottoni
   ========================================================= */
.footer-contact-data {
  text-align: center !important;
}

.footer-contact-data p {
  font-size: 15px !important;
  line-height: 1.28 !important;
  margin: 8px 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

.btn,
.header-cta,
.btn-primary,
.btn-outline,
button[type="submit"],
input[type="submit"],
.text-link,
.entry-content a,
.main-menu a,
.utility-contact-link,
.utility-menu a,
.quick-menu a,
.read-more {
  font-size: 16px !important;
}

.cta-box .btn,
.cta-box .btn-primary {
  font-size: 16px !important;
  line-height: 1 !important;
  min-height: 46px !important;
  padding: 11px 26px !important;
  white-space: nowrap !important;
}

@media (max-width: 900px) {
  .footer-contact-data p {
    white-space: normal !important;
  }
}

/* =========================================================
   V7: copyright allineato al container footer + link neri/hover rossi
   ========================================================= */
.footer-bottom {
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
  margin: 48px auto 0 !important;
  padding: 18px 0 !important;
  box-sizing: border-box !important;
  background: #000000 !important;
}

/* Link del sito: neri, rossi in hover. I bottoni mantengono lo stile arancione/bianco. */
a:not(.btn):not(.btn-primary):not(.btn-outline):not(.header-cta):not(.button),
.main-menu a,
.utility-menu a,
.quick-menu a,
.text-link,
.entry-content a,
.read-more {
  color: #111111 !important;
}

a:not(.btn):not(.btn-primary):not(.btn-outline):not(.header-cta):not(.button):hover,
.main-menu a:hover,
.utility-menu a:hover,
.quick-menu a:hover,
.text-link:hover,
.entry-content a:hover,
.read-more:hover {
  color: #d71920 !important;
}

/* Sul fondo nero del copyright il link resta leggibile, ma in hover diventa rosso. */
.footer-bottom a {
  color: #ffffff !important;
}
.footer-bottom a:hover {
  color: #d71920 !important;
}


/* =========================================================
   V8: copyright background full-width, content constrained
   ========================================================= */
.site-footer {
  overflow: visible !important;
}

.footer-bottom {
  width: 100% !important;
  max-width: none !important;
  margin: 48px 0 0 !important;
  padding: 0 !important;
  background: #000000 !important;
  color: #ffffff !important;
  box-sizing: border-box !important;
}

.footer-bottom-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 20px !important;
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 18px 0 !important;
  box-sizing: border-box !important;
}

.footer-bottom span,
.footer-bottom a,
.footer-bottom-inner span,
.footer-bottom-inner a {
  color: #ffffff !important;
  font-size: 11px !important;
  line-height: 1.3 !important;
}

.footer-bottom a:hover,
.footer-bottom-inner a:hover {
  color: #d71920 !important;
}

@media (max-width: 700px) {
  .footer-bottom-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
}

/* =========================================================
   V9: Chi siamo layout e ambiti aggiornati
   ========================================================= */
.container.narrow.entry-content.about-content {
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
}

.about-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
}

.about-cards article {
  min-height: 230px !important;
  padding: 28px !important;
  border: 1px solid rgba(17,17,17,.12) !important;
  border-radius: 22px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 45px rgba(17,17,17,.06) !important;
}

.about-contact-box {
  display: none !important;
}

@media (max-width: 1100px) {
  .about-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  .about-cards {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   V10: Chi siamo ambiti come home + sidebar non sotto header
   ========================================================= */
.about-content h2 {
  text-align: left !important;
}

.about-services-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  margin-top: 34px !important;
}

.about-services-intro,
.about-services-photo {
  grid-column: span 2 !important;
}

.about-services-intro {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 330px !important;
  padding: clamp(28px, 4vw, 54px) !important;
  background: var(--idf-light) !important;
  border-radius: 22px !important;
}

.about-services-intro h2 {
  margin: 0 0 22px !important;
  text-align: left !important;
}

.about-services-intro p,
.about-service-card p {
  color: var(--idf-muted) !important;
}

.about-services-intro .text-link {
  align-self: flex-start !important;
  margin-top: 10px !important;
  color: var(--mp-orange) !important;
}

.about-services-photo {
  margin: 0 !important;
  min-height: 330px !important;
  overflow: hidden !important;
  background: var(--idf-light) !important;
  border-radius: 22px !important;
}

.about-services-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.about-service-card {
  min-height: 230px !important;
  padding: 28px !important;
  border-radius: 22px !important;
}

@media (min-width: 901px) {
  .side-quick-nav {
    position: fixed !important;
    left: 0 !important;
    top: 165px !important;
    bottom: 0 !important;
    height: calc(100vh - 165px) !important;
    min-height: calc(100vh - 165px) !important;
    width: 96px !important;
    z-index: 80 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  .side-quick-nav .quick-menu,
  .quick-menu {
    padding-top: 0 !important;
  }
}

@media (max-width: 1100px) {
  .about-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  .about-services-grid {
    grid-template-columns: 1fr !important;
  }
  .about-services-intro,
  .about-services-photo {
    grid-column: auto !important;
  }
}

/* =========================================================
   V11: Riduzione spazio tra titolo pagina e contenuto in Chi siamo
   ========================================================= */
.page-hero.compact {
  padding-top: 56px !important;
  padding-bottom: 28px !important;
}

.page-hero.compact + .about-section {
  padding-top: 34px !important;
}

@media (max-width: 900px) {
  .page-hero.compact {
    padding-top: 42px !important;
    padding-bottom: 20px !important;
  }

  .page-hero.compact + .about-section {
    padding-top: 26px !important;
  }
}

/* =========================================================
   V12: Sidebar verticale a tutta altezza disponibile
   ========================================================= */
@media (min-width: 901px) {
  .side-quick-nav {
    top: 0 !important;
    bottom: 0 !important;
    height: 100vh !important;
    min-height: 100vh !important;
    padding-top: 165px !important;
  }

  body.admin-bar .side-quick-nav {
    top: 32px !important;
    height: calc(100vh - 32px) !important;
    min-height: calc(100vh - 32px) !important;
  }
}

/* =========================================================
   V13: Sottotitolo hero home più piccolo e su una sola riga desktop
   ========================================================= */
.home-opening-content p:not(.eyebrow) {
  font-size: clamp(18px, 1.65vw, 26px) !important;
  line-height: 1.18 !important;
  max-width: none !important;
}

@media (min-width: 901px) {
  .home-opening-content p:not(.eyebrow) {
    white-space: nowrap !important;
  }
}

@media (max-width: 900px) {
  .home-opening-content p:not(.eyebrow) {
    white-space: normal !important;
    max-width: 820px !important;
  }
}


/* =========================================================
   V14: Ambiti di intervento con sfondi fotografici in overlay
   ========================================================= */
.home-service-card.service-bg-card,
.about-service-card.service-bg-card {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  min-height: 270px !important;
  color: #ffffff !important;
  border: 0 !important;
  background-color: #111111 !important;
  background-position: center !important;
  background-size: cover !important;
  box-shadow: 0 22px 55px rgba(0, 31, 63, .18) !important;
}

.home-service-card.service-bg-card::before,
.about-service-card.service-bg-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  background: inherit !important;
  transform: scale(1.03) !important;
  transition: transform .45s ease, filter .45s ease !important;
}

.home-service-card.service-bg-card::after,
.about-service-card.service-bg-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  background:
    linear-gradient(180deg, rgba(0, 31, 63, .08) 0%, rgba(0, 31, 63, .52) 48%, rgba(0, 20, 38, .88) 100%),
    linear-gradient(135deg, rgba(244, 123, 32, .20) 0%, rgba(0, 47, 108, .22) 56%, rgba(0, 0, 0, .18) 100%) !important;
}

.home-service-card.service-bg-card:hover::before,
.about-service-card.service-bg-card:hover::before {
  transform: scale(1.08) !important;
  filter: saturate(1.08) contrast(1.04) !important;
}

.home-service-card.service-bg-card h3,
.about-service-card.service-bg-card h3 {
  position: relative !important;
  color: #ffffff !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .35) !important;
}

.home-service-card.service-bg-card h3::before,
.about-service-card.service-bg-card h3::before {
  content: "" !important;
  display: block !important;
  width: 42px !important;
  height: 4px !important;
  margin: 0 0 14px !important;
  border-radius: 99px !important;
  background: var(--mp-orange, var(--idf-orange)) !important;
}

.home-service-card.service-bg-card p,
.about-service-card.service-bg-card p {
  position: relative !important;
  color: rgba(255, 255, 255, .88) !important;
  margin-bottom: 0 !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, .35) !important;
}

.service-bg-electric {
  background-image: url('../img/ambito-reti-elettriche-ottimizzata.jpg') !important;
}

.service-bg-gas {
  background-image: url('../img/ambito-distribuzione-gas-ottimizzata.jpg') !important;
}

.service-bg-water {
  background-image: url('../img/ambito-reti-idriche-ottimizzata.jpg') !important;
}

.service-bg-renewables {
  background-image: url('../img/ambito-energie-rinnovabili-ottimizzata.jpg') !important;
}

.home-services-photo,
.about-services-photo {
  position: relative !important;
  box-shadow: 0 22px 55px rgba(0, 31, 63, .12) !important;
}

.home-services-photo::after,
.about-services-photo::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(0, 31, 63, 0) 0%, rgba(0, 31, 63, .18) 100%) !important;
}

.home-services-photo img,
.about-services-photo img {
  filter: saturate(1.02) contrast(1.02) !important;
}

@media (max-width: 620px) {
  .home-service-card.service-bg-card,
  .about-service-card.service-bg-card {
    min-height: 240px !important;
  }
}


/* =========================================================
   V15: Sidebar laterale più leggibile + icone menu + Attestazioni
   ========================================================= */
.side-quick-nav .quick-menu a,
.quick-menu a {
  padding-left: 14px !important;
  padding-right: 14px !important;
  line-height: 1.25 !important;
  gap: 9px !important;
}

.side-quick-nav .quick-menu li,
.quick-menu li {
  overflow: visible !important;
}

.quick-menu a::before,
.overlay-quick-menu a::before {
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  width: 22px !important;
  height: 22px !important;
  margin-bottom: 7px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  color: var(--mp-orange, var(--idf-orange)) !important;
}

/* Classi da inserire in Aspetto > Menu > Classi CSS */
.quick-menu .menu-icon-categorie a::before,
.overlay-quick-menu .menu-icon-categorie a::before { content: "▦" !important; }

.quick-menu .menu-icon-lavori a::before,
.overlay-quick-menu .menu-icon-lavori a::before { content: "⚒" !important; }

.quick-menu .menu-icon-sostenibilita a::before,
.overlay-quick-menu .menu-icon-sostenibilita a::before { content: "♻" !important; }

.quick-menu .menu-icon-territorio a::before,
.overlay-quick-menu .menu-icon-territorio a::before { content: "⌖" !important; }

.quick-menu .menu-icon-attestazioni a::before,
.overlay-quick-menu .menu-icon-attestazioni a::before { content: "▣" !important; }

.attestazione-card .attestazione-eyebrow {
  margin-bottom: 10px !important;
}

.attestazione-placeholder {
  display: inline-grid !important;
  place-items: center !important;
  width: 86px !important;
  height: 86px !important;
  border-radius: 22px !important;
  background: var(--mp-orange, var(--idf-orange)) !important;
  color: #ffffff !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
}

.attestazione-pdf-viewer {
  position: relative !important;
  width: 100% !important;
  min-height: 76vh !important;
  margin-top: 28px !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  border: 1px solid rgba(17, 17, 17, .12) !important;
  box-shadow: 0 22px 55px rgba(0, 31, 63, .12) !important;
  background: #f2f4f7 !important;
}

.attestazione-pdf-viewer iframe {
  display: block !important;
  width: 100% !important;
  height: 76vh !important;
  border: 0 !important;
  background: #f2f4f7 !important;
}

.attestazione-note {
  margin-top: 14px !important;
  font-size: 14px !important;
  color: var(--idf-muted) !important;
}

@media (max-width: 900px) {
  .side-quick-nav .quick-menu a,
  .quick-menu a {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

@media (max-width: 620px) {
  .attestazione-pdf-viewer,
  .attestazione-pdf-viewer iframe {
    min-height: 62vh !important;
    height: 62vh !important;
  }
}


/* =========================================================
   V16: Menu laterale più largo e icone da Personalizza
   ========================================================= */
@media (min-width: 901px) {
  .side-quick-nav {
    width: 118px !important;
  }
}

.side-quick-nav .quick-menu,
.quick-menu {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.side-quick-nav .quick-menu a,
.quick-menu a {
  width: 100% !important;
  min-height: 88px !important;
  padding: 12px 16px !important;
  box-sizing: border-box !important;
  line-height: 1.18 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto !important;
}

.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom {
  display: inline-grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  margin-bottom: 8px !important;
  font-size: 24px !important;
  line-height: 1 !important;
  color: var(--mp-orange, var(--idf-orange)) !important;
  background: transparent !important;
}

.quick-menu .q-label,
.overlay-quick-menu .q-label {
  display: block !important;
  max-width: 100% !important;
  line-height: 1.16 !important;
  color: currentColor !important;
}

.quick-menu a::before,
.overlay-quick-menu a::before {
  content: none !important;
  display: none !important;
}

/* Le vecchie classi CSS restano compatibili, ma ora le icone vengono inserite automaticamente dal tema. */
@media (max-width: 900px) {
  .side-quick-nav .quick-menu a,
  .quick-menu a {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}


/* =========================================================
   V17: Icone sidebar sempre visibili, piccole e nere
   ========================================================= */
.side-quick-nav .quick-menu a,
.quick-menu a {
  color: #111111 !important;
}

.side-quick-nav .quick-menu .q-icon,
.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom {
  display: inline-grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  place-items: center !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  margin: 0 0 6px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  color: #111111 !important;
  background: transparent !important;
  transform: none !important;
}

.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon {
  color: #111111 !important;
  opacity: 1 !important;
  transform: none !important;
}

.quick-menu .q-label,
.overlay-quick-menu .q-label {
  color: #111111 !important;
}

.quick-menu a::before,
.overlay-quick-menu a::before {
  content: none !important;
  display: none !important;
}


/* =========================================================
   V18: Hover sidebar pulito + sidebar più estesa
   ========================================================= */
@media (min-width: 901px) {
  .side-quick-nav {
    width: 128px !important;
    height: 100vh !important;
    min-height: 100vh !important;
    top: 0 !important;
    bottom: 0 !important;
    padding-top: 178px !important;
    overflow: visible !important;
  }

  .side-quick-nav .quick-menu,
  .quick-menu {
    height: calc(100vh - 178px) !important;
    padding-top: 12px !important;
    padding-bottom: 28px !important;
    justify-content: flex-start !important;
  }
}

/* Niente riquadro nero/box sull'icona in hover */
.side-quick-nav .quick-menu a:hover,
.quick-menu a:hover {
  background: rgba(17, 17, 17, .045) !important;
}

.side-quick-nav .quick-menu .q-icon,
.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom,
.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon {
  color: #111111 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  padding: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

.side-quick-nav .quick-menu .q-icon::before,
.side-quick-nav .quick-menu .q-icon::after,
.quick-menu .q-icon::before,
.quick-menu .q-icon::after {
  content: none !important;
  display: none !important;
}

.side-quick-nav .quick-menu a,
.quick-menu a {
  padding-left: 18px !important;
  padding-right: 18px !important;
}


/* =========================================================
   V19: Icone sidebar più grandi, sempre nere e senza riquadro
   ========================================================= */
.side-quick-nav .quick-menu .q-icon,
.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom,
.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  min-height: 26px !important;
  font-size: 22px !important;
  line-height: 1 !important;
  margin: 0 0 7px !important;
  color: #111111 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  transform: none !important;
}

.side-quick-nav .quick-menu a,
.quick-menu a {
  min-height: 94px !important;
}


/* =========================================================
   V20: Icone sidebar rosse in hover
   ========================================================= */
.side-quick-nav .quick-menu .q-icon,
.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom {
  color: #111111 !important;
}

.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon,
.side-quick-nav .quick-menu li:hover .q-icon,
.quick-menu li:hover .q-icon {
  color: #d71920 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}


/* =========================================================
   V21: Icone più grandi, prima voce più alta, hover rosso corretto
   ========================================================= */
@media (min-width: 901px) {
  .side-quick-nav {
    width: 132px !important;
    padding-top: 142px !important;
  }

  .side-quick-nav .quick-menu,
  .quick-menu {
    height: calc(100vh - 142px) !important;
    padding-top: 0 !important;
    justify-content: flex-start !important;
  }
}

.side-quick-nav .quick-menu a,
.quick-menu a {
  min-height: 98px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.side-quick-nav .quick-menu .q-icon,
.quick-menu .q-icon,
.overlay-quick-menu .q-icon,
.q-icon-custom {
  display: inline-grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  font-size: 30px !important;
  line-height: 1 !important;
  color: #111111 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-variant-emoji: text !important;
}

.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon,
.side-quick-nav .quick-menu li:hover .q-icon,
.quick-menu li:hover .q-icon,
.overlay-quick-menu li:hover .q-icon {
  color: #d71920 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}

/* Compatibilità per l'icona sostenibilità se salvata come emoji: prova a forzarla come simbolo testuale colorabile. */
.quick-menu .q-icon,
.overlay-quick-menu .q-icon {
  -webkit-text-fill-color: currentColor !important;
}


/* =========================================================
   V22: Voci menu laterale rosse in hover
   ========================================================= */
.side-quick-nav .quick-menu a,
.quick-menu a,
.side-quick-nav .quick-menu .q-label,
.quick-menu .q-label,
.overlay-quick-menu a,
.overlay-quick-menu .q-label {
  color: #111111 !important;
}

.side-quick-nav .quick-menu a:hover,
.quick-menu a:hover,
.overlay-quick-menu a:hover,
.side-quick-nav .quick-menu a:hover .q-label,
.quick-menu a:hover .q-label,
.overlay-quick-menu a:hover .q-label,
.side-quick-nav .quick-menu li:hover > a,
.quick-menu li:hover > a,
.overlay-quick-menu li:hover > a,
.side-quick-nav .quick-menu li:hover .q-label,
.quick-menu li:hover .q-label,
.overlay-quick-menu li:hover .q-label {
  color: #d71920 !important;
}

.side-quick-nav .quick-menu a:hover .q-icon,
.quick-menu a:hover .q-icon,
.overlay-quick-menu a:hover .q-icon,
.side-quick-nav .quick-menu li:hover .q-icon,
.quick-menu li:hover .q-icon,
.overlay-quick-menu li:hover .q-icon {
  color: #d71920 !important;
}


/* =========================================================
   V23: Menu rapido orizzontale nell'hamburger desktop più simmetrico
   ========================================================= */
.overlay-quick-row {
  padding: 26px clamp(46px, 7vw, 112px) !important;
  background: #eef7fc !important;
}

.overlay-quick-row .overlay-quick-menu {
  width: min(1120px, calc(100% - 0px)) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(18px, 3vw, 44px) !important;
  align-items: stretch !important;
  justify-content: center !important;
}

.overlay-quick-row .overlay-quick-menu > li {
  display: block !important;
  margin: 0 !important;
}

.overlay-quick-row .overlay-quick-menu > li > a {
  min-height: 104px !important;
  padding: 20px 24px !important;
  border-radius: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  text-align: center !important;
  line-height: 1.16 !important;
  box-sizing: border-box !important;
}

.overlay-quick-row .overlay-quick-menu > li > a:hover,
.overlay-quick-row .overlay-quick-menu > li.current-menu-item > a {
  background: #ffffff !important;
}

.overlay-quick-row .overlay-quick-menu .q-icon {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  margin: 0 !important;
  font-size: 28px !important;
}

.overlay-quick-row .overlay-quick-menu .q-label {
  font-size: clamp(18px, 1.75vw, 25px) !important;
  font-weight: 800 !important;
}

@media (max-width: 900px) {
  .overlay-quick-row {
    padding: 20px 18px !important;
  }

  .overlay-quick-row .overlay-quick-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .overlay-quick-row .overlay-quick-menu > li > a {
    min-height: 92px !important;
    padding: 16px 14px !important;
  }
}

@media (max-width: 520px) {
  .overlay-quick-row .overlay-quick-menu {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   V24: Icone sidebar stabili in hover + micro-posizionamenti menu
   ========================================================= */

/* Menu laterale fuori hamburger: prima voce 10px più giù */
@media (min-width: 901px) {
  .side-quick-nav .quick-menu {
    padding-top: 10px !important;
  }
}

/* Icone del menu laterale: stessa dimensione normale e hover */
.side-quick-nav .quick-menu .q-icon,
.side-quick-nav .quick-menu a .q-icon,
.side-quick-nav .quick-menu li .q-icon,
.side-quick-nav .quick-menu a:hover .q-icon,
.side-quick-nav .quick-menu li:hover .q-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
  font-size: 30px !important;
  line-height: 34px !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  transform: none !important;
  scale: 1 !important;
  opacity: 1 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Nel menu hamburger desktop: blocco menu rapido 20px più a destra */
@media (min-width: 901px) {
  .overlay-quick-row .overlay-quick-menu {
    transform: translateX(20px) !important;
  }
}

/* Nel menu hamburger le icone restano coerenti anche in hover */
.overlay-quick-row .overlay-quick-menu .q-icon,
.overlay-quick-row .overlay-quick-menu a .q-icon,
.overlay-quick-row .overlay-quick-menu li .q-icon,
.overlay-quick-row .overlay-quick-menu a:hover .q-icon,
.overlay-quick-row .overlay-quick-menu li:hover .q-icon {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  max-width: 32px !important;
  max-height: 32px !important;
  font-size: 28px !important;
  line-height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  scale: 1 !important;
  opacity: 1 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}


/* =========================================================
   V25: Menu rapido hamburger desktop ricentrato
   ========================================================= */
@media (min-width: 901px) {
  .overlay-quick-row .overlay-quick-menu {
    transform: translateX(8px) !important;
  }
}


/* =========================================================
   V26: Max-width menu hamburger desktop
   ========================================================= */
ul#menu-menu-verticale-1,
ul.overlay-menu-list {
  max-width: 1300px !important;
  width: min(1300px, calc(100% - 80px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  ul#menu-menu-verticale-1,
  ul.overlay-menu-list {
    width: calc(100% - 36px) !important;
    max-width: 1300px !important;
  }
}


/* =========================================================
   V27: Organigramma CPT Persone a righe senza linee gerarchiche
   ========================================================= */
.people-org-section {
  background: #ffffff !important;
}

.people-org-chart {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(26px, 4vw, 54px) !important;
  align-items: center !important;
}

.people-org-row {
  width: 100% !important;
  display: grid !important;
  gap: clamp(18px, 2.5vw, 32px) !important;
  justify-content: center !important;
  align-items: stretch !important;
}

.people-org-row[data-count="1"] {
  grid-template-columns: minmax(240px, 330px) !important;
}

.people-org-row[data-count="2"] {
  grid-template-columns: repeat(2, minmax(220px, 300px)) !important;
}

.people-org-row[data-count="3"] {
  grid-template-columns: repeat(3, minmax(210px, 285px)) !important;
}

.people-org-row[data-count="4"] {
  grid-template-columns: repeat(4, minmax(190px, 260px)) !important;
}

.people-org-row[data-count="5"],
.people-org-row[data-count="6"],
.people-org-row[data-count="7"],
.people-org-row[data-count="8"] {
  grid-template-columns: repeat(auto-fit, minmax(190px, 240px)) !important;
}

.people-org-chart .person-card {
  width: 100% !important;
  min-height: 100% !important;
  padding: 24px !important;
  border: 1px solid rgba(17, 17, 17, .10) !important;
  border-radius: 22px !important;
  background: #ffffff !important;
  color: #111111 !important;
  box-shadow: 0 18px 45px rgba(17, 17, 17, .07) !important;
  text-align: center !important;
}

.people-org-chart .person-photo {
  width: 118px !important;
  max-width: 100% !important;
  aspect-ratio: 1 !important;
  margin: 0 auto 18px !important;
  border-radius: 999px !important;
  background: #f5f6f8 !important;
}

.people-org-chart .person-photo img {
  border-radius: 999px !important;
}

.people-org-chart .person-card h3 {
  font-size: clamp(20px, 1.8vw, 26px) !important;
  letter-spacing: -.025em !important;
}

.people-org-chart .person-role {
  margin: 10px 0 0 !important;
  color: #5f6670 !important;
  font-weight: 750 !important;
}

.people-org-chart .person-bio {
  margin-top: 12px !important;
}

.people-org-chart .person-links {
  justify-content: center !important;
}

@media (max-width: 1100px) {
  .people-org-row[data-count="4"],
  .people-org-row[data-count="5"],
  .people-org-row[data-count="6"],
  .people-org-row[data-count="7"],
  .people-org-row[data-count="8"] {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .people-org-row,
  .people-org-row[data-count] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .people-org-chart {
    gap: 22px !important;
  }
}


/* =========================================================
   V29: Allineamento menu rapido hamburger + mobile orizzontale
   ========================================================= */

/* Desktop: il menu rapido dentro hamburger parte dove parte il menu sotto */
@media (min-width: 901px) {
  .overlay-quick-row {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .overlay-quick-row .overlay-quick-menu,
  ul#menu-menu-verticale-1.overlay-quick-menu {
    max-width: 1300px !important;
    width: min(1300px, calc(100% - 80px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    justify-content: flex-start !important;
  }
}

/* Mobile/tablet: il menu rapido nell'hamburger resta orizzontale */
@media (max-width: 900px) {
  .overlay-quick-row {
    padding: 14px 18px !important;
  }

  .overlay-quick-row .overlay-quick-menu,
  ul#menu-menu-verticale-1.overlay-quick-menu {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 1300px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    transform: none !important;
  }

  .overlay-quick-row .overlay-quick-menu > li,
  ul#menu-menu-verticale-1.overlay-quick-menu > li {
    min-width: 0 !important;
  }

  .overlay-quick-row .overlay-quick-menu > li > a,
  ul#menu-menu-verticale-1.overlay-quick-menu > li > a {
    min-height: 78px !important;
    padding: 10px 4px !important;
    border-radius: 16px !important;
    gap: 6px !important;
  }

  .overlay-quick-row .overlay-quick-menu .q-icon,
  ul#menu-menu-verticale-1.overlay-quick-menu .q-icon,
  .overlay-quick-row .overlay-quick-menu a:hover .q-icon,
  ul#menu-menu-verticale-1.overlay-quick-menu a:hover .q-icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    font-size: 22px !important;
    line-height: 24px !important;
    margin: 0 !important;
  }

  .overlay-quick-row .overlay-quick-menu .q-label,
  ul#menu-menu-verticale-1.overlay-quick-menu .q-label {
    display: block !important;
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    letter-spacing: -.01em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* Anche sotto i 520px resta orizzontale, non torna a una colonna */
@media (max-width: 520px) {
  .overlay-quick-row .overlay-quick-menu,
  ul#menu-menu-verticale-1.overlay-quick-menu {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   V30: Max-width corretta overlay-menu-list
   ========================================================= */
ul.overlay-menu-list {
  max-width: min(1140px, calc(100% - 80px)) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  ul.overlay-menu-list {
    max-width: min(1140px, calc(100% - 36px)) !important;
    width: 100% !important;
  }
}


/* =========================================================
   V31: Email leggibile nel menu hamburger mobile
   ========================================================= */
@media (max-width: 900px) {
  .overlay-panel {
    display: flex !important;
    flex-direction: column !important;
  }

  .overlay-footer-links {
    margin-top: 18px !important;
    padding: 18px 18px 22px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    position: static !important;
  }

  .overlay-footer-links a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 5px 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 11px !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 420px) {
  .overlay-footer-links {
    margin-top: 12px !important;
    padding-bottom: 18px !important;
  }

  .overlay-footer-links a {
    font-size: 11px !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 10.5px !important;
  }
}


/* =========================================================
   V32: Hamburger mobile più compatto + menu principale più largo
   ========================================================= */
@media (max-width: 900px) {
  .overlay-panel {
    height: 100vh !important;
    min-height: 100vh !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Il menu principale sotto quello orizzontale prende più spazio in larghezza */
  ul.overlay-menu-list {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    margin: 8px auto 0 !important;
    padding: 0 !important;
  }

  ul.overlay-menu-list > li > a {
    width: 100% !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    font-size: clamp(22px, 7vw, 34px) !important;
    line-height: 1.12 !important;
    letter-spacing: .06em !important;
  }

  ul.overlay-menu-list > li > a::after {
    right: 6px !important;
  }

  /* Riduce lo spazio verticale complessivo così telefono/email si vedono */
  .overlay-quick-row {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .overlay-quick-row .overlay-quick-menu > li > a,
  ul#menu-menu-verticale-1.overlay-quick-menu > li > a {
    min-height: 68px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  .overlay-footer-links {
    margin-top: 8px !important;
    padding: 10px 12px 14px !important;
    position: static !important;
  }

  .overlay-footer-links a {
    font-size: 11px !important;
    line-height: 1.25 !important;
    padding: 3px 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 10.5px !important;
  }
}

@media (max-width: 420px) {
  ul.overlay-menu-list {
    width: calc(100% - 18px) !important;
    margin-top: 6px !important;
  }

  ul.overlay-menu-list > li > a {
    min-height: 40px !important;
    font-size: clamp(20px, 6.5vw, 29px) !important;
    letter-spacing: .045em !important;
  }

  .overlay-footer-links {
    margin-top: 6px !important;
    padding-top: 8px !important;
  }
}


/* =========================================================
   V33: Footer contatti hamburger mobile più alto + offset anchor header fissa
   ========================================================= */

/* Scroll su ancore: compensazione header fissa/sticky */
html {
  scroll-padding-top: 145px !important;
}

[id] {
  scroll-margin-top: 145px !important;
}

@media (max-width: 900px) {
  html {
    scroll-padding-top: 115px !important;
  }

  [id] {
    scroll-margin-top: 115px !important;
  }

  /* Nel menu hamburger mobile telefono/email devono restare visibili più in alto */
  .overlay-panel {
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .overlay-head {
    flex: 0 0 auto !important;
  }

  .overlay-quick-row {
    flex: 0 0 auto !important;
  }

  ul.overlay-menu-list {
    flex: 0 0 auto !important;
    margin-top: 4px !important;
    margin-bottom: 6px !important;
  }

  ul.overlay-menu-list > li > a {
    min-height: 36px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    font-size: clamp(18px, 5.8vw, 27px) !important;
    line-height: 1.05 !important;
  }

  .overlay-footer-links {
    flex: 0 0 auto !important;
    order: 3 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 6px 12px 12px !important;
    position: static !important;
    transform: none !important;
  }

  .overlay-footer-links a {
    display: block !important;
    padding: 2px 0 !important;
    font-size: 10.5px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 10px !important;
  }
}

@media (max-width: 420px) {
  html {
    scroll-padding-top: 105px !important;
  }

  [id] {
    scroll-margin-top: 105px !important;
  }

  .overlay-quick-row {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  .overlay-quick-row .overlay-quick-menu > li > a,
  ul#menu-menu-verticale-1.overlay-quick-menu > li > a {
    min-height: 60px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  ul.overlay-menu-list > li > a {
    min-height: 32px !important;
    font-size: clamp(17px, 5.4vw, 24px) !important;
  }

  .overlay-footer-links {
    padding-top: 4px !important;
    padding-bottom: 10px !important;
  }
}


/* =========================================================
   V34: Contatti hamburger mobile sempre visibili
   ========================================================= */
@media (max-width: 900px) {
  .overlay-panel {
    position: relative !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding-bottom: 78px !important;
    overflow-y: auto !important;
  }

  .overlay-footer-links {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    z-index: 120 !important;
    margin: 0 !important;
    padding: 10px 14px 12px !important;
    background: rgba(255, 255, 255, .98) !important;
    border-top: 1px solid rgba(17, 17, 17, .10) !important;
    box-shadow: 0 -10px 28px rgba(17, 17, 17, .05) !important;
  }

  .overlay-footer-links a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 2px 0 !important;
    margin: 0 !important;
    color: #111111 !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 10.5px !important;
  }

  ul.overlay-menu-list {
    margin-bottom: 88px !important;
  }
}

@media (max-width: 420px) {
  .overlay-panel {
    padding-bottom: 74px !important;
  }

  .overlay-footer-links {
    padding: 8px 8px 10px !important;
    bottom: max(6px, env(safe-area-inset-bottom)) !important;
  }

  .overlay-footer-links a {
    font-size: 10px !important;
    line-height: 1.2 !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    font-size: 9.7px !important;
  }

  ul.overlay-menu-list {
    margin-bottom: 82px !important;
  }
}


/* =========================================================
   V35: Contatti hamburger mobile alzati
   ========================================================= */
@media (max-width: 900px) {
  .overlay-footer-links {
    padding-top: 0 !important;
    padding-bottom: 30px !important;
  }

  .overlay-footer-links a[href^="tel:"] {
    transform: translateY(-10px) !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    transform: translateY(-20px) !important;
  }
}

@media (max-width: 420px) {
  .overlay-footer-links {
    padding-bottom: 28px !important;
  }

  .overlay-footer-links a[href^="tel:"] {
    transform: translateY(-10px) !important;
  }

  .overlay-footer-links a[href^="mailto:"] {
    transform: translateY(-20px) !important;
  }
}


/* =========================================================
   V36: Chi siamo slider foto + sezioni storia/come lavoriamo
   ========================================================= */
.about-history-section {
  background: #ffffff !important;
  padding-top: 28px !important;
}

.about-photo-slider {
  position: relative !important;
  min-height: clamp(300px, 46vw, 560px) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #111111 !important;
  box-shadow: 0 24px 60px rgba(0, 31, 63, .14) !important;
}

.about-slider-track,
.about-slide {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
}

.about-slide {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .45s ease !important;
}

.about-slide.is-active {
  opacity: 1 !important;
  pointer-events: auto !important;
}

.about-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.about-photo-slider::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(0, 31, 63, 0) 0%, rgba(0, 31, 63, .18) 100%) !important;
}

.about-slider-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 3 !important;
  transform: translateY(-50%) !important;
  width: 54px !important;
  height: 54px !important;
  border: 0 !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, .92) !important;
  color: #111111 !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .18) !important;
  font-size: 42px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: transform .2s ease, color .2s ease, background .2s ease !important;
}

.about-slider-arrow:hover {
  color: #d71920 !important;
  background: #ffffff !important;
  transform: translateY(-50%) scale(1.04) !important;
}

.about-slider-prev {
  left: 24px !important;
}

.about-slider-next {
  right: 24px !important;
}

.about-history-text {
  width: min(1040px, 100%) !important;
  margin: clamp(28px, 4vw, 46px) auto 0 !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  line-height: 1.55 !important;
  color: #111111 !important;
}

.about-history-text p {
  margin: 0 !important;
}

.about-work-section {
  background: #f7f8fa !important;
}

.about-work-grid {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr) !important;
  gap: clamp(28px, 5vw, 70px) !important;
  align-items: center !important;
}

.about-work-photo {
  margin: 0 !important;
  min-height: clamp(360px, 44vw, 620px) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #e9edf2 !important;
  box-shadow: 0 24px 60px rgba(0, 31, 63, .13) !important;
}

.about-work-photo img {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit !important;
  object-fit: cover !important;
  display: block !important;
}

.about-work-content {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(28px, 4vw, 44px) !important;
}

.about-work-block {
  padding: clamp(24px, 3vw, 38px) !important;
  border-radius: 26px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 45px rgba(17, 17, 17, .06) !important;
}

.about-work-block .eyebrow {
  margin-bottom: 14px !important;
  color: var(--mp-orange, var(--idf-orange)) !important;
}

.about-work-block p:not(.eyebrow) {
  margin: 0 !important;
  color: #333942 !important;
  font-size: clamp(17px, 1.5vw, 20px) !important;
  line-height: 1.62 !important;
}

@media (max-width: 900px) {
  .about-photo-slider {
    min-height: 310px !important;
    border-radius: 22px !important;
  }

  .about-slider-arrow {
    width: 44px !important;
    height: 44px !important;
    font-size: 34px !important;
  }

  .about-slider-prev {
    left: 12px !important;
  }

  .about-slider-next {
    right: 12px !important;
  }

  .about-work-grid {
    grid-template-columns: 1fr !important;
  }

  .about-work-photo {
    min-height: 320px !important;
  }
}

@media (max-width: 520px) {
  .about-history-section {
    padding-top: 18px !important;
  }

  .about-photo-slider {
    min-height: 250px !important;
  }

  .about-history-text {
    font-size: 17px !important;
  }

  .about-work-block {
    padding: 22px !important;
  }
}


/* =========================================================
   V38: Testo storico Chi siamo largo come lo slider
   ========================================================= */
.about-history-text {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.about-history-text p {
  max-width: none !important;
}


/* =========================================================
   V39: Testo storico Chi siamo centrato come la foto
   ========================================================= */
.about-history-section > .container {
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.about-photo-slider,
.about-history-text {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.about-history-text {
  margin-top: clamp(28px, 4vw, 46px) !important;
}

.about-history-text p {
  max-width: 100% !important;
}

@media (max-width: 620px) {
  .about-history-section > .container {
    width: min(100% - 28px, 1120px) !important;
  }
}


/* =========================================================
   V41: Max-width testo storico Chi siamo
   ========================================================= */
.about-history-text {
  max-width: 1120px !important;
}


/* =========================================================
   V42: Padding mobile testo storico Chi siamo
   ========================================================= */
@media (max-width: 620px) {
  .about-history-text {
    padding-left: 15px !important;
    padding-right: 10px !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   Correzioni richieste 2026-05-12
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600&display=swap');

.main-menu,
.main-menu > li > a,
.main-menu .sub-menu a,
.overlay-menu-list a,
.overlay-nav .main-menu > li > a,
.quick-menu a,
.utility-contact-link {
  font-family: 'Quicksand', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 500 !important;
}

.header-actions .search-link,
.search-link {
  display: none !important;
}

body,
.entry-content,
.split p,
.home-services-intro p,
.info-card p,
.about-history-text p,
.about-work-content p,
.project-body p,
.post-card-body p,
.cta-box p {
  font-size: 15px !important;
  line-height: 1.55 !important;
}

.about-content .lead {
  font-size: clamp(18px, 1.8vw, 24px) !important;
  line-height: 1.35 !important;
}

.site-footer,
.site-footer p,
.site-footer a,
.site-footer span,
.footer-main-layout,
.footer-description p,
.footer-contact-data p,
.footer-bottom,
.footer-bottom span {
  font-size: 9px !important;
  line-height: 1.32 !important;
}

.footer-description p,
.footer-contact-data p {
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.home-service-card,
.about-service-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  min-height: 250px !important;
}

.home-service-card h3,
.about-service-card h3 {
  min-height: 2.15em;
  display: flex;
  align-items: flex-start;
  margin: 0 0 12px !important;
}

.home-service-card p,
.about-service-card p {
  margin-top: 0 !important;
}

.home-video-section {
  background: #ffffff;
  padding-top: 72px !important;
  padding-bottom: 28px !important;
}

.idf-video-slider {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background: #111111;
  box-shadow: 0 24px 70px rgba(17,17,17,.12);
}

.idf-video-slider-track,
.idf-video-slide {
  position: relative;
  width: 100%;
  min-height: clamp(260px, 48vw, 560px);
}

.idf-video-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}

.idf-video-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.idf-video-slide video {
  width: 100%;
  height: 100%;
  min-height: clamp(260px, 48vw, 560px);
  object-fit: cover;
  display: block;
}

.idf-video-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  color: #111111;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 14px 35px rgba(0,0,0,.18);
}

.idf-video-slider-prev { left: 18px; }
.idf-video-slider-next { right: 18px; }

.person-card h3,
.person-role {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.person-card h3 {
  font-size: clamp(15px, 1.25vw, 19px) !important;
  line-height: 1.15 !important;
}

.person-role {
  font-size: clamp(12px, 1vw, 14px) !important;
  line-height: 1.2 !important;
}

@media (max-width: 700px) {
  .people-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
  .person-card {
    padding: 14px !important;
  }
  .person-photo {
    border-radius: 16px !important;
    margin-bottom: 12px !important;
  }
  .person-card h3 {
    font-size: 13px !important;
  }
  .person-role,
  .person-bio {
    font-size: 11px !important;
  }
}

@media (max-width: 760px) {
  .idf-video-slider-arrow {
    width: 40px;
    height: 40px;
    font-size: 28px;
  }
  .home-service-card h3,
  .about-service-card h3 {
    min-height: 0;
  }
}

/* =========================================================
   V22: Allineamento testi card Ambiti di intervento
   ========================================================= */
.home-services-grid .home-service-card.service-bg-card,
.page-template-default .home-service-card.service-bg-card,
.home-service-card.service-bg-card,
.about-service-card.service-bg-card {
  justify-content: flex-start !important;
  align-items: flex-start !important;
  padding-top: 30px !important;
}

.home-services-grid .home-service-card.service-bg-card h3,
.home-service-card.service-bg-card h3,
.about-service-card.service-bg-card h3 {
  display: block !important;
  min-height: 2.35em !important;
  line-height: 1.08 !important;
  margin: 0 0 12px !important;
  width: 100% !important;
}

.home-services-grid .home-service-card.service-bg-card h3::before,
.home-service-card.service-bg-card h3::before,
.about-service-card.service-bg-card h3::before {
  display: block !important;
  flex: none !important;
  margin: 0 0 14px !important;
}

.home-services-grid .home-service-card.service-bg-card p,
.home-service-card.service-bg-card p,
.about-service-card.service-bg-card p {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .home-services-grid .home-service-card.service-bg-card h3,
  .home-service-card.service-bg-card h3,
  .about-service-card.service-bg-card h3 {
    min-height: 0 !important;
  }
}

/* =========================================================
   V23: Card Ambiti - titoli sempre alti come due righe
   ========================================================= */
.home-services-grid .home-service-card.service-bg-card h3,
.home-service-card.service-bg-card h3,
.about-service-card.service-bg-card h3 {
  height: 78px !important;
  min-height: 78px !important;
  max-height: 78px !important;
  overflow: visible !important;
  margin-bottom: 12px !important;
}

.home-services-grid .home-service-card.service-bg-card p,
.home-service-card.service-bg-card p,
.about-service-card.service-bg-card p {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .home-services-grid .home-service-card.service-bg-card h3,
  .home-service-card.service-bg-card h3,
  .about-service-card.service-bg-card h3 {
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
  }
}

/* =========================================================
   V30: Allineamento card Ambiti + Persone mobile 2 colonne
   ========================================================= */
.home-service-card.service-bg-card,
.about-service-card.service-bg-card {
  justify-content: flex-end !important;
}

.home-service-card.service-bg-card h3,
.about-service-card.service-bg-card h3 {
  min-height: 74px !important;
  margin: 0 0 12px !important;
  line-height: 1.08 !important;
  display: block !important;
}

.home-service-card.service-bg-card p,
.about-service-card.service-bg-card p {
  margin-top: 0 !important;
}

@media (max-width: 620px) {
  .home-service-card.service-bg-card h3,
  .about-service-card.service-bg-card h3 {
    min-height: 66px !important;
  }
}

@media (max-width: 760px) {
  .people-grid,
  .people-org-row,
  .people-org-row[data-count],
  .people-org-row[data-count="1"],
  .people-org-row[data-count="2"],
  .people-org-row[data-count="3"],
  .people-org-row[data-count="4"],
  .people-org-row[data-count="5"],
  .people-org-row[data-count="6"],
  .people-org-row[data-count="7"],
  .people-org-row[data-count="8"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .people-org-chart .person-card,
  .person-card {
    padding: 14px 10px !important;
    border-radius: 18px !important;
  }

  .people-org-chart .person-photo,
  .person-photo {
    width: 84px !important;
    margin-bottom: 12px !important;
  }

  .people-org-chart .person-card h3,
  .person-card h3,
  .person-card h3 a {
    font-size: clamp(13px, 3.6vw, 16px) !important;
    line-height: 1.05 !important;
    white-space: wrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    letter-spacing: -.02em !important;
  }

  .people-org-chart .person-role,
  .person-role {
    font-size: clamp(11px, 3vw, 13px) !important;
    line-height: 1.08 !important;
    white-space: wrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    margin-top: 6px !important;
  }
}

@media (max-width: 380px) {
  .people-org-chart .person-card h3,
  .person-card h3,
  .person-card h3 a {
    font-size: 12px !important;
  }

  .people-org-chart .person-role,
  .person-role {
    font-size: 10.5px !important;
  }
}

/* =========================================================
   V31: Persone mobile - griglia unica a 2 colonne + iniziale centrata
   ========================================================= */
.people-org-chart .person-photo,
.person-photo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.people-org-chart .person-photo span,
.person-photo span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  line-height: 1 !important;
  text-align: center !important;
  transform: translateY(-1px) !important;
}

@media (max-width: 760px) {
  .people-org-chart {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
  }

  .people-org-row,
  .people-org-row[data-count],
  .people-org-row[data-count="1"],
  .people-org-row[data-count="2"],
  .people-org-row[data-count="3"],
  .people-org-row[data-count="4"],
  .people-org-row[data-count="5"],
  .people-org-row[data-count="6"],
  .people-org-row[data-count="7"],
  .people-org-row[data-count="8"] {
    display: contents !important;
  }

  .people-org-chart .person-card,
  .person-card {
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    padding: 14px 8px !important;
  }

  .people-org-chart .person-photo,
  .person-photo {
    width: 76px !important;
    height: 76px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 auto 10px !important;
    border-radius: 999px !important;
  }

  .people-org-chart .person-photo span,
  .person-photo span {
    font-size: 38px !important;
    line-height: 1 !important;
  }

  .people-org-chart .person-card h3,
  .people-org-chart .person-card h3 a,
  .person-card h3,
  .person-card h3 a,
  .people-org-chart .person-role,
  .person-role {
    display: block !important;
    max-width: 100% !important;
    white-space: wrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .people-org-chart .person-card h3,
  .person-card h3,
  .person-card h3 a {
    font-size: clamp(11px, 3.15vw, 13px) !important;
    line-height: 1.05 !important;
    margin-bottom: 0 !important;
  }

  .people-org-chart .person-role,
  .person-role {
    font-size: clamp(9.5px, 2.75vw, 11px) !important;
    line-height: 1.05 !important;
    margin-top: 5px !important;
  }
}

/* =========================================================
   V27: Slider video home full width
   ========================================================= */
.home-video-section > .container {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.home-video-section .idf-video-slider {
  width: 100vw !important;
  max-width: none !important;
  border-radius: 0 !important;
}

@media (max-width: 760px) {
  .home-video-section > .container,
  .home-video-section .idf-video-slider {
    width: 100vw !important;
    max-width: none !important;
  }
}

/* =========================================================
   V28: Frecce slider video allineate al container max 1140px
   ========================================================= */
.home-video-section .idf-video-slider-prev {
  left: calc((100vw - min(1140px, 100vw)) / 2 + 18px) !important;
}

.home-video-section .idf-video-slider-next {
  right: calc((100vw - min(1140px, 100vw)) / 2 + 18px) !important;
}

@media (max-width: 760px) {
  .home-video-section .idf-video-slider-prev {
    left: 16px !important;
  }

  .home-video-section .idf-video-slider-next {
    right: 16px !important;
  }
}

/* =========================================================
   V32: Chi siamo slider full width, Persone video/testo, organigramma più leggibile
   ========================================================= */
.about-history-section .about-photo-slider {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius: 0 !important;
}

.about-history-section .about-slider-prev {
  left: calc((100vw - min(1140px, 100vw)) / 2 + 18px) !important;
}

.about-history-section .about-slider-next {
  right: calc((100vw - min(1140px, 100vw)) / 2 + 18px) !important;
}

.people-intro-media-section {
  background: #ffffff !important;
  padding-top: clamp(28px, 4vw, 58px) !important;
  padding-bottom: clamp(22px, 3vw, 42px) !important;
}

.people-intro-video {
  width: 100% !important;
  margin: 0 auto clamp(24px, 3.5vw, 46px) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #111111 !important;
  box-shadow: 0 24px 70px rgba(17,17,17,.12) !important;
}

.people-intro-video video {
  width: 100% !important;
  min-height: clamp(260px, 42vw, 520px) !important;
  height: clamp(260px, 42vw, 520px) !important;
  object-fit: cover !important;
  display: block !important;
}

.people-intro-text {
  max-width: 960px !important;
  margin: 0 auto !important;
  text-align: center !important;
}

.people-intro-text p {
  margin: 0 !important;
  font-size: clamp(15px, 1.35vw, 18px) !important;
  line-height: 1.65 !important;
  color: #4d545f !important;
}

.people-org-section {
  padding-top: clamp(22px, 3vw, 40px) !important;
}

.people-org-chart {
  gap: clamp(18px, 2.8vw, 38px) !important;
}

.people-org-row {
  gap: clamp(16px, 2vw, 24px) !important;
}

.people-org-row[data-count="4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.people-org-row[data-count="5"],
.people-org-row[data-count="6"],
.people-org-row[data-count="7"],
.people-org-row[data-count="8"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.people-org-chart .person-card {
  padding: clamp(16px, 1.8vw, 22px) clamp(12px, 1.4vw, 18px) !important;
  border-radius: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.people-org-chart .person-photo {
  width: clamp(78px, 8vw, 106px) !important;
  height: clamp(78px, 8vw, 106px) !important;
  margin: 0 auto 14px !important;
  flex: 0 0 auto !important;
}

.people-org-chart .person-card h3,
.people-org-chart .person-card h3 a {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: clamp(13px, 1.05vw, 16px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.025em !important;
  white-space: wrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.people-org-chart .person-role {
  width: 100% !important;
  max-width: 100% !important;
  margin: 7px 0 0 !important;
  font-size: clamp(10px, .85vw, 12px) !important;
  line-height: 1.15 !important;
  font-weight: 650 !important;
  white-space: wrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.people-org-chart .person-bio,
.people-org-chart .person-links {
  display: none !important;
}

@media (max-width: 1100px) {
  .people-org-row[data-count="4"],
  .people-org-row[data-count="5"],
  .people-org-row[data-count="6"],
  .people-org-row[data-count="7"],
  .people-org-row[data-count="8"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .about-history-section .about-slider-prev { left: 16px !important; }
  .about-history-section .about-slider-next { right: 16px !important; }

  .people-intro-media-section {
    padding-top: 26px !important;
    padding-bottom: 24px !important;
  }

  .people-intro-video {
    border-radius: 18px !important;
    margin-bottom: 22px !important;
  }

  .people-intro-video video {
    min-height: 220px !important;
    height: 220px !important;
  }

  .people-intro-text {
    text-align: left !important;
  }

  .people-intro-text p {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  .people-org-chart {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .people-org-chart .person-card {
    padding: 12px 7px !important;
    border-radius: 16px !important;
    min-width: 0 !important;
  }

  .people-org-chart .person-photo,
  .person-photo {
    width: 66px !important;
    height: 66px !important;
    margin-bottom: 9px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .people-org-chart .person-photo span,
  .person-photo span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    font-size: 32px !important;
    line-height: 1 !important;
    transform: none !important;
  }

  .people-org-chart .person-card h3,
  .people-org-chart .person-card h3 a {
    font-size: clamp(8.6px, 2.65vw, 10.5px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
    white-space: wrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .people-org-chart .person-role {
    font-size: clamp(7.2px, 2.15vw, 9px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.03em !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
}

@media (max-width: 380px) {
  .people-org-chart .person-card h3,
  .people-org-chart .person-card h3 a {
    font-size: 8.2px !important;
  }
  .people-org-chart .person-role {
    font-size: 6.8px !important;
  }
}

/* =========================================================
   V10: Chi siamo - colonna destra più compatta e foto sticky
   ========================================================= */
@media (min-width: 901px) {
  .about-work-grid {
    align-items: start !important;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
  }

  .about-work-photo {
    position: sticky !important;
    top: 118px !important;
    align-self: start !important;
    min-height: clamp(430px, 48vw, 640px) !important;
  }

  .about-work-content {
    gap: clamp(22px, 2.7vw, 34px) !important;
  }

  .about-work-block {
    padding: clamp(24px, 2.6vw, 34px) clamp(26px, 3vw, 42px) !important;
  }

  .about-work-block p:not(.eyebrow) {
    font-size: clamp(14px, 1.22vw, 17px) !important;
    line-height: 1.58 !important;
    letter-spacing: -.01em !important;
  }

  .about-work-block .eyebrow {
    margin-bottom: 12px !important;
    font-size: 12px !important;
    letter-spacing: .28em !important;
  }
}

@media (max-width: 900px) {
  .about-work-photo {
    position: relative !important;
    top: auto !important;
  }

  .about-work-block p:not(.eyebrow) {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
}

/* =========================================================
   V37: richieste Impresa Del Fiume 2026-05-22
   ========================================================= */
@media (min-width: 901px) {
  .header-actions,
  .menu-toggle { display: none !important; }
}
@media (max-width: 900px) {
  .header-actions { display: flex !important; }
  .menu-toggle { display: inline-block !important; }
}

.about-content .lead {
  font-weight: 400 !important;
}

.about-work-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(28px, 4vw, 54px) !important;
}
.about-work-slider {
  width: 100% !important;
}
.about-work-content-below {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(22px, 3vw, 36px) !important;
}
@media (max-width: 900px) {
  .about-work-content-below { grid-template-columns: 1fr !important; }
}

.services-page-grid .home-service-card.service-bg-card,
.home-services-grid .home-service-card.service-bg-card {
  min-height: clamp(330px, 31vw, 470px) !important;
  padding: clamp(34px, 4vw, 54px) !important;
}

.footer-contact-data p {
  margin: 4px 0 !important;
  line-height: 1.12 !important;
}
.footer-bottom span {
  font-size: 11px !important;
  line-height: 1.35 !important;
}

.people-org-chart .person-card,
.person-card {
  transition: transform .28s ease, box-shadow .28s ease !important;
  will-change: transform !important;
}
.people-org-chart .person-card:hover,
.person-card:hover {
  transform: translateY(-6px) scale(1.035) !important;
  box-shadow: 0 24px 60px rgba(17, 17, 17, .14) !important;
}
.people-org-chart .person-photo img,
.person-photo img {
  transition: transform .32s ease !important;
}
.people-org-chart .person-card:hover .person-photo img,
.person-card:hover .person-photo img {
  transform: scale(1.08) !important;
}

.idf-reveal-ready .section,
.idf-reveal-ready .page-hero,
.idf-reveal-ready .cta-section,
.idf-reveal-ready .info-card,
.idf-reveal-ready .person-card,
.idf-reveal-ready .post-card,
.idf-reveal-ready .about-work-block,
.idf-reveal-ready .home-services-photo,
.idf-reveal-ready .about-photo-slider,
.idf-reveal-ready .people-intro-video,
.idf-reveal-ready .people-intro-text,
.idf-reveal-ready .footer-main-layout > * {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .72s ease, transform .72s ease;
}
.idf-reveal-ready .section.is-revealed,
.idf-reveal-ready .page-hero.is-revealed,
.idf-reveal-ready .cta-section.is-revealed,
.idf-reveal-ready .info-card.is-revealed,
.idf-reveal-ready .person-card.is-revealed,
.idf-reveal-ready .post-card.is-revealed,
.idf-reveal-ready .about-work-block.is-revealed,
.idf-reveal-ready .home-services-photo.is-revealed,
.idf-reveal-ready .about-photo-slider.is-revealed,
.idf-reveal-ready .people-intro-video.is-revealed,
.idf-reveal-ready .people-intro-text.is-revealed,
.idf-reveal-ready .footer-main-layout > *.is-revealed {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .idf-reveal-ready .section,
  .idf-reveal-ready .page-hero,
  .idf-reveal-ready .cta-section,
  .idf-reveal-ready .info-card,
  .idf-reveal-ready .person-card,
  .idf-reveal-ready .post-card,
  .idf-reveal-ready .about-work-block,
  .idf-reveal-ready .home-services-photo,
  .idf-reveal-ready .about-photo-slider,
  .idf-reveal-ready .people-intro-video,
  .idf-reveal-ready .people-intro-text,
  .idf-reveal-ready .footer-main-layout > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

.idf-vertical-slider {
  position: relative !important;
  min-height: clamp(560px, 74vh, 760px) !important;
  width: 100% !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
  background: #0f1720 !important;
}
.idf-vertical-slider-bg,
.idf-vertical-slider-bg-item {
  position: absolute !important;
  inset: 0 !important;
}
.idf-vertical-slider-bg-item {
  opacity: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  transition: opacity .55s ease, transform 2.8s ease !important;
  transform: scale(1.04) !important;
}
.idf-vertical-slider-bg-item.is-active {
  opacity: .48 !important;
  transform: scale(1) !important;
}
.idf-vertical-slider::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0,0,0,.38) !important;
  pointer-events: none !important;
}
.idf-vertical-slider-panel {
  position: relative !important;
  z-index: 2 !important;
  width: min(904px, calc(100% - 96px)) !important;
  min-height: clamp(520px, 62vh, 680px) !important;
  border-radius: 14px !important;
  background: rgba(246, 249, 252, .96) !important;
  display: grid !important;
  place-items: center !important;
  padding: clamp(44px, 7vw, 86px) !important;
}
.idf-vertical-slide {
  grid-area: 1 / 1 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(34px) !important;
  transition: opacity .45s ease, transform .45s ease !important;
  text-align: center !important;
  max-width: 690px !important;
}
.idf-vertical-slide.is-active {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}
.idf-vertical-slide h2 {
  margin: 0 0 58px !important;
  color: #0b376f !important;
  font-size: clamp(34px, 4vw, 48px) !important;
  font-weight: 400 !important;
  letter-spacing: .16em !important;
  line-height: 1.1 !important;
}
.idf-vertical-slide p {
  margin: 0 auto 82px !important;
  color: #0b376f !important;
  font-size: clamp(22px, 2.6vw, 30px) !important;
  line-height: 1.72 !important;
  letter-spacing: .08em !important;
}
.idf-vertical-slider-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #0b376f !important;
  text-decoration: none !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  font-weight: 700 !important;
  letter-spacing: .28em !important;
  text-transform: uppercase !important;
}
.idf-vertical-slider-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 3 !important;
  transform: translateY(-50%) !important;
  width: 64px !important;
  height: 64px !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,.92) !important;
  color: #0b376f !important;
  font-size: 52px !important;
  line-height: .8 !important;
  cursor: pointer !important;
}
.idf-vertical-slider-prev { left: 24px !important; }
.idf-vertical-slider-next { right: 24px !important; }
.idf-vertical-slider-dots {
  position: absolute !important;
  z-index: 4 !important;
  left: 50% !important;
  bottom: 28px !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  gap: 16px !important;
}
.idf-vertical-slider-dot {
  width: 96px !important;
  height: 15px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.42) !important;
  cursor: pointer !important;
}
.idf-vertical-slider-dot.is-active { background: #ffffff !important; }
@media (max-width: 760px) {
  .idf-vertical-slider { min-height: 620px !important; }
  .idf-vertical-slider-panel { width: calc(100% - 42px) !important; padding: 46px 24px !important; }
  .idf-vertical-slider-arrow { width: 46px !important; height: 46px !important; font-size: 38px !important; }
  .idf-vertical-slider-prev { left: 10px !important; }
  .idf-vertical-slider-next { right: 10px !important; }
  .idf-vertical-slider-dot { width: 56px !important; height: 12px !important; }
}


/* Correzione 2026-05-22: Chi siamo - foto/slider 100% larghezza sotto le due colonne */
.about-work-slider-below {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: clamp(12px, 2vw, 24px) !important;
  border-radius: 0 !important;
}
.about-work-slider-below .about-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
/* Territorio: il testo descrittivo lungo viene gestito nel plugin Italia Marker, non nell'header */
.territory-hero .page-intro {
  max-width: 760px !important;
}

/* Correzione 2026-05-22 v4: Chi siamo - foto a sinistra dei due paragrafi, non sotto */
.about-history-section .about-work-grid {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr) !important;
  gap: clamp(28px, 5vw, 70px) !important;
  align-items: center !important;
}
.about-history-section .about-work-grid .about-work-slider-left {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-radius: 28px !important;
  min-height: clamp(420px, 46vw, 680px) !important;
}
.about-history-section .about-work-grid .about-work-slider-left .about-slider-prev {
  left: 24px !important;
}
.about-history-section .about-work-grid .about-work-slider-left .about-slider-next {
  right: 24px !important;
}
.about-section .about-content p {
  font-weight: 400 !important;
  margin-bottom: 1.15em !important;
}
.services-page-section .home-services-intro p + p {
  margin-top: 1em !important;
}
.services-page-section .home-services-intro p {
  line-height: 1.62 !important;
}
@media (max-width: 900px) {
  .about-history-section .about-work-grid {
    grid-template-columns: 1fr !important;
  }
  .about-history-section .about-work-grid .about-work-slider-left {
    min-height: 320px !important;
  }
}

/* Correzione 2026-05-22 v5: Chi siamo - mantenere lo slider e aggiungere la foto singola sotto i due paragrafi */
.about-single-photo-below {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin: clamp(26px, 4vw, 54px) 0 0 !important;
  min-height: clamp(320px, 42vw, 620px) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #e9edf2 !important;
  box-shadow: 0 24px 60px rgba(0, 31, 63, .13) !important;
}
.about-single-photo-below img {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit !important;
  object-fit: cover !important;
  display: block !important;
}
@media (max-width: 900px) {
  .about-single-photo-below {
    min-height: 280px !important;
    border-radius: 22px !important;
  }
}

/* Correzione 2026-05-22 v6: Ambiti di intervento - card meno alte */
.services-page-grid .home-service-card.service-bg-card,
.home-services-grid .home-service-card.service-bg-card,
.about-service-card.service-bg-card {
  min-height: clamp(250px, 24vw, 340px) !important;
  padding: clamp(26px, 3vw, 38px) !important;
}

.services-page-grid .home-service-card.service-bg-card h3,
.home-services-grid .home-service-card.service-bg-card h3,
.home-service-card.service-bg-card h3,
.about-service-card.service-bg-card h3 {
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  margin-bottom: 10px !important;
}

.services-page-grid .home-service-card.service-bg-card h3::before,
.home-services-grid .home-service-card.service-bg-card h3::before,
.home-service-card.service-bg-card h3::before,
.about-service-card.service-bg-card h3::before {
  margin-bottom: 10px !important;
}

.services-page-grid .home-service-card.service-bg-card p,
.home-services-grid .home-service-card.service-bg-card p,
.home-service-card.service-bg-card p,
.about-service-card.service-bg-card p {
  line-height: 1.48 !important;
}

@media (max-width: 760px) {
  .services-page-grid .home-service-card.service-bg-card,
  .home-services-grid .home-service-card.service-bg-card,
  .about-service-card.service-bg-card {
    min-height: 230px !important;
    padding: 24px !important;
  }

  .services-page-grid .home-service-card.service-bg-card h3,
  .home-services-grid .home-service-card.service-bg-card h3,
  .home-service-card.service-bg-card h3,
  .about-service-card.service-bg-card h3 {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
}

/* =========================================================
   V47: Reset layout Chi siamo richiesto
   Titolo/testo -> slider 100% -> due box -> foto singola sotto
   ========================================================= */
.chi-about-intro-section {
  background: #ffffff !important;
  padding-top: clamp(54px, 7vw, 96px) !important;
  padding-bottom: clamp(34px, 5vw, 66px) !important;
}

.chi-about-intro {
  max-width: 1120px !important;
  width: min(1120px, calc(100% - 40px)) !important;
}

.chi-about-intro h2 {
  margin: 0 0 24px !important;
  color: #111111 !important;
  font-size: clamp(44px, 7vw, 86px) !important;
  line-height: .98 !important;
  font-weight: 500 !important;
  letter-spacing: -0.045em !important;
}

.chi-about-intro p,
.chi-about-intro .lead {
  margin: 0 0 22px !important;
  color: #333942 !important;
  font-size: clamp(17px, 1.55vw, 21px) !important;
  line-height: 1.62 !important;
  font-weight: 400 !important;
}

.chi-about-intro p:last-child {
  margin-bottom: 0 !important;
}

.chi-full-slider-section {
  background: #ffffff !important;
  padding-top: 0 !important;
  padding-bottom: clamp(42px, 6vw, 82px) !important;
}

.chi-full-slider-section > .container {
  width: min(1200px, calc(100% - 40px)) !important;
  max-width: 1200px !important;
}

.chi-full-width-slider {
  width: 100% !important;
  min-height: clamp(330px, 50vw, 640px) !important;
  border-radius: 28px !important;
  margin: 0 auto !important;
}

.chi-work-section {
  background: #f7f8fa !important;
  padding-top: clamp(54px, 7vw, 92px) !important;
}

.chi-work-section > .container {
  width: min(1200px, calc(100% - 40px)) !important;
  max-width: 1200px !important;
}

.chi-work-cards {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(24px, 4vw, 46px) !important;
  align-items: stretch !important;
}

.chi-work-cards .about-work-block {
  min-height: 100% !important;
}

.chi-single-photo-below {
  margin: clamp(34px, 5vw, 62px) 0 0 !important;
  width: 100% !important;
  min-height: clamp(300px, 45vw, 560px) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #e9edf2 !important;
  box-shadow: 0 24px 60px rgba(0, 31, 63, .13) !important;
}

.chi-single-photo-below img {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit !important;
  object-fit: cover !important;
  display: block !important;
}

@media (max-width: 900px) {
  .chi-work-cards {
    grid-template-columns: 1fr !important;
  }
  .chi-full-width-slider,
  .chi-single-photo-below {
    border-radius: 22px !important;
  }
}

@media (max-width: 620px) {
  .chi-about-intro,
  .chi-full-slider-section > .container,
  .chi-work-section > .container {
    width: min(100% - 28px, 1200px) !important;
  }
  .chi-about-intro h2 {
    font-size: 44px !important;
  }
  .chi-about-intro p {
    font-size: 16px !important;
  }
}

/* =========================================================
   V48: Ripristino dimensione H2 "La nostra storia"
   ========================================================= */
.chi-about-intro h2 {
  font-size: clamp(30px, 4vw, 48px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 620px) {
  .chi-about-intro h2 {
    font-size: 34px !important;
  }
}

/* =========================================================
   V50 - Aggiornamenti richiesti Impresa Del Fiume
   Full width desktop, animazioni, Cosa facciamo, footer, persone
   ========================================================= */
:root { --idf-side-offset: 92px; }

/* Animazioni più evidenti ma leggere */
@keyframes idfFadeUpSoft { from { opacity:0; transform:translateY(34px); } to { opacity:1; transform:translateY(0); } }
@keyframes idfScaleInSoft { from { opacity:0; transform:scale(.965); } to { opacity:1; transform:scale(1); } }
@keyframes idfFloatSlow { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes idfVerticalMarquee { from { transform:translateY(0); } to { transform:translateY(-50%); } }

.idf-reveal-ready .section,
.idf-reveal-ready .page-hero,
.idf-reveal-ready .cta-section,
.idf-reveal-ready .info-card,
.idf-reveal-ready .person-card,
.idf-reveal-ready .post-card,
.idf-reveal-ready .project-card,
.idf-reveal-ready .home-services-intro,
.idf-reveal-ready .home-services-photo,
.idf-reveal-ready .services-full-width-photo,
.idf-reveal-ready .services-bottom-text,
.idf-reveal-ready .services-vertical-image-slider,
.idf-reveal-ready .sustainability-content-grid > article {
  opacity:0;
  transform:translateY(34px);
  transition:opacity .85s ease, transform .85s cubic-bezier(.22,.61,.36,1);
}
.idf-reveal-ready .is-revealed,
.idf-reveal-ready .section.is-revealed,
.idf-reveal-ready .page-hero.is-revealed,
.idf-reveal-ready .cta-section.is-revealed,
.idf-reveal-ready .info-card.is-revealed,
.idf-reveal-ready .person-card.is-revealed,
.idf-reveal-ready .post-card.is-revealed,
.idf-reveal-ready .project-card.is-revealed,
.idf-reveal-ready .home-services-intro.is-revealed,
.idf-reveal-ready .home-services-photo.is-revealed,
.idf-reveal-ready .services-full-width-photo.is-revealed,
.idf-reveal-ready .services-bottom-text.is-revealed,
.idf-reveal-ready .services-vertical-image-slider.is-revealed,
.idf-reveal-ready .sustainability-content-grid > article.is-revealed {
  opacity:1;
  transform:translateY(0);
}
.info-card, .person-card, .project-card, .post-card, .home-services-photo, .about-photo-slider { transition:transform .35s ease, box-shadow .35s ease; }
.info-card:hover, .person-card:hover, .project-card:hover, .post-card:hover { transform:translateY(-8px); box-shadow:0 24px 62px rgba(0,31,63,.14) !important; }

/* Testi giustificati dove richiesto */
p, .entry-content p, .home-services-intro p, .about-content p, .people-intro-text p, .services-bottom-text p, .sustainability-content-grid p { text-align: justify; text-justify: inter-word; }
.cta-box p, .footer-description p, .footer-contact-data p, .footer-bottom span { text-align: left; }

/* Home: blocco Le Nostre Attività a tutta larghezza desktop */
@media (min-width: 901px) {
  .home-services-fullbleed { overflow:hidden; }
  .home-services-grid-fullbleed {
    width: calc(100vw - var(--idf-side-offset)) !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw + var(--idf-side-offset)) !important;
    margin-right: calc(50% - 50vw) !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  .home-services-grid-fullbleed .home-services-intro {
    padding-left: calc((100vw - var(--idf-side-offset) - 1120px) / 2 + 40px) !important;
    border-radius: 0 24px 24px 0 !important;
  }
  .home-services-grid-fullbleed .home-services-photo {
    border-radius: 24px 0 0 24px !important;
  }
  .home-services-grid-fullbleed .home-service-card:first-of-type {
    margin-left: calc((100vw - var(--idf-side-offset) - 1120px) / 2 + 0px) !important;
  }
}
@media (min-width: 901px) and (max-width: 1240px) {
  .home-services-grid-fullbleed .home-services-intro { padding-left:40px !important; }
  .home-services-grid-fullbleed .home-service-card:first-of-type { margin-left:0 !important; }
}

/* CTA home: più spazio sopra */
.cta-section-spaced { padding-top: clamp(36px, 5vw, 82px) !important; }

/* Cosa facciamo: foto sotto al testo e larga 100% */
.services-page-redesign { padding-bottom: 30px !important; }
.services-page-copy .home-services-intro,
.services-page-intro-text {
  width:100%;
  max-width: 100%;
  border-radius: 28px;
  min-height: auto !important;
}
.services-full-width-photo {
  width:100vw;
  margin: clamp(28px, 4vw, 54px) calc(50% - 50vw) 0;
  height: clamp(280px, 44vw, 560px);
  overflow:hidden;
  background:#f2f5f8;
  box-shadow:0 24px 70px rgba(0,31,63,.10);
}
@media (min-width: 901px) {
  .site-main .services-full-width-photo {
    width: calc(100vw - var(--idf-side-offset));
    margin-left: calc(50% - 50vw + var(--idf-side-offset));
    margin-right: calc(50% - 50vw);
  }
}
.services-full-width-photo img { width:100%; height:100%; object-fit:cover; }
.services-page-cards { margin-top: clamp(28px, 4vw, 50px); }

.services-bottom-redesign { padding-top: clamp(60px, 9vw, 130px) !important; }
.services-bottom-grid { display:grid; grid-template-columns:minmax(0, .92fr) minmax(360px, 1.08fr); gap:clamp(30px, 6vw, 86px); align-items:center; }
.services-bottom-text h2 { font-size:clamp(30px, 3.8vw, 58px); line-height:1.02; letter-spacing:-.05em; margin:0 0 24px; }
.services-bottom-text p { color:var(--idf-muted); font-size:clamp(16px, 1.2vw, 19px); }
.services-vertical-image-slider { height:clamp(420px, 52vw, 680px); overflow:hidden; border-radius:32px; box-shadow:0 24px 70px rgba(0,31,63,.14); background:#eef2f5; }
.services-vertical-track { display:flex; flex-direction:column; animation:idfVerticalMarquee 20s linear infinite; }
.services-vertical-image-slider:hover .services-vertical-track { animation-play-state:paused; }
.services-vertical-track figure { margin:0; height:clamp(280px, 34vw, 430px); flex:0 0 auto; overflow:hidden; }
.services-vertical-track img { width:100%; height:100%; object-fit:cover; }

/* Persone: video a schermo intero */
.people-intro-media-section .container { width:100% !important; max-width:none !important; }
.people-intro-video { width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); border-radius:0 !important; overflow:hidden; }
@media (min-width: 901px) {
  .site-main .people-intro-video { width:calc(100vw - var(--idf-side-offset)); margin-left:calc(50% - 50vw + var(--idf-side-offset)); margin-right:calc(50% - 50vw); }
}
.people-intro-video video { width:100%; min-height:clamp(340px, 45vw, 620px); object-fit:cover; display:block; }
.people-org-chart .person-card { font-size:16px !important; }
.people-org-chart .person-bio, .people-org-chart .person-role { font-size:clamp(15px, 1vw, 17px) !important; line-height:1.45 !important; }

/* Territorio: bordo alle bandierine/marker */
.territory-card, .territorio-card, .flag-card, .bandierina, .map-flag, .territory-marker, .territorio-marker,
[class*="territorio"] .info-card, [class*="territory"] .info-card {
  border:1px solid rgba(0,31,63,.18) !important;
  box-shadow:0 14px 34px rgba(0,31,63,.08) !important;
}

/* Footer: interlinea più compatta, loghi e linea nera più grandi */
.site-footer { padding-top:52px !important; }
.footer-description p, .footer-contact-data p, .footer-company-data p { line-height:1.18 !important; margin-bottom:5px !important; }
.footer-logos-right .footer-logo img,
.footer-logos-right .footer-logo .primary-brand-img,
.footer-logos-right .footer-logo .secondary-brand-img,
.footer-logo img, .footer-logo .primary-brand-img, .footer-logo .secondary-brand-img { max-height:64px !important; }
.footer-logos-right .footer-logo-idf img, .footer-logos-right .footer-logo-idf .primary-brand-img { max-height:58px !important; }
.footer-bottom { background:#050505 !important; min-height:58px !important; padding-top:0 !important; padding-bottom:0 !important; display:flex !important; align-items:center !important; }
.footer-bottom-inner { min-height:58px !important; align-items:center !important; }

/* Togliere pallino/hamburger menu da desktop */
@media (min-width: 901px) { .menu-toggle { display:none !important; } }

/* Sostenibilità */
.container-full { width:100%; max-width:none; margin:0; }
.sustainability-video-section { padding-top:0 !important; padding-bottom:0 !important; }
.sustainability-video { width:100%; height:clamp(340px, 46vw, 650px); object-fit:cover; display:block; }
.sustainability-content-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px; }
.sustainability-content-grid article { padding:clamp(28px, 4vw, 46px); border-radius:28px; background:#fff; box-shadow:var(--idf-shadow); border:1px solid rgba(0,31,63,.08); }
.sustainability-content-grid h2 { font-size:clamp(24px, 2.2vw, 36px); line-height:1.08; letter-spacing:-.04em; }

@media (max-width: 900px) {
  p, .entry-content p, .home-services-intro p, .about-content p, .people-intro-text p, .services-bottom-text p { text-align:left; }
  .services-bottom-grid, .sustainability-content-grid { grid-template-columns:1fr; }
  .services-vertical-image-slider { height:440px; }
  .home-services-grid-fullbleed { width:min(100% - 28px, 1120px) !important; }
}

/* ==============================
   IDF update finale: Cosa facciamo + slider verticale menu
   ============================== */
.services-page-section .services-page-copy {
  width:min(1120px, calc(100% - 40px)) !important;
  max-width:1120px !important;
}
.services-page-section .services-page-intro-text {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 auto !important;
}
.services-page-section .services-full-width-photo {
  display:block !important;
  clear:both !important;
  width:100vw !important;
  max-width:none !important;
  margin-top:clamp(28px, 4vw, 56px) !important;
  margin-bottom:0 !important;
}
@media (min-width:901px) {
  .site-main .services-page-section .services-full-width-photo {
    width:calc(100vw - var(--idf-side-offset, 92px)) !important;
    margin-left:calc(50% - 50vw + var(--idf-side-offset, 92px)) !important;
    margin-right:calc(50% - 50vw) !important;
  }
}
.services-bottom-grid {
  grid-template-columns:minmax(0, .95fr) minmax(360px, 1.05fr) !important;
  align-items:center !important;
}
.services-menu-vertical-slider {
  position:relative;
  min-height:clamp(430px, 45vw, 620px);
  border-radius:34px;
  overflow:hidden;
  background:linear-gradient(155deg, #f6fbff 0%, #eaf3f8 100%);
  border:1px solid rgba(0,31,63,.09);
  box-shadow:0 26px 76px rgba(0,31,63,.13);
}
.services-menu-vertical-window {
  height:100%;
  min-height:inherit;
  overflow:hidden;
}
.services-menu-vertical-track {
  height:100%;
  transition:transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.services-menu-vertical-card {
  min-height:clamp(430px, 45vw, 620px);
  padding:clamp(34px, 5vw, 72px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#003b78 !important;
  background:
    radial-gradient(circle at 12% 16%, rgba(22,166,217,.14), transparent 30%),
    linear-gradient(155deg, rgba(255,255,255,.96), rgba(238,247,252,.92));
}
.services-menu-vertical-icon {
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:22px;
  margin-bottom:30px;
  background:#fff;
  border:1px solid rgba(0,59,120,.12);
  box-shadow:0 14px 36px rgba(0,31,63,.08);
  font-size:34px;
  color:#f47b20;
}
.services-menu-vertical-title {
  display:block;
  font-size:clamp(38px, 5vw, 76px);
  line-height:1;
  letter-spacing:-.055em;
  font-weight:500;
  margin-bottom:24px;
}
.services-menu-vertical-text {
  display:block;
  max-width:620px;
  font-size:clamp(17px, 1.35vw, 22px);
  line-height:1.5;
  color:#536171;
  text-align:justify;
}
.services-menu-vertical-cta {
  display:inline-flex;
  align-self:flex-start;
  margin-top:34px;
  min-height:46px;
  padding:0 22px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#f47b20;
  color:#fff;
  font-weight:800;
  box-shadow:0 12px 28px rgba(244,123,32,.23);
}
.services-menu-vertical-controls {
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.services-menu-vertical-controls span {
  width:10px;
  height:42px;
  border-radius:999px;
  background:rgba(0,59,120,.18);
}
.services-menu-vertical-controls span.is-active { background:#f47b20; }
@media (max-width:900px) {
  .services-bottom-grid { grid-template-columns:1fr !important; }
  .services-menu-vertical-slider,
  .services-menu-vertical-card { min-height:420px; }
  .services-menu-vertical-card { padding:32px 26px; }
  .services-menu-vertical-controls { right:14px; }
}

/* =========================================================
   V51 - Correzioni Cosa facciamo / Sostenibilità / Persone
   ========================================================= */
@media (min-width: 901px) {
  .site-main .services-page-section .services-full-width-photo,
  .site-main .services-full-width-photo,
  .site-main .people-intro-video {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}

.services-full-width-photo-overlayed {
  position: relative !important;
  min-height: clamp(560px, 54vw, 760px) !important;
  height: auto !important;
  display: flex !important;
  align-items: stretch !important;
}
.services-full-width-photo-overlayed > img {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
}
.services-full-width-photo-overlayed::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 20, 38, .78) 0%, rgba(0, 20, 38, .48) 46%, rgba(0, 20, 38, .20) 100%);
}
.services-photo-overlay-panel {
  position: relative !important;
  z-index: 2 !important;
  width: min(1120px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  padding: clamp(46px, 7vw, 94px) 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr) !important;
  gap: clamp(28px, 5vw, 72px) !important;
  align-items: center !important;
  color: #fff !important;
}
.services-photo-overlay-copy {
  max-width: 680px !important;
}
.services-photo-overlay-copy h2 {
  margin: 0 0 24px !important;
  color: #fff !important;
  font-size: clamp(34px, 5.2vw, 76px) !important;
  line-height: .98 !important;
  letter-spacing: -.06em !important;
}
.services-photo-overlay-copy p {
  color: rgba(255,255,255,.86) !important;
  font-size: clamp(16px, 1.3vw, 20px) !important;
  line-height: 1.7 !important;
  text-align: left !important;
}
.services-photo-overlay-panel .services-menu-vertical-slider {
  width: 100% !important;
  min-height: 270px !important;
  height: 270px !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 28px 80px rgba(0,0,0,.20) !important;
  overflow: hidden !important;
}
.services-photo-overlay-panel .services-menu-vertical-window {
  height: 100% !important;
  border-radius: inherit !important;
}
.services-photo-overlay-panel .services-menu-vertical-track {
  transition: transform .55s cubic-bezier(.22,.61,.36,1) !important;
}
.services-photo-overlay-panel .services-menu-vertical-card {
  min-height: 270px !important;
  height: 270px !important;
  padding: 34px 34px 38px !important;
  background: transparent !important;
  color: #101010 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.services-photo-overlay-panel .services-menu-vertical-icon {
  color: #f47b20 !important;
  font-size: 28px !important;
}
.services-photo-overlay-panel .services-menu-vertical-title {
  font-size: clamp(24px, 2.3vw, 34px) !important;
  line-height: 1.05 !important;
  color: #101010 !important;
}
.services-photo-overlay-panel .services-menu-vertical-text {
  color: #5d6675 !important;
  font-size: 15px !important;
}
.services-photo-overlay-panel .services-menu-vertical-controls {
  right: 18px !important;
}

.services-page-cards {
  align-items: stretch !important;
}
.services-page-cards .home-service-card,
.home-services-grid .home-service-card {
  min-height: clamp(260px, 23vw, 380px) !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  border-radius: 28px !important;
}
.services-page-cards .home-service-card h3 {
  min-height: 2.15em !important;
}
.services-page-cards .home-service-card p {
  margin-top: 18px !important;
}

.services-work-detail-section {
  background: #f4f6f8 !important;
  padding-top: clamp(70px, 8vw, 120px) !important;
  padding-bottom: clamp(70px, 8vw, 120px) !important;
}
.services-work-heading {
  max-width: 820px !important;
  margin-bottom: clamp(28px, 4vw, 52px) !important;
}
.services-work-heading h2 {
  font-size: clamp(34px, 4.8vw, 68px) !important;
  line-height: .98 !important;
  letter-spacing: -.06em !important;
  margin: 0 !important;
}
.services-work-detail-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.services-work-detail-card {
  min-height: 100% !important;
  padding: clamp(28px, 3.8vw, 48px) !important;
  border-radius: 30px !important;
  background: #fff !important;
  border: 1px solid rgba(0,31,63,.08) !important;
  box-shadow: 0 22px 60px rgba(0,31,63,.08) !important;
}
.services-work-detail-card h3 {
  margin: 0 0 18px !important;
  font-size: clamp(25px, 2.4vw, 38px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.04em !important;
}
.services-work-detail-card p {
  color: var(--idf-muted) !important;
  font-size: 16px !important;
  line-height: 1.72 !important;
}

.sustainability-video-section .container-full,
.sustainability-video {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.sustainability-main-copy {
  max-width: 980px !important;
  margin-bottom: clamp(28px, 4vw, 54px) !important;
}
.sustainability-main-copy h2 {
  font-size: clamp(34px, 4.8vw, 68px) !important;
  line-height: .98 !important;
  letter-spacing: -.06em !important;
  margin: 0 0 22px !important;
}
.sustainability-content-grid article {
  min-height: 100% !important;
}
.sustainability-content-grid ul {
  margin: 16px 0 0 !important;
  padding-left: 1.15em !important;
  color: var(--idf-muted) !important;
  line-height: 1.65 !important;
}
.sustainability-content-grid li + li {
  margin-top: 8px !important;
}

.cta-section,
.cta-section-spaced {
  padding-bottom: clamp(76px, 8vw, 132px) !important;
}
.cta-box {
  padding-top: clamp(46px, 5vw, 76px) !important;
  padding-bottom: clamp(46px, 5vw, 76px) !important;
}

.people-org-row[data-count="5"] {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.people-org-row[data-count="6"],
.people-org-row[data-count="7"],
.people-org-row[data-count="8"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 900px) {
  .services-full-width-photo-overlayed {
    min-height: auto !important;
  }
  .services-full-width-photo-overlayed > img {
    position: absolute !important;
    min-height: 100% !important;
  }
  .services-photo-overlay-panel {
    grid-template-columns: 1fr !important;
    padding: 42px 0 !important;
  }
  .services-photo-overlay-copy h2 {
    font-size: clamp(34px, 12vw, 52px) !important;
  }
  .services-work-detail-grid,
  .sustainability-content-grid {
    grid-template-columns: 1fr !important;
  }
  .people-org-row[data-count="5"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  .services-photo-overlay-panel .services-menu-vertical-slider,
  .services-photo-overlay-panel .services-menu-vertical-card {
    min-height: 320px !important;
    height: 320px !important;
  }
  .people-org-row[data-count="5"] {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   V47 - Correzioni richieste: home, slider touch/wheel, categorie
   ========================================================= */
.home-services-fullbleed {
  overflow: hidden !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.home-services-top-fullbleed {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 0 !important;
  align-items: stretch !important;
}
.home-services-top-fullbleed .home-services-intro,
.home-services-top-fullbleed .home-services-photo {
  grid-column: auto !important;
  min-height: clamp(340px, 32vw, 520px) !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
.home-services-top-fullbleed .home-services-intro {
  padding-left: max(40px, calc((100vw - 1120px) / 2)) !important;
  padding-right: clamp(36px, 5vw, 72px) !important;
}
.home-services-top-fullbleed .home-services-photo img {
  display: block !important;
}
.home-services-cards-row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  justify-content: center !important;
  margin-top: clamp(28px, 4vw, 54px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.home-services-cards-row .home-service-card {
  width: 100% !important;
  min-height: clamp(280px, 24vw, 360px) !important;
  margin-left: 0 !important;
}
.home-services-grid-fullbleed .home-service-card:first-of-type {
  margin-left: 0 !important;
}
@media (max-width: 900px) {
  .home-services-top-fullbleed {
    grid-template-columns: 1fr !important;
  }
  .home-services-top-fullbleed .home-services-intro {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .home-services-cards-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 620px) {
  .home-services-cards-row {
    grid-template-columns: 1fr !important;
  }
}

/* Slider Cosa facciamo: una slide per volta, mouse wheel e swipe/touch */
.services-menu-vertical-slider {
  overscroll-behavior: contain !important;
  touch-action: none !important;
}
.services-menu-vertical-window {
  overflow: hidden !important;
}
.services-menu-vertical-track {
  will-change: transform !important;
}
.services-menu-vertical-card {
  flex: 0 0 auto !important;
}
.services-photo-overlay-panel .services-menu-vertical-slider,
.services-photo-overlay-panel .services-menu-vertical-card {
  min-height: 288px !important;
  height: 288px !important;
}
.services-photo-overlay-panel .services-menu-vertical-card {
  justify-content: center !important;
}

/* Le descrizioni lunghe non stanno più in Cosa facciamo: sono nella pagina Categorie lavori */
.categorie-lavori-section {
  background: #f4f6f8 !important;
  padding-top: clamp(70px, 8vw, 120px) !important;
  padding-bottom: clamp(80px, 9vw, 140px) !important;
}
.categorie-lavori-hero h1 {
  max-width: 980px !important;
}
.categorie-lavori-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(22px, 3vw, 32px) !important;
}
.categorie-lavori-card {
  min-height: 100% !important;
}
@media (max-width: 900px) {
  .categorie-lavori-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Performance immagini: evita ricalcoli/attese visive sui blocchi grandi */
.home-services-photo,
.services-full-width-photo,
.service-bg-card {
  background-color: #edf3f7 !important;
}


/* =========================================================
   V48 - Correzioni finali: persone in righe separate, reveal stabile, performance
   ========================================================= */
/* Evita sezioni bianche/scomparse dopo le animazioni: contenuto sempre visibile. */
.idf-reveal-ready .section,
.idf-reveal-ready .page-hero,
.idf-reveal-ready .cta-section,
.idf-reveal-ready .info-card,
.idf-reveal-ready .person-card,
.idf-reveal-ready .post-card,
.idf-reveal-ready .project-card,
.idf-reveal-ready .home-services-intro,
.idf-reveal-ready .home-services-photo,
.idf-reveal-ready .services-full-width-photo,
.idf-reveal-ready .services-bottom-text,
.idf-reveal-ready .services-vertical-image-slider,
.idf-reveal-ready .sustainability-content-grid > article,
.idf-reveal-ready .services-work-detail-grid,
.idf-reveal-ready .categorie-lavori-grid {
  opacity: 1 !important;
  transform: none !important;
}

/* Organigramma: le nuove persone restano sotto, con testi centrati. */
.people-org-row {
  justify-content: center !important;
  justify-items: center !important;
  align-items: stretch !important;
  width: 100% !important;
}
.people-org-row[data-count="2"] {
  grid-template-columns: repeat(2, minmax(240px, 280px)) !important;
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.people-org-row[data-count="4"] {
  grid-template-columns: repeat(4, minmax(220px, 1fr)) !important;
}
.people-org-chart .person-card {
  width: 100% !important;
  min-height: 230px !important;
  text-align: center !important;
}
.people-org-chart .person-card h3,
.people-org-chart .person-card h3 a,
.people-org-chart .person-role {
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
.people-org-chart .person-role {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Slider Cosa facciamo: una card piena per volta e interazione rotellina/dito più fluida. */
.services-menu-vertical-window,
.services-menu-vertical-track,
.services-menu-vertical-card {
  height: 100% !important;
}
.services-menu-vertical-card {
  min-height: 100% !important;
}
.services-menu-vertical-slider:hover {
  cursor: grab;
}
.services-menu-vertical-slider:active {
  cursor: grabbing;
}

@media (max-width: 900px) {
  .people-org-row[data-count="2"],
  .people-org-row[data-count="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 620px !important;
  }
}
@media (max-width: 620px) {
  .people-org-row[data-count="2"],
  .people-org-row[data-count="4"] {
    grid-template-columns: 1fr !important;
    max-width: 360px !important;
  }
}


/* =========================================================
   V50 - Fix slider Cosa facciamo + allineamento Sostenibilità
   ========================================================= */
.services-photo-overlay-panel .services-menu-vertical-slider {
  height: 302px !important;
  min-height: 302px !important;
  max-height: 302px !important;
}
.services-photo-overlay-panel .services-menu-vertical-window {
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.services-photo-overlay-panel .services-menu-vertical-track {
  height: auto !important;
  display: block !important;
}
.services-photo-overlay-panel .services-menu-vertical-card {
  height: 302px !important;
  min-height: 302px !important;
  max-height: 302px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 42px 62px 42px 46px !important;
  box-sizing: border-box !important;
}
.services-photo-overlay-panel .services-menu-vertical-icon {
  width: 72px !important;
  height: 38px !important;
  min-height: 38px !important;
  border-radius: 999px !important;
  margin: 0 0 22px !important;
  font-size: 24px !important;
}
.services-photo-overlay-panel .services-menu-vertical-title {
  font-size: clamp(28px, 2.5vw, 42px) !important;
  line-height: 1.05 !important;
  margin: 0 0 20px !important;
  color: #0b0f14 !important;
}
.services-photo-overlay-panel .services-menu-vertical-text {
  font-size: clamp(15px, 1.05vw, 18px) !important;
  line-height: 1.45 !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #526070 !important;
}
.services-photo-overlay-panel .services-menu-vertical-cta {
  margin-top: 22px !important;
}
.services-menu-vertical-controls {
  z-index: 4 !important;
}
.services-menu-vertical-controls span {
  height: 38px !important;
}

@media (min-width: 901px) {
  .sustainability-hero > .container {
    width: min(1120px, calc(100vw - 220px)) !important;
    margin-left: max(150px, calc((100vw - 1240px) / 2)) !important;
    margin-right: auto !important;
  }
}
@media (max-width: 900px) {
  .sustainability-hero > .container {
    width: min(100% - 28px, 1120px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .services-photo-overlay-panel .services-menu-vertical-slider,
  .services-photo-overlay-panel .services-menu-vertical-card {
    height: 330px !important;
    min-height: 330px !important;
    max-height: 330px !important;
  }
  .services-photo-overlay-panel .services-menu-vertical-card {
    padding: 34px 48px 34px 28px !important;
  }
}


/* =========================================================
   V51 - Spazi slider, slider Cosa facciamo stabile, animazioni extra
   ========================================================= */
/* Sostenibilità: testo largo come i contenitori sotto. */
.container.sustainability-main-copy,
.sustainability-main-copy {
  max-width: 1120px !important;
}

/* Home: nessuno spazio bianco sopra/sotto lo slider video. */
.home-video-section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 0 !important;
  background: #111 !important;
}
.home-video-section > .container,
.home-video-section .idf-video-slider,
.home-video-section .idf-video-slider-track,
.home-video-section .idf-video-slide,
.home-video-section video {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.home-video-section + .home-services-section {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.home-video-section .idf-video-slider {
  box-shadow: none !important;
}

/* Persone: elimina lo spazio bianco tra intro e video/slider. */
.post-type-archive-persona .page-hero.compact,
.archive.post-type-archive-persona .page-hero.compact {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.post-type-archive-persona .people-intro-media-section,
.archive.post-type-archive-persona .people-intro-media-section {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
.post-type-archive-persona .people-intro-media-section .container,
.archive.post-type-archive-persona .people-intro-media-section .container {
  margin-top: 0 !important;
}

/* Slider Cosa facciamo: niente translate verticale calcolato, una card assoluta alla volta. */
.services-photo-overlay-panel .services-menu-vertical-window,
.services-photo-overlay-panel .services-menu-vertical-track {
  position: relative !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  transform: none !important;
}
.services-photo-overlay-panel .services-menu-vertical-track {
  display: block !important;
  transition: none !important;
  will-change: auto !important;
}
.services-photo-overlay-panel .services-menu-vertical-card {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(24px) scale(.985) !important;
  transition: opacity .35s ease, transform .35s ease, visibility .35s ease !important;
}
.services-photo-overlay-panel .services-menu-vertical-card.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
}
.services-photo-overlay-panel .services-menu-vertical-slider {
  touch-action: none !important;
  overscroll-behavior: contain !important;
}
.services-photo-overlay-panel .services-menu-vertical-slider:hover {
  cursor: grab !important;
}
.services-photo-overlay-panel .services-menu-vertical-slider:active {
  cursor: grabbing !important;
}

/* Animazioni extra: sezioni e contenitori entrano morbidi, senza lasciare blocchi vuoti. */
@keyframes idfFadeSlideUpSoft {
  0% { opacity: 0; transform: translateY(28px) scale(.985); filter: blur(4px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes idfImageBreath {
  0% { transform: scale(1); }
  50% { transform: scale(1.035); }
  100% { transform: scale(1); }
}
@keyframes idfSoftGlow {
  0%, 100% { box-shadow: 0 18px 50px rgba(0,31,63,.08); }
  50% { box-shadow: 0 26px 70px rgba(0,31,63,.14); }
}
.section > .container,
.section > .container-full,
.page-hero > .container,
.cta-box,
.info-card,
.person-card,
.project-card,
.post-card,
.sustainability-content-grid > article,
.services-work-detail-card,
.categorie-lavori-card,
.home-services-top-fullbleed > *,
.services-photo-overlay-panel > *,
.footer-main-layout > * {
  animation: idfFadeSlideUpSoft .82s cubic-bezier(.22,.61,.36,1) both;
}
.info-card:nth-child(2),
.person-card:nth-child(2),
.project-card:nth-child(2),
.post-card:nth-child(2),
.sustainability-content-grid > article:nth-child(2) { animation-delay: .07s; }
.info-card:nth-child(3),
.person-card:nth-child(3),
.project-card:nth-child(3),
.post-card:nth-child(3),
.sustainability-content-grid > article:nth-child(3) { animation-delay: .14s; }
.info-card:nth-child(4),
.person-card:nth-child(4),
.project-card:nth-child(4),
.post-card:nth-child(4),
.sustainability-content-grid > article:nth-child(4) { animation-delay: .21s; }
.home-opening,
.services-full-width-photo,
.home-services-photo,
.about-photo-slider,
.people-intro-video,
.sustainability-video {
  animation: idfFadeSlideUpSoft .9s cubic-bezier(.22,.61,.36,1) both;
}
.home-opening:hover,
.services-full-width-photo:hover img,
.home-services-photo:hover img,
.about-photo-slider:hover img,
.people-intro-video:hover video,
.sustainability-video:hover {
  animation: idfImageBreath 9s ease-in-out infinite;
}
.info-card,
.person-card,
.project-card,
.post-card,
.sustainability-content-grid > article,
.services-work-detail-card,
.categorie-lavori-card,
.cta-box,
.services-menu-vertical-card {
  transition: transform .38s ease, box-shadow .38s ease, border-color .38s ease, background .38s ease !important;
}
.info-card:hover,
.person-card:hover,
.project-card:hover,
.post-card:hover,
.sustainability-content-grid > article:hover,
.services-work-detail-card:hover,
.categorie-lavori-card:hover,
.cta-box:hover,
.services-menu-vertical-card:hover {
  transform: translateY(-8px) !important;
  animation: idfSoftGlow 2.8s ease-in-out infinite;
}
.btn,
.text-link,
.services-menu-vertical-cta,
.idf-video-slider-arrow,
.about-slider-arrow {
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease !important;
}
.btn:hover,
.text-link:hover,
.services-menu-vertical-cta:hover,
.idf-video-slider-arrow:hover,
.about-slider-arrow:hover {
  transform: translateY(-2px) scale(1.025) !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}


/* =========================================================
   V52 - Correzioni layout persone/home e animazioni on-scroll
   ========================================================= */
/* Persone: più respiro nel blocco grigio sotto il testo, senza fascia bianca prima del video. */
.post-type-archive-persona .page-hero.compact,
.archive.post-type-archive-persona .page-hero.compact {
  padding-bottom: clamp(34px, 5vw, 76px) !important;
  margin-bottom: 0 !important;
  background: var(--idf-light) !important;
}
.post-type-archive-persona .page-hero.compact .page-intro,
.archive.post-type-archive-persona .page-hero.compact .page-intro {
  margin-bottom: 0 !important;
}
.post-type-archive-persona .people-intro-media-section,
.archive.post-type-archive-persona .people-intro-media-section {
  padding-top: 0 !important;
  margin-top: 0 !important;
  background: transparent !important;
}
.post-type-archive-persona .people-intro-media-section .container,
.archive.post-type-archive-persona .people-intro-media-section .container {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
.post-type-archive-persona .people-intro-video,
.archive.post-type-archive-persona .people-intro-video {
  margin-top: 0 !important;
  display: block !important;
}

/* Home: nessuno spazio bianco sopra/sotto lo slider video. */
.home-video-section,
.home-video-section.section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background: #111 !important;
}
.home-video-section > .container,
.home-video-section .idf-video-slider,
.home-video-section .idf-video-slider-track,
.home-video-section .idf-video-slide,
.home-video-section video {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: block !important;
}
.home-video-section + *,
.home-video-section + .section,
.home-video-section + .home-services-section {
  margin-top: 0 !important;
}
.home-intro-section + .home-video-section,
.section + .home-video-section {
  margin-top: 0 !important;
}

/* Sostenibilità: larghezza richiesta. */
.container.sustainability-main-copy,
.sustainability-main-copy {
  max-width: 1120px !important;
}

/* Animazioni durante lo scroll: entrata visibile quando il blocco entra nel viewport. */
.idf-scroll-reveal-ready .idf-scroll-reveal {
  opacity: 0 !important;
  transform: translate3d(0, 34px, 0) scale(.985) !important;
  filter: blur(5px) !important;
  transition: opacity .82s cubic-bezier(.2,.75,.2,1), transform .82s cubic-bezier(.2,.75,.2,1), filter .82s ease !important;
  will-change: opacity, transform, filter !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal.is-revealed {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  filter: blur(0) !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="left"] {
  transform: translate3d(-42px, 18px, 0) scale(.985) !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="right"] {
  transform: translate3d(42px, 18px, 0) scale(.985) !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="zoom"] {
  transform: translate3d(0, 22px, 0) scale(.94) !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal.is-revealed[data-reveal] {
  transform: translate3d(0, 0, 0) scale(1) !important;
}
.idf-scroll-reveal-ready .idf-scroll-reveal:nth-child(2) { transition-delay: .06s !important; }
.idf-scroll-reveal-ready .idf-scroll-reveal:nth-child(3) { transition-delay: .12s !important; }
.idf-scroll-reveal-ready .idf-scroll-reveal:nth-child(4) { transition-delay: .18s !important; }
.idf-scroll-reveal-ready .idf-scroll-reveal:nth-child(5) { transition-delay: .24s !important; }

@media (prefers-reduced-motion: reduce) {
  .idf-scroll-reveal-ready .idf-scroll-reveal,
  .idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}


/* =========================================================
   V53 - Spazi Chi siamo + animazioni reali durante lo scroll
   ========================================================= */
.chi-full-slider-section {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.chi-full-slider-section + .chi-work-section,
.chi-work-section {
  margin-top: 0 !important;
  padding-top: clamp(34px, 4.2vw, 58px) !important;
}
.chi-work-cards {
  margin-top: 0 !important;
}
.chi-full-width-slider,
.about-photo-slider.chi-full-width-slider {
  margin-bottom: 0 !important;
}

/* annulla le vecchie regole che tenevano tutto visibile senza animazione */
html.idf-scroll-reveal-ready .idf-scroll-reveal,
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53 {
  opacity: 0 !important;
  transform: translate3d(0, 32px, 0) scale(.985) !important;
  filter: blur(5px) !important;
  transition:
    opacity .78s ease,
    transform .78s cubic-bezier(.22,.61,.36,1),
    filter .78s ease !important;
  will-change: opacity, transform, filter;
}
html.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="left"],
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53[data-reveal="left"] {
  transform: translate3d(-34px, 22px, 0) scale(.985) !important;
}
html.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="right"],
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53[data-reveal="right"] {
  transform: translate3d(34px, 22px, 0) scale(.985) !important;
}
html.idf-scroll-reveal-ready .idf-scroll-reveal[data-reveal="zoom"],
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53[data-reveal="zoom"] {
  transform: translate3d(0, 18px, 0) scale(.94) !important;
}
html.idf-scroll-reveal-ready .idf-scroll-reveal.is-revealed,
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53.is-revealed {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  filter: blur(0) !important;
}

/* ritardi leggeri per testi e card, visibili mentre si scorre */
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53:nth-child(2n) { transition-delay: .06s !important; }
html.idf-scroll-reveal-ready .idf-scroll-reveal-v53:nth-child(3n) { transition-delay: .12s !important; }

@media (prefers-reduced-motion: reduce) {
  html.idf-scroll-reveal-ready .idf-scroll-reveal,
  html.idf-scroll-reveal-ready .idf-scroll-reveal-v53 {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* v54: testi ambiti leggibili senza spazi forzati */
.home-service-card.service-bg-card p,
.home-services-grid .home-service-card.service-bg-card p,
.services-page-cards .home-service-card.service-bg-card p {
  text-align: left !important;
  text-justify: auto !important;
  word-spacing: normal !important;
}


/* v55: allineamento verticale uniforme per le 4 card ambiti in home */
.home-services-cards-row .home-service-card.service-bg-card,
.home-services-grid .home-service-card.service-bg-card,
.services-page-cards .home-service-card.service-bg-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  padding-top: clamp(92px, 8vw, 118px) !important;
  padding-bottom: clamp(28px, 3vw, 44px) !important;
}

.home-services-cards-row .home-service-card.service-bg-card h3,
.home-services-grid .home-service-card.service-bg-card h3,
.services-page-cards .home-service-card.service-bg-card h3 {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  min-height: 72px !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  line-height: 1.08 !important;
  width: 100% !important;
}

.home-services-cards-row .home-service-card.service-bg-card h3::before,
.home-services-grid .home-service-card.service-bg-card h3::before,
.services-page-cards .home-service-card.service-bg-card h3::before {
  content: '' !important;
  display: block !important;
  width: 44px !important;
  height: 5px !important;
  min-height: 5px !important;
  margin: 0 0 16px 0 !important;
  flex: 0 0 auto !important;
}

.home-services-cards-row .home-service-card.service-bg-card p,
.home-services-grid .home-service-card.service-bg-card p,
.services-page-cards .home-service-card.service-bg-card p {
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  text-justify: auto !important;
  line-height: 1.45 !important;
  max-width: 100% !important;
}

@media (max-width: 900px) {
  .home-services-cards-row .home-service-card.service-bg-card,
  .home-services-grid .home-service-card.service-bg-card,
  .services-page-cards .home-service-card.service-bg-card {
    padding-top: 58px !important;
  }
  .home-services-cards-row .home-service-card.service-bg-card h3,
  .home-services-grid .home-service-card.service-bg-card h3,
  .services-page-cards .home-service-card.service-bg-card h3 {
    min-height: 0 !important;
  }
}


/* V56 - Footer: interlinea dati contatto uguale al testo descrittivo */
.footer-contact-data p {
  margin: 0 !important;
  line-height: 1.5 !important;
}
.footer-contact-data p + p {
  margin-top: 0 !important;
}

/* =========================================================
   V57 - Richieste footer/header/slider/sostenibilità
   ========================================================= */
.utility-bar { display: none !important; }
.site-header .primary-bar { border-bottom: 1px solid rgba(17,17,17,.12) !important; }
.header-inner { min-height: 78px !important; gap: clamp(16px, 2.4vw, 28px) !important; }
.header-contact-actions {
  margin-left: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: 4px !important;
  font-size: 13px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}
.header-contact-link {
  color: #111111 !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
}
.header-contact-link:hover { color: var(--idf-orange) !important; }
@media (max-width: 1080px) {
  .header-contact-actions { display: none !important; }
}
@media (min-width: 901px) {
  .quick-menu { padding-top: 96px !important; }
}

.footer-main-layout.footer-main-layout-v570 {
  grid-template-columns: minmax(160px, .75fr) minmax(330px, 1.05fr) minmax(360px, 1.35fr) !important;
  align-items: start !important;
  gap: clamp(28px, 4vw, 62px) !important;
}
.footer-logos-left {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 18px !important;
}
.footer-logos-left .footer-logo,
.footer-logos-left .footer-logo a,
.footer-logos-left .footer-logo .custom-logo-link,
.footer-logos-left .footer-logo .default-brand-logo,
.footer-logos-left .footer-logo .secondary-brand {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
}
.footer-logos-left img,
.footer-logos-left .primary-brand-img,
.footer-logos-left .secondary-brand-img {
  width: auto !important;
  max-width: 180px !important;
  max-height: 58px !important;
  object-fit: contain !important;
}
.footer-center-copy { text-align: left !important; color: #111 !important; }
.footer-company-description {
  margin: 0 0 18px !important;
  font-size: clamp(14px, 1.15vw, 17px) !important;
  line-height: 1.55 !important;
  color: #111 !important;
  max-width: 560px !important;
}
.footer-center-copy .footer-contact-data { text-align: left !important; }
.footer-center-copy .footer-contact-data p {
  margin: 6px 0 !important;
  font-size: clamp(12px, .95vw, 14px) !important;
  line-height: 1.35 !important;
  color: #111 !important;
}
.footer-mog-copy p {
  margin: 0 !important;
  font-size: clamp(11px, .86vw, 13px) !important;
  line-height: 1.48 !important;
  color: #111 !important;
  text-align: justify !important;
}
@media (max-width: 1000px) {
  .footer-main-layout.footer-main-layout-v570 { grid-template-columns: 1fr !important; text-align: left !important; }
  .footer-logos-left { align-items: center !important; }
  .footer-center-copy,
  .footer-center-copy .footer-contact-data { text-align: center !important; }
}

.chi-about-intro p,
.chi-about-intro .lead {
  font-size: clamp(14px, 1.22vw, 17px) !important;
  line-height: 1.58 !important;
  letter-spacing: -0.01em !important;
}

.idf-video-slider-track,
.idf-video-slide { min-height: clamp(220px, 38vw, 460px) !important; }
.idf-video-slide video { min-height: clamp(220px, 38vw, 460px) !important; height: clamp(220px, 38vw, 460px) !important; }
.people-intro-video video { min-height: clamp(220px, 34vw, 420px) !important; height: clamp(220px, 34vw, 420px) !important; }
.sustainability-video { height: clamp(260px, 34vw, 470px) !important; min-height: 0 !important; }
.chi-full-width-slider,
.about-photo-slider.chi-full-width-slider { min-height: clamp(260px, 40vw, 500px) !important; }
.chi-bottom-photo-slider,
.chi-single-photo-below.chi-bottom-photo-slider { min-height: clamp(240px, 34vw, 440px) !important; }
.chi-bottom-photo-slider .about-slider-track,
.chi-bottom-photo-slider .about-slide { min-height: inherit !important; }
.chi-bottom-photo-slider .about-slide img { height: 100% !important; min-height: inherit !important; object-fit: cover !important; }

.sustainability-content-grid article.sustainability-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(54px, 86px) 1fr !important;
  gap: clamp(18px, 2.4vw, 30px) !important;
  align-items: start !important;
}
.sustainability-card.sustainability-card-icon-right { grid-template-columns: 1fr minmax(54px, 86px) !important; }
.sustainability-card.sustainability-card-icon-right .sustainability-card-icon { grid-column: 2 !important; grid-row: 1 !important; }
.sustainability-card.sustainability-card-icon-right .sustainability-card-copy { grid-column: 1 !important; grid-row: 1 !important; }
.sustainability-card-icon {
  width: clamp(56px, 7vw, 86px) !important;
  height: clamp(56px, 7vw, 86px) !important;
  object-fit: contain !important;
  align-self: start !important;
  margin-top: 2px !important;
}
.sustainability-card-copy h2 { margin-top: 0 !important; }
@media (max-width: 760px) {
  .sustainability-content-grid article.sustainability-card,
  .sustainability-card.sustainability-card-icon-right {
    grid-template-columns: 1fr !important;
  }
  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon,
  .sustainability-card.sustainability-card-icon-right .sustainability-card-copy {
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

/* V58 - Persone: deduplica via PHP. Sostenibilità: icone grandi fuori dai riquadri. */
@media (min-width: 1024px) {
  .sustainability-content-section,
  .sustainability-content-section .container,
  .sustainability-content-grid {
    overflow: visible !important;
  }

  .sustainability-content-grid {
    position: relative !important;
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    column-gap: clamp(58px, 7vw, 110px) !important;
    row-gap: clamp(44px, 5vw, 72px) !important;
  }

  .sustainability-content-grid article.sustainability-card,
  .sustainability-card.sustainability-card-icon-right {
    display: block !important;
    position: relative !important;
    grid-template-columns: none !important;
    min-height: 100% !important;
    padding: clamp(30px, 3.4vw, 46px) !important;
  }

  .sustainability-card-icon {
    position: absolute !important;
    z-index: 0 !important;
    top: 50% !important;
    width: clamp(122px, 12vw, 188px) !important;
    height: clamp(122px, 12vw, 188px) !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: contain !important;
    pointer-events: none !important;
  }

  .sustainability-card.sustainability-card-icon-left .sustainability-card-icon {
    left: clamp(-205px, -13vw, -136px) !important;
    right: auto !important;
    transform: translateY(-50%) !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon {
    right: clamp(-205px, -13vw, -136px) !important;
    left: auto !important;
    transform: translateY(-50%) !important;
  }

  .sustainability-card-copy {
    position: relative !important;
    z-index: 1 !important;
  }
}

@media (max-width: 1023px) {
  .sustainability-content-grid article.sustainability-card,
  .sustainability-card.sustainability-card-icon-right {
    display: grid !important;
    grid-template-columns: minmax(76px, 100px) 1fr !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon,
  .sustainability-card.sustainability-card-icon-right .sustainability-card-copy {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .sustainability-card-icon {
    width: clamp(76px, 22vw, 110px) !important;
    height: clamp(76px, 22vw, 110px) !important;
  }
}

/* V59 - Sostenibilità: icone esterne 3x più grandi. */
@media (min-width: 1024px) {
  .sustainability-content-section,
  .sustainability-content-section .container,
  .sustainability-content-grid {
    overflow: visible !important;
  }

  .sustainability-content-grid {
    max-width: 900px !important;
    column-gap: clamp(48px, 5vw, 84px) !important;
  }

  .sustainability-card-icon {
    width: clamp(300px, 30vw, 430px) !important;
    height: clamp(300px, 30vw, 430px) !important;
    max-width: none !important;
    max-height: none !important;
    z-index: 0 !important;
    opacity: 1 !important;
  }

  .sustainability-card.sustainability-card-icon-left .sustainability-card-icon {
    left: clamp(-380px, -24vw, -260px) !important;
    transform: translateY(-50%) !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon {
    right: clamp(-380px, -24vw, -260px) !important;
    transform: translateY(-50%) !important;
  }
}

@media (max-width: 1023px) {
  .sustainability-card-icon {
    width: clamp(150px, 34vw, 220px) !important;
    height: clamp(150px, 34vw, 220px) !important;
    max-width: none !important;
    max-height: none !important;
  }
}

/* =========================================================
   Footer uniformità testi richiesta cliente - 2026-06-04
   Tutti i testi istituzionali del footer devono avere identico
   font-size, line-height e font-weight.
   ========================================================= */
.site-footer .footer-center-copy,
.site-footer .footer-mog-copy,
.site-footer .footer-company-description,
.site-footer .footer-contact-data,
.site-footer .footer-contact-data p,
.site-footer .footer-mog-copy p {
  font-size: clamp(13px, .92vw, 15px) !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
  color: #111111 !important;
}

.site-footer .footer-center-copy p,
.site-footer .footer-company-description,
.site-footer .footer-contact-data p,
.site-footer .footer-mog-copy p {
  font-size: clamp(13px, .92vw, 15px) !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
}

.site-footer .footer-company-description {
  margin: 0 0 14px !important;
  max-width: 560px !important;
}

.site-footer .footer-contact-data p {
  margin: 5px 0 !important;
}

.site-footer .footer-mog-copy p {
  margin: 0 !important;
  text-align: justify !important;
}

/* Realizzazioni: le card non devono aprire la pagina singola */
.project-card--static .project-media,
.project-card--static h3 {
    cursor: default !important;
}
.project-card--static .project-media {
    pointer-events: none !important;
}


/* =========================================================
   V60 - Chi siamo: bottone Persone allineato a sinistra.
   Sostenibilità: icone grandi fuori dai riquadri ma dentro viewport.
   ========================================================= */
.chi-people-button-wrap {
  width: 100% !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  margin: clamp(26px, 3vw, 42px) 0 clamp(34px, 4vw, 56px) !important;
  padding-left: 0 !important;
  text-align: left !important;
}

.chi-people-button-wrap .chi-people-button,
.chi-people-button-wrap .idf-button {
  margin-left: 0 !important;
  margin-right: auto !important;
}

@media (min-width: 1024px) {
  .sustainability-content-section {
    overflow-x: clip !important;
  }

  .sustainability-content-section .container,
  .sustainability-content-grid {
    overflow: visible !important;
  }

  .sustainability-content-grid {
    max-width: min(900px, calc(100vw - 420px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    column-gap: clamp(42px, 5vw, 76px) !important;
    row-gap: clamp(46px, 5vw, 74px) !important;
  }

  .sustainability-card-icon {
    position: absolute !important;
    top: 50% !important;
    width: clamp(190px, 18vw, 270px) !important;
    height: clamp(190px, 18vw, 270px) !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: contain !important;
    pointer-events: none !important;
    z-index: 0 !important;
    opacity: 1 !important;
  }

  .sustainability-card.sustainability-card-icon-left .sustainability-card-icon {
    left: calc(-1 * clamp(150px, 18vw, 285px)) !important;
    right: auto !important;
    transform: translateY(-50%) !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon {
    right: calc(-1 * clamp(150px, 18vw, 285px)) !important;
    left: auto !important;
    transform: translateY(-50%) !important;
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .sustainability-content-grid {
    max-width: min(720px, calc(100vw - 320px)) !important;
    column-gap: 38px !important;
  }

  .sustainability-card-icon {
    width: clamp(150px, 16vw, 190px) !important;
    height: clamp(150px, 16vw, 190px) !important;
  }

  .sustainability-card.sustainability-card-icon-left .sustainability-card-icon {
    left: calc(-1 * clamp(132px, 15vw, 176px)) !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon {
    right: calc(-1 * clamp(132px, 15vw, 176px)) !important;
  }
}

@media (max-width: 1023px) {
  .sustainability-content-section,
  .sustainability-content-section .container,
  .sustainability-content-grid {
    overflow-x: hidden !important;
  }

  .sustainability-card-icon {
    width: clamp(92px, 22vw, 150px) !important;
    height: clamp(92px, 22vw, 150px) !important;
    max-width: 100% !important;
    max-height: none !important;
  }
}

/* Footer recapiti: nessuno spazio extra tra le righe */
.site-footer .footer-center-copy .footer-contact-data {
  display: block !important;
  margin: 14px 0 0 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  font-size: clamp(13px, .92vw, 15px) !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
}
.site-footer .footer-center-copy .footer-contact-data p,
.site-footer .footer-center-copy .footer-contact-data p + p {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(13px, .92vw, 15px) !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
  letter-spacing: -0.005em !important;
}

/* Aggiornamento pagina Cosa facciamo: testo fuori dallo sfondo */
.services-equipment-copy-container {
  margin-top: clamp(28px, 4vw, 54px) !important;
  margin-bottom: clamp(22px, 3vw, 38px) !important;
}
.services-equipment-copy-card {
  max-width: 980px !important;
  padding: clamp(28px, 4vw, 48px) !important;
  border-radius: 28px !important;
  background: #ffffff !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .08) !important;
}
.services-equipment-copy-card p {
  margin: 0 !important;
  color: #3f4654 !important;
  font-size: clamp(15px, 1.22vw, 18px) !important;
  line-height: 1.68 !important;
  letter-spacing: -0.01em !important;
  font-weight: 400 !important;
  text-align: left !important;
}

/* V57 - Cosa facciamo: riduzione altezza sfondo hero */
.services-full-width-photo-overlayed {
  min-height: clamp(410px, 40vw, 560px) !important;
}
.services-photo-overlay-panel {
  padding-top: clamp(34px, 5vw, 64px) !important;
  padding-bottom: clamp(34px, 5vw, 64px) !important;
}
.services-photo-overlay-copy h2 {
  font-size: clamp(32px, 4.6vw, 68px) !important;
}
@media (max-width: 900px) {
  .services-full-width-photo-overlayed {
    min-height: clamp(440px, 92vw, 600px) !important;
  }
}

/* V58 - Cosa facciamo: meno spazio sotto hero e box testo largo come le 4 colonne */
.services-equipment-copy-container {
  margin-top: clamp(8px, 2.5vw, 34px) !important;
}
.services-equipment-copy-card {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* V59 - Cosa facciamo: hero più basso e slider spostato fuori dallo sfondo */
.services-full-width-photo-overlayed {
  min-height: clamp(330px, 32vw, 460px) !important;
  margin-bottom: 0 !important;
}
.services-photo-overlay-panel {
  grid-template-columns: 1fr !important;
  padding-top: clamp(26px, 4vw, 48px) !important;
  padding-bottom: clamp(26px, 4vw, 48px) !important;
  align-items: center !important;
}
.services-photo-overlay-copy {
  max-width: 760px !important;
}
.services-photo-overlay-copy h2 {
  max-width: 760px !important;
  font-size: clamp(30px, 4.2vw, 62px) !important;
  margin-bottom: 0 !important;
}
.services-equipment-copy-container {
  margin-top: clamp(18px, 2.6vw, 36px) !important;
  margin-bottom: clamp(28px, 4vw, 54px) !important;
}
.services-equipment-layout {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 420px) !important;
  gap: clamp(24px, 3.2vw, 42px) !important;
  align-items: stretch !important;
}
.services-equipment-copy-card {
  width: 100% !important;
  max-width: none !important;
  min-height: 302px !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
.services-equipment-slider {
  width: 100% !important;
  min-width: 0 !important;
}
.services-equipment-slider .services-menu-vertical-slider {
  position: relative !important;
  width: 100% !important;
  height: 302px !important;
  min-height: 302px !important;
  max-height: 302px !important;
  border-radius: 28px !important;
  background: #ffffff !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .08) !important;
  overflow: hidden !important;
  touch-action: none !important;
  overscroll-behavior: contain !important;
}
.services-equipment-slider .services-menu-vertical-window,
.services-equipment-slider .services-menu-vertical-track {
  position: relative !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  transform: none !important;
}
.services-equipment-slider .services-menu-vertical-track {
  display: block !important;
  transition: none !important;
  will-change: auto !important;
}
.services-equipment-slider .services-menu-vertical-card {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 38px 58px 38px 42px !important;
  box-sizing: border-box !important;
  background: transparent !important;
  color: #101010 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(24px) scale(.985) !important;
  transition: opacity .35s ease, transform .35s ease, visibility .35s ease !important;
}
.services-equipment-slider .services-menu-vertical-card.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
}
.services-equipment-slider .services-menu-vertical-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 72px !important;
  height: 38px !important;
  min-height: 38px !important;
  border-radius: 999px !important;
  margin: 0 0 22px !important;
  color: #f47b20 !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgba(15,23,42,.08) !important;
  font-size: 24px !important;
}
.services-equipment-slider .services-menu-vertical-title {
  display: block !important;
  font-size: clamp(27px, 2.35vw, 39px) !important;
  line-height: 1.05 !important;
  margin: 0 0 18px !important;
  color: #0b0f14 !important;
  letter-spacing: -0.05em !important;
}
.services-equipment-slider .services-menu-vertical-text {
  display: block !important;
  font-size: clamp(15px, 1.05vw, 17px) !important;
  line-height: 1.45 !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #526070 !important;
}
.services-equipment-slider .services-menu-vertical-cta {
  display: inline-flex !important;
  margin-top: 22px !important;
  align-self: flex-start !important;
}
.services-equipment-slider .services-menu-vertical-controls {
  position: absolute !important;
  top: 50% !important;
  right: 18px !important;
  transform: translateY(-50%) !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.services-equipment-slider .services-menu-vertical-controls span {
  width: 10px !important;
  height: 38px !important;
  border-radius: 999px !important;
  background: #d8e0e8 !important;
}
.services-equipment-slider .services-menu-vertical-controls span.is-active {
  background: #f47b20 !important;
}
@media (max-width: 900px) {
  .services-full-width-photo-overlayed {
    min-height: clamp(360px, 72vw, 480px) !important;
  }
  .services-equipment-layout {
    grid-template-columns: 1fr !important;
  }
  .services-equipment-copy-card {
    min-height: 0 !important;
  }
  .services-equipment-slider .services-menu-vertical-slider,
  .services-equipment-slider .services-menu-vertical-card {
    height: 330px !important;
    min-height: 330px !important;
    max-height: 330px !important;
  }
}

/* V60 - Cosa facciamo: hero ancora più basso e slider alto quanto il box paragrafo */
.services-full-width-photo-overlayed {
  min-height: clamp(250px, 24vw, 350px) !important;
  height: clamp(250px, 24vw, 350px) !important;
  max-height: 350px !important;
  margin-bottom: 0 !important;
}
.services-full-width-photo-overlayed > img {
  height: 100% !important;
}
.services-photo-overlay-panel {
  min-height: 100% !important;
  padding-top: clamp(18px, 2.8vw, 34px) !important;
  padding-bottom: clamp(18px, 2.8vw, 34px) !important;
}
.services-photo-overlay-copy h2 {
  font-size: clamp(28px, 3.55vw, 52px) !important;
  line-height: .98 !important;
  max-width: 660px !important;
}
.services-equipment-layout {
  align-items: stretch !important;
}
.services-equipment-copy-card {
  min-height: 0 !important;
  height: auto !important;
  align-items: center !important;
}
.services-equipment-slider {
  display: flex !important;
  align-self: stretch !important;
  height: auto !important;
}
.services-equipment-slider .services-menu-vertical-slider {
  align-self: stretch !important;
  height: auto !important;
  min-height: 100% !important;
  max-height: none !important;
}
.services-equipment-slider .services-menu-vertical-window,
.services-equipment-slider .services-menu-vertical-track,
.services-equipment-slider .services-menu-vertical-card {
  height: 100% !important;
  min-height: 100% !important;
}
@media (max-width: 900px) {
  .services-full-width-photo-overlayed {
    min-height: clamp(300px, 62vw, 420px) !important;
    height: clamp(300px, 62vw, 420px) !important;
    max-height: 420px !important;
  }
  .services-equipment-slider .services-menu-vertical-slider,
  .services-equipment-slider .services-menu-vertical-card {
    height: 330px !important;
    min-height: 330px !important;
  }
}

/* =========================================================
   V61 - Footer monocolonna + pagina Contatti come riferimento
   ========================================================= */
.site-footer.site-footer-single-column {
  background: #fff !important;
  color: #111 !important;
  padding: clamp(34px, 5vw, 64px) 0 !important;
  border-top: 1px solid rgba(17,17,17,.12) !important;
}
.site-footer-single-column .footer-single-column-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(20px, 3vw, 34px) !important;
  align-items: center !important;
  text-align: center !important;
}
.site-footer-single-column .footer-row {
  width: 100% !important;
  max-width: 980px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.site-footer-single-column .footer-logos-row {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(28px, 5vw, 70px) !important;
  flex-wrap: wrap !important;
}
.site-footer-single-column .footer-logo,
.site-footer-single-column .footer-logo a,
.site-footer-single-column .footer-logo .secondary-brand,
.site-footer-single-column .footer-logo .custom-logo-link,
.site-footer-single-column .footer-logo .default-brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.site-footer-single-column .footer-logo img,
.site-footer-single-column .footer-logo .primary-brand-img,
.site-footer-single-column .footer-logo .secondary-brand-img {
  width: auto !important;
  height: auto !important;
  max-height: clamp(58px, 8vw, 92px) !important;
  max-width: min(310px, 42vw) !important;
  object-fit: contain !important;
}
.site-footer-single-column .footer-info-row,
.site-footer-single-column .footer-legal-row,
.site-footer-single-column .footer-center-copy,
.site-footer-single-column .footer-contact-data {
  text-align: center !important;
}
.site-footer-single-column .footer-company-description,
.site-footer-single-column .footer-contact-data,
.site-footer-single-column .footer-contact-data p,
.site-footer-single-column .footer-mog-copy p,
.site-footer-single-column .footer-copyright {
  font-size: clamp(13px, .95vw, 15px) !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
  color: #111 !important;
  letter-spacing: -0.005em !important;
}
.site-footer-single-column .footer-company-description {
  margin: 0 auto 10px !important;
  max-width: 960px !important;
}
.site-footer-single-column .footer-contact-data {
  display: block !important;
  margin: 0 auto !important;
}
.site-footer-single-column .footer-contact-data p {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-footer-single-column a {
  color: inherit !important;
  text-decoration: none !important;
}
.site-footer-single-column a:hover {
  color: var(--idf-blue) !important;
}
.site-footer-single-column .footer-mog-copy p {
  margin: 0 auto !important;
  max-width: 1120px !important;
  text-align: center !important;
}
.site-footer-single-column .footer-copyright {
  margin: 16px 0 0 !important;
}
.site-footer-single-column .footer-bottom { display: none !important; }

.contact-page-section {
  position: relative !important;
  overflow: hidden !important;
  background: #fff !important;
  min-height: 760px !important;
  padding: clamp(54px, 7vw, 88px) 0 0 !important;
}
.contact-page-grid {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: minmax(320px, .95fr) minmax(440px, 1.1fr) !important;
  gap: clamp(44px, 6vw, 92px) !important;
  align-items: start !important;
}
.contact-intro-panel .eyebrow {
  color: var(--idf-blue) !important;
  margin-bottom: 22px !important;
}
.contact-intro-panel h1 {
  margin: 0 0 24px !important;
  color: var(--idf-navy, #061b3a) !important;
  font-size: clamp(42px, 4.8vw, 68px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
  font-weight: 500 !important;
}
.contact-intro-panel h1 span { color: var(--idf-blue) !important; }
.contact-intro-panel h1::after {
  content: "" !important;
  display: block !important;
  width: 32px !important;
  height: 3px !important;
  margin-top: 26px !important;
  background: #e31b2d !important;
}
.contact-intro-text {
  margin: 0 0 clamp(34px, 5vw, 58px) !important;
  color: #1d2b3e !important;
  font-size: clamp(16px, 1.25vw, 20px) !important;
  line-height: 1.6 !important;
}
.contact-data-list {
  position: relative !important;
  display: grid !important;
  gap: 28px !important;
  max-width: 520px !important;
}
.contact-data-list::before {
  content: "" !important;
  position: absolute !important;
  left: 41px !important;
  top: 34px !important;
  bottom: 34px !important;
  width: 1px !important;
  background: rgba(38, 122, 213, .45) !important;
  z-index: -1 !important;
}
.contact-data-item {
  display: grid !important;
  grid-template-columns: 82px 1fr !important;
  gap: 22px !important;
  align-items: center !important;
}
.contact-data-icon {
  width: 58px !important;
  height: 58px !important;
  border: 1.5px solid var(--idf-blue) !important;
  color: var(--idf-blue) !important;
  background: #fff !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 12px !important;
}
.contact-data-icon svg {
  width: 28px !important;
  height: 28px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.contact-data-item h2 {
  margin: 0 0 7px !important;
  color: #101c2f !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-weight: 800 !important;
}
.contact-data-item p {
  margin: 0 !important;
  color: #233246 !important;
  font-size: clamp(14px, 1.05vw, 17px) !important;
  line-height: 1.45 !important;
}
.contact-data-item a {
  color: inherit !important;
  text-decoration: none !important;
}
.contact-data-item a:hover { color: var(--idf-blue) !important; }
.contact-form-panel {
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(12, 32, 61, .12) !important;
  box-shadow: 0 24px 80px rgba(2, 20, 45, .06) !important;
  padding: clamp(28px, 3.8vw, 48px) !important;
}
.contact-form {
  display: grid !important;
  gap: 22px !important;
}
.contact-form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
}
.contact-form label {
  display: grid !important;
  gap: 10px !important;
  color: #142036 !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: .065em !important;
  font-weight: 800 !important;
}
.contact-form input,
.contact-form textarea {
  width: 100% !important;
  border: 1px solid rgba(13, 32, 55, .18) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #17243a !important;
  padding: 18px 20px !important;
  min-height: 58px !important;
  font: inherit !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  outline: none !important;
}
.contact-form textarea { resize: vertical !important; min-height: 126px !important; }
.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--idf-blue) !important;
  box-shadow: 0 0 0 3px rgba(38, 122, 213, .12) !important;
}
.contact-privacy {
  display: flex !important;
  grid-template-columns: none !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 12px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 500 !important;
  color: #566173 !important;
}
.contact-privacy input {
  width: 18px !important;
  height: 18px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 1px 0 0 !important;
  accent-color: var(--idf-blue) !important;
}
.contact-submit {
  width: 100% !important;
  min-height: 66px !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(24px, 8vw, 110px) !important;
  padding: 18px 28px !important;
  color: #fff !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  letter-spacing: .12em !important;
  font-size: clamp(14px, 1.2vw, 19px) !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}
.contact-submit-blue { background: linear-gradient(90deg, #1e73d8, #247be0) !important; }
.contact-submit-red { background: linear-gradient(90deg, #e11324, #e51d2e) !important; }
.contact-submit span { font-size: 34px !important; font-weight: 300 !important; line-height: 1 !important; }
.contact-map-band {
  position: relative !important;
  z-index: 1 !important;
  margin-top: -10px !important;
  height: clamp(210px, 24vw, 310px) !important;
  opacity: .72 !important;
  background-color: #f7fbff !important;
  background-image:
    radial-gradient(circle at 26% 50%, rgba(38,122,213,.85) 0 4px, transparent 5px),
    radial-gradient(circle at 42% 30%, rgba(38,122,213,.55) 0 3px, transparent 4px),
    radial-gradient(circle at 55% 55%, rgba(38,122,213,.55) 0 3px, transparent 4px),
    radial-gradient(circle at 68% 38%, rgba(38,122,213,.55) 0 3px, transparent 4px),
    linear-gradient(22deg, transparent 0 47%, rgba(38,122,213,.25) 47.2% 47.8%, transparent 48% 100%),
    linear-gradient(-18deg, transparent 0 48%, rgba(38,122,213,.2) 48.2% 48.8%, transparent 49% 100%),
    linear-gradient(88deg, transparent 0 49%, rgba(38,122,213,.16) 49.2% 49.7%, transparent 50% 100%),
    linear-gradient(0deg, transparent 0 49%, rgba(38,122,213,.12) 49.1% 49.6%, transparent 50% 100%),
    repeating-linear-gradient(0deg, rgba(20,70,120,.05) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(90deg, rgba(20,70,120,.04) 0 1px, transparent 1px 34px);
}
.contact-map-band::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 42% !important;
  height: 34px !important;
  background: rgba(96, 170, 218, .18) !important;
  transform: skewY(-5deg) !important;
  filter: blur(.2px) !important;
}
.contact-map-pin {
  position: absolute !important;
  left: 50% !important;
  top: 18% !important;
  width: 62px !important;
  height: 78px !important;
  transform: translateX(-50%) !important;
  background: var(--idf-blue) !important;
  color: #fff !important;
  border-radius: 50% 50% 50% 0 !important;
  rotate: -45deg !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 12px 26px rgba(14, 80, 165, .25) !important;
}
.contact-map-pin span {
  display: block !important;
  rotate: 45deg !important;
  font-size: 29px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}
@media (max-width: 980px) {
  .contact-page-grid { grid-template-columns: 1fr !important; }
  .contact-form-row { grid-template-columns: 1fr !important; }
  .contact-form-panel { padding: 24px !important; }
}
@media (max-width: 620px) {
  .site-footer-single-column .footer-logo img,
  .site-footer-single-column .footer-logo .primary-brand-img,
  .site-footer-single-column .footer-logo .secondary-brand-img { max-width: min(250px, 78vw) !important; }
  .contact-data-item { grid-template-columns: 66px 1fr !important; gap: 14px !important; }
  .contact-data-list::before { left: 33px !important; }
  .contact-data-icon { width: 52px !important; height: 52px !important; margin-left: 7px !important; }
  .contact-submit { gap: 24px !important; }
}

/* =========================================================
   V62 - Correzioni footer, mappa contatti e organigramma
   ========================================================= */
.site-footer.site-footer-single-column {
  padding: clamp(34px, 5vw, 64px) 0 0 !important;
}
.site-footer-single-column .footer-single-column-layout,
.site-footer-single-column .footer-row,
.site-footer-single-column .footer-info-row,
.site-footer-single-column .footer-legal-row,
.site-footer-single-column .footer-contact-data,
.site-footer-single-column .footer-contact-data p,
.site-footer-single-column .footer-company-description,
.site-footer-single-column .footer-mog-copy p {
  text-align: center !important;
}
.site-footer-single-column .footer-logos-row {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 22px !important;
}
.site-footer-single-column .footer-logo {
  width: 100% !important;
  justify-content: center !important;
}
.site-footer-single-column .footer-company-description,
.site-footer-single-column .footer-contact-data,
.site-footer-single-column .footer-contact-data p,
.site-footer-single-column .footer-contact-data a,
.site-footer-single-column .footer-mog-copy p,
.site-footer-single-column .footer-mog-copy a {
  font-size: 15px !important;
  line-height: 1.65 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  font-family: inherit !important;
  text-align: center !important;
  color: #111111 !important;
}
.site-footer-single-column .footer-contact-data p {
  margin: 0 !important;
}
.site-footer-single-column .footer-mog-copy p {
  max-width: 1120px !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  margin: clamp(28px, 4vw, 48px) 0 0 !important;
  padding: 18px min(98px, 5vw) !important;
  background: #111111 !important;
  color: #ffffff !important;
  border: 0 !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  text-align: center !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar span,
.site-footer-single-column .footer-bottom.footer-black-bar a {
  color: #ffffff !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  font-family: inherit !important;
  text-decoration: none !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar a:hover {
  color: #e30613 !important;
  text-decoration: underline !important;
}
@media (max-width: 700px) {
  .site-footer-single-column .footer-bottom.footer-black-bar {
    flex-direction: column !important;
    padding: 18px 22px !important;
  }
}

.contact-submit,
.contact-submit:visited,
.contact-submit:hover,
.contact-submit:focus,
.contact-submit span {
  color: #ffffff !important;
}
.contact-submit-orange {
  background: linear-gradient(90deg, #f47b20, #ff7a1a) !important;
}
.contact-submit-red {
  background: linear-gradient(90deg, #e11324, #e51d2e) !important;
}
.contact-real-map {
  height: clamp(300px, 32vw, 470px) !important;
  opacity: 1 !important;
  background: #f7fbff !important;
  overflow: hidden !important;
  margin-top: 0 !important;
}
.contact-real-map iframe {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  filter: saturate(.72) contrast(.95) brightness(1.04) !important;
}
.contact-real-map::before,
.contact-real-map .contact-map-pin {
  display: none !important;
}
.contact-map-open {
  position: absolute !important;
  left: 50% !important;
  bottom: 18px !important;
  transform: translateX(-50%) !important;
  z-index: 3 !important;
  display: inline-flex !important;
  padding: 10px 16px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #111111 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: 0 12px 26px rgba(0,0,0,.12) !important;
}

.people-org-row[data-count="3"] {
  grid-template-columns: repeat(3, minmax(220px, 280px)) !important;
  max-width: 920px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.people-org-row[data-count="4"] {
  grid-template-columns: repeat(4, minmax(190px, 1fr)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 980px) {
  .people-org-row[data-count="3"],
  .people-org-row[data-count="4"] {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
  }
}
@media (max-width: 620px) {
  .people-org-row[data-count="3"],
  .people-org-row[data-count="4"] {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   V63 - Fix footer full width, Saphira white/hover red, spacing
   ========================================================= */
.site-footer.site-footer-single-column {
  overflow-x: clip !important;
}
.site-footer-single-column .footer-single-column-layout {
  gap: 14px !important;
}
.site-footer-single-column .footer-info-row {
  margin-bottom: 4px !important;
}
.site-footer-single-column .footer-legal-row {
  margin-top: 4px !important;
}
.site-footer-single-column .footer-company-description {
  margin-bottom: 8px !important;
}
.site-footer-single-column .footer-contact-data {
  margin-bottom: 0 !important;
}
.site-footer-single-column .footer-company-description,
.site-footer-single-column .footer-contact-data,
.site-footer-single-column .footer-contact-data p,
.site-footer-single-column .footer-contact-data a,
.site-footer-single-column .footer-mog-copy p,
.site-footer-single-column .footer-mog-copy a {
  font-size: 15px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
}
.site-footer-single-column .footer-contact-data p {
  margin: 0 !important;
  padding: 0 !important;
}
.site-footer-single-column .footer-mog-copy p {
  margin-top: 0 !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar {
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  margin: 28px calc(50% - 50vw) 0 !important;
  padding: 0 !important;
  background: #111111 !important;
  color: #ffffff !important;
  border: 0 !important;
  box-sizing: border-box !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar .footer-black-bar-inner {
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 18px 22px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  box-sizing: border-box !important;
  text-align: center !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar span,
.site-footer-single-column .footer-bottom.footer-black-bar a,
.site-footer-single-column .footer-bottom.footer-black-bar a:link,
.site-footer-single-column .footer-bottom.footer-black-bar a:visited,
.site-footer-single-column .footer-bottom.footer-black-bar .saphira-footer-link,
.site-footer-single-column .footer-bottom.footer-black-bar .saphira-footer-link:link,
.site-footer-single-column .footer-bottom.footer-black-bar .saphira-footer-link:visited {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  font-family: inherit !important;
  text-decoration: none !important;
}
.site-footer-single-column .footer-bottom.footer-black-bar a:hover,
.site-footer-single-column .footer-bottom.footer-black-bar a:focus,
.site-footer-single-column .footer-bottom.footer-black-bar .saphira-footer-link:hover,
.site-footer-single-column .footer-bottom.footer-black-bar .saphira-footer-link:focus {
  color: #e30613 !important;
  -webkit-text-fill-color: #e30613 !important;
  text-decoration: underline !important;
}
@media (max-width: 700px) {
  .site-footer-single-column .footer-bottom.footer-black-bar .footer-black-bar-inner {
    flex-direction: column !important;
    justify-content: center !important;
    padding: 18px 22px !important;
  }
}


/* =========================================================
   V70 - Chi siamo: bottone Persone più elegante
   ========================================================= */
.chi-people-button-wrap {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: clamp(22px, 2.6vw, 34px) 0 clamp(36px, 4vw, 60px) !important;
  padding: 0 !important;
  text-align: center !important;
}

.chi-people-button-wrap .chi-people-button,
.chi-people-button-wrap .idf-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  min-width: 190px !important;
  min-height: 56px !important;
  padding: 16px 42px !important;
  margin: 0 auto !important;
  border-radius: 999px !important;
  border: 2px solid #e30613 !important;
  background: #e30613 !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: 0 16px 34px rgba(227, 6, 19, .22) !important;
  transform: translateY(0) !important;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease !important;
}

.chi-people-button-wrap .chi-people-button::after,
.chi-people-button-wrap .idf-button::after {
  content: "→" !important;
  display: inline-block !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  transform: translateX(0) !important;
  transition: transform .25s ease !important;
}

.chi-people-button-wrap .chi-people-button:hover,
.chi-people-button-wrap .chi-people-button:focus-visible,
.chi-people-button-wrap .idf-button:hover,
.chi-people-button-wrap .idf-button:focus-visible {
  background: #ffffff !important;
  color: #e30613 !important;
  border-color: #e30613 !important;
  box-shadow: 0 20px 44px rgba(227, 6, 19, .28) !important;
  transform: translateY(-3px) !important;
}

.chi-people-button-wrap .chi-people-button:hover::after,
.chi-people-button-wrap .chi-people-button:focus-visible::after,
.chi-people-button-wrap .idf-button:hover::after,
.chi-people-button-wrap .idf-button:focus-visible::after {
  transform: translateX(7px) !important;
}


/* =========================================================
   V8 final: footer, contatti, chi siamo e attestazioni
   ========================================================= */
:root {
  --idf-blue: #2C67BA !important;
}

.site-footer.site-footer-single-column {
  background: #ffffff !important;
  color: #111111 !important;
  padding: 34px 0 0 !important;
  border-top: 0 !important;
  text-align: center !important;
}

.site-footer .footer-single-column-layout {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  max-width: 760px !important;
}

.site-footer .footer-row {
  width: 100% !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .footer-logos-row {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin-bottom: 28px !important;
}

.site-footer .footer-logo,
.site-footer .footer-logo a {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.site-footer .footer-logo img,
.site-footer .footer-logo .primary-brand-img,
.site-footer .footer-logo .secondary-brand-img {
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

.site-footer .footer-logo-idf img,
.site-footer .footer-logo-idf .primary-brand-img {
  max-height: 42px !important;
  max-width: 190px !important;
}

.site-footer .footer-logo-nardoni img,
.site-footer .footer-logo-nardoni .secondary-brand-img {
  max-height: 48px !important;
  max-width: 190px !important;
}

.site-footer .footer-company-description,
.site-footer .footer-contact-data,
.site-footer .footer-contact-data p,
.site-footer .footer-contact-data a,
.site-footer .footer-policy-row,
.site-footer .footer-policy-row a,
.site-footer .footer-policy-row span {
  font-size: 10px !important;
  line-height: 1em !important;
  font-weight: 400 !important;
  text-align: center !important;
  color: #111111 !important;
  letter-spacing: 0 !important;
}

.site-footer .footer-company-description {
  max-width: 720px !important;
  margin: 0 auto 22px !important;
}

.site-footer .footer-contact-data {
  display: block !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
}

.site-footer .footer-contact-data p {
  margin: 0 0 6px !important;
  padding: 0 !important;
}

.site-footer .footer-policy-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 4px !important;
  margin-bottom: 36px !important;
}

.site-footer .footer-legal-row,
.site-footer .footer-mog-copy {
  display: none !important;
}

.site-footer .footer-black-bar {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background: #050505 !important;
  color: #ffffff !important;
  padding: 16px 0 !important;
  border: 0 !important;
  margin-top: 0 !important;
}

.site-footer .footer-black-bar-inner {
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 24px !important;
}

.site-footer .footer-black-bar,
.site-footer .footer-black-bar *,
.site-footer .footer-black-bar span,
.site-footer .footer-black-bar a {
  font-size: 10px !important;
  line-height: 1em !important;
  font-weight: 400 !important;
}

.site-footer .footer-black-bar span {
  color: #ffffff !important;
}

.site-footer .footer-black-bar a,
.site-footer .footer-black-bar a:link,
.site-footer .footer-black-bar a:visited,
.site-footer .footer-black-bar .saphira-footer-link,
.site-footer .footer-black-bar .saphira-footer-link:link,
.site-footer .footer-black-bar .saphira-footer-link:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}

.site-footer .footer-black-bar a:hover,
.site-footer .footer-black-bar .saphira-footer-link:hover {
  color: #e11324 !important;
}

.contact-submit-red,
.contact-submit-red:visited,
.contact-submit-red:hover,
.contact-submit-red:focus {
  background: #2C67BA !important;
  color: #ffffff !important;
}

.contact-submit,
.contact-submit:visited,
.contact-submit:hover,
.contact-submit:focus,
.contact-submit *,
.contact-submit:hover * {
  color: #ffffff !important;
}

.chi-people-button-wrap {
  justify-content: flex-start !important;
  text-align: left !important;
  padding-left: 0 !important;
}

.chi-people-button-wrap .chi-people-button,
.chi-people-button-wrap .chi-people-button:visited {
  background: #e11324 !important;
  color: #ffffff !important;
  border: 1px solid #e11324 !important;
  border-radius: 999px !important;
  padding: 14px 34px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  box-shadow: 0 14px 32px rgba(225, 19, 36, .22) !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

.chi-people-button-wrap .chi-people-button:hover,
.chi-people-button-wrap .chi-people-button:focus {
  background: #ffffff !important;
  color: #e11324 !important;
}

.attestazioni-mog-section {
  padding-top: 34px !important;
  padding-bottom: 24px !important;
}

.attestazioni-mog-text {
  margin: 0 !important;
  color: #111111 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  text-align: center !important;
}

.attestazioni-archive-section {
  padding-top: 34px !important;
}

.attestazioni-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(34px, 5vw, 64px) clamp(34px, 5vw, 72px) !important;
  align-items: start !important;
}

.attestazione-tile {
  text-align: center !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: visible !important;
}

.attestazione-tile-media {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 135px !important;
  margin-bottom: 26px !important;
}

.attestazione-tile-media img {
  max-height: 135px !important;
  width: auto !important;
  max-width: 190px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}

.attestazione-tile-title {
  margin: 0 0 24px !important;
  text-align: center !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  color: #111111 !important;
}

.attestazione-download-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  width: 100% !important;
  max-width: 310px !important;
  border-radius: 12px !important;
  background: #e9ecef !important;
  color: #111111 !important;
  padding: 14px 22px !important;
  text-transform: uppercase !important;
  letter-spacing: .12em !important;
  font-size: 12px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.attestazione-download-button:hover {
  background: #dfe3e7 !important;
  color: #e11324 !important;
}

@media (max-width: 900px) {
  .attestazioni-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .site-footer .footer-black-bar-inner {
    flex-direction: column !important;
    text-align: center !important;
    gap: 8px !important;
  }
}

@media (max-width: 620px) {
  .attestazioni-grid {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   V9 - Footer black bar: copyright e Saphìra a 10px / 1em
   ========================================================= */
.site-footer .footer-black-bar,
.site-footer .footer-black-bar-inner,
.site-footer .footer-black-bar-inner *,
.site-footer .footer-black-bar-inner span,
.site-footer .footer-black-bar-inner a,
.site-footer .footer-black-bar-inner .saphira-footer-link {
  font-size: 10px !important;
  line-height: 1em !important;
  font-weight: 400 !important;
}

.site-footer .footer-black-bar-inner span,
.site-footer .footer-black-bar-inner a,
.site-footer .footer-black-bar-inner .saphira-footer-link,
.site-footer .footer-black-bar-inner .saphira-footer-link:link,
.site-footer .footer-black-bar-inner .saphira-footer-link:visited {
  color: #ffffff !important;
}

.site-footer .footer-black-bar-inner .saphira-footer-link:hover,
.site-footer .footer-black-bar-inner a:hover {
  color: #e11324 !important;
}


/* =========================================================
   V10 - Contatti: bottone Lavora con noi sempre bianco
   ========================================================= */
.contact-form .contact-submit.contact-submit-red,
.contact-form .contact-submit.contact-submit-red:link,
.contact-form .contact-submit.contact-submit-red:visited,
.contact-form .contact-submit.contact-submit-red:hover,
.contact-form .contact-submit.contact-submit-red:focus,
.contact-form .contact-submit.contact-submit-red:active,
.contact-form a.contact-submit.contact-submit-red,
.contact-form a.contact-submit.contact-submit-red:link,
.contact-form a.contact-submit.contact-submit-red:visited,
.contact-form a.contact-submit.contact-submit-red:hover,
.contact-form a.contact-submit.contact-submit-red:focus,
.contact-form a.contact-submit.contact-submit-red:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
}

.contact-form .contact-submit.contact-submit-red *,
.contact-form .contact-submit.contact-submit-red:hover *,
.contact-form .contact-submit.contact-submit-red:focus *,
.contact-form .contact-submit.contact-submit-red:active * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.contact-form .contact-submit.contact-submit-red {
  background: #2C67BA !important;
}


/* =========================================================
   V11 - Contatti: 30px di spazio sopra la mappa
   ========================================================= */
.contact-page-section .contact-map-band,
.contact-page-section .contact-real-map {
  margin-top: 30px !important;
}


/* =========================================================
   V12 - Attestazioni: testo MOG nel page intro, allineato a sinistra
   ========================================================= */
.attestazioni-mog-section {
  display: none !important;
}

.attestazioni-hero .attestazioni-hero-mog,
.attestazioni-hero .page-intro.attestazioni-hero-mog {
  max-width: 1120px !important;
  margin: 24px 0 0 0 !important;
  text-align: left !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
  color: #111111 !important;
}


/* =========================================================
   V13 - Attestazioni caricate da PDF: preview pulite
   ========================================================= */
.attestazione-tile-media img {
  border-radius: 8px !important;
  box-shadow: 0 10px 26px rgba(17,17,17,.08) !important;
  background: #ffffff !important;
}

.attestazione-placeholder {
  background: #e9ecef !important;
  color: #111111 !important;
  border-radius: 12px !important;
}


/* =========================================================
   V14 - Chi siamo: testi nei riquadri e bottone Persone bianco
   ========================================================= */
.chi-work-cards .about-work-block p:not(.eyebrow),
.about-work-content .about-work-block p:not(.eyebrow) {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  height: auto !important;
  margin-top: 18px !important;
  color: #111111 !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  font-weight: 400 !important;
}

.chi-people-button-wrap .chi-people-button,
.chi-people-button-wrap .chi-people-button:link,
.chi-people-button-wrap .chi-people-button:visited,
.chi-people-button-wrap .chi-people-button *,
.chi-people-button-wrap .chi-people-button:link *,
.chi-people-button-wrap .chi-people-button:visited * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.chi-people-button-wrap .chi-people-button:hover,
.chi-people-button-wrap .chi-people-button:focus,
.chi-people-button-wrap .chi-people-button:hover *,
.chi-people-button-wrap .chi-people-button:focus * {
  color: #e11324 !important;
  -webkit-text-fill-color: #e11324 !important;
}


/* =========================================================
   V15 - Fix conflitto regola globale link su bottone Persone
   ========================================================= */
body .chi-people-button-wrap a.chi-people-button,
body .chi-people-button-wrap a.chi-people-button:link,
body .chi-people-button-wrap a.chi-people-button:visited,
body .entry-content .chi-people-button-wrap a.chi-people-button,
body .entry-content .chi-people-button-wrap a.chi-people-button:link,
body .entry-content .chi-people-button-wrap a.chi-people-button:visited,
body a.btn.chi-people-button,
body a.btn.chi-people-button:link,
body a.btn.chi-people-button:visited {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

body .chi-people-button-wrap a.chi-people-button:hover,
body .chi-people-button-wrap a.chi-people-button:focus,
body .entry-content .chi-people-button-wrap a.chi-people-button:hover,
body .entry-content .chi-people-button-wrap a.chi-people-button:focus,
body a.btn.chi-people-button:hover,
body a.btn.chi-people-button:focus {
  color: #e11324 !important;
  -webkit-text-fill-color: #e11324 !important;
}

/* =========================================================
   V596 - Richieste cliente: header/loghi, video territorio,
   sostenibilità più larga, cookie consent.
   ========================================================= */
@media (min-width: 901px) {
  .primary-bar .header-inner {
    min-height: 112px !important;
  }

  .site-branding {
    gap: clamp(18px, 2.2vw, 30px) !important;
  }

  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img {
    max-height: 76px !important;
  }

  .site-brand .custom-logo-link,
  .site-brand .default-brand-logo,
  .secondary-brand,
  a.site-brand,
  a.secondary-brand.secondary-brand-desktop {
    padding: 8px 12px !important;
  }

  .side-quick-nav {
    top: 112px !important;
    min-height: calc(100vh - 112px) !important;
  }
}

@media (max-width: 900px) {
  .primary-bar .header-inner {
    min-height: 88px !important;
  }

  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img {
    max-height: 54px !important;
  }

  .overlay-menu {
    inset: 88px 0 0 0 !important;
    height: calc(100vh - 88px) !important;
  }

  .overlay-panel {
    min-height: calc(100vh - 88px) !important;
    height: calc(100vh - 88px) !important;
  }
}

@media (max-width: 520px) {
  .primary-bar .header-inner { min-height: 78px !important; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 42px !important; }
  .overlay-menu { inset: 78px 0 0 0 !important; height: calc(100vh - 78px) !important; }
  .overlay-panel { min-height: calc(100vh - 78px) !important; height: calc(100vh - 78px) !important; }
}

.person-card .person-photo,
.person-card h3 {
  cursor: default !important;
}

.territory-video-section {
  padding: 0 !important;
  overflow: hidden !important;
}

.territory-wide-video {
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  height: clamp(340px, 46vw, 680px) !important;
  object-fit: cover !important;
  background: #001a35 !important;
}

@media (min-width: 1024px) {
  .sustainability-content-grid {
    width: min(1280px, calc(100vw - 160px)) !important;
    max-width: 1280px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: clamp(64px, 7vw, 128px) !important;
    row-gap: clamp(52px, 6vw, 86px) !important;
  }

  .sustainability-content-grid article.sustainability-card,
  .sustainability-card.sustainability-card-icon-right {
    padding: clamp(36px, 4vw, 58px) !important;
  }

  .sustainability-card.sustainability-card-icon-left .sustainability-card-icon {
    left: calc(-1 * clamp(115px, 9vw, 165px)) !important;
  }

  .sustainability-card.sustainability-card-icon-right .sustainability-card-icon {
    right: calc(-1 * clamp(115px, 9vw, 165px)) !important;
  }
}

.idf-cookie-consent {
  position: fixed;
  left: 50%;
  bottom: 22px;
  z-index: 9999;
  width: min(980px, calc(100% - 32px));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  color: #001f3f;
  box-shadow: 0 24px 80px rgba(0, 20, 45, .24);
  border: 1px solid rgba(0,31,63,.10);
}

.idf-cookie-consent[hidden] { display: none !important; }
.idf-cookie-consent__copy strong { display: block; margin-bottom: 4px; font-weight: 800; }
.idf-cookie-consent__copy p { margin: 0; font-size: 14px; line-height: 1.45; text-align: left !important; }
.idf-cookie-consent__actions { display: flex; gap: 10px; flex-shrink: 0; }
.idf-cookie-btn,
.idf-cookie-reset {
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}
.idf-cookie-btn { padding: 11px 16px; }
.idf-cookie-btn--primary { background: #f47b20; color: #fff; }
.idf-cookie-btn--secondary { background: #eef7fc; color: #001f3f; }
.idf-cookie-reset { background: transparent; color: inherit; padding: 0; text-decoration: underline; }

@media (max-width: 760px) {
  .idf-cookie-consent { display: block; }
  .idf-cookie-consent__actions { margin-top: 14px; flex-wrap: wrap; }
}

/* =========================================================
   V597 - Fix header: loghi più contenuti, menu dentro viewport
   ========================================================= */
@media (min-width: 901px) {
  .primary-bar .header-inner {
    min-height: 88px !important;
    width: min(1320px, calc(100% - 40px)) !important;
    gap: clamp(14px, 1.6vw, 24px) !important;
  }

  .site-branding {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    gap: clamp(10px, 1.2vw, 18px) !important;
  }

  .site-brand {
    min-width: 0 !important;
    flex: 0 0 auto !important;
  }

  .site-brand .custom-logo-link,
  .site-brand .default-brand-logo,
  .secondary-brand,
  a.site-brand,
  a.secondary-brand.secondary-brand-desktop {
    padding: 4px 6px !important;
  }

  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo {
    max-height: clamp(46px, 4.6vw, 58px) !important;
    max-width: clamp(145px, 17vw, 205px) !important;
    width: auto !important;
    object-fit: contain !important;
  }

  .secondary-brand-img {
    max-height: clamp(44px, 4.4vw, 56px) !important;
    max-width: clamp(128px, 14vw, 178px) !important;
    width: auto !important;
    object-fit: contain !important;
  }

  .main-navigation {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .main-menu {
    justify-content: center !important;
    gap: clamp(14px, 2vw, 30px) !important;
  }

  .main-menu > li > a {
    font-size: clamp(12px, .95vw, 14px) !important;
    white-space: nowrap !important;
  }

  .header-contact-actions {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    gap: 8px !important;
  }

  .header-contact-link {
    font-size: clamp(11px, .85vw, 13px) !important;
    white-space: nowrap !important;
  }

  .side-quick-nav {
    top: 88px !important;
    min-height: calc(100vh - 88px) !important;
  }
}

@media (max-width: 1240px) and (min-width: 901px) {
  .header-contact-actions { display: none !important; }
  .main-menu { gap: clamp(12px, 2.2vw, 26px) !important; }
}

@media (max-width: 1080px) and (min-width: 901px) {
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo { max-height: 48px !important; max-width: 160px !important; }
  .secondary-brand-img { max-height: 46px !important; max-width: 136px !important; }
  .main-menu > li > a { font-size: 12px !important; }
}

@media (max-width: 900px) {
  .primary-bar .header-inner { min-height: 74px !important; width: min(100% - 28px, 100%) !important; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 40px !important; max-width: 148px !important; }
  .overlay-menu { inset: 74px 0 0 0 !important; height: calc(100vh - 74px) !important; }
  .overlay-panel { min-height: calc(100vh - 74px) !important; height: calc(100vh - 74px) !important; }
}

@media (max-width: 520px) {
  .primary-bar .header-inner { min-height: 68px !important; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 34px !important; max-width: 122px !important; }
  .site-branding { gap: 6px !important; }
  .overlay-menu { inset: 68px 0 0 0 !important; height: calc(100vh - 68px) !important; }
  .overlay-panel { min-height: calc(100vh - 68px) !important; height: calc(100vh - 68px) !important; }
}


/* IDF V598 - Preferenze cookie */
.idf-cookie-consent__preferences {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.idf-cookie-option {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.35;
  color: #2d3748;
}
.idf-cookie-option + .idf-cookie-option { margin-top: 8px; }
.idf-cookie-option input { margin-top: 2px; }
.idf-cookie-option span {
  display: block;
  font-size: 12px;
  opacity: .72;
}
.idf-cookie-preferences-button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: #f47b20;
  color: #fff;
  padding: 12px 18px;
  font-weight: 800;
  cursor: pointer;
}
.idf-cookie-reset-link { text-decoration: underline; }

/* =========================================================
   V599 - Menu allineato a destra
   ========================================================= */
@media (min-width: 901px) {
  .primary-bar .header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .site-branding {
    flex: 0 0 auto !important;
    margin-right: auto !important;
  }

  .main-navigation {
    flex: 1 1 auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    margin-left: auto !important;
  }

  .main-menu {
    width: auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    margin-left: auto !important;
    text-align: right !important;
  }
}

@media (max-width: 1240px) and (min-width: 901px) {
  .main-navigation {
    justify-content: flex-end !important;
  }
  .main-menu {
    justify-content: flex-end !important;
  }
}

@media (max-width: 900px) {
  .site-branding {
    margin-right: auto !important;
  }
  .header-actions {
    margin-left: auto !important;
  }
}

/* =========================================================
   V600 - Sostenibilità: elimina spazio eccessivo tra hero e contenuto
   ========================================================= */
body.page-template-page-sostenibilita .sustainability-video-section,
.page-template-page-sostenibilita .sustainability-video-section {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

.page-template-page-sostenibilita .page-hero.compact,
.page-template-page-sostenibilita .sustainability-hero {
  padding-bottom: clamp(34px, 5vw, 70px) !important;
  margin-bottom: 0 !important;
}

.page-template-page-sostenibilita .sustainability-content-section {
  padding-top: clamp(34px, 5vw, 70px) !important;
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  .page-template-page-sostenibilita .page-hero.compact,
  .page-template-page-sostenibilita .sustainability-hero {
    padding-top: 54px !important;
    padding-bottom: 34px !important;
  }
  .page-template-page-sostenibilita .sustainability-content-section {
    padding-top: 34px !important;
  }
}

/* =========================================================
   V601 - Sostenibilità: ripristina video full-width tra hero e contenuto
   ========================================================= */
body.page-template-page-sostenibilita .sustainability-video-section,
.page-template-page-sostenibilita .sustainability-video-section,
.sustainability-video-section {
  display: block !important;
  height: auto !important;
  min-height: clamp(260px, 46vw, 560px) !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #111 !important;
}

.sustainability-video-section .container-full {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sustainability-video {
  display: block !important;
  width: 100% !important;
  height: clamp(260px, 46vw, 560px) !important;
  min-height: clamp(260px, 46vw, 560px) !important;
  object-fit: cover !important;
}

.page-template-page-sostenibilita .sustainability-content-section {
  padding-top: clamp(54px, 7vw, 95px) !important;
}

@media (max-width: 900px) {
  body.page-template-page-sostenibilita .sustainability-video-section,
  .page-template-page-sostenibilita .sustainability-video-section,
  .sustainability-video-section {
    min-height: 260px !important;
  }
  .sustainability-video {
    height: 260px !important;
    min-height: 260px !important;
  }
  .page-template-page-sostenibilita .sustainability-content-section {
    padding-top: 42px !important;
  }
}


/* IDF V599 - rifiniture finali cliente */
@media (min-width: 901px) {
  .primary-bar .header-inner { min-height: 124px !important; }
  .site-brand .custom-logo-link img,
  .site-brand .default-brand-logo,
  .site-brand img.custom-logo,
  .secondary-brand-img { max-height: 86px !important; }
  .side-quick-nav { top: 124px !important; min-height: calc(100vh - 124px) !important; }
}
.footer-black-bar a { color: inherit; }
.saphira-footer-brand { display: inline-flex; align-items: center; gap: 8px; }
.saphira-footer-brand img { width: 34px; height: 34px; object-fit: contain; border-radius: 50%; background:#fff; }
.page .entry-content table,
.page-elementor-content table { width: 100%; border-collapse: collapse; margin: 22px 0; font-size: 14px; }
.page .entry-content th, .page .entry-content td,
.page-elementor-content th, .page-elementor-content td { border: 1px solid rgba(15,23,42,.15); padding: 10px; text-align: left; vertical-align: top; }
.page .entry-content th,
.page-elementor-content th { background: rgba(15,23,42,.06); font-weight: 800; }

/* V597 - Territorio: video/overlay a piena larghezza e altezza coerente */
.territory-video-section,
.territory-video-section .container-full {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.territory-video-section .container-full {
  display: block !important;
}

.territory-wide-video {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: none !important;
  height: clamp(420px, 52vw, 760px) !important;
  min-height: 420px !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
}

@media (min-width: 901px) {
  body.has-side-quick-nav .territory-video-section,
  body.has-side-quick-nav .territory-video-section .container-full,
  .site-main .territory-video-section,
  .site-main .territory-video-section .container-full {
    width: 100% !important;
    max-width: none !important;
  }
}

@media (max-width: 900px) {
  .territory-wide-video {
    height: clamp(300px, 58vw, 520px) !important;
    min-height: 300px !important;
  }
}

/* IDF V601 - footer Saphira come riferimento: testo prima e dragonessa a destra */
.site-footer .footer-black-bar-inner .saphira-footer-credit,
.site-footer .footer-black-bar-inner .saphira-footer-credit * {
  font-size: 10px !important;
  line-height: 1em !important;
  font-weight: 400 !important;
}
.site-footer .footer-black-bar-inner .saphira-footer-brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}
.site-footer .footer-black-bar-inner .saphira-footer-brand span {
  order: 1 !important;
  white-space: nowrap !important;
}
.site-footer .footer-black-bar-inner .saphira-footer-brand img {
  order: 2 !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 700px) {
  .site-footer .footer-black-bar-inner .saphira-footer-brand span { white-space: normal !important; }
}

/* IDF V605 - Territorio: ripristina video, rimuove overlay/scurimenti e full width */
.territory-video-section,
.territory-video-section .container,
.territory-video-section .container-full {
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
.territory-video-section::before,
.territory-video-section::after,
.territory-video-section .container-full::before,
.territory-video-section .container-full::after,
.territory-video-section .elementor-background-overlay,
.territory-video-section .video-overlay,
.territory-video-section .overlay {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}
.territory-wide-video {
  display: block !important;
  width: 100vw !important;
  min-width: 100vw !important;
  max-width: none !important;
  height: clamp(420px, 52vw, 760px) !important;
  min-height: 420px !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  background: transparent !important;
}
@media (max-width: 900px) {
  .territory-wide-video {
    height: clamp(300px, 58vw, 520px) !important;
    min-height: 300px !important;
  }
}

/* IDF V605 - Footer Saphira: dragonessa dentro cerchio bianco, non quadrato */
.site-footer .footer-black-bar-inner .saphira-footer-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}
.site-footer .footer-black-bar-inner .saphira-footer-brand img {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  padding: 3px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  box-shadow: none !important;
}


/* =========================================================
   V606 - Footer dragonessa senza sfondo bianco, pill categorie
   testo bianco su hover/attivo, immagini realizzazioni alte uguali
   ========================================================= */
.site-footer .footer-black-bar-inner .saphira-footer-brand img {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.archive-filters .filter-pill,
.archive-filters .filter-pill:link,
.archive-filters .filter-pill:visited,
.project-categories a,
.project-categories a:link,
.project-categories a:visited {
  color: #111111 !important;
}

.archive-filters .filter-pill:hover,
.archive-filters .filter-pill:focus,
.archive-filters .filter-pill.is-active,
.archive-filters .filter-pill.is-active:link,
.archive-filters .filter-pill.is-active:visited,
.project-categories a:hover,
.project-categories a:focus,
.project-categories a.is-active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.post-type-archive-realizzazione .cards-grid,
.tax-categoria_realizzazione .cards-grid {
  align-items: start !important;
}

.post-type-archive-realizzazione .project-card,
.tax-categoria_realizzazione .project-card {
  display: flex !important;
  flex-direction: column !important;
}

.post-type-archive-realizzazione .project-media,
.tax-categoria_realizzazione .project-media {
  height: 320px !important;
  min-height: 320px !important;
  max-height: 320px !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
}

.post-type-archive-realizzazione .project-media img,
.tax-categoria_realizzazione .project-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

@media (max-width: 900px) {
  .post-type-archive-realizzazione .project-media,
  .tax-categoria_realizzazione .project-media {
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
  }
}

@media (max-width: 620px) {
  .post-type-archive-realizzazione .project-media,
  .tax-categoria_realizzazione .project-media {
    height: 240px !important;
    min-height: 240px !important;
    max-height: 240px !important;
  }
}


/* =========================================================
   V607 - Realizzazioni: uniformare anche l'altezza delle card
   ========================================================= */
.post-type-archive-realizzazione .cards-grid,
.tax-categoria_realizzazione .cards-grid {
  align-items: stretch !important;
}

.post-type-archive-realizzazione .project-card,
.tax-categoria_realizzazione .project-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.post-type-archive-realizzazione .project-body,
.tax-categoria_realizzazione .project-body {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
}

.post-type-archive-realizzazione .project-description,
.tax-categoria_realizzazione .project-description {
  flex: 1 1 auto !important;
}


/* =========================================================
   V608 - Home: card Realizzazioni in evidenza tutte alte uguali
   ========================================================= */
.home-featured-realizzazioni .cards-grid {
  align-items: stretch !important;
}

.home-featured-realizzazioni .project-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.home-featured-realizzazioni .project-media {
  height: 320px !important;
  min-height: 320px !important;
  max-height: 320px !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
}

.home-featured-realizzazioni .project-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.home-featured-realizzazioni .project-body {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
}

.home-featured-realizzazioni .project-description {
  flex: 1 1 auto !important;
}

@media (max-width: 900px) {
  .home-featured-realizzazioni .project-media {
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
  }
}

@media (max-width: 620px) {
  .home-featured-realizzazioni .project-media {
    height: 240px !important;
    min-height: 240px !important;
    max-height: 240px !important;
  }
}


/* =========================================================
   V609 - Home realizzazioni: titolo nero/visibile, spazi corretti,
   card cliccabile verso pagina Realizzazioni
   ========================================================= */
.home-featured-realizzazioni .project-card {
  cursor: pointer !important;
}

.home-featured-realizzazioni .project-body {
  justify-content: flex-start !important;
  gap: 10px !important;
}

.home-featured-realizzazioni .project-categories {
  margin-bottom: 0 !important;
}

.home-featured-realizzazioni .project-card h3,
.home-featured-realizzazioni .project-card h3 a {
  display: block !important;
  margin: 0 !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.home-featured-realizzazioni .project-description {
  margin-top: 0 !important;
  flex: 0 0 auto !important;
}

.home-featured-realizzazioni .project-description p {
  margin-top: 0 !important;
}


/* =========================================================
   V610 - Territorio: video più basso
   ========================================================= */
.territory-wide-video {
  height: clamp(260px, 34vw, 460px) !important;
  min-height: 260px !important;
}

@media (max-width: 900px) {
  .territory-wide-video {
    height: clamp(220px, 46vw, 360px) !important;
    min-height: 220px !important;
  }
}


/* =========================================================
   V607 - Cookie banner visibile e slider foto nelle Realizzazioni
   ========================================================= */
.idf-cookie-consent {
  z-index: 999999 !important;
}

.project-card--static .project-media.has-gallery {
  pointer-events: auto !important;
}

.project-media.has-gallery {
  position: relative !important;
  display: block !important;
  background: #f4f7fb !important;
}

.project-gallery-slider,
.project-gallery-track,
.project-gallery-slide {
  width: 100% !important;
  height: 100% !important;
}

.project-gallery-slider {
  position: relative !important;
  overflow: hidden !important;
}

.project-gallery-slide {
  display: none !important;
  margin: 0 !important;
}

.project-gallery-slide.is-active {
  display: block !important;
}

.project-gallery-slide img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.project-gallery-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  background: rgba(255,255,255,.94) !important;
  color: #111827 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 24px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  z-index: 4 !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.18) !important;
}

.project-gallery-arrow:hover {
  background: #111827 !important;
  color: #fff !important;
}

.project-gallery-prev { left: 12px !important; }
.project-gallery-next { right: 12px !important; }

.project-gallery-dots {
  position: absolute !important;
  left: 50% !important;
  bottom: 12px !important;
  transform: translateX(-50%) !important;
  display: inline-flex !important;
  gap: 6px !important;
  z-index: 4 !important;
}

.project-gallery-dot {
  width: 7px !important;
  height: 7px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.55) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.18) !important;
}

.project-gallery-dot.is-active {
  width: 18px !important;
  background: #ffffff !important;
}

/* IDF V608 - Migliorie slider immagini card realizzazioni */
.project-media.has-gallery { position: relative !important; }
.project-gallery-slider { position: relative !important; width: 100% !important; height: 100% !important; overflow: hidden !important; }
.project-gallery-track, .project-gallery-slide { width: 100% !important; height: 100% !important; }
.project-gallery-slide { position:absolute !important; inset:0 !important; opacity:0 !important; transition: opacity .35s ease !important; margin:0 !important; }
.project-gallery-slide.is-active { opacity:1 !important; z-index:1 !important; }
.project-gallery-slide img { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; }
.project-gallery-arrow { position:absolute !important; top:50% !important; transform:translateY(-50%) !important; z-index:3 !important; width:34px !important; height:34px !important; border-radius:999px !important; border:0 !important; background:rgba(17,24,39,.82) !important; color:#fff !important; cursor:pointer !important; display:flex !important; align-items:center !important; justify-content:center !important; font-size:24px !important; line-height:1 !important; }
.project-gallery-prev { left:12px !important; }
.project-gallery-next { right:12px !important; }
.project-gallery-dots { position:absolute !important; left:50% !important; bottom:10px !important; transform:translateX(-50%) !important; display:flex !important; gap:5px !important; z-index:3 !important; }
.project-gallery-dot { width:7px !important; height:7px !important; border-radius:999px !important; background:rgba(255,255,255,.55) !important; }
.project-gallery-dot.is-active { background:#ffffff !important; }

/* IDF V609 - Frecce slider realizzazioni più pulite e nascoste a inizio/fine */
.project-gallery-arrow[hidden] { display:none !important; }
.project-gallery-arrow {
  width: 38px !important;
  height: 38px !important;
  background: rgba(255,255,255,.94) !important;
  color: #111827 !important;
  border: 1px solid rgba(17,24,39,.10) !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.18) !important;
  font-size: 0 !important;
}
.project-gallery-arrow svg {
  width: 19px !important;
  height: 19px !important;
  display: block !important;
}
.project-gallery-arrow:hover {
  background: #111827 !important;
  color: #ffffff !important;
}
