/* Lonestar Resuscitation — section styles. Numbers cite README.md (Design 3A). */

:root {
  --ls-navy: #16344E; --ls-orange: #E4762B; --ls-blue: #1E5A8A;
  --ls-navy-deep: #12293D; --ls-navy-tile: #0F2436; --ls-cream: #F7EFE3;
  --ls-rule: #EAE1D2; --ls-text: #3C3A37; --ls-text-2: #5D554D;
  --ls-text-muted: #8B8177; --ls-text-faint: #B9AB98; --ls-placeholder: #E6DCCD;
  --ls-pad: 48px;          /* §5.3 horizontal page padding */
  --ls-section: 84px;      /* §5.3 section vertical padding */
}

/* §5.4 corner radius is 0 everywhere, and there are no shadows on the page. */
.ls-page :where(img, .wp-block-button__link, .ls-card, .ls-tag) { border-radius: 0; }

body { font-family: Barlow, system-ui, sans-serif; color: var(--ls-text); }

.ls-section { padding: var(--ls-section) var(--ls-pad); }
.ls-inner   { max-width: 1440px; margin-inline: auto; }

/* ---- shared type ------------------------------------------------------- */
.ls-eyebrow {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-weight: 700; font-size: 18px; letter-spacing: 3.2px;
  color: var(--ls-orange); text-transform: uppercase; margin: 0;
}
.ls-h2 { font-family: Anton, Impact, sans-serif; font-size: 52px; line-height: 1; margin: 12px 0 0; text-transform: uppercase; }
.ls-h2--med { font-size: 44px; line-height: 1.02; }
.ls-lead { font-size: 21px; line-height: 1.5; }
.ls-rule-sm { width: 44px; height: 3px; background: var(--ls-orange); }
.ls-rule-lg { width: 60px; height: 4px; background: var(--ls-orange); margin-top: 22px; }

/* ---- buttons (§5.5) ---------------------------------------------------- */
.ls-btn {
  display: inline-block; font-family: Anton, Impact, sans-serif;
  letter-spacing: 1.2px; text-transform: uppercase; text-decoration: none;
  border: 0; cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.ls-btn--lg { font-size: 22px; padding: 20px 34px; }
.ls-btn--md { font-size: 19px; padding: 16px 28px; }
.ls-btn--sm { font-size: 16px; padding: 12px 22px; }
.ls-btn--primary { background: var(--ls-orange); color: var(--ls-navy); }
.ls-btn--primary:hover { background: #CF6620; color: var(--ls-navy); }
.ls-btn--primary:active { background: #B8591B; }
.ls-btn--ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.4); padding: 18px 32px; }
.ls-btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,0.08); color: #fff; }
.ls-btn--ghost.ls-btn--md { padding: 14px 26px; border-width: 2px; }
.ls-btn--outline { background: transparent; color: var(--ls-navy); border: 2px solid var(--ls-navy); padding: 14px 0; width: 100%; text-align: center; }
.ls-btn--outline:hover { background: var(--ls-navy); color: #fff; }
.ls-btn--solid { background: var(--ls-navy); color: #fff; padding: 20px 36px; }
.ls-btn--solid:hover { background: var(--ls-blue); color: #fff; }
.ls-btn--solid.ls-btn--full { width: 100%; padding: 14px 0; text-align: center; }
.ls-link {
  font-family: Anton, Impact, sans-serif; font-size: 18px; letter-spacing: 1.2px;
  color: var(--ls-navy); text-decoration: none; text-transform: uppercase;
  border-bottom: 3px solid var(--ls-orange); padding-bottom: 4px; align-self: flex-start;
}
.ls-link:hover { color: var(--ls-orange); }
/* §5.5 — never fall back to the browser default focus ring. */
.ls-page :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ls-orange); outline-offset: 3px;
}

/* ---- §6.1 header ------------------------------------------------------- */
.ls-header {
  position: sticky; top: 0; z-index: 100; background: var(--ls-navy);
  display: flex; align-items: center; justify-content: space-between;
  gap: 40px; padding: 18px var(--ls-pad);
  transition: padding 150ms ease, box-shadow 150ms ease;
}
.ls-header.is-stuck { padding-block: 12px; box-shadow: 0 2px 16px rgba(0,0,0,0.25); }
.ls-header__logo img { height: 56px; width: auto; display: block; }
.ls-nav { display: flex; align-items: center; gap: 34px; }
.ls-nav__links { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.ls-nav__links a {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600;
  font-size: 18px; letter-spacing: 1.4px; text-transform: uppercase;
  color: rgba(255,255,255,0.86); text-decoration: none;
  border-bottom: 2px solid transparent; padding-bottom: 2px;
}
.ls-nav__links a:hover { color: #fff; border-bottom-color: var(--ls-orange); }
.ls-nav__toggle { display: none; background: none; border: 0; color: #fff; cursor: pointer; padding: 8px; }

/* ---- §6.2 hero --------------------------------------------------------- */
.ls-hero { background: var(--ls-navy); display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr); }
.ls-hero__text { padding: 76px 56px 76px var(--ls-pad); display: flex; flex-direction: column; gap: 30px; }
.ls-hero__date { display: flex; align-items: center; gap: 12px; }
.ls-hero__date span {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700;
  font-size: 19px; letter-spacing: 3.4px; color: var(--ls-orange); text-transform: uppercase;
}
.ls-hero h1 { font-family: Anton, Impact, sans-serif; font-size: 78px; line-height: 0.94; letter-spacing: 0.5px; color: #fff; margin: 0; text-transform: uppercase; }
.ls-hero__sub { font-family: Anton, Impact, sans-serif; font-size: 30px; line-height: 1; letter-spacing: 2px; color: var(--ls-orange); margin: 18px 0 0; text-transform: uppercase; }
.ls-hero__lead { font-size: 21px; line-height: 1.5; color: rgba(255,255,255,0.82); max-width: 520px; margin: 0; }
.ls-hero__cta { display: flex; gap: 14px; align-items: center; margin-top: 4px; flex-wrap: wrap; }
.ls-hero__meta {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600;
  font-size: 17px; letter-spacing: 2px; color: rgba(255,255,255,0.55);
  text-transform: uppercase; margin: 0;
}
.ls-hero__media { position: relative; min-width: 0; min-height: 620px; }
.ls-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 80% center; display: block; }
.ls-hero__media::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, #16344E 0%, rgba(22,52,78,0.35) 34%, rgba(22,52,78,0) 70%);
}

/* ---- §6.3 stat bar ----------------------------------------------------- */
.ls-stats { background: var(--ls-orange); display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; }
.ls-stats__item { padding: 30px 40px; }
.ls-stats__n { font-family: Anton, Impact, sans-serif; font-size: 40px; line-height: 1; color: var(--ls-navy); }
.ls-stats__l {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700;
  font-size: 17px; letter-spacing: 2.2px; color: var(--ls-navy);
  margin-top: 6px; text-transform: uppercase;
}

/* ---- §6.4 powered by --------------------------------------------------- */
.ls-partners { background: #fff; padding: 34px var(--ls-pad); border-bottom: 1px solid var(--ls-rule); display: flex; align-items: center; justify-content: center; gap: 44px; flex-wrap: wrap; }
.ls-partners__label { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700; font-size: 17px; letter-spacing: 3px; color: var(--ls-text-muted); white-space: nowrap; text-transform: uppercase; }
.ls-partners__div { width: 1px; height: 42px; background: var(--ls-rule); }
.ls-partners__slot { width: 300px; height: 72px; display: flex; align-items: center; justify-content: center; }
.ls-partners__slot img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ls-partners__slot--empty { border: 2px dashed #cfc5b6; font-size: 15px; color: var(--ls-text-muted); }

/* ---- §6.5 who should attend -------------------------------------------- */
.ls-audience { background: #fff; display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1.15fr); gap: 72px; align-items: start; }
.ls-audience__body { display: flex; flex-direction: column; gap: 26px; }
.ls-audience__body p { font-size: 20px; line-height: 1.62; color: var(--ls-text); margin: 0; }
.ls-tags { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.ls-tag {
  border: 2px solid var(--ls-navy); color: var(--ls-navy);
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700;
  font-size: 16px; letter-spacing: 1.6px; padding: 8px 16px; text-transform: uppercase;
}

/* ---- §6.6 topics ------------------------------------------------------- */
.ls-topics { background: var(--ls-cream); }
.ls-topics__head, .ls-wall__head, .ls-register__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.ls-topics__intro { font-size: 18px; color: var(--ls-text-2); max-width: 420px; line-height: 1.55; margin: 0; }
.ls-topics__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; margin-top: 44px; }
.ls-topic { background: #fff; padding: 28px 26px 30px; border-top: 5px solid var(--ls-orange); }
.ls-topic--blue { border-top-color: var(--ls-blue); }
.ls-topic__n { font-family: Anton, Impact, sans-serif; font-size: 15px; letter-spacing: 1.4px; color: var(--ls-text-faint); }
.ls-topic__t { font-family: Anton, Impact, sans-serif; font-size: 27px; line-height: 1.06; color: var(--ls-navy); margin: 12px 0 0; text-transform: uppercase; }
.ls-topic__d { font-size: 16px; line-height: 1.5; color: var(--ls-text-2); margin: 10px 0 0; }

/* ---- §6.7 MCS Academy -------------------------------------------------- */
.ls-academy { background: var(--ls-blue); display: grid; grid-template-columns: minmax(0,1fr) minmax(0,0.85fr); gap: 60px; align-items: center; }
.ls-academy__text { display: flex; flex-direction: column; gap: 22px; }
.ls-academy h2 { color: #fff; margin: 0; }
.ls-academy p { font-size: 20px; line-height: 1.6; color: rgba(255,255,255,0.86); max-width: 560px; margin: 0; }
.ls-academy__opts { display: flex; flex-direction: column; gap: 14px; }
.ls-academy__opt { background: rgba(255,255,255,0.1); border-left: 5px solid var(--ls-orange); padding: 22px 26px; }
.ls-academy__opt h3 { font-family: Anton, Impact, sans-serif; font-size: 22px; line-height: 1.15; color: #fff; margin: 0; text-transform: uppercase; }
.ls-academy__opt p { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.78); margin: 6px 0 0; }

/* ---- §6.8 rotating wall ------------------------------------------------ */
.ls-wall { background: var(--ls-navy); padding-bottom: 90px; }
.ls-wall h2 { color: #fff; margin-top: 14px; }
.ls-wall__intro { font-size: 18px; line-height: 1.55; color: rgba(255,255,255,0.72); max-width: 380px; text-wrap: pretty; margin: 0; }
.ls-wall__grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); grid-auto-rows: 168px; gap: 10px; margin-top: 34px; }
.ls-wall__tile { position: relative; overflow: hidden; background: var(--ls-navy-tile); }
.ls-wall__tile:nth-child(1)  { grid-column: span 2; grid-row: span 2; }
.ls-wall__tile:nth-child(10) { grid-column: span 2; }
.ls-wall__layer { position: absolute; inset: 0; background-size: cover; background-position: center; transition: opacity 900ms ease; }
@media (prefers-reduced-motion: reduce) { .ls-wall__layer { transition: none; } }

/* ---- §6.9 agenda ------------------------------------------------------- */
.ls-agenda { background: #fff; }
.ls-agenda__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; margin-top: 40px; }
.ls-day { border: 2px solid var(--ls-navy); }
.ls-day__head { padding: 20px 28px; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.ls-day--one .ls-day__head { background: var(--ls-navy); }
.ls-day--two .ls-day__head { background: var(--ls-blue); }
.ls-day__n { font-family: Anton, Impact, sans-serif; font-size: 26px; letter-spacing: 1px; text-transform: uppercase; }
.ls-day--one .ls-day__n { color: var(--ls-orange); }
.ls-day--two .ls-day__n { color: #fff; }
.ls-day__meta { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 2px; color: rgba(255,255,255,0.78); text-transform: uppercase; }
.ls-day__row { display: grid; grid-template-columns: 108px 1fr; gap: 20px; padding: 18px 28px; border-bottom: 1px solid var(--ls-rule); }
.ls-day__row:last-child { border-bottom: 0; }
.ls-day__time { font-family: Anton, Impact, sans-serif; font-size: 17px; }
.ls-day--one .ls-day__time { color: var(--ls-orange); }
.ls-day--two .ls-day__time { color: var(--ls-blue); }
.ls-day__what { font-size: 18px; color: var(--ls-text); }

/* ---- §6.10 faculty ----------------------------------------------------- */
.ls-faculty { background: var(--ls-cream); }
.ls-faculty__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 26px; margin-top: 42px; }
.ls-person { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ls-person__photo { width: 100%; height: 300px; object-fit: cover; object-position: center 20%; display: block; background: var(--ls-placeholder); }
.ls-person__photo--empty { display: flex; align-items: center; justify-content: center; font-size: 15px; color: var(--ls-text-muted); text-align: center; padding: 12px; }
.ls-person__n { font-family: Anton, Impact, sans-serif; font-size: 23px; line-height: 1.1; color: var(--ls-navy); text-transform: uppercase; }
.ls-person__r { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 1.4px; color: var(--ls-orange); margin-top: 5px; text-transform: uppercase; }
.ls-person__i { font-size: 16px; color: var(--ls-text-2); margin-top: 6px; }

/* ---- §6.11 registration ------------------------------------------------ */
.ls-register { background: var(--ls-navy); }
.ls-register h2 { color: #fff; }
.ls-register__note { font-size: 18px; color: rgba(255,255,255,0.7); max-width: 380px; line-height: 1.55; margin: 0; }
.ls-register__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; margin-top: 42px; }
.ls-tier { background: #fff; padding: 34px 32px 36px; display: flex; flex-direction: column; gap: 18px; }
.ls-tier--best { background: var(--ls-orange); outline: 6px solid rgba(228,118,43,0.28); }
.ls-tier--academy { border-top: 6px solid var(--ls-blue); padding-inline: 30px; }
.ls-tier__n { font-family: Anton, Impact, sans-serif; font-size: 26px; line-height: 1.1; color: var(--ls-navy); text-transform: uppercase; }
.ls-tier__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ls-tier__badge { background: var(--ls-navy); color: #fff; font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700; font-size: 14px; letter-spacing: 1.6px; padding: 5px 11px; text-transform: uppercase; }
.ls-tier__price { display: flex; align-items: baseline; gap: 8px; }
.ls-tier__amount { font-family: Anton, Impact, sans-serif; font-size: 52px; line-height: 1; color: var(--ls-orange); }
.ls-tier--best .ls-tier__amount { color: var(--ls-navy); }
.ls-tier__early { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 1.4px; color: var(--ls-text-muted); text-transform: uppercase; }
.ls-tier--best .ls-tier__early { color: rgba(22,52,78,0.7); }
.ls-tier__d { font-size: 17px; line-height: 1.55; color: var(--ls-text-2); margin: 0; }
.ls-tier--best .ls-tier__d { color: rgba(22,52,78,0.88); }
.ls-tier__cta { margin-top: auto; }
.ls-pay { display: flex; align-items: center; gap: 16px; margin-top: 28px; flex-wrap: wrap;
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 600;
  font-size: 17px; letter-spacing: 2px; color: rgba(255,255,255,0.6); text-transform: uppercase; }
.ls-pay__dot { width: 5px; height: 5px; background: var(--ls-orange); border-radius: 999px; }

/* ---- §6.12 library + venue --------------------------------------------- */
.ls-library { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.ls-library__text { background: #fff; padding: 76px var(--ls-pad); display: flex; flex-direction: column; gap: 20px; }
.ls-library__text h2 { font-size: 42px; line-height: 1.02; margin: 0; }
.ls-library__text > p { font-size: 19px; line-height: 1.6; color: var(--ls-text); max-width: 470px; margin: 0; }
.ls-pdfs { display: flex; flex-direction: column; margin-top: 8px; border-top: 1px solid var(--ls-rule); }
.ls-pdf { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--ls-rule); text-decoration: none; }
.ls-pdf__t { font-weight: 600; font-size: 18px; color: var(--ls-navy); }
.ls-pdf:hover .ls-pdf__t { color: var(--ls-orange); }
.ls-pdf__k { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700; font-size: 15px; letter-spacing: 1.6px; color: var(--ls-orange); }
.ls-pdfs__empty { padding: 16px 0; border-bottom: 1px solid var(--ls-rule); color: var(--ls-text-2); font-size: 17px; }
.ls-venue { position: relative; min-width: 0; width: 100%; height: 520px; }
.ls-venue img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ls-venue__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 40px; pointer-events: none;
  background: linear-gradient(180deg, rgba(22,52,78,0) 0%, rgba(22,52,78,0.92) 62%); }
.ls-venue__cap .ls-eyebrow { font-size: 16px; letter-spacing: 2.4px; }
.ls-venue__cap h2 { font-family: Anton, Impact, sans-serif; font-size: 30px; color: #fff; margin: 6px 0 0; line-height: 1.1; text-transform: uppercase; }

/* ---- §6.13 closing band ------------------------------------------------ */
.ls-closing { background: var(--ls-orange); padding: 54px var(--ls-pad); display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.ls-closing__t { font-family: Anton, Impact, sans-serif; font-size: 40px; line-height: 1.05; color: var(--ls-navy); margin: 0; text-transform: uppercase; }
.ls-closing .ls-btn { white-space: nowrap; }

/* ---- §6.14 footer ------------------------------------------------------ */
.ls-footer { background: var(--ls-navy-deep); padding: 52px var(--ls-pad); display: flex; align-items: flex-start; justify-content: space-between; gap: 60px; flex-wrap: wrap; }
.ls-footer__brand { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ls-footer__brand img { height: 44px; width: auto; display: block; }
.ls-footer__addr { font-size: 16px; color: rgba(255,255,255,0.5); max-width: 340px; line-height: 1.55; margin: 0; }
.ls-footer__cols { display: flex; gap: 64px; flex-wrap: wrap; }
.ls-footer__col { display: flex; flex-direction: column; gap: 10px; }
.ls-footer__col h2 { font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700; font-size: 15px; letter-spacing: 2px; color: var(--ls-orange); margin: 0; text-transform: uppercase; }
.ls-footer__col a { font-size: 16px; color: rgba(255,255,255,0.72); text-decoration: none; }
.ls-footer__col a:hover { color: var(--ls-orange); }
.ls-footer__legal { width: 100%; font-size: 14px; color: rgba(255,255,255,0.5); display: flex; gap: 16px; flex-wrap: wrap; }
.ls-footer__legal a { color: rgba(255,255,255,0.5); }
.ls-footer__legal a:hover { color: var(--ls-orange); }

/* ======================= §9 responsive ================================== */
@media (max-width: 1279px) {
  :root { --ls-pad: 40px; }
  .ls-hero h1 { font-size: 64px; }
  .ls-nav { gap: 20px; }
  .ls-nav__links { gap: 20px; }
}
@media (max-width: 1100px) {
  .ls-topics__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ls-register__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 1023px) {
  :root { --ls-pad: 32px; }
  .ls-nav__links { display: none; }
  .ls-nav__toggle { display: block; }
  .ls-nav.is-open .ls-nav__links {
    display: flex; flex-direction: column; gap: 26px;
    position: fixed; inset: 0; z-index: 200; background: var(--ls-navy);
    align-items: center; justify-content: center;
  }
  .ls-nav.is-open .ls-nav__links a { font-family: Anton, Impact, sans-serif; font-size: 32px; letter-spacing: 1px; }
  .ls-hero { grid-template-columns: 1fr; }
  .ls-hero__media { order: -1; min-height: 360px; height: 360px; }
  .ls-hero__media::after { background: linear-gradient(180deg, rgba(22,52,78,0) 0%, rgba(22,52,78,0.9) 100%); }
  .ls-hero h1 { font-size: 56px; }
  .ls-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ls-audience, .ls-academy, .ls-library { grid-template-columns: 1fr; gap: 40px; }
  .ls-wall__grid { grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 140px; }
  .ls-wall__tile:nth-child(n+13) { display: none; }
  .ls-agenda__grid { grid-template-columns: 1fr; }
  .ls-faculty__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ls-closing { flex-direction: column; align-items: flex-start; }
  .ls-closing .ls-btn { width: 100%; text-align: center; }
  .ls-footer { flex-direction: column; }
  .ls-venue { height: 380px; }
}
@media (max-width: 767px) {
  :root { --ls-pad: 20px; --ls-section: 56px; }
  .ls-hero h1 { font-size: 42px; }
  .ls-h2, .ls-academy h2, .ls-wall h2, .ls-register h2 { font-size: 34px; }
  .ls-h2--med, .ls-library__text h2 { font-size: 34px; }
  body, .ls-day__what, .ls-audience__body p { font-size: 17px; }
  .ls-hero__text { padding: 56px var(--ls-pad); }
  .ls-hero__cta { flex-direction: column; align-items: stretch; }
  .ls-hero__cta .ls-btn { width: 100%; text-align: center; }
  .ls-stats__item { padding: 20px; }
  .ls-partners__slot { width: 240px; height: 58px; }
  .ls-topics__grid { grid-template-columns: 1fr; }
  .ls-topics__head, .ls-wall__head, .ls-register__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .ls-wall__grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 150px; }
  .ls-wall__tile:nth-child(n+9) { display: none; }
  .ls-wall__tile:nth-child(1) { grid-column: span 2; grid-row: span 2; }
  .ls-wall__tile:nth-child(10) { grid-column: auto; }
  .ls-faculty__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ls-person__photo { height: 220px; }
  .ls-register__grid { grid-template-columns: 1fr; }
  .ls-tier--best { order: -1; }
  .ls-day__row { grid-template-columns: 72px 1fr; }
  .ls-pay { justify-content: center; }
  .ls-closing__t { font-size: 30px; }
}
/* §9 minimum tap target. */
@media (max-width: 1023px) {
  .ls-page :where(a.ls-btn, .ls-nav__links a, .ls-pdf, .ls-nav__toggle) { min-height: 44px; display: flex; align-items: center; }
  .ls-nav__links a { justify-content: center; }
}

/* ======================================================================
   Block-editor markup support.
   Sections are authored as core blocks so the client can edit them freely,
   so decorative bits that used to be empty <div>s are pseudo-elements now,
   and a few core block defaults need neutralising inside our sections.
   ====================================================================== */

/* Core adds its own margins/padding; our sections manage their own spacing. */
.ls-page .wp-block-group { margin-block: 0; }
.ls-page :where(.ls-hero, .ls-stats, .ls-partners, .ls-audience, .ls-topics,
  .ls-academy, .ls-wall, .ls-agenda, .ls-faculty, .ls-register, .ls-library,
  .ls-closing) { max-width: none; }

/* Headings and paragraphs inside our sections sit flush unless told otherwise. */
.ls-page :where(.ls-hero, .ls-audience, .ls-topics, .ls-academy, .ls-wall,
  .ls-agenda, .ls-faculty, .ls-register, .ls-library, .ls-closing)
  :where(h1, h2, h3, p) { margin-block: 0; }

/* §6.2 hero date line — the 44x3 orange rule is now a pseudo-element. */
.ls-hero__dateline {
  display: flex; align-items: center; gap: 12px;
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700;
  font-size: 19px; letter-spacing: 3.4px; color: var(--ls-orange);
  text-transform: uppercase;
}
.ls-hero__dateline::before { content: ''; flex: 0 0 44px; height: 3px; background: var(--ls-orange); }

/* §6.5 the 60x4 rule under the Who Should Attend heading. */
.ls-audience__title::after { content: ''; display: block; width: 60px; height: 4px; background: var(--ls-orange); margin-top: 22px; }

/* Buttons: core renders .wp-block-button > a.wp-block-button__link. Map our
   variants onto that so the editor's button UI still works. */
.ls-page .wp-block-buttons { gap: 14px; }
.ls-page .wp-block-button__link { border-radius: 0; font-family: Anton, Impact, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease; }
.ls-page .is-style-ls-primary .wp-block-button__link { background: var(--ls-orange); color: var(--ls-navy); border: 0; padding: 20px 34px; font-size: 22px; }
.ls-page .is-style-ls-primary .wp-block-button__link:hover { background: #CF6620; color: var(--ls-navy); }
.ls-page .is-style-ls-ghost .wp-block-button__link { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.4); padding: 18px 32px; font-size: 22px; }
.ls-page .is-style-ls-ghost .wp-block-button__link:hover { border-color: #fff; background: rgba(255,255,255,0.08); color: #fff; }
.ls-page .is-style-ls-outline .wp-block-button__link { background: transparent; color: var(--ls-navy); border: 2px solid var(--ls-navy); padding: 14px 24px; font-size: 18px; }
.ls-page .is-style-ls-outline .wp-block-button__link:hover { background: var(--ls-navy); color: #fff; }
.ls-page .is-style-ls-solid .wp-block-button__link { background: var(--ls-navy); color: #fff; border: 0; padding: 20px 36px; font-size: 22px; }
.ls-page .is-style-ls-solid .wp-block-button__link:hover { background: var(--ls-blue); color: #fff; }
.ls-page .is-style-ls-sm .wp-block-button__link { font-size: 16px; padding: 12px 22px; }
.ls-page .is-style-ls-md .wp-block-button__link { font-size: 19px; padding: 16px 28px; }

/* Images authored as core/image inside a fixed slot. */
.ls-hero__media .wp-block-image,
.ls-hero__media figure { position: absolute; inset: 0; margin: 0; height: 100%; width: 100%; }
.ls-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 80% center; }
.ls-venue .wp-block-image, .ls-venue figure { margin: 0; height: 100%; }
.ls-partners__slot .wp-block-image, .ls-partners__slot figure { margin: 0; display: flex; align-items: center; justify-content: center; height: 100%; }

/* Faculty + lecture query loops render as lists; strip core list chrome. */
.ls-faculty__grid.wp-block-post-template,
.ls-pdfs.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.ls-faculty__grid.wp-block-post-template > li { margin: 0; }
.ls-pdfs.wp-block-post-template > li { margin: 0; }
.ls-faculty .wp-block-post-featured-image { margin: 0; }
.ls-faculty .wp-block-post-featured-image img { width: 100%; height: 300px; object-fit: cover; object-position: center 20%; display: block; }

/* ======================================================================
   Fixes, 2026-09-29.
   ====================================================================== */

/* Buttons block: theme.json sets blockGap to 0, which core's flex layout picks
   up as the buttons' gap, so button pairs ran together. Restore §5.3's 14px. */
.ls-page .wp-block-buttons,
.ls-page .wp-block-buttons.is-layout-flex,
.ls-page .wp-block-buttons-is-layout-flex { gap: 14px; }

/* Faculty grid: the block-support reset above zeroes margins on
   .wp-block-post-template, which also killed the 42px below the heading. */
.ls-faculty .ls-faculty__grid.wp-block-post-template { margin: 42px 0 0; }

/* The name renders as a post-title link, so it inherited the blue link colour
   instead of navy (§6.10). */
.ls-person .ls-person__n,
.ls-person .ls-person__n a { color: var(--ls-navy); text-decoration: none; }
.ls-person .ls-person__n a:hover { color: var(--ls-orange); }

/* Re-assert the card's internal rhythm above the margin reset. */
.ls-person .ls-person__r { margin-top: 5px; }
.ls-person .ls-person__i { margin-top: 6px; }
.ls-person__photo--empty { text-align: center; padding: 12px; }

/* §6.14 footer: the supplied 2h PNG is NOT transparent — it carries a baked-in
   #16344E panel, which is invisible on the navy header but shows as a lighter
   block on the #12293D footer. The reference draws the footer lockup as the
   star plus type, so do that: no background to clash, and crisp at any size. */
.ls-footer__lockup { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.ls-footer__lockup svg { flex: 0 0 auto; display: block; }
.ls-footer__wordmark {
  font-family: Anton, Impact, sans-serif; font-size: 20px; letter-spacing: 0.5px;
  color: #fff; text-transform: uppercase; line-height: 1;
}
.ls-footer__wordmark span { color: var(--ls-orange); }
.ls-footer__brand { gap: 20px; }
.ls-footer__addr { max-width: 42ch; line-height: 1.7; }
.ls-footer__addr br { display: none; }          /* let it wrap naturally */
.ls-footer__addr .ls-footer__addr-line { display: block; }
.ls-footer__addr .ls-footer__addr-line + .ls-footer__addr-line { margin-top: 6px; }

/* Faculty cards: names, roles and institutions centred under the photo.
   A deliberate departure from the reference file, which left-aligns them. */
.ls-person .ls-person__n,
.ls-person .ls-person__n a,
.ls-person .ls-person__r,
.ls-person .ls-person__i { text-align: center; }

/* ======================================================================
   Client homepage feedback, 2026-10-13.
   ====================================================================== */

/* Header logo at roughly 3x. The sticky bar grows with it, so the stuck state
   shrinks it back hard to keep the viewport usable while scrolling. */
.ls-header__logo img { height: 168px; }
.ls-header.is-stuck .ls-header__logo img { height: 72px; transition: height 150ms ease; }
.ls-header__logo img { transition: height 150ms ease; }

/* MCS Academy block repositioned as a credential (§6.7 reworked):
   partner mark on a white chip, heading at double size, CTAs stepped down so
   they do not compete with the hero's Register Now. */
.ls-academy__credential {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; padding: 14px 22px; margin-bottom: 4px;
  align-self: flex-start;
}
.ls-academy__credential img { display: block; height: 34px; width: auto; }
.ls-academy h2.ls-h2--xl { font-size: 104px; line-height: 0.95; }

/* Quieter CTAs: no orange fill in this block, so the eye still goes to the
   hero and the pricing band for the actual conversion. */
.ls-academy .is-style-ls-primary .wp-block-button__link {
  background: transparent; color: #fff;
  border: 2px solid rgba(255,255,255,0.55);
}
.ls-academy .is-style-ls-primary .wp-block-button__link:hover {
  background: rgba(255,255,255,0.1); border-color: #fff; color: #fff;
}

/* More Training (§new) — same card rhythm as the topic grid. */
.ls-training__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; margin-top: 44px; }
.ls-training__card { background: #fff; border-top: 5px solid var(--ls-blue); padding: 28px 26px 30px; }
.ls-training__card h3 { font-family: Anton, Impact, sans-serif; font-size: 24px; line-height: 1.08; color: var(--ls-navy); text-transform: uppercase; }
.ls-training__card p { font-size: 16px; line-height: 1.5; color: var(--ls-text-2); margin-top: 10px; }
.ls-training__pending {
  border: 2px dashed #cfc5b6; background: transparent; color: var(--ls-text-muted);
  display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 150px; padding: 24px; font-size: 15px;
}

/* Hero photo rotation — the fallback until the client's video arrives.
   Layers stack in the media column and cross-fade. */
.ls-hero__media .ls-hero__layer {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 80% center;
  opacity: 0; transition: opacity 1200ms ease; display: block;
}
.ls-hero__media .ls-hero__layer.is-visible { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .ls-hero__media .ls-hero__layer { transition: none; }
}

@media (max-width: 1279px) {
  .ls-academy h2.ls-h2--xl { font-size: 76px; }
  .ls-header__logo img { height: 120px; }
}
@media (max-width: 1023px) {
  .ls-header__logo img { height: 84px; }
  .ls-header.is-stuck .ls-header__logo img { height: 60px; }
  .ls-academy h2.ls-h2--xl { font-size: 58px; }
  .ls-training__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .ls-header__logo img { height: 56px; }
  .ls-header.is-stuck .ls-header__logo img { height: 48px; }
  .ls-academy h2.ls-h2--xl { font-size: 44px; }
  .ls-training__grid { grid-template-columns: 1fr; }
  .ls-academy__credential img { height: 26px; }
}

/* ======================================================================
   Client feedback, 2026-10-13 (second pass).
   ====================================================================== */

/* 1. Stat bar: numbers and labels centred in each cell. */
.ls-stats__item { text-align: center; }

/* 2. UTHealth mark reversed to white and the chip dropped, so it sits directly
   on the #1E5A8A panel. The supplied SVG is grey (#77787B) and rust (#B86646),
   which is unreadable on blue, so it is rendered as a one-colour reverse —
   the standard treatment for a dark background, and what §6.4 anticipates when
   it says to fall back to a one-colour version. The official reversed asset
   should still be requested from UTHealth; this is a stand-in. */
.ls-academy__credential {
  background: none; padding: 0; margin-bottom: 8px;
}
.ls-academy__credential img {
  height: 44px;
  filter: brightness(0) invert(1);   /* any fill -> pure white */
}

/* 3. The intro paragraphs were removed from More Training, the photo wall and
   Registration, so those header rows now hold a single column. Stop
   space-between stretching the lone heading across the full width. */
.ls-topics__head:has(> :only-child),
.ls-wall__head:has(> :only-child),
.ls-register__head:has(> :only-child) { justify-content: flex-start; }

@media (max-width: 767px) {
  .ls-academy__credential img { height: 32px; }
}

/* More air under the "Topics covered" heading now its intro line is gone.
   Scoped to the topics grid so the More Training grid keeps its own rhythm. */
.ls-topics .ls-topics__grid { margin-top: 64px; }
@media (max-width: 767px) { .ls-topics .ls-topics__grid { margin-top: 40px; } }

/* Trainee and group rate blurbs under the pricing grid (client, 13 Oct). */
.ls-register__offers {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 20px; margin-top: 32px;
}
.ls-offer {
  background: rgba(255,255,255,0.08); border-left: 4px solid var(--ls-orange);
  padding: 20px 24px; font-size: 17px; line-height: 1.55;
  color: rgba(255,255,255,0.86);
}
.ls-offer strong { color: #fff; }
.ls-offer a { color: var(--ls-orange); text-decoration: underline; text-underline-offset: 3px; }
.ls-offer a:hover { color: #fff; }
@media (max-width: 767px) { .ls-register__offers { grid-template-columns: 1fr; } }

/* Faculty flip cards (client request, 13 Oct).
   Front is the headshot, back carries role, institution and bio. */
.ls-flip { perspective: 1200px; cursor: pointer; height: 300px; }
.ls-flip:focus-visible { outline: 3px solid var(--ls-orange); outline-offset: 3px; }
.ls-flip__inner {
  position: relative; width: 100%; height: 100%;
  transition: transform 600ms cubic-bezier(.2,.7,.3,1);
  transform-style: preserve-3d;
}
.ls-flip:hover .ls-flip__inner,
.ls-flip:focus-within .ls-flip__inner,
.ls-flip.is-flipped .ls-flip__inner { transform: rotateY(180deg); }

.ls-flip__face {
  position: absolute; inset: 0; width: 100%; height: 100%;
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  overflow: hidden;
}
.ls-flip__front { background: var(--ls-placeholder); }
.ls-flip__front img,
.ls-flip__front .ls-person__photo {
  width: 100%; height: 300px; object-fit: cover; object-position: center 20%; display: block; margin: 0;
}
.ls-flip__back {
  transform: rotateY(180deg);
  background: var(--ls-navy); color: #fff;
  display: flex; flex-direction: column; justify-content: center;
  gap: 8px; padding: 24px 22px; text-align: left;
}
.ls-flip__role {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif; font-weight: 700;
  font-size: 16px; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--ls-orange);
}
.ls-flip__inst { font-size: 15px; color: rgba(255,255,255,0.72); }
.ls-flip__bio   { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.88); margin-top: 4px; }
.ls-flip__bio .wp-block-post-excerpt__more-text { display: none; }

/* No 3D for anyone who has asked for less motion — cross-fade instead. */
@media (prefers-reduced-motion: reduce) {
  .ls-flip__inner { transition: none; transform: none !important; }
  .ls-flip__back { transform: none; opacity: 0; transition: opacity 200ms ease; }
  .ls-flip:hover .ls-flip__back,
  .ls-flip:focus-within .ls-flip__back,
  .ls-flip.is-flipped .ls-flip__back { opacity: 1; }
}

/* More air under "At a glance", matching the spacing used on Topics. */
.ls-agenda .ls-agenda__grid { margin-top: 64px; }
@media (max-width: 767px) { .ls-agenda .ls-agenda__grid { margin-top: 40px; } }

/* Registration breathing room: heading -> tiers, and tiers -> payment line.
   The discount blurbs sit between the tiers and the payment line, so the
   offers block carries the first half of that gap. */
.ls-register .ls-register__grid   { margin-top: 64px; }
.ls-register .ls-register__offers { margin-top: 40px; }
.ls-register .ls-pay              { margin-top: 44px; }
@media (max-width: 767px) {
  .ls-register .ls-register__grid   { margin-top: 40px; }
  .ls-register .ls-register__offers { margin-top: 32px; }
  .ls-register .ls-pay              { margin-top: 32px; }
}

/* ======================================================================
   Client answers, 2026-10-28.
   ====================================================================== */

/* Academy heading is now a lockup: the UTHealth mark stands in for the words
   "UT Health Houston", with "MCS Academy" set beneath it. */
.ls-academy__title { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: 0; }
.ls-academy__title-logo { height: 44px; width: auto; display: block; filter: brightness(0) invert(1); }
.ls-academy__title span { display: block; }

/* Course cards link out, so give them link affordance. */
a.ls-training__card { text-decoration: none; display: block; transition: transform 150ms ease, border-color 150ms ease; }
a.ls-training__card:hover { transform: translateY(-3px); border-top-color: var(--ls-orange); }
a.ls-training__card:hover h3 { color: var(--ls-orange); }

/* Venue address under the caption. */
.ls-venue__addr { font-size: 16px; line-height: 1.5; color: rgba(255,255,255,0.82); margin-top: 8px; }
.ls-venue__addr a { color: var(--ls-orange); text-decoration: underline; text-underline-offset: 3px; }
.ls-venue__addr a:hover { color: #fff; }

@media (max-width: 767px) {
  .ls-academy__title-logo { height: 32px; }
}
