/*
Theme Name:   Sifuentes Colombia
Description:  Child theme premium B2B — Instrumentos e implantes quirúrgicos.
Template:     hello-elementor
Version:      3.0.1
Text Domain:  hello-elementor-child
*/

/* ==========================================================================
   0. CUSTOM PROPERTIES — single source of truth
   All component namespaces (--cat-*, --ct-*) alias from --sif-* here
   so a brand colour change requires only ONE edit location.
   ========================================================================== */
:root {
    /* ── Brand palette ───────────────────────────────────────────────────── */
    --sif-blue:           #0A1C85;
    --sif-blue-deep:      #060e2e;
    --sif-blue-mid:       rgba(10,28,133,0.08);
    --sif-yellow:         #FFC300;
    --sif-yellow-dim:     rgba(255,195,0,0.14);
    --sif-yellow-border:  rgba(255,195,0,0.35);
    --sif-white:          #FFFFFF;
    --sif-black:          #1A1A1A;
    --sif-gray-100:       #F7F7F8;
    --sif-gray-border:    rgba(0,0,0,0.07);
    --sif-text-muted:     rgba(26,26,26,0.55);
    --sif-on-dark:        rgba(255,255,255,0.88);
    --sif-on-dark-muted:  rgba(255,255,255,0.56);
    --sif-on-dark-faint:  rgba(255,255,255,0.32);

    /* ── Typography & motion ─────────────────────────────────────────────── */
    --sif-font:           'Manrope',-apple-system,BlinkMacSystemFont,sans-serif;
    --sif-ease:           cubic-bezier(0.4,0,0.2,1);
    --sif-ease-out:       cubic-bezier(0.0,0,0.2,1);
    --sif-t-fast:         0.18s;
    --sif-t-base:         0.28s;

    /* ── Shape & shadow ──────────────────────────────────────────────────── */
    --sif-radius-sm:      3px;
    --sif-radius-md:      8px;
    --sif-radius-lg:      14px;
    --sif-shadow-sm:      0 2px 12px rgba(0,0,0,0.06);
    --sif-shadow-md:      0 6px 24px rgba(0,0,0,0.08);
    --sif-shadow-lg:      0 16px 48px rgba(0,0,0,0.10);
    --sif-shadow-blue:    0 12px 36px rgba(10,28,133,0.14);

    /* ── Catalog namespace aliases (cat-*, sp-* components)
          These MUST mirror the sif-* values above.
          Having them here means catalogo styles do not need a second
          :root block and the brand stays in sync automatically.       ──── */
    --cat-blue:       var(--sif-blue);
    --cat-yellow:     var(--sif-yellow);
    --cat-deep:       var(--sif-blue-deep);
    --cat-white:      var(--sif-white);
    --cat-surface:    #F8F9FC;
    --cat-border:     var(--sif-gray-border);
    --cat-text:       #1A1A2E;
    --cat-muted:      rgba(26,26,46,0.55);
    --cat-ease:       var(--sif-ease);
    --cat-font:       var(--sif-font);
    --cat-sidebar-w:  272px;
    --cat-gap:        32px;
    --cat-radius:     16px;
    --cat-radius-sm:  10px;
}

/* ==========================================================================
   1. RESET
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
body{font-family:var(--sif-font);-webkit-font-smoothing:antialiased;color:var(--sif-black);background:var(--sif-white);margin:0;padding:0;}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
p{margin:0;}

/* ==========================================================================
   2. HEADER — position:fixed
   ==========================================================================
   RAZÓN: position:sticky falla cuando cualquier ancestro de Elementor
   tiene overflow distinto de visible. Solución: position:fixed.
   El JS en header.php calcula body.paddingTop = adminBar.offsetHeight + header.offsetHeight.

   MOBILE MENU ARCHITECTURE NOTE:
   All mobile drawer rules are scoped under #sifMobileMenu (ID selector,
   specificity 1,0,0). This beats Elementor Kit's global .menu { display:flex }
   (0,1,0) without needing separate patch blocks or source-order fights.
   The desktop CTA is scoped to .sif-header__nav so it never leaks into
   the mobile drawer — no overrides needed on the mobile side.
   ========================================================================== */

.elementor-section-wrap>.elementor-section:first-child,
.e-con:first-child{margin-top:0!important;padding-top:0!important;}
/* Eventos (#134): the first boxed container's inner keeps Elementor's default
   10px top padding, which left a white gap between the fixed header and the
   split-screen hero. Zero it so the hero sits flush under the header. */
.page-id-134 .elementor>.e-con:first-child>.e-con-inner{padding-top:0!important;}

/* ── Fixed bar ─────────────────────────────────────────────────────────── */
.sif-header{
  position:fixed;top:0;left:0;right:0;
  z-index:99999;
  height:72px;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid transparent;
  transition:background 0.28s cubic-bezier(0.4,0,0.2,1),
             border-color 0.28s cubic-bezier(0.4,0,0.2,1),
             box-shadow 0.28s cubic-bezier(0.4,0,0.2,1);
}
/* Admin bar: 32px desktop / 46px at ≤782px (WP hides bar, zeroes margin at ≤600px) */
.admin-bar .sif-header{top:32px;}
@media screen and (max-width:782px){.admin-bar .sif-header{top:46px;}}
@media screen and (max-width:600px){
  html.admin-bar{margin-top:0!important;}
  .admin-bar .sif-header{top:0!important;}
}
.sif-header--scrolled{
  background:rgba(255,255,255,0.97);
  border-color:rgba(0,0,0,0.07);
  box-shadow:0 1px 4px rgba(0,0,0,0.04);
}

/* ── Desktop container (3-col grid) ────────────────────────────────────── */
.sif-header__container{display:grid;grid-template-columns:300px 1fr auto;align-items:center;height:100%;}

/* ── Logo ───────────────────────────────────────────────────────────────── */
.sif-header__logo{height:100%;background:var(--sif-blue);clip-path:polygon(0 0,100% 0,86% 100%,0% 100%);display:flex;align-items:center;padding:0 42px 0 26px;flex-shrink:0;}
.sif-header__logo a{display:flex;align-items:center;}
/* Logo header: ampliado ~15% (204→234px) para mejorar la legibilidad del
   logotipo. El SVG tiene ~20% de margen vertical interno, así que el alto visible
   sigue cómodo dentro del header de 72px (clip-path recorta el sobrante transparente). */
.sif-header__logo-img{display:block;width:212px;height:auto;max-width:100%;object-fit:contain;}

/* ── Desktop nav ─────────────────────────────────────────────────────────
   All rules scoped to .sif-header__nav so they never reach the mobile drawer.
──────────────────────────────────────────────────────────────────────────── */
.sif-header__nav{display:flex;align-items:center;justify-content:center;height:100%;}
.sif-header__nav .sif-header__menu{display:flex;height:100%;gap:0;}
.sif-header__nav .sif-header__menu li{position:relative;height:100%;display:flex;align-items:center;}
.sif-header__nav .sif-header__menu li a{display:flex;align-items:center;height:100%;padding:0 16px;font-size:12px;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;color:var(--sif-black);transition:color var(--sif-t-fast) var(--sif-ease);}
/* Hover limpio: sin bloque de fondo (se veía "desacomodado"); solo cambio de
   color del texto + subrayado amarillo (::after). El ::before se conserva
   neutralizado por si algún estado heredado lo referencia. */
.sif-header__nav .sif-header__menu li a::before{content:'';position:absolute;inset:0;background:none;opacity:0;pointer-events:none;}
.sif-header__nav .sif-header__menu li:hover a,
.sif-header__nav .sif-header__menu li.current-menu-item>a{color:var(--sif-blue);}
.sif-header__nav .sif-header__menu li::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--sif-yellow);transform:scaleX(0);transform-origin:center;transition:transform 0.26s var(--sif-ease);}
.sif-header__nav .sif-header__menu li.current-menu-item::after,
.sif-header__nav .sif-header__menu li:hover::after{transform:scaleX(1);}

/* Desktop CTA — scoped here, never touches mobile drawer */
.sif-header__nav .sif-header__menu-cta{background:var(--sif-blue)!important;color:var(--sif-white)!important;padding:7px 18px!important;height:auto!important;border-radius:var(--sif-radius-sm);margin-left:6px;font-size:11.5px!important;transition:background var(--sif-t-fast) var(--sif-ease),color var(--sif-t-fast) var(--sif-ease)!important;}
.sif-header__nav .sif-header__menu-cta:hover{background:var(--sif-yellow)!important;color:var(--sif-blue)!important;}
.sif-header__nav .sif-header__menu li:has(.sif-header__menu-cta)::after{display:none;}
.sif-header__nav .sif-header__menu a.sif-header__menu-cta::before,
.sif-header__nav .sif-header__menu li:hover a.sif-header__menu-cta::before{display:none!important;}
.sif-header__nav .sif-header__menu li:hover a.sif-header__menu-cta{color:var(--sif-white)!important;}

/* ── Actions (search + hamburger) ───────────────────────────────────────── */
.sif-header__actions{display:flex;align-items:center;gap:10px;padding:0 24px 0 16px;}
.sif-header__search{display:flex;align-items:center;background:var(--sif-gray-100);border-radius:20px;padding:0 12px;height:34px;border:1px solid transparent;gap:7px;transition:background var(--sif-t-fast) var(--sif-ease),border-color var(--sif-t-fast) var(--sif-ease),box-shadow var(--sif-t-fast) var(--sif-ease);}
.sif-header__search:focus-within{background:var(--sif-white);border-color:rgba(0,0,0,0.13);box-shadow:0 2px 8px rgba(0,0,0,0.05);}
.sif-header__search-input{border:none!important;background:transparent!important;outline:none!important;box-shadow:none!important;width:138px;font-family:var(--sif-font);font-size:13px;color:var(--sif-black);padding:0;}
.sif-header__search-input::placeholder{color:#aaa;}
.sif-header__search-btn{border:none!important;background:transparent!important;color:#aaa;cursor:pointer;display:flex;align-items:center;padding:0;flex-shrink:0;transition:color var(--sif-t-fast) var(--sif-ease);}
.sif-header__search:focus-within .sif-header__search-btn{color:var(--sif-blue);}

/* ── Hamburger — hidden on desktop ─────────────────────────────────────── */
.sif-header__hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:transparent;border:none;cursor:pointer;padding:4px;flex-shrink:0;}
.sif-header__hamburger-line{display:block;width:100%;height:1.5px;background:var(--sif-black);border-radius:2px;transition:transform var(--sif-t-base) var(--sif-ease),opacity var(--sif-t-base) var(--sif-ease);transform-origin:center;}
.sif-header__hamburger--open .sif-header__hamburger-line:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.sif-header__hamburger--open .sif-header__hamburger-line:nth-child(2){opacity:0;transform:scaleX(0);}
.sif-header__hamburger--open .sif-header__hamburger-line:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ── Mobile drawer — ID-scoped for guaranteed specificity ────────────────
   WHY ID: Elementor Kit injects global .menu { display:flex } as an author
   stylesheet. Class selectors can't reliably beat it across source orders.
   #sifMobileMenu has specificity (1,0,0); Elementor's .menu has (0,1,0).
   The !important pair on display/flex-direction provides a final fallback
   for any Elementor !important rules — ID-anchored !important (1,x,x)
   always wins over class-anchored !important (0,x,x) in author stylesheets.
──────────────────────────────────────────────────────────────────────────── */
.sif-header__mobile-menu{
  position:absolute;top:72px;left:0;right:0;
  background:rgba(255,255,255,0.98);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--sif-gray-border);
  box-shadow:var(--sif-shadow-md);
  overflow:hidden;
  /* Hidden by default — JS toggles --open class */
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity var(--sif-t-base) var(--sif-ease),
             visibility var(--sif-t-base) var(--sif-ease),
             transform var(--sif-t-base) var(--sif-ease);
  pointer-events:none;
}
.sif-header__mobile-menu--open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}

/* Vertical stack — beats Elementor's .menu { display:flex } */
#sifMobileMenu ul{
  display:flex!important;
  flex-direction:column!important;
  list-style:none;margin:0;padding:8px 0 12px;width:100%;
}
#sifMobileMenu li{display:block;width:100%;margin:0;padding:0;}

/* Nav links */
#sifMobileMenu li a{
  display:block;width:100%;padding:12px 24px;
  font-size:13px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--sif-black);border-left:2px solid transparent;
  box-sizing:border-box;
  transition:color var(--sif-t-fast) var(--sif-ease),
             border-color var(--sif-t-fast) var(--sif-ease),
             background var(--sif-t-fast) var(--sif-ease);
}
#sifMobileMenu li a:hover,
#sifMobileMenu li.current-menu-item>a{
  color:var(--sif-blue);border-color:var(--sif-yellow);background:var(--sif-blue-mid);
}

/* CTA in mobile drawer — compact, same visual weight as link items */
#sifMobileMenu .sif-header__menu-cta{
  display:block!important;
  width:calc(100% - 32px)!important;
  margin:4px 16px 10px!important;
  padding:10px 16px!important;
  text-align:center!important;
  background:var(--sif-blue)!important;
  color:var(--sif-white)!important;
  font-size:12px!important;font-weight:700!important;letter-spacing:0.07em!important;
  border-radius:var(--sif-radius-sm)!important;
  border-left:none!important;
  height:auto!important;box-sizing:border-box!important;
}
#sifMobileMenu .sif-header__menu-cta:hover{
  background:var(--sif-yellow)!important;color:var(--sif-blue)!important;
}
/* Suppress yellow underline animation and hover background on CTA li */
#sifMobileMenu li:has(.sif-header__menu-cta)::after,
#sifMobileMenu li:has(.sif-header__menu-cta)::before{display:none!important;}
#sifMobileMenu li:has(.sif-header__menu-cta):hover{background:transparent!important;}

/* ── Responsive breakpoints ──────────────────────────────────────────────── */
@media(max-width:900px){
  .sif-header__container{display:flex;align-items:center;height:100%;padding:0;}
  .sif-header__nav{display:none;}
  .sif-header__logo{flex-shrink:0;width:218px;clip-path:polygon(0 0,100% 0,83% 100%,0% 100%);padding:0 40px 0 20px;}
  .sif-header__logo-img{width:155px;}
  .sif-header__actions{flex:1;padding:0 14px;justify-content:flex-end;gap:8px;}
  .sif-header__search{flex:1;max-width:220px;min-width:0;}
  .sif-header__search-input{width:100%;min-width:0;}
  .sif-header__hamburger{display:flex;}
}
@media(max-width:600px){
  .sif-header{height:58px;}
  .sif-header__mobile-menu{top:58px;}
  .sif-header__logo{width:186px;clip-path:polygon(0 0,100% 0,81% 100%,0% 100%);padding:0 32px 0 15px;}
  .sif-header__logo-img{width:132px;}
  .sif-header__actions{padding:0 10px;gap:6px;}
  .sif-header__search{flex:1;max-width:170px;height:30px;padding:0 10px;}
  .sif-header__search-input{font-size:12px;}
  .sif-header__hamburger{width:30px;height:30px;}
}
@media(max-width:380px){
  .sif-header__logo{width:156px;padding:0 29px 0 14px;}
  .sif-header__logo-img{width:110px;}
  .sif-header__search{max-width:124px;}
  .sif-header__actions{gap:4px;padding:0 8px;}
  .sif-header__hamburger{width:28px;height:28px;}
}


/* ==========================================================================
   3. HERO SLIDER
   ========================================================================== */
.sif-hero{position:relative;width:100vw;margin-left:calc(-50vw + 50%);height:62vh;min-height:380px;max-height:620px;overflow:hidden;background:var(--sif-blue-deep);}
.sif-hero__track{display:flex;height:100%;width:300%;transition:transform 0.72s var(--sif-ease);will-change:transform;}
.sif-hero__slide{flex:0 0 calc(100% / 3);width:calc(100% / 3);height:100%;position:relative;display:flex;align-items:center;}
.sif-hero__media{position:absolute;inset:0;margin:0;padding:0;z-index:0;}
.sif-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
/* Visual-botón hover overlay — parent is already position:absolute so children are contained */
.sif-hero__img-btn{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;display:block;opacity:0;transition:opacity 0.55s var(--sif-ease);}
.sif-hero__slide:hover .sif-hero__img-btn,.sif-hero__slide:focus-within .sif-hero__img-btn{opacity:1;}
.sif-hero__overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(6,14,46,0.90) 0%,rgba(6,14,46,0.60) 55%,rgba(6,14,46,0.15) 100%);}
.sif-hero__content{position:relative;z-index:1;width:100%;max-width:1160px;margin:0 auto;padding:0 60px;display:flex;flex-direction:column;gap:18px;}
.sif-hero__label{display:flex;align-items:center;gap:12px;font-size:10.5px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,195,0,0.80);}
.sif-hero__label::before{content:'';display:block;width:28px;height:1px;background:var(--sif-yellow);opacity:0.75;flex-shrink:0;}
.sif-hero__title{font-size:clamp(28px,4vw,54px);font-weight:800;color:var(--sif-white);line-height:1.1;letter-spacing:-0.02em;margin:0;max-width:620px;}
.sif-hero__title .sif-accent{color:var(--sif-yellow);}
.sif-hero__desc{font-size:clamp(14px,1.3vw,16px);font-weight:400;color:var(--sif-on-dark-muted);line-height:1.78;margin:0;max-width:490px;}
.sif-hero__actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:4px;}

.sif-btn,
.sif-btn:link,
.sif-btn:visited {
  font-family:var(--sif-font);font-size:12px;font-weight:700;
  letter-spacing:0.07em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:8px;
  cursor:pointer;white-space:nowrap;text-decoration:none;
  transition:color var(--sif-t-base) var(--sif-ease),background var(--sif-t-base) var(--sif-ease),border-color var(--sif-t-base) var(--sif-ease);
}
/* ── HERO BUTTONS — DEFINITIVE FIX v3 ────────────────────────────────────────
   ROOT CAUSE: Elementor Kit CSS is injected as an inline <style> in <head>
   AFTER the child theme <link> stylesheet. With equal !important specificity
   (0,4,1) vs (0,4,1), source order wins — Elementor wins.

   FIX: Anchor the selector to #sifHero (ID already present in markup).
   ID contributes column (1,0,0), making total specificity (1,3,1).
   No class-only Elementor selector can ever reach column (1,x,x).
   Source order is irrelevant once columns differ.

   #sifHero            = (1,0,0)  ← ID
   .sif-hero__actions  = (0,1,0)
   a                   = (0,0,1)
   .sif-btn            = (0,1,0)
   .sif-btn--ghost     = (0,1,0)
   TOTAL               = (1,3,1)  ← unbeatable by Elementor's (0,x,y)
   ──────────────────────────────────────────────────────────────────────────── */

/* GHOST — resting states */
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost:link,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost:visited,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost:focus {
  padding:          11px 26px                    !important;
  border:           1px solid rgba(255,255,255,0.40) !important;
  border-radius:    var(--sif-radius-sm)         !important;
  color:            var(--sif-white)             !important;
  background:       transparent                  !important;
  background-color: transparent                  !important;
  background-image: none                         !important;
  box-shadow:       none                         !important;
  text-decoration:  none                         !important;
}

/* GHOST — interactive states */
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost:hover,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost:active {
  background:       var(--sif-yellow) !important;
  background-color: var(--sif-yellow) !important;
  background-image: none              !important;
  border-color:     var(--sif-yellow) !important;
  color:            var(--sif-blue)   !important;
  box-shadow:       none              !important;
}

/* TEXT — resting states */
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text:link,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text:visited,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text:focus {
  padding:          0         !important;
  border:           none      !important;
  background:       none      !important;
  background-color: transparent !important;
  background-image: none      !important;
  box-shadow:       none      !important;
  color:            var(--sif-on-dark-muted) !important;
  text-decoration:  none      !important;
}

/* TEXT — interactive states */
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text:hover,
#sifHero .sif-hero__actions a.sif-btn.sif-btn--text:active {
  color:            var(--sif-yellow) !important;
  background:       none              !important;
  background-color: transparent       !important;
  background-image: none              !important;
}

/* ── ARROW BUTTONS & INDICATORS — ID-anchored (1,x,x) — Elementor-proof ──────
   ROOT CAUSE: Elementor Kit injects global `button { background-color: [magenta] }`
   styles. Our previous `.sif-hero__arrow { background: transparent }` had no
   !important and no ID column, so Elementor won unconditionally.

   FIX: Same #sifHero ID strategy as the ghost button fix.
   Specificity #sifHero .sif-hero__arrow = (1,1,0) — unbeatable by (0,x,y).
   All background-* properties explicitly cleared with !important.
   ──────────────────────────────────────────────────────────────────────────── */

/* Layout wrapper — class-only is fine, no background here */
.sif-hero__controls{position:absolute;bottom:44px;right:60px;z-index:10;display:flex;gap:0;}

/* Arrow buttons — all states */
#sifHero .sif-hero__arrow,
#sifHero .sif-hero__arrow:hover,
#sifHero .sif-hero__arrow:focus,
#sifHero .sif-hero__arrow:active {
  background:       transparent !important;
  background-color: transparent !important;
  background-image: none        !important;
  border:           none        !important;
  box-shadow:       none        !important;
}

/* Resting state: size, colour, cursor */
#sifHero .sif-hero__arrow {
  width:      44px;
  height:     44px;
  display:    flex;
  align-items:center;
  justify-content:center;
  color:      rgba(255,255,255,0.60);
  cursor:     pointer;
  padding:    0;
  transition: color var(--sif-t-fast) var(--sif-ease),
              transform var(--sif-t-fast) var(--sif-ease);
}

/* Hover: yellow icon, subtle scale — no background change */
#sifHero .sif-hero__arrow:hover {
  color:     var(--sif-yellow) !important;
  transform: scale(1.18);
}

/* ── Indicator dots ───────────────────────────────────────────────────────── */
/* Indicators are <button> elements too — same Elementor Kit risk. */
.sif-hero__indicators{position:absolute;bottom:52px;left:60px;z-index:10;display:flex;align-items:center;gap:8px;}

#sifHero .sif-hero__indicator {
  width:            28px !important;
  height:           1.5px !important;
  border:           none !important;
  border-radius:    1px !important;
  background:       rgba(255,255,255,0.28) !important;
  background-color: rgba(255,255,255,0.28) !important;
  background-image: none !important;
  box-shadow:       none !important;
  cursor:           pointer !important;
  padding:          0 !important;
  transition:       background var(--sif-t-base) var(--sif-ease),
                    width var(--sif-t-base) var(--sif-ease) !important;
}

#sifHero .sif-hero__indicator--active {
  width:            48px !important;
  background:       var(--sif-yellow) !important;
  background-color: var(--sif-yellow) !important;
}

/* ==========================================================================
   4. TRUST BANNER
   ========================================================================== */
.sif-trust{background:var(--sif-white);padding:26px 20px;border-top:1px solid var(--sif-gray-border);border-bottom:1px solid var(--sif-gray-border);}
.sif-trust__container{max-width:1160px;margin:0 auto;display:flex;justify-content:center;align-items:center;gap:52px;flex-wrap:wrap;}
.sif-trust__logo{max-height:32px;width:auto;filter:grayscale(100%);opacity:0.45;transition:filter var(--sif-t-base) var(--sif-ease),opacity var(--sif-t-base) var(--sif-ease);}
.sif-trust__logo:hover{filter:grayscale(0%);opacity:1;}

/* ==========================================================================
   5. PILARES — 4 CARDS 2×2
   ========================================================================== */
.sif-values{background:var(--sif-white);padding:96px 20px;border-bottom:1px solid var(--sif-gray-border);}
.sif-section-header{text-align:center;margin-bottom:56px;}
.sif-section-label{display:inline-flex;align-items:center;gap:10px;font-size:10.5px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--sif-yellow);margin-bottom:12px;}
.sif-section-label::before,.sif-section-label::after{content:'';display:block;width:20px;height:1px;background:var(--sif-yellow);opacity:0.5;}
.sif-section-title{font-weight:800;font-size:clamp(24px,2.8vw,36px);color:var(--sif-blue);margin:0 0 12px;letter-spacing:-0.02em;line-height:1.15;}
.sif-section-subtitle{font-size:15.5px;font-weight:400;color:var(--sif-text-muted);max-width:540px;margin:0 auto;line-height:1.72;}
.sif-values__container{max-width:1160px;margin:0 auto;}
.sif-values__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}

.sif-value-card{background:var(--sif-white);border:1px solid var(--sif-gray-border);border-radius:var(--sif-radius-lg);padding:38px 34px;display:flex;flex-direction:column;align-items:flex-start;transition:box-shadow var(--sif-t-base) var(--sif-ease),border-color var(--sif-t-base) var(--sif-ease),transform var(--sif-t-base) var(--sif-ease);}
.sif-value-card:hover{box-shadow:var(--sif-shadow-md);border-color:rgba(10,28,133,0.10);transform:translateY(-4px);}
.sif-value-card__icon{width:44px;height:44px;background:var(--sif-blue-mid);border-radius:var(--sif-radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--sif-blue);flex-shrink:0;}
.sif-value-card__icon svg{width:20px;height:20px;}
.sif-value-card__number{font-size:10px;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--sif-yellow);margin-bottom:7px;display:block;}
.sif-value-card__title{font-weight:800;font-size:16.5px;color:var(--sif-black);margin:0 0 9px;letter-spacing:-0.01em;}
.sif-value-card__text{font-size:14px;color:var(--sif-text-muted);line-height:1.72;margin:0;}

/* ==========================================================================
   6. ESPECIALIDADES BENTO
   ========================================================================== */
.sif-specialties{background:var(--sif-gray-100);padding:72px 20px;border-bottom:1px solid var(--sif-gray-border);width:100vw;margin-left:calc(-50vw + 50%);}
.sif-specialties__container{max-width:1160px;margin:0 auto;}
.sif-bento-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:240px 200px;gap:18px;}

.sif-bento-card{background:var(--sif-white);border-radius:var(--sif-radius-lg);overflow:hidden;text-decoration:none;display:flex;position:relative;border:1px solid var(--sif-gray-border);transition:box-shadow var(--sif-t-base) var(--sif-ease),transform var(--sif-t-base) var(--sif-ease);}
.sif-bento-card:hover{box-shadow:var(--sif-shadow-lg);transform:translateY(-3px);}
.sif-bento-card--large{grid-row:1/span 2;flex-direction:column;justify-content:flex-end;}
.sif-bento-card--large .sif-bento-card__media{position:absolute;inset:0;z-index:0;}
.sif-bento-card--large .sif-bento-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--sif-ease-out);}
.sif-bento-card--large .sif-bento-card__media::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(6,14,46,0.90) 0%,rgba(6,14,46,0.25) 55%,transparent 100%);}
.sif-bento-card--large:hover .sif-bento-card__media img{transform:scale(1.04);}
.sif-bento-card--large .sif-bento-card__content{position:relative;z-index:1;padding:34px;}
.sif-bento-card--small{flex-direction:row;align-items:stretch;}
.sif-bento-card--small .sif-bento-card__content{flex:1;padding:28px 24px;display:flex;flex-direction:column;justify-content:center;}
.sif-bento-card--small .sif-bento-card__media{width:42%;flex-shrink:0;overflow:hidden;border-radius:0 var(--sif-radius-lg) var(--sif-radius-lg) 0;}
.sif-bento-card--small .sif-bento-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--sif-ease-out);}
.sif-bento-card--small:hover .sif-bento-card__media img{transform:scale(1.06);}

.sif-bento-card__tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sif-yellow);margin-bottom:7px;}
.sif-bento-card--large .sif-bento-card__tag{color:rgba(255,195,0,0.85);}
.sif-bento-card__title{font-weight:800;font-size:19px;color:var(--sif-black);margin:0 0 8px;letter-spacing:-0.01em;line-height:1.2;transition:color var(--sif-t-fast) var(--sif-ease);}
.sif-bento-card--large .sif-bento-card__title{font-size:25px;color:var(--sif-white);}
.sif-bento-card--small .sif-bento-card__title{font-size:15.5px;}
.sif-bento-card__text{font-size:13.5px;color:var(--sif-text-muted);line-height:1.65;margin:0 0 16px;}
.sif-bento-card--large .sif-bento-card__text{color:rgba(255,255,255,0.68);}
.sif-bento-card__link{font-size:11px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--sif-blue);display:inline-flex;align-items:center;gap:6px;transition:gap var(--sif-t-base) var(--sif-ease),color var(--sif-t-fast) var(--sif-ease);}
.sif-bento-card--large .sif-bento-card__link{color:var(--sif-yellow);}
.sif-bento-card:hover .sif-bento-card__link{gap:12px;}
.sif-bento-card:hover .sif-bento-card__title{color:var(--sif-blue);}
.sif-bento-card--large:hover .sif-bento-card__title{color:var(--sif-white);}
/* Bento visual-botón hover overlay */
.sif-bento-card__img-btn{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:0;transition:opacity 0.55s var(--sif-ease)!important;}
.sif-bento-card:hover .sif-bento-card__img-btn{opacity:1;}

/* ==========================================================================
   7. HISTORIA
   ========================================================================== */
.sif-history{background:var(--sif-white);padding:80px 20px;border-bottom:1px solid var(--sif-gray-border);overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);}
.sif-history__container{max-width:1400px;margin:0 auto;padding:0 60px;display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;}
.sif-history__badge{display:inline-flex;align-items:center;gap:10px;background:var(--sif-blue-mid);border-radius:30px;padding:7px 16px;font-size:10.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sif-blue);margin-bottom:22px;}
.sif-history__badge-dot{width:7px;height:7px;background:var(--sif-yellow);border-radius:50%;flex-shrink:0;animation:sif-pulse-dot 2.4s infinite;}
@keyframes sif-pulse-dot{0%{box-shadow:0 0 0 0 rgba(255,195,0,0.5);}70%{box-shadow:0 0 0 8px rgba(255,195,0,0);}100%{box-shadow:0 0 0 0 rgba(255,195,0,0);}}
.sif-history__title{font-weight:800;font-size:clamp(24px,2.6vw,38px);color:var(--sif-black);line-height:1.12;margin:0 0 20px;letter-spacing:-0.02em;}
.sif-history__title .sif-accent{color:var(--sif-blue);}
.sif-history__text{font-size:15.5px;color:var(--sif-text-muted);line-height:1.78;margin:0 0 32px;}
.sif-history__text strong{font-weight:700;color:var(--sif-blue);}

/* Enlace con movimiento horizontal */
.sif-history__link{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--sif-black);padding-bottom:4px;border-bottom:1.5px solid var(--sif-yellow);transition:color var(--sif-t-fast) var(--sif-ease),gap var(--sif-t-base) var(--sif-ease),transform var(--sif-t-base) var(--sif-ease);}
.sif-history__link:hover{color:var(--sif-blue);gap:16px;transform:translateX(6px);}

.sif-history__visual{position:relative;min-height:460px;}
.sif-history__img-wrapper{width:84%;height:400px;margin-left:auto;border-radius:var(--sif-radius-lg);overflow:hidden;box-shadow:var(--sif-shadow-lg);}
.sif-history__img-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform 10s linear;}
.sif-history__img-wrapper:hover img{transform:scale(1.04);}

.sif-history__card{position:absolute;bottom:-10px;left:0;width:67%;background:rgba(255,255,255,0.97);backdrop-filter:blur(18px);border-radius:var(--sif-radius-lg);border:1px solid var(--sif-gray-border);box-shadow:var(--sif-shadow-blue);padding:28px 30px;z-index:5;transition:transform var(--sif-t-base) var(--sif-ease),box-shadow var(--sif-t-base) var(--sif-ease);}
.sif-history__card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(10,28,133,0.18);}
.sif-history__card-label{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sif-blue);margin-bottom:10px;}
.sif-history__card-title{font-weight:800;font-size:16px;color:var(--sif-black);margin:0 0 7px;}
.sif-history__card-text{font-size:13px;color:var(--sif-text-muted);line-height:1.65;margin:0 0 18px;}
.sif-history__card-btn{display:inline-flex;align-items:center;gap:6px;background:var(--sif-blue);color:var(--sif-white);font-size:11.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:10px 20px;border-radius:var(--sif-radius-sm);transition:background var(--sif-t-fast) var(--sif-ease),color var(--sif-t-fast) var(--sif-ease);}
.sif-history__card-btn:hover{background:var(--sif-yellow);color:var(--sif-blue);}

/* ==========================================================================
   8. CTA — CLÍNICO BLANCO, ANCHO COMPLETO
   ========================================================================== */
.sif-cta{background:var(--sif-white);padding:64px 20px;text-align:center;border-top:1px solid var(--sif-gray-border);border-bottom:1px solid var(--sif-gray-border);width:100vw;margin-left:calc(-50vw + 50%);position:relative;}
.sif-cta::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:56px;height:2px;background:var(--sif-yellow);}
.sif-cta__container{max-width:100%;margin:0;padding:0 40px;position:relative;z-index:1;}
.sif-cta__label{display:inline-flex;align-items:center;gap:10px;font-size:10.5px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--sif-yellow);margin-bottom:18px;}
.sif-cta__label::before,.sif-cta__label::after{content:'';display:block;width:20px;height:1px;background:var(--sif-yellow);opacity:0.5;}
.sif-cta__title{font-weight:800;font-size:clamp(24px,3.2vw,44px);color:var(--sif-blue);line-height:1.15;margin:0 0 16px;letter-spacing:-0.02em;}
.sif-cta__title .sif-accent{color:var(--sif-black);}
.sif-cta__subtitle{font-size:15.5px;color:var(--sif-text-muted);line-height:1.72;margin:0 0 44px;max-width:680px;margin-left:auto;margin-right:auto;}
.sif-cta__actions{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;}
.sif-cta__btn-primary{background:var(--sif-blue);color:var(--sif-white);font-family:var(--sif-font);font-size:12.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:14px 32px;border-radius:var(--sif-radius-sm);border:2px solid var(--sif-blue);display:inline-flex;align-items:center;gap:8px;transition:background var(--sif-t-fast) var(--sif-ease),border-color var(--sif-t-fast) var(--sif-ease),color var(--sif-t-fast) var(--sif-ease),transform var(--sif-t-fast) var(--sif-ease);}
.sif-cta__btn-primary:hover{background:var(--sif-blue-deep,#060e2e);border-color:var(--sif-yellow);color:var(--sif-yellow);transform:translateY(-2px);}
.sif-cta__btn-ghost{background:transparent;color:var(--sif-blue);font-family:var(--sif-font);font-size:12.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:14px 32px;border-radius:var(--sif-radius-sm);border:2px solid rgba(10,28,133,0.25);display:inline-flex;align-items:center;gap:8px;transition:background var(--sif-t-fast) var(--sif-ease),border-color var(--sif-t-fast) var(--sif-ease),transform var(--sif-t-fast) var(--sif-ease);}
.sif-cta__btn-ghost:hover{background:var(--sif-blue-mid);border-color:var(--sif-blue);transform:translateY(-2px);}

/* ==========================================================================
   9. FOOTER
   ========================================================================== */
.sif-footer{background:var(--sif-blue-deep);color:var(--sif-white);font-family:var(--sif-font);border-top:3px solid var(--sif-yellow);}
.sif-footer__main{padding:76px 20px 56px;}
.sif-footer__container{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;}
.sif-footer__logo{max-height:88px;width:auto;margin-bottom:20px;opacity:0.92;}
.sif-footer__desc{font-size:13.5px;line-height:1.72;color:var(--sif-on-dark-muted);margin:0 0 26px;max-width:320px;}
.sif-footer__contact{font-style:normal;}
.sif-footer__contact p{font-size:13px;color:rgba(255,255,255,0.72);margin:0 0 11px;display:flex;align-items:center;gap:10px;}
.sif-footer__contact svg{color:var(--sif-yellow);flex-shrink:0;}
.sif-footer__heading{font-weight:800;font-size:12px;letter-spacing:0.10em;text-transform:uppercase;color:var(--sif-white);margin:0 0 20px;}
.sif-footer__menu li{margin-bottom:11px;}
.sif-footer__menu a{color:var(--sif-on-dark-muted);font-size:13.5px;font-weight:400;transition:color var(--sif-t-fast) var(--sif-ease),transform var(--sif-t-fast) var(--sif-ease);display:inline-block;}
.sif-footer__menu a:hover{color:var(--sif-white);transform:translateX(4px);}
.sif-footer__menu-highlight{color:var(--sif-yellow)!important;font-weight:700!important;}
.sif-footer__bottom{background:rgba(0,0,0,0.20);padding:16px 20px;}
.sif-footer__bottom-container{max-width:1160px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--sif-on-dark-faint);gap:20px;flex-wrap:wrap;}
.sif-footer__copyright{margin:0;}
.sif-footer__legal{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.sif-footer__legal a{color:var(--sif-on-dark-faint);transition:color var(--sif-t-fast) var(--sif-ease);}
.sif-footer__legal a:hover{color:var(--sif-white);}
.sif-footer__cert{font-weight:700;color:rgba(255,255,255,0.60);}

/* ==========================================================================
   10. HOTSPOT — 3 COLUMNAS + LÍNEAS SVG
   ========================================================================== */
.sif-hotspot-section{background:var(--sif-blue-deep);padding:88px 0;}
.sif-hotspot-section .sif-section-title{color:var(--sif-white);}
.sif-hotspot-section .sif-section-subtitle{color:var(--sif-on-dark-muted);}
.sif-hotspot-section .sif-section-header{padding:0 40px 52px;}

.sif-hotspot-layout{display:grid;grid-template-columns:230px 1fr 230px;align-items:center;min-height:580px;position:relative;}

.sif-hotspot-col{display:flex;flex-direction:column;gap:36px;padding:20px 0;z-index:2;}
.sif-hotspot-col--left{padding-left:40px;align-items:flex-end;}
.sif-hotspot-col--right{padding-right:40px;align-items:flex-start;}

.sif-hs-label{display:flex;flex-direction:column;cursor:pointer;position:relative;transition:transform var(--sif-t-fast) var(--sif-ease);}
.sif-hotspot-col--left .sif-hs-label{align-items:flex-end;text-align:right;}
.sif-hotspot-col--right .sif-hs-label{align-items:flex-start;text-align:left;}
.sif-hs-label:hover{transform:translateY(-2px);}
.sif-hs-label__icon{width:38px;height:38px;background:rgba(10,28,133,0.35);border:1px solid var(--sif-yellow-border);border-radius:var(--sif-radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:8px;color:var(--sif-yellow);transition:background var(--sif-t-fast) var(--sif-ease),border-color var(--sif-t-fast) var(--sif-ease);}
.sif-hs-label:hover .sif-hs-label__icon,.sif-hs-label.sif-hs-active .sif-hs-label__icon{background:var(--sif-yellow-dim);border-color:var(--sif-yellow);}
.sif-hs-label__icon svg{width:18px;height:18px;}
.sif-hs-label__zone{font-size:9.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,195,0,0.65);margin-bottom:3px;}
.sif-hs-label__title{font-size:13.5px;font-weight:800;color:var(--sif-white);line-height:1.2;}
.sif-hs-label.sif-hs-active .sif-hs-label__title{color:var(--sif-yellow);}

/* Centro: imagen + SVG overlay */
.sif-hotspot-center{position:relative;display:flex;justify-content:center;align-items:center;padding:20px 0;}
.sif-hotspot-center__img{max-height:540px;width:auto;display:block;margin:0 auto;position:relative;z-index:1;}
.sif-hotspot-lines-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible;}

/* Líneas de conexión */
.sif-line{stroke:rgba(255,195,0,0.28);stroke-width:1;stroke-dasharray:4 3;fill:none;transition:stroke var(--sif-t-fast) var(--sif-ease);}
.sif-line.sif-hs-active{stroke:rgba(255,195,0,0.80);stroke-dasharray:none;}
.sif-dot-marker{fill:rgba(255,195,0,0.20);stroke:rgba(255,195,0,0.60);stroke-width:1.5;transition:fill var(--sif-t-fast) var(--sif-ease),stroke var(--sif-t-fast) var(--sif-ease);}
.sif-dot-marker.sif-hs-active{fill:var(--sif-yellow);stroke:var(--sif-yellow);}

/* Panel info activo */
.sif-hotspot-info-bottom{margin-top:32px;padding:0 40px;min-height:140px;}
.sif-hs-panel{display:none;}
.sif-hs-panel.sif-hs-active{display:block;animation:sif-fadein 0.22s var(--sif-ease);}
@keyframes sif-fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.sif-hs-panel__zone{font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,195,0,0.70);margin-bottom:6px;display:block;}
.sif-hs-panel__title{font-size:24px;font-weight:800;color:var(--sif-yellow);margin:0 0 10px;letter-spacing:-0.01em;}
.sif-hs-panel__desc{font-size:14.5px;color:var(--sif-on-dark-muted);line-height:1.72;margin:0 0 16px;}
.sif-hs-panel__tags{display:flex;flex-wrap:wrap;gap:7px;}
.sif-hs-panel__tags span{font-size:11px;font-weight:600;color:var(--sif-yellow);background:var(--sif-yellow-dim);border:1px solid var(--sif-yellow-border);padding:3px 11px;border-radius:20px;}

/* ==========================================================================
   11. RESPONSIVE GLOBAL
   ========================================================================== */
@media(max-width:1100px){
    .sif-bento-grid{grid-template-rows:270px 240px;}
    .sif-history__container{gap:52px;}
    .sif-hotspot-layout{grid-template-columns:190px 1fr 190px;}
    .sif-hotspot-col--left{padding-left:24px;}
    .sif-hotspot-col--right{padding-right:24px;}
}

@media(max-width:900px){
    .sif-bento-grid{grid-template-columns:1fr;grid-template-rows:auto;}
    .sif-bento-card--large{grid-row:auto;min-height:380px;}
    .sif-bento-card--small{flex-direction:column;}
    .sif-bento-card--small .sif-bento-card__media{width:100%;height:180px;border-radius:0 0 var(--sif-radius-lg) var(--sif-radius-lg);}
    .sif-values__grid{grid-template-columns:1fr;}
    .sif-history__container{grid-template-columns:1fr;gap:44px;text-align:center;}
    .sif-history__badge{margin:0 auto 22px;}
    .sif-history__link{margin:0 auto;}
    .sif-history__visual{min-height:auto;}
    .sif-history__img-wrapper{width:100%;height:300px;margin:0;}
    .sif-history__card{position:relative;bottom:0;left:0;width:92%;margin:-44px auto 0;text-align:left;}
    .sif-footer__container{grid-template-columns:1fr 1fr;gap:44px;}
    .sif-footer__brand{grid-column:1/-1;}
    .sif-footer__desc{max-width:100%;}
    /* Hotspot apilado */
    .sif-hotspot-layout{display:flex;flex-direction:column;gap:0;}
    .sif-hotspot-center{order:-1;padding:20px;}
    .sif-hotspot-center__img{max-height:380px;}
    .sif-hotspot-col--left,.sif-hotspot-col--right{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:14px;padding:16px 20px;align-items:flex-start;}
    .sif-hotspot-col--left .sif-hs-label,.sif-hotspot-col--right .sif-hs-label{align-items:center;text-align:center;}
    .sif-hotspot-lines-svg{display:none;}
    .sif-hotspot-section .sif-section-header{padding:0 20px 40px;}
    .sif-hotspot-info-bottom{padding:16px 20px;}
}

@media(max-width:600px){
    .sif-hero{height:84vh;min-height:460px;}
    .sif-hero__content{padding:0 22px;}
    .sif-hero__desc{display:none;}
    .sif-hero__controls{right:22px;bottom:24px;}
    .sif-hero__indicators{left:22px;bottom:28px;}
    .sif-values{padding:60px 16px;}
    .sif-values__grid{gap:14px;}
    .sif-value-card{padding:28px 20px;}
    .sif-specialties{padding:60px 16px;}
    .sif-history{padding:64px 16px;}
    .sif-cta{padding:64px 16px;}
    .sif-cta__container{padding:0 16px;}
    .sif-cta__actions{flex-direction:column;}
    .sif-cta__btn-primary,.sif-cta__btn-ghost{width:100%;justify-content:center;}
    .sif-footer__container{grid-template-columns:1fr;padding:52px 16px 32px;gap:28px;}
    .sif-footer__bottom-container{flex-direction:column;text-align:center;gap:10px;}
    .sif-footer__legal{flex-direction:column;gap:8px;}
    .sif-hotspot-section{padding:52px 0;}
}

/*
 * SIFUENTES COLOMBIA — TRAYECTORIA CSS v2
 * Añadir al final del style.css del child theme
 */

/* ══ HERO — fullwidth, altura 62vh ════════════════════════ */
.tr-hero{position:relative;width:100%;min-height:62vh;max-height:700px;display:flex;align-items:center;overflow:hidden;background:#060e2e;font-family:'Manrope',-apple-system,sans-serif;}
.tr-hero__bg{position:absolute;inset:0;z-index:0;}
.tr-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.tr-hero__overlay{position:absolute;inset:0;background:linear-gradient(108deg,rgba(6,14,46,0.96) 0%,rgba(10,28,133,0.78) 45%,rgba(6,14,46,0.50) 100%);}
/* Fullwidth: neutraliza padding de Elementor */
.tr-hero{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw;}
.tr-hero__content{position:relative;z-index:1;max-width:1160px;padding:0 60px;margin:0 auto;width:100%;}
.tr-hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:10px;font-weight:700;letter-spacing:.20em;text-transform:uppercase;color:#FFC300;margin-bottom:18px;-webkit-font-smoothing:antialiased;}
.tr-hero__eyebrow::before,.tr-hero__eyebrow::after{content:'';display:block;width:28px;height:1px;background:#FFC300;opacity:.6;}
.tr-hero__title{font-size:clamp(26px,3.8vw,52px);font-weight:800;color:#FFF;line-height:1.1;letter-spacing:-.025em;margin:0 0 18px;-webkit-font-smoothing:antialiased;}
.tr-hero__title em{font-style:normal;color:#FFC300;}
.tr-hero__subtitle{font-size:clamp(14px,1.3vw,16px);font-weight:400;color:rgba(255,255,255,.68);line-height:1.72;max-width:600px;margin:0 0 32px;}
.tr-hero__stat-row{display:flex;gap:36px;flex-wrap:wrap;}
.tr-hero__stat{display:flex;flex-direction:column;gap:2px;}
.tr-hero__stat-num{font-size:32px;font-weight:800;color:#FFC300;letter-spacing:-.03em;line-height:1;}
.tr-hero__stat-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.50);}

/* ══ TIMELINE HORIZONTAL — DEFINITIVO ══════════════════════
   FIXES:
   · all:unset !important en btn → elimina magenta de Elementor
   · grid rows fijas → dots perfectamente alineados
   · opacity+transform en panel → sombra no se corta
   · nueva estructura card (tr-tl-card__row + img al fondo)
   ═══════════════════════════════════════════════════════════ */

.tr-timeline{
  background:#FAFBFD;
  padding:80px 0 100px;
  font-family:'Manrope',-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
  position:relative;
  /* SIN overflow:hidden — la sombra de la card debe salir */
}
.tr-timeline__header{text-align:center;margin-bottom:60px;padding:0 24px;}
.tr-tl-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#FFC300;margin-bottom:12px;}
.tr-tl-eyebrow::before,.tr-tl-eyebrow::after{content:'';display:block;width:20px;height:1px;background:#FFC300;opacity:.5;}
.tr-tl-title{font-size:clamp(22px,2.6vw,34px);font-weight:800;color:#0A1C85;letter-spacing:-.02em;line-height:1.15;margin:0 0 10px;}
.tr-tl-sub{font-size:14.5px;color:rgba(26,26,46,.54);line-height:1.65;}

/* Scroll wrapper */
.tr-tl-scroll{
  overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);
}
.tr-tl-scroll::-webkit-scrollbar{display:none;}

/* Track */
.tr-tl-track{
  display:inline-flex;align-items:flex-start;
  min-width:100%;position:relative;padding:0 60px;
}
/* Línea: top=32px(año)+5px(mitad dot)=37px */
.tr-tl-track::before{
  content:'';position:absolute;top:37px;left:60px;right:60px;
  height:1px;background:rgba(10,28,133,.12);pointer-events:none;z-index:1;
}

/* Hito */
.tr-tl-item{flex:0 0 auto;width:160px;position:relative;}

/* BOTÓN: reset TOTAL para ganarle a Elementor en todos sus estados */
.tr-timeline .tr-tl-item__btn,
.tr-timeline .tr-tl-item__btn:link,
.tr-timeline .tr-tl-item__btn:visited,
.tr-timeline .tr-tl-item__btn:hover,
.tr-timeline .tr-tl-item__btn:focus,
.tr-timeline .tr-tl-item__btn:active{
  all:unset!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:32px 10px auto!important;
  justify-items:center!important;
  align-items:center!important;
  width:100%!important;
  cursor:pointer!important;
  background:transparent!important;
  background-color:transparent!important;
  border:none!important;
  border-color:transparent!important;
  outline:none!important;
  box-shadow:none!important;
  color:inherit!important;
  -webkit-appearance:none!important;
  appearance:none!important;
  -webkit-tap-highlight-color:transparent!important;
  font-family:'Manrope',-apple-system,sans-serif!important;
  text-decoration:none!important;
}

/* Fila 1: Año (32px fija, texto pegado al fondo) */
.tr-tl-item__year{
  display:flex!important;align-items:flex-end!important;justify-content:center!important;
  width:100%!important;height:32px!important;
  font-size:12px!important;font-weight:700!important;letter-spacing:.07em!important;
  color:rgba(10,28,133,.40)!important;white-space:nowrap!important;line-height:1!important;
  pointer-events:none!important;
  background:transparent!important;border:none!important;box-shadow:none!important;
  transition:color .2s ease!important;
}

/* Fila 2: Dot (10px fija, centrada exactamente sobre la línea) */
.tr-tl-item__dot{
  display:block!important;width:10px!important;height:10px!important;
  border-radius:50%!important;
  background:#FFFFFF!important;border:1.5px solid rgba(10,28,133,.25)!important;
  position:relative!important;z-index:3!important;pointer-events:none!important;
  box-shadow:none!important;
  transition:background .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease!important;
}

/* Fila 3: Etiqueta */
.tr-tl-item__label{
  display:flex!important;align-items:flex-start!important;justify-content:center!important;
  padding-top:9px!important;
  font-size:11px!important;font-weight:500!important;
  color:rgba(26,26,46,.42)!important;text-align:center!important;
  line-height:1.4!important;max-width:140px!important;
  pointer-events:none!important;
  background:transparent!important;border:none!important;
  transition:color .2s ease!important;
}

/* Hover */
.tr-timeline .tr-tl-item__btn:hover .tr-tl-item__year{color:#0A1C85!important;}
.tr-timeline .tr-tl-item__btn:hover .tr-tl-item__dot{
  background:rgba(10,28,133,.07)!important;border-color:#0A1C85!important;transform:scale(1.4)!important;
}
.tr-timeline .tr-tl-item__btn:hover .tr-tl-item__label{color:rgba(26,26,46,.72)!important;}

/* Activo */
.tr-timeline .tr-tl-item__btn.is-active .tr-tl-item__year{color:#0A1C85!important;font-weight:800!important;}
.tr-timeline .tr-tl-item__btn.is-active .tr-tl-item__dot{
  background:#FFC300!important;border-color:#FFC300!important;
  transform:scale(1.6)!important;box-shadow:0 0 0 4px rgba(255,195,0,.18)!important;
}
.tr-timeline .tr-tl-item__btn.is-active .tr-tl-item__label{color:#0A1C85!important;font-weight:700!important;}

/* Panel: opacity+transform SIN overflow:hidden */
.tr-tl-panel{
  max-height:0;opacity:0;pointer-events:none;transform:translateY(-8px);
  transition:max-height .40s cubic-bezier(.4,0,.2,1),opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1);
}
.tr-tl-panel.is-open{max-height:700px;opacity:1;pointer-events:all;transform:translateY(0);}

/* padding-bottom generoso → sombra nunca se corta */
.tr-tl-panel__inner{max-width:880px;margin:0 auto;padding:28px 24px 56px;}

/* Card glassmorphism premium */
.tr-tl-card{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(32px) saturate(180%);
  -webkit-backdrop-filter:blur(32px) saturate(180%);
  border:1px solid rgba(255,255,255,.86);
  border-radius:20px;
  overflow:hidden; /* redondea la imagen */
  box-shadow:
    0 1px 0 rgba(255,255,255,.92) inset,
    0 0 0 1px rgba(10,28,133,.05),
    0 2px 6px rgba(0,0,0,.03),
    0 8px 24px rgba(0,0,0,.07),
    0 28px 56px rgba(10,28,133,.09);
  display:flex;flex-direction:column;
  animation:tr-card-in .28s cubic-bezier(.4,0,.2,1);
}
@keyframes tr-card-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* Fila superior: año + divider + body + close */
.tr-tl-card__row{display:flex;align-items:flex-start;gap:24px;padding:28px 30px;}
.tr-tl-card__year-badge{
  flex-shrink:0;font-size:46px;font-weight:800;
  color:rgba(10,28,133,.07);letter-spacing:-.05em;line-height:1;
  min-width:84px;text-align:center;padding-top:4px;user-select:none;
}
.tr-tl-card__divider{width:1px;background:rgba(10,28,133,.07);align-self:stretch;flex-shrink:0;}
.tr-tl-card__body{flex:1;}
.tr-tl-card__tag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#FFC300;margin-bottom:7px;}
.tr-tl-card__title{font-size:18px;font-weight:800;color:#0A1C85;letter-spacing:-.01em;margin:0 0 9px;line-height:1.25;}
.tr-tl-card__text{font-size:13.5px;color:rgba(26,26,46,.58);line-height:1.74;margin:0;}

/* Botón cerrar */
.tr-tl-card__close{
  all:unset!important;box-sizing:border-box!important;
  flex-shrink:0!important;width:28px!important;height:28px!important;
  border-radius:50%!important;border:1px solid rgba(10,28,133,.10)!important;
  background:rgba(255,255,255,.72)!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  cursor:pointer!important;color:rgba(26,26,46,.38)!important;
  transition:background .16s,color .16s,transform .16s!important;margin-top:3px!important;
}
.tr-tl-card__close:hover{background:rgba(10,28,133,.07)!important;color:#0A1C85!important;transform:rotate(90deg)!important;}
.tr-tl-card__close svg{width:10px;height:10px;stroke:currentColor;}

/* Imagen al fondo de la card (ancho completo) */
.tr-tl-card__img{
  width:100%;height:220px;object-fit:cover;
  object-position:center;display:block;
}

/* Responsive timeline */
@media(max-width:1024px){
  .tr-tl-track{padding:0 40px;}
  .tr-tl-track::before{left:40px;right:40px;}
  .tr-tl-item{width:140px;}
  .tr-tl-item__label{font-size:10.5px!important;max-width:126px!important;}
}
@media(max-width:768px){
  .tr-timeline{padding:60px 0 80px;}
  .tr-timeline__header{margin-bottom:44px;}
  /* Sin fade: en tablet vertical oculta items en los extremos */
  .tr-tl-scroll{-webkit-mask-image:none;mask-image:none;}
  .tr-tl-track{padding:0 28px;}
  .tr-tl-track::before{left:28px;right:28px;}
  .tr-tl-item{width:120px;}
  .tr-tl-item__year{font-size:11.5px!important;}
  .tr-tl-item__label{font-size:10px!important;max-width:108px!important;}
  .tr-tl-panel__inner{padding:20px 16px 44px;}
  .tr-tl-card__row{padding:22px 20px;gap:16px;}
  .tr-tl-card__year-badge{font-size:34px;min-width:64px;}
  .tr-tl-card__img{height:180px;}
}
@media(max-width:560px){
  .tr-timeline{padding:52px 0 68px;}
  .tr-tl-scroll{-webkit-mask-image:none;mask-image:none;}
  .tr-tl-track{padding:0 20px;}
  .tr-tl-track::before{left:20px;right:20px;}
  .tr-tl-item{width:100px;}
  .tr-tl-item__year{font-size:11px!important;letter-spacing:.04em!important;}
  .tr-tl-item__label{font-size:9.5px!important;max-width:90px!important;}
  .tr-tl-panel__inner{padding:16px 12px 40px;}
  .tr-tl-card__row{flex-direction:column;gap:10px;padding:18px 16px;}
  .tr-tl-card__year-badge{font-size:28px;min-width:auto;}
  .tr-tl-card__divider{display:none;}
  .tr-tl-card__title{font-size:16px;}
  .tr-tl-card__text{font-size:13px;}
  .tr-tl-card__img{height:150px;}
}
@media(max-width:390px){
  .tr-tl-item{width:86px;}
  .tr-tl-item__year{font-size:10.5px!important;}
  .tr-tl-item__label{font-size:9px!important;max-width:80px!important;}
  .tr-tl-track{padding:0 14px;}
  .tr-tl-track::before{left:14px;right:14px;}
}


/* ══ ADN — fullwidth, más horizontal ══════════════════════ */
.tr-adn{background:#0A1C85;padding:72px 20px;font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;position:relative;overflow:hidden;}
.tr-adn{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw;}
.tr-adn::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 80px),repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 80px);pointer-events:none;}
.tr-adn__inner{max-width:1160px;margin:0 auto;position:relative;z-index:1;}
.tr-adn__header{text-align:center;margin-bottom:48px;}
.tr-adn__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,195,0,.75);margin-bottom:12px;}
.tr-adn__eyebrow::before,.tr-adn__eyebrow::after{content:'';display:block;width:20px;height:1px;background:#FFC300;opacity:.45;}
.tr-adn__title{font-size:clamp(20px,2.4vw,32px);font-weight:800;color:#FFF;letter-spacing:-.02em;line-height:1.15;margin:0 0 10px;}
.tr-adn__sub{font-size:14.5px;color:rgba(255,255,255,.55);line-height:1.65;}
.tr-adn__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tr-adn-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:34px 30px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .26s cubic-bezier(.4,0,.2,1),transform .26s,box-shadow .26s,border-color .26s;cursor:default;}
.tr-adn-card:hover{background:rgba(255,255,255,.09);border-color:rgba(255,195,0,.25);transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,.20),0 1px 0 rgba(255,255,255,.12) inset;}
.tr-adn-card__icon{width:44px;height:44px;border-radius:11px;background:rgba(255,195,0,.12);border:1px solid rgba(255,195,0,.22);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:#FFC300;flex-shrink:0;transition:background .22s,border-color .22s;}
.tr-adn-card:hover .tr-adn-card__icon{background:rgba(255,195,0,.18);border-color:rgba(255,195,0,.40);}
.tr-adn-card__icon svg{width:20px;height:20px;stroke-width:1.4;}
.tr-adn-card__label{display:block;font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,195,0,.65);margin-bottom:6px;}
.tr-adn-card__title{font-size:17px;font-weight:800;color:#FFF;letter-spacing:-.01em;line-height:1.2;margin:0 0 10px;}
.tr-adn-card__text{font-size:13px;color:rgba(255,255,255,.55);line-height:1.70;margin:0;}

/* ══ CALIDAD — fullwidth ═══════════════════════════════════ */
.tr-quality{background:#F8F9FC;padding:88px 20px;font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;border-top:1px solid rgba(0,0,0,.06);}
.tr-quality{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw;}
.tr-quality__inner{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.tr-quality__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#FFC300;margin-bottom:14px;}
.tr-quality__eyebrow::before{content:'';display:block;width:20px;height:1px;background:#FFC300;opacity:.5;}
.tr-quality__title{font-size:clamp(20px,2.2vw,32px);font-weight:800;color:#0A1C85;letter-spacing:-.02em;line-height:1.15;margin:0 0 14px;}
.tr-quality__body{font-size:14.5px;color:rgba(26,26,46,.58);line-height:1.76;margin:0 0 28px;}
.tr-quality__pills{display:flex;flex-wrap:wrap;gap:9px;}
.tr-quality__pill{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:#0A1C85;background:rgba(10,28,133,.07);border:1px solid rgba(10,28,133,.12);border-radius:30px;padding:5px 13px;}
.tr-quality__pill svg{width:12px;height:12px;stroke-width:2;color:#FFC300;flex-shrink:0;}
.tr-quality__logos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;}
.tr-quality__logo-cell{background:#FFF;border:1px solid rgba(0,0,0,.07);border-radius:12px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;padding:16px;transition:box-shadow .22s,border-color .22s,transform .22s;cursor:pointer;}
.tr-quality__logo-cell:hover{box-shadow:0 6px 20px rgba(10,28,133,.10);border-color:rgba(10,28,133,.14);transform:translateY(-2px);}
.tr-quality__logo-cell img{max-height:30px;width:auto;max-width:100%;filter:grayscale(100%);opacity:.45;transition:filter .22s,opacity .22s;display:block;margin:0 auto;}
.tr-quality__logo-cell:hover img{filter:grayscale(0%);opacity:1;}
.tr-quality__logo-cell--text{flex-direction:column;gap:3px;}
.tr-quality__logo-cell--text .lc-num{font-size:17px;font-weight:800;color:rgba(10,28,133,.18);letter-spacing:-.02em;transition:color .22s;}
.tr-quality__logo-cell--text .lc-sub{font-size:8.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(10,28,133,.25);transition:color .22s;}
.tr-quality__logo-cell--text:hover .lc-num{color:#0A1C85;}
.tr-quality__logo-cell--text:hover .lc-sub{color:rgba(10,28,133,.55);}

/* ══ CTA — fullwidth, menos altura ════════════════════════ */
.tr-cta{background:#060e2e;padding:72px 20px;font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-align:center;position:relative;overflow:hidden;}
.tr-cta{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw;}
.tr-cta::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 50% 50%,rgba(10,28,133,.35) 0%,transparent 70%);pointer-events:none;}
.tr-cta::after{content:'';position:absolute;top:-140px;right:-140px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,195,0,.06);pointer-events:none;}
.tr-cta__inner{max-width:760px;margin:0 auto;position:relative;z-index:1;}
.tr-cta__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,195,0,.70);margin-bottom:16px;}
.tr-cta__eyebrow::before,.tr-cta__eyebrow::after{content:'';display:block;width:22px;height:1px;background:#FFC300;opacity:.45;}
.tr-cta__title{font-size:clamp(22px,3vw,42px);font-weight:800;color:#FFF;line-height:1.14;letter-spacing:-.025em;margin:0 0 14px;}
.tr-cta__title em{font-style:normal;color:#FFC300;}
.tr-cta__sub{font-size:15px;color:rgba(255,255,255,.56);line-height:1.70;margin:0 0 38px;}
.tr-cta__actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
/* Botón primario amarillo */
.tr-btn-primary{display:inline-flex;align-items:center;gap:8px;font-family:'Manrope',-apple-system,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;color:#0A1C85;background:#FFC300;border:2px solid #FFC300;border-radius:4px;padding:13px 30px;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .16s;}
.tr-btn-primary:hover{background:#FFF;border-color:#FFF;color:#0A1C85;transform:translateY(-2px);}
/* Botón ghost — hover texto en amarillo */
.tr-btn-ghost{display:inline-flex;align-items:center;gap:8px;font-family:'Manrope',-apple-system,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;color:#FFF;background:transparent;border:2px solid rgba(255,255,255,.35);border-radius:4px;padding:13px 30px;cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .16s;}
.tr-btn-ghost:hover{background:rgba(255,255,255,.08);border-color:#FFC300;color:#FFC300;transform:translateY(-2px);}

/* ══ RESPONSIVE ════════════════════════════════════════════ */
@media(max-width:960px){
  .tr-adn__grid{grid-template-columns:1fr 1fr;}
  .tr-quality__inner{gap:44px;}
  .tr-tl-scroll{padding:0 24px 20px;}
}
@media(max-width:760px){
  .tr-hero__content{padding:0 24px;}
  .tr-hero__stat-row{gap:24px;}
  .tr-adn__grid{grid-template-columns:1fr;}
  .tr-quality__inner{grid-template-columns:1fr;gap:40px;}
  .tr-quality__logos-grid{grid-template-columns:repeat(2,1fr);}
  .tr-tl-scroll{padding:0 16px 20px;}
  .tr-tl-item{width:160px;}
  .tr-tl-panel.is-open{padding:24px 20px 0;}
  .tr-tl-card{flex-direction:column;gap:16px;}
  .tr-tl-card__year-badge{font-size:28px;min-width:auto;}
  .tr-tl-card__divider{width:40px;height:1px;align-self:auto;}
  .tr-cta{padding:56px 16px;}
  .tr-cta__actions{flex-direction:column;}
  .tr-btn-primary,.tr-btn-ghost{width:100%;justify-content:center;}
}
@media(max-width:480px){
  .tr-hero{min-height:58vh;}
  .tr-hero__content{padding:0 18px;}
  .tr-hero__title{font-size:26px;}
  .tr-hero__stat-num{font-size:28px;}
}

/* ====== CATÁLOGO + PRODUCTO ====== */
/* ==========================================================================
   Catalog & Single Product CSS — Sifuentes Colombia
   Originally catalogo.css — merged into style.css to prevent double-load.
   Prefix: cat-  (archive)  |  sp-  (single product)
   --cat-* variables live in :root (section 0), not here.
   ========================================================================== */

/* ════════════════════════════════════════════════════════════════════════════
   SHARED UTILITIES
   NOTE: --cat-* custom properties are declared in the root :root block at the
   top of this file as aliases of --sif-* values. Do NOT add a second :root
   block here — edit the single source of truth in section 0.
   ════════════════════════════════════════════════════════════════════════════*/
.cat-wrap,
.sp-wrap {
  font-family: var(--cat-font);
  -webkit-font-smoothing: antialiased;
  color: var(--cat-text);
}
.cat-wrap { background: var(--cat-surface); }
.sp-wrap  { background: var(--cat-surface); }

/* Fullwidth override for Elementor containers */
.cat-wrap,
.sp-wrap {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}

/* ════════════════════════════════════════════════════════════════════════════
   CATALOG HERO
   ════════════════════════════════════════════════════════════════════════════*/
.cat-hero {
  background: var(--cat-blue);
  padding: 52px 20px 48px;
  position: relative;
  overflow: hidden;
}
.cat-hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0, rgba(255,255,255,.025) 1px, transparent 1px, transparent 44px),
    repeating-linear-gradient(45deg,  rgba(255,255,255,.016) 0, rgba(255,255,255,.016) 1px, transparent 1px, transparent 44px);
  pointer-events: none;
}

.cat-hero__inner {
  max-width: 1280px;
  margin: 0 auto;
  position: relative; z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.cat-hero__eyebrow {
  display: block;
  font-size: 10px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--cat-yellow);
  margin-bottom: 8px;
}
.cat-hero__title {
  font-size: clamp(22px, 3vw, 38px);
  font-weight: 800; color: #FFF;
  letter-spacing: -.022em; line-height: 1.1;
  margin: 0 0 8px;
}
.cat-hero__sub {
  font-size: 14.5px;
  color: rgba(255,255,255,.66);
  line-height: 1.68; margin: 0;
}

.cat-hero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,195,0,.14);
  border: 1px solid rgba(255,195,0,.32);
  border-radius: 30px;
  padding: 8px 18px;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: .04em;
  color: var(--cat-yellow);
  white-space: nowrap;
  flex-shrink: 0;
}
.cat-hero__badge svg { width: 14px; height: 14px; flex-shrink: 0; }

/* ════════════════════════════════════════════════════════════════════════════
   CATALOG LAYOUT  (aside + main)
   ════════════════════════════════════════════════════════════════════════════*/
.cat-layout {
  max-width: 1280px;
  margin: 0 auto;
  padding: 44px 24px 80px;
  display: grid;
  grid-template-columns: var(--cat-sidebar-w) 1fr;
  grid-template-areas: "sidebar main";
  gap: var(--cat-gap);
  align-items: start;
}

/* ════════════════════════════════════════════════════════════════════════════
   FILTER SIDEBAR
   ════════════════════════════════════════════════════════════════════════════*/
.cat-sidebar {
  grid-area: sidebar;
  position: sticky;
  top: calc(72px + 20px);    /* header height + breathing room */
  background: var(--cat-white);
  border: 1px solid var(--cat-border);
  border-radius: var(--cat-radius);
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
  overflow: hidden;
}

.cat-sidebar__heading {
  display: block;
  font-size: 10px; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--cat-muted);
  padding: 22px 20px 14px;
  border-bottom: 1px solid var(--cat-border);
}

/* Taxonomy group */
.cat-filter-group { padding: 4px 0; }

.cat-filter-group__label {
  display: flex; align-items: center; gap: 8px;
  font-size: 9.5px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(26,26,46,.36);
  padding: 12px 20px 5px;
}
.cat-filter-group__dot {
  width: 6px; height: 6px;
  border-radius: 50%; flex-shrink: 0;
}
.cat-filter-group__dot--blue   { background: var(--cat-blue); }
.cat-filter-group__dot--yellow { background: var(--cat-yellow); }
.cat-filter-group__dot--teal   { background: #14b8a6; }
.cat-filter-group__dot--gray   { background: #94a3b8; }

/* Filter links */
.cat-filter-list { list-style: none; margin: 0; padding: 0; }

.cat-filter-list__link,
.cat-filter-list__link:link,
.cat-filter-list__link:visited {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 8px 20px !important;
  font-size: 13px !important; font-weight: 600 !important;
  color: var(--cat-muted) !important;
  text-decoration: none !important;
  border-left: 3px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: color .16s var(--cat-ease), background .16s var(--cat-ease), border-color .16s var(--cat-ease) !important;
}
.cat-filter-list__link:hover,
.cat-filter-list__link:active {
  color: var(--cat-blue) !important;
  background: rgba(10,28,133,.05) !important;
  border-left-color: var(--cat-blue) !important;
  box-shadow: none !important;
}
.cat-filter-list__link[aria-current="page"],
.cat-filter-list__link.is-active {
  color: var(--cat-blue) !important;
  background: rgba(10,28,133,.06) !important;
  border-left-color: var(--cat-yellow) !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
.cat-filter-list__star {
  color: var(--cat-yellow);
  font-size: 10px; flex-shrink: 0;
}

/* Separator between groups */
.cat-filter-sep {
  height: 1px;
  background: var(--cat-border);
  margin: 6px 20px;
}

/* "All products" link */
.cat-sidebar__all-link,
.cat-sidebar__all-link:link,
.cat-sidebar__all-link:visited {
  display: block !important;
  margin: 10px 14px 14px !important;
  text-align: center !important;
  font-size: 11.5px !important; font-weight: 700 !important;
  letter-spacing: .06em !important; text-transform: uppercase !important;
  text-decoration: none !important;
  color: var(--cat-blue) !important;
  background: rgba(10,28,133,.06) !important;
  border: 1.5px solid rgba(10,28,133,.14) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  box-shadow: none !important;
  transition: background .18s var(--cat-ease), border-color .18s var(--cat-ease) !important;
}
.cat-sidebar__all-link:hover,
.cat-sidebar__all-link:active {
  background: rgba(10,28,133,.12) !important;
  border-color: rgba(10,28,133,.28) !important;
  box-shadow: none !important;
}

/* ════════════════════════════════════════════════════════════════════════════
   CATALOG MAIN — toolbar + grid
   ════════════════════════════════════════════════════════════════════════════*/
.cat-main { grid-area: main; }

.cat-toolbar {
  display: flex; align-items: center;
  justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  margin-bottom: 24px;
}
.cat-toolbar__count {
  font-size: 13.5px;
  color: var(--cat-muted);
  font-weight: 500;
}
.cat-toolbar__count strong { color: var(--cat-blue); font-weight: 700; }

.cat-toolbar__active-tag {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--cat-blue);
  background: rgba(10,28,133,.07);
  border: 1px solid rgba(10,28,133,.14);
  border-radius: 20px;
  padding: 5px 12px;
}
.cat-toolbar__active-tag a,
.cat-toolbar__active-tag a:link,
.cat-toolbar__active-tag a:visited {
  color: rgba(26,26,46,.38) !important;
  text-decoration: none !important;
  font-size: 15px; line-height: 1;
  margin-left: 2px;
  background: transparent !important;
  border: none !important; box-shadow: none !important;
  transition: color .16s ease !important;
}
.cat-toolbar__active-tag a:hover { color: var(--cat-blue) !important; }

/* Product grid: auto-fill with minmax */
.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}

/* ════════════════════════════════════════════════════════════════════════════
   PRODUCT CARD  (shared archive + related)
   ════════════════════════════════════════════════════════════════════════════*/
.product-card {
  background: var(--cat-white);
  border: 1px solid var(--cat-border);
  border-radius: var(--cat-radius);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow .28s var(--cat-ease), transform .28s var(--cat-ease);
}
.product-card:hover {
  box-shadow: 0 16px 48px rgba(10,28,133,.12);
  transform: translateY(-5px);
}

/* Figure */
.product-card__figure {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #EEF0F8;
  margin: 0;
}
.product-card__figure img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .52s var(--cat-ease);
}
.product-card:hover .product-card__figure img { transform: scale(1.06); }

/* Placeholder when no featured image */
.product-card__figure--empty {
  display: flex;
  align-items: center; justify-content: center;
}
.product-card__placeholder {
  width: 72px; height: 72px; opacity: .16;
}

/* Category badge on image */
.product-card__badge {
  position: absolute; top: 10px; left: 10px;
  font-size: 9px; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  color: #FFF;
  background: rgba(10,28,133,.82);
  backdrop-filter: blur(8px);
  border-radius: 4px;
  padding: 4px 9px;
  line-height: 1;
}
.product-card__badge--primary {
  background: rgba(255,195,0,.90);
  color: var(--cat-blue);
}

/* Body */
.product-card__body {
  padding: 18px 18px 12px;
  flex: 1;
  display: flex; flex-direction: column; gap: 5px;
}
.product-card__title {
  font-size: 14.5px; font-weight: 800;
  color: var(--cat-blue); letter-spacing: -.01em;
  line-height: 1.3; margin: 0;
}
.product-card__title a,
.product-card__title a:link,
.product-card__title a:visited {
  color: inherit !important;
  text-decoration: none !important;
  background: transparent !important;
  border: none !important; box-shadow: none !important;
}
.product-card__ref {
  font-size: 11px; font-weight: 600;
  color: rgba(26,26,46,.38); letter-spacing: .04em;
}
.product-card__excerpt {
  font-size: 12.5px; color: var(--cat-muted);
  line-height: 1.58; margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Footer */
.product-card__footer {
  padding: 0 14px 14px;
  display: flex; gap: 8px;
}

/* ── Button: Cotizar (primary yellow) ─────────────────────────────────────*/
.btn-cotizar,
.btn-cotizar:link,
.btn-cotizar:visited,
.btn-cotizar:focus {
  flex: 1 !important;
  display: inline-flex !important;
  align-items: center !important; justify-content: center !important;
  gap: 6px !important;
  font-family: var(--cat-font) !important;
  font-size: 11.5px !important; font-weight: 700 !important;
  letter-spacing: .07em !important; text-transform: uppercase !important;
  text-decoration: none !important;
  color: var(--cat-blue) !important;
  background: var(--cat-yellow) !important;
  background-color: var(--cat-yellow) !important;
  border: 2px solid var(--cat-yellow) !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background .20s ease, border-color .20s ease, color .20s ease, transform .16s ease !important;
}
.btn-cotizar:hover,
.btn-cotizar:active {
  background: var(--cat-blue) !important;
  background-color: var(--cat-blue) !important;
  border-color: var(--cat-blue) !important;
  color: #FFF !important;
  transform: translateY(-1px) !important;
  box-shadow: none !important;
}
.btn-cotizar svg { width: 12px; height: 12px; flex-shrink: 0; }

/* ── Button: Ver producto (ghost icon) ────────────────────────────────────*/
.btn-ver,
.btn-ver:link,
.btn-ver:visited,
.btn-ver:focus {
  display: inline-flex !important;
  align-items: center !important; justify-content: center !important;
  width: 38px !important; height: 38px !important;
  border-radius: 8px !important;
  border: 1.5px solid rgba(10,28,133,.18) !important;
  background: transparent !important; background-color: transparent !important;
  color: rgba(10,28,133,.50) !important;
  cursor: pointer !important; flex-shrink: 0 !important;
  text-decoration: none !important; box-shadow: none !important;
  transition: border-color .18s ease, color .18s ease, background .18s ease !important;
}
.btn-ver:hover,
.btn-ver:active {
  border-color: var(--cat-blue) !important;
  color: var(--cat-blue) !important;
  background: rgba(10,28,133,.05) !important;
  box-shadow: none !important;
}
.btn-ver svg { width: 15px; height: 15px; }

/* ── Empty state ──────────────────────────────────────────────────────────*/
.cat-empty {
  text-align: center;
  padding: 72px 24px;
  color: var(--cat-muted);
}
.cat-empty__icon { width: 52px; height: 52px; margin: 0 auto 16px; opacity: .22; display: block; }
.cat-empty p { font-size: 15px; font-weight: 500; margin: 0 0 12px; }

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — BREADCRUMB
   ════════════════════════════════════════════════════════════════════════════*/
.sp-breadcrumb {
  background: var(--cat-white);
  border-bottom: 1px solid var(--cat-border);
  padding: 13px 20px;
}
.sp-breadcrumb__inner {
  max-width: 1280px; margin: 0 auto;
  display: flex; align-items: center;
  gap: 7px; flex-wrap: wrap;
  font-size: 12.5px; font-weight: 600;
  color: var(--cat-muted);
}
.sp-breadcrumb__inner a,
.sp-breadcrumb__inner a:link,
.sp-breadcrumb__inner a:visited {
  color: var(--cat-muted) !important;
  text-decoration: none !important;
  background: transparent !important;
  border: none !important; box-shadow: none !important;
  transition: color .15s ease !important;
}
.sp-breadcrumb__inner a:hover { color: var(--cat-blue) !important; }
.sp-breadcrumb__sep { opacity: .30; user-select: none; }
.sp-breadcrumb [aria-current="page"] { color: var(--cat-blue); font-weight: 700; }

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — LAYOUT
   ════════════════════════════════════════════════════════════════════════════*/
.sp-product-layout {
  max-width: 1280px; margin: 0 auto;
  padding: 48px 24px 72px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 52px;
  align-items: start;
}

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — GALLERY
   ════════════════════════════════════════════════════════════════════════════*/
.sp-gallery { display: flex; flex-direction: column; gap: 12px; }

.sp-gallery__main {
  background: var(--cat-white);
  border: 1px solid var(--cat-border);
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.sp-gallery__main img {
  width: 100%; height: 100%;
  object-fit: contain; object-position: center;
  padding: 24px; display: block;
  transition: transform .48s var(--cat-ease);
}
.sp-gallery__main:hover img { transform: scale(1.04); }
.sp-gallery__main--empty {
  background: #EEF0F8;
}
.sp-gallery__placeholder {
  width: 120px; height: 120px; opacity: .14;
}

.sp-gallery__thumbs {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.sp-gallery__thumb {
  width: 76px; height: 76px;
  border-radius: var(--cat-radius-sm);
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  background: var(--cat-white);
  flex-shrink: 0;
  transition: border-color .18s ease, transform .18s ease;
}
.sp-gallery__thumb img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.sp-gallery__thumb:hover { border-color: rgba(10,28,133,.25); transform: translateY(-2px); }
.sp-gallery__thumb[aria-selected="true"],
.sp-gallery__thumb.is-active { border-color: var(--cat-yellow); }

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — TECHNICAL DETAILS
   ════════════════════════════════════════════════════════════════════════════*/
.sp-details { display: flex; flex-direction: column; gap: 28px; }

/* Header */
.sp-details__cat {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 10px; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--cat-yellow);
  margin-bottom: 8px;
  display: block;
}
.sp-details__title {
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 800; color: var(--cat-blue);
  letter-spacing: -.02em; line-height: 1.12;
  margin: 0 0 6px;
}
.sp-details__ref {
  font-size: 12px; font-weight: 600;
  color: rgba(26,26,46,.36); letter-spacing: .06em;
  display: block;
}
.sp-details__description {
  font-size: 15px; color: rgba(26,26,46,.66);
  line-height: 1.78; margin: 0;
}

/* Specs table */
.sp-specs__label {
  display: block;
  font-size: 10px; font-weight: 800;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--cat-muted);
  margin-bottom: 12px;
}
.sp-specs__table {
  width: 100%; border-collapse: collapse;
}
.sp-specs__table tr { border-bottom: 1px solid rgba(0,0,0,.06); }
.sp-specs__table tr:last-child { border-bottom: none; }
.sp-specs__table th,
.sp-specs__table td {
  padding: 10px 12px;
  font-size: 13.5px;
  text-align: left; vertical-align: top;
}
.sp-specs__table th {
  font-weight: 700; color: var(--cat-muted);
  background: rgba(10,28,133,.03);
  width: 42%; border-radius: 6px 0 0 6px;
}
.sp-specs__table td { font-weight: 600; color: var(--cat-text); }

/* ════════════════════════════════════════════════════════════════════════════
   TRUST BLOCK — Certifications
   ════════════════════════════════════════════════════════════════════════════*/
.sp-certs {
  background: var(--cat-white);
  border: 1px solid var(--cat-border);
  border-radius: 14px;
  padding: 20px;
}
.sp-certs__heading {
  display: block;
  font-size: 10px; font-weight: 800;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--cat-muted);
  margin-bottom: 14px;
}
.sp-certs__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.sp-cert {
  display: flex; align-items: center; gap: 10px;
  background: rgba(10,28,133,.04);
  border: 1px solid rgba(10,28,133,.09);
  border-radius: var(--cat-radius-sm);
  padding: 10px 12px;
}
.sp-cert__icon {
  width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 7px;
  background: var(--cat-blue);
  display: flex; align-items: center; justify-content: center;
  color: var(--cat-yellow);
}
.sp-cert__icon svg { width: 16px; height: 16px; stroke-width: 1.5; }
.sp-cert__name {
  font-size: 11px; font-weight: 800;
  color: var(--cat-blue); display: block; line-height: 1.2;
}
.sp-cert__desc {
  font-size: 10px; font-weight: 600;
  color: var(--cat-muted); display: block; margin-top: 1px;
}

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — CTA BLOCK
   ════════════════════════════════════════════════════════════════════════════*/
.sp-cta { display: flex; flex-direction: column; gap: 10px; }

/* Primary: Solicitar Cotización */
.btn-solicitar,
.btn-solicitar:link,
.btn-solicitar:visited,
.btn-solicitar:focus {
  display: flex !important;
  align-items: center !important; justify-content: center !important;
  gap: 9px !important;
  font-family: var(--cat-font) !important;
  font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: .07em !important; text-transform: uppercase !important;
  text-decoration: none !important;
  color: var(--cat-blue) !important;
  background: var(--cat-yellow) !important;
  background-color: var(--cat-yellow) !important;
  border: 2px solid var(--cat-yellow) !important;
  border-radius: var(--cat-radius-sm) !important;
  padding: 15px 28px !important;
  cursor: pointer !important; width: 100% !important;
  box-shadow: none !important;
  transition: background .22s ease, border-color .22s ease, color .22s ease, transform .18s ease !important;
}
.btn-solicitar:hover,
.btn-solicitar:active {
  background: var(--cat-blue) !important;
  background-color: var(--cat-blue) !important;
  border-color: var(--cat-blue) !important;
  color: #FFF !important;
  transform: translateY(-2px) !important;
  box-shadow: none !important;
}
.btn-solicitar svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Secondary: WhatsApp */
.btn-whatsapp,
.btn-whatsapp:link,
.btn-whatsapp:visited,
.btn-whatsapp:focus {
  display: flex !important;
  align-items: center !important; justify-content: center !important;
  gap: 8px !important;
  font-family: var(--cat-font) !important;
  font-size: 12.5px !important; font-weight: 700 !important;
  letter-spacing: .05em !important; text-transform: uppercase !important;
  text-decoration: none !important;
  color: #FFF !important;
  background: #25D366 !important; background-color: #25D366 !important;
  border: 2px solid #25D366 !important;
  border-radius: var(--cat-radius-sm) !important;
  padding: 13px 28px !important;
  cursor: pointer !important; width: 100% !important;
  box-shadow: none !important;
  transition: background .22s ease, border-color .22s ease, transform .18s ease !important;
}
.btn-whatsapp:hover,
.btn-whatsapp:active {
  background: #1dbe5a !important; background-color: #1dbe5a !important;
  border-color: #1dbe5a !important;
  transform: translateY(-2px) !important; box-shadow: none !important;
}
.btn-whatsapp svg { width: 18px; height: 18px; flex-shrink: 0; }

.sp-cta__note {
  font-size: 11px; color: rgba(26,26,46,.36);
  text-align: center; line-height: 1.5; margin: 0;
}

/* ════════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT — RELATED (cross-sell)
   ════════════════════════════════════════════════════════════════════════════*/
.sp-related {
  max-width: 1280px; margin: 0 auto;
  padding: 0 24px 80px;
}
.sp-related__header {
  border-top: 1px solid var(--cat-border);
  padding-top: 52px; margin-bottom: 32px;
  display: flex; align-items: flex-end;
  justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
}
.sp-related__eyebrow {
  font-size: 10px; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--cat-yellow); display: block; margin-bottom: 5px;
}
.sp-related__title {
  font-size: clamp(18px, 2vw, 26px); font-weight: 800;
  color: var(--cat-blue); letter-spacing: -.015em; margin: 0;
}
.sp-related__all-link,
.sp-related__all-link:link,
.sp-related__all-link:visited {
  font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: .06em !important; text-transform: uppercase !important;
  color: var(--cat-blue) !important;
  text-decoration: none !important;
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  background: transparent !important; border: none !important; box-shadow: none !important;
  white-space: nowrap;
  transition: gap .18s ease !important;
}
.sp-related__all-link:hover { gap: 10px !important; }
.sp-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 18px;
}

/* ════════════════════════════════════════════════════════════════════════════
   PAGINATION
   ════════════════════════════════════════════════════════════════════════════*/
.cat-pagination {
  margin-top: 48px;
  display: flex; justify-content: center;
}
.cat-pagination .nav-links {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.cat-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 8px;
  font-size: 13px; font-weight: 700;
  color: var(--cat-blue);
  border: 1.5px solid rgba(10,28,133,.18);
  text-decoration: none;
  background: transparent;
  transition: background .16s ease, border-color .16s ease;
}
.cat-pagination .page-numbers:hover { background: rgba(10,28,133,.06); border-color: var(--cat-blue); }
.cat-pagination .page-numbers.current { background: var(--cat-blue); color: #FFF; border-color: var(--cat-blue); }
.cat-pagination .prev, .cat-pagination .next { width: auto; padding: 0 14px; }

/* ════════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════════════*/
@media (max-width: 1100px) {
  :root { --cat-sidebar-w: 240px; --cat-gap: 24px; }
}

@media (max-width: 900px) {
  .cat-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "sidebar" "main";
    padding: 24px 16px 60px;
  }
  .cat-sidebar { position: static; }
  .cat-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
  .sp-product-layout { grid-template-columns: 1fr; gap: 32px; padding: 32px 16px 60px; }
  .sp-related { padding: 0 16px 60px; }
  .sp-certs__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .cat-hero { padding: 36px 16px 32px; }
  .cat-hero__inner { flex-direction: column; align-items: flex-start; gap: 14px; }
  .cat-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .product-card__body { padding: 14px 14px 8px; }
  .product-card__footer { padding: 0 10px 10px; }
  .sp-gallery__thumb { width: 60px; height: 60px; }
  .sp-certs__grid { grid-template-columns: 1fr; }
  .sp-related__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

@media (max-width: 390px) {
  .cat-grid { grid-template-columns: 1fr; }
  .sp-related__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   EVENTOS Y PRESENCIA TÉCNICA — ev- prefix
   Appended to style.css so it loads globally with the theme.
   All selectors scoped under .ev-* — no global leakage.
   ========================================================================== */

/* ── Hero split-screen ────────────────────────────────────────────────────*/
.ev-hero{display:grid;grid-template-columns:1fr 1fr;width:100vw;margin-left:calc(-50vw + 50%);min-height:70vh;max-height:680px;overflow:hidden;font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;margin-top:0!important;}
/* Dark fallback keeps the left column presentable when the image is missing or loading */
.ev-hero__visual{position:relative;overflow:hidden;background:var(--sif-blue-deep);animation:ev-reveal-left 1.2s cubic-bezier(0.22,1,0.36,1) both;}
@keyframes ev-reveal-left{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0% 0 0);}}
.ev-hero__visual img,.ev-hero__visual video{width:100%;height:100%;object-fit:cover;object-position:center;display:block;animation:ev-kenburns 18s ease-in-out infinite alternate;}
@keyframes ev-kenburns{from{transform:scale(1.00);}to{transform:scale(1.08);}}
.ev-hero__visual::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(6,14,46,.22) 0%,transparent 55%);pointer-events:none;}
.ev-hero__visual::before{content:'';position:absolute;top:0;right:-3px;bottom:0;width:88px;z-index:2;background:#0A1C85;clip-path:polygon(55% 0,100% 0,45% 100%,0% 100%);pointer-events:none;}
.ev-hero__id{background:#0A1C85;display:flex;flex-direction:column;justify-content:center;padding:52px 64px 52px 76px;position:relative;overflow:hidden;animation:ev-slide-right 1.2s cubic-bezier(0.22,1,0.36,1) .14s both;}
@keyframes ev-slide-right{from{opacity:0;transform:translateX(52px);}to{opacity:1;transform:translateX(0);}}
.ev-hero__id::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.028) 0,rgba(255,255,255,.028) 1px,transparent 1px,transparent 42px),repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 42px);pointer-events:none;}
.ev-hero__id::after{content:'';position:absolute;bottom:-160px;right:-160px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(255,195,0,.13) 0%,transparent 68%);pointer-events:none;}
.ev-hero__id-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:26px;}
.ev-hero__eyebrow{display:inline-flex;align-items:center;gap:13px;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#FFC300;animation:ev-fade-up .8s cubic-bezier(.22,1,.36,1) .58s both;}
.ev-hero__eyebrow::before{content:'';display:block;flex-shrink:0;width:34px;height:1.5px;background:#FFC300;}
.ev-hero__title{font-size:clamp(26px,3vw,50px);font-weight:800;color:#FFF;line-height:1.08;letter-spacing:-.026em;margin:0;animation:ev-fade-up .9s cubic-bezier(.22,1,.36,1) .72s both;}
.ev-hero__title em{font-style:normal;color:#FFC300;}
.ev-hero__sub{font-size:clamp(14px,1.2vw,17px);font-weight:400;color:rgba(255,255,255,.70);line-height:1.78;margin:0;max-width:440px;animation:ev-fade-up .9s cubic-bezier(.22,1,.36,1) .86s both;}
.ev-hero__stats{display:flex;gap:36px;flex-wrap:wrap;padding-top:10px;border-top:1px solid rgba(255,255,255,.14);animation:ev-fade-up .9s cubic-bezier(.22,1,.36,1) 1.0s both;}
.ev-hero__stat{display:flex;flex-direction:column;gap:3px;}
.ev-hero__stat-num{font-size:34px;font-weight:800;color:#FFC300;letter-spacing:-.04em;line-height:1;}
.ev-hero__stat-label{font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.46);}
@keyframes ev-fade-up{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ── Pilares de visibilidad ───────────────────────────────────────────────*/
.ev-pillars{background:#F8F9FC;padding:104px 20px;width:100vw;margin-left:calc(-50vw + 50%);font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;border-top:1px solid rgba(0,0,0,.05);}
.ev-pillars__inner{max-width:1160px;margin:0 auto;}
.ev-pillars__header{text-align:center;margin-bottom:68px;}
.ev-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#FFC300;margin-bottom:12px;}
.ev-eyebrow::before,.ev-eyebrow::after{content:'';display:block;width:20px;height:1px;background:#FFC300;opacity:.5;}
.ev-section-title{font-size:clamp(22px,2.6vw,34px);font-weight:800;color:#0A1C85;letter-spacing:-.02em;line-height:1.15;margin:0 0 10px;}
.ev-section-sub{font-size:15px;color:rgba(26,26,46,.55);line-height:1.70;}
.ev-pillars__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.ev-pillar{background:#FFF;border:1px solid rgba(0,0,0,.07);border-radius:22px;padding:56px 48px;display:flex;flex-direction:column;gap:22px;position:relative;overflow:hidden;transition:box-shadow .32s ease,transform .32s ease;}
.ev-pillar::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(to right,#FFC300,rgba(255,195,0,.25));transform:scaleX(0);transform-origin:left;transition:transform .38s cubic-bezier(.4,0,.2,1);}
.ev-pillar:hover{box-shadow:0 22px 64px rgba(10,28,133,.12);transform:translateY(-7px);}
.ev-pillar:hover::after{transform:scaleX(1);}
.ev-pillar__icon{width:68px;height:68px;border-radius:18px;background:rgba(10,28,133,.06);border:1.5px solid rgba(10,28,133,.10);display:flex;align-items:center;justify-content:center;color:#0A1C85;transition:background .24s,border-color .24s,transform .38s cubic-bezier(.34,1.56,.64,1);}
.ev-pillar:hover .ev-pillar__icon{background:rgba(10,28,133,.11);border-color:rgba(10,28,133,.22);transform:scale(1.10) rotate(-3deg);}
.ev-pillar__icon svg{width:30px;height:30px;stroke-width:1.25;}
.ev-pillar__tag{font-size:9.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#FFC300;display:block;}
.ev-pillar__title{font-size:23px;font-weight:800;color:#0A1C85;letter-spacing:-.015em;line-height:1.18;margin:0;}
.ev-pillar__body{font-size:14.5px;color:rgba(26,26,46,.60);line-height:1.76;margin:0;}
.ev-pillar__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.ev-pillar__list li{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:rgba(26,26,46,.68);}
.ev-pillar__list li::before{content:'';display:block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#FFC300;}

/* ── Galería memoria visual ───────────────────────────────────────────────*/
.ev-gallery{background:#FFF;padding:104px 20px;width:100vw;margin-left:calc(-50vw + 50%);font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;border-top:1px solid rgba(0,0,0,.06);}
.ev-gallery__inner{max-width:1280px;margin:0 auto;}
.ev-gallery__header{text-align:center;margin-bottom:56px;}
.ev-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:3px;border-radius:20px;overflow:hidden;}
.ev-gi{position:relative;overflow:hidden;cursor:pointer;}
.ev-gi--tall{grid-row:span 2;}
.ev-gi--wide{grid-column:span 2;}
.ev-gi__img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block;filter:grayscale(100%) brightness(.72);transform:scale(1.0);transition:filter .48s ease,transform .52s cubic-bezier(.4,0,.2,1);}
/* Ajustes de recorte por posición de imagen: items con banners/texto necesitan top */
.ev-gi:nth-child(1) .ev-gi__img{object-position:center top;}
.ev-gi:nth-child(4) .ev-gi__img{object-position:center top;}
.ev-gi:nth-child(6) .ev-gi__img{object-position:center 30%;}
.ev-gi:nth-child(7) .ev-gi__img{object-position:center top;}
.ev-gi:nth-child(8) .ev-gi__img{object-position:center top;}
.ev-gi__ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,14,46,.88) 0%,rgba(6,14,46,.20) 52%,transparent 100%);transition:opacity .42s ease;}
.ev-gi__cap{position:absolute;bottom:0;left:0;right:0;padding:18px 20px;z-index:2;}
.ev-gi__cap-title{display:block;font-size:13px;font-weight:700;color:rgba(255,255,255,.95);line-height:1.3;transform:translateY(10px);opacity:0;transition:transform .36s ease,opacity .36s ease;}
.ev-gi__cap-sub{display:block;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FFC300;margin-top:3px;transform:translateY(12px);opacity:0;transition:transform .36s ease .06s,opacity .36s ease .06s;}
.ev-gi:hover .ev-gi__img{filter:grayscale(0%) brightness(1.0);transform:scale(1.07);}
.ev-gi:hover .ev-gi__ov{opacity:.55;}
.ev-gi:hover .ev-gi__cap-title{transform:translateY(0);opacity:1;}
.ev-gi:hover .ev-gi__cap-sub{transform:translateY(0);opacity:1;}
.ev-gi.ev-touched .ev-gi__img{filter:grayscale(0%) brightness(1.0);transform:scale(1.04);}
.ev-gi.ev-touched .ev-gi__ov{opacity:.55;}
.ev-gi.ev-touched .ev-gi__cap-title{transform:translateY(0);opacity:1;}
.ev-gi.ev-touched .ev-gi__cap-sub{transform:translateY(0);opacity:1;}

/* ── CTA adquisición ──────────────────────────────────────────────────────*/
.ev-cta{background:#0A1C85;padding:104px 20px;width:100vw;margin-left:calc(-50vw + 50%);font-family:'Manrope',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-align:center;position:relative;overflow:hidden;}
.ev-cta::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 44px),repeating-linear-gradient(45deg,rgba(255,255,255,.016) 0,rgba(255,255,255,.016) 1px,transparent 1px,transparent 44px);pointer-events:none;}
.ev-cta__blob-r{position:absolute;top:-200px;right:-200px;width:580px;height:580px;border-radius:50%;background:radial-gradient(circle,rgba(255,195,0,.11) 0%,transparent 65%);pointer-events:none;}
.ev-cta__blob-l{position:absolute;bottom:-200px;left:-200px;width:500px;height:500px;border-radius:50%;border:1px solid rgba(255,255,255,.06);pointer-events:none;}
.ev-cta__inner{max-width:840px;margin:0 auto;position:relative;z-index:1;}
.ev-cta__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.20em;text-transform:uppercase;color:rgba(255,195,0,.75);margin-bottom:20px;}
.ev-cta__eyebrow::before,.ev-cta__eyebrow::after{content:'';display:block;width:24px;height:1px;background:#FFC300;opacity:.45;}
.ev-cta__title{font-size:clamp(24px,3.2vw,48px);font-weight:800;color:#FFF;line-height:1.10;letter-spacing:-.026em;margin:0 0 16px;}
.ev-cta__title em{font-style:normal;color:#FFC300;}
.ev-cta__sub{font-size:16px;color:rgba(255,255,255,.62);line-height:1.74;margin:0 0 52px;}
.ev-cta__actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;}

/* Eventos buttons — !important on all states, immutable to Elementor */
.ev-btn-primary,.ev-btn-primary:link,.ev-btn-primary:visited,.ev-btn-primary:focus{display:inline-flex!important;align-items:center!important;gap:9px!important;font-family:'Manrope',-apple-system,sans-serif!important;font-size:12.5px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important;text-decoration:none!important;color:#0A1C85!important;background:#FFC300!important;background-color:#FFC300!important;border:2px solid #FFC300!important;border-radius:4px!important;padding:14px 34px!important;cursor:pointer!important;box-shadow:none!important;transition:background .22s ease,border-color .22s ease,color .22s ease,transform .18s ease!important;}
.ev-btn-primary:hover,.ev-btn-primary:active{background:#FFF!important;background-color:#FFF!important;border-color:#FFF!important;color:#0A1C85!important;transform:translateY(-2px)!important;box-shadow:none!important;}
.ev-btn-ghost,.ev-btn-ghost:link,.ev-btn-ghost:visited,.ev-btn-ghost:focus{display:inline-flex!important;align-items:center!important;gap:9px!important;font-family:'Manrope',-apple-system,sans-serif!important;font-size:12.5px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important;text-decoration:none!important;color:#FFF!important;background:transparent!important;background-color:transparent!important;border:2px solid rgba(255,255,255,.38)!important;border-radius:4px!important;padding:14px 34px!important;cursor:pointer!important;box-shadow:none!important;transition:background .22s ease,border-color .22s ease,color .22s ease,transform .18s ease!important;}
.ev-btn-ghost:hover,.ev-btn-ghost:active{background:rgba(255,255,255,.10)!important;background-color:rgba(255,255,255,.10)!important;border-color:#FFC300!important;color:#FFC300!important;transform:translateY(-2px)!important;box-shadow:none!important;}

/* ── Responsive eventos ───────────────────────────────────────────────────*/
@media(max-width:1024px){
  .ev-hero__id{padding:48px 48px 48px 60px;}
  .ev-gallery__grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;}
}
@media(max-width:860px){
  .ev-hero{grid-template-columns:1fr;min-height:auto;}
  .ev-hero__visual{height:54vw;min-height:260px;max-height:480px;animation:none;clip-path:none;}
  .ev-hero__visual::before{display:none;}
  .ev-hero__visual img{animation:none;}
  .ev-hero__id{padding:52px 32px 60px;animation:none;opacity:1;transform:none;}
  .ev-hero__eyebrow,.ev-hero__title,.ev-hero__sub,.ev-hero__stats{animation:none;}
  .ev-hero__sub{max-width:100%;}
  .ev-hero__stats{gap:28px;}
  .ev-pillars{padding:72px 20px;}
  .ev-pillars__grid{grid-template-columns:1fr;gap:20px;}
  .ev-pillar{padding:44px 36px;}
  .ev-gallery{padding:72px 16px;}
  .ev-gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;}
  .ev-gi--wide{grid-column:span 1;}
  .ev-cta{padding:72px 20px;}
}
@media(max-width:560px){
  .ev-hero__id{padding:40px 22px 52px;}
  .ev-hero__stats{gap:20px 32px;}
  .ev-hero__stat-num{font-size:28px;}
  .ev-pillars{padding:60px 16px;}
  .ev-pillar{padding:36px 24px;}
  .ev-pillar__title{font-size:20px;}
  .ev-gallery__grid{grid-template-columns:1fr 1fr;grid-auto-rows:155px;}
  .ev-gi--tall{grid-row:span 1;}
  .ev-cta{padding:60px 16px;}
  .ev-cta__sub{font-size:14.5px;}
  .ev-cta__actions{flex-direction:column;}
  .ev-btn-primary,.ev-btn-ghost{width:100%!important;justify-content:center!important;}
}
@media(max-width:390px){
  .ev-gallery__grid{grid-template-columns:1fr;grid-auto-rows:210px;}
  .ev-gi--tall,.ev-gi--wide{grid-row:span 1;grid-column:span 1;}
}

/* ==========================================================================
   HOTSPOT CLOSE BUTTON (.scx) — unified with .tr-tl-card__close design
   These rules are applied globally so the widget's injected <style> can
   safely remove its own .scx declarations (see widget-hotspot-v3.html).
   ========================================================================== */
.scx {
  all: unset !important;
  box-sizing: border-box !important;
  flex-shrink: 0 !important;
  width: 28px !important; height: 28px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(10,28,133,.10) !important;
  background: rgba(255,255,255,.72) !important;
  display: flex !important;
  align-items: center !important; justify-content: center !important;
  cursor: pointer !important;
  color: rgba(26,26,46,.38) !important;
  transition: background .16s ease, color .16s ease, transform .16s ease !important;
  margin-top: 3px !important;
}
.scx:hover {
  background: rgba(10,28,133,.07) !important;
  color: #0A1C85 !important;
  transform: rotate(90deg) !important;
}
.scx svg { width: 10px; height: 10px; stroke: currentColor; }

/* ==========================================================================
   §16 ALIADOS ESTRATÉGICOS — al-* namespace
   Template: page-aliados.php
   All selectors scoped to .al-page — zero global leakage.
   ========================================================================== */

/* ── Reveal system ────────────────────────────────────────────────────────
   Elements start invisible (opacity 0, translated up 22px).
   IntersectionObserver adds .al-revealed when they enter the viewport.
   prefers-reduced-motion: skip transform, only fade.
   ─────────────────────────────────────────────────────────────────────── */
.al-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity  0.56s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.56s cubic-bezier(0.4, 0, 0.2, 1);
}

.al-reveal.al-revealed {
  opacity: 1;
  transform: translateY(0);
}

.al-reveal--d1 { transition-delay: 0.10s; }
.al-reveal--d2 { transition-delay: 0.20s; }

@media (prefers-reduced-motion: reduce) {
  .al-reveal {
    opacity: 0;
    transform: none;
    transition: opacity 0.26s ease;
  }
  .al-reveal--d1,
  .al-reveal--d2 { transition-delay: 0s; }
}

/* ── Page wrapper ─────────────────────────────────────────────────────────*/
.al-page {
  font-family:            var(--sif-font);
  -webkit-font-smoothing: antialiased;
  color:                  #1A1A2E;
  background:             var(--sif-white);
  /* Neutralise Elementor wrapper padding */
  width:       100vw;
  margin-left: calc(-50vw + 50%);
}

/* ── Shared eyebrow label ─────────────────────────────────────────────────*/
.al-page .al-eyebrow {
  display:        inline-flex;
  align-items:    center;
  gap:            12px;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: .20em;
  text-transform: uppercase;
  color:          rgba(255,195,0,.72);
  margin:         0 0 14px;
}

.al-page .al-eyebrow::before,
.al-page .al-eyebrow::after {
  content:    '';
  display:    block;
  width:      22px;
  height:     1.5px;
  background: #FFC300;
  opacity:    .50;
  flex-shrink: 0;
}

.al-page .al-eyebrow--light { color: rgba(255,195,0,.60); }

/* ==========================================================================
   HERO
   ========================================================================== */
.al-hero {
  position:   relative;
  background: var(--sif-blue-deep);
  padding:    100px 20px 96px;
  overflow:   hidden;
  text-align: center;
}

/* Subtle grid texture */
.al-hero__grid {
  position: absolute;
  inset:    0;
  background-image:
    repeating-linear-gradient(0deg,
      rgba(255,255,255,.022) 0, rgba(255,255,255,.022) 1px,
      transparent 1px, transparent 80px),
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.014) 0, rgba(255,255,255,.014) 1px,
      transparent 1px, transparent 80px);
  pointer-events: none;
}

/* Yellow radial glow — bottom-right, very subtle */
.al-hero::after {
  content:        '';
  position:       absolute;
  bottom:         -160px;
  right:          -160px;
  width:          600px;
  height:         600px;
  border-radius:  50%;
  background:     radial-gradient(circle, rgba(255,195,0,.09) 0%, transparent 68%);
  pointer-events: none;
}

.al-hero__inner {
  position:  relative;
  z-index:   1;
  max-width: 780px;
  margin:    0 auto;
}

/* Eyebrow with flanking rules */
.al-hero__eyebrow {
  display:        flex;
  align-items:    center;
  justify-content: center;
  gap:            14px;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color:          rgba(255,195,0,.60);
  margin:         0 0 28px;
}

.al-hero__eyebrow-rule {
  display:    block;
  width:      40px;
  height:     1px;
  background: #FFC300;
  opacity:    .35;
  flex-shrink: 0;
}

.al-hero__title {
  font-size:      clamp(40px, 5.5vw, 72px);
  font-weight:    800;
  color:          var(--sif-white);
  line-height:    1.04;
  letter-spacing: -.032em;
  margin:         0 0 24px;
  /* Reveal is driven by .al-reveal on the element */
  opacity:        0;
  transform:      translateY(22px);
  transition:
    opacity   0.70s cubic-bezier(0.4,0,0.2,1),
    transform 0.70s cubic-bezier(0.4,0,0.2,1);
}

.al-hero__title.al-revealed {
  opacity:   1;
  transform: translateY(0);
}

.al-hero__title em {
  font-style: normal;
  color:      #FFC300;
}

.al-hero__sub {
  font-size:   clamp(14.5px, 1.3vw, 17px);
  font-weight: 400;
  color:       rgba(255,255,255,.62);
  line-height: 1.76;
  max-width:   640px;
  margin:      0 auto;
}

/* ==========================================================================
   INTRO SECTION
   ========================================================================== */
.al-intro {
  background: var(--sif-white);
  padding:    96px 20px 88px;
}

.al-intro__inner {
  max-width: 1200px;
  margin:    0 auto;
}

.al-intro__header {
  margin-bottom: 40px;
}

.al-intro__title {
  font-size:      clamp(24px, 2.8vw, 38px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.022em;
  line-height:    1.12;
  max-width:      640px;
  margin:         0;
}

.al-intro__body {
  display:   grid;
  grid-template-columns: 1fr 1fr;
  gap:       32px 56px;
  max-width: 960px;
  margin:    0 0 64px;
}

.al-intro__body p {
  font-size:   16px;
  color:       rgba(26,26,46,.60);
  line-height: 1.78;
  margin:      0;
}

/* ── Trust indicators ─────────────────────────────────────────────────────*/
.al-indicators {
  display:    grid;
  grid-template-columns: repeat(4, 1fr);
  gap:        1px;
  list-style: none;
  margin:     0;
  padding:    0;
  border:     1px solid rgba(0,0,0,.07);
  border-radius: 14px;
  overflow:   hidden;
  background: rgba(0,0,0,.07); /* gap colour */
}

.al-indicator {
  background:     var(--sif-white);
  padding:        32px 24px 28px;
  display:        flex;
  flex-direction: column;
  gap:            6px;
  text-align:     center;
}

.al-indicator__num {
  font-size:      clamp(32px, 3vw, 46px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.04em;
  line-height:    1;
  display:        block;
}

.al-indicator__label {
  font-size:   12px;
  font-weight: 600;
  color:       rgba(26,26,46,.48);
  line-height: 1.44;
  display:     block;
}

/* ==========================================================================
   SEGMENT SECTIONS
   ========================================================================== */
.al-segment {
  padding: 88px 20px 96px;
}

.al-segment--public  { background: #F7F8FC; }
.al-segment--private { background: var(--sif-white); }

.al-segment__inner {
  max-width: 1280px;
  margin:    0 auto;
}

/* Section header */
.al-segment__header {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  gap:             24px;
  margin-bottom:   56px;
  padding-bottom:  40px;
  border-bottom:   1px solid rgba(0,0,0,.07);
}

.al-segment__header-text { flex: 1; }

.al-segment__title {
  font-size:      clamp(22px, 2.4vw, 32px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.020em;
  line-height:    1.14;
  margin:         0 0 10px;
}

.al-segment__sub {
  font-size:   14.5px;
  color:       rgba(26,26,46,.52);
  line-height: 1.70;
  max-width:   560px;
  margin:      0;
}

/* Large decorative segment number */
.al-segment__accent {
  font-size:      clamp(56px, 8vw, 112px);
  font-weight:    800;
  color:          rgba(10,28,133,.055);
  letter-spacing: -.05em;
  line-height:    1;
  user-select:    none;
  flex-shrink:    0;
  margin-top:     -8px;
}

/* ── Ally grid ────────────────────────────────────────────────────────────*/
.al-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap:                   20px;
  list-style:            none;
  margin:                0;
  padding:               0;
}

/* ── Ally card ────────────────────────────────────────────────────────────
   Layer architecture (z-index):
     0  .al-card__media   background image (optional, decorative)
     1  .al-card__media::after  dark overlay (always present when media exists)
     2  .al-card__content  all text, logo, footer — always readable
   ─────────────────────────────────────────────────────────────────────── */
.al-card {
  position:      relative;
  overflow:      hidden;
  background:    var(--sif-white);
  border:        1px solid rgba(0,0,0,.07);
  border-radius: 14px;
  padding:       0;          /* padding moved to .al-card__content */
  display:       flex;
  flex-direction: column;
  /* Stagger delay for reveal; reset to 0 on hover to avoid delayed hover transitions */
  transition-delay: var(--al-delay, 0ms);
  transition:
    box-shadow   .36s cubic-bezier(.4,0,.2,1),
    transform    .36s cubic-bezier(.4,0,.2,1),
    border-color .36s cubic-bezier(.4,0,.2,1);
}

/* Reset stagger delay for hover so interactions feel instant */
.al-card:hover { transition-delay: 0ms; }

/* Segment: private cards on tinted background */
.al-segment--private .al-card {
  background:   #F7F8FC;
  border-color: rgba(0,0,0,.055);
}

/* Base hover — applies to ALL cards (with or without image) */
.al-card:hover {
  box-shadow:   0 8px 32px rgba(10,28,133,.09);
  transform:    translateY(-4px);
  border-color: rgba(10,28,133,.12);
}

/* ── Media layer — background image (purely decorative) ──────────────────
   Rendered only when $has_image is true in PHP.
   Image URL is injected as CSS custom property --al-card-bg via inline style.
   The ::after pseudo-element provides the mandatory dark overlay that ensures
   WCAG AA text contrast on the content layer above it.
   ─────────────────────────────────────────────────────────────────────── */
.al-card__media {
  position:   absolute;
  inset:      0;
  z-index:    0;
  /* Image from --al-card-bg custom property, set inline on the <li> */
  background-image:    var(--al-card-bg);
  background-size:     cover;
  background-position: center;
  /* Start slightly zoomed; scale down on hover for cinematic pull effect */
  transform:  scale(1.05);
  opacity:    0;
  transition:
    opacity   0.52s cubic-bezier(.4,0,.2,1),
    transform 0.52s cubic-bezier(.4,0,.2,1);
  /* Prevent media layer from blocking pointer events on content */
  pointer-events: none;
}

/* Dark overlay — always present on .al-card__media */
.al-card__media::after {
  content:    '';
  position:   absolute;
  inset:      0;
  background: linear-gradient(
    160deg,
    rgba(6, 14, 46, 0.80) 0%,
    rgba(6, 14, 46, 0.70) 60%,
    rgba(10, 28, 133, 0.55) 100%
  );
  z-index:    1;
}

/* Hover: fade in + scale settle */
.al-card--has-image:hover .al-card__media {
  opacity:   1;
  transform: scale(1);
}

/* ── Content wrapper — always above the media layer ──────────────────────*/
.al-card__content {
  position:       relative;
  z-index:        2;
  display:        flex;
  flex-direction: column;
  gap:            16px;
  padding:        28px 26px 22px;
  flex:           1;
  /* Smooth text color transitions when image fades in */
  transition:     color .36s ease;
}

/* ── Text colour adaptation when image is active ─────────────────────────
   All content transitions to white/light as the dark overlay fades in.
   Uses separate transition durations to maintain legibility during the
   image fade — text shifts slightly ahead of image opacity peak.
   ─────────────────────────────────────────────────────────────────────── */
.al-card--has-image:hover .al-card__category {
  color:      rgba(255,195,0,.88);
  transition: color .30s ease;
}

.al-card--has-image:hover .al-card__name {
  color:      rgba(255,255,255,.96);
  transition: color .30s ease;
}

/* Link inside name on hover with image */
.al-card--has-image:hover .al-card__link,
.al-card--has-image:hover .al-card__link:link,
.al-card--has-image:hover .al-card__link:visited {
  color: rgba(255,255,255,.96) !important;
  opacity: 1;
}

.al-card--has-image:hover .al-card__desc {
  color:      rgba(255,255,255,.70);
  transition: color .30s ease;
}

.al-card--has-image:hover .al-card__footer {
  border-top-color: rgba(255,255,255,.16);
}

/* Monogram: lighter background when image is active */
.al-card--has-image:hover .al-card__monogram {
  background: rgba(255,255,255,.14);
  color:      rgba(255,255,255,.92);
  transition: background .32s ease, color .32s ease;
}

/* Logo: restore from greyscale on hover (already in base rules, reinforced here) */
.al-card--has-image:hover .al-card__logo {
  filter: grayscale(0) opacity(1);
}

/* Segment tags: adjusted for dark background on hover */
.al-card--has-image:hover .al-card__segment-tag--public {
  background: rgba(255,255,255,.12);
  color:      rgba(255,255,255,.80);
}

.al-card--has-image:hover .al-card__segment-tag--private {
  background: rgba(255,195,0,.22);
  color:      #FFC300;
}

/* ── Logo area ────────────────────────────────────────────────────────────*/
.al-card__logo-wrap {
  height:  48px;
  display: flex;
  align-items: center;
  margin:  0;
}

/* NOTE: legacy .al-card__logo / hover-filter rules removed — the current Aliados
   card design (see "ALIADOS — Conocer más" block below) shows full-colour logos
   inside a rounded tile and redefines .al-card__logo. The old greyscale filter
   was leaking onto the new logos because that property was left undeclared. */

/* Monogram fallback */
.al-card__monogram {
  height:         44px;
  display:        inline-flex;
  align-items:    center;
  justify-content: center;
  padding:        0 14px;
  background:     rgba(10,28,133,.06);
  border-radius:  7px;
  font-size:      12px;
  font-weight:    800;
  letter-spacing: .08em;
  color:          var(--sif-blue);
  align-self:     flex-start;
  transition:     background .32s ease, color .32s ease;
}

/* Body */
.al-card__body { flex: 1; }

/* NOTE: legacy .al-card__category removed — superseded by the Aliados card block
   below, which sets the blue category label inside .al-card__meta. The old gold
   colour + bottom margin were leaking into the new layout. */

.al-card__name {
  font-size:      15px;
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.010em;
  line-height:    1.26;
  margin:         0 0 10px;
  transition:     color .30s ease;
}

/* NOTE: legacy .al-card__link rules removed — they used !important and would
   override the new pill-styled "Visitar sitio oficial" link (background/colour)
   the moment a supplier 'url' is filled in. The Aliados card block below owns
   .al-card__link now. */

.al-card__external {
  width:      11px;
  height:     11px;
  flex-shrink: 0;
  opacity:    .45;
  margin-top: 1px;
}

.al-card__desc {
  font-size:   13.5px;
  color:       rgba(26,26,46,.58);
  line-height: 1.68;
  margin:      0;
  transition:  color .30s ease;
}

/* NOTE: legacy .al-card__footer removed — it added a top border + padding that
   leaked into the new card footer. The Aliados card block below redefines it. */

.al-card__segment-tag {
  display:        inline-flex;
  align-items:    center;
  gap:            5px;
  font-size:      9.5px;
  font-weight:    700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding:        4px 10px;
  border-radius:  20px;
  transition:     background .32s ease, color .32s ease;
}

.al-card__segment-tag--public {
  background: rgba(10,28,133,.07);
  color:      var(--sif-blue);
}

.al-card__segment-tag--private {
  background: rgba(255,195,0,.12);
  color:      #7a5a00;
}

/* ── Reduced motion: disable image transition, keep layout ───────────────*/
@media (prefers-reduced-motion: reduce) {
  .al-card__media {
    transition: none;
    /* Still honour opacity: images appear without animation */
  }
  .al-card--has-image:hover .al-card__category,
  .al-card--has-image:hover .al-card__name,
  .al-card--has-image:hover .al-card__desc,
  .al-card__monogram,
  .al-card__category,
  .al-card__name,
  .al-card__desc,
  .al-card__footer,
  .al-card__segment-tag {
    transition: none;
  }
}

/* ==========================================================================
   CLOSING TRUST BLOCK
   ========================================================================== */
.al-closing {
  position: relative;

  min-height: 420px; /* importante */
  padding: 120px 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background:
    linear-gradient(135deg, #020e52 0%, #050f4a 45%, #07176d 100%);
}

.al-closing::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,195,0,0.05), transparent 25%),
    radial-gradient(circle at 80% 80%, rgba(255,255,255,0.04), transparent 25%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.04) 0 1px,
      transparent 1px 26px
    );
}

.al-closing .al-shell {
  position: relative;
  z-index: 1;
}

.al-closing__box {
  max-width: 900px;
  width: 100%;
  margin: 0 auto;

  position: relative;
  z-index: 2;

  border-radius: 28px;
  padding: 42px 38px;

  background:
    linear-gradient(135deg, #0a1c85 0%, #1230b3 100%);

  border: 1px solid rgba(255,255,255,0.14);

  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.45),
    0 10px 30px rgba(0, 10, 60, 0.35),
    inset 0 1px 0 rgba(255,255,255,0.10);

  text-align: center;

  transform: translateY(-10px); /* micro elevación */
}

.al-closing__box::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.06) 0 1px,
      transparent 1px 24px
    );
}

/* Yellow radial blob */
.al-closing::after {
  content:        '';
  position:       absolute;
  top:            -200px;
  left:           -200px;
  width:          560px;
  height:         560px;
  border-radius:  50%;
  background:     radial-gradient(circle, rgba(255,195,0,.10) 0%, transparent 65%);
  pointer-events: none;
}

.al-closing__inner {
  position:  relative;
  z-index:   1;
  max-width: 1200px;
  margin:    0 auto;
  display:   grid;
  grid-template-columns: 1fr auto;
  gap:       80px;
  align-items: center;
}

/* Content side */
.al-closing__title {
  font-size:      clamp(28px, 3.4vw, 52px);
  font-weight:    800;
  color:          var(--sif-white);
  letter-spacing: -.026em;
  line-height:    1.08;
  margin:         0 0 20px;
}

.al-closing__title em {
  font-style: normal;
  color:      #FFC300;
}

.al-closing__sub {
  font-size:   16px;
  color:       rgba(255,255,255,.58);
  line-height: 1.74;
  max-width:   560px;
  margin:      0 0 44px;
}

/* CTA button */
.al-closing__cta,
.al-closing__cta:link,
.al-closing__cta:visited {
  display:         inline-flex !important;
  align-items:     center !important;
  gap:             10px !important;
  font-family:     var(--sif-font) !important;
  font-size:       12.5px !important;
  font-weight:     700 !important;
  letter-spacing:  .07em !important;
  text-transform:  uppercase !important;
  text-decoration: none !important;
  color:           var(--sif-blue) !important;
  background:      #FFC300 !important;
  background-color:#FFC300 !important;
  background-image:none !important;
  border:          2px solid #FFC300 !important;
  border-radius:   4px !important;
  padding:         13px 28px !important;
  cursor:          pointer !important;
  box-shadow:      none !important;
  transition:      background .22s ease, color .22s ease,
                   border-color .22s ease, transform .18s ease !important;
}

.al-closing__cta:hover {
  background:       rgba(255,255,255,.92) !important;
  background-color: rgba(255,255,255,.92) !important;
  border-color:     rgba(255,255,255,.92) !important;
  color:            var(--sif-blue) !important;
  transform:        translateY(-2px) !important;
}

/* Cert pillars right column */
.al-closing__pillars {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   12px;
}

.al-pillar {
  background:    rgba(255,255,255,.05);
  border:        1px solid rgba(255,255,255,.10);
  border-radius: 12px;
  padding:       22px 20px 18px;
  display:       flex;
  flex-direction: column;
  gap:           2px;
  text-align:    center;
  transition:    background .22s ease, border-color .22s ease;
}

.al-pillar:hover {
  background:    rgba(255,255,255,.09);
  border-color:  rgba(255,195,0,.25);
}

.al-pillar__num {
  font-size:      18px;
  font-weight:    800;
  color:          #FFC300;
  letter-spacing: -.01em;
  line-height:    1;
  display:        block;
}

.al-pillar__label {
  font-size:      22px;
  font-weight:    800;
  color:          var(--sif-white);
  letter-spacing: -.02em;
  line-height:    1;
  display:        block;
}

.al-pillar__sub {
  font-size:      10px;
  font-weight:    600;
  color:          rgba(255,255,255,.38);
  letter-spacing: .07em;
  text-transform: uppercase;
  display:        block;
  margin-top:     6px;
}

/* ==========================================================================
   RESPONSIVE — al-* namespace
   ========================================================================== */
@media (max-width: 1100px) {
  .al-closing__inner { gap: 56px; }
  .al-segment__header { gap: 16px; }
  .al-intro__body { gap: 28px 40px; }
}

@media (max-width: 900px) {
  .al-intro__body { grid-template-columns: 1fr; gap: 18px; max-width: 680px; }
  .al-indicators  { grid-template-columns: repeat(2, 1fr); }
  .al-closing__inner { grid-template-columns: 1fr; gap: 48px; }
  .al-closing__pillars { grid-template-columns: repeat(4, 1fr); }
  .al-segment__header { flex-direction: column-reverse; gap: 8px; }
  .al-segment__accent { font-size: 48px; align-self: flex-start; }
}

@media (max-width: 640px) {
  .al-hero    { padding: 72px 16px 68px; }
  .al-intro   { padding: 64px 16px 60px; }
  .al-segment { padding: 60px 16px 68px; }
  .al-closing { padding: 72px 16px; }
  .al-grid    { grid-template-columns: 1fr; gap: 14px; }
  .al-indicators { grid-template-columns: repeat(2, 1fr); }
  .al-intro__body { gap: 16px; }
  .al-closing__pillars { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 420px) {
  .al-indicators { grid-template-columns: 1fr 1fr; }
  .al-closing__pillars { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   §17 CERTIFICACIONES Y CUMPLIMIENTO REGULATORIO — cf-* namespace
   Template: page-certificaciones.php
   All selectors scoped inside .cf-page — zero global leakage.
   ========================================================================== */

/* ── Reveal system ────────────────────────────────────────────────────────
   Mirrors al-* pattern exactly: opacity + translateY, reset on .cf-revealed.
   prefers-reduced-motion: transform disabled, only opacity.
   ─────────────────────────────────────────────────────────────────────── */
.cf-reveal {
  opacity:   0;
  transform: translateY(20px);
  transition:
    opacity   0.54s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.54s cubic-bezier(0.4, 0, 0.2, 1);
}

.cf-reveal.cf-revealed {
  opacity:   1;
  transform: translateY(0);
}

.cf-reveal--d1 { transition-delay: 0.10s; }
.cf-reveal--d2 { transition-delay: 0.20s; }

@media (prefers-reduced-motion: reduce) {
  .cf-reveal            { transform: none; transition: opacity 0.24s ease; }
  .cf-reveal--d1,
  .cf-reveal--d2        { transition-delay: 0s; }
}

/* ── Page wrapper ─────────────────────────────────────────────────────────*/
.cf-page {
  font-family:            var(--sif-font);
  -webkit-font-smoothing: antialiased;
  color:                  #1A1A2E;
  background:             #F7F8FC;
  width:       100vw;
  margin-left: calc(-50vw + 50%);
}

/* ── Shared eyebrow ───────────────────────────────────────────────────────*/
.cf-page .cf-eyebrow {
  display:        inline-flex;
  align-items:    center;
  gap:            12px;
  font-size:      10px;
  font-weight:    700;
  letter-spacing: .20em;
  text-transform: uppercase;
  color:          rgba(255,195,0,.75);
  margin:         0 0 14px;
}

.cf-page .cf-eyebrow::before,
.cf-page .cf-eyebrow::after {
  content:     '';
  display:     block;
  width:       20px;
  height:      1.5px;
  background:  #FFC300;
  opacity:     .50;
  flex-shrink: 0;
}

.cf-page .cf-eyebrow--light { color: rgba(255,195,0,.60); }

/* ==========================================================================
   HERO
   ========================================================================== */
.cf-hero {
  position:   relative;
  background: var(--sif-blue-deep);
  padding:    96px 20px 92px;
  overflow:   hidden;
  text-align: center;
}

/* Crosshatch grid overlay — technical, precise feel */
.cf-hero__overlay {
  position: absolute;
  inset:    0;
  background-image:
    repeating-linear-gradient(0deg,
      rgba(255,255,255,.020) 0, rgba(255,255,255,.020) 1px,
      transparent 1px, transparent 72px),
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.013) 0, rgba(255,255,255,.013) 1px,
      transparent 1px, transparent 72px);
  pointer-events: none;
}

/* Radial yellow glow — bottom centre */
.cf-hero::after {
  content:        '';
  position:       absolute;
  bottom:         -140px;
  left:           50%;
  transform:      translateX(-50%);
  width:          700px;
  height:         420px;
  border-radius:  50%;
  background:     radial-gradient(ellipse, rgba(255,195,0,.08) 0%, transparent 70%);
  pointer-events: none;
}

.cf-hero__inner {
  position:  relative;
  z-index:   1;
  max-width: 760px;
  margin:    0 auto;
}

.cf-hero__eyebrow {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             12px;
  font-size:       10px;
  font-weight:     700;
  letter-spacing:  .22em;
  text-transform:  uppercase;
  color:           rgba(255,195,0,.58);
  margin:          0 0 26px;
}

.cf-hero__rule {
  display:    block;
  width:      36px;
  height:     1px;
  background: #FFC300;
  opacity:    .32;
  flex-shrink: 0;
}

.cf-hero__title {
  font-size:      clamp(38px, 5vw, 68px);
  font-weight:    800;
  color:          var(--sif-white);
  line-height:    1.05;
  letter-spacing: -.030em;
  margin:         0 0 22px;
  /* Driven by .cf-reveal */
  opacity:        0;
  transform:      translateY(20px);
  transition:
    opacity   0.68s cubic-bezier(0.4,0,0.2,1),
    transform 0.68s cubic-bezier(0.4,0,0.2,1);
}

.cf-hero__title.cf-revealed {
  opacity:   1;
  transform: translateY(0);
}

.cf-hero__title em {
  font-style: normal;
  color:      #FFC300;
}

.cf-hero__sub {
  font-size:   clamp(14.5px, 1.3vw, 17px);
  color:       rgba(255,255,255,.60);
  line-height: 1.76;
  max-width:   600px;
  margin:      0 auto;
}

/* ==========================================================================
   INTRO SECTION
   ========================================================================== */
.cf-intro {
  background: var(--sif-white);
  padding:    88px 20px 80px;
}

.cf-intro__inner {
  max-width: 1160px;
  margin:    0 auto;
  display:   grid;
  grid-template-columns: 380px 1fr;
  gap:       56px;
  align-items: start;
}

.cf-intro__header { margin: 0; }

.cf-intro__title {
  font-size:      clamp(22px, 2.6vw, 36px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.022em;
  line-height:    1.12;
  margin:         0;
}

.cf-intro__body { display: flex; flex-direction: column; gap: 18px; }

.cf-intro__body p {
  font-size:   15.5px;
  color:       rgba(26,26,46,.60);
  line-height: 1.78;
  margin:      0;
}

/* ==========================================================================
   TRUST BAR
   ========================================================================== */
.cf-trust-bar {
  background:  var(--sif-blue);
  padding:     0 20px;
  overflow:    hidden;
}

.cf-trust-bar__inner {
  max-width: 1280px;
  margin:    0 auto;
}

.cf-trust-bar__list {
  display:    flex;
  list-style: none;
  margin:     0;
  padding:    0;
  /* Dividers between items via background trick */
  gap:        1px;
  background: rgba(255,255,255,.12);
}

.cf-trust-bar__item {
  flex:           1;
  display:        flex;
  flex-direction: column;
  gap:            4px;
  padding:        28px 24px 24px;
  background:     var(--sif-blue);
  position:       relative;
  transition:     background .22s ease;
}

.cf-trust-bar__item:hover {
  background: rgba(10,28,133,.85);
}

.cf-trust-bar__num {
  font-size:      10px;
  font-weight:    800;
  letter-spacing: .14em;
  color:          rgba(255,195,0,.55);
  display:        block;
  margin-bottom:  4px;
}

.cf-trust-bar__label {
  font-size:      14px;
  font-weight:    700;
  color:          rgba(255,255,255,.95);
  display:        block;
  line-height:    1.2;
}

.cf-trust-bar__detail {
  font-size:      11px;
  font-weight:    600;
  color:          rgba(255,255,255,.44);
  display:        block;
  letter-spacing: .03em;
}

/* ==========================================================================
   CERTIFICATION SEGMENTS
   ========================================================================== */
.cf-segment { padding: 88px 20px 96px; }

.cf-segment--light { background: #F7F8FC; }
.cf-segment--white { background: var(--sif-white); }

.cf-segment__inner {
  max-width: 1280px;
  margin:    0 auto;
}

.cf-segment__header {
  display:         flex;
  justify-content: space-between;
  align-items:     flex-start;
  gap:             24px;
  margin-bottom:   52px;
  padding-bottom:  40px;
  border-bottom:   1px solid rgba(0,0,0,.07);
}

.cf-segment__header-text { flex: 1; }

.cf-segment__title {
  font-size:      clamp(20px, 2.2vw, 30px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.020em;
  line-height:    1.14;
  margin:         0 0 10px;
}

.cf-segment__sub {
  font-size:   14.5px;
  color:       rgba(26,26,46,.52);
  line-height: 1.68;
  max-width:   580px;
  margin:      0;
}

.cf-segment__accent {
  font-size:      clamp(60px, 9vw, 120px);
  font-weight:    800;
  color:          rgba(10,28,133,.05);
  letter-spacing: -.05em;
  line-height:    1;
  user-select:    none;
  flex-shrink:    0;
  margin-top:     -8px;
}

/* ── Certification grid ───────────────────────────────────────────────────*/
.cf-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap:                   22px;
  list-style:            none;
  margin:                0;
  padding:               0;
}

/* ── Certification card ───────────────────────────────────────────────────*/
.cf-card {
  background:     var(--sif-white);
  border:         1px solid rgba(0,0,0,.07);
  border-radius:  14px;
  overflow:       hidden;
  display:        flex;
  flex-direction: column;
  transition-delay: var(--cf-delay, 0ms);
  transition:
    box-shadow   .30s cubic-bezier(.4,0,.2,1),
    transform    .30s cubic-bezier(.4,0,.2,1),
    border-color .30s cubic-bezier(.4,0,.2,1);
}

/* Cards on white segment background get a tinted surface */
.cf-segment--white .cf-card {
  background:   #F7F8FC;
  border-color: rgba(0,0,0,.055);
}

.cf-card:hover {
  box-shadow:   0 8px 32px rgba(10,28,133,.10);
  transform:    translateY(-4px);
  border-color: rgba(10,28,133,.14);
  transition-delay: 0ms;
}

/* Card top — badge + tag row */
.cf-card__top {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         22px 22px 0;
}

/* Logo */
.cf-card__logo-wrap {
  height:  40px;
  display: flex;
  align-items: center;
  margin:  0;
}

.cf-card__logo {
  max-height: 40px;
  max-width:  80px;
  object-fit: contain;
  filter:     grayscale(1) opacity(.50);
  transition: filter .32s ease;
  display:    block;
}

.cf-card:hover .cf-card__logo {
  filter: grayscale(0) opacity(1);
}

/* Text badge fallback */
.cf-card__badge {
  display:        inline-flex;
  align-items:    center;
  justify-content: center;
  height:         38px;
  padding:        0 14px;
  background:     rgba(10,28,133,.07);
  border-radius:  8px;
  font-size:      11.5px;
  font-weight:    800;
  letter-spacing: .07em;
  color:          var(--sif-blue);
  /* Subtle reveal on hover */
  transition:     background .22s ease;
}

.cf-card:hover .cf-card__badge {
  background: rgba(10,28,133,.12);
}

/* Segment tag */
.cf-card__tag {
  font-size:      9.5px;
  font-weight:    700;
  letter-spacing: .13em;
  text-transform: uppercase;
  padding:        4px 10px;
  border-radius:  20px;
}

.cf-card__tag--nacional {
  background: rgba(10,28,133,.08);
  color:      var(--sif-blue);
}

.cf-card__tag--internacional {
  background: rgba(255,195,0,.14);
  color:      #7a5a00;
}

.cf-card__tag--fabricante {
  background: rgba(20,184,166,.10);
  color:      #0f766e;
}

/* Card body */
.cf-card__body {
  padding: 18px 22px 16px;
  flex:    1;
}

.cf-card__type {
  font-size:      10px;
  font-weight:    700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color:          rgba(255,195,0,.82);
  margin:         0 0 7px;
}

.cf-card__name {
  font-size:      15px;
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.010em;
  line-height:    1.26;
  margin:         0 0 10px;
}

/* External link in card name */
.cf-card__link,
.cf-card__link:link,
.cf-card__link:visited {
  color:           inherit !important;
  text-decoration: none !important;
  background:      transparent !important;
  border:          none !important;
  box-shadow:      none !important;
  display:         inline-flex !important;
  align-items:     center !important;
  gap:             5px !important;
  transition:      opacity .18s ease !important;
}

.cf-card__link:hover { opacity: .76; }

.cf-card__external {
  width:       10px;
  height:      10px;
  flex-shrink: 0;
  opacity:     .40;
  margin-top:  1px;
}

.cf-card__scope {
  display:     flex;
  align-items: flex-start;
  gap:         6px;
  font-size:   12px;
  font-weight: 600;
  color:       rgba(26,26,46,.42);
  line-height: 1.40;
  margin:      0 0 12px;
}

.cf-card__scope-label {
  color:       var(--sif-blue);
  opacity:     .40;
  flex-shrink: 0;
  font-weight: 800;
}

.cf-card__desc {
  font-size:   13.5px;
  color:       rgba(26,26,46,.58);
  line-height: 1.68;
  margin:      0;
}

/* Value block — bottom of card, tinted */
.cf-card__value {
  border-top:  1px solid rgba(0,0,0,.06);
  padding:     16px 22px 20px;
  background:  rgba(10,28,133,.025);
  transition:  background .28s ease;
}

.cf-card:hover .cf-card__value {
  background: rgba(10,28,133,.045);
}

.cf-card__value-label {
  font-size:      10px;
  font-weight:    800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color:          var(--sif-blue);
  opacity:        .60;
  margin:         0 0 6px;
}

.cf-card__value-text {
  font-size:   13px;
  color:       rgba(26,26,46,.62);
  line-height: 1.64;
  margin:      0;
}

/* ==========================================================================
   WHY IT MATTERS
   ========================================================================== */
.cf-value {
  background: var(--sif-white);
  padding:    96px 20px 96px;
  border-top: 1px solid rgba(0,0,0,.06);
}

.cf-value__inner {
  max-width: 1280px;
  margin:    0 auto;
}

.cf-value__header {
  max-width:     680px;
  margin-bottom: 56px;
}

.cf-value__title {
  font-size:      clamp(22px, 2.6vw, 36px);
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.022em;
  line-height:    1.12;
  margin:         0 0 14px;
}

.cf-value__sub {
  font-size:   15.5px;
  color:       rgba(26,26,46,.55);
  line-height: 1.74;
  margin:      0;
}

.cf-value__grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap:                   20px;
  list-style:            none;
  margin:                0;
  padding:               0;
}

/* Value pillar card */
.cf-value-card {
  background:    #F7F8FC;
  border:        1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  padding:       28px 24px 24px;
  display:       flex;
  flex-direction: column;
  gap:           14px;
  transition-delay: var(--cf-delay, 0ms);
  transition:
    box-shadow .28s ease,
    transform  .28s ease;
}

.cf-value-card:hover {
  box-shadow:       0 6px 24px rgba(10,28,133,.07);
  transform:        translateY(-3px);
  transition-delay: 0ms;
}

.cf-value-card__icon {
  width:         40px;
  height:        40px;
  background:    rgba(10,28,133,.07);
  border-radius: 10px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  color:         var(--sif-blue);
  flex-shrink:   0;
}

.cf-value-card__icon svg {
  width:  18px;
  height: 18px;
  stroke-width: 1.5;
}

.cf-value-card__title {
  font-size:      14.5px;
  font-weight:    800;
  color:          var(--sif-blue);
  letter-spacing: -.010em;
  line-height:    1.26;
  margin:         0;
}

.cf-value-card__body {
  font-size:   13.5px;
  color:       rgba(26,26,46,.55);
  line-height: 1.68;
  margin:      0;
}

/* ==========================================================================
   CLOSING CTA
   ========================================================================== */
.cf-closing {
  background: var(--sif-blue-deep);
  padding:    96px 20px;
  position:   relative;
  overflow:   hidden;
  text-align: center;
}

/* Texture */
.cf-closing::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background-image:
    repeating-linear-gradient(135deg,
      rgba(255,255,255,.016) 0, rgba(255,255,255,.016) 1px,
      transparent 1px, transparent 56px);
  pointer-events: none;
}

/* Blue glow — mirrored from hero */
.cf-closing::after {
  content:    '';
  position:   absolute;
  top:        -160px;
  right:      -160px;
  width:      520px;
  height:     520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,195,0,.09) 0%, transparent 65%);
  pointer-events: none;
}

.cf-closing__inner {
  position:  relative;
  z-index:   1;
  max-width: 700px;
  margin:    0 auto;
}

.cf-closing__title {
  font-size:      clamp(26px, 3.2vw, 48px);
  font-weight:    800;
  color:          var(--sif-white);
  letter-spacing: -.026em;
  line-height:    1.08;
  margin:         0 0 20px;
}

.cf-closing__title em {
  font-style: normal;
  color:      #FFC300;
}

.cf-closing__sub {
  font-size:   16px;
  color:       rgba(255,255,255,.56);
  line-height: 1.74;
  max-width:   560px;
  margin:      0 auto 44px;
}

.cf-closing__actions {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             14px;
  flex-wrap:       wrap;
}

/* Primary yellow CTA */
.cf-btn-primary,
.cf-btn-primary:link,
.cf-btn-primary:visited {
  display:         inline-flex !important;
  align-items:     center !important;
  gap:             9px !important;
  font-family:     var(--sif-font) !important;
  font-size:       12.5px !important;
  font-weight:     700 !important;
  letter-spacing:  .07em !important;
  text-transform:  uppercase !important;
  text-decoration: none !important;
  color:           var(--sif-blue) !important;
  background:      #FFC300 !important;
  background-color:#FFC300 !important;
  background-image:none !important;
  border:          2px solid #FFC300 !important;
  border-radius:   4px !important;
  padding:         13px 28px !important;
  cursor:          pointer !important;
  box-shadow:      none !important;
  transition:      background .22s ease, color .22s ease,
                   border-color .22s ease, transform .18s ease !important;
}

.cf-btn-primary:hover {
  background:       rgba(255,255,255,.92) !important;
  background-color: rgba(255,255,255,.92) !important;
  border-color:     rgba(255,255,255,.92) !important;
  transform:        translateY(-2px) !important;
}

/* Ghost secondary CTA */
.cf-btn-ghost,
.cf-btn-ghost:link,
.cf-btn-ghost:visited {
  display:         inline-flex !important;
  align-items:     center !important;
  font-family:     var(--sif-font) !important;
  font-size:       12.5px !important;
  font-weight:     700 !important;
  letter-spacing:  .07em !important;
  text-transform:  uppercase !important;
  text-decoration: none !important;
  color:           rgba(255,255,255,.78) !important;
  background:      transparent !important;
  background-image:none !important;
  border:          2px solid rgba(255,255,255,.28) !important;
  border-radius:   4px !important;
  padding:         13px 28px !important;
  cursor:          pointer !important;
  box-shadow:      none !important;
  transition:      border-color .22s ease, color .22s ease, transform .18s ease !important;
}

.cf-btn-ghost:hover {
  border-color: rgba(255,255,255,.56) !important;
  color:        rgba(255,255,255,.96) !important;
  transform:    translateY(-2px) !important;
}

/* ==========================================================================
   RESPONSIVE — cf-* namespace
   ========================================================================== */
@media (max-width: 1100px) {
  .cf-trust-bar__item  { padding: 24px 18px 20px; }
  .cf-segment__header  { gap: 16px; }
}

@media (max-width: 900px) {
  .cf-intro__inner     { grid-template-columns: 1fr; gap: 28px; }
  .cf-trust-bar__list  { flex-wrap: wrap; }
  .cf-trust-bar__item  { flex: 1 1 calc(50% - 1px); }
  .cf-segment__header  { flex-direction: column-reverse; gap: 8px; }
  .cf-segment__accent  { font-size: 52px; align-self: flex-start; }
  .cf-closing__actions { flex-direction: column; }
  .cf-btn-primary,
  .cf-btn-ghost        { width: 100% !important; justify-content: center !important; }
}

@media (max-width: 640px) {
  .cf-hero    { padding: 72px 16px 68px; }
  .cf-intro   { padding: 60px 16px 52px; }
  .cf-segment { padding: 60px 16px 68px; }
  .cf-value   { padding: 64px 16px; }
  .cf-closing { padding: 72px 16px; }
  .cf-grid    { grid-template-columns: 1fr; gap: 16px; }
  .cf-value__grid { grid-template-columns: 1fr; gap: 14px; }
  .cf-trust-bar__item { flex: 1 1 100%; }
}


/* ==========================================================================
   LEGAL PAGES — lp-* namespace
   Shared structural system for Política de Privacidad & Términos y Condiciones.
   Design language: premium, clinical, institutional. No decorative gimmicks.
   ========================================================================== */

/* ── Reset / base for the page wrapper ─────────────────────────────────── */
.lp-page {
  font-family: var(--sif-font);
  color: var(--sif-black);
  background: var(--sif-white);
}

/* ── Hero ───────────────────────────────────────────────────────────────── */
.lp-hero {
  background: var(--sif-blue-deep);
  padding: 80px 20px 68px;
  position: relative;
  overflow: hidden;
}

/* Subtle diagonal texture — same language as al-* pages */
.lp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.014) 0,
      rgba(255,255,255,0.014) 1px,
      transparent 1px,
      transparent 60px
    );
  pointer-events: none;
}

/* Yellow top-line accent */
.lp-hero::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--sif-yellow);
}

.lp-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
}

.lp-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 195, 0, 0.78);
  margin: 0 0 18px;
}

.lp-hero__eyebrow::before {
  content: '';
  display: block;
  width: 22px;
  height: 1px;
  background: var(--sif-yellow);
  opacity: 0.6;
  flex-shrink: 0;
}

.lp-hero__title {
  font-size: clamp(28px, 4vw, 50px);
  font-weight: 800;
  color: var(--sif-white);
  letter-spacing: -0.025em;
  line-height: 1.08;
  margin: 0 0 22px;
}

.lp-hero__title em {
  font-style: normal;
  color: var(--sif-yellow);
}

.lp-hero__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.lp-hero__meta-item {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255,255,255,0.46);
  letter-spacing: 0.03em;
}

.lp-hero__meta-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.24);
  flex-shrink: 0;
}

/* ── Navigation anchor strip ────────────────────────────────────────────── */
.lp-nav {
  background: var(--sif-white);
  border-bottom: 1px solid var(--sif-gray-border);
  position: sticky;
  top: 72px; /* accounts for fixed header */
  z-index: 100;
}

.admin-bar .lp-nav { top: 104px; }

@media screen and (max-width: 782px) {
  .admin-bar .lp-nav { top: 114px; }
}

@media (max-width: 600px) {
  .lp-nav { top: 58px; }
}

.lp-nav__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.lp-nav__inner::-webkit-scrollbar { display: none; }

.lp-nav__link {
  display: block;
  padding: 13px 16px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sif-text-muted);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--sif-t-fast) var(--sif-ease),
              border-color var(--sif-t-fast) var(--sif-ease);
}

.lp-nav__link:hover {
  color: var(--sif-blue);
  border-bottom-color: var(--sif-yellow);
}

/* ── Body content ───────────────────────────────────────────────────────── */
.lp-body {
  max-width: 800px;
  margin: 0 auto;
  padding: 64px 20px 96px;
}

/* ── Sections ───────────────────────────────────────────────────────────── */
.lp-section {
  margin-bottom: 56px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--sif-gray-border);
}

.lp-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.lp-section__num {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sif-yellow);
  margin-bottom: 8px;
}

.lp-section__heading {
  font-size: clamp(17px, 2vw, 22px);
  font-weight: 800;
  color: var(--sif-blue);
  letter-spacing: -0.015em;
  line-height: 1.2;
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1.5px solid rgba(10,28,133,0.09);
}

.lp-section__body {
  font-size: 14.5px;
  line-height: 1.82;
  color: #2c2c3a;
}

.lp-section__body p {
  margin: 0 0 16px;
}

.lp-section__body p:last-child {
  margin-bottom: 0;
}

.lp-section__body strong {
  font-weight: 700;
  color: var(--sif-black);
}

.lp-section__body a {
  color: var(--sif-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(10,28,133,0.28);
  transition: color var(--sif-t-fast) var(--sif-ease),
              text-decoration-color var(--sif-t-fast) var(--sif-ease);
}

.lp-section__body a:hover {
  color: var(--sif-blue);
  text-decoration-color: var(--sif-blue);
}

/* ── Sub-heading inside sections ─────────────────────────────────────────── */
.lp-subheading {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sif-black);
  margin: 28px 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.lp-subheading::before {
  content: '';
  display: block;
  width: 14px;
  height: 2px;
  background: var(--sif-yellow);
  flex-shrink: 0;
}

/* ── List inside body ────────────────────────────────────────────────────── */
.lp-list {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}

.lp-list li {
  position: relative;
  padding-left: 20px;
  font-size: 14.5px;
  line-height: 1.78;
  color: #2c2c3a;
  margin-bottom: 7px;
}

.lp-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 11px;
  width: 6px;
  height: 1.5px;
  background: var(--sif-yellow);
}

/* ── Highlight box ───────────────────────────────────────────────────────── */
.lp-callout {
  background: rgba(10,28,133,0.04);
  border-left: 3px solid var(--sif-blue);
  border-radius: 0 var(--sif-radius-sm) var(--sif-radius-sm) 0;
  padding: 18px 22px;
  margin: 24px 0;
  font-size: 14px;
  line-height: 1.74;
  color: #2c2c3a;
}

.lp-callout strong {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sif-blue);
  margin-bottom: 6px;
}

/* ── Contact card at bottom of privacy ──────────────────────────────────── */
.lp-contact-card {
  background: var(--sif-blue-deep);
  border-radius: var(--sif-radius-md);
  padding: 36px 40px;
  display: flex;
  align-items: flex-start;
  gap: 28px;
  margin-top: 64px;
}

.lp-contact-card__icon {
  width: 44px;
  height: 44px;
  background: rgba(255,195,0,0.14);
  border-radius: var(--sif-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--sif-yellow);
}

.lp-contact-card__content {
  flex: 1;
}

.lp-contact-card__label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,195,0,0.7);
  margin: 0 0 6px;
}

.lp-contact-card__title {
  font-size: 17px;
  font-weight: 800;
  color: var(--sif-white);
  margin: 0 0 10px;
  letter-spacing: -0.015em;
}

.lp-contact-card__text {
  font-size: 13.5px;
  color: rgba(255,255,255,0.56);
  line-height: 1.68;
  margin: 0 0 18px;
}

.lp-contact-card__email {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: var(--sif-yellow);
  text-decoration: none;
  transition: color var(--sif-t-fast) var(--sif-ease);
}

.lp-contact-card__email:hover {
  color: var(--sif-white);
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .lp-hero { padding: 60px 16px 52px; }
  .lp-body { padding: 48px 16px 72px; }
  .lp-section { margin-bottom: 40px; padding-bottom: 40px; }
  .lp-contact-card { flex-direction: column; gap: 18px; padding: 28px 22px; }
  .lp-nav__link { padding: 11px 12px 9px; font-size: 10.5px; }
}


/* ==========================================================================
   REFINEMENT PATCH — v5.1
   ev-hero spacing, trust micro-elements, habeas data CTA,
   catalog empty state. Header/mobile CSS consolidated in section 2.
   ========================================================================== */

/* ── 1. BODY OVERFLOW — prevent horizontal ghost scroll on mobile ────────── */
body { overflow-x: hidden; }

/* ── 2. EV-HERO FLUSH UNDER HEADER — kill any wrapper-level spacing that
   WordPress or Elementor adds above the first section of the events page.  ── */
.elementor-widget-html > .ev-hero:first-child,
.elementor-widget-wrap > .elementor-widget-html:first-child,
.entry-content > .ev-hero:first-child {
  margin-top: 0 !important;
}

/* Ensure ev-hero section itself never acquires top spacing */
.ev-hero { margin-top: 0 !important; }

/* Inter-section gap — hero → pillars flush join */
.ev-hero + .ev-pillars,
.ev-hero + section { margin-top: 0 !important; }

/* Mobile: ensure padding-bottom of hero id column does not create phantom gap */
@media(max-width:860px) {
  .ev-hero__id { margin-bottom: 0 !important; }
}

/* ── 5. CATALOG EMPTY STATE — PREMIUM GLOBAL VARIANT ────────────────────
   .cat-empty--updating is added when the catalog has zero products globally
   (not a search/filter result). Uses a richer, trust-forward presentation.  ── */

/* Base override — tighten existing empty */
.cat-empty {
  padding: 88px 24px 96px;
  max-width: 560px;
  margin: 0 auto;
}
.cat-empty__icon { opacity: .18; }

/* Global-empty premium block */
.cat-empty--updating {
  padding: 96px 24px 104px;
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}
.cat-empty--updating .cat-empty__graphic {
  width: 72px;
  height: 72px;
  margin: 0 auto 28px;
  background: var(--sif-blue-mid);
  border-radius: var(--sif-radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sif-blue);
}
.cat-empty--updating .cat-empty__graphic svg {
  width: 32px;
  height: 32px;
  opacity: .80;
}
.cat-empty--updating .cat-empty__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sif-yellow);
  margin-bottom: 14px;
}
.cat-empty--updating .cat-empty__eyebrow::before,
.cat-empty--updating .cat-empty__eyebrow::after {
  content: '';
  display: block;
  width: 16px;
  height: 1px;
  background: var(--sif-yellow);
  opacity: .5;
}
.cat-empty--updating .cat-empty__title {
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 800;
  color: var(--sif-blue);
  letter-spacing: -.02em;
  line-height: 1.15;
  margin: 0 0 14px;
}
.cat-empty--updating .cat-empty__body {
  font-size: 15px;
  color: var(--sif-text-muted);
  line-height: 1.74;
  margin: 0 0 36px;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}
.cat-empty--updating .cat-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--sif-blue);
  color: var(--sif-white);
  font-family: var(--sif-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 13px 28px;
  border-radius: var(--sif-radius-sm);
  text-decoration: none;
  transition: background var(--sif-t-fast) var(--sif-ease),
              color var(--sif-t-fast) var(--sif-ease);
}
.cat-empty--updating .cat-empty__cta:hover {
  background: var(--sif-yellow);
  color: var(--sif-blue);
}
.cat-empty--updating .cat-empty__trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 20px;
  font-size: 11px;
  font-weight: 600;
  color: var(--sif-text-muted);
  letter-spacing: .04em;
}
.cat-empty--updating .cat-empty__trust::before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sif-yellow);
  flex-shrink: 0;
}

/* ── 6. TRUST MICRO-BADGES — subtle inline trust signals ────────────────
   Usage: <span class="sif-trust-badge">Respuesta &lt;24h</span>
   Designed for contact page intro text, hero sub-lines, empty states.    ── */
.sif-trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--sif-blue);
  background: var(--sif-blue-mid);
  border-radius: 20px;
  padding: 4px 10px;
  white-space: nowrap;
  vertical-align: middle;
}
.sif-trust-badge::before {
  content: '';
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sif-yellow);
  flex-shrink: 0;
}
/* Badge row for grouping multiple badges */
.sif-trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

/* ── 7. HABEAS DATA CTA BLOCK — inside privacy page ─────────────────────
   Elevated link block directing to /politicas-privacidad/habeas-data/.   ── */
.lp-habeas-cta {
  display: flex;
  align-items: center;
  gap: 24px;
  background: var(--sif-blue-deep);
  border-radius: var(--sif-radius-md);
  padding: 28px 32px;
  margin: 40px 0;
  text-decoration: none;
  transition: box-shadow var(--sif-t-base) var(--sif-ease),
              transform var(--sif-t-base) var(--sif-ease);
}
.lp-habeas-cta:hover {
  box-shadow: 0 14px 40px rgba(6,14,46,.22);
  transform: translateY(-2px);
}
.lp-habeas-cta__icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background: rgba(255,195,0,.14);
  border-radius: var(--sif-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sif-yellow);
}
.lp-habeas-cta__content { flex: 1; }
.lp-habeas-cta__label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,195,0,.7);
  display: block;
  margin-bottom: 5px;
}
.lp-habeas-cta__title {
  font-size: 16px;
  font-weight: 800;
  color: var(--sif-white);
  margin: 0 0 5px;
  letter-spacing: -.012em;
}
.lp-habeas-cta__sub {
  font-size: 13px;
  color: rgba(255,255,255,.50);
  line-height: 1.55;
  margin: 0;
}
.lp-habeas-cta__arrow {
  color: var(--sif-yellow);
  flex-shrink: 0;
  transition: transform var(--sif-t-base) var(--sif-ease);
}
.lp-habeas-cta:hover .lp-habeas-cta__arrow { transform: translateX(5px); }

@media (max-width:600px) {
  .lp-habeas-cta { flex-direction: column; align-items: flex-start; gap: 16px; padding: 22px 20px; }
  .lp-habeas-cta__arrow { display: none; }
}


/* ==========================================================================
   REFINEMENT PATCH — v5.2
   ev-hero stats clipped by max-height on mobile.
   Header/mobile CSS consolidated in section 2.
   ========================================================================== */

/* ── EV-HERO MAX-HEIGHT ON MOBILE ────────────────────────────────────────
   Root: .ev-hero base rule sets max-height:680px; overflow:hidden globally.
   At ≤860px (stacked single-column), stacked height (~727px) exceeds the cap,
   clipping the stats row. Nullify max-height and open overflow at mobile.
   The .ev-hero__visual retains its own overflow:hidden for animation.
──────────────────────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .ev-hero {
    max-height: none;
    overflow:   visible;
  }
}

@media (max-width: 560px) {
  .ev-hero__id    { padding-bottom: 60px; }
  .ev-hero__stats { padding-bottom: 8px;  }
}

@media (max-width: 380px) {
  .ev-hero__id       { padding: 36px 18px 64px; }
  .ev-hero__stat-num { font-size: 26px; }
  .ev-hero__stats    { gap: 16px 24px; }
}

/* ==========================================================================
   TRAYECTORIA — CARDS INSTITUCIONALES
   HTML esperado:
   .trj-section
   .trj-shell
   .trj-header
   .trj-eyebrow
   .trj-title
   .trj-intro
   .trj-grid
   .trj-card
   .trj-card--featured
   .trj-card__inner
   .trj-card__kicker
   .trj-card__title
   .trj-card__text
   ========================================================================== */

.trj-section {
  background: var(--sif-white);
  padding: 84px 20px 96px;
  border-bottom: 1px solid var(--sif-gray-border);
}

.trj-shell {
  max-width: 1160px;
  margin: 0 auto;
}

.trj-header {
  text-align: left;
  max-width: 820px;
  margin: 0 0 38px;
}

.trj-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sif-blue);
  opacity: 0.72;
  margin-bottom: 14px;
}

.trj-eyebrow::before {
  content: "";
  display: block;
  width: 24px;
  height: 1px;
  background: var(--sif-yellow);
  opacity: 0.8;
}

.trj-title {
  margin: 0 0 14px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: var(--sif-blue);
}

.trj-intro {
  margin: 0;
  max-width: 760px;
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--sif-text-muted);
}

.trj-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.trj-card {
  position: relative;
  min-width: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,249,252,0.98) 100%);
  border: 1px solid rgba(10, 28, 133, 0.08);
  border-radius: 18px;
  box-shadow: var(--sif-shadow-sm);
  overflow: hidden;
  transition:
    transform var(--sif-t-base) var(--sif-ease),
    box-shadow var(--sif-t-base) var(--sif-ease),
    border-color var(--sif-t-base) var(--sif-ease);
}

.trj-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.018) 0%, transparent 40%),
    repeating-linear-gradient(
      135deg,
      rgba(10,28,133,0.028) 0 1px,
      transparent 1px 20px
    );
  opacity: 0.55;
}

.trj-card:hover {
  transform: translateY(-4px);
  border-color: rgba(10, 28, 133, 0.16);
  box-shadow: 0 14px 34px rgba(10, 28, 133, 0.09);
}

.trj-card__inner {
  position: relative;
  z-index: 1;
  padding: 30px 28px 28px;
}

.trj-card__kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(10, 28, 133, 0.06);
  border: 1px solid rgba(10, 28, 133, 0.08);
  color: var(--sif-blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.trj-card__title {
  margin: 0 0 12px;
  font-size: 26px;
  line-height: 1.14;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: #171d38;
}

.trj-card__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.82;
  color: rgba(26, 26, 46, 0.68);
}

.trj-card--featured {
  grid-column: 1 / -1;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.98) 0%, rgba(13,37,150,0.98) 100%);
  border-color: rgba(10, 28, 133, 0.95);
  box-shadow: 0 18px 42px rgba(10, 28, 133, 0.18);
}

.trj-card--featured::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.06) 0 1px,
      transparent 1px 22px
    );
  opacity: 1;
}

.trj-card--featured .trj-card__kicker {
  background: rgba(255, 195, 0, 0.12);
  border-color: rgba(255, 195, 0, 0.22);
  color: var(--sif-yellow);
}

.trj-card--featured .trj-card__title {
  color: var(--sif-white);
}

.trj-card--featured .trj-card__text {
  color: rgba(255, 255, 255, 0.76);
}

@media (max-width: 900px) {
  .trj-section {
    padding: 68px 18px 76px;
  }

  .trj-grid {
    grid-template-columns: 1fr;
  }

  .trj-card--featured {
    grid-column: auto;
  }

  .trj-card__inner {
    padding: 26px 22px 24px;
  }

  .trj-title {
    font-size: clamp(24px, 7vw, 34px);
  }

  .trj-card__title {
    font-size: 22px;
  }

  .trj-intro,
  .trj-card__text {
    font-size: 14.5px;
  }
}

@media (max-width: 560px) {
  .trj-section {
    padding: 56px 16px 64px;
  }

  .trj-header {
    margin-bottom: 28px;
  }

  .trj-card__inner {
    padding: 22px 18px 20px;
  }

  .trj-card__kicker {
    margin-bottom: 14px;
  }

  .trj-card__title {
    font-size: 20px;
  }

  .trj-card__text {
    line-height: 1.72;
  }
}

/* ==========================================================================
   EVENTOS — WIDGET 1.5 / ENTRADAS ESTRATÉGICAS
   HTML esperado:
   .ev-entry
   .ev-entry__inner
   .ev-entry__header
   .ev-entry__grid
   .ev-entry-card
   .ev-entry-card--alt
   .ev-entry-card__content
   .ev-entry-card__tag
   .ev-entry-card__title
   .ev-entry-card__text
   .ev-entry-card__btn
   ========================================================================== */

.ev-entry {
  position: relative;
  background: #fff;
  padding: 34px 20px 72px;
}

.ev-entry__inner {
  max-width: 1160px;
  margin: 0 auto;
}

.ev-entry__header {
  max-width: 860px;
  margin: 0 auto 28px;
  text-align: center;
}

.ev-entry__header .ev-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.ev-entry__header .ev-eyebrow::before,
.ev-entry__header .ev-eyebrow::after {
  content: "";
  display: block;
  width: 18px;
  height: 1px;
  background: var(--sif-yellow);
  opacity: 0.85;
}

.ev-entry__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ev-entry-card {
  position: relative;
  min-width: 0;
  border-radius: 22px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(246,248,253,0.98) 100%);
  border: 1px solid rgba(10, 28, 133, 0.08);
  box-shadow: var(--sif-shadow-sm);
  transition:
    transform var(--sif-t-base) var(--sif-ease),
    box-shadow var(--sif-t-base) var(--sif-ease),
    border-color var(--sif-t-base) var(--sif-ease);
}

.ev-entry-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.018) 0%, transparent 42%),
    repeating-linear-gradient(
      135deg,
      rgba(10,28,133,0.028) 0 1px,
      transparent 1px 20px
    );
  opacity: 0.62;
}

.ev-entry-card:hover {
  transform: translateY(-4px);
  border-color: rgba(10, 28, 133, 0.16);
  box-shadow: 0 16px 36px rgba(10, 28, 133, 0.10);
}

.ev-entry-card__content {
  position: relative;
  z-index: 1;
  padding: 30px 28px 28px;
}

.ev-entry-card__tag {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(10, 28, 133, 0.06);
  border: 1px solid rgba(10, 28, 133, 0.08);
  color: var(--sif-blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.ev-entry-card__title {
  margin: 0 0 12px;
  font-size: clamp(26px, 2.1vw, 34px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: #171d38;
}

.ev-entry-card__text {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1.82;
  color: rgba(26, 26, 46, 0.68);
  max-width: 58ch;
}

.ev-entry-card__btn,
.ev-entry-card__btn:link,
.ev-entry-card__btn:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 12px;
  background: var(--sif-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 12px 24px rgba(10, 28, 133, 0.16);
  transition:
    transform var(--sif-t-base) var(--sif-ease),
    box-shadow var(--sif-t-base) var(--sif-ease),
    background var(--sif-t-base) var(--sif-ease),
    color var(--sif-t-base) var(--sif-ease);
}

.ev-entry-card__btn:hover,
.ev-entry-card__btn:focus-visible {
  background: #132da8;
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 16px 28px rgba(10, 28, 133, 0.20);
  outline: none;
}

.ev-entry-card--alt {
  background:
    linear-gradient(135deg, rgba(10,28,133,0.98) 0%, rgba(13,37,150,0.98) 100%);
  border-color: rgba(10, 28, 133, 0.92);
  box-shadow: 0 18px 40px rgba(10, 28, 133, 0.18);
}

.ev-entry-card--alt::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.06) 0 1px,
      transparent 1px 22px
    );
  opacity: 1;
}

.ev-entry-card--alt .ev-entry-card__tag {
  background: rgba(255, 195, 0, 0.12);
  border-color: rgba(255, 195, 0, 0.18);
  color: var(--sif-yellow);
}

.ev-entry-card--alt .ev-entry-card__title {
  color: #fff;
}

.ev-entry-card--alt .ev-entry-card__text {
  color: rgba(255, 255, 255, 0.76);
}

.ev-entry-card--alt .ev-entry-card__btn,
.ev-entry-card--alt .ev-entry-card__btn:link,
.ev-entry-card--alt .ev-entry-card__btn:visited {
  background: var(--sif-yellow);
  color: #171d38;
  box-shadow: 0 14px 26px rgba(255, 195, 0, 0.18);
}

.ev-entry-card--alt .ev-entry-card__btn:hover,
.ev-entry-card--alt .ev-entry-card__btn:focus-visible {
  background: #ffd138;
  color: #171d38;
  box-shadow: 0 18px 28px rgba(255, 195, 0, 0.24);
}

@media (max-width: 900px) {
  .ev-entry {
    padding: 28px 18px 58px;
  }

  .ev-entry__grid {
    grid-template-columns: 1fr;
  }

  .ev-entry-card__content {
    padding: 26px 22px 24px;
  }

  .ev-entry-card__title {
    font-size: 28px;
  }
}

@media (max-width: 560px) {
  .ev-entry {
    padding: 22px 16px 48px;
  }

  .ev-entry__header {
    margin-bottom: 22px;
  }

  .ev-entry-card__content {
    padding: 22px 18px 20px;
  }

  .ev-entry-card__title {
    font-size: 24px;
    line-height: 1.1;
  }

  .ev-entry-card__text {
    font-size: 14.5px;
    line-height: 1.72;
  }

  .ev-entry-card__btn,
  .ev-entry-card__btn:link,
  .ev-entry-card__btn:visited {
    width: 100%;
  }
}

/* ==========================================================================
   ALIADOS — NUEVA ESTRUCTURA ESTRATÉGICA
   HTML esperado:
   .al-page
   .al-hero
   .al-hero__bg
   .al-hero__inner
   .al-hero__copy
   .al-eyebrow
   .al-hero__title
   .al-hero__sub
   .al-hero__stats
   .al-stat
   .al-stat__num
   .al-stat__label

   .al-intro
   .al-shell
   .al-intro__grid
   .al-intro-card
   .al-intro-card--accent
   .al-intro-card__kicker
   .al-intro-card__title
   .al-intro-card__text

   .al-groups
   .al-section-head
   .al-section-title
   .al-section-sub
   .al-group
   .al-group__head
   .al-group__kicker
   .al-group__title
   .al-group__note
   .al-cards
   .al-card
   .al-card__inner
   .al-card__top
   .al-card__logo-wrap
   .al-card__logo
   .al-card__logo-fallback
   .al-card__meta
   .al-card__category
   .al-card__country
   .al-card__title
   .al-card__text
   .al-card__footer
   .al-card__link

   .al-closing
   .al-closing__box
   .al-closing__eyebrow
   .al-closing__title
   .al-closing__text

   .al-reveal
   .al-revealed
   .al-reveal--d1
   ========================================================================== */

.al-page {
  background: #f7f8fc;
}

/* ==========================================================================
   HERO
   ========================================================================== */

.al-hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(2, 14, 82, 0.98) 0%, rgba(10, 28, 133, 0.98) 58%, rgba(18, 48, 179, 0.96) 100%);
  color: #fff;
  padding: 110px 20px 96px;
}

.al-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 18%, rgba(255,195,0,0.08), transparent 24%),
    radial-gradient(circle at 82% 78%, rgba(255,255,255,0.06), transparent 24%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.055) 0 1px,
      transparent 1px 24px
    );
  opacity: 0.9;
}

.al-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  margin: 0 auto;
}

.al-hero__copy {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.al-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sif-yellow);
  margin-bottom: 18px;
}

.al-eyebrow::before,
.al-eyebrow::after {
  content: "";
  display: block;
  width: 18px;
  height: 1px;
  background: currentColor;
  opacity: 0.8;
}

.al-hero__title {
  margin: 0 0 18px;
  font-size: clamp(34px, 4vw, 58px);
  line-height: 0.98;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: #fff;
  text-wrap: balance;
}

.al-hero__sub {
  margin: 0 auto;
  max-width: 760px;
  font-size: 17px;
  line-height: 1.85;
  color: rgba(255,255,255,0.78);
}

.al-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 720px;
  margin: 34px auto 0;
}

.al-stat {
  min-width: 0;
  border-radius: 18px;
  padding: 18px 16px 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
  backdrop-filter: blur(6px);
}

.al-stat__num {
  display: block;
  margin-bottom: 6px;
  font-size: clamp(24px, 2vw, 32px);
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: #fff;
}

.al-stat__label {
  display: block;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.62);
}

/* ==========================================================================
   SHELL
   ========================================================================== */

.al-shell {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ==========================================================================
   INTRO
   ========================================================================== */

.al-intro {
  position: relative;
  z-index: 2;
  margin-top: -42px;
  padding-bottom: 28px;
}

.al-intro__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.al-intro-card {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  padding: 30px 28px 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,249,252,0.98) 100%);
  border: 1px solid rgba(10, 28, 133, 0.08);
  box-shadow: 0 16px 36px rgba(10, 28, 133, 0.08);
}

.al-intro-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.018) 0%, transparent 42%),
    repeating-linear-gradient(
      135deg,
      rgba(10,28,133,0.028) 0 1px,
      transparent 1px 22px
    );
  opacity: 0.62;
}

.al-intro-card--accent {
  background:
    linear-gradient(135deg, rgba(10,28,133,0.98) 0%, rgba(13,37,150,0.98) 100%);
  border-color: rgba(10, 28, 133, 0.96);
  box-shadow: 0 18px 40px rgba(10, 28, 133, 0.16);
}

.al-intro-card--accent::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.06) 0 1px,
      transparent 1px 24px
    );
  opacity: 1;
}

.al-intro-card__kicker {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(10, 28, 133, 0.06);
  border: 1px solid rgba(10, 28, 133, 0.08);
  color: var(--sif-blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}

.al-intro-card--accent .al-intro-card__kicker {
  background: rgba(255, 195, 0, 0.12);
  border-color: rgba(255, 195, 0, 0.18);
  color: var(--sif-yellow);
}

.al-intro-card__title {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  font-size: clamp(28px, 2.4vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: #171d38;
}

.al-intro-card--accent .al-intro-card__title {
  color: #fff;
}

.al-intro-card__text {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 15px;
  line-height: 1.82;
  color: rgba(26, 26, 46, 0.68);
}

.al-intro-card--accent .al-intro-card__text {
  color: rgba(255,255,255,0.76);
}

/* ==========================================================================
   GROUPS
   ========================================================================== */

.al-groups {
  padding: 54px 0 84px;
}

.al-section-head {
  text-align: center;
  max-width: 860px;
  margin: 0 auto 36px;
}

.al-section-title {
  margin: 0 0 12px;
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.04;
  letter-spacing: -0.035em;
  font-weight: 800;
  color: var(--sif-blue);
}

.al-section-sub {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.82;
  color: var(--sif-text-muted);
}

.al-group + .al-group {
  margin-top: 28px;
}

.al-group {
  background: #fff;
  border: 1px solid rgba(10, 28, 133, 0.08);
  border-radius: 24px;
  box-shadow: 0 14px 34px rgba(10, 28, 133, 0.06);
  overflow: hidden;
}

.al-group__head {
  display: grid;
  grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 26px 28px 22px;
  background:
    linear-gradient(180deg, rgba(250,251,255,0.96) 0%, rgba(245,247,252,0.96) 100%);
  border-bottom: 1px solid rgba(10, 28, 133, 0.07);
}

.al-group__kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(10, 28, 133, 0.06);
  color: var(--sif-blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.al-group__title {
  margin: 0;
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: #171d38;
}

.al-group__note {
  margin: 6px 0 0;
  font-size: 15px;
  line-height: 1.8;
  color: rgba(26, 26, 46, 0.68);
}

.al-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 22px 28px 28px;
}

.al-card {
  min-width: 0;
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,249,252,0.98) 100%);
  border: 1px solid rgba(10, 28, 133, 0.08);
  box-shadow: var(--sif-shadow-sm);
  transition:
    transform var(--sif-t-base) var(--sif-ease),
    box-shadow var(--sif-t-base) var(--sif-ease),
    border-color var(--sif-t-base) var(--sif-ease);
}

.al-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.018) 0%, transparent 42%);
  opacity: 0.8;
}

.al-card:hover {
  transform: translateY(-3px);
  border-color: rgba(10, 28, 133, 0.14);
  box-shadow: 0 16px 30px rgba(10, 28, 133, 0.10);
}

.al-card__inner {
  position: relative;
  z-index: 1;
  padding: 22px 20px 20px;
}

.al-card__top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.al-card__logo-wrap {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: #eef1fa;
  border: 1px solid rgba(10, 28, 133, 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  overflow: hidden;
}

.al-card__logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 10px;
}

.al-card__logo-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(10, 28, 133, 0.08);
  color: var(--sif-blue);
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.al-card__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.al-card__category {
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--sif-blue);
}

.al-card__country {
  font-size: 13px;
  line-height: 1.4;
  color: rgba(26, 26, 46, 0.48);
}

.al-card__title {
  margin: 0 0 10px;
  font-size: 24px;
  line-height: 1.12;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: #171d38;
}

.al-card__text {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.78;
  color: rgba(26, 26, 46, 0.68);
}

.al-card__footer {
  margin-top: 16px;
}

.al-card__link,
.al-card__link:link,
.al-card__link:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 12px;
  background: rgba(10, 28, 133, 0.06);
  color: var(--sif-blue);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition:
    background var(--sif-t-base) var(--sif-ease),
    color var(--sif-t-base) var(--sif-ease),
    transform var(--sif-t-base) var(--sif-ease);
}

.al-card__link:hover,
.al-card__link:focus-visible {
  background: var(--sif-blue);
  color: #fff;
  transform: translateY(-1px);
  outline: none;
}

/* ==========================================================================
   ALIADOS — "Conocer más" expandable card
   Collapsed by default: only logo, category, country and name show.
   The photo + long description live inside .al-card__panel, which animates
   open via grid-template-rows (0fr → 1fr). Pure CSS/JS, no plugin.
   ========================================================================== */

/* Keep sibling cards top-aligned so opening one doesn't stretch the others. */
.al-cards > .al-card { align-self: start; }

/* NOTE: rules scoped under .al-page (specificity 0,2,0) so they beat the Hello
   Elementor parent-theme reset.css rule `[type=button],button{color:#c36;...}`
   (specificity 0,1,0, but loaded AFTER this file) which otherwise paints the
   button magenta (#CC3366). Brand palette only: azul #0A1C85, amarillo, blanco. */
.al-page .al-card__toggle {
  margin-top: 16px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(10, 28, 133, 0.12);
  border-radius: 12px;
  background: rgba(10, 28, 133, 0.05);
  color: var(--sif-blue);
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition:
    background var(--sif-t-base) var(--sif-ease),
    border-color var(--sif-t-base) var(--sif-ease),
    color var(--sif-t-base) var(--sif-ease);
}

.al-page .al-card__toggle:hover,
.al-page .al-card__toggle:focus-visible {
  background: var(--sif-blue);
  border-color: var(--sif-blue);
  color: #fff;
  outline: none;
}

/* Open state ("Ver menos"): filled azul Sifuentes with a subtle amarillo accent
   underline on the icon side, so the active supplier reads clearly on-brand. */
.al-page .al-card--open .al-card__toggle {
  background: var(--sif-blue);
  border-color: var(--sif-blue);
  color: #fff;
}

.al-page .al-card--open .al-card__toggle .al-card__toggle-icon {
  color: var(--sif-yellow);
}

.al-card__toggle-icon {
  flex: 0 0 auto;
  transition: transform var(--sif-t-base) var(--sif-ease);
}

.al-card--open .al-card__toggle-icon { transform: rotate(180deg); }

/* Collapsible panel. max-height is set inline by JS to the panel's exact
   scrollHeight on open (and cleared to fall back to 0 on close), which gives
   a smooth, pixel-accurate animation regardless of content or image height. */
.al-card__panel {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition:
    max-height 0.44s var(--sif-ease),
    opacity 0.32s var(--sif-ease);
}

.al-card--open .al-card__panel { opacity: 1; }

/* NOTE: class is __photo, not __media — a legacy .al-card__media rule (absolute,
   decorative background layer from an older card design) still lives higher up
   in this file and would pull this figure out of flow. */
.al-card__photo {
  margin: 16px 0 0;
  border-radius: 14px;
  overflow: hidden;
  height: 184px;
  background: #eef1fa;
  border: 1px solid rgba(10, 28, 133, 0.08);
}

.al-card__photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.al-card__panel .al-card__text { margin-top: 14px; }

/* ==========================================================================
   CLOSING
   ========================================================================== */

.al-closing {
  padding: 0 0 96px;
}

.al-closing__box {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 38px 34px 34px;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.98) 0%, rgba(13,37,150,0.98) 100%);
  border: 1px solid rgba(10, 28, 133, 0.96);
  box-shadow: 0 18px 40px rgba(10, 28, 133, 0.16);
  text-align: center;
}

.al-closing__box::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.06) 0 1px,
      transparent 1px 24px
    );
}

.al-closing__eyebrow {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 195, 0, 0.12);
  border: 1px solid rgba(255, 195, 0, 0.18);
  color: var(--sif-yellow);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.al-closing__title {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: #fff;
}

.al-closing__text {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  max-width: 760px;
  font-size: 15.5px;
  line-height: 1.82;
  color: rgba(255,255,255,0.76);
}

/* ==========================================================================
   REVEAL
   ========================================================================== */

.al-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.6s var(--sif-ease),
    transform 0.6s var(--sif-ease);
}

.al-reveal--d1 {
  transition-delay: 0.08s;
}

.al-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1100px) {
  .al-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .al-group__head {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 900px) {
  .al-hero {
    padding: 92px 18px 82px;
  }

  .al-hero__stats {
    grid-template-columns: 1fr;
    max-width: 420px;
  }

  .al-intro__grid {
    grid-template-columns: 1fr;
  }

  .al-groups {
    padding: 46px 0 72px;
  }

  .al-closing {
    padding-bottom: 74px;
  }
}

@media (max-width: 680px) {
  .al-shell {
    padding: 0 16px;
  }

  .al-hero {
    padding: 82px 16px 74px;
  }

  .al-hero__title {
    font-size: clamp(30px, 10vw, 42px);
  }

  .al-hero__sub {
    font-size: 15px;
    line-height: 1.78;
  }

  .al-intro {
    margin-top: -28px;
  }

  .al-intro-card {
    padding: 24px 20px 22px;
  }

  .al-intro-card__title {
    font-size: 26px;
  }

  .al-section-title {
    font-size: clamp(26px, 8vw, 34px);
  }

  .al-cards {
    grid-template-columns: 1fr;
    padding: 18px 18px 20px;
  }

  .al-group__head {
    padding: 22px 18px 18px;
  }

  .al-card__inner {
    padding: 20px 18px 18px;
  }

  .al-card__title {
    font-size: 22px;
  }

  .al-closing__box {
    padding: 30px 22px 26px;
  }

  .al-closing__title {
    font-size: 28px;
  }

  .al-closing__text {
    font-size: 14.5px;
    line-height: 1.76;
  }
}

/* ==========================================================================
   INFRAESTRUCTURA DE CONFIANZA — APPLE CLEAN COMPACTO
   ========================================================================== */

.trust-arch {
  padding: 76px 20px 82px;
  background:
    linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);
}

.trust-arch__container {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.trust-arch__intro {
  padding: 6px 8px 0 0;
}

.trust-arch__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a1c85;
  opacity: 0.74;
}

.trust-arch__eyebrow::before,
.trust-arch__eyebrow::after {
  content: "";
  display: block;
  width: 18px;
  height: 1px;
  background: #ffc300;
  opacity: 0.78;
}

.trust-arch__title {
  margin: 0 0 14px;
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: #0f1736;
  text-wrap: balance;
}

.trust-arch__body {
  margin: 0 0 14px;
  font-size: 14.5px;
  line-height: 1.72;
  color: rgba(26,26,46,0.70);
}

.trust-arch__note {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.7;
  color: rgba(26,26,46,0.42);
}

.trust-arch__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.trust-arch__card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 20px 18px 18px;
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(249,250,253,0.98) 100%);
  border: 1px solid rgba(10,28,133,0.08);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.85) inset,
    0 10px 24px rgba(10,28,133,0.05);
  transition:
    transform 0.24s ease,
    box-shadow 0.24s ease,
    border-color 0.24s ease;
}

.trust-arch__card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(10,28,133,0.015) 0%, transparent 42%),
    repeating-linear-gradient(
      135deg,
      rgba(10,28,133,0.025) 0 1px,
      transparent 1px 22px
    );
  opacity: 0.65;
}

.trust-arch__card:hover {
  transform: translateY(-4px);
  border-color: rgba(10,28,133,0.14);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.92) inset,
    0 18px 36px rgba(10,28,133,0.10);
}

.trust-arch__card--highlight {
  background:
    linear-gradient(135deg, rgba(10,28,133,0.98) 0%, rgba(18,48,179,0.98) 100%);
  border-color: rgba(10,28,133,0.96);
  box-shadow:
    0 20px 42px rgba(10,28,133,0.18);
}

.trust-arch__card--highlight::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 55%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.05) 0 1px,
      transparent 1px 22px
    );
}

.trust-arch__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  border-radius: 999px;
  margin-bottom: 14px;
  background: rgba(10,28,133,0.06);
  border: 1px solid rgba(10,28,133,0.08);
  color: #0a1c85;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1;
}

.trust-arch__card--highlight .trust-arch__label {
  background: rgba(255,195,0,0.12);
  border-color: rgba(255,195,0,0.22);
  color: #ffc300;
}

.trust-arch__card-title {
  margin: 0 0 8px;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 800;
  color: #171d38;
}

.trust-arch__card--highlight .trust-arch__card-title {
  color: #ffffff;
}

.trust-arch__card-text {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(26,26,46,0.68);
}

.trust-arch__card--highlight .trust-arch__card-text {
  color: rgba(255,255,255,0.76);
}

@media (max-width: 980px) {
  .trust-arch {
    padding: 64px 18px 72px;
  }

  .trust-arch__container {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .trust-arch__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 640px) {
  .trust-arch {
    padding: 54px 16px 60px;
  }

  .trust-arch__grid {
    grid-template-columns: 1fr;
  }

  .trust-arch__title {
    font-size: clamp(24px, 8vw, 34px);
  }

  .trust-arch__card {
    padding: 18px 16px 16px;
    border-radius: 16px;
  }

  .trust-arch__card-title {
    font-size: 16px;
  }

  .trust-arch__body,
  .trust-arch__card-text {
    font-size: 13.5px;
  }
}
/* CONTACTO DIRECTO — ajuste fino definitivo */
.ct-info-panel .ct-address {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ct-info-panel .ct-address__item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
  margin: 0;
}

.ct-info-panel .ct-address__icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(10, 28, 133, 0.05);
  color: var(--sif-blue);
  margin-top: 2px;
}

.ct-info-panel .ct-address__item > span:last-child {
  display: flex !important;
  flex-direction: column;
  gap: 4px;
  line-height: 1.45;
}

.ct-info-panel .ct-address__item > span:last-child strong {
  display: block;
  margin: 0 0 2px 0 !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(26, 26, 46, 0.38);
}

.ct-info-panel .ct-address__item > span:last-child br {
  display: none;
}

.ct-info-panel .ct-address__item > span:last-child a,
.ct-info-panel .ct-address__item > span:last-child {
  color: inherit;
}

.ct-info-panel .ct-address__item > span:last-child a {
  display: inline-block;
  margin-top: 0 !important;
  text-decoration: none;
  color: var(--sif-blue);
  font-weight: 700;
}

.ct-info-panel .ct-address__item > span:last-child a:hover {
  color: #132da8;
}

/* ==========================================================================
   HOME FINAL ASSET POLISH
   Scoped to the Home page and existing Elementor/Home classes only.
   ========================================================================== */

body.home .sif-hero {
  height: clamp(430px, 41.666vw, 620px);
  min-height: 0;
  background: var(--sif-blue-deep);
}

body.home .sif-hero__media {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sif-blue-deep);
}

body.home .sif-hero__media img {
  object-fit: contain;
  object-position: center;
  background: var(--sif-blue-deep);
}

body.home .sif-hero__overlay {
  background: linear-gradient(
    180deg,
    rgba(6,14,46,0) 0%,
    rgba(6,14,46,0.08) 68%,
    rgba(6,14,46,0.46) 100%
  );
}

body.home .sif-hero__content {
  position: absolute;
  inset: 0;
  max-width: none;
  padding: 0;
  pointer-events: none;
}

body.home .sif-hero__label,
body.home .sif-hero__title,
body.home .sif-hero__desc {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.home .sif-hero__actions {
  position: absolute;
  left: clamp(22px, 5.8vw, 112px);
  bottom: clamp(88px, 7.4vw, 112px);
  z-index: 3;
  display: inline-flex;
  width: auto;
  max-width: min(520px, calc(100vw - 44px));
  gap: 12px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 8px;
  background: rgba(6,14,46,0.30);
  box-shadow: 0 14px 34px rgba(0,0,0,0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: auto;
}

/* Hero slide 1 (Instrumental): baja el bloque CTA para que NO tape el texto
   amarillo horneado en la imagen ("CIRUGÍA MAXILOFACIAL · ... · ORTOPEDIA").
   Scoped SOLO al primer slide (#sifHeroTrack > slide:first-child); los slides
   2 y 3 conservan su posición original. Mantiene >=30px del borde inferior. */
@media (min-width: 901px) {
  body.home #sifHeroTrack .sif-hero__slide:first-child .sif-hero__actions {
    bottom: clamp(52px, 5vw, 76px);
  }
}
@media (min-width: 601px) and (max-width: 900px) {
  body.home #sifHeroTrack .sif-hero__slide:first-child .sif-hero__actions {
    bottom: clamp(40px, 6vw, 58px);
  }
}

body.home .sif-hero__controls {
  bottom: clamp(18px, 4vw, 48px);
}

body.home .sif-hero__indicators {
  bottom: clamp(28px, 5vw, 58px);
}

body.home .sif-trust {
  padding: 34px 20px;
}

body.home .sif-trust__container {
  gap: clamp(32px, 4.6vw, 62px);
}

body.home .sif-trust__logo {
  max-height: 52px;
  max-width: 156px;
  object-fit: contain;
  filter: grayscale(35%);
  opacity: 0.78;
}

body.home .sif-trust__logo:hover {
  filter: grayscale(0%);
  opacity: 1;
}

body.home .sif-bento-grid {
  /* Filas auto: las tarjetas pequeñas ahora muestran su imagen 3:2 completa,
     así que la fila crece con el contenido (antes 292px/288px fijas recortaban).
     La tarjeta grande (span 2 filas) se ajusta sola y sigue alineada. */
  grid-template-rows: auto auto;
}

body.home .sif-bento-card--large .sif-bento-card__media,
body.home .sif-bento-card--small .sif-bento-card__media {
  background: linear-gradient(135deg, #071345 0%, #0A1C85 100%);
}

body.home .sif-bento-card--large .sif-bento-card__media img,
body.home .sif-bento-card--small .sif-bento-card__media img {
  object-fit: cover;
  object-position: center;
  transform: none;
}

/* La foto Craneomaxilofacial (1.-Bentobox-...Maxilofacial_2.jpg) es fotográfica,
   sin texto: `cover` la hace llenar la tarjeta sin franjas laterales. El overlay
   oscuro inferior (::after) mantiene legible el título/texto sobrepuesto. */
body.home .sif-bento-card--large .sif-bento-card__media img {
  object-position: center;
}

/* Small cards (Oftalmología, Fijación Externa): fill the full media width so the
   banner/photo covers edge-to-edge — `contain` was leaving the blue gradient bg
   visible as side "franjas". `cover` crops mildly at top/bottom instead. Scoped
   to --small only so the large Craneomaxilofacial card keeps its contain+overlay. */
body.home .sif-bento-card--small .sif-bento-card__media img {
  object-fit: cover;
  object-position: center;
}

/* Solo la imagen de Fijación Externa (Ortopedia): subir el encuadre para que el
   cabello del médico quede cerca del borde superior y se vea más del contenido
   central (menos techo blanco). No afecta a Oftalmología (se targetea por src). */
body.home .sif-bento-card--small .sif-bento-card__media img[src*="Ortopedia"] {
  object-position: center 75%;
}

body.home .sif-bento-card--large:hover .sif-bento-card__media img,
body.home .sif-bento-card--small:hover .sif-bento-card__media img {
  transform: none;
}

body.home .sif-bento-card__img-btn {
  object-fit: contain !important;
  object-position: center !important;
}

body.home .sif-bento-card--small {
  flex-direction: column;
  align-items: stretch;
}

body.home .sif-bento-card--small .sif-bento-card__media {
  /* Altura MEDIA: muestra bastante más imagen que los 170px originales,
     pero sin llegar al 3:2 completo (que estiraba la sección y la tarjeta
     grande). Así la sección se lee en una sola pantalla. object-fit:cover
     recorta suavemente arriba/abajo, sin deformar ni dejar franjas. */
  width: 100%;
  height: clamp(170px, 12.7vw, 200px);
  flex: 0 0 auto;
  border-radius: 0;
  overflow: hidden;
}

body.home .sif-bento-card--small .sif-bento-card__content {
  flex: 0 0 auto;
  min-height: 0;
  padding: 14px 24px 12px;
}

body.home .sif-bento-card--small .sif-bento-card__tag {
  margin-bottom: 5px;
}

body.home .sif-bento-card--small .sif-bento-card__title {
  margin-bottom: 6px;
}

body.home .sif-bento-card--small .sif-bento-card__text {
  line-height: 1.46;
  margin-bottom: 10px;
}

body.home .sif-history__container {
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1fr);
}

body.home .sif-history__visual {
  min-height: 600px;
}

body.home .sif-history__img-wrapper {
  width: min(72%, 520px);
  height: 560px;
  margin-left: auto;
}

body.home .sif-history__img-wrapper img {
  object-fit: cover;
  object-position: center top;
}

body.home .sif-history__card {
  width: min(44%, 300px);
  bottom: 28px;
  left: -72px;
  padding: 22px 24px;
  background: rgba(255,255,255,0.94);
}

body.home .sif-hs__icon {
  width: 68px;
  height: 68px;
  background: rgba(255,255,255,0.98);
  border-color: rgba(10,28,133,0.24);
  box-shadow: 0 12px 28px rgba(10,28,133,0.10);
  transition:
    transform 0.22s var(--sif-ease),
    background 0.22s var(--sif-ease),
    border-color 0.22s var(--sif-ease),
    box-shadow 0.22s var(--sif-ease);
}

body.home .sif-hs__icon-img {
  display: block;
  width: 44px;
  height: 44px;
  object-fit: contain;
  opacity: 1;
  filter:
    brightness(0)
    saturate(100%)
    invert(12%)
    sepia(87%)
    saturate(2972%)
    hue-rotate(230deg)
    brightness(82%)
    contrast(112%)
    drop-shadow(0 0 0 #0A1C85);
  transition: transform 0.22s var(--sif-ease), filter 0.22s var(--sif-ease);
}

body.home .sif-hs__item:hover .sif-hs__icon,
body.home .sif-hs__item.is-active .sif-hs__icon {
  transform: translateY(-2px);
  background: rgba(255,195,0,0.18);
  border-color: rgba(255,195,0,0.78);
  box-shadow:
    0 16px 34px rgba(10,28,133,0.16),
    0 0 0 4px rgba(255,195,0,0.08);
}

body.home .sif-hs__item:hover .sif-hs__icon-img,
body.home .sif-hs__item.is-active .sif-hs__icon-img {
  transform: scale(1.05);
  filter:
    brightness(0)
    saturate(100%)
    invert(12%)
    sepia(87%)
    saturate(3400%)
    hue-rotate(230deg)
    brightness(74%)
    contrast(118%)
    drop-shadow(0 0 0 #0A1C85);
}

body.home .sif-hs__item.is-active .sif-hs__name {
  color: var(--blue);
}

body.home .sif-hs__item.is-active .sif-hs__name::after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 7px;
  margin-left: auto;
  background: var(--yellow);
  border-radius: 999px;
}

body.home .sif-hs__col--right .sif-hs__item.is-active .sif-hs__name::after {
  margin-left: 0;
}

body.home .sif-dot,
body.home .sif-hs__dot {
  width: 19px;
  height: 19px;
}

body.home .sif-dot__core,
body.home .sif-hs__dot .sif-dot__core {
  background: #0A1C85;
  box-shadow:
    0 0 0 3px rgba(255,255,255,0.96),
    0 4px 14px rgba(10,28,133,0.52);
}

body.home .sif-dot:hover .sif-dot__core,
body.home .sif-dot.is-active .sif-dot__core,
body.home .sif-hs__dot:hover .sif-dot__core,
body.home .sif-hs__dot.is-active .sif-dot__core {
  background: var(--yellow);
  transform: scale(1.38);
  box-shadow:
    0 0 0 3px rgba(255,255,255,0.98),
    0 0 0 9px rgba(255,195,0,0.22),
    0 6px 20px rgba(255,195,0,0.62);
}

body.home .sif-dot__tip-label {
  border: 1px solid rgba(10,28,133,0.12);
  box-shadow: 0 10px 22px rgba(10,28,133,0.10);
}

body.home .sif-card.on .sct,
body.home .scp .sct {
  color: #0A1C85;
}

@media (min-width: 1600px) {
  body.home .sif-hero {
    height: min(41.666vw, 760px);
    max-height: 760px;
  }
}

@media (max-width: 900px) {
  body.home .sif-hero {
    height: clamp(260px, 48vw, 430px);
  }

  body.home .sif-hero__actions {
    left: 18px;
    bottom: clamp(52px, 8vw, 76px);
    gap: 10px;
    padding: 8px 10px;
  }

  body.home .sif-trust__logo {
    max-height: 44px;
    max-width: 132px;
  }

  body.home .sif-bento-grid {
    grid-template-rows: auto;
  }

  body.home .sif-bento-card--small .sif-bento-card__media {
    /* Móvil/tablet 1 columna: más imagen que antes (158-190px) pero moderado
       (~185-250px según ancho) para no alargar la página; object-fit:cover. */
    height: clamp(168px, 37vw, 228px);
    min-height: 0;
    max-height: none;
    flex-basis: auto;
    aspect-ratio: auto;
  }

  body.home .sif-bento-card--small .sif-bento-card__content {
    padding: 20px 24px 18px;
  }

  body.home .sif-bento-card--small .sif-bento-card__tag {
    margin-bottom: 7px;
  }

  body.home .sif-bento-card--small .sif-bento-card__title {
    margin-bottom: 8px;
  }

  body.home .sif-bento-card--small .sif-bento-card__text {
    line-height: 1.58;
    margin-bottom: 14px;
  }

  body.home .sif-history__container {
    grid-template-columns: 1fr;
  }

  body.home .sif-history__visual {
    min-height: auto;
  }

  body.home .sif-history__img-wrapper {
    width: min(82vw, 480px);
    height: min(104vw, 560px);
    margin: 0 auto;
  }

  body.home .sif-history__card {
    position: relative;
    left: auto;
    bottom: auto;
    width: min(92%, 390px);
    margin: -52px auto 0;
  }
}

@media (max-width: 600px) {
  body.home .sif-hero {
    height: clamp(248px, 64vw, 330px);
    min-height: 248px;
  }

  body.home .sif-hero__actions {
    left: 12px;
    right: 12px;
    bottom: 32px;
    max-width: none;
    gap: 8px;
    padding: 8px 10px;
    justify-content: center;
  }

  body.home #sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost {
    padding: 9px 14px !important;
    font-size: 10.5px !important;
  }

  body.home #sifHero .sif-hero__actions a.sif-btn.sif-btn--text {
    font-size: 10.5px !important;
  }

  body.home .sif-hero__controls {
    display: none;
  }

  body.home .sif-hero__indicators {
    display: none;
  }

  body.home .sif-trust {
    padding: 28px 16px;
  }

  body.home .sif-trust__container {
    gap: 24px 30px;
  }

  body.home .sif-trust__logo {
    max-height: 38px;
    max-width: 112px;
  }

  body.home .sif-history__img-wrapper {
    width: min(92vw, 390px);
    height: min(118vw, 500px);
  }

  body.home .sif-history__card {
    width: 94%;
    padding: 20px;
  }
}

@media (max-width: 380px) {
  body.home .sif-hero__actions {
    bottom: 28px;
  }

  body.home #sifHero .sif-hero__actions a.sif-btn.sif-btn--ghost {
    padding: 8px 12px !important;
    font-size: 10px !important;
  }

  body.home #sifHero .sif-hero__actions a.sif-btn.sif-btn--text {
    font-size: 10px !important;
  }
}

/* Internal page hero/banner polish - Trayectoria, Eventos, Aliados */
.tr-hero {
  min-height: clamp(480px, 44vw, 620px);
  max-height: 620px;
  isolation: isolate;
}

.tr-hero__bg {
  overflow: hidden;
  background: #060e2e;
}

.tr-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url('/wp-content/uploads/2026/06/Eventos_5f.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 52%;
}

.tr-hero__bg img {
  opacity: 0;
  visibility: hidden;
}

.tr-hero__overlay {
  background: linear-gradient(
    100deg,
    rgba(6,14,46,0.84) 0%,
    rgba(6,14,46,0.81) 38%,
    rgba(7,19,78,0.65) 62%,
    rgba(6,14,46,0.29) 100%
  );
}

.ev-hero {
  min-height: clamp(500px, 43vw, 620px);
  max-height: 620px;
  background: #06123e;
}

.ev-hero__visual {
  background-color: #06123e;
  background-image:
    linear-gradient(90deg, rgba(6,14,46,0.42) 0%, rgba(6,14,46,0.16) 48%, rgba(6,14,46,0.06) 100%),
    url('/wp-content/uploads/2026/06/Eventos_1f_3-scaled.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 38%;
}

.ev-hero__visual img {
  opacity: 0;
  visibility: hidden;
  /* Keep the hidden <img> out of flow. The visible hero is the background-image
     on .ev-hero__visual; left in-flow, a valid src gives the img real intrinsic
     dimensions and (width/height:100% → auto) stretches .ev-hero__visual to the
     image's full height, breaking the background-position framing on desktop. */
  position: absolute;
}

.ev-hero__visual::after {
  background: linear-gradient(to right, rgba(6,14,46,0.34) 0%, rgba(6,14,46,0.08) 55%, transparent 100%);
}

.al-hero {
  display: flex;
  align-items: center;
  min-height: clamp(500px, 38vw, 580px);
  padding: 78px 20px 70px;
  background: #06134a;
  isolation: isolate;
}

/* Hero oficial de Aliados (mapamundi corporativo entregado por la diseñadora:
   Hero-Banners-(Proveedores).jpg → assets/img/catalogo/hero-aliados.jpg).
   Se superpone un degradado azul uniforme para mantener legible el texto
   centrado en blanco sin ocultar el mapa ni los rótulos de países. */
.al-hero__bg {
  opacity: 1;
  background-image:
    linear-gradient(180deg, rgba(6,14,46,0.82) 0%, rgba(6,14,46,0.66) 46%, rgba(6,14,46,0.80) 100%),
    url('assets/img/catalogo/hero-aliados.jpg');
  background-repeat: no-repeat, no-repeat;
  background-size: cover, cover;
  background-position: center, center;
}

.al-hero__copy.al-revealed .al-hero__title {
  opacity: 1;
  transform: none;
}

.al-hero .al-eyebrow {
  margin-bottom: 14px;
}

.al-hero__title {
  margin-bottom: 14px;
  font-size: clamp(32px, 3.4vw, 50px);
  line-height: 1.05;
}

.al-hero__sub {
  line-height: 1.7;
}

.al-hero__stats {
  margin-top: 24px;
}

@media (max-width: 1024px) {
  .tr-hero {
    min-height: clamp(460px, 58vw, 590px);
  }

  .tr-hero__bg::before {
    background-size: cover;
    background-position: 58% center;
  }

  .ev-hero {
    min-height: clamp(480px, 56vw, 600px);
  }
}

@media (max-width: 860px) {
  .ev-hero {
    min-height: 0;
    max-height: none;
  }

  .ev-hero__visual {
    height: clamp(280px, 64vw, 420px);
    background-position: center 30%;
  }
}

@media (max-width: 700px) {
  .tr-hero {
    min-height: auto;
    max-height: none;
    padding: 78px 0 72px;
  }

  .tr-hero__bg::before {
    background-size: cover;
    background-position: 62% center;
  }

  .tr-hero__overlay {
    background: linear-gradient(180deg, rgba(6,14,46,0.82) 0%, rgba(6,14,46,0.77) 48%, rgba(6,14,46,0.66) 100%);
  }

  .tr-hero__subtitle {
    margin-bottom: 24px;
  }

  .tr-hero__stat-row {
    gap: 18px 24px;
  }

  .al-hero {
    min-height: auto;
    padding: 64px 16px 58px;
  }

  .al-hero__bg {
    background-size: cover, cover;
    background-position: center, center;
  }
}

@media (max-width: 560px) {
  .ev-hero__visual {
    height: clamp(260px, 70vw, 340px);
    background-position: center 24%;
  }
}

/* Eventos evidence collage polish */
.ev-gallery .ev-gi {
  background: #06123e;
}

.ev-gallery .ev-gi__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(.55) brightness(.84) contrast(1.04);
  transform: scale(1.001);
  will-change: transform;
}

.ev-gallery .ev-gi:nth-child(1) .ev-gi__img {
  object-position: 48% 16%;
}

.ev-gallery .ev-gi:nth-child(2) .ev-gi__img {
  object-position: 50% 18%;
}

.ev-gallery .ev-gi:nth-child(3) .ev-gi__img {
  object-position: 50% 22%;
}

.ev-gallery .ev-gi:nth-child(4) .ev-gi__img {
  object-position: 54% center;
}

.ev-gallery .ev-gi:nth-child(5) .ev-gi__img {
  object-position: 50% 38%;
}

.ev-gallery .ev-gi:nth-child(6) .ev-gi__img {
  object-position: 52% 28%;
}

.ev-gallery .ev-gi:nth-child(7) .ev-gi__img {
  object-position: 55% 16%;
}

.ev-gallery .ev-gi:nth-child(8) .ev-gi__img {
  object-position: 46% 10%;
}

.ev-gallery .ev-gi__ov {
  background: linear-gradient(
    to top,
    rgba(6,14,46,.62) 0%,
    rgba(6,14,46,.22) 46%,
    rgba(6,14,46,0) 78%
  );
}

.ev-gallery .ev-gi:hover .ev-gi__img {
  filter: grayscale(0) brightness(1) contrast(1.03);
  transform: scale(1.035);
}

.ev-gallery .ev-gi:hover .ev-gi__ov {
  opacity: .44;
}

.ev-gallery .ev-gi.ev-touched .ev-gi__img {
  filter: grayscale(0) brightness(1) contrast(1.03);
  transform: scale(1.02);
}

.ev-gallery .ev-gi.ev-touched .ev-gi__ov {
  opacity: .44;
}

@media (max-width: 560px) {
  .ev-gallery__grid {
    grid-auto-rows: 220px;
    gap: 5px;
  }

  .ev-gallery .ev-gi__cap {
    padding: 14px 16px;
  }
}

@media (max-width: 420px) {
  .ev-gallery__grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 8px;
    border-radius: 18px;
  }

  .ev-gallery .ev-gi,
  .ev-gallery .ev-gi--tall,
  .ev-gallery .ev-gi--wide {
    grid-row: span 1;
    grid-column: span 1;
    aspect-ratio: 4 / 5;
  }

  .ev-gallery .ev-gi:nth-child(5) {
    aspect-ratio: 4 / 3;
  }
}

/* Official Sifuentes iconography */
.sif-icon-swap {
  position: relative;
  display: inline-grid;
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 auto;
  place-items: center;
  vertical-align: middle;
}

.sif-icon-swap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .22s ease, transform .22s ease;
}

.sif-icon-swap__hover {
  position: absolute;
  inset: 0;
  opacity: 0;
}

a:hover .sif-icon-swap__base,
button:hover .sif-icon-swap__base,
.is-active .sif-icon-swap__base,
.cf-value-card:hover .sif-icon-swap__base {
  opacity: 0;
}

a:hover .sif-icon-swap__hover,
button:hover .sif-icon-swap__hover,
.is-active .sif-icon-swap__hover,
.cf-value-card:hover .sif-icon-swap__hover {
  opacity: 1;
}

.sif-header__search-btn .sif-icon-swap--search {
  width: 19px;
  height: 19px;
}

.sif-header__search:focus-within .sif-icon-swap__base {
  opacity: 0;
}

.sif-header__search:focus-within .sif-icon-swap__hover {
  opacity: 1;
}

body.home .sif-value-card__icon,
.tr-adn-card__icon {
  background-repeat: no-repeat;
  background-position: center;
}

body.home .sif-value-card__icon {
  background-size: 32px 32px;
}

body.home .sif-value-card__icon svg,
.tr-adn-card__icon svg {
  display: none;
}

body.home .sif-value-card:nth-child(1) .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Mision_Azul.svg');
}

body.home .sif-value-card:nth-child(2) .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Vision_Azul.svg');
}

body.home .sif-value-card:nth-child(3) .sif-value-card__icon,
body.home .sif-value-card:nth-child(4) .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Calidad_Azul.svg');
}

body.home .sif-value-card:nth-child(1):hover .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Mision_Positivo.svg');
}

body.home .sif-value-card:nth-child(2):hover .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Vision_Positivo.svg');
}

body.home .sif-value-card:nth-child(3):hover .sif-value-card__icon,
body.home .sif-value-card:nth-child(4):hover .sif-value-card__icon {
  background-image: url('assets/img/iconografia/Icono_Calidad_Positivo.svg');
}

.tr-adn-card__icon {
  position: relative;
  background: rgba(255,255,255,.96);
  border-color: rgba(255,255,255,.34);
}

.tr-adn-card:hover .tr-adn-card__icon {
  background: #fff;
  border-color: rgba(255,195,0,.55);
}

.tr-adn-card__icon::before {
  content: '';
  display: block;
  width: 34px;
  height: 34px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.tr-adn-card:nth-child(1) .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Mision_Azul.svg');
}

.tr-adn-card:nth-child(2) .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Vision_Azul.svg');
}

.tr-adn-card:nth-child(3) .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Calidad_Azul.svg');
}

.tr-adn-card:nth-child(1):hover .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Mision_Positivo.svg');
}

.tr-adn-card:nth-child(2):hover .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Vision_Positivo.svg');
}

.tr-adn-card:nth-child(3):hover .tr-adn-card__icon::before {
  background-image: url('assets/img/iconografia/Icono_Calidad_Positivo.svg');
}

body.home .sif-hero__actions .sif-btn--text,
body.home .sif-cta__btn-primary,
body.home .sif-cta__btn-ghost,
.ev-btn-primary {
  gap: 9px;
}

body.home .sif-hero__actions .sif-btn--text::before,
body.home .sif-cta__btn-primary::before,
body.home .sif-cta__btn-ghost::before,
.ev-btn-primary::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

body.home .sif-hero__slide:nth-child(1) .sif-btn--text::before,
body.home .sif-hero__slide:nth-child(3) .sif-btn--text::before,
body.home .sif-cta__btn-primary::before {
  background-image: url('assets/img/iconografia/Icono_Contacto_Asesor_Negativo.svg');
}

body.home .sif-hero__slide:nth-child(2) .sif-btn--text::before {
  background-image: url('assets/img/iconografia/Icono_Cotizar_Documento_Negativo.svg');
}

.ev-btn-primary::before {
  background-image: url('assets/img/iconografia/Icono_Cotizar_Documento_Azul-oscuro.svg');
}

body.home .sif-cta__btn-ghost::before {
  background-image: url('assets/img/iconografia/Icono_Cotizar_Documento_Azul.svg');
}

body.home .sif-cta__btn-ghost:hover::before {
  background-image: url('assets/img/iconografia/Icono_Cotizar_Documento_Positivo-variante.svg');
}

body.home .sif-cta__btn-ghost svg,
.ev-btn-primary svg {
  display: none;
}

body.home .sif-hs__item:is(:hover, .is-active) .sif-hs__icon-img[src*="Icono_neurocirugia_"] {
  content: url('assets/img/iconografia/Icono_neurocirugia_Positivo_2.svg');
}

body.home .sif-hs__item:is(:hover, .is-active) .sif-hs__icon-img[src*="Icono_maxilofacial_"] {
  content: url('assets/img/iconografia/Icono_maxilofacial_Positivo_2.svg');
}

body.home .sif-hs__item:is(:hover, .is-active) .sif-hs__icon-img[src*="Icono_Oftalmologia_"] {
  content: url('assets/img/iconografia/Icono_Oftalmologia_Positivo.svg');
}

body.home .sif-hs__item:is(:hover, .is-active) .sif-hs__icon-img[src*="Icono_Ortopedia_"] {
  content: url('assets/img/iconografia/Icono_Ortopedia_Positivo.svg');
}

body.home .sif-hs__item:is(:hover, .is-active) .sif-hs__icon-img[src*="Icono_Varios_"] {
  content: url('assets/img/iconografia/Icono_Varios_Positivo.svg');
}

.sif-icon-swap--quote-badge {
  width: 18px;
  height: 18px;
}

.sif-icon-swap--specialty {
  width: 34px;
  height: 34px;
}

.sif-icon-swap--quote,
.sif-icon-swap--cf-cta,
.sif-icon-swap--contact-submit {
  width: 20px;
  height: 20px;
}

.sif-icon-swap--contact-submit {
  width: 22px;
  height: 22px;
}

.sif-icon-swap--trust,
.sif-icon-swap--contact-trust {
  width: 18px;
  height: 18px;
}

.sif-icon-swap--cf-value {
  width: 34px;
  height: 34px;
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE POLISH — correcciones QA responsive (SOLO móvil, ≤600px).
   El desktop (>600px) NO se ve afectado. No cambia colores, tipografías,
   estructura, contenido ni Elementor. Bloque al final = prevalece en cascada.
   ════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {

  /* TAREA 2 — Sección "Dos Décadas / Legado": eliminar overflow horizontal y
     el corte de texto. min-width:0 permite que el grid item encoja por debajo
     de su contenido (los grid items tienen min-width:auto por defecto);
     overflow-wrap evita desbordes por palabras largas; se reduce el padding
     lateral heredado (60px) para dar aire al texto. */
  body.home .sif-history__container {
    grid-template-columns: 1fr;
    max-width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }
  body.home .sif-history__content,
  body.home .sif-history__visual {
    min-width: 0;
  }
  body.home .sif-history__title,
  body.home .sif-history__text {
    overflow-wrap: anywhere;
  }

  /* TAREA 3 — Esqueleto interactivo: reducir el tamaño visual de los 5 hotspots
     (19px → 15px) para que sean proporcionales al esqueleto reducido en móvil
     y no oculten zonas anatómicas. Siguen siendo táctiles y la misma navegación
     está disponible en las tarjetas de especialidad debajo. */
  body.home .sif-dot,
  body.home .sif-hs__dot {
    width: 12px;
    height: 12px;
  }
}

@media (max-width: 600px) {
  body.home .sif-hero__actions {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: auto;
    max-width: calc(100% - 24px);
  }

  body.home #sifHero .sif-hero__actions a.sif-btn {
    justify-content: center;
    width: 100%;
    min-width: 0;
    text-align: center;
    white-space: normal;
  }

  .sif-header__logo {
    width: 170px;
    padding: 0 30px 0 14px;
  }

  .sif-header__logo-img {
    width: 122px;
  }

  .sif-header__actions {
    min-width: 0;
    padding: 0 8px;
  }

  .sif-header__search {
    max-width: 132px;
  }
}

@media (max-width: 420px) {
  .sif-header__logo {
    width: 156px;
    padding: 0 27px 0 13px;
  }

  .sif-header__logo-img {
    width: 116px;
  }

  .sif-header__search {
    max-width: 160px;
  }
}

@media (max-width: 380px) {
  .sif-header__logo {
    width: 144px;
    padding: 0 25px 0 12px;
  }

  .sif-header__logo-img {
    width: 106px;
  }

  .sif-header__actions {
    padding: 0 6px;
    gap: 4px;
  }

  .sif-header__search {
    max-width: 104px;
  }
}
