/* Web de Vane — colores claros sacados de la foto (camisa celeste, pared, cuadro, planta).
   Los colores van por FUNCIÓN (fondo, botón, acento…) y cada paleta los redefine:
   <html data-paleta="celeste|arena|salvia|rosa|lavanda|blanco">. Se elige en la misma
   página (botón «Colores») y queda fija desde el panel. */
:root, :root[data-paleta="celeste"] {
  --fondo: #F5F8FC;  --fondo-2: #EDF2F9;  --papel: #FFFFFF;
  --tinta: #26303D;  --tinta-2: #56606E;  --tinta-3: #8A93A0;  --linea: #DEE6F0;
  --primario: #C3D7EE;  --primario-2: #AFC8E6;  --sobre-primario: #1F3350;
  --acento: #9DB7D8;  --acento-texto: #52739B;  --destacado: #3E5F88;
  --suave-1: #E1EBF7;  --suave-1-t: #33507A;
  --suave-2: #E6EEE0;  --suave-2-t: #46593A;
  --suave-3: #F5E6E0;  --suave-3-t: #7A4F45;
  --mancha: #E1EBF7;  --brillo-1: rgba(195, 215, 238, .5);  --brillo-2: rgba(243, 221, 214, .45);
  --pie: #E6EEF8;  --pie-texto: #26303D;  --pie-tenue: #66728A;
}
:root[data-paleta="arena"] {
  --fondo: #FAF7F2;  --fondo-2: #F4EEE5;  --papel: #FFFFFF;
  --tinta: #2F2A25;  --tinta-2: #625A51;  --tinta-3: #968C81;  --linea: #EAE1D5;
  --primario: #EADCC8;  --primario-2: #E0CDB4;  --sobre-primario: #4A3A2A;
  --acento: #CDB293;  --acento-texto: #87694A;  --destacado: #86653F;
  --suave-1: #F1E7DA;  --suave-1-t: #6E5438;
  --suave-2: #E6ECDF;  --suave-2-t: #4A5A3E;
  --suave-3: #E3ECF6;  --suave-3-t: #3E5A7C;
  --mancha: #EFE4D6;  --brillo-1: rgba(234, 220, 200, .55);  --brillo-2: rgba(195, 215, 238, .35);
  --pie: #F1E9DD;  --pie-texto: #2F2A25;  --pie-tenue: #7F7366;
}
:root[data-paleta="salvia"] {
  --fondo: #F6F8F3;  --fondo-2: #EDF2E7;  --papel: #FFFFFF;
  --tinta: #283025;  --tinta-2: #58624F;  --tinta-3: #8B947F;  --linea: #DFE6D6;
  --primario: #D2E0C5;  --primario-2: #C1D4B0;  --sobre-primario: #2C3D22;
  --acento: #A9BD96;  --acento-texto: #5A7646;  --destacado: #4F6D3E;
  --suave-1: #E3ECD9;  --suave-1-t: #46603A;
  --suave-2: #F2EBDD;  --suave-2-t: #6B5738;
  --suave-3: #E4ECF6;  --suave-3-t: #3E5A7C;
  --mancha: #E4ECDB;  --brillo-1: rgba(210, 224, 197, .55);  --brillo-2: rgba(234, 220, 200, .35);
  --pie: #E8EFE0;  --pie-texto: #283025;  --pie-tenue: #6E7A63;
}
:root[data-paleta="rosa"] {
  --fondo: #FCF8F7;  --fondo-2: #F8EEEC;  --papel: #FFFFFF;
  --tinta: #33282A;  --tinta-2: #685A5C;  --tinta-3: #9B8C8E;  --linea: #F0E1DF;
  --primario: #F2D6D1;  --primario-2: #EBC5BE;  --sobre-primario: #54302B;
  --acento: #DDB1A9;  --acento-texto: #975C53;  --destacado: #955A52;
  --suave-1: #F8E4E0;  --suave-1-t: #7C4A43;
  --suave-2: #EDE7F3;  --suave-2-t: #5A4C75;
  --suave-3: #E6EEE0;  --suave-3-t: #46593A;
  --mancha: #F6E2DE;  --brillo-1: rgba(242, 214, 209, .55);  --brillo-2: rgba(217, 211, 239, .35);
  --pie: #F7E9E6;  --pie-texto: #33282A;  --pie-tenue: #84706F;
}
:root[data-paleta="lavanda"] {
  --fondo: #F8F7FC;  --fondo-2: #F0EEF8;  --papel: #FFFFFF;
  --tinta: #2B2838;  --tinta-2: #5E5A70;  --tinta-3: #918DA3;  --linea: #E4E1F0;
  --primario: #DCD5F0;  --primario-2: #CDC3EA;  --sobre-primario: #342A5C;
  --acento: #B8ACDE;  --acento-texto: #685A9F;  --destacado: #5F5297;
  --suave-1: #E9E4F7;  --suave-1-t: #51457E;
  --suave-2: #F6E6E6;  --suave-2-t: #7A4F4F;
  --suave-3: #E2ECF6;  --suave-3-t: #3E5A7C;
  --mancha: #ECE7F8;  --brillo-1: rgba(220, 213, 240, .55);  --brillo-2: rgba(195, 215, 238, .35);
  --pie: #EEEBF8;  --pie-texto: #2B2838;  --pie-tenue: #7A7690;
}
:root[data-paleta="blanco"] {
  --fondo: #FFFFFF;  --fondo-2: #F7F7F5;  --papel: #FFFFFF;
  --tinta: #262626;  --tinta-2: #5A5A58;  --tinta-3: #92918D;  --linea: #E8E7E3;
  --primario: #ECEAE6;  --primario-2: #E0DDD7;  --sobre-primario: #262626;
  --acento: #C9C5BD;  --acento-texto: #736E65;  --destacado: #4A4640;
  --suave-1: #F2F1EE;  --suave-1-t: #4A4640;
  --suave-2: #EEF2F7;  --suave-2-t: #3E5A7C;
  --suave-3: #F1F4EC;  --suave-3-t: #46593A;
  --mancha: #F3F2EF;  --brillo-1: rgba(236, 234, 230, .6);  --brillo-2: rgba(225, 235, 247, .45);
  --pie: #F7F7F5;  --pie-texto: #262626;  --pie-tenue: #7F7D78;
}
:root {
  --bien: #3F8360;  --bien-suave: #E4F2EA;
  --mal: #B0473A;   --mal-suave: #F8E6E2;
  --aviso: #8A5A20; --aviso-suave: #FBF0DF;
  --sombra: 0 1px 2px rgba(35, 45, 60, .05), 0 8px 24px rgba(35, 45, 60, .07);
  --sombra-alta: 0 2px 4px rgba(35, 45, 60, .05), 0 22px 48px rgba(35, 45, 60, .12);
  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ancho: 1160px;
  --suave: cubic-bezier(.22, .8, .24, 1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--fondo); color: var(--tinta);
  font: 17px/1.65 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden;
  transition: background .5s;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -.01em; line-height: 1.12; margin: 0; }
h2 { font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem); }
h2 em, h1 em { font-style: italic; color: var(--destacado); }
p { margin: 0 0 1em; }
svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2.5px solid var(--acento-texto); outline-offset: 3px; border-radius: 8px; }

.saltar { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--primario); color: var(--sobre-primario); padding: 8px 14px; border-radius: 8px; }
.saltar:focus { left: 16px; }
.contenedor { width: min(var(--ancho), 100% - 32px); margin-inline: auto; }

/* ------------------------------------------------------------ botones */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  background: var(--primario); color: var(--sobre-primario); border: 0; border-radius: 999px;
  padding: .9em 1.5em; font-weight: 600; font-size: .98rem; text-decoration: none; cursor: pointer;
  box-shadow: 0 6px 18px var(--brillo-1);
  transition: transform .25s var(--suave), box-shadow .25s var(--suave), background .2s;
}
.boton:hover { background: var(--primario-2); transform: translateY(-2px); box-shadow: 0 10px 26px var(--brillo-1); }
.boton:active { transform: translateY(0); }
.boton svg { transition: transform .25s var(--suave); }
.boton:hover svg { transform: translateX(3px); }
.boton[disabled] { background: var(--linea); color: var(--tinta-3); box-shadow: none; cursor: not-allowed; transform: none; }
.boton-suave { background: var(--papel); color: var(--sobre-primario); box-shadow: inset 0 0 0 1.5px var(--primario-2); }
.boton-suave:hover { background: var(--fondo-2); box-shadow: inset 0 0 0 1.5px var(--acento); }
.boton-chico { padding: .6em 1.15em; font-size: .92rem; }
.boton-texto { background: none; color: var(--tinta-2); box-shadow: none; padding: .7em .6em; }
.boton-texto:hover { background: none; color: var(--destacado); box-shadow: none; transform: none; }
.boton-texto:hover svg { transform: translateX(-3px); }

/* ------------------------------------------------------------ vista previa */
.previa {
  display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center;
  background: var(--suave-3); color: var(--suave-3-t); font-size: .82rem; padding: 7px 16px; line-height: 1.4;
}
.previa[hidden] { display: none; }
.previa-punto { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; animation: latido 2s infinite; }

/* ------------------------------------------------------------ barra */
.barra { position: sticky; top: 0; z-index: 50; transition: background .3s, box-shadow .3s, backdrop-filter .3s; }
.barra.pegada { background: color-mix(in srgb, var(--fondo) 86%, transparent); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 1px 0 var(--linea); }
.barra-in { width: min(var(--ancho), 100% - 32px); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; height: 76px; gap: 16px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.monograma {
  width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: var(--primario); color: var(--sobre-primario); font-family: var(--serif); font-style: italic; font-size: 1.35rem;
  box-shadow: inset 0 0 0 3px var(--primario), inset 0 0 0 4px var(--papel);
}
.marca-txt { display: flex; flex-direction: column; line-height: 1.15; }
.marca-txt strong { font-family: var(--serif); font-weight: 500; font-size: 1.14rem; }
.marca-txt small { color: var(--tinta-3); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.menu { display: flex; align-items: center; gap: 26px; }
.menu a:not(.boton) { text-decoration: none; font-size: .95rem; color: var(--tinta-2); position: relative; padding: 4px 0; }
.menu a:not(.boton)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px; background: var(--acento); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--suave); }
.menu a:not(.boton):hover { color: var(--destacado); }
.menu a:not(.boton):hover::after, .menu a.actual::after { transform: scaleX(1); }
.hamburguesa { display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; position: relative; }
.hamburguesa span { position: absolute; left: 11px; right: 11px; height: 1.8px; background: var(--tinta); border-radius: 2px; transition: transform .3s var(--suave), top .3s var(--suave); }
.hamburguesa span:first-child { top: 17px; }
.hamburguesa span:last-child { top: 26px; }
.hamburguesa[aria-expanded="true"] span:first-child { top: 21.5px; transform: rotate(45deg); }
.hamburguesa[aria-expanded="true"] span:last-child { top: 21.5px; transform: rotate(-45deg); }

/* ------------------------------------------------------------ portada */
.portada { position: relative; padding: 40px 0 90px; overflow: hidden; }
.portada::before {
  content: ""; position: absolute; inset: -10% -10% -30% 35%;
  background: radial-gradient(closest-side, var(--brillo-1), transparent); pointer-events: none;
}
.portada::after {
  content: ""; position: absolute; inset: 30% 55% -20% -15%;
  background: radial-gradient(closest-side, var(--brillo-2), transparent); pointer-events: none;
}
.portada-in { position: relative; z-index: 1; width: min(var(--ancho), 100% - 32px); margin-inline: auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.etiqueta {
  display: inline-flex; align-items: center; gap: 10px; background: var(--papel); border: 1px solid var(--linea);
  border-radius: 999px; padding: 6px 14px 6px 10px; font-size: .86rem; color: var(--tinta-2); margin-bottom: 26px;
}
.etiqueta-punto { width: 8px; height: 8px; border-radius: 50%; background: var(--suave-2-t); box-shadow: 0 0 0 4px var(--suave-2); }
.portada h1 { font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.4rem); line-height: 1.04; letter-spacing: -.025em; margin-bottom: 24px; font-weight: 350; }
.bajada { font-size: 1.13rem; color: var(--tinta-2); max-width: 34em; }
.acciones { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 34px; }
.acciones-centro { justify-content: center; }
.garantias { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; color: var(--tinta-2); font-size: .92rem; }
.garantias li { display: flex; align-items: center; gap: 8px; }
.garantias svg { color: var(--acento-texto); }

.portada-foto { position: relative; justify-self: center; width: min(100%, 440px); padding: 20px 10px 40px; }
.mancha { position: absolute; width: 112%; height: auto; left: -6%; top: 2%; z-index: 0; animation: deriva 18s ease-in-out infinite alternate; }
.mancha path { fill: var(--mancha); stroke: none; transition: fill .5s; }
.trazo { position: absolute; width: 46%; right: -14%; top: -4%; z-index: 2; opacity: .8; }
.trazo path { stroke: var(--acento-texto); stroke-width: 1.4; stroke-dasharray: 700; stroke-dashoffset: 700; }
.visto .trazo path, .trazo.visto path { animation: dibujar 3.2s .6s var(--suave) forwards; }
.arco {
  position: relative; z-index: 1; margin: 0; aspect-ratio: 5 / 6; border-radius: 999px 999px 26px 26px; overflow: hidden;
  box-shadow: var(--sombra-alta); background: var(--fondo-2);
}
.arco img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; transform: scale(1.08); transition: transform 1.6s var(--suave); }
.portada-foto.visto .arco img { transform: scale(1); }
.flota {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: 12px; background: color-mix(in srgb, var(--papel) 94%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 16px; box-shadow: var(--sombra);
  padding: 12px 16px; font-size: .86rem; line-height: 1.3; border: 1px solid var(--linea);
}
.flota[hidden] { display: none; }
.flota small { display: block; color: var(--tinta-3); font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; }
.flota strong { font-weight: 600; font-size: .98rem; }
.flota-turno { left: -34px; bottom: 90px; animation: flotar 6s ease-in-out infinite; }
.flota-pago { right: -28px; bottom: 12px; max-width: 230px; animation: flotar 7s -3s ease-in-out infinite; }
.flota-pago svg { color: var(--suave-2-t); width: 1.5em; height: 1.5em; }
.vivo { width: 10px; height: 10px; border-radius: 50%; background: var(--bien); flex: none; box-shadow: 0 0 0 0 rgba(63, 131, 96, .5); animation: pulso 2.2s infinite; }
.bajar { position: absolute; left: 50%; bottom: 22px; width: 26px; height: 42px; border: 1.6px solid var(--tinta-3); border-radius: 20px; transform: translateX(-50%); z-index: 1; }
.bajar span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--tinta-3); animation: rueda 2s infinite; }

/* ------------------------------------------------------------ secciones */
.seccion { padding: clamp(72px, 9vw, 120px) 0; position: relative; }
.kicker { font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--acento-texto); font-weight: 600; margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }
.kicker::before { content: ""; width: 28px; height: 1.5px; background: var(--acento); }
.kicker-chico { font-size: .74rem; }
.titulo-seccion { text-align: center; max-width: 680px; margin: 0 auto 54px; }
.titulo-seccion .kicker { justify-content: center; }
.titulo-izq { text-align: left; margin: 0; }
.titulo-izq .kicker { justify-content: flex-start; }
.sub { color: var(--tinta-2); font-size: 1.06rem; margin-top: 16px; }

/* sobre mí */
.sobre { background: var(--papel); }
.sobre-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 7vw, 100px); align-items: start; }
.sobre-lado { position: sticky; top: 110px; }
.cita {
  margin: 30px 0 22px; padding: 0 0 0 22px; border-left: 2px solid var(--acento);
  font-family: var(--serif); font-style: italic; font-size: 1.32rem; line-height: 1.5; color: var(--destacado); font-weight: 350;
}
.cita:empty { display: none; }
.firma { color: var(--tinta-3); font-size: .92rem; display: flex; flex-direction: column; }
.firma span:first-child { font-family: var(--serif); font-size: 1.1rem; color: var(--tinta); }
.sobre-txt #bio p { font-size: 1.08rem; color: var(--tinta-2); }
.sobre-txt #bio p:first-child::first-letter { font-family: var(--serif); float: left; font-size: 3.6em; line-height: .86; padding: 6px 10px 0 0; color: var(--destacado); }
.enfoques { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--linea); }
.chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.chips li { background: var(--suave-1); color: var(--suave-1-t); padding: 8px 16px; border-radius: 999px; font-size: .92rem; font-weight: 500; transition: transform .2s var(--suave); }
.chips li:nth-child(3n+2) { background: var(--suave-2); color: var(--suave-2-t); }
.chips li:nth-child(3n) { background: var(--suave-3); color: var(--suave-3-t); }
.chips li:hover { transform: translateY(-2px); }

/* servicios */
.servicios { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 22px; }
.servicio {
  background: var(--papel); border: 1px solid var(--linea); border-radius: 24px; padding: 30px 28px 26px;
  display: flex; flex-direction: column; gap: 14px; position: relative; overflow: hidden;
  transition: transform .35s var(--suave), box-shadow .35s var(--suave), border-color .35s;
}
.servicio::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--primario-2), var(--suave-3)); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--suave); }
.servicio:hover { transform: translateY(-6px); box-shadow: var(--sombra-alta); border-color: transparent; }
.servicio:hover::before { transform: scaleX(1); }
.servicio h3 { font-size: 1.55rem; }
.servicio p { color: var(--tinta-2); margin: 0; flex: 1; }
.servicio-datos { display: flex; flex-wrap: wrap; gap: 8px; }
.pastilla { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; padding: 5px 11px; border-radius: 999px; background: var(--fondo-2); color: var(--tinta-2); border: 1px solid var(--linea); }
.pastilla svg { width: 1em; height: 1em; }
.servicio-pie { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 8px; padding-top: 18px; border-top: 1px dashed var(--linea); }
.precio { font-family: var(--serif); font-size: 1.7rem; line-height: 1; color: var(--destacado); }
.precio small { display: block; font-family: var(--sans); font-size: .8rem; color: var(--tinta-3); margin-top: 6px; }

.pasos { list-style: none; padding: 0; margin: 64px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; position: relative; }
.pasos li { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border-radius: 20px; background: var(--papel); border: 1px solid var(--linea); }
.pasos strong { display: block; font-size: 1.04rem; margin-bottom: 4px; }
.pasos p { margin: 0; color: var(--tinta-2); font-size: .94rem; }
.paso-n { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--suave-1); color: var(--suave-1-t); font-family: var(--serif); font-size: 1.2rem; }
.pasos li:nth-child(2) .paso-n { background: var(--suave-2); color: var(--suave-2-t); }
.pasos li:nth-child(3) .paso-n { background: var(--suave-3); color: var(--suave-3-t); }

/* trayectoria */
.trayectoria { background: linear-gradient(180deg, var(--fondo), var(--papel)); }
.linea-doble { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 6vw, 80px); }
.col-titulo { display: flex; align-items: center; gap: 12px; font-size: 1.5rem; margin-bottom: 28px; }
.col-titulo svg { width: 42px; height: 42px; padding: 9px; border-radius: 50%; background: var(--suave-1); color: var(--suave-1-t); stroke-width: 1.6; }
.linea { list-style: none; margin: 0; padding: 0 0 0 26px; position: relative; }
.linea::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 1.5px; background: linear-gradient(var(--acento), var(--linea)); }
.linea li { position: relative; padding: 0 0 30px 16px; }
.linea li::before { content: ""; position: absolute; left: -26px; top: 7px; width: 13px; height: 13px; border-radius: 50%; background: var(--papel); border: 2.5px solid var(--acento); transition: background .3s; }
.linea li:hover::before { background: var(--acento); }
.linea time { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--acento-texto); font-weight: 600; }
.linea strong { display: block; font-family: var(--serif); font-weight: 450; font-size: 1.22rem; margin: 3px 0 2px; }
.linea span { color: var(--tinta-2); font-size: .96rem; }

/* ------------------------------------------------------------ reserva */
.reservar { background: var(--fondo); }
.reservar::before { content: ""; position: absolute; inset: 12% 0 auto; height: 420px; background: radial-gradient(40% 60% at 15% 50%, var(--brillo-2), transparent), radial-gradient(40% 60% at 85% 40%, var(--brillo-1), transparent); pointer-events: none; }
.reserva {
  position: relative; max-width: 940px; margin: 0 auto; background: var(--papel); border-radius: 30px;
  box-shadow: var(--sombra-alta); border: 1px solid var(--linea); padding: clamp(22px, 4vw, 44px); overflow: hidden;
}
.etapas { list-style: none; margin: 0 0 34px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.etapas li { display: flex; align-items: center; gap: 10px; font-size: .9rem; color: var(--tinta-3); position: relative; padding-bottom: 12px; }
.etapas li::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px; background: var(--linea); }
.etapas li::before { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; border-radius: 3px; background: var(--primario-2); z-index: 1; transition: width .5s var(--suave); }
.etapas li.activa::before, .etapas li.hecha::before { width: 100%; }
.etapas li span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--fondo-2); font-weight: 600; font-size: .85rem; transition: background .3s, color .3s; flex: none; }
.etapas li em { font-style: normal; }
.etapas li.activa { color: var(--tinta); font-weight: 600; }
.etapas li.activa span, .etapas li.hecha span { background: var(--primario); color: var(--sobre-primario); }

.etapa { display: none; }
.etapa.visible { display: block; animation: entrar .5s var(--suave); }
.etapa-titulo { font-weight: 600; margin: 0 0 14px; font-size: 1.02rem; }
.etapa-titulo:not(:first-child) { margin-top: 30px; }
.etapa-titulo[hidden], .segmento[hidden] { display: none; }
.etapa-pie { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--linea); }

.opciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.opcion {
  text-align: left; background: var(--fondo-2); border: 1.5px solid transparent; border-radius: 18px; padding: 18px 20px; cursor: pointer;
  display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; transition: border-color .2s, background .2s, transform .2s var(--suave);
}
.opcion:hover { transform: translateY(-2px); border-color: var(--primario-2); }
.opcion[aria-checked="true"] { background: var(--papel); border-color: var(--acento); box-shadow: 0 0 0 4px var(--brillo-1); }
.opcion strong { font-size: 1.05rem; }
.opcion .opcion-precio { font-family: var(--serif); color: var(--destacado); font-size: 1.15rem; text-align: right; }
.opcion small { color: var(--tinta-3); grid-column: 1 / -1; }
.segmento { display: inline-flex; background: var(--fondo-2); border-radius: 999px; padding: 5px; gap: 4px; }
.segmento button { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; border-radius: 999px; padding: 10px 20px; cursor: pointer; color: var(--tinta-2); font-weight: 500; transition: background .25s, color .25s, box-shadow .25s; }
.segmento button[aria-checked="true"] { background: var(--papel); color: var(--destacado); box-shadow: var(--sombra); }
.segmento button[disabled] { opacity: .4; cursor: not-allowed; }
.nota-online { display: flex; align-items: center; gap: 10px; margin: 22px 0 0; padding: 12px 16px; border-radius: 14px; background: var(--suave-1); color: var(--suave-1-t); font-size: .94rem; }
.nota-online[hidden] { display: none; }

.agenda { display: grid; grid-template-columns: 1.1fr .9fr; gap: 34px; }
.cal-cabeza { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cal-cabeza strong { font-family: var(--serif); font-weight: 450; font-size: 1.3rem; }
.cal-flecha { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--linea); background: var(--papel); cursor: pointer; display: grid; place-items: center; transition: background .2s; }
.cal-flecha:hover:not([disabled]) { background: var(--fondo-2); }
.cal-flecha[disabled] { opacity: .35; cursor: default; }
.cal-semana, .cal-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; text-align: center; }
.cal-semana span { font-size: .76rem; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .06em; padding-bottom: 6px; }
.cal-dia { aspect-ratio: 1; border: 0; border-radius: 12px; background: none; font-size: .95rem; color: var(--tinta-3); opacity: .6; cursor: default; position: relative; display: grid; place-items: center; }
.cal-dia.libre { color: var(--tinta); opacity: 1; background: var(--fondo-2); cursor: pointer; font-weight: 600; transition: background .2s, transform .2s var(--suave); }
.cal-dia.libre::after { content: ""; position: absolute; bottom: 6px; width: 5px; height: 5px; border-radius: 50%; background: var(--acento-texto); }
.cal-dia.libre:hover { background: var(--suave-1); transform: scale(1.05); }
.cal-dia.elegido { background: var(--primario-2) !important; color: var(--sobre-primario); }
.cal-dia.elegido::after { background: var(--sobre-primario); }
.cal-dia.hoy { box-shadow: inset 0 0 0 1.5px var(--acento); opacity: 1; }
.horas-dia { font-family: var(--serif); font-size: 1.25rem; margin: 6px 0 2px; }
.zona { font-size: .82rem; color: var(--tinta-3); margin-bottom: 18px; }
.zona-caja { max-width: 440px; margin-bottom: 26px; }
.zona-caja .zona { margin: 8px 0 0; }
.franja-titulo { font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); margin: 14px 0 8px; }
.chips-hora { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.hora {
  border: 1.5px solid var(--linea); background: var(--papel); border-radius: 12px; padding: 10px 6px; cursor: pointer; font-weight: 600;
  display: flex; flex-direction: column; align-items: center; line-height: 1.2; transition: border-color .2s, background .2s, transform .2s var(--suave);
  animation: entrar .4s var(--suave) backwards;
}
.hora small { font-weight: 400; font-size: .72rem; color: var(--tinta-3); }
.hora:hover { border-color: var(--acento); transform: translateY(-2px); }
.hora[aria-pressed="true"] { background: var(--primario); color: var(--sobre-primario); border-color: var(--primario-2); }
.hora[aria-pressed="true"] small { color: var(--sobre-primario); opacity: .7; }
.vacio { color: var(--tinta-3); font-size: .95rem; padding: 26px; text-align: center; border: 1.5px dashed var(--linea); border-radius: 16px; }

.resumen-chico { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 14px 18px; background: var(--fondo-2); border-radius: 14px; margin-bottom: 24px; font-size: .94rem; color: var(--tinta-2); }
.resumen-chico b { color: var(--tinta); font-weight: 600; }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.campo { display: flex; flex-direction: column; gap: 7px; font-size: .9rem; font-weight: 500; color: var(--tinta-2); }
.campo em { font-style: normal; color: var(--tinta-3); font-weight: 400; }
.campo-ancho { grid-column: 1 / -1; }
.campo input, .campo textarea, .campo select {
  font: inherit; font-size: 1rem; color: var(--tinta); background: var(--papel); border: 1.5px solid var(--linea); border-radius: 12px; padding: 12px 14px;
  transition: border-color .2s, box-shadow .2s; width: 100%;
}
.campo textarea { resize: vertical; min-height: 90px; }
.campo input:focus, .campo textarea:focus, .campo select:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 4px var(--brillo-1); }
.campo input.malo { border-color: var(--mal); }
.error { color: var(--mal); font-size: .92rem; min-height: 1.4em; margin: 14px 0 0; }

.pago { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; align-items: start; }
.pago-resumen { background: linear-gradient(160deg, var(--suave-1), var(--fondo-2)); color: var(--tinta); border-radius: 22px; padding: 26px; position: relative; overflow: hidden; border: 1px solid var(--linea); }
.pago-resumen::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 180px; height: 180px; border-radius: 50%; background: var(--suave-3); opacity: .7; }
.pago-resumen h4 { font-family: var(--serif); font-weight: 400; font-size: 1.4rem; margin: 0 0 18px; color: var(--tinta); }
.pago-resumen dl { margin: 0; display: grid; gap: 12px; position: relative; z-index: 1; }
.pago-resumen dt { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--acento-texto); }
.pago-resumen dd { margin: 0; font-size: 1rem; }
.pago-resumen .total { margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--linea); font-family: var(--serif); font-size: 1.6rem; color: var(--destacado); }
.reloj { display: flex; align-items: center; gap: 10px; font-size: .9rem; color: var(--tinta-2); background: var(--suave-1); padding: 10px 14px; border-radius: 12px; margin-bottom: 20px; }
.reloj strong { font-variant-numeric: tabular-nums; color: var(--suave-1-t); }
.reloj.apurado { background: var(--mal-suave); }
.reloj.apurado strong { color: var(--mal); }
.medios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.medio {
  border: 1.5px solid var(--linea); background: var(--papel); border-radius: 16px; padding: 14px 8px; cursor: pointer; display: flex; flex-direction: column;
  align-items: center; gap: 6px; font-weight: 600; font-size: .92rem; transition: border-color .2s, transform .2s var(--suave), box-shadow .2s;
}
.medio svg { width: 26px; height: 26px; color: var(--destacado); }
.medio small { font-weight: 400; font-size: .74rem; color: var(--tinta-3); }
.medio:hover:not([disabled]) { transform: translateY(-2px); border-color: var(--acento); }
.medio[aria-selected="true"] { border-color: var(--acento); box-shadow: 0 0 0 4px var(--brillo-1); }
.medio[disabled] { opacity: .5; cursor: not-allowed; }
.medio-panel { margin-top: 22px; min-height: 40px; }
.medio-panel:empty { display: none; }
.qr-caja { display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: center; padding: 20px; background: var(--fondo-2); border-radius: 20px; animation: entrar .5s var(--suave); }
.qr-img { width: 184px; height: 184px; padding: 10px; background: #FFFFFF; border-radius: 16px; box-shadow: var(--sombra); display: grid; place-items: center; }
.qr-img img { width: 100%; height: 100%; image-rendering: pixelated; }
.qr-img svg { width: 100%; height: 100%; }
/* El QR del banco va a su tamaño real (el PNG del BCP es 320×325 y trae el monto
   y el vencimiento escritos abajo): arriba y centrado, con el texto debajo. */
.qr-caja.qr-banco { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.qr-banco .qr-img { width: min(344px, 100%); height: auto; padding: 12px; }
.qr-banco .qr-img img { height: auto; image-rendering: auto; }
.qr-banco .qr-txt ol { display: inline-block; text-align: left; }
.qr-banco .esperando { justify-content: center; }
.qr-txt ol { margin: 8px 0 0; padding-left: 20px; color: var(--tinta-2); font-size: .92rem; }
.monto-grande { font-family: var(--serif); font-size: 2rem; color: var(--destacado); line-height: 1.1; }
.esperando { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: .92rem; color: var(--tinta-2); }
.esperando .vivo { background: var(--acento-texto); animation: latido 1.6s infinite; box-shadow: none; }
.copiable { display: flex; align-items: center; gap: 8px; background: var(--papel); border: 1px solid var(--linea); border-radius: 12px; padding: 8px 8px 8px 12px; margin-top: 8px; }
.copiable code { flex: 1; font-size: .82rem; word-break: break-all; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
.copiable button { border: 0; background: var(--primario); color: var(--sobre-primario); border-radius: 8px; padding: 6px 12px; font-size: .8rem; font-weight: 600; cursor: pointer; flex: none; }
.aviso-red { font-size: .85rem; color: var(--aviso); background: var(--aviso-suave); border-radius: 12px; padding: 10px 14px; margin: 12px 0 0; }
.monedas { display: flex; gap: 8px; margin-bottom: 14px; }
.moneda { border: 1.5px solid var(--linea); background: var(--papel); border-radius: 999px; padding: 7px 16px; cursor: pointer; font-weight: 600; font-size: .88rem; }
.moneda[aria-pressed="true"] { border-color: var(--primario-2); background: var(--primario); color: var(--sobre-primario); }
.nota-medio { font-size: .9rem; color: var(--tinta-3); padding: 18px; text-align: center; background: var(--fondo-2); border-radius: 16px; }
.cargando { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 30px; color: var(--tinta-3); }
.cargando::before { content: ""; width: 20px; height: 20px; border-radius: 50%; border: 2.5px solid var(--linea); border-top-color: var(--acento-texto); animation: girar .8s linear infinite; }

.listo { text-align: center; padding: 14px 0 6px; }
.tilde { width: 88px; height: 88px; margin: 0 auto 20px; display: block; }
.tilde circle { stroke: var(--bien); stroke-width: 2; stroke-dasharray: 160; stroke-dashoffset: 160; animation: dibujar .8s var(--suave) forwards; fill: var(--bien-suave); }
.tilde path { stroke: var(--bien); stroke-width: 3; stroke-dasharray: 40; stroke-dashoffset: 40; animation: dibujar .5s .6s var(--suave) forwards; }
.listo h3 { font-size: 2rem; margin-bottom: 12px; }
.listo p { color: var(--tinta-2); }
.listo-codigo strong { font-family: ui-monospace, Menlo, monospace; background: var(--fondo-2); padding: 3px 10px; border-radius: 8px; color: var(--tinta); }

/* preguntas */
.preguntas { background: var(--papel); }
.preguntas-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(30px, 6vw, 90px); align-items: start; }
.acordeon details { border-bottom: 1px solid var(--linea); }
.acordeon details:first-child { border-top: 1px solid var(--linea); }
.acordeon summary { list-style: none; cursor: pointer; padding: 22px 44px 22px 0; font-family: var(--serif); font-size: 1.22rem; position: relative; transition: color .2s; }
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 12px; height: 12px; border-right: 1.8px solid var(--acento-texto); border-bottom: 1.8px solid var(--acento-texto); transform: translateY(-70%) rotate(45deg); transition: transform .3s var(--suave); }
.acordeon details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.acordeon summary:hover { color: var(--destacado); }
.acordeon .respuesta { padding: 0 44px 24px 0; color: var(--tinta-2); animation: entrar .4s var(--suave); }

/* consultas */
.consultas { background: var(--fondo); }
.consultas-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 6vw, 80px); align-items: start; }
.contactos { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 12px; }
.contactos a, .contactos div { display: flex; align-items: center; gap: 14px; text-decoration: none; padding: 14px 16px; border-radius: 16px; background: var(--papel); border: 1px solid var(--linea); transition: transform .2s var(--suave), border-color .2s; }
.contactos a:hover { transform: translateX(4px); border-color: var(--acento); }
.contactos svg { width: 38px; height: 38px; padding: 8px; border-radius: 50%; background: var(--suave-1); color: var(--suave-1-t); }
.contactos small { display: block; color: var(--tinta-3); font-size: .78rem; }
.consulta-form { background: var(--papel); border-radius: 26px; padding: clamp(22px, 4vw, 36px); box-shadow: var(--sombra); display: grid; gap: 16px; border: 1px solid var(--linea); }
.consulta-form .boton { justify-self: start; }
.consulta-form .error { margin: 0; }
.consulta-form .error:empty { display: none; }
.gracias { background: var(--bien-suave); color: var(--bien); padding: 14px 16px; border-radius: 14px; margin: 0; animation: entrar .5s var(--suave); }

/* pie */
.pie { background: var(--pie); color: var(--pie-texto); padding: 56px 0 36px; border-top: 1px solid var(--linea); }
.pie-in { display: grid; grid-template-columns: 1fr auto; gap: 26px 40px; align-items: center; }
.marca-pie small { color: var(--pie-tenue); }
.pie-links { display: flex; flex-wrap: wrap; gap: 22px; }
.pie-links a { text-decoration: none; color: var(--pie-texto); font-size: .94rem; opacity: .8; }
.pie-links a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.pie-nota { grid-column: 1 / -1; font-size: .84rem; color: var(--pie-tenue); margin: 0; padding-top: 22px; border-top: 1px solid var(--linea); }
.pie-version { grid-column: 1 / -1; font-size: .78rem; color: var(--pie-tenue); margin: 0; }

/* ------------------------------------------------------------ selector de colores */
.paletas { position: fixed; left: 16px; bottom: 16px; z-index: 60; }
.paletas[hidden] { display: none; }
.paletas-boton {
  display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linea); background: var(--papel); color: var(--tinta);
  border-radius: 999px; padding: 10px 16px 10px 12px; font-weight: 600; font-size: .9rem; cursor: pointer; box-shadow: var(--sombra-alta);
  transition: transform .2s var(--suave);
}
.paletas-boton:hover { transform: translateY(-2px); }
.paletas-boton svg { width: 22px; height: 22px; color: var(--destacado); }
.paletas-caja {
  position: absolute; left: 0; bottom: calc(100% + 10px); width: min(330px, calc(100vw - 32px)); background: var(--papel);
  border: 1px solid var(--linea); border-radius: 20px; box-shadow: var(--sombra-alta); padding: 18px; animation: entrar .3s var(--suave);
}
.paletas-caja[hidden] { display: none; }
.paletas-titulo { font-family: var(--serif); font-size: 1.15rem; margin: 0 0 4px; }
.paletas-sub { font-size: .84rem; color: var(--tinta-3); margin: 0 0 14px; }
.paletas-lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.paleta {
  border: 1.5px solid var(--linea); background: #FFFFFF; border-radius: 14px; padding: 10px 6px 8px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: .8rem; font-weight: 600; color: #3A3A3A;
  transition: border-color .2s, transform .2s var(--suave);
}
.paleta:hover { transform: translateY(-2px); }
.paleta[aria-pressed="true"] { border-color: var(--acento-texto); box-shadow: 0 0 0 3px var(--brillo-1); }
.paleta-muestra { display: flex; }
.paleta-muestra i { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #FFFFFF; margin-left: -6px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }
.paleta-muestra i:first-child { margin-left: 0; }
.paletas-caja .boton { width: 100%; }
.paletas-nota { font-size: .82rem; color: var(--tinta-2); margin: 10px 0 0; }
.paletas-nota:empty { display: none; }
.paletas-nota a { color: var(--destacado); }

/* ------------------------------------------------------------ aparición al hacer scroll */
.aparece { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--suave), transform .9s var(--suave); }
.aparece.visto { opacity: 1; transform: none; }
.portada .aparece:nth-child(2) { transition-delay: .08s; }
.portada .aparece:nth-child(3) { transition-delay: .16s; }
.portada .aparece:nth-child(4) { transition-delay: .24s; }
.portada .aparece:nth-child(5) { transition-delay: .32s; }
.servicio.aparece:nth-child(2) { transition-delay: .1s; }
.servicio.aparece:nth-child(3) { transition-delay: .2s; }

@keyframes entrar { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes deriva { from { transform: rotate(-4deg) scale(1); } to { transform: rotate(6deg) scale(1.05); } }
@keyframes flotar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes dibujar { to { stroke-dashoffset: 0; } }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 rgba(63, 131, 96, .5); } 70% { box-shadow: 0 0 0 10px rgba(63, 131, 96, 0); } 100% { box-shadow: 0 0 0 0 rgba(63, 131, 96, 0); } }
@keyframes latido { 50% { opacity: .35; } }
@keyframes rueda { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(12px); } }
@keyframes girar { to { transform: rotate(360deg); } }

/* ------------------------------------------------------------ pantallas chicas */
@media (max-width: 980px) {
  .portada-in { grid-template-columns: 1fr; gap: 30px; }
  .portada-foto { order: -1; width: min(100%, 380px); }
  .portada-txt { text-align: center; }
  .etiqueta { margin-bottom: 18px; }
  .acciones, .garantias { justify-content: center; }
  .bajada { margin-inline: auto; }
  .bajar { display: none; }
  .sobre-in, .preguntas-in, .consultas-in { grid-template-columns: 1fr; }
  .sobre-lado { position: static; }
  .agenda, .pago { grid-template-columns: 1fr; }
  .pasos { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .hamburguesa { display: block; }
  .menu {
    position: fixed; inset: 76px 0 auto; flex-direction: column; align-items: stretch; gap: 0; background: var(--papel);
    padding: 8px 16px 20px; box-shadow: var(--sombra-alta); transform: translateY(-120%); visibility: hidden;
    transition: transform .4s var(--suave), visibility .4s;
  }
  .menu.abierto { transform: none; visibility: visible; }
  .menu a:not(.boton) { padding: 14px 4px; border-bottom: 1px solid var(--linea); font-size: 1.02rem; }
  .menu a:not(.boton)::after { display: none; }
  .menu .boton { margin-top: 16px; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .barra-in { height: 66px; }
  .menu { inset: 66px 0 auto; }
  .portada { padding: 18px 0 60px; }
  .flota-turno { left: -6px; bottom: 70px; }
  .flota-pago { right: -6px; bottom: 0; max-width: 200px; font-size: .8rem; }
  .trazo { display: none; }
  .linea-doble { grid-template-columns: 1fr; }
  .etapas li em { display: none; }
  .etapas { grid-template-columns: repeat(4, auto); justify-content: space-between; }
  .etapas li { flex: 1; }
  .campos { grid-template-columns: 1fr; }
  .qr-caja { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .qr-txt ol { text-align: left; }
  .medios { grid-template-columns: 1fr 1fr 1fr; }
  .medio { padding: 12px 4px; font-size: .84rem; }
  .servicio-pie { flex-direction: column; align-items: stretch; }
  .servicio-pie .boton { width: 100%; }
  .pie-in { grid-template-columns: 1fr; }
  .etapa-pie .boton:not(.boton-texto) { flex: 1; }
  .paletas-boton span { display: none; }
  .paletas-boton { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .aparece { opacity: 1; transform: none; }
  .trazo path { stroke-dashoffset: 0; }
}
