.cotiza {
  position: relative; overflow: clip;
  padding-block: clamp(1.8rem, 3.5vw, 2.8rem) clamp(2.6rem, 5vw, 4rem);
  background: linear-gradient(180deg, var(--nieve) 0%, var(--papel) 100%);
}
.cotiza__cinta {
  position: absolute; top: 0; right: 0; width: min(46rem, 60%); height: 13.5rem;
  pointer-events: none;
}
.cotiza__trazo { fill: none; stroke-linecap: round; }
.cotiza__trazo--1 { stroke: url(#cinta-fria) #3157a7; stroke-width: 3; opacity: .55; }
.cotiza__trazo--2 { stroke: url(#cinta-calida) #9b2e8c; stroke-width: 2; opacity: .45; }
@media (prefers-reduced-motion: no-preference) {
  .cotiza__trazo { stroke-dasharray: 1000; animation: ct-trazar 1.6s cubic-bezier(.3, .7, .3, 1) .2s both; }
  .cotiza__trazo--2 { animation-delay: .45s; }
}
@keyframes ct-trazar { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }
.cotiza__rejilla { position: relative; display: grid; gap: 1.6rem; }
.cotiza__rejilla > * { min-width: 0; }
@media (min-width: 1024px) {
  .cotiza__rejilla {
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    grid-template-areas: "intro tarjeta" "lado tarjeta";
    grid-template-rows: auto 1fr; column-gap: clamp(2.5rem, 4vw, 4rem); row-gap: 2rem; align-items: start;
  }
  .cotiza__intro { grid-area: intro; }
  .cotiza__tarjeta { grid-area: tarjeta; }
  .cotiza__lado { grid-area: lado; }
}
@media (min-width: 1024px) and (min-height: 800px) {
  .cotiza__lado { position: sticky; top: calc(var(--cabecera) + 1.5rem); }
}
.cotiza__intro h1 {
  font-size: clamp(2rem, 1.3rem + 2.6vw, 3.15rem); line-height: 1.06; letter-spacing: -.03em;
  margin: 0 0 .6rem; text-wrap: balance;
}
.cotiza__intro h1 em { display: block; }
.cotiza__intro .entradilla { margin: 0; max-width: 40ch; }
.cotiza__tarjeta {
  position: relative; padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--linea-fuerte); border-radius: 22px; background: var(--nieve);
  box-shadow: var(--sombra-alta), 0 0 0 6px rgba(245, 234, 244, .7);
  scroll-margin-top: calc(var(--cabecera) + 1rem);
}
.cotiza__cab h2 { margin: 0 0 .25rem; font-size: clamp(1.35rem, 1.2rem + .5vw, 1.6rem); letter-spacing: -.02em; }
.cotiza__cab p { margin: 0 0 .4rem; font-size: .88rem; color: var(--tinta-media); }
.cotiza__ast { color: var(--morado); font-weight: 700; }
.cotiza__opc { font-weight: 400; font-size: .86em; color: var(--tinta-media); }
.cotiza__form { display: grid; gap: 1.05rem; }
.cotiza__form[hidden] { display: none; }
.cotiza__paso {
  display: flex; align-items: center; gap: .6rem; margin: .75rem 0 -.2rem;
  font-family: var(--mono); font-size: .74rem; font-weight: 500; letter-spacing: .12em;
  text-transform: uppercase; color: var(--acero-hondo);
}
.cotiza__paso .cotiza__opc { font-family: var(--sans); text-transform: none; letter-spacing: 0; }
.cotiza__paso b {
  position: relative; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; flex: none;
  border-radius: 50%; background: var(--niebla); color: var(--morado-hondo); font-size: .8rem; letter-spacing: 0;
  transition: background-color .2s ease, color .2s ease;
}
.cotiza__paso::after { content: ""; flex: 1; height: 1px; background: var(--linea); }
.cotiza__form:has(input[name="servicio"]:checked) .cotiza__paso[data-paso="1"] b,
.cotiza__form:not(:has(#ct-nombre:invalid, #ct-empresa:invalid, #ct-correo:invalid, #ct-wa:invalid)) .cotiza__paso[data-paso="2"] b {
  background: var(--ops-ok); color: transparent;
}
.cotiza__form:has(input[name="servicio"]:checked) .cotiza__paso[data-paso="1"] b::after,
.cotiza__form:not(:has(#ct-nombre:invalid, #ct-empresa:invalid, #ct-correo:invalid, #ct-wa:invalid)) .cotiza__paso[data-paso="2"] b::after {
  content: ""; position: absolute; left: 50%; top: 45%; width: .34rem; height: .66rem;
  border: solid var(--nieve); border-width: 0 2px 2px 0; transform: translate(-50%, -50%) rotate(45deg);
}
.cotiza__grupo { margin: 0; padding: 0; border: 0; min-width: 0; }
.cotiza__grupo legend { padding: 0; margin: 0 0 .15rem; font-size: .95rem; font-weight: 600; color: var(--tinta); }
.cotiza__ayuda { margin: .05rem 0 .55rem; font-size: .84rem; line-height: 1.45; color: var(--tinta-media); }
.cotiza__campo .cotiza__ayuda { margin: -.1rem 0 .1rem; }
.cotiza__servicios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.cotiza__opcion {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; align-items: center;
  min-height: 64px; padding: .7rem .85rem; border: 1.5px solid var(--linea-fuerte); border-radius: 14px;
  background: var(--papel); cursor: pointer; transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.cotiza__opcion:hover { border-color: var(--morado-claro); background: var(--nieve); }
.cotiza__opcion-ic {
  display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: var(--niebla);
}
.cotiza__opcion-ic .ico { width: 30px; height: 30px; }
.cotiza__opcion-txt { display: grid; gap: .1rem; }
.cotiza__opcion-txt b { font-size: .94rem; line-height: 1.25; color: var(--tinta); }
.cotiza__opcion-txt small { font-size: .8rem; line-height: 1.35; color: var(--tinta-media); }
.cotiza__opcion:has(input:checked) {
  border-color: var(--morado); background: var(--niebla); box-shadow: 0 0 0 3px rgba(155, 46, 140, .14);
}
.cotiza__opcion:has(input:checked)::after {
  content: ""; position: absolute; top: -.45rem; right: -.45rem; width: 1.3rem; height: 1.3rem; border-radius: 50%;
  background: var(--morado) linear-gradient(135deg, var(--morado), var(--morado-hondo));
  box-shadow: 0 0 0 2px var(--nieve);
}
.cotiza__opcion:has(input:checked)::before {
  content: ""; position: absolute; z-index: 1; top: -.18rem; right: -.02rem; width: .28rem; height: .55rem;
  border: solid var(--nieve); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.cotiza__opcion:has(input:focus-visible), .cotiza__chip:has(input:focus-visible) span {
  outline: 3px solid var(--acero-hondo); outline-offset: 2px;
}
.cotiza__servicios.con-error .cotiza__opcion { border-color: var(--ops-critico); }
.cotiza__chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.cotiza__chip { position: relative; }
.cotiza__chip span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; cursor: pointer;
  border: 1.5px solid var(--linea-fuerte); border-radius: 999px; background: var(--papel);
  font-size: .9rem; font-weight: 600; color: var(--tinta-media);
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.cotiza__chip:hover span { border-color: var(--morado-claro); color: var(--tinta); }
.cotiza__chip:has(input:checked) span { border-color: var(--morado); background: var(--morado); color: var(--nieve); }
.cotiza__campo { gap: .3rem; }
.cotiza__campo textarea { min-height: 96px; }
.cotiza__campo input:user-invalid, .campo.con-error input { border-color: var(--ops-critico); }
.cotiza__error {
  margin: .2rem 0 0; padding-left: 1.4rem; position: relative;
  font-size: .84rem; font-weight: 600; line-height: 1.4; color: var(--ops-critico);
}
.cotiza__error::before {
  content: "!"; position: absolute; left: 0; top: .05rem; display: grid; place-items: center;
  width: 1rem; height: 1rem; border-radius: 50%; font-size: .7rem; line-height: 1;
  background: var(--ops-critico); color: var(--nieve);
}
.cotiza__error[hidden] { display: none; }
.cotiza__enviar { width: 100%; min-height: 56px; margin-top: .5rem; font-size: 1.05rem; }
.cotiza__enviar[aria-disabled="true"] { opacity: .75; cursor: progress; }
.cotiza__nota { margin: -.35rem 0 0; font-size: .82rem; line-height: 1.5; color: var(--tinta-media); text-align: center; text-wrap: pretty; }
.cotiza__estado { margin: 0; font-size: .9rem; font-weight: 600; color: var(--acero-hondo); text-align: center; }
.cotiza__listo { padding: 1.5rem .4rem .6rem; text-align: center; border-radius: 16px; }
.cotiza__listo[hidden] { display: none; }
.cotiza__listo-ic {
  position: relative; display: block; width: 3.6rem; height: 3.6rem; margin: 0 auto .9rem; border-radius: 50%;
  background: var(--ops-ok); box-shadow: 0 0 0 8px var(--ops-ok-suave);
}
.cotiza__listo-ic::after {
  content: ""; position: absolute; left: 50%; top: 45%; width: .75rem; height: 1.35rem;
  border: solid var(--nieve); border-width: 0 3px 3px 0; transform: translate(-50%, -50%) rotate(45deg);
}
.cotiza__listo--aviso .cotiza__listo-ic { background: var(--ops-alerta); box-shadow: 0 0 0 8px var(--ops-alerta-suave); }
.cotiza__listo--aviso .cotiza__listo-ic::after {
  content: "!"; border: 0; width: auto; height: auto; top: 50%; transform: translate(-50%, -50%);
  color: var(--nieve); font-size: 1.7rem; font-weight: 700;
}
.cotiza__listo-tit { margin: 0 0 .4rem; font-size: 1.4rem; letter-spacing: -.02em; }
.cotiza__listo-txt { margin: 0 auto; max-width: 34ch; color: var(--tinta-media); }
.cotiza__listo-botones { display: grid; gap: .55rem; max-width: 22rem; margin: 1.2rem auto 0; }
.cotiza__otro {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  font-weight: 600; color: var(--morado); text-decoration: underline; text-underline-offset: 3px;
}
.cotiza__empleo { margin: 1.3rem 0 0; padding-top: .9rem; border-top: 1px solid var(--linea); font-size: .86rem; color: var(--tinta-media); }
.cotiza__empleo a { font-weight: 600; padding-block: .7rem; }
.cotiza__lado { display: grid; gap: 1.7rem; }
.cotiza__lado-tit { margin: 0 0 .8rem; font-size: 1.05rem; letter-spacing: -.01em; }
.cotiza__despues ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.cotiza__despues li { display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); gap: .75rem; align-items: start; }
.cotiza__despues li > b {
  display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%;
  font-family: var(--mono); font-size: .82rem; font-weight: 500; color: var(--nieve);
  background: linear-gradient(135deg, var(--morado-hondo), var(--morado));
}
.cotiza__despues h3 { margin: .1rem 0 .15rem; font-size: .96rem; }
.cotiza__despues p { margin: 0; font-size: .88rem; line-height: 1.45; color: var(--tinta-media); }
.cotiza__canales { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.cotiza__canal {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem;
  min-height: 74px; padding: .5rem; border: 1px solid var(--linea-fuerte); border-radius: 14px;
  background: var(--nieve); font-size: .88rem; font-weight: 600; color: var(--tinta); text-decoration: none;
  transition: border-color .15s ease, transform .15s ease;
}
.cotiza__canal:hover { border-color: var(--morado); transform: translateY(-2px); color: var(--tinta); }
.cotiza__canal svg { width: 24px; height: 24px; }
.cotiza__canal--wa svg { fill: var(--whatsapp); }
.ct-trazo { fill: none; stroke: var(--morado); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.cotiza__horario { margin: .6rem 0 0; font-size: .84rem; color: var(--tinta-media); }
.cotiza__cifras {
  list-style: none; margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--linea);
  display: flex; flex-wrap: wrap; gap: .45rem 1.3rem; font-size: .88rem; color: var(--tinta-media);
}
.cotiza__cifras b { color: var(--tinta); font-size: 1.05rem; }
.cotiza-logos { background: var(--nieve); border-block: 1px solid var(--linea); }
.cotiza-logos__tit {
  margin: 0 0 1.1rem; text-align: center; font-family: var(--mono); font-size: .74rem;
  letter-spacing: .12em; text-transform: uppercase; color: var(--tinta-media);
}
.cotiza-logos__lista {
  list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center;
  align-items: center; gap: 1rem clamp(1.4rem, 4vw, 3rem);
}
.cotiza-logos__lista li { display: flex; align-items: center; justify-content: center; width: 7.2rem; height: 3.2rem; }
.cotiza-logos__lista img {
  max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
  filter: grayscale(1); opacity: .72; transition: filter .2s ease, opacity .2s ease;
}
.cotiza-logos__lista li:hover img { filter: none; opacity: 1; }
body:has(.cotiza__form :focus) .flotante { display: none; }
@media (max-width: 760px) { body:has(.cotiza) .flotante { display: none; } }
@media (max-width: 620px) {
  .cotiza__cinta { width: 100%; height: 4.5rem; }
  .cotiza__opcion { padding: .6rem .65rem; gap: .55rem; grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .cotiza__opcion-ic { width: 2.2rem; height: 2.2rem; }
  .cotiza__opcion-ic .ico { width: 26px; height: 26px; }
  .cotiza__opcion-txt small { display: none; }
  .cotiza__opcion-txt b { font-size: .9rem; }
  .cotiza-logos__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem 1rem; }
  .cotiza-logos__lista li { width: auto; height: 2.6rem; }
}
@media (max-width: 359px) {
  .cotiza__servicios { grid-template-columns: minmax(0, 1fr); }
  .cotiza__opcion { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
}
