/* Interior page banner */
.ap-banner {
  position: relative; isolation: isolate;
  display: flex; align-items: flex-end;
  min-height: clamp(320px, 42vh, 460px);
  padding-top: 76px;                 /* clear fixed header */
  background-size: cover; background-position: center;
  color: #fff; overflow: hidden;
}
.ap-banner__scrim {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(14,29,25,0.55) 0%, rgba(14,29,25,0.35) 45%, rgba(14,29,25,0.78) 100%),
    linear-gradient(90deg, rgba(14,29,25,0.6) 0%, rgba(14,29,25,0.15) 60%, transparent 100%);
}
.ap-banner__inner { padding-block: clamp(2.5rem, 1.5rem + 4vw, 4rem); }
.ap-breadcrumb {
  font-size: 0.9375rem; font-weight: 500; letter-spacing: 0.01em;
  color: rgba(255,255,255,0.75); margin-bottom: 1.15rem;
  display: flex; flex-wrap: wrap; gap: 0.55rem; align-items: center;
}
.ap-breadcrumb a { color: rgba(255,255,255,0.85); text-underline-offset: 3px; transition: color var(--ap-dur-fast) var(--ap-ease); }
.ap-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.ap-breadcrumb span[aria-hidden] { opacity: 0.45; }
.ap-breadcrumb [aria-current="page"] { color: #fff; }
.ap-banner__eyebrow {
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ap-sage); margin: 0 0 0.75rem;
}
.ap-banner .ap-banner__title {
  color: #fff; font-family: var(--ap-font-head); font-weight: 700;
  font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem); line-height: 1.08;
  letter-spacing: -0.02em; margin: 0;
}
.ap-banner__subtitle {
  margin: 1rem 0 0; max-width: 620px;
  font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem); line-height: 1.55;
  color: rgba(255,255,255,0.9);
}
