/* MintWeb - site header and footer (lib/chrome.php). Colours and fonts come from the theme tokens (lib/rows.php). */
.sh, .sh-top, .sf { box-sizing: border-box; }
.sh *, .sh-top *, .sf * { box-sizing: border-box; }
.sh { position: relative; --sh-full: 76px; --sh-h: var(--sh-full); --sh-bg: #fff; --sh-ink: #111827; --sh-muted: #4b5563; --sh-line: rgba(17, 24, 39, .08); z-index: 900; font-family: var(--ad-font); }
.sh[data-pos="sticky"], .sh[data-pos="smart"] { position: sticky; top: 0; }
.sh[data-pos="overlay"] { position: sticky; top: 0; margin-bottom: calc(-1 * var(--sh-h)); }
.sh-top { position: relative; z-index: 901; }
.sh { background: var(--sh-bg); color: var(--sh-ink); transition: background-color .25s, color .25s, box-shadow .25s, transform .3s var(--ad-ease, ease); }
.sh[data-height="compact"] { --sh-full: 60px; } .sh[data-height="tall"] { --sh-full: 96px; }
.sh[data-style="theme"] { --sh-bg: var(--ad-bg); --sh-ink: var(--ad-ink); --sh-muted: color-mix(in srgb, var(--ad-ink) 75%, var(--ad-bg)); --sh-line: color-mix(in srgb, var(--ad-ink) 10%, transparent); }
.sh[data-style="dark"] { --sh-bg: #0f1115; --sh-ink: #f3f4f6; --sh-muted: #c3c8d0; --sh-line: rgba(255, 255, 255, .1); }
.sh[data-style="accent"] { --sh-bg: var(--ad-accent); --sh-ink: var(--ad-accent-ink); --sh-muted: var(--ad-accent-ink); --sh-line: rgba(255, 255, 255, .18); }
.sh[data-style="glass"] { --sh-bg: transparent; }
.sh[data-style="glass"]::before { content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, .74); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); z-index: -1; }
.sh[data-shadow] { box-shadow: 0 1px 0 var(--sh-line); }
.sh.is-scrolled[data-shadow] { box-shadow: 0 1px 0 var(--sh-line), 0 10px 30px -14px rgba(16, 24, 40, .25); }
.sh.is-scrolled[data-shrink] { --sh-h: 60px; }
/* shrinking must not move the page: the space the header gives up stays as margin, so the scroll position never changes (that change made the header shake) */
.sh[data-shrink]:not([data-pos="overlay"]) { transition: background-color .25s, color .25s, box-shadow .25s, transform .3s var(--ad-ease, ease), margin-bottom .25s; }
.sh.is-scrolled[data-shrink]:not([data-pos="overlay"]) { margin-bottom: calc(var(--sh-full) - var(--sh-h)); }
.sh.is-scrolled[data-shrink] .sh-logo { max-height: 40px; }
.sh.is-hidden { transform: translateY(-110%); }
/* transparent over the first section until the visitor scrolls */
.sh[data-pos="overlay"]:not(.is-scrolled) { --sh-bg: transparent; --sh-ink: #fff; --sh-muted: #fff; box-shadow: none; }
.sh[data-pos="overlay"]:not(.is-scrolled)[data-style="glass"]::before { opacity: 0; }
.sh[data-pos="overlay"]:not(.is-scrolled) .sh-brand, .sh[data-pos="overlay"]:not(.is-scrolled) .adm-menu__panel > .adm-menu__list > .adm-menu__item > .adm-menu__row { text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.sh[data-pos="overlay"]:not(.is-scrolled) .sh-cta.is-outline { border-color: rgba(255, 255, 255, .8); }

.sh-in { display: flex; align-items: center; gap: 20px; min-height: var(--sh-h); max-width: var(--ad-max, 1180px); margin: 0 auto; padding: 0 clamp(16px, 4vw, 40px); transition: min-height .25s; }
.sh-in.is-full { max-width: none; }
.sh-brand { display: inline-flex; align-items: center; gap: 12px; flex: none; color: inherit !important; text-decoration: none !important; min-width: 0; }
.sh-logo { display: block; width: auto; max-width: 220px; object-fit: contain; transition: max-height .25s; }
.sh-name { font: 700 1.2rem/1.2 var(--ad-font-head, inherit); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sh-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: flex-end; }
.sh-nav .adm-menu { width: 100%; font-size: 15.5px; font-weight: 500; }
.sh-nav .adm-menu--bar { display: flex; justify-content: flex-end; }
.sh-nav .adm-menu a.adm-menu__link { color: inherit !important; border-radius: 8px; }
.sh-nav .adm-menu__panel > .adm-menu__list > .adm-menu__item > .adm-menu__row > a.adm-menu__link:hover { background: color-mix(in srgb, currentColor 8%, transparent); }
.sh-nav .adm-menu__item.is-current > .adm-menu__row > .adm-menu__link { font-weight: 600; }
.sh-actions { display: flex; align-items: center; gap: 14px; flex: none; }
.sh-cta { display: inline-flex; align-items: center; min-height: 42px; padding: 9px 18px; border-radius: var(--ad-btn-radius, 10px); background: var(--ad-accent); color: var(--ad-accent-ink) !important; font: 600 15px/1.2 var(--ad-font); text-decoration: none !important; border: 1px solid transparent; white-space: nowrap; transition: transform .15s, background-color .15s; }
.sh-cta:hover { transform: translateY(-1px); background: var(--ad-accent-hover, var(--ad-accent)); }
.sh-cta.is-outline { background: transparent; color: inherit !important; border-color: color-mix(in srgb, currentColor 35%, transparent); }
.sh[data-style="accent"] .sh-cta:not(.is-outline) { background: var(--ad-accent-ink); color: var(--ad-accent) !important; }
.sh-social { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.sh-social a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: inherit !important; opacity: .85; }
.sh-social a:hover { opacity: 1; background: color-mix(in srgb, currentColor 10%, transparent); }
.sh-social.sm a { width: 28px; height: 28px; }
.sh-i { display: block; flex: none; }
.sh-edit { position: absolute; left: 12px; bottom: -34px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 8px; background: #4f46e5; color: #fff !important; font: 600 12px/1 system-ui, sans-serif; text-decoration: none !important; box-shadow: 0 6px 18px rgba(79, 70, 229, .35); opacity: 0; transition: opacity .15s; z-index: 5; }
.sh:hover .sh-edit, .sh-edit:focus-visible, .sf:hover .sf-edit { opacity: 1; }
.sf-edit { top: 12px; bottom: auto; left: 12px; }

/* layouts */
.sh[data-layout="inline"] .sh-nav { justify-content: center; }
.sh[data-layout="inline"] .sh-nav .adm-menu--bar { justify-content: center; }
.sh[data-layout="centered"] .sh-in { flex-wrap: wrap; justify-content: center; padding-top: 14px; row-gap: 4px; }
.sh[data-layout="centered"] .sh-brand { order: 1; flex-basis: 100%; justify-content: center; }
.sh[data-layout="centered"] .sh-nav { order: 2; justify-content: center; flex-basis: auto; }
.sh[data-layout="centered"] .sh-actions { order: 3; }
.sh[data-layout="centered"] .sh-in { min-height: 0; }
.sh[data-layout="centered"] .sh-nav .adm-menu--bar { justify-content: center; }
.sh[data-layout="minimal"] .sh-nav { justify-content: flex-end; order: 3; flex: none; }
.sh[data-layout="minimal"] .sh-actions { margin-left: auto; }

/* narrow screens: brand left, button and burger right */
.sh-panel-extra { display: flex; flex-direction: column; gap: 14px; padding: 20px 16px 8px; }
.sh-panel-extra .sh-cta { justify-content: center; }
.sh-panel-extra .sh-social a { color: inherit !important; }
@media (max-width: 1023px) { .sh[data-layout="centered"] .sh-brand { flex-basis: auto; } .sh[data-layout="centered"] .sh-in { justify-content: space-between; padding-top: 0; min-height: var(--sh-h); flex-wrap: nowrap; } }
@media (max-width: 720px) { .sh-actions .sh-social { display: none; } .sh-actions .sh-cta { display: none; } .sh-name { font-size: 1.05rem; } }
@media (min-width: 768px) { .adm-menu--bar[data-breakpoint="768"] .sh-panel-extra { display: none; } .sh .adm-menu--bar[data-breakpoint="768"] > .adm-menu__panel { color: inherit; } .sh-nav .adm-menu--bar[data-breakpoint="768"] .adm-menu__panel > .adm-menu__list > .adm-menu__item.is-current > .adm-menu__row > .adm-menu__link { box-shadow: inset 0 -2px 0 currentColor; border-radius: 0; } }
@media (min-width: 1024px) { .adm-menu--bar[data-breakpoint="1024"] .sh-panel-extra { display: none; } .sh .adm-menu--bar[data-breakpoint="1024"] > .adm-menu__panel { color: inherit; } .sh-nav .adm-menu--bar[data-breakpoint="1024"] .adm-menu__panel > .adm-menu__list > .adm-menu__item.is-current > .adm-menu__row > .adm-menu__link { box-shadow: inset 0 -2px 0 currentColor; border-radius: 0; } }
@media (min-width: 1280px) { .adm-menu--bar[data-breakpoint="1280"] .sh-panel-extra { display: none; } .sh .adm-menu--bar[data-breakpoint="1280"] > .adm-menu__panel { color: inherit; } .sh-nav .adm-menu--bar[data-breakpoint="1280"] .adm-menu__panel > .adm-menu__list > .adm-menu__item.is-current > .adm-menu__row > .adm-menu__link { box-shadow: inset 0 -2px 0 currentColor; border-radius: 0; } }

.sh .adm-menu__burger { color: inherit; }
.sh .adm-menu__panel { --adm-menu-panel-bg: #fff; --adm-menu-panel-ink: #111827; }

/* top bar */
.sh-top { font: 500 14px/1.4 var(--ad-font); background: var(--ad-accent); color: var(--ad-accent-ink); }
.sh-top[data-style="dark"] { background: #0f1115; color: #f3f4f6; }
.sh-top[data-style="light"] { background: color-mix(in srgb, var(--ad-ink) 5%, #fff); color: var(--ad-ink); border-bottom: 1px solid rgba(17, 24, 39, .06); }
.sh-top-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: var(--ad-max, 1180px); margin: 0 auto; padding: 8px clamp(16px, 4vw, 40px); min-height: 40px; }
.sh-top-in.is-full { max-width: none; }
.sh-top a { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.sh-top-contact { display: flex; align-items: center; gap: 18px; flex: none; margin-left: auto; }
.sh-top-contact > a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-weight: 500; }
.sh-top-contact .sh-social a { text-decoration: none; }
.sh-top-x { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.sh-top-x:hover { background: rgba(255, 255, 255, .15); }
.sh-top:has(.sh-top-msg:only-child) .sh-top-in, .sh-top .sh-top-msg:only-child { justify-content: center; text-align: center; flex: 1; }
@media (max-width: 720px) { .sh-top-contact { display: none; } .sh-top-msg { flex: 1; text-align: center; } }
.sh-top[hidden] { display: none; }

/* ---------- footer ---------- */
.sf { font-size: 15.5px; line-height: 1.6; }
.sf.mw-row p, .sf.mw-row li { font-size: inherit !important; line-height: 1.6 !important; }
.sf-news .mw-inline-form { flex-direction: column; }
.sf-news .mw-inline-form .mw-btn { width: 100% !important; }
.sf.mw-row { padding-top: clamp(48px, 6vw, 80px) !important; padding-bottom: 28px !important; }
.sf .sh-brand { margin-bottom: 14px; }
.sf .sh-name { font-size: 1.25rem; }
.sf-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(auto-fit, minmax(150px, 1fr)); gap: clamp(28px, 4vw, 56px); }
.sf-about { color: var(--r-muted); max-width: 36ch; margin: 0 0 18px !important; }
.sf .sf-h, .sf.mw-row h2.sf-h { font: 600 .82rem/1.2 var(--ad-font) !important; font-size: .82rem !important; letter-spacing: .1em !important; text-transform: uppercase; letter-spacing: .1em; color: var(--r-muted) !important; margin: 0 0 14px !important; }
.sf-col ul { list-style: none; padding: 0 !important; margin: 0 !important; }
.sf-col li { margin: 0 0 10px !important; padding: 0 !important; }
.sf a { color: var(--r-ink) !important; text-decoration: none !important; }
.sf a:hover { text-decoration: underline !important; text-underline-offset: 3px; }
.sf-contact li { display: flex; gap: 10px; align-items: flex-start; }
.sf-contact .sh-i { margin-top: 3px; color: var(--r-muted); }
.sf-social { display: flex; gap: 6px; list-style: none; margin: 0 !important; padding: 0 !important; }
.sf-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--r-line); }
.sf-social a:hover { background: var(--r-soft); text-decoration: none !important; }
.sf-news p { color: var(--r-muted); margin: 0 0 12px !important; }
.sf-news .mw-inline-form { max-width: 360px; }
.sf-base { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; justify-content: space-between; margin-top: clamp(36px, 5vw, 56px) !important; padding-top: 22px; border-top: 1px solid var(--r-line); color: var(--r-muted); font-size: .9rem; }
.sf-base p { margin: 0 !important; color: inherit; }
.sf-legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.sf-legal a, .sf-top { color: var(--r-muted) !important; }
.sf-top { display: inline-flex; align-items: center; gap: 6px; }
.sf-inline { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.sf-simple { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; }
.sf-simple .sh-brand { margin: 0; }
.sf[data-layout="simple"] .sf-base { margin-top: 24px !important; }
.sf-centered { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
.sf-centered .sf-about { margin: 0 auto !important; }
.sf-centered .sh-brand { margin: 0; }
.sf-centered .sf-inline { justify-content: center; }
.sf[data-layout="centered"] .sf-base { justify-content: center; text-align: center; flex-direction: column; }
.sf-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: clamp(24px, 4vw, 40px); margin-bottom: clamp(40px, 6vw, 64px) !important; border-radius: calc(var(--ad-radius, 12px) + 4px); background: var(--r-soft); }
.sf-cta h2 { font-size: clamp(1.5rem, 1.2vw + 1.1rem, 2.1rem) !important; margin: 0 0 6px !important; }
.sf-cta p { margin: 0 !important; color: var(--r-muted); }
@media (max-width: 860px) { .sf-grid { grid-template-columns: 1fr 1fr; } .sf-lead { grid-column: 1 / -1; } }
@media (max-width: 520px) { .sf-grid { grid-template-columns: 1fr; } .sf-base { flex-direction: column; align-items: flex-start; } }
@media (prefers-reduced-motion: reduce) { .sh, .sh-in, .sh-logo { transition: none; } }

/* the old template gives body a fixed height, which stops a sticky header; let the page grow */
html:has(body > .sh), body:has(> .sh) { height: auto !important; }
/* keep the footer at the bottom of short pages */
body:has(> #site-footer) { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body:has(> #site-footer) > #main { flex: 1 0 auto; }
body:has(> #site-footer) > .sh, body:has(> #site-footer) > .sh-top, body:has(> #site-footer) > #site-footer { flex: none; }
/* the site header replaces the old top spacing above the content */
.sh ~ #main > #contentarea:first-child { margin-top: 0 !important; }
/* editor: the row tools float above each row, so leave room and keep them above the header */
html[data-mw-edit] .sh { z-index: 1; }
html[data-mw-edit] .sh ~ #main > #contentarea:first-child { margin-top: 48px !important; }
html[data-mw-edit] .sh-top { z-index: 2; }

/* narrow screens: once the menu turns into a burger, it sits at the right edge whatever the desktop alignment
   (the "centred menu" setting is for the menu bar, not for the burger) */
@media (max-width: 767.98px) {
  .sh .sh-nav, .sh .sh-nav .adm-menu--bar { justify-content: flex-end; }
  .sh .sh-nav { margin-left: auto; }
  .sh[data-layout="centered"] .sh-in { flex-wrap: nowrap; justify-content: space-between; padding-top: 0; }
  .sh[data-layout="centered"] .sh-brand { flex-basis: auto; justify-content: flex-start; }
}
@media (max-width: 1023.98px) {
  .sh .sh-nav:has(.adm-menu--bar[data-breakpoint="1024"]), .sh .sh-nav:has(.adm-menu--bar[data-breakpoint="1280"]),
  .sh .sh-nav .adm-menu--bar[data-breakpoint="1024"], .sh .sh-nav .adm-menu--bar[data-breakpoint="1280"] { justify-content: flex-end; margin-left: auto; }
  .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1024"]), .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1280"]) { flex-wrap: nowrap; justify-content: space-between; padding-top: 0; }
  .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1024"]) .sh-brand, .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1280"]) .sh-brand { flex-basis: auto; justify-content: flex-start; }
}
@media (max-width: 1279.98px) {
  .sh .sh-nav:has(.adm-menu--bar[data-breakpoint="1280"]), .sh .sh-nav .adm-menu--bar[data-breakpoint="1280"] { justify-content: flex-end; margin-left: auto; }
  .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1280"]) { flex-wrap: nowrap; justify-content: space-between; padding-top: 0; }
  .sh[data-layout="centered"] .sh-in:has(.adm-menu--bar[data-breakpoint="1280"]) .sh-brand { flex-basis: auto; justify-content: flex-start; }
}
