/* 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;
  }
}



/* =========================================================
   PATCH 69.4.13 — FOOTER LAPTOP WIDTH FIT FIX
   =========================================================
   Fixes the 69.4.12 laptop overflow/cut-off at 100% zoom:
   - Keeps the approved wide footer direction for large desktop.
   - Compresses the footer proportionally on laptop widths.
   - Keeps Follow/social icons in one row where there is enough room.
   - Keeps bottom copyright + language toggle centered.
   - Preserves existing full-bleed footer background and sidebar/gutter behavior.
   ========================================================= */

.site-global-footer {
  margin: 46px 0 0;
  padding-top: 34px;
  padding-bottom: 22px;
  overflow-x: clip;
}

.site-global-footer-inner {
  display: grid;
  grid-template-columns: minmax(540px, 760px) minmax(440px, 620px);
  gap: clamp(34px, 4.6vw, 84px);
  align-items: center;
  justify-content: space-between;
  min-width: 0;
}

.footer-brand-block {
  display: grid;
  grid-template-columns: minmax(145px, 215px) minmax(0, 1fr);
  gap: clamp(20px, 2.6vw, 36px);
  align-items: center;
  max-width: none;
  min-width: 0;
  justify-self: start;
}

.footer-brand-mark {
  display: block;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(230, 236, 243, 0.72);
  font-size: clamp(3.55rem, 5vw, 6.2rem);
  font-weight: 1000;
  letter-spacing: -0.08em;
  line-height: 0.9;
  font-style: italic;
  text-transform: uppercase;
  text-align: left;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.2),
    0 14px 30px rgba(0, 0, 0, 0.55);
}

.footer-brand-copy {
  min-width: 0;
  padding-left: clamp(18px, 2.2vw, 32px);
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-brand-block h2 {
  max-width: 600px;
  margin: 0;
  color: #ffffff;
  font-size: clamp(0.96rem, 1.15vw, 1.2rem);
  line-height: 1.16;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.footer-brand-block p {
  max-width: 600px;
  margin: 10px 0 0;
  color: #8b949e;
  font-size: 0.88rem;
  line-height: 1.48;
}

.footer-support-line {
  margin-top: 12px !important;
}

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

.footer-link-columns {
  display: grid;
  grid-template-columns: minmax(120px, 160px) minmax(145px, 195px) minmax(132px, 162px);
  gap: clamp(24px, 3.4vw, 62px);
  align-items: start;
  justify-content: space-between;
  justify-self: stretch;
  min-width: 0;
}

.footer-link-column {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.footer-link-column h3 {
  position: relative;
  margin: 0 0 15px;
  color: #ffffff;
  font-size: 0.74rem;
  font-weight: 1000;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.footer-link-column h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -9px;
  width: 44px;
  height: 2px;
  background: var(--primary, #00d4ff);
  border-radius: 999px;
  opacity: 0.72;
}

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

.footer-follow-column {
  min-width: 132px;
}

.footer-social-links {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 9px;
  min-width: max-content;
  white-space: nowrap;
}

.footer-social-link {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #c9d1d9 !important;
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.88rem !important;
  font-weight: 900 !important;
  line-height: 1;
  text-decoration: none;
  transition:
    color 0.16s ease,
    border-color 0.16s ease,
    background 0.16s ease,
    transform 0.16s ease;
}

.footer-social-link:hover,
.footer-social-link:focus-visible {
  color: var(--primary, #00d4ff) !important;
  border-color: rgba(0, 212, 255, 0.45);
  background: rgba(0, 212, 255, 0.1);
  transform: translateY(-1px);
}

.footer-legal-acceptance {
  margin-top: 26px;
  padding-top: 18px;
}

.footer-bottom-tools {
  width: fit-content;
  margin-inline: auto;
  justify-content: center;
  gap: 20px;
  text-align: center;
}

.footer-bottom-tools > span:first-child {
  color: #9aa4af;
}

.footer-language-select {
  width: auto;
  padding-left: 20px;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-language-select span {
  letter-spacing: 0.16em;
}

.footer-language-select select,
.gbn-language-selector {
  min-width: 170px;
  height: 42px;
  border-radius: 10px;
  background: rgba(22, 27, 34, 0.92) !important;
}

/* Large screens keep the wide stretched layout. */
@media (min-width: 1700px) {
  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%, 1680px) !important;
    max-width: min(100%, 1680px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .site-global-footer-inner {
    grid-template-columns: minmax(610px, 780px) minmax(560px, 720px);
    gap: clamp(48px, 6vw, 110px);
  }

  .footer-brand-mark {
    font-size: clamp(4.2rem, 5.8vw, 6.6rem);
  }

  .footer-link-columns {
    grid-template-columns: minmax(145px, 180px) minmax(175px, 220px) minmax(170px, 190px);
    gap: clamp(42px, 5vw, 86px);
  }

  .footer-social-link {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
  }
}

/* Laptop / common 100% zoom widths: fit inside the visible rail. */
@media (min-width: 1024px) and (max-width: 1699px) {
  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%, 1220px) !important;
    max-width: min(100%, 1220px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .site-global-footer {
    padding-top: 30px;
    padding-bottom: 20px;
  }

  .site-global-footer-inner {
    grid-template-columns: minmax(455px, 1.05fr) minmax(385px, 0.95fr);
    gap: clamp(22px, 3vw, 42px);
  }

  .footer-brand-block {
    grid-template-columns: minmax(112px, 145px) minmax(0, 1fr);
    gap: clamp(14px, 1.8vw, 22px);
  }

  .footer-brand-mark {
    font-size: clamp(3.1rem, 4.4vw, 4.4rem);
  }

  .footer-brand-copy {
    padding-left: clamp(14px, 1.6vw, 20px);
  }

  .footer-brand-block h2 {
    font-size: clamp(0.88rem, 1vw, 1.02rem);
    letter-spacing: 0.04em;
  }

  .footer-brand-block p {
    font-size: 0.8rem;
    line-height: 1.42;
  }

  .footer-link-columns {
    grid-template-columns: minmax(108px, 128px) minmax(134px, 160px) minmax(120px, 140px);
    gap: clamp(16px, 2.4vw, 30px);
  }

  .footer-link-column a {
    font-size: 0.8rem;
  }

  .footer-link-column h3 {
    font-size: 0.68rem;
    letter-spacing: 0.15em;
  }

  .footer-follow-column {
    min-width: 120px;
  }

  .footer-social-links {
    gap: 7px;
  }

  .footer-social-link {
    flex-basis: 25px;
    width: 25px;
    height: 25px;
    font-size: 0.78rem !important;
  }

  .footer-legal-acceptance {
    margin-top: 22px;
    padding-top: 16px;
  }
}

/* If a laptop still has a narrow available rail because of the sidebar, stack cleanly before overflow. */
@media (min-width: 1024px) and (max-width: 1180px) {
  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%, 960px) !important;
    max-width: min(100%, 960px) !important;
  }

  .site-global-footer-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-link-columns {
    width: min(100%, 640px);
    justify-content: start;
  }
}

@media (max-width: 1023px) {
  .site-global-footer-inner {
    grid-template-columns: 1fr;
    gap: 30px;
    justify-content: start;
  }

  .footer-brand-block,
  .footer-link-columns {
    justify-self: start;
  }

  .footer-link-columns {
    max-width: 760px;
  }
}

@media (max-width: 720px) {
  .site-global-footer {
    padding-top: 30px;
    padding-bottom: 22px;
  }

  .footer-brand-block {
    grid-template-columns: 1fr;
    gap: 18px;
    width: 100%;
    max-width: 440px;
    text-align: left;
  }

  .footer-brand-mark {
    font-size: clamp(3.4rem, 18vw, 5.2rem);
  }

  .footer-brand-copy {
    padding-left: 0;
    border-left: 0;
  }

  .footer-link-columns {
    grid-template-columns: 1fr;
    gap: 26px;
    width: 100%;
    max-width: 440px;
  }

  .footer-social-links {
    flex-wrap: nowrap;
    gap: 10px;
  }

  .footer-bottom-tools {
    flex-direction: column;
    gap: 14px;
  }

  .footer-language-select {
    padding-left: 0;
    border-left: 0;
  }

  .footer-language-select select {
    width: min(72vw, 240px);
  }
}

/* RTL mirror only; LTR keeps GBN left inside the centered fitted group. */
html[dir="rtl"] .footer-brand-copy {
  padding-left: 0;
  padding-right: clamp(18px, 2.2vw, 32px);
  border-left: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

html[dir="rtl"] .footer-link-column h3::after {
  left: auto;
  right: 0;
}

html[dir="rtl"] .footer-language-select {
  padding-left: 0;
  padding-right: 20px;
  border-left: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
}

@media (max-width: 720px) {
  html[dir="rtl"] .footer-brand-copy,
  html[dir="rtl"] .footer-language-select {
    padding-right: 0;
    border-right: 0;
  }
}
