/* Homepage composition from fronend-design; current content remains authoritative. */
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 10001; padding: .7rem 1rem; transform: translateY(-200%); background: var(--white); color: var(--blue); }
.skip-link:focus { transform: translateY(0); }
.home-page .menu__label { display: none; }
.home-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: 5rem; background: var(--blue); }
.home-hero__video { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.home-hero::after { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgb(0 0 0 / .72), rgb(0 0 0 / .22)); }
.home-hero__artwork { position: absolute; right: 1rem; bottom: 0; width: min(46vw,42rem); max-height: 92%; object-fit: contain; object-position: right bottom; pointer-events: none; }
.home-hero .container { position: relative; z-index: 1; }
.home-hero__content { max-width: 36rem; }
.home-hero .eyebrow { display: none; }
.home-hero h1 { max-width: 100%; margin: 0 0 1.25rem; color: var(--white); font-size: 3rem; line-height: 1.3; font-weight: 400; letter-spacing: normal; }
.home-hero h1 em { font-style: normal; color: var(--hero-text-cyan); background: linear-gradient(245deg, var(--hero-text-cyan), var(--hero-text-pink)); background-clip: text; -webkit-text-fill-color: transparent; }
.home-hero p { max-width: 48ch; color: var(--white); font-size: 1.1rem; line-height: 1.75; }
.home-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.visual-framework .home-hero .home-actions .btn:first-child { background: linear-gradient(50deg,var(--hero-magenta),var(--hero-blue)); border: 1px solid transparent; color: var(--white); border-radius: .8rem; font-size: 1.2rem; font-weight: 700; }
.visual-framework .home-hero .home-actions .btn.btn--outline { background: rgb(0 0 0 / .2) !important; border-color: var(--hero-outline) !important; color: var(--white) !important; border-radius: .8rem; font-size: 1.2rem; font-weight: 700; }
.home-services, .home-sessions, .home-news, .home-trust, .home-recommendations, .enterprise { padding-block: 3rem; }
.home-services, .home-news, .enterprise { background: var(--smoke); }
.home-sessions, .home-trust, .home-recommendations { background: var(--white); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.section-heading h2 { margin: 0; }
.section-heading > p { max-width: 38ch; margin: 0; }
.home-services__grid, .home-news__grid, .home-trust__grid, .home-recommendations__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.home-services__grid > a, .home-trust__grid > a, .home-recommendations__grid article { display: flex; flex-direction: column; border: 1px solid var(--gray); border-radius: .4rem; background: var(--white); color: var(--color-text); overflow: hidden; text-decoration: none; }
.home-services__grid > a > img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.home-services__grid > a > div, .home-recommendations__grid article > div, .home-trust__grid > a { padding: 1.5rem; }
.home-services__grid span, .home-news__grid article > div, .home-recommendations__grid span, .home-session-card > div > span { color: var(--blue); font-size: .85rem; font-weight: 700; }
.home-services__grid h3, .home-session-card h3, .home-trust__grid h3 { margin: .75rem 0 .5rem; font-size: 1.4rem; line-height: 1.5; }
.home-services__grid p, .home-trust__grid p { margin: 0; }
.home-session-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
.home-session-card { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 2rem; border: 1px solid var(--gray); border-top: 4px solid var(--literacy-border); border-radius: .4rem; background: var(--white); }
.home-session-card--government { border-top-color: var(--gold); }
.home-session-card p { margin: 0; }
.home-news__grid article { padding-block: 1.25rem; border-top: 1px solid var(--gray); }
.home-news__grid article > div { display: flex; justify-content: space-between; gap: 1rem; }
.home-news__grid time { color: var(--dark); font-variant-numeric: tabular-nums; }
.home-news__grid h3 { font-size: 1.25rem; margin: .8rem 0 0; line-height: 1.6; }
.home-news__grid a, .home-recommendations__grid h3 a { color: var(--color-text); }
.home-trust__grid > a > span { display: none; }
.home-recommendations__grid img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.home-recommendations__grid h3 { margin-block: .75rem 1rem; font-size: 1.2rem; line-height: 1.5; }
.recommendation-link { color: var(--blue); }
.home-page .enterprise .logo-list { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; }
.home-page .enterprise .logo-list img { width: calc((100% - 4.5rem) / 7); height: 5rem; margin: 0; padding: .75rem; border: 1px solid var(--gray); border-radius: .4rem; background: var(--white); object-fit: contain; }
@media (max-width: 1100px) { .home-hero__content { max-width: 52%; } }
@media (max-width: 991px) { .home-recommendations__grid { grid-template-columns: 1fr; } }
@media (max-width: 767px) {
  .home-hero { padding-block: 3rem 0; display: flex; flex-direction: column; }
  .home-hero__artwork { position: relative; order: 2; align-self: center; right: auto; width: min(100%,28rem); max-height: none; margin-top: 2rem; }
  .home-hero__content { max-width: none; }
  .home-hero h1 { font-size: 2rem; }
  .home-actions .btn { width: 100%; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 1rem; }
  .home-services__grid, .home-session-grid, .home-news__grid, .home-trust__grid { grid-template-columns: 1fr; }
  .home-session-card { padding: 1.5rem; }
  .home-page .enterprise .logo-list { justify-content: flex-start; }
  .home-page .enterprise .logo-list img { width: calc((100% - 1.5rem) / 3); }
}
@media (prefers-reduced-motion: reduce) { .home-hero__video { display: none; } }
