/* ==========================================================================
   Ticker band + footer
   Clone of friendsseminary.org  .section--mirror-ticker  and  footer.footer
   Source of truth: recon/homepage-loaded-rules.css (line numbers "L…" below), live measurements at 1440×900 and
   390×844 in scratchpad/motion-clone/ticker-footer/live/*.json, and the colour samples of the live logo PNGs.
   Every value is the live one (px equivalents at 1440 in comments; 1rem = 16px, 1vw = 14.4px). The copy, links and
   logos are Nalanda Degree College's. Structure classes reuse the live names so the recon can be diffed against
   this file; the section also keeps the clone's .ticker-band / .footer hooks.
   Live breakpoints for this section: max-width 991px, 767px, 560px and min-width 1457px (there is no 992px query).
   Hover rules sit behind html.no-touch exactly like the live site (sections/ticker-footer.js adds the class).
   Live icon fonts (global-icons / social-icons) are Friends Seminary assets and are NOT copied: each glyph is an
   inline SVG drawn into the same em box (arrow 1.6em × 1em, pin / handset ≈1.07em × 1em, social 1em × 1em).
   ========================================================================== */

/* ----- Live reset context the section relies on (L16 Meyer reset, L23, L32) ----- */
.section--mirror-ticker ul, .footer ul { list-style: none; margin: 0; padding: 0; }
.section--mirror-ticker p, .footer p, .footer address { margin: 0; font-style: normal; }
.footer button { color: inherit; font-family: inherit; font-size: 100%; margin: 0; padding: 0; }
.section--mirror-ticker > .module--container,
.footer .module--footer-container { display: block; max-width: none; margin: 0; padding: 0; position: static; } /* live: unstyled wrappers */
/* live body context (L194 body font-size 1.25rem = 20px; L5 html/body line-height 1.15 → 23px struts): the clone's body is
   fluid 18.5–20px × 1.25, so both blocks restate the live values and every inherited line box (ticker statement,
   social row, address block) resolves like the live one */
.section--mirror-ticker, .footer { font-size: 1.25rem; line-height: 1.15; }

/* ----- Icons (L83 / L96): the live glyphs live in Friends Seminary's private icon fonts, so each one is drawn
   here as a currentColor mask on ::before, in the em box the live glyph measured. Markup stays the live's empty
   <span class="global-icons global-…-icon"> / <span class="social-icon social-…-icon">. ----- */
.footer .global-icons, .footer .social-icon { display: block; font-style: normal; font-weight: 400; line-height: 1; text-transform: none; }
.footer .global-icons::before, .footer .social-icon::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
/* live U+E90E: long thin arrow, 33.9×22 at 22px → 1.54em × 1em (buttons: 13.42px; back-to-top: 22px, rotated -90°) */
.footer .global-icons.global-right-arrow-icon::before {
  width: 1.54em;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 31 20'%3E%3Cpath d='M1 10h28.5M19.5 1l10 9-10 9' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 31 20'%3E%3Cpath d='M1 10h28.5M19.5 1l10 9-10 9' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
/* live U+E908 (pin) / U+E907 (handset): 19.3×18 at 18px → 1.07em × 1em */
.footer .global-icons.global-location-icon::before {
  width: 1.07em;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1a6.5 6.5 0 0 0-6.5 6.5C3.5 12.4 10 19 10 19s6.5-6.6 6.5-11.5A6.5 6.5 0 0 0 10 1zm0 9.2a2.7 2.7 0 1 1 0-5.4 2.7 2.7 0 0 1 0 5.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1a6.5 6.5 0 0 0-6.5 6.5C3.5 12.4 10 19 10 19s6.5-6.6 6.5-11.5A6.5 6.5 0 0 0 10 1zm0 9.2a2.7 2.7 0 1 1 0-5.4 2.7 2.7 0 0 1 0 5.4z'/%3E%3C/svg%3E");
}
.footer .global-icons.global-phone-call-icon::before {
  width: 1.07em;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.4 1.6c.6-.5 1.4-.4 1.9.2l2.1 2.8c.4.6.4 1.3-.1 1.8L7 7.7c.9 2 2.6 3.7 4.6 4.6l1.3-1.3c.5-.5 1.3-.5 1.8-.1l2.8 2.1c.6.5.7 1.3.2 1.9l-1.3 1.6c-.7.9-1.9 1.3-3 .9C8.2 15.9 3.4 11.1 1.9 5.9c-.3-1.1 0-2.3.9-3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4.4 1.6c.6-.5 1.4-.4 1.9.2l2.1 2.8c.4.6.4 1.3-.1 1.8L7 7.7c.9 2 2.6 3.7 4.6 4.6l1.3-1.3c.5-.5 1.3-.5 1.8-.1l2.8 2.1c.6.5.7 1.3.2 1.9l-1.3 1.6c-.7.9-1.9 1.3-3 .9C8.2 15.9 3.4 11.1 1.9 5.9c-.3-1.1 0-2.3.9-3z'/%3E%3C/svg%3E");
}
/* live social glyphs U+E90A / U+E908 / U+E903 / U+E909: 21.2×21 at 21.23px → 1em square (YouTube replaces Vimeo) */
.footer .social-icon.social-facebook-icon::before {
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.6 23v-9.6h3.2l.5-3.8h-3.7V7.2c0-1.1.3-1.8 1.9-1.8h2V2.1c-.3 0-1.5-.2-2.9-.2-2.9 0-4.9 1.8-4.9 5v2.7H6.5v3.8h3.2V23h3.9z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.6 23v-9.6h3.2l.5-3.8h-3.7V7.2c0-1.1.3-1.8 1.9-1.8h2V2.1c-.3 0-1.5-.2-2.9-.2-2.9 0-4.9 1.8-4.9 5v2.7H6.5v3.8h3.2V23h3.9z'/%3E%3C/svg%3E");
}
.footer .social-icon.social-instagram-icon::before {
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5.5'/%3E%3Ccircle cx='12' cy='12' r='4.4'/%3E%3Ccircle cx='17.6' cy='6.4' r='0.7' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5.5'/%3E%3Ccircle cx='12' cy='12' r='4.4'/%3E%3Ccircle cx='17.6' cy='6.4' r='0.7' fill='%23000'/%3E%3C/svg%3E");
}
.footer .social-icon.social-youtube-icon::before {
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2c-.3-1-1-1.8-2-2.1C19.2 4.6 12 4.6 12 4.6s-7.2 0-9 .5c-1 .3-1.7 1.1-2 2.1C.5 9 .5 12 .5 12s0 3 .5 4.8c.3 1 1 1.8 2 2.1 1.8.5 9 .5 9 .5s7.2 0 9-.5c1-.3 1.7-1.1 2-2.1.5-1.8.5-4.8.5-4.8s0-3-.5-4.8zM9.7 15.2V8.8l6 3.2-6 3.2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2c-.3-1-1-1.8-2-2.1C19.2 4.6 12 4.6 12 4.6s-7.2 0-9 .5c-1 .3-1.7 1.1-2 2.1C.5 9 .5 12 .5 12s0 3 .5 4.8c.3 1 1 1.8 2 2.1 1.8.5 9 .5 9 .5s7.2 0 9-.5c1-.3 1.7-1.1 2-2.1.5-1.8.5-4.8.5-4.8s0-3-.5-4.8zM9.7 15.2V8.8l6 3.2-6 3.2z'/%3E%3C/svg%3E");
}
.footer .social-icon.social-linkedin-icon::before {
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3.4a2.4 2.4 0 1 1 0 4.8 2.4 2.4 0 0 1 0-4.8zM2.9 9.4h4.2V21H2.9zM9.6 9.4h4v1.6h.1c.6-1.1 1.9-2 4-2 4.2 0 5 2.8 5 6.4V21h-4.2v-5c0-1.2 0-2.7-1.7-2.7s-1.9 1.3-1.9 2.6V21H9.6z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3.4a2.4 2.4 0 1 1 0 4.8 2.4 2.4 0 0 1 0-4.8zM2.9 9.4h4.2V21H2.9zM9.6 9.4h4v1.6h.1c.6-1.1 1.9-2 4-2 4.2 0 5 2.8 5 6.4V21h-4.2v-5c0-1.2 0-2.7-1.7-2.7s-1.9 1.3-1.9 2.6V21H9.6z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Mirror ticker band  (live .section--mirror-ticker: 1440×456.9 at 1440; 390×330 at 390)
   ========================================================================== */
.section--mirror-ticker {
  background-color: #a2968a;               /* L857: rgb(162, 150, 138) */
  padding: 3.4375rem 1.875rem;             /* L857: 55px 30px */
  position: relative;
  z-index: 15;                             /* L857: scrolls over the teachers section's fixed background */
  color: #fff;
  /* live: the strip is clipped by html/body { overflow: hidden } (L6/L11); the clone's body is not, so clip here */
  overflow: hidden;
}
@media (max-width: 991px) {
  .section--mirror-ticker { padding: 2.5rem 1.875rem; }   /* L859: 40px 30px */
}

/* L46–L54: shared with the affiliation marquee. JS sets --scroll-width (half the strip) and the duration inline. */
@keyframes live-ticker-scroll {
  0%   { transform: translateX(0px); }
  100% { transform: translateX(calc(var(--scroll-width) * -1)); }
}

/* L861: the row is a max-content flex strip on a linear infinite keyframe; 20s is only the CSS fallback,
   sections/ticker-footer.js sets animation-duration (= half width / 60 px per second) and -direction inline. */
.section--mirror-ticker .module--container .first-ticker .ticker__group,
.section--mirror-ticker .module--container .second-ticker .ticker__group {
  animation-name: live-ticker-scroll;
  animation-duration: 20s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  align-items: normal;                     /* defensive resets against the clone's old .ticker__group rule */
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* L862: img height clamp = 80px…140px (128.46px at 1440, 80px at 390); 50px side margins; own aspect ratio */
.section--mirror-ticker .module--container .first-ticker .ticker__group img,
.section--mirror-ticker .module--container .second-ticker .ticker__group img {
  flex-shrink: 0;
  height: clamp(5rem, 1.53846rem + 7.21154vw, 8.75rem);
  margin: 0 3.125rem;
  object-fit: contain;
  width: auto;
  /* NDC adaptation: the live PNGs are transparent marks pre-tinted flat taupe (sampled rgb(138,122,109) on the
     rgb(162,150,138) band, 87–349px wide at 128px tall). NDC's recruiter logos are full-colour 190×51 marks on an
     opaque white background, so the inline SVG filter #ndc-logo-taupe (defined in the section's markup) turns
     each pixel's darkness into alpha and paints that exact taupe — no blend modes, so it survives the animated
     strip. The box is capped at 300px (18.75rem) so the row keeps the live density (object-fit: contain
     letterboxes the mark inside the 128px-tall box). */
  filter: url(#ndc-logo-taupe);
  mix-blend-mode: normal;
  opacity: 1;
  max-width: clamp(11.25rem, 6.477rem + 13.636vw, 18.75rem);   /* 180px at 560 … 300px at 1440 */
}
@media (max-width: 991px) {
  .section--mirror-ticker .module--container .first-ticker .ticker__group img,
  .section--mirror-ticker .module--container .second-ticker .ticker__group img { margin: 0 1.875rem; }   /* L864: 0 30px */
}
.section--mirror-ticker .module--container .first-ticker { margin-bottom: 5.625rem; }   /* L866: 90px between the rows */
.section--mirror-ticker .module--container .first-ticker,
.section--mirror-ticker .module--container .second-ticker { display: block; }

/* L867: the statement is centred on the SECTION (the wrapper has no position) — white text, no background */
.section--mirror-ticker .module--container .ticker_inner-text {
  left: 50%;
  max-width: 42.8125rem;                   /* 685px */
  padding: 0 1.875rem;                     /* 0 30px */
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  background: none;
  /* line-height is inherited: 20px × 1.15 = 23px (live L867 sets none; the section rule above supplies the body context) */
}
@media (min-width: 1457px) {
  .section--mirror-ticker .module--container .ticker_inner-text { max-width: 45rem; }   /* L869: 720px */
}
/* L871: EB Garamond 700, 32px…53px (48.96px at 1440, 53.37px line) */
.section--mirror-ticker .module--container .ticker_inner-text--title {
  color: #fff;
  font-family: var(--font-display, "EB Garamond", serif);
  font-size: clamp(2rem, 0.788462rem + 2.52404vw, 3.3125rem);
  font-weight: 700;
  line-height: 1.09;
  margin-bottom: 1.875rem;                 /* 30px */
  letter-spacing: normal;
}
@media (max-width: 991px) {
  .section--mirror-ticker .module--container .ticker_inner-text--title { margin-bottom: 1.25rem; }   /* L873: 20px */
}
/* L875: brandon 700 uppercase, 15px…17px (16.62px at 1440), tracking 1.5px…1.7px */
.section--mirror-ticker .module--container .ticker_inner-text--subtitle {
  color: #fff;
  display: inline;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.9375rem, 0.822115rem + 0.240385vw, 1.0625rem);
  font-weight: 700;
  letter-spacing: clamp(0.09375rem, 0.0822115rem + 0.0240385vw, 0.10625rem);
  line-height: 1.11;
  text-transform: uppercase;
}

/* ==========================================================================
   Footer  (live footer.footer: 1440×1214.5 at 1440 — top 840 + logos 149 + statement 140 + bar 86)
   ========================================================================== */
.footer { position: relative; z-index: 16; color: #545454; }   /* L1407; body colour context L193 */

/* ----- Red block (L1408: rgb(191, 29, 36); 105px 65px 65px; measured h=840) ----- */
.footer .module--footer-container .module--footer-top {
  background-color: #bf1d24;
  padding: 6.5625rem 4.0625rem 4.0625rem;
  text-align: center;
}
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-top { padding: 3.125rem 1.875rem 2.8125rem; }   /* L1410: 50px 30px 45px */
}
/* L1412: kicker — white 700 uppercase, 17px…29px (26.69px at 1440), tracking 1.7px…2.9px, lh 1.4, mb 30px */
.footer .module--footer-container .module--footer-top .item-title {
  color: #fff;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(1.0625rem, 0.370192rem + 1.44231vw, 1.8125rem);
  font-weight: 700;
  letter-spacing: clamp(0.10625rem, 0.0370192rem + 0.144231vw, 0.18125rem);
  line-height: 1.4;
  margin-bottom: 1.875rem;
  text-transform: uppercase;
}
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-top .item-title { margin-bottom: 0.9375rem; }   /* L1414: 15px */
}
/* L1416: statement — EB Garamond 700 white, 46px…109px (96.88px at 1440), line-height 0.77 (74.6px);
   the live letter-spacing clamp() has min > max so it always resolves to -0.08625rem = -1.38px (matches computed) */
.footer .module--footer-container .module--footer-top .item-subtitle {
  color: #fff;
  font-family: var(--font-display, "EB Garamond", serif);
  font-size: clamp(2.875rem, -0.759615rem + 7.57212vw, 6.8125rem);
  font-weight: 700;
  letter-spacing: clamp(-0.08625rem, 0.0227885rem - 0.227163vw, -0.204375rem);
  line-height: 0.77;
}
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-top .item-subtitle { line-height: 0.86; }   /* L1418 */
}
.footer .module--footer-container .module--footer-top .item-subtitle span { display: block; }   /* L1420 */

/* ----- CTA row (L1421: flex centre; mt 70px; mb 75px) ----- */
.footer .module--footer-container .module--footer-top .items-cta--footer {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-bottom: 4.6875rem;
  margin-top: 4.375rem;
}
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-cta--footer { flex-flow: column wrap; margin-bottom: 2.625rem; margin-top: 2.8125rem; }   /* L1423: 42px / 45px */
}
/* L1425 (= global .dark-blue--button L2044): white 700 uppercase, 14px…20px (18.85px at 1440), tracking 1.4px…2px,
   lh 1.45, min-width 195px, padding 15px 40px, mr 25px → 57.3px tall buttons */
.footer .module--footer-container .module--footer-top .items-cta--footer a {
  align-items: center;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.875rem, 0.528846rem + 0.721154vw, 1.25rem);
  font-weight: 700;
  justify-content: center;
  letter-spacing: clamp(0.0875rem, 0.0528846rem + 0.0721154vw, 0.125rem);
  line-height: 1.45;
  margin-right: 1.5625rem;
  min-width: 12.1875rem;
  padding: 0.9375rem 2.5rem;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: 0.3s ease-in-out;
  background: none;
  border: 0;
  border-radius: 0;
  gap: 0;
}
.footer .module--footer-container .module--footer-top .items-cta--footer a:last-child { margin-right: 0; }   /* L1426 */
/* L1427: the border is a ::before at 22% opacity — 2px white, radius 7px */
.footer .module--footer-container .module--footer-top .items-cta--footer a::before {
  border: 0.125rem solid #fff;
  border-radius: 0.4375rem;
  content: "";
  height: 100%;
  left: 0;
  opacity: 0.22;
  position: absolute;
  top: 0;
  transition: 0.3s ease-in-out;
  width: 100%;
}
.footer .module--footer-container .module--footer-top .items-cta--footer a > span { color: inherit; transform: none; }
/* L1428: peach arrow rgb(255, 181, 106), 11px…14px (13.42px at 1440), padding-left 10px…14px (13.23px) */
.footer .module--footer-container .module--footer-top .items-cta--footer a .global-icons {
  color: #ffb56a;
  display: block;
  font-size: clamp(0.6875rem, 0.514423rem + 0.360577vw, 0.875rem);
  font-weight: 400;
  padding-left: clamp(0.625rem, 0.394231rem + 0.480769vw, 0.875rem);
}
/* live: the icon-font glyph measures 22.55px wide at the 13.42px button size (1.68em; the 22px back-to-top glyph is 1.54em) */
.footer .module--footer-container .module--footer-top .items-cta--footer a .global-icons::before { width: 1.68em; }
html.no-touch .footer .module--footer-container .module--footer-top .items-cta--footer a:hover { color: #ffb56a; background: none; border-color: transparent; }   /* L1429 */
html.no-touch .footer .module--footer-container .module--footer-top .items-cta--footer a:hover::before { transform: scale(1.02); }   /* L1430 */
html.no-touch .footer .module--footer-container .module--footer-top .items-cta--footer a:hover > span { transform: none; }
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-cta--footer a { margin: 0 0 0.9375rem; padding: 0.9375rem 1.875rem; }   /* L1432: 0 0 15px; 15px 30px */
  .footer .module--footer-container .module--footer-top .items-cta--footer a:last-child { margin-bottom: 0; }   /* L1433 */
}

/* ----- Links + address (L1435: flex, align centre, nowrap, gap 75px, max-width 890px, mb 95px) ----- */
.footer .module--footer-container .module--footer-top .items-links--list {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: 4.6875rem;
  justify-content: unset;
  margin: 0 auto 5.9375rem;
  max-width: 55.625rem;
}
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-links--list { flex-wrap: wrap; gap: 0; margin-bottom: 3.4375rem; }   /* L1437: mb 55px */
  .footer .module--footer-container .module--footer-top .items-links--list .key-links_items { flex: 0 0 100%; max-width: 100%; }   /* L1438 */
}
/* L1440: two max-content columns, gap 28px 75px */
.footer .module--footer-container .module--footer-top .items-links--list .key-links_items ul {
  display: grid;
  gap: 1.75rem 4.6875rem;
  grid-template-columns: max-content max-content;
  text-align: left;
}
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-links--list .key-links_items ul { display: block; margin-bottom: 1.875rem; text-align: center; }   /* L1442 */
  .footer .module--footer-container .module--footer-top .items-links--list .key-links_items ul li { margin-bottom: 1.25rem; }   /* L1443: 20px */
}
/* L1445: white 700 uppercase 14px…16px (15.62px at 1440), tracking 1.28px, lh 1.4 */
.footer .module--footer-container .module--footer-top .items-links--list .key-links_items ul li a {
  color: #fff;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.875rem, 0.759615rem + 0.240385vw, 1rem);
  font-weight: 700;
  letter-spacing: 0.08rem;
  line-height: 1.4;
  text-decoration: none;
  text-transform: uppercase;
  transition: 0.3s ease-in-out;
}
html.no-touch .footer .module--footer-container .module--footer-top .items-links--list .key-links_items ul li a:hover { color: #ffb56c; }   /* L1446: rgb(255, 181, 108) */
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner { text-align: left; }   /* L1447 */
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-links--list .info-address--inner { flex: 0 0 100%; max-width: 100%; text-align: center; }   /* L1449 */
}
/* L1451: address — white 500, 16px…20px (19.23px at 1440), lh 1.45, mb 16px, soft shadow */
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .address {
  color: #fff;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(1rem, 0.769231rem + 0.480769vw, 1.25rem);
  font-weight: 500;
  line-height: 1.45;
  margin-bottom: 1rem;
  text-shadow: rgba(0, 0, 0, 0.3) 0 0 30px;
}
/* L1455: contact links — same type as the key links, icon first */
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a {
  align-items: center;
  color: #fff;
  display: flex;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.875rem, 0.759615rem + 0.240385vw, 1rem);
  font-weight: 700;
  justify-content: flex-start;
  letter-spacing: 0.08rem;
  line-height: 1.4;
  text-decoration: none;
  text-transform: uppercase;
  transition: 0.3s ease-in-out;
}
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a:first-child { margin-bottom: 0.9375rem; }   /* L1456: 15px */
@media (max-width: 767px) {
  .footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a { justify-content: center; }   /* L1459 */
}
/* L1461: peach icons 18px, mt -2px, pr 7px; L1457: the pin sits 6px higher */
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a .global-icons {
  color: #ffb56c;
  display: block;
  font-size: 1.125rem;
  margin-top: -0.125rem;
  padding-right: 0.4375rem;
}
.footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a:first-child .global-icons { display: block; margin-top: -0.375rem; }
html.no-touch .footer .module--footer-container .module--footer-top .items-links--list .info-address--inner .menu-contact a:hover { color: #ffb56c; }   /* L1462 */

/* ----- Social row (L1463–L1467: centred flex; li pr 25px; white 18px…22px (21.23px at 1440); measured h=25) ----- */
.footer .module--footer-container .module--footer-top .module--social-items ul { align-items: center; display: flex; justify-content: center; }
.footer .module--footer-container .module--footer-top .module--social-items ul li { padding-right: 1.5625rem; }
.footer .module--footer-container .module--footer-top .module--social-items ul li:last-child { padding-right: 0; }
.footer .module--footer-container .module--footer-top .module--social-items ul li a {
  color: #fff;
  font-size: clamp(1.125rem, 0.894231rem + 0.480769vw, 1.375rem);   /* live L1466: inline <a>, no display set */
  text-decoration: none;
  transition: 0.3s ease-in-out;
}
/* live L83: the glyph is inline text in the social-icons font at line-height 1 — a 1em box whose baseline sits
   0.0625em above its bottom (IcoMoon descent 64/1024). Same box here, so the row is 23px at 390 and 25.3px at
   1440 (live 23 / 25.41) instead of 26.2px for a block mask standing on the baseline. */
.footer .module--footer-container .module--footer-top .module--social-items ul li a .social-icon { display: inline-block; vertical-align: -0.0625em; }
html.no-touch .footer .module--footer-container .module--footer-top .module--social-items ul li a:hover { color: #ffb56c; }   /* L1467 */

/* ----- Affiliation / recruiter logos (L1468: rgb(214, 38, 45); 40px 0; measured h=149, inner row 69) ----- */
.footer .module--footer-container .module--affiliation-logos { background-color: #d6262d; padding: 2.5rem 0; }
@media (max-width: 991px) {
  .footer .module--footer-container .module--affiliation-logos { padding: 1.875rem 0; }   /* L1470: 30px 0 */
}
@media (max-width: 767px) {
  .footer .module--footer-container .module--affiliation-logos { overflow: hidden; }   /* L1473 */
}
.footer .module--footer-container .module--affiliation-logos .module--container {
  align-items: center;
  display: flex;
  justify-content: center;
  max-width: none;
  margin: 0;
  padding: 0;
  /* live: the row is as tall as its tallest 140×140 PNG, i.e. 0.6 × the logo width clamp (L1485) — 60px at 390,
     60.5 at 800, 69.7 at 1440, 72 at ≥ 1600 (live measured 60.45 / 60.9 / 69.41 / 71.5). NDC's 190×51 marks are
     shorter, so the same height is pinned here to keep the band 120.5–151.5px like the live one */
  min-height: calc(0.6 * clamp(6.25rem, 5.09615rem + 2.40385vw, 7.5rem));
}
@media (max-width: 767px) {
  .footer .module--footer-container .module--affiliation-logos .module--container { display: flex; width: max-content; }   /* L1477 */
  /* L1478: becomes a leftwards marquee; JS sets --scroll-width and the duration (half width / 50 px per second) */
  .footer .module--footer-container .module--affiliation-logos .module--container.is-ticker-active { animation: live-ticker-scroll linear 0s infinite normal none running; }
}
@media (max-width: 560px) {
  .footer .module--footer-container .module--affiliation-logos .module--container { justify-content: flex-start; overflow-x: auto; }   /* L1481 */
}
.footer .module--footer-container .module--affiliation-logos .module--container::-webkit-scrollbar { display: none; }   /* L1483 */
/* L1484: each logo link 31px side margins at 80% opacity → 100% on hover */
.footer .module--footer-container .module--affiliation-logos .module--container a {
  display: block;
  flex-shrink: 0;
  margin: 0 1.9375rem;
  opacity: 0.8;
  transition: 0.3s ease-in-out;
}
/* L1485: width 100px…120px (116.15px at 1440), height from the image's own aspect */
.footer .module--footer-container .module--affiliation-logos .module--container a img {
  height: auto;
  object-fit: cover;
  width: clamp(6.25rem, 5.09615rem + 2.40385vw, 7.5rem);
  max-width: none;
  /* NDC adaptation: the live PNGs are white marks on transparency; NDC's are full-colour on opaque white, so the
     inline SVG filter #ndc-logo-white (defined in the affiliation block's markup) knocks the white out and paints
     the mark white — the live 0.8 → 1 opacity on the <a> then works unchanged */
  filter: url(#ndc-logo-white);
  mix-blend-mode: normal;
}
.footer .module--footer-container .module--affiliation-logos .module--container a:first-child { max-width: 8.125rem; }   /* L1486: 130px */
html.no-touch .footer .module--footer-container .module--affiliation-logos .module--container a:hover { opacity: 1; }   /* L1487 */
/* the two knock-out filters are inline <svg> defs in the markup; keep them out of layout */
.section--mirror-ticker .ndc-logo-filters, .footer .ndc-logo-filters { position: absolute; width: 0; height: 0; overflow: hidden; }
@media (max-width: 991px) {
  .footer .module--footer-container .module--affiliation-logos .module--container a { margin: 0 0.9375rem; }   /* L1489: 0 15px */
  .footer .module--footer-container .module--affiliation-logos .module--container a:last-child { margin-right: 1.25rem; }   /* L1490: 20px */
}

/* ----- Statement band (L1492: rgb(244, 243, 236); 30px; 930px column; #545454 500 15px…17px lh 1.2; h=140) ----- */
.footer .module--footer-container .module--statement { background-color: #f4f3ec; padding: 1.875rem; }
@media (max-width: 991px) {
  .footer .module--footer-container .module--statement { padding: 1.875rem 1.25rem; }   /* L1494: 30px 20px */
}
.footer .module--footer-container .module--statement .statement-item { margin: 0 auto; max-width: 58.125rem; text-align: center; }
.footer .module--footer-container .module--statement .statement-item p {
  color: #545454;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.9375rem, 0.822115rem + 0.240385vw, 1.0625rem);
  font-weight: 500;
  line-height: 1.2;
}

/* ----- Bottom bar (L1498: rgb(240, 239, 231); 30px 40px; h=86) ----- */
.footer .module--footer-container .module--footer-bottom { background-color: #f0efe7; padding: 1.875rem 2.5rem; position: relative; }
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-bottom { padding: 1.375rem 2.5rem; text-align: center; }   /* L1500: 22px 40px */
}
.footer .module--footer-container .module--footer-bottom .content--bottom-links { align-items: center; display: flex; justify-content: space-between; }   /* L1502 */
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-bottom .content--bottom-links { flex-direction: column; justify-content: center; }   /* L1504 */
  .footer .module--footer-container .module--footer-bottom .content--bottom-links ul { margin-bottom: 1.25rem; }   /* L1505: 20px */
}
.footer .module--footer-container .module--footer-bottom .content--bottom-links ul li { display: inline-block; position: relative; }   /* L1507 */
/* L1508: #545454 700 uppercase 12px…13px (12.81px at 1440), tracking 0.96px…1.04px, lh 1 */
.footer .module--footer-container .module--footer-bottom .content--bottom-links ul li a {
  color: #545454;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.75rem, 0.692308rem + 0.120192vw, 0.8125rem);
  font-weight: 700;
  letter-spacing: clamp(0.06rem, 0.0553846rem + 0.00961538vw, 0.065rem);
  line-height: 1;
  text-decoration: none;
  text-shadow: rgba(0, 0, 0, 0.3) 0 0 30px;
  text-transform: uppercase;
  transition: 0.3s ease-in-out;
}
html.no-touch .footer .module--footer-container .module--footer-bottom .content--bottom-links ul li a:hover { color: #d6262d; }   /* L1509 */
/* L1510: the "|" divider after the first link — light 16px…18px, 10px each side */
.footer .module--footer-container .module--footer-bottom .content--bottom-links ul li:first-child::after {
  color: #545454;
  content: "|";
  font-size: clamp(1rem, 0.884615rem + 0.240385vw, 1.125rem);
  font-weight: 300;
  line-height: 1.4;
  padding: 0 0.625rem;
}
/* L1511: credit line — #545454 500 uppercase 12.81px, links 700 */
.footer .module--footer-container .module--footer-bottom .content--bottom-links .powered-by {
  color: #545454;
  font-family: var(--font-ui, "brandon-grotesque", sans-serif);
  font-size: clamp(0.75rem, 0.692308rem + 0.120192vw, 0.8125rem);
  font-weight: 500;
  letter-spacing: clamp(0.06rem, 0.0553846rem + 0.00961538vw, 0.065rem);
  line-height: 1.4;
  text-transform: uppercase;
}
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-bottom .content--bottom-links .powered-by { margin-bottom: 1.875rem; max-width: 15.625rem; }   /* L1513: 30px; 250px */
}
.footer .module--footer-container .module--footer-bottom .content--bottom-links .powered-by a { color: #545454; font-weight: 700; text-decoration: none; transition: 0.3s ease-in-out; }   /* L1515 */
html.no-touch .footer .module--footer-container .module--footer-bottom .content--bottom-links .powered-by a:hover { color: #d6262d; }   /* L1516 */
/* L1517: back-to-top — dead centre of the bar, rgb(191, 29, 36) 22px */
.footer .module--footer-container .module--footer-bottom .back-to-top {
  background-color: transparent;
  border: 0;
  color: #bf1d24;
  cursor: pointer;
  font-size: 1.375rem;
  left: 50%;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: 0.3s ease-in-out;
}
@media (max-width: 991px) {
  .footer .module--footer-container .module--footer-bottom .back-to-top { position: static; transform: none; }   /* L1519 */
}
.footer .module--footer-container .module--footer-bottom .back-to-top .global-icons { display: block; transform: rotate(-90deg); }   /* L1521: the right arrow turned to point up */
html.no-touch .footer .module--footer-container .module--footer-bottom .back-to-top:hover { color: #d6262d; }   /* L1522 */

/* ----- Motion safety, opt-in only (<html class="respect-reduced-motion">, read by ticker-footer.js too; the live site has no
   such rule, so by default the marquees always run): keep the layout, stop the marquees ----- */
@media (prefers-reduced-motion: reduce) {
  html.respect-reduced-motion .section--mirror-ticker .module--container .first-ticker .ticker__group,
  html.respect-reduced-motion .section--mirror-ticker .module--container .second-ticker .ticker__group,
  html.respect-reduced-motion .footer .module--footer-container .module--affiliation-logos .module--container.is-ticker-active { animation: none; }
}
