/* Minimal, fast, accessible styles — academic tone */
:root{--fs:1}
.theme-dark{--bg:#0b0c10;--fg:#eaf0f1;--muted:#b8c1c8;--accent:#2b7cff;--card:#111217;--border:#1a1c22;--header-bg:#0d0f14;--header-line:transparent;--header-grad-from:transparent;--header-grad-to:transparent;--header-divider:rgba(255,255,255,.10);--header-shadow:0 6px 12px -8px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.04) inset;--nav-pill-bg:rgba(255,255,255,.08);--nav-pill-bg-hover:rgba(255,255,255,.14);--footer-bg:#0b0c10;--footer-fg:#e5e7eb;--footer-line:rgba(59,130,246,.35);--footer-button-bg:#1f2937;--footer-button-fg:#e5e7eb;--nav-ink:#e7eef7;--brand-title:#eaf0f1;--active-amber:#facc15;--active-amber-fg:#e5e7eb;--link:#9cc7ff;--link-hover:#c7dfff;--link-underline:rgba(156,199,255,.55);--input-bg:#0f1216;--input-fg:#f3f6f8;--input-border:#3a4558;--input-placeholder:#aab4bf;--input-focus:#3b82f6}
.theme-light{--bg:#ffffff;--fg:#111827;--muted:#55606b;--accent:#0d6efd;--card:#ffffff;--border:#e5e7eb;--header-bg:#ffffff;--header-line:transparent;--header-grad-from:transparent;--header-grad-to:transparent;--header-divider:rgba(0,0,0,.06);--header-shadow:0 6px 12px -8px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.08);--nav-pill-bg:rgba(13,110,253,.07);--nav-pill-bg-hover:rgba(13,110,253,.12);--footer-bg:#0f141b;--footer-fg:#e5e7eb;--footer-line:rgba(13,110,253,.28);--footer-button-bg:#1f2937;--footer-button-fg:#e5e7eb;--nav-ink:#1f2937;--brand-title:#111827;--active-amber:#fbbf24;--active-amber-fg:#111827;--link:#0d6efd;--link-hover:#0b59d7;--link-underline:rgba(13,110,253,.55);--input-bg:#ffffff;--input-fg:#111827;--input-border:#aeb8c5;--input-placeholder:#6b7280;--input-focus:#0d6efd}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-size:calc(16px * var(--fs));line-height:1.6;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--fg);text-rendering:optimizeLegibility}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
main{flex:1 0 auto}
.brand-text{font-family:ui-serif, Georgia, "Times New Roman", serif;letter-spacing:.2px}
.container{max-width:960px;width:100%;margin:0 auto;padding:1.25rem}
html[dir="rtl"] .container{margin-left:auto;margin-right:auto}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--header-bg);border-bottom:none;box-shadow:var(--header-shadow)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--header-divider)}
.site-header .container{padding:0}
.inline-toolbar__top-row{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}
.inline-toolbar__help{display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(148,163,184,.45);background:rgba(248,250,252,.95);color:#1f2937;font-weight:700;font-size:1rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease;color:inherit}
.inline-toolbar__help:hover{background:#2563eb;color:#fff;border-color:#2563eb;transform:translateY(-1px)}
.inline-toolbar__help:focus{outline:2px solid #2563eb;outline-offset:1px}
.inline-toolbar__help[data-help-target="footerToolbarHelp"]{color:#0f172a}
.toolbar-help-overlay{position:fixed;inset:0;background:transparent;pointer-events:none;z-index:1400}
.toolbar-help-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,94vw);background:#fff;border-radius:20px;padding:22px 26px;box-shadow:0 18px 46px -28px rgba(15,23,42,.35);z-index:1410;display:flex;flex-direction:column;gap:16px}
html.theme-dark .toolbar-help-dialog{background:#0f172a;color:#e2e8f0;box-shadow:0 32px 60px -30px rgba(15,23,42,.75)}
.toolbar-help-dialog[hidden]{display:none}
.toolbar-help-dialog__body h2{margin:0;font-size:1.4rem}
.toolbar-help-dialog__summary{margin:0;font-weight:500}
.toolbar-help-dialog__body ul{margin:0;padding-left:1.2rem;display:grid;gap:10px}
.toolbar-help-dialog__body li{line-height:1.5}
.toolbar-help-dialog__close{align-self:flex-end;background:transparent;border:0;color:inherit;font-size:1.4rem;font-weight:700;cursor:pointer}
.toolbar-help-dialog__close:hover{color:#2563eb}
html.theme-dark .toolbar-help-dialog__close:hover{color:#93c5fd}
.nav{
  display:flex;
  align-items:center;
  gap:0;
  flex-wrap:wrap;
  justify-content:flex-start;
  position:relative;
  padding:0 1.25rem
}
.brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  font-weight:700;
  color:var(--fg);
  text-decoration:none;
  min-width:0;
  padding:.65rem 0
}
/* Logo + Title */
.logo{display:block;height:36px;width:auto;border-radius:0}
.brand-title{font-size:clamp(0.95rem,1.8vw,1.4rem);font-weight:800;letter-spacing:.02em;color:var(--brand-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* If the source includes wide text, crop to the left mark only */
.logo--mark{width:40px;height:40px;object-fit:cover;object-position:left center}
.nav-left{display:flex;align-items:center;gap:.65rem;flex:1 1 auto;min-width:0}
.nav-controls{display:flex;align-items:center;gap:.4rem;flex:0 0 auto;order:2;margin-left:0;min-width:0}
.nav-language{display:flex;align-items:center;flex:0 0 auto;order:1}
#menuToggle{display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.menu-toggle{display:flex;align-items:center;justify-content:center}
.nav-actions{display:flex;align-items:center;gap:.35rem;flex:0 0 auto;order:3;padding:0;margin-left:auto;background:none;border:none;box-shadow:none}
.links{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.5rem 0 0;margin:0;width:100%;order:4;overflow:visible}
.site-header .nav-actions .icon-btn,
.site-header .nav-controls .icon-btn,
.site-header .nav-language .language-toggle{
  color:var(--header-control-color, var(--fg));
  transition:color .2s ease, border-color .2s ease, background-color .2s ease;
}

.theme-dark .site-header .nav-actions .icon-btn,
.theme-dark .site-header .nav-controls .icon-btn,
.theme-dark .site-header .nav-language .language-toggle{
  color:var(--header-control-color-dark, var(--header-control-color, var(--fg)));
}

.site-header .nav-language .language-toggle__label,
.site-header .nav-language .language-toggle__code,
.site-header .nav-language .language-toggle__flag{
  color:inherit;
}

.site-header .nav-actions .icon-btn:hover,
.site-header .nav-controls .icon-btn:hover,
.site-header .nav-language .language-toggle:hover{
  color:var(--header-control-hover, var(--accent));
}
.theme-dark .site-header .nav-actions .icon-btn:hover,
.theme-dark .site-header .nav-controls .icon-btn:hover,
.theme-dark .site-header .nav-language .language-toggle:hover{
  color:var(--header-control-hover-dark, var(--header-control-hover, var(--accent)));
}

.theme-dark .site-header .brand-title{
  color:var(--brand-title-dark, var(--brand-title)) !important;
}

.theme-dark .links a{
  color:var(--nav-ink-dark, var(--nav-ink));
}

.theme-dark .links a:hover{
  color:var(--header-control-hover-dark, var(--accent));
}
#primaryNav{
  display:none;
  flex-direction:row;
  justify-content:center;
  align-items:center;
  gap:1rem;
  flex-wrap:nowrap;
  padding:.45rem 0 0;
  margin:.25rem 0 0;
  width:100%;
  border-top:1px solid var(--header-divider);
  overflow:visible;
}
#primaryNav.open{display:flex}
#primaryNav .nav-link{
  flex:1 1 auto;
  text-align:center;
  white-space:nowrap;
  font-size:clamp(12px, 2vw, 16px);
  display:inline-flex;
  justify-content:center;
  align-items:center;
  position:relative;
  padding-bottom:0;
}
.links a{white-space:nowrap}
.links a{position:relative;color:var(--nav-ink);text-decoration:none;font-weight:600;opacity:.98;padding:.22rem .4rem .05rem;border-radius:.25rem;transition:color .15s,background-color .15s;border:0}
.links a:hover{color:var(--accent)}
.links a.active{
  color:var(--active-amber-fg);
  background:transparent;
  font-weight:700;
  border-bottom:2px solid transparent;
}
.links a.active::after{
  content:"";
  position:absolute;
  left:24%;
  right:24%;
  bottom:-1px;
  height:2px;
  background:var(--active-amber);
  border-radius:999px;
  pointer-events:none;
  box-shadow:0 2px 6px rgba(250,204,21,.35);
}
/* Dark mode: tone down the active state for comfort */
.theme-dark .links a.active{color:var(--fg);}
.theme-dark .links a.active::after{background:rgba(250,204,21,.75);box-shadow:0 2px 6px rgba(250,204,21,.25)}
.links a:hover{opacity:1;color:var(--accent)}
.font-controls{display:flex;align-items:center;gap:.25rem;flex-wrap:nowrap}
.font-controls button{
  font-size:clamp(.85rem, 2.4vw, .95rem);
  padding:.35rem .65rem;
  font-weight:700;
  min-width:2.4rem;
  line-height:1;
}
.icon-btn{background:#fff;border:1px solid var(--border);color:var(--fg);padding:.28rem .45rem;border-radius:.5rem;cursor:pointer;transition:color .15s, background-color .15s, border-color .15s}
.icon-btn.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.icon-btn:hover{color:var(--accent);border-color:var(--accent);background:#fff}
.theme-dark .icon-btn{background:#0f141b;border-color:#2a2f38}
.theme-dark .icon-btn:hover{background:#0f141b}
.icon{width:20px;height:20px;display:block}
.language-switcher{position:relative;min-width:0}
.language-toggle__label{display:flex;align-items:center;gap:.35rem;font-weight:600}
.language-toggle__flag{font-size:1.05rem;line-height:1;display:inline-flex}
.language-switcher--footer{margin-bottom:.5rem}
.language-switcher--mobile{display:flex;align-items:center;margin-left:.35rem}
.language-toggle{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.language-toggle__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.language-menu{position:absolute;top:calc(100% + 6px);right:0;display:flex;flex-direction:column;gap:.15rem;padding:.4rem;background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:.7rem;box-shadow:0 12px 32px rgba(15,23,42,.22);min-width:200px;z-index:120}
.theme-dark .language-menu{background:#111827;border-color:#1f2937;box-shadow:0 16px 30px rgba(0,0,0,.45)}
.language-menu__item{display:flex;justify-content:space-between;align-items:center;gap:.45rem;padding:.45rem .6rem;border:none;border-radius:.55rem;background:transparent;color:inherit;font-weight:600;font-size:.82rem;cursor:pointer;text-align:left}
.language-menu__item-flag{font-size:1.05rem;line-height:1;display:inline-flex;min-width:1.1rem}
.language-menu__item-label{flex:1;display:inline-flex;align-items:center}
.language-menu__item:hover{background:rgba(13,110,253,.12);color:var(--accent)}
.theme-dark .language-menu__item:hover{background:rgba(148,163,184,.14)}
.language-menu__item[aria-selected='true']{background:var(--accent);color:#0b1120}
.theme-dark .language-menu__item[aria-selected='true']{background:#38bdf8;color:#0b1020}
.language-menu__item-badge{font-size:.68rem;font-weight:600;padding:.12rem .3rem;border-radius:.45rem;background:rgba(15,23,42,.08);color:var(--muted)}
.theme-dark .language-menu__item-badge{background:rgba(148,163,184,.18);color:#e2e8f0}
.language-overlay{position:fixed;inset:0;display:none;padding:2rem;background:rgba(15,23,42,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:1300;align-items:center;justify-content:center}
.language-overlay.is-open{display:flex}
.language-overlay__panel{background:rgba(15,23,42,.92);border-radius:1.6rem;padding:1.8rem 2rem;color:#f8fafc;box-shadow:0 30px 60px -30px rgba(2,6,23,.85);width:min(720px,92vw);max-height:85vh;display:flex;flex-direction:column;gap:1.5rem;position:relative}
.theme-dark .language-overlay__panel{background:rgba(15,23,42,.95);color:#f8fafc}
.language-overlay__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.language-overlay__title{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:.02em}
.language-overlay__close{background:rgba(148,163,184,.18);border:1px solid rgba(148,163,184,.32);border-radius:999px;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;color:#f8fafc;font-size:1.55rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.language-overlay__close:hover{background:rgba(59,130,246,.9);border-color:rgba(59,130,246,.95);color:#0b1020}
.language-overlay__grid{overflow:auto;padding-right:.35rem;max-height:calc(100% - 0.5rem)}
.language-overlay__grid::-webkit-scrollbar{width:8px}
.language-overlay__grid::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px}
.language-overlay .language-menu{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;padding:0;border:none;background:transparent;box-shadow:none;max-height:100%;color:inherit}
.theme-dark .language-overlay .language-menu{background:transparent}
.language-overlay .language-menu__item{background:rgba(15,23,42,.78);color:#f8fafc;border-radius:.9rem;padding:.75rem 1rem;font-size:.95rem;justify-content:flex-start;box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 16px 30px -22px rgba(8,11,22,.9)}
.language-overlay .language-menu__item:hover{background:rgba(59,130,246,.85);color:#0b1020}
.language-overlay .language-menu__item[aria-selected='true']{background:rgba(59,130,246,.95);color:#0b1020}
.language-overlay .language-menu__item-badge{display:none}
.language-overlay__panel{max-height:calc(100vh - 3rem)}
.language-overlay__grid{max-height:calc(100vh - 8rem)}
.theme-dark .language-overlay__close{background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.24)}
html.theme-light .language-overlay{background:rgba(216,243,220,.82)}
html.theme-light .language-overlay__panel{
  background:#f4fff6;
  color:#1b3a2a;
  box-shadow:0 28px 70px -40px rgba(27,58,42,.45);
  border:1px solid rgba(27,58,42,.16);
}
html.theme-light .language-overlay__title{color:#1b3a2a}
html.theme-light .language-overlay__close{
  background:rgba(27,58,42,.08);
  border:1px solid rgba(27,58,42,.18);
  color:#1b3a2a;
}
html.theme-light .language-overlay__close:hover{
  background:#2f5240;
  border-color:#2f5240;
  color:#f4fff6;
}
html.theme-light .language-overlay__grid::-webkit-scrollbar-thumb{
  background:rgba(27,58,42,.18);
}
html.theme-light .language-overlay .language-menu__item{
  background:#e4f6e9;
  color:#1b3a2a;
  box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 16px 28px -24px rgba(27,58,42,.32);
}
html.theme-light .language-overlay .language-menu__item:hover{
  background:#cbead6;
  color:#1b3a2a;
}
html.theme-light .language-overlay .language-menu__item[aria-selected='true']{
  background:#94d3ac;
  color:#0b2b1c;
}
@media (max-width:640px){
  .language-overlay{padding:1.25rem}
  .language-overlay__panel{padding:1.25rem 1.4rem;gap:1.1rem;width:min(600px,94vw)}
  .language-overlay .language-menu{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
  .language-overlay__title{font-size:1.35rem}
}
body.language-overlay-open{overflow:hidden}
.language-switcher [hidden]{display:none !important}
.hero{padding:3rem 0}
.hero h1{font-size:clamp(1.75rem,4vw,2.5rem);margin:.25rem 0 .5rem}
.hero p{color:var(--muted);margin:0 0 1rem}
.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  color:#fff;text-decoration:none;font-weight:600;
  padding:.5rem .85rem;border-radius:.6rem;
  border:1px solid rgba(13,110,253,.45);
  background:linear-gradient(180deg,rgba(13,110,253,.92),rgba(13,110,253,.78));
  box-shadow:0 2px 8px rgba(13,110,253,.18);
  transition:background .15s,border-color .15s,transform .05s;
}
.theme-dark .btn{
  border-color:rgba(255,255,255,.2);
  background:linear-gradient(180deg,rgba(59,130,246,.45),rgba(59,130,246,.32));
  box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.btn:hover{background:linear-gradient(180deg,rgba(13,110,253,.98),rgba(13,110,253,.84))}
.theme-dark .btn:hover{background:linear-gradient(180deg,rgba(59,130,246,.52),rgba(59,130,246,.38))}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn[disabled], .btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  background:transparent;color:var(--accent);
  border:1px solid var(--accent);padding:.48rem .82rem;border-radius:.6rem;
  text-decoration:none;font-weight:600
}
.link-academic{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.link-academic:hover{color:var(--fg);text-decoration-thickness:2px}
.benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem;padding:0;margin:1rem 0 0;list-style:none}
.benefits li{background:var(--card);border:1px solid var(--border);padding:.75rem;border-radius:.5rem}
.site-footer{background:var(--footer-bg);position:relative;box-shadow:0 -1px 8px rgba(0,0,0,.04);margin-top:3rem}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent 0 6%, var(--footer-line) 6% 94%, transparent 94% 100%)}
.footer{color:var(--footer-fg);padding:1.25rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.footer p,.footer small{opacity:.92}
.footer a{color:inherit}
.footer-info p{margin:.15rem 0}
.footer-copy small{color:var(--footer-fg);opacity:.96}
.site-footer .language-toggle{
  border:1px solid rgba(148,163,184,.35);
  border:1px solid color-mix(in srgb, var(--footer-button-bg) 40%, #ffffff 20%);
  background:var(--footer-button-bg);
  color:var(--footer-button-fg);
  padding:.45rem .8rem;
  border-radius:.75rem;
  transition:filter .2s ease, transform .1s ease;
}
.site-footer .language-toggle:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
}
.site-footer .language-toggle:focus-visible{
  outline:2px solid var(--footer-line);
  outline-offset:3px;
}

/* Contact page */
.prose a:not(.btn), .contact-card a:not(.btn), .contact-form-wrap a:not(.btn){
  color:var(--link);
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-color:var(--link-underline);
}
.prose a:not(.btn):hover, .contact-card a:not(.btn):hover, .contact-form-wrap a:not(.btn):hover{
  color:var(--link-hover);
  text-decoration-thickness:2px;
}
.prose p{margin:0 0 1rem}
.prose h1,.prose h2{margin:0 0 .6rem}
.prose .roman{list-style:upper-roman;padding-left:1.25rem}
.h6{margin:.25rem 0 .5rem;font-size:.9rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.contact-card{background:var(--card);border:1px solid var(--border);padding:1rem;border-radius:.5rem}
.contact-grid{display:grid;gap:1rem}
@media (min-width: 640px){
  .contact-grid{grid-template-columns:1fr 1fr}
}
.contact-address{font-style:normal}
.contact-cta{margin-top:1rem}
.contact-map{margin-top:1rem}
.map-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:.5rem;box-shadow:0 1px 6px rgba(0,0,0,.08)}
/* Contact form */
.contact-form{margin-top:1rem}
.form-grid{display:grid;gap:.75rem}
@media (min-width: 640px){
  .form-grid{grid-template-columns:1fr 1fr}
  .form-row--full{grid-column:1 / -1}
}
.form-row > .form-label{display:flex;gap:.25rem;align-items:baseline;font-weight:600;margin-bottom:.25rem}
.form-row .req{color:var(--accent);font-weight:700;display:inline-block}
.form-row input,.form-row textarea{width:100%;padding:.62rem .7rem;border-radius:.5rem;border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-fg);box-shadow:inset 0 1px 0 rgba(0,0,0,.03);transition:border-color .15s, box-shadow .15s, background-color .15s}
.form-row input::placeholder,.form-row textarea::placeholder{color:var(--input-placeholder);opacity:.9}
.form-row input:hover,.form-row textarea:hover{border-color:var(--input-focus)}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--input-focus);box-shadow:0 0 0 3px rgba(13,110,253,.20)}
/* Light: slightly stronger default borders */
.theme-light .form-row input,.theme-light .form-row textarea{border-color:#94a3b8;background:#ffffff;box-shadow:inset 0 1px 0 rgba(0,0,0,.06)}
.theme-light .form-row input:focus,.theme-light .form-row textarea:focus{box-shadow:0 0 0 3px rgba(13,110,253,.25)}
/* Dark: much more pronounced borders and focus ring */
.theme-dark .form-row input,.theme-dark .form-row textarea{border-width:2px;border-color:#4b5563;background:#0f141b}
.theme-dark .form-row input:focus,.theme-dark .form-row textarea:focus{box-shadow:0 0 0 4px rgba(59,130,246,.35)}
.form-actions{margin-top:.5rem;display:flex;gap:.5rem}
.contact-layout{display:grid;gap:1rem}
@media (min-width: 900px){
  .contact-layout{grid-template-columns:1.1fr .9fr;align-items:start}
}
.alert-list{margin-bottom:1rem}
.alert{padding:.6rem .9rem;border-radius:.5rem;border:1px solid var(--border);background:var(--card)}
.alert.success{border-color:#19875440}
.alert.error{border-color:#dc354540}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--accent);color:#001b17;padding:.5rem;border-radius:.25rem}

/* Media elements scale to container */
img, iframe{max-width:100%;height:auto}

/* Prefer reduced motion */
@media (prefers-reduced-motion: no-preference){
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px;transition:outline-offset .15s}
}

/* Responsive header tweaks */
#primaryNav .label-short{display:inline}
#primaryNav .label-full{display:none}

/* Mobile (phones) */
@media (max-width: 679px){
  .container{padding:.6rem}
  .brand-title{font-size:clamp(.85rem, 3.2vw, .95rem)}
  /* mobile: single-row header with brand and controls, primaryNav sits just below but aligned */
  .nav{grid-template-columns:1fr auto;grid-template-areas:'brand controls' 'links controls';align-items:center}
  .brand{min-width:0}
  .logo{height:32px}
  .links{gap:.18rem;overflow-x:auto}
  /* Mobile: show primary nav links by default as horizontal scrolling row */
  #primaryNav{display:flex;flex-direction:row;align-items:center;gap:.4rem;padding:.4rem 0;margin:0 0 .6rem;width:100%;overflow-x:auto}
  .links a{padding:.22rem .3rem;font-size:clamp(.7rem, 3.4vw, .88rem)}
  .links .label-short{display:inline}
  .links .label-full{display:none}
  .links .nav-home{display:none}
  /* keep primary nav horizontally aligned and visually in line with nav-actions */
  #primaryNav{justify-content:flex-start;padding-left:0;padding-right:0}
  .language-switcher--mobile{margin-left:0}
  .icon-btn{padding:.3rem .45rem}
  .nav-controls,
  .nav-actions{margin-top:.45rem}
}

@media (max-width: 1099px){
  #primaryNav .label-short{display:inline}
  #primaryNav .label-full{display:none}
}

/* Collapsed header on mobile */
@media (max-width: 679px){
  html.header-collapsed .brand,
  html.header-collapsed .nav-left{display:none !important}
  html.header-collapsed .nav{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:.65rem;
    width:100%;
    padding:0 .25rem;
    flex-wrap:nowrap;
    min-width:0;
  }
  html.header-collapsed #primaryNav{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:.45rem;
    overflow:hidden;
    flex:0 0 auto;
    order:1;
    min-width:0;
    margin-right:.45rem;
  }
  html.header-collapsed #primaryNav .nav-link{display:none}
  html.header-collapsed .nav-controls{display:contents}
  html.header-collapsed .nav-language{
    order:2;
    display:flex;
    align-items:center;
    gap:.4rem;
    min-width:0;
    margin-right:.35rem;
    flex:0 0 auto;
  }
  html.header-collapsed .nav-actions{
    order:3;
    display:flex !important;
    align-items:center;
    gap:.4rem;
    flex:0 0 auto;
    min-width:0;
    margin:0 .35rem 0 0;
  }
  html.header-collapsed #menuToggle{order:4;margin-left:auto;display:flex}
  html.header-collapsed .site-header .container{padding:0 .5rem}
  html.header-collapsed main.container{padding-top:.1rem}
}

/* Reserve space for fixed header so content doesn't jump under it */
body{padding-top:var(--header-h, 64px);min-height:100vh}
body > main{flex:1 1 auto;width:100%}
main.container{flex:1 1 auto;padding-block:48px 40px}
.lang-translated .map-link-small,
.lang-translated .map-link-large{display:none !important}
@media (min-width: 680px){
  .site-header .container{
    display:flex;
    align-items:center;
    padding:0
  }
  .nav{
    flex:1;
    display:flex;
    align-items:center;
    margin:0;
    padding:0
  }
  .nav-left{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    padding:0.65rem 1.25rem;
    border-right:1px solid var(--header-divider)
  }
  .brand{
    display:flex;
    align-items:center;
    gap:0.65rem
  }
  .brand-title{
    white-space:nowrap;
    overflow:visible;
    max-width:none
  }
  #menuToggle{display:none}
  #primaryNav{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:1rem;
    padding:0.65rem 1.25rem;
    margin:0;
    flex:1;
    border-right:1px solid var(--header-divider)
  }
  .nav-controls{
    display:flex;
    align-items:center;
    padding:0.65rem 0.5rem;
    gap:0.45rem;
    margin-left:0;
    border:none
  }
  .nav-actions{
    display:flex;
    align-items:center;
    padding:0.65rem 1.25rem;
    gap:0.35rem;
    border-left:1px solid var(--header-divider);
    margin-left:auto
  }
  /* Give primary nav and actions fixed shrink behavior so brand stays on one line */
  #primaryNav{
    flex:1 1 auto;
    align-items:center;
    height:38px;
    display:flex;
    align-items:center;
    border-right:1px solid var(--header-divider)
  }
  .nav-actions{flex:0 0 auto}
  .logo{height:38px}
  #primaryNav .nav-link{padding:.26rem .38rem;font-size:.92rem}
}
@media (min-width: 1100px){
  .nav{gap:1rem;padding:.7rem 0}
  .nav-controls{gap:.5rem}
  .logo{height:40px}
  #primaryNav{gap:.6rem}
  #primaryNav .nav-link{padding:.3rem .48rem;font-size:1rem}
  #primaryNav .label-short{display:none}
  #primaryNav .label-full{display:inline}
}

/* Make sure the brand title (logo text) is always visible and not hidden by collapse rules */
.site-header .brand-title{
  display:inline-block !important;
  visibility:visible !important;
  opacity:1 !important;
  color:var(--brand-title);
  white-space:nowrap;
  overflow:visible;
  width:auto;
  min-width:0;
}

/* When header is collapsed (mobile), keep the brand-title visible */
html.header-collapsed .site-header .brand-title{
  display:inline-block !important;
  max-width:none;
  width:auto;
}

/* Glamour header theme */
body.header-style-glamour .site-header{
  --glamour-bg:var(--header-bg, #d8f3dc);
  --glamour-ink:var(--brand-title, #1b3a2a);
  --glamour-ink-soft:var(--nav-ink, #2f5240);
  --glamour-accent:var(--active-amber, var(--brand-title, #f59e0b));
  background:var(--glamour-bg);
  box-shadow:none;
  border-bottom:none;
}

html.theme-dark body.header-style-glamour .site-header{
  --glamour-ink:var(--brand-title-dark, var(--brand-title, #d4e4d9));
  --glamour-ink-soft:var(--nav-ink-dark, var(--nav-ink, #bac7be));
}
body.header-style-glamour .site-header::after{
  display:none;
}
body.header-style-glamour .site-header .container{
  max-width:1280px;
  width:100%;
  margin:0 auto;
  padding:32px 2rem 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}
body.header-style-glamour .nav{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  padding:0;
}
body.header-style-glamour .nav-left{
  order:1;
  width:100%;
  display:flex;
  justify-content:center;
  padding:0;
  border:none;
}
body.header-style-glamour .brand{
  flex-direction:column;
  align-items:center;
  gap:0;
  padding:0;
  color:var(--glamour-ink);
  width:100%;
  max-width:100%;
}
body.header-style-glamour .brand .logo{
  display:none;
}
body.header-style-glamour .brand-title{
  font-family:'League Spartan','Oswald','Impact','Arial Black',sans-serif;
  font-size:clamp(1.35rem, 5.8vw, 3.1rem);
  line-height:1.06;
  letter-spacing:clamp(0.08rem, .6vw, 0.28rem);
  text-transform:uppercase;
  color:var(--glamour-ink);
  white-space:nowrap;
  overflow:visible;
  text-align:center;
  display:block;
}
body.header-style-glamour .nav-controls{
  order:0;
  align-self:flex-end;
  display:flex;
  align-items:center;
  gap:0.75rem;
  padding:0;
  margin:0;
  background:none;
  border:none;
}
body.header-style-glamour .nav-controls .icon-btn,
body.header-style-glamour .language-switcher button{
  background:transparent;
  color:var(--glamour-ink);
  border:none;
  box-shadow:none;
}
body.header-style-glamour .nav-controls .icon-btn:hover,
body.header-style-glamour .language-switcher button:hover{
  color:var(--glamour-accent);
}
body.header-style-glamour .links{
  order:2;
  width:100%;
  display:block;
  padding:0;
  margin:0;
  border:none;
}
body.header-style-glamour #primaryNav{
  display:none;
  flex-direction:row;
  justify-content:center;
  align-items:center;
  gap:1rem;
  flex-wrap:nowrap;
  padding:16px 0 0;
  margin:0;
  overflow:hidden;
}
body.header-style-glamour #primaryNav.open{
  display:flex;
}
body.header-style-glamour .nav-link{
  font-size:1.05rem;
  font-weight:600;
  color:var(--glamour-ink-soft);
  letter-spacing:0.02rem;
  text-transform:none;
  padding:0;
  position:relative;
}
body.header-style-glamour #primaryNav .nav-link{
  flex:1 1 auto;
  text-align:center;
  white-space:nowrap;
  font-size:clamp(12px, 2vw, 16px);
}
body.header-style-glamour .nav-link:hover,
body.header-style-glamour .nav-link:focus{
  color:var(--glamour-ink);
}
body.header-style-glamour .nav-link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:3px;
  background:var(--glamour-accent);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .2s ease, opacity .2s ease;
  opacity:0;
}
body.header-style-glamour .nav-link:hover::after,
body.header-style-glamour .nav-link:focus::after,
body.header-style-glamour .nav-link.active::after{
  transform:scaleX(1);
  opacity:1;
}
body.header-style-glamour .links a.active{
  border-bottom:none;
}
html.theme-dark body.header-style-glamour .nav-link{
  color:var(--glamour-ink-soft);
}
html.theme-dark body.header-style-glamour .nav-link:hover,
html.theme-dark body.header-style-glamour .nav-link:focus{
  color:var(--glamour-ink);
}
html.theme-dark body.header-style-glamour .nav-link::after{
  background:var(--glamour-accent);
}
body.header-style-glamour .nav-actions{
  order:3;
  align-self:flex-end;
  display:flex;
  gap:0.75rem;
  margin:0;
  background:none;
  border:none;
}
body.header-style-glamour .nav-actions .icon-btn,
body.header-style-glamour .font-controls button{
  background:transparent;
  color:var(--glamour-ink);
  border:none;
  font-weight:600;
  letter-spacing:0.02rem;
  font-size:clamp(.85rem, 2.2vw, 1rem);
  padding:.4rem .7rem;
}
body.header-style-glamour .font-controls{
  background:none;
  border:none;
  box-shadow:none;
}
html.theme-dark body.header-style-glamour .site-header{
  --glamour-bg:#0f241a;
  --glamour-ink:#e6f8ee;
  --glamour-ink-soft:#b9dac6;
  background:var(--glamour-bg);
  box-shadow:0 12px 24px rgba(0,0,0,.35);
}
html.theme-dark body.header-style-glamour .nav::before{
  background:rgba(233,255,242,.25);
}
html.theme-dark body.header-style-glamour .brand-title{
  color:var(--glamour-ink);
}
html.theme-dark body.header-style-glamour .nav-link{
  color:var(--glamour-ink-soft);
}
html.theme-dark body.header-style-glamour .nav-link:hover,
html.theme-dark body.header-style-glamour .nav-link:focus{
  color:var(--glamour-ink);
}
html.theme-dark body.header-style-glamour .nav-link::after{
  background:var(--glamour-ink);
}
html.theme-dark body.header-style-glamour .nav-controls .icon-btn,
html.theme-dark body.header-style-glamour .language-switcher button,
html.theme-dark body.header-style-glamour .nav-actions .icon-btn,
html.theme-dark body.header-style-glamour .font-controls button{
  color:var(--glamour-ink);
  background:rgba(230,248,238,.08);
  border-radius:999px;
  padding:.35rem .65rem;
}
html.theme-dark body.header-style-glamour .nav-controls .icon-btn:hover,
html.theme-dark body.header-style-glamour .language-switcher button:hover,
html.theme-dark body.header-style-glamour .nav-actions .icon-btn:hover,
html.theme-dark body.header-style-glamour .font-controls button:hover{
  color:#ffffff;
  background:rgba(230,248,238,.18);
}
html.theme-dark body.header-style-glamour .language-menu{
  background:#152f23;
  border-color:rgba(230,248,238,.18);
  color:var(--glamour-ink);
  box-shadow:0 18px 40px rgba(0,0,0,.45);
}
html.theme-dark body.header-style-glamour .language-menu__item:hover{
  background:rgba(148,233,193,.16);
  color:var(--glamour-ink);
}
html.theme-dark body.header-style-glamour .language-menu__item[aria-selected='true']{
  background:#2a5d43;
  color:#f4fff6;
}
html.theme-dark body.header-style-glamour .language-overlay{
  background:rgba(5,12,9,.65);
}
@media (min-width:680px){
  body.header-style-glamour .site-header .container{
    padding:40px 3rem 24px;
  }
  body.header-style-glamour .nav{
    display:grid;
    grid-template-columns:[links-start] auto [lang-start] auto [actions-start] auto;
    grid-template-areas:
      "brand brand brand"
      "divider divider divider"
      "links lang actions";
    column-gap:32px;
    row-gap:0;
    align-items:center;
    justify-content:center;
  }
  body.header-style-glamour .nav::before{
    content:"";
    display:block;
    grid-area:divider;
    height:1px;
    background:rgba(27,58,42,.25);
    align-self:stretch;
    justify-self:stretch;
    grid-column:1 / -1;
    margin:0;
  }
  body.header-style-glamour .nav-left{
    grid-area:brand;
    justify-self:center;
    grid-column:1 / -1;
    align-self:end;
  }
  body.header-style-glamour .nav-controls{
    grid-area:lang;
    justify-self:end;
    align-self:center;
    padding:18px 0 0 0;
    display:flex;
    align-items:center;
  }
  body.header-style-glamour .links{
    grid-area:links;
    align-self:center;
  }
  body.header-style-glamour #primaryNav{
    display:flex !important;
    flex-direction:row;
    justify-content:center;
    align-items:center;
    gap:1rem;
    padding:18px 0 0 0;
    border-top:none;
    margin-top:0;
  }
  body.header-style-glamour .nav-actions{
    grid-area:actions;
    align-self:center;
    justify-self:end;
    padding:18px 0 0 0;
    display:flex;
    align-items:center;
  }
  body.header-style-glamour #menuToggle{
    display:none;
  }
}

body.header-style-glamour.header-brand-hidden .site-header .container{
  padding-top:0;
  gap:8px;
}
body.header-style-glamour.header-brand-hidden .nav{
  row-gap:0;
  grid-template-columns:[links-start] auto [lang-start] auto [actions-start] auto;
}
body.header-style-glamour.header-brand-hidden .nav::before{
  margin-top:0;
}
body.header-style-glamour.header-brand-hidden .nav-left{
  display:none;
}
@media (min-width:680px){
  body.header-style-glamour.header-brand-hidden .nav{
    grid-template-areas:
      "divider divider divider"
      "links lang actions";
    align-items:center;
  }
}

@media (max-width:679px){
  body.header-style-glamour .site-header .container{
    padding:16px 1rem 12px;
    align-items:center;
    gap:8px;
  }
  body.header-style-glamour .brand{
    flex-direction:column;
    align-items:center;
    gap:0;
  }
  body.header-style-glamour .brand-title{
    font-size:clamp(1.1rem, 8vw, 2rem);
    letter-spacing:clamp(0.06rem, 0.8vw, 0.18rem);
    line-height:1.04;
    width:100%;
  }
  body.header-style-glamour .nav{
    width:100%;
    display:grid;
    grid-template-columns:auto auto;
    grid-template-areas:
      "brand brand"
      "divider divider"
      "links links"
      "controls actions";
    row-gap:4px;
    column-gap:16px;
    align-items:center;
    justify-content:center;
    justify-items:center;
  }
  body.header-style-glamour .nav::before{
    grid-area:divider;
    width:100%;
    height:1px;
    background:rgba(27,58,42,.25);
  }
  html.theme-dark body.header-style-glamour .nav::before{
    background:rgba(233,255,242,.25);
  }
  body.header-style-glamour .nav-left{
    grid-area:brand;
    width:100%;
    display:flex;
    justify-content:center;
  }
  body.header-style-glamour .links{
    grid-area:links;
    width:100%;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px 10px;
  }
  body.header-style-glamour #primaryNav{
    grid-area:links;
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    justify-content:center;
    align-items:center;
    gap:.6rem;
    padding:4px 0 0;
    border-top:none;
    margin:0;
    overflow:visible;
  }
  body.header-style-glamour #primaryNav .nav-link{
    font-size:clamp(.82rem, 4vw, .96rem);
  }
  body.header-style-glamour .nav-controls{
    grid-area:controls;
    display:flex;
    align-items:center;
    gap:8px;
    justify-content:flex-end;
    flex-wrap:nowrap;
    width:auto;
    justify-self:end;
    flex-shrink:1;
    max-width:100%;
  }
  body.header-style-glamour .nav-actions{
    grid-area:actions;
    display:flex;
    align-items:center;
    gap:8px;
    justify-content:flex-start;
    flex-wrap:nowrap;
    width:auto;
    justify-self:start;
    flex-shrink:1;
    max-width:100%;
  }
  body.header-style-glamour #menuToggle{
    display:none;
  }
  body.header-style-glamour .nav-controls .language-toggle__label{
    font-size:.62rem;
  }
  body.header-style-glamour .nav-controls .icon-btn,
  body.header-style-glamour .nav-actions .icon-btn{
    padding:.24rem .45rem;
  }
  body.header-style-glamour .font-controls{
    gap:.18rem;
  }
  body.header-style-glamour.header-brand-hidden .nav{
    grid-template-areas:
      "divider divider"
      "links links"
      "controls actions";
  }
}
.links a.active::after{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  bottom:-6px;
  height:3px;
  background:var(--active-amber);
  border-radius:999px;
  box-shadow:0 2px 6px rgba(250,204,21,.35);
}
