/* Shared fullscreen navigation; English-only typography trial is at the end. */
#mobileNav.fullscreen-menu{height:100vh;height:100dvh;overscroll-behavior:contain;box-sizing:border-box}
#mobileNav .close-menu{top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:44px;height:44px;font-size:20px}
#mobileNav .menu-nav li a[aria-current=page]{color:var(--neon-green)}
#mobileNav .menu-nav li a:focus-visible,#mobileNav .close-menu:focus-visible{outline:2px solid var(--neon-green);outline-offset:4px}
#mobileNav .menu-nav li a{font-size:clamp(32px,7vh,74px)}
#mobileNav .menu-nav{gap:clamp(7px,1.4vh,16px)}
#mobileNav .menu-inner{padding-top:70px;padding-bottom:30px;min-height:min-content}
#mobileNav .menu-nav li{padding-bottom:10px}
@media(max-width:900px){
 #mobileNav .menu-inner{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%;max-width:none;margin:0;min-height:100%;height:max-content;padding:calc(58px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));gap:18px}
 #mobileNav .menu-nav{width:100%;gap:0;flex:0 0 auto}
 #mobileNav .menu-nav li{padding:0;margin:0!important}
 #mobileNav .menu-nav li a{font-size:clamp(23px,4.2vh,36px);font-size:clamp(23px,4.2dvh,36px);line-height:1.15;letter-spacing:1px;min-height:44px;padding:clamp(7px,1.2dvh,11px) 0}
 #mobileNav .menu-nav li a::after{font-size:25px;flex-shrink:0;margin-left:8px}
 #mobileNav .menu-nav li a:hover{padding-left:6px}
 #mobileNav .menu-nav li a.active .nav-text::after{height:2px;bottom:-4px}
 #mobileNav .menu-right{width:100%;gap:20px;margin:0;padding:20px 0;flex:1 0 auto;justify-content:center}
 #mobileNav .menu-right .top-logos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,5vw,36px);width:100%;max-width:620px;align-items:center;justify-items:center}
 #mobileNav .menu-right .top-logos img{display:block;width:100%;max-width:100%;height:clamp(125px,21dvh,230px);object-fit:contain}
 #mobileNav .menu-right .sponsor-logo{display:flex;justify-content:center;width:100%;max-width:620px}
 #mobileNav .menu-right .sponsor-logo img{display:block;width:100%;max-width:100%;height:auto;max-height:140px;object-fit:contain;opacity:1}

}
@media(max-height:500px){#mobileNav .menu-inner{gap:12px}#mobileNav .menu-nav li a{font-size:23px;min-height:44px;padding:7px 0}}
@media(prefers-reduced-motion:reduce){#mobileNav,#mobileNav *{transition:none!important}}

/* Centre the complete logo group in the remaining area, rather than anchoring it to the menu links. */
@media(max-width:900px){
 #mobileNav .menu-inner{min-height:100vh;min-height:100dvh;height:auto;gap:12px;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 #mobileNav .menu-right{min-height:240px}
}
/* Portrait tablets have room for a broader, taller brand group. */
@media(min-width:600px) and (max-width:900px) and (min-height:701px){
 #mobileNav .menu-right{gap:28px;min-height:350px}
 #mobileNav .menu-right .top-logos img{height:clamp(190px,23dvh,290px)}
 #mobileNav .menu-right .sponsor-logo{max-width:620px}
}
/* Desktop / landscape tablet: fill the right-hand column, retaining equal crest height. */
@media(min-width:901px){
 #mobileNav .menu-right{display:flex;flex-direction:column;align-self:stretch;align-items:center;justify-content:center;width:43%;margin:0;padding:24px 0;gap:clamp(28px,5dvh,60px)}
 #mobileNav .menu-right .top-logos{display:grid;grid-template-columns:1fr 1fr;align-items:center;justify-items:center;gap:clamp(18px,3vw,40px);width:100%}
 #mobileNav .menu-right .top-logos img{display:block;width:100%;max-width:100%;height:clamp(170px,25dvh,320px);object-fit:contain}
 #mobileNav .menu-right .sponsor-logo{display:flex;justify-content:center;width:100%}
 #mobileNav .menu-right .sponsor-logo img{display:block;width:100%;max-width:100%;height:auto;max-height:170px;object-fit:contain;opacity:1}
}
/* Short phones retain substantially larger marks; the existing menu scroll remains available. */
@media(max-width:900px) and (max-height:700px){
 #mobileNav .menu-inner{gap:8px}
 #mobileNav .menu-right{min-height:210px;padding:14px 0;gap:18px}
 #mobileNav .menu-right .top-logos img{height:125px}
 #mobileNav .menu-right .sponsor-logo{max-width:460px}
}

/* Alro + Godber trial: limited to English secondary headings.
   Hero/section headings, navigation, statistics and body copy keep their fonts. */
@font-face {
 font-family:'Alro'; src:url('fonts/alro-alro-regular-400.ttf') format('truetype');
 font-weight:400; font-style:normal; font-display:swap;
}
@font-face {
 font-family:'Alro'; src:url('fonts/alro-alro-bold-700.ttf') format('truetype');
 font-weight:700; font-style:normal; font-display:swap;
}
html[lang="en"] :is(.a-card h3,.facility-overlay h3,.modal-header h3,.footer-col h4,
 .map-info h3,.rc-card-body h3,.rc-feedback h3) {
 font-family:'Alro','Poppins',sans-serif;
 font-weight:700;
 letter-spacing:0.02em;
 line-height:1.25;
 overflow-wrap:break-word;
}
html[lang="en"] .bento-card h4 {
 font-family:'Alro','Poppins',sans-serif;
 font-weight:400;
 letter-spacing:0.02em;
 line-height:1.35;
}
html[lang="en"] :is(.a-card h3,.facility-overlay h3,.modal-header h3,.footer-col h4,
 .map-info h3,.rc-card-body h3,.rc-feedback h3) :is(a,span) {
 font-family:inherit;
}

/* Equal, non-shrinking copies keep the sponsor loop continuous on mobile. */
.marquee-container { flex: 0 0 auto; width: max-content; animation-name: rangers-sponsors; }
.marquee-track { flex: 0 0 auto; width: max-content; min-width: 100vw; box-sizing: border-box; }
.marquee-track img { flex: 0 0 auto; width: auto; height: 55px; max-width: none; }
@keyframes rangers-sponsors { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* Vector arrows stay monochrome on mobile, regardless of emoji fonts. */
.rc-arrow { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; vertical-align: -0.12em; }
