/* ICSSA evolution-v31.6 — Hero map animation. */
.corporate-hero{
  --icssa-mexico-x:680.197683;
  --icssa-mexico-y:411.823938;
  background:#e9f1f8;
}
.corporate-hero::after{
  background:
    linear-gradient(90deg,rgba(249,252,255,.97) 0%,rgba(248,252,255,.88) 29%,rgba(241,248,253,.25) 52%,rgba(232,242,250,.02) 74%),
    linear-gradient(180deg,rgba(255,255,255,.025),rgba(196,216,235,.1));
}
.icssa-hero-map__stage{
  top:50%;
  left:50%;
  width:100%;
  height:auto;
  aspect-ratio:1648/928;
  transform:translate(-50%,-50%);
}
.icssa-hero-map__stage::before{
  position:absolute;
  z-index:2;
  inset:7% 2% 12% 29%;
  content:"";
  pointer-events:none;
  opacity:.16;
  background:linear-gradient(119deg,transparent 17%,rgba(255,255,255,.16) 39%,transparent 57%);
  mix-blend-mode:screen;
  animation:icssa-v32-glass 14s ease-in-out infinite;
}
.icssa-hero-map__stage::after{
  z-index:2;
  inset:4% 0 3% 27%;
  opacity:.27;
  background:linear-gradient(134deg,rgba(255,255,255,.07),transparent 30% 73%,rgba(17,62,108,.055));
  mix-blend-mode:soft-light;
}
.icssa-hero-map__background{
  filter:saturate(.7) contrast(1.16) brightness(.86);
  transform:translateZ(0);
}
.icssa-hero-map__overlay{
  z-index:3;
  overflow:visible;
}
.icssa-global-route{
  fill:none;
  stroke:url(#icssa-route-light);
  stroke-width:.62;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  opacity:.38;
  filter:none;
}
.icssa-global-route:nth-child(2n){opacity:.33}
.icssa-route-packet{
  fill:#eef9ff;
  opacity:0;
  will-change:transform,opacity;
}
.icssa-global-sparkle{
  fill:#f3fbff;
  opacity:.12;
  filter:none;
  animation:none;
  transform-box:fill-box;
  transform-origin:center;
  transition:opacity 380ms ease,transform 650ms ease;
}
.icssa-global-sparkle.is-flashing{
  opacity:.76;
  transform:scale(1.42);
}
.icssa-mexico-territory-light{
  fill:url(#icssa-mexico-light);
  opacity:.04;
  mix-blend-mode:screen;
  transform-box:fill-box;
  transform-origin:center;
  animation:none;
  will-change:transform,opacity;
}
.icssa-mexico-pearl{
  fill:#fff;
  stroke:rgba(48,205,255,.98);
  stroke-width:.82;
  opacity:.025;
  mix-blend-mode:screen;
  transform-box:fill-box;
  transform-origin:center;
  will-change:transform,opacity;
}
.icssa-mexico-origin__point{
  fill:#0a93df;
  stroke:#fff;
  stroke-width:1.85;
  opacity:.28;
  mix-blend-mode:screen;
  filter:none;
  transform-box:fill-box;
  transform-origin:center;
  animation:none;
  will-change:transform,opacity;
}
.icssa-mexico-origin__halo{
  fill:rgba(20,143,214,.28);
  stroke:rgba(104,210,255,.52);
  stroke-width:.85;
  opacity:.04;
  mix-blend-mode:screen;
  transform-box:fill-box;
  transform-origin:center;
  animation:none;
  will-change:transform,opacity;
}
.icssa-mexico-origin__pulse{
  fill:none;
  stroke:#65c9f2;
  stroke-width:.82;
  stroke-opacity:.52;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  animation:none;
  will-change:transform,opacity;
}
@keyframes icssa-v32-glass{
  0%,100%{opacity:.12;transform:translate3d(-.25%,0,0)}
  50%{opacity:.2;transform:translate3d(.25%,0,0)}
}
.corporate-hero.is-animation-paused .icssa-hero-map__stage::before,
.corporate-hero.is-animation-paused .icssa-mexico-origin__pulse{
  animation-play-state:paused;
}

/* Header and language controls are preserved from V31.6b. */
.icssa-language-selector{gap:12px}
.icssa-language-selector__button,
.icssa-language-selector__button[aria-current="true"],
.icssa-language-selector__button--active{
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
  flex-basis:32px;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  outline:0;
  box-shadow:none;
}
.icssa-language-selector__button:focus-visible{
  outline:2px solid rgba(15,81,166,.74);
  outline-offset:3px;
}
.icssa-language-selector__flag,
.icssa-language-selector__button[aria-current="true"] .icssa-language-selector__flag,
.icssa-language-selector__button--active .icssa-language-selector__flag{
  display:block;
  width:26px;
  min-width:26px;
  height:20px;
  min-height:20px;
  overflow:visible;
  font-size:20px;
  line-height:20px;
  transform:none;
  opacity:1;
}
.icssa-language-selector__divider{width:1px;height:18px;background:#d6dee9}
.icssa-theme-toggle__icon{color:#09247a;font-size:28px;font-weight:400}

@media(max-width:1180px){
  :root{--header-height:140px;--header:var(--header-height)}
  .header-shell{
    height:var(--header-height);
    min-height:var(--header-height);
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:82px 52px;
    align-content:center;
  }
  .brand{grid-column:1;grid-row:1}
  .icssa-mobile-menu{grid-column:3;grid-row:1}
  .header-actions{
    grid-column:1/-1;
    grid-row:2;
    width:100%;
    justify-self:stretch;
    justify-content:flex-end;
  }
  .header-contact{display:inline-flex}
  .primary-navigation{top:var(--header-height)}
  .icssa-hero__content{padding-top:calc(var(--header-height) + 38px)}
}
@media(max-width:900px){
  .corporate-hero::after{
    background:
      linear-gradient(90deg,rgba(249,252,255,.98) 0%,rgba(248,252,255,.91) 48%,rgba(241,248,253,.4) 76%,rgba(234,244,251,.1) 100%),
      linear-gradient(180deg,rgba(255,255,255,.03) 45%,rgba(245,250,254,.9) 92%);
  }
  .icssa-hero-map{opacity:.92}
  .icssa-hero-map__stage{width:170%;left:100%}
  .icssa-hero-map__background{object-position:center}
  .icssa-global-route{opacity:.31}
}
@media(max-width:600px){
  .header-shell{width:calc(100% - 20px);gap:6px}
  .header-actions{gap:8px;justify-content:center}
  .icssa-language-selector{gap:8px}
  .icssa-language-selector__button,
  .icssa-language-selector__button[aria-current="true"],
  .icssa-language-selector__button--active{
    width:30px;
    min-width:30px;
    flex-basis:30px;
  }
  .header-divider{display:block;height:22px}
  .icssa-theme-toggle{width:38px;min-width:38px;height:38px;min-height:38px}
  .header-contact{min-width:138px}
  .corporate-hero{min-height:760px}
  .icssa-hero-map{opacity:.72}
  .icssa-hero-map__stage{top:32%;width:220%;left:94%}
  .icssa-hero-map__background{object-position:center}
  .icssa-hero__content{padding-top:calc(var(--header-height) + 32px)}
  .icssa-global-route{stroke-width:.58;opacity:.27}
  .icssa-route-packet{display:none}
}
@media(max-width:380px){
  .header-shell{width:calc(100% - 14px)}
  .header-actions{gap:5px}
  .icssa-language-selector{gap:5px}
  .header-contact{min-width:124px;padding-inline:12px}
  .icssa-hero-map__stage{width:235%;left:96%}
}
@media(prefers-reduced-motion:reduce){
  .icssa-hero-map__stage::before,
  .icssa-mexico-territory-light,
  .icssa-mexico-pearl,
  .icssa-mexico-origin__point,
  .icssa-mexico-origin__halo,
  .icssa-mexico-origin__pulse{animation:none}
  .icssa-route-packet,
  .icssa-mexico-origin__pulse{display:none}
  .icssa-mexico-territory-light{opacity:.38}
  .icssa-mexico-pearl{opacity:.78;transform:none}
  .icssa-mexico-origin__point{opacity:1}
  .icssa-mexico-origin__halo{opacity:.58}
  .icssa-global-sparkle{transition:none}
}

/*
 * Evolution V37 — render fidelity.
 *
 * The approved artwork is the Hero's visual layer. It must be rendered with
 * its original color, contrast, light, shadows and highlights. The image
 * remains a real <img> element (not a CSS background) and is only scaled/cropped
 * to the Hero viewport.
 */
.corporate-hero{
  background:#c4d8ed;
  box-shadow:none;
}
.corporate-hero::before,
.corporate-hero::after,
.icssa-hero-map__stage::before,
.icssa-hero-map__stage::after,
.hero-transition{
  display:none;
  content:none;
  background:none;
  filter:none;
  backdrop-filter:none;
}
.icssa-hero-map{
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
}
.icssa-hero-map__stage{
  inset:0;
  top:0;
  left:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  overflow:hidden;
  transform:none;
}
.icssa-hero-map__background{
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  opacity:1;
  object-fit:cover;
  object-position:center;
  filter:none;
  mix-blend-mode:normal;
  transform:none;
}
/* The source render already contains the approved routes, light points,
   Mexico glow and expansion waves; hiding the duplicate SVG preserves them
   pixel-for-pixel instead of redrawing them over the artwork. */
.icssa-hero-map__overlay{
  display:none;
}
.site-header:not(.is-scrolled),
.dark-mode .site-header:not(.is-scrolled){
  background:transparent;
  border-bottom-color:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.hero-actions .button--outline{
  background:transparent;
  backdrop-filter:none;
}

@media(max-width:900px){
  .corporate-hero::before,
  .corporate-hero::after,
  .hero-transition{
    display:none;
    background:none;
  }
  .icssa-hero-map{
    opacity:1;
  }
  .icssa-hero-map__stage{
    inset:0;
    top:0;
    left:0;
    width:100%;
    height:100%;
    transform:none;
  }
  .icssa-hero-map__background{
    opacity:1;
    object-fit:cover;
    object-position:center;
    filter:none;
  }
}

@media(max-width:600px){
  .icssa-hero-map{
    opacity:1;
  }
  .icssa-hero-map__stage{
    inset:0;
    top:0;
    left:0;
    width:100%;
    height:100%;
    transform:none;
  }
  .icssa-hero-map__background{
    opacity:1;
    object-fit:cover;
    object-position:center;
    filter:none;
  }
}
