/* Merged from ggpoker.world (site.css + v33/v61/v70/v94 overrides). Every rule is scoped
   under #ggp-header / #ggp-footer so ID specificity beats Hello reset and Elementor kit link styles. */

@font-face { font-family: "GG Editorial Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/regular.woff") format("woff"); }
@font-face { font-family: "GG Editorial Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/bold.woff") format("woff"); }

html { scroll-padding-top: 92px; }

body > a.ggp-skip-link,
body > a.ggp-skip-link:hover {
  position: fixed;
  z-index: 1000;
  inset: 8px auto auto 8px;
  padding: 10px 14px;
  color: #fff;
  background: #111;
  transform: translateY(-140%);
}

body > a.ggp-skip-link:focus { transform: none; }

#ggp-header,
#ggp-footer {
  --ggp-ink: #252525;
  --ggp-muted: #737373;
  --ggp-line: #e3e6e7;
  --ggp-blue: #087dcc;
  --ggp-blue-dark: #075fa4;
  color: #4a4a4a;
  font-family: "GG Editorial Sans", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.78;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#ggp-header *,
#ggp-header *::before,
#ggp-header *::after,
#ggp-footer *,
#ggp-footer *::before,
#ggp-footer *::after { box-sizing: border-box; }

#ggp-header img,
#ggp-footer img { max-width: 100%; }

/* Header */

#ggp-header {
  position: sticky;
  z-index: 100;
  top: 0;
  display: grid;
  min-height: 72px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding-inline: clamp(20px, 3.7vw, 56px);
  border-bottom: 1px solid var(--ggp-line);
  background: rgba(255, 255, 255, 0.985);
  backdrop-filter: blur(9px);
}

.admin-bar #ggp-header { top: 32px; }

#ggp-header .wordmark { display: inline-flex; align-items: center; margin-inline-start: -12px; padding: 18px 12px; }
#ggp-header .brand-logo { display: block; width: 151px; height: auto; }

#ggp-header .header-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(10px, 1.1vw, 19px);
}

#ggp-header .header-nav a {
  padding-block: 25px 21px;
  border-bottom: 2px solid transparent;
  color: #333;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

#ggp-header .header-nav a:hover {
  color: var(--ggp-blue-dark);
  border-color: var(--ggp-blue-dark);
}

#ggp-header .header-nav-group {
  position: relative;
  display: flex;
  align-self: stretch;
  align-items: stretch;
}

#ggp-header .header-nav-group > .header-nav-parent {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

#ggp-header .header-nav-group > .header-nav-parent::after {
  width: 6px;
  height: 6px;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  content: "";
  transform: translateY(-2px) rotate(45deg);
  transition: transform .18s ease;
}

#ggp-header .header-nav-group:hover > .header-nav-parent::after,
#ggp-header .header-nav-group:focus-within > .header-nav-parent::after {
  transform: translateY(2px) rotate(225deg);
}

#ggp-header .header-subnav {
  position: absolute;
  z-index: 110;
  top: calc(100% - 1px);
  left: 50%;
  display: grid;
  min-width: 270px;
  padding: 7px 12px;
  border: 1px solid var(--ggp-line);
  border-radius: 0 0 10px 10px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(22, 42, 54, .13);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -5px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  visibility: hidden;
}

#ggp-header .header-nav-group:hover .header-subnav,
#ggp-header .header-nav-group:focus-within .header-subnav {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
}

#ggp-header .header-nav .header-subnav a {
  padding: 11px 12px;
  border-bottom: 1px solid var(--ggp-line);
  color: #454b4d;
  font-size: 13px;
  line-height: 1.5;
  text-align: left;
}

#ggp-header .header-nav .header-subnav a:last-child { border-bottom: 0; }

#ggp-header .header-nav .header-subnav a:hover {
  border-color: var(--ggp-line);
  background: #f2f8fc;
  color: var(--ggp-blue-dark);
}

#ggp-header .header-download {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding-inline: 15px;
  border: 1px solid var(--ggp-blue);
  border-radius: 999px;
  background: linear-gradient(120deg, #159fdf 0%, var(--ggp-blue) 52%, #0a4a98 100%);
  box-shadow: none;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
}

#ggp-header .header-download::after {
  margin-inline-start: 8px;
  content: "→";
  font-size: 14px;
  font-weight: 400;
}

#ggp-header .header-download > span { position: relative; z-index: 1; }

#ggp-header .header-download:hover {
  border-color: var(--ggp-blue-dark);
  background: linear-gradient(120deg, #0e8ed3 0%, var(--ggp-blue-dark) 52%, #063a7b 100%);
  box-shadow: none;
  color: #fff;
}

#ggp-header a:focus-visible,
#ggp-header .mobile-menu summary:focus-visible { outline-color: #076fae; }

#ggp-header .mobile-menu { position: relative; display: none; }

@media (min-width: 1161px) and (max-width: 1320px) {
  #ggp-header { gap: 13px; padding-inline: 20px; }
  #ggp-header .header-nav a { font-size: 11.25px; }
  #ggp-header .header-download { padding-inline: 16px; }
}

@media (max-width: 1160px) {
  #ggp-header { grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; }
  #ggp-header .header-nav { display: none; }
  #ggp-header .header-download { grid-column: 3; min-height: 44px; }
  #ggp-header .mobile-menu { display: block; grid-column: 4; }
  #ggp-header .mobile-menu summary { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #c7ccce; border-radius: 50%; cursor: pointer; list-style: none; }
  #ggp-header .mobile-menu summary::-webkit-details-marker { display: none; }
  #ggp-header .mobile-menu summary span,
  #ggp-header .mobile-menu summary span::before,
  #ggp-header .mobile-menu summary span::after { display: block; width: 18px; height: 2px; background: var(--ggp-ink); }
  #ggp-header .mobile-menu summary span { position: relative; }
  #ggp-header .mobile-menu summary span::before,
  #ggp-header .mobile-menu summary span::after { position: absolute; left: 0; content: ""; }
  #ggp-header .mobile-menu summary span::before { top: -6px; }
  #ggp-header .mobile-menu summary span::after { top: 6px; }
  #ggp-header .mobile-menu nav { position: absolute; top: 50px; right: 0; display: grid; width: min(350px, calc(100vw - 28px)); max-height: calc(100vh - 78px); max-height: calc(100dvh - 78px); overflow-y: auto; padding: 12px 22px 20px; border: 1px solid var(--ggp-line); background: #fff; box-shadow: 0 16px 34px rgba(0,0,0,.12); }
  #ggp-header .mobile-menu nav p { margin: 12px 0 4px; color: var(--ggp-muted); font-size: 10px; font-weight: 800; }
  #ggp-header .mobile-menu nav a { padding-block: 10px; border-bottom: 1px solid var(--ggp-line); color: #4a4a4a; font-size: 14px; font-weight: 650; text-decoration: none; }
  #ggp-header .mobile-menu nav > .mobile-nav-parent { border-bottom: 0; }
  #ggp-header .mobile-menu-subnav { display: grid; margin: 0 0 2px; padding: 0 0 8px 18px; border-bottom: 1px solid var(--ggp-line); }
  #ggp-header .mobile-menu nav .mobile-menu-subnav a { position: relative; display: flex; min-height: 44px; align-items: center; padding: 8px 8px 8px 18px; border-bottom: 0; color: #535a5d; font-size: 13px; line-height: 1.55; }
  #ggp-header .mobile-menu nav .mobile-menu-subnav a::before { position: absolute; top: 50%; left: 2px; width: 8px; height: 1px; background: #9bb5c5; content: ""; }
  #ggp-header .mobile-menu nav .mobile-menu-subnav a + a { border-top: 1px solid #edf0f1; }
}

@media (max-width: 782px) {
  .admin-bar #ggp-header { top: 46px; }
}

/* WP admin bar stops being fixed below 600px. */
@media (max-width: 600px) {
  .admin-bar #ggp-header { top: 0; }
}

@media (max-width: 560px) {
  html { scroll-padding-top: 78px; }
  #ggp-header { min-height: 64px; grid-template-columns: minmax(0, 1fr) auto auto; gap: 7px; padding-inline: 10px; }
  #ggp-header .wordmark { min-width: 0; margin: 0; padding: 16px 2px; }
  #ggp-header .brand-logo { width: clamp(94px, 28vw, 112px); }
  #ggp-header .header-download { grid-column: 2; padding-inline: 11px; border-radius: 999px; font-size: 12px; }
  #ggp-header .mobile-menu { grid-column: 3; }
  #ggp-header .mobile-menu nav { top: 49px; right: -2px; }
}

/* Footer */

#ggp-footer {
  padding: 22px 24px 14px;
  border-top: 1px solid var(--ggp-line);
  background: #fff;
}

#ggp-footer .footer-main { display: flex; align-items: center; gap: 16px; padding-bottom: 8px; }
#ggp-footer .footer-brand { display: inline-flex; min-height: 44px; align-items: center; align-self: flex-start; margin: 0; padding: 6px 0; }
#ggp-footer .brand-logo { display: block; width: 151px; height: auto; }
#ggp-footer .footer-disclaimer { max-width: 860px; padding-block: 10px; border-top: 1px solid var(--ggp-line); color: #686868; font-size: 11px; line-height: 1.65; }
#ggp-footer .footer-disclaimer p { margin: 0; }
#ggp-footer .footer-disclaimer p + p { margin-top: 5px; }
#ggp-footer .footer-disclaimer a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
#ggp-footer .footer-disclaimer .footer-responsible { margin-top: 5px; color: #333; font-weight: 700; }
#ggp-footer .footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px; padding-top: 2px; border-top: 1px solid var(--ggp-line); color: #686868; font-size: 11px; }
#ggp-footer .footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; color: inherit; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 560px) {
  #ggp-footer { padding: 14px 16px 10px; }
  #ggp-footer .footer-main { align-items: flex-start; gap: 10px; padding-bottom: 6px; }
  #ggp-footer .footer-disclaimer { padding-block: 8px; }
  #ggp-footer .footer-bottom { gap: 0 14px; }
}
