/* Bootstrap provides the grid, breakpoints, controls and palette. */
.ars-site {
    --ars-ink: var(--bs-body-color, #203b56);
    --ars-blue: var(--bs-primary, #7fa3d1);
    --ars-green: var(--bs-secondary, #7dab1c);
    --ars-line: var(--bs-border-color, #dce5eb);
    --ars-soft: var(--bs-tertiary-bg, #f4f7fa);
}
.ars-site h1, .ars-site h2, .ars-site h3, .ars-site h4, .ars-site h5, .ars-site h6 {
    color: var(--ars-ink);
    line-height: 1.2;
    letter-spacing: -.02em;
}
.ars-site .navbar-mainnavigation { border-bottom: 1px solid var(--ars-line); }
.ars-site .navbar-brand img { object-fit: contain; }
.ars-site .navbar-mainnavigation .nav-link { font-size: .95rem; font-weight: 500; }
.ars-site .navbar-mainnavigation .nav-link:focus-visible,
.ars-site .subnav-link:focus-visible { outline: 3px solid var(--ars-ink); outline-offset: 3px; }
.ars-site .frame-header { margin-bottom: 1.25rem; }
.ars-site .section-default { padding-block: clamp(1.5rem, 3vw, 3rem); }
.ars-site .section-light { background: var(--ars-soft); padding-block: clamp(1.5rem, 3vw, 3rem); }
.ars-site .frame-type-subnavigation { border-left: 3px solid var(--ars-green); }
.ars-site .subnav-nav { padding-left: 0; }
.ars-site .subnav-link { padding: .8rem 1rem; border-bottom: 1px solid var(--ars-line); color: var(--ars-ink); }
.ars-site .subnav-item.active > .subnav-link { background: var(--ars-soft); font-weight: 600; }
.ars-site .subnav-nav .subnav-nav { padding-left: .8rem; }
.ars-site .bp-page-footer { border-top: 4px solid var(--ars-green); }
.ars-site .breadcrumb { font-size: .875rem; }
.ars-site .news-list-view .article { border-top: 3px solid var(--ars-blue); padding-top: 1rem; }

.ars-site .btn { border-radius: .4rem; }
.ars-site .ars-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: var(--ars-hero-min-height, 320px);
    overflow: hidden;
    background: #edf4f9;
    color: var(--ars-ink);
}
.ars-site .ars-hero__image {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
/* Retire the viewport-based overlay, including any previously cached rule. */
.ars-site .ars-hero::after { content: none; }
.ars-site .ars-hero__container { position: relative; z-index: 2; padding-block: 1.25rem; }
.ars-site .ars-hero__copy {
    position: relative;
    isolation: isolate;
    max-width: 31rem;
    padding: 1.35rem 1.6rem;
    background: transparent;
    border: 0;
    border-radius: 0;
}
/* Fade continuously across the text column, without an opaque plateau.
   The hero clips the oversized layer; no fixed viewport percentage is needed. */
.ars-site .ars-hero__copy::before {
    content: '';
    position: absolute;
    top: -100vh;
    bottom: -100vh;
    left: -100vw;
    right: -10rem;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, .97) 0%,
        rgba(255, 255, 255, .94) calc(100% - 41rem),
        rgba(255, 255, 255, .88) calc(100% - 31rem),
        rgba(255, 255, 255, .80) calc(100% - 19rem),
        rgba(255, 255, 255, .70) calc(100% - 10rem),
        rgba(255, 255, 255, .26) calc(100% - 4rem),
        rgba(255, 255, 255, 0) 100%
    );
}
.ars-site .ars-hero__kicker {
    margin-bottom: .65rem;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .1em;
}
.ars-site .ars-hero h1 { margin: 0; font-size: clamp(1.85rem, 3.2vw, 2.65rem); line-height: 1.12; text-wrap: balance; }
.ars-site .ars-hero__title-blue { display: block; color: var(--ars-hero-heading-blue, #496c98); }
.ars-site .ars-hero__title-green { display: block; color: var(--ars-hero-heading-green, #547813); }
.ars-site .ars-hero__text { margin-block: .85rem; font-size: 1rem; }
.ars-site .ars-hero__text p:last-child { margin-bottom: 0; }
.ars-site .ars-hero__button {
    margin-top: .25rem;
    padding: .65rem 1rem;
    color: #142b40;
    background: var(--ars-blue);
    border-color: var(--ars-blue);
}
.ars-site .ars-hero__button:hover,
.ars-site .ars-hero__button:focus-visible { color: #142b40; background: #dce8f5; border-color: var(--ars-blue); }
@media (max-width: 767.98px) {
    .ars-site .ars-hero { display: block; min-height: 0; }
    .ars-site .ars-hero::after,
    .ars-site .ars-hero__copy::before { display: none; }
    .ars-site .ars-hero__image { position: static; display: block; height: 9rem; }
    .ars-site .ars-hero__container { padding-block: 1rem; }
    .ars-site .ars-hero__copy { max-width: none; padding: 1rem 1.15rem; }
    .ars-site .ars-hero h1 { font-size: clamp(1.75rem, 6vw, 2.1rem); }
}

.ars-site .ars-quicklinks { padding-block: 1rem .5rem; }
.ars-site .ars-quicklinks__icon { width: 2.25rem; height: 2.25rem; flex: 0 0 auto; object-fit: contain; }
.ars-site .ars-quicklinks__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: 1fr;
}
.ars-site .ars-quicklinks__grid > .col { min-width: 0; }
.ars-site .ars-quicklinks__card {
    border: 1px solid var(--ars-line);
    --ars-card-accent: var(--ars-blue);
    --ars-card-accent-hover: var(--ars-green);
    border-top: 4px solid var(--ars-card-accent);
    border-radius: .75rem;
    overflow-wrap: anywhere;
}
.ars-site .ars-quicklinks__grid > .col:nth-child(even) .ars-quicklinks__card {
    --ars-card-accent: var(--ars-green);
    --ars-card-accent-hover: var(--ars-blue);
}
.ars-site .ars-quicklinks__card .card-body { padding: 1rem; }
.ars-site .ars-quicklinks__card .ars-quicklinks__title { font-size: 1rem; font-weight: 600; }
.ars-site .ars-quicklinks__copy { min-width: 0; }
.ars-site .ars-quicklinks__title a { color: #31557d; text-decoration: none; }
.ars-site .ars-quicklinks__title a:hover,
.ars-site .ars-quicklinks__title a:focus { text-decoration: none; }
.ars-site .ars-quicklinks__description { margin-top: .35rem; font-size: .875rem; }
.ars-site .ars-quicklinks__description > :last-child { margin-bottom: 0; }
.ars-site .ars-quicklinks__description a { position: relative; z-index: 2; }
.ars-site .ars-quicklinks__card a:focus-visible { outline: 3px solid #31557d; outline-offset: 4px; }
.ars-site .ars-quicklinks__card:hover,
.ars-site .ars-quicklinks__card:focus-within {
    background: var(--ars-soft);
    border-color: var(--ars-card-accent-hover);
}
@media (min-width: 576px) {
    .ars-site .ars-quicklinks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
    .ars-site .ars-quicklinks__grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
    }
}

.ars-site .ars-home-news {
    padding: clamp(1.25rem, 3vw, 2.5rem);
    background: #edf4f9;
    border-radius: .75rem;
}
.ars-site .ars-home-news__kicker {
    color: #496c98;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.ars-site .ars-home-news__card { border: 0; border-radius: .75rem; }
.ars-site .ars-home-news__card a { color: #31557d; }
.ars-site .ars-home-news__card a:focus-visible { outline: 3px solid #31557d; outline-offset: 4px; }

.ars-site .ars-home-news__image { width: 100%; aspect-ratio: 12 / 5; object-fit: cover; }
.ars-site .ars-home-news__teaser > :last-child { margin-bottom: 0; }
.ars-site .ars-home-news__teaser a { position: relative; z-index: 2; }

.ars-site .section-default:has(> .frame .ars-home-news) { padding-block-start: .5rem; }
.ars-site .news-list-view h3,
.ars-site .ars-home-news__title { font-size: clamp(1.25rem, 1.8vw, 1.5rem); }

.ars-site .ars-notice { padding-block: 1rem 0; }
.ars-site .ars-notice__panel {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    padding: 1rem clamp(1rem, 2.5vw, 1.5rem);
    background: #edf4f9;
    border: 1px solid var(--ars-line);
    border-inline-start: 4px solid var(--ars-green);
    border-radius: .5rem;
    overflow-wrap: anywhere;
}
.ars-site .ars-notice__icon {
    display: grid;
    place-items: center;
    flex: 0 0 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: #496c98;
    color: #fff;
    font-weight: 700;
}
.ars-site .ars-notice__title { margin: 0 0 .35rem; font-size: 1.125rem; }
.ars-site .ars-notice__text > :last-child { margin-bottom: 0; }

/* Interior pages using Bootstrap's left navigation layouts. */
.ars-site:is(.backendlayout-subnavigation_left, .backendlayout-subnavigation_left_2_columns) {
    .breadcrumb-section {
        background: var(--ars-soft);
        border-block-end: 1px solid var(--ars-line);
    }

    .frame-type-subnavigation {
        border: 1px solid var(--ars-line);
        border-radius: .65rem;
        background: #fff;
    }

    .subnav-link:hover {
        background: var(--ars-soft);
    }

    .subnav-item.active > .subnav-link {
        border-inline-start: 4px solid var(--ars-green);
        padding-inline-start: calc(1rem - 4px);
    }

    .maincontent-wrap h1.element-header {
        font-size: clamp(1.85rem, 3.6vw, 3rem);
    }

    .maincontent-wrap .frame-type-text .frame-inner > :is(p, ul, ol) {
        line-height: 1.7;
    }
}

/* Apply the editorial palette across content, News and navigation.
   The legacy stylesheet is loaded after the sitepackage on some pages. */
.ars-site {
    --ars-text-blue: #496c98;
    --ars-text-green: #547813;
}
.ars-site :is(h1, h2, h3, h4, h5, h6) {
    color: var(--ars-text-blue);
}
.ars-site a:any-link {
    color: var(--ars-text-blue) !important;
    text-decoration: none !important;
}
.ars-site a:any-link:is(:hover, :focus-visible, :active, .active, [aria-current]:not([aria-current="false"])),
.ars-site .active > a:any-link {
    color: var(--ars-text-green) !important;
}
.ars-site a:any-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
.ars-site a.btn:any-link:is(:hover, :focus-visible, :active, .active) {
    background-color: #edf4f9;
    border-color: var(--ars-text-green);
}

.ars-site .ars-team { margin-block: 1.75rem; }
.ars-site .ars-team h2 { margin-block-end: 1rem; font-size: clamp(1.3rem, 2.2vw, 1.7rem); }
.ars-site .ars-team__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr));
    gap: .75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ars-site .ars-team__grid--roles {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}
.ars-site .ars-team__card {
    padding: 1rem;
    border: 1px solid var(--ars-line);
    border-radius: .6rem;
    background: #f7fafd;
}
.ars-site .ars-team__card--class { display: flex; align-items: flex-start; gap: .75rem; }
.ars-site .ars-team__copy { min-width: 0; overflow-wrap: anywhere; }
.ars-site .ars-team__badge {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    min-width: 2rem;
    min-height: 2rem;
    padding-inline: .3rem;
    border-radius: .35rem;
    background: #edf3e3;
    color: var(--ars-text-green);
    font-weight: 700;
}
.ars-site .ars-team__card h3 { font-size: 1rem; margin: 0 0 .35rem; }
.ars-site .ars-team__contact { font-size: .875rem; }
.ars-site .ars-team__people > :last-child { margin-bottom: 0; }

.ars-site .ars-classes__grade { margin-block: 1.5rem; }
.ars-site .ars-classes__grade h2 { font-size: 1.25rem; }
.ars-site .ars-classes__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: .75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.ars-site .ars-classes__tile, .ars-site .ars-classes__head {
    display: flex;
    align-items: center;
    gap: .875rem;
    padding: 1rem;
    border-radius: .6rem;
}
.ars-site .ars-classes__tile {
    height: 100%;
    border: 1px solid var(--ars-line);
    border-inline-start: 4px solid var(--ars-blue);
    background: #f7fafd;
}
.ars-site .ars-classes__tile:hover, .ars-site .ars-classes__tile:focus-visible {
    border-color: var(--ars-green);
    background: #f3f7ed;
}
.ars-site .ars-classes__tile :is(img, svg), .ars-site .ars-classes__head :is(img, svg) {
    flex: none;
    object-fit: contain;
}
.ars-site .ars-classes__head, .ars-site .ars-classes__archive { background: #edf4f9; }
.ars-site .ars-classes__head { padding: clamp(1rem, 4vw, 2rem); margin-block-end: 1.5rem; }
.ars-site .ars-classes__head h1 { margin: 0 0 .35rem; }
.ars-site .ars-classes__kicker { color: var(--ars-text-green); font-weight: 700; margin: 0 0 .35rem; }
.ars-site .ars-classes__archive { padding: 1rem; border-radius: .6rem; }

.ars-site .ars-class-projects { margin-block: 1.5rem; }
.ars-site .ars-class-projects__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.ars-site .ars-class-projects__card {
    position: relative;
    border: 1px solid var(--ars-line);
    border-top: 4px solid var(--ars-blue);
    border-radius: .6rem;
}
.ars-site .ars-class-projects__card:hover,
.ars-site .ars-class-projects__card:focus-within { border-color: var(--ars-green); }
.ars-site .ars-class-projects__card .card-img-top { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

.ars-site .ars-project-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-block: 1.25rem;
}
@media (min-width: 768px) {
    .ars-site .ars-project-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
    .ars-site .ars-project-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.ars-site .ars-project-gallery__figure { margin: 0; min-width: 0; }
.ars-site .ars-project-gallery__link {
    display: block;
    overflow: hidden;
    border: 2px solid var(--ars-line);
    border-radius: .5rem;
    background: var(--ars-soft);
    cursor: zoom-in;
}
.ars-site .ars-project-gallery__link img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.ars-site .ars-project-gallery__link:is(:hover, :focus-visible) { border-color: var(--ars-green); }
@media (prefers-reduced-motion: no-preference) {
    .ars-site .ars-project-gallery__link img { transition: transform .2s ease; }
    .ars-site .ars-project-gallery__link:hover img { transform: scale(1.035); }
}
.ars-site .ars-project-gallery figcaption { margin-top: .3rem; font-size: .875rem; }
.ars-site .ars-project-gallery__media { grid-column: 1 / -1; }

/* Hide the Bootstrap frame when News renders its empty list message. */
.ars-class-page :is(.frame-type-news_pi1, .frame-type-news_newslist):has(.news > :is(.no-news-found, .alert)):not(:has(.news-list-view, .news-single)) {
    display: none;
}

/* News uses a list wrapper with Bootstrap 5 and direct items in its default view. */
.ars-site .news-list-view > .list-group:has(> .list-group-item),
.ars-site .news-list-view:has(> :is(.article, .list-group-item)) {
    display: grid;
    grid-template-columns: repeat(var(--ars-news-columns, 1), minmax(0, 1fr));
    gap: 1rem;
}

.ars-site .news-list-view:has(> :is(.article, .list-group-item)) > :not(.article, .list-group-item) {
    grid-column: 1 / -1;
}

.ars-site .news-list-view > .list-group > .list-group-item,
.ars-site .news-list-view > .list-group-item {
    border: var(--bs-list-group-border-width, 1px) solid var(--bs-list-group-border-color, var(--bs-border-color));
    border-radius: var(--bs-border-radius);
    min-width: 0;
}

.ars-site .news-list-view .news-list-item > * {
    width: 100%;
}

.ars-site .news-list-view .news-list-item > :first-child:has(img, video, iframe) {
    margin-bottom: .75rem;
}

@media (min-width: 768px) {
    .ars-site .news-list-view { --ars-news-columns: 2; }
}

@media (min-width: 992px) {
    .ars-site .news-list-view { --ars-news-columns: 3; }
}

/* Give News previews a consistent image area, independent of the source format. */
.ars-site .news-list-view :is(.news-list-item > :first-child, .news-img-wrap) img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

@media (min-width: 992px) {
    .ars-site.backendlayout-subnavigation_left .news-list-view {
        --ars-news-columns: 2;
    }
}

/* Keep News list cards focused on the title, teaser and article link. */
.ars-site .news-list-view :is(.news-list-item .extra, .news-list-date, .news-list-category) {
    display: none;
}

.ars-site :is(.news-list-view .lead, .news-list-view [itemprop="description"], .ars-home-news__teaser) {
    font-size: var(--bs-body-font-size, 1rem);
    font-weight: var(--bs-body-font-weight, 400);
}

.ars-site .news-list-view a:any-link:is(.btn-read-more, .more) {
    background: transparent;
    border-color: transparent;
    padding-inline: 0;
    font-weight: 600;
}

.ars-site .bp-page-footer a:any-link,
.ars-site .bp-page-footer a:any-link:is(:hover, :focus-visible, :active, .active, [aria-current]:not([aria-current="false"])),
.ars-site .bp-page-footer .active > a:any-link {
    color: inherit !important;
}

.ars-site .bp-page-footer a.btn:any-link:is(:hover, :focus-visible, :active, .active) {
    background-color: transparent;
    border-color: currentColor;
}

.ars-site .bp-page-footer a:any-link,
.ars-site .bp-page-footer a:any-link:is(:hover, :focus-visible, :active, .active, [aria-current]:not([aria-current="false"])),
.ars-site .bp-page-footer .active > a:any-link {
    text-decoration: underline !important;
    text-underline-offset: .15em;
}

.ars-site .footer-section-meta {
    background-color: #233f60;
    --frame-background: #233f60;
    --frame-color: #fff;
    padding-block: .75rem;
}

.ars-site .ars-footer-credits {
    margin-block-start: .5rem;
}
