/* Páginas de servicio (seguro de crédito, caución, factoring...). Mismo lenguaje que la portada. */

.seccion { padding: 72px 0; }
.seccion-gris { background: var(--gris-claro); }
.seccion-gris + .cierre { padding-top: 72px; }
.seccion h2 { font-size: clamp(28px, 3.2vw, 42px); font-weight: 700; line-height: 1.1; }
.seccion-titulo { margin-bottom: 40px; }

/* ---------- Cabecera de la página: texto y foto ---------- */
.cabecera-pagina { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--gris-claro) 100%); }
.cabecera-pagina::before {
  content: ""; position: absolute; right: -120px; top: -160px; width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 25, 63, .10) 0%, rgba(215, 25, 63, 0) 70%);
  animation: flota 9s ease-in-out infinite alternate;
}
@keyframes flota { to { transform: translate(-60px, 60px) scale(1.1); } }
.cabecera-pagina-dentro {
  position: relative; display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center;
  padding-top: 48px; padding-bottom: 72px;
}
.migas { display: flex; gap: 8px; font-size: 14px; color: var(--texto-suave); margin-bottom: 24px; }
.migas a { text-decoration: none; }
.migas a:hover { color: var(--rojo); }
.cabecera-pagina h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.04; font-weight: 700; }
.cabecera-pagina h1 em { font-style: normal; color: var(--rojo); }
.cabecera-pagina .entradilla { font-size: clamp(17px, 1.5vw, 19px); color: var(--texto-suave); max-width: 500px; margin-top: 22px; }
.cabecera-pagina .botones { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.cabecera-pagina .tarjeta-consulta { margin-top: 28px; }
.cabecera-foto { position: relative; }
.cabecera-foto .marco { border-radius: 22px; overflow: hidden; }
.cabecera-foto img {
  width: 100%; height: auto; aspect-ratio: 4 / 3.9; object-fit: cover; object-position: 50% 55%;
  animation: acercar 18s ease-out forwards;
}
@keyframes acercar { from { transform: scale(1.12); } to { transform: scale(1); } }
.sello-dato {
  position: absolute; left: -28px; bottom: 32px; background: #fff; border-radius: var(--radio);
  padding: 16px 22px 16px 18px; box-shadow: 0 18px 44px rgba(0, 0, 0, .14);
  display: flex; align-items: center; gap: 14px;
  opacity: 0; animation: sube .8s .9s ease forwards;
}
.sello-dato img { height: 44px; width: auto; }
.sello-dato strong { display: block; font-family: var(--titulos); font-size: 20px; line-height: 1.1; }
.sello-dato span { display: block; font-size: 13px; color: var(--texto-suave); }
@keyframes sube { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .cabecera-pagina-dentro { grid-template-columns: 1fr; padding-bottom: 64px; }
  .cabecera-foto img { aspect-ratio: 16 / 11; }
  .sello-dato { left: 16px; bottom: -24px; }
}
@media (max-width: 700px) {
  .cabecera-pagina .botones .boton { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Lo que hacemos: paneles que se expanden ---------- */
.paneles { display: flex; gap: 14px; height: 270px; }
.panel {
  position: relative; flex: 1; min-width: 0; overflow: hidden; cursor: pointer;
  border-radius: var(--radio); background: var(--texto); color: #fff; padding: 30px;
  display: flex; flex-direction: column; justify-content: flex-end;
  transition: flex .6s cubic-bezier(.2, .8, .2, 1), background .5s;
}
.panel::before {
  content: ""; position: absolute; inset: 0; opacity: 0; transition: opacity .5s;
  background: linear-gradient(140deg, var(--rojo) 0%, #8E0B27 100%);
}
.panel.activo { flex: 2.2; }
.panel.activo::before { opacity: 1; }
.panel > * { position: relative; }
.panel .num { position: absolute; top: 26px; left: 30px; font-family: var(--titulos); font-weight: 600; font-size: 14px; color: rgba(255,255,255,.55); }
.panel .icono-panel {
  position: absolute; top: 22px; right: 24px; width: 50px; height: 50px; border-radius: 50%;
  display: grid; place-items: center; border: 1.5px solid rgba(255,255,255,.3); transition: transform .6s, background .4s;
}
.panel.activo .icono-panel { background: #fff; color: var(--rojo); border-color: #fff; transform: rotate(-12deg) scale(1.08); }
.panel h3 { color: #fff; font-size: 26px; font-weight: 700; white-space: nowrap; }
.panel p { color: rgba(255,255,255,.9); margin-top: 8px; max-width: 380px; }
.panel .extra {
  max-height: 0; opacity: 0; overflow: hidden; color: rgba(255,255,255,.75); font-size: 15px;
  transition: max-height .6s, opacity .5s, margin .5s;
}
.panel.activo .extra { max-height: 90px; opacity: 1; margin-top: 12px; }
.panel .barra { height: 3px; background: rgba(255,255,255,.25); margin-top: 22px; border-radius: 2px; overflow: hidden; }
.panel .barra i { display: block; height: 100%; width: 0; background: #fff; }
.panel.activo .barra i { animation: avanza var(--tiempo, 5s) linear forwards; }
.paneles.parado .panel .barra i { animation: none; width: 0; }
@keyframes avanza { to { width: 100%; } }
@media (max-width: 860px) {
  .paneles { flex-direction: column; height: auto; }
  .panel { min-height: 120px; padding: 26px; }
  .panel .num { position: static; margin-bottom: 4px; }
  .panel.activo { min-height: 230px; }
}

/* ---------- Cifras que cuentan (franja oscura) ---------- */
.cifras-franja { background: var(--texto); color: #fff; padding: 56px 0; }
.cifras { display: grid; grid-template-columns: repeat(3, 1fr); }
.cifra { padding: 0 24px; text-align: center; }
.cifra + .cifra { border-left: 1px solid rgba(255,255,255,.15); }
.cifra strong { display: block; font-family: var(--titulos); font-weight: 700; font-size: clamp(40px, 5vw, 64px); line-height: 1; letter-spacing: -0.03em; }
.cifra strong small { font-size: .55em; color: var(--rojo); margin-left: 2px; }
.cifra > span { display: block; color: #A9AAAE; font-size: 15px; margin-top: 10px; }
@media (max-width: 700px) {
  .cifras { grid-template-columns: 1fr; gap: 28px; }
  .cifra + .cifra { border-left: 0; border-top: 1px solid rgba(255,255,255,.15); padding-top: 28px; }
}

/* La línea de tiempo con 4 pasos */
.pasos-4 .linea-tiempo { --n: 4; }

/* ---------- Pólizas ---------- */
.polizas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.poliza {
  position: relative; display: flex; flex-direction: column; background: #fff; overflow: hidden;
  border: 1px solid var(--linea); border-radius: var(--radio); padding: clamp(28px, 3.5vw, 40px);
  transition: transform .35s, box-shadow .35s, border-color .35s;
}
.poliza:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(0, 0, 0, .10); border-color: var(--texto); }
.poliza-destacada { border: 2px solid var(--rojo); }
.poliza-destacada:hover { border-color: var(--rojo); }
.poliza-destacada::after {
  content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; pointer-events: none;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(215,25,63,.07) 50%, rgba(255,255,255,0) 100%);
  animation: brillo 5s ease-in-out infinite;
}
@keyframes brillo { 0%, 60% { left: -60%; } 100% { left: 130%; } }
.etiqueta {
  align-self: flex-start; font-family: var(--titulos); font-weight: 600; font-size: 13px;
  background: var(--rojo); color: #fff; padding: 5px 12px; border-radius: 999px; margin-bottom: 16px;
}
.etiqueta-gris { background: var(--gris-claro); color: var(--texto); }
.poliza h3 { font-size: clamp(26px, 2.6vw, 32px); font-weight: 700; }
.lista-check { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 10px; flex: 1; }
.lista-check li { position: relative; padding-left: 32px; opacity: 0; transform: translateX(-12px); transition: opacity .5s, transform .5s; }
.visible .lista-check li { opacity: 1; transform: none; }
.visible .lista-check li:nth-child(2) { transition-delay: .15s; }
.visible .lista-check li:nth-child(3) { transition-delay: .3s; }
.lista-check li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--rojo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14.5 7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.poliza .boton { margin-top: 26px; align-self: flex-start; }
@media (max-width: 860px) { .polizas { grid-template-columns: 1fr; } }

/* ---------- Herramientas: tarjetas que revelan el texto ---------- */
.herramientas-rejilla { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.herramienta {
  position: relative; overflow: hidden; padding: 26px; border-radius: var(--radio); isolation: isolate;
  background: #fff; border: 1px solid var(--linea);
  transition: border-color .4s, transform .4s, box-shadow .4s;
}
/* fondo oscuro que sube desde abajo al pasar el ratón */
.herramienta::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--texto);
  transform: translateY(101%); transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}
.herramienta:hover::before, .herramienta:focus::before { transform: none; }
.herramienta:hover, .herramienta:focus { border-color: var(--texto); transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0,0,0,.14); outline: none; }
.herramienta .icono-h {
  width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 22px;
  background: rgba(215, 25, 63, .08); color: var(--rojo); transition: background .4s, color .4s, transform .4s;
}
.herramienta:hover .icono-h, .herramienta:focus .icono-h { background: var(--rojo); color: #fff; transform: rotate(-10deg); }
.herramienta h3 { font-size: 21px; font-weight: 700; transition: color .4s; }
.herramienta p { font-size: 15px; line-height: 1.5; color: var(--texto-suave); margin-top: 6px; transition: color .4s; }
.herramienta:hover h3, .herramienta:focus h3 { color: #fff; }
.herramienta:hover p, .herramienta:focus p { color: rgba(255,255,255,.8); }
.nota-fuente { color: var(--texto-suave); font-size: 14px; margin-top: 18px; }
@media (max-width: 1000px) { .herramientas-rejilla { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .herramientas-rejilla { grid-template-columns: 1fr; } }

/* ---------- Equipo de riesgos: fichas como las del portal de agentes ---------- */
.equipo-riesgos { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.equipo-riesgos p { color: var(--texto-suave); margin-top: 16px; font-size: 17px; max-width: 440px; }
.equipo-riesgos .equipo-tarjeta { margin: 26px 0 0; }
.equipo-riesgos > * { min-width: 0; }
.personas { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.personas-3 { grid-template-columns: repeat(3, 1fr); gap: 12px; }
.personas-3 .persona-texto { padding-left: 12px; padding-right: 12px; }
.personas-3 .persona-texto strong { font-size: 17px; }
.persona { position: relative; overflow: hidden; border-radius: var(--radio); aspect-ratio: 3 / 4; cursor: default; }
.persona img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; transition: transform .8s ease; }
.persona-texto {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 20px 22px; text-align: center; color: #fff;
  background: rgba(29, 29, 31, .78); backdrop-filter: blur(2px);
  transition: background .45s, padding .45s;
}
.persona-texto strong { display: block; font-family: var(--titulos); font-size: 19px; }
.persona-texto .cargo { display: block; font-size: 14px; opacity: .85; margin-top: 2px; }
.persona-texto ul { list-style: none; margin: 0; padding: 0; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s, opacity .4s, margin .4s; }
.persona-texto li { font-size: 14px; padding: 3px 0; }
/* con ratón: se abre al pasar por encima */
@media (hover: hover) {
  .persona:hover img { transform: scale(1.06); }
  .persona:hover .persona-texto { background: rgba(215, 25, 63, .9); padding-top: 26px; padding-bottom: 28px; }
  .persona:hover ul { max-height: 120px; opacity: 1; margin-top: 12px; }
}
/* táctil en pantalla ancha: se abre al tocar, igual que con ratón */
@media (hover: none) and (min-width: 561px) {
  .persona.abierta img { transform: scale(1.06); }
  .persona.abierta .persona-texto { background: rgba(215, 25, 63, .9); padding-top: 26px; padding-bottom: 28px; }
  .persona.abierta ul { max-height: 120px; opacity: 1; margin-top: 12px; }
}
/* móvil: sin tocar, la cara y el nombre; al tocar, la ficha entera en rojo con todas las funciones centradas */
@media (max-width: 560px) {
  .persona-texto {
    top: 0; display: flex; flex-direction: column; justify-content: flex-end; isolation: isolate;
    padding: 12px 10px 14px; backdrop-filter: none;
    background: linear-gradient(180deg, rgba(0,0,0,0) 58%, rgba(0,0,0,.72) 100%);
  }
  .persona-texto::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: var(--rojo);
    opacity: 0; transition: opacity .4s;
  }
  .persona-texto strong { font-size: 15px; line-height: 1.25; }
  .persona-texto .cargo { display: none; }
  .persona-texto ul { transition: opacity .4s; }
  .persona-texto li { font-size: 13px; line-height: 1.3; padding: 0; }
  .persona.abierta .persona-texto { justify-content: center; gap: 10px; }
  .persona.abierta .persona-texto::before { opacity: 1; }
  .persona.abierta .cargo { display: block; font-size: 13px; line-height: 1.3; opacity: 1; margin: 0; }
  .persona.abierta ul { max-height: none; opacity: 1; margin: 0; display: grid; gap: 10px; }
  .persona.abierta img { transform: scale(1.06); }
}
@media (max-width: 860px) { .equipo-riesgos { grid-template-columns: 1fr; } }

/* ---------- Preguntas: título arriba y preguntas a dos columnas ---------- */
.preguntas h2 { margin-bottom: 28px; }
.acordeon { border-top: 1px solid var(--linea); display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px; align-items: start; }
.acordeon details { border-bottom: 1px solid var(--linea); }
.acordeon summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 17px 0; font-family: var(--titulos); font-weight: 600; font-size: 17px; transition: color .2s;
}
.acordeon summary::-webkit-details-marker { display: none; }
.acordeon summary:hover { color: var(--rojo); }
.acordeon summary::after {
  content: "+"; flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  border: 1.5px solid var(--linea); font-size: 18px; font-weight: 500; color: var(--rojo); transition: transform .3s, background .3s, color .3s;
}
.acordeon details[open] summary::after { transform: rotate(45deg); background: var(--rojo); border-color: var(--rojo); color: #fff; }
.acordeon details p { color: var(--texto-suave); padding: 0 48px 20px 0; font-size: 15.5px; }
.acordeon details[open] p { animation: sube .4s ease; }
@media (max-width: 860px) { .acordeon { grid-template-columns: 1fr; } }

/* ---------- Cierre propio: los tres informes en abanico ---------- */
.cierre-informes { padding: 24px 0 104px; }
.cierre-informes-caja {
  position: relative; overflow: hidden; isolation: isolate;
  display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center;
  background: var(--texto); color: #fff; border-radius: 22px;
  padding: clamp(40px, 5vw, 64px) clamp(28px, 5vw, 72px);
}
.cierre-informes-caja::before {
  content: ""; position: absolute; z-index: -1; right: -140px; top: -180px; width: 560px; height: 560px; border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 25, 63, .45) 0%, rgba(215, 25, 63, 0) 68%);
  animation: flota 8s ease-in-out infinite alternate;
}
.cierre-informes h2 { color: #fff; font-size: clamp(28px, 3.2vw, 42px); font-weight: 700; line-height: 1.1; }
.cierre-informes p { color: #B9BABE; font-size: 17px; margin-top: 16px; max-width: 460px; }
.cierre-informes .boton { margin-top: 28px; }
.informes { position: relative; height: 300px; }
.informe {
  position: absolute; left: 50%; top: 50%; width: 190px; height: 248px; margin: -124px 0 0 -95px;
  background: #fff; border-radius: 14px; padding: 18px; box-shadow: 0 24px 50px rgba(0, 0, 0, .35);
  transform: translateY(40px) scale(.9); opacity: 0;
  transition: transform .9s cubic-bezier(.2, .8, .2, 1), opacity .6s;
}
.informe:nth-child(2) { z-index: 1; }
.visible .informe { opacity: 1; transform: translateX(var(--x)) rotate(var(--giro)); }
.visible .informe:nth-child(1) { transition-delay: .25s; }
.visible .informe:nth-child(3) { transition-delay: .4s; }
.informes .informe:hover { z-index: 2; transform: translateX(var(--x)) translateY(-16px) rotate(0deg) scale(1.05); transition-delay: 0s; }
.informe-cab { display: flex; align-items: center; gap: 8px; font-family: var(--titulos); font-weight: 600; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.informe-cab i { width: 5px; height: 13px; background: var(--rojo); transform: skewX(-18deg); }
.indicador { width: 100%; margin: 20px 0 14px; overflow: visible; }
.indicador .arco, .indicador .arco-color { fill: none; stroke-width: 10; stroke-linecap: round; }
.indicador .arco { stroke: var(--linea); }
.indicador .arco-color { stroke: var(--rojo); stroke-dasharray: 158; stroke-dashoffset: 158; transition: stroke-dashoffset 1.4s .7s ease; }
.visible .indicador .arco-color { stroke-dashoffset: var(--relleno, 70); }
.indicador .aguja { stroke: var(--texto); stroke-width: 3; stroke-linecap: round; transform-box: view-box; transform-origin: 60px 60px; transform: rotate(-90deg); transition: transform 1.6s .7s cubic-bezier(.3, 1.4, .5, 1); }
.visible .indicador .aguja { transform: rotate(var(--aguja)); }
.indicador circle { fill: var(--texto); }
.informe .linea { display: block; height: 8px; border-radius: 4px; background: var(--gris-claro); margin-top: 10px; }
.informe .l1 { width: 92%; } .informe .l2 { width: 68%; } .informe .l3 { width: 80%; }
@media (max-width: 860px) {
  .cierre-informes-caja { grid-template-columns: 1fr; }
  .informes { height: 240px; }
  .informe { width: 150px; height: 200px; margin: -100px 0 0 -75px; padding: 14px; }
  .visible .informe { transform: translateX(calc(var(--x) * .6)) rotate(var(--giro)); }
  .informes .informe:hover { transform: translateX(calc(var(--x) * .6)) translateY(-10px); }
  .indicador { margin: 14px 0 8px; }
}

/* ---------- Comparador: aval bancario frente a seguro de caución ---------- */
.comparar { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.comparar-texto p { color: var(--texto-suave); font-size: 17px; margin-top: 14px; max-width: 420px; }
.comparador { background: #fff; border: 1px solid var(--linea); border-radius: 20px; padding: 26px; box-shadow: 0 24px 50px rgba(0, 0, 0, .07); }
.conmutador { position: relative; display: grid; grid-template-columns: 1fr 1fr; background: var(--gris-claro); border-radius: 999px; padding: 5px; }
.conmutador button {
  position: relative; z-index: 1; border: 0; background: none; cursor: pointer; padding: 12px 10px;
  font-family: var(--titulos); font-weight: 600; font-size: 15px; color: var(--texto-suave); transition: color .35s;
}
.conmutador button[aria-pressed="true"] { color: #fff; }
.conmutador .deslizador {
  position: absolute; top: 5px; bottom: 5px; left: 5px; width: calc(50% - 5px); border-radius: 999px;
  background: var(--texto); transition: transform .45s cubic-bezier(.2, .8, .2, 1), background .45s;
}
.comparador.caucion .deslizador { transform: translateX(100%); background: var(--rojo); }
.filas { list-style: none; margin: 18px 0 0; padding: 0; }
.filas li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px 4px; border-bottom: 1px solid var(--linea); }
.filas li:last-child { border-bottom: 0; }
.filas .valor {
  display: inline-flex; align-items: center; gap: 8px; font-family: var(--titulos); font-weight: 600; font-size: 15px; white-space: nowrap;
  color: var(--texto-suave);
}
.filas .valor::before {
  content: "✕"; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 12px;
  background: var(--gris-claro); color: var(--gris); transition: background .35s, color .35s, transform .45s;
}
.comparador.caucion .valor { color: var(--texto); }
.comparador.caucion .valor::before { content: "✓"; background: var(--rojo); color: #fff; transform: rotate(360deg); }
.filas .valor span { display: inline-block; transition: opacity .25s, transform .25s; }
.comparador.cambiando .valor span { opacity: 0; transform: translateY(6px); }
.filas li:nth-child(2) .valor::before { transition-delay: .06s; }
.filas li:nth-child(3) .valor::before { transition-delay: .12s; }
.filas li:nth-child(4) .valor::before { transition-delay: .18s; }
@media (max-width: 860px) { .comparar { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .conmutador button { font-size: 13px; padding: 11px 6px; } .comparador { padding: 18px; } }

/* ---------- Licitaciones: barras de las garantías ---------- */
.licitacion { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.garantia-barra { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 28px 30px; }
.garantia-barra .cuando { font-family: var(--titulos); font-weight: 600; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--rojo); }
.garantia-barra h3 { font-size: 24px; font-weight: 700; margin-top: 6px; }
.garantia-barra p { color: var(--texto-suave); margin-top: 6px; font-size: 15.5px; }
.barra-pct { position: relative; height: 12px; border-radius: 6px; background: var(--gris-claro); margin-top: 22px; overflow: hidden; }
.barra-pct i, .barra-pct b { position: absolute; top: 0; bottom: 0; left: 0; border-radius: 6px; width: 0; transition: width 1.4s cubic-bezier(.2, .8, .2, 1) .3s; }
.barra-pct i { background: var(--rojo); z-index: 1; }
.barra-pct b { background: rgba(215, 25, 63, .25); transition-delay: 1s; }
.visible .barra-pct i { width: var(--pct); }
.visible .barra-pct b { width: var(--hasta); }
.garantia-barra .ejemplo { display: inline-block; margin-top: 12px; padding: 5px 12px; border-radius: 999px; background: var(--gris-claro); color: var(--texto); font-size: 14px; font-weight: 600; }
.escala { display: flex; justify-content: space-between; font-size: 12px; color: var(--gris); margin-top: 8px; }
.cifra-grande { font-family: var(--titulos); font-weight: 700; font-size: 40px; line-height: 1; letter-spacing: -0.03em; margin-top: 18px; }
.cifra-grande small { font-size: 16px; font-weight: 600; color: var(--texto-suave); letter-spacing: 0; margin-left: 6px; }
.publicacion {
  display: flex; align-items: center; gap: 14px; margin-top: 18px; padding: 18px 22px; border-radius: var(--radio);
  background: var(--texto); color: #fff; font-size: 15.5px;
}
.publicacion strong { font-family: var(--titulos); }
.publicacion .icono-pub { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--rojo); }
@media (max-width: 860px) { .licitacion { grid-template-columns: 1fr; } }

/* Una sola persona en la sección del equipo */
.personas-una { grid-template-columns: minmax(0, 300px); }
/* con una sola persona, texto y ficha juntos y centrados, sin hueco en medio */
.equipo-uno { grid-template-columns: minmax(0, 500px) 300px; justify-content: center; gap: clamp(32px, 6vw, 96px); }
@media (max-width: 860px) { .equipo-uno { grid-template-columns: 1fr; } }

/* ---------- Cuenta que se libera (junto al comparador) ---------- */
.cuenta { margin-top: 30px; max-width: 440px; padding: 20px 22px; border-radius: var(--radio); background: var(--gris-claro); }
.cuenta-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; color: var(--texto-suave); }
.cuenta-estado { position: relative; font-family: var(--titulos); font-weight: 600; color: var(--texto); }
.cuenta-estado span { transition: opacity .35s; }
.cuenta-estado .con-caucion { position: absolute; right: 0; opacity: 0; color: var(--rojo); }
.comparar.caucion .cuenta-estado .con-aval { opacity: 0; }
.comparar.caucion .cuenta-estado .con-caucion { opacity: 1; }
.cuenta-barra { display: flex; height: 14px; border-radius: 7px; overflow: hidden; margin-top: 12px; background: #fff; }
.cuenta-barra i { display: block; height: 100%; transition: width .9s cubic-bezier(.2, .8, .2, 1); }
.cuenta-barra .libre { width: 55%; background: var(--texto); }
.cuenta-barra .bloqueada {
  width: 45%; background: repeating-linear-gradient(-45deg, #C9CACD 0 6px, #DEDFE1 6px 12px);
}
.comparar.caucion .cuenta-barra .libre { width: 100%; background: var(--rojo); }
.comparar.caucion .cuenta-barra .bloqueada { width: 0; }
.cuenta-leyenda { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: 13px; color: var(--texto-suave); }
.cuenta-leyenda span { display: inline-flex; align-items: center; gap: 6px; transition: opacity .4s; }
.punto { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.punto.libre { background: var(--texto); transition: background .6s; }
.comparar.caucion .punto.libre { background: var(--rojo); }
.punto.bloqueada { background: #C9CACD; }
.comparar.caucion .leyenda-bloqueada { opacity: .35; text-decoration: line-through; }

/* ---------- Factoring: la carrera del cobro (sin / con factoring) ---------- */
.carrera { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.carrera-texto p { color: var(--texto-suave); font-size: 17px; margin-top: 14px; max-width: 420px; }
.cobro { background: #fff; border: 1px solid var(--linea); border-radius: 20px; padding: 28px 30px 22px; box-shadow: 0 24px 50px rgba(0, 0, 0, .07); }
.cobro-fila + .cobro-fila { margin-top: 26px; }
.cobro-fila .etiqueta-fila { display: flex; justify-content: space-between; font-family: var(--titulos); font-weight: 600; font-size: 15px; }
.cobro-fila .cuando { color: var(--gris); font-weight: 600; opacity: 0; transition: opacity .4s; }
.pista { position: relative; height: 10px; border-radius: 5px; background: var(--gris-claro); margin-top: 12px; }
.pista .avance { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 5px; background: #C9CACD; }
.pista .ficha-cobro {
  position: absolute; top: 50%; left: 0; width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%;
  background: #fff; border: 3px solid #C9CACD; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: var(--gris);
}
.con-factoring .pista .avance { background: var(--rojo); }
.con-factoring .pista .ficha-cobro { border-color: var(--rojo); color: var(--rojo); }
/* al verse: sin factoring avanza despacio hasta el día 90; con factoring se cobra casi al momento */
.cobro.visible .sin-factoring .avance { animation: llega-lento 4.5s .4s cubic-bezier(.4, 0, .6, 1) forwards; }
.cobro.visible .sin-factoring .ficha-cobro { animation: ficha-lenta 4.5s .4s cubic-bezier(.4, 0, .6, 1) forwards; }
.cobro.visible .con-factoring .avance { animation: llega-rapido .7s .6s ease-out forwards; }
.cobro.visible .con-factoring .ficha-cobro { animation: ficha-rapida .7s .6s ease-out forwards, late 1.2s 1.4s ease-in-out 3; }
.cobro.visible .con-factoring .cuando { opacity: 1; transition-delay: 1.3s; color: var(--rojo); }
.cobro.visible .sin-factoring .cuando { opacity: 1; transition-delay: 4.9s; }
@keyframes llega-lento { to { width: 100%; } }
@keyframes ficha-lenta { to { left: 100%; } }
@keyframes llega-rapido { to { width: 6%; } }
@keyframes ficha-rapida { to { left: 6%; } }
@keyframes late { 50% { box-shadow: 0 0 0 10px rgba(215, 25, 63, .15); } }
.cobro-escala { display: flex; justify-content: space-between; margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--linea); font-size: 13px; color: var(--texto-suave); }
.cobro-escala strong { font-family: var(--titulos); color: var(--texto); }
@media (max-width: 860px) { .carrera { grid-template-columns: 1fr; } }

/* ---------- Cierre de factoring: la factura que se cobra ---------- */
.factura-escena { position: relative; height: 320px; display: grid; place-items: center; }
.factura {
  position: relative; width: 260px; background: #fff; border-radius: 14px; padding: 24px 22px 26px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .4); transform: rotate(3deg) translateY(30px); opacity: 0;
  transition: transform .9s cubic-bezier(.2, .8, .2, 1), opacity .6s;
}
.visible .factura { transform: rotate(3deg); opacity: 1; }
.factura .linea { display: block; height: 8px; border-radius: 4px; background: var(--gris-claro); margin-top: 10px; }
.factura .l2 { width: 65%; } .factura .l3 { width: 80%; }
.factura-plazo { margin-top: 22px; padding-top: 16px; border-top: 1px dashed var(--linea); display: flex; align-items: baseline; justify-content: space-between; }
.factura-plazo span { font-size: 13px; color: var(--gris); }
.factura-plazo strong { font-family: var(--titulos); font-size: 34px; line-height: 1; color: var(--texto); transition: color .4s; }
.factura-plazo strong small { font-size: 14px; color: var(--gris); margin-left: 4px; }
.factura .cobrada {
  position: absolute; top: -14px; right: -14px; padding: 9px 16px; border-radius: 999px; background: var(--rojo); color: #fff;
  font-family: var(--titulos); font-weight: 700; font-size: 14px; box-shadow: 0 10px 24px rgba(215, 25, 63, .4);
  opacity: 0; transform: scale(.4) rotate(-10deg); transition: opacity .3s, transform .5s cubic-bezier(.3, 1.6, .5, 1);
}
.factura.hecho .cobrada { opacity: 1; transform: rotate(6deg); }
.factura.hecho .factura-plazo strong { color: var(--rojo); }
.factura.hecho .factura-plazo strong small { display: none; }

/* ---------- Otros servicios: pestañas que pasan solas ---------- */
.pestanas { display: grid; grid-template-columns: 320px 1fr; gap: 18px; align-items: stretch; }
.pestanas-lista { display: flex; flex-direction: column; gap: 10px; }
.pestana {
  position: relative; overflow: hidden; text-align: left; cursor: pointer; display: flex; align-items: center; gap: 14px;
  background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 18px 20px;
  font-family: var(--titulos); font-weight: 600; font-size: 17px; color: var(--texto);
  transition: border-color .3s, transform .3s, box-shadow .3s;
}
.pestana .icono-p { flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(215, 25, 63, .08); color: var(--rojo); transition: background .3s, color .3s; }
.pestana:hover { border-color: var(--texto); }
.pestana[aria-selected="true"] { border-color: var(--rojo); box-shadow: 0 14px 30px rgba(0, 0, 0, .08); transform: translateX(6px); }
.pestana[aria-selected="true"] .icono-p { background: var(--rojo); color: #fff; }
.pestana .progreso { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--rojo); }
.pestanas:not(.parado) .pestana[aria-selected="true"] .progreso { animation: avanza 6s linear forwards; }
/* los paneles se apilan en la misma celda: la caja mide lo que el panel más alto, y nada se sale */
.pestanas-paneles { position: relative; display: grid; min-height: 340px; border-radius: 20px; overflow: hidden; background: var(--texto); color: #fff; isolation: isolate; }
.pestanas-paneles::before {
  content: ""; position: absolute; z-index: -1; right: -120px; bottom: -160px; width: 460px; height: 460px; border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 25, 63, .4) 0%, rgba(215, 25, 63, 0) 68%);
  animation: flota 8s ease-in-out infinite alternate;
}
.panel-servicio {
  grid-area: 1 / 1; position: relative; padding: clamp(32px, 4vw, 52px) clamp(28px, 4vw, 52px); display: flex; flex-direction: column; justify-content: center;
  opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity .5s, transform .5s;
}
.panel-servicio.activo { opacity: 1; transform: none; pointer-events: auto; transition-delay: .15s; }
.panel-servicio .de { font-family: var(--titulos); font-weight: 600; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #FF6A8A; }
.panel-servicio h3 { color: #fff; font-size: clamp(26px, 2.8vw, 34px); font-weight: 700; line-height: 1.15; margin-top: 10px; max-width: 480px; }
.panel-servicio > p { color: #B9BABE; margin-top: 12px; max-width: 520px; font-size: 16.5px; }
.panel-servicio .lista-check { flex: 0; margin-top: 22px; }
.panel-servicio .lista-check li { opacity: 1; transform: none; color: #fff; }
.panel-servicio.activo .lista-check li { animation: sube .5s ease both; }
.panel-servicio.activo .lista-check li:nth-child(2) { animation-delay: .1s; }
.panel-servicio.activo .lista-check li:nth-child(3) { animation-delay: .2s; }
.panel-servicio .panel-boton { align-self: flex-start; margin-top: 28px; }
.panel-servicio .icono-grande { position: absolute; right: clamp(24px, 4vw, 48px); top: clamp(24px, 4vw, 40px); color: rgba(255, 255, 255, .1); }
@media (max-width: 900px) {
  .pestanas { grid-template-columns: 1fr; }
  .pestanas-lista { flex-direction: row; overflow-x: auto; padding-bottom: 6px; }
  .pestana { flex: 0 0 auto; font-size: 15px; padding: 12px 16px; }
  .pestana[aria-selected="true"] { transform: none; }
  .pestanas-paneles { min-height: 0; }
  .panel-servicio .icono-grande { display: none; }
}

/* ---------- Cierre de otros servicios: el buscador de clientes ---------- */
.buscador-escena { position: relative; display: grid; place-items: center; min-height: 300px; }
.buscador {
  width: min(360px, 100%); background: #fff; border-radius: 16px; padding: 18px; color: var(--texto);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .4); opacity: 0; transform: translateY(30px); transition: transform .9s cubic-bezier(.2, .8, .2, 1), opacity .6s;
}
.visible .buscador { opacity: 1; transform: none; }
.caja-busqueda { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: var(--gris-claro); font-size: 15px; color: var(--texto); min-height: 46px; }
.caja-busqueda svg { flex-shrink: 0; color: var(--gris); }
.caja-busqueda .cursor { display: inline-block; width: 2px; height: 18px; background: var(--rojo); margin-left: 1px; vertical-align: middle; animation: parpadeo 1s steps(1) infinite; }
@keyframes parpadeo { 50% { opacity: 0; } }
.resultado { display: flex; align-items: center; gap: 12px; padding: 12px 6px; border-bottom: 1px solid var(--linea); opacity: 0; transform: translateX(-10px); transition: opacity .4s, transform .4s; }
.resultado:last-child { border-bottom: 0; }
.buscador.listo .resultado { opacity: 1; transform: none; }
.buscador.listo .resultado:nth-child(3) { transition-delay: .15s; }
.buscador.listo .resultado:nth-child(4) { transition-delay: .3s; }
.resultado b { font-family: var(--titulos); font-size: 14px; width: 70px; }
.resultado .riesgo { flex: 1; height: 8px; border-radius: 4px; background: var(--gris-claro); overflow: hidden; }
.resultado .riesgo i { display: block; height: 100%; width: 0; border-radius: 4px; background: var(--c, var(--rojo)); transition: width 1s .3s ease; }
.buscador.listo .resultado .riesgo i { width: var(--w); }
.resultado .semaforo { width: 12px; height: 12px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 4px color-mix(in srgb, var(--c) 20%, transparent); }

/* ---------- Quiénes somos: collage del equipo en la cabecera ---------- */
.collage { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; width: 100%; max-width: 430px; justify-self: end; padding-bottom: 36px; }
.collage figure { margin: 0; position: relative; overflow: hidden; border-radius: 18px; aspect-ratio: 1 / 1; box-shadow: 0 18px 40px rgba(0, 0, 0, .12); }
.collage figure:nth-child(even) { transform: translateY(36px); }
.collage img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; animation: acercar 14s ease-out forwards; }
.collage figcaption {
  position: absolute; left: 10px; bottom: 10px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .92);
  font-family: var(--titulos); font-weight: 600; font-size: 13px; color: var(--texto);
}
.collage figure { opacity: 0; animation: sube .8s ease forwards; }
.collage figure:nth-child(1) { animation-delay: .2s; } .collage figure:nth-child(2) { animation-delay: .35s; }
.collage figure:nth-child(3) { animation-delay: .5s; } .collage figure:nth-child(4) { animation-delay: .65s; }
.collage figure:nth-child(even) { animation-name: sube-desplazada; }
@keyframes sube-desplazada { from { opacity: 0; transform: translateY(56px); } to { opacity: 1; transform: translateY(36px); } }
@media (max-width: 900px) { .collage { grid-template-columns: repeat(4, 1fr); gap: 8px; max-width: none; padding-bottom: 0; } .collage figure:nth-child(even) { animation-name: sube; } .collage figcaption { display: none; } }

/* Historia: los nodos de la línea de tiempo llevan el año */
.nodo-ano { width: 76px; height: 76px; font-family: var(--titulos); font-weight: 700; font-size: 17px; }
.historia .linea-tiempo::before, .historia .linea-tiempo::after { top: 37px; }
@media (max-width: 760px) {
  .historia .paso { padding-left: 96px; min-height: 76px; }
  .historia .linea-tiempo::before, .historia .linea-tiempo::after { top: 38px; left: 37px; height: calc(100% - 76px); }
}

/* Cuatro fichas del equipo */
.personas-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .personas-4 { grid-template-columns: repeat(2, 1fr); } }

/* ---------- La oficina ---------- */
.oficina { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.oficina-dato {
  position: relative; overflow: hidden; background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 28px 30px;
  transition: border-color .3s, transform .3s, box-shadow .3s;
}
.oficina-dato:hover { border-color: var(--texto); transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0, 0, 0, .08); }
.oficina-dato .icono {
  width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 18px;
  background: rgba(215, 25, 63, .08); color: var(--rojo); transition: background .3s, color .3s, transform .3s;
}
.oficina-dato:hover .icono { background: var(--rojo); color: #fff; transform: rotate(-10deg); }
.oficina-dato h3 { font-size: 20px; font-weight: 700; }
.oficina-dato p { color: var(--texto-suave); margin-top: 6px; }
.oficina-dato a { color: var(--rojo); font-weight: 600; text-decoration: none; display: inline-block; margin-top: 12px; }
.oficina-dato a:hover { text-decoration: underline; }
.oficina-dato .horario { list-style: none; padding: 0; margin: 8px 0 0; color: var(--texto-suave); }
.oficina-dato .horario b { color: var(--texto); font-weight: 600; display: inline-block; width: 92px; }
/* el pin que late */
.pin { position: absolute; right: 28px; top: 26px; width: 14px; height: 14px; border-radius: 50%; background: var(--rojo); }
.pin::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--rojo); animation: onda 2s ease-out infinite; }
@keyframes onda { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.8); opacity: 0; } }
@media (max-width: 760px) { .oficina { grid-template-columns: 1fr; } }

/* ---------- Cierre de Quiénes somos: la agenda con un hueco que se reserva ---------- */
.agenda {
  width: min(330px, 100%); background: #fff; border-radius: 16px; padding: 20px; color: var(--texto);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .4); opacity: 0; transform: translateY(30px) rotate(-2deg);
  transition: transform .9s cubic-bezier(.2, .8, .2, 1), opacity .6s;
}
.visible .agenda { opacity: 1; transform: rotate(-2deg); }
.agenda-cab { display: flex; justify-content: space-between; align-items: center; font-family: var(--titulos); font-weight: 600; font-size: 14px; }
.agenda-cab span { color: var(--gris); font-weight: 500; font-size: 13px; }
.agenda-dias { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 14px; text-align: center; font-size: 12px; color: var(--gris); font-weight: 600; }
.agenda-huecos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 6px; }
.agenda-huecos i { height: 30px; border-radius: 7px; background: var(--gris-claro); transition: background .4s, transform .4s; }
.agenda-huecos i.ocupado { background: repeating-linear-gradient(-45deg, #E4E4E7 0 5px, #EFEFF1 5px 10px); }
.agenda-huecos i.elegido { background: var(--rojo); transform: scale(1.08); box-shadow: 0 6px 16px rgba(215, 25, 63, .4); }
.agenda-confirma {
  display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 12px 14px; border-radius: 10px; background: rgba(215, 25, 63, .08);
  font-family: var(--titulos); font-weight: 600; font-size: 14px; color: var(--rojo);
  opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s;
}
.agenda.lista .agenda-confirma { opacity: 1; transform: none; }

/* ---------- Contacto ---------- */
.contacto-cabecera { padding: 44px 0 36px; background: linear-gradient(180deg, #fff 0%, var(--gris-claro) 100%); position: relative; overflow: hidden; }
.contacto-cabecera::before {
  content: ""; position: absolute; right: -120px; top: -180px; width: 480px; height: 480px; border-radius: 50%;
  background: radial-gradient(circle, rgba(215, 25, 63, .10) 0%, rgba(215, 25, 63, 0) 70%); animation: flota 9s ease-in-out infinite alternate;
}
.contacto-cabecera h1 { font-size: clamp(36px, 4.6vw, 58px); font-weight: 700; line-height: 1.05; position: relative; }
.contacto-cabecera h1 em { font-style: normal; color: var(--rojo); }
.contacto-cabecera p { color: var(--texto-suave); font-size: clamp(17px, 1.5vw, 19px); margin-top: 14px; max-width: 820px; position: relative; }

/* Arriba los dos botones grandes, uno al lado del otro; debajo, los cuatro canales en fila */
.contacto { display: grid; gap: 18px; padding-top: 36px; padding-bottom: 72px; }
/* el formulario: lo principal */
.caja-oferta { background: #fff; border: 2px solid var(--rojo); border-radius: 22px; padding: clamp(24px, 3vw, 36px); box-shadow: 0 24px 50px rgba(0, 0, 0, .07); scroll-margin-top: 100px; }
.caja-oferta .etiqueta { display: inline-block; }
.caja-oferta h2 { font-size: clamp(26px, 2.8vw, 34px); font-weight: 700; }
.ventajas-oferta { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; padding: 0; list-style: none; }
.ventajas-oferta li {
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border-radius: 999px; background: var(--gris-claro);
  font-family: var(--titulos); font-weight: 600; font-size: 13.5px;
  opacity: 0; transform: translateY(8px); animation: sube .5s ease forwards;
}
.ventajas-oferta li:nth-child(1) { animation-delay: .5s; } .ventajas-oferta li:nth-child(2) { animation-delay: .65s; } .ventajas-oferta li:nth-child(3) { animation-delay: .8s; }
.ventajas-oferta li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--rojo); }

/* los canales: grandes, visuales y de un toque */
.canales { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.canales .canal { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px; }
.canales .canal .ir { position: absolute; top: 22px; right: 22px; }
.canales-titulo { grid-column: 1 / -1; }
.canal {
  position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; gap: 16px;
  padding: 18px 20px; border-radius: 18px; background: #fff; border: 1px solid var(--linea); text-decoration: none; color: var(--texto);
  transition: transform .3s, box-shadow .3s, border-color .3s, color .3s;
}
.canal::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--c); transform: translateX(-101%); transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
.canal:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0, 0, 0, .10); border-color: var(--c); color: #fff; }
.canal:hover::before { transform: none; }
.canal-icono {
  flex-shrink: 0; width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center;
  background: var(--c); color: #fff; transition: background .3s, color .3s, transform .4s;
}
.canal:hover .canal-icono { background: #fff; color: var(--c); transform: rotate(-8deg) scale(1.05); }
.canal strong { display: block; font-family: var(--titulos); font-size: 17px; }
.canal span.dato { display: block; font-size: 15px; color: var(--texto-suave); transition: color .3s; }
.canal:hover span.dato { color: rgba(255, 255, 255, .85); }
.canal .ir { margin-left: auto; font-size: 20px; transition: transform .3s; }
.canal:hover .ir { transform: translateX(4px); }
.canal-whatsapp { --c: #25D366; }
.canal-telefono { --c: #1D1D1F; }
.canal-telefono .canal-icono { background: linear-gradient(180deg, #3A3A3C 0%, #000 100%); }
.canal-email { --c: #EA4335; }
.canal-visita { --c: #1A73E8; }
/* Gmail y Google Maps: el logo en color sobre fondo blanco */
.canal-icono.icono-logo, .canal:hover .canal-icono.icono-logo { background: #fff; border: 1px solid var(--linea); }

/* ---------- Testimonios ---------- */
.testimonios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.testimonio {
  position: relative; display: flex; flex-direction: column; padding: 30px 28px 26px; border-radius: 20px;
  background: #fff; border: 1px solid var(--linea); transition: transform .35s, box-shadow .35s, border-color .35s;
}
.testimonio:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(0, 0, 0, .10); border-color: var(--rojo); }
.testimonio .comillas { font-family: Georgia, serif; font-size: 72px; line-height: .6; color: var(--rojo); height: 34px; transition: transform .4s; }
.testimonio:hover .comillas { transform: scale(1.15) rotate(-6deg); }
.testimonio blockquote { margin: 14px 0 0; font-size: 17px; line-height: 1.6; color: var(--texto); flex: 1; }
.testimonio .autor { display: flex; align-items: center; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--linea); }
.testimonio .inicial { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--texto); color: #fff; font-family: var(--titulos); font-weight: 700; }
.testimonio .autor strong { display: block; font-family: var(--titulos); font-size: 15px; }
.testimonio .autor span { display: block; font-size: 13px; color: var(--texto-suave); }
@media (max-width: 900px) { .testimonios { grid-template-columns: 1fr; } }

/* Los dos botones grandes de Contacto */
.acciones-contacto { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cta-grande {
  position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; gap: 18px; width: 100%;
  padding: 26px 26px; border-radius: 20px; border: 0; cursor: pointer; text-align: left; color: #fff; font-family: var(--cuerpo);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .14); transition: transform .3s, box-shadow .3s;
}
.cta-oferta { background: linear-gradient(120deg, var(--rojo) 0%, #A80E2E 100%); }
.cta-reunion { background: var(--texto); }
/* brillo que cruza el botón al pasar el ratón */
.cta-grande::after {
  content: ""; position: absolute; z-index: -1; top: 0; left: -60%; width: 45%; height: 100%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-18deg); transition: left .7s ease;
}
.cta-grande:hover { transform: translateY(-4px); box-shadow: 0 24px 50px rgba(0, 0, 0, .2); }
.cta-grande:hover::after { left: 130%; }
.cta-icono { flex-shrink: 0; width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; background: rgba(255, 255, 255, .14); transition: transform .4s, background .4s; }
.cta-grande:hover .cta-icono { background: #fff; color: var(--rojo); transform: rotate(-8deg); }
.cta-reunion:hover .cta-icono { color: var(--texto); }
.cta-texto strong { display: block; font-family: var(--titulos); font-size: clamp(21px, 2.2vw, 26px); font-weight: 700; line-height: 1.15; }
.cta-texto small { display: block; font-size: 14.5px; opacity: .85; margin-top: 6px; }
.cta-flecha { margin-left: auto; font-size: 26px; transition: transform .3s; }
.cta-grande:hover .cta-flecha { transform: translateX(6px); }
@media (max-width: 560px) { .cta-grande { padding: 20px; gap: 14px; } .cta-icono { width: 50px; height: 50px; } .cta-flecha { display: none; } }
.canal .horario-corto { display: block; font-size: 13px; color: var(--gris); margin-top: 2px; transition: color .3s; }
.canal:hover .horario-corto { color: rgba(255, 255, 255, .75); }
.canales .pendiente { margin-left: 4px; }
.canales-titulo { font-family: var(--titulos); font-weight: 600; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); margin: 4px 0 2px; }

/* el mapa de Google, abajo */
.mapa { position: relative; height: 420px; border-top: 1px solid var(--linea); }
.mapa iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.25); }
.mapa-ficha {
  position: absolute; right: max(var(--margen), calc((100% - var(--ancho)) / 2 + var(--margen))); bottom: 32px;
  background: #fff; border-radius: 16px; padding: 20px 22px; box-shadow: 0 18px 44px rgba(0, 0, 0, .18); max-width: 300px;
}
.mapa-ficha strong { font-family: var(--titulos); font-size: 17px; display: block; }
.mapa-ficha p { color: var(--texto-suave); font-size: 15px; margin-top: 4px; }
.mapa-ficha a { display: inline-block; margin-top: 10px; color: var(--rojo); font-weight: 600; text-decoration: none; }
@media (max-width: 900px) {
  .acciones-contacto { grid-template-columns: 1fr; }
  .canales { grid-template-columns: 1fr 1fr; }
  .canales .canal { gap: 10px; padding: 16px; }
  .canal .ir, .canal .horario-corto { display: none; }
  .canal strong { font-size: 15px; }
  .canal span.dato { font-size: 13px; word-break: break-word; }
  .canales-titulo { grid-column: 1 / -1; }
  .mapa { height: auto; }
  .mapa iframe { height: 300px; }
  .mapa-ficha { position: static; max-width: none; border-radius: 0; box-shadow: none; border-bottom: 1px solid var(--linea); }
}

/* ---------- Área de clientes ---------- */
/* ocho accesos en dos filas de cuatro; cada tarjeta dice de qué compañía es */
.accesos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.accesos .acceso { min-height: 220px; padding: 24px; }
.accesos .acceso h2 { font-size: 20px; }
.accesos .acceso p { font-size: 14.5px; }
.acceso .de-quien {
  position: absolute; top: 26px; right: 22px; font-family: var(--titulos); font-weight: 600; font-size: 11px;
  letter-spacing: .05em; text-transform: uppercase; color: var(--gris); transition: color .4s;
}
.acceso:hover .de-quien { color: rgba(255, 255, 255, .8); }
@media (max-width: 1000px) { .accesos { grid-template-columns: 1fr 1fr; } }
.grupo-accesos { display: flex; align-items: center; min-height: 30px; margin: 34px 0 14px; font-family: var(--titulos); font-weight: 700; font-size: 18px; }
.grupo-accesos:first-child { margin-top: 0; }
.grupo-accesos img { height: 26px; width: auto; }
.acceso {
  position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; min-height: 230px;
  padding: 28px; border-radius: 20px; background: #fff; border: 1px solid var(--linea); text-decoration: none; color: var(--texto);
  transition: transform .35s, box-shadow .35s, border-color .35s;
}
.acceso::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(140deg, var(--rojo) 0%, #8E0B27 100%);
  transform: translateY(101%); transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}
.acceso:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(0, 0, 0, .14); border-color: var(--rojo); color: #fff; }
.acceso:hover::before { transform: none; }
.acceso .icono-a { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: rgba(215, 25, 63, .08); color: var(--rojo); transition: background .4s, color .4s, transform .4s; }
.acceso:hover .icono-a { background: #fff; transform: rotate(-10deg); }
.acceso h2 { font-size: 23px; font-weight: 700; margin-top: 22px; transition: color .4s; }
.acceso p { color: var(--texto-suave); margin-top: 6px; flex: 1; transition: color .4s; }
.acceso:hover h2 { color: #fff; }
.acceso:hover p { color: rgba(255, 255, 255, .85); }
.acceso .entrar { margin-top: 20px; font-family: var(--titulos); font-weight: 600; font-size: 15px; display: inline-flex; gap: 8px; align-items: center; }
.acceso .entrar span { transition: transform .3s; }
.acceso:hover .entrar span { transform: translate(3px, -3px); }
.ayuda-clientes {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px;
  padding: 22px 26px; border-radius: 18px; background: var(--texto); color: #fff;
}
.ayuda-clientes p { color: #B9BABE; }
.ayuda-clientes strong { color: #fff; font-family: var(--titulos); }
.ayuda-clientes .botones-ayuda { display: flex; gap: 10px; flex-wrap: wrap; }
.boton-whatsapp { background: #25D366; color: #fff; }
.boton-whatsapp:hover { background: #1DB954; }
.boton-claro { background: #fff; color: var(--texto); }
.boton-claro:hover { background: var(--rojo); color: #fff; }
@media (max-width: 480px) { .accesos { grid-template-columns: 1fr; } .accesos .acceso { min-height: 0; } }

/* ---------- Cierre propio de caución: el certificado que se sella ---------- */
.certificado-escena { position: relative; height: 320px; display: grid; place-items: center; }
.certificado {
  position: relative; width: 250px; height: 300px; background: #fff; border-radius: 14px; padding: 24px 22px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, .4); transform: rotate(-4deg) translateY(30px); opacity: 0;
  transition: transform .9s cubic-bezier(.2, .8, .2, 1), opacity .6s;
}
.visible .certificado { transform: rotate(-4deg); opacity: 1; animation: golpe .35s 1.6s ease; }
@keyframes golpe { 50% { transform: rotate(-4deg) translateY(4px) scale(.985); } }
.certificado-cab { display: flex; align-items: center; gap: 8px; font-family: var(--titulos); font-weight: 600; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); }
.certificado-cab i { width: 5px; height: 13px; background: var(--rojo); transform: skewX(-18deg); }
.certificado h4 { font-family: var(--titulos); font-size: 17px; line-height: 1.2; margin: 14px 0 16px; color: var(--texto); }
.certificado .linea { display: block; height: 8px; border-radius: 4px; background: var(--gris-claro); margin-top: 10px; transform-origin: left; transform: scaleX(0); transition: transform .6s ease; }
.visible .certificado .linea { transform: scaleX(1); }
.visible .certificado .l1 { transition-delay: .5s; } .visible .certificado .l2 { transition-delay: .6s; }
.visible .certificado .l3 { transition-delay: .7s; } .visible .certificado .l4 { transition-delay: .8s; }
.certificado .l2 { width: 70%; } .certificado .l3 { width: 85%; } .certificado .l4 { width: 55%; }
.certificado .firma { position: absolute; left: 22px; bottom: 30px; width: 90px; height: 2px; background: var(--linea); }
.sello {
  position: absolute; right: 18px; bottom: 18px; width: 96px; height: 96px; border-radius: 50%;
  border: 3px solid var(--rojo); color: var(--rojo); display: grid; place-items: center; text-align: center;
  font-family: var(--titulos); font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2;
  opacity: 0; transform: scale(2.4) rotate(-30deg);
}
.sello::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; border: 1.5px dashed rgba(215, 25, 63, .6); }
.visible .sello { animation: sellar .5s 1.3s cubic-bezier(.3, 1.5, .5, 1) forwards; }
@keyframes sellar { to { opacity: .92; transform: scale(1) rotate(-14deg); } }

/* Mapa en reposo: Google Maps solo se carga al pedirlo (o si ya se aceptaron sus cookies) */
.mapa-reposo {
  position: absolute; inset: 0; display: grid; place-items: center;
  background-color: #ECECEE;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.9) 0 10px, transparent 10px),
    linear-gradient(rgba(255,255,255,.9) 0 10px, transparent 10px),
    linear-gradient(35deg, transparent 47%, rgba(255,255,255,.95) 47% 53%, transparent 53%);
  background-size: 140px 140px, 140px 140px, 100% 100%;
}
.mapa-reposo .boton-blanco { background: #fff; color: var(--texto); box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.mapa-reposo .boton-blanco:hover { background: var(--texto); color: #fff; }
.mapa.cargado .mapa-reposo { display: none; }
@media (max-width: 900px) { .mapa-reposo { position: relative; height: 300px; } }

/* ---------- Calculadora: ¿cuánto te cuesta un impagado? ---------- */
.calculadora {
  display: grid; grid-template-columns: 1fr 1fr; border-radius: 22px; overflow: hidden;
  border: 1px solid var(--linea); box-shadow: 0 24px 60px rgba(0,0,0,.06); background: #fff;
}
.calc-entradas { padding: clamp(28px, 4vw, 52px); }
.calc-entradas .antetitulo { font-family: var(--titulos); font-weight: 600; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--rojo); }
.calc-entradas h2 { font-size: clamp(28px, 3vw, 40px); font-weight: 700; line-height: 1.1; margin-top: 8px; }
.calc-entradas > p { color: var(--texto-suave); margin-top: 10px; }
.calc-campo { display: block; margin-top: 30px; }
.calc-campo > span { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-weight: 600; font-size: 15px; }
.calc-campo output { font-family: var(--titulos); font-weight: 700; font-size: 22px; color: var(--texto); }
.calc-campo input[type=range] {
  -webkit-appearance: none; appearance: none; width: 100%; height: 6px; margin-top: 14px; border-radius: 3px; cursor: pointer;
  background: linear-gradient(90deg, var(--rojo) var(--lleno, 50%), var(--gris-claro) var(--lleno, 50%));
}
.calc-campo input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 2px solid var(--rojo);
  box-shadow: 0 4px 12px rgba(215,25,63,.3); transition: transform .2s;
}
.calc-campo input[type=range]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--rojo); }
.calc-campo input[type=range]:active::-webkit-slider-thumb { transform: scale(1.15); }
.calc-resultado { background: var(--texto); color: #fff; padding: clamp(28px, 4vw, 52px); display: flex; flex-direction: column; justify-content: center; }
.calc-resultado p { color: #C9CACD; font-size: 17px; }
.calc-cifra { display: block; font-family: var(--titulos); font-weight: 700; font-size: clamp(44px, 5.4vw, 72px); line-height: 1; letter-spacing: -0.03em; margin: 10px 0 8px; font-variant-numeric: tabular-nums; }
.calc-veces { color: #fff; font-weight: 600; }
.calc-cuadros { display: grid; grid-template-columns: repeat(20, 1fr); gap: 4px; margin: 26px 0 28px; max-width: 360px; }
.calc-cuadros i { aspect-ratio: 1; border-radius: 3px; background: rgba(255,255,255,.16); animation: cuadro-entra .35s ease both; }
.calc-cuadros i:first-child { background: var(--rojo); }
@keyframes cuadro-entra { from { opacity: 0; transform: scale(.4); } }
.calc-leyenda { display: flex; gap: 18px; font-size: 13px; color: #A9AAAE; margin: -14px 0 26px; }
.calc-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.calc-leyenda i { width: 10px; height: 10px; border-radius: 2px; background: rgba(255,255,255,.3); }
.calc-leyenda span:first-child i { background: var(--rojo); }
.calc-resultado .boton { align-self: flex-start; background: var(--rojo); color: #fff; }
.calc-resultado .boton:hover { background: #fff; color: var(--rojo); }
.calc-nota { font-size: 13px !important; color: #8E8F93 !important; margin-top: 16px; }
@media (max-width: 860px) { .calculadora { grid-template-columns: 1fr; } }

/* ---------- Página de gracias ---------- */
.gracias-cabecera .oferta-check { margin: 0 0 18px; }
.gracias-rejilla { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: start; }
.calendly-marco { min-height: 680px; border: 1px solid var(--linea); border-radius: 18px; overflow: hidden; background: #fff; }
.calendly-marco.cargado { border: 0; border-radius: 0; height: 720px; position: relative; }
.calendly-marco.cargado iframe { width: 100%; height: 100%; border: 0; }
@media (max-width: 760px) { .calendly-marco.cargado { height: 1000px; } }
.calendly-reposo { min-height: 680px; display: grid; place-content: center; justify-items: center; gap: 18px; text-align: center; padding: 32px;
  background: linear-gradient(180deg, #fff 0%, var(--gris-claro) 100%); }
.calendly-reposo .agenda-icono { width: 72px; height: 72px; border-radius: 20px; display: grid; place-items: center; background: #fff; color: var(--rojo); box-shadow: 0 12px 30px rgba(0,0,0,.08); }
.calendly-reposo p { color: var(--texto-suave); max-width: 360px; }
.gracias-pasos { position: sticky; top: 100px; background: var(--gris-claro); border-radius: 18px; padding: 28px; }
.gracias-pasos h2 { font-size: 22px; font-weight: 700; }
.gracias-pasos ol { list-style: none; counter-reset: paso; margin: 18px 0 0; padding: 0; display: grid; gap: 16px; }
.gracias-pasos li { counter-increment: paso; display: grid; grid-template-columns: 32px 1fr; gap: 12px; color: var(--texto-suave); font-size: 15px; line-height: 1.5; }
.gracias-pasos li::before { content: counter(paso); width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--linea); font-family: var(--titulos); font-weight: 700; color: var(--texto); }
.gracias-pasos li strong { display: block; color: var(--texto); font-family: var(--titulos); }
.gracias-confirmada { display: none; margin-top: 20px; padding: 12px 14px; border-radius: 10px; background: #E8F7EE; color: #17663A; font-weight: 600; font-size: 15px; }
.gracias.reservada .gracias-confirmada { display: block; }
.gracias.reservada .gracias-pasos li:first-child::before { content: "✓"; background: var(--rojo); border-color: var(--rojo); color: #fff; }
.gracias-otro { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--linea); font-size: 15px; color: var(--texto-suave); }
.gracias-otro a { color: var(--rojo); font-weight: 600; }
@media (max-width: 900px) { .gracias-rejilla { grid-template-columns: 1fr; } .gracias-pasos { position: static; } }

/* ---------- Guías ---------- */
.guias { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.guia { display: flex; flex-direction: column; text-decoration: none; border: 1px solid var(--linea); border-radius: 16px; overflow: hidden; background: #fff; transition: transform .3s, box-shadow .3s, border-color .3s; }
.guia:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.08); border-color: transparent; }
.guia img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.guia-texto { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.guia-tema { font-family: var(--titulos); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--rojo); }
.guia h3 { font-size: 19px; font-weight: 700; line-height: 1.3; }
.guia p { color: var(--texto-suave); font-size: 15px; }
.guia .mas { margin-top: auto; padding-top: 8px; font-family: var(--titulos); font-weight: 600; font-size: 14px; }
.guias-vacio { grid-column: 1 / -1; text-align: center; padding: 56px 24px; border: 1px dashed var(--linea); border-radius: 16px; color: var(--texto-suave); }
@media (max-width: 900px) { .guias { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .guias { grid-template-columns: 1fr; } }

/* Una guía */
.articulo-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 16px; color: var(--texto-suave); font-size: 14px; position: relative; }
.articulo-rejilla { display: grid; grid-template-columns: minmax(0, 720px) 1fr; gap: 56px; align-items: start; }
.articulo { font-size: 17px; line-height: 1.75; }
.articulo h2 { font-size: 26px; font-weight: 700; margin: 40px 0 12px; line-height: 1.2; }
.articulo h3 { font-size: 20px; font-weight: 700; margin: 28px 0 8px; }
.articulo p + p, .articulo ul + p, .articulo p + ul { margin-top: 16px; }
.articulo ul, .articulo ol { padding-left: 22px; }
.articulo li + li { margin-top: 6px; }
.articulo a { color: var(--rojo); font-weight: 600; }
.articulo blockquote { margin: 28px 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--rojo); font-family: var(--titulos); font-weight: 600; font-size: 21px; line-height: 1.4; }
.articulo-claves { background: var(--gris-claro); border-radius: 14px; padding: 22px 24px; margin-bottom: 32px; }
.articulo-claves strong { font-family: var(--titulos); }
.articulo-lateral { position: sticky; top: 100px; border-radius: 18px; padding: 28px; background: linear-gradient(140deg, var(--rojo), #A80E2E); color: #fff; }
.articulo-lateral h2 { color: #fff; font-size: 22px; font-weight: 700; line-height: 1.2; }
.articulo-lateral p { color: rgba(255,255,255,.9); margin-top: 10px; font-size: 15px; }
.articulo-lateral .boton { margin-top: 20px; background: #fff; color: var(--rojo); }
.articulo-lateral .boton:hover { background: var(--texto); color: #fff; }
@media (max-width: 960px) { .articulo-rejilla { grid-template-columns: 1fr; } .articulo-lateral { position: static; } }

/* ---------- Página no encontrada ---------- */
.error-404 { min-height: 60vh; display: grid; align-content: center; }
.error-404 .numero { font-family: var(--titulos); font-weight: 700; font-size: clamp(90px, 14vw, 180px); line-height: 1; letter-spacing: -0.05em; color: var(--rojo); position: relative; }
.error-404 .botones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; position: relative; }
.error-404 .en-catalan { margin-top: 28px; font-size: 15px; color: var(--texto-suave); position: relative; }
.error-404 .en-catalan a { color: var(--rojo); font-weight: 600; }

/* La calculadora ya tiene su propio aire (tarjeta con sombra): menos espacio hasta la sección siguiente */
.calculadora-seccion { padding-bottom: 40px; }

/* ---------- Pólizas: resumen en Seguro de crédito ---------- */
/* Texto y botones a un lado; al otro, un panel oscuro con las pólizas desfilando en dos filas (en sentidos opuestos) */
.polizas-resumen {
  display: grid; grid-template-columns: 1fr 1.15fr; grid-template-areas: "texto panel" "botones panel";
  column-gap: 56px; row-gap: 26px; align-items: end;
}
.polizas-texto { grid-area: texto; }
.polizas-botones { grid-area: botones; align-self: start; display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.polizas-panel { grid-area: panel; align-self: center; }
.polizas-resumen h2 { font-size: clamp(28px, 3vw, 40px); font-weight: 700; line-height: 1.1; }
.polizas-resumen p { color: var(--texto-suave); font-size: 17px; margin-top: 14px; max-width: 480px; }
/* Start Plus, la más económica: destacada debajo del texto (repaso con Armando, 27/10) */
.polizas-resumen .polizas-start-plus { margin-top: 20px; padding: 14px 18px; border-left: 4px solid var(--rojo); border-radius: 0 12px 12px 0; background: rgba(215,25,63,.06); color: var(--texto); font-size: 15px; line-height: 1.5; }
.polizas-start-plus a { color: var(--rojo); font-weight: 700; text-decoration: none; }
.polizas-start-plus a:hover { text-decoration: underline; }
/* Botón del formulario corto de Start Plus (27/10/2026) */
.enlace-oferta { display: inline-flex; align-items: center; gap: 6px; margin-left: 4px; padding: 0; border: 0; background: none; cursor: pointer; font-family: var(--titulos); font-weight: 700; font-size: 15px; color: var(--rojo); }
.enlace-oferta .flecha { transition: transform .25s; }
.enlace-oferta:hover .flecha { transform: translateX(4px); }
.poliza-ficha-boton { align-self: flex-start; margin-top: 22px; padding: 12px 22px; font-size: 14px; }
.enlace-flecha { display: inline-flex; align-items: center; gap: 8px; font-family: var(--titulos); font-weight: 600; font-size: 15px; color: var(--texto); text-decoration: none; }
.enlace-flecha span { transition: transform .25s; color: var(--rojo); }
.enlace-flecha:hover { color: var(--rojo); }
.enlace-flecha:hover span { transform: translateX(4px); }

.polizas-panel {
  position: relative; overflow: hidden; isolation: isolate; border-radius: 22px; padding: 24px 0 26px;
  background: var(--texto); color: #fff; box-shadow: 0 30px 70px rgba(0,0,0,.18);
}
.polizas-panel::before {
  content: ""; position: absolute; z-index: -1; width: 420px; height: 420px; right: -140px; top: -180px; border-radius: 50%;
  background: radial-gradient(circle, rgba(215,25,63,.42), transparent 66%);
}
.polizas-panel-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 26px 18px; font-family: var(--titulos); font-weight: 600; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #A9AAAE; }
.polizas-mas { color: #fff; letter-spacing: 0; text-transform: none; font-size: 13px; padding: 6px 12px; border-radius: 999px; background: var(--rojo); }
.polizas-fila { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); } /* entran y salen fundidas */
.polizas-fila + .polizas-fila { margin-top: 12px; }
.polizas-pista { display: flex; width: max-content; animation: desfile 32s linear infinite; }
.polizas-fila.al-reves .polizas-pista { animation-direction: reverse; animation-duration: 28s; }
.polizas-panel:hover .polizas-pista { animation-play-state: paused; }
.polizas-copia { display: flex; }
@keyframes desfile { to { transform: translateX(-50%); } }
.polizas-pista a {
  display: flex; flex-direction: column; gap: 3px; margin-right: 12px; padding: 16px 22px; min-width: 168px; border-radius: 16px; text-decoration: none; color: #fff;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); transition: background .25s, border-color .25s, transform .25s;
}
.polizas-pista a strong { font-family: var(--titulos); font-size: 21px; line-height: 1.15; letter-spacing: -0.01em; }
.polizas-pista a small { font-size: 13px; color: #A9AAAE; white-space: nowrap; }
.polizas-pista a:hover { background: rgba(215,25,63,.22); border-color: rgba(215,25,63,.7); transform: translateY(-3px); }
@media (max-width: 900px) {
  .polizas-resumen { grid-template-columns: 1fr; grid-template-areas: "texto" "panel" "botones"; row-gap: 24px; }
  .polizas-panel { padding: 20px 0 22px; border-radius: 20px; }
  .polizas-panel-cab { padding: 0 20px 14px; }
  .polizas-pista a { padding: 13px 18px; min-width: 140px; border-radius: 14px; }
  .polizas-pista a strong { font-size: 18px; }
  .polizas-pista a small { font-size: 12px; }
  .polizas-botones { gap: 18px; }
}
@media (prefers-reduced-motion: reduce) { .polizas-fila { overflow-x: auto; } .polizas-copia { display: none; } }
/* ---------- Página de pólizas ---------- */
.polizas-filtro { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.polizas-filtro button {
  padding: 9px 18px; border-radius: 999px; border: 1px solid var(--linea); background: #fff; cursor: pointer;
  font-family: var(--titulos); font-weight: 600; font-size: 14px; color: var(--texto-suave); transition: background .2s, color .2s, border-color .2s;
}
.polizas-filtro button:hover { border-color: var(--texto); color: var(--texto); }
.polizas-filtro button[aria-pressed="true"] { background: var(--texto); border-color: var(--texto); color: #fff; }
.polizas-lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.poliza-ficha {
  position: relative; display: flex; flex-direction: column; padding: 26px 26px 24px; border-radius: 18px; background: #fff;
  border: 1px solid var(--linea); scroll-margin-top: 110px; overflow: hidden;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s, border-color .35s, opacity .35s;
}
.poliza-ficha::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--rojo); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
.poliza-ficha:hover { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(0,0,0,.08); border-color: transparent; }
.poliza-ficha:hover::before, .poliza-ficha:target::before { transform: scaleX(1); }
.poliza-ficha:target { border-color: var(--rojo); }
.poliza-ficha.oculta { display: none; }
.poliza-ficha .etiqueta { align-self: flex-start; font-family: var(--titulos); font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--rojo); background: rgba(215,25,63,.07); padding: 5px 10px; border-radius: 6px; }
.poliza-ficha h2 { font-size: 26px; font-weight: 700; margin-top: 14px; }
.poliza-ficha > p { color: var(--texto-suave); margin-top: 6px; font-size: 15px; }
.poliza-ficha ul { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 9px; }
.poliza-ficha li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.5; }
.poliza-ficha li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: rgba(215,25,63,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D7193F' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 10px no-repeat; }
.polizas-nota { margin-top: 22px; font-size: 14px; color: var(--texto-suave); }
@media (max-width: 980px) { .polizas-lista { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .polizas-lista { grid-template-columns: 1fr; } .poliza-ficha { padding: 22px; } }
