/* Fuentes locales declaradas en partials/icons.php para web y previsualización. */

:root {
    --color-text: #3f3f3f;
    --color-muted: #5e6869;
    --color-background: #ffffff;
    --color-surface: #ffffff;
    --color-accent: #0d6975;
    --color-accent-deep: #3d3d3d;
    --color-alternate: #d8c9ad;
    --color-border: #dbe2df;
    --container-width: 64rem;
    --editorial-width: 64rem;
    --content-width: 48rem;
    --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-heading: Montserrat, var(--font-body);
    --radius: .35rem;
    --space-xs: .5rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
    --space-2xl: 4.5rem;
    --shadow: 0 1.25rem 3.5rem rgba(20, 37, 41, .12);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-text); background: var(--color-background); font-family: var(--font-body); line-height: 1.65; }
.material-symbols-outlined { font-family: "Material Symbols Outlined"; font-weight: 400; font-style: normal; font-size: 1.5rem; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: "liga"; -webkit-font-smoothing: antialiased; font-feature-settings: "liga"; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
h1, h2, h3, h4, p, figure, blockquote { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-style: normal; font-weight: 400; line-height: 1.25; letter-spacing: 0; }
h1 { max-width: 18ch; margin-bottom: .5em; font-size: 2rem; }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.5rem; }
.shell { width: min(100% - 2rem, var(--container-width)); margin-inline: auto; }
.content-width { max-width: var(--content-width); }
.skip-link { position: fixed; z-index: 100; top: .5rem; left: .5rem; padding: .75rem 1rem; background: var(--color-surface); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.site-header { position: sticky; z-index: 50; top: 0; padding-top: 1.65rem; border-bottom: 1px solid #555; background: var(--color-accent-deep); color: #fff; }
.header-inner { min-height: 9.4rem; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: var(--space-md); }
.brand { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.brand-logo { width: 10.25rem; height: 5.1rem; object-fit: contain; filter: brightness(0) invert(1); }
.menu-toggle { display: none; }
.brand-mark { width: 1.65rem; aspect-ratio: 1; display: inline-block; border: 1px solid currentColor; border-radius: 50%; position: relative; }
.brand-mark::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 27%; height: 1px; background: currentColor; transform: rotate(-12deg); }
.site-navigation { width: 100%; min-width: 0; padding-bottom: 1.35rem; font-size: .78rem; letter-spacing: .015em; text-transform: uppercase; }
.site-navigation ul { margin: 0; padding: 0; list-style: none; }
.navigation-root { display: flex; align-items: center; justify-content: center; gap: clamp(.9rem, 2.1vw, 1.8rem); }
.navigation-root > li { position: relative; flex: 0 0 auto; }
.navigation-item-row { display: flex; align-items: center; }
.site-navigation a { display: block; white-space: nowrap; text-decoration: none; opacity: .92; }
.site-navigation a:hover, .site-navigation a:focus-visible { opacity: 1; }
.submenu-toggle { width: 1.25rem; height: 1.25rem; margin-left: .15rem; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.submenu-toggle span { display: inline-block; width: .4rem; height: .4rem; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-.15rem) rotate(45deg); }
.navigation-submenu { position: absolute; z-index: 30; top: calc(100% + 1rem); left: 0; display: none; min-width: 15rem; box-shadow: 0 .75rem 1.75rem rgba(0, 0, 0, .2); background: #fff; color: var(--color-text); font-size: .75rem; text-align: left; text-transform: none; }
.navigation-submenu::before { position: absolute; right: 0; bottom: 100%; left: 0; height: 1rem; content: ""; }
.navigation-submenu a { padding: .7rem .85rem; border-bottom: 1px solid #eee; white-space: normal; }
.navigation-submenu a:hover, .navigation-submenu a:focus-visible { background: var(--color-accent-deep); color: #fff; }
.has-submenu:hover > .navigation-submenu, .has-submenu:focus-within > .navigation-submenu, .has-submenu.submenu-open > .navigation-submenu { display: block; }
.navigation-root > .navigation-socials { margin-left: .25rem; }
.social-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .65rem; }
.social-link { display: inline-flex; align-items: center; gap: .55rem; color: inherit; text-decoration: none; }
.social-link svg { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; fill: currentColor; stroke: none; }
.social-links--navigation .social-link { padding: .25rem; opacity: .9; }
.social-links--navigation .social-link:hover, .social-links--navigation .social-link:focus-visible { opacity: 1; }
.social-links--navigation .social-link span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.breadcrumbs { width: min(100% - 2rem, 62rem); padding-block: 1.45rem; color: var(--color-muted); font-size: .86rem; letter-spacing: 0; opacity: .88; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; gap: .45rem; min-width: 0; overflow-wrap: anywhere; }
.breadcrumbs-separator { flex-shrink: 0; opacity: .7; }
.breadcrumbs--center ol { justify-content: center; }
.breadcrumbs--right ol { justify-content: flex-end; }
.page-content { overflow: hidden; }
.block { position: relative; }
.editor-empty-block { display: grid; min-height: 5rem; place-content: center; justify-items: center; gap: .45rem; padding: 1.25rem; border: 2px dashed #9aa6b6; border-radius: .5rem; background: #f7f9fc; color: #5f6b7b; font: 600 .9rem/1.35 var(--font-body); text-align: center; }
.editor-empty-block > span { font-size: 2rem; font-weight: 400; line-height: 1; }
.editor-empty-block--media { min-height: clamp(12rem, 32vw, 24rem); }
.gallery > .editor-empty-block { grid-column: 1 / -1; }
.editor-empty-block--fill { position: absolute; inset: 0; border-radius: 0; }
.editor-empty-block--hero { align-self: center; justify-self: center; z-index: 1; min-width: min(24rem, calc(100% - 2rem)); background: rgba(247,249,252,.94); }
.block--spacing-compact { padding-block: var(--space-sm); }
.block--spacing-normal { padding-block: var(--space-lg); }
.block--spacing-large { padding-block: var(--space-2xl); }
.background-default { background: transparent; }
.background-alternate { background: #edf2ef; }
.background-accent { background: var(--color-alternate); }
.background-dark { background: var(--color-accent-deep); color: #fff; }
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
.hero { min-height: 24rem; display: grid; align-items: end; isolation: isolate; color: #fff; background: var(--color-accent-deep); }
.hero--compact { min-height: 18rem; }
.hero--normal { min-height: 50vh; }
.hero--large { min-height: min(80vh, 52rem); }
.hero--fullscreen { min-height: calc(100vh - 4.75rem); }
.hero-media, .hero-shade { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-shade { z-index: -1; background: linear-gradient(180deg, rgba(4,28,33,.04), rgba(4,28,33,.58)); }
.hero--overlay-none .hero-shade { background: transparent; }
.hero--overlay-light .hero-shade { background: rgba(255,255,255,.32); }
.hero--overlay-dark .hero-shade { background: rgba(4,28,33,.58); }
.hero-content { padding-block: var(--space-2xl); }
.hero--align-center .hero-content { text-align: center; }
.hero--align-right .hero-content { text-align: right; }
.hero-content h1 { max-width: 20ch; margin-bottom: .2em; font-size: clamp(2.2rem, 5vw, 4rem); }
.hero--align-center .hero-content h1, .hero--align-center .hero-content h2, .hero--align-center .hero-content p { margin-inline: auto; }
.hero-content p { max-width: 42rem; font-size: 1.1rem; }
.block-title { padding-top: clamp(3.5rem, 6vw, 5.5rem); padding-bottom: clamp(2.5rem, 4vw, 4rem); }
.block-title .content-width { max-width: var(--container-width); }
.block-title h1 { max-width: none; font-size: 2rem; font-weight: 400; line-height: 1.25; letter-spacing: 0; text-align: center; }
.block-title h1, .block-title h2, .block-title h3, .block-title h4 { margin-bottom: 0; }
.block-text { font-size: 1.02rem; color: var(--color-muted); }
.prose { max-width: var(--content-width); }
.prose--wide { max-width: 64rem; }
.prose--full { max-width: none; }
.block-image { margin: 0; }
.block-image img { width: 100%; max-height: 46rem; object-fit: cover; border-radius: var(--radius); }
.image--normal .shell { max-width: var(--content-width); }
.image--wide .shell { max-width: 64rem; }
.image--full .shell { width: 100%; max-width: none; }
.block-image figcaption, .gallery-item figcaption { margin-top: .6rem; color: var(--color-muted); font-size: .78rem; }
.block-columns { padding-block: clamp(2.5rem, 4vw, 4rem); }
.columns { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
.column > .block:first-child { padding-top: 0; }
.column > .block:last-child { padding-bottom: 0; }
.column .shell { width: 100%; }
.column .content-width { max-width: none; }
.column:first-child > .block-title:first-child { padding: var(--space-lg) 0 2rem; color: var(--color-text); text-align: left; }
.column:first-child > .block-title:first-child .content-width { max-width: 18rem; margin-inline: 0; }
.column:first-child > .block-title:first-child h2 { margin: 0; font-size: 2.1rem; font-weight: 400; line-height: 1.25; text-align: left; }
.column:first-child > .block-title + .block-text { padding-top: 0; color: var(--color-text); font-size: clamp(.92rem, 1.15vw, 1.05rem); line-height: 1.48; }
.rich-text p { margin-bottom: 1.15em; }
.rich-text ul, .rich-text ol { margin: 1.25em 0 0; padding-left: 1.25em; }
.rich-text li { margin-bottom: .55em; }
.rich-text li::marker { color: var(--color-muted); }
.rich-text a { text-decoration: none; }
.rich-text a:hover, .rich-text a:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; }
.rich-text .rich-text-pdf { display: inline-flex; align-items: center; gap: .55rem; max-width: 100%; margin: .35rem 0; padding: .7rem .9rem; border: 1px solid currentColor; color: var(--color-text); font-weight: 700; line-height: 1.25; text-decoration: none; overflow-wrap: anywhere; }
.rich-text .rich-text-pdf::before { flex: 0 0 auto; padding: .18rem .3rem; border-radius: .18rem; background: #a92720; color: #fff; font-size: .66rem; font-weight: 800; letter-spacing: .04em; content: "PDF"; }
.rich-text .rich-text-pdf--no-icon::before { display: none; }
.rich-text .rich-text-pdf:hover, .rich-text .rich-text-pdf:focus-visible { background: rgba(0,0,0,.045); text-decoration: none; }
.rich-text img { max-width: 100%; height: auto; }
.rich-text img[data-cp-lightbox-item] { cursor: zoom-in; }
.rich-text img[data-cp-lightbox-item]:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.rich-text img[data-align="left"] { float: left; margin: .35rem 1rem .75rem 0; }
.rich-text img[data-align="center"] { display: block; clear: both; margin: 1rem auto; }
.rich-text img[data-align="right"] { float: right; margin: .35rem 0 .75rem 1rem; }
.rich-text img[data-rotation="90"] { transform: rotate(90deg); }
.rich-text img[data-rotation="180"] { transform: rotate(180deg); }
.rich-text img[data-rotation="270"] { transform: rotate(270deg); }
.rich-text img[data-rotation] { transform-origin: center; }
.rich-text::after { display: block; clear: both; content: ""; }
.column:nth-child(2) .block-gallery { width: 100%; margin-inline: auto; }
.gallery-title { margin: 0 0 1.5rem; font-size: clamp(1.55rem, 3vw, 2.35rem); line-height: 1.15; }
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.gallery-item { margin: 0; overflow: hidden; background: var(--color-surface); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery--ratio-original { align-items: start; }
.gallery--ratio-original .gallery-item,
.gallery--ratio-original .gallery-lightbox-trigger { height: auto; }
.gallery--ratio-original .gallery-item img { height: auto; object-fit: contain; }
.gallery--ratio-square .gallery-item { aspect-ratio: 1; }
.gallery--ratio-landscape .gallery-item { aspect-ratio: 4 / 3; }
.block-slider--size-height > .shell { width: 100%; max-width: none; }
.slider-viewport { position: relative; display: grid; overflow: hidden; background: var(--color-surface); }
.slider-viewport:not(.slider--ratio-original) { grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); }
.slider-viewport:not(.slider--ratio-original) > .slider-slide { min-height: 0; min-width: 0; }
.slider--ratio-16-9 { aspect-ratio: 16 / 9; }
.slider--ratio-4-3 { aspect-ratio: 4 / 3; }
.slider--ratio-1-1 { aspect-ratio: 1; }
.slider--height-compact { height: 18rem; }
.slider--height-normal { height: min(50vh, 36rem); }
.slider--height-large { height: min(80vh, 52rem); }
.slider--height-fullscreen { height: calc(100vh - 4.75rem); height: calc(100svh - 4.75rem); }
.slider-slide { position: relative; grid-area: 1 / 1; width: 100%; height: 100%; margin: 0; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .55s ease, visibility 0s linear .55s; }
.slider-slide.is-active { visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
.slider-slide img { width: 100%; height: 100%; object-fit: cover; transform: rotate(var(--image-rotation, 0deg)); transform-origin: center; }
.slider--ratio-original .slider-slide img { height: auto; object-fit: contain; }
.slider-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(4,28,33,.62), rgba(4,28,33,.18) 68%, rgba(4,28,33,.06)); pointer-events: none; }
.slider-content { position: absolute; z-index: 2; inset: 0; display: grid; align-content: center; padding-block: clamp(2.5rem, 7vw, 6rem); color: #fff; pointer-events: none; }
.slider-content h2 { max-width: 20ch; margin-bottom: .2em; font-size: clamp(2rem, 5vw, 4rem); line-height: 1.08; }
.slider-content p { max-width: 42rem; font-size: 1.1rem; }
.slider-content .button { pointer-events: auto; }
.slider-content--center { text-align: center; }
.slider-content--right { text-align: right; }
.slider-content--center h2, .slider-content--center p, .slider-content--right h2, .slider-content--right p { margin-inline: auto; }
.slider-content--right h2, .slider-content--right p { margin-right: 0; }
.slider-arrow { position: absolute; z-index: 3; top: 50%; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; padding: 0; translate: 0 -50%; border: 0; border-radius: 50%; background: rgba(255,255,255,.88); color: var(--color-text); }
.slider-arrow--previous { left: 1rem; }
.slider-arrow--next { right: 1rem; }
.slider-dots { display: flex; justify-content: center; gap: .5rem; padding-top: .85rem; }
.slider-dots button { width: .55rem; height: .55rem; padding: 0; border: 0; border-radius: 50%; background: var(--color-muted); opacity: .35; }
.slider-dots button.is-active { opacity: 1; }
.slider-dots--overlay { position: absolute; z-index: 3; right: 50%; bottom: 1rem; padding: .55rem .7rem; border-radius: 999px; background: rgba(4,28,33,.42); translate: 50% 0; backdrop-filter: blur(.25rem); }
.slider-dots--overlay button { background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.12); opacity: .55; }
.slider-dots--overlay button.is-active { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .slider-slide { transition: none; } }
.button { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: .65rem 1.25rem; border: 1px solid var(--color-accent); border-radius: 999px; background: var(--color-accent); color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.button--secondary { background: var(--color-alternate); border-color: var(--color-alternate); color: var(--color-text); }
.button--outline, .button--light { background: transparent; border-color: currentColor; }
.button--link { min-height: auto; padding: 0; border: 0; background: none; color: var(--color-accent); }
.button.is-disabled { cursor: default; }
.block-contact-form { background: #fafafa; }
.contact-form-shell { max-width: var(--container-width); }
.contact-form-intro { max-width: 42rem; }
.contact-form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; }
.contact-form-fields label { display: grid; gap: .35rem; color: var(--color-text); font-size: .82rem; }
.contact-form-label { display: inline; line-height: 1.4; }
.required-mark { display: inline; }
.contact-form-fields input:not([type="checkbox"]):not([type="radio"]), .contact-form-fields select, .contact-form-fields textarea {
    width: 100%;
    min-height: 3rem;
    padding: .7rem .8rem;
    border: 1px solid #b8b8b8;
    border-radius: 0;
    background: #fff;
    color: var(--color-text);
    opacity: 1;
}
.contact-form-fields input:not([type="checkbox"]):not([type="radio"]) { align-self: start; height: 3rem; }
.contact-form-fields textarea { min-height: 7rem; resize: none; }
.contact-form-check { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); align-items: start; justify-content: start; }
.contact-form-check input { margin-top: .25rem; opacity: 1; }
.contact-form-check > span { min-width: 0; }
.contact-form-fields > .button { grid-column: 1 / -1; justify-self: start; border-radius: 0; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-feedback { grid-column: 1 / -1; padding: .8rem 1rem; border: 1px solid currentColor; }
.form-feedback--success { color: #bde5ce; }
.form-feedback--error { color: #f3c7c2; }
.block-quote blockquote { margin-bottom: var(--space-sm); font-family: var(--font-heading); font-size: clamp(1.5rem, 4vw, 2.5rem); line-height: 1.3; }
.block-quote figcaption { color: var(--color-muted); font-size: .85rem; }
.separator { padding-inline: 1rem; }
.separator span { display: block; width: min(100%, var(--content-width)); height: 1px; margin: auto; background: var(--color-border); }
.separator--space span { background: transparent; }
.separator--dots span { width: 2rem; background: repeating-linear-gradient(90deg, var(--color-muted) 0 2px, transparent 2px 8px); }
.video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: #000; }
.video-frame--4-3 { aspect-ratio: 4 / 3; }
.video-frame--1-1 { aspect-ratio: 1; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-editor-preview { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .75rem; padding: 1rem; background-color: #17191c; background-position: center; background-size: cover; color: #fff; text-align: center; }
.video-editor-preview::before { position: absolute; inset: 0; background: rgba(0, 0, 0, .28); content: ""; }
.video-editor-preview > * { position: relative; }
.video-editor-play { width: 4rem; height: 4rem; display: grid; place-items: center; padding-left: .2rem; border-radius: 50%; background: rgba(0, 0, 0, .72); font-size: 1.5rem; }
.site-footer { margin-top: 0; background: #fff; color: #fff; }
.footer-main { padding-block: clamp(3rem, 6vw, 5rem); background: var(--color-accent-deep); }
.footer-main-inner { display: grid; gap: clamp(3rem, 6vw, 5rem); }
.footer-legal { display: grid; justify-items: center; gap: .2rem; font-size: .78rem; line-height: 1.25; text-align: center; text-transform: uppercase; }
.footer-legal a { color: inherit; text-decoration: none; }
.footer-legal a:hover, .footer-legal a:focus-visible { text-decoration: underline; }
.footer-legal span { opacity: .92; }
.footer-company { display: grid; grid-template-columns: minmax(11rem, 15rem) minmax(18rem, 25rem); justify-content: center; align-items: center; gap: clamp(2rem, 5vw, 4rem); }
.footer-logo { width: 14rem; height: auto; filter: brightness(0) invert(1); }
.footer-company address { display: grid; gap: .12rem; font-size: .82rem; font-style: normal; line-height: 1.45; }
.footer-company address strong { margin-bottom: .2rem; text-transform: uppercase; }
.footer-company address a { color: inherit; text-decoration: none; }
.social-links--footer { margin-top: calc(-1 * var(--space-lg)); }
.social-links--footer .social-link { padding: .35rem; font-size: .76rem; text-transform: uppercase; }
.social-links--footer .social-link:hover, .social-links--footer .social-link:focus-visible { text-decoration: underline; }
.footer-funding { padding-block: clamp(3rem, 5vw, 4.5rem); color: var(--color-text); }
.footer-funding-inner { display: grid; justify-items: center; gap: clamp(1.75rem, 4vw, 3rem); text-align: center; }
.footer-funding p { max-width: 76rem; margin: 0; font-size: .66rem; line-height: 1.45; }
.funding-logos { width: min(100%, 45.875rem); height: auto; }
.pyme-logo { width: min(65%, 22.9375rem); height: auto; }
.error-page { min-height: 60vh; padding-block: var(--space-2xl); }
.eyebrow { color: var(--color-accent); font-size: .75rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }

/* Página representativa: reparación y rehabilitación. */
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-title:first-child h1 {
    text-align: left;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content > .block-text:nth-of-type(2) .prose {
    max-width: var(--container-width);
    color: var(--color-text);
    font-size: 1.08rem;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content > .block-text:has(+ .block-gallery) {
    padding-block: var(--space-sm) 0;
    color: var(--color-text);
    font-size: 1.35rem;
    font-weight: 700;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content > .block-text:has(+ .block-gallery) .prose {
    max-width: var(--container-width);
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content > .block-gallery {
    padding-block: var(--space-sm);
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns > .columns {
    max-width: var(--container-width);
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .column:first-child {
    align-self: stretch;
    padding: clamp(2rem, 5vw, 4rem);
    background: #fafafa;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .column:first-child > .block-title:first-child .content-width {
    max-width: none;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .column:first-child > .block-title:first-child h2 {
    font-size: clamp(1.65rem, 3vw, 2.4rem);
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .column:first-child .block-button {
    padding-block: var(--space-sm) 0;
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .column:first-child .block-button .button {
    width: 100%;
    min-height: 3.2rem;
    border-color: var(--color-text);
    border-radius: 0;
    color: var(--color-text);
}
.page-construccion-de-piscinas-reparacion-y-rehabilitacion-de-piscinas .page-content .block-columns .block-image img {
    height: 100%;
    border-radius: 0;
}

/* Página representativa: piscinas elevadas. */
.page-piscinas-elevadas .hero { min-height: min(60vh, 42rem); align-items: end; }
.page-piscinas-elevadas .hero-media { object-position: left bottom; }
.page-piscinas-elevadas .hero-content { padding-bottom: clamp(3rem, 7vw, 6rem); }
.page-piscinas-elevadas .hero-content h1 { margin-bottom: .15rem; }
.page-piscinas-elevadas .hero-content p { margin-bottom: 0; font-family: var(--font-heading); font-size: clamp(1.25rem, 2.5vw, 2rem); }
.page-piscinas-elevadas .page-content > .block-columns { padding-top: clamp(3rem, 6vw, 5rem); }
.page-piscinas-elevadas .page-content > .block-columns:last-child > .columns { max-width: var(--container-width); }
.page-piscinas-elevadas .page-content > .block-columns:last-child .column:first-child {
    align-self: stretch;
    padding: clamp(2rem, 5vw, 4rem);
    background: #fafafa;
}
.page-piscinas-elevadas .page-content > .block-columns:last-child .column:first-child > .block-title:first-child .content-width { max-width: none; }
.page-piscinas-elevadas .page-content > .block-columns:last-child .column:first-child > .block-title:first-child h2 { font-size: clamp(1.65rem, 3vw, 2.4rem); }
.page-piscinas-elevadas .page-content > .block-columns:last-child .block-button { padding-block: var(--space-sm) 0; }
.page-piscinas-elevadas .page-content > .block-columns:last-child .block-button .button {
    width: 100%;
    min-height: 3.2rem;
    border-color: var(--color-text);
    border-radius: 0;
    color: var(--color-text);
}
.page-piscinas-elevadas .page-content > .block-columns:last-child .block-image img { height: 100%; border-radius: 0; }

/* Portada. */
.page-home .site-header {
    position: fixed;
    right: 0;
    left: 0;
    border-bottom-color: transparent;
    background: rgba(61, 61, 61, 0);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    transition: background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.page-home .site-header.is-scrolled,
.page-home .site-header.menu-open {
    border-bottom-color: rgba(255, 255, 255, .12);
    background: rgba(61, 61, 61, .97);
    box-shadow: 0 .35rem 1.25rem rgba(0, 0, 0, .16);
}
.page-home .hero {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
}
.page-home .hero-media { object-position: center center; }
.page-home .hero-content { display: none; }
.page-home .page-content > .block-columns {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
}
.page-home .page-content > .block-columns > .columns {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}
.page-home .page-content > .block-columns .column > .block-image .shell { max-width: none; }
.page-home .page-content > .block-columns[data-section-role="catalogue"] {
    padding: clamp(3.5rem, 4vw, 4.5rem) 0 4rem;
}
.page-home .page-content > .block-columns[data-section-role="corporate"] { padding-block: 0; }
.page-home .page-content .block-columns[data-section-role="catalogue"] .columns,
.page-home .page-content .block-columns[data-section-role="corporate"] .columns {
    gap: 0;
    align-items: stretch;
}
.page-home .page-content .block-columns[data-section-role="catalogue"] .block-image,
.page-home .page-content .block-columns[data-section-role="corporate"] .block-image { padding: 0; }
.page-home .page-content .block-columns[data-section-role="catalogue"] .block-image img,
.page-home .page-content .block-columns[data-section-role="corporate"] .column:first-child .block-image img {
    max-height: none;
    border-radius: 0;
}
.page-home .page-content .block-columns[data-section-role="catalogue"] .column:nth-child(2),
.page-home .page-content .block-columns[data-section-role="corporate"] .column:nth-child(2) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 5vw, 6rem);
}
.page-home .page-content .block-columns[data-section-role="catalogue"] .column:nth-child(2) .block-title { padding-block: 0 var(--space-sm); }
.page-home .page-content .block-columns[data-section-role="catalogue"] .column:nth-child(2) .block-title .content-width {
    max-width: none;
    padding: 2rem;
    border: 1px solid var(--color-text);
}
.page-home .page-content .block-columns[data-section-role="catalogue"] .column:nth-child(2) .block-title h2 { font-size: clamp(1.75rem, 3vw, 2.7rem); }
.page-home .page-content .block-columns[data-section-role="catalogue"] .block-button { padding-top: var(--space-sm); }
.page-home .page-content .block-columns[data-section-role="catalogue"] .button { min-width: min(100%, 10rem); border-radius: 0; color: var(--color-text); }
.page-home .page-content .block-columns[data-section-role="corporate"] .column:nth-child(2) .block-image img {
    height: 7rem;
    object-fit: contain;
}
.page-home .page-content .block-columns[data-section-role="corporate"] .column:nth-child(2) .block-text { padding-top: var(--space-sm); color: var(--color-text); }
.page-home .page-content > .block-image[data-section-role="corporate"] img,
.page-home .page-content > .block-image[data-section-role="alto_pools"] img {
    max-height: 13rem;
    object-fit: contain;
    border-radius: 0;
}
.page-home .page-content > .block-image[data-section-role="section_banner"] { padding-block: 0; }
.page-home .page-content > .block-image[data-section-role="section_banner"] img { max-height: none; border-radius: 0; aspect-ratio: 16 / 9; }
.page-home .page-content > .block-title[data-section-role="alto_pools"] { padding-bottom: var(--space-lg); }
.page-home .page-content > .block-title[data-section-role="alto_pools"] h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.page-home .page-content .block-columns[data-section-role="alto_pools"] {
    padding-top: 4rem;
    padding-bottom: clamp(3rem, 6vw, 5rem);
}
.page-home .page-content .block-columns[data-section-role="alto_pools"] .columns {
    width: min(100% - 4rem, 110rem);
    margin-inline: auto;
}
.page-home .page-content .block-columns[data-section-role="alto_pools"] .block-image { padding: 0; }
.page-home .page-content .block-columns[data-section-role="alto_pools"] .block-image img { border-radius: 0; aspect-ratio: 1; }
.page-home .page-content > .block-text[data-section-role="alto_pools"] { padding-top: 0; color: var(--color-text); }
.page-home .page-content .block-columns[data-section-role="team"] { padding-block: clamp(4rem, 7vw, 6rem); }
.page-home .page-content .block-columns[data-section-role="team"] .columns {
    width: min(100% - 4rem, 110rem);
    margin-inline: auto;
    align-items: start;
}
.page-home .page-content .block-columns[data-section-role="team"] .block-image { padding: 0; }
.page-home .page-content .block-columns[data-section-role="team"] .block-image .shell { aspect-ratio: 1 / 1; }
.page-home .page-content .block-columns[data-section-role="team"] .block-image img {
    width: 100%;
    height: 100%;
    border-radius: 0;
    object-fit: cover;
}
.page-home .page-content .block-columns[data-section-role="team"] .block-title { padding: var(--space-md) 0 var(--space-xs); }
.page-home .page-content .block-columns[data-section-role="team"] .block-title h3 { font-size: 1.2rem; text-align: center; }
.page-home .page-content .block-columns[data-section-role="team"] .block-text {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    padding: 0;
    font-size: .9rem;
    line-height: 1.55;
    text-align: center;
}
.page-home .page-content .block-columns[data-section-role="team"] .block-text .prose {
    width: 100%;
    max-width: none;
    margin-inline: auto;
}
.page-home .page-content .block-columns[data-section-role="team"] .column:first-child > .block-title + .block-text {
    width: 100%;
    max-width: none;
    font-size: .9rem;
}
.page-home .page-content .block-contact-form {
    padding-block: clamp(4rem, 7vw, 6rem);
    background: var(--color-accent-deep);
    color: #fff;
}
.page-home .page-content .block-contact-form .contact-form-shell {
    width: min(100% - 4rem, 110rem);
    max-width: 110rem;
}
.page-home .page-content .block-contact-form .contact-form-fields label { color: inherit; }
.page-home .page-content .block-contact-form .contact-form-fields input:not([type="checkbox"]):not([type="radio"]),
.page-home .page-content .block-contact-form .contact-form-fields select, .page-home .page-content .block-contact-form .contact-form-fields textarea {
    min-height: 2.5rem;
    border-color: var(--form-border, #777);
    background: var(--form-surface, #fff);
    color: var(--form-ink, #3f3f3f);
}
.page-home .page-content .block-contact-form .contact-form-fields textarea { min-height: 5rem; }
.page-home .page-content .block-contact-form .button {
    border-color: #fff;
    border-radius: 0;
    background: var(--color-accent);
    color: #fff;
}

@media (max-width: 55.99rem), (max-height: 32rem) and (pointer: coarse) {
    .site-header { padding-top: 0; }
    .header-inner { min-height: 4.75rem; flex-flow: row wrap; align-items: center; gap: 0; padding-block: .55rem; }
    .brand-logo { width: 6.6rem; height: 3.3rem; }
    .menu-toggle {
        display: grid;
        width: 2.75rem;
        height: 2.75rem;
        place-content: center;
        gap: .3rem;
        margin-left: auto;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, .45);
        border-radius: .15rem;
        background: transparent;
        color: #fff;
        cursor: pointer;
    }
    .menu-toggle span { display: block; width: 1.25rem; height: 1px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
    .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(.4rem) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.4rem) rotate(-45deg); }
    .site-navigation {
        width: calc(100% + 2rem);
        max-height: calc(100vh - 4.75rem);
        flex: 1 0 calc(100% + 2rem);
        margin: .55rem -1rem -.55rem;
        padding: .5rem 1rem 1rem;
        overflow-y: auto;
        border-top: 1px solid rgba(255, 255, 255, .2);
        text-align: left;
    }
    .js .site-navigation { display: none; }
    .js .site-header.menu-open .site-navigation { display: block; }
    .navigation-root { display: block; }
    .navigation-root > li { display: block; }
    .navigation-item-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .site-navigation a { padding: .8rem .25rem; border-bottom: 1px solid rgba(255, 255, 255, .12); white-space: normal; }
    .site-navigation [aria-current="page"] { font-weight: 600; }
    .submenu-toggle { width: 2.8rem; height: auto; margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .submenu-toggle span { transition: transform .2s ease; }
    .submenu-toggle[aria-expanded="true"] span { transform: translateY(.1rem) rotate(225deg); }
    .navigation-submenu { position: static; display: block; min-width: 0; box-shadow: none; background: rgba(0, 0, 0, .16); color: #fff; font-size: .72rem; }
    .navigation-submenu::before { display: none; }
    .js .has-submenu > .navigation-submenu { display: none; }
    .js .has-submenu.submenu-open > .navigation-submenu { display: block; }
    .navigation-submenu a { padding: .7rem 1.25rem; border-color: rgba(255, 255, 255, .1); }
    .navigation-root > .navigation-socials { margin-left: 0; }
    .social-links--navigation { display: grid; justify-content: stretch; gap: 0; }
    .social-links--navigation .social-link { padding: .8rem .25rem; border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .social-links--navigation .social-link span { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
}

@media (max-width: 40rem) {
    .hero--normal { min-height: 36rem; }
    .block-title { padding-block: 3rem 2.5rem; }
    .block-title h1 { max-width: 100%; font-size: 2rem; letter-spacing: 0; overflow-wrap: anywhere; }
    .column:first-child > .block-title:first-child h2 { font-size: 2.1rem; }
    .contact-form-fields { grid-template-columns: 1fr; }
    .contact-form-check, .contact-form-fields > .button { grid-column: auto; }
    .page-home .page-content .block-columns[data-section-role="alto_pools"] {
        padding-top: 1.5rem;
        padding-bottom: 3rem;
    }
    .page-home .page-content .block-columns[data-section-role="alto_pools"] .columns {
        width: min(76%, 26rem);
        gap: 2.75rem;
    }
    .page-home .page-content .block-columns[data-section-role="alto_pools"] .block-image .shell {
        width: 100%;
        aspect-ratio: 1;
    }
    .page-home .page-content .block-columns[data-section-role="alto_pools"] .block-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .page-home .page-content > .block-image[data-section-role="section_banner"] .shell {
        position: relative;
        aspect-ratio: 3 / 4;
        overflow: hidden;
    }
    .page-home .page-content > .block-image[data-section-role="section_banner"] img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        max-height: none;
        aspect-ratio: auto;
        object-fit: cover;
        object-position: center center;
    }
}

@media (min-width: 44rem) {
    .shell { width: min(100% - 4rem, var(--container-width)); }
    .gallery--columns-3, .gallery--columns-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .gap--compact { gap: var(--space-sm); }
    .gap--normal { gap: var(--space-lg); }
    .gap--large { gap: var(--space-2xl); }
}

@media (max-width: 40rem) {
    .footer-company { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .footer-logo { width: 11rem; }
    .footer-funding p { font-size: .6rem; }
}

@media (min-width: 56rem) {
    .columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .columns--50_50 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .columns--60_40 { grid-template-columns: minmax(0, 3fr) minmax(18rem, 2fr); }
    .columns--40_60 { grid-template-columns: minmax(18rem, 2fr) minmax(0, 3fr); }
    .columns--33_67 { grid-template-columns: 1fr 2fr; }
    .columns--67_33 { grid-template-columns: 2fr 1fr; }
    .columns--33_33_33 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .columns--25_25_25_25 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .columns.gap--normal { column-gap: clamp(2.5rem, 5vw, 4rem); }
}

@media (min-width: 68rem) {
    .hero--normal { min-height: min(50vh, 34rem); }
    .block-columns > .columns { width: min(100% - 4rem, var(--editorial-width)); max-width: var(--editorial-width); }
    .column:first-child > .block-title + .block-text { max-width: 27rem; font-size: 1rem; }
    .gallery--columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

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

.contact-form-fields fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.contact-form-fields .form-radio-option { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; }

/* Cada variante define una paleta completa, heredable por su contenido. */
.block:is(.background-alternate, .background-accent) {
    --color-text: #3f3f3f;
    --color-muted: #555;
    --form-surface: #fff;
    --form-ink: #3f3f3f;
    --form-border: #777;
    --form-placeholder: #666;
    color: var(--color-text);
}
.block.background-alternate { background: #edf2ef; }
.block.background-accent { background: var(--color-alternate); }
.block.background-dark, .page-home .page-content .block-contact-form.background-default {
    --color-text: #fff;
    --color-muted: #e2e2e2;
    --form-surface: #fff;
    --form-ink: #3f3f3f;
    --form-border: #888;
    --form-placeholder: #666;
    background: var(--color-accent-deep);
    color: var(--color-text);
}
.block-contact-form .contact-form-fields label,
.block-contact-form .contact-form-fields legend { color: inherit; }
.block-contact-form .contact-form-fields :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    background: var(--form-surface, #fff);
    color: var(--form-ink, #3f3f3f);
    border: 1px solid var(--form-border, #777);
}
.block-contact-form .contact-form-fields :is(input, textarea)::placeholder { color: var(--form-placeholder, #666); opacity: 1; }
.block-contact-form .contact-form-fields :is(input, select, textarea, a, button):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.block-contact-form .form-feedback--success { color: inherit; border-inline-start: 4px solid #27864d; }
.block-contact-form .form-feedback--error { color: inherit; border-inline-start: 4px solid #c34238; }
.block:is(.background-alternate, .background-accent, .background-dark) .button--outline,
.block:is(.background-alternate, .background-accent, .background-dark) .button--light { color: inherit; }
.block.background-dark .button--link { color: inherit; }

.contact-form-acceptance { grid-column: 1 / -1; min-width: 0; }
.contact-form-acceptance-text {
    max-height: 6.5rem;
    overflow-y: auto;
    margin-top: .6rem;
    padding: .65rem .8rem;
    border: 1px solid currentColor;
    border-radius: .2rem;
    background: transparent;
    color: inherit;
    font-size: .75rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.contact-form-acceptance-text > span { white-space: pre-wrap; }
.contact-form-acceptance-text:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Elección explícita: prevalecer sobre el espaciado particular de cada página. */
.block.block--spacing-flush { padding-block: 0 !important; margin-block: 0 !important; }

/* El pie compartido utiliza los bloques y las paletas del editor de páginas. */
.site-footer--editable { color: var(--color-text); }
[data-section-role="footer-funding"].background-default { --color-text: #3f3f3f; --color-muted: #555; background: #fff; color: var(--color-text); }
[data-section-role="footer-funding"] > .columns.gap--large { gap: clamp(1.75rem, 4vw, 3rem); }
[data-section-role="footer-main"] > .columns.gap--large { gap: clamp(3rem, 6vw, 5rem); }
:is([data-section-role="footer-main"], [data-section-role="footer-funding"]) > .columns > .column { display: grid; gap: inherit; }
:is([data-section-role="footer-main"], [data-section-role="footer-funding"]) > .columns > .column > .block > .shell { width: 100%; }
.site-footer--editable [data-section-role="footer-legal"] { font-size: .78rem; line-height: 1.25; text-transform: uppercase; }
.site-footer--editable [data-section-role="footer-legal"] p { margin: .2rem 0; }
.site-footer--editable [data-section-role="footer-legal"] a,
.site-footer--editable [data-section-role="footer-address"] a { color: inherit; text-decoration: none; }
.site-footer--editable [data-section-role="footer-legal"] a:is(:hover, :focus-visible),
.site-footer--editable [data-section-role="footer-address"] a:is(:hover, :focus-visible) { text-decoration: underline; }
.site-footer--editable [data-section-role="footer-company"] > .columns { max-width: 44rem; align-items: center; }
.site-footer--editable [data-section-role="footer-logo"] img { width: 14rem; height: auto; }
[data-section-role="footer-main"].background-dark [data-section-role="footer-logo"].background-default img { filter: brightness(0) invert(1); }
.site-footer--editable [data-section-role="footer-address"] { font-size: .82rem; line-height: 1.45; }
.site-footer--editable [data-section-role="footer-address"] p { margin: .12rem 0; }
.site-footer--editable [data-section-role="footer-address"] strong { text-transform: uppercase; }
.site-footer--editable [data-section-role="footer-funding-text"] { font-size: .66rem; line-height: 1.45; }
.site-footer--editable [data-section-role="funding-logos"] img { width: min(100%, 45.875rem); height: auto; }
.site-footer--editable [data-section-role="pyme-logo"] img { width: min(65%, 22.9375rem); height: auto; }
.block-social-links .social-links--footer { margin-top: 0; }
.footer-editor-preview [data-cms-drop-root] { min-height: 12rem; }

.columns--100 { grid-template-columns: minmax(0, 1fr); }

.page-content .category-catalog { max-width: 1200px; margin: auto; padding: clamp(1.25rem, 4vw, 3rem); }
.page-content .category-heading { margin-bottom: 2rem; }
.page-content .category-heading h1 { font-size: clamp(2rem, 4vw, 3rem); }
.page-content .category-cover { display: block; max-width: 100%; max-height: 24rem; object-fit: contain; margin: 1.5rem 0; }
.page-content .category-items { display: grid; grid-template-columns: repeat(var(--category-columns), minmax(0, 1fr)); gap: 1.5rem; }
.page-content .category-item { display: flex; flex-direction: column; min-width: 0; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.page-content .category-item:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.page-content .category-item:hover h2 { text-decoration: underline; }
.page-content .category-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.page-content .category-item h2 { font-size: 1.35rem; margin: 0 0 .75rem; }
.page-content .category-item p { margin: 0; }
.page-content .category-item-text { padding: 1rem 0; }
.page-content .category-items--cards .category-item { border: 1px solid currentColor; border-radius: .5rem; overflow: hidden; }
.page-content .category-items--cards .category-item-text { padding: 1.25rem; }
.page-content .category-items--list { grid-template-columns: 1fr; }
.page-content .category-items--list .category-item { flex-direction: row; align-items: center; gap: 1.5rem; border-bottom: 1px solid currentColor; padding-bottom: 1rem; }
.page-content .category-items--list .category-item img { width: 9rem; flex-shrink: 0; }
@media (max-width: 48rem) { .page-content .category-items { grid-template-columns: 1fr; } .page-content .category-items--list .category-item { align-items: flex-start; gap: 1rem; } .page-content .category-items--list .category-item img { width: 5rem; } }

/* Opciones del contrato CMS 1.1.0, adaptadas al tema MAPOOL. */
.site-header[class*="header-position-"]{padding-top:0;background:var(--color-accent-deep);border-bottom-color:#555;right:auto;left:auto}
.site-header.header-position-normal{position:relative;top:auto}
.site-header.header-position-sticky{position:sticky;top:0}
.site-header.header-position-floating{position:sticky;top:12px}
.site-header .header-inner{min-height:0;width:100%;max-width:none;padding-inline:clamp(1rem,2vw,2rem)}
.site-header .site-navigation{padding-bottom:0}
.site-header .menu-toggle{width:auto;min-width:2.7rem;height:2.7rem;padding:0 .6rem;border:1px solid rgba(255,255,255,.45);border-radius:.15rem;background:transparent;color:inherit;cursor:pointer;margin-left:0}
.site-header .menu-toggle span{display:inline-block;width:auto;height:auto;background:none;transform:none;opacity:1}
.site-header .menu-toggle .menu-toggle-label{font:inherit}
@media(min-width:896px){.site-header .header-inner{flex-direction:row}}
/* Navigation design: shared by the public header and its CMS preview. */
.header-position-sticky,.header-position-floating{position:sticky;top:0;z-index:50}
.header-position-floating{top:12px;margin:12px;border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 24px #0002}
.site-header .header-inner{--header-padding:26px;padding-block:var(--header-padding);min-width:0}
.header-spacing-compact .header-inner{--header-padding:12px;gap:16px}
.header-spacing-airy .header-inner{--header-padding:38px;gap:40px}
.site-header .brand{min-width:0;overflow-wrap:anywhere}
.site-header .navigation-root{flex-wrap:wrap}
.header-alignment-left .navigation-root{justify-content:flex-start}
.header-alignment-center .navigation-root{justify-content:center}
.header-alignment-right .navigation-root{justify-content:flex-end}
@media(min-width:896px){
    .site-header .site-navigation{min-width:0;flex:1}
    .header-logo-right .brand{order:2;text-align:right}
    .header-logo-center.header-layout-inline .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
    .header-logo-center.header-layout-inline .brand{grid-column:2;grid-row:1;text-align:center}
    .header-logo-center.header-layout-inline .site-navigation{grid-column:3;grid-row:1}
    .header-layout-above .header-inner{flex-direction:column}
    .header-layout-above .brand{order:0}
    .header-layout-above.header-logo-left .brand{align-self:flex-start}
    .header-layout-above.header-logo-center .brand{align-self:center;text-align:center}
    .header-layout-above.header-logo-right .brand{align-self:flex-end}
    .header-layout-above .site-navigation{width:100%}
}
/* A collapsed header has the same layout on mobile and in permanent hamburger mode. */
.header-mode-hamburger .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.header-mode-hamburger .brand{grid-row:1;grid-column:1;order:0;justify-self:start;align-self:center}
.header-mode-hamburger.header-logo-center .brand{grid-column:2;justify-self:center;text-align:center}
.header-mode-hamburger.header-logo-right .brand{grid-column:3;justify-self:end;text-align:right}
.header-mode-hamburger .menu-toggle{display:block;grid-row:1;grid-column:3;justify-self:end}
.header-mode-hamburger.header-logo-right .menu-toggle{grid-column:1;justify-self:start}
.header-mode-hamburger .site-navigation{grid-column:1/-1;grid-row:2;width:100%;max-height:65vh;overflow:auto}
.header-mode-hamburger .navigation-root{flex-direction:column;align-items:stretch;gap:8px}
.header-mode-hamburger .navigation-root a{padding:12px;display:block}
.header-mode-hamburger .navigation-submenu{position:static;box-shadow:none;padding-left:20px}
.js .header-mode-hamburger .site-navigation{display:none}
.js .header-mode-hamburger.menu-open .site-navigation{display:block}
@media(max-width:895px){
    .site-header .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;--header-padding:20px}
    .header-spacing-compact .header-inner{--header-padding:12px}
    .header-spacing-airy .header-inner{--header-padding:28px}
    .site-header .brand{grid-column:1/3;grid-row:1;justify-self:start}
    .header-logo-center .brand{grid-column:2;justify-self:center;text-align:center}
    .header-logo-right .brand{grid-column:2/4;justify-self:end;text-align:right}
    .site-header .brand img{max-width:min(200px,50vw)}
    .site-header .menu-toggle{grid-column:3;grid-row:1;justify-self:end}
    .header-logo-right .menu-toggle{grid-column:1;justify-self:start}
    .site-header .site-navigation{grid-column:1/-1;grid-row:2;max-height:65vh;overflow:auto}
}

.header-mode-hamburger .navigation-item-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
.header-mode-hamburger .site-navigation a{white-space:normal}
.header-mode-hamburger .navigation-submenu{min-width:0;background:rgba(0,0,0,.16);color:#fff}
.header-mode-hamburger .navigation-submenu::before{display:none}
.header-mode-hamburger .submenu-toggle{width:2.8rem;height:2.8rem}
.header-mode-hamburger .navigation-submenu{display:block}
.js .header-mode-hamburger .has-submenu>.navigation-submenu{display:none}
.js .header-mode-hamburger .has-submenu.submenu-open>.navigation-submenu{display:block}
@media(max-width:895px){.site-header .site-navigation{width:100%;margin:0;padding:.5rem 0 1rem}.site-header .menu-toggle{display:block}}

/* MAPOOL: transparencia inicial completa en escritorio y paleta blanca. */
.site-header.header-transparent{--mapool-header-surface:#3d3d3d;background:var(--mapool-header-surface);color:#fff;transition:box-shadow .18s ease}
.site-header.header-transparent .brand,.site-header.header-transparent .navigation-root>.has-submenu>.navigation-item-row>a,.site-header.header-transparent .navigation-root>.navigation-item>a{color:inherit}
.site-header.header-transparent .menu-toggle{color:#fff;border-color:#ddd}
.site-header.header-transparent :focus-visible{outline:3px solid #fff;outline-offset:4px}
.site-header.header-transparent .navigation-submenu{background:#3d3d3d;color:#fff}
.site-header.header-transparent .navigation-submenu a{color:#fff;border-color:#888}
.site-header.header-transparent .navigation-submenu a:hover,.site-header.header-transparent .navigation-submenu a:focus-visible{background:#222;color:#fff}
.site-header.header-transparent .navigation-root a{opacity:1}
.mapool-navigation-sample{min-height:40rem;background:linear-gradient(130deg,#16525c,#3d3d3d);color:#fff;padding:3rem 0}
.mapool-navigation-sample h1,.mapool-navigation-sample p{color:inherit}
.mapool-video{min-width:0;overflow-wrap:anywhere}
.header-transparent.menu-open .site-navigation{max-height:min(65vh,calc(100dvh - var(--cms-header-height,180px) - 32px));overflow:auto}
@media(prefers-reduced-motion:reduce){.site-header.header-transparent{transition:none}}

.js .site-header.header-transparent-all{position:absolute;inset:0 0 auto;z-index:50}
.js .site-header.header-transparent-all:is(.header-position-sticky,.header-position-floating){position:fixed}
.js .site-header.header-transparent-all.header-position-floating{inset:12px 12px auto;margin:0}
.js .site-header.header-transparent-all:not(.is-scrolled):not(.menu-open):not(:has(.submenu-open)):not(:has(.has-submenu:hover)):not(:has(.has-submenu:focus-within)){--mapool-header-surface:rgba(30,30,30,.75);border-color:transparent;box-shadow:none}
.js body:has(.header-transparent-all) #main-content>.page-content>:first-child{padding-top:calc(var(--cms-header-height,180px) + 4rem)!important}
.js body:has(.header-transparent-all) #main-content>.breadcrumbs{position:absolute;top:calc(var(--cms-header-height,180px) + .5rem);left:1rem;right:1rem;z-index:3;background:#3d3d3d;color:#fff;padding:.5rem;width:auto;max-width:calc(100% - 2rem)}

@media(min-width:896px){
.js .site-header.header-transparent-desktop{position:absolute;inset:0 0 auto;z-index:50}
.js .site-header.header-transparent-desktop:is(.header-position-sticky,.header-position-floating){position:fixed}
.js .site-header.header-transparent-desktop.header-position-floating{inset:12px 12px auto;margin:0}
.js .site-header:is(.header-transparent-desktop,.header-transparent-all):not(.is-scrolled):not(.menu-open):not(:has(.submenu-open)):not(:has(.has-submenu:hover)):not(:has(.has-submenu:focus-within)){--mapool-header-surface:transparent;border-color:transparent;box-shadow:none}
.js body:has(.header-transparent-desktop) #main-content>.page-content>:first-child{padding-top:calc(var(--cms-header-height,180px) + 4rem)!important}
.js body:has(.header-transparent-desktop) #main-content>.breadcrumbs{position:absolute;top:calc(var(--cms-header-height,180px) + .5rem);left:1rem;right:1rem;z-index:3;background:#3d3d3d;color:#fff;padding:.5rem;width:auto;max-width:calc(100% - 2rem)}
}

/* El estado sólido prevalece sobre la antigua regla semitransparente de portada. */
.site-header.header-transparent:is(.is-scrolled,.menu-open,:has(.submenu-open),:has(.has-submenu:hover),:has(.has-submenu:focus-within)){background:#3d3d3d}

@media(min-width:896px) and (prefers-reduced-motion:no-preference){
.site-header.header-transparent{transition:background-color .35s ease,border-color .35s ease,box-shadow .35s ease}
}

/* Últimas noticias MAPOOL: composición editorial y paleta heredada del bloque. */
.block-latest-news { color: var(--color-text); }
.news-shell { container-type: inline-size; }
.news-heading { margin-bottom: var(--space-lg); }
.news-grid { display: grid; gap: var(--space-lg); grid-template-columns: minmax(0, 1fr); }
.news-item { min-width: 0; align-content: start; border-top: 1px solid currentColor; padding-top: var(--space-sm); }
.news-image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: var(--space-md); }
.news-content { min-width: 0; overflow-wrap: anywhere; }
.news-content h3 { margin-bottom: .7rem; font-size: clamp(1.25rem, 2.5cqi, 1.6rem); }
.news-content h3 a { color: inherit; text-decoration: none; }
.news-content h3 a:hover { text-decoration: none; }
.news-meta { display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: .25rem; margin-bottom: .8rem; color: var(--color-muted); font-size: .8rem; }
.news-excerpt { margin-bottom: 0; color: inherit; font-size: .95rem; }
.news-more { margin: var(--space-lg) 0 0; }
.news-more a { display: inline-block; padding: .7rem 1.25rem; border: 1px solid currentColor; color: inherit; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.news-more a:hover { text-decoration: none; }
.block-latest-news a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@container (min-width: 32rem) {
    .news--cards .news-grid, .news--editorial .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .news--list .news-item--image { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-md); }
    .news--list .news-image { margin: 0; }
    .news--featured .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .news--featured .news-item:first-child { grid-column: 1 / -1; }
    .news--featured .news-item:first-child h3 { font-size: clamp(1.75rem, 4cqi, 2.5rem); }
    .news--editorial .news-item:first-child { grid-column: 1 / -1; }
    .news--editorial .news-item:first-child.news-item--image { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-lg); }
    .news--editorial .news-item:first-child .news-image { margin: 0; }
}
@container (min-width: 54rem) {
    .news--cards .news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .news--featured .news-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); }
    .news--featured .news-item:first-child { grid-column: 1; }
    .news--featured .news-item:first-child.news-item--image { grid-row: span 3; }
    .news--editorial .news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .news--editorial .news-item:first-child { grid-column: span 2; }
    .news--editorial .news-item:first-child.news-item--image { grid-row: span 2; }
    .news--editorial .news-item:first-child.news-item--image { display: block; }
    .news--editorial .news-item:first-child .news-image { margin-bottom: var(--space-md); }
}

/* Estilos de contenido del slider MAPOOL (CMS 1.8.0). Overlay conserva la capa original. */
.slider-content--style-card,
.slider-content--style-band {
    width: calc(100% - 8rem); max-width: 42rem; height: max-content; max-height: 100%;
    margin-block: auto; padding: clamp(1rem, 3vw, 2rem); overflow: auto;
    background: rgba(4, 28, 33, .88); color: #fff; pointer-events: auto;
    overflow-wrap: anywhere;
}
.slider-content--style-card { border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius); box-shadow: var(--shadow); }
.slider-content--style-card.slider-content--left { margin-left: 4rem; }
.slider-content--style-card.slider-content--right { margin-right: 4rem; }
.slider-content--style-band { inset: auto 0 0; width: 100%; max-width: none; margin: 0; padding-inline: 4rem; padding-bottom: 3.75rem; }
.slider-content:is(.slider-content--style-card, .slider-content--style-band) h2 { font-size: clamp(1.4rem, 3vw, 2.5rem); }
.slider-content:is(.slider-content--style-card, .slider-content--style-band) p { margin-bottom: .75rem; font-size: 1rem; }
.slider-content:is(.slider-content--style-card, .slider-content--style-band) .button { justify-self: start; max-width: 100%; }
.slider-content:is(.slider-content--style-card, .slider-content--style-band).slider-content--center .button { justify-self: center; }
.slider-content:is(.slider-content--style-card, .slider-content--style-band).slider-content--right .button { justify-self: end; }
@media (max-width: 48rem) {
    .block-slider:is(.block-slider--content-card, .block-slider--content-band) .slider-viewport { width: 100%; min-height: 23rem; }
    .slider-content--style-card { width: calc(100% - 7rem); padding: 1rem; }
    .slider-content--style-card.slider-content--left { margin-left: 3.5rem; }
    .slider-content--style-card.slider-content--right { margin-right: 3.5rem; }
    .slider-content--style-band { padding-inline: 3.5rem; }
}

/* Flechas locales sin dependencias tipográficas, también en vista previa. */
.slider-arrow svg { display: block; width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.block-latest-news a { text-decoration: none; }

/* CMS 1.10: solo las proporciones explícitas sustituyen los recortes propios
   de cada página; Original mantiene todas las reglas MAPOOL anteriores. */
.image-ratio--16-9 { --image-ratio: 16 / 9; }
.image-ratio--4-3 { --image-ratio: 4 / 3; }
.image-ratio--1-1 { --image-ratio: 1; }
.image-ratio--3-4 { --image-ratio: 3 / 4; }
.image-fit--cover { --image-fit: cover; }
.image-fit--contain { --image-fit: contain; }
.block-image:where(.image-ratio--16-9, .image-ratio--4-3, .image-ratio--1-1, .image-ratio--3-4) > .shell { aspect-ratio: auto !important; }
.block-image:where(.image-ratio--16-9, .image-ratio--4-3, .image-ratio--1-1, .image-ratio--3-4) img {
    position: static !important; width: 100% !important; height: auto !important;
    max-height: none !important; aspect-ratio: var(--image-ratio) !important;
    object-fit: var(--image-fit) !important;
}
.block-image:where(.image-ratio--16-9, .image-ratio--4-3, .image-ratio--1-1, .image-ratio--3-4) .gallery-lightbox-trigger { width: 100%; height: auto; }
