/* Clínica Saavedra — páginas de sede. Refinamiento editorial sobre Elementor. */
.sv{
  --ink:#0D3142; --ink-80:rgba(13,49,66,.82); --ink-60:rgba(13,49,66,.60);
  --ink-55:rgba(13,49,66,.55); --ink-40:rgba(13,49,66,.40);
  --line:rgba(16,58,68,.12); --line-w:rgba(255,255,255,.16);
  --orange:#ED852A; --orange-dk:#B4611A; --blue:#0079BB;
  --paper:#F1F5F7; --white:#fff;
  --r-img:20px; --r-card:16px; --r-sm:12px; --r-pill:100px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s6:48px; --s8:64px; --s12:96px; --s16:128px; --s20:160px;
}

/* El reset del tema pinta los enlaces en rosa: se corrige en toda la página */
.sv a{color:inherit;text-decoration:none}
.sv .elementor-heading-title a{font-family:inherit;color:inherit}
.sv a:focus-visible,.sv button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--r-sm)}

/* Tipografía display: peso 500-600 y tracking negativo, nunca 700 */
.sv h1,.sv h2,.sv h3{font-weight:600;letter-spacing:-.025em;text-wrap:balance}
/* etiquetas y numerales usan el widget de encabezado pero NO son encabezados (tag div) */
.sv .sv-label .elementor-heading-title,.sv .sv-idx .elementor-heading-title,
.sv .sv-big .elementor-heading-title,.sv .sv-eyebrow .elementor-heading-title{letter-spacing:normal}
.sv .sv-idx .elementor-heading-title{font-weight:500}
.sv .sv-eyebrow .elementor-heading-title{
  font-size:12px;font-weight:600;letter-spacing:.14em!important;text-transform:uppercase;line-height:1.4}
.sv-h1 .elementor-heading-title{font-size:clamp(2.6rem,5.4vw,4.8rem);line-height:1.0;letter-spacing:-.03em}
.sv-h2 .elementor-heading-title{font-size:clamp(2rem,4vw,3.4rem);line-height:1.06}
.sv-h3 .elementor-heading-title{font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.2;letter-spacing:-.01em}
.sv-lead p{font-size:17px;line-height:1.65;max-width:48ch}
.sv-num .elementor-heading-title{font-variant-numeric:tabular-nums}

/* ---------- 01 HERO ---------- */
.sv-hero{align-items:flex-end}
.sv-hero .sv-hero-media img{aspect-ratio:4/5;object-fit:cover;width:100%;border-radius:var(--r-img);display:block}
.sv-hero-card{position:absolute;left:-88px;bottom:-56px;width:340px;z-index:3;border-radius:var(--r-card);overflow:hidden}
.sv-hero-media{position:relative}
.sv-hero-card .sv-row{border-top:1px solid var(--line-w)}
.sv-hero-card .sv-row:first-child{border-top:0}
.sv-underline .elementor-heading-title span{box-shadow:inset 0 -.14em 0 var(--orange)}
@media(max-width:1024px){.sv-hero-card{position:static;width:100%;margin-top:var(--s3)}}

/* filas etiqueta/valor */
.sv-row .sv-label .elementor-heading-title{font-size:12px;font-weight:600;letter-spacing:.1em!important;text-transform:uppercase}
.sv-row .sv-value p{font-size:17px;font-weight:500;line-height:1.45;margin:0}

/* ---------- 02 FRANJA DE CREDENCIALES ---------- */
.sv-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sv-band .sv-cell + .sv-cell{border-left:1px solid var(--line)}
.sv-band .sv-cell .sv-label .elementor-heading-title{font-size:13px;letter-spacing:.08em!important;text-transform:uppercase;font-weight:600;color:var(--ink-55)}
.sv-band .sv-cell .sv-big .elementor-heading-title{font-size:22px;font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
@media(max-width:1024px){.sv-band .sv-cell:nth-child(odd){border-left:0}
  .sv-band .sv-cell:nth-child(n+3){border-top:1px solid var(--line)}}

/* ---------- 03 ÍNDICE DE TRATAMIENTOS ---------- */
.sv-index .sv-rowlink{position:relative;border-bottom:1px solid var(--line);transition:background .3s}
.sv-index .sv-rowlink:first-of-type{border-top:1px solid var(--line)}
.sv-index .sv-rowlink .sv-name .elementor-heading-title{
  font-size:clamp(1.5rem,3vw,2.5rem);font-weight:500;letter-spacing:-.02em;
  transition:transform .5s cubic-bezier(.22,1,.36,1),color .3s}
.sv-index .sv-rowlink .sv-idx .elementor-heading-title{font-size:13px;color:var(--ink-40);font-variant-numeric:tabular-nums}
.sv-index .sv-rowlink .sv-desc p{font-size:14px;color:var(--ink-60);margin:0}
.sv-index .sv-rowlink .sv-reveal{
  position:absolute;right:16%;top:50%;transform:translateY(-50%) scale(.96);
  width:270px;opacity:0;pointer-events:none;transition:opacity .45s,transform .45s cubic-bezier(.22,1,.36,1);z-index:2}
.sv-index .sv-rowlink .sv-reveal img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-card);display:block;width:100%}
@media(hover:hover) and (min-width:1025px){
  .sv-index .sv-rowlink:hover .sv-name .elementor-heading-title{transform:translateX(16px);color:var(--orange-dk)}
  .sv-index .sv-rowlink:hover .sv-reveal{opacity:1;transform:translateY(-50%) scale(1)}
}
@media(max-width:1024px){.sv-index .sv-rowlink .sv-reveal{display:none}}

/* ---------- 04 ÁREAS EN STICKY ---------- */
@media(min-width:1025px){
  .sv-sticky{position:sticky;top:120px;align-self:flex-start}
}
.sv-area{border-top:1px solid var(--line)}
.sv-area .sv-idx .elementor-heading-title{font-size:13px;color:var(--orange-dk);font-variant-numeric:tabular-nums}
.sv-area .sv-row{border-top:1px solid var(--line)}

/* ---------- 05 BANDA CLÍNICA (oscura) ---------- */
.sv-dark{background:var(--ink)}
.sv-dark .sv-row{border-top:1px solid var(--line-w)}
.sv-dark .sv-row .sv-label .elementor-heading-title{color:rgba(255,255,255,.55)}
.sv-dark .sv-row .sv-value p{color:#fff}
.sv-bleed-l img{width:100%;height:100%;object-fit:cover;display:block}
.sv-bleed-l{border-radius:0 var(--r-img) var(--r-img) 0;overflow:hidden}
@media(min-width:1025px){
  .sv-bleed-l{width:calc(50vw - 24px);margin-left:calc(-50vw + 50% + 0px);overflow:hidden}
  .sv-bleed-l img{aspect-ratio:4/5}
}
.sv-unis .elementor-icon-list-items{display:flex;gap:0;flex-wrap:wrap}
.sv-unis .elementor-icon-list-item{padding:0 22px;border-left:1px solid var(--line-w);
  font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.sv-unis .elementor-icon-list-item:first-child{border-left:0;padding-left:0}

/* ---------- 06 MOSAICO DE INSTALACIONES ---------- */
.sv-mosaic .sv-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s1) var(--s1)}
.sv-mosaic .m-a{grid-column:1/8}   .sv-mosaic .m-a img{aspect-ratio:4/3}
.sv-mosaic .m-b{grid-column:8/13}  .sv-mosaic .m-b img{aspect-ratio:3/4}
.sv-mosaic .m-c{grid-column:1/5}   .sv-mosaic .m-d{grid-column:5/9}  .sv-mosaic .m-e{grid-column:9/13}
.sv-mosaic .m-c img,.sv-mosaic .m-d img,.sv-mosaic .m-e img{aspect-ratio:1/1}
.sv-mosaic figure,.sv-mosaic .elementor-widget-image{overflow:hidden;border-radius:var(--r-img)}
.sv-mosaic img{width:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.sv-mosaic .sv-cellwrap:hover img{transform:scale(1.03)}
.sv-mosaic .sv-cap .sv-label .elementor-heading-title{font-size:12px;letter-spacing:.1em!important;text-transform:uppercase;color:var(--ink-55);font-weight:600}
.sv-mosaic .sv-cap p{font-size:15px;line-height:1.5;margin:0;padding-bottom:12px;border-bottom:1px solid var(--line)}
@media(max-width:1024px){
  .sv-mosaic .sv-grid{grid-template-columns:repeat(6,1fr);gap:var(--s3)}
  .sv-mosaic .m-a{grid-column:1/7} .sv-mosaic .m-b{grid-column:1/4} .sv-mosaic .m-c{grid-column:4/7}
  .sv-mosaic .m-d{grid-column:1/4} .sv-mosaic .m-e{grid-column:4/7}
}
@media(max-width:767px){
  .sv-mosaic .sv-grid{grid-template-columns:1fr}
  .sv-mosaic [class^="m-"]{grid-column:1/-1}
}

/* ---------- 08 CÓMO LLEGAR ---------- */
.sv-loc .sv-row{border-top:1px solid var(--line)}
.sv-othercard{border:1px solid var(--line);border-radius:var(--r-img);overflow:hidden}
.sv-othercard img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}

/* ---------- 09 CIERRE ---------- */
.sv-close{min-height:min(78vh,720px)}
.sv-close .elementor-heading-title{font-size:clamp(2.4rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.03em}

/* Botones: estados */
.sv .elementor-button{transition:background-color .2s,transform .2s}
.sv .elementor-button:hover{transform:translateY(-1px)}
.sv .sv-btn-primary .elementor-button:hover{background-color:var(--orange-dk)!important}
.sv .sv-link-text .elementor-button{padding:0!important;border-radius:0!important;border-bottom:1px solid currentColor}
.sv .elementor-widget-image img{border-radius:var(--r-img)}
.sv-sticky img{border-radius:var(--r-img)}
.sv-mobilebar a:first-child{border-top-right-radius:var(--r-card)}
.sv-mobilebar a:last-child{border-top-left-radius:var(--r-card)}

/* Barra de cita persistente (móvil) */
.sv-mobilebar{display:none}
@media(max-width:767px){
  .sv-mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:998;height:56px}
  .sv-mobilebar a{flex:1;display:flex;align-items:center;justify-content:center;
    font:600 15px/1 Montserrat,sans-serif;color:#fff;background:var(--ink);min-height:44px}
  .sv-mobilebar a+a{background:var(--orange)}
  body.single-clinicas{padding-bottom:56px}
}
@media(prefers-reduced-motion:reduce){
  .sv *,.sv *::before,.sv *::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ---------- 06 EQUIPO ---------- */
.sv-team .sv-team-grid{display:grid;gap:30px 20px;grid-template-columns:repeat(2,1fr)}
@media(min-width:768px){.sv-team .sv-team-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1025px){
  .sv-team .sv-team-3{grid-template-columns:repeat(3,1fr)}
  .sv-team .sv-team-5{grid-template-columns:repeat(5,1fr)}
  /* desfase alterno: ritmo editorial sin alterar la escala de las caras */
  .sv-team .sv-team-grid{margin-bottom:44px}
  .sv-team .sv-person:nth-child(even){transform:translateY(44px)}
}
.sv-team .sv-person .elementor-widget-image{overflow:hidden;border-radius:var(--r-img);line-height:0}
.sv-team .sv-person img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:0;
  transition:transform .6s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (min-width:1025px){.sv-team .sv-person:hover img{transform:scale(1.04)}}
.sv-team .sv-pbody{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);
  transition:border-color .3s}
@media(hover:hover) and (min-width:1025px){.sv-team .sv-person:hover .sv-pbody{border-color:var(--orange)}}
.sv-team .sv-idx .elementor-heading-title{font-size:12px;font-weight:500;color:var(--ink-40);font-variant-numeric:tabular-nums}
.sv-team .sv-name .elementor-heading-title{font-size:clamp(1.02rem,1.3vw,1.28rem);font-weight:500;
  letter-spacing:-.02em;line-height:1.18;text-wrap:balance}
.sv-team .sv-role .elementor-heading-title{font-size:11.5px;font-weight:600;letter-spacing:.1em!important;
  text-transform:uppercase;color:var(--ink-55);line-height:1.35}
/* la ficha de direccion clinica lleva el acento naranja */
.sv-team .sv-lead-person .sv-role .elementor-heading-title{color:var(--orange-dk)}
.sv-team .sv-pnote p{font-size:13px;line-height:1.5;color:var(--ink-60);margin:0}
@media(max-width:1024px){.sv-team .sv-person:nth-child(even){transform:none}}
/* Elementor mete 10px de padding y 20px de gap por defecto en cada contenedor:
   dentro de la ficha estorban, la foto tiene que ir a sangre y el texto pegado. */
.sv-team .sv-person{padding:0!important;gap:0!important}
.sv-team .sv-pbody{padding:13px 0 0!important;gap:0!important}

/* los items de grid no encogen por debajo de su contenido (min-width:auto)
   y ensanchaban la pagina entera en movil */
.sv-team .sv-team-grid>*{min-width:0}
.sv-team .sv-name .elementor-heading-title,
.sv-team .sv-role .elementor-heading-title,
.sv-team .sv-pnote p{overflow-wrap:break-word}

/* 06b MOSAICO ampliado (fotos editadas, sep 2026) */
.sv-mosaic .m-f{grid-column:1/6}.sv-mosaic .m-f img{aspect-ratio:3/4}
.sv-mosaic .m-g{grid-column:6/13}.sv-mosaic .m-g img{aspect-ratio:4/3}
.sv-mosaic .m-h{grid-column:1/5}.sv-mosaic .m-i{grid-column:5/9}.sv-mosaic .m-j{grid-column:9/13}
.sv-mosaic .m-h img,.sv-mosaic .m-i img,.sv-mosaic .m-j img{aspect-ratio:1/1}
@media(max-width:1024px){.sv-mosaic .m-f{grid-column:1/4}.sv-mosaic .m-g{grid-column:4/7}.sv-mosaic .m-h{grid-column:1/7}.sv-mosaic .m-i{grid-column:1/4}.sv-mosaic .m-j{grid-column:4/7}}

/* 10 HUB de clínicas (/clinicas/) */
.sv-hub .sv-hubgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%}
.sv-hub .sv-othercard{background:#fff}
.sv-hub .sv-othercard .sv-h3 .elementor-heading-title{font-size:clamp(1.4rem,2.2vw,1.9rem)}
@media(max-width:767px){.sv-hub .sv-hubgrid{grid-template-columns:1fr}}
