/* ============================================================
   Web de la agencia (creador de webs del CRM)
   ============================================================
   Todo color y tipografía sale de las variables del tema (lib/web_temas.js
   cssTema): --fondo, --superficie, --texto, --suave, --linea, --acento,
   --sobre-acento, --acento-texto, --acento2, --oscuro, --sobre-oscuro,
   --f-titulo, --f-texto, --radio. Cada plantilla tiene su carácter en
   [data-plantilla="sereno" | "costa" | "noche"]. Bloques: lib/web_bloques.js.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.w { margin: 0; background: var(--fondo); color: var(--texto); font-family: var(--f-texto); font-size: 17px; line-height: 1.6; font-weight: 400;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; overflow-x: hidden; }
.w img { display: block; width: 100%; height: 100%; object-fit: cover; }
:where(.w) a { color: inherit; }   /* sin especificidad: los enlaces con color propio (paneles, WhatsApp) mandan */
.w h1, .w h2, .w h3 { margin: 0; font-weight: 400; }
.w p { margin: 0 0 1em; }
.w button { font: inherit; color: inherit; }
.w ::selection { background: var(--acento); color: var(--sobre-acento); }
.w :focus-visible { outline: 2px solid var(--acento); outline-offset: 3px; }

/* ── Estructura ── */
.w-cont { width: min(1320px, 100% - 2 * clamp(20px, 4.5vw, 64px)); margin-inline: auto; }
.w-estrecho { max-width: 880px; }
.w-centro { text-align: center; }
.w-b { padding-block: clamp(72px, 9vw, 140px); position: relative; }
.w-fondo--superficie { background: var(--superficie); }
.w-fondo--oscuro { background: var(--oscuro); color: var(--sobre-oscuro); }
.w-fondo--oscuro .w-antetitulo, .w-fondo--oscuro .w-texto p { color: color-mix(in srgb, var(--sobre-oscuro) 78%, transparent); }
.w-fondo--superficie + .w-fondo--superficie, .w-fondo--normal + .w-fondo--normal:not(.w-b--portada) { padding-top: clamp(24px, 3vw, 48px); }

.w-h2 { font-family: var(--f-titulo); font-size: clamp(34px, 4.2vw, 58px); line-height: 1.04; letter-spacing: -0.01em; margin-bottom: clamp(28px, 3.4vw, 56px); text-wrap: balance; }
.w-antetitulo { display: block; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--suave); margin-bottom: 14px; }
.w-texto { color: var(--suave); max-width: 64ch; }
.w-centro .w-texto { margin-inline: auto; }
.w-texto p:last-child { margin-bottom: 0; }

.w-boton { display: inline-flex; align-items: center; gap: 10px; padding: 15px 28px; background: var(--acento); color: var(--sobre-acento) !important; text-decoration: none;
  font-size: 13px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; border: 1px solid var(--acento); border-radius: calc(var(--radio) * 3); cursor: pointer;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), background .3s, color .3s; }
.w-boton:hover { transform: translateY(-2px); }
.w-boton--linea { background: transparent; color: var(--texto) !important; border-color: var(--linea); }
.w-boton--linea:hover { border-color: var(--texto); }
.w-enlace { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; padding-bottom: 4px;
  background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; transition: background-size .45s cubic-bezier(.2,.7,.2,1); }
.w-enlace::after { content: "→"; transition: transform .35s; }
.w-enlace:hover { background-size: 0 1px; background-position: 100% 100%; }
.w-enlace:hover::after { transform: translateX(4px); }
.w-sin-foto { width: 100%; height: 100%; min-height: 200px; background: linear-gradient(135deg, var(--acento2), var(--superficie)); }
.w-etq { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 6px 11px; background: var(--fondo); color: var(--texto); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; border-radius: calc(var(--radio) * 2); }
.w-aviso-editor { margin: 12px auto; max-width: 640px; padding: 14px 18px; border: 1px dashed var(--acento); color: var(--suave); font-size: 14px; text-align: center; border-radius: 8px; }
.w-oculto { opacity: .35; outline: 2px dashed var(--acento); outline-offset: -8px; }
.w-vacio { color: var(--suave); padding: 40px 0; }

/* Aparecer al hacer scroll (solo con JS; sin JS se ve todo) */
.w-js [data-w-aparece] { opacity: 0; transform: translateY(28px); transition: opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1); }
.w-js [data-w-aparece].visible { opacity: 1; transform: none; }

/* ── Cabecera ── */
.w-cab { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px clamp(20px, 4.5vw, 64px);
  background: color-mix(in srgb, var(--fondo) 92%, transparent); backdrop-filter: blur(10px); transition: background .4s, color .4s, padding .4s, transform .45s; }
.w-cab.escondida { transform: translateY(-100%); }
.w-logo { display: block; height: 40px; width: auto; max-width: 200px; object-fit: contain; }
.w-logo--texto { height: auto; font-family: var(--f-titulo); font-size: 20px; letter-spacing: 0.04em; white-space: nowrap; }
.w-cab__logo { text-decoration: none; display: block; }
.w-cab__nav { display: flex; gap: clamp(18px, 2.4vw, 36px); margin-left: auto; }
.w-cab__nav a { font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; padding-block: 6px; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s; }
.w-cab__nav a:hover, .w-cab__nav a[aria-current] { background-size: 100% 1px; }
.w-cab__der { display: flex; align-items: center; gap: 14px; }
.w-cab__boton { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; padding: 10px 18px; border: 1px solid currentColor; border-radius: calc(var(--radio) * 3); transition: background .3s, color .3s; }
.w-cab__boton:hover { background: var(--texto); color: var(--fondo); }
.w-cab__menu { display: none; align-items: center; gap: 10px; background: none; border: 0; cursor: pointer; padding: 6px 0; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
.w-cab__hamb { display: grid; gap: 6px; width: 26px; }
.w-cab__hamb i { display: block; height: 1.5px; background: currentColor; transition: transform .4s; }
.menu-abierto .w-cab__hamb i:first-child { transform: translateY(3.75px) rotate(45deg); }
.menu-abierto .w-cab__hamb i:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* Menú a pantalla completa */
.w-menu { position: fixed; inset: 0; z-index: 45; background: var(--oscuro); color: var(--sobre-oscuro); display: flex; }
.w-menu[hidden] { display: none; }
.w-menu__dentro { width: min(1320px, 100% - 2 * clamp(20px, 4.5vw, 64px)); margin: auto; padding-block: 110px 48px; display: grid; gap: 48px; }
.w-menu__nav { display: grid; gap: 4px; }
.w-menu__nav a { font-family: var(--f-titulo); font-size: clamp(40px, 7vw, 92px); line-height: 1.05; letter-spacing: -0.02em; text-decoration: none; opacity: 0; transform: translateY(24px); transition: opacity .6s, transform .6s, color .3s; }
.w-menu.abierto .w-menu__nav a { opacity: 1; transform: none; }
.w-menu__nav a:nth-child(2) { transition-delay: .05s; } .w-menu__nav a:nth-child(3) { transition-delay: .1s; } .w-menu__nav a:nth-child(4) { transition-delay: .15s; }
.w-menu__nav a:nth-child(5) { transition-delay: .2s; } .w-menu__nav a:nth-child(6) { transition-delay: .25s; } .w-menu__nav a:nth-child(7) { transition-delay: .3s; }
.w-menu__nav a:hover { color: var(--acento); }
.w-menu__pie { display: grid; gap: 6px; font-size: 15px; }
.w-menu__pie a { text-decoration: none; }
.w-menu__tel { font-family: var(--f-titulo); font-size: clamp(28px, 3.4vw, 44px); }

/* ── Pantalla de carga ── */
.w-pre { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; }
.w-pre--cortina { background: linear-gradient(165deg, var(--acento2) 0%, var(--acento) 100%); color: var(--sobre-acento); transition: transform 1.1s cubic-bezier(.76,0,.24,1); }
.w-pre__nombre { font-family: var(--f-titulo); font-size: clamp(22px, 3vw, 36px); letter-spacing: 0.2em; text-transform: uppercase; opacity: 0; animation: w-sube 1s .15s cubic-bezier(.2,.7,.2,1) forwards; }
.w-pre--cortina.fuera { transform: translateY(-100%); }
.w-pre--logo { background: #050506; color: #f3f1ec; transition: opacity .9s ease, visibility .9s; }
.w-pre--logo .w-logo { height: auto; max-height: 90px; max-width: 220px; }
.w-pre--logo .w-logo--texto { font-size: 34px; letter-spacing: 0.3em; text-transform: uppercase; }
.w-pre__cuenta { position: absolute; bottom: 64px; left: 50%; transform: translateX(-50%); font-family: var(--f-titulo); font-size: 26px; letter-spacing: 0.04em; }
.w-pre__barra { position: absolute; bottom: 52px; left: 50%; transform: translateX(-50%); width: 220px; height: 1px; background: rgba(255,255,255,.18); }
.w-pre__barra span { display: block; height: 100%; width: var(--pct, 0%); background: #f3f1ec; transition: width .2s linear; }
.w-pre--logo.fuera { opacity: 0; visibility: hidden; }
@keyframes w-sube { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ── Portada ── */
.w-b--portada { padding: 0; }
.w-portada__fondo, .w-llamada__fondo { position: absolute; inset: 0; overflow: hidden; }
.w-portada__velo { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.05) 40%, rgba(0,0,0,.55) 100%); pointer-events: none; }
.w-portada__velo--suave { background: linear-gradient(180deg, rgba(0,0,0,.12), transparent 30%, rgba(0,0,0,.35)); }
/* Titular arriba + foto redondeada */
.w-v--redondeada { padding-top: clamp(40px, 6vw, 90px); }
.w-portada__arriba { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 40px; align-items: end; margin-bottom: clamp(32px, 4vw, 56px); }
.w-v--redondeada .w-portada__t { font-family: var(--f-texto); font-weight: 500; font-size: clamp(34px, 4.6vw, 66px); line-height: 1.02; letter-spacing: -0.015em; text-transform: uppercase; }
.w-linea { display: block; }
.w-js .w-v--redondeada .w-linea { opacity: 0; transform: translateY(40px); animation: w-sube 1.1s calc(.2s + var(--i) * .12s) cubic-bezier(.2,.7,.2,1) forwards; }
.w-portada__lado { color: var(--suave); font-size: 16px; }
.w-portada__lado p { margin-bottom: 18px; }
.w-portada__marco { position: relative; margin-inline: clamp(12px, 2vw, 28px); height: min(82vh, 860px); border-radius: calc(var(--radio) * 1.6); overflow: hidden;
  transform: scale(var(--e, .96)); transform-origin: center top; transition: transform .1s linear; }
/* Foto a pantalla completa */
.w-v--completa, .w-v--logo { min-height: 100svh; display: flex; align-items: flex-end; color: #fff; overflow: hidden; }
.w-v--completa .w-portada__texto { position: relative; z-index: 2; padding-bottom: clamp(56px, 9vh, 110px); }
.w-v--completa .w-antetitulo { color: rgba(255,255,255,.85); }
.w-v--completa .w-portada__t { font-family: var(--f-titulo); font-size: clamp(34px, 4.4vw, 64px); line-height: 1.1; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 300; max-width: 16ch; margin-bottom: 26px; }
.w-v--completa .w-portada__t span { display: inline-block; }
.w-js .w-v--completa .w-portada__t span { opacity: 0; transform: translateY(26px); animation: w-sube 1s calc(.35s + var(--i) * .14s) cubic-bezier(.2,.7,.2,1) forwards; }
.w-portada__p { max-width: 44ch; color: rgba(255,255,255,.85); }
.w-v--completa .w-boton { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.6); color: #fff !important; backdrop-filter: blur(6px); }
.w-v--completa .w-boton:hover { background: #fff; color: #111 !important; }
.w-portada__baja { position: absolute; z-index: 2; bottom: 28px; right: clamp(20px, 4.5vw, 64px); width: 1px; height: 64px; background: rgba(255,255,255,.35); overflow: hidden; }
.w-portada__baja::after { content: ""; position: absolute; left: 0; top: -40%; width: 100%; height: 40%; background: #fff; animation: w-baja 2.2s infinite cubic-bezier(.6,0,.4,1); }
@keyframes w-baja { to { top: 100%; } }
/* Logo en el centro */
.w-v--logo { align-items: center; justify-content: center; text-align: center; }
.w-v--logo .w-portada__velo { background: radial-gradient(ellipse at center, rgba(0,0,0,.5) 0%, rgba(0,0,0,.3) 55%, rgba(0,0,0,.45) 100%); }
.w-v--logo .w-portada__fondo img { transform: scale(1.14); transition: transform 2.6s cubic-bezier(.2,.7,.2,1); }
.w-v--logo.listo .w-portada__fondo img, html:not(.w-js) .w-v--logo .w-portada__fondo img { transform: scale(1); }
.w-portada__centro { position: relative; z-index: 2; display: grid; justify-items: center; gap: 18px; padding: 120px 20px; }
.w-v--logo .w-portada__t { font-family: var(--f-titulo); font-size: clamp(44px, 7.4vw, 118px); line-height: .95; letter-spacing: -0.035em; text-transform: uppercase; margin-bottom: 18px; }
.w-js .w-v--logo .w-portada__t { opacity: 0; filter: blur(16px); letter-spacing: 0.08em; transition: opacity 1.6s ease, filter 1.6s ease, letter-spacing 1.8s cubic-bezier(.2,.7,.2,1); }
.w-v--logo.listo .w-portada__t { opacity: 1; filter: blur(0); letter-spacing: -0.035em; }
.w-portada__logo { width: auto; height: auto; max-height: 96px; max-width: 240px; object-fit: contain; }
.w-portada__nombre { font-family: var(--f-titulo); font-size: 26px; letter-spacing: 0.32em; text-transform: uppercase; }
.w-v--logo .w-antetitulo { color: rgba(255,255,255,.8); margin: 0; }
.w-v--logo .w-boton { padding: 10px 18px; font-size: 11.5px; border-radius: calc(var(--radio) * 2); }
.w-portada__pie { position: absolute; z-index: 2; bottom: 22px; left: 0; right: 0; margin: 0; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,.7); }

/* ── Textos ── */
.w-intro__cols { columns: 2 340px; column-gap: clamp(32px, 5vw, 80px); color: var(--suave); max-width: 1100px; }
.w-intro__cols p { break-inside: avoid; }
.w-fotos { display: grid; gap: clamp(14px, 2vw, 28px); margin-top: clamp(40px, 5vw, 72px); }
.w-fotos--2 { grid-template-columns: 1.3fr 1fr; }
.w-fotos > * { aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; }
.w-fotos--2 > :last-child { aspect-ratio: auto; margin-top: clamp(40px, 8vw, 120px); }
.w-h2--apilado span { display: block; }
.w-manifiesto { font-family: var(--f-titulo); font-size: clamp(26px, 3.2vw, 46px); line-height: 1.22; letter-spacing: -0.01em; }
.w-manifiesto p { margin-bottom: .6em; }

/* Listas */
.w-lista--foto { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.w-lista__foto { aspect-ratio: 4 / 5; border-radius: var(--radio); overflow: hidden; position: sticky; top: 110px; }
.w-lista__intro { margin-bottom: 40px; }
.w-columnas { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: clamp(28px, 3.6vw, 56px); }
.w-columnas h3 { font-size: 21px; font-weight: 500; margin-bottom: 10px; letter-spacing: -0.005em; }
.w-columnas p { color: var(--suave); font-size: 16px; margin: 0; }
.w-filas { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea); }
.w-filas li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--linea); }
.w-filas__t { font-size: 19px; }
.w-filas__x { color: var(--suave); font-size: 16px; }
.w-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: clamp(28px, 3.6vw, 56px); }
.w-pasos li { border-top: 1px solid var(--linea); padding-top: 24px; }
.w-pasos__n { display: block; font-family: var(--f-titulo); font-size: 44px; line-height: 1; color: var(--acento-texto); margin-bottom: 22px; }
.w-pasos h3 { font-size: 21px; font-weight: 500; margin-bottom: 10px; }
.w-pasos p { color: var(--suave); font-size: 16px; margin: 0; }
.w-grandes { list-style: none; margin: 0; padding: 0; }
.w-grandes li { display: grid; grid-template-columns: 70px minmax(0, 1fr) minmax(0, 0.8fr); align-items: baseline; gap: 20px; padding: clamp(18px, 2.2vw, 30px) 0; border-bottom: 1px solid var(--linea); }
.w-grandes__n { font-size: 12px; letter-spacing: 0.14em; color: var(--suave); }
.w-grandes__t { font-family: var(--f-titulo); font-size: clamp(34px, 5vw, 76px); line-height: 1; letter-spacing: -0.03em; transition: color .3s, transform .5s cubic-bezier(.2,.7,.2,1); }
.w-grandes li:hover .w-grandes__t { color: var(--acento); transform: translateX(10px); }
.w-grandes__x { color: var(--suave); font-size: 15px; }

/* Frase gigante */
.w-b--eslogan { padding-block: clamp(48px, 7vw, 110px); overflow: hidden; }
.w-marquesina { overflow: hidden; }
.w-marquesina__pista { display: flex; width: max-content; animation: w-desliza 38s linear infinite; }
.w-marquesina--lenta .w-marquesina__pista { animation-duration: 60s; }
.w-marquesina span { font-family: var(--f-texto); font-weight: 500; font-size: clamp(64px, 11vw, 176px); line-height: 1; letter-spacing: -0.02em; text-transform: uppercase; white-space: nowrap; padding-right: .5em; }
@keyframes w-desliza { to { transform: translateX(-50%); } }

/* ── Pisos ── */
.w-pisos__intro { margin-bottom: 40px; }
.w-pisos__mas { margin-top: clamp(40px, 5vw, 64px); text-align: center; }
.w-tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: clamp(20px, 2.4vw, 36px); }
.w-piso { display: block; text-decoration: none; }
.w-piso__foto { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; background: var(--superficie); }
.w-piso__foto img, .w-piso-g__foto img, .w-proyecto__foto img, .w-panel img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.w-piso:hover img, .w-piso-g:hover img, .w-proyecto__foto:hover img, .w-panel:hover img { transform: scale(1.05); }
.w-piso__cuerpo { padding-top: 16px; }
.w-piso__precio { font-size: 20px; font-weight: 500; }
.w-piso__precio small, .w-piso-g__precio small, .w-proyecto__precio small, .w-ficha__precio small { font-size: .6em; color: var(--suave); margin-left: 2px; }
.w-piso__t { font-size: 16px; color: var(--suave); margin: 2px 0 8px; }
.w-piso__datos { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 14px; color: var(--suave); }
/* Rejilla grande */
.w-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(36px, 4vw, 64px) clamp(24px, 3vw, 48px); }
.w-piso-g { display: block; text-decoration: none; }
.w-piso-g__foto { position: relative; aspect-ratio: 1.41; overflow: hidden; border-radius: var(--radio); background: var(--superficie); margin-bottom: 22px; }
.w-piso-g__t { font-family: var(--f-titulo); font-size: clamp(19px, 1.7vw, 24px); letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.25; margin-bottom: 10px; }
.w-piso-g__precio { font-size: 22px; font-weight: 300; margin-bottom: 12px; }
.w-piso-g__datos { display: flex; flex-wrap: wrap; gap: 6px 26px; font-size: 15px; color: var(--suave); padding-top: 12px; border-top: 1px solid var(--linea); }
.w-piso-g__datos b { font-weight: 500; color: var(--texto); }
/* Uno debajo de otro */
.w-proyectos { display: grid; gap: clamp(56px, 7vw, 110px); }
.w-proyecto { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 72px); align-items: center; }
.w-proyecto--inv .w-proyecto__foto { order: 2; }
.w-proyecto__foto { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; background: var(--superficie); }
.w-proyecto__t { font-size: clamp(26px, 2.4vw, 34px); font-weight: 500; letter-spacing: -0.01em; line-height: 1.15; margin-bottom: 18px; }
.w-proyecto__t a { text-decoration: none; }
.w-proyecto__datos { list-style: none; margin: 0 0 18px; padding: 0; border-top: 1px solid var(--linea); }
.w-proyecto__datos li { padding: 10px 0; border-bottom: 1px solid var(--linea); color: var(--suave); font-size: 16px; }
.w-proyecto__precio { font-size: 22px; margin-bottom: 22px; }
/* Carrusel */
.w-carrusel { position: relative; }
.w-carrusel__pista { display: flex; gap: clamp(16px, 2vw, 32px); overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 20vw 8px; scrollbar-width: none; }
.w-carrusel__pista::-webkit-scrollbar { display: none; }
.w-carrusel__item { flex: 0 0 60vw; scroll-snap-align: center; text-decoration: none; transition: opacity .6s, transform .8s cubic-bezier(.2,.7,.2,1); opacity: .45; transform: scale(.9); }
.w-carrusel__item.activo { opacity: 1; transform: none; }
.w-carrusel__item img, .w-carrusel__item .w-sin-foto { aspect-ratio: 16 / 10; height: auto; border-radius: var(--radio); }
.w-carrusel__pie { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-top: 18px; }
.w-carrusel__t { font-family: var(--f-titulo); font-size: clamp(24px, 2.6vw, 38px); letter-spacing: -0.02em; }
.w-carrusel__d { font-size: 14px; color: var(--suave); letter-spacing: 0.04em; }
.w-carrusel__nav { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 28px; }
.w-carrusel__btn { background: none; border: 1px solid var(--linea); width: 46px; height: 46px; border-radius: 50%; cursor: pointer; transition: border-color .3s; }
.w-carrusel__btn:hover { border-color: var(--texto); }
.w-carrusel__puntos { display: flex; gap: 8px; }
.w-carrusel__puntos span { width: 6px; height: 6px; border-radius: 50%; background: var(--linea); transition: background .3s, transform .3s; }
.w-carrusel__puntos span.activo { background: var(--texto); transform: scale(1.3); }
/* Buscador */
.w-buscador--barra { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; background: var(--fondo); border: 1px solid var(--linea); border-radius: calc(var(--radio) * 1.2); }
.w-buscador--barra label { display: grid; gap: 2px; padding: 14px 20px; border-right: 1px solid var(--linea); }
.w-buscador--barra label span { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); }
.w-buscador select { appearance: none; background: transparent; border: 0; padding: 4px 0; font: inherit; font-size: 16px; color: var(--texto); cursor: pointer; width: 100%; }
.w-buscador--barra .w-boton { border-radius: 0 calc(var(--radio) * 1.2) calc(var(--radio) * 1.2) 0; padding-inline: 34px; }
.w-buscador--simple { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.w-buscador__op { display: flex; border: 1px solid var(--linea); border-radius: calc(var(--radio) * 3); overflow: hidden; }
.w-buscador__op input { position: absolute; opacity: 0; pointer-events: none; }
.w-buscador__op span { display: block; padding: 13px 20px; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.w-buscador__op input:checked + span { background: var(--texto); color: var(--fondo); }
.w-buscador--simple select { min-width: 220px; border: 1px solid var(--linea); border-radius: calc(var(--radio) * 3); padding: 13px 20px; }
.w-listado__barra { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 28px; color: var(--suave); font-size: 15px; }
.w-orden select { background: transparent; border: 1px solid var(--linea); padding: 9px 14px; font: inherit; font-size: 14px; color: var(--texto); border-radius: calc(var(--radio) * 2); }
.w-paginas { display: flex; justify-content: center; gap: 8px; margin-top: 56px; }
.w-paginas a { min-width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--linea); text-decoration: none; border-radius: calc(var(--radio) * 2); font-size: 14px; }
.w-paginas a[aria-current] { background: var(--texto); color: var(--fondo); border-color: var(--texto); }

/* Ficha del piso */
.w-b--ficha { padding-top: clamp(24px, 3vw, 48px); }
.w-ficha__mosaico { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 10px; height: min(70vh, 640px); margin-bottom: clamp(32px, 4vw, 56px); }
.w-ficha__mosaico a { display: block; overflow: hidden; border-radius: var(--radio); background: var(--superficie); }
.w-ficha__grande { grid-row: span 2; }
.w-ficha__portada > a { display: block; height: min(78vh, 760px); overflow: hidden; border-radius: var(--radio); }
.w-ficha__tira { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin: 10px 0 clamp(32px, 4vw, 56px); }
.w-ficha__tira a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: calc(var(--radio) * .6); }
.w-ficha { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(32px, 5vw, 80px); align-items: start; }
.w-ficha__t { font-family: var(--f-titulo); font-size: clamp(32px, 3.6vw, 52px); line-height: 1.08; letter-spacing: -0.01em; margin-bottom: 12px; }
.w-ficha__precio { font-size: 28px; font-weight: 500; margin-bottom: 28px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.w-ficha__precio .w-etq { position: static; background: var(--superficie); }
.w-ficha__datos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0; margin: 0 0 32px; border-top: 1px solid var(--linea); }
.w-ficha__datos div { padding: 14px 0; border-bottom: 1px solid var(--linea); }
.w-ficha__datos dt { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); }
.w-ficha__datos dd { margin: 2px 0 0; font-size: 19px; }
.w-ficha__desc { margin-bottom: 28px; max-width: 70ch; }
.w-ficha__extras { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.w-ficha__extras li { padding: 7px 14px; border: 1px solid var(--linea); border-radius: calc(var(--radio) * 3); font-size: 14px; }
.w-ficha__lado { position: sticky; top: 100px; }
.w-ficha__caja { background: var(--superficie); padding: 28px; border-radius: var(--radio); }
.w-ficha__caja-t { font-family: var(--f-titulo); font-size: 26px; margin-bottom: 6px; }
.w-ficha__caja > p { color: var(--suave); font-size: 15px; }
.w-ficha__similares { margin-top: clamp(64px, 8vw, 120px); }
.w-ficha__similares .w-h2 { font-size: clamp(28px, 3vw, 44px); letter-spacing: -0.01em; }

/* ── Equipo, cifras, opiniones ── */
.w-gente { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: clamp(24px, 3vw, 44px); }
.w-gente__foto { aspect-ratio: 4 / 5; border-radius: var(--radio); overflow: hidden; background: var(--superficie); margin-bottom: 18px; display: grid; place-items: center; font-family: var(--f-titulo); font-size: 64px; color: var(--suave); }
.w-gente__n { font-size: clamp(22px, 2vw, 28px); font-weight: 500; letter-spacing: -0.01em; }
.w-gente__c { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); margin-top: 6px; }
.w-gente__p p { color: var(--suave); font-size: 15px; margin-top: 10px; }
.w-gente-lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea); }
.w-gente-lista li { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 20px 0; border-bottom: 1px solid var(--linea); }
.w-gente-lista__foto { width: 72px; height: 72px; border-radius: 50%; filter: grayscale(1); transition: filter .5s; }
.w-gente-lista li:hover .w-gente-lista__foto { filter: none; }
.w-gente-lista__n { font-family: var(--f-titulo); font-size: clamp(28px, 3.4vw, 48px); letter-spacing: -0.02em; line-height: 1.05; }
.w-gente-lista__c { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); }
.w-cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: clamp(28px, 4vw, 64px); }
.w-cifras__i { border-top: 1px solid var(--linea); padding-top: 22px; }
.w-cifras__n { display: block; font-family: var(--f-titulo); font-size: clamp(56px, 7vw, 104px); line-height: 1; letter-spacing: -0.03em; margin-bottom: 14px; font-weight: 300; }
.w-cifras__t { color: var(--suave); font-size: 16px; }
.w-cita { position: relative; display: grid; }
.w-cita__i { grid-area: 1 / 1; margin: 0; opacity: 0; transition: opacity 1s; pointer-events: none; }
.w-cita__i.activo { opacity: 1; pointer-events: auto; }
.w-cita blockquote { margin: 0 0 24px; font-family: var(--f-titulo); font-size: clamp(24px, 2.8vw, 38px); line-height: 1.3; }
.w-cita figcaption, .w-opinion figcaption { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--suave); }
.w-opiniones { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: clamp(20px, 2.4vw, 36px); }
.w-opinion { margin: 0; padding: 32px; background: var(--fondo); border-radius: var(--radio); border: 1px solid var(--linea); }
.w-opinion blockquote { margin: 0 0 22px; font-size: 18px; line-height: 1.55; }
.w-opinion figcaption span { display: block; text-transform: none; letter-spacing: 0; margin-top: 4px; }

/* ── Paneles y galería ── */
.w-b--paneles { padding: 0; }
.w-paneles { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); }
.w-paneles--1 { --n: 1; } .w-paneles--3 { --n: 3; }
.w-panel { position: relative; display: block; height: min(88vh, 880px); overflow: hidden; color: #fff; text-decoration: none; }
.w-panel__velo { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.62) 100%); }
.w-panel__texto { position: absolute; left: clamp(24px, 4vw, 56px); right: clamp(24px, 4vw, 56px); bottom: clamp(28px, 5vw, 64px); display: grid; gap: 10px; }
.w-panel__e { font-family: var(--f-titulo); font-size: 13px; letter-spacing: 0.22em; text-transform: uppercase; }
.w-panel__x { max-width: 40ch; color: rgba(255,255,255,.88); font-size: 17px; }
.w-panel__t { font-family: var(--f-titulo); font-size: clamp(28px, 3vw, 42px); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 300; }
.w-galeria--mosaico { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); grid-auto-rows: 240px; gap: 12px; }
.w-galeria--mosaico a:nth-child(5n + 1) { grid-row: span 2; }
.w-galeria a { position: relative; display: block; overflow: hidden; border-radius: var(--radio); }
.w-galeria a span { position: absolute; left: 14px; bottom: 12px; color: #fff; font-size: 13px; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.w-galeria--carrusel { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: clamp(20px, 4.5vw, 64px); scrollbar-width: none; }
.w-galeria--carrusel a { flex: 0 0 min(560px, 78vw); aspect-ratio: 4 / 3; scroll-snap-align: start; }

/* ── Contacto, valorador, llamada, preguntas ── */
.w-contacto, .w-valorador { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 110px); align-items: start; }
.w-valorador--centrado { grid-template-columns: 1fr; max-width: 760px; margin-inline: auto; text-align: center; }
.w-valorador--centrado .w-form { text-align: left; }
.w-contacto__datos { display: grid; gap: 0; margin: 32px 0 0; border-top: 1px solid var(--linea); }
.w-contacto__datos div { padding: 16px 0; border-bottom: 1px solid var(--linea); display: grid; grid-template-columns: 120px 1fr; gap: 12px; }
.w-contacto__datos dt { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); padding-top: 4px; }
.w-contacto__datos dd { margin: 0; }
.w-contacto__datos a { text-decoration: none; }
.w-contacto__datos--fila { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 36px; border: 0; margin: 12px 0 44px; }
.w-contacto__datos--fila div { border: 0; display: block; padding: 0; }
.w-contacto__grande { display: inline-block; font-family: var(--f-titulo); font-size: clamp(38px, 6vw, 88px); letter-spacing: -0.02em; line-height: 1; text-decoration: none; margin: 18px 0 8px; }
.w-v--centrado .w-form { max-width: 620px; margin-inline: auto; text-align: left; }
.w-llamada__cuerpo { position: relative; z-index: 2; max-width: 820px; }
.w-llamada__cuerpo p { color: var(--suave); margin: -12px auto 32px; max-width: 52ch; }
.w-v--foto { color: #fff; min-height: 72vh; display: grid; align-items: center; overflow: hidden; }
.w-v--foto .w-llamada__cuerpo p { color: rgba(255,255,255,.85); }
.w-faq details { border-bottom: 1px solid var(--linea); }
.w-faq details:first-child { border-top: 1px solid var(--linea); }
.w-faq summary { list-style: none; cursor: pointer; padding: 22px 40px 22px 0; font-size: 19px; position: relative; }
.w-faq summary::-webkit-details-marker { display: none; }
.w-faq summary::after { content: "+"; position: absolute; right: 4px; top: 16px; font-size: 26px; font-weight: 300; transition: transform .3s; }
.w-faq details[open] summary::after { transform: rotate(45deg); }
.w-faq .w-texto { padding-bottom: 22px; }
.w-legal__nav { display: flex; gap: 20px; margin-bottom: 36px; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; }
.w-legal__nav a { text-decoration: none; color: var(--suave); }
.w-legal__nav a[aria-current] { color: var(--texto); border-bottom: 1px solid currentColor; }
.w-b--legal .w-texto { max-width: none; white-space: normal; }

/* Formularios */
.w-form { display: grid; gap: 14px; }
.w-form__dos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.w-form__tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.w-campo { display: grid; gap: 6px; position: relative; }
.w-campo span { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); }
.w-campo input, .w-campo select, .w-campo textarea { width: 100%; font: inherit; font-size: 16px; color: var(--texto); background: transparent; border: 0; border-bottom: 1px solid var(--linea); padding: 10px 0; border-radius: 0; transition: border-color .3s; }
.w-campo select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 12px) 55%, calc(100% - 7px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }
.w-campo option { color: #111; }
.w-campo input:focus, .w-campo select:focus, .w-campo textarea:focus { outline: none; border-color: var(--texto); }
.w-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--suave); }
.w-check input { margin-top: 4px; accent-color: var(--acento); }
.w-trampa { position: absolute !important; left: -9999px !important; }
.w-form .w-boton { justify-self: start; margin-top: 6px; }
.w-form__msg { font-size: 15px; min-height: 1em; }
.w-form__msg.error { color: #c0392b; }
.w-form__msg.ok { color: var(--texto); }
.w-sug { position: absolute; top: 100%; left: 0; right: 0; z-index: 5; background: var(--fondo); border: 1px solid var(--linea); display: none; max-height: 240px; overflow: auto; }
.w-sug.abierta { display: block; }
.w-sug div { padding: 10px 14px; cursor: pointer; font-size: 15px; }
.w-sug div:hover { background: var(--superficie); }
.w-resultado { padding: 32px; background: var(--superficie); border-radius: var(--radio); }
.w-resultado__rango { font-family: var(--f-titulo); font-size: clamp(30px, 3.6vw, 48px); line-height: 1.1; margin: 10px 0 14px; }

/* ── Pie ── */
.w-pie { padding: clamp(64px, 8vw, 110px) 0 32px; font-size: 15px; }
.w-pie a { text-decoration: none; }
.w-pie--claro { border-top: 1px solid var(--linea); }
.w-pie--oscuro { background: var(--oscuro); color: var(--sobre-oscuro); }
.w-pie--oscuro .w-antetitulo { color: color-mix(in srgb, var(--sobre-oscuro) 60%, transparent); }
.w-pie__arriba { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 48px; margin-bottom: 72px; }
.w-pie__marca .w-logo { height: 46px; margin-bottom: 18px; }
.w-pie__marca p { color: var(--suave); max-width: 40ch; }
.w-pie__grande { display: grid; gap: 6px; }
.w-pie__grande a { font-family: var(--f-titulo); font-size: clamp(26px, 3.4vw, 48px); line-height: 1.15; letter-spacing: -0.01em; }
.w-pie__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 28px; }
.w-pie__cols > div { display: grid; gap: 8px; align-content: start; }
.w-pie__abajo { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent); font-size: 13px; opacity: .75; }
.w-pie__legal { display: flex; gap: 18px; }

/* WhatsApp flotante y visor de fotos */
.w-wa { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--texto); color: var(--fondo); box-shadow: 0 6px 24px rgba(0,0,0,.2); transition: transform .3s; }
.w-wa:hover { transform: scale(1.06); }
.w-wa svg { width: 26px; height: 26px; }
.w-visor { position: fixed; inset: 0; z-index: 90; background: rgba(8,8,10,.94); display: grid; place-items: center; }
.w-visor[hidden] { display: none; }
.w-visor img { width: auto; height: auto; max-width: 92vw; max-height: 84vh; object-fit: contain; }
.w-visor button { position: absolute; background: none; border: 0; color: #fff; font-size: 44px; cursor: pointer; padding: 12px 18px; line-height: 1; }
.w-visor__cerrar { top: 12px; right: 12px; }
.w-visor__ant { left: 8px; top: 50%; transform: translateY(-50%); }
.w-visor__sig { right: 8px; top: 50%; transform: translateY(-50%); }
.w-visor__pie { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: rgba(255,255,255,.8); font-size: 14px; }

/* ============================================================
   SERENO · crema y arena, serif con punto final, esquinas redondeadas
   ============================================================ */
[data-plantilla="sereno"] body.w { font-size: 16.5px; }
[data-plantilla="sereno"] .w-h2 { text-transform: uppercase; font-weight: 300; letter-spacing: 0.005em; }
[data-plantilla="sereno"] .w-columnas h3, [data-plantilla="sereno"] .w-pasos h3 { font-size: 22px; }
[data-plantilla="sereno"] .w-marquesina span { color: var(--acento-texto); }
[data-plantilla="sereno"] .w-opinion, [data-plantilla="sereno"] .w-ficha__caja { border-radius: calc(var(--radio) * 1.2); }

/* ============================================================
   COSTA · foto a pantalla completa, serif en mayúsculas espaciadas
   ============================================================ */
[data-plantilla="costa"] body.w { font-weight: 300; font-size: 18px; }
[data-plantilla="costa"] .w-h2 { text-transform: uppercase; font-weight: 300; letter-spacing: 0.14em; font-size: clamp(24px, 2.6vw, 40px); line-height: 1.3; }
[data-plantilla="costa"] .w-h2--apilado { font-size: clamp(28px, 3vw, 44px); letter-spacing: 0.16em; }
[data-plantilla="costa"] .w-boton { font-family: var(--f-titulo); font-weight: 600; letter-spacing: 0.18em; font-size: 13px; padding: 16px 32px; }
[data-plantilla="costa"] .w-cab__nav a { font-family: var(--f-titulo); font-size: 14px; font-weight: 500; letter-spacing: 0.16em; }
[data-plantilla="costa"] .w-texto, [data-plantilla="costa"] .w-intro__cols { font-size: 19px; line-height: 1.65; }
[data-plantilla="costa"] .w-b--buscador { padding-top: 0; }
[data-plantilla="costa"] .w-cifras__i { border-top: 0; text-align: center; }
[data-plantilla="costa"] .w-filas__t, [data-plantilla="costa"] .w-columnas h3, [data-plantilla="costa"] .w-pasos h3 { font-family: var(--f-titulo); text-transform: uppercase; letter-spacing: 0.1em; font-size: 18px; font-weight: 500; }
[data-plantilla="costa"] .w-gente__n { font-family: var(--f-titulo); font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; font-size: 22px; }

/* ============================================================
   NOCHE · negro, serif de titulares, carga con porcentaje, carrusel
   ============================================================ */
[data-plantilla="noche"] body.w { font-size: 16px; font-weight: 300; }
[data-plantilla="noche"] .w-h2 { font-size: clamp(42px, 6.2vw, 96px); line-height: .95; letter-spacing: -0.04em; }
[data-plantilla="noche"] .w-texto, [data-plantilla="noche"] .w-intro__cols { color: var(--suave); }
[data-plantilla="noche"] .w-boton { border-radius: calc(var(--radio) * 2); font-size: 11.5px; padding: 12px 22px; letter-spacing: 0.16em; }
[data-plantilla="noche"] .w-fondo--superficie { background: var(--superficie); }
[data-plantilla="noche"] .w-piso__foto, [data-plantilla="noche"] .w-proyecto__foto { filter: saturate(.9); }
[data-plantilla="noche"] .w-carrusel__t { text-transform: none; }
[data-plantilla="noche"] .w-cifras__n { font-weight: 400; }
[data-plantilla="noche"] .w-opinion { background: var(--superficie); }

/* ── Cabecera transparente (Costa) y mínima (Noche): encima de la foto de portada ── */
[data-cab="transparente"] .w-cab, [data-cab="minima"] .w-cab { position: fixed; left: 0; right: 0; background: transparent; backdrop-filter: none; }
[data-cab="transparente"] body[data-portada] .w-cab:not(.solida), [data-cab="minima"] body[data-portada] .w-cab:not(.solida) { color: #fff; }
[data-cab="transparente"] .w-cab.solida, [data-cab="transparente"] body:not([data-portada]) .w-cab { background: color-mix(in srgb, var(--fondo) 94%, transparent); backdrop-filter: blur(10px); color: var(--texto); padding-block: 12px; }
[data-cab="minima"] .w-cab.solida, [data-cab="minima"] body:not([data-portada]) .w-cab { background: color-mix(in srgb, var(--fondo) 88%, transparent); backdrop-filter: blur(10px); padding-block: 12px; }
[data-cab="transparente"] body:not([data-portada]) main, [data-cab="minima"] body:not([data-portada]) main { padding-top: 84px; }
[data-cab="minima"] .w-cab__nav { display: none; }
[data-cab="minima"] .w-cab__menu { display: inline-flex; }
[data-cab="minima"] .w-cab__boton { background: var(--acento); color: var(--sobre-acento); border-color: var(--acento); border-radius: calc(var(--radio) * 2); padding: 9px 16px; font-size: 11.5px; }
[data-cab="minima"] .w-cab__boton:hover { background: var(--texto); color: var(--fondo); border-color: var(--texto); }
.menu-abierto .w-cab { color: var(--sobre-oscuro) !important; background: transparent !important; backdrop-filter: none !important; }

/* ── Vista previa del editor ── */
[data-vista] [data-w-bloque] { cursor: pointer; }
[data-vista] [data-w-bloque]:hover { outline: 2px solid color-mix(in srgb, var(--acento) 60%, transparent); outline-offset: -2px; }
[data-vista] [data-w-bloque].w-elegido { outline: 2px solid var(--acento); outline-offset: -2px; }
[data-vista] .w-cab { position: sticky !important; }
[data-vista] body:not([data-portada]) main { padding-top: 0 !important; }

/* ── Móvil ── */
@media (max-width: 960px) {
  .w-cab__nav { display: none; }
  .w-cab__menu { display: inline-flex; }
  .w-cab__boton { display: none; }
  .w-portada__arriba, .w-lista--foto, .w-proyecto, .w-ficha, .w-contacto, .w-valorador, .w-pie__arriba { grid-template-columns: 1fr; }
  .w-proyecto--inv .w-proyecto__foto { order: 0; }
  .w-lista__foto, .w-ficha__lado { position: static; }
  .w-rejilla { grid-template-columns: 1fr; }
  .w-buscador--barra { grid-template-columns: 1fr 1fr; }
  .w-buscador--barra label { border-bottom: 1px solid var(--linea); }
  .w-buscador--barra .w-boton { grid-column: 1 / -1; border-radius: 0 0 calc(var(--radio) * 1.2) calc(var(--radio) * 1.2); justify-content: center; padding-block: 16px; }
  .w-paneles { grid-template-columns: 1fr; }
  .w-panel { height: 72vh; }
  .w-ficha__mosaico { grid-template-columns: 1fr 1fr; grid-template-rows: 2fr 1fr 1fr; height: 72vh; }
  .w-ficha__grande { grid-column: 1 / -1; grid-row: auto; }
  .w-ficha__mosaico a:nth-child(n + 4) { display: none; }
  .w-carrusel__pista { padding-inline: 7vw; }
  .w-carrusel__item { flex-basis: 84vw; }
  .w-grandes li { grid-template-columns: 44px minmax(0, 1fr); }
  .w-grandes__x { grid-column: 2; }
  .w-filas li { grid-template-columns: 1fr; gap: 6px; }
  .w-fotos--2 { grid-template-columns: 1fr; }
  .w-fotos--2 > :last-child { margin-top: 0; aspect-ratio: 4 / 3; }
  .w-gente-lista li { grid-template-columns: 56px minmax(0, 1fr); }
  .w-gente-lista__foto { width: 56px; height: 56px; }
  .w-gente-lista__c { grid-column: 2; }
}
@media (max-width: 600px) {
  body.w { font-size: 16px; }
  .w-form__dos, .w-form__tres { grid-template-columns: 1fr; }
  .w-buscador--barra { grid-template-columns: 1fr; }
  .w-buscador--simple select, .w-buscador--simple .w-boton { width: 100%; justify-content: center; }
  .w-contacto__datos div { grid-template-columns: 1fr; gap: 2px; }
  .w-portada__marco { height: 62vh; margin-inline: 10px; }
  .w-pie__abajo { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .w-js [data-w-aparece] { opacity: 1; transform: none; }
  .w-marquesina__pista { animation: none; }
}
