/* Grupo Telos · fotos del equipo (generado por scripts/ux-fotos.mjs): personas recortadas sobre el arco, fotos de
   ambiente, caras en los pasos y la persona del cierre. Usa los tokens de .tx y .mt
   con valores de reserva (Contacto no carga ninguno de los dos). */

/* persona recortada: el arco empieza a un 16 % de altura y la cabeza sale por encima */
/* width:100%: con justify-items:center en el contenedor (hero de Método), Chrome encoge el bloque a 0 */
.tf-persona{position:relative;width:100%;margin:0;aspect-ratio:4/5;isolation:isolate}
.tf-persona::before{content:"";position:absolute;inset:16% 0 0;z-index:-1;border-radius:999px 999px var(--r,18px) var(--r,18px);background:var(--tf-fondo,var(--papel-2,#EFE7D8))}
.tf-persona img[src]{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 22px 20px rgba(42,39,36,.16))}
.tx-oscuro .tf-persona{--tf-fondo:rgba(217,204,166,.16)}
/* en las secciones de fondo arena el arco va en blanco para que se vea */
.tx-tono .tf-persona{--tf-fondo:var(--blanco,#FFFDF9)}

/* foto de ambiente */
.tf-amb{width:100%;margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r,18px);background:var(--papel-2,#EFE7D8);box-shadow:0 24px 48px -36px rgba(42,39,36,.5)}
.tf-amb img[src]{width:100%;height:100%;max-width:none;object-fit:cover;display:block}

/* hero */
.tx-hero-visual .tf-hero{width:100%}
.tx-hero-visual .tx-arco img[src]{object-position:50% 40%}
.tf-equipo-hero{position:relative}
.tf-caras{position:absolute;left:-8%;bottom:7%;z-index:2;display:flex;align-items:center;gap:14px;padding:8px 18px 8px 8px;background:var(--blanco,#FFFDF9);border-radius:999px;box-shadow:0 18px 32px -20px rgba(42,39,36,.55)}
.tf-caras-fotos{display:flex}
.tf-caras-fotos img[src]{width:44px;height:44px;border-radius:50%;border:3px solid var(--blanco,#FFFDF9);object-fit:cover;max-width:none}
.tf-caras-fotos img[src]+img{margin-left:-14px}
.tx .tf-caras-txt{margin:0;font-size:.8rem;line-height:1.25;font-weight:600;color:var(--tinta,#2A2724)}

/* junto al título de una sección (columna lateral) */
.tf-mini{max-width:260px;margin-top:30px}

/* dos fotos superpuestas */
.tf-duo{position:relative;padding-bottom:14%;max-width:520px;width:100%;justify-self:center}
.tf-duo>:first-child{width:80%}
.tf-duo>.tf-duo-2{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1;border:6px solid var(--papel,#F7F3EC);border-radius:calc(var(--r,18px) + 6px)}
.tf-duo>.tf-persona.tf-duo-2{background:var(--papel,#F7F3EC)}
.tx-media.tx-media-inv .tf-duo{order:2}

/* fila de fotos dentro de una sección */
.tf-bloque{margin-top:30px}
.tf-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.tf-fila .tf-persona::before{inset:16% 0 0}
.tx .tf-pie{margin:12px 0 0;font-size:.85rem;color:var(--suave,#625B51)}

/* caras en los pasos de «Cómo funciona» (junto al número) */
.tf-cara{position:absolute;left:42px;top:-6px;z-index:1;width:68px;height:68px;border-radius:50%;overflow:hidden;background:var(--arena,#D9CCA6);border:4px solid var(--papel-2,#EFE7D8);box-shadow:0 10px 22px -14px rgba(42,39,36,.55)}
.tf-cara img[src]{width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--x,50%) var(--y,10%);transform:scale(var(--z,1));transform-origin:var(--x,50%) var(--y,10%)}

/* cierre con persona: texto a la izquierda y persona a la derecha, a la misma altura (Julián, 2026-10-29) */
.tx-final-in:has(>.tf-final-txt),.mt-final-in:has(>.tf-final-txt){display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,6vw,88px);align-items:center;text-align:left}
.tf-final-txt{position:relative;min-width:0}
.tf-final-txt>*{position:relative}
.tx-final .tf-final-txt .tx-enso{left:42%}
.tx-final .tf-final-txt .tx-h2,.mt-final .tf-final-txt .mt-h2{margin:0;max-width:18ch}
.tx-final .tf-final-txt .tx-final-txt{margin-top:16px;max-width:52ch}
.tx-final .tf-final-txt .tx-acciones,.tx-final .tf-final-txt .tx-nota,.mt-final .tf-final-txt .mt-acciones{justify-content:flex-start}
.mt-final .tf-final-txt .mt-sub{margin-left:0}
.mt-final .tf-final-txt .mt-nota{text-align:left}
.tf-final-foto{justify-self:center;max-width:340px}
.tx-final .tf-final-foto{--tf-fondo:rgba(217,204,166,.16)}
.mt-final .tf-final-foto{--tf-fondo:var(--blanco,#FFFDF9)}

/* Método: hero con persona (en lugar del ensō con el lema) */
.mt-hero-visual.tf-mt-hero{position:relative;top:auto;right:auto;display:block;width:100%;max-width:400px;aspect-ratio:auto;opacity:1;pointer-events:auto}
.tf-mt-hero .mt-lema{margin:20px auto 0;max-width:none;font-size:clamp(1.3rem,2.2vw,1.7rem)}
.mt-cab:has(>.tf-flota){display:flow-root}
.tf-flota{float:right;width:200px;margin:0 0 12px 28px}

/* Contacto: detalles y foto a la izquierda, formulario a la derecha; la firma, como etiqueta sobre la foto */
.elementor-top-section:has(.tf-contacto)>.elementor-container{flex-direction:row-reverse}
.tf-contacto{position:relative;width:100%;margin-top:32px;max-width:380px;padding-bottom:30px} /* width: la columna de Elementor es flex y lo encogería a 0 */
.tf-firma{position:absolute;left:-14px;bottom:0;z-index:2;display:flex;align-items:center;gap:12px;margin:0;padding:8px 20px 8px 8px;max-width:310px;background:#FFFDF9;border-radius:999px;box-shadow:0 18px 32px -20px rgba(42,39,36,.55);font-size:.92rem;line-height:1.35;color:#2A2724}
.tf-firma-cara{flex:none;width:48px;height:48px;border-radius:50%;overflow:hidden;background:#D9CCA6}
.tf-firma-cara img[src]{width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 8%}

@media (max-width:860px){
  .tx-final-in:has(>.tf-final-txt),.mt-final-in:has(>.tf-final-txt){grid-template-columns:minmax(0,1fr);gap:36px}
  .tf-final-foto{max-width:240px}
  .tf-firma{left:0}
  .tx-media.tx-media-inv .tf-duo{order:0}
  .tf-mini{max-width:200px;margin-top:22px}
  .tf-caras{left:4%}
  .mt-hero-visual.tf-mt-hero{max-width:280px;justify-self:start}
  .tf-flota{width:150px;margin-left:18px}
  /* pasos en columna: la cara pasa a la derecha para no tapar el título */
  .tf-cara{left:auto;right:0;top:-2px;width:54px;height:54px}
  .tx-paso:has(.tf-cara)>h3{padding-right:64px}
}
@media (max-width:560px){
  /* en el móvil la foto va encima del título: más pequeña para que el título siga en la primera pantalla */
  .tx-hero-visual .tf-hero,.tf-equipo-hero{max-width:220px;margin-inline:auto}
  .tf-equipo-hero .tf-hero{max-width:none}

}

/* fondos de sección: foto de stock difuminada (ya viene difuminada en el WebP) y un velo de los colores de la web encima,
   para que el texto se lea; en el móvil, la versión de 900 px (scripts/ux-fotos.mjs, FONDO_PAGINA) */
.tf-fondo{position:relative;isolation:isolate}
.tf-fondo::before,.tf-fondo::after{content:"";position:absolute;inset:0;pointer-events:none}
.tf-fondo::before{z-index:-2;background:var(--tf-bg) center/cover no-repeat}
.tf-fondo::after{z-index:-1}
.tf-fondo-claro::after{background:linear-gradient(180deg,rgba(239,231,216,.9),rgba(239,231,216,.8) 50%,rgba(239,231,216,.9))}
.tf-fondo-oscuro::after{background:rgba(42,39,36,.8)}
/* barrios: la foto se reconoce (menos difuminada), así que el velo es más denso */
.tf-fondo-barrio::after{background:rgba(239,231,216,.9)}
@media (max-width:860px){.tf-fondo::before{background-image:var(--tf-bg-m)}}
