/* =====================================================================
   TOTAL GROUP · CSS GLOBAL v2 (Elementor + Hello Elementor)
   Pegar en: Elementor > Ajustes del sitio > CSS personalizado
   Clases .tg-* asignadas en Avanzado > Clases CSS de cada elemento.
   Paleta tomada del logotipo · contraste de texto WCAG AAA (≥ 7:1)
   ===================================================================== */
:root{
  --tg-asphalt:#050A13;   /* fondo base */
  --tg-night:#08142A;     /* superficies */
  --tg-deep:#0B1E3A;      /* superficies elevadas */
  --tg-blue:#0A5E9F;      /* azul "Group" del logo */
  --tg-sky:#3092D0;       /* azul "Total" del logo */
  --tg-orange:#F39200;    /* naranja de la "o" — acento principal (8.4:1 sobre fondo) */
  --tg-flame:#E94E1A;     /* rojo-naranja de la "o" — solo decorativo */
  --tg-text:#EEF3FA;      /* 17.8:1 sobre #050A13 */
  --tg-muted:#B9C6D8;     /* 11.4:1 sobre #050A13 */
  --tg-ink:#050A13;       /* texto sobre botones naranja (8.4:1) */
  --tg-line:rgba(48,146,208,.24);
  --tg-radius:18px;
  --tg-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --tg-body:"Montserrat","Segoe UI",Arial,sans-serif;
  --tg-ease:cubic-bezier(.2,.8,.2,1);
}

/* ---------- Base ---------- */
body{background:var(--tg-asphalt);color:var(--tg-muted);font-family:var(--tg-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body a{color:#7FC1EC}
body a:hover{color:var(--tg-orange)}
::selection{background:var(--tg-orange);color:var(--tg-ink)}
.elementor .elementor-widget-text-editor{color:var(--tg-muted);font-family:var(--tg-body)}
.elementor .elementor-widget-text-editor strong{color:var(--tg-text)}
.elementor .elementor-heading-title{font-family:var(--tg-body);color:var(--tg-text)}
.page-header .entry-title,.site-main > .page-header{display:none}
.tg-skip{position:absolute;left:-9999px;top:8px;z-index:10000;background:var(--tg-orange);color:var(--tg-ink)!important;padding:10px 16px;border-radius:8px;font-weight:700}
.tg-skip:focus{left:12px}

/* ---------- Tipografía ---------- */
.elementor .tg-eyebrow .elementor-heading-title{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--tg-orange);display:inline-flex;align-items:center;gap:10px}
.elementor .tg-eyebrow .elementor-heading-title::before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--tg-orange),transparent)}
.elementor .tg-title .elementor-heading-title{font-family:var(--tg-display);font-weight:800;text-transform:uppercase;font-size:clamp(36px,5vw,62px);line-height:.96;letter-spacing:.005em;color:var(--tg-text);text-wrap:balance}
.elementor .tg-title .elementor-heading-title span{color:var(--tg-orange);background:linear-gradient(90deg,var(--tg-orange),#FFB547);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.elementor .tg-title-xl .elementor-heading-title{font-size:clamp(40px,6vw,82px)}
.elementor .tg-title-hero .elementor-heading-title{font-size:clamp(44px,7.4vw,104px);line-height:.9}
.elementor .tg-title-md .elementor-heading-title{font-size:clamp(30px,3.6vw,46px)}
.elementor .tg-title-sm .elementor-heading-title{font-weight:700;font-size:20px;line-height:1.25;color:var(--tg-text)}
.elementor .tg-title-sm a{color:inherit;text-decoration:none}
.elementor .tg-title-sm a:hover{color:var(--tg-orange)}
.elementor a{text-decoration:none}
.elementor .tg-lead{font-size:clamp(16px,1.5vw,18.5px);line-height:1.65;color:var(--tg-muted);max-width:68ch}
.elementor .tg-text{font-size:15px;line-height:1.7}
.elementor .tg-center{text-align:center}
.elementor .tg-center.tg-lead{margin-inline:auto}
.elementor .tg-closing{color:var(--tg-text);font-weight:600;border-left:3px solid var(--tg-orange);padding-left:16px}
.elementor .tg-tag .elementor-heading-title,.elementor .tg-num .elementor-heading-title{display:inline-block;padding:5px 11px;border-radius:7px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;background:rgba(243,146,0,.14);color:var(--tg-orange)}
.elementor .tg-num .elementor-heading-title{font-family:var(--tg-display);font-size:42px;letter-spacing:0;background:none;padding:0;color:transparent;-webkit-text-stroke:1.5px var(--tg-orange);line-height:1}

/* ---------- Secciones y fondos ---------- */
.elementor .tg-section{position:relative;overflow:hidden;background-color:var(--tg-asphalt)}
.elementor .tg-bg-night{background:radial-gradient(1200px 520px at 85% -10%,rgba(10,94,159,.42),transparent 60%),linear-gradient(180deg,#050A13 0%,#071226 100%)}
.elementor .tg-bg-glow{background:radial-gradient(900px 480px at 8% 110%,rgba(10,94,159,.55),transparent 65%),radial-gradient(700px 400px at 100% 0%,rgba(48,146,208,.2),transparent 60%),#050A13}
.elementor .tg-bg-deep{background:linear-gradient(180deg,#071226,#0B1E3A)}
/* Imagen de fondo en transparencia: Elementor pone la foto y la capa; aquí se añade el degradado azul de marca */
.elementor .tg-bg-photo > .elementor-background-overlay,.elementor .tg-bg-photo::before{background-image:linear-gradient(180deg,rgba(5,10,19,.5),rgba(5,10,19,.05) 40%,rgba(5,10,19,.6)),radial-gradient(900px 500px at 90% 10%,rgba(10,94,159,.45),transparent 70%)!important}
.tg-road{height:4px;width:100%;background:repeating-linear-gradient(90deg,var(--tg-orange) 0 42px,transparent 42px 78px);background-size:156px 4px;opacity:.9;animation:tg-road 1.6s linear infinite;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
@keyframes tg-road{to{background-position:156px 0}}

/* ---------- Botones (texto oscuro sobre naranja = 8.4:1) ---------- */
.elementor .tg-btn .elementor-button{font-family:var(--tg-body);font-weight:700;font-size:14px;letter-spacing:.02em;border-radius:999px;padding:15px 28px;transition:transform .25s var(--tg-ease),box-shadow .25s var(--tg-ease),background .25s}
.elementor .tg-btn-primary .elementor-button{background:linear-gradient(135deg,#FFB547,var(--tg-orange) 55%,#F07A12);color:var(--tg-ink);box-shadow:0 10px 30px -10px rgba(243,146,0,.7)}
.elementor .tg-btn-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 16px 36px -10px rgba(243,146,0,.9);color:var(--tg-ink)}
.elementor .tg-btn-ghost .elementor-button{background:rgba(255,255,255,.05);color:var(--tg-text);border:1px solid rgba(238,243,250,.35);backdrop-filter:blur(6px)}
.elementor .tg-btn-ghost .elementor-button:hover{border-color:var(--tg-orange);color:#fff;transform:translateY(-2px)}
.elementor .tg-btn-link .elementor-button{background:none;padding:0;color:var(--tg-orange);border-radius:0;box-shadow:none}
.elementor .tg-btn-link .elementor-button:hover{color:#fff}
.elementor .tg-btn-link .elementor-button-icon{transition:transform .25s}
.elementor .tg-btn-link .elementor-button:hover .elementor-button-icon{transform:translateX(4px)}
.elementor .tg-btn-dark .elementor-button{background:var(--tg-ink);color:#fff}
.elementor .tg-btn-light .elementor-button{background:#fff;color:var(--tg-ink)}

/* ---------- Header ---------- */
.elementor .tg-header{background:rgba(5,10,19,.55);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--tg-line);transition:background .3s}
.elementor .tg-header.elementor-sticky--effects{background:rgba(5,10,19,.94);box-shadow:0 12px 40px -18px rgba(0,0,0,.8)}
.elementor .tg-topbar{border-bottom:1px solid var(--tg-line);max-height:60px;overflow:hidden;transition:max-height .35s var(--tg-ease),opacity .3s}
.elementor .tg-header.elementor-sticky--effects .tg-topbar{max-height:0;opacity:0;border-color:transparent}
.elementor .tg-topbar .elementor-icon-list-text,.elementor .tg-topbar a{font-size:12.5px;color:var(--tg-muted)!important}
.elementor .tg-topbar a:hover .elementor-icon-list-text{color:#fff!important}
.elementor .tg-topbar .elementor-icon-list-icon i{color:var(--tg-orange);font-size:12px}
.elementor .tg-topbar .elementor-icon-list-icon svg{fill:var(--tg-orange);width:12px}
.elementor .tg-social .elementor-social-icon{background:rgba(255,255,255,.06);border:1px solid var(--tg-line);transition:background .25s,transform .25s}
.elementor .tg-social .elementor-social-icon i{color:var(--tg-text)}
.elementor .tg-social .elementor-social-icon svg{fill:var(--tg-text)}
.elementor .tg-social .elementor-social-icon:hover{background:var(--tg-orange);transform:translateY(-2px)}
.elementor .tg-social .elementor-social-icon:hover i{color:var(--tg-ink)}
.elementor .tg-logo img{width:210px;max-width:100%;height:auto;transition:width .3s}
.elementor .tg-header.elementor-sticky--effects .tg-logo img{width:176px}
.elementor .tg-nav .elementor-nav-menu--main .elementor-item{font-size:14.5px;font-weight:600;color:var(--tg-text);padding:22px 13px}
.elementor .tg-nav .elementor-nav-menu--main .elementor-item:hover,.elementor .tg-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--tg-orange)}
.elementor .tg-nav .e--pointer-underline .elementor-item:after{background-color:var(--tg-orange);height:2px}
.elementor .tg-nav .elementor-nav-menu--dropdown{background:rgba(8,20,42,.98);border:1px solid var(--tg-line);border-radius:12px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.8)}
.elementor .tg-nav .elementor-nav-menu--dropdown a{color:var(--tg-text);font-size:14px;padding:12px 20px;border-left:3px solid transparent}
.elementor .tg-nav .elementor-nav-menu--dropdown a:hover,.elementor .tg-nav .elementor-nav-menu--dropdown a.elementor-item-active{background:rgba(243,146,0,.1);color:#fff;border-left-color:var(--tg-orange)}
.elementor .tg-nav .elementor-menu-toggle{background:rgba(255,255,255,.06);border-radius:10px;color:#fff}
.elementor .tg-nav .elementor-menu-toggle svg{fill:#fff}
.elementor .tg-btn-aulas .elementor-button{background:rgba(48,146,208,.14);border:1px solid rgba(48,146,208,.6);color:#fff;border-radius:12px;padding:11px 16px;font-weight:700;font-size:13px}
.elementor .tg-btn-aulas .elementor-button:hover{background:var(--tg-sky);color:#fff}
.elementor .tg-btn-wa .elementor-button{background:#25D366;color:#04210F;border-radius:12px;padding:11px 16px;font-weight:700;font-size:13px;position:relative;overflow:hidden;box-shadow:0 8px 24px -8px rgba(37,211,102,.7)}
.elementor .tg-btn-wa .elementor-button::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-120%);animation:tg-shine 4s infinite}
.elementor .tg-btn-wa .elementor-button-icon{font-size:18px}
@keyframes tg-shine{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* ---------- Hero de inicio (fondo de video) ---------- */
.elementor .tg-hero{position:relative;overflow:hidden}
.elementor .tg-hero .elementor-background-video-container video{filter:saturate(1.1) contrast(1.05)}
.elementor .tg-hero .tg-lead{color:#DCE6F2;max-width:60ch}
.tg-hero-streaks{position:absolute;left:0;right:0;bottom:0;height:45%;pointer-events:none;z-index:1;background:
  linear-gradient(90deg,transparent,rgba(243,146,0,.6) 50%,transparent) 0 70%/40% 2px no-repeat,
  linear-gradient(90deg,transparent,rgba(48,146,208,.7) 50%,transparent) 0 85%/30% 2px no-repeat,
  linear-gradient(90deg,transparent,rgba(255,255,255,.45) 50%,transparent) 0 95%/22% 1px no-repeat;animation:tg-streak 5.5s linear infinite}
@keyframes tg-streak{0%{background-position:-40% 70%,-30% 85%,-22% 95%}100%{background-position:160% 70%,150% 85%,140% 95%}}
.elementor .tg-hero .elementor-widget-html:has(.tg-hero-streaks){position:absolute;inset:0;margin:0}

/* ---------- Logos de clientes (a color, en tarjetas blancas) ---------- */
.elementor .tg-logos{background:linear-gradient(180deg,#081322,#050A13);border-top:1px solid var(--tg-line);border-bottom:1px solid var(--tg-line)}
.elementor .tg-logos-label .elementor-heading-title{font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--tg-muted);font-weight:600}
.tg-marquee{display:flex;overflow:hidden;gap:18px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tg-marquee ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;flex-shrink:0;animation:tg-marquee 38s linear infinite}
.tg-marquee:hover ul{animation-play-state:paused}
.tg-marquee li{background:#fff;border-radius:14px;padding:14px 22px;display:grid;place-items:center;width:190px;height:84px;box-shadow:0 14px 30px -18px rgba(0,0,0,.9);transition:transform .3s var(--tg-ease)}
.tg-marquee li:hover{transform:translateY(-4px) scale(1.04)}
.tg-marquee img{max-width:150px;max-height:52px;width:auto;height:auto;object-fit:contain}
@keyframes tg-marquee{to{transform:translateX(calc(-100% - 18px))}}

/* ---------- Tarjetas ---------- */
.elementor .tg-card{position:relative;border-radius:var(--tg-radius);background:linear-gradient(155deg,rgba(10,94,159,.34) 0%,rgba(8,20,42,.92) 55%,rgba(5,10,19,.96) 100%);border:1px solid var(--tg-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 60px -30px rgba(0,0,0,.8);overflow:hidden;transition:transform .45s var(--tg-ease),border-color .35s,box-shadow .45s}
.elementor .tg-card::after{content:"";position:absolute;inset:0;background:radial-gradient(420px 220px at var(--mx,80%) var(--my,0%),rgba(243,146,0,.15),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.elementor .tg-card:hover{transform:translateY(-6px);border-color:rgba(243,146,0,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 40px 70px -30px rgba(243,146,0,.3)}
.elementor .tg-card:hover::after{opacity:1}
.elementor .tg-card-alt{background:linear-gradient(155deg,rgba(243,146,0,.14) 0%,rgba(8,20,42,.92) 50%,rgba(5,10,19,.96) 100%)}
.elementor .tg-ico .elementor-icon{color:var(--tg-orange);font-size:34px;background:rgba(243,146,0,.1);border:1px solid rgba(243,146,0,.3);width:64px;height:64px;border-radius:16px;display:grid;place-items:center}
.elementor .tg-ico .elementor-icon svg{fill:var(--tg-orange);width:30px;height:30px}
/* Tarjeta de servicio con imagen */
.elementor .tg-scard{height:100%}
.elementor .tg-scard-img{overflow:hidden;margin:0}
.elementor .tg-scard-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .7s var(--tg-ease),filter .5s;filter:saturate(.95) brightness(.92)}
.elementor .tg-scard:hover .tg-scard-img img{transform:scale(1.07);filter:saturate(1.15) brightness(1)}
.elementor .tg-scard-img a{display:block;position:relative}
.elementor .tg-scard-img a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,10,19,.85))}
.elementor .tg-scard-body{flex-grow:1}
.elementor .tg-scard-body .elementor-widget-button{margin-top:auto}
.elementor .tg-lines p{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin:0;font-size:14px}
.elementor .tg-lines b{color:var(--tg-orange);text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin-right:6px}

/* ---------- Listas ---------- */
.elementor .tg-checks ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.elementor .tg-checks li{position:relative;padding-left:30px}
.elementor .tg-checks li::before{content:"";position:absolute;left:0;top:.3em;width:18px;height:18px;border-radius:50%;background:rgba(243,146,0,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23F39200' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.elementor .tg-checks li ul{margin-top:10px;gap:6px}
.elementor .tg-checks li li{padding-left:18px;font-size:14.5px}
.elementor .tg-checks li li::before{width:7px;height:7px;top:.65em;background:var(--tg-sky)}
.elementor .tg-impact > ul > li > strong{font-size:16.5px}
.elementor .tg-chips p{display:flex;flex-wrap:wrap;gap:10px;margin:0;align-items:center}
.elementor .tg-chips span,.elementor .tg-chips a{padding:8px 15px;border-radius:999px;border:1px solid rgba(238,243,250,.25);background:rgba(5,10,19,.45);backdrop-filter:blur(6px);color:var(--tg-text);font-size:13.5px;font-weight:600}
.elementor .tg-chips a:hover{border-color:var(--tg-orange);color:var(--tg-orange)}

/* ---------- Grids ---------- */
.elementor .tg-grid-2{--display:grid;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.elementor .tg-grid-3{--display:grid;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.elementor .tg-grid-4{--display:grid;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.elementor .tg-grid-3,.elementor .tg-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.elementor .tg-grid-2,.elementor .tg-grid-3,.elementor .tg-grid-4{grid-template-columns:minmax(0,1fr)}.elementor .tg-reels,.elementor .tg-services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.elementor .tg-services{grid-template-columns:minmax(0,1fr)}}

/* ---------- Beneficios, pasos, contadores ---------- */
.elementor .tg-benefit{border-top:2px solid var(--tg-orange);padding-top:18px}
.elementor .tg-stat .elementor-counter-number-wrapper{font-family:var(--tg-display);font-weight:800;font-size:clamp(48px,6vw,78px);line-height:1;color:#fff;justify-content:flex-start}
.elementor .tg-stat .elementor-counter-number-prefix{color:var(--tg-orange);flex-grow:0}
.elementor .tg-stat .elementor-counter-title{font-size:14px;color:var(--tg-muted);text-align:left;justify-content:flex-start;line-height:1.4;margin-top:8px}
.elementor .tg-stat{border-left:2px solid var(--tg-orange);padding-left:20px}
.elementor .tg-steps{counter-reset:tgstep}
.elementor .tg-step{counter-increment:tgstep;position:relative;padding-top:64px}
.elementor .tg-step::before{content:counter(tgstep,decimal-leading-zero);position:absolute;top:0;left:0;font-family:var(--tg-display);font-weight:800;font-size:48px;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--tg-orange)}
.elementor .tg-step::after{content:"";position:absolute;top:24px;left:72px;right:-12px;height:2px;background:repeating-linear-gradient(90deg,rgba(48,146,208,.6) 0 12px,transparent 12px 22px)}
.elementor .tg-step:last-child::after{display:none}

/* ---------- Media, video y galería ---------- */
.elementor .tg-media img{border-radius:var(--tg-radius);border:1px solid var(--tg-line);box-shadow:0 40px 80px -40px rgba(0,0,0,.9);width:100%;aspect-ratio:4/3;object-fit:cover}
.elementor .tg-media-tall img{aspect-ratio:3/4}
.elementor .tg-media-wide img{aspect-ratio:16/9;object-fit:contain;background:#fff}
.elementor .tg-video .elementor-wrapper,.elementor .tg-video video,.elementor .tg-video .elementor-custom-embed-image-overlay{border-radius:var(--tg-radius);overflow:hidden}
.elementor .tg-video .elementor-wrapper{border:1px solid var(--tg-line);box-shadow:0 30px 60px -30px rgba(0,0,0,.9);background:#000}
.elementor .tg-video .elementor-custom-embed-play i{color:#fff;font-size:64px;text-shadow:0 6px 30px rgba(0,0,0,.6);transition:transform .3s,color .3s}
.elementor .tg-video:hover .elementor-custom-embed-play i{transform:scale(1.12);color:var(--tg-orange)}
.elementor .tg-video-feature .elementor-wrapper{border:2px solid rgba(243,146,0,.6);box-shadow:0 40px 90px -30px rgba(243,146,0,.35)}
.elementor .tg-gallery img{border-radius:14px;border:1px solid var(--tg-line);transition:transform .5s var(--tg-ease),filter .4s;filter:saturate(.95)}
.elementor .tg-gallery a:hover img{transform:scale(1.03);filter:saturate(1.15)}

/* ---------- Mapas de cobertura ---------- */
.elementor .tg-map-card{align-items:center}
.tg-map{width:100%;max-width:340px;margin:0 auto;aspect-ratio:420/520}
.tg-map-svg{width:100%;height:100%;overflow:visible}
.tg-dep{fill:rgba(48,146,208,.16);stroke:rgba(48,146,208,.75);stroke-width:.8;transition:fill .3s}
.tg-dep:hover{fill:rgba(48,146,208,.38)}
.tg-city{cursor:pointer;outline:none}
.tg-city .tg-dot,.tg-map .tg-dot{fill:var(--tg-orange);stroke:#050A13;stroke-width:1.5}
.tg-city .tg-pulse{fill:none;stroke:var(--tg-orange);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:tg-ping 2.6s var(--d,0ms) infinite}
.tg-city text{font:600 10.5px/1 var(--tg-body);fill:var(--tg-text);paint-order:stroke;stroke:#050A13;stroke-width:3px;opacity:.9;transition:opacity .2s,font-size .2s}
.tg-city:hover text,.tg-city:focus text,.tg-city.on text{font-size:13px;fill:var(--tg-orange);opacity:1}
.tg-city:hover .tg-dot,.tg-city.on .tg-dot{r:6.5}
@keyframes tg-ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.tg-cdmx{fill:rgba(243,146,0,.2)}
.tg-cdmx-line{fill:none;stroke:var(--tg-orange);stroke-width:2;stroke-dasharray:6 4;animation:tg-dash 20s linear infinite}
.tg-wave{fill:none;stroke:var(--tg-orange);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:tg-ping 3s calc(var(--d) * 1) infinite}
.tg-map-label{font:700 15px var(--tg-body);fill:#fff;paint-order:stroke;stroke:#050A13;stroke-width:4px}
@keyframes tg-dash{to{stroke-dashoffset:-200}}
.tg-globe-spin{transform-origin:0 0;animation:tg-spin 24s linear infinite}
.tg-orbit{animation:tg-spin 12s linear infinite}
.tg-globe-txt{font:800 54px var(--tg-display);fill:#fff}
.tg-globe-sub{font:600 15px var(--tg-body);fill:var(--tg-orange);letter-spacing:.12em;text-transform:uppercase}
@keyframes tg-spin{to{transform:rotate(360deg)}}
.elementor .tg-cities-list{font-size:13px}

/* ---------- Testimonios ---------- */
.elementor .tg-testimonials .elementor-testimonial{background:linear-gradient(155deg,rgba(10,94,159,.35),rgba(8,20,42,.92));border:1px solid var(--tg-line);border-radius:var(--tg-radius);padding:36px}
.elementor .tg-testimonials .elementor-testimonial__text{font-size:18px;line-height:1.6;color:var(--tg-text);font-style:normal}
.elementor .tg-testimonials .elementor-testimonial__text::before{content:"“";display:block;font-family:var(--tg-display);font-size:88px;line-height:.6;color:var(--tg-orange);margin-bottom:12px}
.elementor .tg-testimonials .elementor-testimonial__name{color:#fff;font-weight:700}
.elementor .tg-testimonials .elementor-testimonial__title{color:#7FC1EC}
.elementor .tg-testimonials .swiper-pagination-bullet{background:#fff;opacity:.3}
.elementor .tg-testimonials .swiper-pagination-bullet-active{background:var(--tg-orange);opacity:1}

/* ---------- FAQ ---------- */
.elementor .tg-faq .elementor-accordion-item{border:1px solid var(--tg-line)!important;border-radius:14px;margin-bottom:12px;background:rgba(8,20,42,.65);overflow:hidden}
.elementor .tg-faq .elementor-tab-title{padding:20px 24px;color:var(--tg-text);font-size:16.5px;font-weight:700}
.elementor .tg-faq .elementor-tab-title a{color:inherit}
.elementor .tg-faq .elementor-tab-title.elementor-active{color:var(--tg-orange)}
.elementor .tg-faq .elementor-accordion-icon{color:var(--tg-orange)}
.elementor .tg-faq .elementor-tab-content{border-top:1px solid var(--tg-line)!important;padding:6px 24px 22px;color:var(--tg-muted)}

/* ---------- Veredicto, 404, legales ---------- */
.elementor .tg-verdict .elementor-heading-title{font-family:var(--tg-display);font-size:44px;font-weight:800;text-transform:uppercase}
.elementor .tg-ok{border-color:rgba(64,190,120,.5)}
.elementor .tg-ok .tg-verdict .elementor-heading-title{color:#6BE0A0}
.elementor .tg-no{border-color:rgba(255,110,110,.5)}
.elementor .tg-no .tg-verdict .elementor-heading-title{color:#FF8F8F}
.elementor .tg-404 .elementor-heading-title{font-family:var(--tg-display);font-weight:800;font-size:clamp(110px,18vw,220px);line-height:.8;color:transparent;-webkit-text-stroke:2px var(--tg-orange);text-align:center}
.elementor .tg-legal h2{font-family:var(--tg-display);text-transform:uppercase;color:var(--tg-text);font-size:28px;margin:32px 0 10px}
.elementor .tg-legal li{margin-bottom:6px}

/* ---------- Hero de páginas internas y migas de pan ---------- */
.elementor .tg-page-hero{position:relative;overflow:hidden;background-color:var(--tg-asphalt)}
.elementor .tg-page-hero > .elementor-background-overlay,.elementor .tg-page-hero::before{background:linear-gradient(90deg,rgba(5,10,19,.97) 0%,rgba(5,10,19,.8) 48%,rgba(10,94,159,.35) 100%)!important;opacity:1!important}
.elementor .tg-crumbs p{font-size:13px;color:var(--tg-muted);margin:0}
.elementor .tg-crumbs a{color:var(--tg-muted)}
.elementor .tg-crumbs a:hover{color:var(--tg-orange)}
.elementor .tg-crumbs i{font-style:normal;opacity:.5;margin:0 6px}
.elementor .tg-crumbs [aria-current]{color:var(--tg-text)}

/* ---------- Banda CTA (foto en transparencia azul) ---------- */
.elementor .tg-cta{border-radius:26px;position:relative;overflow:hidden;border:1px solid rgba(48,146,208,.5);box-shadow:0 40px 80px -40px rgba(10,94,159,.9)}
.elementor .tg-cta::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border:36px solid rgba(243,146,0,.22);border-radius:50%;pointer-events:none}
.elementor .tg-cta .elementor-heading-title{color:#fff}
.elementor .tg-cta .elementor-widget-text-editor{color:#E3ECF7}

/* ---------- Formulario ---------- */
.elementor .tg-form .elementor-field-group .elementor-field{background:rgba(255,255,255,.05);border:1px solid rgba(48,146,208,.4);border-radius:12px;color:var(--tg-text);padding:14px 16px;font-size:15px}
.elementor .tg-form .elementor-field:focus{border-color:var(--tg-orange);box-shadow:0 0 0 3px rgba(243,146,0,.25);outline:0}
.elementor .tg-form .elementor-field-label{color:var(--tg-text);font-size:13px;font-weight:600}
.elementor .tg-form .elementor-select-wrapper select option{background:#08142A}
.elementor .tg-form .elementor-button{background:linear-gradient(135deg,#FFB547,var(--tg-orange));color:var(--tg-ink);border-radius:999px;font-weight:700;padding:16px 30px}
.elementor .tg-form .elementor-field-type-acceptance label{font-size:13px;color:var(--tg-muted)}
.elementor .tg-map-embed iframe{border-radius:var(--tg-radius);filter:invert(.92) hue-rotate(180deg) saturate(.6)}

/* ---------- Footer ---------- */
.elementor .tg-footer{border-top:1px solid var(--tg-line)}
.elementor .tg-footer-title .elementor-heading-title{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--tg-orange)}
.elementor .tg-footer .elementor-icon-list-text{color:var(--tg-muted);font-size:14.5px;transition:color .2s,padding .2s}
.elementor .tg-footer a:hover .elementor-icon-list-text{color:#fff;padding-left:4px}
.elementor .tg-footer .elementor-icon-list-icon i{color:var(--tg-orange)}
.elementor .tg-footer .elementor-icon-list-icon svg{fill:var(--tg-orange)}
.elementor .tg-footer-bottom{border-top:1px solid var(--tg-line)}
.elementor .tg-footer-bottom,.elementor .tg-footer-bottom a{font-size:13px;color:#A3B2C7}
.elementor .tg-footer-bottom a:hover{color:#fff}
.tg-wa-float{position:fixed;right:22px;bottom:22px;z-index:9999;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#25D366;box-shadow:0 12px 30px -8px rgba(37,211,102,.7);transition:transform .25s}
.tg-wa-float:hover{transform:scale(1.08)}
.tg-wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:tg-pulse 2.2s infinite}
@keyframes tg-pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
.tg-wa-float svg{width:30px;height:30px;fill:#fff}

/* ---------- Accesibilidad, movimiento y móvil ---------- */
.elementor a:focus-visible,.elementor button:focus-visible,.elementor .elementor-button:focus-visible,.tg-city:focus-visible{outline:3px solid var(--tg-orange);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .tg-marquee ul{animation:none}.tg-marquee{overflow-x:auto}
  .elementor .tg-hero .elementor-background-video-container{display:none}
}
.elementor .elementor-heading-title{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media (max-width:767px){
  .elementor .tg-step::after{display:none}
  .elementor .tg-title .elementor-heading-title{font-size:34px}
  .elementor .tg-title-hero .elementor-heading-title{font-size:44px}
  .elementor .tg-title-xl .elementor-heading-title{font-size:38px}
  .elementor .tg-stat .elementor-counter-number-wrapper{font-size:42px}
  .tg-marquee li{width:150px;height:70px;padding:10px 14px}
  .tg-wa-float{right:16px;bottom:16px;width:54px;height:54px}
}

/* ---------- Header: logo · menú · botones en una sola línea (v2.0.1) ---------- */
.elementor .tg-header > .e-con:not(.tg-topbar) > .e-con-inner,
.elementor .tg-header > .e-con:not(.tg-topbar):not(:has(> .e-con-inner)),
.elementor .tg-header-main > .e-con-inner{flex-direction:row!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important}
.elementor .tg-header .tg-logo,
.elementor .tg-header .e-con:has(> .tg-btn-wa),
.elementor .tg-header .e-con:has(> .e-con-inner > .tg-btn-wa),
.elementor .tg-header-actions{flex:0 0 auto!important;width:auto!important}
.elementor .tg-header .tg-nav{flex:1 1 auto!important;width:auto!important;max-width:none!important;min-width:0}
.elementor .tg-nav .elementor-nav-menu--main .elementor-nav-menu{flex-wrap:nowrap!important;justify-content:center}
.elementor .tg-nav .elementor-nav-menu--main .elementor-item{white-space:nowrap}
.elementor .tg-nav .elementor-nav-menu--main .elementor-item.has-submenu{padding-right:26px}
@media (min-width:1025px) and (max-width:1200px){
  .elementor .tg-nav .elementor-nav-menu--main .elementor-item{padding-left:9px;padding-right:9px;font-size:14px}
  .elementor .tg-logo img{width:170px}
}
@media (max-width:1024px){.elementor .tg-nav .elementor-menu-toggle{margin-left:auto}}

/* ---------- Carrusel de logos con flechas (Carrusel de imágenes de Elementor) · v2.0.2 ---------- */
.elementor .tg-logos-carousel .elementor-image-carousel-wrapper{padding:4px 0 10px}
.elementor .tg-logos-carousel.elementor-widget-image-carousel .swiper,.elementor .tg-logos-carousel .swiper-container{margin:0 58px;overflow:hidden}
.elementor .tg-logos-carousel .swiper-slide-inner{background:#fff;border-radius:14px;height:84px;display:flex;align-items:center;justify-content:center;padding:14px 22px;margin:0;box-shadow:0 14px 30px -18px rgba(0,0,0,.9);transition:transform .3s var(--tg-ease)}
.elementor .tg-logos-carousel .swiper-slide-inner:hover{transform:translateY(-4px)}
.elementor .tg-logos-carousel .swiper-slide-image{max-height:52px;max-width:100%;width:auto!important;height:auto;object-fit:contain}
.elementor .tg-logos-carousel .elementor-swiper-button{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(48,146,208,.5);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;transition:background .25s,color .25s;cursor:pointer;z-index:2}
.elementor .tg-logos-carousel .elementor-swiper-button svg{fill:currentColor;width:18px;height:18px}
.elementor .tg-logos-carousel .elementor-swiper-button:hover,.elementor .tg-logos-carousel .elementor-swiper-button:focus-visible{background:var(--tg-orange);color:var(--tg-ink)}
.elementor .tg-logos-carousel .elementor-swiper-button-prev{left:0}
.elementor .tg-logos-carousel .elementor-swiper-button-next{right:0}
@media (max-width:767px){.elementor .tg-logos-carousel.elementor-widget-image-carousel .swiper,.elementor .tg-logos-carousel .swiper-container{margin:0 48px}.elementor .tg-logos-carousel .swiper-slide-inner{height:70px;padding:10px 14px}.elementor .tg-logos-carousel .elementor-swiper-button{width:38px;height:38px}}
