/* Slider arrows sit over the image, separate from linked banner content. */
.banner-arrow {
    position: absolute;
    z-index: 3;
    top: 50%;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    padding: 0;
    transform: translateY(-50%);
    color: #fff;
    background: rgba(12, 51, 43, .76);
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    cursor: pointer;
}
.banner-arrow--previous { right: clamp(8px, 2vw, 28px); }
.banner-arrow--next { left: clamp(8px, 2vw, 28px); }
.banner-arrow svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.banner-arrow:hover { background: #176150; }
.banner-arrow:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

/* Compact landing pages; archive and detail pages keep their own layouts. */
.assembly-main .assembly-section,
.school-main .school-section { padding-block: 36px; }
.assembly-main .section-heading,
.school-main .school-section-heading { gap: 20px; margin-bottom: 18px; }
.assembly-main .section-heading h2,
.assembly-main .about-content h2,
.school-main .school-section-heading h2,
.school-main .school-history-heading h2 { font-size: clamp(1.2rem, 2vw, 1.65rem); }
.assembly-main .section-heading > p { max-width: 460px; font-size: .78rem; }
.assembly-main .section-kicker { margin-bottom: 6px; font-size: .65rem; }
.assembly-main .directory-separator { margin-block: 26px; }
.assembly-main .assembly-empty { min-height: 100px; padding: 18px; }
.school-main .school-empty { min-height: 130px; padding: 20px; }
.school-main .school-history-heading { margin-bottom: 26px; }
.assembly-main .about-visual { min-height: 220px; }
.assembly-main .about-layout { gap: 36px; }
.assembly-main .home-global-search { padding-top: 24px; }
.assembly-main .home-global-search__panel { padding: 22px 26px; border-radius: 18px; }
.assembly-main .home-global-search__intro h2 { font-size: 1.35rem; }
.assembly-main .home-global-search__form { margin-top: 14px; }
.assembly-main .home-global-search__scope { margin-top: 10px; }

/* A single row, even with many records. Native scrolling also works without JS. */
.public-site .home-card-row {
    display: grid;
    grid-template-columns: none;
    grid-template-rows: auto;
    grid-auto-flow: column;
    grid-auto-columns: min(var(--home-card-width, 270px), 82vw);
    align-items: stretch;
    gap: 16px;
    max-width: 100%;
    min-width: 0;
    padding: 8px 4px 14px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 4px;
    scrollbar-width: thin;
    scrollbar-color: #8aa99b transparent;
    -webkit-overflow-scrolling: touch;
}
.home-card-row > * { min-width: 0; grid-column: auto; grid-row: auto; scroll-snap-align: start; }
.public-site .home-card-row:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 8px; }
.home-card-row.directory-logo-grid { --home-card-width: 184px; }
.home-card-row.useful-grid { --home-card-width: 152px; }
.home-card-row.thematic-square-grid { --home-card-width: 206px; }
.home-card-row.instructor-home-grid { --home-card-width: 184px; }
.home-card-row.school-committee-links { --home-card-width: 250px; }
.home-card-row .directory-logo-card { min-height: 166px; padding: 16px 12px; border-radius: 14px; }
.home-card-row .directory-logo { width: 86px; height: 86px; margin-bottom: 12px; }
.home-card-row .directory-logo-card h3 { font-size: .78rem; }
.home-card-row .committee-school-name { margin-bottom: 0; }
.home-card-row .useful-card { min-height: 136px; border-radius: 12px; }
.home-card-row .useful-logo { width: 68px; height: 68px; border-radius: 12px; }
.home-card-row .instructor-home-card { padding: 16px 12px; border-radius: 14px; }
.home-card-row .instructor-home-card > div { width: 80px; height: 80px; margin-bottom: 10px; }
.home-card-row .thematic-square-card { aspect-ratio: auto; min-height: 180px; padding: 16px; border-radius: 14px; }
.home-card-row .thematic-square-card h3 { font-size: .88rem; }
.home-card-row .news-card { border-radius: 14px; }
.home-card-row .news-card__link { display: block; }
.home-card-row .news-card__body { padding: 14px 16px 16px; }
.home-card-row .news-card h3 { min-height: 44px; font-size: .86rem; }
.home-card-row .news-card--featured .news-card__media { min-height: 0; }
.home-card-row .school-study-path-card > a { min-height: 215px; padding: 16px; }
.home-card-row .school-study-path-card__number { margin-bottom: 10px; }

.home-row-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.home-row-controls[hidden] { display: none; }
.home-row-controls button {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--green-800);
    background: var(--white);
    font: inherit;
    font-size: 1.15rem;
    cursor: pointer;
}
.home-row-controls button:disabled { opacity: .35; cursor: default; }
.home-row-controls button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.home-row-controls button:not(:disabled):hover { background: var(--green-100); }

@media (max-width: 767.98px) {
    .assembly-main .assembly-section,
    .school-main .school-section { padding-block: 26px; }
    .assembly-main .section-heading,
    .school-main .school-section-heading { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
    .assembly-main .section-heading > p { margin: 0; padding: 0; border: 0; font-size: .73rem; }
    .assembly-main .directory-separator { margin-block: 22px; }
    .assembly-main .home-global-search__panel { padding: 18px; }
    .public-site .home-card-row { gap: 12px; }
    .home-card-row.directory-logo-grid,
    .home-card-row.instructor-home-grid { --home-card-width: 160px; }
}
