/* ============================================================
   GRUPO EUROCASA · Estilos del sitio público
   Las variables de color/tipografía llegan desde el panel admin
   (bloque :root inyectado en includes/header.php)
   ============================================================ */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
    margin:0;font-family:var(--fuente);color:var(--texto);background:#fff;
    font-size:15px;line-height:1.65;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4,h5{margin:0;line-height:1.25;font-weight:700}
p{margin:0 0 1em}
ul{margin:0;padding:0}

.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 22px}
.salto-contenido{position:absolute;left:-9999px;top:0;background:var(--primario);color:#fff;padding:10px 16px;z-index:999}
.salto-contenido:focus{left:0}
:focus-visible{outline:3px solid var(--primario);outline-offset:2px}

/* ---------------- Topbar ---------------- */
.topbar{background:var(--topbar);color:#fff;font-size:12.5px}
.topbar__in{display:flex;align-items:center;justify-content:space-between;min-height:30px;gap:12px}
.topbar__idiomas{display:flex;gap:7px;font-size:15px;line-height:1}
.topbar__idiomas a{opacity:.9;transition:opacity .2s}
.topbar__idiomas a:hover{opacity:1}
.topbar__datos{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.topbar__datos .sep{opacity:.65}
.topbar__datos a:hover{text-decoration:underline}

/* ---------------- Cabecera ---------------- */
.cabecera{background:var(--oscuro);color:#fff;position:relative;z-index:60}
.cabecera__in{display:flex;align-items:center;justify-content:space-between;min-height:88px;gap:18px}
.marca{display:flex;align-items:center;gap:12px;color:#fff}
.marca__logo{height:var(--logo-header);width:auto}
.marca__texto{font-size:20px;font-weight:500;letter-spacing:.06em}
.marca__hexagono{display:inline-flex;color:#fff}

.nav__lista{display:flex;align-items:center;gap:6px;list-style:none}
.nav__item{position:relative}
.nav__item>a{
    display:flex;align-items:center;gap:7px;padding:12px 14px;font-size:14.5px;
    font-weight:600;color:#fff;transition:color .2s;white-space:nowrap;
}
.nav__item>a:hover,.nav__item.activo>a{color:var(--primario)}
.nav__item.activo>a{box-shadow:inset 0 -2px 0 var(--primario)}
.flecha{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-top:2px}
.nav__toggle{display:none}

.submenu{
    position:absolute;top:100%;left:0;min-width:210px;background:var(--oscuro);
    list-style:none;padding:6px 0;opacity:0;visibility:hidden;transform:translateY(8px);
    transition:opacity .18s ease,transform .18s ease;box-shadow:0 14px 30px rgba(0,0,0,.28);
}
.nav__item:hover>.submenu,.nav__item:focus-within>.submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu a{display:block;padding:10px 18px;font-size:14px;color:#e9edf0}
.submenu a:hover{background:var(--primario);color:#fff}

.hamburguesa{display:none;background:none;border:0;padding:8px;cursor:pointer}
.hamburguesa span{display:block;width:26px;height:2px;background:#fff;margin:5px 0;transition:transform .25s,opacity .2s}
.hamburguesa.abierto span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburguesa.abierto span:nth-child(2){opacity:0}
.hamburguesa.abierto span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------------- Portada de vídeo ---------------- */
.portada{position:relative;height:calc(100vh - 118px);min-height:440px;overflow:hidden;background:#1b1b1b}
.portada__slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none}
.portada__slide.visible{opacity:1;pointer-events:auto}
.portada__media,.portada__media video,.portada__media iframe,.portada__media img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;
}
.portada__media iframe{width:100vw;height:56.25vw;min-height:100%;min-width:177.77vh;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.portada__velo{position:absolute;inset:0;background:rgba(28,30,32,.42)}
.portada__texto{
    position:relative;z-index:3;height:100%;display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;color:#fff;padding:0 22px;
}
.portada__titulo{font-size:clamp(30px,6vw,68px);font-weight:700;letter-spacing:.02em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.portada__subtitulo{font-size:clamp(19px,3.4vw,40px);font-weight:300;margin-top:6px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.portada__desc{font-size:clamp(15px,1.7vw,21px);font-weight:500;margin-top:14px;max-width:760px;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.portada__boton{margin-top:26px}
.portada__flecha{
    position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;
    width:54px;height:54px;border:2px solid #fff;display:grid;place-items:center;color:#fff;
    background:rgba(0,0,0,.15);transition:background .2s;
}
.portada__flecha:hover{background:var(--primario);border-color:var(--primario)}
.portada__puntos{position:absolute;right:26px;bottom:30px;z-index:5;display:flex;gap:9px}
.portada__puntos button{width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0}
.portada__puntos button.activo{background:#fff}

/* ---------------- Botones ---------------- */
.boton{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    background:var(--primario);color:#fff;border:2px solid var(--primario);border-radius:var(--radio);
    padding:12px 26px;font-size:13.5px;font-weight:600;letter-spacing:.04em;cursor:pointer;
    transition:background .22s,color .22s,border-color .22s;text-align:center;
}
.boton:hover{background:var(--primario-osc);border-color:var(--primario-osc)}
.boton--linea{background:transparent;color:#fff}
.boton--linea:hover{background:var(--primario);border-color:var(--primario)}
.boton--oscuro{background:var(--oscuro);border-color:var(--oscuro)}
.boton--oscuro:hover{background:#111;border-color:#111}
.boton--bloque{width:100%}

/* ---------------- Encabezados de sección ---------------- */
.seccion{padding:74px 0}
.seccion--claro{background:var(--claro)}
.seccion--oscuro{background:var(--oscuro);color:#fff}
.encabezado{display:flex;align-items:center;justify-content:center;gap:26px;margin-bottom:12px}
.encabezado__linea{height:1px;background:currentColor;opacity:.45;flex:1;max-width:400px}
.encabezado__hex{display:inline-flex;color:currentColor}
.titulos{text-align:center;margin-bottom:46px}
.titulos__uno{font-size:clamp(18px,2.4vw,26px);font-weight:300;font-style:italic;letter-spacing:.06em}
.titulos__dos{font-size:clamp(19px,2.6vw,27px);font-weight:700;font-style:italic;letter-spacing:.03em;margin-top:2px}
.titulos__texto{max-width:760px;margin:14px auto 0;color:var(--texto-suave);font-size:15px}
.seccion--oscuro .titulos__texto{color:#c9ced3}

/* ---------------- Grupos de modelos (home) ---------------- */
.grupos{display:grid;grid-template-columns:repeat(2,1fr);gap:34px}
.grupo__titulo{text-align:center;margin-bottom:20px}
.grupo__titulo span{display:block;font-size:clamp(15px,1.8vw,19px);letter-spacing:.04em}
.grupo__titulo strong{font-weight:700}
.grupo__titulo em{display:block;font-style:italic;font-weight:300;font-size:clamp(14px,1.7vw,18px);margin-top:2px}
.grupo__caja{background:rgba(255,255,255,.06);padding:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.tarjeta-modelo{background:rgba(255,255,255,.04);padding:8px 8px 18px;display:flex;flex-direction:column;text-align:center}
.tarjeta-modelo__img{aspect-ratio:4/3.4;overflow:hidden;background:#2a2a2a}
.tarjeta-modelo__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tarjeta-modelo:hover .tarjeta-modelo__img img{transform:scale(1.05)}
.tarjeta-modelo__txt{font-size:13px;font-style:italic;color:#dfe4e8;padding:14px 6px 16px;flex:1}
.tarjeta-modelo .boton{margin:0 12px;font-style:italic}

/* ---------------- Rejilla genérica de tarjetas ---------------- */
.rejilla{display:grid;gap:26px}
.rejilla--4{grid-template-columns:repeat(4,1fr)}
.rejilla--3{grid-template-columns:repeat(3,1fr)}
.rejilla--2{grid-template-columns:repeat(2,1fr)}

/* ---------------- Cabecera interior ---------------- */
.hero-int{position:relative;min-height:330px;display:grid;place-items:center;text-align:center;color:#fff;background:var(--oscuro) center/cover no-repeat;padding:70px 22px}
.hero-int::after{content:"";position:absolute;inset:0;background:rgba(30,32,34,.45)}
.hero-int__in{position:relative;z-index:2;max-width:900px}
.hero-int__titulo{font-size:clamp(28px,5vw,54px);font-weight:700;letter-spacing:.02em}
.hero-int__sub{font-size:clamp(18px,3vw,34px);font-weight:300;margin-top:4px;opacity:.92}
.hero-int__frase{font-size:clamp(17px,2.6vw,30px);font-weight:700;margin-top:10px}
.miga{font-size:12.5px;color:#dfe4e8;margin-top:16px;letter-spacing:.04em}
.miga a:hover{color:var(--primario)}

/* ---------------- Submenú pegajoso del modelo ---------------- */
.submenu-modelo{position:sticky;top:0;z-index:50;background:var(--submenu)}
.submenu-modelo__in{display:flex;justify-content:center;gap:6px;overflow-x:auto;scrollbar-width:none}
.submenu-modelo__in::-webkit-scrollbar{display:none}
.submenu-modelo a{
    padding:18px 16px;font-size:14px;font-weight:600;color:var(--oscuro);white-space:nowrap;
    border-bottom:3px solid transparent;transition:border-color .2s,color .2s;
}
.submenu-modelo a:hover{color:#fff}
.submenu-modelo a.activo{border-color:#fff;color:#fff}

/* ---------------- Bloques texto + galería ---------------- */
.bloque-info{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:66px 0}
.bloque-info--invertido .bloque-info__media{order:-1}
.bloque-info__titulo{font-size:clamp(20px,2.4vw,27px);font-weight:300;letter-spacing:.02em;margin-bottom:20px}
.bloque-info__titulo strong{font-weight:700}
.bloque-info__texto{color:var(--texto-suave);font-size:14.5px}
.bloque-info__lista{list-style:none;margin-top:14px}
.bloque-info__lista li{position:relative;padding-left:20px;margin-bottom:6px;font-size:14.5px;color:var(--texto-suave)}
.bloque-info__lista li::before{content:"";position:absolute;left:2px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--primario)}
.galeria__principal{aspect-ratio:16/11;overflow:hidden;background:var(--claro)}
.galeria__principal img{width:100%;height:100%;object-fit:cover}
.galeria__miniaturas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.galeria__miniaturas button{padding:0;border:2px solid transparent;background:none;cursor:pointer;aspect-ratio:4/3;overflow:hidden}
.galeria__miniaturas button.activa{border-color:var(--primario)}
.galeria__miniaturas img{width:100%;height:100%;object-fit:cover}

/* ---------------- Vídeo 360 ---------------- */
.video360{background:var(--oscuro);color:#fff;padding:64px 0}
.video360__titulo{text-align:center;font-size:clamp(20px,2.4vw,26px);font-weight:300;letter-spacing:.04em}
.video360__sub{text-align:center;color:var(--primario);font-weight:700;font-size:clamp(20px,2.4vw,26px);margin:6px 0 34px}
.video360__marco{position:relative;padding-top:56.25%;max-width:1010px;margin:0 auto;background:#000}
.video360__marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------------- Acabados ---------------- */
.acabado{background:var(--claro);padding:40px 26px;text-align:center}
.acabado__icono{width:96px;height:96px;margin:0 auto 20px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--primario)}
.acabado__icono img{width:54px;height:54px;object-fit:contain}
.acabado h3{font-size:18px;letter-spacing:.04em;margin-bottom:14px}
.acabado p{font-size:13.5px;color:var(--texto-suave);margin:0}

/* ---------------- Variantes (planos y precios) ---------------- */
.variante{background:var(--claro);padding:22px 18px 26px;text-align:center;display:flex;flex-direction:column}
.seccion--oscuro .variante{background:rgba(255,255,255,.07)}
.variante__plano{aspect-ratio:4/3;overflow:hidden;margin-bottom:14px}
.variante__plano img{width:100%;height:100%;object-fit:contain}
.variante__minis{display:flex;gap:8px;justify-content:center;margin-bottom:16px}
.variante__minis button{width:66px;height:44px;padding:0;border:2px solid transparent;background:none;cursor:pointer;overflow:hidden}
.variante__minis button.activa{border-color:var(--primario)}
.variante__minis img{width:100%;height:100%;object-fit:cover}
.variante__nombre{font-size:26px;font-weight:400;margin-bottom:16px}
.datos{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-bottom:16px}
.dato{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:inherit}
.dato svg{color:var(--primario)}
.dato b{font-size:15px;font-weight:600}
.variante__precio{font-size:30px;color:var(--primario);font-weight:400;line-height:1.1}
.variante__desde{font-size:12px;color:var(--texto-suave);margin-bottom:16px}
.seccion--oscuro .variante__desde{color:#b6bdc4}
.variante .boton{margin-top:auto}

/* ---------------- Barra de acciones ---------------- */
.acciones{background:var(--primario);color:#fff}
.acciones__grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.acciones__item{padding:46px 18px;display:flex;flex-direction:column;align-items:center;gap:16px;font-size:15px;letter-spacing:.02em;border-right:1px solid rgba(255,255,255,.35);transition:background .2s}
.acciones__item:last-child{border-right:0}
.acciones__item:hover{background:var(--primario-osc)}

/* ---------------- Precios ---------------- */
.precio-bloque{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:70px 0}
.precio-bloque--inv .precio-bloque__media{order:-1}
.precio-bloque__eyebrow{font-size:clamp(17px,2.2vw,24px);font-weight:300;letter-spacing:.03em}
.precio-bloque__titulo{font-size:clamp(19px,2.4vw,25px);font-weight:700;margin-top:2px}
.precio-bloque__sub{color:var(--primario);font-size:clamp(17px,2.1vw,23px);font-weight:400;margin:16px 0 18px}
.precio-bloque__texto{color:var(--texto-suave);font-size:14.5px}
.precio-bloque__precio{font-size:clamp(24px,3vw,32px);color:var(--primario);font-weight:300;margin-top:22px}
.precio-bloque__precio strong{font-weight:700}
.precio-bloque__nota{font-size:12.5px;color:var(--texto-suave);margin:2px 0 22px}
.precio-bloque__media img{width:100%;aspect-ratio:16/11;object-fit:cover}

/* ---------------- Casas en stock ---------------- */
.stock-card{background:var(--claro);padding:22px 18px 26px;text-align:center;display:flex;flex-direction:column}
.stock-card__titulo{color:var(--primario);font-size:17px;font-weight:700;min-height:48px;margin-bottom:14px}
.stock-card__img{aspect-ratio:4/3;overflow:hidden;margin-bottom:16px;background:#dfe3e8}
.stock-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.stock-card:hover .stock-card__img img{transform:scale(1.05)}
.stock-card__datos{display:flex;justify-content:center;gap:18px;color:var(--primario);font-size:13.5px;margin-bottom:14px;flex-wrap:wrap}
.stock-card__datos span{display:inline-flex;align-items:center;gap:6px;color:var(--texto)}
.stock-card__etiqueta{border:1px solid var(--primario);color:var(--primario);font-size:12.5px;font-weight:600;padding:8px 10px;margin-bottom:14px;line-height:1.35}
.stock-card__precio{font-size:15px;margin-bottom:4px}
.stock-card__precio b{font-size:21px}
.stock-card__nota{font-size:10.5px;color:#b0483d;margin-bottom:16px}
.stock-card .boton{margin-top:auto}

.ficha{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:60px 0}
.ficha__titulo{color:var(--primario);font-size:clamp(24px,3vw,34px);font-weight:700;text-align:center}
.ficha__precio{text-align:center;font-size:clamp(22px,2.8vw,30px);font-weight:700;margin:10px 0 4px}
.ficha__nota{text-align:center;font-size:11.5px;color:#b0483d;margin-bottom:22px}
.ficha__datos{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;color:var(--primario);margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid #e4e8ec}
.ficha h3{color:var(--primario);font-weight:400;font-size:22px;margin:26px 0 12px}
.ficha ul{list-style:none}
.ficha ul li{position:relative;padding-left:18px;margin-bottom:8px;font-size:14.5px;color:var(--texto-suave)}
.ficha ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;background:var(--primario);border-radius:50%}
.ficha__plano{background:var(--claro);padding:20px}
.ficha__plano img{margin:0 auto}

/* ---------------- Formulario ---------------- */
.form-caja{background:var(--primario);color:#fff;padding:34px 30px}
.form-caja h3{font-size:24px;margin-bottom:10px}
.form-caja p{font-size:14px;margin-bottom:20px}
.campo{width:100%;border:2px solid #fff;background:#fff;color:var(--texto);padding:11px 14px;font-family:inherit;font-size:14px;margin-bottom:12px;border-radius:var(--radio)}
.campo:focus{outline:3px solid rgba(255,255,255,.6)}
textarea.campo{min-height:120px;resize:vertical}
.form-caja .boton{background:var(--oscuro);border-color:var(--oscuro)}
.form-caja .boton:hover{background:#111;border-color:#111}
.acepto{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;margin-bottom:16px}
.aviso-ok{background:#e7f7ec;border-left:4px solid #2e9e5b;color:#1f6b3e;padding:14px 16px;margin-bottom:18px;font-size:14px}
.aviso-error{background:#fdecea;border-left:4px solid #d8453b;color:#96241c;padding:14px 16px;margin-bottom:18px;font-size:14px}

/* ---------------- Noticias ---------------- */
.noticia-card{background:#fff;border:1px solid #e6eaee;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s}
.noticia-card:hover{box-shadow:0 16px 36px rgba(0,0,0,.09);transform:translateY(-3px)}
.noticia-card__img{aspect-ratio:16/10;overflow:hidden;background:var(--claro)}
.noticia-card__img img{width:100%;height:100%;object-fit:cover}
.noticia-card__cuerpo{padding:22px 20px 24px;display:flex;flex-direction:column;flex:1}
.noticia-card__fecha{font-size:12px;color:var(--primario);margin-bottom:8px}
.noticia-card h3{font-size:17px;margin-bottom:10px;line-height:1.35}
.noticia-card p{font-size:14px;color:var(--texto-suave);flex:1}
.noticia-card .enlace{color:var(--primario);font-weight:600;font-size:13.5px;margin-top:12px}
.articulo{max-width:820px;margin:0 auto;padding:56px 0}
.articulo__meta{font-size:13px;color:var(--primario);margin-bottom:10px}
.articulo h1{font-size:clamp(25px,4vw,38px);margin-bottom:18px}
.articulo__portada{margin:26px 0 32px}
.articulo__cuerpo{font-size:16px;color:#3c4147;line-height:1.8}
.articulo__cuerpo h2{font-size:25px;margin:34px 0 12px}
.articulo__cuerpo h3{font-size:20px;margin:28px 0 10px}
.articulo__cuerpo ul,.articulo__cuerpo ol{margin:0 0 18px 22px}
.articulo__cuerpo li{margin-bottom:7px}
.articulo__cuerpo img{margin:22px 0}
.articulo__cuerpo blockquote{margin:24px 0;padding:14px 22px;border-left:4px solid var(--primario);background:var(--claro);font-style:italic}
.articulo__cuerpo a{color:var(--primario);text-decoration:underline}

/* ---------------- Tour virtual ---------------- */
.tour-card{position:relative;display:block;overflow:hidden;aspect-ratio:16/11;background:var(--oscuro)}
.tour-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;opacity:.85}
.tour-card:hover img{transform:scale(1.06)}
.tour-card__capa{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#fff;text-align:center;background:linear-gradient(180deg,rgba(20,22,24,.15),rgba(20,22,24,.55))}
.tour-card__titulo{font-size:clamp(20px,2.6vw,28px);font-weight:400}
.tour-card__play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--oscuro);display:grid;place-items:center;transition:transform .25s}
.tour-card:hover .tour-card__play{transform:scale(1.08)}
.tour-card__pie{font-size:15px}
.tour-etiqueta{color:#1c3f6e;font-size:14px;letter-spacing:.05em;margin-bottom:12px;font-weight:600}

/* ---------------- CTA final ---------------- */
.cta{background:var(--oscuro);color:#fff;padding:52px 0}
.cta__in{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}
.cta__titulo{font-size:clamp(20px,2.6vw,28px);font-weight:300}
.cta__titulo strong{display:block;font-weight:700}

/* ---------------- Pie ---------------- */
.pie{background:var(--footer);color:#dfe3e7;padding-top:56px;font-size:14px}
.pie__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px;padding-bottom:44px}
.pie__logo{height:var(--logo-footer);width:auto;margin-bottom:16px}
.pie__hex{color:#fff}
.pie__marcaTexto{display:block;font-size:18px;letter-spacing:.06em;color:#fff;margin:10px 0 14px}
.pie__texto{color:#aab2b9;font-size:13.5px;max-width:360px}
.pie__redes{display:flex;gap:16px;margin-top:14px;font-size:13px}
.pie__redes a:hover{color:var(--primario)}
.pie__col h4{font-size:14px;letter-spacing:.06em;color:#fff;margin-bottom:16px;text-transform:uppercase}
.pie__col ul{list-style:none}
.pie__col li{margin-bottom:9px;color:#aab2b9;font-size:13.5px}
.pie__col a:hover{color:var(--primario)}
.pie__legal{border-top:1px solid rgba(255,255,255,.1);padding:16px 0;font-size:12.5px;color:#8f979e}
.pie__legal-in{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pie__acceso{opacity:.4;padding:0 8px}

/* ---------------- Flotantes ---------------- */
.subir{
    position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;
    border:2px solid var(--primario);background:#fff;color:var(--primario);display:grid;place-items:center;
    cursor:pointer;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:80;
}
.subir.visible{opacity:1;visibility:visible}
.wa{
    position:fixed;left:18px;bottom:18px;width:52px;height:52px;border-radius:50%;
    background:#25d366;color:#fff;display:grid;place-items:center;z-index:80;
    box-shadow:0 8px 22px rgba(0,0,0,.22);
}

/* ---------------- Estados vacíos ---------------- */
.vacio{text-align:center;padding:60px 20px;color:var(--texto-suave);border:1px dashed #cdd4da}
.vacio strong{display:block;color:var(--texto);font-size:17px;margin-bottom:6px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
    .rejilla--4{grid-template-columns:repeat(3,1fr)}
    .acciones__grid{grid-template-columns:repeat(2,1fr)}
    .acciones__item:nth-child(2){border-right:0}
    .pie__grid{grid-template-columns:1fr 1fr}
}

@media (max-width:992px){
    .cabecera__in{min-height:70px}
    .hamburguesa{display:block}
    .nav{
        position:fixed;inset:0 0 0 auto;width:min(330px,88vw);background:var(--oscuro);
        transform:translateX(105%);transition:transform .3s ease;z-index:70;
        padding:78px 0 30px;overflow-y:auto;box-shadow:-10px 0 40px rgba(0,0,0,.3);
    }
    .nav.abierto{transform:translateX(0)}
    .nav__lista{flex-direction:column;align-items:stretch;gap:0}
    .nav__item{border-bottom:1px solid rgba(255,255,255,.08)}
    .nav__item>a{padding:15px 22px;justify-content:space-between}
    .nav__item.activo>a{box-shadow:none;color:var(--primario)}
    .flecha{display:none}
    .nav__toggle{
        display:block;position:absolute;right:8px;top:6px;width:44px;height:42px;background:none;
        border:0;cursor:pointer;
    }
    .nav__toggle::before,.nav__toggle::after{
        content:"";position:absolute;left:50%;top:50%;background:#fff;transition:transform .25s;
    }
    .nav__toggle::before{width:13px;height:2px;transform:translate(-50%,-50%)}
    .nav__toggle::after{width:2px;height:13px;transform:translate(-50%,-50%)}
    .nav__item.desplegado .nav__toggle::after{transform:translate(-50%,-50%) scaleY(0)}
    .submenu{
        position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
        max-height:0;overflow:hidden;transition:max-height .3s ease;background:rgba(0,0,0,.25);padding:0;
    }
    .nav__item.desplegado>.submenu{max-height:600px;padding:6px 0}
    .rejilla--4,.rejilla--3{grid-template-columns:repeat(2,1fr)}
    .bloque-info,.precio-bloque,.ficha{grid-template-columns:1fr;gap:32px;padding:48px 0}
    .bloque-info--invertido .bloque-info__media,.precio-bloque--inv .precio-bloque__media{order:0}
    .grupos{grid-template-columns:1fr;gap:44px}
    .portada{height:78vh;min-height:420px}
}

@media (max-width:720px){
    body{font-size:14.5px}
    .seccion{padding:52px 0}
    .topbar__in{flex-direction:column;align-items:center;gap:4px;padding-top:6px;padding-bottom:6px}
    .topbar__datos{justify-content:center;font-size:11.5px}
    .encabezado{gap:14px}
    .encabezado__linea{max-width:90px}
    .rejilla--4,.rejilla--3,.rejilla--2{grid-template-columns:1fr}
    .grupo__caja{grid-template-columns:1fr}
    .acciones__grid{grid-template-columns:1fr}
    .acciones__item{border-right:0;border-bottom:1px solid rgba(255,255,255,.35);padding:30px 18px}
    .pie__grid{grid-template-columns:1fr;gap:28px;text-align:left}
    .pie__legal-in{flex-direction:column;text-align:center}
    .galeria__miniaturas{grid-template-columns:repeat(4,1fr);gap:7px}
    .submenu-modelo__in{justify-content:flex-start}
    .submenu-modelo a{padding:14px 12px;font-size:13px}
    .cta__in{flex-direction:column;text-align:center}
    .portada{height:70vh;min-height:380px}
    .portada__flecha{width:44px;height:44px;bottom:18px}
    .ficha__datos{gap:14px}
    .wa{width:46px;height:46px;left:14px;bottom:14px}
    .subir{width:40px;height:40px;right:14px;bottom:14px}
}

@media (max-width:420px){
    .contenedor{padding:0 16px}
    .marca__texto{font-size:16px}
    .form-caja{padding:26px 20px}
}

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