/*
Theme Name: Vivienda Lista
Theme URI: https://viviendalista.es/
Author: YAG Comunicación
Description: Tema de bloques editable para Vivienda Lista.
Version: 1.0.56
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: vivienda-lista
*/

@font-face {
  font-family: "Red Hat Display";
  src: url("assets/fonts/red-hat-display-latin-wght-normal.woff2") format("woff2-variations");
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("assets/fonts/manrope-latin-wght-normal.woff2") format("woff2-variations");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --vl-pine: #173f35;
  --vl-pine-soft: #49665e;
  --vl-lime: #d7eb87;
  --vl-ivory: #f6f5ef;
  --vl-paper: #fffdf7;
  --vl-line: #d8ded8;
  --vl-focus: #a8c43c;
  --vl-space: clamp(4.5rem, 9vw, 8.5rem);
}

html { scroll-behavior: smooth; }
body { background: var(--vl-ivory); color: var(--vl-pine); }
::selection { background: var(--vl-lime); color: var(--vl-pine); }
.wp-site-blocks > main, .vl-page > .wp-block-group { margin-block-start: 0; }

.vl-shell { max-width: 100rem; margin-inline: auto; padding-inline: clamp(1.5rem, 5.83vw, 5.25rem); }
.vl-section { padding-block: var(--vl-space); border-top: 1px solid var(--vl-line); }
.vl-section:first-child { border-top: 0; }
.vl-section--lime { background: var(--vl-lime); }
.vl-section--pine { background: var(--vl-pine); color: var(--vl-ivory); }
.vl-section--paper { background: var(--vl-paper); }

.vl-hero { min-height: 38.25rem; display: grid; align-content: center; }
.vl-hero h1 { max-width: 13ch; font-size: clamp(3rem, 6.25vw, 5rem); line-height: .94; letter-spacing: -.04em; text-wrap: balance; }
.vl-hero p { max-width: 49ch; font-size: clamp(1.05rem, 1.7vw, 1.3rem); color: var(--vl-pine-soft); }
.vl-hero--service { min-height: 32rem; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); gap: clamp(3rem, 5.6vw, 5rem); align-items: center; }
.vl-hero--service h1 { max-width: 17ch; font-size: clamp(3rem, 5vw, 4.5rem); }

.vl-services-intro { padding-block: 5rem 3.5rem; border-bottom: 1px solid var(--vl-line); }
.vl-services-intro h1 { max-width: 17ch; font-size: clamp(3rem, 4.8vw, 4.25rem); line-height: 1.04; }
.vl-services-intro p { max-width: 66ch; font-size: 1.25rem; color: var(--vl-pine-soft); }
.vl-services-cards { padding-block: 4.25rem 5rem; }
.vl-services-cards .vl-grid-4 { counter-reset: vl-services; }
.vl-services-cards .vl-service-card { min-height: 23rem; }
.vl-services-cards .vl-service-card::before { counter-increment: vl-services; content: counter(vl-services, decimal-leading-zero); font-size: .8rem; color: var(--vl-pine-soft); }
.vl-legal-content { max-width: 58rem; padding-block: clamp(4rem, 8vw, 7rem); }
.vl-legal-content h1 { font-size: clamp(3rem, 6vw, 5rem); line-height: 1; }
.vl-legal-content h2 { margin-block: 3rem 1rem; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.vl-legal-content p { line-height: 1.8; }
.vl-legal-content a { text-decoration-color: var(--vl-lime); text-underline-offset: .2em; }

.vl-actions { display: flex; flex-wrap: wrap; gap: .875rem 1.5rem; align-items: center; margin-top: 2rem; }
.vl-button .wp-block-button__link,
.wp-block-button.vl-button .wp-block-button__link { border-radius: 4px; padding: .9rem 1.25rem; font-weight: 750; background: var(--vl-pine); color: white; text-decoration: none; transition: background-color 180ms ease-out, transform 180ms ease-out; }
.vl-button .wp-block-button__link:hover,
.wp-block-button.vl-button .wp-block-button__link:hover { background: #0d2e27; transform: translateY(-2px); }
.vl-section--pine .vl-button .wp-block-button__link { background: var(--vl-lime); color: var(--vl-pine); }
.vl-section--pine .vl-button .wp-block-button__link:hover { background: #e5f3ad; }
.vl-text-link { text-decoration-thickness: 2px; text-decoration-color: var(--vl-lime); text-underline-offset: .4em; font-weight: 700; }

.vl-section-heading { max-width: 18ch; font-size: clamp(2.15rem, 3.4vw, 3.25rem); line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.vl-home .vl-section-heading { max-width: none; }
.vl-lead { max-width: 62ch; font-size: clamp(1rem, 1.35vw, 1.2rem); color: var(--vl-pine-soft); }
.vl-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.vl-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.75rem, 4vw, 4rem); }
.vl-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.vl-grid-4 > * { margin-block-start: 0; }

.vl-service-card { min-height: 21rem; padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; background: var(--vl-paper); border: 1px solid var(--vl-line); border-radius: 4px; }
.vl-service-card img { width: 4.5rem; height: 4.5rem; object-fit: contain; }
.vl-service-card h3 { font-size: 1.45rem; line-height: 1.05; margin-top: 2rem; }
.vl-service-card p { color: var(--vl-pine-soft); }
.vl-service-card a { margin-top: auto; padding-top: 1.5rem; }

.vl-threshold { min-height: 22rem; padding: clamp(2rem, 3vw, 3rem); border-radius: 6rem 6rem 4px 4px; background: var(--vl-lime); display: flex; flex-direction: column; align-items: center; justify-content: space-between; }
.vl-threshold img { width: 8rem; height: 8rem; object-fit: contain; }
.vl-threshold p { align-self: stretch; max-width: 28ch; color: var(--vl-pine); font-family: "Red Hat Display", sans-serif; font-size: clamp(1.5rem, 1.85vw, 1.7rem); font-weight: 700; line-height: 1.05; }

.vl-feature-row { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; padding-block: clamp(3rem, 6vw, 6rem); border-top: 1px solid var(--vl-line); }
.vl-feature-row:first-child { border-top: 0; }
.vl-feature-row h2 { max-width: 15ch; }

.vl-simulation { position: relative; margin: 0; overflow: hidden; background: var(--vl-paper); }
.vl-simulation img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vl-simulation figcaption { position: absolute; z-index: 2; left: .75rem; bottom: .75rem; max-width: calc(100% - 1.5rem); margin: 0; padding: .45rem .65rem; background: rgba(23, 63, 53, .92); color: white; font-size: .68rem; font-weight: 800; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 2px 10px rgba(23, 63, 53, .18); }
.vl-simulation-label { display: inline-block; width: fit-content; margin-bottom: .75rem; padding: .45rem .7rem; background: var(--vl-lime); color: var(--vl-pine); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }

.vl-process > * { padding-top: 1.5rem; border-top: 3px solid var(--vl-lime); }
.vl-process h3 { font-size: 1.35rem; }
.vl-punctual-list { list-style: none; padding-left: 0; margin-top: 1.5rem; }
.vl-punctual-list li { margin: 0; border-top: 1px solid rgba(23, 63, 53, .28); }
.vl-punctual-list li:last-child { border-bottom: 1px solid rgba(23, 63, 53, .28); }
.vl-punctual-list a { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 0; color: var(--vl-pine); font-weight: 700; text-decoration: none; }
.vl-punctual-list a::after { content: "↗"; font-size: 1.2em; line-height: 1; }
.vl-punctual-list a:hover { text-decoration: underline; text-underline-offset: .25em; }

.vl-faq { max-width: 56rem; }
.vl-faq details { border-top: 1px solid var(--vl-line); padding-block: 1.25rem; }
.vl-faq details:last-child { border-bottom: 1px solid var(--vl-line); }
.vl-faq summary { cursor: pointer; font-family: "Red Hat Display", sans-serif; font-size: 1.2rem; font-weight: 700; }
.vl-faq details p { color: var(--vl-pine-soft); }

.vl-contact-note { padding: clamp(1.5rem, 4vw, 3rem); background: var(--vl-paper); border: 1px solid var(--vl-line); }
.vl-contact-note h2 { margin-top: 0; }
.vl-floating-contact { position: fixed; z-index: 100; right: clamp(1rem, 3vw, 2.5rem); bottom: clamp(1rem, 3vw, 2.5rem); margin: 0; }
.vl-floating-contact p { margin: 0; }
.vl-floating-contact a { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.5rem; padding: .75rem 1.15rem; border: 2px solid var(--vl-lime); border-radius: 999px; background: var(--vl-pine); box-shadow: 0 .5rem 1.5rem rgba(23, 63, 53, .25); color: white; font-weight: 750; text-decoration: none; transition: background-color 180ms ease-out, transform 180ms ease-out; }
.vl-floating-contact a:hover { background: #0d2e27; transform: translateY(-2px); }
.vl-floating-contact__icon { width: 1.5rem; height: 1.5rem; color: var(--vl-lime); }
.vl-floating-contact:not(.vl-floating-contact--visible) { visibility: hidden; pointer-events: none; }

.vl-header { border-bottom: 1px solid var(--vl-line); background: color-mix(in srgb, var(--vl-ivory) 94%, transparent); }
.vl-header__inner { max-width: 100rem; margin-inline: auto; padding: 1.875rem clamp(1.5rem, 5.83vw, 5.25rem); }
.vl-header__logo img { width: 13.75rem; height: auto; }
.vl-header .wp-block-navigation-item__content { text-decoration: none; }
.vl-header .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-color: var(--vl-lime); text-decoration-thickness: 2px; text-underline-offset: .45em; }
.vl-header .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-decoration-color: var(--vl-pine); text-decoration-thickness: 2px; text-underline-offset: .9em; }
.vl-header .wp-block-navigation-item.vl-button > .wp-block-navigation-item__content { padding: .75rem 1rem; border-radius: 4px; background: var(--vl-pine); color: white; font-weight: 750; }
.vl-header .wp-block-navigation-item.vl-button > .wp-block-navigation-item__content:hover { background: #0d2e27; text-decoration: none; }
.vl-footer { padding-block: 4rem 6rem; background: var(--vl-pine); color: var(--vl-ivory); }
.vl-footer a { color: var(--vl-ivory); }
.vl-footer img { width: 12.5rem; height: auto; }
.vl-footer__bottom { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.24); font-size: .85rem; }
.vl-footer__bottom p { margin: 0; }
.vl-footer__credit { color: var(--vl-ivory); font-size: .8rem; }
.vl-footer__credit a { font-weight: 750; text-underline-offset: .2em; }

/* Detalles editoriales del dossier: iconos, lectura y estados interactivos. */
.vl-service-card { position: relative; transition: border-color 180ms ease-out, transform 180ms ease-out, box-shadow 180ms ease-out; }
.vl-service-card:hover { border-color: #a8b9a4; transform: translateY(-3px); box-shadow: 0 1rem 2rem rgba(23, 63, 53, .07); }
.vl-service-card figure { position: relative; width: 5.5rem; height: 5.5rem; display: grid; place-items: center; margin: .5rem 0 0; isolation: isolate; }
.vl-service-card figure::before { content: ""; position: absolute; z-index: -1; right: .15rem; top: .2rem; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: var(--vl-lime); }
.vl-service-card img { width: 4.5rem; height: 4.5rem; }
.vl-service-card .vl-text-link { width: 100%; padding-top: 1.25rem; border-top: 1px solid var(--vl-line); }
.vl-service-card .vl-text-link a { text-decoration: none; }
.vl-service-card .vl-text-link a:hover { text-decoration: underline; text-decoration-color: var(--vl-lime); text-underline-offset: .35em; }
.vl-text-link a { text-decoration-line: underline; text-decoration-color: var(--vl-lime); text-decoration-thickness: 2px; text-underline-offset: .4em; }
.vl-services-intro { border-bottom: 1px solid var(--vl-line); }
.vl-services-intro .vl-actions { display: inline-flex; margin-top: 1.5rem; }
.vl-services-intro > .vl-text-link { display: inline-flex; margin: 1.5rem 0 0 1.5rem; }
.vl-services-more { margin-top: 2rem; }
.vl-process { counter-reset: vl-step; }
.vl-process > *::before { counter-increment: vl-step; content: counter(vl-step, decimal-leading-zero); display: block; margin-bottom: 1rem; font-size: .82rem; font-weight: 800; letter-spacing: .12em; color: var(--vl-pine-soft); }
.vl-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; list-style: none; }
.vl-faq summary::-webkit-details-marker { display: none; }
.vl-faq summary::after { content: "+"; flex: none; font-family: Manrope, sans-serif; font-size: 1.5rem; font-weight: 400; line-height: 1; }
.vl-faq details[open] summary::after { content: "−"; }
.vl-faq details[open] { border-top-color: var(--vl-pine); }
.vl-faq details p { max-width: 64ch; line-height: 1.7; }
.vl-simulation::before, .vl-simulation::after { position: absolute; z-index: 1; top: 1rem; padding: .45rem .7rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 2px 8px rgba(23, 63, 53, .13); }
.vl-simulation::before { content: "Antes"; left: 1rem; }
.vl-simulation::after { content: "Después"; right: 1rem; }
.vl-footer__columns { gap: clamp(2rem, 5vw, 5rem); }
.vl-footer__columns h3 { margin-bottom: 1.25rem; font-size: 1.25rem !important; }
.vl-footer__columns p { line-height: 1.65; }
.vl-footer__columns ul { list-style: none; padding-left: 0; }
.vl-footer__columns li { margin-bottom: .55rem; }
.vl-footer__columns a { text-decoration-color: transparent; text-underline-offset: .25em; transition: text-decoration-color 180ms ease-out; }
.vl-footer__columns a:hover { text-decoration-color: var(--vl-lime); }
.vl-footer__credit a { text-decoration-color: var(--vl-lime); }

/* Composiciones del dossier, páginas 16 a 18 y 22 a 28. */
.vl-home .vl-grid-4 { counter-reset: vl-services; }
.vl-home .vl-service-card::before { counter-increment: vl-services; content: counter(vl-services, decimal-leading-zero); font-size: .8rem; color: var(--vl-pine-soft); }
.vl-home #como-funciona > .vl-shell { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); column-gap: clamp(3rem, 5vw, 5.5rem); align-items: start; }
.vl-home #como-funciona .vl-section-heading { grid-column: 1; max-width: 18ch; margin-bottom: 1.5rem; }
.vl-home #como-funciona .vl-lead { grid-column: 1; max-width: 38ch; margin-top: 0; }
.vl-home #como-funciona .vl-lead::after { content: ""; display: block; height: clamp(14rem, 22vw, 20rem); margin-top: 2.5rem; border-radius: 18rem 18rem 4px 4px; background: var(--vl-lime) url("assets/images/icon-llave-proceso.svg") center / 6.5rem no-repeat; }
.vl-home #como-funciona .vl-process { grid-column: 2; grid-row: 1 / span 3; display: block; padding: clamp(2rem, 3vw, 3.25rem); background: #eaf0dd; }
.vl-home #como-funciona .vl-process__title { margin: 0 0 1rem; font-size: clamp(1.7rem, 2.2vw, 2.25rem); line-height: 1.08; }
.vl-home #como-funciona .vl-process__title::before { display: none; counter-increment: none; }
.vl-home #como-funciona .vl-process > :not(.vl-process__title) { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 0 1rem; margin: 0; padding: 1.45rem 0; border-top: 1px solid rgba(23, 63, 53, .17); }
.vl-home #como-funciona .vl-process > :nth-child(2) { border-top: 0; }
.vl-home #como-funciona .vl-process > *::before { grid-column: 1; grid-row: 1 / span 2; margin: .2rem 0 0; }
.vl-home #como-funciona .vl-process h3 { grid-column: 2; margin: 0; }
.vl-home #como-funciona .vl-process p { grid-column: 2; margin: .55rem 0 0; }
.vl-home .vl-section--lime:has(.vl-punctual-list) { background: var(--vl-ivory); }
.vl-home .vl-section--lime:has(.vl-punctual-list) .vl-grid-2 { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
.vl-home .vl-punctual-list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); align-items: center; gap: 1rem; }
.vl-home .vl-punctual-list li::before { content: ""; width: 2.5rem; height: 2.5rem; background: center / contain no-repeat; }
.vl-home .vl-punctual-list li:nth-child(1)::before { background-image: url("assets/images/icon-vivienda-renovada.svg"); }
.vl-home .vl-punctual-list li:nth-child(2)::before { background-image: url("assets/images/icon-vivienda-despejada.svg"); }
.vl-home .vl-punctual-list li:nth-child(3)::before { background-image: url("assets/images/icon-vivienda-renovada.svg"); }
.vl-home .vl-punctual-list li:nth-child(4)::before { background-image: url("assets/images/icon-vivienda-alquiler.svg"); }
.vl-home .vl-punctual-list li:nth-child(5)::before { background-image: url("assets/images/icon-vivienda-venta.svg"); }
.vl-home .vl-punctual-list a { min-height: 4.5rem; align-items: center; font-size: 1.07rem; }
.vl-home .vl-punctual-list .vl-punctual-item { position: relative; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: .25rem 1.25rem; padding: 1.2rem 2rem 1.2rem 0; border-top: 1px solid var(--vl-line); }
.vl-home .vl-punctual-list .vl-punctual-item:last-child { border-bottom: 1px solid var(--vl-line); }
.vl-home .vl-punctual-item::before { content: ""; grid-column: 1; grid-row: 1 / span 2; width: 2.5rem; height: 2.5rem; align-self: center; background: center / contain no-repeat; }
.vl-home .vl-punctual-item:nth-child(1)::before { background-image: url("assets/images/icon-limpieza.svg"); }
.vl-home .vl-punctual-item:nth-child(2)::before { background-image: url("assets/images/icon-vaciado.svg"); }
.vl-home .vl-punctual-item:nth-child(3)::before { background-image: url("assets/images/icon-vivienda-renovada.svg"); }
.vl-home .vl-punctual-item:nth-child(4)::before { background-image: url("assets/images/icon-vivienda-alquiler.svg"); }
.vl-home .vl-punctual-item:nth-child(5)::before { background-image: url("assets/images/icon-vivienda-venta.svg"); }
.vl-home .vl-punctual-item h3 { grid-column: 2; margin: 0; font-size: 1.18rem; }
.vl-home .vl-punctual-item p { grid-column: 2; margin: 0; color: var(--vl-pine-soft); font-size: .95rem; line-height: 1.5; }
.vl-home .vl-punctual-item a { display: inline; min-height: auto; color: var(--vl-pine); text-decoration: none; }
.vl-home .vl-punctual-item a::after { content: "→"; position: absolute; top: 1.25rem; right: 0; font-size: 1.25rem; font-weight: 400; }
.vl-home .vl-punctual-item a:hover { text-decoration: underline; text-decoration-color: var(--vl-lime); text-underline-offset: .3em; }
.vl-service-card .vl-text-link a { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.vl-service-card .vl-text-link a::after { content: "→"; font-size: 1.35rem; font-weight: 400; line-height: 1; }

/* Match the dossier's paired service actions while keeping each link editable. */
@media (min-width: 601px) {
  .vl-page:not(.vl-contact-page) .vl-hero--service > .wp-block-group:first-child {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 1.5rem;
    align-content: center;
    align-items: center;
  }
  .vl-page:not(.vl-contact-page) .vl-hero--service > .wp-block-group:first-child > :not(.vl-actions):not(:last-child) { grid-column: 1 / -1; }
  .vl-page:not(.vl-contact-page) .vl-hero--service > .wp-block-group:first-child > .vl-actions { grid-column: 1; margin-top: 1.5rem; }
  .vl-page:not(.vl-contact-page) .vl-hero--service > .wp-block-group:first-child > .vl-text-link:last-child { grid-column: 2; margin-top: 1.5rem; }
}

body.home .vl-header a[href="/"],
body.page-id-10 .vl-header a[href="/servicios/"],
body.page-id-15 .vl-header a[href="/contacto/"] {
  text-decoration: underline;
  text-decoration-color: var(--vl-pine);
  text-decoration-thickness: 2px;
  text-underline-offset: .9em;
}
.vl-home-final { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.vl-home-final > .vl-shell { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem clamp(2rem, 5vw, 5rem); align-items: center; }
.vl-home-final .vl-section-heading { grid-column: 1; max-width: 22ch; margin: 0; }
.vl-home-final p { grid-column: 1; margin: 0; }
.vl-home-final .vl-actions { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
#que-incluye { padding-block: clamp(3rem, 5vw, 5rem); }
#que-incluye > .vl-shell { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: 0 clamp(2.5rem, 5vw, 5rem); align-items: start; }
#que-incluye .vl-section-heading { grid-column: 1; grid-row: 1; margin: 0 0 1rem; }
#que-incluye .vl-lead { grid-column: 1; grid-row: 2; margin: 0; max-width: 44ch; }
#que-incluye .vl-process { grid-column: 2; grid-row: 1 / span 2; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
#que-incluye .vl-process > * { padding: 0; border: 0; }
#que-incluye .vl-process > *::before { display: none; }
#que-incluye .vl-process h3 { margin: 0 0 .8rem; font-size: 1.25rem; }
#que-incluye .vl-process p { margin: 0; line-height: 1.6; }
#recorrido.vl-scope--three { padding-block: clamp(3rem, 5vw, 5rem); }
#recorrido.vl-scope--three > .vl-shell { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: 0 clamp(2.5rem, 5vw, 5rem); align-items: start; }
#recorrido.vl-scope--three .vl-section-heading { grid-column: 1; grid-row: 1; margin: 0 0 1rem; }
#recorrido.vl-scope--three .vl-lead { grid-column: 1; grid-row: 2; margin: 0; max-width: 44ch; }
#recorrido.vl-scope--three > .vl-shell > p:not(.vl-lead) { grid-column: 1; grid-row: 3; margin: 1rem 0 0; max-width: 44ch; }
#recorrido.vl-scope--three .vl-process { grid-column: 2; grid-row: 1 / span 3; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
#recorrido.vl-scope--three .vl-process > * { padding: 0; border: 0; }
#recorrido.vl-scope--three .vl-process > *::before { display: none; }
#recorrido.vl-scope--three .vl-process h3 { margin: 0 0 .8rem; font-size: 1.25rem; }
#recorrido.vl-scope--three .vl-process p { margin: 0; line-height: 1.6; }
.vl-services-intro { padding-bottom: 2.75rem; }
.vl-services-cards { padding-top: 3rem; }
.vl-contact-page .vl-hero--service { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; padding-block: clamp(3rem, 6vw, 5.5rem); }
.vl-contact-page .vl-hero--service h1 { max-width: 10ch; }
.vl-contact-page .vl-hero--service > .wp-block-group:first-child > .wp-block-group { margin-top: 2rem; }
.vl-contact-page .vl-hero--service > .wp-block-group:first-child > .wp-block-group h2 { font-size: 1.35rem; }
.vl-contact-page .vl-contact-intro { grid-template-columns: 1fr; max-width: 62rem; }
.vl-contact-form-wrap { padding: clamp(1.5rem, 3vw, 2.75rem); border: 1px solid var(--vl-line); background: var(--vl-paper); }
.vl-contact-form-wrap h2 { margin: 0 0 .5rem; font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.1; }
.vl-contact-form__note, .vl-contact-form__direct { color: var(--vl-pine-soft); font-size: .95rem; line-height: 1.6; }
.vl-contact-form-wrap .vl-contact-form__note { font-size: .84rem; }
.vl-contact-form { display: grid; gap: .55rem; margin-top: 1.5rem; }
.vl-contact-form > label:not(.vl-contact-form__consent), .vl-contact-form legend { color: var(--vl-pine); font-size: .88rem; font-weight: 750; }
.vl-contact-form input:not([type="radio"]):not([type="checkbox"]), .vl-contact-form select, .vl-contact-form textarea { width: 100%; min-height: 3rem; box-sizing: border-box; margin: 0 0 .55rem; padding: .7rem .8rem; border: 1px solid #aebbb2; border-radius: 2px; background: white; color: var(--vl-pine); font: inherit; }
.vl-contact-form textarea { resize: vertical; min-height: 7rem; }
.vl-contact-form fieldset { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: .2rem 0 .65rem; padding: 0; border: 0; }
.vl-contact-form legend { margin-bottom: .45rem; }
.vl-contact-form fieldset label { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.75rem; }
.vl-contact-form__consent { display: flex; align-items: start; gap: .65rem; margin-top: .4rem; font-size: .86rem; line-height: 1.5; }
.vl-contact-form__consent input { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--vl-pine); }
.vl-contact-form__consent a, .vl-contact-form__direct a { color: var(--vl-pine); font-weight: 750; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .25em; }
.vl-contact-form button { min-height: 3.25rem; margin-top: .65rem; padding: .8rem 1.15rem; border: 0; border-radius: 4px; background: var(--vl-pine); color: white; font: inherit; font-weight: 750; cursor: pointer; }
.vl-contact-form button:hover { background: #0d2e27; }
.vl-contact-form input:focus-visible, .vl-contact-form select:focus-visible, .vl-contact-form textarea:focus-visible, .vl-contact-form button:focus-visible { outline: 3px solid var(--vl-focus); outline-offset: 2px; }
.vl-contact-form__status { min-height: 1.5em; margin: 0; font-size: .9rem; }

a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--vl-focus); outline-offset: 4px; }

@media (max-width: 900px) {
  .vl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vl-grid-3 { grid-template-columns: 1fr; }
  .vl-hero--service, .vl-feature-row { grid-template-columns: 1fr; }
  .vl-hero--service { padding-top: 3.5rem; }
  .vl-threshold { min-height: 22rem; }
  .vl-home #como-funciona > .vl-shell, #que-incluye > .vl-shell, #recorrido.vl-scope--three > .vl-shell { grid-template-columns: 1fr; }
  .vl-home #como-funciona .vl-process, #que-incluye .vl-process, #recorrido.vl-scope--three .vl-process { grid-column: 1; grid-row: auto; }
  #que-incluye .vl-lead { grid-column: 1; grid-row: auto; }
  #que-incluye .vl-process, #recorrido.vl-scope--three .vl-process { margin-top: 2rem; }
  .vl-contact-page .vl-hero--service { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .vl-contact-page .vl-hero--service { padding-block: 2.5rem 3rem; }
  .vl-contact-form-wrap { margin-top: 1.5rem; }
  .vl-home #como-funciona .vl-lead::after { height: 13rem; margin-top: 1.75rem; background-size: 5rem; }
  .vl-home #como-funciona .vl-process { margin-top: 1.75rem; padding: 1.5rem; }
  .vl-home .vl-section--lime:has(.vl-punctual-list) .vl-grid-2 { grid-template-columns: 1fr; }
  .vl-home .vl-punctual-list a { min-height: 4rem; }
  .vl-home-final > .vl-shell { grid-template-columns: 1fr; }
  .vl-home-final .vl-actions { grid-column: 1; grid-row: auto; margin-top: 1.25rem; }
  #que-incluye .vl-process, #recorrido.vl-scope--three .vl-process { grid-template-columns: 1fr 1fr; gap: 2rem 1.25rem; }
  .skip-link.screen-reader-text:not(:focus) { min-width: 2.75rem; min-height: 2.75rem; pointer-events: none; }
  .vl-home .vl-hero { padding-block: 3rem 4.5rem; }
  .vl-home .vl-hero h1 { font-size: clamp(2.55rem, 12.3vw, 3rem); }
  .vl-home .vl-hero h1 span { display: block; white-space: nowrap; }
  .vl-section { padding-block: clamp(3.75rem, 16vw, 5.5rem); }
  .vl-hero { min-height: auto; padding-block: 3.75rem; }
  .vl-grid-2, .vl-grid-4 { grid-template-columns: 1fr; }
  .vl-service-card { min-height: 17rem; }
  .vl-services-intro { padding-block: 3rem 3.25rem; }
  .vl-services-intro h1 { font-size: 2.75rem; }
  .vl-services-intro p { font-size: 1.125rem; line-height: 1.55; }
  .vl-services-cards { padding-block: 3.0625rem 3rem; }
  .vl-services-cards .vl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .vl-services-cards .vl-service-card { min-height: 21rem; padding: 1rem; }
  .vl-services-cards .vl-service-card figure { width: 4.5rem; height: 4.5rem; margin: .25rem 0 0; background: transparent; }
  .vl-services-cards .vl-service-card figure::before { width: 2.75rem; height: 2.75rem; }
  .vl-services-cards .vl-service-card img { width: 3rem; height: 3rem; }
  .vl-services-cards .vl-service-card h3 { font-size: 1.3rem; margin-top: 1.25rem; }
  .vl-services-cards .vl-service-card p { font-size: .875rem; }
  .vl-services-cards .vl-service-card .vl-text-link { padding-top: .5rem; }
  .vl-services-cards .vl-service-card a { padding-top: 0; }
  .vl-hero--service { padding-block: 2rem 2.5rem; gap: 1.75rem; }
  .vl-hero--service .vl-threshold { align-items: center; min-height: 20rem; padding: 1.5rem; border-radius: 4rem 4rem 4px 4px; }
  .vl-hero--service .vl-threshold img { width: 7.5rem; height: 7.5rem; }
  .vl-hero--service .vl-threshold p { align-self: stretch; }
  .vl-contact-page .vl-contact-note { padding: 1.5rem; margin-top: .5rem; border: 1px solid var(--vl-line); background: var(--vl-paper); }
  .vl-contact-page .vl-contact-note h2,
  .vl-contact-page .vl-contact-note p:first-of-type { display: none; }
  .vl-contact-page .vl-contact-note p { margin-block: .25rem; }
  .vl-contact-page .vl-contact-note a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .vl-contact-page .vl-section { padding-block: 2rem 3.75rem; }
  .vl-contact-page .vl-contact-intro > :nth-child(2) { order: -1; }
  .vl-floating-contact { right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom)); }
  .vl-floating-contact a { width: 3.5rem; min-height: 3.5rem; padding: 0; border-radius: 50%; }
  .vl-floating-contact__label { display: none; }
  .vl-floating-contact__icon { width: 1.75rem; height: 1.75rem; }
  .vl-footer { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }
  .vl-footer a, .vl-text-link a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .vl-faq summary { min-height: 2.75rem; padding-block: .6rem; }
  .vl-header__logo a, .vl-header .wp-block-navigation__responsive-container-open { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .vl-service-card a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .wp-block-navigation__responsive-container-content a { min-height: 2.75rem; }
  .vl-header__inner { padding-block: 1.5rem; }
  .vl-header__logo img { width: 11rem; }
  .vl-header .wp-block-navigation__responsive-container-open { gap: .5rem; align-items: center; }
  .vl-header .wp-block-navigation__responsive-container-open::before { content: "Menú"; font-size: .9rem; }
  .vl-simulation-label { display: inline-block; }
}

@media print { .vl-floating-contact { display: none !important; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Movimiento editorial: el contenido existe y es visible aunque el script no cargue. */
.vl-motion-step > h3,
.vl-motion-step > p,
.vl-motion-step > h3::before {
  transition: transform 440ms cubic-bezier(.23, 1, .32, 1);
  transition-delay: var(--vl-motion-delay, 0ms);
}
.vl-motion-step.vl-motion-pending > h3,
.vl-motion-step.vl-motion-pending > p,
.vl-motion-step.vl-motion-pending > h3::before { transform: translateY(.75rem); }
.vl-motion-frame .vl-service-visual__media img,
.vl-motion-image img { transition: transform 640ms cubic-bezier(.23, 1, .32, 1); }
.vl-motion-frame.vl-motion-pending .vl-service-visual__media img,
.vl-motion-image.vl-motion-pending img { transform: scale(1.035); }
.vl-button .wp-block-button__link.vl-motion-action { transition: background-color 180ms ease-out, transform 140ms cubic-bezier(.23, 1, .32, 1); }
.vl-button .wp-block-button__link.vl-motion-pressed,
.vl-button .wp-block-button__link.vl-motion-pressed:hover { transform: scale(.97); }
.vl-motion-step.vl-motion-instant > h3,
.vl-motion-step.vl-motion-instant > p,
.vl-motion-step.vl-motion-instant > h3::before,
.vl-motion-frame.vl-motion-instant .vl-service-visual__media img,
.vl-motion-image.vl-motion-instant img { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .vl-motion-step > h3,
  .vl-motion-step > p,
  .vl-motion-step > h3::before,
  .vl-motion-frame .vl-service-visual__media img,
  .vl-motion-image img,
  .vl-button .wp-block-button__link.vl-motion-action { transition: none; }
  .vl-motion-step.vl-motion-pending > h3,
  .vl-motion-step.vl-motion-pending > p,
  .vl-motion-step.vl-motion-pending > h3::before,
  .vl-motion-frame.vl-motion-pending .vl-service-visual__media img,
  .vl-motion-image.vl-motion-pending img,
  .vl-button .wp-block-button__link.vl-motion-pressed { opacity: 1; transform: none; }
}

/* Evolución visual 1.0.20: escaparate de transformación y registro de llaves. */
::selection { background: var(--vl-lime); color: var(--vl-pine); }
html { scrollbar-color: var(--vl-pine) var(--vl-ivory); scrollbar-width: thin; }
.vl-header__inner { padding-block: 1rem; }
.vl-header__logo img { width: 11.5rem; }
.vl-header { position: relative; z-index: 20; backdrop-filter: blur(14px); }

.vl-transform-window,
.vl-services-window { position: relative; min-width: 0; }
.vl-transform-window { background: var(--vl-paper); border: 1px solid color-mix(in srgb, var(--vl-pine) 18%, transparent); box-shadow: 0 1.5rem 4rem rgba(23, 63, 53, .12); }
.vl-transform-window::after { content: ""; position: absolute; inset: .75rem; border: 1px solid rgba(255,255,255,.6); pointer-events: none; }
.vl-transform-window__status { position: absolute; z-index: 3; top: 1rem; left: 1rem; margin: 0; padding: .55rem .75rem; background: var(--vl-lime); color: var(--vl-pine); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.vl-transform-window .vl-simulation { margin: 0; border: 0; }
.vl-transform-window .vl-simulation img { display: block; width: 100%; height: auto; }
.vl-transform-window .vl-simulation figcaption { position: absolute; z-index: 2; }

.vl-home .vl-hero { min-height: 43rem; grid-template-columns: minmax(0, .83fr) minmax(28rem, 1.17fr); grid-template-rows: auto auto auto; gap: 1.25rem clamp(3rem, 5vw, 6rem); align-items: center; padding-block: clamp(4rem, 7vw, 7rem); }
.vl-home .vl-hero > h1,
.vl-home .vl-hero > p,
.vl-home .vl-hero > .vl-actions { grid-column: 1; margin-block: 0; }
.vl-home .vl-hero > h1 { align-self: end; font-size: clamp(3.8rem, 5.55vw, 5.75rem); }
.vl-home .vl-hero > p { max-width: 38ch; font-size: 1.2rem; }
.vl-home .vl-hero > .vl-actions { align-self: start; margin-top: .75rem; }
.vl-home .vl-hero > .vl-transform-window { grid-column: 2; grid-row: 1 / span 3; align-self: center; transform: rotate(1.2deg); }
.vl-home .vl-hero > .vl-transform-window .vl-simulation img { aspect-ratio: 1.26 / 1; object-fit: cover; }

.vl-home > .vl-section:first-of-type .vl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2.5rem; }
.vl-home > .vl-section:first-of-type .vl-service-card { min-height: 15rem; display: grid; grid-template-columns: 6rem minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: .25rem 1.5rem; padding: 2rem; border: 0; border-top: 1px solid var(--vl-pine); background: color-mix(in srgb, var(--vl-paper) 84%, var(--vl-lime)); }
.vl-home > .vl-section:first-of-type .vl-service-card:nth-child(even) { background: var(--vl-paper); }
.vl-home > .vl-section:first-of-type .vl-service-card::before { position: absolute; top: 1rem; right: 1.25rem; }
.vl-home > .vl-section:first-of-type .vl-service-card figure { grid-column: 1; grid-row: 1 / span 3; align-self: start; margin: 0; }
.vl-home > .vl-section:first-of-type .vl-service-card h3 { grid-column: 2; margin: .5rem 0 0; font-size: clamp(1.55rem, 2vw, 2rem); }
.vl-home > .vl-section:first-of-type .vl-service-card > p:not(.vl-text-link) { grid-column: 2; margin: .75rem 0; font-size: 1rem; }
.vl-home > .vl-section:first-of-type .vl-service-card .vl-text-link { grid-column: 2; align-self: end; }

.vl-home #como-funciona { background: var(--vl-pine); color: var(--vl-ivory); }
.vl-home #como-funciona .vl-lead { color: color-mix(in srgb, var(--vl-ivory) 80%, var(--vl-lime)); }
.vl-home #como-funciona .vl-lead::after { background-color: var(--vl-lime); }
.vl-home #como-funciona .vl-process { background: #214f43; }
.vl-home #como-funciona .vl-process > :not(.vl-process__title) { border-color: rgba(255,255,255,.2); }
.vl-home #como-funciona .vl-process p { color: rgba(255,255,255,.78); }
.vl-home #como-funciona .vl-process > *::before { color: var(--vl-lime); }

.vl-home .vl-section--paper > .vl-shell > .vl-grid-2 { grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); align-items: end; }
.vl-home .vl-section--paper .vl-grid-2 > :first-child { transform: translateY(1.25rem); }
.vl-home .vl-section--paper .vl-simulation { box-shadow: 0 1rem 3rem rgba(23,63,53,.12); }

.vl-services-intro { display: grid; grid-template-columns: minmax(0, .96fr) minmax(31rem, 1.04fr); grid-template-rows: auto auto; gap: 1rem clamp(3rem, 5vw, 6rem); min-height: 38rem; align-items: center; padding-block: clamp(3rem, 6vw, 6rem); }
.vl-services-intro h1,
.vl-services-intro > p { grid-column: 1; margin: 0; }
.vl-services-intro h1 { align-self: end; max-width: 14ch; font-size: clamp(3rem, 4.15vw, 3.85rem); }
.vl-services-intro > p { align-self: start; }
.vl-services-window { grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: 1.12fr .88fr; gap: .75rem; align-items: end; }
.vl-services-window .vl-simulation { margin: 0; box-shadow: 0 1.2rem 3.25rem rgba(23,63,53,.13); }
.vl-services-window .vl-simulation:last-child { transform: translateY(2rem); }
.vl-services-window .vl-simulation img { aspect-ratio: 1.25 / 1; object-fit: cover; }
.vl-services-window .vl-simulation figcaption { min-height: 0; }
.vl-services-cards { padding-block: 4rem 5.5rem; }
.vl-services-cards .vl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.vl-services-cards .vl-service-card { min-height: 17rem; display: grid; grid-template-columns: 6rem minmax(0,1fr); grid-template-rows: auto 1fr auto; gap: .25rem 1.5rem; padding: 2rem; border: 0; border-top: 1px solid var(--vl-pine); background: var(--vl-paper); }
.vl-services-cards .vl-service-card:nth-child(2),
.vl-services-cards .vl-service-card:nth-child(3) { background: color-mix(in srgb, var(--vl-lime) 28%, var(--vl-paper)); }
.vl-services-cards .vl-service-card::before { position: absolute; top: 1rem; right: 1.25rem; }
.vl-services-cards .vl-service-card figure { grid-column: 1; grid-row: 1 / span 3; align-self: start; margin: 0; }
.vl-services-cards .vl-service-card h3 { grid-column: 2; margin: .5rem 0 0; font-size: clamp(1.55rem, 2vw, 2rem); }
.vl-services-cards .vl-service-card > p:not(.vl-text-link) { grid-column: 2; margin: .75rem 0; font-size: 1rem; }
.vl-services-cards .vl-service-card .vl-text-link { grid-column: 2; align-self: end; }
.vl-services-page #puntuales { background: var(--vl-pine); color: var(--vl-ivory); }
.vl-services-page #puntuales p { color: rgba(255,255,255,.8); }

/* Iconografía del dossier aplicada como sistema de orientación, no como adorno. */
.vl-services-page #puntuales .vl-punctual-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin-top: 2rem; }
.vl-services-page #puntuales .vl-punctual-item { position: relative; min-width: 0; padding: 1.25rem 1rem 1rem; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.16); }
.vl-services-page #puntuales .vl-punctual-item figure { width: 3.25rem; height: 3.25rem; display: grid; place-items: center; margin: 0 0 1.25rem; border-radius: 50%; background: var(--vl-lime); }
.vl-services-page #puntuales .vl-punctual-item img { width: 2rem; height: 2rem; object-fit: contain; }
.vl-services-page #puntuales .vl-punctual-item h3 { margin: 0; font-size: 1rem; line-height: 1.2; }
.vl-services-page #puntuales .vl-punctual-item h3 a { color: var(--vl-ivory); text-decoration: none; }
.vl-services-page #puntuales .vl-punctual-item h3 a::after { content: "↗"; position: absolute; top: 1.15rem; right: 1rem; color: var(--vl-lime); font-size: 1.15rem; font-weight: 400; }
.vl-services-page #puntuales .vl-punctual-item > p { margin: .55rem 0 0; font-size: .85rem; line-height: 1.45; }
.vl-services-page #puntuales .vl-punctual-item:focus-within { outline: 3px solid var(--vl-lime); outline-offset: 3px; }

.vl-services-gallery { overflow: hidden; background: color-mix(in srgb, var(--vl-lime) 24%, var(--vl-ivory)); }
.vl-services-gallery__intro { display: grid; grid-template-columns: minmax(0, .72fr) minmax(18rem, .28fr); gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.vl-services-gallery__intro h2,
.vl-services-gallery__intro p { margin-block: 0; }
.vl-services-gallery__intro p { color: var(--vl-pine-soft); }
.vl-services-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.vl-services-gallery__item { grid-column: span 3; min-width: 0; }
.vl-services-gallery__item:nth-child(2),
.vl-services-gallery__item:nth-child(4) { transform: translateY(1.75rem); }
.vl-services-gallery__item > a { display: block; color: inherit; text-decoration: none; }
.vl-services-gallery__item .vl-example-visual { position: relative; margin: 0; overflow: hidden; background: var(--vl-paper); }
.vl-services-gallery__item .vl-example-visual img { display: block; width: 100%; aspect-ratio: .82 / 1; object-fit: cover; transition: transform 220ms ease-out; }
.vl-services-gallery__item:hover .vl-example-visual img { transform: scale(1.025); }
.vl-services-gallery__item .vl-example-visual figcaption { position: absolute; inset: auto .65rem .65rem auto; margin: 0; padding: .4rem .55rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.vl-services-gallery__label { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: .75rem; align-items: center; margin-top: .9rem; }
.vl-services-gallery__label figure { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; margin: 0; border-radius: 50%; background: var(--vl-lime); }
.vl-services-gallery__label img { width: 1.8rem; height: 1.8rem; object-fit: contain; }
.vl-services-gallery__label h3 { margin: 0; font-size: 1.05rem; line-height: 1.08; }
.vl-services-gallery__label h3 a { color: var(--vl-pine); text-decoration: none; }
.vl-services-gallery__label h3 a:hover { text-decoration: underline; text-decoration-color: var(--vl-lime); text-underline-offset: .3em; }

.vl-service-page .vl-hero--service { min-height: 42rem; grid-template-columns: minmax(0, .76fr) minmax(32rem, 1.24fr); gap: clamp(3rem, 6vw, 7rem); padding-block: clamp(3.5rem, 6vw, 6rem); }
.vl-service-page .vl-hero--service h1 { font-size: clamp(3.5rem, 5vw, 5.25rem); }
.vl-service-page .vl-hero--service > :first-child > p:not(.vl-text-link) { max-width: 37ch; font-size: 1.15rem; }
.vl-service-page .vl-transform-window--service { align-self: center; }
.vl-service-page .vl-transform-window--service > .vl-simulation,
.vl-service-page .vl-transform-window--service > .vl-transform-window__note { margin-block: 0; }
.vl-service-page .vl-transform-window--service .vl-simulation img { aspect-ratio: 1.35 / 1; object-fit: cover; }
.vl-transform-window__note { display: grid; grid-template-columns: 4rem minmax(0,1fr); gap: 1rem; align-items: center; padding: 1.25rem 1.5rem; background: var(--vl-lime); }
.vl-transform-window__note figure { margin: 0; }
.vl-transform-window__note img { width: 3rem; height: 3rem; object-fit: contain; }
.vl-transform-window__note p { margin: 0; color: var(--vl-pine); font-family: "Red Hat Display", sans-serif; font-size: clamp(1.15rem, 1.7vw, 1.55rem); font-weight: 700; line-height: 1.08; }

/* Imagen editorial secundaria: cada servicio conserva su emblema del dossier. */
.vl-service-visual { position: relative; overflow: hidden; padding-block: clamp(4.5rem, 8vw, 7.5rem); background: var(--vl-ivory); }
.vl-service-visual__frame { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); min-height: 34rem; align-items: stretch; }
.vl-service-visual__media { position: relative; margin: 0; overflow: hidden; background: var(--vl-paper); }
.vl-service-visual__media img { display: block; width: 100%; height: 100%; min-height: 34rem; object-fit: cover; }
.vl-service-visual__media figcaption { position: absolute; z-index: 2; right: 1rem; bottom: 1rem; margin: 0; padding: .5rem .7rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.vl-service-visual__emblem { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(2rem, 4vw, 3.5rem); background: var(--vl-lime); border-radius: 12rem 12rem 0 0; }
.vl-service-visual__emblem figure { width: clamp(6rem, 10vw, 8.5rem); height: clamp(6rem, 10vw, 8.5rem); display: grid; place-items: center; margin: 0 auto auto; }
.vl-service-visual__emblem img { width: 100%; height: 100%; object-fit: contain; }
.vl-service-visual__emblem h2 { margin: 2rem 0 .75rem; font-size: clamp(2rem, 3.1vw, 3.25rem); line-height: .98; }
.vl-service-visual__emblem p { margin: 0; color: var(--vl-pine); font-size: 1rem; line-height: 1.6; }
.vl-service-visual--renovada .vl-service-visual__media { grid-column: 2; grid-row: 1; }
.vl-service-visual--renovada .vl-service-visual__emblem { grid-column: 1; grid-row: 1; border-radius: 0 12rem 12rem 0; }
.vl-service-visual--alquiler { background: var(--vl-pine); }
.vl-service-visual--alquiler .vl-service-visual__frame { gap: 1.25rem; }
.vl-service-visual--alquiler .vl-service-visual__emblem { border-radius: 0; box-shadow: inset 0 0 0 1px rgba(23,63,53,.12); }
.vl-service-visual--venta .vl-service-visual__frame { grid-template-columns: minmax(18rem, .62fr) minmax(0, 1.38fr); }
.vl-service-visual--venta .vl-service-visual__media { grid-column: 2; grid-row: 1; }
.vl-service-visual--venta .vl-service-visual__emblem { grid-column: 1; grid-row: 1; border-radius: 12rem 12rem 0 0; }

.vl-home-service-reel { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; align-items: stretch !important; }
.vl-home-service-reel > * { min-width: 0; transform: none !important; }
.vl-home-visual-card { height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; background: var(--vl-paper); box-shadow: 0 1rem 3rem rgba(23,63,53,.12); }
.vl-home-visual-card .vl-example-visual { position: relative; margin: 0; overflow: hidden; }
.vl-home-visual-card .vl-example-visual img { display: block; width: 100%; aspect-ratio: 1.35 / 1; object-fit: cover; }
.vl-home-visual-card .vl-example-visual figcaption { position: absolute; right: .75rem; bottom: .75rem; margin: 0; padding: .4rem .55rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.vl-home-visual-card__meta { display: grid; grid-template-columns: 3.75rem minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1.25rem 1.5rem; background: var(--vl-lime); }
.vl-home-visual-card__meta figure { width: 3.75rem; height: 3.75rem; display: grid; place-items: center; margin: 0; }
.vl-home-visual-card__meta img { width: 3rem; height: 3rem; object-fit: contain; }
.vl-home-visual-card__meta h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.75rem); }
.vl-home-visual-card__meta p { margin: .25rem 0 0; color: var(--vl-pine); font-size: .9rem; }

/* Un ritmo reconocible para cada servicio, con el mismo vocabulario visual. */
.vl-service-page--renovada .vl-hero--service { grid-template-columns: minmax(28rem, 1.05fr) minmax(0, .95fr); }
.vl-service-page--renovada .vl-hero--service > .wp-block-group:first-child { grid-column: 2; grid-row: 1; }
.vl-service-page--renovada .vl-transform-window--service { grid-column: 1; grid-row: 1; transform: rotate(-.8deg); }
.vl-service-page--renovada .vl-transform-window__note { background: var(--vl-paper); border-top: .45rem solid var(--vl-lime); }
.vl-service-page--alquiler .vl-hero--service { position: relative; color: var(--vl-ivory); background: var(--vl-pine); box-shadow: 0 0 0 100vmax var(--vl-pine); clip-path: inset(0 -100vmax); }
.vl-service-page--alquiler .vl-hero--service p { color: rgba(246,245,239,.78); }
.vl-service-page--alquiler .vl-hero--service .vl-text-link a { color: var(--vl-ivory); }
.vl-service-page--alquiler .vl-hero--service .vl-button .wp-block-button__link { background: var(--vl-lime); color: var(--vl-pine); }
.vl-service-page--alquiler .vl-transform-window--service { box-shadow: 1.1rem 1.1rem 0 var(--vl-lime); }
.vl-service-page--alquiler .vl-transform-window__note p { color: var(--vl-pine); }
.vl-service-page--venta .vl-transform-window--service { transform: translateY(1.25rem); }
.vl-service-page--venta .vl-transform-window__note { background: linear-gradient(90deg, var(--vl-lime) 0 72%, var(--vl-paper) 72%); }

.vl-service-page #que-incluye,
.vl-service-page #recorrido { background: var(--vl-paper); }
.vl-service-page #que-incluye .vl-process > *,
.vl-service-page #recorrido .vl-process > * { position: relative; min-height: 12rem; padding: 3.4rem 1.5rem 1.5rem; background: var(--vl-ivory); border: 0; }
.vl-service-page #que-incluye .vl-process > *::before,
.vl-service-page #recorrido .vl-process > *::before { display: block; position: absolute; top: 1.15rem; left: 1.5rem; margin: 0; color: var(--vl-pine); }
.vl-service-page #que-incluye .vl-process > *:nth-child(2),
.vl-service-page #recorrido .vl-process > *:nth-child(2) { background: color-mix(in srgb, var(--vl-lime) 48%, var(--vl-paper)); transform: translateY(1.25rem); }
.vl-service-page #que-incluye .vl-process h3,
.vl-service-page #recorrido .vl-process h3 { font-size: 1.35rem; }
.vl-service-page > .vl-section--lime { position: relative; overflow: hidden; }
.vl-service-page > .vl-section--lime::after { content: ""; position: absolute; right: clamp(2rem, 7vw, 8rem); bottom: -7rem; width: 17rem; height: 17rem; border: 2rem solid rgba(23,63,53,.09); border-radius: 50% 50% 0 0; pointer-events: none; }
.vl-service-page--despejada > .vl-section--lime { background: linear-gradient(100deg, var(--vl-lime) 0 67%, var(--vl-paper) 67%); }
.vl-service-page--renovada > .vl-section--lime { background: var(--vl-paper); box-shadow: inset .75rem 0 0 var(--vl-lime); }
.vl-service-page--alquiler > .vl-section--lime { background: linear-gradient(135deg, var(--vl-lime), #eaf5bc); }
.vl-service-page--venta > .vl-section--lime { background: linear-gradient(100deg, var(--vl-paper) 0 33%, var(--vl-lime) 33%); }
.vl-service-page > .vl-section--pine > .vl-shell,
.vl-services-page > .vl-section--pine > .vl-shell,
.vl-contact-page > .vl-section--pine > .vl-shell { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 3rem; align-items: center; }
.vl-service-page > .vl-section--pine h2,
.vl-services-page > .vl-section--pine h2,
.vl-contact-page > .vl-section--pine h2 { margin: 0; }
.vl-service-page > .vl-section--pine p,
.vl-services-page > .vl-section--pine p,
.vl-contact-page > .vl-section--pine p { grid-column: 1; margin-bottom: 0; }
.vl-service-page > .vl-section--pine .vl-actions,
.vl-services-page > .vl-section--pine .vl-actions,
.vl-contact-page > .vl-section--pine .vl-actions { grid-column: 2; grid-row: 1 / span 2; }

.vl-faq { max-width: 100rem; display: grid; grid-template-columns: minmax(14rem, .65fr) minmax(0, 1.35fr); column-gap: clamp(3rem, 7vw, 8rem); }
.vl-faq > .vl-section-heading { grid-column: 1; grid-row: 1 / span 5; margin-top: .5rem; }
.vl-faq > details { grid-column: 2; }

.vl-contact-page .vl-hero--service { grid-template-columns: minmax(0, .82fr) minmax(32rem, 1.18fr); gap: clamp(3rem, 6vw, 7rem); min-height: auto; padding-block: clamp(3.5rem, 6vw, 6rem); }
.vl-contact-page .vl-hero--service > :first-child { padding-top: 2rem; }
.vl-contact-page .vl-contact-form-wrap { padding: clamp(2rem, 4vw, 3.5rem); border: 0; background: var(--vl-pine); color: var(--vl-ivory); box-shadow: 0 1.5rem 4rem rgba(23,63,53,.16); }
.vl-contact-page .vl-contact-form-wrap h2,
.vl-contact-page .vl-contact-form-wrap label,
.vl-contact-page .vl-contact-form-wrap legend,
.vl-contact-page .vl-contact-form-wrap a { color: var(--vl-ivory); }
.vl-contact-page .vl-contact-form__note,
.vl-contact-page .vl-contact-form__direct { color: rgba(255,255,255,.75); }
.vl-contact-page .vl-contact-form button { background: var(--vl-lime); color: var(--vl-pine); }
.vl-contact-page .vl-contact-form button:hover { background: #e5f3ad; }
.vl-contact-page .vl-contact-brief { position: relative; margin-top: 2.25rem; padding: 1.5rem 1.5rem 1.25rem; background: var(--vl-lime); border-left: .45rem solid var(--vl-pine); }
.vl-contact-page .vl-contact-brief::before { content: "Ficha inicial"; display: block; margin-bottom: 1rem; color: var(--vl-pine); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.vl-contact-page .vl-contact-brief h2 { margin-bottom: 1rem; font-size: clamp(1.35rem, 2vw, 1.75rem); }
.vl-contact-page .vl-contact-brief ul { display: grid; gap: .55rem; margin: 0; padding: 0; counter-reset: vl-brief; list-style: none; }
.vl-contact-page .vl-contact-brief li { display: grid; grid-template-columns: 1.8rem minmax(0,1fr); gap: .5rem; align-items: baseline; }
.vl-contact-page .vl-contact-brief li::before { counter-increment: vl-brief; content: "0" counter(vl-brief); font-size: .72rem; font-weight: 800; }
.vl-contact-page .vl-contact-brief > p { margin: 1rem 0 0; font-size: .9rem; color: var(--vl-pine); }
.vl-contact-page > .vl-section:first-of-type { background: color-mix(in srgb, var(--vl-lime) 28%, var(--vl-paper)); }
.vl-contact-page .vl-contact-intro { max-width: 100rem; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); }
.vl-contact-page .vl-contact-intro > * { grid-column: 2; }
.vl-contact-page .vl-contact-intro::before { content: "Estado · zona · siguiente etapa"; align-self: start; grid-column: 1; grid-row: 1; max-width: 10ch; color: var(--vl-pine); font-family: "Red Hat Display", sans-serif; font-size: clamp(2rem, 3.2vw, 3.25rem); font-weight: 700; line-height: .96; }

@media (max-width: 980px) {
  .vl-home .vl-hero,
  .vl-services-intro,
  .vl-service-page .vl-hero--service,
  .vl-contact-page .vl-hero--service { grid-template-columns: 1fr; min-height: auto; }
  .vl-service-page--renovada .vl-hero--service > .wp-block-group:first-child,
  .vl-service-page--renovada .vl-transform-window--service { grid-column: 1; grid-row: auto; }
  .vl-service-page--renovada .vl-transform-window--service,
  .vl-service-page--venta .vl-transform-window--service { transform: none; }
  .vl-home .vl-hero > h1,
  .vl-home .vl-hero > p,
  .vl-home .vl-hero > .vl-actions,
  .vl-home .vl-hero > .vl-transform-window,
  .vl-services-intro h1,
  .vl-services-intro > p,
  .vl-services-window { grid-column: 1; grid-row: auto; }
  .vl-home .vl-hero > .vl-transform-window { margin-top: 1.5rem; transform: none; }
  .vl-services-window { margin-top: 1.5rem; }
  .vl-service-page .vl-transform-window--service { margin-top: 1rem; }
  .vl-contact-page .vl-hero--service > :first-child { padding-top: 0; }
  .vl-services-page #puntuales .vl-punctual-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vl-services-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vl-services-gallery__item { grid-column: auto; }
  .vl-services-gallery__item:nth-child(2),
  .vl-services-gallery__item:nth-child(4) { transform: none; }
  .vl-service-visual__frame,
  .vl-service-visual--venta .vl-service-visual__frame { grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); }
}

/* Renovada: dossier iconography, a concrete scope and one distinct work detail. */
.vl-home .vl-punctual-item:nth-child(3)::before { background-image: url("assets/images/icon-reforma-ligera.svg"); }
.vl-service-page--renovada #que-incluye .vl-process > *::before { display: none; }
.vl-service-page--renovada #que-incluye .vl-process h3::before {
  content: "";
  display: block;
  width: 3.75rem;
  height: 3.75rem;
  margin-bottom: 1.25rem;
  border-radius: 50%;
  background-color: var(--vl-lime);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 2.45rem;
}
.vl-service-page--renovada #que-incluye .vl-process > :nth-child(1) h3::before { background-image: url("assets/images/icon-vaciado.svg"); }
.vl-service-page--renovada #que-incluye .vl-process > :nth-child(2) h3::before { background-image: url("assets/images/icon-reforma-ligera.svg"); }
.vl-service-page--renovada #que-incluye .vl-process > :nth-child(3) h3::before { background-image: url("assets/images/icon-limpieza.svg"); }

.vl-renovada-boundary { padding-block: clamp(4rem, 7vw, 7rem); background: var(--vl-pine); color: var(--vl-ivory); }
.vl-renovada-boundary__layout { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(2.5rem, 6vw, 7rem); align-items: center; }
.vl-renovada-boundary__image { margin: 0; overflow: hidden; }
.vl-renovada-boundary__image img { display: block; width: 100%; aspect-ratio: 1 / 1.15; object-fit: cover; object-position: 24% center; }
.vl-renovada-boundary__copy { max-width: 42rem; }
.vl-renovada-boundary__copy h2 { max-width: 17ch; margin: 0 0 1.25rem; color: var(--vl-ivory); font-size: clamp(2.5rem, 4vw, 4.25rem); line-height: 1.06; }
.vl-renovada-boundary__copy > p:not(.vl-renovada-boundary__links) { max-width: 50ch; margin: 0 0 2rem; color: #d9e8db; font-size: 1.1rem; line-height: 1.65; }
.vl-renovada-boundary__points > * { display: grid; grid-template-columns: minmax(9rem, .48fr) minmax(0, 1fr); gap: 1rem; padding: 1.15rem 0; border-top: 1px solid rgba(246, 245, 239, .24); }
.vl-renovada-boundary__points h3 { margin: 0; color: var(--vl-lime); font-size: 1.08rem; line-height: 1.3; }
.vl-renovada-boundary__points p { margin: 0; color: var(--vl-ivory); font-size: 1rem; line-height: 1.55; }
.vl-renovada-boundary__links { margin: 2rem 0 0; color: #d9e8db; font-size: .96rem; line-height: 1.6; }
.vl-renovada-boundary__links a { color: var(--vl-lime); text-decoration-line: underline; text-decoration-color: var(--vl-lime); text-decoration-thickness: .09em; text-underline-offset: .2em; }
.vl-renovada-boundary__links a:focus-visible { outline: 3px solid var(--vl-lime); outline-offset: .2rem; }

/* The original Gutenberg image stays in the markup and is the static fallback. */
@media (max-width: 700px) {
  .vl-renovada-boundary__layout { grid-template-columns: 1fr; gap: 2.25rem; }
  .vl-renovada-boundary__image img { aspect-ratio: 1.38 / 1; object-position: 30% center; }
  .vl-renovada-boundary__copy h2 { font-size: clamp(2.3rem, 9vw, 3.4rem); }
  .vl-renovada-boundary__points > * { grid-template-columns: 1fr; gap: .35rem; }

  .vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready {
    --vl-compare-pos: 50%;
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--vl-pine);
  }
  .vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready > img {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    clip-path: inset(50%);
  }
  .vl-comparison-viewport, .vl-comparison-before, .vl-comparison-after { position: absolute; inset: 0; }
  .vl-comparison-before, .vl-comparison-after { background-size: 200% auto; background-repeat: no-repeat; }
  .vl-comparison-before { background-position: left center; }
  .vl-comparison-after { background-position: right center; clip-path: inset(0 0 0 var(--vl-compare-pos)); }
  .vl-comparison-control { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; touch-action: none; }
  .vl-comparison-handle { position: absolute; z-index: 3; top: 0; bottom: 0; left: var(--vl-compare-pos); width: 2px; background: var(--vl-ivory); pointer-events: none; }
  .vl-comparison-knob { position: absolute; top: 50%; left: 50%; width: 3.25rem; height: 3.25rem; transform: translate(-50%, -50%); border: 2px solid var(--vl-pine); border-radius: 50%; background: var(--vl-lime); box-shadow: 0 4px 14px rgba(23, 63, 53, .2); }
  .vl-comparison-knob::before, .vl-comparison-knob::after { content: ""; position: absolute; top: 1.19rem; width: .55rem; height: .55rem; border-top: 2px solid var(--vl-pine); border-right: 2px solid var(--vl-pine); }
  .vl-comparison-knob::before { left: .85rem; transform: rotate(-135deg); }
  .vl-comparison-knob::after { right: .85rem; transform: rotate(45deg); }
  .vl-comparison-ready:focus-within .vl-comparison-knob { outline: 3px solid var(--vl-ivory); outline-offset: 3px; }
  .vl-comparison-hint { position: absolute; z-index: 2; bottom: .8rem; left: 50%; transform: translateX(-50%); padding: .4rem .7rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .78rem; font-weight: 700; white-space: nowrap; pointer-events: none; }
  .vl-simulation.vl-comparison-ready figcaption { top: 3.35rem; bottom: auto; max-width: calc(100% - 1.5rem); }
  .vl-service-page .vl-simulation.vl-comparison-ready::before,
  .vl-service-page .vl-simulation.vl-comparison-ready::after { z-index: 6; }
}

@media (max-width: 700px) and (prefers-reduced-motion: reduce) {
  .vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready { aspect-ratio: auto; }
  .vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready > img { position: static; width: 100%; height: auto; opacity: 1; clip-path: none; }
  .vl-comparison-viewport, .vl-comparison-control, .vl-comparison-handle, .vl-comparison-hint { display: none; }
}

/* Movimiento de marca: la promesa se subraya y las elecciones responden al foco. */
@keyframes vl-draw-promise {
  from { background-size: 0% .12em; }
  to { background-size: 100% .12em; }
}

@keyframes vl-arrive-arch {
  from { opacity: .78; transform: translateY(.75rem); }
  to { opacity: 1; transform: translateY(0); }
}

.vl-home .vl-hero h1 span:last-child {
  background-image: linear-gradient(var(--vl-lime), var(--vl-lime));
  background-position: 0 96%;
  background-repeat: no-repeat;
  animation: vl-draw-promise 700ms cubic-bezier(.16, 1, .3, 1) 120ms both;
}

.vl-service-page .vl-transform-window--service .vl-transform-window__note {
  animation: vl-arrive-arch 520ms cubic-bezier(.16, 1, .3, 1) both;
}

.vl-service-card figure::before,
.vl-service-card figure img,
.vl-service-card .vl-text-link a::after {
  transition: transform 240ms cubic-bezier(.16, 1, .3, 1);
}
.vl-service-card:hover figure::before,
.vl-service-card:focus-within figure::before { transform: translate(.3rem, -.25rem) scale(1.08); }
.vl-service-card:hover figure img,
.vl-service-card:focus-within figure img { transform: translateY(-.2rem); }
.vl-service-card:hover .vl-text-link a::after,
.vl-service-card:focus-within .vl-text-link a::after { transform: translateX(.3rem); }

.vl-home-visual-card .vl-example-visual { overflow: hidden; }
.vl-home-visual-card .vl-example-visual img { transition: transform 350ms cubic-bezier(.16, 1, .3, 1); }
.vl-home-visual-card:hover .vl-example-visual img { transform: scale(1.025); }

@media (prefers-reduced-motion: reduce) {
  .vl-home .vl-hero h1 span:last-child { animation: none; background-size: 100% .12em; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note { animation: none; }
  .vl-service-card figure::before,
  .vl-service-card figure img,
  .vl-service-card .vl-text-link a::after,
  .vl-home-visual-card .vl-example-visual img { transition: none; }
  .vl-service-card:hover figure::before,
  .vl-service-card:focus-within figure::before,
  .vl-service-card:hover figure img,
  .vl-service-card:focus-within figure img,
  .vl-service-card:hover .vl-text-link a::after,
  .vl-service-card:focus-within .vl-text-link a::after,
  .vl-home-visual-card:hover .vl-example-visual img { transform: none; }
}

@media (max-width: 700px) {
  .vl-header__inner { padding-block: .8rem; }
  .vl-header__logo img { width: 10.25rem; }
  .vl-home .vl-hero { gap: 1rem; padding-block: 2.5rem 3rem; }
  .vl-home .vl-hero > h1 { font-size: clamp(2.8rem, 13.4vw, 3.35rem); }
  .vl-home .vl-hero > .vl-transform-window { margin-top: 1rem; }
  .vl-transform-window__status { top: .65rem; left: .65rem; }
  .vl-home .vl-hero > .vl-transform-window .vl-simulation img,
  .vl-service-page .vl-transform-window--service .vl-simulation img { aspect-ratio: 1.18 / 1; }
  .vl-home > .vl-hero + .vl-section .vl-grid-4,
  .vl-services-cards .vl-grid-4 { grid-template-columns: 1fr; }
  .vl-home > .vl-hero + .vl-section .vl-service-card,
  .vl-services-cards .vl-service-card { min-height: 13rem; grid-template-columns: 4.75rem minmax(0,1fr); padding: 1.5rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card figure,
  .vl-services-cards .vl-service-card figure { width: 4.5rem; height: 4.5rem; }
  .vl-services-intro { padding-block: 2.75rem 3.25rem; }
  .vl-services-intro h1 { font-size: 2.8rem; }
  .vl-services-window { grid-template-columns: 1fr; gap: 0; margin-top: 1rem; }
  .vl-services-window .vl-simulation:last-child { width: 78%; margin-top: .75rem; justify-self: end; transform: none; }
  .vl-services-window .vl-simulation figcaption { min-height: 0; padding: .4rem .55rem; font-size: .62rem; }
  .vl-service-page .vl-hero--service { padding-block: 2.25rem 2.75rem; gap: 1.25rem; }
  .vl-service-page .vl-hero--service h1 { font-size: clamp(2.65rem, 12vw, 3.25rem); }
  .vl-transform-window__note { grid-template-columns: 3rem minmax(0,1fr); padding: 1rem; }
  .vl-transform-window__note img { width: 2.5rem; height: 2.5rem; }
  .vl-service-page #que-incluye .vl-process,
  .vl-service-page #recorrido .vl-process { grid-template-columns: 1fr; gap: .75rem; }
  .vl-service-page #que-incluye .vl-process > *,
  .vl-service-page #recorrido .vl-process > * { min-height: auto; padding: 3rem 1.25rem 1.25rem; }
  .vl-service-page #que-incluye .vl-process > *:nth-child(2),
  .vl-service-page #recorrido .vl-process > *:nth-child(2) { transform: none; }
  .vl-faq { grid-template-columns: 1fr; }
  .vl-faq > .vl-section-heading,
  .vl-faq > details { grid-column: 1; grid-row: auto; }
  .vl-service-page > .vl-section--pine > .vl-shell,
  .vl-services-page > .vl-section--pine > .vl-shell,
  .vl-contact-page > .vl-section--pine > .vl-shell { grid-template-columns: 1fr; }
  .vl-service-page > .vl-section--pine .vl-actions,
  .vl-services-page > .vl-section--pine .vl-actions,
  .vl-contact-page > .vl-section--pine .vl-actions { grid-column: 1; grid-row: auto; margin-top: 1rem; }
  .vl-contact-page .vl-contact-intro { grid-template-columns: 1fr; }
  .vl-contact-page .vl-contact-intro::before,
  .vl-contact-page .vl-contact-intro > * { grid-column: 1; grid-row: auto; }
  .vl-contact-page .vl-contact-intro::before { margin-bottom: 2rem; }
  .vl-services-page #puntuales .vl-punctual-list,
  .vl-services-gallery__grid,
  .vl-services-gallery__intro,
  .vl-service-visual__frame,
  .vl-service-visual--venta .vl-service-visual__frame,
  .vl-home-service-reel { grid-template-columns: 1fr !important; }
  .vl-services-gallery__intro { gap: 1rem; margin-bottom: 2rem; }
  .vl-services-gallery__item .vl-example-visual img { aspect-ratio: 1.15 / 1; }
  .vl-service-visual { padding-block: 3.75rem; }
  .vl-service-visual__media,
  .vl-service-visual--renovada .vl-service-visual__media,
  .vl-service-visual--venta .vl-service-visual__media,
  .vl-service-visual__emblem,
  .vl-service-visual--renovada .vl-service-visual__emblem,
  .vl-service-visual--venta .vl-service-visual__emblem { grid-column: 1; grid-row: auto; }
  .vl-service-visual__media img { min-height: 0; aspect-ratio: 1.2 / 1; }
  .vl-service-visual__emblem,
  .vl-service-visual--renovada .vl-service-visual__emblem,
  .vl-service-visual--venta .vl-service-visual__emblem { min-height: 21rem; border-radius: 6rem 6rem 0 0; }
  .vl-service-visual__emblem figure { width: 5.5rem; height: 5.5rem; }
  .vl-home-service-reel { gap: 1.25rem; }
}

/* Un emblema para todas las entradas a los servicios. El disco se invierte
   sobre los paneles lima, pero conserva tamaño, desplazamiento y trazo. */
.vl-service-card figure,
.vl-services-gallery__label figure,
.vl-services-page #puntuales .vl-punctual-item figure,
.vl-service-page .vl-transform-window__note figure,
.vl-service-page .vl-service-visual__emblem figure {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 0;
  background: transparent;
}
.vl-service-card figure::before,
.vl-services-gallery__label figure::before,
.vl-services-page #puntuales .vl-punctual-item figure::before,
.vl-service-page .vl-transform-window__note figure::before,
.vl-service-page .vl-service-visual__emblem figure::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 4%;
  right: 4%;
  width: 58%;
  height: 58%;
  border-radius: 50%;
  background: var(--vl-icon-disc, var(--vl-lime));
}
.vl-service-page .vl-transform-window__note,
.vl-service-page .vl-service-visual__emblem { --vl-icon-disc: var(--vl-ivory); }
.vl-service-page--renovada .vl-transform-window__note { --vl-icon-disc: var(--vl-lime); }
.vl-services-gallery__label figure,
.vl-services-page #puntuales .vl-punctual-item figure { width: 3.25rem; height: 3.25rem; }
.vl-services-gallery__label img,
.vl-services-page #puntuales .vl-punctual-item img { width: 2.65rem; height: 2.65rem; object-fit: contain; }
.vl-services-gallery__label { grid-template-columns: 3.25rem minmax(0, 1fr); }
.vl-service-page .vl-transform-window--service .vl-transform-window__note figure { width: 5.5rem; height: 5.5rem; }
.vl-service-page .vl-transform-window--service .vl-transform-window__note img { width: 4.5rem; height: 4.5rem; object-fit: contain; }
.vl-service-page .vl-service-visual__emblem figure { width: 5.5rem; height: 5.5rem; }
.vl-service-page .vl-service-visual__emblem img { width: 4.5rem; height: 4.5rem; object-fit: contain; }

/* Remate editorial: elegir pronto, fotografía e iconos como una sola pieza. */
@media (min-width: 981px) {
  .vl-home .vl-hero { min-height: 35rem; padding-block: 3.5rem; }
  .vl-home .vl-hero > .vl-transform-window .vl-simulation img { aspect-ratio: 1.38 / 1; }
  .vl-services-intro { min-height: 28rem; padding-block: 3rem; }
  .vl-services-intro h1 { max-width: 18ch; }
  .vl-services-window { align-self: center; }
  .vl-services-cards { padding-block: 3.25rem 4.25rem; }
  .vl-service-page .vl-transform-window--service {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(10.5rem, .65fr);
    align-items: stretch;
  }
  .vl-service-page .vl-transform-window--service .vl-simulation img { height: 100%; aspect-ratio: 1.15 / 1; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem 1.4rem;
    border-radius: 8rem 8rem 0 0;
  }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note figure { width: 6.25rem; height: 6.25rem; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note img { width: 100%; height: 100%; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note p { font-size: clamp(1.15rem, 1.6vw, 1.45rem); }
  .vl-service-page--renovada .vl-transform-window__note { border-top: 0; border-left: .45rem solid var(--vl-lime); background: color-mix(in srgb, var(--vl-lime) 32%, var(--vl-paper)); }
  .vl-service-page--venta .vl-transform-window__note { background: var(--vl-lime); }
  .vl-service-page .vl-hero--service { min-height: 37rem; }
}

.vl-service-page #que-incluye .vl-process > *,
.vl-service-page #recorrido .vl-process > * { border-bottom: 3px solid var(--vl-line); }
.vl-service-page #que-incluye .vl-process > *:nth-child(2),
.vl-service-page #recorrido .vl-process > *:nth-child(2) { border-bottom-color: var(--vl-lime); }
.vl-service-page #que-incluye .vl-process p,
.vl-service-page #recorrido .vl-process p { font-size: 1rem; line-height: 1.6; }
.vl-service-page > .vl-section--lime,
.vl-service-page > .vl-section--soft { padding-block: clamp(3.5rem, 5.5vw, 5.5rem); }
.vl-service-page > .vl-section--lime .vl-grid-2 > .wp-block-group,
.vl-service-page > .vl-section--soft .vl-grid-2 > .wp-block-group { max-width: 42rem; }
.vl-service-page > .vl-section--lime p,
.vl-service-page > .vl-section--soft p { font-size: 1.08rem; line-height: 1.72; }

.vl-contact-page .vl-contact-form-wrap {
  background: var(--vl-paper);
  color: var(--vl-pine);
  border: 1px solid var(--vl-line);
  box-shadow: 0 1rem 3rem rgba(23,63,53,.08);
}
.vl-contact-page .vl-contact-form-wrap h2,
.vl-contact-page .vl-contact-form-wrap label,
.vl-contact-page .vl-contact-form-wrap legend,
.vl-contact-page .vl-contact-form-wrap a { color: var(--vl-pine); }
.vl-contact-page .vl-contact-form__note,
.vl-contact-page .vl-contact-form__direct { color: var(--vl-pine-soft); }
.vl-contact-page .vl-contact-form button { background: var(--vl-pine); color: var(--vl-paper); }
.vl-contact-page .vl-contact-form button:hover { background: #0d2e27; }
.vl-contact-page .vl-contact-form__consent { padding: .8rem; background: color-mix(in srgb, var(--vl-lime) 35%, var(--vl-paper)); }

.vl-footer__bottom { align-items: center; }
.vl-footer a:hover { text-decoration-color: var(--vl-lime); text-underline-offset: .3em; }
.vl-faq details { transition: background-color 180ms ease-out; }
.vl-faq details[open] { padding-inline: 1rem; background: color-mix(in srgb, var(--vl-lime) 18%, var(--vl-ivory)); }
.vl-faq summary:focus-visible { outline: 3px solid var(--vl-focus); outline-offset: 4px; }

@media (min-width: 361px) and (max-width: 700px) {
  .vl-home > .vl-hero + .vl-section .vl-grid-4,
  .vl-services-cards .vl-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card,
  .vl-services-cards .vl-service-card { display: flex; min-height: 18rem; padding: 1rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card figure,
  .vl-services-cards .vl-service-card figure { width: 3.5rem; height: 3.5rem; margin: 0; }
  .vl-home > .vl-hero + .vl-section .vl-service-card figure::before,
  .vl-services-cards .vl-service-card figure::before { width: 2.5rem; height: 2.5rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card img,
  .vl-services-cards .vl-service-card img { width: 3.25rem; height: 3.25rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card h3,
  .vl-services-cards .vl-service-card h3 { margin-top: .7rem; font-size: 1.16rem; line-height: 1.12; }
  .vl-home > .vl-hero + .vl-section .vl-service-card p,
  .vl-services-cards .vl-service-card p { font-size: 1rem; line-height: 1.35; }
}
@media (max-width: 700px) {
  .vl-services-intro { padding-block: 2.25rem 2.5rem; }
  .vl-services-window { display: block; min-height: 20rem; }
  .vl-services-window .vl-simulation:first-child { width: 88%; }
  .vl-services-window .vl-simulation:last-child { position: absolute; right: 0; bottom: 0; width: 53%; margin: 0; }
  .vl-services-window .vl-simulation img { aspect-ratio: 1.2 / 1; }
  .vl-services-cards { padding-block: 2rem 3rem; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note { border-radius: 5rem 5rem 0 0; }
  .vl-contact-page .vl-contact-intro::before { max-width: none; margin-bottom: .75rem; font-size: .9rem; font-family: Manrope, sans-serif; font-weight: 800; line-height: 1.4; letter-spacing: .09em; text-transform: uppercase; }
}

/* Las dimensiones del emblema prevalecen sobre las variantes del hero. */
.vl-service-page .vl-transform-window--service .vl-transform-window__note figure { width: 5.5rem; height: 5.5rem; }
.vl-service-page .vl-transform-window--service .vl-transform-window__note img { width: 4.5rem; height: 4.5rem; }
@media (max-width: 700px) {
  .vl-service-page .vl-transform-window--service .vl-transform-window__note { grid-template-columns: 3.5rem minmax(0, 1fr); gap: .75rem; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note figure { width: 3.5rem; height: 3.5rem; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note img { width: 3rem; height: 3rem; }
  .vl-service-page .vl-service-visual__emblem figure { width: 4.5rem; height: 4.5rem; }
  .vl-service-page .vl-service-visual__emblem img { width: 3.6rem; height: 3.6rem; }
}

/* Vivienda Lista: jerarquía editorial y hero de servicios fiel al dossier. */
@media (min-width: 981px) {
  .vl-home .vl-hero {
    display: block;
    min-height: 0;
    padding-block: clamp(4rem, 6vw, 5.5rem);
  }
  .vl-home .vl-hero > h1 {
    max-width: 20ch;
    margin: 0;
    font-size: clamp(4.25rem, 5.9vw, 6.25rem);
    line-height: .98;
    letter-spacing: -.055em;
  }
  .vl-home .vl-hero > p { max-width: 50ch; margin-top: 2rem; }
  .vl-home .vl-hero > .vl-actions { margin-top: 2rem; }
  .vl-home .vl-hero > .vl-transform-window { display: none; }

  .vl-services-intro {
    display: block;
    min-height: 0;
    padding-block: clamp(3.75rem, 5vw, 5rem) 2.25rem;
  }
  .vl-services-intro h1 { max-width: 22ch; font-size: clamp(4rem, 5vw, 5.25rem); }
  .vl-services-intro > p { max-width: 49ch; margin-top: 1.25rem; }
  .vl-services-window { display: none; }
  .vl-services-cards { padding-block: 0 4.75rem; }

  .vl-home > .vl-hero + .vl-section .vl-grid-4,
  .vl-services-cards .vl-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .vl-home > .vl-hero + .vl-section .vl-service-card,
  .vl-services-cards .vl-service-card {
    display: flex;
    min-height: 20rem;
    padding: 1.5rem 1.25rem 1.25rem;
    background: transparent !important;
    border: 0;
    border-top: 1px solid var(--vl-pine);
    border-bottom: 1px solid var(--vl-line);
    box-shadow: none;
    transform: none;
  }
  .vl-home > .vl-hero + .vl-section .vl-service-card + .vl-service-card,
  .vl-services-cards .vl-service-card + .vl-service-card { border-left: 1px solid var(--vl-line); }
  .vl-home > .vl-hero + .vl-section .vl-service-card figure,
  .vl-services-cards .vl-service-card figure { width: 5.25rem; height: 5.25rem; margin: 1.35rem 0 0; }
  .vl-home > .vl-hero + .vl-section .vl-service-card h3,
  .vl-services-cards .vl-service-card h3 { margin: 1.65rem 0 .75rem; font-size: clamp(1.32rem, 1.6vw, 1.7rem); }
  .vl-home > .vl-hero + .vl-section .vl-service-card > p:not(.vl-text-link),
  .vl-services-cards .vl-service-card > p:not(.vl-text-link) { margin: 0 0 1.5rem; font-size: .95rem; }
  .vl-home > .vl-hero + .vl-section .vl-service-card .vl-text-link,
  .vl-services-cards .vl-service-card .vl-text-link { width: 100%; margin-top: auto; }

  .vl-service-page .vl-hero--service {
    grid-template-columns: minmax(0, 1.15fr) minmax(24rem, .85fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    min-height: 0;
    padding-block: clamp(4.5rem, 6vw, 6.5rem);
    color: var(--vl-pine);
    background: var(--vl-ivory);
    box-shadow: none;
    clip-path: none;
  }
  .vl-service-page--renovada .vl-hero--service > .wp-block-group:first-child { grid-column: 1; grid-row: 1; }
  .vl-service-page .vl-hero--service h1 { max-width: 15ch; font-size: clamp(4rem, 5.3vw, 5.6rem); }
  .vl-service-page .vl-hero--service > :first-child > p:not(.vl-text-link) { max-width: 45ch; }
  .vl-service-page .vl-transform-window--service,
  .vl-service-page--renovada .vl-transform-window--service,
  .vl-service-page--venta .vl-transform-window--service {
    display: contents;
    transform: none;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .vl-service-page .vl-transform-window--service::after { display: none; }
  .vl-service-page .vl-transform-window--service .vl-simulation {
    display: block;
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 1rem 0 0;
  }
  .vl-service-page .vl-transform-window--service .vl-simulation img {
    width: 100%;
    height: auto;
    max-height: 28rem;
    aspect-ratio: 2.5 / 1;
    object-fit: cover;
  }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    min-height: 23rem;
    gap: 2rem;
    padding: 2rem 2.25rem 2.25rem;
    border: 0;
    border-radius: 12rem 12rem 0 0;
    background: var(--vl-lime);
  }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note figure {
    width: 7.25rem;
    height: 7.25rem;
    margin: 0 auto;
  }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note img { width: 5.5rem; height: 5.5rem; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note p {
    max-width: 28ch;
    font-size: clamp(1.5rem, 1.85vw, 1.9rem);
  }
  .vl-service-page--alquiler .vl-hero--service p { color: var(--vl-pine-soft); }
  .vl-service-page--alquiler .vl-hero--service .vl-transform-window__note p { color: var(--vl-pine); }
  .vl-service-page--alquiler .vl-hero--service .vl-text-link a { color: var(--vl-pine); }
  .vl-service-page--alquiler .vl-hero--service .vl-button .wp-block-button__link { background: var(--vl-pine); color: var(--vl-paper); }

  .vl-service-page #que-incluye .vl-process > *,
  .vl-service-page #recorrido .vl-process > * {
    min-height: 0;
    padding: 1.25rem 1.25rem 1.75rem 0;
    background: transparent !important;
    border: 0;
    border-top: 1px solid var(--vl-line);
    transform: none;
  }
  .vl-service-page #que-incluye .vl-process > *::before,
  .vl-service-page #recorrido .vl-process > *::before {
    position: static;
    display: block;
    margin-bottom: 1.5rem;
    color: var(--vl-pine-soft);
  }
  .vl-service-page #que-incluye .vl-process h3,
  .vl-service-page #recorrido .vl-process h3 { margin-top: 0; font-size: 1.35rem; }
}

.vl-simulation figcaption,
.vl-services-gallery__item .vl-example-visual figcaption,
.vl-home-visual-card .vl-example-visual figcaption {
  background: var(--vl-ivory);
  color: var(--vl-pine);
  box-shadow: none;
  font-size: .7rem;
  letter-spacing: .035em;
}

.vl-contact-page .vl-contact-form-wrap {
  box-shadow: none;
  border: 1px solid var(--vl-line);
  border-top: .4rem solid var(--vl-lime);
}

.vl-contact-form__consent a {
  display: inline;
  min-height: 0;
}

.vl-services-gallery__label h3 a,
.vl-services-page .vl-section--soft .vl-process p a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
}

@media (max-width: 980px) {
  .vl-header { backdrop-filter: none; background: var(--vl-ivory); }
  .vl-header .wp-block-navigation__responsive-container-close {
    display: grid;
    place-items: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
  .vl-home .vl-hero > .vl-transform-window { display: none; }
  .vl-home .vl-hero { min-height: 0; }
  .vl-services-window { display: none; }
  .vl-services-intro { min-height: 0; }
  .vl-service-page--alquiler .vl-hero--service {
    color: var(--vl-pine);
    background: var(--vl-ivory);
    box-shadow: none;
    clip-path: none;
  }
  .vl-service-page--alquiler .vl-hero--service p { color: var(--vl-pine-soft); }
  .vl-service-page--alquiler .vl-hero--service .vl-transform-window__note p { color: var(--vl-pine); }
  .vl-service-page--alquiler .vl-hero--service .vl-text-link a { color: var(--vl-pine); }
  .vl-service-page--alquiler .vl-hero--service .vl-button .wp-block-button__link { background: var(--vl-pine); color: var(--vl-paper); }
  .vl-service-page .vl-transform-window--service { display: contents; transform: none; box-shadow: none; border: 0; }
  .vl-service-page .vl-transform-window--service::after { display: none; }
  .vl-service-page .vl-transform-window--service .vl-simulation { display: block; grid-column: 1; grid-row: 3; margin: 0; }
  .vl-service-page .vl-transform-window--service .vl-simulation img { aspect-ratio: 1.45 / 1; }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note {
    display: grid;
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: 5rem minmax(0, 1fr);
    align-items: center;
    min-height: 12rem;
    padding: 1.5rem;
    border: 0;
    border-radius: 7rem 7rem 0 0;
    background: var(--vl-lime);
  }
  .vl-service-page .vl-transform-window--service .vl-transform-window__note p { color: var(--vl-pine); }
  .vl-service-page #que-incluye .vl-process > *,
  .vl-service-page #recorrido .vl-process > * {
    min-height: 0;
    padding: 1.25rem 0 1.5rem;
    border: 0;
    border-top: 1px solid var(--vl-line);
    background: transparent !important;
    transform: none;
  }
  .vl-service-page #que-incluye .vl-process > *::before,
  .vl-service-page #recorrido .vl-process > *::before {
    position: static;
    display: block;
    margin-bottom: .75rem;
    color: var(--vl-pine-soft);
  }
}

/* Portada: tres líneas y ritmo editorial del dossier, sin decoración vacía. */
.vl-home .vl-hero h1 span:last-child { background-image: none; animation: none; }
@media (min-width: 981px) {
  .vl-home .vl-hero {
    padding-block: clamp(3.5rem, 5vw, 4.5rem) clamp(2.75rem, 4vw, 3.5rem);
  }
  .vl-home .vl-hero > h1 {
    max-width: none;
    font-size: clamp(4.4rem, 5.65vw, 5.9rem);
    line-height: .96;
    letter-spacing: -.055em;
  }
  .vl-home .vl-hero > h1 span:nth-child(1),
  .vl-home .vl-hero > h1 span:nth-child(2) { display: inline; }
  .vl-home .vl-hero > h1 span:nth-child(3),
  .vl-home .vl-hero > h1 span:nth-child(4) { display: block; width: fit-content; }
  .vl-home .vl-hero > p { margin-top: 1.55rem; }
  .vl-home .vl-hero > .vl-actions { margin-top: 1.5rem; }
  .vl-home > .vl-hero + .vl-section { padding-top: clamp(3.25rem, 4.5vw, 4rem); }
}

/* Hero visual: una transformación concreta explica la propuesta desde el primer vistazo. */
.vl-home .vl-hero {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  grid-template-rows: auto;
  align-items: center;
  gap: clamp(2.5rem, 4.5vw, 5rem);
  min-height: 0;
  padding-block: clamp(3.75rem, 5vw, 5.5rem) clamp(4rem, 5.4vw, 5.75rem);
}
.vl-home .vl-hero > .vl-hero__content,
.vl-home .vl-hero > .vl-hero__visual { grid-column: auto; grid-row: auto; min-width: 0; }
.vl-home .vl-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 1.65rem;
  color: var(--vl-pine);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.3;
  text-transform: uppercase;
}
.vl-home .vl-hero__eyebrow::before { content: ""; flex: 0 0 1.5rem; height: .35rem; background: var(--vl-lime); }
.vl-home .vl-hero__content h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(3.8rem, 5vw, 5.3rem);
  line-height: .94;
  letter-spacing: -.06em;
}
.vl-home .vl-hero__content h1 span { display: block; width: fit-content; white-space: nowrap; }
.vl-home .vl-hero__content .vl-hero__lead {
  max-width: 39ch;
  margin: 1.9rem 0 0;
  color: var(--vl-pine-soft);
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.55;
}
.vl-home .vl-hero__content .vl-actions { margin-top: 2rem; }
.vl-home .vl-hero > .vl-hero__visual {
  display: block;
  position: relative;
  margin: 0 .8rem .8rem 0;
  overflow: hidden;
  border: .5rem solid var(--vl-paper);
  border-radius: 0 8rem 0 0;
  box-shadow: .8rem .8rem 0 var(--vl-lime), 0 1.5rem 3rem rgba(23, 63, 53, .12);
}
.vl-home .vl-hero > .vl-hero__visual img { display: block; width: 100%; aspect-ratio: 1.13 / 1; object-fit: cover; object-position: center; }
.vl-home .vl-hero > .vl-hero__visual::before,
.vl-home .vl-hero > .vl-hero__visual::after { top: auto; bottom: 1rem; box-shadow: none; }

@media (max-width: 980px) {
  .vl-home .vl-hero { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 3.25rem 4rem; }
  .vl-home .vl-hero > .vl-hero__content,
  .vl-home .vl-hero > .vl-hero__visual { grid-column: 1; }
  .vl-home .vl-hero__content h1 { font-size: clamp(3.3rem, 7vw, 4.5rem); }
  .vl-home .vl-hero > .vl-hero__visual img { aspect-ratio: 1.45 / 1; }
}
@media (max-width: 600px) {
  .vl-home .vl-hero { gap: 2rem; padding-block: 2.4rem 3.25rem; }
  .vl-home .vl-hero__eyebrow { margin-bottom: 1.25rem; font-size: .65rem; letter-spacing: .1em; }
  .vl-home .vl-hero__content h1 { font-size: clamp(2.55rem, 11.3vw, 3.1rem); line-height: .97; }
  .vl-home .vl-hero__content .vl-hero__lead { margin-top: 1.35rem; font-size: 1.03rem; }
  .vl-home .vl-hero__content .vl-actions { margin-top: 1.5rem; }
  .vl-home .vl-hero > .vl-hero__visual { margin-right: .5rem; margin-bottom: .5rem; border-width: .3rem; border-radius: 0 5rem 0 0; box-shadow: .5rem .5rem 0 var(--vl-lime); }
  .vl-home .vl-hero > .vl-hero__visual img { aspect-ratio: 1.24 / 1; }
  .vl-home .vl-hero > .vl-hero__visual::before,
  .vl-home .vl-hero > .vl-hero__visual::after { bottom: .55rem; padding: .35rem .45rem; font-size: .6rem; }
  .vl-home .vl-hero > .vl-hero__visual::before { left: .55rem; }
  .vl-home .vl-hero > .vl-hero__visual::after { right: .55rem; }
}

/* Capítulo editorial: fotografía de espacio y detalle de puesta a punto. */
.vl-home .vl-home-chapter {
  padding-block: clamp(4.5rem, 7vw, 7rem);
  background: var(--vl-paper);
}
.vl-home-chapter__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  align-items: end;
  gap: 2rem;
  margin-bottom: clamp(2rem, 3.5vw, 3.5rem);
}
.vl-home-chapter__intro .vl-section-heading {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(2.5rem, 4vw, 4rem);
}
.vl-home-chapter__intro .vl-lead { max-width: 31ch; margin: 0 0 .2rem; }
.vl-home-chapter__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(0, .68fr);
  align-items: stretch;
  gap: clamp(1.25rem, 2vw, 2rem);
}
.vl-home-chapter__space,
.vl-home-chapter__refresh { min-width: 0; margin: 0; }
.vl-home-chapter__space-image,
.vl-home-chapter__detail-image { margin: 0; overflow: hidden; }
.vl-home-chapter__space-image { border-radius: 0 9rem 0 0; }
.vl-home-chapter__space-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.43 / 1;
  object-fit: cover;
  object-position: center;
}
.vl-home-chapter__caption {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  padding: 1.8rem 0 0;
}
.vl-home-chapter__caption figure,
.vl-home-chapter__refresh-copy figure { width: 3.5rem; height: 3.5rem; margin: 0; }
.vl-home-chapter__caption img,
.vl-home-chapter__refresh-copy img { display: block; width: 100%; height: 100%; object-fit: contain; }
.vl-home-chapter__caption h3,
.vl-home-chapter__refresh-copy h3 { margin: 0; font-size: clamp(1.55rem, 2vw, 2rem); line-height: 1.1; }
.vl-home-chapter__caption p:not(.vl-text-link),
.vl-home-chapter__refresh-copy p:not(.vl-text-link) { max-width: 41ch; margin: .65rem 0 0; color: var(--vl-pine-soft); line-height: 1.55; }
.vl-home-chapter__caption .vl-text-link,
.vl-home-chapter__refresh-copy .vl-text-link { margin: 1.15rem 0 0; }
.vl-home-chapter .vl-text-link a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--vl-pine); }
.vl-home-chapter__refresh { display: flex; flex-direction: column; }
.vl-home-chapter__refresh-copy {
  flex: 0 0 auto;
  min-height: 22rem;
  padding: clamp(1.75rem, 3vw, 3rem);
  border-radius: 7rem 7rem 0 0;
  background: var(--vl-lime);
}
.vl-home-chapter__refresh-copy figure { margin-bottom: 1.6rem; }
.vl-home-chapter__refresh-copy p:not(.vl-text-link) { color: var(--vl-pine); }
.vl-home-chapter__refresh-copy .vl-text-link a { text-decoration-color: var(--vl-pine); }
.vl-home-chapter__detail-image { display: flex; flex: 1 1 auto; min-height: 14rem; }
.vl-home-chapter__detail-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 980px) {
  .vl-home-chapter__intro { grid-template-columns: 1fr; gap: 1rem; }
  .vl-home-chapter__intro .vl-lead { max-width: 56ch; }
  .vl-home-chapter__layout { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
}
@media (max-width: 700px) {
  .vl-home .vl-home-chapter { padding-block: 4rem; }
  .vl-home-chapter__layout { grid-template-columns: 1fr; gap: 2.75rem; }
  .vl-home-chapter__intro .vl-section-heading { font-size: clamp(2.3rem, 8vw, 3.2rem); }
  .vl-home-chapter__space-image { border-radius: 0 6rem 0 0; }
  .vl-home-chapter__space-image img { aspect-ratio: 1.16 / 1; }
  .vl-home-chapter__caption { grid-template-columns: 3.5rem minmax(0, 1fr); gap: 1rem; padding-top: 1.45rem; }
  .vl-home-chapter__refresh { display: grid; grid-template-columns: 1fr; }
  .vl-home-chapter__refresh-copy { min-height: 0; padding: 2rem 1.7rem; border-radius: 5rem 5rem 0 0; }
  .vl-home-chapter__detail-image { min-height: 0; }
  .vl-home-chapter__detail-image img { height: auto; aspect-ratio: 1.35 / 1; }
}

/* The same manual comparison works in the homepage hero and on every service page. */
.vl-home .vl-hero > .vl-hero__visual.vl-comparison-ready,
.vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready {
  --vl-compare-pos: 50%;
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--vl-pine);
}
.vl-home .vl-hero > .vl-hero__visual.vl-comparison-ready { aspect-ratio: 1.13 / 1; }
.vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready { aspect-ratio: 1.35 / 1; }
.vl-home .vl-hero > .vl-hero__visual.vl-comparison-ready > img,
.vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready > img {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  clip-path: inset(50%);
}
.vl-comparison-ready .vl-comparison-viewport,
.vl-comparison-ready .vl-comparison-before,
.vl-comparison-ready .vl-comparison-after { position: absolute; inset: 0; }
.vl-comparison-ready .vl-comparison-before,
.vl-comparison-ready .vl-comparison-after { background-size: 200% auto; background-repeat: no-repeat; }
.vl-comparison-ready .vl-comparison-before { background-position: left center; }
.vl-comparison-ready .vl-comparison-after { background-position: right center; clip-path: inset(0 0 0 var(--vl-compare-pos)); }
.vl-comparison-ready .vl-comparison-control {
  position: absolute;
  z-index: 5;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
  touch-action: none;
}
.vl-comparison-ready .vl-comparison-handle { position: absolute; z-index: 3; top: 0; bottom: 0; left: var(--vl-compare-pos); width: 2px; background: var(--vl-ivory); pointer-events: none; }
.vl-comparison-ready .vl-comparison-knob { position: absolute; top: 50%; left: 50%; width: 3.25rem; height: 3.25rem; transform: translate(-50%, -50%); border: 2px solid var(--vl-pine); border-radius: 50%; background: var(--vl-lime); box-shadow: 0 4px 14px rgba(23, 63, 53, .2); }
.vl-comparison-ready .vl-comparison-knob::before,
.vl-comparison-ready .vl-comparison-knob::after { content: ""; position: absolute; top: 1.19rem; width: .55rem; height: .55rem; border-top: 2px solid var(--vl-pine); border-right: 2px solid var(--vl-pine); }
.vl-comparison-ready .vl-comparison-knob::before { left: .85rem; transform: rotate(-135deg); }
.vl-comparison-ready .vl-comparison-knob::after { right: .85rem; transform: rotate(45deg); }
.vl-comparison-ready:focus-within .vl-comparison-knob { outline: 3px solid var(--vl-ivory); outline-offset: 3px; }
.vl-comparison-ready .vl-comparison-hint { position: absolute; z-index: 2; bottom: .8rem; left: 50%; transform: translateX(-50%); padding: .4rem .7rem; background: var(--vl-ivory); color: var(--vl-pine); font-size: .78rem; font-weight: 700; white-space: nowrap; pointer-events: none; }
.vl-home .vl-hero__visual.vl-comparison-ready::before,
.vl-home .vl-hero__visual.vl-comparison-ready::after,
.vl-service-page .vl-simulation.vl-comparison-ready::before,
.vl-service-page .vl-simulation.vl-comparison-ready::after { z-index: 6; }
@media (max-width: 980px) {
  .vl-home .vl-hero > .vl-hero__visual.vl-comparison-ready { aspect-ratio: 1.45 / 1; }
}
@media (max-width: 700px) {
  .vl-service-page .vl-transform-window--service .vl-simulation.vl-comparison-ready { aspect-ratio: 4 / 5; }
}
@media (max-width: 600px) {
  .vl-home .vl-hero > .vl-hero__visual.vl-comparison-ready { aspect-ratio: 1.24 / 1; }
}

/* Menú móvil: identidad y enlaces legibles en toda la pantalla. */
@media (max-width: 600px) {
  .vl-header .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--vl-pine) !important;
    color: var(--vl-ivory) !important;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    box-sizing: border-box;
    min-height: 100dvh;
    padding: 2rem 1.5rem max(2rem, env(safe-area-inset-bottom));
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    top: 1.5rem;
    right: 1.5rem;
    color: var(--vl-ivory);
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
    fill: currentColor;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    min-height: calc(100dvh - 4rem);
    padding: 3rem 0 0 !important;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
    content: "";
    display: block;
    width: min(100%, 15rem);
    height: 3.5rem;
    background: url('/wp-content/themes/vivienda-lista/assets/images/logo-vivienda-lista-inverse.svg') left center / contain no-repeat;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    box-sizing: border-box;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
    gap: 0 !important;
    margin: 2rem 0 0;
    padding: 0;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
    border-top: 1px solid rgba(255, 255, 255, .22);
    align-items: flex-start !important;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: block;
    min-height: 2.75rem;
    padding: .8rem 0;
    color: var(--vl-ivory) !important;
    font-size: 1.35rem;
    text-align: left;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.vl-button {
    margin-top: 1.5rem;
    border-top: 0;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.vl-button > .wp-block-navigation-item__content {
    display: inline-flex;
    align-items: center;
    width: auto;
    padding: .85rem 1.25rem;
    background: var(--vl-lime);
    color: var(--vl-pine) !important;
    font-size: 1rem;
  }
  .vl-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::after {
    content: "Tu vivienda, lista para lo que viene.";
    display: block;
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .22);
    color: var(--vl-ivory);
    font-size: .9rem;
  }
}

/* Keep the simulation notice clear of comparison controls at every width. */
.vl-simulation.vl-comparison-ready figcaption { top: 3.35rem; bottom: auto; max-width: calc(100% - 1.5rem); }

/* Service descriptors retain the approved heading and composition. */
.vl-hero--service p.vl-service-location { font-size: .95rem; font-weight: 650; line-height: 1.5; color: var(--vl-pine); margin-block: .6rem 1rem; }


/* Detail pass: preserve approved composition, improve access and small screens. */
:root { --vl-focus: var(--vl-pine); }
.vl-footer, .vl-section--pine,
.vl-header .wp-block-navigation__responsive-container.is-menu-open { --vl-focus: var(--vl-lime); }
:where(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid var(--vl-focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--vl-ivory);
}
.vl-footer :focus-visible, .vl-section--pine :focus-visible,
.vl-header .wp-block-navigation__responsive-container.is-menu-open :focus-visible {
  box-shadow: 0 0 0 6px var(--vl-pine);
}
.vl-contact-form :is(input, select, textarea, button):focus-visible {
  outline: 3px solid var(--vl-pine);
  outline-offset: 3px;
}
.vl-comparison-ready:focus-within .vl-comparison-knob {
  outline: 3px solid var(--vl-pine);
  outline-offset: 3px;
  box-shadow: 0 0 0 7px var(--vl-ivory);
}
.vl-header .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  box-sizing: border-box;
}
.vl-faq summary { min-height: 2.75rem; box-sizing: border-box; }
.vl-contact-form :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) {
  font-size: max(1rem, 16px);
  caret-color: var(--vl-pine);
}
.vl-contact-form [aria-invalid="true"] { border-color: #963d2f; }
.vl-contact-form button:disabled { cursor: progress; opacity: .75; transform: none; }
.vl-contact-form__status:not(:empty) {
  margin-top: .5rem;
  padding: .85rem 1rem;
  background: var(--vl-lime);
  color: var(--vl-pine);
  line-height: 1.6;
}
.vl-contact-form__status--error:not(:empty) { background: #f8e9e2; color: #713127; }
.vl-contact-page .vl-hero--service > *, .vl-contact-form-wrap { min-width: 0; }
.vl-footer a[href^="mailto:"], .vl-contact-form__direct a { overflow-wrap: anywhere; }
@media (max-width: 980px) {
  .vl-footer a { display: inline-flex; align-items: center; min-height: 2.75rem; max-width: 100%; }
  .vl-header .wp-block-navigation__responsive-container-close { min-width: 2.75rem; min-height: 2.75rem; }
}
@media (max-width: 600px) {
  .vl-contact-page .vl-hero--service { grid-template-columns: minmax(0, 1fr); }
  .vl-comparison-ready .vl-comparison-hint { font-size: .72rem; padding: .3rem .45rem; bottom: 3.25rem; }
}
@media (max-width: 360px) {
  .vl-contact-page h1 { font-size: clamp(2.2rem, 11vw, 2.7rem); max-width: 100%; }
}

/* Preserve the parent section marker on its four service detail pages. */
.vl-header .wp-block-navigation-item__content[aria-current="location"] {
  text-decoration: underline;
  text-decoration-color: var(--vl-pine);
  text-decoration-thickness: 2px;
  text-underline-offset: .9em;
}

/* Visual finish: preserve the approved composition and its existing geometry. */
.vl-hero .vl-transform-window { box-shadow: 0 18px 42px -24px rgba(23,63,53,.22); }
.vl-simulation.vl-comparison-ready::before,
.vl-simulation.vl-comparison-ready::after { letter-spacing: .07em; }
.vl-tactile { touch-action: manipulation; }
.vl-button .wp-block-button__link.vl-tactile {
  transition-property: background-color, color, box-shadow;
  box-shadow: 0 4px 12px -8px rgba(23,63,53,.32);
}
.vl-button .wp-block-button__link.vl-tactile:hover { transform: none; }
.vl-service-card.vl-tactile { transition-property: border-color, background-color, box-shadow; }
.vl-service-card.vl-tactile:hover { transform: none; }
.vl-service-card.vl-tactile:is(:hover,:focus-within) {
  box-shadow: 0 12px 26px -20px rgba(23,63,53,.26);
  border-color: var(--vl-pine);
}
.vl-service-card.vl-tactile figure::before,
.vl-service-card.vl-tactile figure img { transition: none; }
.vl-service-card.vl-tactile:is(:hover,:focus-within) figure::before,
.vl-service-card.vl-tactile:is(:hover,:focus-within) figure img { transform: none; }
.vl-faq details[data-vl-visual-kind="faq"] { overflow: hidden; }
.vl-faq details[open] { border-color: var(--vl-pine); }
.vl-faq details[open] summary { color: var(--vl-pine); }
.vl-faq details[data-vl-visual-kind="faq"]:focus-within { overflow: visible; }
@media (prefers-reduced-motion: reduce) {
  .vl-visual-target, .vl-tactile { animation: none !important; transition: none !important; }
}


/* Service navigation extends the approved identity using native WordPress controls. */
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container { background:var(--vl-ivory); color:var(--vl-pine); width:min(38rem, calc(100vw - 3rem)); left:auto; right:0; padding:.8rem; gap:.15rem .6rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:calc(100dvh - 7rem); overflow:auto; border:1px solid var(--vl-line); box-shadow:0 16px 38px -20px rgba(23,63,53,.28); }
.vl-header .wp-block-navigation .vl-nav-services > button[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { width:min(38rem, calc(100vw - 3rem)); }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container > .wp-block-navigation-item { min-width:0; width:auto; }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width:100%; min-height:2.75rem; padding:.55rem .65rem; font-size:.95rem; line-height:1.35; white-space:normal; }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover,:focus-visible) { background:#edf1df; text-decoration:none; }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container > :is(.vl-nav-overview,.vl-nav-heading) { grid-column:1 / -1; }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container > .vl-nav-heading { border-top:1px solid var(--vl-line); margin-top:.35rem; padding-top:.35rem; }
.vl-header .vl-nav-services > .wp-block-navigation__submenu-container > :is(.vl-nav-overview,.vl-nav-heading) a { font-size:.85rem; font-weight:750; }
.vl-header .vl-nav-services-current > button { text-decoration:underline; text-decoration-color:var(--vl-pine); text-underline-offset:.45em; }
.vl-punctual-body { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.vl-punctual-body > *, .vl-service-page--punctual .vl-hero--service > * { min-width:0; }
.vl-punctual-body figure img { width:100%; height:auto; display:block; }
.vl-punctual-body p { max-width:65ch; }
.vl-service-page--punctual .vl-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
@media (max-width:767px) { .vl-punctual-body, .vl-service-page--punctual .vl-process { grid-template-columns:minmax(0,1fr); } }
@media (max-width:600px) {
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services { display:flex; flex-direction:column; align-items:stretch!important; }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services > .wp-block-navigation__submenu-container { position:static; display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); visibility:visible; opacity:1; width:100%; height:auto; max-height:none; padding:.35rem 0 .75rem!important; margin:0; border:0; box-shadow:none; background:transparent; color:var(--vl-ivory); gap:.15rem .65rem; overflow:visible; }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services > .wp-block-navigation__submenu-container > .wp-block-navigation-item { width:auto; border:0; }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services > .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size:.92rem; line-height:1.4; padding:.45rem .15rem; }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services > .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover,:focus-visible) { background:#254f43; }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services > .wp-block-navigation__submenu-container > .vl-nav-heading { border-top:1px solid rgba(255,255,255,.22); }
 .vl-header .wp-block-navigation__responsive-container.is-menu-open .vl-nav-services-current > button { text-decoration-color:var(--vl-lime); }
}
