/* Shared footer: navigation, school identity, and visitor preferences. */
.footer { padding-block: clamp(3rem, 6vw, 6rem) 2rem; }
.footer__grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.15fr);
    gap: 2rem;
    align-items: start;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.footer__grid > *, .footer__bottom > *, .footer__list > * { min-width: 0; }
.footer__heading { min-height: 2.6em; margin: 0 0 .8rem; line-height: 1.3; text-wrap: balance; }
.footer__list { gap: .15rem; }
.footer__list a { display: inline-flex; align-items: center; min-height: 36px; padding-block: .35rem; overflow-wrap: anywhere; line-height: 1.5; }
.footer__contact .footer__list { gap: .6rem; }
.footer__contact address { font-style: normal; }
.footer__contact .footer__phone { white-space: nowrap; }
.footer__phone-note { display: block; margin-top: -.15rem; color: var(--text-invert-2); font-size: .78rem; line-height: 1.5; }
.footer__logo > p:last-of-type { margin: 0; }
.footer__logo .footer__claim { margin: 0 0 .35rem; }
.footer__logo svg { color: #fff; }
.footer__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem 2rem;
    padding-top: 1.35rem;
    border-top: 1px solid rgb(255 255 255 / 18%);
    font-size: .8rem;
}
.footer__identity { grid-column: 1 / -1; margin: 0; line-height: 1.7; overflow-wrap: anywhere; }
.footer__ico { display: inline-block; margin-inline-start: 1rem; white-space: nowrap; }
.footer__bottom .footer__legal { align-items: center; gap: .1rem 1.25rem; padding: 0; border: 0; color: inherit; }
.footer__preferences, .footer__languages { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem 1.25rem; }
.footer__preferences { justify-content: flex-end; }
.footer__bottom a, .footer__bottom button { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; line-height: 1.5; text-underline-offset: .2em; }
.footer__bottom button { background: none; border: 0; font: inherit; text-align: start; cursor: pointer; }
.footer__legal .cookies-settings { color: #fff; }
.footer__bottom button:hover { color: #ff5fa8; }
.footer__bottom button:disabled { cursor: default; }
.footer__bottom [hidden] { display: none !important; }

/* One small route to the school's real social profile, with no third-party feed. */
.instagram-link { display:inline-flex; align-items:center; gap:.65rem; min-width:0; max-width:100%; min-height:44px; padding:.55rem 0; color:var(--brand-ink); font:600 .82rem/1.5 var(--font-ui); text-decoration:none; }
.instagram-link__icon { display:block; width:22px; height:22px; flex:0 0 22px; }
.instagram-link__text { min-width:0; overflow-wrap:anywhere; }
.instagram-link__label { display:block; }
.instagram-link__arrow { flex:0 0 auto; margin-left:.1rem; font-size:1rem; }
.instagram-link:hover .instagram-link__label { text-decoration:underline; text-underline-offset:4px; }
.instagram-link:focus-visible { outline:3px solid var(--action); outline-offset:4px; border-radius:8px; }
.instagram-link--profile { padding:.7rem .8rem; border:1px solid var(--line-2); border-radius:12px; }
.instagram-link__handle { display:block; font-size:.72rem; font-weight:450; color:var(--text-2); }
.footer .instagram-link { margin-top:1.15rem; color:#fff; border-color:rgb(255 255 255 / 24%); }
.footer .instagram-link__icon { width:22px; height:22px; margin:0; }
.footer .instagram-link__handle { color:var(--text-invert-2); }
.footer .instagram-link:hover { border-color:rgb(255 255 255 / 60%); }
.home-story-links { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.35rem 1.5rem; margin-top:1.6rem; }
.home-story-links .instagram-link { color:var(--text-2); }
.journal-heading__aside { min-width:0; }
.journal-heading__aside .instagram-link { margin-top:.7rem; }
.contact-instagram { margin-top:1.5rem; }
@media (max-width: 70rem) {
    .footer__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2rem; }
    .footer__logo, .footer__contact { grid-column: span 3; }
    .footer__section { grid-column: span 2; }
    .footer__heading { min-height: 2.6em; }
}
@media (max-width: 60rem) {
    .footer__bottom { grid-template-columns: minmax(0, 1fr); }
    .footer__preferences { justify-content: space-between; }
}
@media (max-width: 42.5rem) {
    .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
    .footer__logo, .footer__contact, .footer__section { grid-column: auto; }
    .footer__heading { font-size: .75rem; }
    .footer__school { grid-column: 1 / -1; }
    .footer__school .footer__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
    .footer__list a { min-height: 44px; }
    .footer__identity { font-size: .75rem; }
    .footer__ico { display: block; margin: .25rem 0 0; }
    .footer__bottom .footer__legal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .15rem 1.25rem; }
    .footer__legal > a:first-child { grid-column: 1 / -1; }
    .footer__preferences { gap: .25rem 1.25rem; }
    .footer__bottom a, .footer__bottom button { overflow-wrap: anywhere; }
}
@media (max-width: 32.5rem) {
    .footer__logo, .footer__contact { grid-column: 1 / -1; }
    .footer__contact .footer__heading { min-height: 0; }
    .footer__contact .footer__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1.25rem; align-items: start; }
    .footer__contact .footer__list > div:last-child { grid-column: 1 / -1; }
}
