/* Gulf Billiards Network shared public footer */
:root {
  --gbn-footer-content-max: 1400px;
}

#siteFooter {
  width: 100%;
}

.site-global-footer {
  width: 100%;
  margin: 54px 0 0;
  padding: 42px clamp(18px, 4vw, 56px) 26px;
  box-sizing: border-box;
  background:
    radial-gradient(circle at top left, rgba(0, 212, 255, 0.08), transparent 28%),
    linear-gradient(180deg, rgba(5, 8, 12, 0.98), rgba(0, 0, 0, 0.98));
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-global-footer-inner,
.footer-legal-acceptance {
  width: min(94vw, var(--gbn-footer-content-max));
  max-width: var(--gbn-footer-content-max);
  margin-inline: auto;
}

.site-global-footer-inner {
  display: grid;
  grid-template-columns: minmax(260px, 1.15fr) minmax(0, 1.85fr);
  gap: clamp(32px, 6vw, 86px);
  align-items: start;
}

.footer-brand-block {
  max-width: 560px;
}

.footer-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 70px;
  height: 38px;
  margin-bottom: 22px;
  padding-inline: 14px;
  box-sizing: border-box;
  border: 1px solid rgba(0, 212, 255, 0.45);
  border-radius: 999px;
  background: rgba(0, 212, 255, 0.08);
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 1000;
  letter-spacing: 0.16em;
}

.footer-brand-block h2 {
  max-width: 620px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.35rem, 2.6vw, 2.2rem);
  line-height: 1.08;
  text-transform: uppercase;
}

.footer-brand-block p {
  color: #8b949e;
  line-height: 1.6;
}

.footer-brand-block p {
  max-width: 590px;
  margin: 16px 0 0;
  font-size: 0.95rem;
}

.footer-support-line a {
  color: var(--primary, #00d4ff);
  font-weight: 850;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.footer-support-line a:hover {
  text-decoration: underline;
}

.footer-link-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 58px);
}

.footer-link-column {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.footer-link-column h3 {
  margin: 0 0 6px;
  color: #ffffff;
  font-size: 0.76rem;
  font-weight: 1000;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.footer-link-column a {
  color: #c9d1d9;
  font-size: 0.88rem;
  font-weight: 750;
  text-decoration: none;
  transition: color 0.16s ease, transform 0.16s ease;
}

.footer-link-column a:hover,
.footer-link-column a:focus-visible {
  color: var(--primary, #00d4ff);
  transform: translateX(2px);
}

.footer-link-column a:focus-visible,
.footer-language-select select:focus-visible {
  outline: 2px solid var(--primary, #00d4ff);
  outline-offset: 3px;
}

.footer-legal-acceptance {
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer-legal-acceptance.footer-bottom-only {
  text-align: center;
}

.footer-bottom-tools {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #8b949e;
  font-size: 0.82rem;
  white-space: nowrap;
}

.footer-language-select {
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-language-select span {
  color: #8b949e;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.footer-language-select select,
.gbn-language-selector {
  min-width: 150px;
  height: 38px;
  padding: 0 12px;
  border: 1px solid #30363d;
  border-radius: 8px;
  background: #161b22 !important;
  color: #ffffff !important;
  outline: none;
}

.footer-language-select select option,
.gbn-language-selector option {
  background: #161b22 !important;
  color: #ffffff !important;
}

html[dir="rtl"] .site-global-footer,
html[dir="rtl"] .site-global-footer-inner {
  text-align: right;
}

html[dir="rtl"] .footer-legal-acceptance.footer-bottom-only {
  text-align: center;
}

html[dir="rtl"] .footer-link-columns,
html[dir="rtl"] .footer-bottom-tools {
  direction: rtl;
}

html[dir="rtl"] .footer-link-column a:hover,
html[dir="rtl"] .footer-link-column a:focus-visible {
  transform: translateX(-2px);
}

html[dir="rtl"] .footer-language-select select,
html[dir="rtl"] .gbn-language-selector {
  direction: rtl;
  text-align: right;
}

@media (min-width: 1500px) {
  :root {
    --gbn-footer-content-max: 1640px;
  }

  .site-global-footer-inner,
  .footer-legal-acceptance {
    width: min(92vw, var(--gbn-footer-content-max));
  }
}

@media (min-width: 1900px) {
  :root {
    --gbn-footer-content-max: 1840px;
  }

  .site-global-footer-inner,
  .footer-legal-acceptance {
    width: min(90vw, var(--gbn-footer-content-max));
  }
}

@media (min-width: 2300px) {
  :root {
    --gbn-footer-content-max: 2040px;
  }
}

@media (max-width: 980px) {
  .site-global-footer-inner {
    grid-template-columns: 1fr;
  }

  .footer-bottom-tools {
    justify-content: center;
    white-space: normal;
  }
}

@media (max-width: 720px) {
  .site-global-footer {
    padding: 34px 16px 22px;
  }

  .site-global-footer-inner,
  .footer-legal-acceptance {
    width: 100%;
  }

  .footer-link-columns {
    grid-template-columns: 1fr;
  }

  .footer-bottom-tools,
  .footer-language-select {
    width: 100%;
    align-items: center;
    flex-direction: column;
  }

  .footer-language-select select {
    width: min(100%, 220px);
  }
}

/* --- 63.34D.2.1 FOOTER SIDEBAR SAFE AREA ---
   Keep the footer inside the same available desktop content lane as the main page.
   This prevents the laptop footer text from sitting underneath the fixed sidebar.
   The rule is scoped to the footer only; main page layout remains unchanged. */
.site-global-footer-inner,
.footer-legal-acceptance {
  width: min(100%, var(--gbn-footer-content-max));
}

@media (min-width: 1500px) {
  .site-global-footer-inner,
  .footer-legal-acceptance {
    width: min(100%, var(--gbn-footer-content-max));
  }
}

@media (min-width: 1900px) {
  .site-global-footer-inner,
  .footer-legal-acceptance {
    width: min(100%, var(--gbn-footer-content-max));
  }
}

@media (min-width: 1024px) {
  body > #siteFooter,
  body > footer.site-global-footer {
    width: calc(100% - var(--sidebar-width));
    max-width: calc(100% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
    box-sizing: border-box;
  }

  #sidebar.collapsed ~ #siteFooter,
  #sidebar.collapsed ~ footer.site-global-footer {
    width: calc(100% - var(--sidebar-collapsed));
    max-width: calc(100% - var(--sidebar-collapsed));
    margin-left: var(--sidebar-collapsed);
  }

  body > #siteFooter > .site-global-footer,
  body > footer.site-global-footer {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 1023px) {
  body > #siteFooter,
  body > footer.site-global-footer {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    box-sizing: border-box;
  }
}

/* --- 63.34D.2.3 DESKTOP SIDEBAR OVERLAY GUTTER ---
   Desktop-wide: keep the footer inside the same stable frame as normal pages.
   The collapsed sidebar leaves a visible gutter; expanded sidebar overlays that
   gutter instead of changing the footer width. Mobile remains full width. */
@media (min-width: 1024px) {
  body > #siteFooter,
  body > footer.site-global-footer,
  #sidebar.collapsed ~ #siteFooter,
  #sidebar.collapsed ~ footer.site-global-footer {
    width: calc(100% - var(--sidebar-width)) !important;
    max-width: calc(100% - var(--sidebar-width)) !important;
    margin-left: var(--sidebar-width) !important;
    box-sizing: border-box !important;
  }

  body > #siteFooter > .site-global-footer,
  body > footer.site-global-footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
}

/* --- 63.34D.2.4 FOOTER FULL-BLEED BACKGROUND + OVERLAY GUTTER RAIL ---
   Keep the black footer strip full viewport width. Only the footer content is
   aligned to the stable main-content frame. The sidebar/gutter area sits on top
   of the footer background instead of cutting the black strip short. */
@media (min-width: 1024px) {
  body > #siteFooter,
  body > footer.site-global-footer,
  #sidebar.collapsed ~ #siteFooter,
  #sidebar.collapsed ~ footer.site-global-footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body > #siteFooter > .site-global-footer,
  body > footer.site-global-footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: var(--gbn-layout-left, var(--sidebar-width)) !important;
    padding-right: max(24px, var(--gbn-layout-right, 24px)) !important;
    box-sizing: border-box !important;
  }

  body > #siteFooter > .site-global-footer > .site-global-footer-inner,
  body > footer.site-global-footer > .site-global-footer-inner,
  body > #siteFooter > .site-global-footer > .footer-legal-acceptance,
  body > footer.site-global-footer > .footer-legal-acceptance {
    width: min(100%, var(--gbn-layout-width, var(--gbn-footer-content-max))) !important;
    max-width: min(100%, var(--gbn-layout-width, var(--gbn-footer-content-max))) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
}

