/* Replacement theme for IACLP (Yahoo SiteBuilder "sovereign" theme).
   Original CSS lived on l.yimg.com (dead Yahoo CDN, not archived).
   Rebuilds a centered, organized layout from the surviving HTML structure. */

* { box-sizing: border-box; }

/* never let any image (logo, masthead banner, content) exceed its container */
img { max-width: 100% !important; height: auto !important; }
html, body { overflow-x: hidden; max-width: 100%; }

body.lo_custom {
  margin: 0;
  padding: 24px 12px;
  background: #e9edf2;
  color: #2b2b2b;
  font-family: "Helvetica Neue", Arial, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.6;
}

/* centered page card */
#body, #doc {
  max-width: 1000px !important;
  width: auto !important;
  margin: 0 auto !important;
  float: none !important;
  position: static !important;
}
#doc {
  background: #ffffff;
  box-shadow: 0 2px 18px rgba(0,0,0,.12);
  border-radius: 4px;
  overflow: hidden;
}

/* kill any leftover absolute positioning from inline Yahoo styles */
#hd, #bd, #ft, #wrapper, #navigation, #zWrap, #zA, #zB, #zC,
#hContent, #headerContent, #fContent, #footerContent {
  position: static !important;
  float: none !important;
  width: auto !important;
  left: auto !important; top: auto !important;
}

/* ---------- header ---------- */
#hd { background: #1f3a5f; color: #fff; padding: 22px 32px; }
#hd a { color: #cfe0f5; }
#headerContent { font-size: 26px; font-weight: 700; letter-spacing: .2px; }
#hMisc, #fMisc { font-size: 13px; line-height: 1.5; margin-top: 8px; }
#hMisc .adr, #hMisc .phoneNumbers, #hMisc .mailtoWrapper { color: #d7e3f3; }
.contactInfoContainer { display: block; }
.separator { padding: 0 2px; }

/* ---------- navigation ---------- */
#wrapper { background: transparent; }
#navigation { background: #142b47; }
ul#mainNav {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap;
}
ul#mainNav li.mainNav { margin: 0; }
ul#mainNav li.mainNav a,
ul#mainNav li.mainNav span,
ul#mainNav li.mainNav {
  display: block;
}
ul#mainNav li.mainNav a {
  padding: 13px 22px;
  color: #e7eef7;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  text-transform: capitalize;
  border-right: 1px solid rgba(255,255,255,.08);
}
ul#mainNav li.mainNav a:hover { background: #21456f; color: #fff; }
ul#mainNav li.mainNav.active > a:first-child { background: #3a6ea5; color: #fff; }

/* dropdown submenus (original relied on dead JS; make them hover-driven) */
ul#mainNav li.mainNav { position: relative; }
ul#mainNav a.toggle, ul#mainNav a.voidLink { display: none !important; }
ul#mainNav ul.subNav {
  display: none;
  position: absolute; top: 100%; left: 0;
  list-style: none; margin: 0; padding: 6px 0;
  background: #102135; min-width: 230px; z-index: 200;
  box-shadow: 0 8px 20px rgba(0,0,0,.35); border-radius: 0 0 4px 4px;
}
ul#mainNav li.mainNav:hover > ul.subNav { display: block; }
ul#mainNav ul.subNav li { display: block; }
ul#mainNav ul.subNav li a {
  display: block; padding: 9px 18px; border-right: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  font-weight: 500; white-space: nowrap;
}
ul#mainNav ul.subNav li a:hover { background: #21456f; }
ul#mainNav ul.subNav li.active-sub a { background: #3a6ea5; color: #fff; }

/* ---------- body / content zones ---------- */
#bd { padding: 28px 34px 10px; }
#pageName, #pageNameContent { font-size: 24px; font-weight: 700; color: #1f3a5f; margin: 0 0 14px; }

#zWrap { display: flex; flex-wrap: wrap; gap: 26px; align-items: flex-start; }
#zA, #zB, #zC { flex: 1 1 240px; min-width: 0; }
/* collapse empty zones (marked by the deploy pass) so content isn't cramped */
#zA:empty, #zB:empty, #zC:empty,
#zWrap > div[data-empty="1"] { display: none !important; flex: 0 0 0 !important; }
.modWrap { margin: 0 0 18px; }

/* ---- readability: neutralize legacy dark-theme colors ---- */
/* !important in a stylesheet overrides inline style="color:..." authored for the old dark theme */
#bd, #bd p, #bd li, #bd span, #bd font, #bd td, #bd th, #bd div, #bd strong, #bd em, #bd b {
  color: #2b2b2b !important;
}
#bd a, #bd a font, #bd a span, #bd a b { color: #2a6db0 !important; }
/* de-linked dead documents: render as plain text, not as a link */
#bd a[data-deadlink], #bd a[data-deadlink] * {
  color: #2b2b2b !important; text-decoration: none !important; cursor: default !important;
}
#bd a:hover, #bd a:hover * { color: #1f3a5f !important; }
#bd h1, #bd h1 *, #bd h2, #bd h2 *, #bd h3, #bd h3 *,
#pageName, #pageName *, #pageNameContent * { color: #1f3a5f !important; }
#bd font[size="3"], #bd font[size="4"], #bd font[size="5"] { font-size: 1em !important; }

/* ---------- typography & media ---------- */
#bd h1, #bd h2 { color: #1f3a5f; line-height: 1.25; }
#bd h1 { font-size: 24px; } #bd h2 { font-size: 20px; } #bd h3 { font-size: 17px; }
#bd a { color: #2a6db0; }
#bd a:hover { color: #1f3a5f; }
#bd img, #zB img, .modWrap img { max-width: 100%; height: auto; }
#bd p { margin: 0 0 14px; }
#bd ul, #bd ol { padding-left: 22px; }

table { max-width: 100%; border-collapse: collapse; }
table td, table th { padding: 6px 10px; vertical-align: top; }

/* ---------- footer ---------- */
#ft {
  background: #142b47; color: #c3d2e6;
  padding: 22px 34px; margin-top: 24px;
  font-size: 13px; text-align: center;
}
#ft a { color: #9ec1ea; }
#ft .contactInfoContainer { display: inline-block; }

@media (max-width: 760px) {
  body.lo_custom { padding: 10px 6px; }
  #zWrap { flex-direction: column; gap: 16px; }
  #zA, #zB, #zC { flex: 1 1 auto; width: 100%; }
  ul#mainNav { flex-direction: column; }
  ul#mainNav li.mainNav a { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); }
  /* submenu inline (not absolute) when nav is stacked */
  ul#mainNav ul.subNav { position: static; box-shadow: none; min-width: 0; background: #0d1b2c; }
  ul#mainNav li.mainNav:hover > ul.subNav { display: block; }
  #hd, #bd, #ft { padding-left: 16px; padding-right: 16px; }
  #headerContent { font-size: 19px; line-height: 1.3; word-break: break-word; }
  /* override the legacy inline 24pt title span so it fits narrow screens */
  #headerZoneElement span, #headerZoneElement strong { font-size: 18px !important; line-height: 1.3 !important; }
  #headerZoneElement img { width: 64px !important; }
  #hd { padding-top: 16px; padding-bottom: 16px; }
  #pageName, #pageNameContent { font-size: 20px; }
}
