﻿/*
Theme Name:  Trans-Formación
Theme URI:   https://avanzatecs.com
Author:      AvanzaTecs
Author URI:  https://avanzatecs.com
Description: Tema personalizado para el sitio web del Colectivo Trans-Formación.
             ONG guatemalteca de derechos humanos para hombres trans y personas disidentes de género.
Version:     2.1.8
Text Domain: tf-theme
*/
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@font-face{font-family:'Proxima Nova';src:url('assets/fonts/proxima-nova/Proxima Nova Font.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('assets/fonts/proxima-nova/Proxima Nova Font.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Interstate';src:url('assets/fonts/interstate/InterstateRegularCondense.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Interstate';src:url('assets/fonts/interstate/InterstateBoldCondensed.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Interstate';src:url('assets/fonts/interstate/InterstateBlackCondensed.otf') format('opentype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url('assets/fonts/interstate/InterstateBoldCondensed.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
/* El body se organiza como columna flexible para que el footer siempre quede
   pegado al fondo, incluso en paginas internas con poco contenido. */
body{font-family:'Proxima Nova','DM Sans',sans-serif;color:var(--dark);background:var(--off-white);overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh}
main{flex:1 0 auto;width:100%}
:root{--blue:#467cd4;--light-blue:#a7c8fd;--dark-blue:#094798;--pink:#f7b7d1;--malva:#df9bcc;--purple:#973cc2;--green:#54ac58;--light-green:#6cc16e;--yellow:#edca0c;--light-yellow:#f6e4a6;--black:#000;--dark:#191919;--mid:#4a4a4a;--beige:#e4dfd9;--off-white:#f3f2ee;--font-heading:'Interstate','DM Serif Display',serif;--font-body:'Proxima Nova','DM Sans',sans-serif;--light-pink:#fde8f2;--tf-asset-overlay:linear-gradient(100deg,rgba(239,247,255,.18) 0%,rgba(250,244,253,.3) 52%,rgba(255,255,255,.68) 100%),radial-gradient(circle at 24% 28%,rgba(255,255,255,.42) 0%,rgba(255,255,255,0) 48%)}

/* NAV */
.tf-site-header{position:sticky;top:0;left:0;right:0;z-index:190;background:rgba(243,242,238,0.94);isolation:isolate}
.tf-site-nav{position:relative;z-index:1;min-height:78px;padding:8px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(243,242,238,0.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(70,124,212,0.16)}
.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav-logo img.custom-logo{display:block;width:auto!important;height:auto!important;max-width:248px;max-height:64px;object-fit:contain}
.admin-bar .tf-site-header{top:32px}
@media(max-width:782px){.admin-bar .tf-site-header{top:46px}}
.logo-icon-wrap{width:50px;height:50px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-icon-wrap img{width:50px;height:50px;object-fit:contain}
.logo-text-img{height:46px;width:auto;max-width:260px;object-fit:contain}
.nav-links{display:flex;gap:18px;list-style:none;min-width:0;justify-content:center;align-items:center;flex:1}
.nav-links a{font-family:var(--font-body);font-size:12px;font-weight:700;color:var(--mid);text-decoration:none;text-transform:uppercase;letter-spacing:.4px;transition:color .2s}
.nav-links a:hover{color:var(--blue)}
.nav-cta{background:var(--dark);color:#fff;padding:9px 18px;border-radius:50px;font-family:var(--font-body);font-size:12px;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.4px;transition:background .2s;flex-shrink:0}
.nav-cta:hover{background:var(--blue)}

/* FLAG */
.flag-stripe{height:5px;flex-shrink:0;background:linear-gradient(90deg,var(--dark-blue) 0%,var(--blue) 18%,var(--pink) 18%,var(--pink) 36%,var(--green) 36%,var(--green) 54%,var(--yellow) 54%,var(--yellow) 72%,var(--beige) 72%,var(--beige) 100%)}
.flag-thin{height:3px;background:linear-gradient(90deg,var(--dark-blue) 0%,var(--blue) 18%,var(--pink) 18%,var(--pink) 36%,var(--green) 36%,var(--green) 54%,var(--yellow) 54%,var(--yellow) 72%,var(--beige) 72%,var(--beige) 100%)}

/* HERO */
.hero{min-height:calc(100vh - 102px);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}
.hero-bg{position:absolute;inset:0;overflow:hidden;background-color:#eef4fb}
.hero-bg:not(.has-image){background-image:var(--tf-standard-bg);background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-bg::after{content:'';position:absolute;inset:0;background-image:var(--tf-asset-overlay);pointer-events:none}
.hero-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hc{position:absolute;border-radius:50%;opacity:0.13}
.hc1{width:520px;height:520px;background:var(--blue);top:-120px;right:-100px}
.hc2{width:380px;height:380px;background:var(--pink);bottom:-90px;left:-90px}
.hc3{width:180px;height:180px;background:var(--blue);bottom:120px;right:220px}
.hero-content{position:relative;z-index:2;text-align:center;padding:0 24px;max-width:820px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(243,242,238,0.9);border:1px solid rgba(70,124,212,0.35);border-radius:50px;padding:6px 16px;font-size:11px;font-weight:700;color:var(--dark-blue);margin-bottom:24px;letter-spacing:1px;text-transform:uppercase}
.badge-dot{width:7px;height:7px;background:#4ade80;border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 6px #4ade80}50%{box-shadow:0 0 14px #4ade80}}
.hero h1{font-family:var(--font-heading);font-size:clamp(40px,7vw,74px);line-height:1.05;margin-bottom:20px;color:var(--dark);text-transform:uppercase}
.italic{font-style:italic;color:var(--blue)}
.italic-pink{font-style:italic;color:var(--purple)}
.hero-sub{font-size:clamp(14px,1.8vw,17px);color:var(--mid);margin-bottom:36px;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.8}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn-p{background:var(--dark);color:#fff;padding:13px 28px;border-radius:50px;font-weight:500;font-size:14px;text-decoration:none;transition:all .2s;border:2px solid var(--dark)}
.btn-p:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}
.btn-o{background:transparent;color:var(--dark);padding:13px 28px;border-radius:50px;font-weight:500;font-size:14px;text-decoration:none;border:2px solid rgba(26,26,46,0.3);transition:all .2s}
.btn-o:hover{background:var(--pink);border-color:var(--pink);transform:translateY(-2px)}
.hero-stats{display:flex;margin-top:52px;justify-content:center;flex-wrap:wrap}
.stat{text-align:center;padding:0 28px;border-right:1px solid rgba(70,124,212,0.25)}
.stat:last-child{border-right:none}
.stat-num{font-family:var(--font-heading);font-size:36px;color:var(--blue);line-height:1}
.stat-label{font-size:10px;color:var(--mid);margin-top:5px;text-transform:uppercase;letter-spacing:.8px}

/* TICKER */
.ticker-wrap{background:var(--dark);padding:13px 0;overflow:hidden}
.ticker-track{display:flex;white-space:nowrap;animation:ticker 26s linear infinite}
.ticker-item{display:inline-flex;align-items:center;gap:10px;padding:0 36px;font-size:13px;font-weight:500;color:rgba(255,255,255,0.65)}
.ticker-item strong{color:#5d96ef}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:72px 24px}
.inner{max-width:1000px;margin:0 auto}
.stag{font-size:11px;font-weight:600;color:var(--blue);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px}
.stitle{font-family:var(--font-heading);font-size:clamp(26px,4vw,42px);line-height:1.1;color:var(--dark);margin-bottom:12px;text-transform:uppercase}
.ssub{font-size:15px;color:var(--mid);line-height:1.85;max-width:580px}

/* HISTORIA */
.historia{background:linear-gradient(135deg,rgba(167,200,253,.42) 0%,#fff 60%,rgba(247,183,209,.35) 100%)}
.historia-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-bottom:52px}
.historia .ssub{margin-bottom:18px}
.himg{border-radius:22px;overflow:hidden;aspect-ratio:4/3;position:relative}
.himg img{width:100%;height:100%;object-fit:cover}
.himg-label{position:absolute;bottom:14px;left:14px;background:rgba(26,26,46,0.8);color:#fff;padding:8px 14px;border-radius:10px;font-size:12px;font-weight:500}
.tl-title{font-family:var(--font-heading);font-size:22px;color:var(--dark);margin-bottom:28px;text-align:center;text-transform:uppercase}
.timeline{position:relative;padding-left:32px}
.timeline::before{content:'';position:absolute;left:10px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--blue),var(--pink),var(--blue))}
.tli{position:relative;margin-bottom:26px;padding-left:22px}
.tli-dot{position:absolute;left:-26px;top:4px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--blue);transition:all .3s}
.tli:nth-child(even) .tli-dot{border-color:var(--pink)}
.tli:hover .tli-dot{background:var(--blue);transform:scale(1.2)}
.tli-year{font-size:11px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}
.tli:nth-child(even) .tli-year{color:var(--purple)}
.tli-t{font-weight:600;font-size:14px;color:var(--dark);margin-bottom:3px}
.tli-d{font-size:13px;color:var(--mid);line-height:1.7}
.timeline.timeline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;padding-left:0}
.timeline.timeline-grid::before{display:none}
.timeline-grid .tli{margin-bottom:0;padding:22px;border:1px solid rgba(70,124,212,.16);border-radius:8px;background:rgba(255,255,255,.72)}
.timeline-grid .tli-dot{position:static;margin-bottom:12px}

/* QUOTE */
.quote-band{background:linear-gradient(135deg,var(--dark),var(--black));padding:60px 24px;text-align:center;position:relative;overflow:hidden}
.quote-band::before{content:'"';position:absolute;font-family:var(--font-heading);font-size:280px;color:rgba(167,200,253,0.08);top:-50px;left:50%;transform:translateX(-50%);line-height:1}
.qt{font-family:var(--font-heading);font-style:normal;font-size:clamp(18px,3vw,30px);color:#fff;max-width:760px;margin:0 auto 18px;line-height:1.55;position:relative;z-index:1;text-transform:uppercase}
.qs{font-size:12px;color:rgba(255,255,255,0.45);letter-spacing:.5px;position:relative;z-index:1}
.qa{display:inline-block;width:36px;height:2px;background:var(--blue);margin:0 10px;vertical-align:middle}

/* MISIÓN / VISIÓN */
.mv{background:linear-gradient(135deg,rgba(167,200,253,.44),rgba(247,183,209,.38))}
.mv-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.mv-card{background:#fff;border-radius:8px;padding:32px;border:1px solid rgba(70,124,212,0.15);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.mv-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(9,71,152,0.12)}
.mv-icon{width:64px;height:64px;margin-bottom:18px;flex-shrink:0}
.mv-icon svg{width:64px;height:64px}
.mv-card h2,.mv-card h3{font-family:var(--font-heading);font-size:24px;color:var(--dark);margin-bottom:12px;text-transform:uppercase}
.mv-card p{font-size:13px;color:var(--mid);line-height:1.9}

/* EJES */
.ejes{background:#fff}
.ejes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:18px;margin-top:32px}
.eje{--eje-primary:var(--blue);--eje-secondary:var(--light-blue);--eje-bg:#fff;height:100%;border-radius:8px;padding:26px;border:1px solid rgba(70,124,212,.16);border-color:color-mix(in srgb,var(--eje-primary) 26%,transparent);background:linear-gradient(135deg,var(--eje-bg),#fff);position:relative;overflow:hidden;transition:all .25s}
.eje::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--eje-primary),var(--eje-secondary));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.eje:hover::after{transform:scaleX(1)}
.eje:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(70,124,212,.12);box-shadow:0 14px 36px color-mix(in srgb,var(--eje-primary) 18%,transparent)}
.eje-salud{--eje-primary:var(--blue);--eje-secondary:var(--green);--eje-bg:rgba(167,200,253,.22)}
.eje-comunitaria{--eje-primary:var(--pink);--eje-secondary:var(--light-blue);--eje-bg:rgba(247,183,209,.23)}
.eje-incidencia{--eje-primary:var(--black);--eje-secondary:var(--yellow);--eje-bg:rgba(246,228,166,.24)}
.eje-empoderamiento{--eje-primary:var(--green);--eje-secondary:var(--yellow);--eje-bg:rgba(108,193,110,.18)}
.eje-num{font-family:var(--font-heading);font-size:46px;color:var(--eje-primary);opacity:0.18;line-height:1;margin-bottom:4px}
.eje-incidencia .eje-num{opacity:.22}
.eje h2,.eje h3{font-size:12px;font-weight:700;color:var(--dark);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.eje p{font-size:13px;color:var(--mid);line-height:1.7}

/* FOTOS MOSAICO */
.photos{background:var(--dark);padding:64px 0}
.photos-inner{max-width:1000px;margin:0 auto;padding:0 24px}
.photos .stag{color:rgba(167,200,253,0.86)}
.photos .stitle{color:#fff}
.photos .ssub{color:rgba(255,255,255,.78);max-width:680px}
.photos .splide{margin-top:32px}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:210px 210px 210px;gap:12px;margin-top:32px}
.mi{border-radius:14px;overflow:hidden;position:relative;background:#2a2a4a}
.mi img{width:100%;height:100%;object-fit:contain;transition:transform .5s}
.mi:hover img{transform:scale(1.07)}
.mi.big{grid-column:span 2;grid-row:span 2}
.mi.wide{grid-column:span 2}
.mo{position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(26,26,46,0.85));display:flex;align-items:flex-end;padding:14px;opacity:0;transition:opacity .3s}
.mi:hover .mo,.mi:focus-within .mo{opacity:1}
.mo span{font-size:12px;font-weight:500;color:#fff}
.tf-gallery-open{display:block;border-radius:14px;color:inherit;text-decoration:none}
.tf-gallery-open:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.tf-gallery-modal{position:fixed;inset:0;z-index:520;display:none;place-items:center;padding:clamp(12px,2vw,28px);isolation:isolate}
.tf-gallery-modal.is-open{display:grid}
.tf-gallery-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(12,18,32,.76);backdrop-filter:blur(5px);cursor:pointer}
.tf-gallery-modal-panel{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);width:min(1180px,100%);height:min(82vh,780px);height:min(82dvh,780px);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:20px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.42)}
.tf-gallery-modal-close{position:absolute;top:14px;right:14px;z-index:3;display:flex;width:42px;height:42px;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:rgba(25,25,25,.92);color:#fff;font-size:27px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.tf-gallery-modal-close:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.tf-gallery-modal-media{display:flex;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;background:#101827}
.tf-gallery-modal-media img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.tf-gallery-modal-info{min-width:0;min-height:0;align-self:stretch;overflow-y:auto;padding:70px 32px 36px;overscroll-behavior:contain;scrollbar-gutter:stable}
.tf-gallery-modal-info h2{margin:12px 0 18px;font-family:var(--font-heading);font-size:clamp(26px,3vw,40px);line-height:1.05;color:var(--dark);text-transform:uppercase;overflow-wrap:anywhere}
.tf-gallery-modal-date{margin-bottom:16px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.tf-gallery-modal-copy{padding:16px 18px;border:1px solid rgba(70,124,212,.16);border-radius:14px;background:rgba(167,200,253,.16)}
.tf-gallery-modal-copy + .tf-gallery-modal-copy{margin-top:12px}
.tf-gallery-modal-copy p{margin:0;color:var(--mid);font-size:14px;line-height:1.68;overflow-wrap:anywhere}
.tf-gallery-modal-alt{border:0;padding:0;background:transparent}
.tf-gallery-modal-alt p{color:var(--dark);font-size:15px;line-height:1.7}
.tf-gallery-modal-caption{background:rgba(243,242,238,.78)}
.tf-modal-open{overflow:hidden}

/* NUMEROS */
.nb{background:linear-gradient(135deg,var(--dark-blue),var(--blue) 44%,var(--green) 72%,var(--yellow));padding:52px 24px}
.nb-inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.nb-num{font-family:var(--font-heading);font-size:46px;color:#fff;line-height:1;margin-bottom:5px}
.nb-label{font-size:10px;font-weight:600;color:rgba(255,255,255,0.8);text-transform:uppercase;letter-spacing:.8px}

/* SERVICIOS */
.servicios{background:linear-gradient(135deg,rgba(167,200,253,.44),rgba(228,223,217,.62),rgba(247,183,209,.3))}
.srv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:32px}
.srv-card{border-radius:8px;padding:28px;background:#fff;border:1px solid rgba(70,124,212,0.12);transition:all .25s}
.srv-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(9,71,152,0.1)}
.srv-icon-wrap{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.srv-icon-wrap svg{width:26px;height:26px}
.srv-card h2,.srv-card h3{font-family:var(--font-heading);font-size:17px;margin-bottom:10px;color:var(--dark);text-transform:uppercase}
.srv-list{list-style:none;margin-top:8px}
.srv-list li{font-size:12px;color:var(--mid);padding:5px 0;display:flex;align-items:center;gap:7px;border-bottom:1px solid rgba(70,124,212,0.08)}
.srv-list li:last-child{border-bottom:none}
.ck{width:14px;height:14px;border-radius:50%;background:var(--blue);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ck-p{background:var(--pink)}.ck-d{background:var(--dark)}.ck-g{background:var(--green)}.ck-a{background:var(--yellow)}.ck-v{background:var(--purple)}
.ck svg{width:7px;height:7px}

/* CONTACTO */
.contacto{background:linear-gradient(135deg,var(--dark) 0%,var(--black) 64%,#101010 100%)!important;color:#fff}
.contacto .stag{color:rgba(167,200,253,0.95)}
.contacto .stitle{color:#fff;text-shadow:0 1px 16px rgba(0,0,0,.2)}
.contacto .ssub{color:rgba(255,255,255,0.78)}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:44px;align-items:start}
.contact-btns{display:flex;flex-direction:column;gap:14px}
.cbtn{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:16px;text-decoration:none;font-weight:600;font-size:15px;transition:all .25s;width:100%}
.cbtn:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,0.3)}
.cbtn-wa{background:#25D366;color:#fff}
.cbtn-wa:hover{background:#1ebe5d}
.cbtn-mail{background:rgba(255,255,255,0.12);color:#fff;border:1px solid rgba(255,255,255,0.22)}
.cbtn-mail:hover{background:rgba(70,124,212,0.22);border-color:var(--blue)}
.cbtn-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(255,255,255,0.15)}
.cbtn-text{display:flex;flex-direction:column;text-align:left}
.cbtn-label{font-size:11px;font-weight:600;opacity:0.75;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.cbtn-value{font-size:14px;font-weight:600}
.redes-title{font-size:11px;font-weight:700;color:rgba(255,255,255,0.66);text-transform:uppercase;letter-spacing:1px;margin:28px 0 12px}
.redes{display:flex;gap:10px;flex-wrap:wrap}
.red{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.11);border:1px solid rgba(255,255,255,0.2);border-radius:50px;padding:10px 18px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;transition:all .2s}
.red:hover{background:rgba(70,124,212,0.22);border-color:var(--blue);transform:translateY(-2px)}
.cf{background:rgba(255,255,255,0.1);border:1px solid rgba(70,124,212,0.28);border-radius:8px;padding:28px;box-shadow:0 18px 48px rgba(0,0,0,.18);backdrop-filter:blur(10px)}
.cf-title{font-family:var(--font-heading);font-size:20px;color:#fff;margin-bottom:18px;text-transform:uppercase}
.cf-fallback{font-size:13px;color:rgba(255,255,255,0.55);line-height:1.8}
.contacto .ff-el-group label,
.contacto .ff-el-input--label label,
.contacto .ff-el-form-check-label{color:#fff!important;font-weight:700;text-shadow:0 1px 10px rgba(0,0,0,.18)}
.contacto .ff-el-group .ff-el-form-control,
.contacto .ff-el-form-control{background:#fff!important;border:1px solid rgba(70,124,212,.28)!important;color:var(--dark)!important;border-radius:8px!important;box-shadow:none!important}
.contacto .ff-el-group .ff-el-form-control:focus,
.contacto .ff-el-form-control:focus{border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(70,124,212,.22)!important}
.contacto .ff-btn-submit,
.contacto button[type="submit"]{background:var(--blue)!important;border-color:var(--blue)!important;color:var(--dark)!important;border-radius:9px!important;font-weight:700!important;padding:11px 20px!important}
.fg{margin-bottom:12px}
.fg label{display:block;font-size:10px;font-weight:600;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.fg input,.fg textarea{width:100%;background:rgba(255,255,255,0.07);border:1px solid rgba(70,124,212,0.2);border-radius:9px;padding:9px 13px;color:#fff;font-family:var(--font-body);font-size:13px;outline:none;transition:border-color .2s;resize:none}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,0.22)}
.fg input:focus,.fg textarea:focus{border-color:var(--blue)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn-form{width:100%;background:linear-gradient(135deg,var(--blue),var(--light-blue));color:var(--dark);border:none;border-radius:9px;padding:12px;font-family:var(--font-body);font-weight:600;font-size:13px;cursor:pointer;transition:all .2s;margin-top:4px}
.btn-form:hover{opacity:0.85;transform:translateY(-1px)}

footer{background:#0d0d1e;padding:22px;text-align:center;flex-shrink:0}
footer p{font-size:11px;color:rgba(255,255,255,0.7)}
footer span{color:var(--blue)}
.tf-floating-social{position:fixed;right:22px;bottom:22px;z-index:180;display:flex;flex-direction:column-reverse;align-items:center;gap:10px}
.tf-floating-social-main{width:52px;height:52px;border:none;border-radius:50%;background:#fff;box-shadow:0 14px 34px rgba(26,26,46,.24);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:visible;animation:tfFloatInvite 4.8s ease-in-out infinite}
.tf-floating-social-main::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:2px solid rgba(70,124,212,.36);opacity:0;animation:tfFloatPulse 4.8s ease-in-out infinite}
.tf-floating-social-icon{display:block;width:38px!important;height:38px!important;border-radius:50%;object-fit:contain}
.tf-floating-social-mark{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--dark);color:#fff;font-family:var(--font-heading);font-size:15px;font-weight:800;letter-spacing:0}
.tf-floating-social-links{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s,transform .2s}
.tf-floating-social.is-open .tf-floating-social-links{opacity:1;pointer-events:auto;transform:translateY(0)}
.tf-floating-social-link{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;font-size:11px;font-weight:800;box-shadow:0 10px 24px rgba(26,26,46,.2)}
.tf-floating-social-link svg{display:block;width:22px;height:22px}
.tf-floating-social-link.whatsapp{background:#25D366}
.tf-floating-social-link.instagram{background:var(--purple)}
.tf-floating-social-link.facebook{background:#3b82f6}
.tf-floating-social-link.tiktok{background:#111827}
@keyframes tfFloatInvite{0%,72%,100%{transform:translateY(0) scale(1)}76%{transform:translateY(-3px) scale(1.03)}80%{transform:translateY(0) scale(1)}84%{transform:translateY(-2px) scale(1.02)}88%{transform:translateY(0) scale(1)}}
@keyframes tfFloatPulse{0%,72%,100%{opacity:0;transform:scale(.9)}76%{opacity:1;transform:scale(1)}92%{opacity:0;transform:scale(1.24)}}
@media (prefers-reduced-motion: reduce){.tf-floating-social-main,.tf-floating-social-main::after{animation:none}}

/* FADE IN */
.fi{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.fi.visible{opacity:1;transform:translateY(0)}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.hero-badge{animation:fadeUp .6s ease both}
.hero h1{animation:fadeUp .6s ease .1s both}
.hero-sub{animation:fadeUp .6s ease .2s both}
.hero-btns{animation:fadeUp .6s ease .3s both}
.hero-stats{animation:fadeUp .6s ease .4s both}

@media(max-width:700px){
  .nav-links{display:none}
  .historia-grid,.mv-cards,.ct-grid,.frow,.ejes-grid{grid-template-columns:1fr}
  .mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .mi.big,.mi.wide{grid-column:span 2}
  .srv-grid{grid-template-columns:1fr}
  .nb-inner{grid-template-columns:1fr 1fr}
  .stat{border-right:none;padding:10px 20px}
}
/* TESTIMONIOS */
.testimonios { background: linear-gradient(135deg, rgba(167,200,253,.36), rgba(243,242,238,.86)); }
.testimonios .ssub { margin-bottom: 30px; }
.tf-test-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 32px; align-items: stretch; }
.tf-test-splide { margin-top:32px; }
.tf-test-splide .splide__list { align-items:stretch; }
.tf-test-splide .splide__slide { display:flex; height:auto; }
.tf-test-splide .tf-test-card { width:100%; height:100%; }
.tf-test-card { display:flex; flex-direction:column; gap:18px; background:rgba(255,255,255,.96); border-radius:16px; padding:26px; border:1px solid rgba(70,124,212,0.16); position:relative; min-height:230px; box-shadow:0 14px 34px rgba(9,71,152,.1); }
.tf-test-card::before { content: '"'; position: absolute; top: 14px; right: 18px; font-family: var(--font-heading); font-size: 54px; line-height: 1; color: rgba(70,124,212,.14); }
.tf-test-person { display:flex; align-items:center; gap:14px; min-width:0; padding-right:32px; }
.tf-test-foto,.tf-test-initials { flex:0 0 62px; width:62px; height:62px; border-radius:50%; }
.tf-test-foto { display:block; object-fit:cover; }
.tf-test-initials { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--blue),var(--purple)); color:#fff; font-family:var(--font-heading); font-size:20px; letter-spacing:.5px; }
.tf-test-meta { min-width:0; }
.tf-test-nombre { font-family:var(--font-heading); font-size:17px; line-height:1.2; color:var(--dark); margin-bottom:4px; text-transform:uppercase; overflow-wrap:anywhere; }
.tf-test-cargo { font-size:11px; line-height:1.45; color:var(--mid); text-transform:uppercase; letter-spacing:.5px; overflow-wrap:anywhere; }
.tf-test-texto { flex:1; font-size:14px; color:var(--mid); line-height:1.75; overflow-wrap:anywhere; }
.tf-testimonial-open { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:44px; margin-top:auto; padding:11px 15px; border:1px solid rgba(70,124,212,.24); border-radius:999px; background:rgba(167,200,253,.16); color:var(--dark); font:inherit; font-size:12px; font-weight:800; letter-spacing:.35px; text-transform:uppercase; cursor:pointer; transition:background .2s,border-color .2s,color .2s; }
.tf-testimonial-open span { color:var(--blue); font-size:19px; line-height:1; }
.tf-testimonial-open:hover { border-color:var(--blue); background:var(--blue); color:#fff; }
.tf-testimonial-open:hover span { color:#fff; }
.tf-testimonial-open:focus-visible { outline:3px solid var(--yellow); outline-offset:3px; }
.tf-testimonial-modal-panel { grid-template-columns:minmax(0,1.08fr) minmax(410px,.92fr); width:min(1260px,100%); }
.tf-testimonial-modal-media { position:relative; background:linear-gradient(145deg,var(--dark-blue),var(--blue) 55%,var(--purple)); }
.tf-testimonial-modal-media::after { content:'"'; position:absolute; right:clamp(18px,3vw,42px); bottom:-.12em; color:rgba(255,255,255,.18); font-family:var(--font-heading); font-size:clamp(150px,22vw,320px); line-height:.7; pointer-events:none; }
.tf-testimonial-modal-media img { position:relative; z-index:1; object-fit:contain; object-position:center; background:linear-gradient(145deg,var(--dark-blue),var(--blue) 55%,var(--purple)); }
.tf-testimonial-modal-media [data-testimonial-image][hidden] { display:none !important; }
.tf-testimonial-modal-info { display:flex; flex-direction:column; overflow:hidden; }
.tf-testimonial-modal-info h2 { margin-bottom:8px; }
.tf-testimonial-modal-info .tf-gallery-modal-date { margin-bottom:18px; }
.tf-testimonial-modal-copy { flex:1; min-height:0; overflow-y:auto; padding-right:8px; overscroll-behavior:contain; }
.tf-testimonial-full-text { color:var(--mid); font-size:15px; line-height:1.78; overflow-wrap:anywhere; }
.tf-testimonial-full-text > * + * { margin-top:14px; }
.tf-testimonial-modal-navigation { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:10px; margin-top:22px; padding-top:16px; border-top:1px solid rgba(70,124,212,.16); background:#fff; }
.tf-testimonial-modal-navigation button { display:inline-flex; min-height:42px; align-items:center; justify-content:center; gap:7px; padding:9px 13px; border:1px solid rgba(70,124,212,.24); border-radius:999px; background:rgba(167,200,253,.18); color:var(--dark); font:inherit; font-size:11px; font-weight:800; letter-spacing:.25px; text-transform:uppercase; cursor:pointer; }
.tf-testimonial-modal-navigation button:last-child { justify-self:end; }
.tf-testimonial-modal-navigation button:hover:not(:disabled) { border-color:var(--blue); background:var(--blue); color:#fff; }
.tf-testimonial-modal-navigation button:focus-visible { outline:3px solid var(--yellow); outline-offset:2px; }
.tf-testimonial-modal-navigation button:disabled { opacity:.42; cursor:not-allowed; }
.tf-testimonial-position { color:var(--mid); font-size:11px; font-weight:800; white-space:nowrap; }

/* VIDEOS */
.tf-video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 32px; }
.tf-video-section { padding:72px 24px; background:var(--dark); }
.tf-on-dark { color:#fff !important; }
.tf-video-section .stag.tf-on-dark { color:rgba(167,200,253,.86) !important; }
.tf-video-section .ssub { max-width:680px; color:rgba(255,255,255,.78) !important; }
.tf-video-section .splide { margin-top:32px; }
.tf-video-card { display:flex; flex-direction:column; height:100%; border:1px solid rgba(255,255,255,.12); border-radius:14px; overflow:hidden; background:#0f172a; position:relative; }
.tf-video-media { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#000; }
.tf-video-thumb { width: 100%; height: 100%; object-fit: cover; }
.tf-video-play { position:absolute; inset:0; display:flex; width:100%; height:100%; align-items:center; justify-content:center; padding:0; border:0; background:#000; cursor:pointer; overflow:hidden; }
.tf-video-play::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.34)); transition:background .2s; }
.tf-video-play:hover::after { background:rgba(0,0,0,.34); }
.tf-video-play:focus-visible { outline:3px solid var(--yellow); outline-offset:-4px; }
.tf-video-play-icon { position:relative; z-index:2; width:62px; height:62px; filter:drop-shadow(0 8px 18px rgba(0,0,0,.35)); transition:transform .2s; }
.tf-video-play:hover .tf-video-play-icon { transform:scale(1.06); }
.tf-video-play-icon svg { display:block; width:100%; height:100%; }
.tf-video-play-icon circle { fill:#ff0033; }
.tf-video-play-icon path { fill:#fff; }
.tf-video-titulo { position:static; min-height:58px; padding:13px 15px; margin:0; font-family:var(--font-body); font-size:14px; line-height:1.45; font-weight:700; color:#fff; overflow-wrap:anywhere; }
.tf-video-embed { position:absolute; inset:0; }
.tf-video-embed iframe,.tf-video-embed video,.tf-video-media > iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.tf-video-card video { display:block; width:100%; height:100%; object-fit:contain; background:#000; }
.tf-video-external { display:flex; width:100%; height:100%; align-items:center; justify-content:center; padding:24px; color:#fff; text-align:center; font-weight:700; }
.tf-carousel-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 28px; }
.tf-carousel-controls { display: flex; gap: 10px; flex-shrink: 0; }
.tf-carousel-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; cursor: pointer; font-size: 18px; transition: all .2s; }
.tf-carousel-btn:hover { background: var(--blue); color: var(--dark); border-color: var(--blue); }
.tf-video-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 32%); gap: 20px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 4px; padding: 4px 0 14px; scrollbar-width: thin; }
.tf-video-carousel .tf-video-card { scroll-snap-align: start; min-width: 0; }
.splide .mi { height:auto; aspect-ratio:16/9; }
.tf-splide-single .splide__list { justify-content:center; }
.tf-splide-single .splide__slide { max-width:800px; }
.tf-splide-single .mi { height:auto; aspect-ratio:16/9; }
.tf-splide-compact { max-width:760px; margin-left:auto; margin-right:auto; }
.splide .tf-video-card { height: 100%; }
.splide__list { align-items:stretch; }
.splide__slide { min-width:0; }
.splide { isolation:isolate; }
.splide__arrow { z-index:25 !important; width:44px; height:44px; pointer-events:auto !important; background:rgba(255,255,255,.94); opacity:1 !important; cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.splide__arrow:disabled { opacity:.42 !important; cursor:not-allowed; }
.splide__arrow svg { fill: var(--dark); }
.photos .splide__arrow { background: rgba(255,255,255,.88); }
.splide__arrow:focus-visible,.tf-pag-btn:focus-visible { outline:3px solid var(--yellow); outline-offset:3px; }
.tf-splide-controls { position:absolute; z-index:40; top:50%; left:8px; right:8px; display:flex; align-items:center; justify-content:space-between; transform:translateY(-50%); pointer-events:none; }
.tf-splide-control { display:inline-flex; width:46px; height:46px; align-items:center; justify-content:center; padding:0; border:1px solid rgba(25,25,25,.12); border-radius:50%; background:rgba(255,255,255,.95); color:var(--dark); font:inherit; font-size:31px; line-height:1; cursor:pointer; pointer-events:auto; box-shadow:0 8px 24px rgba(0,0,0,.2); touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.tf-splide-control:hover { background:var(--blue); color:#fff; }
.tf-splide-control:focus-visible { outline:3px solid var(--yellow); outline-offset:3px; }
.tf-splide-control:active { transform:scale(.96); }
.splide:not(.is-initialized) { visibility:visible; }
.splide:not(.is-initialized) .splide__track { overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; }
.splide:not(.is-initialized) .splide__list { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 32px)/3); gap:16px; list-style:none; }
.splide:not(.is-initialized) .splide__slide { scroll-snap-align:start; }
.tf-splide-single:not(.is-initialized) .splide__list { display:flex; justify-content:center; }
.tf-splide-single:not(.is-initialized) .splide__slide { width:min(800px,100%); }
.tf-empty-state { margin-top:28px; padding:22px; border:1px solid rgba(70,124,212,.2); border-radius:12px; background:rgba(167,200,253,.14); color:var(--mid); line-height:1.7; }
.tf-empty-state-dark { border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.07); color:rgba(255,255,255,.82); }
.tf-video-pagination { margin-top:24px; }

/* BIBLIOTECA / ARCHIVE */
.tf-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.tf-blog-card { border-radius: 8px; overflow: hidden; background: #fff; border: 1px solid rgba(70,124,212,0.12); transition: transform .25s, box-shadow .25s; }
.tf-blog-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(9,71,152,0.1); }
.tf-blog-thumb { display: block; width: 100%; height: 220px; object-fit: cover; }
.tf-single-hero { margin: 28px 0 30px; width: 100%; max-height: 420px; aspect-ratio: 16/9; border-radius: 18px; overflow: hidden; background: var(--light-blue); }
.tf-single-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tf-library-icon-visual { position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center; overflow:hidden; color:var(--dark-blue); background:linear-gradient(135deg,#eaf2ff 0%,#c9dcfb 100%); text-decoration:none; }
.tf-library-icon-visual::before { content:''; position:absolute; z-index:-1; width:72%; aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.48); transform:translate(42%,-32%); }
.tf-library-icon-visual::after { content:''; position:absolute; z-index:-1; width:46%; aspect-ratio:1; border:1px solid currentColor; border-radius:28%; opacity:.12; transform:translate(-82%,58%) rotate(24deg); }
.tf-library-icon-visual svg { position:relative; z-index:1; width:84px; height:84px; transition:transform .22s ease; }
.tf-library-icon-visual:hover svg { transform:scale(1.06); }
.tf-library-icon-visual:focus-visible { outline:3px solid var(--yellow); outline-offset:-5px; }
.tf-blog-icon-visual { width:100%; height:220px; }
.tf-library-icon-visual.publicacion { color:var(--purple); background:linear-gradient(135deg,#fff0f6 0%,#efd9f7 100%); }
.tf-library-icon-visual.institucional { color:var(--dark); background:linear-gradient(135deg,#fff9df 0%,#f3e4a8 100%); }
.tf-library-icon-visual.info { color:var(--blue); background:linear-gradient(135deg,#f4f6f9 0%,#e2e7ef 100%); }
.tf-single-hero.tf-library-icon-visual { height:auto; }
.tf-single-hero.tf-library-icon-visual svg { width:clamp(96px,12vw,150px); height:clamp(96px,12vw,150px); }
.tf-blog-body { padding: 20px; }
.tf-blog-cat { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; display: inline-block; padding: 3px 10px; border-radius: 50px; }
.tf-blog-cat.noticia { background: var(--light-blue); color: var(--dark-blue); }
.tf-blog-cat.historia { background: var(--light-pink); color: var(--purple); }
.tf-blog-cat.info { background: var(--light-yellow); color: var(--dark); }
.tf-blog-cat.investigacion { background:var(--light-blue); color:var(--dark-blue); }
.tf-blog-cat.publicacion { background:var(--light-pink); color:var(--purple); }
.tf-blog-cat.institucional { background:var(--light-yellow); color:var(--dark); }
.tf-blog-titulo { font-family: var(--font-heading); font-size: 17px; color: var(--dark); margin-bottom: 8px; line-height: 1.3; text-transform: uppercase; }
.tf-blog-extracto { font-size: 12px; color: var(--mid); line-height: 1.7; margin-bottom: 14px; }
.tf-blog-leer { font-size: 12px; font-weight: 600; color: var(--blue); text-decoration: none; }

/* BIBLIOTECA */
.tf-library { background: linear-gradient(135deg,#fff 0%,rgba(243,242,238,.88) 100%); }
.tf-library-index { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 42px; }
.tf-library-chip { display: inline-flex; align-items: center; justify-content: space-between; max-width: 100%; min-height: 38px; padding: 9px 16px; border-radius: 999px; border: 1px solid rgba(25,25,25,.12); color: var(--dark); text-decoration: none; font-size: 12px; font-weight: 800; line-height: 1.25; text-transform: uppercase; letter-spacing: .4px; }
.tf-library-chip.noticia { background: rgba(167,200,253,.45); border-color: rgba(70,124,212,.26); }
.tf-library-chip.historia { background: rgba(247,183,209,.42); border-color: rgba(151,60,194,.2); }
.tf-library-chip.info { background: rgba(246,228,166,.58); border-color: rgba(237,202,12,.35); }
.tf-library-chip.investigacion { background:rgba(167,200,253,.45); border-color:rgba(70,124,212,.26); }
.tf-library-chip.publicacion { background:rgba(247,183,209,.42); border-color:rgba(151,60,194,.2); }
.tf-library-chip.institucional { background:rgba(246,228,166,.58); border-color:rgba(237,202,12,.35); }
.tf-library-count { display:inline-flex; min-width:22px; height:22px; align-items:center; justify-content:center; margin-left:4px; padding:0 7px; border-radius:999px; background:rgba(255,255,255,.8); color:var(--dark); font-size:11px; line-height:1; }
.tf-library-heading-count { color:var(--blue); font-size:.62em; white-space:nowrap; }
.tf-library-section { padding: 36px 0 18px; border-top: 1px solid rgba(25,25,25,.08); }
.tf-library-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 22px; }
.tf-library-head h2 { font-family: var(--font-heading); font-size: clamp(22px,3vw,32px); line-height: 1.1; color: var(--dark); text-transform: uppercase; margin: 10px 0 8px; }
.tf-library-head p { max-width: 580px; color: var(--mid); font-size: 14px; line-height: 1.75; }
.tf-library-more { flex-shrink: 0; color: var(--blue); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; text-decoration: none; }

/* CONTENIDO WORDPRESS */
.tf-content { font-size: 15px; color: var(--mid); line-height: 1.9; }
.tf-content > * + * { margin-top: 18px; }
.tf-content h1, .tf-content h2, .tf-content h3 { font-family: var(--font-heading); color: var(--dark); line-height: 1.2; text-transform: uppercase; }
.tf-content a { color: var(--blue); }
.tf-content img { max-width: 100%; height: auto; border-radius: 14px; }
.tf-resource-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 34px; padding: 22px; border-radius: 8px; background: linear-gradient(135deg,var(--off-white),rgba(167,200,253,.35)); border: 1px solid rgba(70,124,212,.18); }
.tf-resource-cta span { display: block; margin-bottom: 4px; font-size: 10px; font-weight: 800; color: var(--blue); text-transform: uppercase; letter-spacing: .8px; }
.tf-resource-cta strong { display: block; font-family: var(--font-heading); font-size: 21px; line-height: 1.1; color: var(--dark); text-transform: uppercase; }
.tf-resource-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.tf-resource-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 11px 18px; border: 0; border-radius: 999px; background: var(--dark); color: #fff; font-family: var(--font-body); font-size: 12px; font-weight: 800; text-decoration: none; text-transform: uppercase; letter-spacing: .4px; white-space: nowrap; cursor: pointer; }
.tf-resource-btn svg { width: 17px; height: 17px; flex-shrink: 0; }
.tf-resource-btn:hover { background: var(--blue); color: #fff; }
.tf-resource-btn-secondary { background: transparent; color: var(--dark); border: 1px solid rgba(26,26,46,.28); }
.tf-resource-btn-secondary:hover { background: var(--pink); border-color: var(--pink); color: var(--dark); }
.tf-pdf-modal { position: fixed; inset: 0; z-index: 500; display: none; align-items: center; justify-content: center; padding: 24px; }
.tf-pdf-modal.is-open { display: flex; }
.tf-pdf-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.64); backdrop-filter: blur(4px); }
.tf-pdf-modal-panel { position: relative; z-index: 1; width: min(1120px, 100%); height: min(86vh, 920px); display: flex; flex-direction: column; overflow: hidden; border-radius: 10px; background: #fff; box-shadow: 0 28px 80px rgba(0,0,0,.36); }
.tf-pdf-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid rgba(70,124,212,.16); }
.tf-pdf-modal-head strong { font-family: var(--font-heading); font-size: 19px; line-height: 1.1; color: var(--dark); text-transform: uppercase; }
.tf-pdf-modal-close { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--dark); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.tf-pdf-frame { flex: 1; width: 100%; min-height: 0; border: 0; background: var(--off-white); }
.tf-pdf-modal-actions { display: flex; justify-content: flex-end; padding: 12px 16px; border-top: 1px solid rgba(70,124,212,.16); }
.tf-page-editor-content { padding: 56px 24px; background: #fff; }
.tf-page-editor-content .inner { max-width: 900px; }
.tf-pagination .page-numbers { display: inline-flex; min-width: 34px; height: 34px; align-items: center; justify-content: center; margin: 0 4px; border-radius: 999px; color: var(--mid); text-decoration: none; border: 1px solid rgba(70,124,212,.18); font-size: 12px; }
.tf-pagination .page-numbers.current, .tf-pagination .page-numbers:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
/* Altura uniforme de paginas internas: la primera seccion compensa el nav fijo
   y el contenido minimo evita que el footer suba en paginas cortas. */
.tf-standalone-page { min-height: 60vh; }
.tf-generic-page { background:var(--off-white); }
.tf-generic-page > .tf-generic-page-section:first-child { isolation:isolate; background-color:#eef4fb; background-image:var(--tf-standard-bg); background-size:cover; background-position:center top; background-repeat:no-repeat; }
.tf-page-asset-banner { position: relative; width: 100%; height: clamp(220px, 32vw, 440px); overflow: hidden; background: var(--light-blue); border-bottom: 1px solid rgba(70,124,212,.18); }
.tf-page-asset-banner::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(255,255,255,.03),rgba(25,25,25,.08)); }
.tf-page-asset-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.tf-standalone-page > section:first-child { background: var(--tf-page-bg,var(--tf-standard-bg)); background-size: cover; background-position: center; background-repeat:no-repeat; }
.tf-standalone-page > .mv:first-child,.tf-standalone-page > .ejes:first-child,.tf-standalone-page > .servicios:first-child { background-color:#eef4fb; background-image:var(--tf-asset-overlay),var(--tf-page-bg,var(--tf-standard-bg)); background-size:cover; background-position:center; background-repeat:no-repeat; }
.tf-page-asset-section { background-color:var(--off-white) !important; background-image:var(--tf-asset-overlay),var(--tf-page-bg,var(--tf-standard-bg)) !important; background-size:cover !important; background-position:center top !important; background-repeat:no-repeat !important; }
.tf-page-asset-section.tf-library,.tf-page-asset-section.tf-library-publication-section { background-size:100% 100%,100% 100%,100% 100%,100% auto !important; background-position:center center,center center,center center,center top !important; background-repeat:no-repeat,no-repeat,no-repeat,no-repeat !important; }
.tf-page-asset-section.testimonios { min-height:clamp(560px,calc(100svh - 150px),900px); background-size:100% 100%,100% 100%,100% 100%,cover !important; background-position:center center,center center,center center,center top !important; background-repeat:no-repeat,no-repeat,no-repeat,no-repeat !important; }
.tf-page-asset-section .tf-section-intro { width:min(760px,100%); margin-bottom:30px; padding:24px 26px; border:1px solid rgba(255,255,255,.68); border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 16px 42px rgba(9,71,152,.1); backdrop-filter:blur(8px); }
.tf-page-asset-section .tf-section-intro .ssub { max-width:680px; }
.tf-page-asset-section .tf-section-intro + .tf-library-index { margin-top:0; }
.tf-page-asset-section.tf-library .tf-library-section { margin:22px 0; padding:28px; border:1px solid rgba(70,124,212,.14); border-radius:18px; background:rgba(255,255,255,.9); box-shadow:0 16px 40px rgba(9,71,152,.08); backdrop-filter:blur(8px); }
.tf-library-publication-section { min-height:calc(100svh - 150px); }
.tf-library-publication-section .tf-content { margin-top:30px; padding:30px; border:1px solid rgba(70,124,212,.14); border-radius:18px; background:rgba(255,255,255,.92); box-shadow:0 16px 40px rgba(9,71,152,.08); backdrop-filter:blur(8px); }
.tf-page-asset-section .tf-empty-state-panel,.tf-page-asset-section .tf-empty-state-dark { max-width:760px; background:rgba(255,255,255,.9); border-color:rgba(70,124,212,.18); color:var(--mid); box-shadow:0 14px 36px rgba(9,71,152,.08); }
.tf-standalone-page > section:first-child { padding-top: 72px; }
.tf-standalone-page > .nb:first-child { padding-top: 72px; }
.tf-standalone-page > section:last-child { padding-bottom: 88px; }
.tf-media-page.photos .stag { color:var(--blue); }
.tf-media-page.photos .stitle { color:var(--dark); }
.tf-media-page.photos .ssub { color:var(--mid); }
.tf-media-page.tf-video-section .tf-on-dark { color:var(--dark) !important; }
.tf-media-page.tf-video-section .stag.tf-on-dark { color:var(--blue) !important; }
.tf-media-page .tf-empty-state-dark { border-color:rgba(70,124,212,.2); background:rgba(167,200,253,.14); color:var(--mid); }
.tf-home-directory { background: #fff; padding-top: 56px; }
.tf-page-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 34px; }
.tf-page-card { display: flex; min-height: 190px; flex-direction: column; justify-content: flex-end; gap: 10px; padding: 24px; border-radius: 8px; border: 1px solid rgba(70,124,212,.15); text-decoration: none; background: linear-gradient(135deg,#fff,var(--light-blue)); transition: transform .25s, box-shadow .25s, border-color .25s; }
.tf-page-card:nth-child(even) { background: linear-gradient(135deg,#fff,var(--light-pink)); }
.tf-page-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(9,71,152,.12); border-color: rgba(70,124,212,.38); }
.tf-page-card span { font-size: 10px; font-weight: 700; color: var(--blue); letter-spacing: 1px; text-transform: uppercase; }
.tf-page-card h3 { font-family: var(--font-heading); font-size: 23px; color: var(--dark); line-height: 1.15; margin: 0; text-transform: uppercase; }
.tf-page-card p { font-size: 13px; color: var(--mid); line-height: 1.7; margin: 0; }
.mosaic { grid-auto-rows: 210px; }
.tf-paginacion { display: flex; gap: 8px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
.tf-pag-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(70,124,212,.12); color: var(--dark); font-size: 13px; font-weight: 600; text-decoration: none; transition: background .2s, color .2s; }
.tf-pag-btn:hover { background: var(--blue); color: #fff; }
.tf-pag-activa { background: var(--blue) !important; color: #fff !important; }

/* MENU MOVIL */
.nav-hamburger { display: none; background: none; border: none; cursor: pointer; padding: 4px; position: relative; z-index: 220; }
.nav-hamburger span { display: block; width: 22px; height: 2px; background: var(--dark); margin: 5px 0; border-radius: 2px; transition: all .3s; }
.nav-hamburger.is-menu-open { visibility: hidden; }
.nav-mobile { display: none; }
.nav-mobile-open { display: flex !important; flex-direction: column; position: fixed; inset: 0; overflow-y: auto; overscroll-behavior: contain; padding: max(88px, calc(env(safe-area-inset-top) + 72px)) 24px max(36px, calc(env(safe-area-inset-bottom) + 24px)); background: rgba(26,26,46,0.97); z-index: 200; align-items: center; justify-content: center; gap: 28px; }
.nav-mobile-open a { font-size: 22px; color: #fff; text-decoration: none; font-weight: 500; }
.nav-mobile-open ul { list-style: none; display: flex; flex-direction: column; align-items: center; gap: 28px; margin: auto 0; padding: 0; text-align: center; }
.tf-nav-mobile-close { position: absolute; top: max(18px, env(safe-area-inset-top)); right: max(18px, env(safe-area-inset-right)); display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 13px; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.tf-nav-mobile-close [aria-hidden="true"] { font-size: 27px; font-weight: 400; line-height: .8; }
.tf-nav-mobile-close:hover { background: rgba(255,255,255,.2); }
.tf-nav-mobile-close:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }

/* RESPONSIVE ADICIONAL */
@media (max-width: 1100px) {
  .tf-site-nav { padding: 12px 22px; gap: 16px; }
  .nav-links { gap: 16px; }
  .nav-links a { font-size: 12px; }
  .nav-logo img.custom-logo { max-width: 230px; max-height: 64px; }
  .tf-page-card-grid, .tf-blog-grid, .tf-test-grid, .tf-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .srv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .nav-links { display: none; }
  .nav-hamburger { display: block; }
  .nav-cta { margin-left: auto; }
  .historia-grid, .mv-cards, .ct-grid, .frow, .ejes-grid { grid-template-columns: 1fr; }
  .tf-library-head { align-items: flex-start; flex-direction: column; }
  .historia-grid { gap: 32px; }
  .srv-grid, .tf-page-card-grid, .tf-blog-grid, .tf-video-grid { grid-template-columns: 1fr; }
  .nb-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .splide .mi { height:auto; aspect-ratio:16/9; }
  .splide:not(.is-initialized) .splide__list { grid-auto-columns:calc((100% - 16px)/2); }
  .tf-splide-single .mi { height:auto; }
  .tf-gallery-modal { padding:12px; }
  .tf-gallery-modal-panel { grid-template-columns:1fr; grid-template-rows:minmax(220px,48%) minmax(0,52%); width:min(720px,100%); height:min(90vh,820px); height:min(90dvh,820px); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); border-radius:16px; }
  .tf-gallery-modal-info { padding:24px 22px 30px; }
  .tf-gallery-modal-info h2 { padding-right:38px; font-size:clamp(24px,6vw,34px); }
  .tf-gallery-modal-close { top:10px; right:10px; width:40px; height:40px; }
}

@media (max-width: 700px) {
  :root { --tf-asset-overlay:linear-gradient(105deg,rgba(242,248,255,.42) 0%,rgba(251,245,253,.54) 56%,rgba(255,255,255,.78) 100%),radial-gradient(circle at 28% 22%,rgba(255,255,255,.48) 0%,rgba(255,255,255,0) 50%); }
  section { padding: 56px 18px; }
  .photos { padding: 56px 0; }
  .photos-inner { padding: 0 18px; }
  .tf-site-nav { padding: 10px 16px; }
  .hero { min-height: auto; padding: 48px 14px 56px; }
  .hero-bg:not(.has-image) { background-position: right center; background-repeat: no-repeat; }
  .hero-bg img { object-position:right center; }
  .hero-content { width: 100%; padding: 0; }
  .hero h1 { font-size: clamp(32px, 8.5vw, 48px); }
  .hero h1 .italic { display: inline-block; white-space: nowrap; }
  .hero-badge { max-width: 100%; padding: 6px 10px; white-space: nowrap; justify-content: center; font-size: 9px; line-height: 1.25; letter-spacing: .5px; border-radius: 999px; }
  .hero-btns { flex-direction: column; align-items: stretch; }
  .btn-p, .btn-o { display: inline-flex; justify-content: center; width: 100%; padding: 12px 18px; text-align: center; }
  .hero-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 36px; }
  .stat { border-right: none; padding: 14px 8px; border-radius: 14px; background: rgba(255,255,255,.45); }
  .stat-num { font-size: 32px; }
  .ticker-item { padding: 0 24px; }
  .himg { border-radius: 16px; }
  .timeline { padding-left: 24px; }
  .tli { padding-left: 16px; }
  .quote-band { padding: 48px 18px; }
  .quote-band::before { font-size: 180px; top: -28px; }
  .mv-card, .srv-card, .tf-test-card, .tf-page-card { padding: 22px; border-radius: 16px; }
  .mosaic { gap: 10px; }
  .splide .mi { height:auto; aspect-ratio:16/9; }
  .splide:not(.is-initialized) .splide__list { grid-auto-columns:100%; }
  .tf-splide-single .mi { height:auto; }
  .tf-video-card { border-radius: 12px; }
  .tf-video-titulo { min-height:0; padding:12px 13px; font-size:13px; }
  .tf-single-hero { max-height: 280px; border-radius: 14px; }
  .tf-blog-icon-visual { height:200px; }
  .cbtn { gap: 12px; padding: 16px; align-items: flex-start; }
  .cbtn-value, .red, .tf-blog-titulo, .tf-page-card h3 { overflow-wrap: anywhere; }
  .cf { padding: 22px; }
  .tf-standalone-page > section:first-child { padding-top: 56px; }
  .tf-standalone-page > .nb:first-child { padding-top: 56px; }
  .tf-page-asset-banner { height: clamp(170px, 56vw, 280px); }
  .tf-page-asset-section { background-position:center top !important; }
  .tf-page-asset-section .tf-section-intro { margin-bottom:24px; padding:20px; border-radius:14px; }
  .tf-page-asset-section.tf-library .tf-library-section { margin:18px 0; padding:20px; border-radius:14px; }
  .tf-library-publication-section .tf-content { margin-top:22px; padding:22px; border-radius:14px; }
  .tf-gallery-modal { padding:0; }
  .tf-gallery-modal-panel { grid-template-rows:minmax(180px,38vh) minmax(0,1fr); grid-template-rows:minmax(180px,38dvh) minmax(0,1fr); width:100%; height:100vh; height:100dvh; max-height:none; border:0; border-radius:0; }
  .tf-gallery-modal-info { padding:22px 20px calc(28px + env(safe-area-inset-bottom)); }
  .tf-gallery-modal-info h2 { padding-right:36px; font-size:clamp(23px,7.8vw,32px); }
  .tf-gallery-modal-close { top:max(10px,env(safe-area-inset-top)); right:max(10px,env(safe-area-inset-right)); width:42px; height:42px; }
  .tf-testimonial-modal-media img { object-fit:contain; object-position:center; }
  .tf-splide-controls { left:2px; right:2px; }
  .tf-splide-control { width:42px; height:42px; font-size:28px; }
  .tf-floating-social { right:14px; bottom:calc(18px + env(safe-area-inset-bottom) + var(--tf-floating-footer-offset,0px)); transition:bottom .18s ease; }
  .tf-test-grid, .tf-video-grid, .tf-blog-grid { grid-template-columns: 1fr; }
  .tf-page-card-grid { grid-template-columns: 1fr; }
  .tf-video-carousel { grid-auto-columns: 86%; }
  .tf-carousel-head { align-items: flex-start; flex-direction: column; }
  .tf-resource-cta { align-items: stretch; flex-direction: column; }
  .tf-resource-actions { justify-content: stretch; }
  .tf-resource-btn { width: 100%; white-space: normal; text-align: center; }
  .tf-pdf-modal { padding: 10px; }
  .tf-pdf-modal-panel { height: 92vh; border-radius: 8px; }
  .nav-hamburger { display: block; }
  .nav-cta { display: none; }
  .logo-text-img { max-width: 190px; }
}

@media (hover:none) {
  .mi .mo { opacity:1; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .fi { opacity:1; transform:none; transition:none; }
  .mi img,.splide__arrow,.tf-library-icon-visual svg { transition:none; }
}

@media (max-width: 480px) {
  .tf-site-nav { padding: 9px 12px; }
  .nav-logo img.custom-logo { max-width: 168px; max-height: 42px; }
  .tf-blog-icon-visual { height:180px; }
  .logo-text-img { max-width: 160px; height: 38px; }
  .hero { padding: 42px 12px 52px; }
  .hero h1 { font-size: clamp(30px, 10.5vw, 40px); }
  .hero-sub { font-size: 13px; line-height: 1.65; margin-bottom: 30px; }
  .tf-page-asset-banner { height: 180px; }
  .ssub { font-size: 14px; line-height: 1.75; }
  .stitle { font-size: clamp(25px, 9vw, 34px); }
  .nb-inner, .hero-stats { grid-template-columns: 1fr; }
  .nb-num { font-size: 40px; }
  .splide .mi { height:auto; aspect-ratio:16/9; }
  .mosaic { grid-template-columns: 1fr; }
  .mi.big, .mi.wide { grid-column: span 1; grid-row: span 1; }
  .red { width: 100%; justify-content: center; }
  .tf-floating-social{right:14px}
  .tf-floating-social-main{width:48px;height:48px}
  .tf-pag-btn { width: 34px; height: 34px; }
  .tf-gallery-modal-panel { grid-template-rows:minmax(150px,32vh) minmax(0,1fr); grid-template-rows:minmax(150px,32dvh) minmax(0,1fr); }
  .tf-gallery-modal-info { padding:18px 16px calc(22px + env(safe-area-inset-bottom)); }
  .tf-gallery-modal-info h2 { margin:10px 0 14px; padding-right:36px; font-size:clamp(22px,8.5vw,30px); }
  .tf-gallery-modal-copy { padding:13px 14px; }
  .tf-gallery-modal-copy p { font-size:13px; line-height:1.6; }
  .tf-nav-mobile-close-label { display:none; }
  .tf-nav-mobile-close { width:46px; padding:8px; justify-content:center; }
  footer { padding: 20px 14px; }
  footer p { line-height: 1.7; }
}

@media (max-width: 900px) and (max-height: 600px) and (orientation: landscape) {
  .tf-gallery-modal { padding:8px; }
  .tf-gallery-modal-panel { grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); grid-template-rows:1fr; width:min(960px,100%); height:calc(100vh - 16px); height:calc(100dvh - 16px); border:1px solid rgba(255,255,255,.22); border-radius:14px; }
  .tf-gallery-modal-info { padding:54px 20px 24px; }
  .tf-gallery-modal-info h2 { margin-top:8px; padding-right:30px; font-size:clamp(22px,3.5vw,30px); }
}
