/* Shared layout. Keep these rules after each page's stylesheet. */
.best-header, .best-footer { --best-coral:#f15b43; --best-navy:#263f5e; box-sizing:border-box; font-family:Montserrat,Arial,sans-serif; font-size:14px; line-height:1.6; }
.best-header *, .best-footer * { box-sizing:border-box; }
.best-container { width:min(1140px,calc(100% - 40px)); margin-inline:auto; }
.best-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.best-skip { position:fixed; z-index:110; left:16px; top:12px; padding:12px 18px; color:#263f5e; background:white; transform:translateY(-200%); }
.best-skip:focus { transform:none; }
.best-header { position:relative; z-index:50; inset:auto; width:100%; margin:0; padding:0; color:white; background:#263f5e; border:0; }
.best-header--overlay { position:absolute; top:0; left:0; background:rgba(12,20,29,.23); }
.best-topbar { border-bottom:1px solid rgba(255,255,255,.2); }
.best-contact-strip { display:flex; align-items:center; flex-wrap:wrap; gap:4px 22px; min-height:31px; padding-block:4px; }
.best-contact-strip a, .best-location { display:inline-flex; align-items:center; gap:10px; color:white; font-size:13px; line-height:1.4; text-decoration:none; }
.best-contact-strip a:hover { text-decoration:underline; }
.best-contact-strip svg { flex-shrink:0; width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; }
.best-navigation { position:relative; display:flex; align-items:center; gap:34px; min-height:84px; }
.best-header .best-logo { display:block; flex-shrink:0; width:60px; margin-right:auto; }
.best-header .best-logo img { display:block; width:60px; height:60px; object-fit:contain; }
.best-header .best-nav { position:static; display:block; width:auto; margin:0; padding:0; background:none; box-shadow:none; order:initial; }
.best-header ul { list-style:none; margin:0; padding:0; }
.best-header .best-menu { display:flex; align-items:center; gap:28px; }
.best-header .best-nav-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:0; padding:10px 0; border:0; border-radius:0; background:transparent; color:white; font:600 15px/1.5 Montserrat,Arial,sans-serif; white-space:nowrap; text-decoration:none; cursor:pointer; }
.best-header .best-nav-link:hover, .best-header .best-nav-link[aria-current="page"], .best-header .best-programmes-toggle[aria-expanded="true"], .best-header .best-programmes-toggle[data-current] { color:#ff826d; text-decoration:none; }
.best-programmes-toggle svg { width:10px; height:7px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .15s; }
.best-programmes-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.best-header .best-programmes { position:relative; }
.best-header .best-dropdown { position:absolute; display:none; top:100%; left:0; width:570px; max-width:calc(100vw - 40px); max-height:min(540px,calc(100dvh - 130px)); overflow-y:auto; background:white; box-shadow:0 12px 30px rgba(0,0,0,.15); }
.best-header .best-dropdown a { display:block; padding:12px 22px; margin:0; border-bottom:1px solid #e9e9e9; color:#3c5067; background:#fff; font:600 14px/1.5 Montserrat,Arial,sans-serif; white-space:normal; overflow-wrap:break-word; text-decoration:none; }
.best-header .best-dropdown li:last-child a { border-bottom:0; }
.best-header .best-dropdown a:hover, .best-header .best-dropdown a:focus-visible, .best-header .best-dropdown a[aria-current="page"] { color:#963422; background:#faf1ef; text-decoration:none; }
.best-header .best-programmes[data-open] > .best-dropdown { display:block; }
/* Keyboard/hover fallback also works when JavaScript is disabled. */
html:not(.best-enhanced) .best-programmes:hover > .best-dropdown,
html:not(.best-enhanced) .best-programmes:focus-within > .best-dropdown { display:block; }
.best-header .best-button, .best-footer .best-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 23px; border:1px solid transparent; border-radius:28px; color:white; background:#f15b43; font:700 14px/1.5 Montserrat,Arial,sans-serif; text-align:center; text-decoration:none; cursor:pointer; white-space:nowrap; }
.best-header .best-button:hover, .best-footer .best-button:hover { background:#c3422e; text-decoration:none; }
.best-header .best-menu-toggle, .best-header .best-mobile-donate { display:none; }
.best-header :focus-visible, .best-footer :focus-visible { outline:3px solid #ffb098; outline-offset:3px; }
.best-header .best-dropdown :focus-visible { outline-offset:-3px; }
.best-footer { display:block; position:relative; z-index:auto; width:100%; margin:0; padding:60px 0 0; border:0; color:#e4e4e4; background:#343434; }
.best-footer .best-footer-grid { display:grid; grid-template-columns:.6fr 1.65fr 1.05fr .65fr; gap:35px; align-items:start; }
.best-footer .best-footer-logo { display:block; width:125px; max-width:100%; }
.best-footer .best-footer-logo img { display:block; width:100%; height:auto; object-fit:contain; }
.best-footer h2 { margin:0 0 20px; padding:0; color:white; font:600 17px/1.4 Montserrat,Arial,sans-serif; letter-spacing:0; text-transform:none; }
.best-footer p { margin:0 0 12px; font-size:14px; line-height:1.8; }
.best-footer a { color:#e4e4e4; font-size:14px; line-height:1.8; white-space:normal; text-decoration:none; overflow-wrap:anywhere; }
.best-footer a:hover { color:white; text-decoration:underline; }
.best-footer-grid > div > a { display:block; margin:0 0 8px; }
.best-footer .best-footer-pages { display:flex; position:static; flex-direction:column; align-items:start; width:auto; margin:0; padding:0; gap:6px; background:none; }
.best-footer .best-footer-pages h2 { margin-bottom:10px; }
.best-footer .best-footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:25px; margin-top:40px; padding:28px 0; border-top:1px solid #575757; }
.best-footer .best-newsletter { max-width:100%; }
.best-footer .best-newsletter h2 { font-size:15px; margin-bottom:14px; }
.best-footer .best-newsletter form { display:flex; flex-direction:row; gap:12px; margin:0; }
.best-footer .best-newsletter input { width:255px; max-width:100%; min-width:0; min-height:44px; margin:0; padding:11px 17px; border:1px solid #999; border-radius:28px; background:transparent; color:white; font:400 14px/1.5 Montserrat,Arial,sans-serif; }
.best-footer .best-newsletter input::placeholder { color:#ddd; }
.best-footer p.best-newsletter-help { margin:10px 0 0; color:#ccc; font-size:13px; }
.best-footer .best-legal-links { display:flex; flex-wrap:wrap; gap:12px 25px; }
.best-footer p.best-copyright { margin:0; padding:20px; color:#ddd; background:#3d3d3d; font-size:13px; text-align:center; }
@media (max-width:1199px) {
  .best-navigation { gap:24px; }
  .best-header .best-menu { gap:20px; }
  .best-header .best-dropdown { left:-80px; }
}
@media (max-width:1023px) {
  .best-header .best-nav-link { font-size:14px; }
  .best-navigation { gap:18px; }
  .best-header .best-menu { gap:17px; }
  .best-header .best-dropdown { left:-95px; }
  .best-footer .best-footer-grid { grid-template-columns:1fr 1.6fr; gap:32px; }
}
@media (max-width:899px) {
  .best-contact-strip { gap:5px 18px; padding-block:6px; }
  .best-location { display:none; }
  .best-navigation { min-height:78px; flex-wrap:wrap; gap:0; }
  .best-header .best-logo, .best-header .best-logo img { width:54px; height:54px; }
  .best-header .best-menu-toggle { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-width:46px; min-height:46px; margin:0; padding:10px; border:1px solid rgba(255,255,255,.45); border-radius:5px; color:white; background:transparent; cursor:pointer; }
  .best-menu-toggle span { display:block; width:23px; height:2px; background:currentColor; }
  .best-header .best-desktop-donate { display:none; }
  .best-header .best-mobile-donate { display:block; padding:14px 0 6px; }
  .best-header .best-nav { position:static; width:100%; order:3; padding:12px 0 20px; }
  html.best-enhanced .best-header .best-nav { display:none; position:absolute; top:100%; left:-20px; width:calc(100% + 40px); max-height:calc(100dvh - 122px); overflow-y:auto; overscroll-behavior:contain; padding:12px 20px 20px; background:#263f5e; box-shadow:0 14px 24px rgba(0,0,0,.22); }
  html.best-enhanced .best-header[data-menu-open] .best-nav { display:block; }
  html:not(.best-enhanced) .best-header { position:relative; background:#263f5e; }
  html:not(.best-enhanced) .best-header .best-menu-toggle { display:none; }
  .best-header .best-menu { display:block; }
  .best-header .best-menu > li { width:100%; }
  .best-header .best-nav-link { width:100%; justify-content:space-between; min-height:46px; padding:11px 0; font-size:15px; }
  .best-header .best-dropdown { position:static; width:100%; max-width:none; max-height:none; margin:0 0 10px; box-shadow:none; }
  .best-header .best-dropdown a { padding:12px 16px; font-size:14px; }
}
@media (max-width:599px) {
  .best-container { width:calc(100% - 32px); }
  .best-contact-strip { column-gap:14px; }
  .best-contact-strip a { font-size:12px; gap:6px; }
  .best-contact-strip svg { width:12px; height:12px; }
  html.best-enhanced .best-header .best-nav { left:-16px; width:calc(100% + 32px); padding-inline:16px; }
  .best-footer { padding-top:40px; }
  .best-footer .best-footer-grid { grid-template-columns:1fr; gap:30px; }
  .best-footer .best-footer-logo { width:100px; }
  .best-footer .best-footer-bottom { display:block; margin-top:30px; }
  .best-footer .best-newsletter form { flex-direction:column; }
  .best-footer .best-newsletter input, .best-footer .best-newsletter .best-button { width:100%; }
  .best-footer .best-legal-links { margin-top:25px; }
}
@media (prefers-reduced-motion:reduce) { .best-programmes-toggle svg { transition:none; } }
