/* BYC story and two equally weighted partner profiles. All content stays intact. */
#alianza {
  --alliance-text: #f2f3fa;
  --alliance-muted: #acb4cd;
  --alliance-accent: #b6c0f5;
  --alliance-line: #aab6e528;
  padding-top: 88px;
  padding-bottom: 88px;
  background: radial-gradient(ellipse at 50% 24%, #1b234138, transparent 55%), #080a14;
}
#alianza > .section-kicker,
#alianza > .alliance-intro,
#alianza > .partner-grid { margin-left: auto; margin-right: auto; }
#alianza .section-kicker {
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 24px;
  text-align: center;
  color: var(--alliance-muted);
  font: 500 11px/1.6 'DM Sans', sans-serif;
  letter-spacing: 1.4px;
}
#alianza .section-kicker > span { display: block; }
#alianza .section-kicker > span + span { border-left: 1px solid var(--alliance-line); padding-left: 24px; }
#alianza .alliance-intro { display: block; max-width: 880px; margin-top: 34px; text-align: center; }
#alianza h2 {
  margin: 0;
  color: var(--alliance-text);
  font: 500 clamp(46px, 4.8vw, 68px)/1.1 'Manrope', sans-serif;
  letter-spacing: -.055em;
}
#alianza h2 > span:not(.accent-dot) { color: var(--alliance-accent); }
#alianza .alliance-copy { max-width: 720px; margin: 28px auto 0; }
#alianza .alliance-copy .intro-statement {
  max-width: 650px;
  margin: 0 auto;
  color: #e0e5f5;
  font: 400 22px/1.55 'DM Sans', sans-serif;
  letter-spacing: -.3px;
  text-wrap: balance;
}
#alianza .alliance-copy > p + p {
  margin-top: 20px;
  color: var(--alliance-muted);
  font: 400 16px/1.8 'DM Sans', sans-serif;
  text-wrap: pretty;
}
#alianza .origin-signature {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  max-width: 370px;
  margin: 42px auto 0;
  color: #c7cee6;
  font: 500 11px/1.6 'DM Sans', sans-serif;
  letter-spacing: 1.5px;
}
#alianza .origin-signature::before,
#alianza .origin-signature::after { content: ''; flex: 1; height: 1px; background: var(--alliance-line); }
#alianza .origin-signature b { padding: 0; color: var(--alliance-accent); font-size: 18px; font-weight: 400; }
#alianza .partner-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 1040px;
  margin-top: 30px;
  gap: 0;
  border: 1px solid var(--alliance-line);
  border-radius: 24px;
  background: #101522b3;
}
#alianza .partner,
#alianza .partner + .partner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 116px auto auto 1fr auto;
  align-items: start;
  justify-items: center;
  gap: 0;
  min-width: 0;
  padding: 38px 48px 32px;
  border: 0;
  text-align: center;
}
#alianza .partner + .partner { border-left: 1px solid var(--alliance-line); }
#alianza .partner-body { display: contents; }
#alianza .partner-logo-stage {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  width: 106px;
  height: 100px;
  padding: 0;
  margin: 0;
}
#alianza .partner-symbol { opacity: .86; }
#alianza .partner-symbol-cya { width: 94px; height: 94px; }
#alianza .partner .micro-label {
  grid-column: 1;
  grid-row: 2;
  margin: 8px 0 0;
  color: var(--alliance-muted);
  font: 500 11px/1.6 'DM Sans', sans-serif;
  letter-spacing: 1px;
}
#alianza .partner h3 {
  grid-column: 1;
  grid-row: 3;
  margin: 18px 0 0;
  color: var(--alliance-text);
  font: 500 32px/1.2 'Manrope', sans-serif;
  letter-spacing: -1px;
}
#alianza .partner p {
  grid-column: 1;
  grid-row: 4;
  max-width: 370px;
  margin: 20px 0 0;
  color: var(--alliance-muted);
  font: 400 16px/1.75 'DM Sans', sans-serif;
  text-wrap: pretty;
}
#alianza .partner .underlined-link {
  grid-column: 1;
  grid-row: 5;
  align-items: center;
  gap: 14px;
  min-height: 46px;
  margin-top: 24px;
  padding: 10px 0;
  border-color: #6d7aa8;
  color: #c8d1ff;
  font: 500 14px/1.5 'DM Sans', sans-serif;
}
#alianza .partner .underlined-link:hover { color: #fff; border-color: #c8d1ff; }
#alianza a:focus-visible { outline: 3px solid #c8d1ff; outline-offset: 5px; }
@media (max-width: 900px) {
  #alianza { padding-top: 72px; padding-bottom: 72px; }
  #alianza .partner,
  #alianza .partner + .partner { padding: 32px 28px 28px; }
  #alianza .partner h3 { font-size: 29px; }
}
@media (max-width: 600px) {
  #alianza { padding-top: 52px; padding-bottom: 52px; }
  #alianza .section-kicker { flex-direction: column; gap: 7px; font-size: 10px; letter-spacing: 1.1px; }
  #alianza .section-kicker > span + span { border-left: 0; padding-left: 0; }
  #alianza .alliance-intro { margin-top: 28px; }
  #alianza h2 { font-size: clamp(33px, 9.6vw, 44px); line-height: 1.13; }
  #alianza .alliance-copy { margin-top: 24px; }
  #alianza .alliance-copy .intro-statement { font-size: 19px; line-height: 1.6; }
  #alianza .alliance-copy > p + p { margin-top: 18px; line-height: 1.75; text-align: left; }
  #alianza .origin-signature { gap: 12px; margin-top: 30px; font-size: 10px; }
  #alianza .partner-grid { grid-template-columns: 1fr; margin-top: 24px; border-radius: 20px; }
  #alianza .partner,
  #alianza .partner + .partner { padding: 28px 24px; grid-template-rows: 100px auto auto 1fr auto; }
  #alianza .partner + .partner { border-left: 0; border-top: 1px solid var(--alliance-line); }
  #alianza .partner-logo-stage { width: 94px; height: 90px; }
  #alianza .partner-symbol-cya { width: 84px; height: 84px; }
  #alianza .partner .micro-label { font-size: 10px; }
  #alianza .partner h3 { margin-top: 15px; font-size: 29px; }
  #alianza .partner p { margin-top: 18px; }
  #alianza .partner .underlined-link { margin-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  #alianza .partner .underlined-link { transition: none; }
}

/* This section owns its reveal. Neutralize the older site's generic .reveal
   so content remains visible even if this controller or its observer is absent. */
#alianza .alliance-intro.reveal,
#alianza .partner.reveal {
  opacity: 1;
  transform: none;
  transition: none;
}
#alianza .partner-grid { overflow: clip; }

@media (prefers-reduced-motion: no-preference) {
  #alianza .alliance-intro.byc-alliance-entering > h2 {
    animation: byc-alliance-title 1100ms cubic-bezier(.16, 1, .3, 1) both;
    transform-origin: 50% 100%;
  }
  #alianza .alliance-intro.byc-alliance-entering > .alliance-copy {
    animation: byc-alliance-copy 1000ms 120ms cubic-bezier(.16, 1, .3, 1) both;
  }
  #alianza .partner.byc-alliance-entering {
    --byc-alliance-approach: -38px;
    --byc-alliance-rise: calc(var(--byc-enter-direction, 1) * 38px);
    animation: byc-alliance-profile 1200ms cubic-bezier(.16, 1, .3, 1) both;
  }
  #alianza .partner + .partner.byc-alliance-entering { --byc-alliance-approach: 38px; }
  #alianza .byc-alliance-pressed,
  #alianza .byc-alliance-pressed > * { animation-play-state: paused !important; }

  @media (max-width: 900px) {
    #alianza .partner.byc-alliance-entering { --byc-alliance-approach: -22px; }
    #alianza .partner + .partner.byc-alliance-entering { --byc-alliance-approach: 22px; }
  }
  @media (max-width: 600px) {
    #alianza .partner.byc-alliance-entering,
    #alianza .partner + .partner.byc-alliance-entering {
      --byc-alliance-approach: 0px;
      --byc-alliance-rise: calc(var(--byc-enter-direction, 1) * 28px);
    }
    #alianza .alliance-intro.byc-alliance-entering > h2 { animation-name: byc-alliance-copy; }
  }
}

@keyframes byc-alliance-title {
  from { opacity: .4; transform: perspective(900px) translate3d(0, calc(var(--byc-enter-direction, 1) * 34px), 0) rotateX(10deg) scale(.98); }
  to { opacity: 1; transform: perspective(900px) translate3d(0, 0, 0) rotateX(0deg) scale(1); }
}
@keyframes byc-alliance-copy {
  from { opacity: .6; transform: translate3d(0, calc(var(--byc-enter-direction, 1) * 24px), 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes byc-alliance-profile {
  from { opacity: .55; transform: translate3d(var(--byc-alliance-approach), var(--byc-alliance-rise), 0) scale(.975); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

