/* Shared finishing touches, loaded before the page is painted. */
img{display:block;max-width:100%}
[data-site-image-hidden="true"]{display:none!important}
.hero-photo,.ph-block,.anglais-photo,.team-photo,.video-slot{background:#f5f4f1!important;overflow:hidden}
.hero-photo::after{display:none}
.hero-photo,.ph-block,.anglais-photo{position:relative}
.hero-photo>img,.ph-block>img,.anglais-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.ph-block:has(img),.team-photo:has(img){padding:0}
.gallery .g{position:relative;isolation:isolate;overflow:hidden;background:#f5f4f1!important;padding:0;color:#fff}
.gallery .g>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.gallery .g:hover>img{transform:scale(1.035)}
.gallery-caption{position:relative;z-index:1;display:block;width:100%;padding:36px 20px 18px;background:linear-gradient(transparent,rgba(18,21,74,.78));text-shadow:0 1px 3px rgba(0,0,0,.25);align-self:flex-end}
.gallery [hidden]{display:none!important}
/* Repeat the same six-photo mosaic for static and administrator uploads.
   Count visible cards so category filters keep a complete layout. */
.gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:170px;gap:16px;grid-auto-flow:row}
.gallery>.g{grid-column:auto;grid-row:auto;min-width:0}
.gallery>.g:nth-child(6n+1 of .g:not([hidden])){grid-column:span 2;grid-row:span 2}
.gallery>.g:nth-child(6n+4 of .g:not([hidden])),
.gallery>.g:nth-child(6n+5 of .g:not([hidden])),
.gallery>.g:nth-child(6n+6 of .g:not([hidden])){grid-column:span 2}
@media(max-width:760px){
 .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:145px;gap:12px}
 .gallery>.g:nth-child(6n+4 of .g:not([hidden])),
 .gallery>.g:nth-child(6n+5 of .g:not([hidden])){grid-column:span 1}
}
.hero-media-grid>*,.split-block>*,.hero .wrap>*{min-width:0}
.btn,.header-cta{justify-content:center;text-align:center;line-height:1.35}
.cta-row{align-items:center}
.pillar-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin-left:auto;margin-right:auto;gap:18px}
.pillar-row>.pillar{width:100%;max-width:none;min-width:0}
.ph-block.visit-photo{aspect-ratio:1/1;width:100%;min-height:0;max-width:none;border-radius:20px}
@media(max-width:480px){
 .pillar-row{gap:12px;margin-top:32px}
 .pillar-row>.pillar{padding:24px 10px;border-radius:22px}
}
.value-card .ic,.moment-card .circ,.pillar .circ{display:flex;align-items:center;justify-content:center;flex-shrink:0}
body .value-card .ic .ui-icon,body .moment-card .circ .ui-icon,body .pillar .circ .ui-icon{margin:0;width:28px;height:28px;font-size:28px;color:inherit}
body .ui-icon svg{stroke-width:1.8}
.bubble-field{pointer-events:none}
.bubble.outline{border-width:1px;opacity:.22}
.footer-contact-icon{display:inline-block!important;vertical-align:middle;margin-right:6px;flex-shrink:0}
:focus-visible{outline:3px solid var(--fuchsia,#e5007d);outline-offset:4px}
/* Switch before the full navigation runs out of room. */
@media(max-width:1180px){
 body .nav-row{gap:12px}
 body .main-links{display:none}
 body .menu-toggle{display:block;flex-shrink:0}
 body nav.main-links.open{display:flex;position:fixed;top:64px;left:0;right:0;margin:0;padding:16px 24px 24px;background:var(--cream);flex-direction:column;gap:0;box-shadow:0 18px 24px -20px rgba(27,31,94,.3);transform:none;max-height:calc(100dvh - 64px);overflow:auto}
 body nav.main-links.open a{width:100%;padding:12px 0;border-bottom:1px solid var(--line)}
 body .header-cta{margin-left:auto}
}
@media(max-width:720px){
 .mobile-bar{padding-bottom:env(safe-area-inset-bottom,0px)}
 .gallery-caption{font-size:13px;padding:28px 12px 12px}
 .hero-photo,.ph-block,.anglais-photo{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
 .reveal{opacity:1!important;transform:none!important}
}
