/*
  ABA Public Website — header, hero footer strip, secondary (approach) section, mobile footer (checkpoint E).
  Values from the approved final source (mobile-correction-proofs-v2/mobile-hero-proof-v2.html; v15 Header/Footer boards).
  Desktop: header over the hero top; footer strip at the hero bottom; secondary section below the hero.
  Phone (same condition as the hero composition): descriptor and hero footer strip hidden; page = hero → secondary →
  footer → natural end.
*/
.site-header {
  position: absolute;
  z-index: var(--aba-z-chrome);
  top: 0; left: 0; right: 0;
  padding: 34px 5% 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.site-identity { display: flex; align-items: center; gap: 20px; }
.site-mark { display: block; width: 104px; line-height: 0; }
.site-mark svg { width: 100%; height: auto; }
.site-descriptor {
  margin: 0;
  border-left: 1px solid rgba(189, 171, 137, .45);
  padding-left: 19px;
  font-size: 8.5px;
  line-height: 1.75;
  letter-spacing: .3em;
  font-weight: 500;
  color: var(--aba-ivory-descriptor);
}
.site-nav { display: flex; align-items: center; gap: 44px; }
.site-nav-label {  /* VISION / APPROACH: shown, not interactive (Tamir decision, for now) */
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 9.5px;
  letter-spacing: .28em;
  font-weight: 500;
  color: var(--aba-ivory-nav);
  text-decoration: none;
}

.hero-footer {
  /* Body-level <footer> (contentinfo landmark) placed over the hero bottom: top = hero height − 20px − 44px
     (strip height = 44px link targets), same position as bottom: 20px inside the hero. */
  position: absolute;
  z-index: var(--aba-z-chrome);
  left: 5%; right: 5%;
  top: calc(max(560px, min(100vh, calc(100vw / 1.6)), var(--aba-hero-fit, 0px)) - 64px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.footer-world {
  margin: 0;
  font-size: 9.5px;
  letter-spacing: .26em;
  font-weight: 500;
  color: var(--aba-footer-world);
}
.footer-world i { font-style: normal; color: var(--aba-champagne-deep); margin: 0 .6em; }
.footer-links { display: flex; gap: 32px; }
.footer-links a {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 11.5px;
  letter-spacing: .08em;
  color: var(--aba-link);
  text-decoration: none;
}
.footer-links a:hover { color: var(--aba-link-hover); }

.approach {
  padding: 104px 6% 112px;
  text-align: center;
  background: radial-gradient(ellipse at 50% 0, rgba(164, 123, 52, .13), rgba(164, 123, 52, 0) 70%), var(--aba-ground-section);
  scroll-margin-top: 0;
}
.approach-mark { display: block; width: 64px; height: auto; margin: 0 auto 26px; opacity: .75; }
.approach-rule { width: 46px; height: 1px; background: var(--aba-champagne-deep); margin: 0 auto 30px; }
.approach-statement {
  margin: 0;
  font-size: 13px;
  line-height: 2.2;
  letter-spacing: .3em;
  font-weight: 500;
  color: var(--aba-champagne);
}
.approach-desc {
  margin: 24px auto 0;
  max-width: 620px;
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: .02em;
  font-weight: 400;
  color: var(--aba-ivory-body);
}

.site-footer { display: none; }

@media (max-width: 600px), (max-width: 1024px) and (orientation: portrait) {
  .site-header { padding: max(22px, env(safe-area-inset-top)) 20px 0; }
  .site-mark { width: 68px; }
  .site-descriptor { display: none; }
  .site-nav { gap: 24px; }
  .site-nav-label { font-size: 10px; letter-spacing: .24em; padding: 0 2px; }
  .hero-footer { display: none; }
  .approach { padding: 64px 28px 60px; }
  .approach-mark { width: 52px; margin-bottom: 22px; }
  .approach-statement { font-size: 11.5px; letter-spacing: .24em; }
  .approach-desc { font-size: 15px; }
  .site-footer {
    display: block;
    padding: 26px 24px max(30px, env(safe-area-inset-bottom));
    border-top: 1px solid rgba(169, 139, 86, .22);
    background: var(--aba-ground-section);
    text-align: center;
  }
  .site-footer .footer-world { font-size: 9.5px; letter-spacing: .22em; line-height: 1.9; }
  .site-footer .footer-world i { margin: 0 .5em; }
  .site-footer .footer-links { justify-content: center; gap: 34px; margin-top: 10px; }
  .site-footer .footer-links a { font-size: 13px; letter-spacing: .06em; }
}

/* Desktop footer band at the natural end of the continuous office, not at the old Hero edge. */
@media (min-width: 1025px), (min-width: 601px) and (orientation: landscape) {
  .hero-footer {
    --footer-hero-h: max(560px, min(100vh, calc(100vw / 1.6)), var(--aba-hero-fit, 0px));
    --footer-u: min(calc(100vw / 1600), calc(var(--footer-hero-h) / 1000));
    --footer-pw: max(calc(var(--footer-u) * 2245.65), 100vw, calc(var(--footer-hero-h) * 2.2440));
    top: calc(var(--aba-office-bottom, calc(var(--footer-hero-h) + var(--footer-pw) * 768 / 2226)) - 104px);
  }
  .hero-footer .footer-world {
    max-width: calc(50vw - 220px);
    transform: translateY(var(--aba-world-align, 0px));
  }
  .hero-footer .footer-links { transform: translateY(var(--aba-links-align, 0px)); }
}

/* Mobile footer is HTML over the same continuous office floor. */
@media (max-width: 600px), (max-width: 1024px) and (orientation: portrait) {
  body:has(.home-flow) .site-footer {
    position: absolute;
    z-index: var(--aba-z-chrome);
    top: calc(var(--aba-office-bottom, calc(550vw * 1760 / 2226)) - 102px);
    left: 0; right: 0;
    padding: 0 20px max(24px, env(safe-area-inset-bottom));
    border: 0;
    background: none;
  }
}
