@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/bricolage-v9-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/bricolage-v9-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 600 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/bricolage-v9-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

:root {
  --fondo: #F2EDE3;
  --carta: #FFFFFF;
  --tinta: #17262A;
  --apagado: #465257;
  --linea: #E0D6C4;
  --borde-campo: #8F8470;
  --primario: #0B6259;
  --primario-osc: #0A5A52;
  --primario-suave: #E9F1EE;
  --ambar: #A85304;
  --ambar-suave: #F8ECD9;
  --whatsapp: #128C4B;
  --error: #A83226;
  --ok: #0A6E3C;
  --display: 'Bricolage Grotesque', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --icono-usuario: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E");
  --icono-escudo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5.5c0 4.2-2.9 7.9-7 9.5-4.1-1.6-7-5.3-7-9.5V6z'/%3E%3Cpath d='M9.2 12.2l2 2 3.6-3.8'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 112px; }
html:has(.cab :focus) { scroll-padding-top: 0; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--fondo);
  color: var(--tinta);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Liberation Sans", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}
img { max-width: 100%; }
a { color: var(--primario); text-underline-offset: 2px; }
*:focus-visible {
  outline: 3px solid var(--primario);
  outline-offset: 2px;
  border-radius: 3px;
}

.salto { position: absolute; left: -9999px; top: 0; z-index: 20; background: var(--primario); color: #fff; padding: 12px 16px; border-radius: 0 0 10px 0; font-weight: 700; text-decoration: none; }
.salto:focus { left: 0; }

.cab { background: var(--carta); border-bottom: 1px solid var(--linea); position: sticky; top: 0; z-index: 10; }
.cab-int { max-width: 960px; margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.logo { font-weight: 800; font-size: 19px; text-decoration: none; color: var(--primario); letter-spacing: -0.01em; }
.logo span { color: var(--primario); }
.cab-enlaces { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; row-gap: 2px; min-width: 0; }
.cab-enlaces a { font-size: 13.5px; font-weight: 500; text-decoration: none; color: var(--tinta); padding: 7px 8px; border-radius: 8px; white-space: nowrap; display: inline-flex; align-items: center; min-height: 24px; }
.cab-enlaces a:hover { color: var(--primario); background: var(--primario-suave); }
.cab-enlaces a.cab-cuenta { margin-left: 8px; display: inline-grid; grid-template-areas: "estado"; align-items: center; background: var(--primario-suave); border: 1px solid #4E8B82; border-radius: 999px; color: var(--primario) !important; padding: 6px 11px !important; justify-content: center; }
.cab-enlaces a.cab-cuenta > .cab-estado,
.cab-enlaces a.cab-cuenta::after { grid-area: estado; display: inline-flex; align-items: center; gap: 6px; justify-content: center; }
.cab-enlaces a.cab-cuenta::after { content: attr(data-reserva); visibility: hidden; pointer-events: none; }

.cab-enlaces a.cab-alta { display: inline-grid; grid-template-areas: "estado"; align-items: center; justify-content: center; }
.cab-enlaces a.cab-alta > .cab-alta-txt,
.cab-enlaces a.cab-alta::after { grid-area: estado; display: inline-flex; align-items: center; justify-content: center; }
.cab-enlaces a.cab-alta::after { content: attr(data-reserva); visibility: hidden; pointer-events: none; }

a.cta-alta { display: inline-grid; grid-template-areas: "estado"; align-items: center; justify-content: center; }
a.cta-alta > .cta-alta-txt,
a.cta-alta::before,
a.cta-alta::after { grid-area: estado; }
a.cta-alta::after { content: attr(data-reserva); visibility: hidden; pointer-events: none; }
a.cta-alta::before { content: attr(data-con-perfil); visibility: hidden; pointer-events: none; }
.cab-enlaces a.cab-cuenta:hover { background: #DCEAE5; border-color: var(--primario); color: var(--primario-osc) !important; }
.cab-badge { background: var(--ambar); color: #fff; font-size: 11.5px; font-weight: 700; line-height: 1; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.cab-enlaces a.cab-mensajes { position: relative; padding: 6px 8px; color: var(--apagado); }
.cab-enlaces a.cab-mensajes:hover { color: var(--primario); background: var(--primario-suave); }
.cab-enlaces a.cab-mensajes svg { display: block; }
.cab-mensajes .cab-badge { position: absolute; top: 1px; right: 1px; transform: translate(35%, -35%); pointer-events: none; box-shadow: 0 0 0 2px var(--fondo); }
.cab-modo { display: inline-flex; align-items: center; gap: 2px; margin: 0 6px 0 auto; padding: 3px; border-radius: 999px; background: var(--fondo); border: 1px solid var(--linea); }
.cab-modo[hidden] { display: none; }
.cab-modo button { font: inherit; font-size: 13.5px; font-weight: 600; border: 0; border-radius: 999px; padding: 6px 14px; min-height: 30px; background: none; color: var(--tinta); cursor: pointer; }
.cab-modo button:hover { color: var(--primario); }
.cab-modo button[aria-pressed="true"] { background: var(--primario); color: #fff; }
.cab-enlaces a.cab-mensajes { display: inline-flex; align-items: center; gap: 6px; }
.cab-mensajes-t { font-size: 13.5px; font-weight: 500; color: var(--tinta); }
.cab-con-sesion .cab-enlaces a.cab-cuenta { display: inline-flex; align-items: center; gap: 6px; background: none; border-color: transparent; color: var(--tinta) !important; padding: 6px 6px !important; margin-left: 4px; }
.cab-con-sesion .cab-enlaces a.cab-cuenta::after { content: none; }
.cab-con-sesion .cab-enlaces a.cab-cuenta:hover { background: var(--primario-suave); }
.cab-con-sesion .cab-enlaces a.cab-cuenta::before { content: ''; width: 18px; height: 18px; flex: none; background: var(--apagado); -webkit-mask: var(--icono-usuario) center / contain no-repeat; mask: var(--icono-usuario) center / contain no-repeat; }
@media (max-width: 620px) { html:has(.cab-modo:not([hidden])) { scroll-padding-top: 112px; } }
.cab-hamb { display: none; background: none; border: 0; color: var(--tinta); min-width: 44px; min-height: 44px; padding: 8px; margin: -6px -8px -6px 0; border-radius: 8px; cursor: pointer; }
.cab-hamb:hover { background: var(--primario-suave); }
.cab-hamb { position: relative; }
.cab-enlaces a.cab-cuenta { position: relative; }
.cab-cuenta .cab-estado .cab-badge { position: absolute; top: -7px; right: -7px; pointer-events: none; box-shadow: 0 0 0 2px var(--carta); }
.cab-hamb .cab-badge { position: absolute; top: 2px; right: 0; pointer-events: none; box-shadow: 0 0 0 2px var(--carta); }

@media (max-width: 620px) {
  html { scroll-padding-top: 68px; }
  .cab-int { padding: 10px 16px; }
  .logo { font-size: 19px; }
  .cab-modo { order: 3; flex: 1 0 100%; margin: 2px 0 0; }
  .cab-modo button { flex: 1; min-height: 32px; padding: 4px 14px; font-size: 14px; }
  .cab-plegable .cab-hamb { display: inline-flex; align-items: center; justify-content: center; }
  .cab-plegable .cab-enlaces { display: none; }
  .cab-plegable.abierta .cab-enlaces { order: 4; }
  .cab-plegable.abierta .cab-enlaces { display: flex; flex-wrap: wrap; align-items: center; flex-basis: 100%; gap: 6px 4px; padding: 6px 0 8px; }
  .cab-plegable.abierta .cab-enlaces a { font-size: 15px; padding: 10px 8px; }
  .cab-plegable.abierta .cab-enlaces a.cab-cuenta { flex: 1 0 auto; margin: 0; padding: 9px 14px !important; }
}

main { max-width: 960px; width: 100%; margin: 0 auto; padding: 18px 16px 44px; flex: 1 0 auto; }
h1 { font-size: clamp(26px, 6vw, 38px); line-height: 1.12; letter-spacing: -0.015em; margin: 14px 0 10px; text-wrap: balance; }
h2 { font-size: clamp(19px, 4.5vw, 24px); line-height: 1.2; margin: 30px 0 10px; text-wrap: balance; }
h3 { font-size: 17px; margin: 0 0 4px; }
h1, h2, h3, .logo { font-family: var(--display); }
p, li { max-width: 84ch; }
.tldr p, .tldr li, .tldr dd,
.panel-mint p, .panel-mint li, .panel-mint dd,
.panel-ambar p, .panel-ambar li, .panel-ambar dd,
.panel-carta p, .panel-carta li, .panel-carta dd,
.muro p, .muro li, .susc p, .comparativa p, .comparativa li { max-width: none; }
.panel-ambar.cierre-ambar > p { max-width: 48ch; }

main, .aviso-cookies p {
  text-align: justify;
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
}
.aviso-cookies p { text-align: start; }
:where(main) :where(h1, h2, h3, h4, h5, h6, dt, caption, label, legend, summary,
  button, input, textarea, select, option, code, pre,
  .migas, .chips, .meta, .etiqueta, .oferta-tag, .anuncio-etq,
  .hero-eyebrow, .of-eyebrow, .velo-eyebrow, .of-lab, .of-val,
  .burbuja, .bandeja-fila, .escribir-destino,
  .razones li, .nosomos li, .tarjeta, .carr-cta,
  .grid-prov-lista, .grid-ciudades ul, .lista-ciudades, .guias-rel ul, .gc-ver, .gc-busca, .gc-cierre,
  .hero-lead, .hero-trust, .busca-enlaces, .sec-nota, .pasos, .sencillo-nota, .zona-txt, .cierre-txt,
  .cf-lead, .cf-ruta-quien, .cf-pasos, .cf-hero ~ .tldr li, .cf-cupo, .cf-mas ul, .cf-real, .cf-hero ~ .faq summary,
  .gu-indice, .gu-cifras, .gu-sino, .gu-tarjetas) { text-align: start; }
:where(main) :where(.carr-ficha, .carr-tuyo, .listo-tarjeta, .listo-tarjeta h1, .listo-pie, .listo-seguro, .listo-ayuda) { text-align: center; }
:where(main) :where(.lst-modo, .tp, .vc-carta, .lst-heroe, .lst-banda, .lst-filtros, .of-heroe, .of-datos, .of-acordar, .pf-dueno, .pf-cab, .pf-tarifa, .pf-servicios, .pf-disp, .pf-fuerza, .aviso, .aviso-ya-tienes, .ficha-contacto, .aviso-pendiente, .aviso-conf, .aviso-escribir, .aviso-prellenado, .aviso-sin-cuenta, .error, .ok, .nota-clave, .corto, .fact-plan, .fact-pagos, .mc-zonas, .mc-otro-lado, .mc-conservan, .mc-heroe, .mc-acceso, .mc-estados, .mc-flota, .mc-aj-cab, .mc-aj-carta, .mc-entras, .mc-pl-cab, .mc-pestanas, .mc-fila, .mc-confirma, .mc-fila-ajustes, .mc-vacio, .mc-atencion, .mc-heroe-acc, .listo-foto, .listo-paso, .publicar-cab, .paso-nav, .revisar-tarjeta, .revisar-bloque, .ent, .gu-aviso, .pp) { text-align: start; }
@media (max-width: 559px) {
  :where(main) :where(.susc-caja, .cuenta-al-enviar) { text-align: start; }
}

@media (max-width: 559px) {
  main, .aviso-cookies p { text-align: start; }
}

.migas { font-size: 13px; color: var(--apagado); margin-top: 6px; }
.fecha-guia { font-size: 13.5px; color: var(--apagado); margin: -4px 0 18px; }
.migas a { color: var(--apagado); display: inline-block; padding: 4px 1px; margin: -4px 0; }
.nota { font-size: 13.5px; color: var(--apagado); }
.enlace-diana { display: inline-block; padding: 4px 0; min-height: 24px; }

.tabla-precios td > a { display: inline-block; padding: 3px 0; min-height: 24px; }
.tarjeta ul li > a { display: inline-block; padding: 4px 0; min-height: 24px; }
.tarjeta > h3 > a, .tarjeta > h2 > a { display: inline-block; padding: 2px 0; min-height: 24px; }

.tldr { background: #FFFDF9; border: 1px solid #E8DCC8; border-radius: 12px; padding: 12px 16px; margin: 14px 0; }
.tldr ul { margin: 0; padding-left: 20px; }
.tldr li { margin: 4px 0; }
.tldr:not(.tldr-ilu) { background: var(--carta); border: 1px solid var(--linea); border-left: 4px solid var(--primario); border-radius: 14px; padding: 16px 18px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 22px rgba(23, 38, 42, .05); }
.tldr:not(.tldr-ilu) ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tldr:not(.tldr-ilu) li { position: relative; margin: 0; padding-left: 26px; font-size: 15px; line-height: 1.45; }
.tldr:not(.tldr-ilu) li::before { content: ''; position: absolute; left: 3px; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--primario); }

.gu-indice { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 14px 18px; margin: 20px 0; }
.gu-indice > p { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--primario); }
.gu-indice ol { margin: 0; padding-left: 22px; }
.gu-indice li { margin: 0; }
.gu-indice li::marker { color: var(--apagado); font-variant-numeric: tabular-nums; }
.gu-indice a { display: inline-block; vertical-align: top; padding: 4px 0; min-height: 24px; }

.gu-cifras { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.gu-cifras > p { flex: 1 1 190px; max-width: none; margin: 0; display: flex; flex-direction: column; gap: 4px; background: var(--primario-suave); border-radius: 14px; padding: 14px 16px; }
.gu-cifras strong { font-family: var(--display); font-size: 27px; line-height: 1.1; color: var(--primario-osc); font-variant-numeric: tabular-nums; }
.gu-cifras span { font-size: 14px; line-height: 1.4; color: var(--apagado); }

.gu-pasos { list-style: none; counter-reset: gu-paso; padding: 0; margin: 18px 0; display: flex; flex-direction: column; gap: 16px; }
.gu-pasos > li { counter-increment: gu-paso; position: relative; padding-left: 46px; margin: 0; }
.gu-pasos > li::before { content: counter(gu-paso); position: absolute; left: 0; top: -3px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--primario); color: #fff; font-family: var(--display); font-size: 15px; font-weight: 700; }
.gu-pasos > li > strong:first-child { font-family: var(--display); font-size: 16.5px; }

.gu-aviso { background: var(--ambar-suave); border-left: 4px solid var(--ambar); border-radius: 0 12px 12px 0; padding: 12px 16px; margin: 18px 0; }
.gu-aviso.gu-bien { background: var(--primario-suave); border-left-color: var(--primario); }
.gu-aviso p { max-width: none; margin: 0; }
.gu-aviso p + p { margin-top: 8px; }

.gu-sino { display: grid; gap: 12px; margin: 18px 0; }
.gu-sino > div { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 14px 16px; }
.gu-sino h3 { margin: 0 0 8px; font-size: 16px; color: var(--ok); }
.gu-sino > div + div h3 { color: var(--error); }
.gu-sino ul { margin: 0; padding-left: 20px; }
.gu-sino li { margin: 5px 0; max-width: none; }
@media (min-width: 640px) { .gu-sino { grid-template-columns: 1fr 1fr; } }

.gu-tarjetas { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.gu-tarjetas > div { flex: 1 1 250px; background: var(--carta); border: 1px solid var(--linea); border-top: 3px solid var(--primario); border-radius: 12px; padding: 14px 16px; }
@media (min-width: 560px) { .gu-tarjetas:has(> div:nth-child(4):last-child) > div { flex-basis: calc(50% - 6px); } }
.gu-tarjetas h3 { margin: 0 0 6px; font-size: 16px; }
.gu-tarjetas p { max-width: none; margin: 0; font-size: 15px; line-height: 1.5; }
.gu-tarjetas p + p { margin-top: 6px; }
[data-icono="euro"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M17 6.5A7 7 0 1 0 17 17.5'/%3E%3Cpath d='M4 10h9M4 14h9'/%3E%3C/svg%3E"); }
[data-icono="reloj"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
[data-icono="calendario"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
[data-icono="documento"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v4h4M9 12h6M9 16h6'/%3E%3C/svg%3E"); }
[data-icono="escudo"] { --ico: var(--icono-escudo); }
[data-icono="casa"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10M10 20v-6h4v6'/%3E%3C/svg%3E"); }
[data-icono="llave"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l9-9M16 7l3 3'/%3E%3C/svg%3E"); }
[data-icono="persona"] { --ico: var(--icono-usuario); }
[data-icono="mensaje"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E"); }
[data-icono="balanza"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 21h10M5 7h14M5 7l-3 6a3 3 0 0 0 6 0zM19 7l-3 6a3 3 0 0 0 6 0z'/%3E%3C/svg%3E"); }
[data-icono="lupa"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M16 16l5 5'/%3E%3C/svg%3E"); }
[data-icono="brillo"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6'/%3E%3C/svg%3E"); }
[data-icono="edificio"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2'/%3E%3C/svg%3E"); }
[data-icono="maleta"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M9 7V4h6v3M3 13h18'/%3E%3C/svg%3E"); }
[data-icono="salud"] { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E"); }
[data-icono="alerta"], .gu-aviso { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2z'/%3E%3Cpath d='M12 10v5M12 18v.5'/%3E%3C/svg%3E"); }
[data-icono="si"], .gu-aviso.gu-bien, .gu-sino > div:first-child { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E"); }
[data-icono="no"], .gu-sino > div + div { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9l6 6M15 9l-6 6'/%3E%3C/svg%3E"); }
.gu-tarjetas > [data-icono] > h3, .gu-sino h3 { display: flex; align-items: center; gap: 8px; }
.gu-tarjetas > [data-icono] > h3::before, .gu-sino h3::before, .gu-cifras > [data-icono]::before, .gu-aviso::before { content: ''; flex: 0 0 auto; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.gu-tarjetas > [data-icono] > h3::before { color: var(--primario); }
.gu-cifras > [data-icono]::before { color: var(--primario); margin-bottom: 2px; }
.gu-aviso { position: relative; padding-left: 46px; }
.gu-aviso::before { position: absolute; left: 14px; top: 13px; color: var(--ambar); }
.gu-aviso.gu-bien::before { color: var(--primario); }

main section > .tablawrap { margin: 16px 0; }
@media (max-width: 559px) {
  table.gu-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  table.gu-tabla, table.gu-tabla tbody, table.gu-tabla tr { display: block; }
  table.gu-tabla tr { padding: 10px 14px; border-bottom: 1px solid var(--linea); }
  table.gu-tabla tbody tr:last-child { border-bottom: none; }
  table.gu-tabla td { display: grid; grid-template-columns: minmax(96px, 38%) 1fr; gap: 10px; padding: 3px 0; border: 0; white-space: normal; }
  table.gu-tabla td::before { content: attr(data-etiqueta); font-size: 13px; font-weight: 600; color: var(--apagado); }
  table.gu-tabla td:first-child { display: block; padding-bottom: 6px; font-family: var(--display); font-size: 15.5px; font-weight: 700; }
  table.gu-tabla td:first-child::before { content: none; }
}
.velo-eyebrow + h2, .velo-eyebrow + h3 { margin-top: 4px; }

.cta-doble { display: flex; flex-direction: column; gap: 10px; margin: 18px 0; }
@media (min-width: 560px) { .cta-doble { flex-direction: row; } }
@media (max-width: 559px) {
  .cta-doble:has(+ .listado > .tarjeta.perfil) { gap: 8px; margin: 12px 0 14px; }
  .cta-doble:has(+ .listado > .tarjeta.perfil) .btn { font-size: 15px; line-height: 1.25; padding: 10px 14px; min-height: 44px; }
  .cta-doble + .listado:has(> .tarjeta.perfil) > h2:first-child { margin-top: 18px; }
}

.btn {
  display: inline-block; text-align: center; text-decoration: none; cursor: pointer;
  font-size: 16px; font-weight: 700; padding: 13px 20px; border-radius: 12px;
  border: 2px solid transparent; min-height: 48px;
  transition: background .18s ease, border-color .18s ease, transform .1s ease, box-shadow .18s ease;
}
.btn-primario { background: var(--primario); color: #fff; }
.btn-primario:hover { background: var(--primario-osc); }
.btn-secundario { background: var(--carta); color: var(--primario); border-color: var(--primario); }
.btn-secundario:hover { background: var(--primario-suave); }
.btn-whatsapp { background: var(--whatsapp); color: #fff; }
.btn-whatsapp:hover { filter: brightness(0.92); }
.btn-cab { background: var(--primario); color: #fff !important; padding: 8px 12px; border-radius: 10px; }
.btn-cab:hover { background: var(--primario-osc); }
.btn-des { background: var(--linea); color: var(--apagado); cursor: not-allowed; }
.btn-primario:hover, .btn-cab:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(11, 98, 89, 0.26); }
.btn-whatsapp:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(18, 140, 75, 0.26); }
.btn-secundario:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(23, 38, 42, 0.08); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn-des, .btn-des:hover { transform: none; box-shadow: none; }

.listado { display: grid; gap: 12px; margin: 14px 0; }
@media (min-width: 700px) { .listado-doble { grid-template-columns: 1fr 1fr; } .listado-doble h2 { grid-column: 1 / -1; } .listado-doble > article:only-of-type { grid-column: 1 / -1; } }
.tarjeta { background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 2px rgba(23, 38, 42, 0.04), 0 2px 10px rgba(23, 38, 42, 0.045); transition: box-shadow .18s ease, transform .14s ease, border-color .18s ease; }
.listado > article:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(23, 38, 42, 0.10); border-color: #CDBFA6; }
.tarjeta h3 a, .tarjeta h2 a {
  color: var(--primario);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.tarjeta h3 a:hover, .tarjeta h2 a:hover { color: var(--primario-osc); text-decoration-thickness: 2px; }
.tarjeta .meta { font-size: 13.5px; color: var(--apagado); margin: 2px 0 8px; overflow-wrap: anywhere; }
.tarjeta p { margin: 6px 0 0; font-size: 14.5px; }
.cerca { margin: 28px 0; }
.carr-caja { position: relative; }
.carr { display: flex; gap: 12px; margin: 0; padding: 4px 2px 14px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; }
.carr:focus-visible { outline: 3px solid var(--primario); outline-offset: 2px; border-radius: 12px; }
.carr > li { flex: 0 0 min(76%, 220px); max-width: none; scroll-snap-align: start; }
.carr-ficha { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.carr-ficha > a { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1; padding: 0 14px 12px; color: var(--tinta); text-decoration: none; }
.carr-banda { align-self: stretch; height: 44px; margin: 0 -14px; background: linear-gradient(135deg, var(--primario) 0%, #138a7d 60%, #F2B04A 140%); }
.carr-ficha .avatar { flex: 0 0 auto; width: 64px; height: 64px; margin-top: -32px; border: 3px solid var(--carta); box-shadow: 0 2px 8px rgba(var(--tinta-rgb), .12); font-size: 24px; }
.carr-ficha strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; font-family: var(--display); font-size: 16px; line-height: 1.25; }
.carr-ficha > a > strong:first-of-type { margin-top: 2px; }
.carr-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.carr-lugar, .carr-precio { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font-size: 12.5px; }
.carr-lugar { background: var(--primario-suave); color: var(--primario); }
.carr-precio { background: var(--ambar-suave); color: #7E3D02; font-weight: 600; }
.carr-dato { font-size: 13px; color: var(--apagado); }
.carr-ir { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; align-self: stretch; min-height: 38px; padding: 6px 12px; border-radius: 10px; border: 1.5px solid var(--primario); color: var(--primario); font-size: 14px; font-weight: 700; transition: background .2s ease, color .2s ease; }
.carr-ir > span { margin-left: 6px; }
.carr-ficha > a:focus-visible { outline: 3px solid var(--primario); outline-offset: -3px; border-radius: 12px; }
.carr-ficha > a:hover .carr-ir, .carr-ficha > a:focus-visible .carr-ir { background: var(--primario); color: #fff; }
.carr-marca { display: inline-flex; align-items: center; gap: 0; align-self: stretch; justify-content: center; padding-top: 9px; margin-top: 2px; border-top: 1px solid var(--linea); font-size: 12.5px; font-weight: 800; letter-spacing: -0.01em; color: var(--tinta); }
.carr-marca::before { content: "Mi"; order: 2; margin-left: 6px; }
.carr-marca::after { content: "Limpiadora"; order: 3; color: var(--primario); }
.carr-cta { display: flex; flex-direction: column; gap: 8px; padding: 0 14px 14px; border-radius: 12px; background: var(--carta); overflow: hidden; }
.carr-cta > span:not(.carr-banda):not(.carr-hueco) { font-size: 13.5px; color: var(--apagado); }
.carr-cta .btn { margin-top: 2px; padding: 8px 12px; min-height: 40px; font-size: 14.5px; }
.carr-tuyo { border: 2px dashed var(--primario); align-items: center; }
.carr-tuyo .carr-banda { margin: 0 -14px; background: repeating-linear-gradient(135deg, var(--primario-suave) 0 10px, #fff 10px 20px); }
.carr-hueco { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-top: -32px; border-radius: 50%; border: 2px dashed var(--primario); background: var(--carta); color: var(--primario); font-family: var(--display); font-size: 26px; font-weight: 700; }
.carr-tuyo strong { font-family: var(--display); font-size: 16px; }
.carr-otra { font-size: 13px; color: var(--primario); text-underline-offset: 3px; }
.carr.vivo { --ancho: min(220px, 66vw); position: relative; padding-block: 8px 30px; padding-inline: calc(50% - var(--ancho) / 2); scrollbar-width: none; }
.carr.vivo::-webkit-scrollbar { display: none; }
.carr.vivo > li { flex: 0 0 var(--ancho); scroll-snap-align: center; transform: scale(.9); opacity: .85; filter: blur(.4px) saturate(.7); transition: transform .5s ease, opacity .5s ease, filter .5s ease, box-shadow .5s ease; }
.carr.vivo > li.al-frente, .carr.vivo > li:focus-within { transform: none; opacity: 1; filter: none; }
.carr.vivo > li.al-frente { box-shadow: 0 14px 34px rgba(var(--tinta-rgb), .14); }
.carr.vivo > li:not(.al-frente) { cursor: pointer; }
.carr.vivo > li:not(.al-frente):hover { opacity: .9; filter: saturate(.85); }
.carr.vivo.salto, .carr.vivo.salto > li { transition: none; scroll-behavior: auto; }
.carr-mando { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 6px; }
.carr-mando[hidden] { display: none; }
.carr-pausa { min-height: 32px; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--linea); background: var(--carta); color: var(--tinta); font-size: 13px; cursor: pointer; }
.carr-pausa:hover { border-color: var(--primario); color: var(--primario); }
.carr-puntos { display: flex; justify-content: center; }
.carr-punto { width: 24px; height: 32px; padding: 0; border: 0; background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.carr-punto::before { content: ""; width: 8px; height: 8px; border-radius: 4px; background: var(--borde-campo); transition: width .3s ease, background .3s ease; }
.carr-punto[aria-current="true"]::before { width: 20px; background: var(--primario); }
@media (prefers-reduced-motion: reduce) {
  .carr.vivo > li { transform: none; transition: none; }
  .carr-punto::before { transition: none; }
}
.carr-flecha { position: absolute; top: calc(50% - 30px); display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border-radius: 50%; border: 1px solid var(--linea); background: var(--carta); color: var(--tinta); cursor: pointer; box-shadow: var(--sombra-flota); transition: border-color .2s ease, color .2s ease, transform .2s ease; }
.carr-flecha svg { display: block; }
.carr-flecha:hover { border-color: var(--primario); color: var(--primario); transform: scale(1.06); }
.carr-atras { left: -14px; }
.carr-alante { right: -14px; }
.carr-flecha[hidden] { display: none; }
@media (min-width: 700px) { .carr-caja { padding-inline: 30px; } }
@media (max-width: 699px) { .carr-flecha { display: none; } }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.chips span { background: var(--primario-suave); color: var(--primario-osc); font-size: 13.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }

.vacio { background: var(--carta); border: 1.5px dashed var(--linea); border-radius: 12px; padding: 18px; margin: 18px 0; }
.vacio h2 { margin-top: 0; }

.of-cab { margin: 6px 0 4px; }
.of-eyebrow { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--primario); margin: 0 0 6px; }
.of-cab h1 { margin: 0 0 6px; }
.of-fecha { font-size: 14px; color: var(--apagado); margin: 0 0 20px; }

.of-ficha { background: var(--carta); border: 1px solid var(--linea); border-left: 5px solid var(--primario); border-radius: 14px; display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 16px; overflow: hidden; box-shadow: 0 1px 2px rgba(23, 38, 42, 0.04), 0 4px 16px rgba(23, 38, 42, 0.06); }
.of-dato { padding: 15px 18px; display: flex; flex-direction: column; gap: 2px; border-left: 1px solid var(--linea); }
.of-dato:first-child { border-left: 0; }
.of-ic { font-size: 18px; line-height: 1; }
.of-lab { font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--apagado); font-weight: 600; margin-top: 3px; }
.of-val { font-size: 17px; font-weight: 700; color: var(--tinta); line-height: 1.2; }
.of-sub { font-size: 13px; color: var(--apagado); }
@media (max-width: 559px) {
  .of-ficha { grid-template-columns: 1fr; border-left: 1px solid var(--linea); border-top: 5px solid var(--primario); }
  .of-dato { border-left: 0; border-top: 1px solid var(--linea); }
  .of-dato:first-child { border-top: 0; }
}

.of-detalle { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 20px; margin: 0 0 18px; box-shadow: 0 1px 2px rgba(23, 38, 42, 0.04), 0 4px 16px rgba(23, 38, 42, 0.05); }
.of-detalle h2 { margin: 0 0 8px; font-size: 20px; }
.of-detalle p { margin: 0; }

.of-caducada { background: var(--ambar-suave); border: 1px solid var(--linea); border-radius: 14px; padding: 16px 18px; margin: 0 0 18px; }
.of-caducada p { margin: 0; }

.of-mas { padding: 2px; margin: 8px 0 0; }
.of-mas h2 { font-size: 16px; margin: 0 0 4px; }
.of-mas p { margin: 0; color: var(--apagado); }

.grid-prov ul, .grid-ciudades ul { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.grid-prov ul a, .grid-ciudades ul a { display: flex; align-items: center; min-height: 40px; height: 100%; box-sizing: border-box; padding: 9px 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 10px; text-decoration: none; font-size: 14px; font-weight: 600; }
.grid-prov ul a:hover, .grid-ciudades ul a:hover { border-color: var(--primario); background: var(--primario-suave); }
.grid-ciudades > p { margin-top: 12px; }
.grid-ciudades > p a, .lista-ciudades + p a { display: inline-block; padding: 4px 0; min-height: 24px; }

.ilu { display: block; max-width: 100%; height: auto; }
.ilu-casa { width: 100%; max-width: 340px; margin: 0 auto; color: var(--primario); }
.ilu-icono { width: 38px; height: 38px; flex: 0 0 38px; color: var(--primario); }
.foto { display: block; margin: 14px 0 18px; }
.foto img {
  display: block; width: 100%; height: auto; max-height: 190px;
  object-fit: cover; object-position: center 40%;
  border-radius: 12px; border: 1px solid var(--linea);
}
@media (min-width: 760px) { .foto img { max-height: 240px; } }
.hero-foto { margin: 0; }
.hero-foto img { border: 0; border-radius: 0; box-shadow: none; object-position: center 42%; }

.portada-arriba { position: relative; margin-top: -18px; padding: 22px 0 20px; }
.portada-arriba::before { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: var(--fondo); }
.hero { padding: 0; }
@media (min-width: 820px) {
  .portada-arriba { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; align-items: start; padding-top: 18px; }
  .portada-arriba > .hero { grid-column: 1; grid-row: 1; padding: 0 0 6px; }
  .portada-arriba .hero h1 { font-size: min(39px, calc((100vw - 64px) / 22.8)); }
  .portada-arriba > .busca-panel { grid-column: 1 / -1; grid-row: 2; position: relative; z-index: 1; }
  .portada-arriba > .hero-trust { grid-column: 1 / -1; grid-row: 3; }
  .portada-arriba > .hero-foto-col { grid-column: 2; grid-row: 1; }
  .portada-arriba > .busca-panel { border-radius: 0 0 12px 12px; }
  .portada-arriba .busca-pestanas { width: calc(50% + 17px); border-right: 0; border-top-right-radius: 0; }
}
.hero-txt { min-width: 0; }
.hero-eyebrow { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--primario); margin: 0 0 10px; }
.hero h1 { font-size: clamp(26px, 7vw, 39px); line-height: 1.06; letter-spacing: -0.025em; margin: 0; color: var(--tinta); text-wrap: wrap; }
.h1-linea { display: block; }
.hero-lead { display: block; font-size: clamp(14px, 3.7vw, 17px); line-height: 1.45; color: #34413F; margin: 10px 0 0; hyphens: manual; }
.hero h1 { position: relative; }
.hero h1, .hero h1 .h1-linea { background: linear-gradient(105deg, var(--tinta) 0 38%, var(--primario) 43%, #5FB8A8 46%, #FFF6E6 50%, #E8A24A 54%, var(--tinta) 60% 100%); background-size: 320% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; color: transparent; animation: hero-brillo 4.4s cubic-bezier(.45, .05, .3, 1) .4s; }
@keyframes hero-brillo { 0% { background-position: 100% 0; } 38%, 100% { background-position: 0 0; } }
.chispa { position: absolute; width: 28px; height: 28px; pointer-events: none; opacity: 0; animation: hero-chispa 3.6s ease-out .4s; }
.chispa svg { display: block; width: 100%; height: 100%; fill: var(--ambar); }
.chispa.ch1 { left: -10px; top: -14px; }
.chispa.ch2 { left: 42%; top: -18px; width: 14px; height: 14px; animation-delay: .75s; }
.chispa.ch2 svg { fill: var(--primario); }
.chispa.ch3 { right: -6px; top: 18px; animation-delay: 1.1s; }
@keyframes hero-chispa { 0%, 22% { opacity: 0; transform: scale(0) rotate(0); } 30% { opacity: 1; transform: scale(1) rotate(45deg); } 42%, 100% { opacity: 0; transform: scale(.2) rotate(90deg); } }
.rota { position: relative; display: inline-block; color: var(--primario); white-space: nowrap; }
.rota-txt { display: inline-block; transition: transform .3s cubic-bezier(.2, .8, .2, 1), opacity .3s; }
.rota-txt.sale { transform: translateY(-.6em); opacity: 0; }
.rota-txt.entra { transform: translateY(.6em); opacity: 0; transition: none; }
.rota svg { position: absolute; left: 0; bottom: -.18em; width: 100%; height: .32em; overflow: visible; }
.rota path { fill: none; stroke: var(--ambar); stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: 220; stroke-dashoffset: 220; animation: hero-traza .8s ease-out .25s forwards; }
@keyframes hero-traza { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) {
  .hero h1, .hero h1 .h1-linea { background: none; color: var(--tinta); }
  .chispa, .hero-foto-col::after { display: none; }
  .rota path { stroke-dashoffset: 0; }
}

.hero-trust { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hero-trust li { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; font-size: 11.5px; line-height: 1.3; color: var(--apagado); }
.hero-trust li strong { display: block; color: var(--tinta); font-weight: 500; }
.hero-trust .ico { color: var(--primario); }
.trust-sub { display: none; }
@media (max-width: 759px) {
  .portada-arriba > .busca-panel { border-radius: 12px 12px 0 0; border-bottom: 0; box-shadow: none; padding-bottom: 14px; }
  .hero-trust { margin: 0; padding: 4px 4px 14px; background: var(--carta); border: 1px solid var(--linea); border-top: 0; border-radius: 0 0 12px 12px; box-shadow: 0 8px 18px rgba(23, 38, 42, .06); }
  .hero-trust li { padding: 0 4px; }
  .hero-trust li + li { border-left: 1px solid var(--linea); }
  .hero-trust .ico { width: 20px; height: 20px; }
}
@media (min-width: 760px) {
  .hero-trust { margin: 18px 0 0; padding: 0 34px; gap: 24px; }
  .hero-trust li { flex-direction: row; text-align: left; gap: 12px; font-size: 12.5px; }
  .hero-trust .ico { width: 36px; height: 36px; padding: 7px; border: 1.5px solid var(--primario); border-radius: 50%; }
  .hero-trust li strong { font-size: 13.5px; }
  .trust-sub { display: block; }
}

.hero-foto-col { display: none; position: relative; }
@media (min-width: 820px) {
  body:has(.portada-arriba) { overflow-x: clip; }
  .hero-foto-col { display: block; align-self: stretch; margin: -6px 0 -46px; }
  .hero-foto-col .hero-foto { position: absolute; inset: 0; }
  .hero-foto-col .hero-foto img { width: 100%; height: 100%; max-height: none; object-fit: cover; border-radius: 12px 12px 0 0; }
  .hero-foto-col { overflow: hidden; border-radius: 12px 12px 0 0; }
  .hero-foto-col::after { content: ''; position: absolute; z-index: 1; top: -20%; bottom: -20%; left: 0; width: 30%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .7) 45%, rgba(255, 255, 255, .85) 50%, rgba(255, 255, 255, .7) 55%, transparent); transform: translateX(-160%) skewX(-18deg); animation: hero-reflejo 4.4s cubic-bezier(.45, .05, .3, 1) .5s; }
}
@keyframes hero-reflejo { 0% { transform: translateX(-160%) skewX(-18deg); } 32%, 100% { transform: translateX(420%) skewX(-18deg); } }

.velo-sec > h2 { font-size: clamp(24px, 4.4vw, 34px); line-height: 1.12; }
.cierre-ambar { text-align: center; }
.cierre-ambar h2, .cierre-ambar h3, .cierre-ambar .velo-eyebrow { text-align: center; }
.cierre-ambar h2 { margin: 0; }
.cierre-ambar > p { color: var(--apagado); max-width: 48ch; margin: 12px auto 18px; }
.cierre-ambar .cta-doble { justify-content: center; margin: 8px 0 0; }

.ilu-banda { width: 100%; max-width: 420px; margin: 6px 0 14px; color: var(--primario); }
@media (max-width: 559px) { .ilu-banda { display: none; } }
.ilu-titular { margin: 4px 0 12px; }
.ilu-titular .ilu-icono { width: 46px; height: 46px; }
.tramos legend { display: flex; align-items: center; gap: 8px; }
.tramos legend .ilu-icono { width: 26px; height: 26px; flex: 0 0 26px; }

.razones { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 14px; grid-template-columns: 1fr; }
.razones li { display: flex; align-items: flex-start; gap: 12px; }
.razones strong { display: block; font-size: 15.5px; margin-bottom: 2px; }
.razones span { display: block; color: var(--apagado); font-size: 14.5px; }

.tldr-ilu { display: grid; gap: 14px; }
.tldr-escena { display: none; }
@media (min-width: 560px) {
  .razones { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .tldr-escena { display: block; }
}
@media (min-width: 860px) {
  .tldr-ilu { grid-template-columns: 300px 1fr; align-items: center; gap: 22px; }
  .razones { margin-top: 0; }
}

.gc-lead { font-size: 17px; color: var(--apagado); margin: 4px 0 18px; }
.gc-ver { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.gc-ver a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--borde-campo); border-radius: 999px; background: var(--carta); color: var(--tinta); text-decoration: none; font-weight: 600; font-size: 15px; }
.gc-ver a:hover { border-color: var(--primario); color: var(--primario); }
.gc-ver a[aria-current] { background: var(--primario); border-color: var(--primario); color: #fff; }
.gc-ver a:focus-visible, .gc-otro:focus-visible { outline: 3px solid var(--primario); outline-offset: 2px; }
.gc-busca { margin: 0 0 8px; max-width: 560px; }
.gc-busca label { display: block; font-weight: 700; margin: 0 0 6px; }
.gc-campo { display: flex; gap: 8px; }
.gc-campo input { flex: 1 1 auto; min-width: 0; min-height: 48px; padding: 10px 14px; font: inherit; font-size: 16px; border: 1.5px solid var(--borde-campo); border-radius: 12px; background: var(--carta); color: var(--tinta); }
.gc-campo input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.gc-campo input:focus-visible { outline: 3px solid var(--primario); outline-offset: 1px; border-color: var(--primario); }
.gc-campo .btn { flex: 0 0 auto; padding: 10px 16px; }
.gc-cuenta { min-height: 1.4em; margin: 6px 0 0; font-size: 14px; color: var(--apagado); }
.gc-vacio { margin: 8px 0 16px; padding: 14px 16px; background: var(--ambar-suave); border-radius: 12px; }
.gc-publico { margin: 26px 0 8px; padding-top: 4px; }
.gc-publico > h2 { margin: 2px 0 8px; }
.gc-publico h3 { margin: 22px 0 10px; font-size: 18px; }
.gc-empieza { margin: 12px 0 6px; padding: 4px 16px 16px; background: var(--primario-suave); border-radius: 16px; }
.gc-empieza h3 { margin-top: 14px; }
.gc-rejilla { margin: 0; gap: 10px; }
@media (min-width: 700px) { .gc-rejilla { grid-template-columns: 1fr 1fr; } .gc-rejilla > .gc-carta:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 960px) { .gc-empieza .gc-rejilla { grid-template-columns: 1fr 1fr 1fr; } .gc-empieza .gc-rejilla > .gc-carta:last-child:nth-child(odd) { grid-column: auto; } }
.listado > .tarjeta.gc-carta { box-shadow: none; padding: 12px 14px; }
.listado > .tarjeta.gc-carta:hover { transform: none; box-shadow: none; border-color: var(--borde-campo); }
.gc-carta h3 { margin: 0; font-size: 16.5px; line-height: 1.3; text-wrap: balance; }
.gc-carta p { margin: 4px 0 0; font-size: 14.5px; line-height: 1.45; color: var(--apagado); }
.gc-carta[hidden], .gc-grupo[hidden], .gc-empieza[hidden], .gc-publico[hidden], .gc-campo .btn[hidden] { display: none; }
.gc-carta .gc-pie { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 8px; font-size: 13px; }
.gc-herr { background: var(--ambar-suave); color: #6E3600; font-weight: 700; padding: 2px 9px; border-radius: 999px; }
.gc-cierre { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 22px 0 8px; padding: 16px; border: 1px solid var(--linea); border-radius: 16px; background: var(--carta); }
.gc-otro { display: inline-block; padding: 6px 0; min-height: 24px; font-weight: 600; }
@media (max-width: 559px) { .gc-cierre { flex-direction: column; align-items: stretch; } .gc-otro { text-align: center; } }
.guias-rel ul li { margin: 2px 0; }
.guias-rel ul a { display: inline-block; padding: 5px 0; min-height: 24px; }
.lista-ciudades { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.lista-ciudades a { display: flex; align-items: center; min-height: 40px; height: 100%; box-sizing: border-box; padding: 9px 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 10px; text-decoration: none; font-size: 14px; font-weight: 600; }
.lista-ciudades a:hover { border-color: var(--primario); background: var(--primario-suave); }
.grid-ciudades ul a, .lista-ciudades a { flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; }
.grid-ciudades ul a small, .lista-ciudades a small { font-size: 12px; font-weight: 600; color: var(--apagado); text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.2; }

.susc, .susc-caja { border-radius: 12px; padding: 16px 18px; margin: 16px 0; }
.susc-caja { background: var(--carta); border: 1px solid var(--linea); }
.susc-caja h2 { margin-top: 0; }
.susc { border: 1px solid var(--linea); }
.susc-activa { background: var(--primario-suave); border-color: var(--primario); }
.susc-cancelada { background: var(--ambar-suave); border-color: var(--ambar); }
.susc-fallo { background: var(--ambar-suave); border-color: var(--ambar); }
.susc-fallo .btn { margin-top: 6px; }
.susc-titulo { margin: 0 0 6px; font-weight: 700; }
.susc p { margin: 0 0 6px; }
.susc p:last-child { margin-bottom: 0; }
.susc-renueva { font-size: 14.5px; }
.susc-caja form { margin: 14px 0 6px; }
.susc-caja form .btn { width: 100%; }
@media (min-width: 560px) { .susc-caja form .btn { width: auto; } }

.fact-plan { background: var(--carta); border: 1px solid var(--linea); border-top: 5px solid var(--primario); border-radius: 14px; padding: 16px 18px 18px; margin: 18px 0 8px; box-shadow: var(--sombra-flota); }
.fact-plan-ambar { border-top-color: var(--ambar); }
.fact-plan-gris { border-top-color: var(--borde-campo); }
.fact-plan p { max-width: none; margin: 10px 0 0; font-size: 15px; }
.fact-plan-cab { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 12px; }
.fact-plan-cab h2 { margin: 0; font-size: clamp(22px, 5.5vw, 30px); }
.fact-plan-cab .etiqueta { font-size: 12.5px; padding: 4px 10px; }
.fact-plan .fact-eyebrow { margin: 0 0 2px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--apagado); }
.fact-plan .fact-precio { margin-top: 4px; color: var(--apagado); }
.fact-precio strong { font-family: var(--display); font-size: 26px; color: var(--tinta); }
.fact-fecha { margin: 14px 0 0; padding: 12px 14px; background: var(--fondo); border-radius: 10px; }
.fact-fecha dl { margin: 0; }
.fact-fecha dt { font-size: 13.5px; font-weight: 600; color: var(--apagado); }
.fact-fecha dd { margin: 2px 0 0; font-family: var(--display); font-size: clamp(20px, 5vw, 26px); font-weight: 700; line-height: 1.2; }
.fact-plan .fact-incluye { position: relative; padding-left: 26px; }
.fact-incluye::before { content: '✓'; position: absolute; left: 4px; top: 0; font-weight: 800; color: var(--ok); }
.fact-renueva { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linea); }
.fact-plan .fact-renueva p { margin: 0; font-size: 14.5px; }
.fact-plan .btn { margin-top: 4px; }
.fact-sec { margin: 30px 0 0; }
.fact-sec > h2 { margin: 0 0 10px; }
.fact-sec > p:not(.nota) { margin: 0 0 10px; }
.fact-pagos { list-style: none; padding: 0; margin: 0 0 10px; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; max-width: 640px; }
.fact-pago { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: start; max-width: none; padding: 12px 14px; }
.fact-pago + .fact-pago { border-top: 1px solid var(--linea); }
.fact-pago p { margin: 0; max-width: none; }
.fact-pago-que { display: flex; flex-direction: column; gap: 1px; }
.fact-pago-que time { font-weight: 700; }
.fact-pago-que span { font-size: 14px; color: var(--apagado); }
.fact-pago-cuanto { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.fact-pago-cuanto strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.fact-pago-ref { grid-column: 1 / -1; font-size: 12.5px; color: var(--apagado); overflow-wrap: anywhere; }
.fact-cancelar { margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--linea); }
.fact-cancelar > h2, .fact-discreta > h2 { font-size: 18px; }
.fact-discreta { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--linea); }
.fact-sec form { margin: 10px 0; }
.et-ambar { background: var(--ambar-suave); color: #8F4603; }

.comparativa { margin: 26px 0; }
.tabla-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.comp-tabla { display: none; }
.comp-bloques { display: grid; gap: 14px; }
@media (min-width: 560px) {
  .comp-tabla { display: block; }
  .comp-bloques { display: none; }
}
.comparativa table { width: 100%; border-collapse: collapse; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; }
.comparativa th, .comparativa td { padding: 11px 12px; text-align: left; border-bottom: 1px solid var(--linea); vertical-align: top; font-size: 14.5px; }
.comparativa thead th { background: var(--primario-suave); font-size: 14px; }
.comparativa tbody th { font-weight: 600; }
.comparativa tr:last-child th, .comparativa tr:last-child td { border-bottom: 0; }
.comparativa th + th, .comparativa td { border-left: 1px solid var(--linea); }
.comparativa thead th:first-child + th,
.comparativa tbody th + td { border-left: 2px solid rgba(var(--primario-rgb), .22); }
.comparativa thead th { border-bottom: 2px solid rgba(var(--primario-rgb), .22); }
.comparativa thead th > .nota:first-child { text-transform: uppercase; letter-spacing: .06em; font-size: 11.5px; font-weight: 700; color: var(--primario); }
.comparativa .comp-plan { font-weight: 700; font-size: 15px; }
.comparativa tbody tr:nth-child(even) th, .comparativa tbody tr:nth-child(even) td { background: rgba(var(--primario-rgb), .035); }
.comparativa tbody th { background: rgba(var(--tinta-rgb), .02); }
.comparativa tbody tr:nth-child(even) th { background: rgba(var(--primario-rgb), .055); }
.comparativa .si { color: var(--primario-osc); font-weight: 600; }
.comparativa .nota { display: block; font-size: 13px; margin-top: 2px; }
.comp-planes th:first-child { width: 30%; }
@media (max-width: 700px) {
  .comparativa th, .comparativa td { padding: 9px 7px; font-size: 13.5px; }
  .comparativa thead th { font-size: 13px; }
  .comparativa .nota { font-size: 12px; }
}

.comp-bloque { background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 14px 14px 8px; }
.comp-bloque h3 { margin: 0 0 8px; font-size: 16px; }
.comp-bloque h3 .nota { display: inline; font-size: 13px; font-weight: 400; color: var(--apagado); margin: 0; }
.comp-bloque dl { margin: 0; }
.comp-bloque dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--linea); }
.comp-bloque dl > div:last-child { border-bottom: 0; }
.comp-bloque dt { font-size: 13.5px; color: var(--apagado); }
.comp-bloque dd { margin: 0; font-size: 13.5px; font-weight: 600; text-align: right; white-space: nowrap; }
.comp-bloque dd.si { color: var(--primario-osc); }

.cancelar { margin: 26px 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.muro { background: var(--carta); border: 1px solid var(--linea); border-top: 4px solid var(--primario); border-radius: 12px; padding: 20px 18px; margin: 18px 0; }
.muro-paso { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--primario); }
.muro h2 { margin: 0 0 8px; }
.muro-como { margin: 0 0 16px; }
.muro .cta-doble { margin: 0 0 18px; }
.muro-porques { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--linea); padding-top: 14px; }
.muro-porques li { position: relative; padding-left: 26px; margin-bottom: 8px; }
.muro-porques li:last-child { margin-bottom: 0; }
.muro-porques li::before { content: '✓'; position: absolute; left: 0; top: -1px; color: var(--primario); font-weight: 700; }

.ico { display: inline-block; flex: 0 0 auto; vertical-align: middle; }

.busca-panel { position: relative; margin: 18px 0 0; padding: 0 14px 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; box-shadow: 0 8px 24px rgba(23, 38, 42, .08); }
.busca-prov h2 { margin: 0; }
.prov-selects { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0; }
.busca-pestanas { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0 -14px 2px; padding: 6px 6px 0; border: 0; border-bottom: 1px solid var(--linea); }
.busca-pestanas label { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 6px 8px; font-size: 13.5px; font-weight: 500; color: var(--tinta); border-radius: 8px 8px 0 0; cursor: pointer; }
.busca-pestanas input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.busca-pestanas label:has(input:checked) { background: var(--primario-suave); color: var(--primario-osc); font-weight: 700; box-shadow: inset 0 -3px 0 var(--primario); }
.busca-pestanas label:has(input:focus-visible) { outline: 2px solid var(--primario); outline-offset: 2px; }
.prov-selects .cmp { margin: 0; }
.prov-selects label[for] { display: block; font-size: 13px; font-weight: 400; color: var(--tinta); margin-bottom: 6px; }
.prov-selects select { width: 100%; min-height: 44px; padding: 8px 12px; font-size: 15px; color: var(--tinta); background: var(--carta); border: 1px solid var(--borde-campo); border-radius: 8px; }
.prov-selects select:disabled { color: #8A9396; border-color: #C9C0B0; background: var(--carta); }
.prov-selects select:focus-visible { outline: 2px solid var(--primario); outline-offset: 1px; }
.prov-selects .busca-ir { margin: 0; }
.prov-selects .btn { width: 100%; min-height: 46px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 15px; }
.busca-enlaces { display: none; }

@media (min-width: 760px) {
  .busca-panel { margin-top: 46px; padding: 18px 24px 16px; border-top-left-radius: 0; }
  .busca-pestanas { position: absolute; left: -1px; bottom: calc(100% - 1px); width: min(390px, 52%); margin: 0; padding: 5px 6px 0; background: var(--carta); border: 1px solid var(--linea); border-bottom: 0; border-radius: 12px 12px 0 0; }
  .busca-pestanas label { min-height: 34px; border-radius: 8px; background: #F5F3EE; }
  .prov-selects { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(190px, .78fr); align-items: end; gap: 12px 20px; }
  .prov-selects:not(:has(#sel-ciudad:not([hidden]))) .busca-ir { grid-column: 3; }
  .busca-enlaces { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 12px 0 0; font-size: 13.5px; }
  .busca-enlaces a { display: inline-flex; align-items: center; gap: 7px; min-height: 28px; color: var(--primario); }
}

.portada-arriba ~ section > h2, .sec-cab h2, .zona-txt h2 { font-size: clamp(18px, 4.8vw, 21px); line-height: 1.2; margin: 0; }
.sec-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 18px; grid-column: 1 / -1; margin: 0 0 2px; }
.sec-nota { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12.5px; color: var(--apagado); }
.portada-perfiles { margin: 26px 0 26px; gap: 12px; }
@media (min-width: 700px) { .portada-perfiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; } }
@media (max-width: 699px) { .listado.portada-perfiles > .tarjeta.perfil:nth-of-type(n+3) { display: none; } }
.listado > .tarjeta.tarjeta-portada { grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; padding: 16px 16px 14px; border-radius: 10px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04); }
.listado > .tarjeta.tarjeta-portada > .avatar { width: 52px; height: 52px; font-size: 20px; }
.tarjeta-portada h3 { font-size: 15px; }
.tarjeta-portada h3 a { color: var(--tinta); text-decoration: none; display: inline-block; min-height: 24px; }
.tarjeta-portada .meta { display: flex; align-items: center; gap: 5px; margin: 0 0 8px; font-size: 12.5px; }
.tarjeta-portada .tarjeta-precio { margin: 0 0 8px; text-align: start; }
.tarjeta-portada .tarjeta-precio strong { font-family: inherit; font-size: 15px; font-weight: 700; color: var(--tinta); }
.tarjeta-portada .chips { margin: 0 0 10px; }
.tarjeta-portada .tarjeta-ir { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; color: var(--primario); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 519px) {
  .listado > .tarjeta.tarjeta-portada { grid-template-columns: 52px minmax(0, 1fr); }
  .listado > .tarjeta.tarjeta-portada > .avatar { grid-row: 1; }
  .listado > .tarjeta.tarjeta-portada > .tarjeta-cuerpo { display: block; grid-column: 2; }
}

.sencillo { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0 0 18px; }
.sencillo .pestanas { display: grid; grid-template-columns: 1fr 1fr; margin: 0; background: var(--carta); border: 1px solid var(--linea); border-radius: 10px; padding: 4px; }
.sencillo .pestanas label { position: relative; display: flex; align-items: center; justify-content: center; min-height: 38px; padding: 6px 10px; font-size: 13.5px; border-radius: 7px; cursor: pointer; }
.sencillo .pestanas input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.sencillo .pestanas label:has(input:checked) { background: var(--primario-suave); color: var(--primario-osc); font-weight: 700; box-shadow: inset 0 -3px 0 var(--primario); }
.sencillo .pestanas label:has(input:focus-visible) { outline: 2px solid var(--primario); outline-offset: 2px; }
.sencillo-caja { background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 16px 14px 12px; }
.sencillo .pasos { list-style: none; counter-reset: paso; margin: 0; padding: 0; display: grid; gap: 16px; }
.sencillo .pasos-trabajo, .sencillo:has(#pasos-trabajo:checked) .pasos-familia { display: none; }
.sencillo:has(#pasos-trabajo:checked) .pasos-trabajo { display: grid; }
.sencillo .pasos li { counter-increment: paso; display: grid; grid-template-columns: 24px 48px minmax(0, 1fr); align-items: center; gap: 12px; }
.sencillo .pasos li::before { content: counter(paso); display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--primario-suave); color: var(--primario-osc); font-weight: 700; font-size: 12.5px; }
.paso-ico { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #F1F6F4; color: var(--primario); }
.paso-txt strong { display: block; font-size: 14px; }
.paso-txt > span { display: block; font-size: 12.5px; color: var(--apagado); line-height: 1.4; }
.sencillo-nota { max-width: none; display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; padding: 9px 12px; background: var(--primario-suave); border-radius: 8px; font-size: 12.5px; color: var(--tinta); }
.sencillo-nota .ico { margin-top: 1px; }
.sencillo-nota a { white-space: nowrap; font-weight: 600; }
@media (min-width: 820px) {
  .sencillo { grid-template-columns: 1fr auto; align-items: center; }
  .sencillo .pestanas { width: 280px; }
  .sencillo-caja { grid-column: 1 / -1; padding: 18px 20px 14px; }
  .sencillo .pasos, .sencillo:has(#pasos-trabajo:checked) .pasos-trabajo { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .sencillo .pasos li { grid-template-columns: 24px 48px minmax(0, 1fr) auto; align-items: start; }
  .sencillo .pasos li::before { margin-top: -4px; }
  .sencillo .pasos li:not(:last-child)::after { content: '›'; align-self: center; font-size: 22px; color: var(--tinta); }
  .sencillo-nota { justify-content: center; align-items: center; }
}

.zona-portada { display: none; }
@media (min-width: 760px) {
  .zona-portada { display: grid; grid-template-columns: minmax(0, 1fr) 230px; align-items: center; gap: 0 28px; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 18px 28px; margin: 0 0 14px; }
  .prov-todas { grid-column: 1 / -1; }
}
.zona-txt > p { margin: 2px 0 10px; font-size: 13.5px; color: var(--apagado); }
.zona-atajos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-rows: repeat(3, auto); grid-auto-flow: column; grid-auto-columns: max-content; column-gap: 130px; }
.zona-atajos a { display: inline-flex; align-items: center; min-height: 30px; font-size: 14px; font-weight: 700; text-underline-offset: 3px; }
.zona-atajos a::after { content: ''; display: inline-block; width: 6px; height: 6px; margin-left: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.zona-atajos a[aria-expanded="true"]::after { margin-top: -4px; transform: rotate(45deg); }
.mapa-caja { margin: 0; position: relative; }
.mapa-rotulo { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; text-align: center; font-weight: 700; color: var(--primario); pointer-events: none; }
.mapa-rotulo:empty { visibility: hidden; }
.prov-todas > summary { display: none; }
.prov-todas[open] { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linea); }
.grid-prov-lista { list-style: none; padding: 0; margin: 0; columns: 4 150px; column-gap: 28px; }
.grid-prov-lista li { break-inside: avoid; }
.grid-prov-lista a { display: inline-flex; align-items: center; min-height: 30px; font-size: 14px; font-weight: 600; text-underline-offset: 3px; }

.cierre-portada { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px 14px; background: var(--primario); color: #fff; border-radius: 12px; padding: 16px 14px 14px; margin: 0 0 22px; }
.cierre-portada > .ico { width: 34px; height: 34px; }
.cierre-portada h2 { margin: 0; color: #fff; font-size: clamp(17px, 4.4vw, 21px); }
.cierre-txt p { margin: 2px 0 0; color: #E3EFEC; font-size: 13.5px; }
.cierre-acc { grid-column: 1 / -1; text-align: center; }
.cierre-acc p { margin: 8px 0 0; font-size: 12.5px; color: #E3EFEC; }
.cierre-acc a:not(.btn) { color: #fff; }
.cierre-acc a.cta-alta { min-height: 24px; vertical-align: middle; }
.btn.btn-claro { background: #fff; color: var(--primario-osc); width: 100%; min-height: 42px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 14.5px; }
.btn.btn-claro:hover { background: var(--primario-suave); }
@media (min-width: 760px) {
  .cierre-portada { grid-template-columns: auto minmax(0, 1fr) auto; padding: 18px 28px; gap: 20px; }
  .cierre-portada > .ico { width: 46px; height: 46px; }
  .cierre-acc { grid-column: auto; }
  .btn.btn-claro { width: auto; min-width: 230px; }
}

.portada-arriba ~ .faq { margin: 0 0 6px; }
.portada-arriba ~ .faq > h2 { font-size: clamp(16px, 4.4vw, 19px); margin: 0 0 10px; }
.portada-arriba ~ .faq details { border-radius: 8px; padding: 0 16px; margin: 0 0 8px; }
.portada-arriba ~ .faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; font-size: 14px; }
.portada-arriba ~ .faq summary::-webkit-details-marker { display: none; }
.portada-arriba ~ .faq summary::after { content: ''; flex: none; width: 8px; height: 8px; margin: -4px 2px 0 0; border-right: 2px solid var(--tinta); border-bottom: 2px solid var(--tinta); transform: rotate(45deg); }
.portada-arriba ~ .faq details[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
@media (min-width: 900px) {
  .portada-arriba ~ .faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; align-items: start; }
  .portada-arriba ~ .faq > h2 { grid-column: 1 / -1; }
}

.mapa-es { width: 100%; height: auto; display: block; }
.mapa-es path { fill: var(--carta); stroke: var(--primario); stroke-width: 0.6; stroke-linejoin: round; transition: fill .12s; }
.mapa-es circle { fill: var(--primario); stroke: var(--carta); stroke-width: 1.2; }
.mapa-es .marca-diana { fill: transparent; stroke: none; }
.mapa-es a:hover path, .mapa-es a:focus path { fill: var(--primario-suave); }
.mapa-es a:hover circle, .mapa-es a:focus circle { fill: var(--primario-osc); }
.mapa-es a:focus { outline: none; }
.mapa-es a:focus-visible path { fill: var(--primario-suave); stroke: var(--primario-osc); stroke-width: 1.8; }
.mapa-es a:focus-visible circle { stroke: var(--primario-osc); stroke-width: 2.5; }
.mapa-inset { fill: none; stroke: var(--linea); stroke-dasharray: 4 3; }
@media (prefers-reduced-motion: reduce) { .mapa-es path { transition: none; } }

.faq { margin: 26px 0; }
.faq details { background: var(--carta); border: 1px solid var(--linea); border-radius: 10px; padding: 0 16px; margin-bottom: 8px; }
.faq summary { padding: 13px 0; font-weight: 700; cursor: pointer; font-size: 15px; }
.faq p { margin: 0 0 14px; font-size: 14.5px; }
.faq-lista { margin: -6px 0 14px; padding-left: 20px; font-size: 14.5px; text-align: left; hyphens: manual; }
.faq-lista li { margin: 0 0 6px; }
.faq-lista li:last-child { margin-bottom: 0; }

.tablawrap { overflow-x: auto; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; }
table { border-collapse: collapse; width: 100%; font-size: 14px; }
th, td { text-align: left; padding: 9px 14px; border-bottom: 1px solid var(--linea); }
thead th { font-size: 13.5px; letter-spacing: 0.02em; color: var(--apagado); }
tbody tr:last-child td { border-bottom: none; }
td.num { font-variant-numeric: tabular-nums; white-space: nowrap; }

.formulario { display: flex; flex-direction: column; gap: 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; padding: 18px; margin: 16px 0; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 24px rgba(23, 38, 42, .05); }
.formulario label { font-size: 13.5px; font-weight: 600; display: flex; flex-direction: column; gap: 4px; color: var(--tinta); }
.formulario input, .formulario select, .formulario textarea {
  font: inherit; font-size: 16px; font-weight: 400; color: var(--tinta);
  border: 1px solid var(--borde-campo); border-radius: 10px; padding: 10px 12px; background: var(--carta);
  width: 100%; transition: border-color .15s ease, box-shadow .15s ease;
}
.formulario input:focus, .formulario select:focus, .formulario textarea:focus {
  outline: none; border-color: var(--primario); box-shadow: 0 0 0 2px var(--primario);
}
.formulario input::placeholder, .formulario textarea::placeholder { color: #687175; opacity: 1; }
.formulario textarea { resize: vertical; min-height: 90px; max-height: 260px; }
.formulario fieldset { border: 1px solid var(--linea); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 12px; min-inline-size: 0; }
.formulario legend { font-size: 13.5px; font-weight: 700; padding: 0 4px; }
.formulario fieldset.servicios, .formulario div.servicios { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.formulario fieldset.servicios .check, .formulario div.servicios .check { flex: 1 1 150px; }
.formulario fieldset.servicios .check, .formulario div.servicios .check { border: 1px solid var(--linea); border-radius: 10px; padding: 8px 10px; margin: 0; background: var(--carta); transition: border-color .15s ease, background .15s ease; }
.formulario fieldset.servicios .check:has(input:checked), .formulario div.servicios .check:has(input:checked) { border-color: var(--primario); background: var(--primario-suave); }
.formulario .paso { display: flex; flex-direction: column; gap: 12px; padding-top: 14px; border-top: 1px solid var(--linea); }
.formulario .paso:first-of-type, .formulario .progreso-pasos + .paso { border-top: 0; padding-top: 0; }
.formulario .paso-cab { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--display); font-size: 18px; font-weight: 700; color: var(--tinta); }
.formulario .paso-cab .nota { font-family: inherit; font-weight: 400; }
.paso-n { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); font-size: 14px; font-weight: 700; transition: background .2s ease, color .2s ease; }
.paso-hecho .paso-n { background: var(--primario); color: #fff; font-size: 0; }
.paso-hecho .paso-n::before { content: '✓'; font-size: 15px; }
.progreso-pasos { position: sticky; top: 64px; z-index: 2; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 10px 12px; box-shadow: 0 4px 14px rgba(23, 38, 42, .06); }
html:has(.progreso-pasos:not([hidden])):not(:has(.cab :focus)) { scroll-padding-top: 136px; }
@media (max-width: 620px) {
  .progreso-pasos { top: 83px; }
  html:has(.progreso-pasos:not([hidden])):not(:has(.cab :focus)) { scroll-padding-top: 156px; }
}
.progreso-pasos p { margin: 6px 0 0; font-size: 13.5px; font-weight: 600; color: var(--primario); }
.progreso-barra { height: 8px; border-radius: 99px; background: var(--primario-suave); overflow: hidden; }
.progreso-barra span { display: block; height: 100%; width: 0; background: var(--primario); border-radius: inherit; transition: width .35s ease; }
.formulario fieldset.paso-asistente { border: 0; border-radius: 0; padding: 0; gap: 14px; }
.formulario .publicar-cab[hidden] ~ .paso-asistente + .paso-asistente { border-top: 1px solid var(--linea); padding-top: 20px; }
.formulario .paso-asistente[hidden], .publicar-cab[hidden], .paso-nav[hidden], .paso-error[hidden], .revisar[hidden], .revisar [hidden], .paso-nav [hidden] { display: none; }
.formulario legend.paso-de { padding: 0; font-size: 13.5px; font-weight: 600; color: var(--apagado); }
.paso-titulo { margin: 0; font-family: var(--display); font-size: 24px; line-height: 1.2; font-weight: 700; color: var(--tinta); }
.paso-titulo:focus { outline: none; }
.publicar-cab { position: sticky; top: 64px; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 10px 12px; box-shadow: 0 4px 14px rgba(23, 38, 42, .06); }
@media (max-width: 620px) { .publicar-cab { top: 83px; } }
html:has(.publicar-cab:not([hidden])):not(:has(.cab :focus)) { scroll-padding-top: 150px; }
.asistente-barra { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 6px; flex: 1 1 260px; min-width: 0; }
.asistente-barra li { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--apagado); white-space: nowrap; }
.asistente-barra li + li::before { content: ''; width: clamp(10px, 4vw, 48px); height: 2px; border-radius: 2px; background: var(--linea); }
.asistente-barra li.paso-actual { color: var(--primario); font-weight: 700; }
@media (max-width: 479px) { .asistente-barra li:not(.paso-actual) .asistente-etiqueta { display: none; } }
.asistente-barra li.paso-actual .paso-n { background: var(--primario); color: #fff; }
.asistente-progreso { margin: 0; font-size: 13px; color: var(--apagado); }
.asistente-hueco:empty, .asistente-guardar:empty { display: none; }
.asistente-hueco { margin-left: auto; }
.paso-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 4px; }
.paso-nav [data-siguiente], .paso-nav [data-publicar] { margin-left: auto; }
.formulario fieldset.opciones { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.formulario fieldset.opciones .check { flex: 1 1 170px; }
.formulario fieldset.opciones .check { border: 1px solid var(--linea); border-radius: 10px; padding: 8px 10px; margin: 0; background: var(--carta); transition: border-color .15s ease, background .15s ease; }
.formulario fieldset.opciones .check:has(input:checked) { border-color: var(--primario); background: var(--primario-suave); }
.formulario input[type='date']:focus-within { border-color: var(--primario); box-shadow: 0 0 0 2px var(--primario); }
.formulario fieldset.opciones input[type='radio'] { width: 20px; height: 20px; accent-color: var(--primario); }
.formulario fieldset.opciones .check:has(input:focus-visible) { outline: 3px solid var(--primario); outline-offset: 2px; }
.revisar { display: flex; flex-direction: column; gap: 10px; }
.revisar > .nota { margin: 0; }
.revisar-rejilla { display: grid; gap: 14px; }
@media (min-width: 900px) { .revisar-rejilla { grid-template-columns: 1fr 1fr; align-items: start; } }
.revisar-tarjeta { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--linea); border-radius: 12px; padding: 14px; background: var(--carta); }
.revisar-rotulo { margin: 0; font-size: 13.5px; font-weight: 700; }
.revisar-cab { display: flex; align-items: center; gap: 12px; }
.revisar-foto .avatar { width: 64px; height: 64px; flex-basis: 64px; font-size: 26px; }
.revisar-nombre { margin: 0; font-size: 17px; font-weight: 700; hyphens: auto; overflow-wrap: break-word; }
.revisar-cab > div { min-width: 0; }
.revisar .meta { margin: 0; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.revisar [data-ver]:empty, .revisar .chips:not(:has(span:not([hidden]))) { display: none; }
.revisar .chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.revisar .chips span { background: var(--primario-suave); color: var(--primario); border-radius: 99px; padding: 3px 10px; font-size: 13px; font-weight: 600; }
.revisar-desc { margin: 0; white-space: pre-line; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.revisar-bloques { list-style: none; margin: 0; padding: 0; border: 1px solid var(--linea); border-radius: 12px; background: var(--carta); }
.revisar-bloque { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 12px 14px; }
.revisar-bloque + .revisar-bloque { border-top: 1px solid var(--linea); }
.revisar-bloque > div { min-width: 0; }
.revisar-bloque p { margin: 0; font-size: 14px; color: var(--apagado); }
.revisar-bloque p.revisar-bloque-t { margin-bottom: 2px; font-size: 15px; font-weight: 700; color: var(--tinta); }
.revisar-editar { flex: none; background: none; border: 0; padding: 4px 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--primario); text-decoration: underline; cursor: pointer; }
.revisar-lista span:not([hidden]) ~ span:not([hidden])::before { content: ', '; }
.revisar-punto > :not([hidden]):not(:empty) ~ :not([hidden]):not(:empty)::before { content: ' · '; }
.listo-tarjeta { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 12px 0 18px; padding: 28px 22px 0; border: 1px solid var(--linea); border-radius: 18px; background: var(--carta); overflow: hidden; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 24px rgba(23, 38, 42, .05); }
.listo-tarjeta h1 { margin: 6px 0 0; font-size: clamp(26px, 4.6vw, 38px); line-height: 1.12; text-wrap: balance; }
.listo-tarjeta > p { margin: 0; max-width: none; color: var(--apagado); font-size: clamp(16px, 2vw, 18px); }
.listo-tarjeta .cta-doble { justify-content: center; width: 100%; margin: 14px 0 2px; }
.listo-tarjeta .cta-doble .btn { min-width: 180px; }
.listo-ok { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
.listo-volver { font-size: 14.5px; }
.listo-wa-enlace { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 4px; font-weight: 700; color: var(--primario); text-decoration: none; }
.listo-wa-enlace:hover { text-decoration: underline; }
.listo-wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; font-size: 15px; padding-inline: 12px; }
.listo-paso-cab { display: flex; align-items: center; gap: 16px; color: var(--primario); }
.listo-tarjeta .listo-pie { display: flex; align-items: center; justify-content: center; gap: 10px; align-self: stretch; margin: 16px -22px 0; padding: 14px 18px; background: var(--primario-suave); font-size: 15px; color: var(--tinta); }
.listo-pie svg { flex: none; color: var(--primario); }
.listo-foto { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px 20px; margin: 0 0 26px; padding: 20px 22px; border: 1px solid #CFE2DC; border-radius: 18px; background: var(--primario-suave); }
.listo-foto-i { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: #D7E8E3; color: var(--tinta); }
.listo-foto-txt h2 { margin: 0 0 4px; font-size: clamp(21px, 3vw, 26px); }
.listo-foto-txt p { margin: 0; max-width: none; color: var(--apagado); }
.listo-foto .listo-foto-nota { margin-top: 4px; font-size: 14px; }
.listo-foto > .btn { grid-column: 1 / -1; }
@media (min-width: 720px) { .listo-foto { grid-template-columns: auto minmax(0, 1fr) auto; } .listo-foto > .btn { grid-column: auto; } }
.listo-pasos > h2 { margin: 0 0 4px; font-size: clamp(24px, 3.6vw, 32px); }
.listo-pasos > p { margin: 0 0 14px; max-width: none; color: var(--apagado); }
.listo-pasos-lista { list-style: none; display: grid; grid-template-columns: 1fr; gap: 14px; margin: 0; padding: 0; }
@media (min-width: 760px) { .listo-pasos-lista { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.listo-paso { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; max-width: none; margin: 0; padding: 20px; border: 1px solid var(--linea); border-radius: 16px; background: var(--carta); }
.listo-paso-n { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); font-family: var(--display); font-weight: 800; font-size: 19px; }
.listo-paso h3 { margin: 6px 0 0; font-size: 18px; }
.listo-paso p { margin: 0; max-width: none; color: var(--apagado); }
.listo-paso .btn { margin-top: auto; align-self: stretch; }
.listo-enlaces { list-style: none; display: grid; gap: 6px; margin: auto 0 0; padding: 0; }
.listo-enlaces li { margin: 0; }
.listo-enlaces a::after { content: ' ›'; }
.listo-seguro { display: flex; align-items: center; justify-content: center; gap: 10px; max-width: none; margin: 22px 0 10px; padding: 14px 18px; border: 1px solid #CFE2DC; border-radius: 14px; background: var(--primario-suave); font-size: 14.5px; }
.listo-seguro svg { flex: none; color: var(--primario); }
.listo-ayuda { text-align: center; max-width: none; margin: 0 0 8px; }
.formulario fieldset.campo-tarifa { flex-direction: column; flex-wrap: nowrap; gap: 8px; }
.tarifa-fila { display: flex; align-items: center; gap: 8px; max-width: 220px; }
.tarifa-fila input { flex: 1; }
.tarifa-unidad { font-weight: 600; color: var(--apagado); }
.es-negociable .tarifa-fila { opacity: .45; }
.campo-tarifa .nota { margin: 0; }
.contador, .nota-campo { margin: -6px 0 0; }
.contador-ok { color: var(--ok); font-weight: 600; }
.ideas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--apagado); }
.ideas .idea { font: inherit; font-size: 13px; color: var(--primario); background: var(--primario-suave); border: 1px solid transparent; border-radius: 99px; padding: 6px 12px; cursor: pointer; }
.ideas .idea:hover { border-color: var(--primario); }
.ideas .idea:disabled { opacity: .45; cursor: default; }
.ideas[hidden] { display: none; }
.ideas .idea[aria-pressed="true"] { color: #fff; background: var(--primario); border-color: var(--primario); }
.asistente { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border-radius: 12px; background: var(--primario-suave); }
.asistente[hidden], .formulario .check[hidden] { display: none; }
.asistente-cab { margin: 0; font-size: 14px; color: var(--tinta); }
.asistente .ideas > span { flex-basis: 100%; font-weight: 600; color: var(--tinta); }
.asistente .ideas .idea { background: var(--carta); border-color: var(--borde-campo); }
.asistente .ideas .idea[aria-pressed="true"] { background: var(--primario); }
.check { flex-direction: row !important; align-items: center; gap: 8px !important; font-weight: 500 !important; font-size: 14.5px !important; }
.check input { width: auto; flex: none; }
.check > span { flex: 1; }
.consent { align-items: flex-start; }
.consent input { margin-top: 3px; }
.aviso-prellenado, .aviso-sin-cuenta { background: var(--carta); border: 1px solid var(--linea); border-left: 3px solid var(--primario); border-radius: 10px; padding: 11px 14px; margin: 0 0 14px; }
.aviso-sin-cuenta { max-width: none; }
.form-denuncia { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.form-denuncia label { flex: 1 0 100%; margin: 0; }
.form-denuncia input { flex: 1 1 11em; min-height: 44px; padding: 8px 10px; border: 1px solid var(--borde-campo); border-radius: 8px; background: var(--carta); font: inherit; }
.check input[type='checkbox'] { width: 24px; height: 24px; accent-color: var(--primario); }
.hp { position: absolute; left: -9999px; top: -9999px; }
.error { background: #F9E8E5; border: 1px solid #E5C0BA; color: var(--error); border-radius: 10px; padding: 11px 14px; font-weight: 600; font-size: 14.5px; }
.ok { background: #E5F3EB; border: 1px solid #BFDFCD; color: var(--ok); border-radius: 10px; padding: 11px 14px; font-weight: 600; font-size: 14.5px; }
.aviso-escribir { margin: 0 0 18px; font-family: var(--display); font-size: clamp(20px, 4.5vw, 24px); font-weight: 700; line-height: 1.25; color: var(--tinta); text-wrap: balance; }
.aviso-conf { font-size: 13.5px; color: var(--apagado); background: var(--carta); border: 1px solid var(--linea); border-radius: 10px; padding: 10px 14px; }
details.aviso-conf > summary { cursor: pointer; font-weight: 700; color: var(--tinta); min-height: 24px; }
details.aviso-conf > p { margin: 8px 0 0; }

.aviso-pendiente { font-size: 14.5px; font-weight: 600; color: var(--ambar); background: #FDF0E3; border: 1px solid #EBC79A; border-radius: 10px; padding: 11px 14px; }
.ayuda { font-size: 12.5px; font-weight: 400; color: var(--apagado); }

.escribir-destino { display: flex; align-items: center; gap: 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 12px 16px; margin: 14px 0; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 6px 20px rgba(23, 38, 42, .05); }
.escribir-destino .avatar { flex: 0 0 52px; width: 52px; height: 52px; font-size: 22px; }
.escribir-destino-txt { display: flex; flex-direction: column; min-width: 0; }
.escribir-destino-txt strong { font-family: var(--display); font-size: 17px; color: var(--tinta); line-height: 1.2; }
.escribir-destino-txt span { font-size: 13.5px; color: var(--apagado); }
.escribir-destino-tag { flex: 0 0 auto; align-self: center; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--ambar); background: var(--ambar-suave); padding: 5px 11px; border-radius: 999px; }
.pp-volver { margin: 8px 0 0; }
.pp-volver a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--primario); }
.pp-volver svg { width: 18px; height: 18px; }
.pp-cab h1 { margin: 14px 0 4px; font-size: clamp(34px, 7vw, 50px); line-height: 1.05; letter-spacing: -.025em; }
.pp-cab p { margin: 0 0 22px; font-size: clamp(17px, 2.6vw, 21px); color: var(--apagado); }
.pp-rejilla { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.pp-carta.formulario { margin: 0; gap: 0; padding: 22px 20px 20px; border-radius: 18px; }
.pp-carta-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.pp-carta-cab h2 { margin: 0; font-size: 26px; }
.pp-carta-cab h2 label { display: inline; font: inherit; color: inherit; }
.pp-ejemplo { display: inline-flex; align-items: center; gap: 8px; padding: 6px 2px; border: 0; background: none; font: inherit; font-weight: 700; font-size: 15.5px; color: var(--primario); cursor: pointer; }
.pp-ejemplo[hidden] { display: none; }
.pp-ejemplo:disabled { opacity: .45; cursor: default; }
.pp-pide { margin: 4px 0 16px; color: var(--apagado); }
.pp-carta textarea { min-height: 200px; border-radius: 12px; padding: 14px 16px; }
.pp-contador { max-width: none; margin: 6px 0 0; text-align: right; font-size: 13.5px; color: var(--apagado); font-variant-numeric: tabular-nums; }
.pp-ideas { margin: 10px 0 0; }
.pp-ideas[hidden] { display: none; }
.pp-ideas > p { margin: 0 0 10px; font-size: 14.5px; font-weight: 600; }
.pp-ideas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pp-ideas li { max-width: none; }
.pp-ideas button { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 999px; background: var(--primario-suave); font: inherit; font-size: 15px; font-weight: 600; color: var(--tinta); cursor: pointer; }
.pp-ideas button:hover { background: rgba(var(--primario-rgb), .16); }
.pp-ideas svg { color: var(--primario); }
.pp-privado { display: flex; align-items: flex-start; gap: 14px; margin: 22px 0 0; padding: 16px 18px; border-radius: 14px; background: var(--primario-suave); }
.pp-privado-i { flex: 0 0 auto; color: var(--primario); margin-top: 1px; }
.pp-privado p { margin: 0; max-width: none; font-size: 14.5px; line-height: 1.5; color: var(--apagado); }
.pp-privado strong { display: block; font-size: 16px; color: var(--tinta); }
.pp-acciones { display: flex; flex-wrap: wrap-reverse; align-items: center; justify-content: space-between; gap: 12px 16px; margin: 22px 0 0; padding-top: 20px; border-top: 1px solid var(--linea); }
.pp-cancelar { padding: 10px 4px; font-weight: 700; color: var(--primario); text-decoration: none; }
.pp-cancelar:hover { text-decoration: underline; }
.pp-acciones .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex: 1 1 220px; max-width: 280px; }
.pp-destino { background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; padding: 20px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 24px rgba(23, 38, 42, .05); }
.pp-ilustra { margin: 0 0 18px; padding: 18px 26px; border-radius: 14px; background: var(--primario-suave); color: var(--primario); }
.pp-ilustra svg { display: block; width: 100%; max-width: 240px; height: auto; margin: 0 auto; }
.pp-ilustra-foto { display: flex; justify-content: center; padding: 22px; background: var(--fondo); }
.pp-ilustra-foto .avatar { width: 140px; height: 140px; flex: 0 0 140px; border-radius: 20px; font-family: var(--display); font-size: 56px; }
.pp-destino h2 { margin: 2px 0 6px; font-size: 26px; line-height: 1.15; overflow-wrap: anywhere; }
.pp-lugar { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--apagado); }
.pp-lugar svg { flex: 0 0 auto; color: var(--apagado); }
.pp-datos { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--linea); }
.pp-datos li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center; max-width: none; padding: 14px 0 0; line-height: 1.3; }
.pp-datos li > svg { grid-row: 1 / 3; width: 28px; height: 28px; color: var(--primario); }
.pp-datos li > span { font-size: 14px; color: var(--apagado); }
.pp-datos li > strong { font-size: 16px; }
.pp-ficha { margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--linea); }
.pp-ficha a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--primario); }
.pp-ficha svg { width: 16px; height: 16px; }
.pp-sigue { display: flex; align-items: center; gap: 14px; margin: 16px 0 0; padding: 0 12px; color: var(--apagado); line-height: 1.4; }
.pp-sigue-i { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
@media (min-width: 560px) {
  .pp-carta.formulario { padding: 26px 28px 24px; }
}
@media (min-width: 860px) {
  .pp-rejilla { grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; }
}

.fila-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; align-items: center; }
.fila-acciones form { margin: 0; }
.btn-mini { font-size: 13.5px; padding: 8px 12px; min-height: 0; border-radius: 9px; }
.btn-peligro { background: var(--carta); color: var(--error); border: 2px solid var(--error); }
.btn-peligro:hover { background: #F9E8E5; }
.etiqueta { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 2px 8px; border-radius: 999px; vertical-align: middle; }
.et-verde { background: #E5F3EB; color: var(--ok); }
.et-gris { background: var(--linea); color: var(--apagado); }
.zona-peligro { margin-top: 34px; border-top: 1px solid var(--linea); padding-top: 12px; }


nav.cuenta-accesos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0 22px; }

.mc-elige-cab { margin: 18px 0 20px; }
.mc-elige-cab h1 { margin: 0; font-size: clamp(34px, 8vw, 60px); line-height: 1.04; letter-spacing: -0.02em; }
.mc-elige-cab p { margin: 10px 0 0; font-size: clamp(16px, 2.4vw, 19px); color: var(--apagado); max-width: 30em; }
@media (min-width: 720px) { .mc-elige-cab { margin: 34px 0 28px; } .mc-elige-cab h1, .mc-elige-cab p { text-align: center; } .mc-elige-cab p { margin-left: auto; margin-right: auto; max-width: none; } }
div.cuenta-accesos { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 0 0 18px; }
@media (min-width: 720px) { div.cuenta-accesos { grid-template-columns: 1fr 1fr; gap: 22px; } }
.mc-conservan { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 6px auto 0; font-size: 14px; color: var(--apagado); text-align: center; }
.mc-conservan svg { flex: 0 0 auto; color: var(--primario); }
.mc-quien { display: block; margin-top: 4px; font-size: 13px; color: var(--apagado); word-break: break-word; }
.mc-otro-lado { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin: 22px 0 6px; padding: 12px 16px; border-radius: 14px; border: 1px dashed var(--borde-campo); }
.mc-otro-lado p { margin: 0; font-size: 14.5px; color: var(--apagado); }
.mc-otro-lado .mc-form-modo { margin: 0; }



.mc-progreso { margin: 14px 0 0; padding: 12px; border-radius: 12px; background: var(--fondo); }
.mc-progreso-t { max-width: none; margin: 0 0 8px; font-size: 14px; color: var(--apagado); }
.mc-progreso-t strong { color: var(--tinta); }
.mc-progreso progress { display: block; width: 100%; height: 10px; border: 0; border-radius: 999px; overflow: hidden; background: var(--linea); appearance: none; }
.mc-progreso progress::-webkit-progress-bar { background: var(--linea); border-radius: 999px; }
.mc-progreso progress::-webkit-progress-value { background: var(--ok); border-radius: 999px; }
.mc-progreso progress::-moz-progress-bar { background: var(--ok); border-radius: 999px; }
.mc-faltan { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.mc-faltan li { display: flex; gap: 8px; align-items: center; font-size: 14px; }
.mc-faltan a { display: inline-block; padding: 2px 0; }
.mc-faltan li::before { content: '+'; flex: 0 0 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; background: var(--ambar-suave); color: var(--ambar); margin-top: 1px; }

.mc-zonas { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.mc-zonas li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.mc-zonas form { margin: 0; }
.mc-caja-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.mc-caja-cab h2 { margin: 0; }
.mc-caja-i { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; background: var(--ambar-suave); color: var(--ambar); }

.cab-menu { position: relative; display: inline-flex; margin-left: 2px; }
.cab-menu > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 32px; min-height: 32px; border-radius: 999px; color: var(--primario); }
.cab-menu > summary::-webkit-details-marker { display: none; }
.cab-menu > summary:hover, .cab-menu[open] > summary { background: var(--primario-suave); }
.cab-menu[open] > summary svg { transform: rotate(180deg); }
.cab-menu-txt { display: none; }
.cab-menu-lista { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; min-width: 220px; display: grid; gap: 2px; padding: 6px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; box-shadow: 0 14px 34px rgba(23, 38, 42, .14); }
.cab-enlaces .cab-menu-lista a, .cab-menu-lista button { display: flex; width: 100%; padding: 10px 12px; border-radius: 9px; font: inherit; font-size: 14.5px; font-weight: 500; color: var(--tinta); text-decoration: none; text-align: start; }
.cab-menu-lista form { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid var(--linea); }
.cab-menu-lista button { background: none; border: 0; cursor: pointer; color: var(--error); }
.cab-enlaces .cab-menu-lista a:hover, .cab-menu-lista button:hover { background: var(--primario-suave); }
@media (max-width: 620px) {
  .cab-plegable.abierta .cab-menu { display: block; flex-basis: 100%; margin: 2px 0 0; }
  .cab-plegable.abierta .cab-menu > summary { display: flex; justify-content: space-between; width: 100%; padding: 12px 8px; border-radius: 8px; font-size: 15px; font-weight: 500; color: var(--tinta); }
  .cab-plegable.abierta .cab-menu-txt { display: inline; }
  .cab-plegable.abierta .cab-menu-lista { position: static; min-width: 0; padding: 0 0 0 12px; border: 0; box-shadow: none; }
}

.mc-elige-cab h1 { font-size: clamp(30px, 5vw, 40px); }
div.cuenta-accesos { align-items: stretch; }
.mc-elige-carta { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 14px 14px 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 10px 28px rgba(23, 38, 42, .06); }
.mc-elige-foto { width: 100%; margin: 0 0 14px; }
.mc-elige-foto img { max-height: none; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; object-position: center 35%; }
.mc-elige-carta h2 { margin: 0 0 6px; font-size: clamp(20px, 2.6vw, 24px); }
.mc-elige-carta p { margin: 0 0 16px; font-size: 15.5px; color: var(--apagado); max-width: 28em; }
.mc-elige-carta .mc-form-modo { width: 100%; margin-top: auto; }
.mc-elige-btn { width: 100%; }
.mc-conservan { text-align: start; }
.mc-conservan span { max-width: 26em; }

.mc-fila-ajustes { display: flex; align-items: center; gap: 12px; margin: 18px 0 0; padding: 14px 16px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; color: var(--tinta); text-decoration: none; font-weight: 600; }
.mc-fila-ajustes svg:first-child { color: var(--apagado); }
.mc-fila-ajustes span { flex: 1; }
.mc-fila-ajustes:hover { border-color: var(--primario); color: var(--primario); }

.mc-heroe { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 40%); align-items: center; gap: 16px; margin: 12px 0 16px; padding: 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 20px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 10px 28px rgba(23, 38, 42, .06); }
.mc-heroe h1 { margin: 0 0 8px; font-size: clamp(22px, 4.4vw, 38px); line-height: 1.1; }
.mc-heroe p { margin: 0 0 14px; font-size: clamp(13.5px, 1.8vw, 17px); color: var(--apagado); }
.mc-heroe-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; }
.mc-heroe-acc { display: grid; grid-template-areas: "cta comp" "nota nota"; grid-template-columns: auto auto; justify-content: start; align-items: center; column-gap: 10px; }
.mc-heroe-cta { grid-area: cta; }
.mc-heroe-cta form { margin: 0; }
.mc-heroe-acc .mc-heroe-nota { grid-area: nota; }
.mc-heroe-comp { grid-area: comp; }
.mc-heroe-comp .btn { background: var(--carta); color: var(--whatsapp); border: 2px solid var(--whatsapp); min-height: 48px; display: inline-flex; align-items: center; padding: 10px 16px; font-size: 15px; border-radius: 12px; }
.mc-heroe-comp .btn:hover { background: #E9F6EE; filter: none; }
.mc-atencion { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 18px; border-radius: 14px; background: var(--ambar-suave); border: 1px solid #EBD3AE; color: var(--tinta); text-decoration: none; }
.mc-atencion:hover { border-color: var(--ambar); }
.mc-atencion-i { flex: none; color: var(--ambar); display: inline-flex; }
.mc-atencion-txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.mc-atencion-txt strong { font-family: var(--display); font-size: 16px; }
.mc-atencion-txt span { font-size: 14px; color: var(--apagado); }
.cab-con-sesion .cab-modo { margin: 0 auto; }
.mc-heroe .mc-heroe-nota { margin: 8px 0 0; font-size: 13px; }
.mc-heroe-foto { margin: 0; align-self: stretch; }
.mc-heroe-foto img { height: 100%; max-height: 300px; min-height: 150px; border: 0; border-radius: 14px; object-position: center 30%; }
@media (min-width: 720px) { .mc-heroe { padding: 28px 28px 28px 36px; gap: 28px; } .mc-heroe-btn { min-width: 230px; } }
@media (max-width: 459px) { .mc-heroe { padding: 14px; gap: 10px; grid-template-columns: minmax(0, 1fr) 34%; } .mc-heroe-btn { font-size: 14px; padding: 10px 12px; min-height: 42px; } .mc-heroe-foto img { min-height: 170px; } .mc-heroe-acc { grid-template-areas: "cta" "nota" "comp"; grid-template-columns: auto; row-gap: 8px; } }

nav.cuenta-accesos { grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 720px) { nav.cuenta-accesos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } }
.mc-acceso { position: relative; display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; color: var(--tinta); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.mc-acceso:hover { border-color: var(--primario); box-shadow: 0 8px 22px rgba(11, 98, 89, .10); }
.mc-acceso-i { flex: 0 0 44px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
.mc-acceso-txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.mc-acceso-txt strong { font-family: var(--display); font-size: 16px; }
.mc-acceso-txt span { font-size: 13.5px; color: var(--apagado); }
.mc-acceso-n { flex: none; min-width: 22px; height: 22px; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--ambar); color: #fff; font-size: 12px; font-weight: 700; }
.mc-acceso-flecha { flex: none; color: var(--apagado); display: inline-flex; }
@media (min-width: 720px) { .mc-acceso { align-items: flex-start; flex-wrap: wrap; padding: 18px; } .mc-acceso-txt { flex-basis: calc(100% - 40px); order: 2; } .mc-acceso-i { order: 0; } .mc-acceso-n { order: 1; margin-left: auto; } .mc-acceso { align-content: flex-start; } .mc-acceso-flecha { position: absolute; right: 14px; top: 76px; } }

.mc-estados { margin: 0 0 18px; }
.mc-estados-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px; margin: 0 0 10px; }
.mc-estados-cab h2 { margin: 0; font-size: clamp(19px, 3.6vw, 22px); }
.mc-estados-cab a { font-size: 14px; font-weight: 600; }
.mc-estados-lista { display: grid; gap: 12px; }
@media (min-width: 900px) { .mc-estados-lista { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); } }
.mc-estado { display: flex; gap: 14px; padding: 16px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; }
.mc-estado-i { flex: 0 0 48px; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--fondo); color: var(--apagado); }
.mc-estado-publicada { background: #F3F8F5; border-color: #CFE3D8; }
.mc-estado-publicada .mc-estado-i { background: #E5F3EB; color: var(--ok); }
.mc-estado-oculta, .mc-estado-caducada, .mc-estado-retirada { background: #FCF4EC; border-color: #EED9C3; }
.mc-estado-oculta .mc-estado-i, .mc-estado-caducada .mc-estado-i, .mc-estado-retirada .mc-estado-i { background: var(--ambar-suave); color: var(--ambar); }
.mc-estado-txt { flex: 1; min-width: 0; }
.mc-estado h3 { margin: 6px 0 2px; font-size: 17.5px; }
.mc-estado-txt > p { margin: 0 0 4px; font-size: 14.5px; color: var(--apagado); }
.mc-estado .mc-estado-meta { font-weight: 600; color: var(--tinta); overflow-wrap: anywhere; }
.mc-estado-acc { margin-top: 12px; }
.mc-estado .mc-progreso { background: rgba(255, 255, 255, .7); }

.mc-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; background: var(--linea); color: var(--apagado); }
.mc-chip-publicada { background: #E5F3EB; color: var(--ok); }
.mc-chip-oculta, .mc-chip-caducada { background: var(--ambar-suave); color: var(--ambar); }
.mc-chip-retirada { background: #F9E8E5; color: var(--error); }

.mc-flota { position: fixed; z-index: 40; top: 76px; right: 16px; left: 16px; max-width: 380px; margin-left: auto; display: flex; align-items: flex-start; gap: 10px; padding: 12px 12px 12px 14px; background: #F1F8F4; border: 1px solid #BFDFCD; border-radius: 14px; box-shadow: 0 14px 34px rgba(23, 38, 42, .14); }
.mc-flota-i { flex: none; color: var(--ok); display: inline-flex; }
.mc-flota p { flex: 1; margin: 0; font-size: 14px; color: var(--apagado); }
.mc-flota p strong { display: block; color: var(--tinta); }
.mc-flota-x { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: -6px -6px 0 0; border-radius: 50%; color: var(--apagado); }
@media (max-width: 619px) { .mc-flota { top: auto; bottom: 16px; } }
.mc-flota-x:hover { background: rgba(23, 38, 42, .07); color: var(--tinta); }

.mc-aj-cab { margin: 6px 0 16px; }
.mc-aj-cab h1 { margin: 6px 0 4px; font-size: clamp(28px, 5vw, 36px); }
.mc-aj-cab p { margin: 0; color: var(--apagado); }
.mc-aj-fila { display: grid; gap: 12px; margin: 0 0 12px; }
@media (min-width: 760px) { .mc-aj-fila { grid-template-columns: 1fr 1fr; } }
.mc-aj-carta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; padding: 16px 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; }
.mc-aj-i { flex: 0 0 48px; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--primario-suave); color: var(--primario); }
.mc-aj-txt { flex: 1 1 180px; min-width: 0; }
.mc-aj-txt h2 { margin: 0 0 2px; font-size: 16.5px; }
.mc-aj-txt p { margin: 0; font-size: 14.5px; color: var(--apagado); overflow-wrap: anywhere; }
.mc-aj-txt .mc-quien { font-size: 12.5px; }
.mc-segmento { display: inline-flex; margin: 0; padding: 3px; border-radius: 12px; background: var(--fondo); border: 1px solid var(--linea); }
.mc-segmento button { font: inherit; font-size: 14.5px; font-weight: 600; min-height: 40px; padding: 8px 16px; border: 0; border-radius: 9px; background: none; color: var(--tinta); cursor: pointer; }
.mc-segmento button[aria-pressed="true"] { background: var(--primario); color: #fff; }
.mc-plegable { margin: 0 0 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; }
.mc-plegable > summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 14px 18px; cursor: pointer; font-family: var(--display); font-weight: 700; font-size: 16.5px; }
.mc-plegable > summary::-webkit-details-marker { display: none; }
.mc-plegable > summary::after { content: ''; flex: none; width: 9px; height: 9px; margin: -4px 4px 0 auto; border-right: 2px solid var(--apagado); border-bottom: 2px solid var(--apagado); transform: rotate(45deg); }
.mc-plegable[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
.mc-plegable-i { display: inline-flex; color: var(--apagado); }
.mc-plegable-c { padding: 0 18px 8px; }
.mc-plegable-c > .susc-caja { margin: 0 0 12px; background: var(--fondo); border-color: transparent; }
.mc-entras { margin: 4px 0 12px; font-size: 14.5px; color: var(--apagado); }

.mc-pl-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin: 6px 0 14px; }
.mc-pl-cab h1 { margin: 6px 0 4px; font-size: clamp(28px, 5vw, 36px); }
.mc-pl-cab p { margin: 0; color: var(--apagado); }
.mc-nueva { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.mc-nuevas { display: flex; flex-wrap: wrap; gap: 8px; }
.mc-pestanas { display: flex; gap: 4px; margin: 0 0 4px; border-bottom: 1px solid var(--linea); overflow-x: auto; }
.mc-pestanas a { padding: 12px 22px; margin-bottom: -1px; border-bottom: 3px solid transparent; color: var(--apagado); font-weight: 600; font-size: 17px; text-decoration: none; white-space: nowrap; }
.mc-pestanas a:hover { color: var(--primario); }
.mc-pestanas a[aria-current="page"] { color: var(--tinta); border-bottom-color: var(--primario); }
.mc-filas { list-style: none; display: grid; gap: 14px; margin: 18px 0 0; padding: 0; }
.mc-fila { max-width: none; margin: 0; padding: 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 6px 18px rgba(23, 38, 42, .05); }
.mc-fila-fila { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px 16px; align-items: start; }
.mc-fila-mini .avatar, .mc-fila-i { width: 72px; height: 72px; border-radius: 14px; }
.mc-fila-mini .avatar { font-size: 30px; background: var(--primario-suave); color: var(--primario); }
.mc-fila-i { display: inline-flex; align-items: center; justify-content: center; background: var(--primario-suave); color: var(--primario); }
.mc-fila-i-oferta { background: var(--ambar-suave); color: var(--ambar); }
.mc-fila-txt { min-width: 0; }
.mc-fila-tipo { margin: 2px 0 2px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apagado); }
.mc-fila-t { margin: 0 0 6px; font-size: clamp(18px, 2.4vw, 22px); line-height: 1.2; overflow-wrap: anywhere; }
.mc-fila-meta { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0; font-size: 15px; color: var(--apagado); }
.mc-fila-meta span { display: inline-flex; align-items: center; gap: 6px; }
.mc-fila-estado { display: flex; align-items: center; gap: 8px; max-width: none; margin: 10px 0 0; font-size: 15px; color: var(--apagado); }
.mc-fila-estado svg { flex: none; }
.mc-fila-estado-publicada { color: var(--ok); }
.mc-fila-estado-oculta, .mc-fila-estado-caducada { color: var(--ambar); }
.mc-fila-estado-retirada { color: var(--error); }
.mc-fila-der { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.mc-fila-der > .mc-chip { order: -1; }
.mc-fila-acc { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; }
.mc-fila-acc form { margin: 0; }
.mc-fila-acc .btn-mini { min-height: 46px; display: inline-flex; align-items: center; padding: 10px 20px; font-size: 15.5px; border-radius: 10px; }
@media (min-width: 760px) {
  .mc-fila { padding: 22px 24px; }
  .mc-fila-fila { grid-template-columns: 110px minmax(0, 1fr) auto; gap: 16px 26px; }
  .mc-fila-mini .avatar, .mc-fila-i { width: 110px; height: 104px; border-radius: 16px; }
  .mc-fila-mini .avatar { font-size: 40px; }
  .mc-fila-der { grid-column: auto; align-self: stretch; align-items: flex-end; justify-content: space-between; }
  .mc-fila-acc { width: auto; justify-content: flex-end; flex-wrap: nowrap; }
}
.mc-menu { position: relative; margin-left: auto; }
@media (min-width: 760px) { .mc-menu { margin-left: 0; } }
.mc-menu > summary { list-style: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1.5px solid var(--linea); border-radius: 9px; background: var(--carta); color: var(--tinta); cursor: pointer; }
.mc-menu > summary::-webkit-details-marker { display: none; }
.mc-menu > summary:hover, .mc-menu[open] > summary { border-color: var(--primario); color: var(--primario); }
.mc-menu-lista { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 210px; display: grid; gap: 2px; padding: 6px; background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; box-shadow: 0 14px 34px rgba(23, 38, 42, .14); }
.mc-menu-lista a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; color: var(--tinta); text-decoration: none; font-size: 14.5px; }
.mc-menu-lista a:hover { background: var(--fondo); }
.mc-menu-lista .mc-menu-peligro { color: var(--error); }
.mc-confirma { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 12px 0 0; padding: 12px 14px; background: #FCF4EC; border: 1px solid #EED9C3; border-radius: 12px; }
.mc-confirma[hidden] { display: none; }
.mc-confirma-borrar { background: #FBEDEA; border-color: #E9C5BE; }
.mc-confirma-i { flex: none; display: inline-flex; color: var(--ambar); }
.mc-confirma-borrar .mc-confirma-i { color: var(--error); }
.mc-confirma p { flex: 1 1 260px; margin: 0; font-size: 14px; }
.mc-confirma-acc { display: flex; gap: 8px; margin-left: auto; }
.mc-confirma-acc form { margin: 0; }
.mc-confirma-acc .btn-mini { min-height: 40px; display: inline-flex; align-items: center; }
.mc-btn-peligro { background: var(--error); color: #fff; }
.mc-btn-peligro:hover { background: #8E2A20; }
.mc-vacio { margin: 18px 0; color: var(--apagado); }

.btn-google { background: var(--carta); color: var(--tinta); border: 1.5px solid var(--linea); display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; }
.btn-google:hover { background: var(--fondo); border-color: var(--apagado); }
.separador { display: flex; align-items: center; gap: 12px; color: var(--apagado); font-size: 13px; margin: 4px 0 0; max-width: none; }
.separador::before, .separador::after { content: ''; flex: 1; border-top: 1px solid var(--linea); }
.cuenta-al-enviar .separador { align-self: stretch; width: 100%; margin: 4px 0; }
.plan.hl { border-color: var(--primario); box-shadow: inset 0 0 0 1px var(--primario); }

.aviso-cookies {
  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50;
  background: var(--carta); border: 1.5px solid var(--linea); border-radius: 14px;
  box-shadow: 0 6px 24px rgba(23, 38, 42, 0.18);
  padding: 10px 12px; max-width: 560px; margin: 0 auto;
}
.ck-marca { display: block; font-family: var(--display); font-weight: 800; font-size: 13px; letter-spacing: -0.01em; color: var(--tinta); margin: 0 0 4px; line-height: 1.2; }
.ck-marca span { color: var(--primario); }
.aviso-cookies p { margin: 0 0 8px; font-size: 13px; line-height: 1.4; max-width: none; }
.aviso-cookies-botones { display: flex; gap: 8px; }
.aviso-cookies .btn { font-size: clamp(12.5px, 3.8vw, 14px); padding: 9px 8px; min-height: 40px; flex: 1; white-space: nowrap; min-width: 0; }
@media (max-width: 559px) {
  .aviso-cookies { padding: 8px 12px; }
  .ck-marca { display: none; }
  .aviso-cookies p { margin-bottom: 6px; }
}

body:not(.anuncios-listos) .anuncio { display: none; }
.anuncio { position: relative; }
.anuncio ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; }
.anuncio-etq { display: none; }
.anuncio:has(ins.adsbygoogle[data-ad-status="filled"]) {
  margin: 20px 0; padding-top: 24px; min-height: 250px;
  border: 1px dashed var(--linea); border-radius: 12px; background: var(--carta);
}
.anuncio:has(ins.adsbygoogle[data-ad-status="filled"]) .anuncio-etq {
  display: block; position: absolute; top: 6px; left: 10px; font-size: 11.5px; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--apagado);
}

.tramos { border: 1.5px solid var(--linea); border-radius: 10px; padding: 10px 12px; min-inline-size: 0; }
.formulario fieldset.tramos { align-items: flex-start; }
.tramos legend { font-size: 14px; font-weight: 700; padding: 0 4px; }
.tramos-grid { display: grid; width: 100%; grid-template-columns: auto repeat(7, minmax(28px, 1fr)); gap: 4px; align-items: center; }
@media (min-width: 560px) { .tramos-grid { gap: 6px; } }
.tramo-dia { text-align: center; font-size: 13px; font-weight: 700; color: var(--tinta); padding: 6px 0; border-radius: 8px; background: var(--fondo); }
.tramo-franja { font-size: 13.5px; font-weight: 600; padding-right: 6px; white-space: nowrap; }
.tramo-celda { display: flex; justify-content: center; align-items: center; min-height: 40px; border: 1px solid var(--linea); border-radius: 8px; background: var(--carta); cursor: pointer; }
.tramo-celda:has(input:checked) { background: var(--primario-suave); border-color: var(--primario); }
.tramo-celda input { width: 20px; height: 20px; margin: 0; accent-color: var(--primario); }
@media (max-width: 409px) {
  .tramos-grid { grid-template-columns: repeat(7, minmax(24px, 1fr)); column-gap: 0; }
  .tramos-grid > span:first-child { display: none; }
  .tramo-franja { grid-column: 1 / -1; padding-right: 0; }
}
.lista-tramos { list-style: none; padding: 0; }
.lista-tramos li { margin-bottom: 4px; }

.planes { display: grid; gap: 12px; margin: 16px 0; }
@media (min-width: 760px) {
  .planes { grid-template-columns: 1fr 1fr; }
  .planes:has(> :nth-child(3)) { grid-template-columns: 1fr 1fr 1fr; }
}
.plan { display: flex; flex-direction: column; }
.plan > .velo-eyebrow, .plan > h2, .plan > .precio { text-align: center; }
.plan > h2 { margin-bottom: 2px; }
.plan .precio { font-size: 28px; font-weight: 800; margin: 4px 0 10px; }
.plan .precio span { font-size: 13px; font-weight: 600; color: var(--apagado); }
.plan ul { padding-left: 18px; margin: 0 0 14px; font-size: 14.5px; }
.plan li { margin-bottom: 6px; }
.plan .btn { width: 100%; margin-top: auto; }
.proximamente { opacity: 0.75; }

.pie { border-top: 1px solid var(--linea); background: var(--carta); }
.pie-int { max-width: 960px; margin: 0 auto; padding: 18px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 40px; font-size: 13px; }
.pie-logo { display: inline-block; font-family: var(--display); font-weight: 800; font-size: 18px; letter-spacing: -0.01em; color: var(--primario); text-decoration: none; }
.pie-logo span { color: var(--primario); }
.pie-nav { flex: 1 1 auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 28px; }
.pie-principal, .pie-legal { display: flex; flex-wrap: wrap; gap: 0 26px; }
.pie-int a:not(.pie-logo) { display: inline-flex; align-items: center; min-height: 32px; color: var(--apagado); text-decoration: none; }
.pie-int a:not(.pie-logo):hover { color: var(--primario); text-decoration: underline; }

.geo { display: block !important; }
.geo [hidden] { display: none !important; }
.geo legend { font-size: 14px; font-weight: 700; padding: 0 4px; }
.geo-ayuda { font-size: 13.5px; color: var(--apagado); margin: 0 0 8px; }
.geo .salto-geo:focus { position: static; display: inline-block; margin: 0 0 10px; border-radius: 8px; font-size: 14px; }
.geo .cmp { display: block; font-size: 14px; font-weight: 700; margin: 0 0 10px; }
.geo .cmp select { width: 100%; margin-top: 5px; }
.geo-prov > summary {
  min-height: 44px; display: flex; align-items: center; cursor: pointer;
  padding: 4px 2px; font-size: 15px; font-weight: 600;
  border-bottom: 1.5px solid var(--linea);
}
.geo-prov[open] > summary { font-weight: 700; }
.geo-prov > summary::after { content: '▸'; margin-left: auto; color: var(--apagado); font-size: 13px; }
.geo-prov[open] > summary::after { content: '▾'; }
.geo-cuantas { margin-left: 8px; font-size: 13px; font-weight: 400; color: var(--apagado); }
.geo-techo { font-size: 13px; color: var(--apagado); margin: 8px 0 4px; }
.geo-ciudades { list-style: none; margin: 6px 0 12px; padding: 0 0 0 2px; }
.geo-ciudades li { margin: 0 0 2px; }
.geo-aviso {
  font-size: 13.5px; color: var(--ambar); background: var(--ambar-suave);
  border-radius: 8px; padding: 8px 10px; margin: 0 0 10px;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

.calendario-tramos { border-collapse: separate; border-spacing: 3px; width: 100%; max-width: 420px; table-layout: fixed; }
.calendario-tramos th { font-size: 12.5px; font-weight: 700; color: var(--apagado); text-align: center; padding: 2px 0; }
.calendario-tramos th[scope="row"] { text-align: left; font-size: 13.5px; color: var(--tinta); white-space: nowrap; width: 4.6em; padding-right: 6px; }
.calendario-tramos abbr { text-decoration: none; }
.calendario-tramos td { height: 30px; border-radius: 6px; border: 1.5px solid var(--linea); background: var(--carta); }
.calendario-tramos thead td { border: 0; background: transparent; height: auto; }
.calendario-tramos td.si { background: var(--primario); border-color: var(--primario-osc); }
.leyenda-tramos { font-size: 13px; color: var(--apagado); display: flex; gap: 14px; align-items: center; margin-top: 8px; }
.nota-tramos { margin: 6px 0 0; }

.avatar { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); font-weight: 800; font-size: 19px; flex: 0 0 44px; }
.avatar-img { object-fit: cover; background: var(--primario-suave); }

.foto-perfil { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 16px 18px; margin: 16px 0; }
.foto-perfil h2 { margin: 0 0 12px; font-size: 16px; }
.foto-perfil [hidden] { display: none !important; }
.foto-fila { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.foto-marco { position: relative; flex: 0 0 96px; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--primario-suave); }
.foto-previa { width: 96px; height: 96px; object-fit: cover; display: block; }
.foto-inicial { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--primario-suave); color: var(--primario); font-family: var(--display); font-weight: 800; font-size: 40px; }
.foto-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.foto-acciones .nota { flex-basis: 100%; margin: 4px 0 0; }
.foto-btn { cursor: pointer; }

.foto-alta[hidden], .foto-alta [hidden] { display: none !important; }
.calc-sueldo[hidden], .calc-sueldo [hidden] { display: none !important; }
.hoja-gen[hidden], .hoja-gen [hidden] { display: none !important; }
.hoja { background: var(--carta); border: 1px solid var(--linea); border-radius: 12px; padding: 16px 18px; margin: 16px 0; color: var(--tinta); }
.hoja table { width: 100%; border-collapse: collapse; }
.hoja th, .hoja td { text-align: left; vertical-align: top; padding: 6px 8px; border-bottom: 1px solid var(--linea); }
.hoja th { width: 38%; font-weight: 600; }
.hoja .hueco { color: var(--apagado); font-style: italic; }
.hoja h3 { margin-top: 0; }
.hoja h4 { margin: 24px 0 8px; }
.hoja .firmas { display: flex; gap: 24px; margin-top: 56px; }
.hoja .firmas span { flex: 1; border-top: 1px solid var(--tinta); padding-top: 6px; font-size: 13.5px; }
@media print {
  @page { margin: 15mm; }
  html.imprime-hoja body { background: none; }
  html.imprime-hoja body :not(:has(.hoja)):not(.hoja):not(.hoja *) { display: none !important; }
  html.imprime-hoja body :has(.hoja) { margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; max-width: none !important; }
  html.imprime-hoja .hoja { border: 0; margin: 0; padding: 0; }
  html.imprime-hoja .hoja table, html.imprime-hoja .hoja .cierre { break-inside: avoid; }
}
.formulario fieldset.foto-alta { display: block; min-inline-size: 0; }
.foto-alta-ayuda { margin: 0 0 12px; }
.foto-vistas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 12px; margin: 16px 0 0; padding: 12px; background: var(--fondo); border-radius: 12px; }
.foto-vista { min-width: 0; }
.foto-vista.listado { display: block; margin: 0; }
.foto-vista.listado > article:hover { transform: none; box-shadow: 0 1px 2px rgba(23, 38, 42, .04); border-color: var(--linea); }
.foto-vista-rotulo { margin: 0 0 6px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--apagado); }
.foto-vista .ficha { margin: 0; box-shadow: 0 1px 2px rgba(23, 38, 42, .04); }
.foto-alta-ayuda, #fa-estado, .foto-vista-rotulo, .ficha-muestra .ficha-nombre, .foto-alta .tarjeta-nombre { text-align: start; }
.ficha-muestra .ficha-nombre { margin: 0; font-family: var(--display); font-weight: 700; font-size: 20.5px; line-height: 1.2; text-wrap: balance; overflow-wrap: anywhere; }
.foto-alta .tarjeta-nombre { margin: 0; font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--primario); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; text-wrap: balance; overflow-wrap: anywhere; }
@media (max-width: 520px) {
  .foto-vistas { margin: 16px -14px 0; padding: 10px 8px; border-radius: 0; }
  .foto-vista .ficha, .foto-vista .tarjeta { zoom: .85; }
}
@media (max-width: 351px) {
  .foto-vista .ficha, .foto-vista .tarjeta { zoom: .78; }
}

.of-galeria { margin: 0 0 18px; }
.of-galeria h2 { font-size: 18px; margin: 0 0 10px; }
.galeria-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.galeria-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; background: var(--primario-suave); }
.galeria-editor { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 16px 18px; margin: 16px 0; }
.galeria-editor h2 { margin: 0 0 6px; font-size: 16px; }
.galeria-edit { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; margin: 12px 0; }
.galeria-edit:empty { margin: 0; }
.galeria-item { position: relative; margin: 0; }
.galeria-item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 10px; display: block; background: var(--primario-suave); }
.galeria-quitar { position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; border-radius: 50%; border: none; background: rgba(23, 38, 42, .72); color: #fff; font-size: 14px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.galeria-quitar:hover { background: var(--error); }
.gracias-fotos { margin: 16px 0; }
.gracias-fotos h2 { margin-top: 0; }
.gracias-fotos p:last-child { margin-bottom: 0; }
.ficha { background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; padding: 18px; margin: 12px 0 18px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 10px 26px rgba(23, 38, 42, .07); }
.ficha-cab { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 12px; }
.ficha-cab:has(.avatar) { grid-template-columns: auto 1fr auto; }
.ficha-eyebrow { grid-column: 1 / -1; margin: 0 0 2px; text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; font-weight: 700; color: var(--apagado); }
.ficha-cab .avatar { width: 52px; height: 52px; flex-basis: 52px; font-size: 22px; }
.ficha-cab h1 { margin: 0; font-size: 20.5px; line-height: 1.2; text-align: left; text-wrap: balance; overflow-wrap: anywhere; }
.ficha-precio { margin: 0; text-align: right; line-height: 1.05; }
.ficha-precio strong { display: block; white-space: nowrap; font-family: var(--display); font-size: 27px; font-weight: 800; color: var(--primario); letter-spacing: -.02em; }
.ficha-precio span { font-size: 11.5px; color: var(--apagado); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.ficha-precio strong.precio-texto { font-size: 18px; letter-spacing: 0; }
@media (min-width: 720px) { .ficha-precio strong.precio-texto { font-size: 22px; } }
.ficha-datos { list-style: none; text-align: left; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--linea); display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.ficha-datos li { display: block; min-width: 0; }
.ficha-datos li.dato-reloj:last-child { grid-column: 1 / -1; }
.ficha-datos span { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--apagado); font-weight: 700; }
.ficha-datos strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.3; }
.ficha-rotulo { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--linea); font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--apagado); font-weight: 700; text-align: left; }
.ficha-chips { margin-top: 8px; }
.ficha-promesa { text-align: left; margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--linea); font-size: 13.5px; color: var(--apagado); }
.ficha-contacto { margin-top: 16px; }
.ficha-contacto #zona-contacto { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; }
.ficha-contacto #zona-contacto .btn-primario { display: block; width: 100%; text-align: center; font-size: 17px; padding: 14px 16px; }
.ficha-contacto #zona-contacto a[href="/premium/"] { display: inline-block; min-height: 0; border: 0; background: none; padding: 2px 0; font-size: 13px; font-weight: 600; color: var(--apagado); text-decoration: underline; text-underline-offset: 2px; }
.ficha-contacto #zona-contacto a[href="/premium/"]:hover { color: var(--primario); }
.ficha-contacto #nota-contacto { position: relative; margin: 10px 0 0; padding-left: 25px; font-size: 13px; color: var(--apagado); }
.ficha-contacto #nota-contacto::before {
  content: ''; position: absolute; left: 0; top: 2px; width: 17px; height: 17px; background: var(--primario);
  -webkit-mask: var(--icono-escudo) center / contain no-repeat; mask: var(--icono-escudo) center / contain no-repeat;
}
.ficha-sec { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 14px 18px; margin: 0 0 14px; }
.ficha-sec h2 { font-size: 16px; margin: 0 0 8px; }
.ficha-sec > p { margin: 0; }
.ficha-sec .calendario-tramos td { height: 26px; }
.ficha-sec .calendario-tramos thead td:first-child,
.ficha-sec .calendario-tramos th[scope="row"] { width: 5.4em; }
@media (max-width: 300px) {
  .ficha-cab, .ficha-cab:has(.avatar) { grid-template-columns: auto 1fr; }
  .ficha-precio { grid-column: 1 / -1; text-align: left; }
  .ficha-precio strong { display: inline; }
  .ficha-precio span { margin-left: 6px; }
  .ficha-datos { grid-template-columns: 1fr; }
}
@media (min-width: 720px) {
  .ficha { padding: 24px 26px; }
  .ficha-cab h1 { font-size: 28px; }
  .ficha-precio strong { font-size: 34px; }
  .ficha-datos { grid-template-columns: repeat(3, 1fr); }
  .ficha-datos:has(li:nth-child(4)) { grid-template-columns: repeat(4, 1fr); }
  .ficha-datos li.dato-reloj:last-child { grid-column: auto; }
  .ficha-contacto #zona-contacto .btn-primario { display: inline-block; width: auto; padding: 14px 34px; }
}
.tarjeta.oferta { position: relative; border-left: 4px solid var(--primario); display: flex; flex-direction: column; align-items: flex-start; }
.tarjeta.oferta h3 { margin: 0; }
.tarjeta.oferta h3 > a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.tarjeta.oferta .oferta-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 8px; }
.oferta-tag { display: inline-block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ambar); background: var(--ambar-suave); padding: 3px 9px; border-radius: 999px; }
.oferta-lugar { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--apagado); }
.oferta-datos { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.oferta-datos .dato { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; padding: 5px 11px; border-radius: 999px; line-height: 1.2; }
.dato-tiempo { color: var(--tinta); background: var(--fondo); border: 1px solid var(--linea); }
.dato-i { flex: 0 0 auto; }
.tarjeta.oferta .oferta-desc { color: var(--apagado); font-size: 14px; margin: 10px 0 0; }
.oferta-ir { margin: 12px 0 0; font-size: 13.5px; font-weight: 700; color: var(--primario); }
.tarjeta.oferta:hover .oferta-ir { color: var(--primario-osc); }
.listado > .tarjeta.perfil, .listado > .tarjeta.oferta { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; column-gap: 16px; align-items: start; }
.listado > .tarjeta.oferta { grid-template-columns: minmax(0, 1fr) auto; }
.listado > .tarjeta.perfil > .avatar { grid-column: 1; grid-row: 1; width: 72px; height: 72px; font-size: 30px; }
.listado > .tarjeta.perfil > .tarjeta-cuerpo { grid-column: 2; grid-row: 1; }
.listado > .tarjeta.perfil > .tarjeta-precio { grid-column: 3; grid-row: 1; }
.listado > .tarjeta.oferta > .tarjeta-cuerpo { grid-column: 1; grid-row: 1; }
.listado > .tarjeta.oferta > .tarjeta-precio { grid-column: 2; grid-row: 1; }
.listado .tarjeta-cuerpo { min-width: 0; }
.listado .tarjeta-cuerpo > :is(h3, .tarjeta-nombre) { margin: 0; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
.listado .tarjeta.perfil h3 > a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.listado .tarjeta-cuerpo .meta { margin: 2px 0 0; }
.listado .tarjeta-cuerpo .meta .dato-i { vertical-align: -2px; margin-right: 3px; }
.listado .tarjeta-desc, .listado .tarjeta.oferta .oferta-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--apagado); }
.listado .tarjeta-desc { margin: 8px 0 0; }
.tarjeta-precio { margin: 0; text-align: right; }
.tarjeta-precio strong { display: block; font-family: var(--display); font-size: 22px; font-weight: 800; line-height: 1.1; color: var(--primario); white-space: nowrap; }
.tarjeta-precio.sin-cifra strong { font-size: 15px; white-space: normal; max-width: 96px; }
.tarjeta-precio span { font-size: 13px; color: var(--apagado); }
@media (max-width: 519px) {
  .listado > .tarjeta.perfil { grid-template-columns: 56px minmax(0, 1fr) auto; column-gap: 12px; }
  .listado > .tarjeta.perfil > .avatar { width: 56px; height: 56px; font-size: 24px; grid-row: 1 / span 3; }
  .listado > .tarjeta.perfil > .tarjeta-cuerpo { display: contents; }
  .listado > .tarjeta.perfil .tarjeta-cuerpo > :is(h3, .tarjeta-nombre) { grid-column: 2; grid-row: 1; align-self: end; }
  .listado > .tarjeta.perfil .tarjeta-cuerpo > .meta { grid-column: 2 / -1; grid-row: 3; }
  .listado > .tarjeta.perfil .tarjeta-cuerpo > .tarjeta-desc { grid-column: 1 / -1; grid-row: 4; }
  .listado > .tarjeta.perfil .tarjeta-cuerpo > .chips { grid-column: 1 / -1; grid-row: 5; }
  .listado > .tarjeta.perfil > .tarjeta-precio { grid-column: 3; grid-row: 1; }
  .listado > .tarjeta.perfil > .tarjeta-precio.sin-cifra { grid-column: 2 / -1; grid-row: 2; text-align: left; }
  .tarjeta-precio.sin-cifra strong { max-width: none; }
  .tarjeta-precio strong { font-size: 18px; }
  .listado > .tarjeta.tarjeta-portada { grid-template-columns: 56px minmax(0, 1fr); }
  .listado > .tarjeta.tarjeta-portada > .avatar { grid-row: 1; }
  .listado > .tarjeta.tarjeta-portada > .tarjeta-cuerpo { display: block; grid-column: 2; }
}
.leyenda-tramos .muestra { display: inline-block; width: 16px; height: 16px; border-radius: 4px; border: 1.5px solid var(--linea); background: var(--carta); vertical-align: middle; margin-right: 4px; }
.leyenda-tramos .muestra.si { background: var(--primario); border-color: var(--primario-osc); }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.aviso-ya-tienes { background: var(--ambar-suave); border: 1px solid var(--ambar); border-left: 4px solid var(--ambar); border-radius: 14px; padding: 16px 18px; margin: 14px 0 18px; }
.aviso-ya-tienes h2 { margin: 0 0 6px; font-size: 18px; color: var(--tinta); }
.aviso-ya-tienes p { margin: 0 0 10px; font-size: 14.5px; }
.aviso-ya-tienes p.nota { margin: 10px 0 0; font-size: 13.5px; color: var(--apagado); }
.ya-tienes-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ya-tienes-lista .btn { display: block; text-align: center; }
@media (min-width: 560px) {
  .ya-tienes-lista { flex-direction: row; flex-wrap: wrap; }
  .ya-tienes-lista .btn { display: inline-block; }
}

.reportar { border-top: 1px solid var(--linea); margin: 18px 0 0; padding-top: 10px; }
.reportar > summary {
  display: flex; align-items: center; gap: 6px; min-height: 24px;
  font-size: 14px; color: var(--apagado); cursor: pointer; padding: 4px 2px;
}
.reportar > summary::marker, .reportar > summary::-webkit-details-marker { content: ''; display: none; }
.reportar > summary::before {
  content: '';
  width: 6px; height: 6px; flex: none;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg); transition: transform .15s ease;
}
.reportar[open] > summary::before { transform: rotate(45deg); }
@media (prefers-reduced-motion: reduce) { .reportar > summary::before { transition: none; } }
.reportar > summary:hover { color: var(--tinta); }
.reportar[open] > summary { margin-bottom: 8px; color: var(--tinta); }
.reportar .nota { font-size: 14px; margin: 0 0 10px; }
.reportar .form-reportar { margin: 0; }
.reportar .form-reportar label { font-size: 14px; }
.reportar .form-reportar .btn { margin-top: 10px; }

.bandeja-devolver { margin: 0; padding: 0 12px 12px; }
.bandeja-pie { font-size: 14px; color: var(--apagado); margin: 12px 2px 0; }

.compartir { border: 1px dashed var(--linea); border-radius: 14px; padding: 16px 18px; margin: 0 0 18px; background: transparent; }
.compartir h2 { margin-top: 0; font-size: 16px; }
.compartir .cta-doble { margin-bottom: 6px; }
.ficha ~ .compartir { padding: 14px 16px; }
.ficha ~ .compartir .cta-doble { flex-direction: row; flex-wrap: wrap; gap: 8px; margin: 10px 0 8px; }
.ficha ~ .compartir .cta-doble .btn { padding: 8px 14px; font-size: 14px; }
.ficha ~ .compartir p { font-size: 14px; margin: 0; }
.enlace-plano { word-break: break-all; font-size: 12.5px; color: var(--apagado); margin: 0; }

.chat { position: relative; display: flex; flex-direction: column; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; margin: 8px 0 14px; box-shadow: 0 1px 2px rgba(23, 38, 42, 0.04), 0 6px 22px rgba(23, 38, 42, 0.07); }
.chat > :last-child { border-radius: 0 0 15px 15px; }
.chat-cab { display: flex; align-items: center; gap: 12px; padding: 12px 10px 12px 14px; }
.chat-avatar { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; object-fit: cover; }
.chat-quien { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.chat-titulo { font-size: 17px; margin: 0; color: var(--tinta); line-height: 1.25; overflow-wrap: anywhere; }
.chat-sobre { margin: 0 12px 10px; padding: 8px 12px; border-radius: 10px; background: var(--fondo); font-size: 13.5px; color: var(--apagado); overflow-wrap: anywhere; }
.chat-sobre a { color: var(--tinta); }
.chat-aviso { margin: 0; padding: 10px 14px; background: #F9E8E5; border-top: 1px solid #E5C0BA; color: var(--error); font-size: 14px; font-weight: 600; }
.chat-aviso[hidden] { display: none; }
.chat-hilo { display: flex; flex-direction: column; gap: 6px; height: min(58vh, 520px); overflow-y: auto; padding: 14px; background: var(--fondo); overscroll-behavior: contain; }
.chat-vacio { margin: auto; color: var(--apagado); font-size: 14px; text-align: center; }
.burbuja { max-width: 78%; padding: 7px 11px 5px; border-radius: 14px; font-size: 14.5px; line-height: 1.4; box-shadow: 0 1px 1px rgba(23, 38, 42, 0.08); }
.burbuja-txt { display: block; white-space: pre-wrap; overflow-wrap: anywhere; }
.burbuja-meta { display: flex; align-items: center; justify-content: flex-end; gap: 3px; margin-top: 2px; }
.burbuja-hora { font-size: 10.5px; opacity: 0.75; }
.burbuja-check { font-size: 11px; letter-spacing: -2px; font-weight: 700; opacity: 0.85; }
.burbuja-mia .burbuja-check.leido { color: #7CD2FF; opacity: 1; }
.chat-dia { align-self: center; margin: 6px 0 2px; }
.chat-dia span { display: inline-block; background: rgba(23, 38, 42, .07); color: var(--apagado); font-size: 11.5px; font-weight: 700; padding: 3px 12px; border-radius: 999px; }
.burbuja-mia { align-self: flex-end; background: var(--primario); color: #fff; border-bottom-right-radius: 4px; }
.burbuja-suya { align-self: flex-start; background: var(--carta); color: var(--tinta); border: 1px solid var(--linea); border-bottom-left-radius: 4px; }
.chat-cerrada { margin: 0; padding: 14px 16px; text-align: center; font-size: 13.5px; color: var(--apagado); background: var(--carta); border-top: 1px solid var(--linea); }
.chat-envio { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--linea); background: var(--carta); margin: 0; }
.chat-texto { flex: 1; resize: none; border: 1px solid var(--borde-campo); border-radius: 20px; padding: 10px 14px; font: inherit; font-size: 16px; line-height: 1.35; background: var(--fondo); max-height: 140px; min-height: 44px; }
.chat-texto:focus-visible { outline: 2px solid var(--primario); outline-offset: 1px; }
.chat-enviar { flex: 0 0 auto; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--primario); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background .15s ease, transform .1s ease; }
.chat-enviar:hover { background: var(--primario-osc); transform: translateY(-1px); }
.chat-enviar:active { transform: translateY(0); }
.chat-enviar:disabled { opacity: 0.5; cursor: default; transform: none; }
.chat-menu { flex: 0 0 auto; }
.chat-menu > summary { list-style: none; cursor: pointer; width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1; color: var(--tinta); }
.chat-menu > summary::-webkit-details-marker { display: none; }
.chat-menu > summary:hover, .chat-menu[open] > summary { background: var(--primario-suave); }
.chat-menu-panel { position: absolute; z-index: 5; top: 66px; left: 8px; right: 8px; max-height: min(70vh, 560px); overflow-y: auto; padding: 14px 16px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; box-shadow: 0 12px 34px rgba(23, 38, 42, .16); }
.chat-menu-panel .nota { font-size: 13.5px; }
.chat-menu-panel .fila-acciones { display: flex; gap: 10px; margin: 0 0 6px; }
@media (min-width: 560px) { .chat-menu-panel { left: auto; width: 400px; } }

.bandeja { list-style: none; margin: 16px 0 20px; padding: 0; max-width: 620px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 10px 30px rgba(23, 38, 42, .06); }
.bandeja-fila + .bandeja-fila { border-top: 1px solid var(--linea); }
.bandeja-fila-accion { display: flex; align-items: center; }
.bandeja-fila-accion > a { flex: 1 1 auto; min-width: 0; }
.bandeja-eliminar { margin: 0; flex: 0 0 auto; padding-right: 8px; }
.bandeja-eliminar button { width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--apagado); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
@media (hover: hover) { .bandeja-eliminar button:hover { color: var(--error); background: #F9E8E5; } }
.bandeja-fila a { display: flex; align-items: center; gap: 13px; padding: 13px 16px; min-height: 44px; text-decoration: none; color: inherit; transition: background .14s ease; }
.bandeja-fila a:hover { background: var(--primario-suave); }
.bandeja-avatar { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 19px; }
.bandeja-cuerpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.bandeja-linea { display: flex; align-items: center; gap: 8px; }
.bandeja-nombre { flex: 1 1 auto; min-width: 0; font-weight: 700; color: var(--tinta); font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bandeja-hora { flex: 0 0 auto; font-size: 12px; color: var(--apagado); font-variant-numeric: tabular-nums; }
.bandeja-previo { flex: 1 1 auto; min-width: 0; color: var(--apagado); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bandeja-tipo { font-style: italic; }
.bandeja-badge { flex: 0 0 auto; background: var(--primario); color: #fff; font-size: 11.5px; font-weight: 700; line-height: 1; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.bandeja-fila.sin-leer .bandeja-nombre { color: var(--primario-osc); }
.bandeja-fila.sin-leer .bandeja-previo { color: var(--tinta); font-weight: 600; }
.bandeja-fila.sin-leer .bandeja-avatar { box-shadow: 0 0 0 3px var(--carta), 0 0 0 5px var(--primario); }
.bandeja-fila:not(.sin-leer) a:hover .bandeja-avatar { box-shadow: 0 0 0 3px var(--carta); }
.mensajes-sub { color: var(--apagado); font-size: 15px; margin: -2px 0 14px; max-width: 60ch; }
.panel-info { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 16px 18px; }
.panel-info h2 { font-size: 16px; margin: 0 0 12px; }
.panel-info p { margin: 0 0 10px; font-size: 14px; color: var(--apagado); line-height: 1.45; }
.panel-info p:last-child { margin-bottom: 0; }
.panel-info p strong { color: var(--tinta); }
.lista-info { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.lista-info li { font-size: 14px; color: var(--apagado); line-height: 1.45; padding-left: 24px; position: relative; }
.lista-info li strong { color: var(--tinta); }
.lista-info li::before { content: ''; position: absolute; left: 3px; top: 6px; width: 8px; height: 8px; border-radius: 50%; background: var(--primario); }
.buzon { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 4px 0 24px; }
.buzon-titulo { margin: 10px 0 4px; }
h2.buzon-titulo { font-size: clamp(26px, 6vw, 38px); line-height: 1.12; letter-spacing: -0.015em; }
.buzon-panel { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.buzon-elige, .buzon-con-chat > .buzon-lista { display: none; }
.buzon .bandeja { max-width: none; margin-top: 0; }
.bandeja-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.filtro-papel { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--linea); border-radius: 999px; background: var(--carta); color: var(--tinta); font-size: 14px; font-weight: 600; text-decoration: none; }
.filtro-papel:hover { border-color: var(--primario); }
.filtro-papel[aria-current="page"] { background: var(--primario); border-color: var(--primario); color: #fff; }
.etiqueta-papel { flex: 0 0 auto; display: inline-block; background: var(--primario-suave); color: var(--primario-osc); font-size: 12px; font-weight: 700; line-height: 1.2; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.bandeja-sobre { flex: 1 1 auto; min-width: 0; font-size: 13px; color: var(--apagado); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bandeja-foto { object-fit: cover; }
.bandeja-fila.actual a { background: var(--primario-suave); }
.bandeja-fila.actual .bandeja-avatar { box-shadow: 0 0 0 3px var(--carta); }
.bandeja-fila.actual .etiqueta-papel, .bandeja-fila a:hover .etiqueta-papel { background: var(--carta); }
@media (min-width: 900px) {
  .buzon { grid-template-columns: minmax(320px, 400px) minmax(0, 1fr); align-items: start; gap: 24px; }
  .buzon-con-chat > .buzon-lista { display: block; }
  .buzon-elige { display: block; background: var(--carta); border: 1.5px dashed var(--linea); border-radius: 16px; padding: 22px 24px; }
  .buzon-elige h2 { margin: 0 0 6px; }
  .buzon-elige p { margin: 0; color: var(--apagado); }
  .buzon-panel { padding-top: 10px; }
  .buzon-panel > .chat { margin-top: 0; }
  .buzon-con-chat .chat-hilo { height: min(62vh, 600px); }
}

.sx-cifras {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 14px 0 12px;
}
@media (min-width: 560px) { .sx-cifras { grid-template-columns: repeat(3, 1fr); } }
.sx-cifra {
  background: var(--carta);
  border: 1px solid var(--linea);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.sx-cifra-alta { background: var(--primario-suave); border-color: var(--primario); }
.sx-et {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--apagado);
  line-height: 1.25;
}
.sx-num {
  font-size: clamp(23px, 6vw, 28px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--primario);
}
.sx-cifra-alta .sx-num { color: var(--primario-osc); }
.sx-uni { font-size: 0.58em; font-weight: 700; color: var(--apagado); margin-left: 1px; }
.sx-nota { font-size: 12.5px; line-height: 1.35; color: var(--apagado); }
.sx-matiz { color: var(--apagado); font-size: 14.5px; margin: 0 0 4px; }
.tarifa-prov h3 { margin-top: 20px; }

.vocabulario {
  background: var(--carta);
  border: 1px solid var(--linea);
  border-left: 4px solid var(--primario);
  border-radius: 14px;
  padding: 18px 20px;
  margin: 24px 0;
}
.vocabulario h2 { margin: 0 0 12px; }
.vocabulario p { margin: 0; max-width: 66ch; }
.vocabulario p + p {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--linea);
}

:root {
  --primario-rgb: 11, 98, 89;
  --ambar-rgb:    168, 83, 4;
  --tinta-rgb:    23, 38, 42;

  --velo-luz:    rgba(255, 253, 248, .85);
  --velo-verde:  rgba(var(--primario-rgb), .06);
  --velo-ambar:  rgba(var(--ambar-rgb),    .05);
  --panel-tinte: rgba(var(--primario-rgb), .07);
  --sombra-flota: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 10px 30px rgba(var(--tinta-rgb), .06);

  --velo-onda-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='20'%3E%3Cpath d='M0 10 Q11 2 22 10 T44 10 T66 10 T88 10' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
}

body::before {
  content: "";
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% -10%, var(--velo-luz),   transparent 60%),
    radial-gradient(60% 50% at 0% 0%,     var(--velo-verde), transparent 70%),
    radial-gradient(55% 45% at 100% 100%, var(--velo-ambar), transparent 70%);
}
body::after {
  content: "";
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  opacity: .45; mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 120px 120px;
}

.velo-hero { position: relative; overflow: clip; }
.velo-blob {
  display: block; position: absolute; z-index: -1;
  top: -18px; right: -6px; width: 190px; height: 190px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--primario-rgb), .28), transparent);
  filter: blur(34px); pointer-events: none;
}
@media (min-width: 560px) {
  .velo-blob { top: -30px; right: -10px; width: 300px; height: 300px; filter: blur(46px); }
}

.velo-sec { margin: 30px 0 16px; }
.velo-sec.centrada { text-align: center; }
.velo-eyebrow {
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 700; color: var(--primario); margin: 0 0 6px;
}
.panel-ambar .velo-eyebrow, .velo-sec-ambar .velo-eyebrow { color: var(--ambar); }
.velo-sec > h2 { margin: 0; }
.velo-sec.centrada > h2 { text-wrap: balance; }

.velo-onda {
  height: 18px; width: 100%; max-width: 220px; margin: 22px auto; border: 0;
  background: rgba(var(--primario-rgb), .32);
  -webkit-mask: var(--velo-onda-img) repeat-x center / 88px 18px;
          mask: var(--velo-onda-img) repeat-x center / 88px 18px;
}
.panel-ambar .velo-onda, .velo-sec-ambar + .velo-onda { background: rgba(var(--ambar-rgb), .38); }
hr.velo-onda:has(+ .panel-ambar, + .panel-mint, + .panel-carta, + .muro, + .tldr) { display: none; }
.panel-carta + hr.velo-onda { display: none; }
.velo-sep {
  height: 1px; border: 0; margin: 24px auto; max-width: 220px;
  background: linear-gradient(to right, transparent, var(--linea), transparent);
}

.razones li > .ilu-icono {
  box-sizing: content-box;
  width: 30px; height: 30px; flex: 0 0 48px;
  padding: 9px;
  background: var(--carta);
  border: 1px solid rgba(var(--primario-rgb), .22);
  border-radius: 13px;
  color: var(--primario);
  box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .05);
}

.panel-carta {
  background: var(--carta);
  border: 1px solid var(--linea);
  border-radius: 18px;
  padding: 20px 16px;
  margin: 22px 0;
  box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 8px 24px rgba(var(--tinta-rgb), .05);
}
@media (min-width: 760px) { .panel-carta { padding: 26px 24px; } }
.panel-carta > :first-child { margin-top: 0; }
.panel-carta > :last-child { margin-bottom: 0; }
.panel-mint {
  background:
    radial-gradient(120% 100% at 0% 0%, rgba(var(--primario-rgb), .10), transparent 60%),
    var(--primario-suave);
  border: 1px solid rgba(var(--primario-rgb), .18);
  border-radius: 18px; padding: 22px 16px; margin: 22px 0;
}
.panel-ambar {
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(var(--ambar-rgb), .10), transparent 60%),
    var(--ambar-suave);
  border: 1px solid rgba(var(--ambar-rgb), .22);
  border-radius: 18px; padding: 22px 16px; margin: 22px 0;
}
@media (min-width: 760px) { .panel-mint, .panel-ambar { padding: 26px 24px; } }

.velo-cifras { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 12px; }
@media (min-width: 620px) { .velo-cifras { grid-template-columns: repeat(4, 1fr); } }
.velo-cifras li { display: flex; flex-direction: column; gap: 2px; }
.velo-dato { font-size: clamp(22px, 6vw, 30px); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; color: var(--primario); }
.panel-ambar .velo-dato { color: var(--ambar); }
.velo-cifras small { color: var(--apagado); font-size: 13.5px; }

.velo-testi {
  position: relative; background: var(--carta); border: 1px solid var(--linea);
  border-radius: 16px; padding: 32px 18px 16px;
  box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 6px 20px rgba(var(--tinta-rgb), .05);
}
.velo-testi::before {
  content: "\201C"; position: absolute; top: 6px; left: 14px;
  font-family: Georgia, "Times New Roman", serif; font-size: 48px; line-height: 1;
  color: rgba(var(--primario-rgb), .20);
}
.velo-testi p { margin: 0 0 14px; font-size: 14.5px; }
.velo-testi-autor { display: flex; align-items: center; gap: 10px; }
.velo-testi-autor strong { display: block; font-size: 14.5px; }
.velo-testi-autor small { color: var(--apagado); font-size: 12.5px; }

@media (min-width: 960px) { .razones-tres { grid-template-columns: repeat(3, 1fr); } }

.contraste { display: grid; gap: 12px; margin: 14px 0 0; }
@media (min-width: 700px) { .contraste { grid-template-columns: 1fr 1fr; align-items: start; } }
.contraste > div { border: 1px solid var(--linea); border-radius: 16px; padding: 16px 18px; }
.contraste h3 { margin: 0 0 10px; font-size: 15.5px; }
.contraste ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.contraste li { position: relative; padding-left: 26px; font-size: 14.5px; line-height: 1.45; }
.contraste li::before { position: absolute; left: 0; top: 0; font-weight: 800; }
.contraste > .contraste-antes { border-style: dashed; background: transparent; }
.contraste-antes h3, .contraste-antes li { color: var(--apagado); }
.contraste-antes li::before { content: '\2715'; color: var(--apagado); }
.contraste > .contraste-ahora { background: var(--carta); border-left: 4px solid var(--primario); box-shadow: var(--sombra-flota); }
.contraste-ahora li::before { content: '\2713'; color: var(--primario); }

.nosomos { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 700px) { .nosomos { grid-template-columns: repeat(3, 1fr); } }
.nosomos li { background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 14px 16px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 6px 18px rgba(var(--tinta-rgb), .04); }
.nosomos strong { display: block; position: relative; padding-left: 26px; font-size: 15.5px; line-height: 1.3; }
.nosomos strong::before { content: '\2715'; position: absolute; left: 0; top: 0; color: var(--ambar); font-weight: 800; }
.nosomos span { display: block; margin-top: 6px; padding-left: 26px; font-size: 14px; color: var(--apagado); line-height: 1.45; }

body:has(.portada-arriba)::before { display: none; }
.portada-arriba + hr.velo-onda { display: none; }
@media (min-width: 760px) { body:has(.portada-arriba) { background: #FDFCFA; } }
.mas-info ul { padding-left: 20px; }
.mas-info a { display: inline-block; padding: 4px 0; min-height: 24px; }

.cf-hero { display: grid; gap: 18px; margin: 6px 0 4px; align-items: center; }
.cf-hero h1 { font-size: clamp(30px, 7vw, 46px); line-height: 1.05; letter-spacing: -.025em; margin: 4px 0 12px; }
.cf-lead { font-size: clamp(16.5px, 2.2vw, 18.5px); line-height: 1.5; color: var(--apagado); margin: 0 0 18px; max-width: 46ch; }
.cf-hero .cta-doble { margin: 0; }
.cf-hero .foto { margin: 0; }
.cf-hero .foto img { max-height: 220px; border: 0; border-radius: 22px; box-shadow: var(--sombra-flota); object-position: center 55%; }
@media (min-width: 820px) {
  .cf-hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; margin: 10px 0 8px; }
  .cf-hero .foto img { max-height: none; aspect-ratio: 4 / 4.2; }
  .cf-hero .cta-doble { flex-direction: column; align-items: flex-start; }
}
.cf-hero ~ .tldr:not(.tldr-ilu) { background: transparent; border: 0; box-shadow: none; padding: 0; margin: 26px 0 8px; }
.cf-hero ~ .tldr:not(.tldr-ilu) ul { display: grid; gap: 12px; }
.cf-hero ~ .tldr:not(.tldr-ilu) li { background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; padding: 16px 16px 16px 58px; font-size: 14.5px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 6px 18px rgba(var(--tinta-rgb), .04); }
.cf-hero ~ .tldr:not(.tldr-ilu) li::before { content: '\2713'; left: 16px; top: 16px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--primario-suave); color: var(--primario); font-weight: 800; font-size: 14px; }
.cf-hero ~ .tldr:not(.tldr-ilu) li strong { display: block; color: var(--tinta); font-size: 15.5px; margin-bottom: 2px; }
@media (min-width: 820px) { .cf-hero ~ .tldr:not(.tldr-ilu) ul { grid-template-columns: repeat(3, 1fr); } }

.cf-caminos { margin: 40px 0 10px; }
.cf-rutas { display: grid; gap: 16px; }
@media (min-width: 760px) { .cf-rutas { grid-template-columns: 1fr 1fr; gap: 20px; } }
.cf-ruta { display: flex; flex-direction: column; gap: 18px; background: var(--carta); border: 1px solid var(--linea); border-top: 4px solid var(--primario); border-radius: 20px; padding: 22px 18px; box-shadow: var(--sombra-flota); }
.cf-ruta-ambar { border-top-color: var(--ambar); }
.cf-ruta-cab { display: flex; align-items: center; gap: 14px; }
.cf-ruta-cab .ilu-icono { box-sizing: content-box; width: 30px; height: 30px; flex: 0 0 48px; padding: 9px; border-radius: 14px; background: var(--primario-suave); }
.cf-ruta-ambar .cf-ruta-cab .ilu-icono { background: var(--ambar-suave); color: var(--ambar); }
.cf-ruta-quien { margin: 0; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--primario); }
.cf-ruta-ambar .cf-ruta-quien { color: var(--ambar); }
.cf-ruta-cab h3 { margin: 2px 0 0; font-size: 22px; }
.cf-pasos { list-style: none; counter-reset: cf-p; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; flex: 1; }
.cf-pasos li { counter-increment: cf-p; position: relative; padding: 0 0 18px 50px; max-width: none; }
.cf-pasos li:last-child { padding-bottom: 0; }
.cf-pasos li::before { content: counter(cf-p); position: absolute; left: 0; top: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--primario); color: #fff; font-family: var(--display); font-weight: 800; font-size: 15px; }
.cf-pasos li:not(:last-child)::after { content: ''; position: absolute; left: 16px; top: 38px; bottom: 4px; width: 2px; border-radius: 2px; background: rgba(var(--primario-rgb), .2); }
.cf-ruta-ambar .cf-pasos li::before { background: var(--ambar); }
.cf-ruta-ambar .cf-pasos li:not(:last-child)::after { background: rgba(var(--ambar-rgb), .25); }
.cf-pasos strong { display: block; font-size: 16px; line-height: 1.3; padding-top: 6px; }
.cf-pasos span { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.5; color: var(--apagado); }
.cf-ruta > .btn { align-self: flex-start; }

.cf-banda img { max-height: 300px; border: 0; border-radius: 22px; box-shadow: var(--sombra-flota); object-position: center 60%; }
.cf-banda { margin: 34px 0 0; }
.cf-cupo { margin: 34px 0; }
.cf-cupo h2 { margin: 4px 0 0; font-size: clamp(22px, 4vw, 30px); line-height: 1.15; }
.cf-cupo .velo-dato { font-size: clamp(30px, 7vw, 42px); }
.cf-cupo .velo-cifras li { background: rgba(255, 255, 255, .7); border: 1px solid rgba(var(--primario-rgb), .14); border-radius: 14px; padding: 14px; }
.cf-cupo-nota { margin: 18px 0 0; font-size: 14.5px; }
.cf-cupo-nota a { display: inline-block; padding: 2px 0; min-height: 24px; font-weight: 700; }

.cf-nosomos { gap: 14px; margin-top: 18px; }
.cf-nosomos li { position: relative; padding: 20px 18px 18px; border-radius: 18px; box-shadow: var(--sombra-flota); }
.cf-nosomos strong { padding: 0; font-size: 17px; }
.cf-nosomos strong::before { position: static; display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 14px; border-radius: 12px; background: var(--ambar-suave); font-size: 15px; }
.cf-nosomos span { padding: 0; margin-top: 6px; font-size: 14.5px; }
.cf-real { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; margin: 16px 0 0; padding: 10px 16px 10px 12px; border-radius: 999px; background: var(--primario-suave); border: 1px solid rgba(var(--primario-rgb), .18); color: var(--primario-osc); font-size: 14.5px; font-weight: 600; }
.cf-real::before { content: '\2713' / ''; flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--primario); color: #fff; font-size: 13px; font-weight: 800; }

.cf-hero ~ .faq { margin: 40px 0 34px; }
.cf-hero ~ .faq > h2 { font-size: clamp(24px, 4.4vw, 34px); line-height: 1.12; margin: 0 0 16px; }
.cf-hero ~ .faq details { border-radius: 16px; padding: 0 20px; margin-bottom: 10px; transition: border-color .2s ease, box-shadow .2s ease; }
.cf-hero ~ .faq details:hover { border-color: rgba(var(--primario-rgb), .45); }
.cf-hero ~ .faq details[open] { border-color: rgba(var(--primario-rgb), .35); box-shadow: var(--sombra-flota); }
.cf-hero ~ .faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; font-size: 16px; }
.cf-hero ~ .faq summary::-webkit-details-marker { display: none; }
.cf-hero ~ .faq summary::after { content: '+'; flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); font-size: 20px; font-weight: 600; line-height: 1; transition: transform .2s ease; }
.cf-hero ~ .faq details[open] > summary::after { transform: rotate(45deg); }
.cf-hero ~ .faq details p { max-width: none; margin: 0 0 18px; font-size: 15px; color: var(--apagado); }
@media (prefers-reduced-motion: reduce) { .cf-hero ~ .faq details, .cf-hero ~ .faq summary::after { transition: none; } }

.cf-cierre { position: relative; overflow: hidden; margin: 34px 0; padding: 40px 20px; border-radius: 24px; text-align: center; color: #fff; background: radial-gradient(90% 120% at 100% 0%, rgba(255, 255, 255, .14), transparent 55%), radial-gradient(80% 120% at 0% 100%, rgba(var(--ambar-rgb), .35), transparent 60%), var(--primario); box-shadow: 0 2px 4px rgba(var(--tinta-rgb), .08), 0 18px 40px rgba(var(--primario-rgb), .25); }
@media (min-width: 760px) { .cf-cierre { padding: 52px 40px; } }
.cf-cierre .velo-eyebrow, .cf-cierre h2, .cf-cierre > p { text-align: center; }
.cf-cierre .velo-eyebrow { color: #F6D9B4; margin: 0 auto 8px; }
.cf-cierre h2 { margin: 4px 0 0; color: #fff; font-size: clamp(26px, 5vw, 38px); line-height: 1.1; }
.cf-cierre > p:not(.velo-eyebrow) { max-width: 44ch; margin: 12px auto 24px; color: rgba(255, 255, 255, .88); font-size: 16.5px; }
.cf-cierre .cta-doble { justify-content: center; margin: 0; }
.cf-cierre .btn-primario { background: #fff; color: var(--primario); }
.cf-cierre .btn-primario:hover { background: var(--primario-suave); }
.cf-cierre .btn-secundario { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .75); }
.cf-cierre .btn-secundario:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.cf-cierre *:focus-visible { outline-color: #fff; }

.cf-mas { margin: 34px 0 10px; }
.cf-mas ul { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 12px; }
@media (min-width: 620px) { .cf-mas ul { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .cf-mas ul { grid-template-columns: repeat(4, 1fr); } }
.cf-mas li { max-width: none; }
.cf-mas a { position: relative; display: flex; flex-direction: column; height: 100%; padding: 0; overflow: hidden; border: 1px solid var(--linea); border-radius: 16px; background: var(--carta); text-decoration: none; color: var(--tinta); transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.cf-mas strong::after { content: '\2192' / ''; flex: none; margin-left: auto; padding-left: 12px; font-weight: 700; transition: transform .2s ease; }
.cf-mas a:hover { border-color: var(--primario); box-shadow: var(--sombra-flota); transform: translateY(-2px); }
.cf-mas a:hover strong::after { transform: translateX(3px); }
.cf-mas strong { display: flex; align-items: center; padding: 14px 16px 14px 18px; background: var(--primario); color: #fff; font-size: 15.5px; line-height: 1.3; }
.cf-mas span { flex: 1; padding: 14px 18px 16px; color: var(--apagado); font-size: 14px; line-height: 1.4; }
@media (min-width: 900px) { .cf-mas strong { min-height: 68px; } }
@media (prefers-reduced-motion: reduce) { .cf-mas a, .cf-mas strong::after { transition: none; } .cf-mas a:hover { transform: none; } }

.pf { display: flex; flex-direction: column; gap: 16px; }
.pf .migas { margin: 0; }
.pf-caja, .pf-cab { background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; padding: 20px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 8px 22px rgba(var(--tinta-rgb), .05); min-width: 0; }
.pf-caja h2 { margin: 0 0 12px; font-size: 22px; line-height: 1.2; }
.pf-caja > p { margin: 0; }
.pf-eyebrow { margin: 0 0 4px; font-size: 11.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--apagado); }
.pf svg { flex: 0 0 auto; }
.pf-dueno { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 14px 18px; border-radius: 16px; background: var(--primario-suave); border: 1px solid rgba(var(--primario-rgb), .14); }
.pf-dueno[hidden] { display: none; }
.pf-dueno.pf-oculto { background: var(--ambar-suave); border-color: rgba(var(--ambar-rgb), .25); }
.pf-dueno-i { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(var(--primario-rgb), .1); color: var(--primario); }
.pf-dueno > p { flex: 1 1 200px; margin: 0; line-height: 1.35; }
.pf-dueno > p strong { display: block; color: var(--primario); font-size: 16.5px; }
.pf-dueno > p span { font-size: 14px; color: var(--apagado); }
.pf-dueno-acc { display: flex; flex-wrap: wrap; gap: 10px; }
.pf-dueno-acc .btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; font-size: 15px; }
.pf-cab { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 20px; }
.pf-cab .pf-avatar { width: 112px; height: 112px; flex: 0 0 auto; border-radius: 20px; font-family: var(--display); font-size: 44px; letter-spacing: -.02em; color: var(--tinta); object-fit: cover; }
.pf-cab-txt { min-width: 0; }
.pf-cab h1 { margin: 0; font-size: 40px; line-height: 1.05; letter-spacing: -.02em; overflow-wrap: anywhere; }
.pf-lema { margin: 4px 0 0; font-family: var(--display); font-weight: 800; font-size: 26px; line-height: 1.15; color: var(--primario); letter-spacing: -.015em; text-wrap: balance; }
.pf-lugar { margin: 6px 0 0; font-size: 18px; color: var(--apagado); }
.pf-chips { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pf-chips li { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 8px 14px; border-radius: 999px; background: var(--primario-suave); font-size: 14.5px; line-height: 1.3; }
.pf-chips svg { color: var(--primario); width: 18px; height: 18px; }
.pf-rejilla { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pf-tarifa .ficha-precio { text-align: left; margin: 2px 0 6px; }
.pf-tarifa .ficha-precio strong { display: inline; font-size: 40px; color: var(--tinta); }
.pf-tarifa .ficha-precio strong.precio-texto { font-size: 34px; }
.pf-tarifa .ficha-precio span { margin-left: 8px; }
.pf-tarifa-txt { margin: 0 0 14px; color: var(--apagado); }
.pf-tarifa .ficha-contacto { margin: 0; }
.pf-tarifa .ficha-contacto #zona-contacto .btn-primario { display: block; width: 100%; padding: 14px 16px; }
.pf-promesa { display: flex; align-items: center; gap: 14px; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--linea); line-height: 1.35; }
.pf-promesa-i { width: 34px; height: 34px; color: var(--primario); }
.pf-promesa strong { display: block; font-size: 15px; }
.pf-promesa span { font-size: 14px; color: var(--apagado); }
.pf-sobre p { font-size: 17px; line-height: 1.65; }
.pf-servicios ul, .pf-fuerza ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pf-servicios li { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid var(--linea); border-radius: 14px; }
.pf-servicios li svg { width: 30px; height: 30px; color: var(--primario); }
.pf-servicios li strong { display: block; font-family: var(--display); font-size: 18px; }
.pf-servicios li span { color: var(--apagado); font-size: 15px; line-height: 1.35; }
.pf-semana { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.pf-semana > input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.pf-semana > label { display: flex; align-items: center; justify-content: center; height: 46px; border: 1px solid var(--linea); border-radius: 12px; background: var(--carta); font-weight: 700; cursor: pointer; }
.pf-semana > label.con { background: var(--primario-suave); border-color: rgba(var(--primario-rgb), .2); color: var(--primario); }
.pf-semana > input:checked + label { border: 2px solid var(--primario); }
.pf-semana > input:focus-visible + label { outline: 3px solid var(--primario); outline-offset: 2px; }
.pf-paneles { grid-column: 1 / -1; margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--linea); }
.pf-panel { display: none; }
.pf-panel h3 { margin: 0 0 10px; font-size: 18px; }
.pf-franjas { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.pf-franjas span { padding: 8px 20px; border-radius: 12px; background: var(--primario); color: #fff; font-weight: 600; }
.pf-sin { margin: 0; color: var(--apagado); }
#pf-dia-lun:checked ~ .pf-paneles .pf-panel-lun,
#pf-dia-mar:checked ~ .pf-paneles .pf-panel-mar,
#pf-dia-mie:checked ~ .pf-paneles .pf-panel-mie,
#pf-dia-jue:checked ~ .pf-paneles .pf-panel-jue,
#pf-dia-vie:checked ~ .pf-paneles .pf-panel-vie,
#pf-dia-sab:checked ~ .pf-paneles .pf-panel-sab,
#pf-dia-dom:checked ~ .pf-paneles .pf-panel-dom { display: block; }
.pf-leyenda { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: 13.5px; color: var(--apagado); }
.pf-leyenda .muestra { display: inline-block; width: 16px; height: 16px; border-radius: 4px; background: var(--primario); }
.pf-disp .nota-tramos { margin: 8px 0 0; font-size: 14px; color: var(--apagado); }
.pf-fuerza { background: transparent; box-shadow: none; }
.pf-fuerza[hidden] { display: none; }
.pf-fuerza > p { color: var(--apagado); margin-bottom: 14px; }
.pf-fuerza li { display: flex; align-items: center; gap: 14px; }
.pf-fuerza li svg { box-sizing: content-box; padding: 9px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
.pf-fuerza > p:last-child { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--linea); }
.pf-ir { font-weight: 700; font-size: 17px; text-decoration: none; }
.pf .compartir { position: relative; overflow: hidden; margin: 0; padding: 22px 24px; border: 0; border-radius: 18px; background: var(--primario); color: #fff; }
.pf .compartir h2 { font-size: 22px; color: #fff; margin: 0 0 4px; }
.pf .compartir p { color: rgba(255, 255, 255, .85); font-size: 15px; margin: 0; }
.pf .compartir .cta-doble { flex-direction: row; flex-wrap: wrap; gap: 10px; margin: 14px 0 8px; }
.pf .compartir .btn-secundario { background: #fff; color: var(--primario); border-color: #fff; }
.pf .compartir .copiar-enlace { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .5); }
.pf .compartir .enlace-plano { font-size: 13px; color: rgba(255, 255, 255, .7); overflow-wrap: anywhere; }
.pf .compartir a:not(.btn) { color: #fff; }
.pf .cta-tras-perfiles, .pf .reportar { margin: 0; }
.pf-como-visita .pf-fuerza { display: none; }
.pf-como-visita .ficha-contacto { opacity: .55; }
@media (min-width: 640px) {
  .pf-cab { flex-direction: row; align-items: center; gap: 26px; padding: 22px; }
  .pf-cab .pf-avatar { width: 176px; height: 176px; font-size: 64px; }
  .pf-cab h1 { font-size: 52px; }
  .pf-lema { font-size: 36px; }
  .pf-caja { padding: 22px 24px; }
}
@media (min-width: 860px) {
  .pf-rejilla { grid-template-columns: minmax(0, 1fr) 340px; grid-template-areas: "sobre tarifa" "serv tarifa" "disp fuerza"; grid-template-rows: auto 1fr auto; align-items: start; }
  .pf-tarifa { grid-area: tarifa; }
  .pf-sobre { grid-area: sobre; }
  .pf-servicios { grid-area: serv; }
  .pf-disp { grid-area: disp; }
  .pf-fuerza { grid-area: fuerza; }
}
.pf-tarifa .precio-texto + span { display: none; }
.of-heroe { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: center; }
.of-heroe h1 { margin: 2px 0 0; font-size: 32px; line-height: 1.08; letter-spacing: -.02em; overflow-wrap: anywhere; text-wrap: balance; }
.of-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 14px 0 0; color: var(--apagado); font-size: 15px; }
.of-meta span { display: inline-flex; align-items: center; gap: 8px; }
.of-casa { display: none; color: var(--primario); background: var(--primario-suave); border-radius: 22px; padding: 26px; }
.of-casa svg { display: block; width: 100%; height: auto; }
.of-datos { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; padding: 6px 20px; }
.of-datos { list-style: none; margin: 0; }
.of-datos li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; padding: 14px 0; max-width: none; text-align: left; line-height: 1.3; }
.of-datos li + li { border-top: 1px solid var(--linea); }
.of-datos li > svg { grid-column: 1; grid-row: 1 / 3; width: 34px; height: 34px; color: var(--primario); }
.of-datos li > :not(svg) { grid-column: 2; }
.of-datos .ficha-precio { margin: 0; text-align: left; }
.of-datos .ficha-precio span { display: inline; margin-left: 6px; }
.of-datos span { display: block; font-size: 14px; color: var(--apagado); text-transform: none; letter-spacing: 0; font-weight: 400; }
.of-datos strong { display: block; font-size: 17px; font-weight: 700; }
.of-datos .ficha-precio strong { font-size: 22px; color: var(--primario); }
.of-acordar dl { margin: 0; }
.of-acordar dl > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 12px 0; }
.of-acordar dl > div + div { border-top: 1px solid var(--linea); }
.of-acordar dl svg { width: 26px; height: 26px; color: var(--primario); }
.of-acordar dd { margin: 0; color: var(--apagado); text-align: right; }
.of-detalle .of-galeria { margin-top: 16px; }
.of-detalle .of-galeria h2 { font-size: 17px; }
.of .of-mas { margin: 0; }
.of-promesa-2 { border-top: 0; padding-top: 0; margin-top: 12px; }
.of .pf-tarifa h2 { margin-bottom: 6px; }
@media (min-width: 640px) {
  .of-heroe h1 { font-size: 46px; }
  .of-datos { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 6px 0; }
  .of-datos li { padding: 16px 24px; }
  .of-datos li + li { border-top: 0; border-left: 1px solid var(--linea); }
}
@media (min-width: 860px) {
  .of-heroe { grid-template-columns: minmax(0, 1fr) 300px; }
  .of-casa { display: block; }
}
.tarjeta-ir { display: none; }
.lst-heroe { margin: 6px 0 18px; }
.lst-heroe h1 { margin: 2px 0 0; font-size: 36px; line-height: 1.08; letter-spacing: -.02em; }
.lst-sub { margin: 6px 0 0; font-size: 19px; }
.lst-promesa { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; color: var(--apagado); }
.lst-promesa svg { width: 28px; height: 28px; color: var(--primario); }
.lst { margin: 0 0 18px; }
.lst > h2 { display: none; }
.lst-barra { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; padding: 12px; margin: 0 0 18px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 8px 22px rgba(var(--tinta-rgb), .05); }
.lst-barra[hidden], .lst-filtros[hidden], .lst-orden[hidden] { display: none; }
.lst-barra label { display: flex; align-items: center; gap: 12px; padding: 6px 8px; margin: 0; }
.lst-barra label svg { width: 26px; height: 26px; color: var(--primario); }
.lst-barra label > span { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lst-barra strong { font-size: 15px; }
.lst-barra select { border: 0; background-color: transparent; padding: 2px 0; font-size: 15px; color: var(--apagado); width: 100%; min-height: 0; }
.lst-barra .btn { padding: 14px 20px; font-size: 17px; }
.lst-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.lst-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; }
.lst-cab h2 { margin: 0; font-size: 24px; }
.lst-orden select { padding: 8px 12px; font-size: 14px; border-radius: 10px; }
.lst-lista > .tarjeta { position: relative; margin: 0 0 12px; padding: 18px; border-radius: 16px; }
.lst-lista > .tarjeta[hidden] { display: none !important; }
.lst-lista > .tarjeta h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }
.lst-lista > .tarjeta:hover { border-color: rgba(var(--primario-rgb), .35); }
.lst-lista > .tarjeta.perfil .avatar { width: 84px; height: 84px; flex-basis: 84px; font-size: 36px; font-family: var(--display); }
.lst-lista .tarjeta-precio strong { font-size: 24px; color: var(--primario); }
.lst-lista .tarjeta-ir, .lst-lista .oferta-ir { display: inline-flex; align-self: flex-start; margin-top: 12px; padding: 8px 18px; border: 1.5px solid var(--primario); border-radius: 10px; color: var(--primario); font-weight: 700; font-size: 15px; }
.lst-lista .chip-mas { background: var(--fondo); color: var(--apagado); }
.lst-nada { text-align: center; color: var(--apagado); }
.lst-nada .lst-limpiar { padding: 0; }
.lst-mas { text-align: center; }
.lst-mas .btn { min-width: 220px; }
.lst-banda { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin: 18px 0 10px; padding: 24px 28px; border-radius: 18px; background: var(--primario); color: #fff; }
.lst-banda p { margin: 0; max-width: none; }
.lst-banda strong { display: block; font-family: var(--display); font-size: 26px; line-height: 1.15; }
.lst-banda span { color: rgba(255, 255, 255, .88); }
.lst-banda .btn { background: #fff; color: var(--primario); border-color: #fff; padding: 14px 30px; }
.lst-otro { text-align: center; margin: 0 0 22px; color: var(--apagado); }
.lst-otro a { font-weight: 700; text-decoration: none; }
@media (min-width: 720px) {
  .lst-heroe h1 { font-size: 50px; }
  .lst-barra { grid-template-columns: 1fr 1fr auto; align-items: center; padding: 12px 12px 12px 18px; }
  .lst-barra label + label { border-left: 1px solid var(--linea); padding-left: 18px; }
  .lst-barra .btn { min-width: 180px; }
}
@media (min-width: 900px) {
  .lst-cuerpo:has(.lst-filtros:not([hidden])) { grid-template-columns: 280px minmax(0, 1fr); }
  .lst-filtros { position: sticky; top: 90px; }
}
.lst-lista > .tarjeta.perfil, .lst-lista > .tarjeta.oferta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0 18px; align-items: start; }
.lst-lista > .tarjeta.oferta { grid-template-columns: minmax(0, 1fr) auto; }
.lst-lista > .tarjeta .tarjeta-cuerpo { min-width: 0; }
.lst-lista > .tarjeta .tarjeta-precio { margin: 0; text-align: right; grid-row: 1; grid-column: -2; }
.lst-lista > .tarjeta .tarjeta-precio.sin-cifra strong { font-size: 18px; line-height: 1.2; }
.lst-lista > .tarjeta h3 { margin: 4px 0 0; font-size: 21px; }
.lst-lista > .tarjeta h3 a { text-decoration: none; color: var(--tinta); }
@media (max-width: 559px) {
  .lst-lista > .tarjeta.perfil { grid-template-columns: auto minmax(0, 1fr); }
  .lst-lista > .tarjeta.perfil .avatar { width: 56px; height: 56px; flex-basis: 56px; font-size: 24px; }
  .lst-lista > .tarjeta.perfil .tarjeta-precio { grid-column: 2; grid-row: auto; text-align: left; margin-top: 8px; }
  .lst-lista > .tarjeta.oferta { grid-template-columns: minmax(0, 1fr); }
  .lst-lista > .tarjeta.oferta .tarjeta-precio { grid-column: 1; grid-row: auto; text-align: left; }
}
.tp h2 { margin-bottom: 14px; }
.tp-tarjeta { background: var(--carta); border: 1px solid var(--linea); border-radius: 20px; overflow: hidden; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 10px 26px rgba(var(--tinta-rgb), .06); }
.tp-cabeza { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: center; padding: 22px 22px 16px; background: var(--primario-suave); }
.tp-cabeza .sx-cifra { background: none; border: 0; padding: 0; }
.tp-cabeza .sx-num { font-family: var(--display); font-size: 44px; }
.tp-regla { display: block; width: 100%; height: auto; }
.tp-regla .tp-fondo { fill: rgba(var(--primario-rgb), .12); }
.tp-regla .tp-banda { fill: var(--primario); }
.tp-regla .tp-min { stroke: var(--ambar); stroke-width: 3; stroke-linecap: round; }
.tp-regla .tp-et { font-size: 14px; font-weight: 700; fill: var(--apagado); font-family: system-ui, sans-serif; }
.tp-regla .tp-et-b { fill: var(--primario-osc); }
.tp-datos { list-style: none; margin: 0; padding: 6px 22px; display: grid; grid-template-columns: minmax(0, 1fr); }
.tp-datos li { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; max-width: none; background: none; border: 0; border-radius: 0; flex-direction: row; }
.tp-datos li + li { border-top: 1px solid var(--linea); }
.tp-datos li > svg { box-sizing: content-box; width: 22px; height: 22px; padding: 10px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
.tp-datos li > span { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tp-datos .sx-num { font-size: 24px; }
.tp-txt { font-family: var(--display); font-size: 22px; color: var(--primario); line-height: 1.1; }
.tp-datos .sx-matiz { font-size: 13px; margin: 0; }
.tp-donde { margin-top: 26px; }
.tp-donde h3 { margin: 0 0 4px; }
.tp-donde > p { color: var(--apagado); margin: 0 0 12px; }
.tp-ciudades { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-ciudades a { flex-direction: row; align-items: center; gap: 8px; min-height: 0; padding: 8px 16px 8px 12px; border-radius: 999px; font-size: 15px; }
.tp-ciudades a svg { width: 16px; height: 16px; color: var(--primario); }
.tp-ciudades a small { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.vocabulario:has(.vc-cartas) { background: transparent; border: 0; padding: 0; }
.vc-cartas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.vc-carta { background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; padding: 20px 22px; }
.vc-carta > svg { box-sizing: content-box; width: 24px; height: 24px; padding: 11px; border-radius: 14px; background: var(--primario-suave); color: var(--primario); }
.vocabulario .vc-carta p + p { border-top: 0; padding-top: 0; margin-top: 6px; }
.vc-carta .vc-tit { margin: 12px 0 0; font-family: var(--display); font-weight: 800; font-size: 19px; }
.vc-carta p:not(.vc-tit) { font-size: 15px; color: var(--apagado); line-height: 1.6; }
@media (min-width: 720px) {
  .tp-cabeza { grid-template-columns: auto minmax(0, 1fr); gap: 32px; padding: 26px 30px 20px; }
  .tp-datos { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; }
  .tp-datos li { padding: 20px 24px; }
  .tp-datos li + li { border-top: 0; border-left: 1px solid var(--linea); }
  .vc-cartas { grid-template-columns: 1fr 1fr; }
}
.lst-filtros { background: var(--carta); border: 1px solid var(--linea); border-radius: 20px; padding: 20px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 10px 28px rgba(var(--tinta-rgb), .06); }
.lst-f-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.lst-f-cab svg { box-sizing: content-box; width: 18px; height: 18px; padding: 8px; border-radius: 10px; background: var(--primario-suave); color: var(--primario); }
.lst-f-cab h2 { margin: 0; font-size: 19px; flex: 1; }
.lst-cuenta { min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--primario); color: #fff; font-size: 13px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.lst-cuenta[hidden] { display: none; }
.lst-f-grupo { border: 0; margin: 0; padding: 16px 0 4px; min-width: 0; }
.lst-f-grupo + .lst-f-grupo { border-top: 1px dashed var(--linea); margin-top: 10px; }
.lst-f-grupo legend { float: left; width: 100%; padding: 0; margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--apagado); border: 0; }
.lst-pastillas { clear: both; display: flex; flex-wrap: wrap; gap: 7px; }
.lst-pastilla { position: relative; display: inline-flex; margin: 0; cursor: pointer; font: inherit; padding: 0; border: 0; background: none; }
.lst-pastilla input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lst-pastilla span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1.5px solid var(--linea); border-radius: 999px; background: var(--carta); font-size: 14px; font-weight: 600; color: var(--tinta); line-height: 1.2; transition: background .15s, border-color .15s, color .15s; }
.lst-pastilla:hover span { border-color: var(--primario); }
.lst-pastilla input:checked + span, .lst-tramo[aria-pressed="true"] span { background: var(--primario); border-color: var(--primario); color: #fff; }
.lst-pastilla input:checked + span::before, .lst-tramo[aria-pressed="true"] span::before { content: "\2713"; font-weight: 800; }
.lst-pastilla input:focus-visible + span, .lst-tramo:focus-visible span { outline: 3px solid var(--primario); outline-offset: 2px; }
.lst-tramo:focus-visible { outline: 0; }
.lst-rango { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 14px; }
.lst-campo { display: flex; align-items: center; gap: 4px; margin: 0; padding: 6px 10px; border: 1.5px solid var(--linea); border-radius: 12px; background: var(--fondo); cursor: text; }
.lst-campo:focus-within { border-color: var(--primario); background: var(--carta); box-shadow: 0 0 0 3px rgba(var(--primario-rgb), .15); }
.lst-campo > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.lst-campo input { flex: 1; min-width: 0; width: 100%; border: 0; padding: 4px 0; background: transparent; font-size: 16px; font-weight: 700; color: var(--tinta); -moz-appearance: textfield; }
.lst-campo input:focus { outline: 0; box-shadow: none; }
.lst-campo input::-webkit-outer-spin-button, .lst-campo input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lst-campo b { font-size: 13px; color: var(--apagado); font-weight: 600; }
.lst-interruptor { display: flex; align-items: center; gap: 12px; margin: 0; cursor: pointer; font-size: 14.5px; font-weight: 500; }
.lst-interruptor input { appearance: none; -webkit-appearance: none; flex: 0 0 auto; position: relative; width: 42px; height: 24px; margin: 0; border-radius: 999px; background: var(--linea); cursor: pointer; transition: background .18s; }
.lst-interruptor input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .18s; }
.lst-interruptor input:checked { background: var(--primario); }
.lst-interruptor input:checked::after { transform: translateX(18px); }
.lst-interruptor input:focus-visible { outline: 3px solid var(--primario); outline-offset: 2px; }
.lst-limpiar { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; padding: 8px 0 0; background: none; border: 0; color: var(--primario); font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; }
.lst-limpiar svg { width: 16px; height: 16px; }
.lst-limpiar:disabled { color: var(--apagado); opacity: .5; cursor: default; }
.lst-nada .lst-limpiar { margin: 0; padding: 0; }
.lst-total { margin: 2px 0 0; font-size: 14px; color: var(--apagado); }
.lst-total:empty { display: none; }
.tp-datos li > svg { flex: 0 0 auto; }
.lst-filtros { min-width: 0; }
.lst-abrir { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1.5px solid var(--linea); border-radius: 10px; background: var(--carta); color: var(--tinta); font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; }
.lst-abrir svg { width: 18px; height: 18px; color: var(--primario); }
.lst-abrir:hover { border-color: var(--primario); }
.lst-abrir[hidden], .lst-velo { display: none; }
.lst-cerrar { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: -6px -8px -6px 0; padding: 0; border: 0; border-radius: 10px; background: none; color: var(--tinta); cursor: pointer; }
.lst-cerrar svg { width: 22px; height: 22px; }
.lst-ver { position: sticky; bottom: 0; width: 100%; margin-top: 18px; box-shadow: 0 -12px 16px var(--carta); }
@media (min-width: 900px) {
  .lst-abrir, .lst-cerrar, .lst-ver { display: none; }
}
@media (max-width: 899.98px) {
  .lst-filtros { position: fixed; top: 0; bottom: 0; left: 0; z-index: 71; width: min(360px, 88vw); margin: 0; border-radius: 0 20px 20px 0; overflow-y: auto; overscroll-behavior: contain; transform: translateX(-105%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; }
  .lst-abierto .lst-filtros { transform: none; visibility: visible; transition: transform .25s ease; }
  .lst-abierto .lst-velo { display: block; position: fixed; inset: 0; z-index: 70; background: rgba(var(--tinta-rgb), .45); }
  html.lst-quieto { overflow: hidden; }
  .lst-cab { justify-content: flex-start; gap: 8px; }
  .lst-cab > div { flex-basis: 100%; }
  .lst-cab h2 { font-size: 20px; }
  .lst-orden { flex: 1; min-width: 0; }
  .lst-orden select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .lst-filtros, .lst-abierto .lst-filtros { transition: none; }
}
.pf .compartir[data-estilo] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: center; padding: 26px 28px; background: var(--primario) radial-gradient(circle at 100% 100%, rgba(255, 255, 255, .08) 0 120px, transparent 121px); }
.pf .compartir[data-estilo] .cmp-i { display: none; }
.pf .compartir[data-estilo] h2 { font-size: 24px; margin: 0 0 4px; }
.pf .compartir[data-estilo] .cta-doble { margin: 0; align-items: center; gap: 6px 18px; }
.pf .compartir[data-estilo] .cta-doble .btn { display: inline-flex; align-items: center; gap: 10px; }
.pf .compartir[data-estilo] .btn-secundario:not(.copiar-enlace) { padding: 13px 24px; font-size: 16px; border-radius: 12px; }
.pf .compartir[data-estilo] .copiar-enlace { border: 0; padding: 10px 4px; background: transparent; color: #fff; font-size: 15.5px; }
.pf .compartir[data-estilo] .copiar-enlace:hover { box-shadow: none; text-decoration: underline; }
.pf .compartir[data-estilo] .btn svg { width: 19px; height: 19px; }
.pf .compartir[data-estilo] .enlace-plano { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pf .compartir[data-estilo="oferta"] .cmp-i { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; }
.pf .compartir[data-estilo="oferta"] .cmp-i svg { width: 32px; height: 32px; }
.pf .btn-apagado { display: flex; align-items: center; justify-content: center; width: 100%; padding: 14px 16px; background: #E4E2DC; color: #8E9294; border-color: #E4E2DC; cursor: not-allowed; box-shadow: none; transform: none; }
.pf .btn-apagado:hover { background: #E4E2DC; transform: none; box-shadow: none; }
.pf-tarifa .ficha-contacto #zona-contacto .btn-primario { display: flex; align-items: center; justify-content: center; gap: 10px; border-radius: 12px; }
.pf-tarifa .ficha-contacto #zona-contacto .btn-primario::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 4c4.6 0 8 3 8 7s-3.4 7-8 7c-1.1 0-2.1-.2-3-.5L5 19l1-3.5C4.8 14.3 4 12.7 4 11c0-4 3.4-7 8-7z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 4c4.6 0 8 3 8 7s-3.4 7-8 7c-1.1 0-2.1-.2-3-.5L5 19l1-3.5C4.8 14.3 4 12.7 4 11c0-4 3.4-7 8-7z'/%3E%3C/svg%3E") center / contain no-repeat; }
.pf-tarifa .ficha-contacto #zona-contacto a[href="/premium/"].btn { display: inline; padding: 0; border: 0; background: none; min-height: 0; box-shadow: none; transform: none; font-size: 13px; font-weight: 600; color: var(--apagado); text-decoration: underline; text-underline-offset: 2px; }
.pf-tarifa .ficha-contacto #nota-contacto { font-size: 12.5px; line-height: 1.45; }
.pf-promesa .pf-promesa-i { box-sizing: content-box; width: 22px; height: 22px; padding: 11px; border-radius: 50%; background: var(--primario-suave); }
.pf-promesa { align-items: center; }
.of-lema { margin: 4px 0 0; font-family: var(--display); font-weight: 800; font-size: 36px; line-height: 1.04; letter-spacing: -.025em; color: var(--tinta); }
.of-heroe h1 { font-family: inherit; font-weight: 400; font-size: 22px; letter-spacing: 0; margin-top: 12px; }
.of-meta { gap: 8px 0; }
.of-meta > span + span { border-left: 1px solid var(--linea); margin-left: 16px; padding-left: 16px; }
.of-meta b { font-weight: 400; }
.of-clara { display: flex; gap: 16px; align-items: flex-start; background: var(--ambar-suave); border-color: rgba(var(--ambar-rgb), .18); }
.of-clara-i { flex: 0 0 auto; display: inline-flex; padding: 12px; border-radius: 50%; background: rgba(var(--ambar-rgb), .12); color: var(--ambar); }
.of-clara h2 { font-size: 18px; margin: 0 0 4px; }
.of-clara p { font-size: 14px; color: var(--apagado); }
.of-clara p:last-child { border: 0; padding: 0; margin: 10px 0 0; }
.of-acordar dl > div { padding: 16px 0; font-size: 17px; }
.of-acordar dd { color: var(--tinta); text-align: left; min-width: 40%; }
@media (min-width: 640px) {
  .of-lema { font-size: 54px; }
  .of-heroe h1 { font-size: 30px; }
}
@media (min-width: 720px) {
  .pf .compartir[data-estilo] { grid-template-columns: minmax(0, 1fr) auto; padding: 26px 34px; }
  .pf .compartir[data-estilo="oferta"] { grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; }
  .pf .compartir[data-estilo] .cta-doble { flex-direction: column; align-items: stretch; }
}
.pf-izq, .pf-der { display: contents; }
.pf-der .pf-tarifa { order: -1; }
.of-clara > div { flex: 1; min-width: 0; }
.of-promesa-2 { margin-top: 14px; }
@media (min-width: 860px) {
  .pf-rejilla { grid-template-areas: none; grid-template-rows: none; }
  .pf-izq, .pf-der { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
  .pf-izq { grid-column: 1; grid-row: 1; }
  .pf-der { grid-column: 2; grid-row: 1; }
  .pf-rejilla .pf-caja { grid-area: auto; }
}
@media (max-width: 559px) {
  .of-meta { flex-direction: column; gap: 6px; }
  .of-meta > span + span { border: 0; margin: 0; padding: 0; }
}
.lst-modo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 8px 0 22px; padding: 6px; background: var(--carta); border: 1px solid var(--linea); border-radius: 20px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 8px 22px rgba(var(--tinta-rgb), .05); }
.lst-modo-b { display: flex; align-items: center; gap: 14px; min-height: 76px; padding: 12px 16px; border-radius: 15px; border: 2px solid transparent; color: var(--tinta); text-decoration: none; transition: background .15s, border-color .15s; }
.lst-modo-b:hover { background: var(--primario-suave); }
.lst-modo-b[aria-current="page"] { background: var(--primario); border-color: var(--primario); color: #fff; box-shadow: 0 6px 18px rgba(var(--primario-rgb), .28); }
.lst-modo-i { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--primario-suave); color: var(--primario); }
.lst-modo-i svg { width: 24px; height: 24px; }
.lst-modo-b[aria-current="page"] .lst-modo-i { background: rgba(255, 255, 255, .16); color: #fff; }
.lst-modo-b strong { display: block; font-family: var(--display); font-size: 19px; line-height: 1.15; }
.lst-modo-b small { display: block; font-size: 13.5px; color: var(--apagado); line-height: 1.3; margin-top: 2px; }
.lst-modo-b[aria-current="page"] small { color: rgba(255, 255, 255, .85); }
.lst-modo-b:focus-visible { outline: 3px solid var(--primario); outline-offset: 2px; }
.lst-barra-1 { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 559px) {
  .lst-modo-b { flex-direction: column; align-items: flex-start; gap: 8px; min-height: 0; padding: 12px; }
  .lst-modo-i { width: 40px; height: 40px; }
  .lst-modo-b strong { font-size: 17px; }
  .lst-modo-b small { font-size: 12.5px; }
}
@media (min-width: 720px) {
  .lst-modo-b strong { font-size: 21px; }
  .lst-barra-1 { grid-template-columns: minmax(0, 1fr) auto; }
}
.lst-modo { margin: 4px 0 14px; padding: 5px; gap: 6px; border-radius: 16px; }
.lst-modo-b { min-height: 0; padding: 8px 12px; gap: 12px; border-radius: 12px; }
.lst-modo-i { width: 38px; height: 38px; }
.lst-modo-i svg { width: 20px; height: 20px; }
.lst-modo-b strong { font-size: 17px; }
.lst-modo-b small { font-size: 13px; margin-top: 0; }
.lst-heroe { display: flex; flex-wrap: wrap; align-items: center; column-gap: 18px; row-gap: 4px; margin: 0 0 12px; }
.lst-heroe .pf-eyebrow, .lst-heroe h1 { flex-basis: 100%; margin: 0; }
.lst-heroe h1 { font-size: 30px; }
.lst-sub { margin: 0; font-size: 16.5px; }
.lst-promesa { margin: 0; font-size: 14px; gap: 6px; }
.lst-promesa svg { width: 22px; height: 22px; }
.lst-heroe ~ .tldr:not(.tldr-ilu) { margin: 0 0 12px; padding: 10px 14px; box-shadow: none; border-left-width: 3px; }
.lst-heroe ~ .tldr:not(.tldr-ilu) ul { gap: 3px; }
.lst-heroe ~ .tldr:not(.tldr-ilu) li { font-size: 13.5px; line-height: 1.4; padding-left: 18px; }
.lst-heroe ~ .tldr:not(.tldr-ilu) li::before { width: 6px; height: 6px; top: 7px; left: 2px; }
.lst-barra { padding: 6px; margin-bottom: 14px; gap: 6px; border-radius: 14px; }
.lst-barra label { padding: 4px 8px; }
.lst-barra .btn { padding: 11px 18px; font-size: 16px; }
@media (min-width: 720px) {
  .lst-modo-b strong { font-size: 18px; }
  .lst-heroe h1 { font-size: 40px; }
  .lst-barra { padding: 6px 6px 6px 14px; }
  .lst-barra .btn { min-width: 150px; }
}
@media (max-width: 559px) {
  .lst-modo-b { flex-direction: row; align-items: center; gap: 8px; padding: 8px; }
  .lst-modo-i { width: 32px; height: 32px; }
  .lst-modo-i svg { width: 17px; height: 17px; }
  .lst-modo-b strong { font-size: 15px; }
  .lst-modo-b small { display: none; }
}
@media (max-width: 559px) {
  .lst-modo-b strong { font-size: 14.5px; }
  .lst-barra-1 { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .lst-barra-1 .btn { padding: 11px 16px; }
  .lst-heroe .pf-eyebrow, .lst-sub { display: none; }
  .lst-promesa { margin-top: 2px; font-size: 13px; }
  .lst-heroe { margin-bottom: 8px; }
  .lst-heroe h1 { font-size: 27px; }
  .lst-modo { margin: 2px 0 10px; }
  .lst-modo-b { padding: 6px 8px; }
  .lst-heroe ~ .tldr:not(.tldr-ilu) { margin-bottom: 10px; padding: 8px 12px; }
  .lst-barra label:has(select[name="servicio"]) { display: none; }
  .lst-barra { grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-bottom: 10px; }
  .lst-barra .btn { padding: 11px 16px; }
  .lst-cab { margin-bottom: 8px; }
  .lst-cab h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .lst-cab > div { order: 3; }
  .lst-total { margin: 0; }
  .lst-lista > .tarjeta.perfil { grid-template-columns: auto minmax(0, 1fr) auto; gap: 0 12px; }
  .lst-lista > .tarjeta.perfil .tarjeta-precio { grid-column: 3; grid-row: 1; text-align: right; margin-top: 4px; }
  .lst-lista > .tarjeta.perfil .tarjeta-precio strong { font-size: 20px; }
  .lst-lista > .tarjeta.perfil .tarjeta-precio.sin-cifra { grid-column: 2; grid-row: auto; text-align: left; margin-top: 8px; }
}
.gz-explora { margin: 30px 0 24px; }
.gz-explora > h2 { margin: 2px 0 14px; }
.gz-explora ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.gz-explora ul a, .gz-acceso { position: relative; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; height: auto; min-height: 64px; padding: 12px 40px 12px 12px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; color: var(--tinta); font-size: 15px; font-weight: 700; line-height: 1.25; text-decoration: none; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04); transition: border-color .15s ease, background .15s ease; }
.gz-acceso { background: var(--primario-suave); border-color: rgba(var(--primario-rgb), .16); }
.gz-explora ul a:hover, .gz-acceso:hover { border-color: var(--primario); }
.gz-explora a > svg { flex: none; box-sizing: content-box; width: 20px; height: 20px; padding: 9px; border-radius: 11px; background: var(--primario-suave); color: var(--primario); }
.gz-acceso > svg { background: var(--carta); }
.gz-explora a > span { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.gz-explora a small { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apagado); line-height: 1.2; }
.gz-explora a::after { content: ''; position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; border-right: 2px solid var(--primario); border-bottom: 2px solid var(--primario); transform: translateY(-50%) rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .gz-explora ul a, .gz-acceso { transition: none; } }
@media (max-width: 559px) {
  .gz-explora ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .gz-explora ul a { min-height: 58px; padding: 10px 26px 10px 12px; font-size: 14px; }
  .gz-explora ul a:not(.gz-acceso) > svg { display: none; }
  .gz-explora .gz-otro { grid-column: 1 / -1; }
  .gz-explora ul a::after { right: 12px; }
}

.vc-familia { gap: 14px; grid-template-columns: minmax(0, 1fr); }
.vc-precio { background: var(--primario-suave); border-color: rgba(var(--primario-rgb), .16); }
.vc-precio > svg { background: var(--carta); }
.vc-carta p.vc-cifra { margin: 6px 0 10px; font-family: var(--display); font-size: 34px; font-weight: 800; line-height: 1.05; color: var(--primario); }
.vc-carta p.vc-cifra small { margin-left: 4px; font-family: inherit; font-size: 15px; font-weight: 700; color: var(--apagado); }
@media (min-width: 900px) {
  .vc-familia { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .vc-familia .vc-precio { grid-column: 1 / -1; display: grid; grid-template-columns: 250px minmax(0, 1fr); grid-template-areas: "ico txt" "tit txt" "cifra txt"; grid-template-rows: auto auto 1fr; column-gap: 32px; }
  .vc-precio > svg { grid-area: ico; }
  .vc-precio > .vc-tit { grid-area: tit; }
  .vc-precio > .vc-cifra { grid-area: cifra; }
  .vc-precio > p:last-child { grid-area: txt; align-self: center; }
}

main:has(> .lst-heroe) > hr.velo-onda { display: none; }
main:has(> .lst-heroe) .zonas { margin: 22px 0; padding: 18px 22px; background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; }
main:has(> .lst-heroe) .zonas h2 { margin: 0 0 8px; }
main:has(> .lst-heroe) .zonas p { margin: 0; color: var(--apagado); }

main:has(> .lst-heroe) .razones-bloque { margin: 34px 0 26px; }
main:has(> .lst-heroe) .razones { gap: 12px; }
main:has(> .lst-heroe) .razones li { flex-direction: column; gap: 10px; padding: 16px 16px 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; }
main:has(> .lst-heroe) .razones li > .ilu-icono { background: var(--primario-suave); border-color: transparent; }
@media (max-width: 559px) { main:has(> .lst-heroe) .razones li { flex-direction: row; align-items: center; gap: 14px; } }
@media (min-width: 560px) { main:has(> .lst-heroe) .razones { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { main:has(> .lst-heroe) .razones { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

main:has(> .lst-heroe) .guias-rel { margin: 30px 0 24px; }
main:has(> .lst-heroe) .guias-rel > p { color: var(--apagado); margin: 0 0 14px; }
main:has(> .lst-heroe) .guias-rel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { main:has(> .lst-heroe) .guias-rel ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
main:has(> .lst-heroe) .guias-rel ul li { margin: 0; }
main:has(> .lst-heroe) .guias-rel ul a { position: relative; display: flex; align-items: center; height: 100%; min-height: 58px; padding: 14px 42px 14px 18px; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; color: var(--tinta); font-weight: 700; font-size: 15px; line-height: 1.3; text-decoration: none; }
main:has(> .lst-heroe) .guias-rel ul a:hover { border-color: var(--primario); color: var(--primario-osc); }
main:has(> .lst-heroe) .guias-rel ul a::after { content: ''; position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; border-right: 2px solid var(--primario); border-bottom: 2px solid var(--primario); transform: translateY(-50%) rotate(-45deg); }

main:has(> .lst-heroe) .faq details { border-radius: 12px; }
main:has(> .lst-heroe) .faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
main:has(> .lst-heroe) .faq summary::-webkit-details-marker { display: none; }
main:has(> .lst-heroe) .faq summary::after { content: ''; flex: none; width: 8px; height: 8px; margin: -4px 2px 0 0; border-right: 2px solid var(--tinta); border-bottom: 2px solid var(--tinta); transform: rotate(45deg); }
main:has(> .lst-heroe) .faq details[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }

.gz-ofertas { margin: 30px 0 24px; gap: 12px; }
.gz-ofertas > .gz-cab { grid-column: 1 / -1; }
.gz-ofertas > .gz-cab h2 { margin: 2px 0 2px; }
.gz-ofertas > .tarjeta.oferta { border-left: 1px solid var(--linea); border-radius: 16px; padding: 16px 18px; }
.gz-ofertas .tarjeta.oferta .oferta-desc { display: none; }
.gz-ofertas .oferta-cab { margin-bottom: 6px; }
.gz-ofertas .tarjeta-precio strong { font-size: 18px; }
.pf-perfil .pf-cab { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
.pf-perfil .pf-cab .pf-avatar { width: 96px; height: 96px; border-radius: 16px; font-size: 40px; color: var(--primario); }
.pf-nombre { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; }
.pf-perfil .pf-cab h1 { font-size: 30px; }
.pf-oficio { margin: 0; font-family: var(--display); font-weight: 700; font-size: 20px; line-height: 1.2; color: var(--tinta); }
.pf-datos { list-style: none; display: grid; gap: 6px; margin: 12px 0 0; padding: 0; }
.pf-datos li { display: flex; align-items: center; gap: 8px; max-width: none; margin: 0; font-size: 15.5px; line-height: 1.35; color: var(--tinta); }
.pf-datos svg { width: 18px; height: 18px; color: var(--primario); }
.pf-datos .pf-precio strong { font-weight: 700; }
.pf-datos .pf-precio span span { color: var(--apagado); }
.pf-cab-acc { min-width: 0; }
.pf-cab-acc .pf-promesa { margin-top: 14px; padding-top: 14px; }
.pf-perfil .pf-rejilla { grid-template-columns: minmax(0, 1fr); }
.pf-perfil .pf-izq { display: flex; flex-direction: column; gap: 0; padding: 4px 22px; background: var(--carta); border: 1px solid var(--linea); border-radius: 18px; box-shadow: 0 1px 2px rgba(var(--tinta-rgb), .04), 0 8px 22px rgba(var(--tinta-rgb), .05); }
.pf-perfil .pf-izq:not(:has(.pf-caja)) { display: none; }
.pf-perfil .pf-izq > .pf-caja { padding: 18px 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.pf-perfil .pf-izq > .pf-caja + .pf-caja { border-top: 1px solid var(--linea); }
.pf-perfil .pf-izq h2 { margin-bottom: 10px; font-size: 19px; }
.pf-perfil .pf-sobre p { font-size: 16px; line-height: 1.6; }
.pf-perfil .pf-servicios ul { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.pf-perfil .pf-servicios li { gap: 8px; padding: 0; border: 0; border-radius: 0; font-size: 15.5px; }
.pf-perfil .pf-servicios li svg { width: 20px; height: 20px; }
.pf-perfil .pf-semana { gap: 8px; }
.pf-perfil .pf-semana > label { height: 38px; border: 0; border-radius: 10px; background: var(--fondo); color: var(--apagado); font-size: 14px; font-weight: 600; }
.pf-perfil .pf-semana > label.con { background: var(--primario-suave); color: var(--primario-osc); }
.pf-perfil .pf-semana > input:checked + label { border: 0; box-shadow: inset 0 0 0 2px var(--primario); }
.pf-perfil .pf-leyenda .muestra { background: var(--primario-suave); box-shadow: inset 0 0 0 1px rgba(var(--primario-rgb), .3); }
@media (min-width: 640px) {
  .pf-perfil .pf-cab { grid-template-columns: auto minmax(0, 1fr); gap: 18px 24px; }
  .pf-perfil .pf-cab .pf-avatar { width: 128px; height: 128px; font-size: 52px; }
  .pf-perfil .pf-cab h1 { font-size: 36px; }
  .pf-oficio { font-size: 22px; }
  .pf-cab-acc { grid-column: 1 / -1; grid-row: auto; }
}
@media (min-width: 960px) {
  .pf-perfil .pf-cab { grid-template-columns: auto minmax(0, 1fr) 300px; }
  .pf-cab-acc { grid-column: 3; grid-row: 1; }
}
@media (min-width: 860px) {
  .pf-perfil .pf-izq, .pf-perfil .pf-der { grid-column: 1; grid-row: auto; }
}
@media (max-width: 559px) {
  .pf-perfil .pf-semana { gap: 4px; }
  .pf-perfil .pf-semana > label { font-size: 12.5px; }
}
.of-resumen { margin: 6px 0 14px; padding: 0; }
.of-resumen > div { padding: 11px 0; border-top: 1px solid var(--linea); }
.of-resumen > div:last-child { border-bottom: 1px solid var(--linea); }
.of-resumen dt { font-size: 15px; font-weight: 800; }
.of-resumen dd { margin: 2px 0 0; font-size: 15px; color: var(--tinta); }
.of .pf-tarifa .ficha-contacto #zona-contacto .btn-primario { gap: 8px; padding-inline: 10px; font-size: 16px; }
.of-resumen small { display: block; margin-top: 2px; font-size: 13.5px; color: var(--apagado); }

.ent { display: grid; gap: 40px; margin: 22px 0 0; }
.ent p { max-width: none; }
.ent-lado { display: none; }
.ent-col { width: 100%; max-width: 460px; margin: 0 auto; }
.ent-eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--primario); }
.ent-eyebrow, .ent h1, .ent-saludo { padding-inline: 21px; }
.ent h1 { text-wrap: wrap; margin: 0 0 8px; font-size: clamp(36px, 10.8vw, 44px); line-height: 1.05; letter-spacing: -0.025em; }
.ent-saludo { margin: 0 0 22px; font-size: 18px; color: var(--apagado); }
.ent-caja { display: flex; flex-direction: column; background: var(--carta); border: 1px solid var(--linea); border-radius: 14px; padding: 22px 20px 18px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 24px rgba(23, 38, 42, .05); }
.ent-caja > .error, .ent-caja > .aviso-sin-cuenta { margin: 0 0 16px; }
.ent .btn-google { min-height: 52px; border-radius: 10px; border-color: var(--borde-campo); font-size: 16.5px; }
.ent .separador { margin: 18px 0 16px; font-size: 14.5px; }
.ent .separador span { white-space: nowrap; }
.ent-form { display: flex; flex-direction: column; }
.ent-form label { margin: 0 0 8px; font-size: 15.5px; font-weight: 700; color: var(--tinta); }
.ent-form input[type='text'], .ent-form input[type='password'], .ent-clave input {
  font: inherit; font-size: 16px; color: var(--tinta); width: 100%; min-height: 50px; padding: 12px 14px;
  border: 1px solid var(--borde-campo); border-radius: 10px; background: var(--carta);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ent-form input:focus { outline: none; border-color: var(--primario); box-shadow: 0 0 0 2px var(--primario); }
.ent-form input::placeholder { color: #687175; opacity: 1; }
.ent-form #ent-dato { margin: 0 0 18px; }
.ent-clave { position: relative; display: block; }
.ent-clave input { padding-right: 52px; }
.ent-ojo { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--tinta); cursor: pointer; }
.ent-ojo[hidden] { display: none; }
.ent-ojo:hover { background: var(--primario-suave); }
.ent-ojo[aria-pressed='true'] { color: var(--primario); }
.ent-olvido { align-self: flex-end; margin: 10px 0 0; padding: 4px 0; font-size: 15px; }
.ent-entrar { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; margin: 18px 0 0; border-radius: 10px; font-size: 17px; }
.ent-crear { margin: 22px 0 0; text-align: center; font-size: 15.5px; color: var(--tinta); }
.ent-crear a { display: inline-block; padding: 4px 0; font-size: 16.5px; }
.ent-google-nota { margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--linea); text-align: center; font-size: 13.5px; color: var(--apagado); }
.ent-ayuda { margin: 22px 0 0; text-align: center; font-size: 15px; color: var(--tinta); }
.ent-ayuda a { display: inline-block; padding: 4px 0; }
@media (max-width: 559px) {
  .ent-crear a, .ent-ayuda a { display: block; }
}
@media (min-width: 860px) {
  .ent { grid-template-columns: minmax(0, 1fr) 420px; align-items: stretch; margin-top: 36px; }
  .ent-lado { display: flex; flex-direction: column; }
  .ent-lema { margin: 4px 0 14px; font-family: var(--display); font-size: 52px; font-weight: 800; line-height: .98; letter-spacing: -0.035em; color: var(--tinta); text-wrap: balance; }
  .ent-entradilla { margin: 0 0 26px; font-size: 21px; line-height: 1.32; color: var(--apagado); }
  .ent-foto { position: relative; display: block; flex: 1 1 auto; min-height: 260px; margin: 0; border-radius: 16px; overflow: hidden; }
  .ent-foto img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; }
  .ent-pie-foto, .ent-ayuda { margin: 0; padding: 14px 0 0; font-size: 14.5px; line-height: 24px; }
  .ent-pie-foto { color: var(--apagado); }
  .ent-ayuda a { padding: 0; }
  .ent-col { max-width: none; margin: 0; display: flex; flex-direction: column; }
  .ent-carta { flex: 1 1 auto; background: var(--carta); border: 1px solid var(--linea); border-radius: 16px; padding: 30px 30px 20px; box-shadow: 0 1px 2px rgba(23, 38, 42, .04), 0 8px 24px rgba(23, 38, 42, .05); }
  .ent-eyebrow { font-size: 12.5px; }
  .ent-eyebrow, .ent h1, .ent-saludo { padding-inline: 0; }
  .ent h1 { font-size: 34px; letter-spacing: -0.02em; }
  .ent-saludo { font-size: 17px; }
  .ent-caja { padding: 0; border: 0; border-radius: 0; box-shadow: none; background: none; }
}
