/* Estructura comuna de les pàgines de producte. */
body.producte-page { margin: 1px; }
body.producte-page main { margin: 0; padding: 0; }
body.producte-page .interior-hero-banner,
body.producte-page .interior-layout,
body.producte-page .interior-main,
body.producte-page .interior-side { margin: 0; }
body.producte-page .interior-layout { display: grid; grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); gap: 22px; }
body.producte-page .side-card { margin: 0 0 25px; padding: 0; }
body.producte-page .side-card h2 { margin: 0 0 6px; }
body.producte-page .side-card > a { display: block; margin: 0; }
body.producte-page .side-contact { margin-top: 18px; text-align: center; }
body.producte-page .service-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0 0 25px; }
body.producte-page .service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 18px; row-gap: 28px; align-items: stretch; }
body.producte-page .service-links-card { margin: 0; padding: 0; overflow: hidden; }
body.producte-page .service-links-card img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin: 0 0 12px; border-radius: 20px; }
body.producte-page .service-links-card img { transition: transform 180ms ease; }
body.producte-page .service-links-card:hover img,
body.producte-page .service-links-card:focus-within img { transform: scale(1.04); }
body.producte-page .service-links-card h2 { margin: 0 0 6px; }
body.producte-page .service-links-card a { display: block; margin: 0; line-height: 1.66; }
body.producte-page .service-grid-card .service-card-link { color: inherit; text-decoration: none; overflow: hidden; transition: color 180ms ease, transform 180ms ease; }
body.producte-page .service-grid-card .service-card-link:hover,
body.producte-page .service-grid-card .service-card-link:focus-visible { color: #7f1d3d; text-decoration: none; transform: none; }
body.producte-page .service-grid-card .service-card-link:hover { color: #7f1d3d; text-decoration: none; transform: none; }
body.producte-page .service-grid-card .service-card-link:hover h3,
body.producte-page .service-grid-card .service-card-link:hover p,
body.producte-page .service-grid-card .service-card-link:focus-visible h3,
body.producte-page .service-grid-card .service-card-link:focus-visible p { color: #7f1d3d; }
body.producte-page .service-grid-card .service-card-link img { transition: transform 180ms ease; }
body.producte-page .service-grid-card .service-card-link img { border-radius: 12px; }
body.producte-page .service-grid-card .service-card-link:hover img,
body.producte-page .service-grid-card .service-card-link:focus-visible img { transform: scale(1.04); }

body.producte-page .doc-card-link .doc-card-icon { transition: transform 180ms ease; }
body.producte-page .doc-card-link:hover .doc-card-icon,
body.producte-page .doc-card-link:focus-visible .doc-card-icon { transform: scale(1.04); }
body.producte-page .doc-card-link:hover,
body.producte-page .doc-card-link:focus-visible { transform: none; }
body.producte-page .doc-card-link:hover .doc-card-copy h3,
body.producte-page .doc-card-link:hover .doc-card-copy p,
body.producte-page .doc-card-link:hover .doc-card-cta,
body.producte-page .doc-card-link:focus-visible .doc-card-copy h3,
body.producte-page .doc-card-link:focus-visible .doc-card-copy p,
body.producte-page .doc-card-link:focus-visible .doc-card-cta { color: #7f1d3d; }
body.producte-page .service-grid .service-card-link { display: block; color: inherit; text-decoration: none; }
body.producte-page .service-grid .service-card-link:hover,
body.producte-page .service-grid .service-card-link:focus-visible { color: #7f1d3d; text-decoration: none; }
body.producte-page .service-grid .service-card-link .service-card-image-wrap { overflow: hidden; }
body.producte-page .service-grid .service-card-link .service-card-image-wrap > img:first-child { transition: transform 180ms ease; }
body.producte-page .service-grid .service-card-link:hover .service-card-image-wrap > img:first-child,
body.producte-page .service-grid .service-card-link:focus-visible .service-card-image-wrap > img:first-child { transform: scale(1.04); }
body.producte-page .service-grid .service-card-link:hover h3,
body.producte-page .service-grid .service-card-link:hover p,
body.producte-page .service-grid .service-card-link:focus-visible h3,
body.producte-page .service-grid .service-card-link:focus-visible p { color: #7f1d3d; }
body.page-ignifugacio .service-grid .service-card-link { padding: 0; }
body.page-ignifugacio .service-grid .service-card-image-wrap { margin-bottom: 18px; border-radius: 20px; overflow: hidden; }
body.page-ignifugacio .service-grid .service-card-image-wrap > img:first-child { border-radius: 0; }
body.page-ignifugacio .service-grid .service-card-link h3,
body.page-ignifugacio .service-grid .service-card-link p { padding-left: 24px; padding-right: 24px; }
body.page-ignifugacio .service-grid .service-card-link p { padding-bottom: 24px; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link { padding: 0; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link { overflow: hidden; border-radius: 20px; }
body.page-neteja-sense-desmuntar .service-grid .service-card-image-wrap { margin-bottom: 18px; border-radius: 20px; overflow: hidden; }
body.page-neteja-sense-desmuntar .service-grid .service-card-image-wrap > img:first-child { border-radius: 0; transition: transform 180ms ease; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link:hover .service-card-image-wrap > img:first-child,
body.page-neteja-sense-desmuntar .service-grid .service-card-link:focus-visible .service-card-image-wrap > img:first-child { transform: scale(1.04); }
body.page-neteja-sense-desmuntar .service-grid .service-card-link h3,
body.page-neteja-sense-desmuntar .service-grid .service-card-link p { padding-left: 24px; padding-right: 24px; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link p { padding-bottom: 24px; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link > img { display: block; width: 100%; border-radius: 0; transition: transform 180ms ease; }
body.page-neteja-sense-desmuntar .service-grid .service-card-link:hover > img,
body.page-neteja-sense-desmuntar .service-grid .service-card-link:focus-visible > img { transform: scale(1.04); }

@media (max-width: 1080px) {
    body.producte-page .interior-layout { grid-template-columns: 1fr; }
    body.producte-page .service-links-grid { grid-template-columns: 1fr; }
    body.producte-page .service-grid { grid-template-columns: 1fr; }
}

/* Amplada centrada del contingut de producte. */
body.producte-page .interior-wrap {
    width: min(1200px, 100%);
    margin-left: auto;
    margin-right: auto;
}

/* Diagnòstic opcional: només existeix quan el PHP activa debug-containers. */
body.producte-page.debug-containers .interior-hero-frame { border: 2px solid #ef4444; }
body.producte-page.debug-containers .interior-hero-intro { border: 2px solid #eab308; }
body.producte-page.debug-containers .interior-layout { border: 2px solid #16a34a; }
body.producte-page.debug-containers .interior-side { border: 2px solid #0891b2; }
body.producte-page.debug-containers .interior-main { border: 2px solid #0f766e; }
body.producte-page.debug-containers .side-card { border: 2px solid #22c55e; }
body.producte-page.debug-containers .side-contact { border: 2px solid #ec4899; }
body.producte-page.debug-containers .content-card { border: 2px solid #84cc16; }
body.producte-page.debug-containers .service-media-grid { border: 2px solid #06b6d4; }
body.producte-page.debug-containers .docs-section-heading { border: 2px solid #f97316; }
body.producte-page.debug-containers .docs-grid { border: 2px solid #14b8a6; }

/* Peu del banner: quan hi ha dues frases, el salt és explícit i no crea espai extra. */
body.producte-page .interior-hero-intro p {
    margin: 0;
    line-height: 1.4;
}

/* Contacte comú: el mateix ritme a les dues columnes. */
body.producte-page .side-contact {
    width: 100%;
    margin: 18px 0 0;
    text-align: center;
}

/* Normativa: ritme visual entre les dues files de documentació i el bloc següent. */
body.page-normativa-ignifugacio-certificacio .docs-grid + .docs-divider {
    height: 8px;
    margin: 22px 0;
    background: transparent;
    border-top: 1px solid rgba(28, 39, 49, 0.12);
    border-bottom: 1px solid rgba(28, 39, 49, 0.12);
}

body.page-normativa-ignifugacio-certificacio .docs-divider-bottom + .related-card {
    margin-top: 10px;
}

body.producte-page .side-contact p {
    margin: 0;
    padding: 10px 0;
    line-height: 1.4;
    border-top: 1px solid rgba(28, 39, 49, 0.18);
}

body.producte-page .side-contact p:last-child {
    border-bottom: 1px solid rgba(28, 39, 49, 0.18);
}

body.producte-page .side-contact span,
body.producte-page .side-contact a {
    display: block;
}

body.producte-page .side-contact a {
    margin-top: 3px;
    font-weight: 700;
}

/* Marges laterals constants del marc principal. */
body.producte-page .interior-wrap {
    width: min(1200px, calc(100% - 40px));
}

/* Components comuns del model: sense espais heretats dels contenidors antics. */
body.producte-page .side-card .side-copy,
body.producte-page .related-card,
body.producte-page .cta-card {
    margin: 0;
    padding: 0;
}

body.producte-page .side-links-group {
    margin: 25px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid rgba(28, 39, 49, 0.18);
}

body.producte-page .side-links-group h3 {
    margin: 0 0 6px;
}

body.producte-page .side-links-group a,
body.producte-page .related-card a {
    display: block;
    margin: 0;
    line-height: 1.66;
}

body.producte-page .interior-main > .related-card {
    margin: 0 0 25px;
    padding: 25px 0 0;
    border-top: 1px solid rgba(28, 39, 49, 0.18);
}

body.producte-page .interior-main > .cta-card {
    margin: 0 0 25px;
}

body.producte-page .cta-card h2,
body.producte-page .related-card h2 {
    margin: 0 0 6px;
}

body.page-empresa .interior-hero-overlay h1 {
    max-width: 24ch;
}

body.page-ignifugacio-ciclorama .interior-hero-frame img {
    object-position: center 70%;
}

@media (min-width: 981px) {
    body.page-empresa .interior-hero-overlay h1 {
        white-space: nowrap;
    }
}

.page-retapissat .interior-hero-overlay h1 {
    white-space: nowrap;
}

body.page-ignifugacio-moqueta-teatres-auditoris-sales-actes .ignifugacio-side-photo,
body.page-ignifugacio-fusta-decorativa-no-estructural .ignifugacio-side-photo {
    position: relative;
}

body.page-ignifugacio-moqueta-teatres-auditoris-sales-actes .interior-hero-frame {
    position: relative;
}

body.page-ignifugacio-moqueta-teatres-auditoris-sales-actes .ignifugacio-spray-overlay {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 2;
    width: 100%;
    max-width: none;
    pointer-events: none;
}

body.page-ignifugacio-moqueta-teatres-auditoris-sales-actes .interior-hero-overlay {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
}

body.page-ignifugacio-moqueta-teatres-auditoris-sales-actes .ignifugacio-side-badge,
body.page-ignifugacio-fusta-decorativa-no-estructural .ignifugacio-side-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80%;
    height: auto;
    transform: translate(-50%, -50%);
}

@media (max-width: 980px) {
    .page-retapissat .interior-hero-overlay h1 {
        white-space: normal;
    }
}

@media (min-width: 981px) {
    .page-retapissat .interior-hero-overlay h1 {
        max-width: none;
    }
}
