/* =========================================================
   TOKENS — Light (base)
   ========================================================= */
:root{
  /* Brand */
  --brand-primary:#8eb524;
  --brand-primary-hover:#7ea31f;
  --brand-secondary:#14602c;
  --brand-on-dark-accent:#f1f6e4;

  /* Surfaces / Text */
  --clr-bg:#ffffff;
  --clr-surface:#ffffff;
  --clr-heading:#111827;
  --clr-text:#1f2937;
  --clr-muted:rgb(100, 89, 80);
  --clr-on-dark:#ffffff;

  /* Borders / Focus */
  --clr-border:rgba(17,24,39,.12);
  --focus-border:rgba(142,181,36,.55);

  --focus-ring-color: rgba(142,181,36,.16);
  --focus-ring: 0 0 0 .25rem var(--focus-ring-color);

  /* Radius */
  --radius-sm:.3rem;
  --radius-md:16px;
  --radius-lg:22px;
  --radius-pill:999px;

  /* Shadows */
  --shadow-sm:0 10px 24px rgba(17,24,39,.08);
  --shadow-md:0 18px 44px rgba(17,24,39,.14);
  --shadow-header:rgb(235 227 227 / 60%) 0px 0px 8px;

  /* Layout */
  --header-height:100px;
  --section-gap:3.25rem;

  /* Motion */
  --theme-transition:background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease;
  --theme-switch-duration:.24s;

  /* Component tokens */
  --logo-box-height:120px;

  --translate-hover:translateY(-7px);

  /* Scrollbar */
  --scroll-track:#f1f1f1;
  --scroll-thumb:var(--brand-primary);
  --scroll-thumb-hover:var(--brand-primary-hover);

  /* Gradients / Sections */
  --bg-program:linear-gradient(230deg, rgba(31,41,55,.92) 0%, rgba(63,106,128,.78) 55%, rgba(20,96,44,.20) 120%);
  --bg-steps:linear-gradient(135deg, rgb(44 34 28 / 70%) 0%, rgba(71,56,45,.90) 55%, rgba(20,96,44,.18) 120%);

  --bg-news-card:var(--clr-bg);
  --clr-news-sep:rgba(17,24,39,.08);
  --clr-news-meta-sep:rgba(17,24,39,.22);
  --clr-news-all-shadow:rgba(17,24,39,.12);

  /* Footer */
  --bg-footer:linear-gradient(135deg, rgb(27 39 45), rgb(26 56 71 / 92%));
  --clr-footer-glow:rgba(241,246,228,.10);
  --clr-footer-border:rgba(241,246,228,.20);
  --clr-footer-text:#ffffff;
  --clr-footer-muted:rgb(255 255 255 / 82%);

  /* UI */
  --nav-hover-bg:rgb(243 247 233);
  --hero-form-topbar:linear-gradient(90deg, rgba(63,106,128,.85), rgba(63,106,128,.18));
  --hero-form-icon-bg:rgba(63,106,128,.08);
  --hero-form-icon-border:rgba(17,24,39,.06);

  --btn-primary-bg:#8ab129;
  --btn-primary-hover-bg:var(--brand-secondary);
  --btn-primary-text:#ffffff;

  --program-sticker-bg:#94b92f;
  --program-media-bg:var(--brand-on-dark-accent);

  /* Forms */
  --clr-input-bg:#ffffff;
  --clr-input-border:var(--clr-border);
  --clr-input-text:var(--clr-text);
  --clr-input-placeholder:#6b7280;

  /* Contact */
  --bg-contact-dark:linear-gradient(135deg, rgba(24,37,34,.96) 0%, rgba(33,53,48,.94) 55%, rgba(142,181,36,.16) 120%);
  --bg-contact-side:linear-gradient(145deg, rgba(20,96,44,.94), rgba(23,42,36,.98));
  --clr-contact-glow:rgba(142,181,36,.16);
  --clr-contact-bullet:rgba(241,246,228,.10);
  --clr-contact-kicker:rgba(226,235,219,.86);
  --clr-contact-title:#1f2937;

  /* Apply */
  --clr-apply-note:rgba(241,246,228,.84);

  /* Pages */
  --bg-banner-page:linear-gradient(135deg, rgba(211,215,221,.95) 0%, rgba(241,246,228,.80) 42%, rgba(63,106,128,.10) 80%, rgba(20,96,44,.06) 100%);
  --sidebar-bg:#ebf0f2;
  --sidebar-active-bg:rgba(58,96,51,.12);

  --team-card-media-bg:rgba(17,24,39,.03);
  --team-card-body-bg:#ffffff;
  --team-card-text-muted:rgba(17,24,39,.64);
  --team-card-link-muted:rgba(17,24,39,.74);

  /* Single News */
  --bg-single-news-hero:linear-gradient(135deg, rgba(241,246,228,.92) 0%, rgba(241,246,228,.82) 60%, rgba(20,96,44,.10) 140%);
  --clr-single-news-hero-glow:rgba(142,181,36,.14);
  --clr-single-news-crumbs:rgba(31,41,55,.70);
  --clr-single-news-pill-bg:rgba(255,255,255,.55);
  --clr-single-news-pill-border:rgba(17,24,39,.10);
  --clr-single-news-lead-border:rgba(142,181,36,.35);
  --clr-single-news-quote-bg:rgba(17,24,39,.02);
  --clr-single-news-quote-border:rgba(17,24,39,.08);

  /* Reveal / Wipe */
  --reveal-duration:820ms;
  --reveal-delay:0ms;
  --reveal-y:32px;
  --reveal-scale:.97;
  --reveal-blur:0px;
  --reveal-ease:cubic-bezier(.16,1,.3,1);
  --wipe-green:142,181,36;
  --wipe-duration:700ms;

  /* Hero refined */
  --bg-hero-glow:radial-gradient(1100px 760px at 92% 10%, rgba(142,181,36,.14) 0%, transparent 62%);
  --bg-hero-main:linear-gradient(135deg, rgba(241,246,228,.92) 0%, rgba(241,246,228,.82) 60%, rgba(20,96,44,.10) 140%);
  --bg-hero-overlay:linear-gradient(115deg, rgba(255,255,255,.35), transparent 55%);
  --clr-hero-meta:rgba(31,41,55,.78);
  --clr-hero-badge-bg:rgba(255,255,255,.55);
  --clr-hero-badge-border:rgba(17,24,39,.10);

  /* Cards / UI */
  --clr-card-shadow:rgba(17,24,39,.12);
  --clr-form-card-border:rgba(17,24,39,.10);
  --clr-form-card-head-i:rgba(63,106,128,.55);

  /* =========================================================
     KICKER TOKENS (secciones oscuras)
     ========================================================= */
  --kicker-text: var(--clr-heading);
  --kicker-bullet: var(--brand-primary);
  --kicker-on-dark-text: rgba(241,246,228,.92);
  --kicker-on-dark-bullet: rgba(142,181,36,.95);

  /* =========================================================
     FX BTN tokens (LIGHT)
     ========================================================= */
  --fx-white-base:#ffffff;
  --fx-white-text:#111827;
  --fx-white-fill: linear-gradient(90deg, rgba(142,181,36,.92), rgba(142,181,36,.55));

  --fx-green-base:#8eb524;
  --fx-green-text:#ffffff;
  --fx-green-fill: linear-gradient(90deg, rgba(100,89,80,.95), rgba(100,89,80,.55));

  --fx-brown-base:#645950;
  --fx-brown-text:#ffffff;
  --fx-brown-fill: linear-gradient(90deg, rgba(142,181,36,.90), rgba(142,181,36,.40));
}

/* =========================================================
   TOKENS — Dark (coherente con light)
   ========================================================= */
[data-theme="dark"]{
  /* Surfaces escalonadas (premium) */
  --clr-bg:#0a0d0c;
  --clr-surface:#121715;
  --clr-heading:#f1f6e4;
  --clr-text:#c7d1c4;
  --clr-muted:#8d978c;
  --clr-border:rgba(241,246,228,.12);

  /* Shadows menos pronunciadas (header) */
  --shadow-header:
    0 10px 24px rgba(2,4,3,.44),
    0 1px 0 rgba(241,246,228,.04);

  /* Nav + badges */
  --nav-hover-bg:rgba(241,246,228,.06);
  --clr-hero-badge-bg:rgba(241,246,228,.05);
  --clr-hero-badge-border:rgba(241,246,228,.14);
  --clr-hero-meta:var(--clr-muted);

  /* Hero */
  --bg-hero-glow:radial-gradient(1100px 760px at 92% 10%, rgba(142,181,36,.07) 0%, transparent 62%);
  --bg-hero-main:linear-gradient(135deg, #0a0d0c 0%, #121715 60%, rgba(20,96,44,.18) 140%);
  --bg-hero-overlay:linear-gradient(115deg, rgba(241,246,228,.03), transparent 55%);
  --hero-form-topbar:linear-gradient(90deg, rgba(126,163,31,.78), rgba(63,106,128,.20));

  /* Sections */
  --bg-program:linear-gradient(230deg, #0a0d0c 0%, #121715 55%, rgba(20,96,44,.22) 120%);
  --bg-steps:linear-gradient(135deg, #121715 0%, #0a0d0c 55%, rgba(100,89,80,.20) 120%);
  --bg-news-card:var(--clr-surface);
  --clr-news-sep:rgba(241,246,228,.10);
  --clr-news-meta-sep:rgba(241,246,228,.22);
  --clr-news-all-shadow:rgba(5,9,7,.62);

  /* Footer dark ajustado al sitio */
  --bg-footer:linear-gradient(
    135deg,
    rgba(10, 14, 12, 1) 0%,
    rgba(12, 16, 14, 1) 45%,
    rgba(20, 96, 44, .22) 120%
  );
  --clr-footer-glow:rgba(var(--wipe-green), .08);
  --clr-footer-border:rgba(241,246,228,.12);
  --clr-footer-text:#f1f6e4;
  --clr-footer-muted:#d5dfd3;

  /* Scroll */
  --scroll-track:#080b0a;

  /* Cards */
  --clr-card-shadow:rgba(2,4,3,.72);
  --clr-form-card-border:rgba(241,246,228,.10);
  --clr-form-card-head-i:rgba(142,181,36,.34);

  /* Buttons (evita neón) */
  --btn-primary-bg:#8eb524;
  --btn-primary-hover-bg:#7ea31f;
  --btn-primary-text:#08120d;

  /* Forms */
  --clr-input-bg:#0e1311;
  --clr-input-border:rgba(241,246,228,.15);
  --clr-input-text:#f1f6e4;
  --clr-input-placeholder:#90a08f;

  /* Contact */
  --bg-contact-dark:linear-gradient(135deg, #070a09 0%, #121715 55%, rgba(20,96,44,.24) 120%);
  --bg-contact-side:linear-gradient(145deg, rgba(6,10,8,.98), rgba(11,18,15,.98));
  --clr-contact-glow:rgba(142,181,36,.12);
  --clr-contact-bullet:rgba(241,246,228,.08);
  --clr-contact-kicker:rgba(199,209,196,.90);
  --clr-contact-title:#dfe8d9;

  /* Apply */
  --clr-apply-note:rgba(199,209,196,.86);

  /* Pages */
  --bg-banner-page:linear-gradient(135deg, #070a09 0%, #121715 42%, rgba(63,106,128,.14) 80%, rgba(20,96,44,.10) 100%);
  --sidebar-bg:rgba(241,246,228,.04);
  --sidebar-active-bg:rgba(142,181,36,.18);
  --team-card-media-bg:rgba(241,246,228,.03);
  --team-card-body-bg:var(--clr-surface);
  --team-card-text-muted:var(--clr-muted);
  --team-card-link-muted:var(--clr-text);
  --program-media-bg:rgba(241,246,228,.05);

  /* Single */
  --bg-single-news-hero:linear-gradient(135deg, #0a0d0c 0%, #121715 60%, rgba(20,96,44,.18) 140%);
  --clr-single-news-hero-glow:rgba(142,181,36,.07);
  --clr-single-news-crumbs:var(--clr-muted);
  --clr-single-news-pill-bg:rgba(241,246,228,.06);
  --clr-single-news-pill-border:rgba(241,246,228,.14);
  --clr-single-news-lead-border:var(--brand-primary);
  --clr-single-news-quote-bg:rgba(241,246,228,.03);
  --clr-single-news-quote-border:rgba(241,246,228,.10);

  /* =========================================================
     KICKER TOKENS (dark)
     ========================================================= */
  --kicker-text: var(--clr-heading);
  --kicker-bullet: rgba(142,181,36,.92);
  --kicker-on-dark-text: rgba(241,246,228,.92);
  --kicker-on-dark-bullet: rgba(142,181,36,.88);

  /* =========================================================
     FX BTN tokens (DARK)
     ========================================================= */
  --fx-white-base:#ffffff;
  --fx-white-text:#0a0d0c;
  --fx-white-fill: linear-gradient(90deg, rgba(142,181,36,.95), rgba(142,181,36,.60));

  --fx-green-base:#8eb524;
  --fx-green-text:#ffffff;
  --fx-green-fill: linear-gradient(90deg, rgba(20,96,44,.82), rgba(20,96,44,.45));

  --fx-brown-base:#4b433d;
  --fx-brown-text:#f1f6e4;
  --fx-brown-fill: linear-gradient(90deg, rgba(142,181,36,.92), rgba(142,181,36,.38));
}

/* Evita cambios escalonados al alternar tema */
html.is-theme-switching *,
html.is-theme-switching *::before,
html.is-theme-switching *::after{
  transition:none !important;
  animation:none !important;
}

/* =========================================================
   BASE / LAYOUT
   ========================================================= */
body{
  font-family:"Source Sans 3",sans-serif;
  font-size:18px;
  background:var(--clr-bg);
  color:var(--clr-text);
  transition:var(--theme-transition);
}
html{
  scroll-padding-top:calc(var(--header-height) + 1rem);
}
main [id],
.page-content [id],
.site-content [id],
section[id],
article[id]{
  scroll-margin-top:calc(var(--header-height) + 1rem);
}
.wrapper{ max-width:1300px; margin:0 auto; }
h1,h2,h3,h4,h5,h6{ color:var(--clr-heading); }
.text-muted{ color:var(--clr-muted) !important; }

/* =========================================================
   TYPO / UTILIDADES ROBOTO
   ========================================================= */
.roboto{ font-family:"Roboto",sans-serif; font-optical-sizing:auto; font-style:normal; }
.roboto.w100{ font-weight:100; }
.roboto.w200{ font-weight:200; }
.roboto.w300{ font-weight:300; }
.roboto.w400{ font-weight:400; }
.roboto.w500{ font-weight:500; }
.roboto.w600{ font-weight:600; }
.roboto.w700{ font-weight:700; }
.roboto.w800{ font-weight:800; }
.roboto.w900{ font-weight:900; }
.roboto.italic{ font-style:italic; }
.fw-700{ font-weight:700; }
.fw-800{ font-weight:800; }
.fw-900{ font-weight:900; }

/* =========================================================
   UTILIDADES — KICKER / TÍTULOS
   ========================================================= */
.u-kicker{ font-weight:500; margin:0 !important; text-transform:uppercase; letter-spacing:2px; display:inline-flex; align-items:center; gap:.6rem; color:var(--kicker-text); }
.u-kicker::before{ content:""; width:.65rem; height:.65rem; border-radius:var(--radius-sm); background:var(--kicker-bullet); opacity:.95; }
.u-kicker--on-dark{ color:var(--kicker-on-dark-text) !important; }
.u-kicker--on-dark::before{ background:var(--kicker-on-dark-bullet) !important; }
.program-split .u-kicker, .steps .u-kicker{ color:var(--kicker-on-dark-text) !important; }
.program-split .u-kicker::before, .steps .u-kicker::before{ background:var(--kicker-on-dark-bullet) !important; }
html[data-theme="dark"] .hero .u-kicker{ color:var(--kicker-on-dark-text); }
html[data-theme="dark"] .hero .u-kicker::before{ background:var(--kicker-on-dark-bullet); }
.u-title{ font-weight:900; letter-spacing:-0.6px; line-height:1.1; margin:0 0 1rem; color:var(--clr-heading); }
.u-title--xl{ font-size:clamp(2rem, 1.35rem + 3.3vw, 3.5rem); }
.u-title--lg{ font-size:clamp(1.75rem, 1.2rem + 2.7vw, 3rem); }
.u-muted{ color:var(--clr-muted) !important; }
.u-on-dark{ color:var(--clr-on-dark); }

/* =========================================================
   SCROLLBAR
   ========================================================= */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--scroll-track); }
::-webkit-scrollbar-thumb{ background:var(--scroll-thumb); }
::-webkit-scrollbar-thumb:hover{ background:var(--scroll-thumb-hover); }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.site-header{ height:var(--header-height); z-index:1030; background-color:var(--clr-surface) !important; margin:0 auto; border-top:0; box-shadow:var(--shadow-header); will-change:transform,opacity; transform:translateZ(0); transition:var(--theme-transition); border-bottom:1px solid var(--clr-border); }
.site-header .navbar{ height:var(--header-height); }
body.admin-bar{ --wp-admin-bar-height:32px; }
body.admin-bar .site-header{ top:var(--wp-admin-bar-height); }
.site-header .navbar-brand{ font-size:1.6rem; letter-spacing:-0.5px; color:var(--clr-heading); }
.site-header__brand{ display:inline-flex; align-items:center; flex-shrink:0; }
.site-header__logo{ display:block; width:200px; max-width:100%; height:auto; max-height:72px; object-fit:contain; }
.site-nav a{ color:var(--clr-heading); font-weight:600; padding:.7rem .85rem; border-radius:var(--radius-sm); display:inline-block; text-decoration:none; margin:0 7px; }
.site-nav a:hover,
.site-nav a:focus{ background:var(--nav-hover-bg); }

/* Evita hover en botones FX */
.site-nav a.fx-btn:hover, .site-nav a.fx-btn:focus, .site-nav li.fx-btn-li>a:hover, .site-nav li.fx-btn-li>a:focus{ background:var(--fx-base) !important; }

.site-nav, .site-nav .sub-menu{ list-style:none; margin:0; padding:0; }
.site-nav > li{ position:relative; }
.site-nav > li.menu-item-has-children::before{ content:""; position:absolute; top:100%; left:0; width:100%; height:18px; }
.site-nav > li.menu-item-has-children > a{ padding-right:2.15rem; }
.site-nav > li.menu-item-has-children > a::after{ content:""; position:absolute; top:50%; right:.78rem; width:8px; height:8px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:translateY(-62%) rotate(45deg); opacity:.72; transition:transform .18s ease, opacity .18s ease; }
.site-nav > li.menu-item-has-children:hover > a::after, .site-nav > li.menu-item-has-children:focus-within > a::after{ opacity:1; transform:translateY(-30%) rotate(225deg); }
.site-nav > li.fx-btn-li.menu-item-has-children > a, .site-nav > li.nav-item__featured.menu-item-has-children > a{ padding-right:2.75rem; }
.site-nav > li.fx-btn-li.menu-item-has-children > a::after, .site-nav > li.nav-item__featured.menu-item-has-children > a::after{ right:1rem; }

@media (min-width:992px){
  .site-nav .sub-menu{
    position:absolute;
    top:calc(100% + 6px);
    left:0;
    z-index:40;
    min-width:250px;
    padding:10px;
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-sm);
    background:
      radial-gradient(circle at top right, rgba(142,181,36,.14), transparent 48%),
      rgba(255,255,255,.96);
    box-shadow:0 22px 54px rgba(17,24,39,.16);
    backdrop-filter:blur(14px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px) scale(.98);
    transform-origin:top left;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .site-nav > li:hover > .sub-menu,
  .site-nav > li:focus-within > .sub-menu,
  .site-nav > li.current-menu-ancestor > .sub-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }
  .site-nav .sub-menu::before{
    content:"";
    position:absolute;
    top:-7px;
    left:24px;
    width:14px;
    height:14px;
    background:rgba(255,255,255,.96);
    border-top:1px solid rgba(17,24,39,.08);
    border-left:1px solid rgba(17,24,39,.08);
    transform:rotate(45deg);
  }
  .site-nav .sub-menu::after{
    content:"";
    position:absolute;
    top:-14px;
    left:0;
    width:100%;
    height:14px;
  }
  .site-nav .sub-menu li{
    margin:0;
  }
  .site-nav .sub-menu li + li{
    margin-top:4px;
  }
  .site-nav .sub-menu li > a{
    display:flex;
    align-items:center;
    margin:0;
    padding:.8rem .9rem;
    border-radius:10px;
    color:var(--clr-text);
    font-weight:600;
    font-size:1rem;
    line-height:1.3;
    background:transparent;
    transition:background-color .16s ease, color .16s ease, transform .16s ease;
  }
  .site-nav .sub-menu li > a:hover,
  .site-nav .sub-menu li > a:focus{
    background:rgba(142,181,36,.11);
    color:var(--clr-heading);
    transform:translateX(2px);
  }
  .site-nav .sub-menu .current-menu-item > a,
  .site-nav .sub-menu .current-menu-ancestor > a{
    background:rgba(142,181,36,.14);
    color:var(--clr-heading);
  }
  .site-nav .sub-menu .sub-menu{
    display:none !important;
  }
  [data-theme="dark"] .site-nav .sub-menu{
    border-color:rgba(241,246,228,.10);
    background:
      radial-gradient(circle at top right, rgba(142,181,36,.12), transparent 48%),
      rgba(12,18,15,.96);
    box-shadow:0 22px 54px rgba(2,4,3,.58);
  }
  [data-theme="dark"] .site-nav .sub-menu::before{
    background:rgba(12,18,15,.96);
    border-top-color:rgba(241,246,228,.10);
    border-left-color:rgba(241,246,228,.10);
  }
  [data-theme="dark"] .site-nav .sub-menu li > a{
    color:var(--clr-text);
  }
  [data-theme="dark"] .site-nav .sub-menu li > a:hover,
  [data-theme="dark"] .site-nav .sub-menu li > a:focus{
    background:rgba(142,181,36,.14);
    color:var(--clr-heading);
  }
  [data-theme="dark"] .site-nav .sub-menu .current-menu-item > a,
  [data-theme="dark"] .site-nav .sub-menu .current-menu-ancestor > a{
    background:rgba(142,181,36,.18);
    color:var(--clr-heading);
  }
}

/* WP current */
.site-nav .current-menu-item>a, .site-nav .current-menu-ancestor>a{ background:var(--nav-hover-bg); }
.site-nav .current-menu-item>a.fx-btn, .site-nav .current-menu-ancestor>a.fx-btn, .site-nav .current-menu-item.fx-btn-li>a, .site-nav .current-menu-ancestor.fx-btn-li>a{ background:var(--fx-base) !important; }


/* Featured item */
.site-nav li.nav-item__featured>a{ background-color:#645950; color:#fff; padding:.5rem 2rem; display:inline-flex; align-items:center; gap:.5rem; }
.site-nav li.nav-item__featured>a::after{ font-family:"bootstrap-icons"; line-height:1; display:inline-block; transition:transform .2s ease; content:"\F4DD"; }

/* Theme toggle */
.theme-icon{ transition:transform .3s ease; }
[data-theme="dark"] .theme-icon{ transform:rotate(360deg); }

.header-actions{ margin-left:auto; }
.header-menu-toggle{ width:48px; min-width:48px; height:48px; min-height:48px; border:1px solid var(--clr-border); border-radius:var(--radius-sm); background:var(--clr-surface); color:var(--clr-heading); display:grid; place-items:center; transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease; }
.header-menu-toggle .menu-toggle-icon{ font-size:1.32rem; line-height:1; }
.header-menu-toggle:hover{ background:var(--nav-hover-bg); border-color:rgba(142,181,36,.28); box-shadow:0 10px 24px var(--clr-card-shadow); color:var(--clr-heading); }
.header-menu-toggle:focus-visible{ outline:none; box-shadow:var(--focus-ring), 0 10px 24px var(--clr-card-shadow); }
[data-theme="dark"] .header-menu-toggle{ background:rgba(241,246,228,.04); border-color:rgba(241,246,228,.14); }
[data-theme="dark"] .header-menu-toggle:hover{ background:rgba(var(--wipe-green), .09); border-color:rgba(var(--wipe-green), .28); }
@media (min-width:992px){ .site-header .site-nav{ margin-left:auto !important; } .header-actions{ margin-left:.75rem !important; flex-shrink:0; } }

#theme-toggle{ width:48px; min-width:48px; height:48px; min-height:48px; padding:0 !important; }
#theme-toggle .theme-icon{ font-size:1.1rem; line-height:1; }

.bg-white{ transition:var(--theme-transition); }
[data-theme="dark"] .bg-white{ background-color:var(--clr-bg) !important; }


/* Breadcrumbs */
.bc-wrap{ max-width:98%; margin:0 auto; border-bottom:2px dotted var(--clr-border); }
.bc{ display:flex; justify-content:center; }
.bc__list{ display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; padding:.25rem 0; margin:0; list-style:none; color:var(--clr-muted); font-weight:600; }
.bc__list .breadcrumb-item+.breadcrumb-item::before{ display:none !important; content:none !important; padding:0 !important; }
.bc__list .breadcrumb-item{ display:inline-flex; align-items:center; gap:.55rem; padding:0; margin:0; }
.bc__list .breadcrumb-item a{ color:var(--brand-primary); text-decoration:none; transition:color .18s ease, border-color .18s ease; }
.bc__list .breadcrumb-item a:hover{ color:var(--brand-secondary); }
.bc__list .breadcrumb-item.active{ color:var(--clr-text); font-weight:600; }
.bc__sep{ width:4px; height:4px; border-radius:999px; background:var(--clr-muted); display:inline-block; }
[data-theme="dark"] .bc__list{ color:var(--clr-muted); }
[data-theme="dark"] .bc__list .breadcrumb-item a{ color:rgba(199,209,196,.82); }
[data-theme="dark"] .bc__list .breadcrumb-item a:hover{ color:var(--clr-heading); }
[data-theme="dark"] .bc__list .breadcrumb-item.active{ color:var(--clr-heading); }
[data-theme="dark"] .bc__sep{ background:rgba(199,209,196,.34); }

@media (max-width:575.98px){ .bc__list{ justify-content:flex-start; } }
@media (prefers-reduced-motion:reduce){ .bc__list .breadcrumb-item a{ transition:none !important; } }


body.admin-bar #mainMenu.offcanvas{ top:var(--wp-admin-bar-height); height:calc(100vh - var(--wp-admin-bar-height)); }
#mainMenu.offcanvas{ width:min(420px, 92vw); border-left:1px solid var(--clr-border); background:radial-gradient(120% 60% at 0% 0%, rgba(var(--wipe-green), .10) 0%, rgba(var(--wipe-green), 0) 60%), var(--clr-surface); box-shadow:-18px 0 48px var(--clr-card-shadow); }
#mainMenu .offcanvas-header{ position:relative; padding:1.05rem 1.15rem; border-bottom:1px solid var(--clr-border) !important; }
#mainMenu .offcanvas-header::before{ content:""; position:absolute; left:0; top:0; width:100%; height:7px; background:linear-gradient(90deg, rgba(142,181,36,.85), rgba(142,181,36,.16)); }
#mainMenu .btn-close{ opacity:.9; filter:grayscale(1); transform:translateY(0); transition:transform .15s ease, opacity .15s ease; }
#mainMenu .btn-close:hover{ opacity:1; transform:translateY(-1px); }
#mainMenu .offcanvas-body{ padding:1rem 1.15rem 1.15rem; }
#mainMenu .offcanvas-nav{ list-style:none; margin:0; padding:0; gap:.2rem !important; }
#mainMenu .offcanvas-nav ul{ list-style:none; margin:.25rem 0 0; padding:0 0 0 .9rem; }
#mainMenu .offcanvas-nav .sub-menu{ margin:.25rem 0 0; padding:0 0 0 .9rem; border-left:0; }
#mainMenu .offcanvas-nav .sub-menu .sub-menu{ display:none !important; }
#mainMenu .offcanvas-nav > li{ list-style:none; }
#mainMenu .offcanvas-nav a{ position:relative; display:block; padding:.62rem 1.1rem .62rem 1.2rem; color:var(--clr-text); font-weight:650; letter-spacing:-0.2px; border-bottom:1px solid var(--clr-border); text-decoration:none; transition:background-color .16s ease, border-color .16s ease, color .16s ease; }
/* Neutraliza menú desktop en offcanvas */
#mainMenu .offcanvas-nav a.fx-btn,
#mainMenu .offcanvas-nav li.fx-btn-li > a,
#mainMenu .offcanvas-nav li.nav-item__featured > a{
  display:block;
  min-height:0;
  border-radius:0;
  font-size:inherit !important;
  font-weight:650;
  letter-spacing:-0.2px;
  color:var(--clr-text) !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
#mainMenu .offcanvas-nav a.fx-btn::after,
#mainMenu .offcanvas-nav li.fx-btn-li > a::after,
#mainMenu .offcanvas-nav li.nav-item__featured > a::after{
  content:none !important;
}
#mainMenu .offcanvas-nav a:hover{
  background:rgba(142,181,36,.08);
  border-color:rgba(142,181,36,.22);
  color:var(--clr-heading);
}
#mainMenu .offcanvas-nav a:focus-visible{
  outline:3px solid rgba(142,181,36,.28);
  outline-offset:3px;
}
#mainMenu .offcanvas-nav .current-menu-item > a,
#mainMenu .offcanvas-nav .current-menu-ancestor > a{
  background:rgba(142,181,36,.12);
  border-color:rgba(142,181,36,.28);
  color:var(--clr-heading);
}
#mainMenu .offcanvas-nav .sub-menu a{
  padding:.62rem 1.1rem .62rem 1.2rem;
  border-bottom:1px solid var(--clr-border);
  border-radius:0;
  font-size:inherit;
  font-weight:650;
  letter-spacing:-0.2px;
  color:var(--clr-text);
  background:transparent;
}
#mainMenu .offcanvas-nav .sub-menu a:hover{
  background:rgba(142,181,36,.08);
  color:var(--clr-heading);
}
#mainMenu .offcanvas-nav .sub-menu .current-menu-item > a,
#mainMenu .offcanvas-nav .sub-menu .current-menu-ancestor > a{
  background:rgba(142,181,36,.12);
  border-color:rgba(142,181,36,.28);
  color:var(--clr-heading);
}
[data-theme="dark"] #mainMenu .offcanvas-nav .sub-menu{
  border-left-color:transparent;
}
[data-theme="dark"] #mainMenu .offcanvas-nav .sub-menu a{
  color:var(--clr-text);
  border-bottom-color:var(--clr-border);
}
[data-theme="dark"] #mainMenu .offcanvas-nav .sub-menu a:hover{
  background:rgba(142,181,36,.12);
  color:var(--clr-heading);
}
[data-theme="dark"] #mainMenu .offcanvas-nav .sub-menu .current-menu-item > a,
[data-theme="dark"] #mainMenu .offcanvas-nav .sub-menu .current-menu-ancestor > a{
  background:rgba(142,181,36,.16);
  border-color:rgba(142,181,36,.22);
  color:var(--clr-heading);
}
@media (prefers-reduced-motion:reduce){
  #mainMenu .offcanvas-nav a,
  #mainMenu .btn-close{ transition:none !important; }
}

.scroll-btn{ position:fixed; bottom:35px; right:20px; width:50px; height:50px; border:none; cursor:pointer; opacity:0; transition:opacity .15s linear; display:flex; align-items:center; justify-content:center; z-index:1090; }
.progress-square{ position:absolute; top:0; left:0; }
.progress-square rect{ fill:none; stroke-width:3; rx:.25rem; ry:.25rem; }
.progress-square .bg{ stroke:rgba(0,0,0,.10); }
[data-theme="dark"] .progress-square .bg{ stroke:rgba(255,255,255,.10); }

.progress-square .progress{ stroke:var(--brand-primary); stroke-dasharray:168; stroke-dashoffset:168; transition:stroke-dashoffset .1s linear; height:43px; }
.arrow{ position:relative; z-index:2; font-size:20px; font-weight:bold; color:var(--brand-primary); }
.scroll-btn.footer-contrast .progress-square .progress{ stroke:#54637d !important; }
.scroll-btn.footer-contrast .arrow{ color:#ffffff !important; }

.hero{ padding-top:calc(var(--header-height) + 1.25rem); max-width:98%; margin:0 auto; border-radius:var(--radius-lg); position:relative; overflow:hidden; background:var(--bg-hero-glow), var(--bg-hero-main); border:1px solid var(--clr-border); }
.hero-orbs{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; overflow:visible; }
html[data-theme="dark"] .hero-orbs{ opacity:.6; }
.orb{ transform-box:fill-box; transform-origin:center; will-change:transform,opacity; }
.hero::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.8; }
.hero__wrap{ position:relative; z-index:1; }
.hero__panel{ position:relative; z-index:1; min-height:520px; }
.hero__bullet{ display:flex; justify-content:flex-start; gap:.5rem; margin-bottom:5px; }
.hero__col-copy{ padding-top:4rem; padding-bottom:4rem; }
.hero__copy{ max-width:540px; padding-right:1.25rem; }
.hero__title{ font-size:clamp(2rem, 1.35rem + 3.1vw, 3.45rem); letter-spacing:-0.8px; margin-bottom:1.1rem; color:var(--clr-heading); }
.hero__lead{ max-width:52ch; }
.hero__meta{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.25rem; color:var(--clr-hero-meta); font-weight:600; }
.hero__meta span{ display:inline-flex; align-items:center; padding:.35rem .75rem; border-radius:var(--radius-pill); border:1px solid var(--clr-hero-badge-border); background:var(--clr-hero-badge-bg); }

.hero__form-card{ background:var(--clr-bg); padding:2.1rem; margin-top:2.25rem; padding-bottom:4rem; position:relative; overflow:hidden; border-left:1px solid var(--clr-form-card-border); border-right:1px solid var(--clr-form-card-border); border-top:1px solid var(--clr-form-card-border); border-bottom:0; box-shadow:0 -16px 42px var(--clr-card-shadow); border-top-left-radius:var(--radius-sm); border-top-right-radius:var(--radius-sm); }
.hero__form-card::before{ content:""; position:absolute; left:0; top:0; width:100%; height:12px; background:var(--hero-form-topbar); opacity:.95; }
.hero__form-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-right:3rem; padding-top:20px; color:var(--clr-text); }
.hero__form-head .text-muted{ color:var(--clr-muted) !important; }
.hero__form-icon{ position:absolute; right:-46px; top:-46px; width:150px; height:150px; display:grid; place-items:center; transform:rotate(10deg); background:var(--hero-form-icon-bg); }
.hero__form-icon i{ font-size:3.2rem; line-height:1; color:var(--clr-form-card-head-i); opacity:1; }
.hero__form-card .form-control, .hero__form-card .form-select{ border-radius:var(--radius-sm); border:1px solid var(--clr-input-border); background:var(--clr-input-bg); color:var(--clr-input-text); padding:10px; }
.hero__form-card .form-control::placeholder{ color:var(--clr-input-placeholder); }
.hero__form-card .form-control:focus, .hero__form-card .form-select:focus{ border-color:var(--focus-border); box-shadow:var(--focus-ring); }
.hero__form-card label{ margin-bottom:0; font-weight:600; font-size:1rem; }
.hero__consent-check{ display:flex; align-items:flex-start; gap:.65rem; }
.hero__consent-check .form-check-input{ margin-top:.2rem; border-color:rgba(142,181,36,.48); box-shadow:none; }
.hero__consent-check .form-check-input:checked{ background-color:var(--brand-primary); border-color:var(--brand-primary); }
.hero__consent-check .form-check-input:focus{ border-color:var(--focus-border); box-shadow:var(--focus-ring); }
.hero__consent-label{ font-weight:400 !important; line-height:1.45; }
.hero__submit{ border:none; border-radius:var(--radius-sm); font-weight:600; padding:.5rem 2rem; display:inline-flex; align-items:center; gap:.5rem; font-size:1.3rem; background:var(--btn-primary-bg); color:var(--btn-primary-text); }
.hero__submit::after{ font-family:"bootstrap-icons"; line-height:1; display:inline-block; padding-left:7px; padding-top:5px; transition:transform .2s ease; content:"\F30A"; }
.hero__submit:hover{ background:var(--btn-primary-hover-bg); }
.hero__submit:hover::after{ transform:translateX(4px); }

@media (max-width:991.98px){
  .hero__col-copy{ padding-top:2.25rem; padding-bottom:1.5rem; }
  .hero__form-card{ margin-top:0; }
}
@media (max-width:782.98px){
  body.admin-bar{ --wp-admin-bar-height:46px; }
}

.svg-box{ height:var(--logo-box-height); display:flex; align-items:center; justify-content:center; border-radius:var(--radius-sm); position:relative; overflow:hidden; border:1px solid transparent; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background-color .22s ease; }
.svg-box:is(a){ text-decoration:none; color:inherit; }
.svg-box img{ max-height:100%; width:auto; display:block; transition:transform .22s ease, filter .22s ease, opacity .22s ease; }
html[data-theme="dark"] .svg-box img{ filter:brightness(100) invert(1); }
.svg-box::before{ content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .22s ease; background:radial-gradient(220px 140px at 50% 35%, rgba(142,181,36,.14), transparent 62%); }
.svg-box:hover{ border:1px solid rgba(142,181,36,.32); }
.svg-box:hover::before{ opacity:1; }
.svg-box:hover img{ filter:contrast(1.01); }
 
.svg-box:focus-visible{ outline:0; border-color:rgba(142,181,36,.38); box-shadow:0 0 0 3px rgba(142,181,36,.14), 0 12px 28px rgba(17,24,39,.07); }
@media (prefers-reduced-motion:reduce){
  .svg-box, .svg-box img, .svg-box::before{ transition:none !important; }
}

.program-split{ position:relative; padding:var(--section-gap) 0; background:var(--bg-program); overflow:hidden; border-radius:var(--radius-lg); max-width:98%; margin:0 auto; border:1px solid var(--clr-border); }
.program-split::before{ content:""; position:absolute; border-radius:999px; pointer-events:none; opacity:.95; width:920px; height:920px; bottom:-520px; left:-520px; background:radial-gradient(circle at center, transparent 0 330px, rgba(241,246,228,.20) 330px 348px, transparent 348px 440px, rgba(241,246,228,.14) 440px 456px, transparent 456px 565px, rgba(241,246,228,.10) 565px 578px, transparent 578px 980px); }
.program-split::after{ content:""; position:absolute; border-radius:999px; pointer-events:none; opacity:.95; width:780px; height:780px; top:-420px; right:-420px; background:radial-gradient(circle at center, transparent 0 270px, rgba(241,246,228,.22) 270px 286px, transparent 286px 360px, rgba(241,246,228,.16) 360px 374px, transparent 374px 470px, rgba(241,246,228,.12) 470px 482px, transparent 482px 800px); }
.program-split__media{ position:relative; background:var(--program-media-bg); padding:1.25rem; overflow:visible; border-radius:var(--radius-lg); border:1px solid var(--clr-border); }
.program-split__accent{ position:absolute; left:-10px; top:-10px; width:66px; height:66px; border-radius:10px; background:var(--program-sticker-bg); box-shadow:0 10px 22px rgba(17,24,39,.10); z-index:2; }
.program-split__img{ width:100%; height:auto; display:block; border-radius:calc(var(--radius-lg) - 6px); background:var(--program-media-bg); }
.program-split__kicker{ color:var(--brand-on-dark-accent) !important; }
.program-split__title{ color:var(--clr-on-dark); font-weight:900; letter-spacing:-0.6px; line-height:1.1; margin:0; font-size:clamp(1.85rem, 1.25rem + 2.9vw, 2.5rem); }
.program-split__text{ color:var(--clr-on-dark); margin:0; padding:15px 30px; position:relative; padding-left:4.1rem; border:2px dotted #e2efc05e; border-radius:var(--radius-sm); transition:border-color .18s ease; }
.program-split__text:hover{ border-color:rgba(var(--wipe-green), .28); }
.program-split__text strong{ color:var(--brand-on-dark-accent); }
.program-split__text::before{ content:"\F26B"; font-family:"bootstrap-icons"; position:absolute; left:1rem; top:50%; transform:translateY(-50%); font-size:2rem; color:var(--brand-on-dark-accent); opacity:.95; z-index:1; }
@media (max-width:991.98px){
  .program-split__media{ padding:1rem; }
  .program-split__float{ position:static; margin-top:.9rem; width:fit-content; }
}
@media (min-width:992px){
  .program-split__img{
    min-height:520px;
    object-fit:cover;
  }
}

.pillars{ padding:calc(var(--section-gap) * 1.15) 0; background:var(--clr-bg); max-width:98%; margin:0 auto; border-radius:var(--radius-lg); }
.pillars__grid{ display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media (min-width:768px){ .pillars__grid{ grid-template-columns:repeat(2, 1fr); gap:1.5rem; } }
@media (min-width:992px){ .pillars__grid{ grid-template-columns:repeat(3, 1fr); gap:1.75rem; } }
.pillars__card{ position:relative; background:var(--clr-surface); border:1px solid var(--clr-border); box-shadow:var(--shadow-sm); padding:4.1rem 2rem 2rem; min-height:240px; overflow:hidden; border-radius:var(--radius-sm); transition:transform .18s ease; }
.pillars__card::before{ content:""; position:absolute; left:0; top:0; width:100%; height:6px; background:var(--clr-border); }
.pillars__card--primary::before{ background:linear-gradient(90deg, rgba(142,181,36,.70), rgba(142,181,36,.18)); }
.pillars__card--secondary::before{ background:linear-gradient(90deg, rgba(20,96,44,.75), rgba(20,96,44,.18)); }
.pillars__card--neutral::before{ background:linear-gradient(90deg, rgba(136,134,139,.55), rgba(136,134,139,.16)); }
.pillars__card--mix::before{ background:linear-gradient(90deg, rgba(63,106,128,.70), rgba(63,106,128,.18)); }

.pillars__icon{ position:absolute; right:-42px; top:-44px; width:132px; height:132px; display:grid; place-items:center; transform:rotate(10deg); background:rgba(var(--wipe-green), .04); }
.pillars__icon i{ font-size:3.05rem; line-height:1; color:var(--clr-heading); opacity:.2; }
.pillars__card--primary .pillars__icon{ background:rgba(142,181,36,.10); }
.pillars__card--primary .pillars__icon i{ color:rgba(20,96,44,.72); }
.pillars__card--secondary .pillars__icon{ background:rgba(20,96,44,.08); }
.pillars__card--secondary .pillars__icon i{ color:rgba(20,96,44,.80); }
.pillars__card--neutral .pillars__icon{ background:rgba(136,134,139,.09); }
.pillars__card--neutral .pillars__icon i{ color:var(--clr-muted); }
.pillars__card--mix .pillars__icon{ background:rgba(63,106,128,.10); }
.pillars__card--mix .pillars__icon i{ color:rgba(63,106,128,.82); }

.pillars__title{ margin:0 0 .75rem; padding-right:3rem; color:var(--clr-heading); font-weight:900; letter-spacing:-0.25px; line-height:1.2; }
.pillars__text{ margin:0; max-width:48ch; color:var(--clr-text); font-weight:500; }
.pillars__card:hover{ transform:var(--translate-hover) !important; }
@media (prefers-reduced-motion:reduce){
  .pillars__card{ transition:none; }
  .pillars__card:hover{ transform:none; }
}

.steps{ padding:calc(var(--section-gap) * 1.15) 0; max-width:98%; margin:0 auto; border-radius:var(--radius-lg); background:var(--bg-steps); position:relative; overflow:hidden; border:1px solid var(--clr-border); }
.steps::after{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(var(--wipe-green), .12) 1px, transparent 1px); background-size:18px 18px; opacity:.16; -webkit-mask-image:radial-gradient(circle at 30% 20%, rgba(0,0,0,.95), rgba(0,0,0,.25) 55%, rgba(0,0,0,0) 78%); mask-image:radial-gradient(circle at 30% 20%, rgba(0,0,0,.95), rgba(0,0,0,.25) 55%, rgba(0,0,0,0) 78%); pointer-events:none; }
.steps > .container{ position:relative; z-index:2; }
.steps__sub{ color:var(--clr-text); font-weight:500; }
.steps__map{ position:relative; display:grid; grid-template-columns:repeat(4, 1fr); gap:1.25rem; align-items:start; }
.steps__map::before{ content:""; position:absolute; left:4%; right:4%; top:34px; height:2px; background:var(--clr-border); border-radius:999px; }
.steps__step{ position:relative; background:var(--clr-hero-badge-bg); border:1px solid var(--clr-hero-badge-border); border-radius:var(--radius-sm); padding:1.55rem 1.55rem 1.35rem; backdrop-filter:blur(6px); min-height:220px; text-align:center; }
.steps__step:hover{ transform:var(--translate-hover) !important; }
.steps__badge{ width:64px; height:64px; border-radius:999px; display:grid; place-items:center; position:relative; margin:0 auto 1rem; background:var(--brand-on-dark-accent); color:var(--brand-secondary); box-shadow:0 14px 28px var(--clr-card-shadow); }
.steps__badge i{ font-size:1.25rem; line-height:1; }
.steps__num{ position:absolute; right:-8px; top:-8px; width:28px; height:28px; border-radius:999px; display:grid; place-items:center; font-weight:900; font-size:.9rem; background:var(--brand-primary); color:#0a0d0c; }
.steps__title{ margin:0 0 .6rem; color:var(--brand-on-dark-accent); font-weight:900; letter-spacing:-0.25px; line-height:1.2; }
.steps__text{ margin:0 auto; color:var(--clr-text); font-weight:500; max-width:40ch; }
.steps__btn{ border-radius:var(--radius-sm); font-weight:900; padding:.85rem 1.25rem; box-shadow:0 14px 34px rgba(17,24,39,.16); }
.steps__note{ color:var(--clr-apply-note); opacity:1; }
@media (max-width:991.98px){
  .steps__map{ grid-template-columns:repeat(2, 1fr); }
  .steps__map::before{ display:none; }
}
@media (max-width:575.98px){
  .steps__map{ grid-template-columns:1fr; }
}

/* =========================================================
   SOCIAL MARQUEE (GSAP)
   ========================================================= */
.social-carousel{ padding:calc(var(--section-gap) * 1.15) 0; background:var(--clr-bg); }
.social-marquee{ position:relative; overflow:hidden; padding:.25rem 0 0; max-width:1600px; margin:0 auto; user-select:none; -webkit-mask-image:linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%); mask-image:linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:100% 100%; mask-size:100% 100%; -webkit-mask-composite:destination-in; mask-composite:intersect; touch-action:pan-y; }
.social-marquee__track{ display:flex; flex-wrap:nowrap; gap:12px; align-items:stretch; will-change:transform; transform:translate3d(0,0,0); }
.social-slide{ height:auto !important; display:flex !important; flex:0 0 auto; }
.social-slide--reel{ width:280px !important; }
.social-slide--story{ width:260px !important; }
.social-slide--post{ width:260px !important; }
.social-slide--wide{ width:420px !important; }
@media (min-width:576px){
  .social-slide--reel{ width:260px !important; }
  .social-slide--post{ width:340px !important; }
  .social-slide--wide{ width:460px !important; }
}
@media (min-width:992px){
  .social-slide--reel{ width:260px !important; }
  .social-slide--post{ width:360px !important; }
  .social-slide--wide{ width:520px !important; }
}
.social-card{ position:relative; width:100%; border-radius:var(--radius-sm); overflow:hidden; background:var(--clr-surface); display:block; text-decoration:none; transform:translateZ(0); }
.social-slide--reel .social-card{ aspect-ratio:9/16; }
.social-slide--story .social-card{ aspect-ratio:9/14; }
.social-slide--post .social-card{ aspect-ratio:1/1; }
.social-slide--wide .social-card{ aspect-ratio:16/9; }
.social-card img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:var(--radius-sm); }
.social-card__badge{ position:absolute; left:12px; top:12px; display:inline-flex; align-items:center; gap:.25rem; padding:.35rem .7rem; border-radius:var(--radius-sm); font-weight:800; font-size:.9rem; color:var(--brand-secondary); background:var(--clr-hero-badge-bg); border:1px solid var(--clr-hero-badge-border); backdrop-filter:blur(6px); }
.social-card__overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(17,24,39,0) 40%, rgba(17,24,39,.55) 100%); opacity:0; transition:opacity .18s ease; }
.social-card__icon{ position:absolute; right:12px; bottom:12px; width:44px; height:44px; border-radius:999px; display:grid; place-items:center; color:var(--clr-form-card-head-i); background:var(--clr-hero-badge-bg); border:1px solid var(--clr-hero-badge-border); backdrop-filter:blur(6px); }
.social-card:hover .social-card__overlay{ opacity:1; }
.social-slide.is-dup{ pointer-events:none; }
.social-marquee[data-intro]{ opacity:1; }
.social-marquee.is-intro-ready{ opacity:1; }

/* =========================================================
   NEWS
   ========================================================= */
.news{ max-width:98%; margin:0 auto; padding:calc(var(--section-gap) * 1.1) 0; }
.news__all{ display:inline-flex; align-items:center; gap:.55rem; padding:.62rem 1.25rem; border-radius:999px; background:var(--btn-primary-bg); color:var(--btn-primary-text); text-decoration:none; font-weight:750; box-shadow:0 16px 34px var(--clr-news-all-shadow); transition:transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.news__all:hover{ transform:translateY(-1px); filter:brightness(.98); }
.news__all:focus-visible{ outline-offset:3px; }

.news-mag{ display:grid; grid-template-columns:1fr; gap:1.1rem; }
.news-slim__link:hover,
.news-mag__featured:hover{ transform:var(--translate-hover) !important; }

@media (min-width:992px){
  .news-mag{ grid-template-columns:1.25fr .75fr; align-items:stretch; }
  .news-mag__featured, .news-mag__link{ height:100%; min-height:0; }
  .news-mag__stack{
    height:100%;
    display:grid;
    gap:.9rem;
    grid-template-rows:repeat(3, minmax(0, 1fr));
    align-content:stretch;
  }
  .news-mag__stack>article{ height:100%; min-height:0; }
  .news-slim__link{
    height:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:.4rem;
  }
  .news-mag__media{
    height:100%;
    min-height:100%;
    aspect-ratio:auto;
  }
}
.news-mag__featured{ background:var(--bg-news-card); border:1px solid var(--clr-border); border-radius:var(--radius-sm); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.news-mag__link{ display:grid; grid-template-columns:1fr; text-decoration:none; color:inherit; }
@media (min-width:992px){
  .news-mag__link{ grid-template-columns:.95fr 1.05fr; height:100%; min-height:100%; }
}
.news-mag__media{ position:relative; background:var(--clr-surface); aspect-ratio:4/3; overflow:hidden; }
@media (min-width:992px){
  .news-mag__media{ height:100%; min-height:100%; aspect-ratio:auto; }
}
.news-mag__img{ width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s ease; position:relative; z-index:1; }
.news-mag__body{ padding:3rem 2.35rem 1.25rem; position:relative; }
.news-mag__body::before{ content:""; position:absolute; left:1.35rem; right:1.35rem; top:0; height:1px; background:var(--clr-news-sep); }
@media (min-width:992px){
  .news-mag__body::before{
    left:0; right:auto;
    top:1.35rem; bottom:1.35rem;
    width:1px; height:auto;
  }
}
.news-mag__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-bottom:.7rem; color:var(--clr-muted); font-weight:700; font-size:.95rem; }
.news-mag__term{ display:inline-flex; align-items:center; min-height:1.55rem; padding:.14rem .48rem; border-radius:var(--radius-sm); background:rgba(142,181,36,.12); color:var(--brand-secondary); font-size:.76rem; font-weight:700; line-height:1; text-decoration:none; letter-spacing:.01em; transition:none; }
.news-mag__meta .news-mag__term,
.news-slim__meta .news-mag__term{
  margin-left:.15rem;
  font-size:.72rem;
  min-height:1.45rem;
  padding:.12rem .42rem;
}
.news-mag__meta .sep{
  width:4px;height:4px;
  border-radius:999px;
  background:var(--clr-news-meta-sep);
}
.news-mag__title{
  margin:0 0 .65rem;
  color:var(--clr-text);
  font-weight:950;
  letter-spacing:-0.45px;
  line-height:1.15;
  font-size:clamp(1.15rem, .98rem + 1vw, 1.8rem);
  display:-webkit-box;
  -webkit-line-clamp:3;
  line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news-mag__text{
  margin:0 0 1rem;
  color:var(--clr-text);
  font-weight:500;
  display:-webkit-box;
  -webkit-line-clamp:7;
  line-clamp:7;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media (min-width:992px){
  .news-mag__featured .news-mag__text{ -webkit-line-clamp:8; line-clamp:8; }
}
.news-mag__stack{ display:grid; gap:.9rem; }
@media (min-width:992px){
  .news-mag__stack{ height:100%; grid-template-rows:repeat(3, 1fr); }
  .news-mag__featured, .news-mag__link{ height:100%; }
}
.news-slim__link{
  display:grid;
  gap:.4rem;
  padding:1.5rem;
  border-radius:var(--radius-sm);
  background:var(--bg-news-card);
  border:1px solid var(--clr-border);
  text-decoration:none;
  color:inherit;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
.news-slim__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  align-items:center;
  color:var(--clr-muted);
  font-weight:750;
  font-size:.92rem;
}
.news-slim__meta .pill{
  padding:.18rem .55rem;
  border-radius:999px;
  border:1px solid var(--clr-border);
  background:var(--clr-surface);
  font-weight:850;
  color:var(--clr-text);
}
[data-theme="dark"] .news-slim__meta .pill{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.10);
}
.news-slim__title{
  margin:0;
  color:var(--clr-text);
  font-weight:900;
  letter-spacing:-0.25px;
  line-height:1.2;
  font-size:1.2rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news-slim__text{
  margin:0;
  color:var(--clr-text);
  font-weight:500;
  font-size:.98rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Top bars */
.news-mag__link,
.news-slim__link{ position:relative; }
.news-mag__link::before,
.news-slim__link::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width:100%;
  height:6px;
  z-index:2;
  background:var(--clr-border);
}
.news-mag__link>*,
.news-slim__link>*{ position:relative; z-index:1; }

.news-mag__media::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width:100%;
  height:6px;
  z-index:2;
  background:rgba(17,24,39,.06);
}
.news-mag__featured .news-mag__media::before{
  background:linear-gradient(90deg, rgba(142,181,36,.70), rgba(142,181,36,.18));
}
.news-mag__stack>*:nth-child(3n + 1) .news-slim__link::before{
  background:linear-gradient(90deg, rgba(63,106,128,.70), rgba(63,106,128,.18));
}
.news-mag__stack>*:nth-child(3n + 2) .news-slim__link::before{
  background:linear-gradient(90deg, rgba(20,96,44,.75), rgba(20,96,44,.18));
}
.news-mag__stack>*:nth-child(3n + 3) .news-slim__link::before{
  background:linear-gradient(90deg, rgba(136,134,139,.55), rgba(136,134,139,.16));
}
.news-mag__featured .news-mag__link:hover::before,
.news-mag__stack .news-slim__link:hover::before{ filter:brightness(1.02); }

@media (prefers-reduced-motion:reduce){
  .news__all, .news-mag__featured, .news-mag__img, .news-slim__link{ transition:none !important; }
  .news__all:hover, .news-mag__featured:hover, .news-slim__link:hover{
    transform:none !important;
    filter:none !important;
  }
  .news-mag__featured .news-mag__link:hover::before,
  .news-mag__stack .news-slim__link:hover::before{ filter:none !important; }
}

/* CTA del destacado */
.news-mag__cta{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight:800;
  color:var(--brand-secondary);
}
.news-mag__cta i{ transition:transform .2s ease; }
.news-mag__featured:hover .news-mag__cta i{ transform:translateX(6px); }

/* =========================================================
   CONTACT
   ========================================================= */
.contact{
  padding:calc(var(--section-gap) * 1.5) 0;
  max-width:98%;
  margin:0 auto;
  border-radius:var(--radius-lg);
  position:relative;
  overflow:hidden;
  border:1px solid var(--clr-border);
}
.contact--dark{ background:var(--bg-contact-dark); }
.contact--dark .u-kicker{ color:var(--clr-contact-kicker) !important; }
.contact--dark .u-kicker::before{ background:var(--clr-contact-kicker) !important; }
/* Título siempre claro: la sección es siempre oscura, sin card blanca interna */
.contact--dark .u-title,
.contact--dark .u-title.u-on-dark{ color:var(--brand-on-dark-accent) !important; }
html[data-theme="light"] .contact--dark .u-kicker{ color:rgba(226,235,219,.86) !important; }
html[data-theme="light"] .contact--dark .u-kicker::before{ background:rgba(142,181,36,.92) !important; }
html[data-theme="dark"] .contact--dark .u-kicker{ color:rgba(199,209,196,.90) !important; }
html[data-theme="dark"] .contact--dark .u-kicker::before{ background:rgba(142,181,36,.82) !important; }

/* Textura punteada idéntica a .steps */
.contact::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(var(--wipe-green), .12) 1px, transparent 1px);
  background-size:18px 18px;
  opacity:.16;
  -webkit-mask-image:radial-gradient(circle at 72% 85%, rgba(0,0,0,.95), rgba(0,0,0,.22) 50%, rgba(0,0,0,0) 74%);
  mask-image:radial-gradient(circle at 72% 85%, rgba(0,0,0,.95), rgba(0,0,0,.22) 50%, rgba(0,0,0,0) 74%);
  pointer-events:none;
  z-index:0;
}

/* Anillos decorativos (esquina inferior derecha) */
.contact__rings{
  position:absolute;
  width:560px;
  height:560px;
  border-radius:50%;
  right:-170px;
  bottom:-180px;
  pointer-events:none;
  z-index:1;
  background:radial-gradient(
    circle at center,
    transparent 0 160px,
    rgba(142,181,36,.13) 160px 174px,
    transparent 174px 240px,
    rgba(142,181,36,.08) 240px 252px,
    transparent 252px 320px,
    rgba(142,181,36,.05) 320px 330px,
    transparent 330px 560px
  );
}

.contact .wrapper{ position:relative; z-index:2; }

.contact__copy{ max-width:820px; }
.contact__lead{ color:var(--brand-on-dark-accent); opacity:.76; font-weight:400; font-size:1.1rem; line-height:1.75; }
.contact__address{ display:flex; flex-direction:column; gap:.35rem; }
.contact__address-label{ font-size:.76rem; text-transform:uppercase; letter-spacing:1.4px; color:rgba(var(--wipe-green), .90); font-weight:700; }
.contact__address-link{ display:inline-flex; align-items:center; gap:.7rem; font-size:1.45rem; font-weight:800; font-family:"Roboto",sans-serif; color:var(--brand-on-dark-accent); text-decoration:none; letter-spacing:-0.4px; transition:color .2s ease; }
.contact__address-link i{ color:var(--brand-primary); font-size:1.2rem; opacity:.9; }
.contact__address-link:hover{ color:var(--brand-primary); }

.contact__panel{ background:var(--clr-hero-badge-bg); border:1px solid var(--clr-hero-badge-border); border-radius:var(--radius-md); padding:2.5rem; position:relative; overflow:hidden; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.contact__panel::before{ content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:linear-gradient(90deg, var(--brand-secondary) 0%, var(--brand-primary) 55%, transparent 100%); }
.contact__panel-eyebrow{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:1.4px; color:rgba(241,246,228,.50); margin:0; }
.contact__panel-meta{ display:flex; align-items:center; gap:.65rem; color:var(--clr-text); font-size:1.1rem; font-weight:500; }
.contact__panel-meta i{ color:var(--brand-on-dark-accent); font-size:1.05rem; flex-shrink:0; }

.text-primary{ color:var(--brand-primary) !important; }

@media (max-width:991.98px){ .contact__copy{ max-width:none; } .contact__panel{ padding:2rem 1.75rem; } .contact__address-link{ font-size:1.2rem; } }
@media (max-width:767.98px){
  .hero .hero-orbs{ transform:scale(.78); transform-origin:88% 10%; }
  .site-footer .hero-orbs{ transform:scale(.72); transform-origin:88% 88%; }
  .hero{ padding-top:calc(var(--header-height) + .75rem); }
  .hero__panel{ min-height:auto; }
  .hero__col-copy{ padding-top:1.4rem; padding-bottom:1rem; }
  .hero__copy{ padding-right:0; }
  .hero__form-card{ margin-top:.5rem; padding:1.25rem 1rem 2rem; }
  .hero__form-head{ padding-right:0; padding-top:.75rem; }
  .hero__form-icon{ width:96px; height:96px; right:-24px; top:-24px; }
  .program-split, .pillars, .steps, .news, .contact, .social-carousel{ padding:calc(var(--section-gap) * .82) 0; }
  .program-split__text{ padding:12px 14px 12px 3.2rem; }
  .program-split__text::before{ left:.8rem; font-size:1.55rem; }
  .pillars__card{ padding:3.2rem 1.2rem 1.35rem; min-height:0; }
  .steps__step{ padding:1.2rem 1rem 1rem; min-height:0; }
  .news-mag__body{ padding:1.35rem 1.1rem 1rem; }
  .news-slim__link{ padding:1rem; }
  .contact__panel{ padding:1.75rem 1.25rem; }
  .contact__lead{ font-size:1rem; line-height:1.65; }
  .contact__address-link{ font-size:1.15rem; }
  .site-footer .container{ padding:2.1rem 0 1rem; }
  .site-footer__top{ padding-bottom:1.35rem; }
  .site-footer__bottom{ max-width:calc(100% - 84px); margin-left:auto; margin-right:auto; }
}

.site-footer{ position:relative; overflow:hidden; background:var(--bg-footer); color:var(--clr-footer-text); border-top:1px solid var(--clr-border); }
.site-footer__bg{ position:absolute; inset:0; pointer-events:none; z-index:0; background:radial-gradient(circle at 78% 155%, transparent 0 320px, var(--clr-footer-glow) 320px 372px, transparent 372px 560px, var(--clr-footer-glow) 560px 612px, transparent 612px 980px), radial-gradient(circle at 64% 120%, transparent 0 260px, rgba(var(--wipe-green), .12) 260px 312px, transparent 312px 520px, rgba(var(--wipe-green), .05) 520px 572px, transparent 572px 980px), radial-gradient(900px 520px at 92% 8%, rgba(var(--wipe-green), .09) 0%, transparent 62%), radial-gradient(820px 520px at 12% 18%, var(--clr-footer-glow) 0%, transparent 58%); opacity:.5; }
.site-footer .container{ position:relative; z-index:1; padding:3.25rem 0 1.25rem; }
.site-footer::after{ content:""; position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(var(--clr-footer-glow) 1px, transparent 1px); background-size:18px 18px; opacity:.08; -webkit-mask-image:radial-gradient(circle at 30% 10%, rgba(0,0,0,.9), rgba(0,0,0,0) 65%); mask-image:radial-gradient(circle at 30% 10%, rgba(0,0,0,.9), rgba(0,0,0,0) 65%); }
.site-footer__top{ padding-bottom:2rem; }
.site-footer__social{ display:flex; gap:.6rem; margin-top:30px; }
.site-footer__social-btn{ width:44px; height:44px; border-radius:var(--radius-pill); display:grid; place-items:center; text-decoration:none; color:var(--clr-footer-muted); border:1px solid var(--clr-footer-border); background:rgba(255,255,255,.06); }
.site-footer__social-btn:hover{ background:rgba(255,255,255,.10); }
.site-footer__col{ padding-top:.25rem; }
.site-footer__title{ font-weight:900; color:var(--clr-footer-text); margin-bottom:.9rem; letter-spacing:-0.2px; }
.site-footer__links{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.site-footer__links a{ color:var(--clr-footer-muted); text-decoration:none; font-weight:600; border-bottom:1px dotted var(--clr-footer-border); display:block; padding-left:15px; max-width:350px; }
.site-footer__links a:hover{ color:var(--brand-primary); text-decoration:none; text-underline-offset:4px; }
.site-footer__contact{ display:grid; gap:.65rem; }
.site-footer__contact-row{ display:grid; grid-template-columns:36px 1fr; gap:1rem; align-items:center; color:var(--clr-footer-muted); font-weight:600; }
.site-footer__contact-row i{ color:var(--brand-primary); background:rgba(var(--wipe-green), .10); height:36px; width:36px; display:flex; justify-content:center; align-items:center; border-radius:var(--radius-sm); font-size:1rem; flex-shrink:0; }
.site-footer__contact-row a{ color:var(--clr-footer-text); text-decoration:none; }
.site-footer__contact-row a:hover{ text-decoration:underline; text-underline-offset:4px; }
.site-footer__partners{ border-top:2px dotted rgba(241,246,228,.18); padding-top:20px; }
.site-footer .svg-box img{ filter:brightness(0) invert(1); }
.site-footer__bottom{ margin-top:2rem; padding-top:1rem; border-top:2px dotted rgba(var(--wipe-green), .18); color:var(--clr-footer-text); font-weight:600; display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:center; text-align:center; }
.site-footer__bottom strong{ color:var(--brand-primary); }
@media (max-width:991.98px){
  .site-footer__top{ text-align:center; }
  .site-footer__social{ justify-content:center; margin-top:18px; }
  .site-footer__links a{ max-width:none; padding-left:0; text-align:center; }
  .site-footer__contact{ justify-items:center; }
  .site-footer__contact-row{ grid-template-columns:36px auto; width:min(100%, 340px); justify-content:flex-start; text-align:left; }
}
@media (max-width:575.98px){
  .site-footer .container{ padding:2.5rem 0 1.25rem; }
  .scroll-btn{
    right:14px;
    bottom:22px;
  }
}

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{ opacity:0; transform:translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale)); filter:none; will-change:auto; transition:opacity var(--reveal-duration) var(--reveal-ease) var(--reveal-delay), transform var(--reveal-duration) var(--reveal-ease) var(--reveal-delay), filter var(--reveal-duration) var(--reveal-ease) var(--reveal-delay); backface-visibility:hidden; transform-style:preserve-3d; }
.reveal:not(.is-inview){ will-change:transform,opacity; }
.reveal--blur{ filter:blur(var(--reveal-blur)); }
.reveal.is-inview{ opacity:1; transform:translate3d(0,0,0) scale(1); filter:blur(0); }
.reveal.no-anim{ transition:none !important; }
.reveal--lift{ transform:translate3d(0, calc(var(--reveal-y) * 1.25), 0); }
.reveal--lift.is-inview{ transform:translate3d(0,0,0); }
.reveal--lift:not(.is-inview):hover{ transform:translate3d(0, calc(var(--reveal-y) * 1.25), 0) !important; }

.reveal--wipe{ position:relative; overflow:hidden; isolation:isolate; }
.reveal--wipe>*{ position:relative; z-index:1; }
.reveal--wipe::after{ content:""; position:absolute; inset:-20% -35%; z-index:2; pointer-events:none; transform:translateX(-120%) skewX(-12deg); opacity:0; background:linear-gradient(90deg, rgba(var(--wipe-green), 0) 0%, rgba(var(--wipe-green), 0) 35%, rgba(var(--wipe-green), .55) 50%, rgba(255,255,255,.35) 54%, rgba(var(--wipe-green), .55) 58%, rgba(var(--wipe-green), 0) 74%, rgba(var(--wipe-green), 0) 100%); filter:blur(5px); mix-blend-mode:screen; will-change:transform,opacity; }
.reveal--wipe.is-inview::after{
  opacity:1;
  animation:wipe-flash var(--wipe-duration) cubic-bezier(.16,1,.3,1) both;
}
.reveal--wipe:not(.is-inview)::after{ animation:none; opacity:0; transform:translateX(-120%) skewX(-12deg); }
@keyframes wipe-flash{ 0%{ transform:translateX(-120%) skewX(-12deg); opacity:0; } 10%{ opacity:.95; } 60%{ opacity:.9; } 100%{ transform:translateX(120%) skewX(-12deg); opacity:0; } }

.reveal--words{ display:inline-block; overflow:hidden; vertical-align:bottom; isolation:isolate; --word-y:1.15em; --word-gap:.22em; }
.reveal--words .reveal__words{ display:inline-block; }
.reveal--words .reveal__word{ display:inline-block; margin-right:var(--word-gap); will-change:transform,opacity; transform:translate3d(0, var(--word-y), 0); opacity:0; }
.reveal--words .reveal__word:last-child{ margin-right:0; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; } .reveal--wipe::after{ display:none; } .reveal--words{ overflow:visible; } .reveal--words .reveal__word{ transform:none !important; opacity:1 !important; } }

.fx-glow{ position:relative; overflow:hidden; isolation:isolate; will-change:opacity; --mx:50%; --my:50%; --glow-rgb:142,181,36; --glow-size:260px; --glow-a1:.36; --glow-a2:.20; --glow-a3:.10; --glow-border-a:.32; }
.fx-glow>*{ position:relative; z-index:3; }
.fx-glow::before{ content:""; position:absolute; inset:-2px; pointer-events:none; z-index:2; background:radial-gradient(var(--glow-size) var(--glow-size) at var(--mx) var(--my), rgba(var(--glow-rgb), var(--glow-a1)) 0%, rgba(var(--glow-rgb), var(--glow-a2)) 34%, rgba(var(--glow-rgb), var(--glow-a3)) 55%, rgba(var(--glow-rgb), 0) 72%); opacity:0; mix-blend-mode:normal; transition:opacity 220ms ease; }
.fx-glow.is-hover{ box-shadow:inset 0 0 0 1px rgba(var(--glow-rgb), var(--glow-border-a)); }
.fx-glow.is-hover::before{ opacity:1; }
[data-theme="dark"] .fx-glow{ --glow-a1:.26; --glow-a2:.14; --glow-a3:.06; --glow-border-a:.25; }
[data-theme="dark"] .fx-glow::before{ mix-blend-mode:screen; }
@media (prefers-reduced-motion:reduce){ .fx-glow::before{ transition:none !important; } }

.fx-bg-shift{ --shift-rgb:142,181,36; position:relative; z-index:1; transition:border-color .2s ease; }
.fx-bg-shift.reveal:not(.is-inview){ pointer-events:none; }
.fx-bg-shift.is-hover{ border-color:rgba(var(--shift-rgb), .30); }
.fx-bg-shift-scope{ position:relative; }
.fx-bg-shift-ghost{ --shift-rgb:142,181,36; position:absolute; left:0; top:0; width:0; height:0; pointer-events:none; border-radius:var(--radius-sm); border:2px dotted rgba(var(--shift-rgb), .28); background:linear-gradient(135deg, rgba(var(--shift-rgb), .20) 0%, rgba(var(--shift-rgb), .10) 52%, rgba(var(--shift-rgb), .03) 100%); box-shadow:inset 0 0 0 1px rgba(var(--shift-rgb), .14); opacity:0; z-index:0; will-change:transform,width,height,opacity; }
[data-theme="dark"] .fx-bg-shift-ghost{ border-color:rgba(var(--shift-rgb), .24); background:linear-gradient(135deg, rgba(var(--shift-rgb), .16) 0%, rgba(var(--shift-rgb), .08) 52%, rgba(var(--shift-rgb), .02) 100%); box-shadow:inset 0 0 0 1px rgba(var(--shift-rgb), .11); }
@media (prefers-reduced-motion:reduce){ .fx-bg-shift, .fx-bg-shift-ghost{ transition:none !important; } }

.fx-btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; padding:.9rem 1.65rem !important; min-height:48px; border-radius:var(--radius-sm, 999px); background:var(--fx-base, #fff); color:var(--fx-text, #111827) !important; font-size:1.4rem; font-weight:600; letter-spacing:.2px; line-height:1; text-decoration:none; cursor:pointer; user-select:none; -webkit-tap-highlight-color:transparent; overflow:hidden; isolation:isolate; transition:box-shadow .22s ease, transform .15s ease, filter .22s ease; will-change:transform,box-shadow; border:0 !important; outline:0; }
.fx-btn__fill{ position:absolute; inset:0; z-index:0; pointer-events:none; display:block; background:var(--fx-hover); transform:scaleX(0); transform-origin:0% 50%; will-change:transform; }
.fx-btn__label{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; }
.fx-btn:hover{ box-shadow:0 16px 34px var(--clr-card-shadow); }
.fx-btn:focus-visible{ outline:none; box-shadow:var(--focus-ring), 0 16px 34px var(--clr-card-shadow); }
.fx-btn.is-pressed{ box-shadow:0 12px 26px var(--clr-card-shadow); }
li.fx-btn-li>a{ display:inline-flex; align-items:center; justify-content:center; text-decoration:none; font-size:inherit !important; }
.fx-btn i{ transition:transform .2s ease; }
.fx-btn:hover i:not(.theme-icon){ transform:translateX(6px); }

/* Variantes */
.fx-btn--white{ --fx-base:var(--fx-white-base); --fx-text:var(--fx-white-text); --fx-hover:var(--fx-white-fill); }
.fx-btn--green{ --fx-base:var(--fx-green-base); --fx-text:var(--fx-green-text); --fx-hover:var(--fx-green-fill); }
.fx-btn--brown{ --fx-base:var(--fx-brown-base); --fx-text:var(--fx-brown-text); --fx-hover:var(--fx-brown-fill); }
[data-theme="dark"] .fx-btn:hover{ box-shadow:0 18px 44px rgba(0,0,0,.55); }
[data-theme="dark"] .fx-btn:focus-visible{ box-shadow:0 0 0 .25rem rgba(142,181,36,.20), 0 18px 44px rgba(0,0,0,.55); }

/* Animación logos */
.fx-logo{ will-change:transform,opacity,filter; }

/* Performance baseline */
.social-marquee{ -webkit-mask-image:none; mask-image:none; }
.steps__step, .social-card__badge, .social-card__icon{ backdrop-filter:none; }
.reveal--blur{ filter:none; }
.reveal--wipe::after{ display:none; }
.fx-glow::before{ mix-blend-mode:normal; }
.site-footer::after{ -webkit-mask-image:none; mask-image:none; opacity:.05; }

html.is-firefox .social-marquee{ -webkit-mask-image:none; mask-image:none; }
html.is-firefox .steps__step, html.is-firefox .social-card__badge, html.is-firefox .social-card__icon{ backdrop-filter:none; }
html.is-firefox .reveal--blur{ filter:none; }
html.is-firefox .reveal--wipe::after{ display:none; }
html.is-firefox .fx-glow::before{ mix-blend-mode:normal; }
html.is-firefox .pillars__card:hover, html.is-firefox .steps__step:hover, html.is-firefox .news__all:hover, html.is-firefox .news-mag__featured:hover, html.is-firefox .news-slim__link:hover{ transform:none !important; }
html.is-firefox .site-nav li.fx-btn-li>a:hover::after, html.is-firefox .news-mag__featured:hover .news-mag__cta i, html.is-firefox .fx-btn:hover i:not(.theme-icon){ transform:none !important; }
