/* Finition éditoriale — 30 septembre 2026.
   Chargée en dernier : rythme vertical régulier, alignements, lisibilité.
   Aucune couleur nouvelle : la charte existante est conservée. */
:root{--rhythm:clamp(48px,5vw,72px);--rhythm-tight:clamp(36px,4vw,56px);--block-gap:clamp(22px,2.4vw,32px);--measure:68ch}

/* Texte : alignement à gauche, plus de « rivières » dues à la justification */
.prose p,.prose li,.cms-section .prose p,.team-biography p,.section-description,.editorial-intro p{text-align:left!important;hyphens:manual;-webkit-hyphens:manual;text-wrap:pretty}
.prose p,.prose li{line-height:1.75}
h1,h2,h3{text-wrap:balance}

/* Rythme des sections : même respiration partout */
.home-page .cms-section,.home-page .scgg-figures{padding-top:var(--rhythm)!important;padding-bottom:var(--rhythm)!important}
.home-page .member-shortcuts{padding-top:28px!important;padding-bottom:28px!important}
.medical-section-heading{margin-bottom:var(--block-gap)!important}
.medical-section-heading h2{margin-bottom:0}

/* Lien « voir plus » : rattaché au bloc, aligné à droite */
.cms-section .container>p:last-child:has(> a){display:flex;justify-content:flex-end;margin:18px 0 0!important}

/* Intro de section : texte simple, plus de carte dans la carte */
.cms-section .container>.prose.editorial-intro:not(.cms-block){background:none!important;border:0!important;box-shadow:none!important;padding:0!important;max-width:720px;margin:0 auto var(--block-gap)!important}
.cms-section .container>.prose.editorial-intro:not(.cms-block) p{text-align:center!important;color:#46647c;font-size:1.02rem;line-height:1.7;margin:0}

/* Panneaux image + texte : proportions et centrage vertical */
.home-page .cms-block.editorial-panel.with-image{align-items:center;gap:clamp(24px,3.4vw,48px);padding:clamp(24px,3vw,36px)!important}
.home-page .cms-block.editorial-panel.with-image figure{margin:0}
.home-page .cms-block.editorial-panel.with-image figure img{display:block;width:100%;border-radius:12px 12px 0 0}

/* Accueil — bandeau : colonne de texte lisible */
@media (min-width:901px){
 .home-page .gallery-photo-collection .gallery-slide:not([hidden]){grid-template-columns:minmax(0,1fr) clamp(340px,31%,430px)!important}
 .home-page .gallery-photo-collection :is(.gallery-welcome .gallery-slide-content,.gallery-fit-contain .gallery-slide-content){padding:40px 34px!important;justify-content:center}
 .home-page .gallery-welcome .medical-hero-copy h1{font-size:clamp(1.9rem,2.6vw,2.6rem)!important;line-height:1.12}
 .home-page .gallery-welcome .medical-hero-copy p{font-size:.98rem;line-height:1.65;max-width:none!important}
}

/* Accueil — repères : panneau compact, grille alignée */
.home-page .figures-layout{align-items:stretch;gap:var(--block-gap)!important}
.home-page .figures-intro.editorial-panel{padding:clamp(26px,3vw,40px)!important;display:flex;flex-direction:column;justify-content:center}
.home-page .figures-intro h2{margin:14px 0 12px!important}
.home-page .figures-grid{gap:16px!important}

/* Raccourcis : la mention d’aide ne flotte plus sous les cartes */
.home-page .member-shortcuts>.shortcut-controls>span:only-child{display:none}
.home-page .member-shortcuts>.shortcut-controls:has(>span:only-child){display:none!important}

/* Équipe : carte principale plus dense */
.home-page .team-card.editorial-team{padding:clamp(20px,2.6vw,28px)!important}
.home-page .portrait-thumbnails{padding-top:18px!important}
.home-page .portrait-thumbnails-heading{margin-bottom:14px!important}

/* Pages intérieures : colonne de lecture centrée, image et texte de même largeur */
.interior-page .page-hero{padding-bottom:clamp(40px,5vw,64px)!important}
.interior-page main>.section:not(.cms-section){padding-top:var(--rhythm-tight)!important;padding-bottom:var(--rhythm)!important}
.interior-page .institutional-photo,.interior-page .prose.narrow,.interior-page .container.narrow{margin-left:auto!important;margin-right:auto!important}
.interior-page .institutional-photo{max-width:820px}
.interior-page .institutional-photo img{width:100%;display:block}

.interior-page .prose h2:first-child{margin-top:0}

/* Listes de cartes : grilles régulières */
.cards-grid{gap:var(--block-gap)!important;align-items:stretch}
.content-card{display:flex;flex-direction:column}
.content-card>:last-child{margin-top:auto}

@media (max-width:900px){
 :root{--rhythm:44px;--rhythm-tight:32px;--block-gap:20px}
 .cms-section .container>.prose.editorial-intro:not(.cms-block) p{font-size:.98rem}
 .cms-section .container>p:last-child:has(> a){justify-content:flex-start}
 .home-page .gallery-welcome .medical-hero-copy h1{font-size:clamp(1.7rem,7vw,2.1rem)!important}
}
@media (max-width:600px){
 .prose p,.prose li{line-height:1.68}
 .home-page .cms-block.editorial-panel.with-image,.interior-page .form-panel,.interior-page .dashboard-card{padding:20px!important}
 .home-page .figures-intro.editorial-panel{padding:24px!important}
}

/* Adhésion : l’introduction devient un texte d’accroche, sans encadré à mi-largeur */
.interior-page main>.section>.container>.prose:not(.narrow):not(.president-message){background:none!important;border:0!important;box-shadow:none!important;padding:0!important;max-width:760px!important;margin:0 0 var(--block-gap)!important}
.interior-page main>.section>.container>.prose:not(.narrow):not(.president-message) p{font-size:1.06rem;color:#294e6a}
.interior-page main>.section>.container>.notice{margin:18px 0!important}
.interior-page .section-heading{margin-bottom:var(--block-gap)!important}
.interior-page .prose h2{margin-top:1.6em}

/* ===== Galerie d’accueil : photo et panneau bleu d’un seul tenant ===== */
.home-page .gallery-photo-collection .gallery-stage{display:grid!important;overflow:hidden;height:auto!important;min-height:0!important;max-height:none!important;background:linear-gradient(115deg,#063a72 0%,#074d91 58%,#0a6fb8 100%)!important}
.home-page .gallery-photo-collection .gallery-stage>.gallery-slide{grid-area:1/1!important;border-radius:0!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide:not([hidden]){background:linear-gradient(115deg,#063a72 0%,#074d91 58%,#0a6fb8 100%)!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-image{opacity:1!important;border-radius:0!important;mask-image:none;-webkit-mask-image:none}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content{background:transparent!important;box-shadow:none!important;border:0!important;color:#fff!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content :is(h1,h2){color:#fff!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content :is(p,.eyebrow,.gallery-category){color:rgba(255,255,255,.86)!important}

@media (min-width:901px){
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide:not([hidden]){display:block!important;position:relative!important;height:clamp(500px,43vw,640px)!important;min-height:0!important}
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-image{position:absolute!important;inset:0 auto 0 0!important;width:72%!important;height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center 32%!important;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 62%,rgba(0,0,0,.55) 82%,transparent 100%)!important;mask-image:linear-gradient(90deg,#000 0%,#000 62%,rgba(0,0,0,.55) 82%,transparent 100%)!important}
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content{position:absolute!important;inset:0 0 0 auto!important;width:clamp(360px,32%,470px)!important;max-width:none!important;height:auto!important;margin:0!important;padding:clamp(36px,3.4vw,52px)!important;display:flex!important;flex-direction:column;justify-content:center;overflow:visible!important;z-index:2}
}
@media (max-width:900px){
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide:not([hidden]){display:flex!important;flex-direction:column;background:linear-gradient(180deg,#063a72 0%,#0869b3 100%)!important}
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-image{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:16/10!important;object-fit:cover!important;object-position:center 30%!important;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%)!important;mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%)!important}
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content{position:relative!important;margin-top:-48px!important;padding:0 22px 30px!important;z-index:2}
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content p{max-width:600px!important}
 /* Every slide keeps its place in the grid so the height follows the longest caption and never jumps. */
 .home-page .gallery-photo-collection .gallery-stage>.gallery-slide[hidden]{display:flex!important;flex-direction:column;visibility:hidden;pointer-events:none}
 .home-page .gallery-photo-collection .gallery-stage>.gallery-slide{min-height:0!important}
}

/* Lien de diapositive : même lien souligné sur toutes les diapositives */
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content .gallery-link{display:inline-flex!important;align-items:center;gap:10px;align-self:flex-start;background:transparent!important;color:#fff!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.55)!important;border-radius:0!important;padding:0 0 8px!important;margin-top:22px!important;font-weight:600;box-shadow:none!important;transition:border-color .3s ease,gap .3s ease}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content .gallery-link:hover{border-color:#fff!important;gap:14px}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .gallery-slide-content .gallery-link svg{stroke:currentColor}

/* Transitions : fondu enchaîné, lent travelling sur la photo, légende échelonnée */
@keyframes scgg-slide-in{from{opacity:0}to{opacity:1}}
@keyframes scgg-kenburns{from{transform:scale(1.08) translate3d(-1.2%,0,0)}to{transform:scale(1) translate3d(0,0,0)}}
@keyframes scgg-caption-in{from{opacity:0;transform:translate3d(0,18px,0);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes scgg-caption-out{to{opacity:0;transform:translate3d(0,-10px,0)}}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering{z-index:3!important;animation:scgg-slide-in .9s cubic-bezier(.4,0,.2,1) both!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-leaving{z-index:2!important;animation:none!important;opacity:1!important;transform:none!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide:not([hidden]) .gallery-image{animation:scgg-kenburns 9s cubic-bezier(.25,.46,.45,.94) both!important;transform-origin:42% 50%;will-change:transform}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering .gallery-slide-content{animation:none!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering .gallery-slide-content>*{animation:scgg-caption-in .8s cubic-bezier(.16,1,.3,1) both!important;animation-delay:.28s!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering .gallery-slide-content>:nth-child(2){animation-delay:.36s!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering .gallery-slide-content>:nth-child(3){animation-delay:.44s!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-entering .gallery-slide-content>:nth-child(4){animation-delay:.52s!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide.gallery-leaving .gallery-slide-content>*{animation:scgg-caption-out .3s ease-in both!important}
@media (prefers-reduced-motion:reduce){
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide:is(.gallery-entering,.gallery-leaving,:not([hidden])),
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide:not([hidden]) .gallery-image,
 .home-page .gallery-photo-collection .gallery-stage .gallery-slide:is(.gallery-entering,.gallery-leaving) .gallery-slide-content>*{animation:none!important;transition:none!important;transform:none!important;filter:none!important}
}

/* ===== Cartes : un seul langage, sobre et précis ===== */
:root{--card-radius:14px;--card-border:#e1e9f0;--card-border-hover:#c5d8e8;--card-shadow:0 1px 2px rgba(16,42,67,.04),0 12px 28px -18px rgba(16,42,67,.22);--card-shadow-hover:0 2px 6px rgba(16,42,67,.05),0 26px 48px -22px rgba(16,42,67,.34);--card-ease:cubic-bezier(.2,.7,.2,1)}
:is(.content-card,.category-card,.figure-card,.portrait-thumbnail,.dashboard-card,.form-panel,.team-card.editorial-team,.figures-intro.editorial-panel,.cms-block.editorial-panel:not(.president-message-section *)){border-radius:var(--card-radius)!important;border:1px solid var(--card-border)!important;box-shadow:var(--card-shadow)!important;background:#fff!important}
.president-message-section .cms-block.editorial-panel{border-radius:var(--card-radius)!important;box-shadow:var(--card-shadow)!important;background:#fff!important}
:is(.content-card,.category-card,.figure-card,.portrait-thumbnail){position:relative;overflow:hidden;transition:transform .45s var(--card-ease),box-shadow .45s var(--card-ease),border-color .3s ease!important}
/* Filet de marque révélé au survol */
:is(.content-card,.category-card)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#063a72,#0876bf 60%,#a3162d);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--card-ease)}
@media (hover:hover){
 :is(.content-card,.category-card,.figure-card,.portrait-thumbnail):hover{transform:translateY(-4px);box-shadow:var(--card-shadow-hover)!important;border-color:var(--card-border-hover)!important}
 :is(.content-card,.category-card):hover::after{transform:scaleX(1)}
 :is(.content-card,.figure-card) :is(a,.text-link) svg{transition:transform .35s var(--card-ease)}
 :is(.content-card,.figure-card):hover :is(a,.text-link) svg{transform:translate(3px,-3px)}
}
.content-card{padding:28px 28px 26px!important}
.content-card h3{font-size:1.2rem;line-height:1.28;letter-spacing:-.01em}
.content-card p{color:#4c6478}
.figure-card{padding:24px 24px 20px!important}

/* Raccourcis d’accueil : tuiles de marque, même rayon et même réaction */
.home-page .member-shortcuts .container>a{border-radius:var(--card-radius)!important;box-shadow:0 14px 30px -20px rgba(6,58,114,.55)!important;transition:transform .45s var(--card-ease),box-shadow .45s var(--card-ease)!important;overflow:hidden}
.home-page .member-shortcuts .container>a::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 45%);pointer-events:none}
@media (hover:hover){.home-page .member-shortcuts .container>a:hover{transform:translateY(-4px);box-shadow:0 26px 44px -22px rgba(6,58,114,.65)!important}}
@media (prefers-reduced-motion:reduce){:is(.content-card,.category-card,.figure-card,.portrait-thumbnail,.member-shortcuts a){transition:none!important}:is(.content-card,.category-card,.figure-card,.portrait-thumbnail,.member-shortcuts a):hover{transform:none!important}}

/* Accents de marque conservés */
.home-page .figures-intro.editorial-panel{border-top:3px solid #a3162d!important;background:linear-gradient(160deg,#fff 55%,#eef5fb)!important}

/* ===== Retour en haut ===== */
.back-to-top{--size:46px;--lift:0px;--progress:0;position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + var(--lift));z-index:38;width:var(--size);height:var(--size);display:grid;place-items:center;border-radius:50%;background:#063a72;color:#fff;text-decoration:none;box-shadow:0 10px 24px -10px rgba(6,58,114,.6),0 2px 6px rgba(6,58,114,.18);opacity:0;visibility:hidden;transform:translateY(12px) scale(.92);transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s linear .3s,bottom .25s ease,background .2s ease}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s,bottom .25s ease,background .2s ease}
.back-to-top svg{grid-area:1/1}
.back-to-top .back-to-top-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease}
.back-to-top .back-to-top-ring{width:100%;height:100%;transform:rotate(-90deg)}
.back-to-top .back-to-top-ring circle{fill:none;stroke-width:2.5}
.back-to-top .back-to-top-ring .track{stroke:rgba(255,255,255,.18)}
.back-to-top .back-to-top-ring .value{stroke:#8fc8f2;stroke-linecap:round;stroke-dasharray:132;stroke-dashoffset:calc(132 - 132 * var(--progress))}
.back-to-top:hover{background:#0a5a9c}
.back-to-top:hover .back-to-top-arrow{transform:translateY(-2px)}
.back-to-top:focus-visible{outline:3px solid #f4c430;outline-offset:3px}
@media (max-width:600px){.back-to-top{--size:44px;right:max(14px,env(safe-area-inset-right))}}
@media (prefers-reduced-motion:reduce){.back-to-top,.back-to-top.is-visible,.back-to-top .back-to-top-arrow{transition:none!important;transform:none!important}}
@media print{.back-to-top{display:none!important}}
body:focus{outline:none}

/* ===== Médias : vidéos et audio (1er octobre 2026) ===== */
.media-video{display:block;width:100%;height:auto;background:#0b2f55;border-radius:inherit}
.media-embed{position:relative;width:100%;aspect-ratio:16/9;background:#0b2f55;overflow:hidden}
.media-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Cartes : visuel en tête */
.content-card.has-visual{padding-top:0!important}
.content-card .card-visual{align-self:stretch;width:auto;flex:none;margin:0 -28px 18px;aspect-ratio:16/9;overflow:hidden;background:#eaf1f7;border-radius:var(--card-radius,14px) var(--card-radius,14px) 0 0}
.content-card .card-visual :is(img,video,.media-embed){width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.content-card .card-visual img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.content-card:hover .card-visual img{transform:scale(1.04)}}
.content-card .media-tag{background:#0a4f8f;color:#fff}
/* Galerie : la vidéo occupe la place de la photo */
.home-page .gallery-photo-collection .gallery-stage .gallery-slide video.gallery-image{object-fit:cover!important}
.home-page .gallery-photo-collection .gallery-stage .gallery-slide .media-embed.gallery-image{aspect-ratio:auto}
/* Lecteur de ressource */
.media-player{margin:28px 0;padding:22px;border:1px solid #dbe6ef;border-radius:14px;background:linear-gradient(160deg,#fff 55%,#eef6fd)}
.media-player h2{margin:0 0 14px!important;font-size:1.2rem!important}
.media-player audio{width:100%}
.media-player video,.media-player .media-embed{width:100%;border-radius:10px}
.article-figure .media-video,.article-figure .media-embed{border-radius:12px 12px 0 0}
@media (max-width:600px){.content-card .card-visual{margin:0 -20px 16px}.media-player{padding:16px}}
@media (prefers-reduced-motion:reduce){.content-card .card-visual img{transition:none}}

/* ===== Menu mobile toujours accessible (PRD 2 octobre 2026, MOB-01) =====
   Blocking scroll on <body> made the sticky header fall back to the top of the document,
   so the menu opened off screen at the bottom of a page. Scroll is now locked on the root
   element and the panel is fixed right under the sticky header, above the page. */
@media (max-width:1200px){
 body.scgg-menu-open{overflow:visible!important}
 html:has(body.scgg-menu-open){overflow:hidden}
 body.scgg-menu-open .header.healthcare-header.scgg-header{z-index:1000}
 .scgg-header #main-nav{position:fixed!important;top:var(--scgg-menu-top,var(--scgg-header-height,120px))!important;left:0!important;right:0!important;bottom:0;height:auto!important;max-height:none!important;z-index:1001;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:0 24px 48px -24px rgba(6,58,114,.55);border-top:1px solid #e1e9f0}
 body.scgg-menu-open .back-to-top{visibility:hidden!important;opacity:0!important}
}

/* Médaillon du président (PRD 3.4) */
.president-medallion{flex:none;width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:center 18%;border:3px solid #fff;box-shadow:0 0 0 2px #0a63a8,0 14px 28px -16px rgba(6,58,114,.6);background:#eaf1f7}
.medical-section-heading:has(.president-medallion){display:flex;align-items:center;justify-content:center;gap:18px;text-align:left}
.president-title{display:flex;align-items:center;gap:22px}
.president-title .president-medallion{width:112px;height:112px;border-color:rgba(255,255,255,.9);box-shadow:0 0 0 2px rgba(255,255,255,.45),0 16px 30px -16px rgba(0,0,0,.5)}
.president-title .article-title{margin:4px 0 6px!important}
.president-name{margin:0;opacity:.85;font-weight:600}
@media (max-width:600px){.president-medallion{width:72px;height:72px}.president-title{gap:14px}.president-title .president-medallion{width:80px;height:80px}.medical-section-heading:has(.president-medallion){justify-content:flex-start}}

/* Équipe : grande photo repérable, miniature active identifiable (PRD 3.2) */
.team-card .team-photo{scroll-margin-top:calc(var(--scgg-header-height,110px) + 14px)}
.portrait-thumbnail.is-active{border-color:#0a63a8!important;background:#eef6fd!important;box-shadow:0 0 0 2px #0a63a8 inset}
.portrait-thumbnail.is-active .portrait-thumbnail-caption strong{color:#0a4f8f}
.portrait-thumbnail.is-active .portrait-thumbnail-frame{box-shadow:0 0 0 3px #0a63a8}

/* ===== Pied de page mobile (PRD 3.3, FOO-01) ===== */
@media (max-width:700px){
 footer{padding-top:34px!important}
 footer .footer-main{display:grid!important;grid-template-columns:1fr 1fr!important;gap:26px 18px!important}
 footer .footer-about{grid-column:1/-1;text-align:center;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.14)}
 footer .footer-about h3{font-size:1.05rem!important;letter-spacing:.12em;margin:0 0 10px!important}
 footer .footer-about p,footer .footer-about .footer-location{font-size:.9rem!important;line-height:1.6;max-width:34ch;margin-left:auto!important;margin-right:auto!important;display:block}
 footer .footer-main>div:not(.footer-about) h3{font-size:.74rem!important;letter-spacing:.14em;margin:0 0 12px!important;padding-bottom:8px;border-bottom:2px solid #f4c430;display:inline-block}
 footer .footer-main>div:not(.footer-about) a{display:flex;align-items:center;min-height:40px;padding:0!important;margin:0!important;font-size:.95rem;line-height:1.3}
 footer .footer-main>div:last-child:not(.footer-about){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
 footer .footer-main>div:last-child:not(.footer-about) h3{grid-column:1/-1;justify-self:start}
 footer .footer-bottom{display:flex!important;flex-direction:column-reverse!important;align-items:center!important;gap:16px!important;text-align:center;padding-top:22px!important;margin-top:26px!important}
 footer .footer-bottom>div{display:flex!important;flex-wrap:wrap;justify-content:center;gap:8px 18px!important}
 footer .footer-bottom>div a{min-height:36px;display:inline-flex;align-items:center;font-size:.85rem;margin:0!important}
 footer .footer-bottom>span{font-size:.8rem;opacity:.8}
}
@media (max-width:360px){footer .footer-main>div:last-child:not(.footer-about){grid-template-columns:1fr}}
@media (max-width:700px){
 /* Each footer column is a vertical stack: heading on its own line, then one link per line. */
 footer .footer-main>div:not(.footer-about):not(:last-child){display:flex!important;flex-direction:column;align-items:flex-start}
 footer .footer-main>div:not(.footer-about) h3{display:block;width:max-content;max-width:100%}
 footer .footer-main>div:not(.footer-about) a{display:inline-flex;gap:6px;justify-content:flex-start}
 footer .footer-main>div:not(.footer-about) a svg{flex:none;width:12px;height:12px}
}

/* JASCGG announcement ribbon (all pages) */
.jx-ribbon{background:linear-gradient(90deg,#052d59,#0a63a8);color:#fff;font-size:.86rem}
.jx-ribbon a{display:flex;align-items:center;gap:14px;min-height:38px;padding:6px 0;color:#fff;text-decoration:none;flex-wrap:wrap}
.jx-ribbon strong{padding:2px 10px;border-radius:999px;background:#f4c430;color:#052d59;font-size:.78rem;letter-spacing:.04em}
.jx-ribbon span{flex:1;min-width:0;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jx-ribbon em{font-style:normal;font-weight:700}
.jx-ribbon a:hover em,.jx-ribbon a:focus-visible em{text-decoration:underline}
@media(max-width:600px){.jx-ribbon span{display:none}}
.jx-ribbon strong{white-space:nowrap}
.jx-ribbon em{font-family:inherit}
