/* Shared public footer, language/accessibility rail and contact controls. */
.site-footer.school-footer{background:#650000;color:#fff7ef;padding:0;overflow:hidden}
.school-footer .footer-welcome{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:48px;padding-block:72px}
.school-footer .eyebrow{color:#ffcabb;font-size:12px;letter-spacing:.16em}
.school-footer .footer-welcome h2{font-size:clamp(38px,4vw,62px);line-height:1.08;max-width:850px;margin:20px 0 0;color:#fff7ef}
.school-footer .button.light{background:#fff5eb;color:#760000;box-shadow:none;min-width:230px;justify-content:space-between}
.school-footer .button.light:is(:hover,:focus-visible){color:#fff}
.footer-location{background:#a80000;border-block:1px solid #ffffff1a}
.footer-location>.wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:22px}
.footer-location span,.footer-location a{display:inline-flex;align-items:center;gap:15px;font-size:17px}
.footer-location a{font-weight:600;min-height:44px}.footer-location .school-icon{width:26px;height:26px}
.school-footer .footer-directory{display:grid;grid-template-columns:minmax(250px,1.35fr) repeat(3,minmax(0,1fr));gap:clamp(28px,3vw,60px);padding-block:68px}
.footer-identity>a{display:block;max-width:300px}.footer-identity img{width:100%;height:auto;object-fit:contain}
.school-footer .footer-identity p{font-size:17px;line-height:1.8;color:#edc7c1;margin:26px 0;max-width:330px}
.school-footer .footer-directory h3{font-size:23px;color:#ffd0bd;letter-spacing:-.02em;margin:0 0 20px}
.footer-directory nav,.footer-contact{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.footer-directory nav>a,.footer-contact>a{font-size:16px;line-height:1.6;min-height:42px;padding-block:8px;max-width:100%;overflow-wrap:anywhere;display:inline-flex;align-items:center;gap:10px}
.footer-directory a:is(:hover,:focus-visible){color:#fff;text-decoration:underline;text-underline-offset:5px}
.footer-directory .school-icon{width:17px;height:17px;flex-basis:17px}
.social-icon{display:block;fill:currentColor;width:24px;height:24px;flex:0 0 24px}
.footer-socials{display:flex;gap:10px}.footer-socials>a{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff45;border-radius:14px;color:#fff;background:#ffffff0a;transition:background .2s,transform .2s}.footer-socials>a:hover{background:#a80000;transform:translateY(-3px)}
.school-footer .footer-legal{border-top:1px solid #ffffff26;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:26px;font-size:13px;line-height:1.8;color:#edc7c1}
.footer-legal>div{display:flex;align-items:center;flex-wrap:wrap;gap:12px 26px}.footer-legal a,.footer-legal button{min-height:40px;display:inline-flex;align-items:center;font-size:13px}
.school-footer .footer-legal button{border:0;background:none;padding:0;color:inherit;border-radius:0;text-decoration:underline;text-underline-offset:4px}.footer-legal button::before{display:none}
.school-footer :is(a,button):focus-visible{outline:3px solid #fff;outline-offset:4px}
/* Header actions now have more space: language selection lives in the side rail. */
.menu-enhanced .site-header,.menu-enhanced .site-header.is-scrolled{grid-template-columns:1fr auto auto}
.menu-enhanced .site-header .header-actions{grid-column:2}.menu-enhanced .site-header .menu-trigger{grid-column:3}
.interface-rail{position:fixed;z-index:25;right:12px;top:50%;transform:translateY(-50%);width:48px;display:flex;flex-direction:column;gap:10px;max-height:calc(100dvh - 36px);color:#fff}
.interface-rail>.language-switch{display:flex;flex-direction:column;gap:0;background:#650000;border:1px solid #ffffff35;border-radius:16px;box-shadow:0 5px 20px #23000024;width:48px;overflow:hidden}
.interface-rail .language-switch a{width:100%;min-height:38px;padding:6px 4px;gap:3px;justify-content:center;font-size:10px;opacity:.7;color:#fff;text-decoration:none}
.interface-rail .language-switch a+a:before{display:none}.interface-rail .language-switch img{width:18px;height:13px}.interface-rail .language-switch a[aria-current=true]{opacity:1;background:#a80000;text-decoration:none}.interface-rail .language-switch a:hover{background:#a80000;opacity:1}
.interface-rail .accessibility{position:relative;right:auto;bottom:auto;width:48px;z-index:auto;display:flex;flex-direction:column;align-items:center;gap:8px}
.interface-rail .accessibility>#access-toggle{width:48px;height:48px;min-height:48px;border-radius:16px;background:#a80000;border:1px solid #ffffff45;color:#fff;box-shadow:0 5px 20px #23000024;padding:10px;display:grid;place-items:center}
.interface-rail .accessibility>#access-toggle .school-icon{width:27px;height:27px}
.interface-rail .accessibility>#access-panel{position:static;inset:auto;display:flex;flex-direction:column;width:48px;padding:5px 0;gap:0;border-radius:19px;background:#420000;color:#fff;box-shadow:0 6px 24px #23000030;max-height:calc(100dvh - 200px);overflow-y:auto;scrollbar-width:none}
.interface-rail #access-panel[hidden]{display:none}
.interface-rail #access-panel button{position:relative;display:grid;place-items:center;flex:0 0 42px;width:48px;height:42px;min-height:42px;background:transparent;border:0;border-bottom:1px solid #ffffff26;border-radius:0;padding:10px;margin:0;color:#fff;text-align:center;font:600 19px/1 Helvetica,Arial,sans-serif;box-shadow:none}
.interface-rail #access-panel button:last-child{border-bottom:0}.interface-rail #access-panel button svg{width:23px;height:23px;flex-basis:23px}
.interface-rail #access-panel button:is(:hover,:focus-visible),.interface-rail #access-panel button[aria-pressed=true]{background:#a80000;color:#fff}
.interface-rail #access-panel button:disabled{opacity:.35;cursor:default}
.interface-rail :is(a,button):focus-visible{outline:2px solid #fff;outline-offset:-3px}
.interface-rail button::before{display:none}
.interface-rail [data-tip]:hover:after,.interface-rail [data-tip]:focus-visible:after{content:attr(data-tip);position:fixed;right:58px;padding:7px 12px;background:#420000;color:#fff;border-radius:7px;font:13px/1.4 Helvetica,Arial,sans-serif;white-space:nowrap;box-shadow:0 3px 10px #0002;pointer-events:none}
/* WhatsApp aura stays behind the recognizable platform logo. */
.whatsapp-float{position:fixed;right:22px;bottom:24px;z-index:24;width:60px;height:60px;border-radius:50%;background:#087f45;color:#fff;display:grid;place-items:center;border:2px solid #ffffffbb;box-shadow:0 6px 24px #042c2633;isolation:isolate}
.whatsapp-float .social-icon{width:31px;height:31px}.whatsapp-float:before,.whatsapp-float:after{content:'';position:absolute;inset:-2px;border:2px solid #109c59;border-radius:50%;z-index:-1;animation:whatsapp-aura 3s ease-out infinite;pointer-events:none}.whatsapp-float:after{animation-delay:1.5s}
.whatsapp-label{position:absolute;right:72px;background:#fff9f0;color:#650000;padding:10px 16px;border-radius:12px;white-space:nowrap;font-size:14px;box-shadow:0 4px 20px #23000024;opacity:0;transform:translateX(5px);transition:.2s;pointer-events:none}
.whatsapp-float:is(:hover,:focus-visible) .whatsapp-label{opacity:1;transform:none}.whatsapp-float:focus-visible{outline:3px solid #650000;outline-offset:5px}
@keyframes whatsapp-aura{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
.menu-viewing .interface-rail,.menu-viewing .whatsapp-float{visibility:hidden}
/****** Accessible page states do not transform body or break fixed controls. ******/
body.high-contrast{filter:none!important}.high-contrast main .section,.high-contrast main .photo-story,.high-contrast main .article-head{background:#050505!important;color:#fff!important}.high-contrast main :is(h1,h2,h3,p,figcaption,.eyebrow,address){color:#fff!important}.high-contrast main .quick-link{background:#111;color:#fff;border:1px solid #fff}.high-contrast main .quick-link-copy>span{color:#fff}.high-contrast main a:not(.button){text-decoration:underline;text-underline-offset:4px}.high-contrast .school-footer{background:#050505}
.images-hidden main img{visibility:hidden!important}.cursor-large,.cursor-large *{cursor:url('/assets/cursor-large.svg') 4 2,auto!important}
body.text-adjusted main :is(p,li,figcaption,address){font-size:calc(var(--text-body)*var(--access-scale))!important;line-height:1.8}
body.text-adjusted main .section :is(h1,h2),body.text-adjusted .photo-story h2{font-size:calc(var(--title-section)*var(--access-scale))}
body.text-adjusted .hero.layout-immersive.hero-carousel .hero-copy :is(h1,h2){font-size:calc(var(--title-hero)*var(--access-scale))}
body.text-adjusted .article-head h1{font-size:calc(clamp(38px,5vw,90px)*var(--access-scale))}
.motion-paused .whatsapp-float:before,.motion-paused .whatsapp-float:after{animation:none;opacity:0}
body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* Location is a real, optional interactive map with a direct mobile route. */
.location-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:70px}.school-location address{font-style:normal;font-size:20px;line-height:1.8;color:#70545a;margin:24px 0 30px;max-width:400px}
.location-map{min-height:440px;border-radius:28px;overflow:hidden;background:#f2e6dc;border:1px solid #a8000018;position:relative}.location-map:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(28deg,transparent 0 59px,#fff9 60px 69px,transparent 70px 149px),repeating-linear-gradient(118deg,transparent 0 89px,#fff9 90px 99px,transparent 100px 189px);pointer-events:none}
.map-placeholder{position:relative;min-height:440px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:38px;gap:18px;background:#fff7f06b}
.map-placeholder>.school-icon{width:70px;height:70px;color:#a80000}.map-placeholder strong{font:600 30px/1.15 'Source Sans 3',sans-serif;letter-spacing:-.02em;color:#650000}.map-placeholder>span{font-size:15px;color:#70545a;max-width:280px}.map-placeholder small{font-size:12px;color:#70545a;max-width:260px}.map-load{padding:13px 21px;background:#a80000;color:#fff;border:0;border-radius:100px;font-size:14px;min-height:48px}
.location-map iframe{width:100%;height:440px;display:block;border:0;position:relative;background:#f2e6dc}
@media(max-width:1200px){.school-footer .footer-directory{grid-template-columns:1.1fr 1fr;gap:45px}.footer-identity{max-width:370px}.location-grid{gap:40px}}
@media(min-width:761px) and (max-width:1100px){.menu-enhanced .site-header .header-actions{grid-column:1/-1;grid-row:2}.menu-enhanced .site-header .menu-trigger{grid-column:3;grid-row:1}}
@media(max-width:760px){
 .menu-enhanced .site-header,.menu-enhanced .site-header.is-scrolled{grid-template-columns:1fr auto;column-gap:12px}.menu-enhanced .site-header .menu-trigger{grid-column:2;grid-row:1}.menu-enhanced .site-header .header-actions{grid-column:1/-1;grid-row:2}
 .school-footer .footer-welcome{grid-template-columns:1fr;gap:28px;padding-block:48px}.school-footer .footer-welcome h2{font-size:36px}.school-footer .footer-welcome .button{justify-self:start;font-size:15px;min-width:210px}
 .footer-location>.wrap{align-items:flex-start;flex-direction:column;gap:8px;padding-block:18px}.footer-location span,.footer-location a{font-size:15px}
 .school-footer .footer-directory{grid-template-columns:1fr 1fr;column-gap:24px;row-gap:35px;padding-block:46px}.footer-identity,.footer-contact{grid-column:1/-1}.footer-identity>a{max-width:270px}.school-footer .footer-identity p{font-size:16px}.school-footer .footer-directory h3{font-size:20px;margin-bottom:12px}.footer-directory nav>a,.footer-contact>a{font-size:14px;min-height:44px}.footer-contact>a{font-size:15px}
 .school-footer .footer-legal{flex-direction:column;align-items:flex-start;gap:16px;font-size:12px;padding-block:24px}.footer-legal>div{gap:4px 18px}.footer-legal a,.footer-legal button{font-size:12px}
 .interface-rail{right:6px;width:42px;gap:7px}.interface-rail>.language-switch{width:42px;border-radius:13px}.interface-rail .language-switch a{min-height:32px;font-size:9px;gap:2px}.interface-rail .language-switch img{width:16px;height:12px}
 .interface-rail .accessibility{width:42px}.interface-rail .accessibility>#access-toggle{width:42px;height:44px;min-height:44px;border-radius:13px;padding:9px}
 .interface-rail .accessibility>#access-panel{position:absolute;right:51px;top:-100px;bottom:auto;width:48px;max-height:calc(100dvh - 230px)}
 .whatsapp-float{right:14px;bottom:18px;width:54px;height:54px}.whatsapp-float .social-icon{width:28px;height:28px}
 .location-grid{grid-template-columns:1fr;gap:30px}.school-location address{font-size:17px}.school-location .button{font-size:14px;padding:16px 20px;gap:14px}.location-map,.map-placeholder{min-height:360px}.location-map iframe{height:360px}.map-placeholder{padding:28px}.map-placeholder strong{font-size:27px}
}
@media(max-width:360px){.school-footer .footer-directory{grid-template-columns:1fr}.footer-directory nav{grid-column:1/-1}.footer-location>.wrap>span{align-items:flex-start}.footer-location .school-icon{flex:0 0 24px}}
@media(prefers-reduced-motion:reduce){.whatsapp-float:before,.whatsapp-float:after{animation:none;opacity:0}.whatsapp-label,.footer-socials>a{transition:none}}

.access-status{position:absolute;right:60px;top:50%;width:240px;border-radius:12px;background:#420000;color:#fff;padding:14px 18px;font-size:13px;line-height:1.6;box-shadow:0 6px 24px #0003;opacity:0;visibility:hidden;pointer-events:none}.access-status.is-visible{opacity:1;visibility:visible}

.interface-rail #reset-access .school-icon use,.footer-location>.wrap>span .school-icon use{transform:scale(1.8);transform-origin:12px 12px}

.school-footer .footer-legal{padding-right:88px}
body.text-adjusted .school-footer :is(p,address){font-size:calc(17px*var(--access-scale))}
body.text-adjusted .footer-directory :is(nav>a,.footer-contact>a){font-size:calc(16px*var(--access-scale))}
@media(max-width:760px){.school-footer .footer-legal{padding-right:0}}

/* Touch browsers retain :hover after a tap: never leave a desktop tooltip behind the mobile rail. */
@media(max-width:760px),(hover:none),(pointer:coarse){
 .interface-rail [data-tip]::after,
 .interface-rail [data-tip]:hover::after,
 .interface-rail [data-tip]:focus-visible::after{content:none!important;display:none!important}
}
.libras-close{position:fixed;right:16px;bottom:max(18px,env(safe-area-inset-bottom));z-index:2147483647;display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:12px 18px;border:2px solid #fff8f0;border-radius:100px;background:#a80000;color:#fff8f0;box-shadow:0 6px 22px #23000050;cursor:pointer;font:600 14px/1.2 Helvetica,Arial,sans-serif;white-space:nowrap}
.libras-close[hidden]{display:none!important}.libras-close:hover{background:#760000}.libras-close .school-icon{width:20px;height:20px}.libras-close>span{font-size:inherit;transform:none}.libras-close:focus-visible{outline:3px solid #fff;outline-offset:3px}
.interface-rail #access-panel #close-access{background:#760000;border-bottom:1px solid #ffffff50}

/* Government launchers can mount after script.onload, including inside a shadow root.
   Hide only their launch buttons/host, never the translator application itself. */
#vlibras-access-wrapper,
html body [vw-access-button]{display:none!important;visibility:hidden!important;pointer-events:none!important}
/* Compact authorship lockup, left aligned on every viewport. */
.school-footer .footer-legal .footer-credit{display:block;margin-top:20px;text-align:left;color:#fff8f0}
.school-footer .footer-credit-label{display:block;font-size:10px;font-weight:600;line-height:1.4;letter-spacing:.16em}
.school-footer .footer-legal .footer-credit a{display:flex;align-items:center;gap:14px;width:fit-content;max-width:100%;min-height:0;margin-top:8px;color:#fff8f0;text-decoration:none;transition:color .2s ease}
.school-footer .footer-credit-mark{flex:none;font-size:30px;font-weight:800;line-height:1;letter-spacing:-.04em}
.school-footer .footer-credit-mark sup{font-size:11px;vertical-align:top;line-height:1;margin-left:3px;letter-spacing:0}
.school-footer .footer-credit-divider{align-self:stretch;width:1px;min-height:30px;background:currentColor;opacity:.45;flex:none}
.school-footer .footer-credit-services{max-width:210px;font-size:13px;font-weight:500;line-height:1.45;letter-spacing:.015em}
.school-footer .footer-legal .footer-credit a:is(:hover,:focus-visible){color:#ffdf00;text-decoration:none}
.school-footer .footer-credit a:focus-visible{outline:2px solid #ffdf00;outline-offset:6px;border-radius:3px}
@media(max-width:480px){.school-footer .footer-credit-services{max-width:170px}.school-footer .footer-legal .footer-credit a{gap:12px}}
@media(prefers-reduced-motion:reduce){.school-footer .footer-legal .footer-credit a{transition:none}}
.school-footer .footer-credit-mark{display:flex;align-items:flex-start;gap:2px}
.school-footer .footer-credit-logo{display:block;width:104px;height:26px;background:currentColor;mask:url('/assets/wm-original.webp') center/contain no-repeat;-webkit-mask:url('/assets/wm-original.webp') center/contain no-repeat}
/* Render the original transparent artwork directly, without a CSS mask. */
.school-footer .footer-credit-mark img.footer-credit-logo{display:block;width:104px;height:26px;max-width:none;object-fit:contain;background:none;mask:none;-webkit-mask:none;filter:brightness(0) invert(1);border-radius:0;opacity:1}
.school-footer .footer-credit a:is(:hover,:focus-visible) img.footer-credit-logo{filter:brightness(0) saturate(100%) invert(86%) sepia(98%) saturate(1896%) hue-rotate(359deg) brightness(104%) contrast(107%)}
