/* DIMENSIONI IMMAGINI (export finale)
   Hero ............................ 16:9   1920×1080   Lacci_Hero.jpg
   Gallery famiglie (4 slide) ....... 1:1    1080×1080   Lacci_Gamma-1…4.jpg
   Disegno tecnico .................. SVG, già pronto        Lacci_Schema.svg
   Gallery colori (4 slide) ......... 3:2    1080×720    Lacci_Colori-1…4.jpg
   Foto conformità alimentare ....... 3:2    1080×720    Lacci_Applicazione.jpg
   Sistema IC ....................... ~1,54  800×520     Lacci_Sistema.jpg */

:root {
  --navy:    #162C4E;
  --blue:    #1A5FA8;
  --azure:   #0090D4;
  --sky:     #4DB8E8;
  --white:   #FFFFFF;
  --offwhite:#F5F9FD;
  --text:    #1E2D3D;
  --muted:   #536070;
  --border:  #C8DCEA;
  --lighthr: #E0EEF6;
  --head:    'Raleway', sans-serif;
  --body:    'Lato', sans-serif;
}





.container { max-width: 1180px; margin: 0 auto; padding: 0 48px; }

.ph { background: linear-gradient(135deg, #C8DCEA 0%, #9DBFD8 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; color: #4A7A9B; font-family: var(--head); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; gap: 10px; text-align: center; padding: 20px; }
.ph.onblue { background: linear-gradient(135deg, #1A4880 0%, #162C4E 100%); color: #4A8DB5; }

.eyebrow { font-family: var(--head); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--azure); margin-bottom: 10px; }
.sh { font-family: var(--head); font-weight: 800; line-height: 1.15; margin-bottom: 18px; }
.sh.on-white { font-size: 32px; color: var(--navy); }
.sh.on-blue  { font-size: 32px; color: var(--white); }
.sh.lg.on-blue  { font-size: 38px; }
.sh.lg.on-white { font-size: 38px; }
.sdesc { font-size: 14.5px; font-weight: 300; line-height: 1.85; }
.sdesc.on-white { color: var(--muted); }
.sdesc.on-blue  { color: rgba(255,255,255,.72); }
.sdesc strong { font-weight: 600; }
.sdesc.on-white strong { color: var(--text); }
.sdesc.on-blue  strong { color: var(--white); }

.btn { display: inline-block; font-family: var(--head); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; padding: 13px 28px; border: 2px solid transparent; cursor: pointer; transition: background .18s, color .18s, border-color .18s; }
.btn-solid  { background: var(--azure); color: var(--white); border-color: var(--azure); }
.btn-solid:hover { background: #0078B4; border-color: #0078B4; }
.btn-ghost-white { background: transparent; color: var(--white); border-color: rgba(255,255,255,.5); }
.btn-ghost-white:hover { border-color: var(--white); background: rgba(255,255,255,.1); }

.draft-banner { background: #FEF9E7; border-bottom: 3px solid #D4A017; padding: 10px 48px; font-family: var(--head); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #7D6608; display: flex; align-items: center; gap: 10px; }
.draft-banner svg { width: 16px; height: 16px; fill: #D4A017; flex-shrink: 0; }

/* ── 01 HERO ── */
.hero { padding: 52px 0 0; background: var(--white); }
.hero-title-block { padding: 0 48px 32px; max-width: 1180px; margin: 0 auto; }
.hero-title-block h1 { font-family: var(--head); font-size: 48px; font-weight: 900; color: var(--blue); line-height: 1.1; margin-bottom: 10px; }
.hero-title-block .hero-sub { font-size: 15px; font-weight: 300; color: var(--muted); max-width: 680px; line-height: 1.8; }
.hero-title-block .hero-sub strong { color: var(--text); font-weight: 600; }
.hero-img-full { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; }
.hero-img-full img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-img-full .ph { height: 100%; font-size: 11px; }

/* KPI STRIP */
.kpi-strip { background: var(--blue); display: grid; grid-template-columns: repeat(4, 1fr); }
.kpi-item { padding: 20px 32px; border-right: 1px solid rgba(255,255,255,.15); display: flex; flex-direction: column; gap: 3px; }
.kpi-item:last-child { border-right: none; }
.kpi-num { font-family: var(--head); font-size: 28px; font-weight: 900; color: var(--white); line-height: 1; }
.kpi-lbl { font-family: var(--head); font-size: 9.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }

/* ── 02 DUE FAMIGLIE ── */
.products { background: var(--blue); padding: 72px 0 80px; }
.products-head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: end; margin-bottom: 48px; }

/* Box unico: gallery quadrata a sinistra, due famiglie a destra.
   Stesse regole anti-bug delle card Budelli: Grid 42%/1fr, min-width:0, align-self:start sulla gallery. */
.family-box { background: var(--white); display: grid; grid-template-columns: 42% 1fr; }
.family-box > * { min-width: 0; }
.family-box .slideshow { width: 100%; align-self: stretch; } /* min 1:1, si allunga solo se il testo accanto è più alto: niente vuoto sotto la foto */
.family-body { padding: 28px 36px; border-left: 3px solid var(--azure); display: flex; flex-direction: column; justify-content: center; }
.family + .family { border-top: 1px solid var(--lighthr); margin-top: 20px; padding-top: 20px; }
.family-tag { font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--azure); margin-bottom: 6px; }
.family h3 { font-family: var(--head); font-size: 22px; font-weight: 900; color: var(--navy); line-height: 1.15; margin-bottom: 10px; }
.family p { font-size: 13px; font-weight: 300; color: var(--muted); line-height: 1.75; margin-bottom: 10px; }
.family p strong { color: var(--text); font-weight: 600; }
.family-vars { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 20px; }
.family-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-family: var(--head); font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--blue); transition: color .15s, gap .15s; }
.family-link:hover { color: var(--azure); gap: 10px; }
/* FIX SAFARI (come Budelli): margin-right al posto di gap su flex con pseudo-elemento */
.v-item { display: flex; align-items: flex-start; font-size: 12.5px; font-weight: 300; color: var(--text); padding: 2px 0; line-height: 1.5; }
.v-item::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--azure); flex-shrink: 0; margin-top: 7px; margin-right: 10px; }

/* Slideshow (stesso componente della pagina Clip) */
.slideshow { position: relative; overflow: hidden; background: var(--offwhite); }
.slideshow.r-square { aspect-ratio: 1 / 1; }
.slideshow.r-32 { aspect-ratio: 3 / 2; }
.slide { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: 0; opacity: 0; transition: opacity .6s ease; }
.slide.is-active { opacity: 1; z-index: 1; }
.slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slide .ph { height: 100%; }
.ss-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 40px; height: 40px; border: none; background: rgba(22,44,78,.72); color: var(--white); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.ss-btn:hover { background: var(--azure); }
.ss-btn svg { width: 18px; height: 18px; fill: currentColor; }
.ss-prev { left: 0; }
.ss-next { right: 0; }
.ss-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; display: flex; justify-content: center; gap: 6px; }
.ss-dot { width: 22px; height: 4px; border: none; padding: 0; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(22,44,78,.25); cursor: pointer; transition: background .2s, width .2s; }
.ss-dot.is-active { background: var(--azure); width: 34px; }

/* ── 03 SCHEMA TECNICO LACCI ── */
.lacci-schema { background: var(--white); padding: 72px 0 80px; border-top: 1px solid var(--lighthr); }
.schema-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.schema-inner > * { min-width: 0; }
.schema-diagram-box { background: var(--offwhite); border: 1px solid var(--border); padding: 28px 24px; }
.schema-diagram-label { font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--azure); margin-bottom: 14px; }
.drawing-slot { border: 2px dashed var(--border); background: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 28px; text-align: center; }
.drawing-slot-label { font-family: var(--head); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--azure); }
.drawing-figure { background: var(--white); border: 1px solid var(--border); padding: 16px; margin-bottom: 14px; }
.drawing-figure img { width: 100%; height: auto; display: block; }
.drawing-slot-desc { font-size: 11px; font-weight: 300; color: var(--muted); line-height: 1.5; }

/* Param grid */
.param-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.param-item { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-left: 3px solid var(--azure); background: var(--white); }
.param-letter { font-family: var(--head); font-size: 20px; font-weight: 900; color: var(--navy); line-height: 1; }
.param-name { font-family: var(--head); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--azure); }
.param-desc { font-size: 11.5px; font-weight: 300; color: var(--muted); line-height: 1.5; }

.download-card { margin-top: 28px; border: 1.5px solid var(--border); padding: 18px 22px; display: flex; align-items: center; gap: 16px; transition: border-color .2s; }
.download-card:hover { border-color: var(--azure); }
.download-icon { color: var(--azure); flex-shrink: 0; }
.download-icon svg { width: 32px; height: 32px; fill: currentColor; }
.download-title { font-family: var(--head); font-size: 12px; font-weight: 800; color: var(--navy); margin-bottom: 2px; }
.download-sub { font-size: 11.5px; font-weight: 300; color: var(--muted); }
.download-btn { margin-left: auto; flex-shrink: 0; }
.download-btn span { display: inline-block; font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--white); background: var(--azure); padding: 7px 14px; }

/* ── 04 MATERIALE: POLIPROPILENE ── */
.materials { background: var(--offwhite); padding: 72px 0 80px; border-top: 1px solid var(--lighthr); }
.materials-head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: end; margin-bottom: 44px; }
.mat-single { background: var(--white); border: 1px solid var(--border); display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; }
.mat-single > * { min-width: 0; padding: 32px 28px; }
.mat-single > * + * { border-left: 1px solid var(--lighthr); }
.mat-id { border-top: 3px solid var(--azure); display: flex; flex-direction: column; gap: 12px; }
.mat-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.mat-icon svg { width: 40px; height: 40px; fill: none; stroke: var(--navy); stroke-width: 2; }
.mat-name { font-family: var(--head); font-size: 22px; font-weight: 900; color: var(--navy); line-height: 1.1; }
.mat-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.mat-tag { font-family: var(--head); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border: 1.5px solid var(--border); color: var(--blue); }
.mat-prop-lbl { font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--azure); margin-bottom: 10px; }
.mat-prop-txt { font-size: 13px; font-weight: 300; color: var(--muted); line-height: 1.75; }
.mat-prop-txt strong { color: var(--text); font-weight: 600; }

/* ── 05 COLORI E CONFORMITÀ — due righe sovrapposte, media a sinistra allineati ── */
.colours { background: var(--white); padding: 72px 0 80px; border-top: 1px solid var(--lighthr); }
.split-row { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split-row > * { min-width: 0; }
.split-row + .split-row { margin-top: 64px; padding-top: 64px; border-top: 1px solid var(--lighthr); }
.split-media { aspect-ratio: 3 / 2; overflow: hidden; }
.split-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.split-media .ph { height: 100%; font-size: 10px; }
.colours-row { grid-template-areas: ". head" "media body"; row-gap: 0; align-items: stretch; }
.colours-row > .slideshow { grid-area: media; align-self: start; }
.colours-head { grid-area: head; }
.colours-body { grid-area: body; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.colours-body .sdesc { margin: 0; }
.colours-body .sdesc strong { color: var(--text); font-weight: 600; }
.colours-body .colour-grid, .colours-body .colour-custom-note { margin-top: 0; }
.colour-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px 10px; margin-top: 24px; }
.colour-swatch-card { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.colour-swatch-block { height: 14px; border: 1px solid var(--border); }
.colour-swatch-name { font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
/* Nota colori personalizzati: quadrato "Su richiesta" a sinistra, alto quanto il testo */
.colour-custom-note { margin-top: 20px; border-left: 3px solid var(--azure); padding: 12px 16px; background: var(--offwhite); display: flex; align-items: stretch; gap: 16px; }
.colour-custom-swatch { flex: none; align-self: stretch; width: 96px; border: 1px solid #7FA7C6; background: repeating-linear-gradient(45deg, #B9D2E4 0px, #B9D2E4 4px, #FFFFFF 4px, #FFFFFF 8px); display: flex; align-items: center; justify-content: center; text-align: center; font-family: var(--head); font-size: 8px; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; color: var(--blue); }
.colour-custom-body { flex: 1; min-width: 0; }
.colour-custom-label { font-family: var(--head); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--azure); margin-bottom: 5px; }
.colour-custom-text { font-size: 13px; font-weight: 300; color: var(--muted); line-height: 1.7; }
.colour-custom-text strong { color: var(--text); font-weight: 600; }
.cert-strip { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.cert-badge { border: 1.5px solid var(--border); padding: 10px 18px; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.cert-badge-main { font-family: var(--head); font-size: 11px; font-weight: 800; color: var(--navy); letter-spacing: .04em; text-transform: uppercase; }
.cert-badge-sub { font-family: var(--head); font-size: 8px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

/* ── 06 SISTEMA: LACCI + CLIP ── */
.sistema { background: var(--navy); padding: 72px 0; }
.sistema-inner { display: grid; grid-template-columns: 1fr 400px; gap: 72px; align-items: center; }
.sistema-inner > * { min-width: 0; }
.sistema-lbl { font-family: var(--head); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--sky); margin-bottom: 14px; }
.sistema h2 { font-family: var(--head); font-size: 30px; font-weight: 800; color: var(--white); line-height: 1.15; margin-bottom: 18px; }
.sistema-img { aspect-ratio: 400 / 260; overflow: hidden; }
.sistema-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sistema-img .ph.onblue { height: 100%; }
.sistema-btns { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }

/* ── 07 FORM ── */
.contact { padding: 72px 0; background: var(--white); border-top: 1px solid var(--lighthr); }
.contact-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.contact-text p { font-size: 14px; font-weight: 300; color: var(--muted); line-height: 1.85; margin-bottom: 16px; }
.contact-text p strong { color: var(--text); font-weight: 600; }
.form-box { background: var(--offwhite); border: 1.5px solid var(--border); padding: 36px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.fld { display: flex; flex-direction: column; gap: 5px; }
.fld.full { grid-column: 1 / -1; }
.fld label { font-family: var(--head); font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.fld input, .fld select, .fld textarea { padding: 10px 12px; border: 1.5px solid var(--border); font-family: var(--body); font-size: 13px; color: var(--text); background: var(--white); outline: none; resize: vertical; transition: border-color .15s; }
.fld input:focus, .fld select:focus, .fld textarea:focus { border-color: var(--azure); }
.form-submit { margin-top: 18px; }
.form-submit .btn { display: block; width: 100%; text-align: center; padding: 14px; }
.form-note { margin-top: 10px; font-size: 11px; color: var(--muted); font-weight: 300; line-height: 1.6; }
.form-note a { color: var(--azure); }

.foot { background: var(--navy); padding: 30px 40px; border-top: 3px solid var(--azure); text-align: center; font-family: var(--head); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.28); }
/* ══ RESPONSIVE ══ */
@media (max-width: 1024px) {
  .container { padding: 0 32px; }
  .hero-title-block { padding: 0 32px 28px; }
  .draft-banner { padding: 10px 32px; }
  .kpi-strip { grid-template-columns: repeat(2, 1fr); }
  .kpi-item:nth-child(2) { border-right: none; }
  .kpi-item:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.15); }
  .products-head, .materials-head { grid-template-columns: 1fr; gap: 16px; }
  .schema-inner, .split-row, .sistema-inner, .contact-inner { grid-template-columns: 1fr; gap: 40px; }
  .split-row + .split-row { margin-top: 48px; padding-top: 48px; }
  .colours-row { grid-template-areas: "media" "head" "body"; row-gap: 32px; }
  .colours-head .sh { margin-bottom: 0; }
  .family-box { grid-template-columns: 1fr; }
  .family-box .slideshow.r-square { aspect-ratio: 3 / 2; }
  .family-body { border-left: none; border-top: 3px solid var(--azure); padding: 26px 24px 30px; }
  .mat-single { grid-template-columns: 1fr 1fr; }
  .mat-single > * + * { border-left: none; }
  .mat-single > *:nth-child(n+2) { border-top: 1px solid var(--lighthr); }
  .mat-id { grid-column: 1 / -1; }
  .mat-single > *:nth-child(4) { border-left: 1px solid var(--lighthr); }
  .contact-inner > *, .form-row > * { min-width: 0; }
  .fld input, .fld select, .fld textarea { width: 100%; }
}
@media (max-width: 768px) {
  .hero { padding-top: 36px; }
  .hero-title-block h1 { font-size: 36px; }
  .sh.lg.on-white, .sh.lg.on-blue { font-size: 30px; }
  .products, .lacci-schema, .materials, .colours, .sistema, .contact { padding-top: 56px; padding-bottom: 64px; }
  .form-row { grid-template-columns: 1fr; }
  .form-box { padding: 24px; }
  .download-card { flex-wrap: wrap; }
  .download-btn { margin-left: 0; }
  .mat-single { grid-template-columns: 1fr; }
  .mat-single > *:nth-child(4) { border-left: none; }
}
@media (max-width: 480px) {
  .container { padding: 0 20px; }
  .hero-title-block { padding: 0 20px 24px; }
  .draft-banner { padding: 10px 20px; }
  .hero-title-block h1 { font-size: 30px; }
  .kpi-item { padding: 16px 20px; }
  .kpi-num { font-size: 24px; }
  .param-grid { grid-template-columns: 1fr; }
  .family-vars { grid-template-columns: 1fr; }
  .colour-grid { gap: 6px; }
  .colour-swatch-block { height: 12px; }
  .colour-swatch-name { font-size: 8px; letter-spacing: .02em; }
}

/* Segnaposto: nascosto se la foto c'è, visibile se il file manca */
.ph[hidden] { display: none; }
.hero-img-full img, .sistema-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ══ ACCESSIBILITÀ ══ */
a:focus-visible, button:focus-visible, .slideshow:focus-visible {
  outline: 2px solid var(--azure); outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; }
}

/* Offset header fisso (.top-menu), come .page-budelli */
.page-lacci {
  padding-top: calc(100vw * 72 / var(--viewSize));
}
@media screen and (max-width: 992px) {
  .page-lacci {
    padding-top: calc(100vw * 64 / var(--viewSize));
  }
}

/* Joomla page wrapper */
.page-lacci,
.page-lacci section { position: relative; z-index: 2; }
.page-lacci img { display: block; max-width: 100%; }
.page-lacci a.download-card { text-decoration: none; color: inherit; }

/* Header light override (same as clip/budelli) */
.logo-top > svg,
.logo-top > svg path { fill: var(--blue-40) !important; }
.top-menu { background: var(--neutral-10) !important; }
#language_btn_113 { color: var(--blue-40) !important; }
@media screen and (max-width: 992px) {
  .logo-top > svg, .logo-top > svg path { fill: var(--blue-40) !important; }
  #language_btn_113 { color: var(--blue-40) !important; }
}

/* FAQ boxes (editable from Contatto) */
.page-lacci .faq-examples { margin: 20px 0 8px; display: flex; flex-direction: column; gap: 12px; }
.page-lacci .faq-box { background: var(--offwhite, #f4f7fa); border: 1px solid var(--border, #d8e0e8); border-left: 3px solid var(--azure, #1A9BD7); padding: 14px 18px; }
.page-lacci .faq-q { font-family: var(--head, inherit); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--azure, #1A9BD7); margin-bottom: 5px; }
.page-lacci .faq-text { font-size: 13.5px; font-weight: 400; color: var(--text, #1a2b3c); line-height: 1.6; font-style: italic; }
.page-lacci .faq-note { font-size: 12px; font-weight: 300; color: var(--muted, #6b7c8f); margin-top: 5px; line-height: 1.55; }

.page-lacci p:empty { display: none; }

/* ══ MOBILE ══ */
@media (max-width: 1024px) {
  .page-lacci .products-head,
  .page-lacci .materials-head {
    gap: 12px;
    align-items: start;
    margin-bottom: 28px;
  }
  .page-lacci .products-head .sh,
  .page-lacci .materials-head .sh { margin-bottom: 0; }
  .page-lacci .products-head .sdesc,
  .page-lacci .materials-head .sdesc,
  .page-lacci .colours-body .sdesc { margin: 0; }
  .page-lacci .products-head .sdesc > p,
  .page-lacci .materials-head .sdesc > p,
  .page-lacci .colours-body .sdesc > p { margin: 0; }
  .page-lacci .products,
  .page-lacci .materials,
  .page-lacci .colours,
  .page-lacci .sistema { padding-top: 48px; padding-bottom: 48px; }
}
@media (max-width: 768px) {
  .page-lacci .colour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
  .page-lacci .colour-swatch-block { height: 28px; }
  .page-lacci .colour-swatch-name { font-size: 11px; letter-spacing: .04em; }
  .page-lacci .colour-custom-swatch { width: 72px; font-size: 9px; }
  .page-lacci .sistema h2 { font-size: 26px; }
  .page-lacci .sistema-btns .btn { width: 100%; text-align: center; }
  .page-lacci .download-card { flex-wrap: wrap; gap: 12px; align-items: flex-start; }
  .page-lacci .download-btn { margin-left: 0; }
  .page-lacci .cert-badge { flex: 1 1 calc(50% - 12px); min-width: 0; text-align: center; }
  .page-lacci .form-box { padding: 20px 16px; }
  .page-lacci .form-box .row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
  .page-lacci .form-box .row > .col-md-3:not(:has(*)) { display: none !important; }
  .page-lacci .form-box .formControls,
  .page-lacci .form-box .d-flex.justify-content-end,
  .page-lacci .form-box .d-flex.justify-content-end > .rsform-block { width: 100%; flex: 1 1 100%; justify-content: stretch !important; }
  .page-lacci .form-box .rsform-submit-button,
  .page-lacci .form-box .formControls > .rsform-submit-button,
  .page-lacci .form-box button[type="submit"] { width: 100% !important; }
  .page-lacci .form-box .form-check,
  .page-lacci .form-box .form-check-inline { display: flex; width: 100%; margin-right: 0; white-space: normal; }
}
@media (max-width: 480px) {
  .page-lacci .container { padding: 0 16px; }
  .page-lacci .hero-title-block { padding: 0 16px 20px; }
  .page-lacci .hero-title-block h1 { font-size: 32px; }
  .page-lacci .sh,
  .page-lacci .sh.lg,
  .page-lacci .sh.on-white,
  .page-lacci .sh.on-blue,
  .page-lacci .sh.lg.on-white,
  .page-lacci .sh.lg.on-blue { font-size: 22px; line-height: 1.25; }
  .page-lacci .kpi-item { padding: 14px 16px; }
  .page-lacci .kpi-lbl { letter-spacing: .06em; }
}

/* Corpo unico: stessa misura e interlinea, anche sul grassetto */
.page-lacci p,
.page-lacci p span,
.page-lacci .sdesc,
.page-lacci .sdesc span,
.page-lacci .hero-sub,
.page-lacci .hero-title-block .hero-sub,
.page-lacci .hero-title-block p,
.page-lacci .family p,
.page-lacci .tile-desc,
.page-lacci .faq-text,
.page-lacci .faq-note,
.page-lacci .v-item,
.page-lacci .colour-custom-text,
.page-lacci .contact-text p {
  font-family: Campton, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
}
.page-lacci p strong,
.page-lacci p b,
.page-lacci p em,
.page-lacci .sdesc strong,
.page-lacci .sdesc b,
.page-lacci .sdesc em,
.page-lacci li strong,
.page-lacci li b,
.page-lacci .family p strong,
.page-lacci .colour-custom-text strong {
  font-family: inherit;
  font-size: inherit;
  font-weight: 600;
  font-style: normal;
  line-height: inherit;
  letter-spacing: 0;
}
.page-lacci h1,
.page-lacci .sh,
.page-lacci .family h3 {
  line-height: 1.2;
}
