
/* ── Ruta de migas ── */
.migas{margin-bottom:clamp(14px,3vw,28px)}
.migas ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center}
.migas li{display:inline-flex;align-items:center;color:var(--muted)}
.migas li+li::before{content:"\203A";margin-inline:10px;color:var(--muted)}
.migas a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--muted);text-decoration:none}
.migas a:hover{color:var(--accent-text);text-decoration:underline}
.migas li[aria-current]{color:var(--ink);font-weight:600}

/* ── Portada corta ── */
.hero.hero-corto{min-height:clamp(400px,66vh,540px);min-height:clamp(400px,66svh,540px)}
.hero-corto .hero-cuerpo{padding-block:72px 80px}
.hero-corto h1.titular{font-size:clamp(2rem,1.2rem + 3.6vw,3.5rem)}
@media (min-width:900px){
  .hero.hero-corto{min-height:clamp(380px,54vh,500px);min-height:clamp(380px,54svh,500px)}
  .hero-corto .hero-cuerpo{padding-block:56px}
}

/* ── Listas con palomitas y cajas de información ── */
.lista-check{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.lista-check li{display:flex;gap:12px;align-items:flex-start;line-height:1.5}
.lista-check .check{flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);display:grid;place-items:center;margin-top:-1px}
.lista-check .check .icono{width:16px;height:16px;stroke-width:2.3}
.caja-info{position:relative;display:flex;flex-direction:column;gap:14px;background:var(--card);border:1px solid var(--linea);border-radius:var(--r);padding:clamp(22px,3vw,34px)}
.caja-info h3{font-size:1.05rem;letter-spacing:.07em;text-transform:uppercase}
.caja-info p{color:var(--muted)}
.caja-info .acciones,.caja-info .enlace-flecha{margin-top:auto}
.caja-info .medallon,.sv-comp .medallon{width:48px;height:48px;flex:none;border-radius:50%;border:1px solid var(--linea);display:grid;place-items:center;color:var(--accent-text);background:var(--surface)}
.dos-col,.reserva-grid{display:grid;gap:20px}
@media (min-width:800px){.dos-col,.reserva-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
.sitio .efecto-nota{display:flex;gap:14px;align-items:flex-start;margin-top:24px;padding:18px 22px;border-radius:var(--r-s);background:var(--accent-soft);color:var(--ink)}
.efecto-nota .icono{color:var(--accent-text);margin-top:3px}
.efecto-nota small{display:block;margin-top:4px;color:var(--muted);font-size:var(--t-peq)}
.caja-info p.ficha-anticipo{font-size:1.3rem;color:var(--accent-text)}

/* ── /servicios: tarjetas grandes ── */
.sv-lista{display:grid;gap:22px}
@media (min-width:1000px){.sv-lista{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}}
.sv-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--linea-suave);border-radius:var(--r);overflow:hidden;transition:border-color .3s ease}
.sv-card:hover{border-color:var(--linea)}
.sv-foto{position:relative}
.sv-foto .foto{border-radius:0;aspect-ratio:16/10}
.sv-cuerpo{display:flex;flex-direction:column;gap:10px;padding:20px 22px 24px;flex:1;min-width:0}
.sv-cuerpo .etiqueta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.sv-cuerpo h3{font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase}
.sv-cuerpo h3 a{color:var(--ink);text-decoration:none}
.sv-cuerpo h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.sv-resumen{color:var(--muted);font-size:1.05rem}
.sv-datos{display:flex;flex-direction:column;gap:2px}
.sv-duracion{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.sv-duracion .icono{width:18px;height:18px}
.sv-pie{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:2}
.sv-pie .boton{flex:1 1 150px;padding-inline:18px}
@media (min-width:640px){
  .sv-card{flex-direction:row}
  .sv-foto{flex:0 0 38%;min-height:280px}
  .sv-foto .foto{position:absolute;inset:0;height:100%;aspect-ratio:auto}
}

/* ── Complementos ── */
.sv-comps{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.sv-comp{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--linea);border-radius:var(--r);padding:22px}
.sv-comp h3{font-size:1rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}

/* ── Tablas: comparativa y traslado (en celular cada fila es una tarjeta) ── */
.tabla-marco{border:1px solid var(--linea);border-radius:var(--r);background:var(--card);overflow:hidden}
.tabla-sv{width:100%;border-collapse:collapse;font-size:1rem;text-align:left}
.tabla-sv th,.tabla-sv td{padding:16px 18px;border-bottom:1px solid var(--linea);vertical-align:top;text-align:left}
.tabla-sv thead th{font-size:var(--t-etiqueta);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;background:var(--soft)}
.tabla-sv tbody tr:last-child>*{border-bottom:0}
.tabla-sv tbody th{font-weight:600}
.tabla-sv tbody th a{color:var(--ink);text-decoration:none}
.tabla-sv tbody th a:hover{color:var(--accent-text);text-decoration:underline}
.tabla-sv td{color:var(--muted)}
.tabla-comparativa td:nth-child(3),.tabla-comparativa td:last-child{white-space:nowrap}
.tabla-sv td.gratis{color:var(--sage-text);font-weight:600}
.tabla-sv .fila-fuera>*{background:var(--soft)}
@media (max-width:959px){
  .tabla-sv thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .tabla-sv,.tabla-sv tbody,.tabla-sv tr,.tabla-sv th,.tabla-sv td{display:block}
  .tabla-sv tr{padding:14px 20px;border-bottom:1px solid var(--linea)}
  .tabla-sv tbody tr:last-child{border-bottom:0}
  .tabla-sv th,.tabla-sv td{border:0;padding:4px 0}
  .tabla-sv tbody th{font-size:1.1rem;padding-bottom:8px}
  .tabla-sv td{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:12px;color:var(--ink)}
  .tabla-sv td::before{content:attr(data-label);color:var(--muted);font-weight:500}
  .tabla-sv .fila-fuera{background:var(--soft)}
  .tabla-sv .fila-fuera>*{background:none}
}
.tabla-mini{width:100%;border-collapse:collapse;font-size:1rem}
.tabla-mini th,.tabla-mini td{padding:10px 0;border-bottom:1px solid var(--linea);text-align:left;font-weight:400;vertical-align:baseline}
.tabla-mini tbody th{font-weight:500}
.tabla-mini td{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;padding-left:12px}
.tabla-mini thead th{font-size:var(--t-etiqueta);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tabla-mini thead th:not(:first-child){text-align:right}
.tabla-mini tr:last-child>*{border-bottom:0}
.caja-info .tabla-mini{margin-block:4px 8px}
.acordeon .tabla-mini{max-width:34rem;margin-bottom:10px}
.acordeon .lista-check{margin-block:14px}
.acordeon .respuesta p+p,.acordeon .respuesta .lista-check+p{margin-top:10px}

/* ── Ficha del servicio ── */
.ficha{padding-block:clamp(20px,4vw,48px) clamp(44px,6vw,88px)}
.ficha-grid{display:grid;gap:24px}
.ficha-foto{position:relative;min-width:0}
.ficha-foto .foto{aspect-ratio:4/3}
.ficha-info{display:flex;flex-direction:column;gap:16px;min-width:0}
.ficha-info .etiqueta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.ficha-info h1.titular{font-size:clamp(1.9rem,1.2rem + 3.2vw,3.2rem)}
.ficha-info .subtitulo{font-size:clamp(1.1rem,1rem + .5vw,1.3rem)}
@media (min-width:900px){
  .ficha-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:start}
  .ficha-foto{position:sticky;top:calc(var(--alto-cab) + 24px)}
  .ficha-foto .foto{aspect-ratio:4/5}
}
.ficha-form{display:flex;flex-direction:column;gap:22px;margin-top:6px}
.ficha-precio{padding:18px 22px;border-radius:var(--r-s);background:var(--card);border:1px solid var(--linea)}
.ficha-monto{font-size:clamp(2rem,1.5rem + 2vw,2.8rem);line-height:1.1}
.sitio .ficha-sub{color:var(--muted);margin-top:8px}
.ficha-campo{border:0;margin:0;padding:0;min-width:0}
.ficha-campo legend{padding:0;margin-bottom:12px;font-weight:600;font-size:var(--t-etiqueta);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.chip-o small{margin-left:8px;color:var(--muted);font-weight:500;font-size:1rem}
.chip-o:has(input:checked) small{color:inherit;opacity:.85}
.ficha-form .acciones .boton{flex:1 1 220px}

/* ── Botón fijo «Cotizar este tratamiento» ── */
.barra-cotizar{position:fixed;left:0;right:0;bottom:0;z-index:58;background:var(--surface);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--linea);padding-bottom:env(safe-area-inset-bottom);transition:transform .35s ease,visibility .35s}
.barra-in{max-width:var(--ancho);margin:0 auto;padding:10px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:14px}
.barra-txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.barra-nombre{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barra-precio{font-family:var(--serif);font-style:italic;font-variation-settings:"SOFT" 100;font-weight:500;color:var(--accent-text);font-size:1.15rem}
.barra-in .boton{flex:none}
@media (max-width:479px){.barra-nombre{display:none}}
.barra-js .barra-cotizar:not(.visible){transform:translateY(110%);visibility:hidden}
body:has(.barra-cotizar) .flotante{bottom:calc(max(16px,env(safe-area-inset-bottom)) + 76px)}
@media (max-width:420px){.barra-in .boton{padding-inline:16px}}

/* ── Antes y después de la ficha ── */
.ad-fila{display:grid;gap:28px;align-items:center}
.ad-fila .resultado{max-width:440px}
.ad-texto{display:flex;flex-direction:column;gap:18px;color:var(--muted);font-size:1.1rem;max-width:34rem}
@media (min-width:900px){.ad-fila{grid-template-columns:minmax(0,440px) 1fr;gap:64px}}

/* ── Cobertura ── */
.cob-hero{padding-block:clamp(56px,8vw,104px) clamp(48px,6vw,80px)}
.cob-hero>.contenedor{display:flex;flex-direction:column;gap:clamp(32px,5vw,56px)}
.cob-hero-txt{display:flex;flex-direction:column;gap:20px;max-width:46rem}
.cob-hero .insignia .medallon{background:var(--surface)}
.cob-buscador{display:grid;gap:22px;background:var(--card);border:1px solid var(--linea);border-radius:var(--r);padding:clamp(22px,4vw,40px);max-width:820px}
.cob-buscador form>*+*{margin-top:12px}
.cob-buscador label{display:block;font-weight:600}
.cob-buscador input[type="search"]{width:100%;min-height:52px;padding:10px 20px;border-radius:999px;border:1px solid var(--field-line);background:var(--surface);color:var(--ink);font:1rem var(--sans)}
.cob-buscador input[type="search"]:focus-visible{outline:2.5px solid var(--accent-text);outline-offset:3px}
.cob-res{padding:16px 20px;border-radius:var(--r-s);border:1px solid var(--linea)}
.cob-res.si{background:var(--sage-soft);color:var(--sage-text);border-color:transparent}
.cob-res.quiza{background:var(--accent-soft);color:var(--ink);border-color:transparent}
.cob-res p+p{margin-top:4px}
.cob-res-t{font-weight:600;font-size:1.1rem}
.cob-acciones{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center}
.cob-acciones .nota-precio{flex:1 1 260px}
@media (min-width:900px){#calculo .pasos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cob-mapa-fila{display:grid;gap:32px;align-items:start}
@media (min-width:1100px){.cob-mapa-fila{grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:48px}}
.mapa{margin:0;display:flex;flex-direction:column;gap:12px}
.mapa-svg{display:block;width:100%;max-width:520px;height:auto;margin-inline:auto}
.mapa figcaption{color:var(--muted);font-size:var(--t-peq);text-align:center}
.mp-anillo{stroke:var(--linea);stroke-width:1.5}
.mp-b0{fill:color-mix(in srgb,var(--sage) 26%,var(--c-blanco));stroke:var(--sage)}
.mp-b1{fill:color-mix(in srgb,var(--accent) 8%,var(--c-blanco))}
.mp-b2{fill:color-mix(in srgb,var(--accent) 13%,var(--c-blanco))}
.mp-b3{fill:color-mix(in srgb,var(--accent) 18%,var(--c-blanco))}
.mp-b4{fill:color-mix(in srgb,var(--accent) 23%,var(--c-blanco))}
.mp-b5{fill:color-mix(in srgb,var(--accent) 28%,var(--c-blanco))}
/* Safari < 16.2 y Chrome < 111 no conocen color-mix: sin esto las bandas del mapa saldrían negras */
@supports not (color:color-mix(in srgb,red 1%,blue)){.mp-b0{fill:var(--sage-soft)}.mp-b1,.mp-b2,.mp-b3,.mp-b4,.mp-b5{fill:var(--accent)}.mp-b1{fill-opacity:.08}.mp-b2{fill-opacity:.13}.mp-b3{fill-opacity:.18}.mp-b4{fill-opacity:.23}.mp-b5{fill-opacity:.28}}
.mp-rotulo,.mp-casa text,.mp-norte text{font:600 17px var(--sans);fill:var(--ink);paint-order:stroke;stroke:var(--c-blanco);stroke-width:4px;stroke-linejoin:round}
.mp-norte path{fill:var(--ink)}
.mp-norte text{stroke:none}
.mp-marca circle{fill:var(--accent);stroke:var(--c-blanco);stroke-width:3}
.mp-marca text{font:600 17px var(--sans);fill:var(--on-accent)}
.mp-casa circle{fill:var(--sel);stroke:var(--c-blanco);stroke-width:3}
.mp-casa .mp-centro{fill:var(--c-blanco);stroke:none}
.mp-n{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font:600 .95rem var(--sans)}
.mp-n.base{background:var(--sel);color:var(--on-sel)}
.zonas-lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.zonas-lista li{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.zonas-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.zonas-chips li{padding:4px 18px;border-radius:999px;border:1px solid var(--field-line);background:var(--surface);font-weight:500;color:var(--ink)}
