/* The shared site shell owns its layout. Legacy Matchday's bare `footer`
   selector must not turn these two stacked rows into a constrained flex row. */
.club-footer {
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 42px 0 20px;
  font-family: var(--font);
  font-size: inherit;
  letter-spacing: normal;
}
.club-footer .footer-main,
.club-footer .footer-bottom {
  width: 90%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 520px) {
  .club-footer { padding-top: 33px; }
}

/* One shared horizontal navigation, with ordinary links inside a disclosure. */
#club-header { position: relative; z-index: 20; }
.skip-link { z-index: 40; }
.club-nav {
  position: relative;
  gap: clamp(14px, 2vw, 28px);
  padding-inline: max(5%, calc((100% - 1280px) / 2));
}
#primary-nav { gap: clamp(16px, 1.7vw, 26px); flex-wrap: wrap; }
#primary-nav > a,
.club-info-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}
#primary-nav > a > svg { width: 19px; height: 19px; flex: none; }
.club-info-toggle {
  border: 0;
  background: transparent;
  color: inherit;
  font-family: var(--font);
  white-space: nowrap;
}
.club-info-toggle > svg { width: 15px; height: 15px; }
.club-info-toggle[aria-expanded="true"] > svg { transform: rotate(180deg); }
.club-info.has-current-page > .club-info-toggle { box-shadow: 0 3px var(--yellow); }
.club-info-toggle:hover { text-decoration: underline; text-underline-offset: 5px; }
.club-info-panel {
  position: absolute;
  top: 100%;
  right: max(5%, calc((100% - 1280px) / 2));
  width: min(790px, 90%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  padding: 28px 30px 30px;
  background: var(--cream);
  color: var(--green);
  border-top: 4px solid var(--yellow);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 12px 18px #24332412;
}
.club-info-group { min-width: 0; }
.club-info-group h2 {
  font-size: 14px;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--leaf);
  margin: 0 0 10px;
}
#primary-nav .club-info-panel a {
  display: block;
  padding: 10px 0;
  min-height: 44px;
  white-space: normal;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  border: 0;
}
#primary-nav .club-info-panel a[aria-current] { box-shadow: none; text-decoration: underline; text-underline-offset: 5px; }
.club-info-toggle:focus-visible { outline-color: var(--yellow); }
#primary-nav .club-info-panel a:focus-visible { outline-color: var(--leaf); }
.matchday-action { font-size: 15px; padding: 12px 15px; }
.matchday-action > span { margin-left: 8px; }
.utility { padding: 0 max(5%, calc((100% - 1280px) / 2)); align-items: center; }
.utility .utility-links { align-items: center; gap: 18px; }
.utility-links > a { min-height: 44px; display: inline-flex; align-items: center; }
.club-socials { display: flex; align-items: center; gap: 2px; }
.club-socials a { display: inline-flex; width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.club-socials svg { width: 20px; height: 20px; }
.club-socials a:hover { color: var(--yellow); }
.club-socials a:focus-visible { outline-color: var(--yellow); outline-offset: 0; }
.footer-main { align-items: start; }
.footer-navigation, .footer-contact { min-width: 0; }
.footer-navigation a, .footer-contact > a { display: block; padding: 7px 0; font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.footer-navigation a[aria-current] { text-decoration: underline; text-underline-offset: 5px; }
.footer-contact .club-socials { margin: 0 0 16px; }
.footer-contact > a + .club-socials { margin-top: 14px; }
.footer-partners {
  width: 90%;
  max-width: 1280px;
  margin: 0 auto 38px;
  padding-bottom: 30px;
  border-bottom: 1px solid #ffffff30;
}
.footer-partners-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.footer-partners-heading h2 { font-size: 22px; margin: 0; }
.footer-partners-heading a { font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
.footer-partner-logos { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-partner-logos > a, .footer-partner-logos > div { width: 160px; min-height: 90px; padding: 14px; display: flex; align-items: center; justify-content: center; background: #fff; color: var(--green); text-align: center; }
.footer-partner-logos img { width: 100%; height: 66px; object-fit: contain; }
@media (max-width: 1200px) {
  .club-nav { gap: 20px; }
  #primary-nav { gap: 21px; }
  .club-nav .club-brand span { display: none; }
}
@media (max-width: 900px) {
  .club-nav { gap: 12px; }
  .club-nav .club-brand span { display: block; }
  #primary-nav { display: none; flex-wrap: nowrap; align-items: stretch; gap: 0; padding: 12px 0 4px; }
  .menu-open #primary-nav { display: flex; }
  #primary-nav > a, .club-info-toggle { justify-content: flex-start; padding: 15px 0; font-size: 18px; }
  #primary-nav > a { border-bottom: 1px solid #ffffff25; }
  .club-info-toggle { width: 100%; justify-content: space-between; }
  .club-info { border-bottom: 1px solid #ffffff25; }
  .club-info-panel {
    position: static;
    width: 100%;
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 20px 18px 24px;
    margin-bottom: 15px;
    box-shadow: none;
  }
  #primary-nav .club-info-panel a { font-size: 17px; }
  .utility .utility-links { justify-content: flex-end; gap: 14px; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-identity { grid-column: auto; }
}
@media (max-width: 520px) {
  .club-nav .club-brand span { display: none; }
  .club-nav { gap: 12px; }
  .matchday-action { font-size: 14px; padding: 12px; }
  .menu-toggle { padding: 10px; min-height: 44px; }
  .utility .utility-links { width: 100%; gap: 12px; justify-content: space-between; }
  .utility .utility-links > a { display: inline-flex; font-size: 11px; white-space: nowrap; }
  #header-socials { margin-right: auto; }
  .club-socials { gap: 0; }
  .footer-main { gap: 28px 22px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-contact { grid-column: 1 / -1; }
  .footer-contact .club-socials { margin-bottom: 12px; }
  .footer-partner-logos > a, .footer-partner-logos > div { width: 145px; }
}

/* A continuous pointer region connects the desktop disclosure to its panel. */
@media(min-width:901px){
 #primary-nav{align-self:stretch;align-items:stretch}
 #primary-nav>a,.club-info{display:flex;align-items:center}
 .club-info-toggle{height:100%}
 .club-info:has(>.club-info-toggle[aria-expanded="true"])::after{content:"";position:absolute;top:calc(100% - 12px);right:max(5%,calc((100% - 1280px)/2));width:min(790px,90%);height:16px}
 .club-info-panel{z-index:1}
 .club-info-toggle[aria-expanded="true"]{text-decoration:underline;text-underline-offset:5px}
}

:root{--site-width:1280px;--page-gutter:clamp(20px,5.8vw,84px)}
/* The shared navigation stylesheet is loaded by ordinary and error pages.
   Only documents with the club footer participate; maintenance stays intact.
   Auto margin absorbs spare height, without positioning over page content. */
body:has(> #club-footer){min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body:has(> #club-footer)>#club-header,
body:has(> #club-footer)>#club-footer{flex-shrink:0}
body:has(> #club-footer)>#club-footer{margin-top:auto}
/* Editor-defined labels and valid long addresses must fit the existing grid. */
.email-directory dt,.email-directory dd{min-width:0;overflow-wrap:anywhere}
.email-directory a{min-width:0;max-width:100%}
/* Selected compact club footer: approved whiteout crest, real connected socials. */
.club-footer{background:var(--green);color:var(--cream);padding:0 var(--page-gutter);margin-top:0}
.club-footer .footer-main{width:100%;max-width:var(--site-width);margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;padding:38px 0 20px}
.club-footer .footer-identity{display:inline-flex;justify-self:start;max-width:100px;padding:4px}
.club-footer .footer-crest{width:80px;height:80px;object-fit:contain}
.club-footer .club-socials{display:flex;justify-content:center;gap:20px;margin:0}
.club-footer .club-socials a{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--cream)}
.club-footer .club-socials svg{width:24px;height:24px}
.club-footer .club-socials a:hover,.club-footer .club-socials a:focus-visible{color:var(--yellow)}

.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;max-width:var(--site-width);margin:0 auto;padding:0 0 24px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
.club-footer .footer-bottom{max-width:var(--site-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;border-top:1px solid #f4f0e730;padding:18px 0 24px;font-size:13px;letter-spacing:0;color:var(--cream)}
.hosting-credit{font-size:12px;color:#cbd2c5}.hosting-credit a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.public-sitemap-page{padding-block:0 64px}.public-sitemap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.public-sitemap section{display:flex;flex-direction:column;gap:3px}.public-sitemap h2{font-size:24px;margin-bottom:16px}.public-sitemap a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:620px){.club-footer .footer-main{grid-template-columns:1fr auto;gap:22px;padding-top:28px}.club-footer .footer-identity{grid-column:1}.club-footer .footer-crest{width:65px;height:65px}.club-footer .club-socials{grid-column:2;gap:6px}.footer-links{gap:4px 20px;padding-bottom:18px}.footer-links a{font-size:14px}.club-footer .footer-bottom{gap:8px;padding-top:16px}.public-sitemap{grid-template-columns:1fr;gap:28px}}
@media(max-width:620px){.club-footer .club-socials{grid-column:1/-1;grid-row:2;justify-content:center;gap:20px}.club-footer }
