/* Language controls belong to the shared visual system. */
.language-switcher { position:relative; flex:none; font-size:13px; line-height:1.2; }
.language-switcher summary { display:flex; align-items:center; justify-content:center; gap:8px; min-width:62px; min-height:42px; padding:10px; border:1px solid var(--line); border-radius:5px; cursor:pointer; list-style:none; font-weight:650; }
.language-switcher summary::-webkit-details-marker { display:none; }
.language-switcher[open] summary { background:var(--blue-soft); border-color:var(--blue); }
.language-switcher nav { position:absolute; top:calc(100% + 10px); right:0; min-width:180px; padding:8px; display:flex; flex-direction:column; gap:2px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
.language-switcher nav a { display:block; padding:13px 14px; min-height:44px; border-radius:4px; white-space:nowrap; font-size:15px; }
.language-switcher a:hover,.language-switcher a[aria-current="true"] { color:var(--blue); background:var(--blue-soft); }
.footer .footer-languages { display:flex; flex-direction:row; flex-wrap:wrap; gap:12px 24px; padding:20px 0; border-top:1px solid var(--line); font-size:14px; }
.footer-languages a { display:inline-flex; align-items:center; min-height:44px; }
.footer-languages a[aria-current="true"] { color:var(--blue); text-decoration:underline; text-underline-offset:5px; }
.demo-language-note { font-size:13px; line-height:1.5; color:var(--muted); margin:12px 0 16px; max-width:850px; }
.dark-section .demo-language-note { color:#c5d0dc; }
@media(min-width:1161px) and (max-width:1500px) {
 .header-inner { gap:14px; padding-inline:18px; }
 .header .nav { gap:15px; }
 .header .nav a { font-size:12px; }
 .header-actions { gap:7px; }
 .header .theme-toggle { padding-inline:9px; }
 .header .portal-link { display:none; }
}
@media(max-width:650px) {
 .header-inner { gap:8px; padding-inline:12px; }
 .header-actions { gap:6px; }
 .language-switcher summary { min-width:52px; min-height:40px; padding:8px; }
 .header .brand { gap:8px; }
 .header .brand strong { font-size:19px; }
 .header .brand img { width:32px; }
 .header .brand small { display:none; }
 .header .theme-toggle { width:36px; min-width:36px; padding:0; font-size:0; }
 .header .theme-toggle::before { content:'◐'; font-size:20px; }
 .language-switcher nav { min-width:165px; }
 .footer .footer-languages { gap:4px 20px; }
 html[lang="fr"] .home-hero h1,html[lang="es"] .home-hero h1 { font-size:clamp(37px,8.9vw,56px); }
 .hero-content h1,.photo-section h2 { overflow-wrap:break-word; }
}
@media(max-width:370px) {
 .header-inner { gap:6px; padding-inline:8px; }
 .header-actions { gap:4px; }
 .header .brand { gap:6px; }
 .header .brand strong { font-size:16px; }
 .header .brand img { width:25px; }
 .language-switcher summary { min-width:46px; }
 .header .menu-toggle { padding-inline:8px; }
}
