/* Final contrast contract for public actions, independent of section colors. */
:is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button){position:relative;isolation:isolate;--button-fill:#760000}
:is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button)::before{z-index:-1!important;pointer-events:none!important;background:var(--button-fill,#760000)!important}
:is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button)>:is(span,strong,b,svg){color:inherit!important;opacity:1}
:is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button):not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){background-color:var(--button-fill,#760000)!important;color:#fff!important;-webkit-text-fill-color:#fff;opacity:1}
.site-header .header-actions .header-portal,.hero-carousel .hero-community-bar .hero-portals a{--button-fill:#0039b3}
.enrollment-popup .enrollment-whatsapp{--button-fill:#590000}
:is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button):focus-visible{outline:3px solid #0052ff;outline-offset:4px}
/* Icon-only controls need an equally explicit foreground/background pair. */
:is(.hero-controls,.photo-controls,.access-panel,.photo-lightbox) button:not(:disabled):is(:hover,:focus-visible){background-color:#760000!important;color:#fff!important}
/* Text controls keep their own surface; never paint white text on a light page. */
.link-button:is(:hover,:focus-visible){color:inherit!important;text-decoration:underline}
.menu-trigger:is(:hover,:focus-visible){background:transparent!important;color:#fff8f0!important}
.high-contrast :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.cookie-actions button){--button-fill:#050505}

/* Latest approved placement: vivid yellow header portals, red hero portals. */
.site-header .header-actions .header-portal{background:#ffdf00;color:#302500;--button-fill:#f2a900}
.site-header .header-actions .header-portal:is(:hover,:focus-visible){color:#302500!important;-webkit-text-fill-color:#302500}
.hero-carousel .hero-community-bar .hero-portals a{background:#a80000;color:#fff8f0;--button-fill:#790000}
.hero-carousel .hero-community-bar .hero-portals a:is(:hover,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff}
.high-contrast .site-header .header-actions .header-portal,.high-contrast .hero-carousel .hero-community-bar .hero-portals a{background:#050505;color:#fff;--button-fill:#050505}
.high-contrast .site-header .header-actions .header-portal:is(:hover,:focus-visible),.high-contrast .hero-carousel .hero-community-bar .hero-portals a:is(:hover,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff}

/* Shared action typography for every page, preserving authored copy. */
body :is(button,.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.announcement-open,.quick-link-copy strong,.text-link){text-transform:uppercase;font-weight:700!important}
body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta)>span{font-weight:inherit}
@media(max-width:760px){
 body .site-header .header-actions .header-portal{font-size:11px;padding-inline:7px}
 body .hero-carousel .hero-community-bar .hero-portals a{font-size:10px;padding-inline:7px;gap:6px}
 body .quick-link-copy strong{font-size:clamp(14px,4vw,18px)}
}

input:is([type="submit"],[type="button"],[type="reset"]),[role="button"]{text-transform:uppercase;font-weight:700}

/* Community actions sit directly beneath the menu photograph. */
.menu-visual-column{display:flex;flex-direction:column;min-width:0;gap:24px}
.menu-visual-column .menu-visual{flex:1;min-height:340px}
.menu-community .menu-portals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.menu-community .menu-family-title{grid-column:1/-1;text-transform:uppercase;font-size:13px;letter-spacing:.07em;color:#760000}
.menu-community .menu-portals .menu-portal-button{display:flex;align-items:center;justify-content:center;min-height:54px;padding:14px 10px;border-radius:18px;background:#a80000;color:#fff;font-size:13px;text-decoration:none;--button-fill:#790000;white-space:nowrap}
.menu-community-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}
.menu-socials{display:flex;gap:12px;align-items:center}
.menu-socials a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #a8000040;border-radius:14px;color:#a80000}
.menu-socials svg{width:24px;height:24px;fill:currentColor}
.menu-socials a:is(:hover,:focus-visible){background:#a80000;color:#fff}
.menu-community-tools .language-switch{display:flex;gap:16px;align-items:center}
.menu-community-tools .language-switch a{display:flex;gap:7px;align-items:center;font-size:14px;color:#760000}
@media(max-width:760px){.menu-visual-column .menu-visual{flex:none;min-height:0;height:220px}.menu-community .menu-portals .menu-portal-button{font-size:11px;padding-inline:8px}.menu-community{padding-bottom:8px}}

/* Menu page numbers: stronger hierarchy without competing with page titles. */
.menu-navigation nav a{grid-template-columns:42px minmax(0,1fr) 25px}
.menu-navigation .menu-index{font:700 22px/1.2 'Source Sans 3',Helvetica,Arial,sans-serif;color:#a80000;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
@media(max-width:760px){.menu-navigation nav a{grid-template-columns:34px minmax(0,1fr) 25px}.menu-navigation .menu-index{font-size:20px}}

/* Opening notice primary action shares the header portal yellow palette. */
.enrollment-popup .button.enrollment-whatsapp{background:#ffdf00;color:#302500;--button-fill:#f2a900}
.enrollment-popup .button.enrollment-whatsapp::before{background:#f2a900!important}
.enrollment-popup .button.enrollment-whatsapp:is(:hover,:focus-visible){background-color:#f2a900!important;color:#302500!important;-webkit-text-fill-color:#302500}
.high-contrast .enrollment-popup .button.enrollment-whatsapp{background:#050505;color:#fff;--button-fill:#050505}
.high-contrast .enrollment-popup .button.enrollment-whatsapp:is(:hover,:focus-visible){background-color:#050505!important;color:#fff!important;-webkit-text-fill-color:#fff}

/* Consent actions must never clip their labels. */
body .cookie-banner{box-sizing:border-box;max-height:calc(100dvh - 32px);overflow-y:auto}
body .cookie-banner>div{min-width:0}
body .cookie-banner .cookie-actions{display:flex;flex-wrap:wrap;gap:12px;min-width:0;flex-shrink:1}
body .cookie-banner .cookie-actions button{flex:1 1 180px;min-width:0;max-width:100%;height:auto;min-height:54px;padding:13px 18px;font-size:13px;line-height:1.4;white-space:normal;text-wrap:balance;overflow-wrap:normal;word-break:normal;text-align:center}
body .cookie-banner .cookie-actions button:not(:last-child){background:#fff8f0;color:#760000;border-color:#a80000;--button-fill:#760000}
body .cookie-banner .cookie-actions button:last-child{background:#a80000;color:#fff;border-color:#760000;--button-fill:#760000}
body .cookie-banner .cookie-actions button:is(:hover,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff}
@media(max-width:760px){
 body .cookie-banner{left:12px;right:12px;bottom:16px;padding:24px 20px;gap:20px;border-radius:24px;max-height:calc(100dvh - 32px)}
 body .cookie-banner .cookie-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:10px}
 body .cookie-banner .cookie-actions button{width:100%;font-size:13px;min-height:52px;padding:12px 14px}
}

/* Editorial links must never recolor action labels. */
.article-reading a.button{color:#fff8f0;text-decoration:none}
.article-reading a.button.secondary-action{color:#760000}
.article-reading a.button:is(:hover,:focus-visible){color:#fff!important;-webkit-text-fill-color:#fff;text-decoration:none}
.article-reading a.button .school-icon{flex-shrink:0}

/* Header icons imported from the supplied IJC vector artwork. */
.site-header .header-actions :is(.header-portal,.header-cta){display:inline-flex;align-items:center;justify-content:center;gap:10px}
.site-header .header-actions :is(.header-portal,.header-cta)>.school-icon{display:block;width:28px;height:28px;flex:0 0 28px;fill:currentColor}
.site-header .header-actions :is(.header-portal,.header-cta)>.school-icon use{transform:scale(1.35);transform-origin:12px 12px}
.site-header .header-actions :is(.header-portal,.header-cta)>span{display:inline;color:inherit;font-size:inherit}
@media(max-width:1100px){.site-header .header-actions :is(.header-portal,.header-cta){gap:7px}.site-header .header-actions :is(.header-portal,.header-cta)>.school-icon{width:24px;height:24px;flex-basis:24px}}
@media(max-width:760px){.site-header .header-actions .header-portal{gap:6px}.site-header .header-actions .header-portal>.school-icon{width:22px;height:22px;flex-basis:22px}}
/* Preserve dark labels on yellow portal actions against the global hover rule. */
body .site-chrome .site-header .header-actions a.header-portal:is(:hover,:focus-visible),body .site-header .header-actions a.header-portal:not(:disabled):is(:hover,:focus-visible){color:#302500!important;-webkit-text-fill-color:#302500!important}
