html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.navbar-header-icon {
  max-height: 40px;
  height: auto;
  width: auto;
}

/* ============================================================
   ESCO brand design system (universal header / footer + home)
   ============================================================ */

:root {
  --esco-navy: #0B1A2E;
  --esco-navy-2: #08243F;
  --esco-orange: #E8531B;
  --esco-orange-2: #FF6A2E;
  --esco-paper: #FAF8F3;
  --esco-ink: #2A3A4D;
  --esco-muted: #5A6B7D;
  --esco-line: rgba(11, 26, 46, 0.10);
  --esco-blue: #155E80;
  --font-display: 'Space Grotesk', sans-serif;
  --font-body: 'Sora', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}

body {
  background: var(--esco-paper);
  color: var(--esco-navy);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}

/* Bootstrap 5 underlines every link by default; the brand design doesn't. */
a {
  text-decoration: none;
}

@keyframes escoThermalSlide { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
@keyframes escoRiseIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

/* ---------- Universal header ---------- */
.esco-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(250, 248, 243, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--esco-line);
  transition: box-shadow .25s ease;
}
.esco-header.is-scrolled {
  box-shadow: 0 1px 0 rgba(11, 26, 46, 0.10), 0 8px 28px rgba(11, 26, 46, 0.07);
}
.esco-utilbar { background: var(--esco-navy); color: #C7D4E0; }
.esco-utilbar-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 7px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.esco-utilbar-inner .dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--esco-orange); display: inline-block; margin-right: 8px;
}
.esco-utilbar-links { display: flex; gap: 22px; flex-wrap: wrap; }
.esco-utilbar a { color: #C7D4E0; }
.esco-utilbar a:hover { color: #FFFFFF; }

.esco-nav {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.esco-brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.esco-brand img { max-height: 42px; width: auto; }
.esco-brand-hx { max-height: 48px !important; border-left: 1px solid rgba(11, 26, 46, 0.22); padding-left: 14px; }
.esco-brand-tag {
  border-left: 1px solid rgba(11, 26, 46, 0.22);
  padding-left: 14px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--esco-muted);
}
.esco-nav-links {
  display: flex;
  align-items: center;
  gap: 30px;
  font-weight: 600;
  font-size: 14.5px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.esco-nav-link {
  color: var(--esco-ink);
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
}
.esco-nav-link:hover { color: var(--esco-navy); border-bottom-color: rgba(11, 26, 46, 0.25); }
.esco-nav-link.active { color: var(--esco-navy); border-bottom-color: var(--esco-orange); }
.esco-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--esco-navy);
  color: #FFFFFF;
  padding: 10px 18px;
  border-radius: 2px;
  font-size: 13.5px;
}
.esco-cta:hover { background: var(--esco-navy-2); color: #FFFFFF; }

/* ---------- Nav dropdown (Accreditation link tree) ---------- */
.esco-navdrop { position: relative; display: flex; align-items: center; }
.esco-navdrop-trigger { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.esco-navdrop.active > .esco-navdrop-trigger { color: var(--esco-navy); border-bottom-color: var(--esco-orange); }
.esco-navdrop-caret {
  width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); margin-top: -3px; opacity: .65; transition: transform .2s ease;
}
.esco-navdrop-menu {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(6px);
  min-width: 256px; background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 6px;
  box-shadow: 0 18px 44px rgba(11,26,46,0.16); padding: 8px; margin-top: 12px; z-index: 60;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
/* invisible hover bridge so the menu doesn't close in the gap */
.esco-navdrop-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.esco-navdrop:hover > .esco-navdrop-menu,
.esco-navdrop:focus-within > .esco-navdrop-menu {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
}
.esco-navdrop:hover > .esco-navdrop-trigger .esco-navdrop-caret,
.esco-navdrop:focus-within > .esco-navdrop-trigger .esco-navdrop-caret { transform: rotate(-135deg); }
.esco-navdrop-menu a {
  display: block; padding: 10px 14px; border-radius: 4px; font-size: 14px; font-weight: 600;
  color: var(--esco-ink); white-space: nowrap;
}
.esco-navdrop-menu a:hover { background: var(--esco-paper); color: var(--esco-navy); }
.esco-navdrop-menu a.active { color: var(--esco-orange); }

/* ---------- Hamburger toggle (hidden until mobile breakpoint) ---------- */
.esco-nav-toggle { display: none; }

.esco-thermal {
  height: 3px;
  background: linear-gradient(90deg, #155E80, #1C6E97, #3E97BE, #E8A33B, #E8531B, #C7430F);
  background-size: 200% 100%;
  animation: escoThermalSlide 14s linear infinite;
}

/* arrow chevron */
.esco-arrow {
  display: inline-block; width: 6px; height: 6px;
  border-top: 2px solid var(--esco-orange);
  border-right: 2px solid var(--esco-orange);
  transform: rotate(45deg);
}
.esco-arrow--light { border-color: #FFFFFF; width: 7px; height: 7px; }
.esco-arrow--dark { border-color: var(--esco-navy); width: 7px; height: 7px; }

/* full-bleed helper: lets a section break out of Bootstrap .container */
.esco-fullbleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.esco-wrap { max-width: 1280px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }

/* ---------- Hero ---------- */
.esco-hero { position: relative; background: var(--esco-navy); color: #FFFFFF; overflow: hidden; }
.esco-hero-grid {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 54px 54px;
}
.esco-hero-glow {
  position: absolute; top: -120px; right: -80px; width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(232,83,27,0.22), transparent 65%); pointer-events: none;
}
.esco-hero-inner {
  position: relative; max-width: 1280px; margin: 0 auto; padding: 84px 32px 96px;
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center;
}
.esco-hero-copy { animation: escoRiseIn .7s ease both; }
.esco-eyebrow-light {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.22em;
  text-transform: uppercase; color: #7FB8D6; margin-bottom: 26px;
}
.esco-eyebrow-light .rule { width: 34px; height: 1px; background: var(--esco-orange); display: inline-block; }
.esco-hero h1 {
  font-family: var(--font-display); font-weight: 800; font-size: 62px;
  line-height: 0.98; letter-spacing: -0.025em; margin: 0 0 26px;
}
.esco-hero h1 .accent { color: #FF7A45; }
.esco-hero-lead { font-size: 18px; line-height: 1.6; color: #B9C6D4; max-width: 480px; margin: 0 0 38px; }
.esco-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.esco-btn-primary {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--esco-orange); color: #FFFFFF; font-weight: 700; font-size: 15px;
  padding: 15px 26px; border-radius: 2px;
}
.esco-btn-primary:hover { background: var(--esco-orange-2); color: #FFFFFF; }
.esco-btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  color: #FFFFFF; font-weight: 600; font-size: 15px;
  padding: 15px 24px; border: 1px solid rgba(255,255,255,0.3); border-radius: 2px;
}
.esco-btn-ghost:hover { border-color: #FFFFFF; background: rgba(255,255,255,0.06); color: #FFFFFF; }

.esco-gauge { margin-top: 48px; max-width: 500px; }
.esco-gauge-labels {
  display: flex; justify-content: space-between;
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em;
  color: #6E8198; text-transform: uppercase; margin-bottom: 9px;
}
.esco-gauge-bar { height: 8px; border-radius: 4px; background: linear-gradient(90deg, #1C6E97, #3E97BE, #E8A33B, #E8531B, #C7430F); }
.esco-stats { display: flex; justify-content: space-between; margin-top: 14px; gap: 18px; }
.esco-stat-num { font-family: var(--font-display); font-weight: 800; font-size: 30px; line-height: 1; }
.esco-stat-label { font-size: 12px; color: #8FA0B2; margin-top: 5px; }

.esco-hero-fig { position: relative; animation: escoRiseIn .8s .1s ease both; }
.esco-hero-fig .frame {
  position: absolute; top: -14px; left: -14px; right: 14px; bottom: 14px;
  border: 1px solid rgba(127,184,214,0.45); border-radius: 3px;
}
.esco-hero-fig .photo {
  position: relative; height: 480px; border-radius: 3px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,0.45);
  background-image: linear-gradient(135deg, #14365A, #0B1A2E);
  background-size: cover; background-position: center;
}
.esco-hero-fig .photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(11,26,46,0.55));
}
.esco-hero-fig .photo .cap {
  position: absolute; left: 18px; bottom: 16px; z-index: 1;
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: #E2EAF1;
}
.esco-hero-fig .badge {
  position: absolute; top: 18px; right: -14px;
  background: var(--esco-orange); color: #FFFFFF; font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.1em; padding: 9px 14px; border-radius: 2px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
}

/* ---------- Section scaffolding ---------- */
.esco-section { max-width: 1280px; margin: 0 auto; padding: 96px 32px 40px; }
.esco-eyebrow {
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--esco-blue); margin-bottom: 16px;
}
.esco-h2 {
  font-family: var(--font-display); font-weight: 800; font-size: 42px;
  line-height: 1.02; letter-spacing: -0.02em; margin: 0;
}
.esco-lead { font-size: 16px; line-height: 1.6; color: #48586A; margin: 0; }
.esco-section-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 32px; margin-bottom: 46px; flex-wrap: wrap;
}

/* ---------- Who we serve cards ---------- */
.esco-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.esco-card {
  display: flex; flex-direction: column; background: #FFFFFF;
  border: 1px solid var(--esco-line); border-radius: 4px; overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.esco-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 44px rgba(11,26,46,0.12);
  border-color: rgba(232,83,27,0.5);
}
.esco-card-img {
  position: relative; height: 210px; overflow: hidden;
  background-image: linear-gradient(135deg, #1C6E97, #155E80);
  background-size: cover; background-position: center;
}
.esco-card-num {
  position: absolute; top: 14px; left: 14px; background: rgba(11,26,46,0.85);
  color: #FFFFFF; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.08em; padding: 6px 10px; border-radius: 2px;
}
.esco-card-body { padding: 26px 24px 28px; display: flex; flex-direction: column; flex: 1; }
.esco-card-body h3 {
  font-family: var(--font-display); font-weight: 700; font-size: 20px;
  letter-spacing: -0.01em; margin: 0 0 10px;
}
.esco-card-body p { font-size: 14.5px; line-height: 1.55; color: #48586A; margin: 0 0 20px; flex: 1; }
.esco-link { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; font-size: 14px; color: var(--esco-navy); }

/* ---------- Ways we serve (grid of services) ---------- */
.esco-serve { background: #FFFFFF; border-top: 1px solid rgba(11,26,46,0.08); border-bottom: 1px solid rgba(11,26,46,0.08); margin-top: 56px; }
.esco-serve-inner { max-width: 1280px; margin: 0 auto; padding: 90px 32px; }
.esco-serve-grid {
  border-top: 1px solid rgba(11,26,46,0.13);
  border-left: 1px solid rgba(11,26,46,0.13);
  display: grid; grid-template-columns: repeat(5, 1fr);
}
.esco-serve-cell {
  display: flex; flex-direction: column; padding: 26px 22px 24px;
  border-right: 1px solid rgba(11,26,46,0.13);
  border-bottom: 1px solid rgba(11,26,46,0.13);
  min-height: 196px; background: #FFFFFF; position: relative; z-index: 0;
  transition: background .22s ease, box-shadow .22s ease;
}
.esco-serve-cell:hover {
  background: #FFFCFA; z-index: 1;
  box-shadow: inset 3px 0 0 var(--esco-orange), 0 16px 34px rgba(11,26,46,0.11);
}
.esco-serve-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.esco-serve-num { font-family: var(--font-display); font-weight: 700; font-size: 28px; color: var(--esco-orange); line-height: 1; letter-spacing: -0.01em; }
.esco-serve-cell h3 { font-family: var(--font-display); font-weight: 600; font-size: 16px; margin: 0 0 8px; color: var(--esco-navy); line-height: 1.22; }
.esco-serve-cell p { font-size: 13px; line-height: 1.5; color: #5E6E80; margin: 0; }

/* ---------- Brands ---------- */
.esco-brands { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.esco-brand-card {
  position: relative; overflow: hidden; color: #FFFFFF; border-radius: 4px;
  padding: 42px 40px; display: flex; flex-direction: column; justify-content: space-between;
  min-height: 230px;
}
.esco-brand-card--navy { background: var(--esco-navy); }
.esco-brand-card--navy:hover { background: #0E2238; }
.esco-brand-card--blue { background: linear-gradient(135deg, #155E80, #1C6E97); }
.esco-brand-card--blue:hover { filter: brightness(1.06); }
.esco-brand-grid {
  position: absolute; inset: 0; opacity: 0.5;
  background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
}
.esco-brand-glow { position: absolute; top: -60px; right: -40px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.16), transparent 65%); }
.esco-brand-icon {
  width: 62px; height: 62px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 22px; font-family: var(--font-display); font-weight: 700; color: #FFFFFF; letter-spacing: -0.01em;
}
.esco-brand-card h3 { font-family: var(--font-display); font-weight: 800; font-size: 26px; letter-spacing: -0.02em; margin: 0 0 8px; }
.esco-brand-card p { font-size: 15px; line-height: 1.55; margin: 0; max-width: 380px; }
.esco-brand-link { position: relative; display: inline-flex; align-items: center; gap: 9px; font-weight: 700; font-size: 14px; margin-top: 24px; }

.esco-a2l {
  margin-top: 24px; background: #FBF4EF; border: 1px solid rgba(232,83,27,0.28); border-radius: 4px;
  padding: 28px 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.esco-tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; background: var(--esco-orange); color: #FFFFFF; padding: 8px 12px; border-radius: 2px; }
.esco-btn-dark { display: inline-flex; align-items: center; gap: 9px; background: var(--esco-navy); color: #FFFFFF; font-weight: 700; font-size: 14px; padding: 13px 22px; border-radius: 2px; flex-shrink: 0; }
.esco-btn-dark:hover { background: var(--esco-navy-2); color: #FFFFFF; }

/* ---------- Universal footer ---------- */
.esco-footer { background: var(--esco-navy); color: #B9C6D4; }
.esco-footer-grid { max-width: 1280px; margin: 0 auto; padding: 64px 32px 36px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; }
.esco-footer-brand { display: flex; align-items: baseline; gap: 2px; font-family: var(--font-display); font-weight: 900; font-size: 30px; letter-spacing: -0.03em; color: #FFFFFF; margin-bottom: 18px; }
.esco-footer p { font-size: 14.5px; line-height: 1.6; max-width: 320px; margin: 0 0 24px; }
.esco-socials { display: flex; gap: 12px; }
.esco-social {
  width: 38px; height: 38px; border: 1px solid rgba(255,255,255,0.22); border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 11px; color: #C7D4E0; letter-spacing: 0.03em;
}
.esco-social:hover { border-color: var(--esco-orange); color: #FFFFFF; background: rgba(232,83,27,0.12); }
.esco-social svg { width: 18px; height: 18px; fill: currentColor; display: block; }
.esco-footer-col-h { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #6E8198; margin-bottom: 18px; }
.esco-footer-links { display: flex; flex-direction: column; gap: 11px; font-size: 14.5px; }
.esco-footer-links a { color: #B9C6D4; }
.esco-footer-links a:hover { color: #FFFFFF; }
.esco-footer-bar { border-top: 1px solid rgba(255,255,255,0.12); }
.esco-footer-bar-inner {
  max-width: 1280px; margin: 0 auto; padding: 22px 32px;
  display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap;
  font-size: 12.5px; color: #7E8FA1; font-family: var(--font-mono); letter-spacing: 0.03em;
}

/* dot accent for the orange period in wordmarks */
.esco-dot { color: var(--esco-orange); }

/* ============================================================
   Certifications page
   ============================================================ */

/* hero additions */
.esco-hero-crumb {
  position: relative; max-width: 1280px; margin: 0 auto; padding: 34px 32px 0;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: #6E8198;
}
.esco-hero-crumb a { color: #6E8198; }
.esco-hero-crumb a:hover { color: #FFFFFF; }
.esco-hero-crumb .here { color: #9FB3C6; }
.esco-hero-inner--cert { padding-top: 46px; }
.esco-pill {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #FFFFFF; background: rgba(232,83,27,0.16);
  border: 1px solid rgba(232,83,27,0.45); padding: 7px 14px; border-radius: 2px; margin-bottom: 26px;
}
.esco-pill .dot { width: 7px; height: 7px; border-radius: 50%; background: #FF7A45; display: inline-block; }

.esco-hero-fig .video {
  position: relative; border-radius: 3px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,0.45); background: #000;
}
.esco-hero-fig .video iframe { display: block; width: 100%; height: 320px; border: 0; }

/* ---------- Certification path grid ---------- */
.esco-thermlegend { display: flex; align-items: center; gap: 14px; margin: 40px 0 28px; flex-wrap: wrap; }
.esco-thermlegend span {
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em;
  text-transform: uppercase; white-space: nowrap;
}
.esco-thermlegend .bar { flex: 1; min-width: 120px; height: 5px; border-radius: 3px; background: linear-gradient(90deg, #1C6E97, #2E8FB0, #E8A33B, #E8531B, #C7430F); }

.esco-certgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.esco-certcard {
  display: flex; flex-direction: column; background: #FFFFFF;
  border: 1px solid var(--esco-line); border-top: 4px solid var(--esco-blue);
  border-radius: 4px; padding: 24px 22px; min-height: 266px;
  transition: transform .25s ease, box-shadow .25s ease;
}
.esco-certcard:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.12); }
.esco-certcard-cat { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }
.esco-certcard-cat .dot { width: 12px; height: 12px; border-radius: 50%; background: var(--esco-blue); display: inline-block; flex-shrink: 0; }
.esco-certcard-cat span { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--esco-muted); }
.esco-certcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; margin: 0 0 9px; }
.esco-certcard p { font-size: 13.5px; line-height: 1.5; color: var(--esco-muted); margin: 0 0 14px; flex: 1; }
.esco-certcard-spec { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: #8593A1; margin-bottom: 16px; }
.esco-certcard .esco-link { font-size: 13px; }

.esco-matrix {
  margin-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: var(--esco-navy); color: #FFFFFF; border-radius: 4px; padding: 24px 30px;
}
.esco-matrix:hover { background: #0E2238; color: #FFFFFF; }
.esco-matrix-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 7px; }
.esco-matrix-title { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; }
.esco-matrix-link { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; font-size: 14px; color: #FF7A45; flex-shrink: 0; }

/* ---------- Resource center ---------- */
.esco-res { background: #FFFFFF; border-top: 1px solid rgba(11,26,46,0.08); border-bottom: 1px solid rgba(11,26,46,0.08); margin-top: 70px; }
.esco-res-inner { max-width: 1280px; margin: 0 auto; padding: 88px 32px; }
.esco-resgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.esco-rescard {
  display: flex; flex-direction: column; background: var(--esco-paper);
  border: 1px solid var(--esco-line); border-radius: 4px; padding: 28px 24px; min-height: 248px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.esco-rescard:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.4); }
.esco-res-icon {
  width: 56px; height: 56px; border-radius: 4px; background: var(--esco-navy);
  display: flex; align-items: center; justify-content: center; margin-bottom: 22px;
  color: #FFFFFF; font-size: 22px;
}
.esco-rescard h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-rescard p { font-size: 13.5px; line-height: 1.55; color: var(--esco-muted); margin: 0 0 18px; flex: 1; }
.esco-rescard .esco-link { font-size: 13.5px; }

/* ---------- Learner resources grid ---------- */
.esco-learngrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.esco-learncard {
  display: flex; flex-direction: column; background: #FFFFFF;
  border: 1px solid var(--esco-line); border-radius: 4px; padding: 28px 26px 26px; min-height: 218px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.esco-learncard:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.45); }
.esco-learncard-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.esco-learncard-num {
  width: 50px; height: 50px; border-radius: 4px; background: var(--esco-navy);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-weight: 700; font-size: 15px; color: #FF7A45;
}
.esco-learncard-tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #8593A1; }
.esco-learncard h3 { font-family: var(--font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; margin: 0 0 9px; line-height: 1.2; }
.esco-learncard p { font-size: 14px; line-height: 1.5; color: var(--esco-muted); margin: 0 0 18px; flex: 1; }
.esco-learncard .esco-link { font-size: 13.5px; }

/* ---------- CTA block ---------- */
.esco-cta-block { position: relative; overflow: hidden; background: var(--esco-navy); color: #FFFFFF; border-radius: 6px; padding: 72px 64px; }
.esco-cta-grid {
  position: absolute; inset: 0; opacity: 0.5;
  background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 46px 46px;
}
.esco-cta-glow { position: absolute; bottom: -160px; right: -100px; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, rgba(232,83,27,0.30), transparent 65%); }
.esco-cta-inner { position: relative; max-width: 680px; }
.esco-cta-kick { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 18px; }
.esco-cta-block h2 { font-family: var(--font-display); font-weight: 800; font-size: 44px; line-height: 1.02; letter-spacing: -0.02em; margin: 0 0 18px; }
.esco-cta-block p { font-size: 17px; line-height: 1.6; color: #B9C6D4; margin: 0 0 34px; }

/* ============================================================
   Accreditation page
   ============================================================ */

/* ---------- program areas ---------- */
.esco-progrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.esco-procard { display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 4px; overflow: hidden; }
.esco-procard-img { position: relative; height: 210px; overflow: hidden; background-size: cover; background-position: center; }
.esco-procard-tag { position: absolute; top: 14px; left: 14px; background: rgba(11,26,46,0.85); color: #FFFFFF; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; padding: 6px 10px; border-radius: 2px; }
.esco-procard-body { padding: 24px 24px 26px; }
.esco-procard h3 { font-family: var(--font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; margin: 0 0 8px; }
.esco-procard p { font-size: 14px; line-height: 1.55; color: var(--esco-muted); margin: 0; }

/* ---------- about + accreditation types ---------- */
.esco-about-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; }
.esco-about-body { display: flex; flex-direction: column; gap: 40px; }
.esco-about-body .copy { display: flex; flex-direction: column; gap: 18px; font-size: 16px; line-height: 1.65; color: #3A4A5C; }
.esco-about-body .copy p { margin: 0; }
.esco-typecards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.esco-typecard { background: var(--esco-paper); border: 1px solid var(--esco-line); border-radius: 4px; padding: 24px; }
.esco-typecard--blue { border-left: 3px solid #1C6E97; }
.esco-typecard--grey { border-left: 3px solid #8593A1; }
.esco-typecard-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 10px; }
.esco-typecard p { font-size: 14px; line-height: 1.55; color: var(--esco-muted); margin: 0; }
.esco-typecard strong { color: var(--esco-navy); }

/* ---------- eligible organizations ---------- */
.esco-orggrid { border-top: 1px solid rgba(11,26,46,0.14); border-left: 1px solid rgba(11,26,46,0.14); display: grid; grid-template-columns: repeat(4, 1fr); }
.esco-orgcell { padding: 28px 24px 30px; border-right: 1px solid rgba(11,26,46,0.14); border-bottom: 1px solid rgba(11,26,46,0.14); background: #FFFFFF; min-height: 200px; display: flex; flex-direction: column; }
.esco-orgcell-num { font-family: var(--font-display); font-weight: 700; font-size: 26px; color: var(--esco-orange); line-height: 1; margin-bottom: 18px; }
.esco-orgcell h3 { font-family: var(--font-display); font-weight: 700; font-size: 16.5px; letter-spacing: -0.005em; margin: 0 0 9px; line-height: 1.2; }
.esco-orgcell p { font-size: 13.5px; line-height: 1.5; color: var(--esco-muted); margin: 0; }

/* ---------- benefits ---------- */
.esco-benefits-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 64px; align-items: start; }
.esco-partnerbox { background: var(--esco-navy); color: #FFFFFF; border-radius: 4px; padding: 28px; position: relative; overflow: hidden; }
.esco-partnerbox-grid { position: absolute; inset: 0; opacity: 0.4; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 34px 34px; }
.esco-partnerbox-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 12px; }
.esco-partnerbox p { font-size: 14px; line-height: 1.55; color: #C7D4E0; margin: 0 0 16px; }
.esco-partnerbox p:last-child { margin-bottom: 0; }
.esco-partnerbox a { color: #FF7A45; text-decoration: underline; }
.esco-benefit-list { display: flex; flex-direction: column; border-top: 1px solid rgba(11,26,46,0.12); }
.esco-benefit-row { display: flex; align-items: flex-start; gap: 20px; padding: 22px 4px; border-bottom: 1px solid rgba(11,26,46,0.12); }
.esco-benefit-row .num { font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: var(--esco-orange); padding-top: 3px; flex-shrink: 0; }
.esco-benefit-row p { font-size: 16px; line-height: 1.5; color: #2A3A4D; margin: 0; }

/* ---------- process steps ---------- */
.esco-stepgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.esco-stepcard { display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 4px; padding: 26px 24px; min-height: 178px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.esco-stepcard:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.45); }
.esco-stepcard-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.esco-stepcard-num { font-family: var(--font-display); font-weight: 700; font-size: 24px; color: var(--esco-orange); line-height: 1; }
.esco-stepcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.005em; margin: 0 0 8px; line-height: 1.2; }
.esco-stepcard p { font-size: 13.5px; line-height: 1.5; color: var(--esco-muted); margin: 0; }

/* ---------- contact bar ---------- */
.esco-contactbar { margin-top: 24px; background: #FBF4EF; border: 1px solid rgba(232,83,27,0.28); border-radius: 4px; padding: 26px 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.esco-contactbar-tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; background: var(--esco-navy); color: #FFFFFF; padding: 9px 13px; border-radius: 2px; }
.esco-contactbar-title { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; }
.esco-contactbar-sub { font-size: 14.5px; color: var(--esco-muted); margin-top: 3px; }

/* ============================================================
   Accreditation process page
   ============================================================ */

/* ---------- hero timeline card ---------- */
.esco-timeline-card { position: relative; background: rgba(255,255,255,0.04); border: 1px solid rgba(127,184,214,0.30); border-radius: 4px; padding: 34px 32px; }
.esco-timeline-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 20px; }
.esco-timeline-row { display: flex; align-items: baseline; gap: 12px; }
.esco-timeline-num { font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 1; color: #FFFFFF; }
.esco-timeline-num--accent { color: #FF7A45; }
.esco-timeline-unit { font-size: 16px; color: #B9C6D4; }
.esco-timeline-bar { height: 6px; border-radius: 3px; background: linear-gradient(90deg,#1C6E97,#3E97BE,#E8A33B,#E8531B); margin: 18px 0; }
.esco-timeline-note { font-size: 13.5px; line-height: 1.55; color: #8FA0B2; margin: 22px 0 0; border-top: 1px solid rgba(255,255,255,0.12); padding-top: 18px; }

/* ---------- timeline steps ---------- */
.esco-procstep { display: grid; grid-template-columns: 84px 1fr; gap: 28px; padding-bottom: 46px; border-bottom: 1px solid rgba(11,26,46,0.12); margin-bottom: 46px; }
.esco-procstep:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.esco-procstep-rail { display: flex; flex-direction: column; align-items: center; }
.esco-procstep-num { width: 64px; height: 64px; border-radius: 50%; color: #FFFFFF; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 26px; flex-shrink: 0; }
.esco-procstep-line { flex: 1; width: 2px; background: rgba(11,26,46,0.12); margin-top: 14px; }
.esco-procstep h3 { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: -0.01em; margin: 6px 0 12px; }
.esco-procstep p { font-size: 15.5px; line-height: 1.6; color: #3A4A5C; margin: 0 0 22px; max-width: 760px; }
.esco-procstep p:last-child { margin-bottom: 0; }
.esco-procstep a { color: #C7430F; text-decoration: underline; }
.esco-procstep-badge { font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.06em; border-radius: 2px; padding: 4px 9px; vertical-align: middle; margin-left: 6px; white-space: nowrap; }
.esco-procstep-badge--amber { color: #8A5A12; background: #FBF1DF; }
.esco-procstep-badge--red { color: #B23A10; background: #FBEDE6; }
.esco-procstep-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #155E80; margin-bottom: 16px; }
.esco-procstep-docs { display: flex; gap: 12px; flex-wrap: wrap; }
.esco-procstep-doc { display: inline-flex; align-items: center; gap: 9px; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.16); border-radius: 3px; padding: 11px 16px; font-size: 13.5px; font-weight: 600; color: var(--esco-navy); text-decoration: none; }
.esco-procstep-doc:hover { border-color: var(--esco-orange); }

/* ---------- video grid (step 1) ---------- */
.esco-videogrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.esco-videocard { display: flex; align-items: flex-start; gap: 11px; background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 4px; padding: 16px; }
.esco-videocard .tick { display: inline-block; width: 7px; height: 7px; border-top: 2px solid var(--esco-orange); border-right: 2px solid var(--esco-orange); transform: rotate(45deg); margin-top: 6px; flex-shrink: 0; }
.esco-videocard h4 { font-family: var(--font-display); font-weight: 600; font-size: 14.5px; color: var(--esco-navy); margin: 0 0 3px; }
.esco-videocard p { font-size: 12.5px; line-height: 1.45; color: var(--esco-muted); margin: 0; max-width: none; }

/* ---------- onsite list ---------- */
.esco-onsite-list { display: flex; flex-direction: column; border-top: 1px solid rgba(11,26,46,0.14); }
.esco-onsite-row { display: grid; grid-template-columns: 60px 280px 1fr; gap: 24px; align-items: start; padding: 24px 4px; border-bottom: 1px solid rgba(11,26,46,0.14); }
.esco-onsite-row .num { font-family: var(--font-mono); font-weight: 700; font-size: 13px; color: var(--esco-orange); padding-top: 2px; }
.esco-onsite-row h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.005em; margin: 0; color: var(--esco-navy); }
.esco-onsite-row p { font-size: 14.5px; line-height: 1.55; color: var(--esco-muted); margin: 0; }

/* ---------- fees ---------- */
.esco-feegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.esco-feecard { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-radius: 4px; padding: 34px 32px; }
.esco-feecard--navy { background: var(--esco-navy); color: #FFFFFF; position: relative; overflow: hidden; }
.esco-fee-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 14px; }
.esco-fee-intro { font-size: 14px; line-height: 1.55; color: var(--esco-muted); margin: 0 0 22px; }
.esco-fee-big { display: flex; align-items: baseline; gap: 10px; margin-bottom: 26px; }
.esco-fee-bignum { font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 1; }
.esco-fee-bigunit { font-size: 15px; color: #B9C6D4; }
.esco-fee-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 15px 0; border-top: 1px solid rgba(255,255,255,0.14); }
.esco-feecard .esco-fee-row { border-top-color: rgba(11,26,46,0.12); }
.esco-fee-row .lbl { font-size: 14.5px; }
.esco-feecard--navy .esco-fee-row .lbl { color: #C7D4E0; }
.esco-feecard .esco-fee-row .lbl { color: #3A4A5C; }
.esco-fee-rowamt { font-family: var(--font-display); font-weight: 700; font-size: 18px; white-space: nowrap; }
.esco-fee-rowamt--muted { font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--esco-muted); white-space: nowrap; }
.esco-fee-sub { display: block; font-size: 12.5px; margin-top: 2px; color: #8593A1; }

/* ---------- terms + definitions ---------- */
.esco-termgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.esco-termcard { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-radius: 4px; padding: 30px; }
.esco-termcard--orange { border-top: 4px solid #E8531B; }
.esco-termcard--blue { border-top: 4px solid #1C6E97; }
.esco-termcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; margin: 0 0 14px; }
.esco-termcard-big { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.esco-termcard-bignum { font-family: var(--font-display); font-weight: 800; font-size: 40px; line-height: 1; }
.esco-termcard-bigunit { font-size: 15px; color: var(--esco-muted); }
.esco-termcard p { font-size: 14.5px; line-height: 1.6; color: #48586A; margin: 0 0 18px; }
.esco-termcard a { color: #C7430F; text-decoration: underline; }
.esco-termcard ul { margin: 0; padding-left: 18px; font-size: 13.5px; line-height: 1.65; color: var(--esco-muted); }
.esco-callout { background: #FBF4EF; border: 1px solid rgba(232,83,27,0.22); border-radius: 3px; padding: 16px 18px; }
.esco-callout-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #B23A10; margin-bottom: 7px; }
.esco-callout p { font-size: 13.5px; line-height: 1.55; color: #5A4A42; margin: 0; }
.esco-defgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.esco-defcard { background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.12); border-radius: 4px; padding: 26px; }
.esco-defcard-term { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #155E80; margin-bottom: 10px; }
.esco-defcard p { font-size: 14px; line-height: 1.6; color: #48586A; margin: 0; }
.esco-disclaimer { font-size: 12.5px; line-height: 1.6; color: #8593A1; margin: 28px 0 0; max-width: 760px; font-style: italic; }

/* ============================================================
   Accreditation "Learn More" page
   ============================================================ */
.esco-hero-inner--solo { display: block; }
.esco-hero-inner--solo .esco-hero-copy { max-width: 900px; }

/* why it matters */
.esco-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.esco-why-h2 { font-family: var(--font-display); font-weight: 800; font-size: 36px; line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 18px; }
.esco-why-lead { font-size: 16px; line-height: 1.65; color: #3A4A5C; margin: 0; }
.esco-why-video { position: relative; margin-top: 30px; border-radius: 4px; overflow: hidden; box-shadow: 0 20px 50px rgba(11,26,46,0.18); background: #000; }
.esco-why-video iframe { display: block; width: 100%; height: 300px; border: 0; }
.esco-why-vidlink { display: inline-flex; align-items: center; gap: 9px; margin-top: 14px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; color: #155E80; }
.esco-why-vidlink:hover { color: var(--esco-orange); }
.esco-reason-list { display: flex; flex-direction: column; border-top: 1px solid rgba(11,26,46,0.14); }
.esco-reason-row { display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: start; padding: 24px 4px; border-bottom: 1px solid rgba(11,26,46,0.14); }
.esco-reason-num { width: 48px; height: 48px; border-radius: 4px; background: var(--esco-navy); color: #FF7A45; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 700; font-size: 18px; flex-shrink: 0; }
.esco-reason-row h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.005em; margin: 0 0 6px; color: var(--esco-navy); }
.esco-reason-row p { font-size: 14.5px; line-height: 1.55; color: var(--esco-muted); margin: 0; }

/* what you'll learn (5-col bordered grid) */
.esco-learn5 { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(11,26,46,0.14); border-left: 1px solid rgba(11,26,46,0.14); }
.esco-learn5-cell { padding: 26px 22px 28px; border-right: 1px solid rgba(11,26,46,0.14); border-bottom: 1px solid rgba(11,26,46,0.14); min-height: 230px; display: flex; flex-direction: column; background: #FFFFFF; }
.esco-learn5-num { font-family: var(--font-display); font-weight: 700; font-size: 26px; color: var(--esco-orange); line-height: 1; margin-bottom: 18px; }
.esco-learn5-cell h3 { font-family: var(--font-display); font-weight: 700; font-size: 16px; letter-spacing: -0.005em; margin: 0 0 9px; color: var(--esco-navy); line-height: 1.25; }
.esco-learn5-cell p { font-size: 13px; line-height: 1.5; color: var(--esco-muted); margin: 0; }

/* ============================================================
   Accreditation Team Leaders page
   ============================================================ */
@keyframes escoFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes escoPanelIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* two-assessor model */
.esco-assessor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.esco-assessorcard { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-radius: 4px; padding: 30px 32px; }
.esco-assessorcard--blue { border-left: 4px solid #1C6E97; }
.esco-assessorcard--orange { border-left: 4px solid #E8531B; }
.esco-assessorcard-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 12px; }
.esco-assessorcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-assessorcard p { font-size: 14.5px; line-height: 1.6; color: #48586A; margin: 0; }

/* team directory grid */
.esco-tlgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.esco-tlcard {
  display: flex; flex-direction: column; background: #FFFFFF;
  border: 1px solid var(--esco-line); border-radius: 4px; overflow: hidden; cursor: pointer;
  text-align: left; padding: 0; font: inherit; color: inherit; width: 100%;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.esco-tlcard:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.14); border-color: rgba(232,83,27,0.45); }
.esco-tlcard-img { position: relative; height: 268px; overflow: hidden; background: var(--esco-navy); }
.esco-tlcard-img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.esco-tlcard-role {
  position: absolute; top: 12px; left: 12px; background: var(--esco-orange); color: #FFFFFF;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 5px 9px; border-radius: 2px;
}
.esco-tlcard-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.esco-tlcard-body h3 { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.01em; margin: 0 0 4px; color: var(--esco-navy); line-height: 1.2; }
.esco-tlcard-creds { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.05em; color: #155E80; margin-bottom: 12px; }
.esco-tlcard-body p { font-size: 13.5px; line-height: 1.5; color: var(--esco-muted); margin: 0 0 16px; flex: 1; }
.esco-tlcard .esco-link { font-size: 13px; }

/* detail modal */
.esco-tl-full { display: none; }
.esco-modal {
  position: fixed; inset: 0; z-index: 100; background: rgba(11,26,46,0.66); backdrop-filter: blur(4px);
  display: flex; align-items: flex-start; justify-content: center; padding: 48px 24px; overflow-y: auto;
  animation: escoFadeIn .2s ease both;
}
.esco-modal[hidden] { display: none; }
.esco-modal-panel {
  position: relative; background: var(--esco-paper); border-radius: 6px; max-width: 860px; width: 100%;
  overflow: hidden; box-shadow: 0 40px 90px rgba(0,0,0,0.5); animation: escoPanelIn .3s ease both;
}
.esco-modal-close {
  position: absolute; top: 18px; right: 18px; width: 38px; height: 38px; border: none; border-radius: 50%;
  background: rgba(11,26,46,0.85); color: #FFFFFF; font-size: 20px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; z-index: 2;
}
.esco-modal-close:hover { background: var(--esco-orange); }
.esco-modal-head { display: grid; grid-template-columns: 200px 1fr; gap: 28px; padding: 34px 38px 28px; background: var(--esco-navy); color: #FFFFFF; }
.esco-modal-photo { position: relative; border-radius: 4px; overflow: hidden; height: 236px; background: #13263E; }
.esco-modal-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.esco-modal-headtext { display: flex; flex-direction: column; justify-content: center; }
.esco-modal-role { display: inline-flex; align-self: flex-start; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #FFFFFF; background: var(--esco-orange); padding: 5px 10px; border-radius: 2px; margin-bottom: 14px; }
.esco-modal-headtext h3 { font-family: var(--font-display); font-weight: 800; font-size: 30px; letter-spacing: -0.02em; margin: 0 0 8px; line-height: 1.05; }
.esco-modal-creds { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: #7FB8D6; margin-bottom: 16px; }
.esco-modal-headtext p { font-size: 15px; line-height: 1.55; color: #C7D4E0; margin: 0; }
.esco-modal-body { padding: 32px 38px 40px; }
.esco-modal-section + .esco-modal-section { margin-top: 28px; }
.esco-modal-section-h { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.esco-modal-section-h span:first-child { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #155E80; }
.esco-modal-section-h .rule { flex: 1; height: 1px; background: rgba(11,26,46,0.14); }
.esco-modal-section p { font-size: 15px; line-height: 1.65; color: #3A4A5C; margin: 0; }
.esco-modal-section p + p { margin-top: 14px; }

/* ============================================================
   Certifications: EPA Section 608 page
   ============================================================ */
.esco-hero-sub { font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase; color: #7FB8D6; margin: -14px 0 24px; }

/* hero quick-links panel */
.esco-epa-panel { background: rgba(255,255,255,0.04); border: 1px solid rgba(127,184,214,0.30); border-radius: 4px; padding: 28px 28px 12px; animation: escoRiseIn .8s .1s ease both; }
.esco-epa-panel-h { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 18px; }
.esco-epa-qlink {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 2px; border-top: 1px solid rgba(255,255,255,0.12);
  color: #E2EAF1; font-size: 14.5px; font-weight: 500;
}
.esco-epa-qlink:hover { color: var(--esco-orange-2); }
.esco-epa-qlink .car { width: 6px; height: 6px; border-top: 2px solid #7FB8D6; border-right: 2px solid #7FB8D6; transform: rotate(45deg); flex-shrink: 0; }

/* overview video + copy */
.esco-epa-overview { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: center; }
.esco-epa-video { position: relative; border-radius: 4px; overflow: hidden; box-shadow: 0 24px 56px rgba(11,26,46,0.20); background: #000; }
.esco-epa-video iframe { display: block; width: 100%; height: 340px; border: 0; }

/* instructor strip */
.esco-epa-instructor {
  background: var(--esco-navy); color: #FFFFFF; border-radius: 4px; padding: 30px 34px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.esco-epa-instructor-text { display: flex; align-items: center; gap: 18px; }
.esco-epa-instructor-badge { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; background: var(--esco-orange); color: #FFFFFF; padding: 8px 12px; border-radius: 2px; flex-shrink: 0; }
.esco-epa-instructor-title { font-family: var(--font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; }
.esco-epa-instructor-desc { font-size: 14.5px; color: #B9C6D4; margin-top: 3px; max-width: 560px; }
.esco-epa-btn-light {
  display: inline-flex; align-items: center; gap: 9px; background: #FFFFFF; color: var(--esco-navy);
  font-weight: 700; font-size: 14px; padding: 13px 20px; border-radius: 2px; flex-shrink: 0;
}
.esco-epa-btn-light:hover { background: #F0F0F0; color: var(--esco-navy); }
.esco-epa-btn-light .esco-arrow { border-color: var(--esco-orange); }

/* taking-the-exam split */
.esco-epa-split { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.esco-epa-card { border-radius: 4px; padding: 34px; }
.esco-epa-card--orange { background: #FBF4EF; border: 1px solid rgba(232,83,27,0.24); }
.esco-epa-card--navy { background: var(--esco-navy); color: #FFFFFF; position: relative; overflow: hidden; }
.esco-epa-card-inner { position: relative; }
.esco-epa-glow { position: absolute; top: -60px; right: -40px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, rgba(232,83,27,0.28), transparent 65%); pointer-events: none; }
.esco-epa-card-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.esco-epa-card h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 0 0 12px; }
.esco-epa-card--orange p { font-size: 15px; line-height: 1.6; color: #48586A; margin: 0 0 20px; }
.esco-epa-card--navy p { font-size: 15px; line-height: 1.6; color: #B9C6D4; margin: 0 0 20px; }
.esco-epa-card--navy .esco-btns { gap: 12px; }

/* administering grid */
.esco-epa-admin { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.esco-epa-admincard { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-top: 4px solid var(--esco-blue); border-radius: 4px; padding: 30px; }
.esco-epa-admincard-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.esco-epa-admincard-num { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--esco-navy); }
.esco-epa-admincard-tag { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--esco-muted); }
.esco-epa-admincard h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-epa-admincard p { font-size: 14.5px; line-height: 1.6; color: #48586A; margin: 0; }

/* ============================================================
   Certifications: EPA Section 609 page
   ============================================================ */
/* what-it-covers */
.esco-609-covers { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.esco-609-cards { display: flex; flex-direction: column; gap: 20px; }
.esco-609-bullets { display: flex; flex-direction: column; gap: 12px; }
.esco-609-bullet { display: flex; align-items: flex-start; gap: 11px; font-size: 15px; line-height: 1.5; color: #3A4A5C; }
.esco-609-bullet .car { width: 7px; height: 7px; transform: rotate(45deg); margin-top: 6px; flex-shrink: 0; }
.esco-609-bullet .car--orange { border-top: 2px solid var(--esco-orange); border-right: 2px solid var(--esco-orange); }
.esco-609-bullet .car--blue { border-top: 2px solid #1C6E97; border-right: 2px solid #1C6E97; }

/* two paths */
.esco-609-pathcard { border-radius: 4px; padding: 36px; display: flex; flex-direction: column; }
.esco-609-pathcard--navy { background: var(--esco-navy); color: #FFFFFF; position: relative; overflow: hidden; }
.esco-609-pathcard--paper { background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.12); }
.esco-609-pathcard-inner { position: relative; flex: 1; }
.esco-609-badge { display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; padding: 6px 11px; border-radius: 2px; margin-bottom: 18px; }
.esco-609-badge--orange { background: var(--esco-orange); color: #FFFFFF; }
.esco-609-badge--blue { background: #EAF1F5; color: #155E80; }
.esco-609-pathcard h3 { font-family: var(--font-display); font-weight: 800; font-size: 26px; letter-spacing: -0.02em; margin: 0 0 12px; }
.esco-609-pathcard--paper h3 { color: var(--esco-navy); }
.esco-609-pathcard .lead { font-size: 15px; line-height: 1.6; margin: 0 0 14px; }
.esco-609-pathcard--navy .lead { color: #B9C6D4; }
.esco-609-pathcard--paper .lead { color: #48586A; margin-bottom: 0; }
.esco-609-pathcard .note { font-size: 13.5px; line-height: 1.55; color: #8FA0B2; margin: 0; }
.esco-609-pathcard-foot { position: relative; display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.esco-609-btn-navy { display: inline-flex; align-items: center; gap: 9px; background: var(--esco-navy); color: #FFFFFF; font-weight: 700; font-size: 14px; padding: 13px 20px; border-radius: 2px; }
.esco-609-btn-navy:hover { background: var(--esco-navy-2); color: #FFFFFF; }
.esco-609-btn-dark { display: inline-flex; align-items: center; gap: 9px; color: var(--esco-navy); font-weight: 600; font-size: 14px; padding: 13px 18px; border: 1px solid rgba(11,26,46,0.25); border-radius: 2px; }
.esco-609-btn-dark:hover { border-color: var(--esco-orange); color: var(--esco-navy); }

/* certification block */
.esco-609-cert {
  position: relative; overflow: hidden; background: var(--esco-navy); color: #FFFFFF; border-radius: 6px;
  padding: 56px; display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center;
}
.esco-609-cert-copy { position: relative; }
.esco-609-cert-copy h2 { font-family: var(--font-display); font-weight: 800; font-size: 34px; line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 14px; }
.esco-609-cert-copy p { font-size: 16.5px; line-height: 1.6; color: #B9C6D4; margin: 0; max-width: 520px; }
.esco-609-cert-stats { position: relative; display: flex; gap: 20px; flex-shrink: 0; }
.esco-609-cert-stat { text-align: center; }
.esco-609-cert-num { font-family: var(--font-display); font-weight: 800; font-size: 46px; line-height: 1; color: #FFFFFF; }
.esco-609-cert-num.accent { color: #FF7A45; }
.esco-609-cert-num .frac { font-size: 22px; color: #8FA0B2; }
.esco-609-cert-lbl { font-size: 12px; color: #8FA0B2; margin-top: 8px; font-family: var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; }
.esco-609-cert-div { width: 1px; background: rgba(255,255,255,0.15); }

/* ============================================================
   Certifications: H.E.A.T. Student Outcome Assessments page
   ============================================================ */
.esco-609-bullet .car--accent { border-top: 2px solid #FF7A45; border-right: 2px solid #FF7A45; }

/* hero why panel rows */
.esco-heat-why-row { padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.12); }
.esco-heat-why-row h4 { font-family: var(--font-display); font-weight: 600; font-size: 15px; color: #FFFFFF; margin: 0 0 3px; }
.esco-heat-why-row p { font-size: 13px; line-height: 1.5; color: #9FB0C0; margin: 0; }

/* assessment options */
.esco-heat-options { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.esco-heat-optcard { border-radius: 4px; padding: 32px; }
.esco-heat-optcard--written { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-top: 4px solid #1C6E97; }
.esco-heat-optcard--plus { background: var(--esco-navy); color: #FFFFFF; border-top: 4px solid var(--esco-orange); position: relative; overflow: hidden; }
.esco-heat-optcard-inner { position: relative; }
.esco-heat-optcard-tags { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.esco-heat-tag-plain { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--esco-muted); }
.esco-heat-optcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-heat-optcard--written > p { font-size: 14.5px; line-height: 1.55; color: #48586A; margin: 0 0 18px; }
.esco-heat-optcard--plus .lead { font-size: 14.5px; line-height: 1.55; color: #B9C6D4; margin: 0 0 18px; }
.esco-heat-coverslabel { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #155E80; margin-bottom: 12px; }
.esco-heat-optcard--written .esco-609-bullet { font-size: 13.5px; }
.esco-heat-optcard--plus .esco-609-bullet { font-size: 14px; color: #E2EAF1; }

/* specialty table */
.esco-heat-tablewrap { border: 1px solid rgba(11,26,46,0.14); border-radius: 4px; overflow: hidden; }
.esco-heat-table { width: 100%; border-collapse: collapse; }
.esco-heat-table thead { background: var(--esco-navy); color: #FFFFFF; }
.esco-heat-table th { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 400; text-align: left; padding: 15px 20px; }
.esco-heat-table th.num { text-align: center; width: 110px; }
.esco-heat-table td { padding: 18px 20px; border-top: 1px solid rgba(11,26,46,0.12); vertical-align: top; }
.esco-heat-table tbody tr:nth-child(even) { background: var(--esco-paper); }
.esco-heat-table td.name { font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--esco-navy); width: 200px; }
.esco-heat-table td.num { text-align: center; }
.esco-heat-table td.num span { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--esco-orange); }
.esco-heat-table td:last-child { font-size: 13.5px; line-height: 1.5; color: var(--esco-muted); }
.esco-heat-inline { color: #C7430F; text-decoration: underline; }

/* educators grid */
.esco-heat-edugrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 24px; }
.esco-heat-educard { background: var(--esco-paper); border: 1px solid var(--esco-line); border-radius: 4px; padding: 28px 26px; display: flex; flex-direction: column; }
.esco-heat-educard--link { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.esco-heat-educard--link:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.45); }
.esco-heat-edunum { font-family: var(--font-display); font-weight: 800; font-size: 32px; color: var(--esco-orange); line-height: 1; margin-bottom: 14px; }
.esco-heat-edutop { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.esco-heat-edutop .kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #155E80; }
.esco-heat-educard h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.005em; margin: 0 0 8px; color: var(--esco-navy); }
.esco-heat-educard p { font-size: 13.5px; line-height: 1.55; color: var(--esco-muted); margin: 0; }

/* additional info strip */
.esco-heat-inforow { background: #FBF4EF; border: 1px solid rgba(232,83,27,0.24); border-radius: 4px; padding: 24px 30px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.esco-heat-info-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #B23A10; }
.esco-heat-info-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.esco-heat-infobtn { display: inline-flex; align-items: center; gap: 8px; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.16); border-radius: 3px; padding: 11px 16px; font-size: 13.5px; font-weight: 600; color: var(--esco-navy); }
.esco-heat-infobtn:hover { border-color: var(--esco-orange); color: var(--esco-navy); }

/* ============================================================
   Certifications: Employment Ready Certifications page
   ============================================================ */
/* how it works */
.esco-er-how { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.esco-er-copy p { font-size: 15.5px; line-height: 1.65; color: #3A4A5C; margin: 0 0 14px; }
.esco-er-copy p:last-child { margin-bottom: 0; }
.esco-er-notes { display: flex; flex-direction: column; gap: 20px; }
.esco-er-note { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-radius: 4px; padding: 26px 28px; }
.esco-er-note--orange { border-left: 4px solid var(--esco-orange); }
.esco-er-note--blue { border-left: 4px solid #1C6E97; }
.esco-er-note-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 10px; }
.esco-er-note--orange .esco-er-note-kick { color: #B23A10; }
.esco-er-note--blue .esco-er-note-kick { color: #155E80; }
.esco-er-note p { font-size: 15px; line-height: 1.6; color: #3A4A5C; margin: 0; }
.esco-er-note--blue p { margin-bottom: 14px; }
.esco-er-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.esco-er-chip { display: inline-flex; align-items: center; background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.14); border-radius: 3px; padding: 8px 12px; font-size: 12.5px; font-weight: 600; color: var(--esco-navy); }
.esco-er-chip:hover { border-color: var(--esco-orange); color: #C7430F; }

/* catalog controls */
.esco-er-controls { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.esco-er-search { position: relative; flex: 1; min-width: 240px; }
.esco-er-search-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #8593A1; font-size: 14px; }
.esco-er-search input { width: 100%; padding: 13px 16px 13px 38px; border: 1px solid rgba(11,26,46,0.18); border-radius: 3px; font-size: 14.5px; color: var(--esco-navy); background: #FFFFFF; outline: none; }
.esco-er-search input:focus { border-color: var(--esco-orange); }
.esco-er-toggle { display: inline-flex; align-items: center; gap: 9px; padding: 13px 18px; border-radius: 3px; font-size: 13.5px; font-weight: 600; cursor: pointer; border: 1px solid rgba(11,26,46,0.18); background: #FFFFFF; color: var(--esco-navy); font-family: var(--font-body); }
.esco-er-toggle .tag { font-family: var(--font-mono); font-size: 11px; }
.esco-er-toggle.is-active { background: var(--esco-orange); border-color: var(--esco-orange); color: #FFFFFF; }
.esco-er-count { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--esco-muted); white-space: nowrap; }

/* catalog table */
.esco-er-tablewrap { border: 1px solid rgba(11,26,46,0.14); border-radius: 4px; overflow: hidden; }
.esco-er-table { width: 100%; border-collapse: collapse; }
.esco-er-table thead { background: var(--esco-navy); color: #FFFFFF; }
.esco-er-table th { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 400; text-align: left; padding: 15px 22px; }
.esco-er-table th.q { text-align: center; width: 96px; }
.esco-er-table td { padding: 16px 22px; border-top: 1px solid rgba(11,26,46,0.12); vertical-align: top; }
.esco-er-table td.name { width: 32%; }
.esco-er-table td.name span:first-child { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--esco-navy); line-height: 1.3; }
.esco-er-table td.q { text-align: center; }
.esco-er-table td.q span { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--esco-orange); }
.esco-er-table td:last-child { font-size: 13px; line-height: 1.5; color: var(--esco-muted); }
.esco-er-es { display: inline-block; font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.05em; color: #155E80; background: #EAF1F5; border-radius: 2px; padding: 3px 6px; vertical-align: middle; }
.esco-er-empty { padding: 40px 22px; text-align: center; border-top: 1px solid rgba(11,26,46,0.12); color: #8593A1; font-size: 14.5px; }
.esco-er-foot { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; color: #8593A1; margin: 16px 0 0; }

/* educators */
.esco-er-edu { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 24px; align-items: stretch; }
.esco-er-edu-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.esco-er-inforow { grid-column: span 2; padding: 22px 26px; }
.esco-er-doe { background: var(--esco-navy); color: #FFFFFF; border-radius: 4px; padding: 34px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.esco-er-doe-grid { position: absolute; inset: 0; opacity: 0.4; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 36px 36px; }
.esco-er-doe-inner { position: relative; }
.esco-er-doe-inner img { height: 96px; width: auto; margin-bottom: 22px; }
.esco-er-doe-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 10px; }
.esco-er-doe-inner h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-er-doe-inner p { font-size: 14.5px; line-height: 1.6; color: #B9C6D4; margin: 0; }

/* ============================================================
   Master Specialist Hands-On page
   ============================================================ */
/* why hands-on: benefit cards */
.esco-ms-benefits { display: flex; flex-direction: column; gap: 12px; }
.esco-ms-benefit { display: flex; align-items: flex-start; gap: 14px; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.10); border-radius: 4px; padding: 16px 18px; }
.esco-ms-benefit .tri { flex-shrink: 0; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 9px solid var(--esco-orange); margin-top: 4px; }
.esco-ms-benefit .t { font-size: 14.5px; line-height: 1.5; color: var(--esco-ink); }

/* details: prerequisite / certification / administer */
.esco-ms-details { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 20px; }
.esco-ms-detail { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.10); border-radius: 5px; padding: 26px 28px; }
.esco-ms-detail .kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.11em; text-transform: uppercase; color: var(--esco-blue); margin-bottom: 12px; }
.esco-ms-detail p { font-size: 14px; line-height: 1.6; color: #3A4A5C; margin: 0; }
.esco-ms-detail p strong { color: var(--esco-navy); }
.esco-ms-detail--navy { background: var(--esco-navy); color: #FFFFFF; position: relative; overflow: hidden; }
.esco-ms-detail--navy .esco-ms-detail-grid { position: absolute; inset: 0; opacity: 0.35; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 34px 34px; }
.esco-ms-detail--navy .esco-ms-detail-body { position: relative; }
.esco-ms-detail--navy .kick { color: #FF9E6E; }
.esco-ms-detail--navy p { color: #D6DEE6; }
.esco-ms-detail--navy p strong { color: #FFFFFF; }
.esco-ms-detail--green { border-left: 4px solid #1C8A6E; }
.esco-ms-detail--green .kick { color: #176B55; }
.esco-ms-detail--blue { border-left: 4px solid var(--esco-blue); }

/* exams catalog: compact cards (reuses .esco-tr-search / .esco-tr-chips / JS hooks) */
.esco-ms-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.esco-ms-card { display: flex; align-items: center; gap: 14px; background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.12); border-left: 4px solid var(--cat-accent, var(--esco-orange)); border-radius: 4px; padding: 16px 18px; }
.esco-ms-card .num { flex-shrink: 0; font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: #A6B2BE; width: 24px; }
.esco-ms-card .body { min-width: 0; flex: 1; }
.esco-ms-card .name { font-family: var(--font-display); font-weight: 600; font-size: 14.5px; letter-spacing: -0.005em; color: var(--esco-navy); line-height: 1.3; }
.esco-ms-card .cat { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--cat-fg, var(--esco-ink)); margin-top: 4px; }
.esco-ms-card .soon { flex-shrink: 0; font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.05em; text-transform: uppercase; color: #9A6A12; background: #FAF0DC; border-radius: 2px; padding: 4px 7px; }

/* ============================================================
   Training Packages page
   ============================================================ */
/* what's-included intro */
.esco-tr-incl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.esco-tr-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.esco-tr-incl-card { display: flex; flex-direction: column; gap: 8px; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.10); border-radius: 4px; padding: 20px; }
.esco-tr-incl-card .num { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--esco-orange); }
.esco-tr-incl-card .t { font-family: var(--font-display); font-weight: 700; font-size: 16px; letter-spacing: -0.005em; color: var(--esco-navy); line-height: 1.2; }
.esco-tr-incl-card .b { font-size: 13px; line-height: 1.45; color: var(--esco-muted); }
.esco-tr-callout { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-left: 4px solid var(--esco-blue); border-radius: 4px; padding: 18px 22px; display: flex; align-items: center; gap: 14px; }
.esco-tr-callout i { font-size: 20px; color: var(--esco-blue); flex-shrink: 0; }
.esco-tr-callout p { font-size: 14px; line-height: 1.55; color: #3A4A5C; margin: 0; }
.esco-tr-callout a { color: #C7430F; font-weight: 700; }
.esco-tr-callout a:hover { text-decoration: underline; }

/* catalog controls */
.esco-tr-search { position: relative; max-width: 440px; margin-bottom: 18px; }
.esco-tr-search-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #8593A1; font-size: 14px; }
.esco-tr-search input { width: 100%; padding: 13px 16px 13px 38px; border: 1px solid rgba(11,26,46,0.18); border-radius: 3px; font-size: 14.5px; color: var(--esco-navy); background: var(--esco-paper); outline: none; }
.esco-tr-search input:focus { border-color: var(--esco-orange); background: #FFFFFF; }
.esco-tr-chips { display: flex; align-items: center; gap: 9px; margin-bottom: 30px; flex-wrap: wrap; }
.esco-tr-chip { padding: 9px 15px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid rgba(11,26,46,0.18); background: var(--esco-paper); color: var(--esco-ink); white-space: nowrap; font-family: inherit; }
.esco-tr-chip:hover { border-color: rgba(11,26,46,0.4); }
.esco-tr-chip.is-active { background: var(--esco-navy); color: #FFFFFF; border-color: var(--esco-navy); }
.esco-tr-chip .ct { font-family: var(--font-mono); font-size: 11px; opacity: 0.65; margin-left: 7px; }

/* catalog grid */
.esco-tr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.esco-tr-card { display: flex; flex-direction: column; background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.12); border-radius: 5px; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.esco-tr-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.45); }
.esco-tr-bar { height: 7px; background: var(--cat-accent, var(--esco-orange)); }
.esco-tr-cardbody { padding: 22px 22px 20px; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.esco-tr-cardtop { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.esco-tr-badge { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--cat-fg, var(--esco-ink)); background: var(--cat-bg, #EEE); border-radius: 2px; padding: 4px 8px; }
.esco-tr-idx { font-family: var(--font-mono); font-size: 11px; color: #A6B2BE; }
.esco-tr-card h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; line-height: 1.22; color: var(--esco-navy); margin: 0; }
.esco-tr-card p { font-size: 13px; line-height: 1.5; color: var(--esco-muted); margin: 0; flex: 1; }
.esco-tr-more { display: inline-flex; align-items: center; gap: 8px; color: #C7430F; font-weight: 700; font-size: 13px; margin-top: 2px; }
.esco-tr-empty { padding: 48px 22px; text-align: center; color: #8593A1; font-size: 14.5px; }

/* ============================================================
   Visual 3D Academy page
   ============================================================ */
/* hero blue treatment */
.esco-pill--blue { background: rgba(28,110,151,0.22); border-color: rgba(63,151,190,0.5); }
.esco-pill--blue .dot { background: #3E97BE; }
.esco-hero h1 .accent--blue { color: #3E97BE; }
.esco-hero-glow--blue { top: -160px; right: -120px; width: 620px; height: 620px; background: radial-gradient(circle, rgba(28,110,151,0.34), transparent 65%); }

/* hero video frame */
.esco-v3d-video { position: relative; border: 1px solid rgba(255,255,255,0.16); border-radius: 8px; overflow: hidden; box-shadow: 0 40px 80px rgba(0,0,0,0.45); background: #06121F; aspect-ratio: 16 / 10; animation: escoRiseIn .85s .1s ease both; }
.esco-v3d-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.esco-v3d-video-badge { position: absolute; top: 14px; left: 14px; display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #FFFFFF; background: rgba(6,18,31,0.6); backdrop-filter: blur(4px); padding: 6px 11px; border-radius: 2px; border: 1px solid rgba(255,255,255,0.18); }
.esco-v3d-video-badge .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--esco-orange); display: inline-block; }

/* value strip (on hero navy) */
.esco-v3d-values { position: relative; border-top: 1px solid rgba(255,255,255,0.10); }
.esco-v3d-values-inner { max-width: 1280px; margin: 0 auto; padding: 26px 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.esco-v3d-value { display: flex; align-items: flex-start; gap: 14px; }
.esco-v3d-value-num { font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: #3E97BE; margin-top: 3px; }
.esco-v3d-value h4 { font-family: var(--font-display); font-weight: 700; font-size: 16px; margin: 0 0 4px; color: #FFFFFF; }
.esco-v3d-value p { font-size: 13.5px; line-height: 1.5; color: #8FA0B2; margin: 0; }

/* team cards */
.esco-v3d-team { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.esco-v3d-person { display: flex; gap: 24px; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.10); border-radius: 6px; padding: 28px; align-items: flex-start; }
.esco-v3d-person-photo { position: relative; flex-shrink: 0; }
.esco-v3d-person-photo img { width: 108px; height: 108px; border-radius: 6px; object-fit: cover; background: #E4EBF0; }
.esco-v3d-person-years { position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.05em; text-transform: uppercase; color: #FFFFFF; background: var(--esco-orange); padding: 4px 9px; border-radius: 2px; }
.esco-v3d-person-role { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #155E80; margin-bottom: 6px; }
.esco-v3d-person h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-v3d-person p { font-size: 14px; line-height: 1.6; color: #48586A; margin: 0; }

/* partner card */
.esco-v3d-partner { background: var(--esco-navy); color: #FFFFFF; border-radius: 6px; padding: 36px 40px; position: relative; overflow: hidden; display: grid; grid-template-columns: auto 1fr; gap: 34px; align-items: center; }
.esco-v3d-partner-grid { position: absolute; inset: 0; opacity: 0.35; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 36px 36px; }
.esco-v3d-partner-logo { position: relative; display: flex; align-items: baseline; gap: 2px; font-family: var(--font-display); font-weight: 800; font-size: 46px; letter-spacing: -0.03em; color: #FFFFFF; }
.esco-v3d-partner-body { position: relative; }
.esco-v3d-partner-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 8px; }
.esco-v3d-partner h3 { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: -0.01em; margin: 0 0 10px; }
.esco-v3d-partner p { font-size: 15px; line-height: 1.6; color: #B9C6D4; margin: 0; max-width: 760px; }

/* final CTA */
.esco-v3d-cta { position: relative; overflow: hidden; border-radius: 8px; background: linear-gradient(120deg, #0B1A2E 0%, #10314B 55%, #1C5E80 100%); color: #FFFFFF; padding: 64px 56px; text-align: center; }
.esco-v3d-cta-grid { position: absolute; inset: 0; opacity: 0.4; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 44px 44px; }
.esco-v3d-cta-inner { position: relative; }
.esco-v3d-cta h2 { font-family: var(--font-display); font-weight: 800; font-size: 40px; line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 14px; }
.esco-v3d-cta p { font-size: 17px; line-height: 1.6; color: #C5D2DE; max-width: 560px; margin: 0 auto 30px; }

/* ============================================================
   Certifications: Specialty Certifications page
   ============================================================ */
/* intro prerequisite box */
.esco-spec-box { background: var(--esco-navy); color: #FFFFFF; border-radius: 4px; padding: 34px; position: relative; overflow: hidden; }
.esco-spec-box-grid { position: absolute; inset: 0; opacity: 0.4; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 36px 36px; }
.esco-spec-box-inner { position: relative; }
.esco-spec-box-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 12px; }
.esco-spec-box-big { font-family: var(--font-display); font-weight: 800; font-size: 42px; line-height: 1; margin-bottom: 14px; }
.esco-spec-box p { font-size: 15px; line-height: 1.6; color: #B9C6D4; margin: 0; }
.esco-spec-box strong { color: #FFFFFF; }

/* exam accordion */
.esco-spec-list { display: flex; flex-direction: column; gap: 14px; }
.esco-spec-item { border: 1px solid var(--esco-line); border-radius: 5px; overflow: hidden; background: #FFFFFF; transition: border-color .2s ease, background .2s ease; }
.esco-spec-item.is-open { border-color: rgba(232,83,27,0.5); background: #FFFCFA; }
.esco-spec-head { width: 100%; display: flex; align-items: center; gap: 20px; padding: 22px 26px; background: transparent; border: none; cursor: pointer; text-align: left; font: inherit; }
.esco-spec-num { font-family: var(--font-mono); font-size: 13px; font-weight: 700; color: #B23A10; flex-shrink: 0; width: 28px; }
.esco-spec-headtext { flex: 1; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.esco-spec-headtext h3 { font-family: var(--font-display); font-weight: 700; font-size: 19px; letter-spacing: -0.01em; color: var(--esco-navy); line-height: 1.25; margin: 0; }
.esco-spec-headtext p { font-size: 13.5px; color: var(--esco-muted); line-height: 1.4; margin: 0; }
.esco-spec-head-right { flex-shrink: 0; display: inline-flex; align-items: center; gap: 12px; }
.esco-spec-format { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: #155E80; background: #EAF1F5; border-radius: 2px; padding: 5px 9px; white-space: nowrap; }
.esco-spec-caret { width: 11px; height: 11px; border-right: 2px solid var(--esco-navy); border-bottom: 2px solid var(--esco-navy); transform: rotate(45deg); transition: transform .25s ease; display: inline-block; }
.esco-spec-item.is-open .esco-spec-caret { transform: rotate(-135deg); }
.esco-spec-panel { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.esco-spec-panel-inner { padding: 2px 26px 26px 74px; }
.esco-spec-rule { height: 1px; background: rgba(11,26,46,0.10); margin-bottom: 20px; }
.esco-spec-cols { display: grid; grid-template-columns: 1.4fr 1fr; gap: 36px; align-items: start; }
.esco-spec-copy { display: flex; flex-direction: column; gap: 12px; }
.esco-spec-copy p { font-size: 14.5px; line-height: 1.6; color: #3A4A5C; margin: 0; }
.esco-spec-copy .esco-link { align-self: flex-start; margin-top: 6px; color: #C7430F; font-size: 14px; }
.esco-spec-copy .esco-link .esco-arrow { border-color: #C7430F; }
.esco-spec-comp { background: var(--esco-paper); border: 1px solid var(--esco-line); border-radius: 4px; padding: 20px 22px; }
.esco-spec-item.is-open .esco-spec-comp { background: #FFFFFF; }
.esco-spec-comp-label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #155E80; margin-bottom: 14px; }
.esco-spec-comp-list { display: flex; flex-direction: column; gap: 10px; }
.esco-spec-comp-item { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.45; color: var(--esco-ink); }
.esco-spec-comp-item .dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--esco-orange); margin-top: 6px; }

/* ============================================================
   HVAC Excellence page
   ============================================================ */

/* hero medallion */
.esco-hx-fig { position: relative; display: flex; justify-content: center; animation: escoRiseIn .8s .1s ease both; }
.esco-hx-medallion {
  position: relative; width: 340px; height: 340px; max-width: 100%;
  display: flex; align-items: center; justify-content: center;
}
.esco-hx-medallion .ring { position: absolute; border: 1px solid rgba(127,184,214,0.3); border-radius: 50%; }
.esco-hx-medallion .ring-1 { inset: 0; }
.esco-hx-medallion .ring-2 { inset: 30px; border-color: rgba(127,184,214,0.2); }
.esco-hx-medallion .disc {
  position: relative; width: 240px; height: 240px; border-radius: 50%;
  background: #FFFFFF; display: flex; align-items: center; justify-content: center;
  padding: 34px; box-shadow: 0 28px 56px rgba(0,0,0,0.45);
}
.esco-hx-medallion .disc img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* accent-tinted offering cards (extends .esco-learncard) */
.esco-learncard--accent { border-top: 4px solid var(--accent, var(--esco-blue)); }
.esco-learncard--accent .esco-learncard-num { background: var(--accent-bg, #E5EEF3); color: var(--accent, var(--esco-blue)); }

/* dark ghost button for light backgrounds */
.esco-btn-ghost--dark { color: var(--esco-navy); border-color: rgba(11,26,46,0.2); }
.esco-btn-ghost--dark:hover { border-color: var(--esco-navy); background: rgba(11,26,46,0.04); color: var(--esco-navy); }

/* upcoming event card */
.esco-hx-event {
  display: grid; grid-template-columns: 1.25fr 0.75fr; align-items: stretch;
  background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 6px; overflow: hidden;
}
.esco-hx-event-media { display: block; position: relative; background: var(--esco-navy); min-height: 280px; }
.esco-hx-event-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.esco-hx-event-body { padding: 36px 38px; display: flex; flex-direction: column; justify-content: center; }
.esco-hx-event-date {
  align-self: flex-start; font-family: var(--font-mono); font-size: 10.5px;
  letter-spacing: 0.12em; text-transform: uppercase; color: #B23A10;
  background: #FBE9E1; border-radius: 2px; padding: 6px 11px; margin-bottom: 18px;
}
.esco-hx-event-body h3 {
  font-family: var(--font-display); font-weight: 800; font-size: 25px;
  line-height: 1.1; letter-spacing: -0.015em; margin: 0 0 10px; color: var(--esco-navy);
}
.esco-hx-event-body p { font-size: 14.5px; line-height: 1.55; color: var(--esco-muted); margin: 0 0 24px; }

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .esco-hx-event { grid-template-columns: 1fr; }
  .esco-hx-medallion { width: 300px; height: 300px; }
  .esco-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .esco-hero h1 { font-size: 48px; }
  .esco-serve-grid { grid-template-columns: repeat(2, 1fr); }
  .esco-brands { grid-template-columns: 1fr; }
  .esco-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .esco-certgrid { grid-template-columns: repeat(2, 1fr); }
  .esco-resgrid { grid-template-columns: repeat(2, 1fr); }
  .esco-learngrid { grid-template-columns: repeat(2, 1fr); }
  .esco-progrid { grid-template-columns: 1fr; }
  .esco-about-grid { grid-template-columns: 1fr; gap: 36px; }
  .esco-benefits-grid { grid-template-columns: 1fr; gap: 40px; }
  .esco-orggrid { grid-template-columns: repeat(2, 1fr); }
  .esco-stepgrid { grid-template-columns: repeat(2, 1fr); }
  .esco-videogrid { grid-template-columns: repeat(2, 1fr); }
  .esco-feegrid { grid-template-columns: 1fr; }
  .esco-termgrid { grid-template-columns: 1fr; }
  .esco-defgrid { grid-template-columns: 1fr; }
  .esco-onsite-row { grid-template-columns: 44px 1fr; }
  .esco-onsite-row p { grid-column: 1 / -1; }
  .esco-why-grid { grid-template-columns: 1fr; gap: 40px; }
  .esco-learn5 { grid-template-columns: repeat(2, 1fr); }
  .esco-tlgrid { grid-template-columns: repeat(3, 1fr); }
  .esco-assessor-grid { grid-template-columns: 1fr; }
  .esco-epa-overview { grid-template-columns: 1fr; gap: 36px; }
  .esco-epa-split { grid-template-columns: 1fr; }
  .esco-epa-admin { grid-template-columns: 1fr; }
  .esco-609-covers { grid-template-columns: 1fr; gap: 36px; }
  .esco-609-cert { grid-template-columns: 1fr; gap: 32px; padding: 48px 36px; }
  .esco-heat-options { grid-template-columns: 1fr; }
  .esco-heat-edugrid { grid-template-columns: 1fr; }
  .esco-er-how { grid-template-columns: 1fr; gap: 36px; }
  .esco-er-edu { grid-template-columns: 1fr; }
  .esco-spec-cols { grid-template-columns: 1fr; gap: 24px; }
  .esco-tr-incl-grid { grid-template-columns: 1fr; gap: 36px; }
  .esco-tr-grid { grid-template-columns: repeat(2, 1fr); }
  .esco-ms-details { grid-template-columns: 1fr; }
  .esco-ms-grid { grid-template-columns: repeat(2, 1fr); }
  .esco-v3d-values-inner { grid-template-columns: 1fr; gap: 18px; }
  .esco-v3d-team { grid-template-columns: 1fr; }
  .esco-v3d-partner { grid-template-columns: 1fr; gap: 20px; }
  .esco-cta-block { padding: 56px 36px; }
  .esco-cta-block h2 { font-size: 36px; }
}
@media (max-width: 768px) {
  .esco-utilbar-inner, .esco-nav, .esco-hero-inner, .esco-hero-crumb, .esco-section, .esco-serve-inner, .esco-res-inner, .esco-wrap { padding-left: 18px; padding-right: 18px; }
  .esco-cards { grid-template-columns: 1fr; }
  .esco-serve-grid { grid-template-columns: 1fr; }
  .esco-certgrid { grid-template-columns: 1fr; }
  .esco-resgrid { grid-template-columns: 1fr; }
  .esco-learngrid { grid-template-columns: 1fr; }
  .esco-typecards { grid-template-columns: 1fr; }
  .esco-orggrid { grid-template-columns: 1fr; }
  .esco-stepgrid { grid-template-columns: 1fr; }
  .esco-orgcell { min-height: 0; }
  .esco-videogrid { grid-template-columns: 1fr; }
  .esco-procstep { grid-template-columns: 52px 1fr; gap: 18px; }
  .esco-procstep-num { width: 52px; height: 52px; font-size: 21px; }
  .esco-learn5 { grid-template-columns: 1fr; }
  .esco-learn5-cell { min-height: 0; }
  .esco-tlgrid { grid-template-columns: repeat(2, 1fr); }
  .esco-modal-head { grid-template-columns: 1fr; gap: 20px; }
  .esco-modal-photo { height: 280px; }
  .esco-modal { padding: 24px 14px; }
  .esco-modal-head, .esco-modal-body { padding-left: 22px; padding-right: 22px; }
  .esco-hero h1 { font-size: 38px; }
  .esco-brand-tag { display: none; }
  .esco-matrix { flex-direction: column; align-items: flex-start; }
  .esco-contactbar { flex-direction: column; align-items: flex-start; }
  .esco-epa-instructor { flex-direction: column; align-items: flex-start; }
  .esco-epa-instructor-text { flex-direction: column; align-items: flex-start; gap: 12px; }
  .esco-epa-video iframe { height: 260px; }
  .esco-heat-inforow { flex-direction: column; align-items: flex-start; }
  .esco-heat-edugrid { grid-template-columns: 1fr !important; }
  .esco-spec-head { gap: 14px; padding: 18px 18px; flex-wrap: wrap; }
  .esco-spec-format { display: none; }
  .esco-spec-panel-inner { padding: 2px 18px 22px 18px; }
  .esco-tr-incl { grid-template-columns: 1fr; }
  .esco-tr-grid { grid-template-columns: 1fr; }
  .esco-ms-grid { grid-template-columns: 1fr; }
  .esco-v3d-person { flex-direction: column; align-items: flex-start; }
  .esco-v3d-cta { padding: 48px 28px; }
  .esco-v3d-cta h2 { font-size: 30px; }
  .esco-er-edu-cards { grid-template-columns: 1fr; }
  .esco-er-inforow { grid-column: auto; }
  .esco-er-controls { flex-direction: column; align-items: stretch; }
}

/* ---------- Mobile navigation (collapsible hamburger) ---------- */
@media (max-width: 980px) {
  .esco-nav { flex-wrap: wrap; }
  .esco-nav-toggle {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 46px; height: 42px; padding: 9px 10px; margin-left: auto;
    background: transparent; border: 1px solid var(--esco-line); border-radius: 5px; cursor: pointer;
  }
  .esco-nav-toggle span { display: block; height: 2px; width: 100%; background: var(--esco-navy); border-radius: 2px; transition: transform .22s ease, opacity .2s ease; }
  .esco-nav.open .esco-nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .esco-nav.open .esco-nav-toggle span:nth-child(2) { opacity: 0; }
  .esco-nav.open .esco-nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .esco-nav-links {
    flex-basis: 100%; flex-direction: column; align-items: stretch; justify-content: flex-start;
    gap: 0; max-height: 0; opacity: 0; overflow: hidden;
    transition: max-height .32s ease, opacity .25s ease;
  }
  .esco-nav.open .esco-nav-links { max-height: 900px; opacity: 1; padding: 10px 0 16px; }
  .esco-nav-links > .esco-nav-link,
  .esco-navdrop-trigger { padding: 13px 4px; border-bottom: 1px solid var(--esco-line); }
  .esco-cta { justify-content: center; margin-top: 12px; padding: 13px 18px; }

  /* dropdown expands inline as a static link tree on mobile */
  .esco-navdrop { display: block; }
  .esco-navdrop-menu {
    position: static; transform: none; opacity: 1; visibility: visible; pointer-events: auto;
    margin: 0; padding: 4px 0 8px 16px; min-width: 0; background: transparent; border: 0; box-shadow: none;
  }
  .esco-navdrop-menu::before { display: none; }
  .esco-navdrop-caret { display: none; }
  .esco-navdrop-menu a { padding: 9px 8px; font-weight: 500; color: var(--esco-muted); white-space: normal; }
  .esco-navdrop-menu a:hover { background: transparent; color: var(--esco-navy); }
}

/* ---------- Cross-page responsive refinements ---------- */
@media (max-width: 992px) {
  .esco-hero-fig .photo { height: 360px; }
  .esco-hero-fig .video iframe { height: 300px; }
}
@media (max-width: 768px) {
  body { overflow-x: hidden; }              /* tame the 100vw full-bleed scrollbar gutter */
  .esco-hero-inner { padding-top: 56px; padding-bottom: 64px; }
  .esco-section { padding-top: 64px; }
  .esco-hero-fig .photo { height: 280px; }
  .esco-hero-fig .badge { right: 0; }
  .esco-h2 { font-size: 30px; }
  .esco-why-h2 { font-size: 28px; }
  .esco-stats { flex-wrap: wrap; gap: 22px 28px; }
  .esco-stats > div { flex: 1 0 40%; }
  .esco-stat-num { font-size: 26px; }
}
@media (max-width: 460px) {
  .esco-hero h1 { font-size: 32px; }
  .esco-utilbar-inner { justify-content: center; font-size: 10.5px; }
  .esco-tlgrid { grid-template-columns: 1fr; }
}

/* ============================================================
   Legacy Bootstrap pages: mobile safety net
   (Students/Practice, Proctors, Programs lists, etc. use plain
   .row + unprefixed .col-N that never stack on their own.)
   ============================================================ */
@media (max-width: 768px) {
  /* Unprefixed Bootstrap columns hold their width at every size — force stack. */
  .row > [class^="col-"],
  .row > [class*=" col-"] { flex: 0 0 100%; max-width: 100%; }
  /* Wide tables scroll within their box instead of overflowing the page. */
  main table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* Tab bars wrap rather than overflow. */
  .nav-tabs { flex-wrap: wrap; }
}

/* ============================================================
   Certifications: Educator Credentialing page
   ============================================================ */
/* hero tags */
.esco-edu-herotags { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.esco-edu-herotag { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #D6DEE6; border: 1px solid rgba(255,255,255,0.22); border-radius: 999px; padding: 8px 14px; }
.esco-edu-herotag .dot { width: 5px; height: 5px; border-radius: 50%; background: #3E97BE; display: inline-block; }

/* hero resource strip */
.esco-edu-resources { position: relative; border-top: 1px solid rgba(255,255,255,0.10); }
.esco-edu-resources-inner { max-width: 1280px; margin: 0 auto; padding: 22px 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.esco-edu-resource { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 4px; padding: 16px 18px; }
.esco-edu-resource:hover { background: rgba(255,255,255,0.09); border-color: rgba(232,83,27,0.5); }
.esco-edu-resource .t { display: block; font-family: var(--font-display); font-weight: 700; font-size: 15px; color: #FFFFFF; line-height: 1.2; }
.esco-edu-resource .s { display: block; font-size: 12.5px; color: #8FA0B2; margin-top: 3px; }
.esco-edu-resource .car { flex-shrink: 0; display: inline-block; width: 7px; height: 7px; border-top: 2px solid #FF7A45; border-right: 2px solid #FF7A45; transform: rotate(45deg); }

/* overview: admin value box */
.esco-edu-valuebox { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12); border-radius: 5px; padding: 28px 30px; }
.esco-edu-valuebox-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #155E80; margin-bottom: 16px; }
.esco-edu-valuelist { display: flex; flex-direction: column; gap: 13px; }
.esco-edu-valrow { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; line-height: 1.5; color: #2A3A4D; }
.esco-edu-valrow .dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--esco-orange); margin-top: 7px; }

/* overview: not technician exams box */
.esco-edu-nottech { margin-top: 40px; background: linear-gradient(120deg, #10314B, #1C5E80); color: #FFFFFF; border-radius: 6px; padding: 36px 40px; }
.esco-edu-nottech h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 0 0 6px; }
.esco-edu-nottech > p { font-size: 14.5px; line-height: 1.55; color: #C5D2DE; margin: 0 0 22px; max-width: 720px; }
.esco-edu-demos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.esco-edu-demo { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.16); border-radius: 4px; padding: 20px 22px; }
.esco-edu-demo .num { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: #9FD0E6; margin-bottom: 10px; }
.esco-edu-demo p { font-size: 14px; line-height: 1.55; color: #E4ECF2; margin: 0; }

/* CSME legend */
.esco-edu-legend { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 30px; font-size: 13px; color: #5A6B7D; }
.esco-edu-legend-item { display: inline-flex; align-items: center; gap: 8px; }
.esco-edu-legend-item .sq { width: 11px; height: 11px; border-radius: 2px; display: inline-block; }
.esco-edu-legend .note { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: #8593A1; }

/* CMHE master credential box */
.esco-edu-cmhe { background: var(--esco-navy); color: #FFFFFF; border-radius: 6px; padding: 42px 44px; position: relative; overflow: hidden; }
.esco-edu-cmhe-grid { position: absolute; inset: 0; opacity: 0.32; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 36px 36px; }
.esco-edu-cmhe-inner { position: relative; display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 48px; align-items: center; }
.esco-edu-cmhe-badge { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF; background: var(--esco-orange); padding: 6px 12px; border-radius: 2px; margin-bottom: 18px; }
.esco-edu-cmhe-inner h2 { font-family: var(--font-display); font-weight: 800; font-size: 30px; line-height: 1.08; letter-spacing: -0.015em; margin: 0 0 14px; }
.esco-edu-cmhe-lead { font-size: 15px; line-height: 1.6; color: #B9C6D4; margin: 0 0 18px; }
.esco-edu-cmhe-feats { display: flex; gap: 24px; flex-wrap: wrap; }
.esco-edu-cmhe-feat { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #D6DEE6; }
.esco-edu-cmhe-panel { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); border-radius: 5px; padding: 26px 28px; }
.esco-edu-cmhe-panel-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: #9FD0E6; margin-bottom: 14px; }
.esco-edu-cmhe-panel-kick + .esco-edu-cmhe-panel-kick { margin-top: 18px; }
.esco-edu-cmhe-reqs { display: flex; flex-direction: column; gap: 8px; }
.esco-edu-cmhe-req { display: flex; align-items: center; gap: 11px; font-size: 14px; color: #E4ECF2; }
.esco-edu-cmhe-req .chk { flex-shrink: 0; width: 18px; height: 18px; border-radius: 3px; background: var(--esco-orange); display: flex; align-items: center; justify-content: center; font-size: 10px; color: #FFFFFF; }
.esco-edu-cmhe-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.esco-edu-cmhe-chip { font-size: 13px; font-weight: 600; color: #D6DEE6; border: 1px solid rgba(63,151,190,0.5); background: rgba(28,110,151,0.18); border-radius: 999px; padding: 7px 13px; }

/* benefits */
.esco-edu-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.esco-edu-bcard { background: #FFFFFF; border: 1px solid rgba(11,26,46,0.10); border-radius: 5px; padding: 26px; }
.esco-edu-bcard .num { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--esco-orange); margin-bottom: 12px; }
.esco-edu-bcard h3 { font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -0.005em; line-height: 1.25; margin: 0 0 8px; color: var(--esco-navy); }
.esco-edu-bcard p { font-size: 13.5px; line-height: 1.55; color: var(--esco-muted); margin: 0; }

/* logistics */
.esco-edu-logistics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 24px; }
.esco-edu-logcard { background: var(--esco-paper); border: 1px solid rgba(11,26,46,0.10); border-radius: 4px; padding: 26px; border-left: 4px solid var(--log-accent, var(--esco-blue)); }
.esco-edu-logcard .kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--log-fg, #155E80); margin-bottom: 12px; }
.esco-edu-logcard p { font-size: 14px; line-height: 1.6; color: #3A4A5C; margin: 0; }
.esco-edu-logcard p strong { color: var(--esco-navy); }

/* contact bar */
.esco-edu-contact { background: var(--esco-navy); color: #FFFFFF; border-radius: 6px; padding: 30px 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.esco-edu-contact-kick { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #9FD0E6; margin-bottom: 8px; }
.esco-edu-contact h3 { font-family: var(--font-display); font-weight: 700; font-size: 21px; letter-spacing: -0.01em; margin: 0; max-width: 620px; }
.esco-edu-contact-actions { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; }

/* hiring */
.esco-edu-hiring { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }

/* responsive */
@media (max-width: 992px) {
  .esco-edu-resources-inner { grid-template-columns: 1fr; }
  .esco-edu-demos { grid-template-columns: 1fr; }
  .esco-edu-cmhe-inner { grid-template-columns: 1fr; gap: 32px; }
  .esco-edu-benefits { grid-template-columns: repeat(2, 1fr); }
  .esco-edu-logistics { grid-template-columns: 1fr; }
  .esco-edu-hiring { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .esco-edu-cmhe { padding: 32px 24px; }
  .esco-edu-nottech { padding: 28px 24px; }
  .esco-edu-benefits { grid-template-columns: 1fr; }
  .esco-edu-contact { flex-direction: column; align-items: flex-start; padding: 26px 24px; }
  .esco-edu-contact-actions { width: 100%; }
}

/* ============================================================
   Did You Know page
   ============================================================ */
/* hero video figure */
.esco-hero-fig .video video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #06121F; }
.esco-dyk-live {
  position: absolute; left: 16px; top: 14px; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: #FFFFFF; background: rgba(11,26,46,0.55); backdrop-filter: blur(4px); padding: 6px 11px; border-radius: 2px;
}
.esco-dyk-live .dot { width: 6px; height: 6px; border-radius: 50%; background: #FF4D4D; display: inline-block; }

/* watch / listen channels */
.esco-dyk-channels { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
.esco-dyk-channel { display: flex; flex-direction: column; background: var(--esco-navy); border: 1px solid var(--esco-line); border-radius: 6px; overflow: hidden; }
.esco-dyk-channel-band { position: relative; aspect-ratio: 16 / 7; background: #06121F; display: flex; align-items: center; justify-content: center; padding: 26px 40px; overflow: hidden; }
.esco-dyk-channel-band::before { content: ""; position: absolute; inset: 0; opacity: 0.4; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 30px 30px; }
.esco-dyk-channel-band img { position: relative; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.esco-dyk-channel-body { padding: 28px 30px 30px; }
.esco-dyk-kicker { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #7FB8D6; margin-bottom: 8px; }
.esco-dyk-channel-body h3 { font-family: var(--font-display); font-weight: 800; font-size: 26px; letter-spacing: -0.01em; margin: 0 0 8px; color: #FFFFFF; }
.esco-dyk-channel-body p { font-size: 14.5px; line-height: 1.55; color: #9FB3C6; margin: 0 0 22px; }
.esco-dyk-channel-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* CEU callout */
.esco-dyk-ceu { position: relative; overflow: hidden; background: linear-gradient(120deg, #10314B, #1C5E80); color: #FFFFFF; border-radius: 6px; padding: 44px 48px; display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 44px; align-items: center; }
.esco-dyk-ceu-grid { position: absolute; inset: 0; opacity: 0.35; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 36px 36px; }
.esco-dyk-ceu-copy { position: relative; }
.esco-dyk-ceu-kick { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #9FD0E6; margin-bottom: 14px; }
.esco-dyk-ceu-copy h2 { font-family: var(--font-display); font-weight: 800; font-size: 32px; line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 14px; }
.esco-dyk-ceu-copy p { font-size: 15.5px; line-height: 1.6; color: #C5D8E6; margin: 0; max-width: 560px; }
.esco-dyk-ceu-copy p strong { color: #FFFFFF; }
.esco-dyk-ceu-actions { position: relative; display: flex; flex-direction: column; gap: 12px; }
.esco-dyk-ceu-btn { display: flex; align-items: center; justify-content: space-between; gap: 14px; font-weight: 700; font-size: 15px; padding: 16px 22px; border-radius: 3px; }
.esco-dyk-ceu-btn--primary { background: var(--esco-orange); color: #FFFFFF; }
.esco-dyk-ceu-btn--primary:hover { background: var(--esco-orange-2); color: #FFFFFF; }
.esco-dyk-ceu-btn--ghost { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.25); color: #FFFFFF; font-weight: 600; }
.esco-dyk-ceu-btn--ghost:hover { border-color: #FFFFFF; background: rgba(255,255,255,0.14); color: #FFFFFF; }

/* embeds */
.esco-dyk-embeds { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: start; margin-top: 24px; }
.esco-dyk-embed-h { font-family: var(--font-display); font-weight: 700; font-size: 21px; letter-spacing: -0.01em; margin: 0 0 14px; }
.esco-dyk-embed { border-radius: 5px; overflow: hidden; border: 1px solid rgba(11,26,46,0.14); box-shadow: 0 16px 36px rgba(11,26,46,0.10); background: #000; }
.esco-dyk-embed--yt { aspect-ratio: 16 / 9; }
.esco-dyk-embed--pod { background: #FFFFFF; height: 420px; }
.esco-dyk-embed iframe { width: 100%; height: 100%; border: 0; display: block; }

/* sponsors */
.esco-dyk-sponsors { background: #FFFFFF; border: 1px solid var(--esco-line); border-radius: 6px; padding: 36px 40px; }
.esco-dyk-sponsors-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin-bottom: 26px; }
.esco-dyk-sponsors-title { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: -0.015em; color: var(--esco-navy); }
.esco-dyk-sponsor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.esco-dyk-sponsor { display: flex; align-items: center; justify-content: center; height: 120px; padding: 24px 32px; background: var(--esco-paper); border: 1px solid var(--esco-line); border-radius: 5px; transition: border-color .2s ease, background .2s ease; }
.esco-dyk-sponsor:hover { border-color: rgba(232,83,27,0.4); background: #FFFFFF; }
.esco-dyk-sponsor img { max-width: 100%; max-height: 72px; width: auto; height: auto; object-fit: contain; display: block; }

/* responsive */
@media (max-width: 992px) {
  .esco-dyk-channels { grid-template-columns: 1fr; }
  .esco-dyk-ceu { grid-template-columns: 1fr; gap: 28px; }
  .esco-dyk-embeds { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .esco-dyk-ceu { padding: 32px 24px; }
  .esco-dyk-ceu-copy h2 { font-size: 26px; }
  .esco-dyk-sponsors { padding: 28px 22px; }
}

/* ============================================================
   Shop (catalog grid, fed by the shop API)
   ============================================================ */
.esco-hero-inner--shop { padding-top: 46px; align-items: end; }
.esco-shop-heronote { display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; line-height: 1.5; color: #9FB3C6; }
.esco-shop-heronote p { margin: 0; }
.esco-shop-heronote a { color: #FF9E6E; font-weight: 600; }
.esco-shop-heronote a:hover { text-decoration: underline; }

.esco-shop { padding-top: 56px; }

/* controls row */
.esco-shop-controls { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; flex-wrap: wrap; }
.esco-shop-searchwrap { position: relative; flex: 1; min-width: 260px; }
.esco-shop-searchicon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #8593A1; font-size: 14px; pointer-events: none; }
.esco-shop-search {
  width: 100%; padding: 14px 16px 14px 40px; border: 1px solid rgba(11,26,46,0.18);
  border-radius: 3px; font-size: 14.5px; color: var(--esco-navy); background: #FFFFFF;
  outline: none; font-family: var(--font-body); transition: border-color .15s ease;
}
.esco-shop-search:focus { border-color: var(--esco-orange); }
.esco-shop-actions { display: flex; align-items: center; gap: 10px; }
.esco-shop-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 18px; border-radius: 3px; font-size: 13.5px; font-weight: 700; }
.esco-shop-btn--ghost { border: 1px solid rgba(11,26,46,0.2); color: var(--esco-navy); background: #FFFFFF; }
.esco-shop-btn--ghost:hover { border-color: var(--esco-navy); }
.esco-shop-btn--solid { background: var(--esco-orange); color: #FFFFFF; }
.esco-shop-btn--solid:hover { background: var(--esco-orange-2); }

/* category chips */
.esco-shop-chips { display: flex; align-items: center; gap: 9px; margin-bottom: 18px; flex-wrap: wrap; }
.esco-shop-chip {
  padding: 9px 15px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer;
  border: 1px solid rgba(11,26,46,0.18); background: #FFFFFF; color: var(--esco-ink);
  white-space: nowrap; font-family: var(--font-body); transition: all .15s ease;
}
.esco-shop-chip:hover { border-color: rgba(11,26,46,0.4); }
.esco-shop-chip.active { background: var(--esco-navy); color: #FFFFFF; border-color: var(--esco-navy); }
.esco-shop-chip .n { font-family: var(--font-mono); font-size: 11px; opacity: 0.65; margin-left: 7px; }

.esco-shop-resultline { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--esco-muted); margin-bottom: 24px; }

/* product grid */
.esco-shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.esco-shopcard {
  display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid rgba(11,26,46,0.12);
  border-radius: 5px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.esco-shopcard:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(11,26,46,0.12); border-color: rgba(232,83,27,0.45); }
.esco-shopcard-media {
  position: relative; aspect-ratio: 4 / 3; border-bottom: 1px solid rgba(11,26,46,0.10);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: linear-gradient(135deg, var(--tag-bg, #E3E7EC), #FFFFFF 78%);
}
.esco-shopcard-type {
  position: absolute; top: 10px; left: 10px; font-family: var(--font-mono); font-size: 9px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--tag-color, var(--esco-navy));
  background: #FFFFFF; border: 1px solid rgba(11,26,46,0.08); border-radius: 2px; padding: 4px 7px;
}
.esco-shopcard-flags { position: absolute; top: 10px; right: 10px; display: flex; gap: 5px; }
.esco-shopcard-flags .es {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.05em; color: var(--esco-blue);
  background: #FFFFFF; border: 1px solid rgba(11,26,46,0.08); border-radius: 2px; padding: 4px 6px;
}
.esco-shopcard-flags .deal {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.05em; color: #B23A10;
  background: #FBE9E1; border-radius: 2px; padding: 4px 6px;
}
.esco-shopcard-ph { display: flex; flex-direction: column; align-items: center; gap: 9px; }
.esco-shopcard-phtag {
  position: relative; width: 58px; height: 46px; border: 2px solid var(--tag-color, var(--esco-navy));
  border-radius: 5px; background: rgba(255,255,255,0.4);
}
.esco-shopcard-phtag::before {
  content: ""; position: absolute; top: 8px; left: 9px; width: 9px; height: 9px; border-radius: 50%;
  background: var(--tag-color, var(--esco-navy));
}
.esco-shopcard-phbrand {
  font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: -0.02em;
  color: var(--tag-color, var(--esco-navy));
}
.esco-shopcard-phbrand span { color: var(--esco-orange); }
.esco-shopcard-body { padding: 16px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.esco-shopcard-body h3 {
  font-family: var(--font-display); font-weight: 600; font-size: 14.5px; letter-spacing: -0.005em;
  line-height: 1.3; color: var(--esco-navy); margin: 0; flex: 1;
}
.esco-shopcard-cta { color: #C7430F; font-size: 12.5px; }
.esco-shopcard-cta .esco-arrow { width: 5px; height: 5px; border-color: #C7430F; }

.esco-shop-empty { padding: 56px 22px; text-align: center; color: #8593A1; font-size: 15px; }

@media (max-width: 1100px) { .esco-shop-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .esco-shop-grid { grid-template-columns: repeat(2, 1fr); }
  .esco-shop-controls { flex-direction: column; align-items: stretch; }
  .esco-shop-actions { justify-content: flex-end; }
}
@media (max-width: 460px) { .esco-shop-grid { grid-template-columns: 1fr; } }