@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:500 800;font-display:swap;src:url('fonts/bricolage-latin.woff2') format('woff2');}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/inter-latin.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/jetbrains-latin.woff2') format('woff2');}


:root {
  --tinta: #0D0D0F;
  --tinta-2: #17171B;
  --crema: #F5F0E6;
  --crema-2: #EDE6D8;
  --sol: #FFD400;
  --calor: #16E0B8;
  --fv: #FFB020;
  --agua: #2FA6F0;
  --piedra: #8A8578;
  --blanco: #FFFDF8;
  --bg: var(--crema);
  --fg: var(--tinta);

  --display: "Bricolage Grotesque", "Arial Black", sans-serif;
  --texto: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --base: 18px;
  --borde: clamp(20px, 3.4vw, 52px);
  --curva: cubic-bezier(.7, 0, .2, 1);
}
html[data-letra="grande"] { --base: 21px; }

*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--base); -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--texto); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
figure { margin: 0; }
p { margin: 0 0 1em; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 700; letter-spacing: -0.035em; line-height: 1; }
:focus-visible { outline: 2px solid var(--calor); outline-offset: 3px; }
::selection { background: var(--sol); color: var(--tinta); }
.marco { padding-left: var(--borde); padding-right: var(--borde); }
.solo-lector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.etq { font-family: var(--mono); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; gap: .6em; }
.etq::before { content: ""; width: .55em; height: .55em; border-radius: 50%; background: var(--acento, var(--calor)); }
.a-aero { --acento: var(--calor); } .a-fv { --acento: var(--fv); } .a-rv { --acento: var(--agua); }


.btn { display: inline-flex; align-items: center; gap: .7em; min-height: 54px; padding: 0 1.5em; border-radius: 999px; background: var(--sol); color: var(--tinta); font-weight: 600; font-size: .95rem; border: 0; cursor: pointer; transition: transform .3s var(--curva), background .3s; white-space: nowrap; }
.btn::after { content: "↗"; font-size: 1.1em; transition: transform .3s var(--curva); }
.btn:hover { transform: translateY(-2px); }
.btn:hover::after { transform: translate(2px, -2px); }
.btn--oscuro { background: var(--tinta); color: var(--blanco); }
.btn--linea { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }


.cab { position: fixed; top: 0; left: 0; right: 0; z-index: 50; color: var(--blanco); transition: background .4s, color .4s, transform .4s var(--curva); }
.cab.solida { background: rgba(245,240,230,.92); backdrop-filter: blur(14px); color: var(--tinta); }
.cab.oculta { transform: translateY(-100%); }
.cab__fila { display: flex; align-items: center; justify-content: space-between; min-height: 76px; gap: 2rem; }
.marca { display: flex; align-items: center; gap: .55rem; font-family: var(--display); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.02em; }
.marca img { width: 32px; height: auto; background: none; }
.marca .logo-cla { display: none; }
.cab:not(.solida) .marca .logo-osc { display: none; }
.cab:not(.solida) .marca .logo-cla { display: block; }
.sobre-claro .cab:not(.solida) { color: var(--tinta); }
.sobre-claro .cab:not(.solida) .marca .logo-osc { display: block; }
.sobre-claro .cab:not(.solida) .marca .logo-cla { display: none; }
.pie .marca .logo-cla { display: block; }
.menu { display: flex; gap: 1.9rem; align-items: center; font-size: .95rem; font-weight: 500; }
.menu a { position: relative; padding: 6px 0; }
.menu a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--sol); transition: right .35s var(--curva); }
.menu a:hover::after, .menu a[aria-current="page"]::after { right: 0; }
.cab__der { display: flex; align-items: center; gap: 1.3rem; font-size: .92rem; }
.letra { background: none; border: 0; color: inherit; font: inherit; font-size: .9rem; cursor: pointer; opacity: .8; }
.letra[aria-pressed="true"] { opacity: 1; text-decoration: underline; }
.movil, .menu .solo-movil, .menu .cerrar { display: none; }
@media (max-width: 1080px) {
  .menu { position: fixed; inset: 0; background: var(--tinta); color: var(--blanco); flex-direction: column; justify-content: center; gap: 1.4rem; display: none; z-index: 60; font-family: var(--display); font-size: 2.2rem; font-weight: 700; }
  .menu.abierto { display: flex; }
  .menu .solo-movil, .menu .cerrar { display: block; }
  .menu .cerrar { position: absolute; top: 24px; right: var(--borde); background: none; border: 0; color: inherit; font: 500 1rem var(--texto); cursor: pointer; }
  .cab__der { display: none; }
  .movil { display: flex; align-items: center; gap: 1rem; }
  .movil a { font-weight: 600; white-space: nowrap; }
  .movil button { background: none; border: 0; color: inherit; font: 600 1rem var(--texto); cursor: pointer; padding: 10px 0; }
}
.cta-flotante { display: none; }
@media (max-width: 760px) {
  .cta-flotante { display: grid; grid-template-columns: 1fr 1.6fr; gap: 8px; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 45; transform: translateY(140%); transition: transform .5s var(--curva); }
  .cta-flotante .btn { justify-content: center; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
  .cta-flotante.visible { transform: none; }
  .sobre-claro .cta-flotante { display: none; }
  .pie { padding-bottom: 110px; }
  .movil { gap: .7rem; } .movil a { font-size: .92rem; }
}


.hero { position: relative; height: 100svh; min-height: 620px; color: var(--blanco); overflow: hidden; background: var(--tinta); }
.hero video, .hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,13,15,.78) 0%, rgba(13,13,15,.15) 55%, rgba(13,13,15,.35) 100%); }
.hero__txt { position: absolute; left: var(--borde); right: var(--borde); bottom: clamp(32px, 6vw, 72px); z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.hero h1 { font-size: clamp(3rem, 8.4vw, 8.2rem); line-height: .92; letter-spacing: -0.045em; max-width: 11ch; }
.hero h1 .w { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .06em; }
.hero h1 .w > span { display: inline-block; }
.hero h1 em { font-style: normal; color: var(--sol); }
.hero__lado { display: grid; gap: 1.2rem; justify-items: end; text-align: right; }
.hero__lado p { margin: 0; max-width: 24em; font-size: 1.2rem; opacity: .95; }
.estrellas { font-family: var(--mono); font-size: .85rem; letter-spacing: .04em; }
.estrellas b { color: var(--sol); font-weight: 400; }
@media (max-width: 800px) { .hero__txt { grid-template-columns: 1fr; } .hero__lado { justify-items: start; text-align: left; } }


.lineas { display: flex; gap: 10px; height: min(78vh, 720px); padding: 10px; background: var(--tinta); }
.panel { position: relative; flex: 1; border-radius: 22px; overflow: hidden; color: var(--blanco); transition: flex .8s var(--curva); min-width: 0; }
.panel video, .panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--curva); }
.panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.05) 60%); }
.panel__txt { position: absolute; left: 28px; right: 28px; bottom: 28px; z-index: 2; }
.panel h2 { font-size: clamp(2rem, 3.6vw, 3.6rem); margin: .8rem 0 .6rem; }
.panel .cifra { font-family: var(--display); font-weight: 700; font-size: clamp(1.2rem, 1.8vw, 1.7rem); color: var(--tinta); background: var(--acento); padding: .15em .5em; border-radius: .35em; display: inline-block; }
.panel p { max-width: 30em; margin: .6rem 0 1.2rem; opacity: 0; transform: translateY(10px); transition: opacity .5s .2s, transform .5s .2s; }
.panel .btn { opacity: 0; transform: translateY(10px); transition: opacity .5s .3s, transform .5s .3s; }
.lineas:hover .panel { flex: .8; }
.lineas .panel:hover { flex: 2.6; }
.lineas .panel:hover p, .lineas .panel:hover .btn, .panel.activo p, .panel.activo .btn { opacity: 1; transform: none; }
.panel:hover video { transform: scale(1.04); }
@media (max-width: 900px) {
  .lineas { flex-direction: column; height: auto; }
  .panel { min-height: 72vh; }
  .panel p, .panel .btn { opacity: 1; transform: none; }
}


.manifiesto { padding: clamp(110px, 16vw, 230px) var(--borde); }
.manifiesto p { font-family: var(--display); font-weight: 600; font-size: clamp(2rem, 4.6vw, 4.6rem); line-height: 1.06; letter-spacing: -0.03em; max-width: 20ch; margin: 0; }
.manifiesto .pal { opacity: .14; transition: opacity .2s; }
.manifiesto .resalta-sol { background: linear-gradient(transparent 62%, var(--sol) 62%); }
.manifiesto .resalta-calor { color: var(--calor); }
.manifiesto .resalta-agua { color: var(--agua); }
.sin-anim .manifiesto .pal { opacity: 1; }


.historia { position: relative; display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 80px); padding: clamp(80px, 10vw, 140px) var(--borde); }
.historia__media { position: sticky; top: 96px; height: calc(100vh - 140px); border-radius: 24px; overflow: hidden; background: var(--tinta); }
.historia__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s ease, transform 1.6s var(--curva); transform: scale(1.06); }
.historia__media img.on { opacity: 1; transform: none; }
.historia__barra { position: absolute; left: 20px; right: 20px; bottom: 20px; height: 3px; background: rgba(255,255,255,.25); border-radius: 3px; overflow: hidden; z-index: 2; }
.historia__barra i { display: block; height: 100%; width: 100%; background: var(--sol); transform-origin: left; transform: scaleX(0); }
.historia__pasos { display: flex; flex-direction: column; }
.paso { min-height: 58vh; display: flex; flex-direction: column; justify-content: center; opacity: .25; transition: opacity .5s; }
.paso.on, .sin-anim .paso { opacity: 1; }
.paso .n { font-family: var(--mono); font-size: .85rem; color: var(--piedra); }
.paso h3 { font-size: clamp(2.2rem, 4.4vw, 4.2rem); margin: .8rem 0 1rem; }
.paso p { font-size: 1.15rem; max-width: 30em; }
.paso .plazo { font-family: var(--mono); font-size: .85rem; background: var(--tinta); color: var(--sol); padding: .35em .8em; border-radius: 999px; align-self: flex-start; }
@media (max-width: 900px) {
  .historia { grid-template-columns: 1fr; }
  .historia__media { position: relative; top: 0; height: 60vh; }
  .historia__media { display: none; }
  .paso .foto-movil { display: block; border-radius: 18px; overflow: hidden; margin-bottom: 1.2rem; }
  .paso .foto-movil img { aspect-ratio: 4 / 3; object-fit: cover; }
  .paso { min-height: auto; padding: 2.2rem 0; opacity: 1; border-bottom: 1px solid rgba(0,0,0,.12); }
}


.cifras { background: var(--sol); color: var(--tinta); padding: clamp(80px, 10vw, 140px) var(--borde); }
.cifras__fila { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; border-top: 2px solid var(--tinta); }
.cifras__fila div { padding-top: 1.4rem; }
.cifras b { display: block; font-family: var(--display); font-size: clamp(3rem, 7vw, 6.4rem); font-weight: 800; letter-spacing: -0.05em; line-height: .95; }
.cifras span { font-size: 1rem; font-weight: 500; }
.cifras h2 { font-size: clamp(2rem, 4vw, 3.6rem); max-width: 18ch; margin-bottom: clamp(40px, 5vw, 72px); }
@media (max-width: 860px) { .cifras__fila { grid-template-columns: 1fr 1fr; } }


.calc { padding: clamp(80px, 10vw, 150px) var(--borde); display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 90px); align-items: center; }
.calc h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); }
.calc__caja { background: var(--tinta); color: var(--blanco); border-radius: 28px; padding: clamp(24px, 4vw, 52px); }
.pestanas { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: 2rem; }
.pestanas button { font: 600 .95rem var(--texto); border: 0; border-radius: 999px; padding: .7em 1.2em; cursor: pointer; background: rgba(255,255,255,.08); color: var(--blanco); transition: background .3s, color .3s; }
.pestanas button[aria-selected="true"] { background: var(--acento); color: var(--tinta); }
.calc label { display: block; font-size: .95rem; opacity: .8; margin-bottom: .6rem; }
.calc input[type="range"] { width: 100%; accent-color: var(--acento); height: 28px; }
.calc .valor { font-family: var(--display); font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 700; margin: .2rem 0 1.6rem; }
.calc .resultado { border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.4rem; display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: baseline; justify-content: space-between; }
.calc .resultado b { font-family: var(--display); font-size: clamp(3rem, 6.4vw, 5.6rem); font-weight: 800; color: var(--acento); letter-spacing: -0.05em; line-height: 1; }
.calc .nota { font-size: .9rem; opacity: .7; margin-top: 1rem; }
@media (max-width: 900px) { .calc { grid-template-columns: 1fr; } }


.resenas { padding: clamp(80px, 10vw, 140px) 0; overflow: hidden; }
.resenas__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.4rem 2rem; margin-bottom: clamp(32px, 4vw, 56px); }
.resenas__cab h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); max-width: 14ch; }
.pista { display: flex; gap: 18px; padding: 0 var(--borde); width: max-content; }
.resena { width: min(560px, 82vw); min-height: min(62vh, 520px); flex: none; background: var(--blanco); border-radius: 28px; padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: 1.2rem; }
.resena p { font-family: var(--display); font-weight: 500; font-size: clamp(1.25rem, 1.9vw, 1.75rem) !important; line-height: 1.3; letter-spacing: -0.015em; }
.resena--nota { background: var(--tinta) !important; color: var(--blanco) !important; justify-content: center; }
.resena--nota b { font-family: var(--display); font-weight: 800; font-size: clamp(6rem, 12vw, 11rem); line-height: .85; letter-spacing: -0.06em; color: var(--sol); }
.resena--nota .est { color: var(--sol) !important; font-size: 1.6rem; }
.resena--nota .btn { align-self: flex-start; background: var(--sol); color: var(--tinta); }
.resena:nth-child(4n+2) { background: var(--sol); }
.resena:nth-child(4n+3) { background: var(--blanco); }
.resena:nth-child(4n+4) { background: var(--calor); }
.resena:nth-child(4n+5) { background: var(--agua); }
.resena .est { color: var(--calor); letter-spacing: .1em; }
.resena:nth-child(4n+2) .est, .resena:nth-child(4n+4) .est, .resena:nth-child(4n+5) .est { color: var(--tinta); }
.resena p { font-size: 1.05rem; margin: 0; flex: 1; }
.resena footer { font-size: .9rem; opacity: .75; }
@media (max-width: 900px) { .resenas .envoltura { overflow-x: auto; scroll-snap-type: x mandatory; } .resena { scroll-snap-align: start; } }


.marquee { overflow: hidden; background: var(--tinta); color: var(--sol); padding: 26px 0; white-space: nowrap; }
.marquee__pista { display: inline-flex; gap: 3rem; animation: marquee 34s linear infinite; font-family: var(--display); font-weight: 700; font-size: clamp(2rem, 5vw, 4.4rem); letter-spacing: -0.03em; }
.marquee__pista span::after { content: "✶"; margin-left: 3rem; color: var(--calor); }
@keyframes marquee { to { transform: translateX(-50%); } }


.diario-sec { padding: clamp(80px, 10vw, 140px) var(--borde); }
.diario-sec h2 { font-size: clamp(2.2rem, 4.4vw, 4rem); margin-bottom: 2rem; }
.diario { border-top: 2px solid currentColor; }
.diario a { display: grid; grid-template-columns: 2fr 7fr 2fr; gap: 2rem; padding: 1.5rem 0; border-bottom: 1px solid rgba(0,0,0,.15); align-items: baseline; transition: padding .4s var(--curva); }
.diario a:hover { padding-left: 1rem; }
.diario time, .diario span { font-family: var(--mono); font-size: .82rem; opacity: .7; }
.diario span { justify-self: end; }
.diario h3 { font-family: var(--display); font-size: clamp(1.3rem, 2.2vw, 1.9rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
@media (max-width: 760px) { .diario a { grid-template-columns: 1fr; gap: .3rem; } .diario span { justify-self: start; } }


.final { position: relative; overflow: hidden; background: var(--tinta); color: var(--blanco); padding: clamp(100px, 13vw, 190px) var(--borde) clamp(60px, 8vw, 110px); }
.final video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; }
.final > *:not(video):not(.kb) { position: relative; z-index: 2; }
.final .etq { color: var(--sol); }
.final ul { list-style: none; margin: 2rem 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.25); }
.final li a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: clamp(14px, 2vw, 26px) 0; border-bottom: 1px solid rgba(255,255,255,.25); font-family: var(--display); font-weight: 700; font-size: clamp(2.2rem, 6.6vw, 6.4rem); letter-spacing: -0.045em; line-height: 1; transition: color .3s, padding .5s var(--curva); }
.final li a::after { content: "↗"; font-size: .6em; transition: transform .4s var(--curva); }
.final li a:hover { color: var(--sol); padding-left: 1.2rem; }
.final li a:hover::after { transform: translate(6px, -6px); }


.hero--linea { height: 88svh; }
.intro { padding: clamp(80px, 10vw, 150px) var(--borde); display: grid; grid-template-columns: 4fr 8fr; gap: 2rem; }
.intro .grande { font-family: var(--display); font-weight: 600; font-size: clamp(1.7rem, 3.2vw, 3rem); line-height: 1.12; letter-spacing: -0.025em; margin: 0 0 1.4rem; }
.intro p { font-size: 1.1rem; max-width: 40em; }
@media (max-width: 860px) { .intro { grid-template-columns: 1fr; } }
.protagonista { padding: clamp(80px, 10vw, 150px) var(--borde); background: var(--acento); color: var(--tinta); display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 80px); align-items: end; }
.protagonista .num { font-family: var(--display); font-weight: 800; font-size: clamp(5rem, 15vw, 15rem); letter-spacing: -0.06em; line-height: .85; }
.protagonista small { display: block; font-family: var(--texto); font-size: 1.15rem; font-weight: 500; letter-spacing: 0; line-height: 1.4; margin-top: 1.2rem; max-width: 30em; }
@media (max-width: 860px) { .protagonista { grid-template-columns: 1fr; } }
.tabla { width: 100%; border-collapse: collapse; }
.tabla th, .tabla td { text-align: left; padding: 1rem 1rem 1rem 0; border-bottom: 1px solid rgba(0,0,0,.18); vertical-align: top; font-weight: 400; }
.tabla th { opacity: .7; width: 45%; }
.tabla td { font-weight: 600; }
.oscuro .tabla th, .oscuro .tabla td { border-bottom-color: rgba(255,255,255,.18); }
.oscuro { background: var(--tinta); color: var(--blanco); }
.ficha { padding: clamp(80px, 10vw, 140px) var(--borde); display: grid; grid-template-columns: 6fr 6fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.ficha h2 { font-size: clamp(2.2rem, 4.2vw, 4rem); margin: 1rem 0 2rem; }
.ficha figure { border-radius: 24px; overflow: hidden; }
.ficha figure img, .ficha figure video { aspect-ratio: 4 / 5; object-fit: cover; }
.ficha .nota { font-size: .9rem; opacity: .7; margin-top: 1.2rem; }
@media (max-width: 860px) { .ficha { grid-template-columns: 1fr; } }
.galeria { padding: 0 var(--borde) clamp(80px, 10vw, 140px); display: grid; grid-template-columns: 7fr 5fr; gap: 14px; }
.galeria figure { border-radius: 24px; overflow: hidden; }
.galeria img, .galeria video { height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
@media (max-width: 760px) { .galeria { grid-template-columns: 1fr; } }
.preguntas-sec { padding: clamp(80px, 10vw, 140px) var(--borde); display: grid; grid-template-columns: 4fr 8fr; gap: 2rem; }
.preguntas-sec h2 { font-size: clamp(2.2rem, 4.2vw, 4rem); }
.preguntas details { border-top: 1px solid rgba(0,0,0,.18); }
.preguntas details:last-child { border-bottom: 1px solid rgba(0,0,0,.18); }
.preguntas summary { list-style: none; cursor: pointer; padding: 1.3rem 3rem 1.3rem 0; position: relative; font-family: var(--display); font-weight: 600; font-size: clamp(1.15rem, 1.8vw, 1.5rem); letter-spacing: -0.015em; }
.preguntas summary::-webkit-details-marker { display: none; }
.preguntas summary::after { content: "+"; position: absolute; right: 0; top: 1rem; width: 36px; height: 36px; border-radius: 50%; background: var(--sol); display: grid; place-items: center; font-family: var(--texto); font-size: 1.3rem; transition: transform .4s var(--curva); }
.preguntas details[open] summary::after { transform: rotate(45deg); }
.preguntas details > div { padding: 0 3rem 1.4rem 0; font-size: 1.05rem; }
@media (max-width: 860px) { .preguntas-sec { grid-template-columns: 1fr; } }
.esquemas { padding: clamp(60px, 8vw, 110px) var(--borde); background: var(--blanco); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 3vw, 40px); }
.esquemas p { font-weight: 500; margin-top: .8rem; }
@media (max-width: 900px) { .esquemas { grid-template-columns: 1fr; } }
.producto { padding: clamp(80px, 10vw, 140px) var(--borde); background: var(--agua); color: var(--tinta); display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.producto figure { background: #fff; border-radius: 28px; padding: clamp(20px, 4vw, 56px); }
.producto h2 { font-size: clamp(2.6rem, 5vw, 5rem); margin: .8rem 0 1.6rem; }
.producto .tabla th, .producto .tabla td { border-bottom-color: rgba(0,0,0,.2); }
@media (max-width: 900px) { .producto { grid-template-columns: 1fr; } }


.contacto { padding: 150px var(--borde) clamp(80px, 10vw, 140px); display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 110px); }
.contacto h1 { font-size: clamp(3rem, 7vw, 6.6rem); letter-spacing: -0.045em; margin-bottom: 2rem; }
.datos dt { font-family: var(--mono); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; opacity: .65; margin-top: 1.6rem; }
.datos dd { margin: .3rem 0 0; font-size: 1.1rem; font-weight: 500; }
.datos .tel { font-family: var(--display); font-size: 2.2rem; font-weight: 700; letter-spacing: -0.03em; }
.form { background: var(--blanco); border-radius: 28px; padding: clamp(24px, 4vw, 52px); }
.form .campo { margin-bottom: 1.4rem; }
.form label.l { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .45rem; }
.form input[type="text"], .form input[type="tel"], .form input[type="email"], .form select, .form textarea { width: 100%; min-height: 56px; padding: .8rem 1rem; font: inherit; font-size: 1.05rem; color: var(--tinta); background: var(--crema); border: 2px solid transparent; border-radius: 14px; transition: border-color .3s, background .3s; }
.form textarea { min-height: 110px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--tinta); background: #fff; }
.form .ayuda { font-size: .85rem; opacity: .7; margin: .35rem 0 0; }
.dos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
.check { display: flex; gap: .8rem; align-items: flex-start; font-size: .92rem; margin-bottom: 1rem; }
.check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--tinta); flex: none; }
.legal { font-size: .78rem; opacity: .65; line-height: 1.55; margin-top: 1.6rem; }
.legal a { text-decoration: underline; }
@media (max-width: 900px) { .contacto { grid-template-columns: 1fr; } .dos { grid-template-columns: 1fr; } }


.pie { background: var(--tinta); color: rgba(255,253,248,.75); padding: 80px var(--borde) 36px; font-size: .95rem; border-top: 1px solid rgba(255,255,255,.1); }
.pie__fila { display: grid; grid-template-columns: 4fr 2fr 2fr 3fr; gap: 2rem; }
.pie h4 { font-family: var(--mono); font-weight: 400; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sol); margin: 0 0 1rem; }
.pie ul { list-style: none; margin: 0; padding: 0; }
.pie li { margin-bottom: .5rem; }
.pie a:hover { color: var(--sol); }
.pie .marca { color: var(--blanco); }
.pie__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 64px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: .88rem; }
.pie__base button { background: none; border: 0; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; }
@media (max-width: 860px) { .pie__fila { grid-template-columns: 1fr 1fr; } .pie__fila > :first-child { grid-column: 1 / -1; } }


.js-anim [data-sube] { opacity: 0; transform: translateY(40px); }

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .marquee__pista { animation: none; }
  .js-anim [data-sube] { opacity: 1; transform: none; }
  .manifiesto .pal { opacity: 1; }
  * { transition-duration: 0s !important; }
}

.paso .foto-movil { display: none; }
.final video { opacity: .85 !important; }
.final::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(13,13,15,.92) 10%, rgba(13,13,15,.25) 70%); }


@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .4s cubic-bezier(.7,0,.2,1) both vt-salir; }
::view-transition-new(root) { animation: .6s cubic-bezier(.7,0,.2,1) both vt-entrar; }
@keyframes vt-salir { to { opacity: 0; transform: translateY(-2%); } }
@keyframes vt-entrar { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0); } }


.incluye { padding: clamp(80px, 10vw, 140px) var(--borde); display: grid; grid-template-columns: 4fr 8fr; gap: 2rem; }
.incluye h2 { font-size: clamp(2.2rem, 4.2vw, 4rem); }
.incluye ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; }
.incluye li { padding: 1.1rem 0 1.1rem 2.2rem; border-top: 1px solid rgba(0,0,0,.15); position: relative; font-size: 1.08rem; }
.incluye li::before { content: "✓"; position: absolute; left: 0; top: 1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--acento, var(--sol)); display: grid; place-items: center; font-size: .8rem; font-weight: 700; }
.incluye li b { display: block; font-weight: 600; }
@media (max-width: 860px) { .incluye { grid-template-columns: 1fr; } .incluye ul { grid-template-columns: 1fr; } }


.seq { position: relative; height: 100vh; background: var(--tinta); color: var(--blanco); overflow: hidden; }
.seq canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.seq::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,13,15,.7), transparent 45%); }
.seq__txt { position: absolute; left: var(--borde); bottom: clamp(40px, 8vw, 96px); z-index: 2; }
.seq__txt h2 { font-size: clamp(2.6rem, 7vw, 6.6rem); letter-spacing: -0.045em; }
.seq__txt .fase { position: absolute; left: 0; bottom: 0; opacity: 0; }
.seq__txt .fase:first-child { position: relative; }
.seq__txt .etq { margin-bottom: 1rem; }


.casa { padding: clamp(80px, 10vw, 140px) var(--borde); }
.casa h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); max-width: 16ch; margin-bottom: 2rem; }
.casa__lienzo { position: relative; border-radius: 28px; overflow: hidden; }
.punto { position: absolute; width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%; border: 0; background: var(--acento); cursor: pointer; z-index: 2; box-shadow: 0 6px 20px rgba(0,0,0,.25); font: 700 1.2rem var(--display); color: var(--tinta); }
.punto::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--acento); animation: lat 2s infinite; }
@keyframes lat { from { transform: scale(.8); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
.punto[aria-expanded="true"] { background: var(--tinta); color: var(--blanco); }
.globo { position: absolute; z-index: 3; width: min(340px, 80vw); background: var(--blanco); color: var(--tinta); border-radius: 20px; padding: 22px; box-shadow: 0 20px 50px rgba(0,0,0,.25); display: none; }
.globo.abierto { display: block; animation: aparece .35s var(--curva); }
@keyframes aparece { from { opacity: 0; transform: translateY(8px); } }
.globo h3 { font-size: 1.6rem; margin: .4rem 0 .5rem; }
.globo p { margin: 0 0 1rem; }
@media (max-width: 760px) { .punto { width: 36px; height: 36px; margin: -18px 0 0 -18px; font-size: 1rem; } .globo { left: 12px !important; right: 12px; top: auto !important; bottom: 12px; width: auto; } }


.contacto__media { border-radius: 28px; overflow: hidden; margin-top: 2rem; max-width: 420px; }
.contacto__media video { aspect-ratio: 9 / 13; object-fit: cover; }


.kb { position: absolute; inset: 0; overflow: hidden; display: block; }
.kb img { width: 100%; height: 100%; object-fit: cover; animation: kb 24s ease-in-out infinite alternate; transform-origin: 60% 40%; }
@keyframes kb { from { transform: scale(1.02) translate(0, 0); } to { transform: scale(1.14) translate(-2%, -1.5%); } }
.hero .kb { position: absolute; inset: 0; }
.final .kb { z-index: 0; }
.final .kb img { opacity: .9; }
.panel img { animation: kb 30s ease-in-out infinite alternate; }
@media (prefers-reduced-motion: reduce) { .kb img, .panel img { animation: none; } }

@media (max-width: 760px) { .casa__lienzo { overflow: visible; } .globo { position: relative; left: auto !important; right: auto; top: auto !important; bottom: auto; width: 100%; margin-top: 14px; } }


.calculo { padding: clamp(90px, 11vw, 160px) var(--borde); display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 90px); align-items: center; }
.calculo figure { border-radius: 28px; overflow: hidden; }
.calculo figure img { aspect-ratio: 16 / 11; object-fit: cover; }
.calculo h2 { font-size: clamp(2.2rem, 4.2vw, 4rem); margin: 1rem 0 1.6rem; }
.calc-lista { list-style: none; margin: 0; padding: 0; counter-reset: c; }
.calc-lista li { counter-increment: c; padding: 1rem 0 1rem 3.2rem; border-top: 1px solid rgba(0,0,0,.15); position: relative; font-size: 1.05rem; }
.calc-lista li::before { content: "0" counter(c); position: absolute; left: 0; top: 1rem; font-family: var(--mono); font-size: .9rem; color: var(--tinta); background: var(--calor); border-radius: 999px; padding: .1em .55em; }
.calc-lista b { display: block; font-family: var(--display); font-size: 1.3rem; letter-spacing: -0.02em; }
@media (max-width: 900px) { .calculo { grid-template-columns: 1fr; } }
.lineas .panel--grande { flex: 1.7; }
.lineas:hover .panel--grande:not(:hover) { flex: .8; }
.sectores { position: relative; min-height: 90vh; color: var(--blanco); overflow: hidden; display: flex; align-items: flex-end; }
.sectores > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: kb 28s ease-in-out infinite alternate; }
.sectores::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,13,15,.85) 15%, rgba(13,13,15,.1) 70%); }
.sectores__txt { position: relative; z-index: 2; padding: clamp(40px, 6vw, 90px) var(--borde); max-width: 1100px; }
.sectores ul { list-style: none; margin: 1.2rem 0 1.4rem; padding: 0; }
.sectores li { font-family: var(--display); font-weight: 700; font-size: clamp(2.4rem, 6.4vw, 6rem); line-height: 1; letter-spacing: -0.045em; }
.sectores li:last-child { color: var(--sol); }
.sectores p { max-width: 34em; font-size: 1.15rem; }


.escenas { position: absolute; inset: 0; }
.escena { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.escena img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); }
.escena.on { opacity: 1; }
.escena.on img { animation: kb2 7s linear forwards; }
@keyframes kb2 { from { transform: scale(1.02); } to { transform: scale(1.12) translate(-1.5%, -1%); } }
.escenas__indice { position: absolute; z-index: 3; top: 104px; right: var(--borde); display: flex; gap: 10px; }
.escenas__indice button { background: none; border: 0; color: var(--blanco); font: 500 .85rem var(--mono); text-transform: uppercase; letter-spacing: .06em; cursor: pointer; padding: 0; width: 132px; text-align: left; opacity: .75; }
.escenas__indice button.on { opacity: 1; }
.escenas__indice i { display: block; height: 3px; background: rgba(255,255,255,.3); margin-bottom: 8px; border-radius: 3px; overflow: hidden; position: relative; }
.escenas__indice i::after { content: ""; position: absolute; inset: 0; background: var(--sol); transform: scaleX(0); transform-origin: left; }
.escenas__indice button.on i::after { animation: barra 6s linear forwards; }
@keyframes barra { to { transform: scaleX(1); } }
@media (max-width: 760px) { .escenas__indice { top: 88px; left: var(--borde); right: var(--borde); } .escenas__indice button { flex: 1; width: auto; font-size: .7rem; } }
@media (prefers-reduced-motion: reduce) { .escena.on img, .escenas__indice button.on i::after { animation: none; } }


.hero.a-aero, .hero.a-fv, .hero.a-rv { --acc: var(--acento); }
.hero.a-aero h1 em, .hero.a-fv h1 em, .hero.a-rv h1 em { color: var(--acento) !important; }
.hero.a-aero .hero__lado .btn, .hero.a-fv .hero__lado .btn, .hero.a-rv .hero__lado .btn { background: var(--acento) !important; color: var(--tinta); }
.escenas__indice i::after { background: var(--acc, var(--sol)); }
.hero .etq { --acento: var(--acc, var(--calor)); }

.escenas__indice button { width: auto; min-width: 118px; white-space: nowrap; padding-right: 6px; }


.escenas canvas.liquido { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.escenas.con-liquido .escena { opacity: 0 !important; }


.escena img { transform: none; animation: kb 26s ease-in-out infinite alternate !important; will-change: transform; backface-visibility: hidden; }
.escena { will-change: opacity; }
@media (prefers-reduced-motion: reduce) { .escena img { animation: none !important; } }

.escena video { width: 100%; height: 100%; object-fit: cover; }
.seq__fondo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.js-anim .seq__fondo { opacity: 0; }
.seq canvas { z-index: 1; }
.seq__txt { z-index: 3; }
.seq__txt .fase { font-size: clamp(2.6rem, 7vw, 6.6rem); }
.sin-anim .seq__txt .fase { position: static; opacity: 1; }
.seq__txt { right: var(--borde); padding-top: 3.2rem; }
.seq__txt .etq { position: absolute; top: 0; left: 0; margin: 0; }
.seq__txt .fase { width: 100%; max-width: 14ch; }


.metodo-p { padding: clamp(90px, 11vw, 160px) var(--borde); }
.metodo-p__cab h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); margin: 1rem 0 clamp(40px, 5vw, 72px); max-width: 14ch; }
.metodo-p__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.metodo-p__lista li { background: var(--blanco); border-radius: 26px; padding: clamp(22px, 2.6vw, 34px); min-height: 300px; display: flex; flex-direction: column; transition: transform .5s var(--curva), background .4s; }
.metodo-p__lista li:hover { transform: translateY(-6px); background: var(--sol); }
.metodo-p__lista .n { font-family: var(--mono); font-size: .9rem; }
.metodo-p__lista h3 { font-size: clamp(1.8rem, 2.6vw, 2.6rem); margin: auto 0 .6rem; }
.metodo-p__lista p { margin: 0; font-size: 1.02rem; }
@media (max-width: 900px) { .metodo-p__lista { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .metodo-p__lista { grid-template-columns: 1fr; } .metodo-p__lista li { min-height: 220px; } }
.dos-fotos { padding: 0 var(--borde) clamp(90px, 11vw, 160px); display: grid; grid-template-columns: 7fr 5fr; gap: 14px; align-items: end; }
.dos-fotos figure { margin: 0; }
.dos-fotos img { border-radius: 26px; aspect-ratio: 4 / 3; object-fit: cover; }
.dos-fotos figure:last-child img { aspect-ratio: 4 / 4.6; }
.dos-fotos figcaption { margin-top: .9rem; font-size: 1rem; }
@media (max-width: 760px) { .dos-fotos { grid-template-columns: 1fr; } .dos-fotos figure:last-child img { aspect-ratio: 4 / 3; } }
.valoran { padding: clamp(90px, 11vw, 150px) var(--borde) 0; }
.valoran__rejilla { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 1.6rem; }
.valoran blockquote { margin: 0; background: var(--blanco); border-radius: 26px; padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; gap: 1rem; }
.valoran blockquote:nth-child(1) { background: var(--sol); }
.valoran blockquote:nth-child(4) { background: var(--tinta); color: var(--blanco); }
.valoran b { font-family: var(--display); font-size: clamp(2rem, 3.4vw, 3.2rem); letter-spacing: -0.04em; line-height: 1; }
.valoran p { font-family: var(--display); font-weight: 500; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.3; margin: 0; }
.valoran cite { font-style: normal; font-size: .95rem; opacity: .75; }
@media (max-width: 760px) { .valoran__rejilla { grid-template-columns: 1fr; } }
.despues { list-style: none; margin: 0 0 1rem; padding: 0; border-top: 1px solid rgba(0,0,0,.15); }
.despues li { padding: 1rem 0; border-bottom: 1px solid rgba(0,0,0,.15); font-size: 1.05rem; display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; }
.despues b { font-family: var(--display); font-size: 1.25rem; letter-spacing: -0.02em; }


:root{--motion-ease:cubic-bezier(.7,0,.2,1);--motion-time:700ms;--route-color:#FFD400}
body{transition:background-color var(--motion-time) var(--motion-ease)}
:focus-visible{outline:3px solid #0d0d0f;outline-offset:5px;box-shadow:0 0 0 7px #fffdf8}
.solo-lector:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;clip:auto;padding:12px 20px;background:#fffdf8;color:#0d0d0f;z-index:9999}
.cab:focus-within{transform:none!important}.cab.menu-open{transform:none!important;backdrop-filter:none;background:var(--tinta)}
.menu.abierto{height:100dvh;overflow-y:auto;padding:72px 24px 32px;gap:14px}
.menu.abierto a{line-height:1.15}.menu.abierto .letra{font-size:1rem}.menu .cerrar{min-height:44px}
.hero h1 .title-line{display:block}.hero__txt{min-width:0}.hero__lado{min-width:0}
.hero::after{pointer-events:none;background:linear-gradient(to top,rgba(13,13,15,.85),rgba(13,13,15,.19) 60%,rgba(13,13,15,.48))}
.hero .escenas{isolation:isolate;transform-origin:center;will-change:clip-path,transform}
.escena{transition:opacity 1s var(--motion-ease)}
.escena img{animation:none!important;transform:scale(1.025)}
.escenas canvas.liquido{opacity:0;pointer-events:none}.escenas.con-liquido canvas.liquido{opacity:1}
.escenas__indice{flex-wrap:wrap;align-items:start;max-width:calc(100% - 2 * var(--borde))}
.escenas__indice button{font-size:16px;min-height:44px;min-width:0;max-width:160px;white-space:normal;opacity:1}
.scene-pause{position:absolute;right:var(--borde);top:170px;z-index:4;background:#0d0d0fb8;color:#fffdf8;border:1px solid #ffffff66;border-radius:30px;padding:8px 14px;font:inherit;font-size:16px;min-height:44px;cursor:pointer}
.scene-pause[aria-pressed=true]{background:#fffdf8;color:#0d0d0f}
.hero:has(.scene-pause[aria-pressed=true]) .escenas__indice i:after{animation-play-state:paused}
.etq,.estrellas,.letra,.paso .n,.paso .plazo,.calc .nota,.resena footer,.diario time,.diario span,.datos dt,.form label.l,.form .ayuda,.legal,.pie h4,.pie__base{font-size:max(16px,.9rem)}
.estrellas b{color:var(--sol)}.resena .est{color:#007864}.resena footer,.legal,.calc .nota,.form .ayuda{opacity:1}
.paso .n{color:#625c51}.diario time,.diario span{opacity:1}
.calc .nota{line-height:1.55}.pestanas button{min-height:44px}
.seq{height:100svh}.seq__fondo{opacity:1!important}.seq canvas{opacity:0;transition:opacity .25s}.seq.is-ready canvas{opacity:1}
.seq__txt{min-height:200px}.seq__txt .fase{opacity:0;position:absolute;bottom:0;line-height:1.05}
.seq__txt .fase:first-of-type{opacity:1}.seq__txt .etq{position:relative;margin-bottom:24px}
.historia__media img{transition:opacity var(--motion-time) var(--motion-ease);will-change:auto}
.js-anim [data-sube]{opacity:1;transform:none} 
.resenas .envoltura{overscroll-behavior-x:contain}.resenas .pista{will-change:transform}
.resenas .envoltura.dragging{cursor:grabbing;user-select:none}
.zt-curtain{position:fixed;inset:0;z-index:9990;background:var(--route-color);transform:translateY(-101%);pointer-events:none;display:grid;place-items:center;visibility:hidden}
.zt-curtain svg{width:100px;height:100px;fill:none;stroke:#0d0d0f;stroke-width:4}
.zt-curtain path{stroke-dasharray:1;stroke-dashoffset:0}
.zt-loading .zt-curtain,.zt-arriving .zt-curtain{visibility:visible;transform:none;animation:curtain-exit .35s var(--motion-ease) .4s forwards}
.zt-loading .zt-curtain path{animation:draw-z .35s var(--motion-ease) both}
.zt-arriving .zt-curtain{animation-delay:.05s;animation-duration:.6s}.zt-arriving .zt-curtain svg{visibility:hidden}
.zt-leaving .zt-curtain{visibility:visible;animation:curtain-enter .38s var(--motion-ease) both}.zt-leaving .zt-curtain svg{visibility:hidden}
@keyframes draw-z{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes curtain-enter{from{transform:translateY(101%)}to{transform:translateY(0)}}
@keyframes curtain-exit{to{transform:translateY(-101%);visibility:hidden}}
.zt-cursor{position:fixed;left:0;top:0;z-index:80;pointer-events:none;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;color:#0d0d0f;background:#ffd400eb;font-size:16px;font-weight:600;opacity:0;scale:.7;transition:opacity .2s,scale .3s var(--motion-ease);will-change:transform}
.zt-cursor.on{opacity:1;scale:1}
.energy{background:#f5f0e6;color:#0d0d0f;position:relative;--equipment:#ffb020}
.energy__stage{height:100svh;min-height:690px;max-height:1200px;position:relative;overflow:hidden;border-top:1px solid #d7d0c3;border-bottom:1px solid #d7d0c3}
.energy__header{position:absolute;top:clamp(32px,5vh,66px);left:var(--borde);z-index:2;pointer-events:none}
.energy__header h2{font-size:clamp(2.3rem,4vw,4rem);letter-spacing:-.05em;margin-top:14px;max-width:14ch}
.energy__header em{font-weight:500;font-style:normal}.energy__header .etq:before{background:var(--equipment)}
.energy__view{position:absolute;left:0;top:17%;width:69%;height:73%}
.energy__view zenthera-energy-house{position:absolute;inset:0;display:block}
.energy__poster{width:100%;height:100%;object-fit:contain}
.energy__view:has(zenthera-energy-house:defined)>.energy__poster{visibility:hidden}
.energy__copy{position:absolute;right:var(--borde);top:36%;width:27%;max-width:390px;display:grid;z-index:3}
.energy__chapter{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .5s var(--motion-ease),transform .7s var(--motion-ease),visibility .5s}
.energy__chapter.is-active{opacity:1;visibility:visible;transform:none}
.energy__number{font:500 16px var(--mono);display:flex;align-items:center;gap:10px;letter-spacing:.02em}
.energy__number:before{content:'';width:10px;height:10px;background:var(--equipment);border-radius:50%}
.energy__chapter h3{font-size:clamp(2rem,3.5vw,3.5rem);letter-spacing:-.04em;line-height:1.02;margin:20px 0}
.energy__chapter p{font-size:18px;line-height:1.5;max-width:28ch;color:#514c44}
.energy__chapter a{font-size:16px;display:inline-flex;gap:14px;align-items:center;min-height:44px;border-bottom:1px solid #938979}
.energy__steps{position:absolute;left:var(--borde);right:var(--borde);bottom:40px;display:flex;gap:8px;z-index:4;max-width:690px}
.energy__steps button{font:500 16px var(--texto);min-height:48px;flex:1;padding:10px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;background:transparent;color:#575147;border:1px solid #c7beae;border-radius:4px;transition:background .4s var(--motion-ease)}
.energy__steps button span{font:400 16px var(--mono)}.energy__steps button[aria-pressed=true]{background:var(--equipment);color:#0d0d0f;border-color:var(--equipment)}
.energy__hint{position:absolute;right:var(--borde);bottom:54px;font-size:16px;color:#625b4f}
.energy__hint span{margin-left:14px}.energy.is-static .energy__hint{display:none}
.pestanas button[aria-pressed=true]{background:var(--acento);color:var(--tinta)}
.calc>*{min-width:0}.calc__caja .btn{white-space:normal;line-height:1.35;padding-top:12px;padding-bottom:12px}.calc h2{overflow-wrap:break-word}
.manifiesto .pal{opacity:1!important}
.pie h2{font:400 16px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--sol);margin:0 0 1rem}
@media(pointer:fine) and (prefers-reduced-motion:no-preference){.btn{translate:var(--mag-x,0px) var(--mag-y,0px);transition:translate .35s var(--motion-ease),background .3s var(--motion-ease)}.btn:hover{transform:none}}
@media(max-width:1100px){.energy__hint{display:none}.energy__copy{width:29%}.energy__view{width:74%}.energy__chapter h3{font-size:2.3rem}}
@media(max-width:760px){
  html{--base:18px}.cab__fila{gap:12px}.marca{font-size:1.1rem}.movil a{font-size:16px}.movil{gap:12px}
  .hero{min-height:760px}.hero h1{font-size:clamp(2.7rem,11.5vw,4rem);max-width:13ch}.hero__txt{bottom:40px;gap:22px}.hero__lado p{font-size:18px;line-height:1.45}.hero__lado{gap:16px}
  .escenas__indice{top:88px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;max-width:none}.escenas__indice button{width:100%;max-width:none;font-size:16px;padding:0;min-width:0}
  .scene-pause{top:213px;font-size:16px;padding:6px 12px}.estrellas{letter-spacing:0}
  .cta-flotante{bottom:calc(10px + env(safe-area-inset-bottom));background:#f5f0e6ed;padding:8px;border-radius:40px;left:8px;right:8px;gap:6px}.cta-flotante .btn{font-size:16px;padding:0 12px;min-height:48px}.cta-flotante.is-blocked{transform:translateY(160%)}
  .pie{padding-bottom:calc(130px + env(safe-area-inset-bottom))}.pie__fila{grid-template-columns:1fr}.pie__fila>*{min-width:0}.pie a{overflow-wrap:anywhere}
  .seq__txt{bottom:calc(116px + env(safe-area-inset-bottom))}.seq__txt .fase{font-size:clamp(2.5rem,10vw,4rem)}
  .energy__stage{height:100svh;min-height:0;max-height:none;display:grid;grid-template-rows:auto minmax(140px,1fr) auto auto;padding:22px var(--borde);gap:8px}
  .energy__header{position:relative;top:auto;left:auto}.energy__header h2{font-size:1.7rem;max-width:none;margin-top:10px}.energy__header .etq{font-size:16px}
  .energy__view{position:relative;left:auto;top:auto;width:100%;height:100%;min-height:140px}
  .energy__copy{position:relative;left:auto;right:auto;top:auto;width:auto;max-width:none;min-height:230px;align-content:start}
  .energy__chapter,.energy__chapter.is-active{transform:none!important}
  .energy__chapter h3{font-size:2rem;margin:12px 0}.energy__chapter h3 br{display:none}.energy__chapter h3 br:after{content:' '}.energy__chapter p{font-size:16px;max-width:36ch;margin-bottom:6px}.energy__chapter a{font-size:16px}.energy__number{font-size:16px}
  .energy__steps{position:relative;left:auto;right:auto;bottom:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.energy__steps button{min-height:44px;padding:8px 12px;font-size:16px}.energy__steps button span{font-size:16px}
  .energy.is-static .energy__stage{min-height:700px}.energy__hint{display:none}
  .contacto h1{font-size:clamp(2.5rem,11vw,4rem)}.contacto{overflow-wrap:anywhere}.form{min-width:0}.form .btn{white-space:normal;text-align:left;line-height:1.3}
  .resena{height:auto;min-height:540px}.resenas .envoltura{padding-bottom:12px}
  html[data-letra=grande] .hero{min-height:900px}html[data-letra=grande] .energy__copy{min-height:210px}html[data-letra=grande] .movil a{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .zt-curtain,.zt-cursor{display:none!important}.hero,.energy__stage{transform:none!important}.energy__hint{display:none}.energy__chapter{transform:none}
  .seq canvas{display:none}.seq__txt .fase{position:static;opacity:1;font-size:clamp(2rem,5vw,4rem);margin-top:14px}.seq__txt{padding-top:0}
  .manifiesto .pal{opacity:1!important}.historia__media img{clip-path:none!important}
}


.termico { position: absolute; inset: 0; overflow: hidden; background: #050208; }
.termico video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.termico canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.termico.con-termico video { opacity: 0; }
.termico__mira { position: absolute; left: 0; top: 0; width: 0; height: 0; z-index: 2; pointer-events: none; transition: opacity .3s; }
.termico__mira span { position: absolute; left: 22px; top: -38px; font: 500 .72rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #FFD400; white-space: nowrap; }
.termico__mira::before, .termico__mira::after { content: ""; position: absolute; background: #FFD400; }
.termico__mira::before { width: 22px; height: 2px; left: -11px; top: -1px; }
.termico__mira::after { width: 2px; height: 22px; left: -1px; top: -11px; }
.termico:not(.con-termico) .termico__mira { display: none; }
.termico__hud { position: absolute; z-index: 3; top: 104px; left: var(--borde); color: #fff; display: grid; gap: .8rem; opacity: var(--ter, 1); }
.termico__escala { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; width: 260px; font: .78rem var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.termico__escala i { grid-column: 1 / -1; height: 8px; border-radius: 8px; background: linear-gradient(90deg, #05020f, #520a72, #c70d52, #fa5c0a, #ffc71f, #fffadb); }
@media (max-width: 760px) { .termico__hud { top: 88px; } .termico__escala { width: 200px; } .termico__hud .etq::after { content: ""; } }



.termo-sec { padding: clamp(90px, 11vw, 160px) var(--borde); display: grid; grid-template-columns: 4fr 8fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.termo-sec h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); margin: 1rem 0 1.2rem; }
.termo-sec p { font-size: 1.1rem; opacity: .85; }
.comparador { position: relative; aspect-ratio: 16 / 10; border-radius: 28px; overflow: hidden; cursor: ew-resize; touch-action: pan-y; background: #050208; --x: 55%; }
.comparador > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.comparador.con-gl > img { opacity: 0; }
.comparador canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.comparador__linea { position: absolute; top: 0; bottom: 0; left: var(--x); width: 3px; margin-left: -1.5px; background: #FFD400; z-index: 2; pointer-events: none; }
.comparador__linea span { position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: #FFD400; color: #0D0D0F; display: grid; place-items: center; font-size: 1.4rem; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.comparador__et { position: absolute; top: 18px; z-index: 2; font: 500 .8rem var(--mono); text-transform: uppercase; letter-spacing: .08em; color: #fff; background: rgba(13,13,15,.55); padding: .35em .7em; border-radius: 999px; }
.comparador__et--izq { left: 18px; } .comparador__et--der { right: 18px; }
.comparador input[type=range] { position: absolute; inset: auto 0 0 0; width: 100%; opacity: 0; height: 44px; cursor: ew-resize; z-index: 3; }
.comparador input[type=range]:focus-visible + * , .comparador:focus-within .comparador__linea span { outline: 3px solid #fff; outline-offset: 3px; }
@media (max-width: 900px) { .termo-sec { grid-template-columns: 1fr; } .comparador { aspect-ratio: 4 / 3.4; } }

.termo-sec { background: #0D0D0F; color: #FFFDF8; }

.t-tactil { display: none; }
@media (pointer: coarse) { .t-raton { display: none; } .t-tactil { display: inline; } }

.termico:not(.con-termico) ~ .termico__hud, .termico.sin-termico ~ .termico__hud { display: none; }

.termico__mira span { left: 26px; top: -46px; background: rgba(13,13,15,.7); padding: .3em .6em; border-radius: 6px; font-size: .78rem; }

.pasos-gracias { list-style: none; margin: 0 0 1.4rem; padding: 0; text-align: left; display: grid; gap: .6rem; max-width: 28em; }
.pasos-gracias li { display: flex; gap: .7rem; align-items: baseline; }
.pasos-gracias .num { font-family: var(--mono); color: var(--sol); }


.pagina-legado .cab { background: rgba(245,240,230,.94); backdrop-filter: blur(14px); color: var(--tinta); }
.pagina-legado .cab .marca .logo-cla { display: none; }
.pagina-legado .cab .marca .logo-osc { display: block; }


.seq__txt{display:grid;padding-top:0;min-height:0}
.seq__txt .etq{position:static;grid-row:1;margin:0 0 20px}
.seq__txt .fase{position:static!important;grid-row:2;grid-column:1;align-self:end}

main p, main li, .form, .pie li { overflow-wrap: break-word; }


.contacto > .form{align-self:start}

.legado .container{min-width:0;max-width:100%}
.legado .badge{white-space:normal;max-width:100%}
.legado .legal-table{display:block;overflow-x:auto;max-width:100%}
.legado .hero-grid > *{min-width:0}
@media (max-width:900px){.legado .hero-grid{grid-template-columns:minmax(0,1fr)!important}.legado .badge{display:inline-flex;flex-wrap:wrap}}
@media (max-width:600px){.legado .btn-lg{white-space:normal;max-width:100%;text-align:center;justify-content:center}}
@media (max-width:600px){.legado .btn{white-space:normal;max-width:100%;text-align:center;justify-content:center;height:auto;min-height:48px;padding-top:.7em;padding-bottom:.7em}}


.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.cc-banner {
  position:fixed; left:0; right:0; bottom:0; z-index:10000;
  background:#FFFDF8;
  border-top:1px solid rgba(13,13,15,.14);
  box-shadow:0 -8px 32px -12px rgba(12,30,44,.22);
  padding:20px 0;
  animation:cc-up .3s ease;
}
@keyframes cc-up { from { transform:translateY(100%); } to { transform:translateY(0); } }
.cc-inner {
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:flex; align-items:center; gap:32px; flex-wrap:wrap;
}
.cc-text { flex:1 1 420px; min-width:0; }
.cc-text strong {
  display:block; font-family:'Archivo','Inter',sans-serif;
  color:#0D0D0F; font-size:1rem; margin-bottom:4px;
}
.cc-text p { font-size:.88rem; line-height:1.6; color:#55524B; margin:0; }
.cc-text a { color:#0D0D0F; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cc-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

.cc-btn {
  font-family:inherit; font-size:.9rem; font-weight:600;
  padding:11px 22px; border-radius:100px; cursor:pointer;
  border:1.5px solid transparent; transition:all .25s ease;
  white-space:nowrap;
}

.cc-btn-solid {
  background:#17171B; color:#FFFDF8; border-color:#17171B;
}
.cc-btn-solid:hover { background:#0D0D0F; border-color:#0D0D0F; }
.cc-btn-ghost {
  background:transparent; color:#55524B; border-color:rgba(13,13,15,.14);
}
.cc-btn-ghost:hover { color:#0D0D0F; border-color:#55524B; }

.cc-modal {
  position:fixed; inset:0; z-index:10001;
  background:rgba(12,30,44,.55);
  display:flex; align-items:center; justify-content:center;
  padding:24px; overflow-y:auto;
}
.cc-modal[hidden] { display:none; }
.cc-modal-card {
  background:#FFFDF8; border-radius:22px;
  max-width:560px; width:100%; padding:32px;
  box-shadow:0 24px 60px -24px rgba(13,13,15,.45); margin:auto;
}
.cc-modal-card h2 { font-size:1.3rem; margin-bottom:10px; }
.cc-modal-intro { font-size:.9rem; color:#55524B; line-height:1.6; margin-bottom:24px; }
.cc-group {
  border:1px solid rgba(13,13,15,.14); border-radius:14px;
  padding:18px 20px; margin-bottom:14px;
}
.cc-group-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; margin-bottom:8px;
}
.cc-group-head strong { color:#0D0D0F; font-size:.98rem; }
.cc-group p { font-size:.85rem; line-height:1.6; color:#55524B; margin:0; }
.cc-always {
  font-size:.78rem; font-weight:600; color:#17171B;
  background:#FFF6C2; padding:4px 12px; border-radius:100px;
  white-space:nowrap;
}
.cc-switch { position:relative; display:inline-flex; flex-shrink:0; cursor:pointer; }
.cc-switch input { position:absolute; opacity:0; width:44px; height:24px; margin:0; cursor:pointer; }
.cc-slider {
  width:44px; height:24px; background:#CBD5E1; border-radius:100px;
  transition:all .25s ease; position:relative; display:block;
}
.cc-slider::after {
  content:''; position:absolute; top:3px; left:3px;
  width:18px; height:18px; background:#FFFDF8;
  border-radius:50%; transition:all .25s ease;
}
.cc-switch input:checked + .cc-slider { background:#0D0D0F; }
.cc-switch input:checked + .cc-slider::after { transform:translateX(20px); }
.cc-switch input:focus-visible + .cc-slider { outline:2px solid #0D0D0F; outline-offset:3px; }
.cc-modal-actions { display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }

@media (max-width: 900px) {
  .cc-inner { gap:18px; }
  .cc-actions { width:100%; }
  .cc-btn { flex:1 1 auto; text-align:center; }
}
@media (max-width: 480px) {
  .cc-banner { padding:16px 0; max-height:85vh; overflow-y:auto; }
  .cc-modal-card { padding:24px 20px; }
  .cc-btn { flex:1 1 100%; }
}

.cc-banner, .cc-modal { font-family: "Inter Tight", system-ui, sans-serif; }
.cc-btn { border-radius: 999px !important; }
.cc-btn-solid { background: #FFD400 !important; color: #0D0D0F !important; border-color: #FFD400 !important; }



.pagina-blog, .pagina-articulo { background: var(--crema); }
.a-rv { --acento-osc: #0B5E94; } .a-aero { --acento-osc: #077A63; } .a-fv { --acento-osc: #9A5B00; }


.posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: clamp(14px, 1.6vw, 22px); }
.post { position: relative; display: flex; flex-direction: column; gap: .9rem; padding: clamp(22px, 2.4vw, 34px); min-height: 360px; background: var(--blanco); border-radius: 26px; overflow: hidden; isolation: isolate; transition: transform .5s var(--curva), color .4s; }
.post::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--acento); transform: translateY(101%); transition: transform .55s var(--curva); }
.post::after { content: ""; position: absolute; left: clamp(22px, 2.4vw, 34px); top: 0; width: 44px; height: 6px; border-radius: 0 0 6px 6px; background: var(--acento); transition: opacity .3s; }
.post:hover::before, .post:focus-visible::before { transform: none; }
.post:hover::after { opacity: 0; }
.post:hover { transform: translateY(-4px); }
.post[hidden] { display: none; }
.post__linea { font-family: var(--mono); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; margin-top: .6rem; }
.post__meta { font-family: var(--mono); font-size: .74rem; color: var(--piedra); letter-spacing: .02em; }
.post:hover .post__meta { color: var(--tinta); }
.post h3 { font-size: clamp(1.35rem, 1.9vw, 1.7rem); line-height: 1.08; letter-spacing: -.03em; text-wrap: balance; }
.post p { font-size: .92rem; line-height: 1.55; color: #45423B; margin: 0; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.post__ir { margin-top: auto; display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: .88rem; padding-top: 1rem; border-top: 1px solid rgba(13,13,15,.12); }
.post__ir i { font-style: normal; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--tinta); color: var(--crema); transition: transform .4s var(--curva); }
.post:hover .post__ir i { transform: rotate(-45deg); }

.post--grande { min-height: clamp(380px, 46vw, 560px); background: var(--tinta); color: var(--crema); padding: clamp(28px, 4vw, 64px); display: grid; grid-template-columns: 1fr minmax(0, 30ch); grid-template-rows: auto auto 1fr auto; column-gap: clamp(24px, 5vw, 90px); }
.post--grande::after { width: 90px; height: 8px; left: clamp(28px, 4vw, 64px); }
.post--grande .post__linea { grid-column: 1; color: var(--acento); }
.post--grande .post__meta { grid-column: 1; color: rgba(245,240,230,.6); }
.post--grande h3 { grid-column: 1; align-self: end; font-size: clamp(2.2rem, 5.2vw, 4.6rem); line-height: .98; letter-spacing: -.045em; max-width: 18ch; }
.post--grande p { grid-column: 2; grid-row: 3; align-self: end; color: rgba(245,240,230,.75); font-size: 1rem; -webkit-line-clamp: 7; }
.post--grande .post__ir { grid-column: 1 / -1; border-color: rgba(245,240,230,.18); font-size: 1rem; }
.post--grande .post__ir i { background: var(--acento); color: var(--tinta); width: 56px; height: 56px; font-size: 1.2rem; }
.post--grande:hover { color: var(--tinta); }
.post--grande:hover .post__linea, .post--grande:hover .post__meta, .post--grande:hover p { color: var(--tinta); }
.post--grande:hover .post__ir { border-color: rgba(13,13,15,.2); }
.post--grande:hover .post__ir i { background: var(--tinta); color: var(--acento); }


.blog-cab { padding: clamp(140px, 17vw, 220px) 0 clamp(36px, 5vw, 70px); }
.blog-cab h1 { font-size: clamp(2.8rem, 7.6vw, 7.4rem); font-weight: 800; letter-spacing: -.055em; line-height: .92; max-width: 15ch; margin: 1.2rem 0 1.6rem; text-wrap: balance; }
.blog-cab h1 em { font-style: normal; background: linear-gradient(transparent 58%, var(--sol) 58%); }
.blog-cab p { max-width: 48ch; font-size: 1.1rem; color: #45423B; }
.blog-destacado { padding-bottom: clamp(18px, 2vw, 26px); }
.blog-lista { padding-bottom: clamp(80px, 10vw, 140px); }
.filtros { display: flex; flex-wrap: wrap; gap: 10px; margin: clamp(34px, 4vw, 54px) 0 clamp(20px, 2.4vw, 30px); }
.filtros button { font: 600 .9rem var(--texto); min-height: 46px; padding: 0 1.2em; border-radius: 999px; border: 1.5px solid rgba(13,13,15,.18); background: transparent; color: var(--tinta); cursor: pointer; display: inline-flex; align-items: center; gap: .5em; transition: background .3s, border-color .3s; }
.filtros button::before { content: ""; width: .6em; height: .6em; border-radius: 50%; background: var(--acento, var(--tinta)); }
.filtros button sup { font-family: var(--mono); font-size: .7rem; opacity: .6; }
.filtros button:hover { border-color: var(--tinta); }
.filtros button[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--crema); }
.filtros button[aria-pressed="true"]::before { background: var(--acento, var(--sol)); }


.art-hero { background: var(--acento); color: var(--tinta); padding: clamp(130px, 15vw, 200px) 0 clamp(44px, 5vw, 80px); position: relative; overflow: hidden; }
.art-hero::after { content: ""; position: absolute; right: -8vw; bottom: -30vw; width: 60vw; height: 60vw; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.35), transparent 65%); pointer-events: none; }
.miga { display: flex; gap: .7em; font-family: var(--mono); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.miga a { border-bottom: 1.5px solid currentColor; }
.art-hero h1 { font-size: clamp(2.3rem, 5.6vw, 5.4rem); font-weight: 800; letter-spacing: -.05em; line-height: .96; max-width: 20ch; margin: clamp(22px, 3vw, 40px) 0 clamp(30px, 4vw, 56px); text-wrap: balance; position: relative; z-index: 1; }
.art-hero h1 br { display: none; }
.art-hero h1 em { font-style: normal; background: var(--tinta); color: var(--acento); padding: 0 .14em; border-radius: .12em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.art-hero__pie { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 360px); gap: clamp(28px, 5vw, 90px); align-items: end; position: relative; z-index: 1; }
.art-lead { font-size: clamp(1.05rem, 1.3vw, 1.22rem); line-height: 1.6; max-width: 62ch; margin: 0; }
.art-ficha { margin: 0; display: grid; gap: 0; border-top: 1.5px solid var(--tinta); }
.art-ficha div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(13,13,15,.25); }
.art-ficha dt { font-family: var(--mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; align-self: center; }
.art-ficha dd { margin: 0; font-weight: 600; font-size: .92rem; text-align: right; }

.art-progreso { position: sticky; top: 0; z-index: 40; height: 4px; background: transparent; }
.art-progreso i { display: block; height: 100%; background: var(--acento); transform-origin: left; transform: scaleX(0); }


.art { display: grid; grid-template-columns: minmax(220px, 290px) minmax(0, 760px); justify-content: center; gap: clamp(36px, 6vw, 110px); padding-top: clamp(50px, 6vw, 90px); padding-bottom: clamp(70px, 8vw, 120px); }
.art-lateral { position: sticky; top: 100px; align-self: start; display: grid; gap: 22px; max-height: calc(100vh - 120px); overflow: auto; scrollbar-width: none; }
.art-indice ol { list-style: none; margin: 1rem 0 0; padding: 0; counter-reset: i; border-left: 1.5px solid rgba(13,13,15,.14); }
.art-indice li { counter-increment: i; }
.art-indice a { display: block; padding: .45rem 0 .45rem 1rem; margin-left: -1.5px; border-left: 3px solid transparent; font-size: .88rem; line-height: 1.35; color: #55524B; transition: color .25s, border-color .25s; }
.art-indice a:hover { color: var(--tinta); }
.art-indice a.on { color: var(--tinta); font-weight: 600; border-left-color: var(--acento); }
.art-cta { background: var(--tinta); color: var(--crema); border-radius: 22px; padding: 24px; display: grid; gap: .8rem; }
.art-cta b { font-family: var(--display); font-size: 1.3rem; line-height: 1.1; letter-spacing: -.03em; }
.art-cta p { font-size: .86rem; color: rgba(245,240,230,.72); margin: 0; }
.art-cta .btn { justify-content: center; min-height: 50px; }
.art-cta__tel { font-size: .85rem; text-align: center; color: rgba(245,240,230,.7); }
.art-cta__tel:hover { color: var(--sol); }

.art-texto { font-size: 1.06rem; line-height: 1.75; color: #24231F; min-width: 0; }
.art-texto > p:first-child { font-size: 1.2rem; line-height: 1.65; color: var(--tinta); }
.art-texto h2 { font-size: clamp(1.75rem, 2.8vw, 2.5rem); line-height: 1.05; letter-spacing: -.04em; color: var(--tinta); margin: 3.4rem 0 1.2rem; scroll-margin-top: 110px; text-wrap: balance; }
.art-texto h2::before { content: ""; display: block; width: 40px; height: 6px; border-radius: 3px; background: var(--acento); margin-bottom: 1.1rem; }
.art-texto h3 { font-size: 1.32rem; line-height: 1.2; letter-spacing: -.025em; margin: 2.2rem 0 .7rem; color: var(--tinta); scroll-margin-top: 110px; }
.art-texto h4 { font-family: var(--display); font-size: 1.08rem; letter-spacing: -.02em; margin: 0 0 .5rem; }
.art-texto strong { color: var(--tinta); }
.art-texto a:not(.btn):not(.btn-wa) { text-decoration: underline; text-decoration-color: var(--acento); text-decoration-thickness: 2px; text-underline-offset: 3px; font-weight: 500; }
.art-texto a:not(.btn):not(.btn-wa):hover { background: color-mix(in srgb, var(--acento) 30%, transparent); }
.art-texto ul:not([class]), .art-texto ol:not([class]), .art-texto ul.plain { padding-left: 1.2rem; margin: 0 0 1.4rem; }
.art-texto ul:not([class]) li, .art-texto ul.plain li { margin-bottom: .55rem; }
.art-texto ul:not([class]) li::marker, .art-texto ul.plain li::marker { color: var(--acento-osc); }
.art-texto svg.zi { width: 1.1em; height: 1.1em; vertical-align: -.18em; }


.art-texto .table-scroll { overflow-x: auto; margin: 1.8rem 0; border-radius: 18px; }
.art-texto .compare-table { width: 100%; border-collapse: collapse; margin: 1.8rem 0; font-size: .92rem; line-height: 1.45; background: var(--blanco); border-radius: 18px; overflow: hidden; }
.art-texto .table-scroll .compare-table { margin: 0; min-width: 560px; }
.art-texto .compare-table th { background: var(--tinta); color: var(--crema); font-family: var(--mono); font-weight: 500; font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; text-align: left; padding: 14px 16px; }
.art-texto .compare-table td { padding: 13px 16px; border-top: 1px solid rgba(13,13,15,.08); vertical-align: top; }
.art-texto .compare-table tr:nth-child(even) td { background: rgba(237,230,216,.45); }
.art-texto .compare-table td.winner, .art-texto .compare-table td.win, .art-texto .compare-table td.good { background: color-mix(in srgb, var(--acento) 26%, var(--blanco)) !important; font-weight: 600; color: var(--tinta); }
.art-texto .compare-table td.bad { color: #A32626; }
.art-texto .compare-table td.price-range { font-family: var(--display); font-weight: 700; white-space: nowrap; }
.art-texto .table-caption { font-family: var(--mono); font-size: .74rem; color: var(--piedra); margin: -.9rem 0 1.8rem; }


.art-texto [class^="article-highlight"], .art-texto .article-note { background: var(--blanco); border-left: 6px solid var(--acento); border-radius: 4px 18px 18px 4px; padding: 20px 24px; margin: 1.8rem 0; font-size: .98rem; }
.art-texto .article-highlight-blue { border-left-color: var(--agua); }
.art-texto .article-highlight-orange { border-left-color: var(--fv); }
.art-texto .article-highlight-red { border-left-color: #E5484D; background: #FFF4F1; }
.art-texto .article-note { border-left-color: var(--piedra); font-size: .88rem; }
.art-texto [class^="article-highlight"] > :last-child, .art-texto .article-note > :last-child { margin-bottom: 0; }


.art-texto .stat-row, .art-texto .stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 2rem 0; }
.art-texto .stat-box { background: var(--tinta); color: var(--crema); border-radius: 20px; padding: 22px; display: flex; flex-direction: column; gap: .6rem; }
.art-texto .stat-value, .art-texto .stat-num { font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 3.6vw, 2.9rem); letter-spacing: -.05em; line-height: 1; color: var(--acento); }
.art-texto .stat-label { font-size: .82rem; line-height: 1.4; color: rgba(245,240,230,.75); }


.art-texto .info-grid, .art-texto .region-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 12px; margin: 1.8rem 0; }
.art-texto .info-card, .art-texto .region-card { background: var(--blanco); border-radius: 18px; padding: 20px 22px; font-size: .94rem; }
.art-texto .info-card > :last-child, .art-texto .region-card > :last-child { margin-bottom: 0; }
.art-texto .steps-list { list-style: none; padding: 0; margin: 1.8rem 0; display: grid; gap: 10px; }
.art-texto .steps-list li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; background: var(--blanco); border-radius: 18px; padding: 16px 20px 16px 16px; }
.art-texto .steps-list li p { margin: 0; }
.art-texto .step-num { width: 44px; height: 44px; border-radius: 50%; background: var(--acento); color: var(--tinta); display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1.1rem; }
.art-texto .feature-list { list-style: none; padding: 0; margin: 1.8rem 0; display: grid; gap: 10px; }
.art-texto .feature-list li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: center; }
.art-texto .feature-list li p { margin: 0; }
.art-texto .feature-icon { width: 44px; height: 44px; border-radius: 14px; background: var(--acento); display: grid; place-items: center; font-size: 1.2rem; }


.art-texto .criteria-card { display: grid; grid-template-columns: 64px 1fr; gap: 20px; background: var(--blanco); border-radius: 22px; padding: 24px; margin: 14px 0; }
.art-texto .criteria-num { width: 64px; height: 64px; border-radius: 18px; background: var(--acento); display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1.7rem; letter-spacing: -.04em; }
.art-texto .criteria-num-red { background: #FFD9D2; color: #A32626; }
.art-texto .criteria-body h3 { margin-top: 0; font-size: 1.2rem; }
.art-texto .criteria-body p:last-of-type { margin-bottom: .8rem; }
.art-texto .criteria-zenthera, .art-texto .criteria-fix { display: inline-flex; gap: .5em; align-items: flex-start; font-size: .84rem; line-height: 1.45; background: var(--crema); border-radius: 12px; padding: 10px 14px; }
.art-texto .criteria-fix { background: #FFF4F1; }


.art-texto .winner-box, .art-texto .article-cta, .art-texto .caja-cta { background: var(--tinta); color: var(--crema); border-radius: 26px; padding: clamp(26px, 3.4vw, 44px); margin: 2.6rem 0; }
.art-texto .winner-box h2, .art-texto .article-cta h2, .art-texto .article-cta h3, .art-texto .caja-cta h2, .art-texto .caja-cta h3 { color: var(--crema); margin-top: 0; }
.art-texto .winner-box h2::before, .art-texto .article-cta h2::before, .art-texto .caja-cta h2::before { background: var(--acento); }
.art-texto .winner-box strong, .art-texto .article-cta strong, .art-texto .caja-cta strong { color: var(--crema); }
.art-texto .winner-box p, .art-texto .article-cta p, .art-texto .caja-cta p { color: rgba(245,240,230,.8); }
.art-texto .caja-cta > p:first-child { font-family: var(--mono); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--acento); }
.art-texto .winner-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-top: 1.4rem; }
.art-texto .winner-stat { border-top: 1.5px solid rgba(245,240,230,.25); padding-top: .8rem; }
.art-texto .winner-stat strong { display: block; font-family: var(--display); font-size: 2rem; letter-spacing: -.04em; color: var(--acento); line-height: 1; }
.art-texto .winner-stat span { font-size: .8rem; color: rgba(245,240,230,.7); }
.art-texto .cta-buttons, .art-texto .article-cta > div:last-child { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.4rem; }
.art-texto .cta-inline { display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; border: 2px solid var(--tinta); border-radius: 22px; padding: 20px 22px; margin: 2rem 0; }
.art-texto .cta-inline p { margin: 0; flex: 1 1 320px; font-size: .96rem; }


.art-texto .btn, .art-texto .btn-wa { display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 50px; padding: 0 1.4em; border-radius: 999px; font-weight: 600; font-size: .92rem; text-decoration: none; border: 1.5px solid transparent; background: var(--sol); color: var(--tinta); }
.art-texto .btn-outline { background: transparent; border-color: rgba(245,240,230,.5); color: var(--crema); }
.art-texto .btn-wa { background: #25D366; color: var(--tinta); }
.art-texto .btn:hover, .art-texto .btn-wa:hover { filter: brightness(.95); transform: translateY(-1px); }


.art-texto .faq-list { display: grid; gap: 10px; margin: 1.6rem 0; }
.art-texto .faq-item { background: var(--blanco); border-radius: 18px; padding: 20px 24px; margin: 10px 0; }
.art-texto .faq-list .faq-item { margin: 0; padding: 0; }
.art-texto .faq-item h3 { margin: 0 0 .5rem; font-size: 1.1rem; }
.art-texto .faq-item > p:last-child { margin-bottom: 0; font-size: .96rem; }
.art-texto .faq-question { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; text-align: left; background: none; border: 0; padding: 20px 24px; font: 700 1.05rem/1.3 var(--display); letter-spacing: -.02em; color: var(--tinta); cursor: pointer; }
.art-texto .faq-icon { flex: 0 0 34px; height: 34px; border-radius: 50%; background: var(--acento); display: grid; place-items: center; font-family: var(--texto); font-weight: 400; transition: transform .4s var(--curva); }
.art-texto .faq-item.open .faq-icon { transform: rotate(45deg); }
.art-texto .faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--curva); padding: 0 24px; }
.art-texto .faq-answer > * { overflow: hidden; }
.art-texto .faq-item.open .faq-answer { grid-template-rows: 1fr; padding-bottom: 20px; }
.art-texto .faq-answer p { margin: 0; font-size: .96rem; }


.art-mas { padding-bottom: clamp(80px, 9vw, 130px); }
.art-mas__cab { display: flex; justify-content: space-between; align-items: baseline; padding-top: clamp(40px, 5vw, 70px); border-top: 1.5px solid var(--tinta); margin-bottom: 24px; }
.art-mas__cab a { font-weight: 600; border-bottom: 2px solid var(--sol); }
.posts--tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 1000px) {
  .art { grid-template-columns: minmax(0, 1fr); }
  .art-lateral { position: static; max-height: none; order: 2; }
  .art-indice { display: none; }
  .art-hero__pie { grid-template-columns: 1fr; }
  .post--grande { grid-template-columns: 1fr; grid-template-rows: auto; }
  .post--grande p { grid-column: 1; grid-row: auto; }
  .posts--tres { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .post { min-height: 0; }
  .art-texto { font-size: 1rem; }
  .art-texto .criteria-card { grid-template-columns: 1fr; }
  .art-texto .steps-list li { grid-template-columns: 36px 1fr; gap: 12px; }
  .art-texto .step-num { width: 36px; height: 36px; font-size: .95rem; }
  .art-mas__cab { flex-direction: column; gap: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .post, .post::before, .post__ir i, .faq-answer { transition: none !important; }
}
