/* Font Google caricato via <link> in <head> (preconnect + swap) invece di @import: evita di bloccare il parsing CSS e accelera il caricamento. */

/* ═══════════════════════════════════════════════════════
   VARIABLES
═══════════════════════════════════════════════════════ */
:root {
  /* Core brand */
  --blue:    #1B3F91;
  --dark:    #0C2156;
  --light:   #2D5DBF;

  /* Surfaces */
  --white:   #ffffff;
  --off:     #F5F7FB;
  --off2:     #dfe9ff;

  /* Text */
  --text:    #111111;
  --navy:    #0B1728;
  --muted:   #666666;
  --subtle:  #5A6A82;
  --faint:   #9AADC0;

  /* Borders */
  --border:   rgba(0, 0, 0, .10);
  --border-b: rgba(27, 63, 145, .10);

  /* Transitions */
  --ease:   cubic-bezier(.4, 0, .2, 1);
  --spring: cubic-bezier(.34, 1.56, .64, 1);

  /* Aliases used by brand/guide components */
  --b:  #1B3F91;
  --bd: #0C2156;
  --bl: #2D5DBF;
  --w:  #ffffff;
  --bg: #F5F7FB;
  --t:  #0B1728;
  --s:  #5A6A82;
  --f:  #9AADC0;
  --br: rgba(27, 63, 145, .10);
  --sp: cubic-bezier(.34, 1.56, .64, 1);
}

/* ═══════════════════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html   { scroll-behavior: smooth; font-size: 16px; }
body   { font-family: 'Inter', sans-serif; background: #fff; color: var(--text); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img    { display: block; max-width: 100%; }
a      { text-decoration: none; color: inherit; }
button { font-family: inherit; border: none; background: none; cursor: pointer; }
strong{font-weight: 900;}
.text-center{text-align: center;}

/* Accessibilità - skip link e focus visibile su tastiera */
.skip-link {
  position: absolute; top: -48px; left: 12px; z-index: 10000;
  background: #1B3F91; color: #fff; padding: 12px 20px;
  border-radius: 0 0 8px 8px; font-weight: 700; font-size: .9rem;
  transition: top .2s var(--ease);
}
.skip-link:focus { top: 0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid #2D5DBF; outline-offset: 2px;
}

/* ═══════════════════════════════════════════════════════
   SHARED - FLOATING BUTTONS
═══════════════════════════════════════════════════════ */
.floats {
  position: fixed; bottom: 28px; right: 24px;
  z-index: 999; display: flex; flex-direction: column; gap: 12px;
}
.fb {
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .20); transition: transform .2s;
}
.fb:hover { transform: translateY(-3px); }
.fb svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fb i   { font-size: 20px; color: #fff; }
.fb-tel, .fb-p { background: #1B3F91; }
.fb-wa,  .fb-w { background: #25D366; }

/* ═══════════════════════════════════════════════════════
   SHARED - HEADER
═══════════════════════════════════════════════════════ */
#hdr {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  height: 68px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 15px;
  transition: background .4s, box-shadow .4s;
}
#hdr.solid {
  background: #fff;
  box-shadow: 0 1px 0 var(--border);
}

/* Logo */
.home .h-logo{
	display: block;
	opacity: 0;
}
.home #hdr.solid .h-logo{
	opacity: 1;
	display: block;
}

/* Logo */
.h-logo img   { height: 44px; object-fit: contain; }
.h-logo-dark  { display: none; }
.h-logo-light { display: block; }
#hdr.solid .h-logo-light             { display: none; }
#hdr.solid .h-logo-dark              { display: block; }
#hdr:not(.solid) .h-logo > img       { filter: brightness(0) invert(1) opacity(.85); }

/* Navigation */
.h-nav { flex: 1; display: flex; align-items: center; justify-content: center; gap: 4px; }
.hn {
  padding: 8px 14px; border-radius: 6px;
  font-size: 1.05rem; font-weight: 600; letter-spacing: .01em;
  color: rgba(255, 255, 255, .85);
  transition: color .2s, background .2s;
}
.hn:hover             { color: #fff; background: rgba(255, 255, 255, .12); }
.hn.on                { color: #fff; font-weight: 700; position: relative; }
.hn.on::after         { content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 2px; border-radius: 2px; background: currentColor; }
#hdr.solid .hn        { color: #666; }
#hdr.solid .hn:hover  { background: var(--off); color: #1B3F91; }
#hdr.solid .hn.on     { color: #1B3F91; }

/* Right controls */
.h-right  { display: flex; align-items: center; gap: 12px; }
.lang-sw  { display: flex; gap: 2px; padding: 3px; background: rgba(255, 255, 255, .15); border-radius: 6px; }
#hdr.solid .lang-sw   { background: var(--off); }
.lng      { padding: 4px 10px; border-radius: 4px; font-size: .75rem; font-weight: 700; color: rgba(255, 255, 255, .70); transition: all .18s; }
.lng.on               { background: #fff; color: #1B3F91; }
#hdr.solid .lng       { color: #666; }
#hdr.solid .lng.on    { background: #1B3F91; color: #fff; }

/* Call button */
.btn-call {
  display: flex; align-items: center; gap: 7px;
  padding: 10px 22px; background: #fff; color: #1B3F91;
  border-radius: 50px; font-size: .82rem; font-weight: 800; letter-spacing: .01em;
  transition: all .2s;
}
.btn-call:hover        { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0, 0, 0, .15); }
.btn-call svg          { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.btn-call i            { font-size: 13px; }
#hdr.solid .btn-call   { background: #1B3F91; color: #fff; }

/* Burger */
.burger {
  display: none; width: 40px; height: 40px;
  flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; border-radius: 6px; background: rgba(255, 255, 255, .15);
}
#hdr.solid .burger                    { background: var(--off); }
.burger span                          { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; transition: all .3s; }
#hdr.solid .burger span               { background: var(--text); }
.burger.open span:first-child         { transform: translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2)        { opacity: 0; }
.burger.open span:last-child          { transform: translateY(-7px) rotate(-45deg); }

/* ═══════════════════════════════════════════════════════
   SHARED - MOBILE NAV
═══════════════════════════════════════════════════════ */
#mob-nav {
  display: none; position: fixed; top: 68px; left: 0; right: 0; z-index: 899;
  background: #fff; border-bottom: 1px solid var(--border);
  padding: 12px 15px 24px; flex-direction: column; gap: 2px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .08);
}
#mob-nav.open { display: flex; }
.mn-i {
  padding: 13px 16px; border-radius: 8px;
  font-size: 1rem; font-weight: 600; color: #555;
  transition: all .18s;
}
.mn-i:hover  { background: var(--off); color: #1B3F91; }
.mn-i.on, .mn-acc-btn.on { color: #1B3F91; background: var(--off); font-weight: 700; box-shadow: inset 3px 0 0 #1B3F91; }
.mn-call {
  margin-top: 14px; padding: 14px;
  background: #1B3F91; color: #fff;
  border-radius: 10px; text-align: center; font-weight: 700; font-size: .95rem;
}

/* ═══════════════════════════════════════════════════════
   SHARED - MEGA MENU (desktop dropdown su Prodotti)
═══════════════════════════════════════════════════════ */
.hn-wrap { position: relative; display: flex; align-items: center; }

.hn-chev {
  margin-left: 2px; vertical-align: middle;
  transition: transform .22s var(--ease);
  display: inline-block;
}

/* Overlay scuro dietro il mega-menu */
.mega-overlay {
  position: fixed; top: 68px; left: 0; right: 0; bottom: 0;
  background: rgba(0, 0, 0, .75);
  z-index: 799;
  opacity: 0; pointer-events: none;
  transition: opacity .25s var(--ease);
}
body:has(.mega.open) .mega-overlay { opacity: 1; pointer-events: all; }

.mega {
  position: fixed; top: 68px; left: 0; right: 0;
  background: #fff;
  border-top: 3px solid #1B3F91;
  box-shadow: 0 16px 48px rgba(0,0,0,.14);
  opacity: 0; pointer-events: none;
  transition: opacity .22s var(--ease), transform .22s var(--ease);
  transform: translateY(-8px);
  z-index: 800;
}
.mega.open {
  opacity: 1; pointer-events: all;
  transform: translateY(0);
}

.mega-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 28px 15px 32px;
}

.mega-cats-wrap {
  position: relative;
  margin-bottom: 24px; padding-bottom: 22px;
  border-bottom: 1px solid var(--border);
}

.mega-arrow {
  position: absolute; top: 35%; transform: translateY(-50%);
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1.5px solid var(--border);
  background: #fff; color: var(--navy); cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,.10);
  transition: background .15s, opacity .22s, box-shadow .15s;
  z-index: 2;
}
.mega-arrow:hover { background: var(--off); box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.mega-arrow.hidden { opacity: 0; pointer-events: none; }
.mega-arrow-l { left: 0; }
.mega-arrow-r { right: 0; }

.mega-cats {
  padding: 0 46px;
}

.mega-cats-track {
  overflow: hidden;
  width: 100%;
}

.mega-cats-pages {
  display: flex; width: 100%;
  transition: transform .35s var(--ease);
}

.mega-cats-page {
  flex: 0 0 100%; min-width: 0;
  display: flex; gap: 14px;
}

.mega-cat {
  /* 8 thumb esatte per slide (videata), 7 gap da 14px: (100% - 7*14px) / 8 */
  flex: 0 0 calc((100% - 7 * 14px) / 8);
  display: flex; flex-direction: column;
  min-width: 0; cursor: pointer; border-radius: 10px;
  overflow: hidden; border: 2px solid transparent;
  transition: border-color .18s, box-shadow .18s;
}
.mega-cat:hover,
.mega-cat.active {
  border-color: #1B3F91;
  box-shadow: 0 4px 16px rgba(27,63,145,.15);
}

.mega-cat-img {
  aspect-ratio: 4/3; overflow: hidden; background: var(--off);
}
.mega-cat-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .3s var(--ease);
}
.mega-cat:hover .mega-cat-img img,
.mega-cat.active .mega-cat-img img { transform: scale(1.05); }

.mega-cat-name {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 6px 4px; background: var(--light);
  font-size: .78rem; font-weight: 700; color: var(--white);
  text-align: center; line-height: 1.2; letter-spacing: -.01em;
}
.mega-cat.active .mega-cat-name { background: #eef1ff; color: #1B3F91; }
.mega-cat.on:not(.active):not(:hover) { border-color: rgba(27,63,145,.45); }
.mega-dlinks a.on { color: #1B3F91; }
.mn-cat-btn.on, .mn-sub-i.on { color: #1B3F91; font-weight: 700; }

.mega-detail { min-height: 110px; }

.mega-dtitle {
  font-size: .78rem; font-weight: 900; letter-spacing: .12em;
  text-transform: uppercase; color: #1B3F91;
  padding: 0 0 10px; margin-bottom: 14px;
  border-bottom: 2px solid #1B3F91;
  display: inline-block;
  transition: opacity .15s;
}

.mega-dlinks {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 4px 24px;
}
.mega-dlinks a {
  font-size: .9rem; color: var(--subtle);
  font-weight: 700;
  padding: 5px 0; display: flex; align-items: center; gap: 7px;
  transition: color .15s;
}
.mega-dlinks a::before { content: '-'; color: #1B3F91; font-size: .68rem; flex-shrink: 0; }
.mega-dlinks a:hover { color: #1B3F91; }

/* ═══════════════════════════════════════════════════════
   SHARED - MOBILE NAV ACCORDION (Prodotti)
═══════════════════════════════════════════════════════ */
.mn-acc { }

.mn-acc-btn {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 13px 16px; border-radius: 8px;
  font-size: 1rem; font-weight: 600; color: #555;
  background: none; text-align: left;
  transition: background .15s, color .15s;
}
.mn-acc-btn:hover { background: var(--off); color: #1B3F91; }

.mn-acc-icon { flex-shrink: 0; transition: transform .25s var(--ease); }
.mn-acc-btn.open .mn-acc-icon { transform: rotate(180deg); }

.mn-acc-content { display: none; padding-left: 12px; }
.mn-acc-content.open { display: block; }

.mn-cat-btn {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-radius: 6px;
  font-size: .9rem; font-weight: 600; color: var(--navy);
  background: none; transition: background .15s, color .15s;
}
.mn-cat-btn:hover { background: var(--off); color: #1B3F91; }

.mn-cat-icon { flex-shrink: 0; transition: transform .22s var(--ease); }
.mn-cat-btn.open .mn-cat-icon { transform: rotate(180deg); }

.mn-sub-list { display: none; padding: 2px 0 4px 12px; }
.mn-sub-list.open { display: block; }

.mn-sub-i {
  display: block; padding: 7px 10px; border-radius: 4px;
  font-size: .83rem; color: var(--subtle);
  transition: color .15s, background .15s;
}
.mn-sub-i:hover { color: #1B3F91; background: var(--off); }

/* ═══════════════════════════════════════════════════════
   SHARED - SCROLL REVEAL
═══════════════════════════════════════════════════════ */
.rv    { opacity: 0; transform: translateY(30px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.rv.in { opacity: 1; transform: none; }

/* ═══════════════════════════════════════════════════════
   SHARED - FOOTER
═══════════════════════════════════════════════════════ */
footer { background: #1E3A6E; color: rgba(255, 255, 255, .55); }

.ft-main {
  max-width: 1280px; margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 56px; padding: 72px 15px;
}

.ft-col hr{
  border: 1px solid rgba(255, 255, 255, .04);
  margin: 15px 0;
}

.ft-brand img {
  height: 40px; object-fit: contain;
  filter: brightness(0) invert(1) opacity(.75);
  margin-bottom: 18px;
}
.ft-tagline      { font-size: .82rem; font-weight: 600; color: rgba(255, 255, 255, .75); margin-bottom: 10px; }
.ft-brand p      { font-size: .85rem; line-height: 1.65; max-width: 260px; color: rgba(255, 255, 255, 1); }
.ft-brand address {
  font-style: normal; font-size: .8rem;
  color: rgba(255, 255, 255, 1); margin-top: 14px; line-height: 1.7;
}
.ft-col .ft-h {
  font-size: .7rem; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: rgba(255, 255, 255, .85); margin-bottom: 18px;
}
.ft-col a        { display: block; font-size: .85rem; color: rgba(255, 255, 255, 1); margin-bottom: 11px; transition: color .2s; }
.ft-col a:hover  { color: #fff; }
.ft-bottom {
  border-top: 1px solid rgba(255, 255, 255, .06);
  max-width: 1280px; margin: 0 auto; padding: 22px 15px;
  display: flex; justify-content: space-between;
  font-size: .75rem; color: rgba(255, 255, 255, 1);
  flex-wrap: wrap; gap: 8px;
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - HERO
═══════════════════════════════════════════════════════ */
.hero {
  position: relative; height: 100vh; min-height: 600px;
  overflow: hidden; display: flex; align-items: flex-end;
}
.hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(11, 23, 40, .70) 0%, rgba(11, 23, 40, .30) 50%, rgba(27, 63, 145, .25) 100%);
}
.hero-content {
  position: relative; z-index: 1;
  padding: 0 15px 80px; max-width: 860px;
}
/* Hero logo - visibile solo su homepage prima dello scroll */
.hero-logo-wrap {
  margin-bottom: 28px;
  opacity: 1; transform: translateY(0);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.hero-logo-wrap img {
  height: 115px; object-fit: contain;
  filter: brightness(0) invert(1);
}
#hdr.solid ~ .hero .hero-logo-wrap {
  /*opacity: 0; transform: translateY(-12px); pointer-events: none;*/
}

.hero-eyebrow {
  display: inline-block;
  font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255, 255, 255, .60); margin-bottom: 24px;
}
.hero-h1 {
  font-size: clamp(1.8rem, 3.8vw, 3.4rem);
  font-weight: 900; color: #fff;
  line-height: 1.08; letter-spacing: -.03em; margin-bottom: 24px;
}
.hero-sub {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 300; color: rgba(255, 255, 255, .75);
  line-height: 1.6; max-width: 560px; margin-bottom: 40px;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

.btn-primary {
  display: inline-flex; align-items: center; gap: 9px;
  background: #fff; color: #1B3F91;
  padding: 15px 30px; border-radius: 50px;
  font-weight: 800; font-size: .9rem; letter-spacing: .01em;
  transition: all .2s;
}
.btn-primary:hover { background: #eef1ff; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, .15); }

.btn-secondary {
  display: inline-flex; align-items: center; gap: 9px;
  border: 2px solid rgba(255, 255, 255, .45); color: #fff;
  padding: 14px 28px; border-radius: 50px;
  font-weight: 600; font-size: .9rem;
  backdrop-filter: blur(6px);
  transition: all .2s;
}
.btn-secondary:hover { border-color: #fff; background: rgba(255, 255, 255, .12); }

.hero-scroll {
  position: absolute; bottom: 36px; right: 5%; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: rgba(255, 255, 255, .45); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase;
}
.scroll-line {
  width: 1px; height: 56px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, .50), transparent);
  animation: scrollDrop 2.2s ease-in-out infinite;
}
@keyframes scrollDrop {
  0%     { transform: scaleY(0); transform-origin: top;    }
  50%    { transform: scaleY(1); transform-origin: top;    }
  50.01% { transform: scaleY(1); transform-origin: bottom; }
  100%   { transform: scaleY(0); transform-origin: bottom; }
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - ANNIVERSARY BAND
═══════════════════════════════════════════════════════ */
.anni-band {
  background: #1B3F91; padding: 0 15px;
  display: flex; justify-content: center; align-items: center;
  overflow: hidden; position: relative;
}
.anni-right { max-width: 620px; }
.anni-num {
  font-size: 1rem; font-weight: 900; color: #fff;
  line-height: .85; letter-spacing: -.06em;
  padding: 32px 48px 32px 0;
  position: relative; z-index: 1; opacity: .95;
}
.anni-num span.anni-year {
  display: block !important;
  font-size: clamp(1.4rem, 2.5vw, 2rem) !important;
  font-weight: 700; color: rgba(255, 255, 255, .65);
  letter-spacing: .08em; text-transform: uppercase; line-height: 1; margin-bottom: 18px;
}
.anni-num span.anni-sub {
  display: block !important;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(3rem, 6vw, 4.5rem) !important;
  font-weight: 900; color: #fff; letter-spacing: .05em; line-height: .9;
	text-align: center;
}
.anni-num span {
  display: block; font-size: .22em; font-weight: 400;
  letter-spacing: .06em; text-transform: uppercase;
  color: rgba(255, 255, 255, .55); margin-bottom: 4px;
}
.anni-right {
  padding: 48px 0 48px 48px;
  border-left: 1px solid rgba(255, 255, 255, .15);
  position: relative; z-index: 1;
}
.anni-tag {
  font-size: .7rem; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: rgba(255, 255, 255, .40);
  margin-bottom: 14px; display: block;
}
.anni-h {
  font-size: clamp(1.4rem, 2.8vw, 2.4rem);
  font-weight: 900; color: #fff;
  line-height: 1.15; letter-spacing: -.03em; margin-bottom: 18px;
  max-width: 500px; 
}
.anni-p      { font-size: .95rem; color: rgba(255, 255, 255, .65); line-height: 1.7; max-width: 500px; margin-bottom: 28px; }
.anni-stats  { display: flex; gap: 40px; flex-wrap: wrap; }
.as-n        { font-size: 2rem; font-weight: 900; color: #fff; line-height: 1; letter-spacing: -.04em; }
.as-l        { font-size: .75rem; color: rgba(255, 255, 255, .50); margin-top: 4px; font-weight: 500; }
.anni-bg {
  position: absolute; right: -40px; top: 50%; transform: translateY(-50%);
  font-size: 28vw; font-weight: 900; color: rgba(255, 255, 255, .03);
  letter-spacing: -.1em; pointer-events: none; line-height: 1; z-index: 0;
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - CHI SIAMO
═══════════════════════════════════════════════════════ */
.statement { padding: 100px 15px; border-bottom: 1px solid var(--border); }
.statement-inner {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
}
.st-tag {
  display: block; font-size: .7rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: #1B3F91; margin-bottom: 16px;
}
.st-h    { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 900; color: var(--text); letter-spacing: -.04em; line-height: 1.08; }
.st-p    { font-size: 1.05rem; color: var(--muted); line-height: 1.75; margin-bottom: 20px; }
.stat-row { display: flex; gap: 48px; margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--border); }
.s-num   { font-size: 2.8rem; font-weight: 900; color: #1B3F91; line-height: 1; letter-spacing: -.04em; }
.s-lbl   { font-size: .8rem; color: var(--muted); margin-top: 5px; font-weight: 500; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - CONSULENZA SPLIT
═══════════════════════════════════════════════════════ */
.consult { padding: 88px 0 0px; background: var(--off2); }
.consult-head {
  max-width: 1200px; margin: 0 auto; padding: 0 15px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.consult-head .c-h { margin-bottom: 0; }
.consult-img { position: relative; overflow: hidden; width: 100%; margin: 88px 0 0; }
.consult-img img { width: 100%; height: 100%; max-height: 560px; object-fit: cover; display: block; }
.c-tag   { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #1B3F91; margin-bottom: 14px; display: block; }
.c-h     { font-size: clamp(1.6rem, 3vw, 2.6rem); font-weight: 900; color: var(--text); letter-spacing: -.04em; line-height: 1.1; margin-bottom: 20px; }
.btn-blue {
  display: inline-flex; align-items: center; gap: 8px;
  background: #1B3F91; color: #fff;
  padding: 13px 26px; border-radius: 50px;
  font-weight: 700; font-size: .88rem;
  transition: all .2s; width: fit-content;
}
.btn-blue:hover { background: var(--dark); transform: translateY(-2px); }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - SECTORS
═══════════════════════════════════════════════════════ */
.sectors { padding: 80px 0; }
#prodotti { padding: 80px 0 0; background: var(--off2);}
.sectors-header {
  padding: 0 15px; margin: 0 auto 56px; max-width: 1200px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
}
.sectors-h    { font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 900; color: var(--text); letter-spacing: -.04em; }
.sectors-link {
  font-size: .85rem; font-weight: 700; color: #1B3F91;
  border-bottom: 2px solid #1B3F91; padding-bottom: 2px;
  white-space: nowrap; transition: opacity .2s;
}
.sectors-link:hover { opacity: .7; }

.sector-grid {
  display: grid;
	/*grid-template-columns: repeat(2, 1fr);*/
background-color: #fff;
	 grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 340px;
  gap: 3px; padding: 0 3px;
}
.sector-panel { position: relative; overflow: hidden; }

/* Single-image panels */
.sector-panel > img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s var(--ease);
}
.sector-panel:hover > img { transform: scale(1.05); }

/* Old two-image fade (legacy) */
.sector-panel .sp-img2 { opacity: 0; animation: spFade 10s ease-in-out infinite; }
@keyframes spFade { 0%, 40% { opacity: 0; } 50%, 90% { opacity: 1; } 100% { opacity: 0; } }

/* Slider */
.sp-slider  { position: absolute; inset: 0; }
.sp-slide   { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.sp-slide.on { opacity: 1; }
.sp-slide img { width: 100%; height: 100%; object-fit: contain; position: static; max-width: none; transition: none; }

/* Overlay */
.sp-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(0deg, rgba(11, 23, 40, .88) 0%, rgba(11, 23, 40, .15) 55%, transparent 100%);
  transition: opacity .3s;
}
.sector-panel:hover .sp-overlay { opacity: .95; }

/* Panel body */
.sp-body   { display: block; text-decoration: none; color: inherit; position: absolute; bottom: 0; left: 0; right: 0; padding: 26px 24px; z-index: 2; }
.sp-num    { font-size: .62rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: rgba(255, 255, 255, .40); margin-bottom: 5px; }
.sp-name   { font-size: 1.25rem; font-weight: 800; color: #fff; margin-bottom: 5px; letter-spacing: -.02em; }
.sp-brands { display: none; }
.sp-arrow  {
  display: inline-flex; align-items: center; gap: 6px;
  color: #fff; font-size: .8rem; font-weight: 700;
  margin-top: 12px; opacity: 0; transform: translateY(6px);
  transition: all .3s;
}
.sector-panel:hover .sp-arrow { opacity: 1; transform: translateY(0); }
.sp-arrow svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* Dots */
.sp-dots { position: absolute; bottom: 12px; left: 0; right: 0; display: flex; justify-content: center; gap: 7px; z-index: 20; }
.sp-dot  { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .45); cursor: pointer; transition: all .25s; }
.sp-dot.on { background: #fff; width: 20px; border-radius: 4px; }

/* Zoom button */
.sp-zoom {
  position: absolute; top: 12px; right: 12px; z-index: 10;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(0,0,0,.35); backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .25s var(--ease), background .2s;
}
.sector-panel:hover .sp-zoom { opacity: 1; }
.sp-zoom:hover { /*background: rgba(255,255,255,1);*/ }

/* Lightbox */
#sp-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.92);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .25s var(--ease);
}
#sp-lightbox.open { opacity: 1; pointer-events: all; }
#sp-lb-img { max-width: 90vw; max-height: 85vh; object-fit: contain; border-radius: 4px; user-select: none; display: block; }
#sp-lb-close {
  position: absolute; top: 16px; right: 20px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%; width: 44px; height: 44px;
  color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
#sp-lb-close:hover { background: rgba(255,255,255,.22); }
#sp-lb-prev, #sp-lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%; width: 48px; height: 48px;
  color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
#sp-lb-prev { left: 16px; }
#sp-lb-next { right: 16px; }
#sp-lb-prev:hover, #sp-lb-next:hover { background: rgba(255,255,255,.25); }
@media (max-width: 560px) {
  #sp-lb-prev { left: 6px; } #sp-lb-next { right: 6px; }
  #sp-lb-prev, #sp-lb-next { width: 36px; height: 36px; }
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - BRAND SECTION
═══════════════════════════════════════════════════════ */
.brand-section { background: #162D5E; padding: 100px 15px; }
.brand-inner   { max-width: 1200px; margin: 0 auto; }
.brand-top-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 60px; flex-wrap: wrap; }
.brand-h  { font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 900; color: #fff; letter-spacing: -.04em; line-height: 1.1; }
.brand-sub{ font-size: .95rem; color: rgba(255, 255, 255, 1); max-width: 360px; line-height: 1.65; }
.brand-marquee-wrap {
  overflow: hidden; width: calc(100% + 30px); margin: 0 -15px; padding: 8px 0;
  -webkit-mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.brand-marquee       { display: flex; gap: 16px; animation: marqueeScroll 40s linear infinite; width: max-content; }
.brand-marquee:hover { animation-play-state: paused; }
@keyframes marqueeScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.bl {
  background: #fff;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  padding: 18px 28px; transition: transform .2s, box-shadow .2s; flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.bl:hover     { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.bl img       { height: 120px; width: auto; max-width: 130px; object-fit: contain; opacity: .85; transition: opacity .2s; }
.bl:hover img { opacity: 1; }
.brand-cta-row{ margin-top: 40px; display: flex; justify-content: center; }
.btn-outline-w {
  display: inline-flex; align-items: center; gap: 9px;
  border: 2px solid rgba(255, 255, 255, .70); color: #fff;
  padding: 14px 32px; border-radius: 50px;
  font-weight: 700; font-size: .9rem; transition: all .2s;
}
.btn-outline-w:hover { border-color: #fff; background: rgba(255, 255, 255, .15); }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - RISORSE TECNICHE
═══════════════════════════════════════════════════════ */
.risorse        { padding: 100px 15px; background: var(--off); }
.risorse-inner  { max-width: 1200px; margin: 0 auto; }
.risorse-header { text-align: center; margin-bottom: 56px; }
.r-tag  { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #1B3F91; display: block; margin-bottom: 12px; }
.r-h    { font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 900; color: var(--text); letter-spacing: -.04em; margin-bottom: 16px; }
.r-sub  { font-size: 1rem; color: var(--muted); max-width: 560px; margin: 0 auto; line-height: 1.65; }
.risorse-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.r-card { background: #fff; border: 1px solid rgba(0, 0, 0, .07); border-radius: 4px; padding: 36px 32px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.r-icon { width: 48px; height: 48px; background: rgba(27, 63, 145, .08); border-radius: 4px; display: flex; align-items: center; justify-content: center; color: #1B3F91; }
.r-icon svg { width: 24px; height: 24px; }
.r-label    { font-size: 1rem; font-weight: 800; color: var(--text); }
.r-desc     { font-size: .88rem; color: var(--muted); line-height: 1.6; flex: 1; }
.r-soon     { font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: #1B3F91; background: rgba(27, 63, 145, .08); padding: 4px 10px; border-radius: 2px; }
.risorse-note   { text-align: center; font-size: .9rem; color: var(--muted); margin-top: 40px; }
.risorse-note a { color: #1B3F91; font-weight: 700; border-bottom: 1px solid #1B3F91; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - SERVIZI
═══════════════════════════════════════════════════════ */
.services       { padding: 100px 15px; background: #fff; border-top: 1px solid var(--border); }
.services-inner { max-width: 1200px; margin: 0 auto; }
.srv-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 56px; flex-wrap: wrap; }
.srv-h    { font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 900; color: var(--text); letter-spacing: -.04em; width: 100%; text-align: center; }
.srv-intro{ font-size: .95rem; color: var(--muted); max-width: 380px; line-height: 1.65; }
.srv-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(--border); }
.srv-card { background: #fff; padding: 36px 28px; transition: background .25s; }
.srv-card:hover { background: var(--off); }
.srv-num  { font-size: 2.5rem; font-weight: 900; color: rgba(27, 63, 145, .12); letter-spacing: -.04em; margin-bottom: 16px; line-height: 1; }
.srv-name { font-size: 1rem; font-weight: 800; color: var(--text); margin-bottom: 12px; letter-spacing: -.01em; }
.srv-desc { font-size: .85rem; color: var(--muted); line-height: 1.65; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE - CTA FINALE
═══════════════════════════════════════════════════════ */
.cta-final {
  position: relative; overflow: hidden;
  background: #1B3F91; padding: 100px 15px; text-align: center;
}
.cta-inner   { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
.cta-logo-wm { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60vw; max-width: 700px; opacity: .04; pointer-events: none; filter: brightness(10); z-index: 0; }
.cta-tag { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .50); margin-bottom: 20px; display: block; }
.cta-h   { font-size: clamp(2rem, 4vw, 3rem); font-weight: 900; color: #fff; letter-spacing: -.04em; line-height: 1.1; margin-bottom: 16px; }
.cta-p   { font-size: 1.3rem; color: rgba(255, 255, 255, 1); margin-bottom: 40px; line-height: 1.6; }
.cta-btns{ display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.btn-w {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; color: #1B3F91;
  padding: 15px 32px; border-radius: 50px;
  font-weight: 800; font-size: .9rem; transition: all .2s;
}
.btn-w:hover { background: #eef1ff; transform: translateY(-2px); }
.btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  border: 2px solid rgba(255, 255, 255, .40); color: #fff;
  padding: 14px 30px; border-radius: 50px;
  font-weight: 600; font-size: .9rem; transition: all .2s;
}
.btn-ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .10); }

/* ═══════════════════════════════════════════════════════
   BRAND & GUIDE - PAGE HERO
═══════════════════════════════════════════════════════ */
.ph {
  padding: 180px 0 56px;
  background: linear-gradient(135deg, #0C2156 0%, #1B3F91 100%);
  position: relative; overflow: hidden;
}

/* Breadcrumb condiviso tra ph e plp-hero */
.ph-crumb {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: .75rem; margin-bottom: 20px;
  span{
    color: rgba(255, 255, 255, .65);
  }
}
.ph-crumb a   { color: rgba(255,255,255,.65); font-weight: 600; transition: color .15s; }
.ph-crumb a:hover { color: #fff; text-decoration: underline; }
.ph-crumb .cr-sep { color: rgba(255,255,255,.28); }
.ph-crumb .cr-cur { color: rgba(255,255,255,.92); font-weight: 600; }
.ph::before {
  content: ""; position: absolute; top: -80px; right: -80px;
  width: 360px; height: 360px;
  background: rgba(255, 255, 255, .04); border-radius: 50%;
}
.ph-in  { max-width: 1200px; margin: 0 auto; padding: 0 15px; position: relative; z-index: 1; animation: fadeUp .65s .1s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
.ph-lbl { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .50); margin-bottom: 10px; display: block; }
.ph-h1  { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 900; color: #fff; letter-spacing: -.035em; line-height: 1.05; }
.ph-sub { margin-top: 14px; color: rgba(255, 255, 255, .60); font-size: .95rem; line-height: 1.7; max-width: 500px; }

/* ═══════════════════════════════════════════════════════
   BRAND PAGE - SEARCH & FILTERS
═══════════════════════════════════════════════════════ */
.brand-body { padding: 48px 15px 80px; max-width: 1200px; margin: 0 auto; }
.brand-top  { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; flex-wrap: wrap; }
.search-box { display: flex; gap: 8px; flex: 1; max-width: 380px; }
.s-in {
  flex: 1; padding: 11px 16px;
  border: 2px solid var(--border-b); border-radius: 50px;
  font-size: .875rem; font-family: inherit;
  background: var(--off); color: var(--navy);
  outline: none; transition: border-color .2s, box-shadow .2s;
}
.s-in:focus { border-color: #1B3F91; box-shadow: 0 0 0 3px rgba(27, 63, 145, .08); }
.s-btn {
  padding: 11px 22px; background: #1B3F91; color: #fff;
  border-radius: 50px; font-size: .875rem; font-weight: 700;
  transition: background .2s, transform .2s;
}
.s-btn:hover { background: var(--dark); transform: translateY(-1px); }
.bfilts { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
.bf {
  padding: 7px 16px; border-radius: 50px;
  font-size: .82rem; font-weight: 600;
  color: var(--subtle); background: #fff;
  border: 2px solid var(--border-b); transition: all .2s;
}
.bf:hover, .bf.on { background: #1B3F91; color: #fff; border-color: #1B3F91; }

/* ═══════════════════════════════════════════════════════
   BRAND PAGE - GRID
═══════════════════════════════════════════════════════ */
.b-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 20px;
}
.b-card {
  background: #fff; border-radius: 16px;
  border: 1.5px solid var(--border-b); overflow: hidden; cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .04);
  transition: transform .35s var(--spring), box-shadow .35s, border-color .3s;
}
.b-card:hover         { transform: translateY(-7px); box-shadow: 0 20px 52px rgba(27, 63, 145, .13); border-color: #1B3F91; }
.bc-foot {
  padding: 28px 16px; background: #fff;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.bc-logo-wrap         { height: 70px; display: flex; align-items: center; justify-content: center; }
.bc-logo-wrap img     {  width: 100%; height: 100%; object-fit: contain; }
.bc-logo-wrap .bc-nm  { font-size: 1rem; font-weight: 900; color: #1B3F91; }
.bc-cat { font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--faint); padding: 3px 10px; background: var(--off); border-radius: 20px; }
.bc-cta { font-size: .75rem; font-weight: 700; color: #1B3F91; }

/* ═══════════════════════════════════════════════════════
   BRAND PAGE - DETAIL VIEW
═══════════════════════════════════════════════════════ */
#b-detail-view    { display: none; }
#b-detail-view.on { display: block; }
.bd-back {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px; border-radius: 50px;
  font-size: .82rem; font-weight: 700;
  color: #1B3F91; background: var(--off);
  border: 2px solid var(--border-b);
  margin-bottom: 28px; transition: all .25s;
}
.bd-back:hover { background: #1B3F91; color: #fff; border-color: #1B3F91; }
.bd-header {
  display: flex; align-items: center; gap: 24px;
  padding: 26px 28px; background: var(--off);
  border-radius: 16px; border: 1.5px solid var(--border-b);
  margin-bottom: 28px; flex-wrap: wrap;
}
.bd-header img.bd-logo { max-height: 50px; max-width: 170px; object-fit: contain; width: auto; }
.bd-header h2  { font-size: 1.4rem; font-weight: 900; letter-spacing: -.03em; color: var(--navy); }
.bd-header p   { font-size: .875rem; color: var(--subtle); margin-top: 4px; }
.bd-web {
  margin-top: 10px; display: inline-flex; align-items: center; gap: 5px;
  font-size: .82rem; font-weight: 700; color: #1B3F91;
  padding: 6px 16px; background: #fff; border: 1.5px solid var(--border-b); border-radius: 50px;
  transition: all .2s;
}
.bd-web:hover { background: #1B3F91; color: #fff; border-color: #1B3F91; }
.prod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.pc {
  background: #fff; border-radius: 12px;
  border: 1.5px solid var(--border-b); overflow: hidden;
  transition: transform .3s var(--spring), box-shadow .3s, border-color .3s;
}
.pc:hover      { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(27, 63, 145, .10); border-color: #1B3F91; }
.pc-im         { aspect-ratio: 4/3; overflow: hidden; background: var(--off); }
.pc-im img     { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--ease); }
.pc:hover .pc-im img { transform: scale(1.06); }
.pc-b          { padding: 13px; }
.pc-code       { font-size: .65rem; font-weight: 700; letter-spacing: .07em; color: var(--light); margin-bottom: 3px; }
.pc-name       { font-size: .875rem; font-weight: 700; color: var(--navy); margin-bottom: 3px; }
.pc-brand      { font-size: .75rem; color: var(--subtle); }
.pc-cta        { display: block; margin-top: 10px; padding: 8px; background: var(--off); color: #1B3F91; border-radius: 8px; text-align: center; font-size: .75rem; font-weight: 700; transition: all .2s; cursor: pointer; }
.pc:hover .pc-cta { background: #1B3F91; color: #fff; }
.req-card      { grid-column: 1 / -1; background: var(--off); border-radius: 14px; border: 2px dashed rgba(27, 63, 145, .20); padding: 40px; text-align: center; }
.req-card h3   { font-size: 1.1rem; font-weight: 800; color: var(--navy); margin-bottom: 8px; }
.req-card p    { font-size: .875rem; color: var(--subtle); margin-bottom: 20px; }
.bp {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 28px; background: #1B3F91; color: #fff;
  border-radius: 50px; font-size: .875rem; font-weight: 800;
  transition: background .2s, transform .2s;
}
.bp:hover { background: var(--dark); transform: translateY(-2px); }

/* ═══════════════════════════════════════════════════════
   GUIDE PAGE - FILTERS & SECTIONS
═══════════════════════════════════════════════════════ */
.gr-filters {
  display: flex; gap: 10px; flex-wrap: wrap;
  padding: 32px 15px 0; max-width: 1280px; margin: 0 auto;
}
.gr-btn {
  padding: 9px 24px; border-radius: 50px;
  font-size: .85rem; font-weight: 700;
  color: var(--subtle); background: #fff;
  border: 2px solid var(--border-b); transition: all .2s;
}
.gr-btn:hover, .gr-btn.on { background: #1B3F91; color: #fff; border-color: #1B3F91; }
.gr-body { padding: 40px 15px 80px; max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.gr-section { border: 1.5px solid var(--border-b); border-radius: 20px; overflow: hidden; background: #fff; }
.gr-section-head {
  display: flex; align-items: flex-start; gap: 20px;
  padding: 32px 36px; border-bottom: 1.5px solid var(--border-b);
  background: var(--off);
}
.gr-icon     { flex-shrink: 0; width: 52px; height: 52px; background: rgba(27, 63, 145, .10); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #1B3F91; }
.gr-icon svg { width: 26px; height: 26px; }
.gr-title    { font-size: 1.3rem; font-weight: 900; color: var(--navy); letter-spacing: -.02em; margin-bottom: 6px; }
.gr-sub      { font-size: .9rem; color: var(--subtle); line-height: 1.6; max-width: 560px; }
.gr-cards    { padding: 28px 36px; }
.gr-card     { border-radius: 14px; border: 1.5px dashed rgba(27, 63, 145, .20); padding: 36px; text-align: center; background: var(--off); }
.gr-card.gr-coming { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.gr-card-icon      { width: 56px; height: 56px; background: rgba(27, 63, 145, .08); border-radius: 14px; display: flex; align-items: center; justify-content: center; color: #1B3F91; }
.gr-card-icon svg  { width: 28px; height: 28px; }
.gr-coming-lbl     { font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: #1B3F91; background: rgba(27, 63, 145, .10); padding: 4px 12px; border-radius: 20px; }
.gr-coming-desc    { font-size: .9rem; color: var(--subtle); line-height: 1.6; max-width: 400px; }
.gr-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .85rem; font-weight: 700; color: #1B3F91;
  padding: 10px 22px; background: #fff;
  border: 1.5px solid var(--border-b); border-radius: 50px;
  transition: all .2s;
}
.gr-cta:hover { background: #1B3F91; color: #fff; border-color: #1B3F91; }

/* ── bc-cta: pulsante "Vedi prodotti" prominente ── */
.bc-cta {
  display: block; margin-top: 12px;
  padding: 11px 14px; background: #1B3F91; color: #fff;
  border-radius: 8px; text-align: center;
  font-size: .8rem; font-weight: 700; letter-spacing: .01em;
  transition: background .2s, transform .15s;
}
.bc-cta:hover { background: #0C2156; transform: translateY(-1px); }

/* ═══════════════════════════════════════════════════════
   BRAND LISTA PRODOTTI - plp-*
═══════════════════════════════════════════════════════ */
.plp-hero {
  background: linear-gradient(135deg, #0C2156 0%, #1B3F91 100%);
  padding: 110px 15px 40px; position: relative; overflow: hidden;
}
.plp-hero::before {
  content: ""; position: absolute; top: -80px; right: -80px;
  width: 360px; height: 360px;
  background: rgba(255,255,255,.04); border-radius: 50%; pointer-events: none;
}
.plp-hero-in { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }

.plp-back {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .8rem; font-weight: 700; color: rgba(255,255,255,.85);
  padding: 7px 18px; border: 1.5px solid rgba(255,255,255,.30);
  border-radius: 50px; margin-bottom: 28px; transition: all .2s;
}
.plp-back:hover { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.6); }

.plp-brand-info { display: flex; align-items: flex-start; gap: 28px; flex-wrap: wrap; }
.plp-logo-box {
  width: 96px; height: 96px; flex-shrink: 0;
  background: #fff; border-radius: 12px;
  border: 1px solid rgba(255,255,255,.20);
  display: flex; align-items: center; justify-content: center;
  padding: 12px;
}
.plp-brand-logo {
  max-height: 64px; max-width: 72px; width: auto; object-fit: contain;
}
.plp-brand-cat {
  display: inline-block; font-size: .65rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.15); padding: 3px 10px; border-radius: 20px;
  margin-bottom: 8px;
}
.plp-brand-name  { 
  font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 900;
    color: #fff;
    letter-spacing: -.035em;
    line-height: 1.05;margin-bottom: 6px; 
}
.plp-brand-desc  { font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.6; max-width: 520px; margin-bottom: 14px; }
.plp-brand-web {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .8rem; font-weight: 700; color: rgba(255,255,255,.85);
  padding: 7px 16px; border: 1.5px solid rgba(255,255,255,.30); border-radius: 50px;
  transition: all .2s;
}
.plp-brand-web:hover { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.6); }

.plp-body  { max-width: 1200px; margin: 0 auto; padding: 40px 0 80px; }
.plp-count { font-size: .8rem; color: var(--subtle); font-weight: 600; margin-bottom: 20px; }

.plp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* Card prodotto per plp */
.plp-card {
  background: #fff; border-radius: 14px; overflow: hidden;
  border: 1.5px solid rgba(27,63,145,.10);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .25s;
  display: flex; flex-direction: column;
}
.plp-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(27,63,145,.11); border-color: #1B3F91; }
.plp-card .pc-im { aspect-ratio: 4/3; overflow: hidden; background: var(--off); flex-shrink: 0; }
.plp-card .pc-im img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--ease); }
.plp-card:hover .pc-im img { transform: scale(1.05); }
.plp-card .pc-b { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.plp-card .pc-code { margin-bottom: 5px; }
.plp-card .pc-name {
  overflow: hidden;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  line-clamp: 2;
}
.plp-card .pc-brand { margin-top: auto; padding-top: 5px; padding-bottom: 5px; }

/* CTA primario card */
.plp-cta {
  display: block; margin-top: 10px; padding: 9px 10px;
  background: #1B3F91; color: #fff;
  border-radius: 8px; text-align: center;
  font-size: .9rem; font-weight: 700; transition: background .2s;
}
.plp-cta:hover { background: #0C2156; }

/* CTA secondario "Vedi" */
.plp-cta-vedi {
  background: transparent; color: #1B3F91;
  border: 1.5px solid #1B3F91; margin-top: 6px;
}
.plp-cta-vedi:hover { background: #1B3F91; color: #fff; border-color: #1B3F91; }

/* Filter buttons su lista-prodotti */
.plp-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.plp-filter-btn {
  padding: 7px 16px; border-radius: 50px;
  font-size: .78rem; font-weight: 700; color: var(--subtle);
  background: #fff; border: 1.5px solid var(--border-b);
  transition: all .2s;
}
.plp-filter-btn:hover, .plp-filter-btn.on { background: #1B3F91; color: #fff; border-color: #1B3F91; }

/* ── LISTA PRODOTTI con sidebar ── */
.cat-body {
  max-width: 1200px; margin: 0 auto; padding: 40px 15px 80px;
  display: grid; grid-template-columns: 220px 1fr;
  gap: 36px; align-items: start;
}
.cat-body .plp-grid { grid-template-columns: repeat(3, 1fr); }
.plp-sidebar {
  position: sticky; top: 90px;
  background: #fff; border-radius: 14px;
  border: 1.5px solid rgba(27,63,145,.10);
  overflow: hidden;
}
.plp-sb-title {
  font-size: .8rem; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; color: var(--s);
  padding: 14px 16px 10px; margin: 0;
  border-bottom: 1.5px solid rgba(27,63,145,.08);
}
.plp-sb-cat + .plp-sb-cat { border-top: 1px solid rgba(27,63,145,.06); }
.plp-sb-cat-row { display: flex; align-items: stretch; }
.plp-sb-cat-link {
  flex: 1; padding: 10px 0 10px 16px; font-size: 1rem;
  font-weight: 700; color: var(--text); transition: color .15s;
}
.plp-sb-cat-link:hover, .plp-sb-cat-link.on { color: var(--b); }
.plp-sb-cat.open .plp-sb-cat-link { color: var(--b); }
.plp-sb-cat-toggle {
  padding: 0 14px; background: none; border: 0;
  cursor: pointer; color: var(--f); transition: color .15s;
}
.plp-sb-cat-toggle:hover { color: var(--b); }
.plp-sb-chev { display: block; transition: transform .22s; }
.plp-sb-cat.open .plp-sb-chev { transform: rotate(180deg); }
.plp-sb-subs { display: none; background: var(--bg); border-top: 1px solid rgba(27,63,145,.06); }
.plp-sb-cat.open .plp-sb-subs { display: block; }
.plp-sb-sub-i {
  display: block; padding: 7px 14px 7px 28px;
  font-size: 0.85rem; color: var(--muted); transition: background .15s, color .15s;
}
.plp-sb-sub-i:hover { background: rgba(27,63,145,.06); color: var(--b); }
.plp-sb-sub-i.on { color: var(--b); font-weight: 700; background: rgba(27,63,145,.1); }

/* Terzo livello sidebar: brand */
.plp-sb-sub-wrap { display: contents; }
.plp-sb-brands { background: rgba(27,63,145,.03); border-left: 2px solid rgba(27,63,145,.15); margin-left: 28px; margin-bottom: 4px; }
.plp-sb-brand-i {
  display: block; padding: 5px 12px;
  font-size: .75rem; color: var(--muted); transition: background .15s, color .15s;
}
.plp-sb-brand-i:hover { background: rgba(27,63,145,.06); color: var(--b); }
.plp-sb-brand-i.on { color: var(--b); font-weight: 700; background: rgba(27,63,145,.1); }

/* Select mobile (sostituisce sidebar sotto 768px) */
.plp-mob-filter { display: none; margin-bottom: 20px; }
.plp-cat-select {
  width: 100%; padding: 12px 40px 12px 16px;
  border: 1.5px solid rgba(27,63,145,.20); border-radius: 10px;
  font-family: inherit; font-size: .9rem; font-weight: 600; color: var(--text);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6A82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;
  -webkit-appearance: none; appearance: none; cursor: pointer;
}
.plp-cat-select:focus { outline: none; border-color: #1B3F91; box-shadow: 0 0 0 3px rgba(27,63,145,.12); }

/* ═══════════════════════════════════════════════════════
   BRAND SCHEDA PRODOTTO - scheda-*
═══════════════════════════════════════════════════════ */
.scheda-crumb-bar {
  background: #F5F7FB; border-bottom: 1px solid rgba(27,63,145,.08);
  padding-top: 68px;
}
.scheda-crumb-in {
  max-width: 1200px; margin: 0 auto; padding: 14px 15px;
  font-size: .8rem; color: #5A6A82; display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.scheda-crumb-in a { color: #1B3F91; font-weight: 600; }
.scheda-crumb-in a:hover { text-decoration: underline; }
.scheda-crumb-sep { opacity: .5; }

.scheda-wrap { max-width: 1200px; margin: 0 auto; padding: 48px 0 80px; }

.scheda-main {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 56px; align-items: start; margin-bottom: 72px;
}
.scheda-img-wrap {
  aspect-ratio: 4/3; border-radius: 16px; overflow: hidden;
  background: var(--off); border: 1px solid rgba(27,63,145,.08);
}
.scheda-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.scheda-img-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem; opacity: .1;
}

.scheda-info { display: flex; flex-direction: column; }
.scheda-cat-tag {
  display: inline-block; font-size: .65rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: #1B3F91;
  background: rgba(27,63,145,.08); padding: 4px 12px; border-radius: 20px;
  margin-bottom: 16px; width: fit-content;
}
.scheda-name { font-size: 1.75rem; font-weight: 900; color: #0B1728; letter-spacing: -.04em; line-height: 1.2; margin-bottom: 10px; }
.scheda-code {
  font-size: .75rem; font-weight: 700; letter-spacing: .08em; color: #1B3F91;
  background: rgba(27,63,145,.07); padding: 5px 12px; border-radius: 6px;
  width: fit-content; margin-bottom: 16px;
}
.scheda-desc { font-size: .9rem; color: #5A6A82; line-height: 1.7; margin-bottom: 20px; }

.scheda-brand-row {
  display: flex; align-items: center;
  padding: 20px 5px; 
	/*background: var(--off);
  border-radius: 10px; border: 1px solid rgba(27,63,145,.08);*/
  margin-bottom: 28px;
}
.scheda-brand-logo  { max-height: 48px; max-width: 160px; width: auto; object-fit: contain; }
.scheda-brand-nm    { font-size: .95rem; font-weight: 800; color: #0B1728; }

.scheda-actions { display: flex; flex-direction: column; gap: 10px; }
.scheda-btn-primary {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: 15px 28px; background: #1B3F91; color: #fff;
  border-radius: 10px; font-weight: 800; font-size: .9rem;
  transition: background .2s, transform .2s;
}
.scheda-btn-primary:hover { background: #0C2156; transform: translateY(-1px); }
.scheda-btn-secondary {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: 14px 28px; background: transparent; color: #1B3F91;
  border: 2px solid rgba(27,63,145,.28); border-radius: 10px;
  font-weight: 700; font-size: .9rem; transition: all .2s;
}
.scheda-btn-secondary:hover { background: #1B3F91; color: #fff; border-color: #1B3F91; }

.scheda-desc-section { border-top: 1px solid var(--border); padding: 40px 0 32px; margin-top: 8px; }
.scheda-desc-title { font-size: 1.1rem; font-weight: 800; color: #0B1728; letter-spacing: -.02em; margin-bottom: 18px; text-transform: uppercase; }
.scheda-desc-body { max-width: 820px; }
.scheda-desc-body p { color: #5A6A82; font-size: .9rem; line-height: 1.7; margin-bottom: 10px; }
.scheda-desc-body strong { color: #0B1728; font-weight: 700; }

.scheda-related { border-top: 1px solid var(--border); padding-top: 48px; margin-top: 8px; }
.scheda-related-h { font-size: 1.4rem; font-weight: 900; color: #0B1728; letter-spacing: -.03em; margin-bottom: 28px; }
.scheda-related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* Responsive nuove pagine */
@media (max-width: 1200px) {
  .plp-grid           { grid-template-columns: repeat(3, 1fr); }
  .scheda-related-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .plp-grid           { grid-template-columns: repeat(2, 1fr); }
  .scheda-main        { grid-template-columns: 1fr; gap: 32px; }
  .scheda-related-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  /* lista-prodotti: sidebar → select */
  .cat-body        { grid-template-columns: 1fr; gap: 16px; padding: 24px 15px 48px; }
  .plp-sidebar     { display: none; }
  .plp-mob-filter  { display: block; }
  /* brand lista prodotti + scheda: padding laterale */
  .plp-body        { padding: 24px 15px 56px; }
  .scheda-wrap     { padding: 32px 15px 56px; }
}
@media (max-width: 560px) {
  .plp-grid           { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .scheda-related-grid{ grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .plp-hero           { padding: 100px 15px 32px; }
  .plp-brand-name     { font-size: 1.4rem; }
  .scheda-name        { font-size: 1.4rem; }
}
/* Mobile portrait: griglia singola colonna */
@media (max-width: 480px) {
  .plp-grid,
  .cat-body .plp-grid { grid-template-columns: 1fr; gap: 12px; }
  .scheda-related-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
  .scheda-related-grid{ grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≥ 1440px
═══════════════════════════════════════════════════════ */
@media (min-width: 1440px) {
  .hero-content  { max-width: 960px; }
  .brand-marquee { animation-duration: 50s; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≤ 1200px  (laptop / small desktop)
═══════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
  .statement, .risorse         { padding: 72px 15px; }
  .brand-section, .services, .cta-final { padding: 72px 15px; }
  .anni-right                  { padding: 40px 0 40px 36px; }
  .consult                     { padding: 72px 0 0; }
  .risorse-grid                { grid-template-columns: repeat(2, 1fr); }
  .srv-grid                    { grid-template-columns: repeat(2, 1fr); }
  .ft-main          { padding: 56px 15px; grid-template-columns: 1fr 1fr; gap: 36px; }
  .sectors-header              { margin-bottom: 40px; }
  .sector-grid                 { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 280px; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≤ 900px  (tablet landscape)
═══════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .sector-grid     { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 260px; }
  .statement-inner { gap: 48px; }
  .ft-main { gap: 28px; }
  .b-cards         { grid-template-columns: repeat(3, 1fr); }
  .prod-grid       { grid-template-columns: repeat(3, 1fr); }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≤ 768px  (tablet portrait)
═══════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .h-nav               { display: none; }
  .burger, .h-burger   { display: flex; }
  .h-logo img          { height: 50px;}
  .solid .h-logo img   { height: 30px;}
  .hero-content        { padding-bottom: 56px; }
  .hero-h1             { letter-spacing: -.03em; }
  .hero-actions        { flex-direction: column; align-items: flex-start; gap: 12px; }
  .h-logo-light        { margin-right: 10px;}
  .statement           { padding: 56px 15px; }
  .statement-inner     { grid-template-columns: 1fr; gap: 40px;  }
  .stat-row            { gap: 32px; }
  .btn-call            { padding: 10px; width: 36px; height: 36px; justify-content: center; }
  .btn-call-label      { display: none; }
  .btn-call i          { font-size: 15px; }
  .lng                 { padding: 4px 5px;}
  .h-right             { gap: 8px;}
  .anni-band           { flex-direction: column; }
  .anni-right          { max-width: 100%; }
  .anni-num            { padding: 40px 0 24px; }
  .anni-right          { padding: 24px 0 40px; border-left: none; border-top: 1px solid rgba(255, 255, 255, .15); }
  .anni-stats          { gap: 28px; }

  .consult             { padding: 56px 0 0; }
  .consult-head        { flex-direction: column; align-items: flex-start; gap: 20px; }
  .consult-img         { margin: 28px 0 0; }

  .sectors             { padding: 56px 0; }
  .sectors-header      { flex-direction: column; align-items: flex-start; margin-bottom: 28px; }
  .sector-grid         { grid-template-columns: 1fr 1fr; grid-auto-rows: 240px; }

  .brand-section, .services, .cta-final { padding: 56px 15px; }
  .brand-top-row       { flex-direction: column; align-items: flex-start; }
  .srv-grid            { grid-template-columns: 1fr 1fr; background: none; gap: 16px; }
  .srv-card            { border: 1px solid var(--border); border-radius: 12px; }
  .srv-header          { flex-direction: column; align-items: flex-start; }
  .cta-btns            { flex-direction: column; align-items: center; }

  .ft-main  { grid-template-columns: 1fr; padding: 40px 15px; gap: 28px; }
  .ft-bottom           { flex-direction: column; text-align: center; }

  .b-cards             { grid-template-columns: repeat(2, 1fr); }
  .prod-grid           { grid-template-columns: repeat(2, 1fr); }
  .gr-section-head     { flex-direction: column; padding: 24px 15px; }
  .gr-cards            { padding: 20px 15px; }
  .gr-body             { padding: 28px 15px 56px; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≤ 560px  (large mobile)
═══════════════════════════════════════════════════════ */
@media (max-width: 560px) {
  .sector-grid   { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .risorse-grid  { grid-template-columns: 1fr; }
  .srv-grid      { grid-template-columns: 1fr; }
  .stat-row      { flex-direction: column; gap: 24px; }
  .anni-stats    { gap: 20px; }
  .btn-secondary { font-size: .82rem; padding: 12px 20px; }
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE - ≤ 400px  (small mobile)
═══════════════════════════════════════════════════════ */
@media (max-width: 400px) {
  .b-cards  { grid-template-columns: 1fr; }
  .prod-grid{ grid-template-columns: 1fr; }
  .hero-h1  { font-size: clamp(1.6rem, 8vw, 2.2rem); }
}

/* ═══════════════════════════════════════════════════════
   CREDITS
═══════════════════════════════════════════════════════ */
.credits_link { color: #38B5E6 !important; font-weight: 700; font-family: sans-serif; }
.credits_link:hover { color: #fff !important; }
.credits_link::before {
  content: ""; vertical-align: middle;
  width: 16px; height: 16px;
  display: inline-block; margin-right: 5px; margin-left: 5px;
  background-image: url(https://www.clion.it/favicon-96x96.png);
  background-repeat: no-repeat; background-size: contain; background-position: center;
  transition: all 450ms ease;
}
.credits_link:hover::before { transform: rotateZ(360deg) rotateY(360deg); }

/* ═══════════════════════════════════════════════════════
   NEWS - lista e dettaglio
═══════════════════════════════════════════════════════ */
.news-section {
  max-width: 1200px; margin: 0 auto; padding: 56px 15px 80px;
}
.news-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.news-card {
  background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 2px 16px rgba(11,23,40,.06);
  border: 1px solid var(--border);
  display: flex; flex-direction: column;
  transition: transform .22s var(--ease), box-shadow .22s var(--ease);
}
.news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(27,63,145,.12);
}
.news-card-img-wrap {
  position: relative; overflow: hidden; display: block;
  aspect-ratio: 16 / 9;
}
.news-card-img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .35s var(--ease);
}
.news-card:hover .news-card-img { transform: scale(1.04); }
.news-card-tag {
  position: absolute; top: 12px; left: 12px;
  background: var(--blue); color: #fff;
  font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 4px;
}
.news-card-body {
  padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1;
}
.news-date {
  font-size: .72rem; color: var(--muted); font-weight: 500;
  margin-bottom: 8px; display: block;
}
.news-title {
  font-size: .98rem; font-weight: 700; color: var(--navy);
  line-height: 1.4; margin-bottom: 10px;
}
.news-title a { color: inherit; transition: color .15s; }
.news-title a:hover { color: var(--blue); }
.news-excerpt {
  font-size: .87rem; color: var(--muted); line-height: 1.65;
  display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden; margin-bottom: 18px; flex: 1;
}
.news-read-more {
  font-size: .82rem; font-weight: 700; color: var(--blue);
  letter-spacing: .02em; transition: text-decoration .15s;
  align-self: flex-start;
}
.news-read-more:hover { text-decoration: underline; }

/* Paginazione (condivisa da news e lista-prodotti) */
.news-pagination, .plp-pagination {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; margin-top: 52px; flex-wrap: wrap;
}
.np-btn {
  width: 38px; height: 38px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--blue); border: 1.5px solid var(--border-b);
  background: #fff;
  transition: background .15s, color .15s;
}
.np-btn svg { width: 16px; height: 16px; }
.np-btn:hover:not(:disabled) { background: var(--blue); color: #fff; }
.np-btn:disabled { opacity: .35; cursor: not-allowed; }
.np-pages { display: flex; gap: 4px; }
.np-page {
  width: 38px; height: 38px; border-radius: 8px;
  font-size: .88rem; font-weight: 600;
  color: var(--navy); border: 1.5px solid transparent; background: #fff;
  transition: background .15s, color .15s, border-color .15s;
}
.np-page:hover { background: var(--off); }
.np-page.on { background: var(--blue); color: #fff; border-color: var(--blue); }

/* ── Dettaglio news (scheda-news.html) ── */
.news-art-wrap {
  max-width: 820px; margin: 0 auto; padding: 56px 15px 80px;
}
.news-art-feat {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border-radius: 14px; margin-bottom: 32px;
}
.news-art-meta {
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.news-art-tag {
  background: var(--blue); color: #fff;
  font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 4px;
}
.news-art-date { font-size: .8rem; color: var(--muted); font-weight: 500; }
.news-art-h1 {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem); font-weight: 800;
  color: var(--navy); line-height: 1.2; margin-bottom: 24px; letter-spacing: -.03em;
}
.news-art-body {
  font-size: .98rem; line-height: 1.85; color: var(--text);
  border-bottom: 1px solid var(--border); padding-bottom: 36px; margin-bottom: 32px;
}
.news-art-body p + p { margin-top: 1.2em; }
.news-art-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.news-art-pdf {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--blue); color: #fff;
  padding: 12px 24px; border-radius: 8px;
  font-size: .88rem; font-weight: 700;
  transition: background .15s, transform .15s;
}
.news-art-pdf:hover { background: var(--dark); transform: translateY(-1px); }
.news-art-pdf svg { flex-shrink: 0; }
.news-art-back {
  font-size: .85rem; font-weight: 600; color: var(--blue);
}
.news-art-back:hover { text-decoration: underline; }

/* Responsive news */
@media (max-width: 900px) {
  .news-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 560px) {
  .news-grid { grid-template-columns: 1fr; gap: 16px; }
  .news-section { padding: 36px 15px 60px; }
  .news-art-wrap { padding: 36px 15px 60px; }
}

/* ═══════════════════════════════════════════════════════
   SERVIZI - pagina dedicata (servizi.html)
═══════════════════════════════════════════════════════ */
.srvp-body  { max-width: 1140px; margin: 0 auto; padding: 64px 15px 100px; display: flex; flex-direction: column; gap: 88px; }
.srvp-row   { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.srvp-row:nth-child(even) .srvp-img  { order: 2; }
.srvp-row:nth-child(even) .srvp-text { order: 1; }
.srvp-img   { border-radius: 20px; overflow: hidden; aspect-ratio: 4/3; background: var(--off); }
.srvp-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.srvp-row:hover .srvp-img img { transform: scale(1.04); }
.srvp-num   { font-size: 3.2rem; font-weight: 900; color: rgba(27, 63, 145, .14); line-height: 1; letter-spacing: -.04em; margin-bottom: 14px; }
.srvp-name  { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; color: var(--text); letter-spacing: -.03em; line-height: 1.15; margin-bottom: 18px; }
.srvp-desc  { font-size: 1rem; color: var(--muted); line-height: 1.8; }

@media (max-width: 900px) {
  .srvp-row { grid-template-columns: 1fr; gap: 28px; }
  .srvp-row:nth-child(even) .srvp-img,
  .srvp-row:nth-child(even) .srvp-text { order: initial; }
  .srvp-body { gap: 56px; padding: 48px 15px 72px; }
}

/* ═══════════════════════════════════════════════════════
   CONTATTI - pagina dedicata (contatti.html)
═══════════════════════════════════════════════════════ */
.ctp-body    { max-width: 900px; margin: 0 auto; padding: 64px 15px 100px; }
.ctp-choice  { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 48px; }
.ctp-opt {
  background: #fff; border: 2px solid var(--border-b); border-radius: 18px;
  padding: 36px 28px; text-align: center; cursor: pointer;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ctp-opt:hover  { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(27, 63, 145, .10); }
.ctp-opt.on     { border-color: #1B3F91; background: rgba(27, 63, 145, .03); }
.ctp-opt-ic {
  width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 50%;
  background: rgba(27, 63, 145, .08); color: #1B3F91;
  display: flex; align-items: center; justify-content: center; font-size: 1.4rem;
}
.ctp-opt-t   { font-size: 1.1rem; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.ctp-opt-d   { font-size: .85rem; color: var(--muted); line-height: 1.6; }

.ctp-panel      { display: none; }
.ctp-panel.on   { display: block; animation: fadeUp .45s var(--ease) both; }

.ctp-call {
  background: var(--off); border-radius: 18px; padding: 48px 32px;
  text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px;
}
.ctp-call-num { font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 900; color: #1B3F91; letter-spacing: -.02em; }
.ctp-call-sub { font-size: .92rem; color: var(--muted); max-width: 420px; }
.ctp-call-btns{ display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }

.ctp-form { background: #fff; border: 1.5px solid var(--border-b); border-radius: 18px; padding: 40px 32px; }
.ctp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ctp-field { display: flex; flex-direction: column; gap: 7px; }
.ctp-field.full { grid-column: 1 / -1; }
.ctp-field label { font-size: .8rem; font-weight: 700; color: var(--navy); }
.ctp-field input,
.ctp-field textarea {
  padding: 12px 16px; border: 1.5px solid var(--border-b); border-radius: 10px;
  font-family: inherit; font-size: .9rem; color: var(--text);
  background: var(--off); outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.ctp-field input:focus,
.ctp-field textarea:focus { border-color: #1B3F91; box-shadow: 0 0 0 3px rgba(27, 63, 145, .08); background: #fff; }
.ctp-field textarea { resize: vertical; min-height: 120px; }

.ctp-privacy { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.ctp-check {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: .78rem; line-height: 1.55; color: var(--muted);
  cursor: pointer;
}
.ctp-check input[type="checkbox"] {
  flex-shrink: 0; width: 17px; height: 17px; margin-top: 2px;
  accent-color: #1B3F91; cursor: pointer;
}
.ctp-check a.privacy { color: #1B3F91; font-weight: 700; text-decoration: underline; }
.ctp-check a.privacy:hover { text-decoration: none; }

.ctp-submit {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  padding: 14px 32px; background: #1B3F91; color: #fff;
  border-radius: 50px; font-weight: 800; font-size: .9rem;
  transition: background .2s, transform .2s;
}
.ctp-submit:hover { background: var(--dark); transform: translateY(-1px); }

@media (max-width: 640px) {
  .ctp-choice { grid-template-columns: 1fr; }
  .ctp-grid   { grid-template-columns: 1fr; }
  .ctp-form   { padding: 28px 20px; }
}


/* ══════════════════════════════════════════════════════════════
   DATI DAL PANNELLO - elementi aggiunti con il collegamento al DB
   ══════════════════════════════════════════════════════════════ */
/* Card con immagine cliccabile e foto prodotto intere (non ritagliate) */
a.pc-im { display: block; }
.plp-card .pc-im img, .pc .pc-im img, .scheda-img-wrap img { object-fit: contain; background: #fff; }
.plp-card .pc-im, .pc .pc-im, .scheda-img-wrap { background: #fff; }
.pc-name a { color: inherit; }

/* Paginazione con link (stesso aspetto dei pulsanti della bozza) */
a.np-btn, a.np-page { display: flex; align-items: center; justify-content: center; text-decoration: none; }
span.np-btn[aria-disabled="true"] { opacity: .35; cursor: not-allowed; }
.np-dots { width: 24px; display: flex; align-items: flex-end; justify-content: center; color: var(--subtle); padding-bottom: 8px; }

/* Ricerca prodotti (sidebar lista e pagina Prodotti) */
.plp-search { display: flex; gap: 8px; padding: 14px; border-bottom: 1px solid rgba(27,63,145,.06); }
.plp-search .s-in { min-width: 0; flex: 1; }
.plp-sidebar .plp-search { flex-direction: column; }
.plp-sidebar .plp-search .s-in { width: 100%; flex: none; }
.plp-search-wide { max-width: 720px; margin: 0 0 32px; padding: 0; border: 0; align-items: center; flex-wrap: wrap; }
.plp-search-wide .plp-cta { margin: 0; padding: 10px 18px; }

/* Messaggio lista vuota / "Contattaci per disponibilità" */
.plp-empty { grid-column: 1 / -1; text-align: center; background: var(--off); border: 2px dashed rgba(27,63,145,.20); border-radius: 14px; padding: 48px 24px; color: var(--subtle); line-height: 1.7; }
.plp-empty strong { color: var(--navy); }
.plp-empty .plp-cta { display: inline-block; padding: 10px 22px; margin-top: 18px; }

/* Testo introduttivo categoria (HTML dal pannello) */
div.plp-brand-desc p { margin: 0 0 6px; }
div.plp-brand-desc a { color: #fff; text-decoration: underline; }

/* Indice categorie (prodotti.php) */
.cat-index .pc-name { font-size: 1.05rem; margin-bottom: 8px; }
.cat-index-subs { list-style: none; margin: 0 0 8px; padding: 0; }
.cat-index-subs li { font-size: .8rem; line-height: 1.5; padding: 2px 0; }
.cat-index-subs a { color: var(--subtle); }
.cat-index-subs a:hover { color: var(--blue); }
.cat-index .plp-cta-vedi { margin-top: auto; }

/* Scheda prodotto: miniature galleria, novità, contenuti descrizione */
.scheda-thumbs { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.scheda-thumbs button { width: 72px; height: 72px; border-radius: 10px; overflow: hidden; border: 1.5px solid rgba(27,63,145,.12); background: #fff; padding: 0; cursor: pointer; }
.scheda-thumbs button.on, .scheda-thumbs button:hover { border-color: var(--blue); }
.scheda-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.scheda-novita { background: #F39C12; color: #fff; margin-left: 6px; }
.scheda-brand-row a { display: inline-flex; align-items: center; }
.scheda-desc-body h3 { font-size: .95rem; font-weight: 800; color: #0B1728; margin: 22px 0 10px; text-transform: uppercase; }
.scheda-desc-body ul, .scheda-desc-body ol { color: #5A6A82; font-size: .9rem; line-height: 1.7; margin: 0 0 10px 20px; }
.scheda-desc-body ul.lista-codici { list-style: none; margin: 0 0 14px; columns: 4 170px; column-gap: 24px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; }
.scheda-desc-body ul.lista-codici li { break-inside: avoid; padding: 2px 0; border-bottom: 1px dashed rgba(27,63,145,.08); }
.scheda-desc-body table { width: 100%; border-collapse: collapse; font-size: .85rem; margin: 6px 0 18px; }
.scheda-desc-body th, .scheda-desc-body td { border: 1px solid rgba(27,63,145,.12); padding: 8px 10px; text-align: left; color: #3A4A62; }
.scheda-desc-body th { background: var(--off); color: #0B1728; font-weight: 700; }
.scheda-desc-body tr:nth-child(even) td { background: #FAFBFD; }

/* News: filtro argomenti, galleria, collegamenti */
.news-filters { justify-content: center; margin-bottom: 36px; }
.news-filters .bf { text-decoration: none; }
.news-art-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin: 28px 0; }
.news-art-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; }
.news-art-links { font-size: .9rem; color: var(--subtle); margin-bottom: 24px; }
.news-art-links a { color: var(--blue); font-weight: 600; }

/* Guide e Risorse: contenuti pubblicati */
.gr-cards-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.gr-item { border-radius: 14px; border: 1.5px solid rgba(27,63,145,.12); padding: 24px; background: #fff; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.gr-item .gr-cta { margin-top: auto; }
.gr-item-t { font-size: 1rem; font-weight: 800; color: var(--navy); line-height: 1.35; }
.gr-item-video { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: 10px; overflow: hidden; background: #000; }
.gr-item-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gr-item-img { width: 100%; aspect-ratio: 16/9; border-radius: 10px; overflow: hidden; background: var(--off); }
.gr-item-img img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 768px) {
  .plp-search-wide { margin-bottom: 20px; }
  .scheda-thumbs button { width: 60px; height: 60px; }
}
/* Modulo contatti: honeypot anti-spam e SweetAlert2 */
.ctp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.swal2-popup { font-family: 'Inter', sans-serif; }
.swal2-html-container { white-space: pre-line; }
.grecaptcha-badge { visibility: hidden; }
.ctp-recaptcha { margin-top: 14px; font-size: .75rem; color: var(--subtle); line-height: 1.5; }
.ctp-recaptcha a { color: inherit; text-decoration: underline; }

/* Contatti: dove siamo + mappa su consenso */
.ctp-where { display: grid; grid-template-columns: minmax(240px, 360px) 1fr; gap: 28px; margin-top: 56px; align-items: stretch; }
.ctp-where h2 { font-size: 1.4rem; font-weight: 800; color: var(--text); margin-bottom: 14px; }
.ctp-where address { font-style: normal; line-height: 1.7; margin-bottom: 14px; }
.ctp-where-info p { line-height: 2; margin-bottom: 10px; }
.ctp-where-info a { color: #1B3F91; font-weight: 600; }
.ctp-map { min-height: 320px; border-radius: 12px; background: var(--off); border: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; overflow: hidden; }
.ctp-map p { max-width: 380px; font-size: .85rem; color: var(--subtle); line-height: 1.5; }
.ctp-map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; }
@media (max-width: 768px) { .ctp-where { grid-template-columns: 1fr; margin-top: 40px; } }

/* Footer: riga legale su due righe, centrata */
.ft-bottom { flex-direction: column; align-items: center; text-align: center; gap: 6px; line-height: 1.7; }

/* Social nel footer */
.ft-social { display: flex; gap: 10px; margin-top: 16px; }
.ft-social a { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1rem; transition: background .2s, color .2s, transform .2s; }
.ft-social a:hover { background: #fff; color: #1B3F91; transform: translateY(-2px); }
/* Home: infografica processo verticale su smartphone (la versione orizzontale non e' leggibile) */
@media (max-width: 768px) {
  .consult-img img { max-height: none; height: auto; }
  .consult-img { background: #1f3550; }
}
