/* Montserrat */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

/* =====================================
   =              RESET                =
   ===================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: #0f172a;
}

/* Helpers */
[hidden] { display: none !important; }
.full-bleed { width: 100vw; position: relative; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); left: 0; z-index: 0; }

/* =====================================
   =               HERO                =
   ===================================== */
.pf-hero-slashed .hero-scroll-cue { bottom: clamp(32px, 8vw, 96px); }

@media (min-width:769px) { .pf-hero-slashed .hero-scroll-cue { transform: translate(-50%, 40px); } }

.hero-logo-mobile { display:none; }

@media (max-width:1024px) {
  .page-azienda body,
  .page-azienda main,
  .page-azienda .site-container,
  .page-azienda .pf-main {
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .page-azienda .hero-wrap {
    margin-top:-30px !important;
    padding-top:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    z-index:0 !important;
  }
  .page-azienda .hero-wrap > *:first-child {
    margin-top:0 !important;
  }

  .page-azienda .hero-overlay {
    justify-content:flex-start !important;
  }

  .page-azienda .hero__content {
    padding-top: var(--hdr-h) !important;
    margin-top: -30px !important;
  }

  .page-azienda .hero-media-abs {
    position:absolute;
    inset:0;
    z-index:-1 !important;
  }
  .page-azienda .hero-media-abs > img,
  .page-azienda .hero-media-abs > video {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:var(--fx,50%) var(--fy,50%) !important;
    -webkit-transform: translateZ(0);
    display:block;
  }
}

@media (max-width:768px) {
  .pf-hero-slashed .hero-overlay { justify-content:center; }
  .pf-hero-slashed .hero-content--left {
    transform:none !important;
    margin-left:20px;
    margin-right:20px;
    max-width:92%;
    padding:0;
    background:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border-radius:0;
    box-shadow:none;
    border:none;
    text-align:center;
  }
  .pf-hero-slashed .hero-title { font-size: clamp(24px, 7vw, 34px); line-height:1.18; margin-bottom:10px; }
  .pf-hero-slashed .hero-desc { font-size: clamp(15px, 4vw, 17px); opacity:.98; }
  .hero-logo-mobile { display:none !important; }
  .pf-hero-slashed .hero-scroll-cue { height:42px; transform: translateX(-50%); }
  .pf-hero-slashed .hero-scroll-cue__runner { height:14px; }
  .page-wrapper[data-page="chi-siamo"] .hero-media picture {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    background-color:#0b0f1a;
  }
  .page-wrapper[data-page="chi-siamo"] .hero-media .hero-bg {
    width:100%;
    height:auto;
    max-height:100%;
    object-fit:contain;
    object-position:center;
  }
}

/* =====================================
   =          ABOUT OVERVIEW           =
   ===================================== */
.pf-about-overview {
  --blue-1:#1e3a8a; --blue-2:#2563eb; --blue-3:#60a5fa; --ink:#0b0b0b;
  background:#ffffff; color:#0b0b0b; font-family: Montserrat, system-ui, sans-serif;
  padding: clamp(28px, 4vw, 64px) 0;
}
.pf-about-overview .about-wrap {
  max-width: clamp(1100px, 92vw, 1280px);
  padding: 0 clamp(16px, 3vw, 28px);
  margin-inline:auto;
  display:grid; grid-template-columns: 1fr 1.1fr; align-items:center;
  gap: clamp(18px, 3vw, 38px);
}
.pf-about-overview .about-media { margin-left: clamp(-8px, -1vw, -16px); position:relative; border-radius:14px; overflow:hidden; background:#f1f5f9; border:1px solid rgba(37,99,235,.18); box-shadow: 0 12px 26px rgba(2,6,23,.10); transition: transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s cubic-bezier(.22,.61,.36,1), border-color .25s ease, margin .25s ease; }
.pf-about-overview .about-media:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(37,99,235,.20); border-color: rgba(37,99,235,.28); }
.pf-about-overview .about-media img { width:100%; height:100%; display:block; object-fit:cover; transform: scale(1); transition: transform .45s ease; will-change: transform; }
.pf-about-overview .about-media:hover img { transform: scale(1.04); }

.pf-about-overview .about-copy { text-align:left; margin-left: calc(clamp(8px, 1vw, 16px) + 70px); }
.pf-about-overview .about-eyebrow { display:inline-block; margin:0 0 8px; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color: var(--blue-2); font-weight:700; line-height:1; }
.pf-about-overview .about-title { margin:0 0 12px; font-weight:800; line-height:1.15; font-size: clamp(24px, 3.1vw, 46px); letter-spacing:.01em; color: var(--ink); }
.pf-about-overview .hl-blue { color: var(--blue-2); }
.pf-about-overview .about-subtitle { margin:0; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; max-width:60ch; opacity:.95; color:#334155; }

@media (min-width:981px){ .pf-about-overview { padding-top: calc(clamp(28px, 4vw, 64px) + 90px); } }
@media (max-width:980px){
  .pf-about-overview .about-wrap { grid-template-columns:1fr; grid-template-areas: "copy" "media"; }
  .pf-about-overview .about-copy { grid-area:copy; margin-left:0; }
  .pf-about-overview .about-media { grid-area:media; margin-left:0; }
  .pf-about-overview { padding-top:0; }
}

/* Inverted section overrides */
#about-overview-invert { background:#ffffff; color:#0b0b0b; padding: clamp(28px, 4vw, 64px) 0; }
#about-overview-invert .about-wrap { max-width: clamp(1100px, 92vw, 1280px); padding:0 clamp(16px, 3vw, 28px); margin-inline:auto; display:grid; grid-template-columns: 1.1fr 1fr; align-items:center; gap: clamp(18px, 3vw, 38px); }
#about-overview-invert .about-copy { text-align:left; margin-left: clamp(-8px, -1vw, -16px); margin-right: calc(clamp(8px, 1vw, 16px) + 70px); }
#about-overview-invert .about-title { margin:0 0 12px; font-weight:800; line-height:1.15; font-size: clamp(24px, 3.1vw, 46px); letter-spacing:.01em; color:#0b0b0b; }
#about-overview-invert .hl-blue { color:#2563eb; }
#about-overview-invert .about-subtitle { margin:0; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; max-width:60ch; opacity:.95; color:#334155; }
#about-overview-invert .about-media { position:relative; border-radius:14px; overflow:hidden; background:#f1f5f9; border:1px solid rgba(37,99,235,.18); box-shadow: 0 12px 26px rgba(2,6,23,.10); transition: transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s cubic-bezier(.22,.61,.36,1), border-color .25s ease, margin .25s ease; margin-right: clamp(-8px, -1vw, -16px); }
#about-overview-invert .about-media:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(37,99,235,.20); border-color: rgba(37,99,235,.28); }
#about-overview-invert .about-media img { width:100%; height:100%; display:block; object-fit:cover; transform: scale(1); transition: transform .45s ease; will-change: transform; }
#about-overview-invert .about-media:hover img { transform: scale(1.04); }
@media (max-width:980px){ #about-overview-invert .about-wrap { grid-template-columns:1fr; } #about-overview-invert .about-media, #about-overview-invert .about-copy { margin-left:0; margin-right:0; } }

/* =====================================
   =            DIVIDERS               =
   ===================================== */
.divider-svg { display:block; width:100%; height: clamp(70px, 14vw, 160px); pointer-events:none; }

/* =====================================
   =            TIMELINE               =
   ===================================== */
.pf-history-timeline {
  --blue-1:#1e3a8a; --blue-2:#2563eb; --blue-3:#60a5fa; --ink:#0b0b0b; --muted:#334155;
  --rail-w:3px; --rail-left:52px; --runner-size:14px;
  background:#e5e7eb; color:var(--ink); padding: clamp(28px, 4vw, 72px) 0;
  font-family: Montserrat, system-ui, sans-serif;
}
.pf-history-timeline .history-wrap { max-width: clamp(1100px, 92vw, 1280px); padding: 0 clamp(16px, 3vw, 28px); margin-inline:auto; display:grid; grid-template-columns: 1.05fr 1fr; gap: clamp(18px, 3vw, 40px); align-items:start; }
.pf-history-timeline .tl-col { position:relative; }
.pf-history-timeline .tl-head .eyebrow { font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color: var(--blue-2); font-weight:700; margin-bottom:6px; }
.pf-history-timeline .tl-head .title { margin:0 0 8px; font-weight:800; line-height:1.15; letter-spacing:.01em; font-size: clamp(24px, 3.1vw, 46px); }
.pf-history-timeline .hl-blue { color: var(--blue-2); }
.pf-history-timeline .tl-head .subtitle { margin:0; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; color: var(--muted); opacity:.95; }
.pf-history-timeline .tl-list { position:relative; padding-left: clamp(108px, 10vw, 140px); margin-left:-70px; margin-top:30px; }
.pf-history-timeline .tl-track { position:absolute; top:0; bottom:0; left: var(--rail-left); width: var(--rail-w); background: linear-gradient(180deg, rgba(15,23,42,.08), rgba(37,99,235,.22) 40%, rgba(15,23,42,.1)); border-radius: 999px; }
.pf-history-timeline .tl-runner { position:absolute; top:0; left: calc(var(--rail-left) + var(--rail-w)/2); width: var(--runner-size); height: var(--runner-size); transform: translate(-50%, 0); border-radius:999px; box-shadow: 0 6px 18px rgba(37,99,235,.35); background: radial-gradient(circle at 35% 35%, #fff 0%, #eaf2ff 35%, #8db7ff 70%, #2563eb 100%); border:2px solid #fff; z-index:2; }
.pf-history-timeline .tl-item { position:relative; display:grid; grid-template-columns: clamp(88px, 8vw, 120px) 1fr; align-items:flex-start; gap: clamp(8px, 1.4vw, 14px); padding: clamp(14px, 1.6vw, 18px) 0; transform: translateX(-30px) translateZ(0); }
.pf-history-timeline .tl-year { font-weight:800; font-size: clamp(22px, 3.4vw, 42px); line-height:1; letter-spacing:.5px; color: rgba(37,99,235,.85); text-shadow: 0 1px 0 rgba(255,255,255,.2); }
.pf-history-timeline .tl-card { background:#fff; border:1px solid rgba(37,99,235,.14); border-radius:14px; box-shadow: 0 10px 24px rgba(2,6,23,.08); padding: clamp(12px, 1.6vw, 16px) clamp(12px, 1.6vw, 16px); transition: transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s cubic-bezier(.22,.61,.36,1), border-color .25s ease, filter .25s ease; }
.pf-history-timeline .tl-card h3 { margin:.1em 0 .25em; font-weight:800; font-size: clamp(16px, 1.6vw, 18px); color: var(--ink); }
.pf-history-timeline .tl-card p { margin:0; color:#334155; font-size: clamp(14px, 1.25vw, 16px); line-height:1.6; }
.pf-history-timeline .tl-item.is-active .tl-card { transform: scale(1.06); box-shadow: 0 18px 40px rgba(37,99,235,.20); border-color: rgba(37,99,235,.28); }
.pf-history-timeline .tl-item.is-active .tl-year { color: var(--blue-2); filter: saturate(1.08); }

.pf-history-timeline .media-col { display:flex; flex-direction:column; gap: clamp(12px, 2.2vw, 18px); margin-top: var(--media-offset, 0px); height: var(--media-height, auto); transform: translateX(50px); }
.pf-history-timeline .history-media { border-radius:14px; overflow:hidden; margin:0; background:#f1f5f9; border:1px solid rgba(37,99,235,.18); box-shadow: 0 12px 26px rgba(2,6,23,.10); transition: transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s cubic-bezier(.22,.61,.36,1), border-color .25s ease; flex:1 1 0; min-height:0; }
.pf-history-timeline .history-media:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(37,99,235,.20); border-color: rgba(37,99,235,.28); }
.pf-history-timeline .history-media img { width:100%; height:100%; display:block; object-fit:cover; }

@media (max-width:980px){
  .pf-history-timeline .history-wrap { grid-template-columns:1fr; }
  .pf-history-timeline { --rail-left:34px; --runner-size:13px; }
  .pf-history-timeline .tl-list { padding-left: clamp(68px, 10vw, 92px); margin-left:-18px; margin-top:22px; }
  .pf-history-timeline .tl-item { grid-template-columns: clamp(62px, 12vw, 90px) 1fr; transform:none; gap: clamp(6px, 2.5vw, 12px); }
  .pf-history-timeline .media-col { display:none !important; margin-top:0 !important; height:auto !important; transform:none !important; }
}

/* =====================================
   =          ISO 9001 Download        =
   ===================================== */
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.pf-iso9001-download {
  --blue-1:#1e3a8a; --blue-2:#2563eb; --blue-3:#60a5fa; --ink:#0b1220; --muted:#334155; --modal-offset-y:20px;
  --nudge-x: clamp(6px, 1.2vw, 20px);
  background:#fff; color:var(--ink);
  padding: clamp(24px, 4vw, 56px) 0 calc(clamp(24px, 4vw, 56px) + 110px);
}
.iso-dl-wrap { max-width: clamp(1100px, 92vw, 1280px); margin:0 auto; padding: 0 clamp(16px, 3vw, 28px); }
.iso-dl-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(18px, 4vw, 48px); align-items:center; }
.iso-dl-content { transform: translateX(calc(var(--nudge-x) * -1)); }
.iso-dl-card { transform: translateX(var(--nudge-x)); }
.eyebrow { font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color: var(--blue-2); font-weight:700; line-height:1; margin-bottom:6px; }
.title { margin:0 0 10px; font-weight:800; line-height:1.15; font-size: clamp(24px, 3.1vw, 46px); letter-spacing:.01em; }
.hl-blue { color: var(--blue-2); }
.desc { margin:0; font-size: clamp(14px, 1.25vw, 18px); line-height:1.6; color:#334155; opacity:.95; }

.iso-dl-card { --card-radius:14px; --card-border: rgba(37,99,235,.22); --card-shadow: 0 12px 26px rgba(2,6,23,.10);
  display:grid; grid-template-columns:1fr; grid-template-rows:auto 84px; border-radius: var(--card-radius); overflow:hidden;
  background: radial-gradient(120% 120% at 0% 0%, rgba(96,165,250,.10) 0%, rgba(37,99,235,.08) 45%, rgba(30,58,138,.16) 100%), #0b1220;
  border:1px solid var(--card-border); box-shadow: var(--card-shadow); width:94%; margin:0 auto;
}
.iso-card-media { position:relative; background:#0b1220; height: clamp(200px, 28vw, 260px); overflow:hidden; cursor:pointer; }
.iso-card-media img { width:100%; height:auto; display:block; object-fit:cover; object-position: top center; transition: transform .28s ease, opacity .28s ease; }
.iso-card-overlay { position:absolute; inset:0; display:grid; place-items:center; background: rgba(255,255,255,.06); backdrop-filter: blur(10px) saturate(125%); -webkit-backdrop-filter: blur(10px) saturate(125%); border:1px solid rgba(255,255,255,.18); opacity:0; transition: opacity .22s ease; pointer-events:none; }
.iso-card-media:hover .iso-card-overlay, .iso-card-media:focus-visible .iso-card-overlay { opacity:1; }
.iso-card-overlay__pill { display:inline-block; padding:10px 16px; border-radius:14px; background: linear-gradient(135deg, rgba(37,99,235,.18), rgba(96,165,250,.18)); border:1px solid rgba(37,99,235,.45); backdrop-filter: blur(12px) saturate(135%); -webkit-backdrop-filter: blur(12px) saturate(135%); color:#ffffff; font-weight:800; letter-spacing:.2px; font-size:14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 6px 18px rgba(2,6,23,.20); text-shadow: 0 1px 1px rgba(2,6,23,.35); }
.iso-card-aside { display:flex; align-items:center; justify-content:center; gap:10px; padding: clamp(14px, 2vw, 18px); background: linear-gradient(135deg, var(--blue-1), var(--blue-2) 50%, var(--blue-3)); color:#fff; text-decoration:none; font-weight:800; }
.iso-aside-ico { width:20px; height:20px; flex: 0 0 20px; opacity:.95; }
.iso-aside-text { font-size: clamp(14px, 1.1vw, 16px); letter-spacing:.3px; }

/* Modal */
.iso-modal { position:fixed; inset:0; z-index:9999; display:none; }
.iso-modal.is-open { display:block; }
.iso-modal__backdrop { position:absolute; inset:0; background: rgba(15,23,42,.35); backdrop-filter: blur(6px) saturate(110%); -webkit-backdrop-filter: blur(6px) saturate(110%); }
.iso-modal__dialog { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:transparent; pointer-events:none; }
.iso-sheet { pointer-events:auto; display:inline-flex; flex-direction:column; align-items:center; gap:10px; background:transparent; transform: translateY(var(--modal-offset-y)); }
.iso-sheet-img { display:block; width:auto; height:auto; max-width: min(86vw, 980px); max-height:72vh; object-fit:contain; background:transparent; border-radius:8px; }
.iso-sheet-cta { width:100%; display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px; background: linear-gradient(135deg, var(--blue-1), var(--blue-2) 50%, var(--blue-3)); color:#fff; text-decoration:none; font-weight:800; border-radius:10px; }
.iso-sheet-ico { width:20px; height:20px; }
.iso-modal__close { position:absolute; top:-14px; right:-14px; width:40px; height:40px; border-radius:999px; border:none; cursor:pointer; font-size:26px; line-height:1; color:#f8fafc; background: rgba(15,23,42,.55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); box-shadow: 0 4px 18px rgba(0,0,0,.25); display:grid; place-items:center; transition: filter .18s ease, transform .18s ease; }
.iso-modal__close:hover { filter: brightness(1.06); transform: scale(1.04); }

@media (max-width:980px){
  .pf-iso9001-download { padding: clamp(24px, 4vw, 56px) 0 clamp(24px, 4vw, 56px) !important; padding-bottom: calc(clamp(24px, 4vw, 56px) + 25px) !important; }
  .iso-dl-grid { grid-template-columns:1fr; gap: clamp(16px, 4vw, 28px); }
  .iso-dl-wrap { padding: 0 20px; }
  .iso-dl-content, .iso-dl-card { transform:none; }
  .iso-card-media { height: clamp(180px, 34vw, 240px); }
  .iso-sheet-img { max-width:92vw; max-height:78vh; }
  .iso-modal__close { top:-10px; right:-10px; }
}

/* =====================================
   =              FOOTER               =
   ===================================== */
.alc-footer {
  --navy:#1e3a8a; --dark:#0f172a; --white:#ffffff; --wm-opacity:.10; --container: min(1280px, 92vw);
  color: var(--white); background: var(--dark); position:relative; overflow:hidden; z-index:0;
}
.alc-footer .footer-watermark {
  position:absolute; top:50%; left:50%; transform: translate(-50%,-50%);
  width: clamp(440px, 36vw, 680px); height:auto; opacity: var(--wm-opacity);
  pointer-events:none; z-index:2; object-fit:contain; filter: saturate(.9) contrast(1.02);
}
.footer-cta, .footer-bottom { position:relative; z-index:1; }
.footer-cta { background: var(--navy); padding: clamp(40px, 6vw, 90px) 0; text-align:center; }
.footer-bottom { background: var(--dark); padding: clamp(28px, 4.8vw, 64px) 0 clamp(16px, 3vw, 32px); }
.footer-container { width: var(--container); margin:0 auto; padding: 0 clamp(16px, 3vw, 28px); position:relative; z-index:3; }
.cta-head { max-width:920px; margin: 0 auto clamp(18px, 3.6vw, 30px); }
.cta-title { margin:0 0 10px; font-weight:800; letter-spacing:-0.01em; line-height:1.18; font-size: clamp(24px, 3.6vw, 40px); color: var(--white); }
.cta-subtitle { margin:0; color:#e2e8f0; font-size: clamp(14px, 1.4vw, 18px); line-height:1.6; }
.cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top: clamp(14px, 2.2vw, 22px); }
.btn { border:1.5px solid var(--white); background:transparent; color:var(--white); padding:13px 22px; border-radius:10px; font-weight:800; font-size:15.5px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; transition: transform .25s cubic-bezier(.2,.8,.2,1), background .2s ease; }
.btn:hover { transform: translateY(-2px); background: rgba(255,255,255,.06); }
.footer-cols { display:grid; grid-template-columns: 1.1fr 1fr 1fr; gap: clamp(16px, 3vw, 32px); margin-bottom: clamp(18px, 3vw, 28px); }
.brand-logo { width: clamp(140px, 18vw, 200px); height:auto; margin-bottom:10px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.brand-name { font-weight:800; font-size:16px; letter-spacing:.2px; }
.info-list, .legal-list { list-style:none; margin:0; padding:0; color:#e5e7eb; font-size:14.5px; line-height:1.7; }
.info-list a, .legal-list a { color:#e5e7eb; text-decoration:none; border-bottom:1px dotted rgba(229,231,235,.35); }
.legal-list a:hover, .info-list a:hover { color:#fff; }
.footer-copy { border-top:1px solid rgba(255,255,255,.08); padding-top: clamp(10px, 1.6vw, 14px); font-size:13.5px; color:#cbd5e1; text-align:center; }

@media (max-width:900px){
  .footer-cols { grid-template-columns:1fr; text-align:center; gap:14px; margin-bottom:14px; }
  .alc-footer .footer-watermark { width: clamp(360px, 34vw, 520px); }
  .brand-logo { margin: 0 auto 8px; }
  .cta-actions { margin-top:12px; }
  .btn { padding:10px 16px; font-size:14px; border-radius:9px; }
  .footer-info { text-align:center; }
  .footer-legal .legal-list { display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; white-space:nowrap; gap:0; font-size: clamp(10px, 2.8vw, 12px); letter-spacing:-0.1px; }
  .footer-legal .legal-list li { display:inline; }
  .footer-legal .legal-list li+li::before { content:'•'; margin: 0 6px; opacity:.6; }
  .footer-bottom { padding-top:20px; padding-bottom:18px; }
}
