.category-page {
  --page-accent: var(--blue);
  --page-accent-text: #195d98;
  --page-accent-on-dark: #79c8f2;
  --page-accent-button-text: var(--navy);
  --page-soft: #dfefff;
  --page-ink: var(--navy);
  background: var(--paper);
}

.theme-school { --page-accent-text: #796000; --page-accent-on-dark: #f2cf4a; --page-accent-button-text: var(--navy); --page-accent: #f2cf4a; --page-soft: #fbf4cf; }
.theme-company { --page-accent-text: #4f6070; --page-accent-on-dark: #aeb7c0; --page-accent-button-text: var(--navy); --page-accent: #aeb7c0; --page-soft: #eceff2; }
.theme-teacher { --page-accent-text: #9b4313; --page-accent-on-dark: #f29a55; --page-accent-button-text: var(--navy); --page-accent: #f29a55; --page-soft: #fbe8d9; }
.theme-young { --page-accent-text: #176082; --page-accent-on-dark: #73c9ed; --page-accent-button-text: var(--navy); --page-accent: #73c9ed; --page-soft: #e2f4fc; }
.theme-parent { --page-accent-text: #256b42; --page-accent-on-dark: #70c58d; --page-accent-button-text: var(--navy); --page-accent: #70c58d; --page-soft: #e2f3e8; }
.theme-events { --page-accent-text: #006b60; --page-accent-on-dark: #70ddd0; --page-accent-button-text: var(--navy); --page-accent: #12a899; --page-soft: #d8f1ee; }
.theme-resources { --page-accent-text: #195d98; --page-accent-on-dark: #79c8f2; --page-accent-button-text: #fff; --page-accent: #1f70bd; --page-soft: #dfeeff; }
.theme-about { --page-accent-text: #98104f; --page-accent-on-dark: #f3a0c7; --page-accent-button-text: #fff; --page-accent: #bd1263; --page-soft: #f8dce9; }

.category-page .site-header:not(.is-scrolled) { color: var(--white); }
.category-page .mobile-menu__inner { padding-bottom: 28px; }

.page-hero {
  position: relative;
  min-height: 720px;
  padding: 172px 0 90px;
  display: flex;
  align-items: center;
  color: var(--white);
  background: var(--navy);
  overflow: hidden;
}

.page-hero::before {
  content: "";
  position: absolute;
  width: 700px;
  height: 700px;
  right: -350px;
  top: -310px;
  border: 115px solid color-mix(in srgb, var(--page-accent) 42%, transparent);
  border-radius: 50%;
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7,27,52,1) 0 45%, rgba(7,27,52,.74) 62%, rgba(7,27,52,.35));
}

.page-hero__media { position: absolute; inset: 0 0 0 42%; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; filter: saturate(.72) contrast(1.08); }
.theme-school .page-hero__media img { object-position: 54% center; }
.theme-company .page-hero__media img { object-position: 50% center; }
.theme-young .page-hero__media img, .theme-parent .page-hero__media img { object-position: 47% center; }
.theme-teacher .page-hero__media img { object-position: 50% center; }
.theme-events .page-hero__media img { object-position: 46% center; }
.theme-resources .page-hero__media img { object-position: 51% center; }
.theme-about .page-hero__media img { object-position: 52% center; }
.theme-sponsor .page-hero__media img { object-position: 50% center; }
.page-hero__content { position: relative; z-index: 2; }
.page-breadcrumb { margin-bottom: 54px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.6); font-size: .77rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.page-breadcrumb span { color: var(--page-accent); }
.page-hero__copy { max-width: 780px; }
.page-hero__copy .eyebrow { color: var(--page-accent); }
.page-hero h1 { margin: 0; font-size: clamp(4rem, 7.3vw, 7.4rem); line-height: .88; letter-spacing: -.065em; }
.page-hero h1 em { color: var(--page-accent); }
.page-hero__lead { max-width: 620px; margin: 30px 0 0; color: rgba(255,255,255,.75); font-size: 1.08rem; line-height: 1.75; }
.page-hero__actions { margin-top: 34px; display: flex; align-items: center; gap: 26px; }
.category-page .page-hero .button--primary { color: var(--page-ink); background: var(--page-accent); box-shadow: none; }
.category-page .page-hero .button--primary:hover { filter: brightness(.93); }
.page-hero__meta { position: absolute; z-index: 3; right: max(28px, calc((100vw - 1180px)/2)); bottom: 42px; width: 260px; padding: 20px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; background: rgba(7,27,52,.55); backdrop-filter: blur(12px); }
.page-hero__meta strong { display: block; margin-bottom: 8px; color: var(--page-accent); font-size: 1.7rem; }
.page-hero__meta span { color: rgba(255,255,255,.66); font-size: .81rem; line-height: 1.45; }
.page-hero__meta--mim { width: 368px; padding: 22px; }
.page-hero__meta-logo { width: 100%; height: auto; display: block; margin-bottom: 10px; padding: 10px; border: 1px solid rgba(255,255,255,.9); border-radius: 14px; background: #fff; box-shadow: 0 14px 34px rgba(0,0,0,.26), 0 0 0 4px rgba(255,255,255,.08); }

.page-intro { padding: 112px 0; background: var(--white); }
.page-intro__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10vw; align-items: start; }
.page-intro__sticky { position: sticky; top: 115px; }
.theme-young [aria-labelledby="young-value"] .eyebrow { font-size: .89rem; }
.page-intro h2, .page-process h2, .page-showcase h2, .page-next h2 { margin: 0; font-size: clamp(2.8rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.page-intro h2 em, .page-process h2 em, .page-showcase h2 em, .page-next h2 em { color: var(--page-accent-text); }
.page-intro__lead { margin-top: 24px; color: var(--muted); line-height: 1.75; }
.benefit-list { display: grid; }
.benefit { padding: 32px 0; display: grid; grid-template-columns: 50px 1fr; gap: 22px; border-top: 1px solid var(--line); }
.benefit:last-child { border-bottom: 1px solid var(--line); }
.benefit > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--page-ink); background: var(--page-accent); border-radius: 50%; font-size: .79rem; font-weight: 850; }
.benefit h3 { margin: 0 0 9px; font-size: 1.35rem; letter-spacing: -.025em; }
.benefit p { margin: 0; color: var(--muted); line-height: 1.65; }

.team-section { padding: 0 0 120px; background: var(--white); }
.team-section__heading { margin-bottom: 42px; display: grid; grid-template-columns: 1.15fr .65fr; gap: 9vw; align-items: end; }
.team-section__heading h2 { margin: 0; font-size: clamp(2.8rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.team-section__heading h2 em { color: var(--page-accent-text); }
.team-section__heading > p { max-width: 440px; margin: 0 0 6px; color: var(--muted); line-height: 1.75; }
.team-section__photo { position: relative; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 30px; background: var(--cream); box-shadow: 0 28px 70px rgba(7,27,52,.16); }
.team-section__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 65%, rgba(7,27,52,.48)); pointer-events: none; }
.team-section__photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 64%; }
.team-section__photo figcaption { position: absolute; z-index: 1; left: 24px; bottom: 22px; padding: 10px 15px; color: var(--navy); border-radius: 999px; background: rgba(255,255,255,.9); backdrop-filter: blur(10px); font-size: .76rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }

.impact-section { padding: 118px 0; background: var(--white); }
.impact-section__layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: start; }
.impact-section__copy { position: sticky; top: 115px; }
.impact-section h2, .target-map-section h2 { margin: 0; font-size: clamp(2.8rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.impact-section h2 em, .target-map-section h2 em { color: var(--page-accent-text); }
.impact-section__copy > p:not(.eyebrow), .target-map-section__heading > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; }
.sdg-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sdg-card { min-height: 270px; padding: 26px; display: flex; flex-direction: column; align-items: flex-start; border: 1px solid var(--line); border-radius: 22px; background: var(--paper); }
.sdg-card__icon { width: 108px; height: 108px; display: block; object-fit: contain; border-radius: 18px; box-shadow: 0 16px 34px rgba(7,27,52,.14); }
.sdg-card h3 { margin: 30px 0 10px; font-size: 1.25rem; line-height: 1.15; }
.sdg-card p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.6; }

.page-process { padding: 120px 0; background: var(--cream); }
.page-process__heading { max-width: 800px; margin-bottom: 58px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.process-card { min-height: 315px; padding: 28px; display: flex; flex-direction: column; border-radius: 22px; background: var(--white); transition: transform .35s var(--ease), box-shadow .35s; }
.process-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }
.process-card > span { color: var(--page-accent-text); font-size: .78rem; font-weight: 850; }
.process-card__symbol { width: 72px; height: 72px; margin: 44px 0 34px; display: grid; place-items: center; border-radius: 50%; background: var(--page-soft); font-size: 1.7rem; }
.process-card h3 { margin: auto 0 10px; font-size: 1.25rem; }
.process-card p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.6; }

.page-showcase { padding: 125px 0; color: var(--white); background: var(--navy); }
.page-showcase__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; align-items: center; }
.page-showcase__copy > p:not(.eyebrow) { margin: 26px 0; color: rgba(255,255,255,.65); line-height: 1.75; }
.page-showcase__panel { padding: 36px; border: 1px solid rgba(255,255,255,.15); border-radius: 26px; background: rgba(255,255,255,.06); }
.page-showcase__panel > p { margin: 0 0 24px; color: rgba(255,255,255,.45); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.check-list { display: grid; gap: 0; }
.check-list div { padding: 17px 0; display: grid; grid-template-columns: 28px 1fr; align-items: start; gap: 12px; border-top: 1px solid rgba(255,255,255,.11); }
.check-list span { width: 22px; height: 22px; display: grid; place-items: center; color: var(--page-ink); background: var(--page-accent); border-radius: 50%; font-size: .74rem; font-weight: 900; }
.check-list strong { font-size: .97rem; }
.check-list small { display: block; margin-top: 5px; color: rgba(255,255,255,.52); line-height: 1.5; }
.inline-mim-logo { width: 300px; max-width: 100%; height: auto; display: block; margin-bottom: 10px; padding: 10px; border: 1px solid rgba(255,255,255,.9); border-radius: 14px; background: #fff; box-shadow: 0 14px 34px rgba(0,0,0,.26), 0 0 0 4px rgba(255,255,255,.08); }

.package-grid, .article-grid, .event-grid { margin-top: 54px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.package-card, .article-tile, .event-card { padding: 30px; border-radius: 24px; background: var(--white); box-shadow: 0 12px 40px rgba(7,27,52,.06); }
.package-card { min-height: 370px; display: flex; flex-direction: column; }
.package-card.featured { color: var(--white); background: var(--page-accent); transform: translateY(-16px); }
.package-card > span { color: var(--muted); font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .11em; }
.package-card.featured > span { color: inherit; opacity: .68; }
.package-card h3 { margin: 46px 0 14px; font-size: 1.8rem; }
.package-card p { margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.package-card.featured p { color: inherit; opacity: .72; }
.package-card ul { margin: 0; padding: 0; display: grid; gap: 10px; list-style: none; font-size: .87rem; }
.package-card li::before { content: "✓"; margin-right: 9px; color: var(--page-accent); font-weight: 900; }
.package-card.featured li::before { color: inherit; }
.package-card a { margin-top: auto; padding-top: 24px; border-top: 1px solid var(--line); font-weight: 800; font-size: .87rem; }

.service-page { padding: 154px 0 100px; background: var(--paper); }
.service-page__intro { max-width: 780px; }
.service-page h1 { margin: 0; font-size: clamp(3.3rem, 7vw, 6.4rem); line-height: .92; letter-spacing: -.06em; }
.service-page__lead { max-width: 650px; margin: 28px 0 0; color: var(--muted); font-size: 1.1rem; line-height: 1.7; }
.service-panel { margin-top: 56px; padding: clamp(28px, 5vw, 58px); border-radius: 28px; background: var(--white); box-shadow: var(--shadow); }
.service-panel h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.05em; }
.service-panel p, .service-panel li { color: var(--muted); line-height: 1.7; }
.service-panel ul { padding-left: 1.2rem; }
.service-panel__notice { padding: 22px; border-left: 4px solid var(--magenta); border-radius: 10px; background: var(--cream); }

.event-card { overflow: hidden; padding: 0; }
.event-card__visual { min-height: 230px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; color: var(--white); background: var(--navy); }
.event-card:nth-child(2) .event-card__visual { background: var(--page-accent); }
.event-card:nth-child(3) .event-card__visual { color: var(--navy); background: var(--page-soft); }
.event-card__date { align-self: flex-start; padding: 8px 11px; border-radius: 20px; background: rgba(255,255,255,.16); font-size: .73rem; font-weight: 800; }
.event-card__visual strong { max-width: 260px; font-size: 2rem; line-height: .98; letter-spacing: -.05em; }
.event-card__body { padding: 25px; }
.event-card__body p { margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.event-card__body a { font-size: .85rem; font-weight: 850; }

.article-tile { min-height: 330px; display: flex; flex-direction: column; }
.article-tile > span { color: var(--page-accent-text); font-size: .76rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.article-tile h3 { margin: 60px 0 18px; font-size: 1.55rem; line-height: 1.2; }
.article-tile p { margin: 0; color: var(--muted); line-height: 1.6; }
.article-tile a { margin-top: auto; font-size: .85rem; font-weight: 850; }

.target-map-section { padding: 120px 0; background: var(--white); }
.target-map-section__heading { margin-bottom: 52px; display: grid; grid-template-columns: 1fr .72fr; gap: 8vw; align-items: end; }
.target-map-section__heading > p:not(.eyebrow) { margin: 0 0 6px; }
.target-map { display: grid; border-top: 1px solid var(--line); }
.target-map__row { padding: 26px 0; display: grid; grid-template-columns: 170px 1fr 145px; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); }
.target-map__target { justify-self: start; padding: 9px 12px; color: var(--page-ink); background: var(--page-soft); border-radius: 999px; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.target-map__row h3 { margin: 0; font-size: 1.22rem; letter-spacing: -.02em; }
.target-map__row p { margin: 7px 0 0; color: var(--muted); line-height: 1.55; }
.target-map__services { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 8px; }
.target-map__services span { padding: 7px 10px; color: color-mix(in srgb, var(--navy) 72%, var(--page-accent)); border-radius: 999px; background: color-mix(in srgb, var(--page-soft) 68%, white); font-size: .76rem; font-weight: 800; }
.target-map__row a { justify-self: end; font-size: .84rem; font-weight: 900; }

.page-next { padding: 118px 0; background: var(--page-soft); }
.page-next__layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 8vw; align-items: center; }
.page-next__copy > p:not(.eyebrow) { margin: 26px 0 32px; color: var(--muted); line-height: 1.7; }
.next-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.next-card { min-height: 145px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid rgba(7,27,52,.13); border-radius: 18px; background: rgba(255,255,255,.45); transition: background .25s, transform .25s; }
.next-card:hover { background: var(--white); transform: translateY(-4px); }
.next-card small { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.next-card strong { display: flex; justify-content: space-between; font-size: 1.1rem; }

.category-footer { padding-top: 65px; }
.category-footer .footer__top { padding-bottom: 44px; }

@media (max-width: 1050px) {
  .category-page .desktop-nav { display: none; }
  .page-hero__meta { display: none; }
  .page-intro__grid, .impact-section__layout, .page-showcase__layout, .page-next__layout { grid-template-columns: 1fr; gap: 55px; }
  .page-intro__sticky, .impact-section__copy { position: static; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .package-grid, .article-grid, .event-grid { grid-template-columns: 1fr 1fr; }
  .package-card.featured { transform: none; }
  .team-section__heading { grid-template-columns: 1fr; gap: 24px; }
  .target-map-section__heading { grid-template-columns: 1fr; gap: 24px; }
  .target-map__row { grid-template-columns: 150px 1fr; }
  .target-map__row a { justify-self: start; grid-column: 2; }
}

@media (max-width: 740px) {
  .page-hero { min-height: 790px; padding: 132px 0 80px; align-items: flex-end; }
  .page-hero__media { inset: 0; }
  .page-hero__media img { object-position: 64% center; }
  .theme-school .page-hero__media img { object-position: 54% center; }
  .theme-company .page-hero__media img,
  .theme-young .page-hero__media img,
  .theme-parent .page-hero__media img,
  .theme-teacher .page-hero__media img,
  .theme-events .page-hero__media img,
  .theme-resources .page-hero__media img,
  .theme-about .page-hero__media img,
  .theme-sponsor .page-hero__media img { object-position: 50% center; }
  .page-hero::after { background: linear-gradient(0deg, rgba(7,27,52,1) 0 20%, rgba(7,27,52,.82) 62%, rgba(7,27,52,.22)); }
  .page-breadcrumb { margin-bottom: 32px; }
  .page-hero h1 { font-size: clamp(3.4rem, 15vw, 5rem); }
  .page-hero__lead { font-size: .94rem; line-height: 1.6; }
  .page-hero__actions { align-items: flex-start; flex-direction: column; }
  .page-intro, .impact-section, .page-process, .page-showcase, .target-map-section, .page-next { padding: 88px 0; }
  .team-section { padding: 0 0 88px; }
  .team-section__photo { aspect-ratio: 3 / 4; border-radius: 22px; }
  .team-section__photo img { object-position: center; }
  .team-section__photo figcaption { left: 16px; bottom: 16px; }
  .sdg-card__icon { width: 96px; height: 96px; border-radius: 16px; }
  .sdg-grid, .process-grid, .package-grid, .article-grid, .event-grid, .next-grid, .target-map__row { grid-template-columns: 1fr; }
  .target-map__row a { grid-column: auto; }
  .process-card { min-height: 270px; }
  .page-showcase__panel { padding: 25px; }
  .package-card { min-height: 340px; }
}

.parents-sequence { list-style: none; padding: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
[id] { scroll-margin-top: 100px; }
@media (max-width: 700px) { .parents-sequence { grid-template-columns: 1fr; } }

/* Product catalogue: same palette and typography, shared static template. */
.catalog-section { padding: 72px 0; background: var(--white, #fff); }
.catalog-section--tint { background: var(--cream, #f5f3eb); }
.catalog-section h2 { font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.1; margin: 0 0 24px; letter-spacing: -.04em; }
.catalog-lead { max-width: 760px; font-size: 1.1rem; line-height: 1.7; margin: 20px 0 30px; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 20px; }
.catalog-card { padding: 30px; border: 1px solid rgba(7,27,52,.14); border-radius: 22px; display: flex; flex-direction: column; gap: 18px; background: #fff; }
.catalog-card h3 { font-size: 1.55rem; line-height: 1.2; margin: 0; }
.catalog-card p { margin: 0; line-height: 1.6; }
.catalog-card__actions { margin-top: auto; display: flex; align-items: flex-start; flex-direction: column; gap: 18px; padding-top: 14px; }
.catalog-contact { text-decoration: underline; text-underline-offset: 4px; font-size: .95rem; }
.product-hero { padding: 150px 0 70px; background: var(--navy); color: var(--white); }
.product-hero h1 { font-size: clamp(2.7rem, 6vw, 5.5rem); line-height: 1.04; max-width: 1000px; letter-spacing: -.045em; }
.product-hero .page-breadcrumb { position: static; margin-bottom: 32px; }
.product-hero .eyebrow { color: var(--lime); }
.product-actions, .catalog-filters { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }
.catalog-filters { margin: 25px 0 35px; }
.catalog-filters a { border-bottom: 2px solid var(--magenta); padding: 8px 0; }
.product-note { max-width: 700px; font-size: .95rem; line-height: 1.6; margin-top: 24px; }
.product-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; }
.product-layout p { font-size: 1rem; line-height: 1.8; margin-bottom: 32px; }
.product-benefits { background: var(--cream, #f5f3eb); padding: 35px; border-radius: 22px; }
.product-benefits ul { padding-left: 22px; margin-bottom: 30px; }
.product-benefits li { margin: 14px 0; line-height: 1.6; }
.product-related { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 32px; }
.journey-list { list-style: none; padding: 0; margin-top: 30px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.journey-list li a { height: 100%; display: flex; flex-direction: column; gap: 16px; padding: 28px; border: 1px solid rgba(7,27,52,.15); border-radius: 20px; }
.journey-list span { font-size: .85rem; text-transform: uppercase; font-weight: 700; }
.journey-list strong { font-size: 1.4rem; line-height: 1.25; }
.journey-list p { line-height: 1.6; }
.journey-list b { margin-top: auto; color: var(--magenta); }
@media (max-width: 800px) {
 .product-layout { grid-template-columns: 1fr; gap: 28px; }
 .journey-list { grid-template-columns: 1fr; }
 .catalog-section { padding: 48px 0; }
 .product-hero { padding-top: 125px; }
}

/* Product discovery: clear paths by audience, with source brochures at detail level. */
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 32px; }
.catalog-heading h2 { margin-bottom: 0; }
.catalog-grid--featured { grid-template-columns: repeat(4,minmax(0,1fr)); }
.catalog-card__visual { margin: -30px -30px 4px; overflow: hidden; border-radius: 21px 21px 0 0; }
.catalog-card__visual img { display: block; width: 100%; height: 175px; object-fit: cover; transition: transform .25s ease; }
.catalog-card__visual:hover img { transform: scale(1.03); }
.catalog-card__actions a { line-height: 1.5; }
.product-hero__layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center; }
.product-hero__layout:not(:has(.product-hero__visual)) { grid-template-columns: 1fr; }
.product-hero__visual { margin: 0; }
.product-hero__visual img { display: block; width: 100%; aspect-ratio: 1.15; object-fit: cover; border-radius: 120px 24px 24px 24px; }
.product-hero .inline-link { color: #fff; }
.product-brochure-link { display: inline-flex; margin-top: 28px; }
.program-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.program-grid article { border-top: 1px solid #ccd1d6; padding-top: 24px; }
.program-grid h3 { font-size: 1.5rem; line-height: 1.3; margin: 14px 0; }
.program-grid p { line-height: 1.75; }
.program-step { font-size: .9rem; font-weight: 800; color: var(--magenta); }
.brochure-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,420px),1fr)); gap: 28px; }
.brochure-card { display: grid; grid-template-columns: 155px 1fr; gap: 28px; padding: 28px; border-radius: 22px; background: #fff; border: 1px solid #dce0e3; align-items: center; }
.brochure-card__cover { display: block; box-shadow: 0 8px 28px #152c3d1c; background: #fff; }
.brochure-card__cover img { display: block; width: 100%; height: 220px; object-fit: contain; }
.brochure-card h3 { font-size: 1.3rem; line-height: 1.4; margin: 14px 0 22px; }
.brochure-card .inline-link { display: inline-flex; margin-bottom: 16px; }
.brochure-download { display: block; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:1100px) { .catalog-grid--featured { grid-template-columns: repeat(2,minmax(0,1fr)); } .product-hero__layout { gap: 32px; } }
@media(max-width:700px) {
 .catalog-heading { display: block; } .catalog-heading > a { margin-top: 24px; }
 .catalog-grid--featured,.product-hero__layout,.program-grid { grid-template-columns: 1fr; }
 .product-hero__visual img { max-height: 340px; border-top-left-radius: 70px; }
 .brochure-card { grid-template-columns: 95px 1fr; gap: 18px; padding: 22px; }
 .brochure-card__cover img { height: 150px; }
 .brochure-card h3 { font-size: 1.15rem; }
}

/* Contrast checked against the actual light and dark page surfaces. */
.page-showcase h2 em, .page-hero h1 em, .page-hero__copy .eyebrow, .page-breadcrumb span, .page-hero__meta strong { color: var(--page-accent-on-dark); }
.page-showcase__panel > p { color: rgba(255,255,255,.78); }
.category-page .page-hero .button--primary, .benefit > span, .check-list span { color: var(--page-accent-button-text); }
.package-card.featured { color: var(--page-accent-button-text); }
.package-card.featured > span, .package-card.featured p { opacity: 1; }
.event-card:nth-child(2) .event-card__visual { color: var(--page-accent-button-text); }
