/* ============================================================
   Santo Pilates · piezas propias
   Identidad: salvia #5E7A72 · crema #E8E4DB · arena #CCBEB4 · bosque #25312D
   ============================================================ */
:root{--disp:"Marcellus","Inter",serif;--crema:#E8E4DB}

/* tipografía display: Marcellus no tiene negrita, se compensa con tracking */
.hub-cab h2,.mod h3,.gate__t,.gl__wm,.pp h4,.pp__usd,.hecho b,.kpi__val,.hoy__k b,.mod__kpis b,.hallazgo .num,.boot__lineas b{font-weight:400!important}
.hub-cab h2{letter-spacing:1.5px;text-transform:none}
.mod h3{text-transform:none;letter-spacing:.2px;font-size:25px}
.gate__t{text-transform:uppercase;letter-spacing:6px;font-size:22px;color:var(--crema)}
.gl__wm{text-transform:none;letter-spacing:1px;font-size:30px;color:var(--crema)}
.gl__wm b{color:var(--amarillo)}
.gl__wm small{letter-spacing:4px;color:#9DAAA5}
.gl__img{width:66%;filter:drop-shadow(0 18px 40px rgba(0,0,0,.45))}
.gate__s,.gate__pre{color:#9DAAA5}
.gate__pie{color:#7E8B86}
.gate{background:radial-gradient(120% 90% at 50% 0%,#33463F 0%,#1C2522 70%)}
.boot{background:#1F2926}
.boot__lineas{color:#C9D3CE}
.wipe{background:linear-gradient(120deg,var(--rojo),#3E5450)}
.side{background:linear-gradient(180deg,#25312D,#1F2926)}
.nav__it.on{background:rgba(204,190,180,.14)}
.nav__it.on::before{background:var(--amarillo)}
.marca__emb img{border-radius:50%}
.pie b.rojo,.rojo{color:var(--rojo)}

/* hub: mapa de sedes + vitrina de imágenes */
.hoy--santo{grid-template-columns:1.1fr 1fr}
.hoy--santo>*{min-width:0}
.mapa-sedes{background:linear-gradient(180deg,#FBFAF6,#F1ECE3);border:1px solid var(--linea);border-radius:var(--r-l);padding:16px}
.mapa-sedes h3,.vitrina-img h3{margin:0 0 2px;font-size:13.5px;font-weight:700}
.mapa-sedes p,.vitrina-img p{margin:0 0 8px;font-size:11.5px;color:var(--tinta-45)}
.mapa-sedes svg{width:100%;height:auto;display:block}
.mapa-sedes .calle{stroke:#E6DFD2;stroke-width:6;fill:none}
.mapa-sedes .enlace{stroke:var(--rojo);stroke-width:1.6;stroke-dasharray:5 6;opacity:.5;animation:ruta 3s linear infinite}
.mapa-sedes .nodo{cursor:pointer}
.mapa-sedes .nodo text{font-family:var(--sans);font-size:15px;font-weight:700;fill:var(--tinta);paint-order:stroke;stroke:#FBFAF6;stroke-width:5px}
.mapa-sedes .nodo text.sub{font-size:11.5px;font-weight:500;fill:var(--tinta-45)}
.mapa-sedes .halo{transform-box:fill-box;transform-origin:center;animation:haloS 2.6s ease-out infinite}
@keyframes haloS{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@keyframes ruta{to{stroke-dashoffset:-22}}

.vitrina-img{background:var(--negro);border-radius:var(--r-l);padding:16px;color:#fff}
.vitrina-img h3{color:#fff}.vitrina-img p{color:#9DAAA5}
.vitrina-img__fila{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.vitrina-img__fila--sm{grid-template-columns:repeat(3,1fr)}
.vitrina-img__fila figure{margin:0;min-width:0}
.vitrina-img__fila img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px;display:block;box-shadow:0 8px 22px rgba(0,0,0,.25);transition:transform .3s}
.vitrina-img__fila figure:hover img{transform:translateY(-4px) rotate(-1deg)}
.vitrina-img__fila figcaption{font-size:10.5px;color:#9DAAA5;margin-top:5px;text-align:center}
.card .vitrina-img__fila figcaption{color:var(--tinta-45)}

/* cobertura horaria y mapa de calor */
.cob,.calor{display:flex;flex-direction:column;gap:4px;overflow-x:auto}
.cob__fila,.calor__fila{display:grid;grid-template-columns:118px repeat(13,minmax(22px,1fr));gap:4px;align-items:center;min-width:470px}
.cob__fila span,.calor__fila span{font-size:11.5px;font-weight:600;color:var(--tinta-70);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cob__fila span small,.calor__fila span small{font-weight:500;color:var(--tinta-45);margin-left:4px}
.cob__fila i,.calor__fila i{height:22px;border-radius:5px;background:var(--fondo-2);font-style:normal;font-size:10px;display:grid;place-items:center;color:#fff;font-weight:700}
.cob__fila i.on{background:var(--c);animation:celIn .5s ease both}
.cob__fila--cab i,.calor__fila--cab i{background:none;color:var(--tinta-45);height:auto;font-weight:600}
.calor__fila i.on{background:color-mix(in srgb,var(--c) calc(var(--p) * 100%),#F1ECE3);animation:celIn .5s ease both}
.calor__fila{grid-template-columns:118px repeat(13,minmax(26px,1fr))}
.calor__fila i{height:26px}
.calor__fila span b{color:var(--tinta)}
@keyframes celIn{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}

/* agenda */
.ctl-fila{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.turnos{display:flex;flex-direction:column;gap:8px}
.turno{display:grid;grid-template-columns:62px 1fr 150px;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--linea);border-radius:12px;background:#fff;animation:modIn .45s ease both}
.turno--lleno{border-color:var(--rojo-100);background:var(--rojo-50)}
.turno__h{font-family:var(--disp);font-size:20px}
.turno__ref{display:flex;gap:6px;flex-wrap:wrap}
.turno__ref i{width:30px;height:16px;border-radius:5px;border:1.5px solid var(--linea-fuerte);background:#fff;transition:background .3s}
.turno__ref i.on{background:var(--rojo);border-color:var(--rojo)}
.turno__d{font-size:12px;color:var(--tinta-70);text-align:right}
.turno__d b{color:var(--naranja)}
.turno__d span{color:var(--verde)}

/* sedes */
.sede-card{padding:18px;border-top:4px solid var(--c)}
.sede-card__cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sede-card h3{margin:0;font-family:var(--disp);font-size:26px;font-weight:400}
.sede-card__cab span{font-size:12px;color:var(--tinta-45)}
.sede-card__k{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 10px;padding-top:12px;border-top:1px dashed var(--linea)}
.sede-card__k div{font-size:11px;color:var(--tinta-45);min-width:0}
.sede-card__k b{display:block;font-family:var(--disp);font-size:21px;font-weight:400;color:var(--tinta);white-space:nowrap}
.sede-card p{margin:0;font-size:12px;color:var(--tinta-70)}

/* simulador de plan */
.plan-sim .seg{flex-wrap:wrap}
.simu-res{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.simu-res div{background:var(--fondo);border:1px solid var(--linea);border-radius:12px;padding:12px;min-width:0}
.simu-res small{display:block;font-size:11px;color:var(--tinta-45)}
.simu-res b{display:block;font-family:var(--disp);font-size:24px;font-weight:400;line-height:1.15;color:var(--rojo-900);white-space:nowrap}
.simu-res>div>span{font-size:11px;color:var(--tinta-45)}

/* teléfono */
.tel-env{display:grid;place-items:center;padding:6px 0}
.tel{width:300px;max-width:100%;height:600px;border-radius:40px;background:#F6F3EE;border:10px solid #1C2522;box-shadow:var(--sombra-3);position:relative;overflow:hidden;display:flex;flex-direction:column}
.tel__notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:110px;height:22px;background:#1C2522;border-radius:0 0 14px 14px;z-index:2}
.tel__top{display:flex;align-items:center;gap:8px;padding:32px 16px 12px;background:var(--negro);color:var(--crema);font-family:var(--disp);font-size:17px}
.tel__top img{width:28px;height:28px;border-radius:50%}
.tel__pant{flex:1;padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;animation:lienzoIn .4s ease both}
.tel__hero{background:linear-gradient(140deg,var(--rojo),#3E5450);color:#fff;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:4px}
.tel__hero img{width:34px;height:34px;border-radius:50%;margin-bottom:4px}
.tel__hero b{font-family:var(--disp);font-size:22px;font-weight:400}
.tel__hero span{font-size:12px;opacity:.9}
.tel__prox{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:12px}
.tel__prox small{display:block;font-size:10.5px;color:var(--tinta-45);text-transform:uppercase;letter-spacing:.6px}
.tel__prox b{display:block;font-size:13.5px;margin:2px 0}
.tel__prox span{font-size:11.5px;color:var(--tinta-45)}
.tel__btn{background:var(--negro);color:var(--crema);border-radius:999px;padding:12px;font-weight:700;font-size:13px;transition:transform .15s}
.tel__btn:hover{transform:translateY(-1px)}
.tel__mini{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tel__mini div{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px;font-size:11px;color:var(--tinta-45)}
.tel__mini b{display:block;font-family:var(--disp);font-size:22px;font-weight:400;color:var(--rojo)}
.tel__tit{font-size:11px;font-weight:700;color:var(--tinta-45);text-transform:uppercase;letter-spacing:.7px}
.tel__op{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;border-radius:12px;background:#fff;border:1.5px solid var(--linea);border-left:5px solid var(--c)}
.tel__op b{font-size:13px}.tel__op span{font-size:11px;color:var(--tinta-45)}
.tel__op.on{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent)}
.tel__slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tel__slot{background:#fff;border:1.5px solid var(--rojo);border-radius:10px;padding:7px 4px;display:flex;flex-direction:column}
.tel__slot b{font-size:13px}.tel__slot span{font-size:9.5px;color:var(--tinta-45)}
.tel__slot.lleno{border-color:var(--linea);opacity:.6}
.tel__ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:18px 6px}
.tel__check{width:64px;height:64px;border-radius:50%;background:var(--rojo);color:#fff;display:grid;place-items:center;animation:embPop .5s cubic-bezier(.2,.8,.2,1) both}
.tel__check svg{width:34px;height:34px}
.tel__ok b{font-family:var(--disp);font-size:22px;font-weight:400}
.tel__ok span{font-size:12px;color:var(--tinta-45)}
.tel__nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--linea);background:#fff;padding:9px 4px 14px;font-size:10.5px;text-align:center;color:var(--tinta-45)}
.tel__nav .on{color:var(--rojo);font-weight:700}
.antes-desp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.antes-desp>div{border-radius:12px;padding:12px 14px;background:var(--fondo);border:1px solid var(--linea);min-width:0}
.antes-desp>div:last-child{background:var(--rojo-50);border-color:var(--rojo-100)}
.antes-desp small{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--tinta-45)}
.antes-desp ul{margin:6px 0 0;padding-left:16px;font-size:12.5px;line-height:1.6}

/* ficha */
.sel-ficha{font:inherit;font-size:12px;padding:6px 10px;border-radius:9px;border:1px solid var(--linea-fuerte);background:#fff;max-width:240px}
.ficha{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:start}
.ficha__cuerpo svg{width:100%;height:auto;display:block}
.ficha__cuerpo .pulso{transform-box:fill-box;transform-origin:center;animation:haloS 2.2s ease-out infinite}
.ficha__datos{display:flex;flex-direction:column;gap:10px;min-width:0}
.ficha__eva{display:flex;align-items:center;gap:14px}
.ficha__eva small{display:block;font-size:11px;color:var(--tinta-45)}
.ficha__eva b{font-family:var(--disp);font-size:34px;font-weight:400;line-height:1}
.ficha__eva .mal{color:var(--naranja)}.ficha__eva .bien{color:var(--verde)}
.ficha__fl{color:var(--tinta-25)}
.ficha__notas{background:var(--fondo);border:1px solid var(--linea);border-radius:10px;padding:10px 12px;font-size:12px}
.ficha__notas b{display:block;margin-bottom:2px}
.ficha__notas span{color:var(--tinta-70)}

/* embudo */
.embudo{display:flex;flex-direction:column;align-items:center;gap:6px}
.embudo__p{width:var(--w);min-width:180px;max-width:100%;position:relative;background:linear-gradient(90deg,var(--rojo),#7E968F);color:#fff;border-radius:10px;padding:9px 14px;display:flex;align-items:baseline;gap:10px;animation:modIn .6s ease both;animation-delay:calc(var(--i) * .1s)}
.embudo__p b{font-family:var(--disp);font-size:22px;font-weight:400}
.embudo__p>span{font-size:12px;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.embudo__p em{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;background:rgba(255,255,255,.2);padding:1px 7px;border-radius:999px}

/* WhatsApp */
.wa-mini{display:flex;flex-direction:column;gap:10px;background:#ECE5DD;border-radius:16px;padding:0 0 12px;overflow:hidden}
.wa-mini__top{display:flex;align-items:center;gap:10px;background:var(--negro);color:#fff;padding:10px 14px}
.wa-mini__top img{width:32px;height:32px;border-radius:50%}
.wa-mini__top b{display:block;font-size:13px}.wa-mini__top span{font-size:11px;color:#9DAAA5}
.wa-mini__log{display:flex;flex-direction:column;gap:6px;padding:4px 12px;height:250px;overflow-y:auto;scroll-behavior:smooth}
.wa-mini .wa-m{font-size:12px;max-width:88%}
.wa-mini .btn{align-self:center}

/* propuesta */
.pasos-precio--2{grid-template-columns:1.3fr 1fr}
.pp--todo{background:linear-gradient(140deg,var(--rojo),#33463F)}

/* móvil y anchos intermedios */
.g>*,.card,.lienzo-chart{min-width:0}
@media (max-width:1180px){.hoy--santo{grid-template-columns:1fr}.pasos-precio--2{grid-template-columns:1fr}}
@media (max-width:820px){
  .vitrina-img__fila{grid-template-columns:repeat(2,1fr)}
  .turno{grid-template-columns:52px 1fr}.turno__d{grid-column:1/-1;text-align:left}
  .antes-desp{grid-template-columns:1fr}
  .ficha{grid-template-columns:90px 1fr}
  .sel-ficha{max-width:100%}
  .gl__wm{font-size:24px}
}

/* ajustes */
.mod__kpis{padding-right:44px}
.t .kpi__spark{position:static;display:block}
.vitrina-img__fila--h{margin-top:12px}
.vitrina-img__fila--h img{aspect-ratio:4/5}
.vitrina-img__mas{display:flex;flex-direction:column;justify-content:center;gap:6px;border:1px dashed #4A5B55;border-radius:10px;padding:12px}
.vitrina-img__mas b{font-family:var(--disp);font-size:40px;font-weight:400;color:var(--amarillo);line-height:1}
.vitrina-img__mas span{font-size:11.5px;color:#C9D3CE;line-height:1.4}
.ficha .barra-fila .lb{flex-basis:84px}.ficha .barra-fila .v{flex:0 0 40px}
@media (max-width:820px){.hallazgo{grid-template-columns:40px 1fr}.hallazgo>div:last-child{grid-column:2;text-align:left!important;min-width:0!important}}

/* portada: logo SVG que se dibuja por trazos y después se rellena */
.gate__logo{width:min(520px,88vw)}
.gl-logo svg{width:100%;height:auto;display:block}
.gl-logo path{fill:transparent;stroke:var(--crema);stroke-width:2.2;stroke-dasharray:var(--len,3000);stroke-dashoffset:var(--len,3000);animation:trazoSP 1.3s cubic-bezier(.4,.1,.2,1) forwards,rellSP .7s ease forwards}
.gl-logo .sp-alas{stroke:var(--amarillo)}
@keyframes trazoSP{to{stroke-dashoffset:0}}
@keyframes rellSP{to{fill:var(--crema);stroke-width:0}}
.gl-logo .sp-alas{animation-name:trazoSP,rellAlas}
@keyframes rellAlas{to{fill:var(--amarillo);stroke-width:0}}
.gl__wm small{margin-top:14px}

/* escena de cada módulo */
.escena{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(120deg,#25312D,#33463F);color:var(--crema);border-radius:var(--r-l);padding:16px 20px;margin-bottom:16px;animation:lienzoIn .5s ease both}
.escena span{flex:0 0 auto;font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--amarillo);padding-top:3px}
.escena p{margin:0;font-family:var(--disp);font-size:17px;line-height:1.45}
@media (max-width:820px){.escena{flex-direction:column;gap:6px}.escena p{font-size:15px}}

/* propuesta: botones */
.prop-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 22px}

/* asistente y recorrido con la paleta de Santo */
.tour-card h4,.tour-invita h3{text-transform:none;font-weight:400}
.tour-invita__emb img{width:100%;height:100%;border-radius:50%}
.as-cerrar{background:#3B4C46}
.nav__it .pin--amarillo{color:#25312D}

/* badges del menú: no heredar la animación del formulario de PIN */
.nav__it .pin{margin-top:0;opacity:1;animation:none}
