:root {
  --gsat-bg: #f6f8fc;
  --gsat-surface: #ffffff;
  --gsat-surface-2: #f2f5fa;
  --gsat-text: #102038;
  --gsat-muted: #4f637f;
  --gsat-line: rgba(10, 26, 48, 0.14);
  --gsat-primary: #184f92;
  --gsat-menu-hover: #e85a3d;
  --gsat-accent: #ffb94f;
  --gsat-font-title: "Segoe UI", "Noto Sans KR", "Malgun Gothic", sans-serif;
  --gsat-font-ui: "Segoe UI", "Noto Sans KR", "Malgun Gothic", sans-serif;
}

body.gsat-dark {
  --gsat-bg: #081523;
  --gsat-surface: #11233a;
  --gsat-surface-2: #0c1b2f;
  --gsat-text: #f0f6ff;
  --gsat-muted: #c6daf3;
  --gsat-line: rgba(255, 255, 255, 0.12);
  --gsat-primary: #7ad0ff;
  --gsat-menu-hover: #ff8f7a;
  --gsat-accent: #ffcf84;
}

.gsat-hd {
  background: linear-gradient(180deg, var(--gsat-surface) 0%, var(--gsat-surface-2) 100%);
  border-bottom: 1px solid var(--gsat-line);
}

/* Hard override for legacy basic header backgrounds */
body #hd.gsat-hd {
  background: var(--gsat-surface) !important;
}

body #hd.gsat-hd #hd_wrapper.gsat-header-main {
  background: var(--gsat-surface) !important;
  height: auto !important;
}

body #hd.gsat-hd #logo.gsat-logo {
  float: none !important;
  padding: 0 !important;
}

body #hd.gsat-hd .hd_login.gsat-auth {
  position: static !important;
  right: auto !important;
  top: auto !important;
}

.gsat-topbar {
  background: var(--gsat-surface-2);
  border-bottom: 1px solid var(--gsat-line);
}

.gsat-topbar .inner {
  max-width: 1280px;
  margin: 0 auto;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 16px;
}

.gsat-topbar p {
  margin: 0;
  color: var(--gsat-muted);
  font-size: 13px;
  letter-spacing: 0.02em;
}

.gsat-topbar-links {
  display: flex;
  gap: 14px;
}

.gsat-topbar-links a {
  color: var(--gsat-muted);
  font-size: 13px;
}

.gsat-header-main {
  max-width: 1280px;
  margin: 0 auto;
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 16px;
}

.gsat-logo a {
  display: flex;
  flex-direction: column;
  color: var(--gsat-text);
}

.gsat-logo strong {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  font-family: var(--gsat-font-title);
}

.gsat-logo span {
  margin-top: 6px;
  font-size: 12px;
  color: var(--gsat-muted);
  letter-spacing: 0.08em;
  font-family: var(--gsat-font-ui);
}

.gsat-mode-toggle {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 99px;
  border: 1px solid var(--gsat-line);
  background: var(--gsat-surface);
  color: var(--gsat-text);
  font-weight: 700;
  font-family: var(--gsat-font-ui);
}

.gsat-auth {
  display: flex;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gsat-auth a {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 5px;
  border-radius: 99px;
  border: 1px solid var(--gsat-line);
  color: var(--gsat-text);
  font-family: var(--gsat-font-ui);
  font-weight: 600;
  font-size: 12px;
  line-height: 1;
}

/* Force visible text for light mode against legacy basic.css selectors */
body .gsat-hd .gsat-logo strong,
body .gsat-hd .gsat-logo span,
body .gsat-hd .hd_login.gsat-auth a {
  color: var(--gsat-text) !important;
}

body .gsat-hd .hd_login.gsat-auth li {
  border-left: 1px solid var(--gsat-line);
}

body .gsat-hd .hd_login.gsat-auth li:first-child {
  border-left: 0;
}

body .gsat-hd .gsat-topbar-links a,
body .gsat-hd .gsat-topbar p {
  color: var(--gsat-muted) !important;
}

.gsat-gnb {
  background: var(--gsat-surface);
  border-top: 1px solid var(--gsat-line);
}

.gsat-gnb .gnb_wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
}

.gsat-nav-toggle {
  display: none;
  margin: 10px 0;
  width: 44px;
  height: 38px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--gsat-line);
  background: var(--gsat-surface);
  color: var(--gsat-text);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}

.gsat-nav-toggle .line {
  width: 18px;
  height: 2px;
  background: var(--gsat-text);
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.gsat-gnb.gsat-open .gsat-nav-toggle .line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.gsat-gnb.gsat-open .gsat-nav-toggle .line:nth-child(2) {
  opacity: 0;
}

.gsat-gnb.gsat-open .gsat-nav-toggle .line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.gsat-gnb #gnb_1dul {
  display: flex;
  align-items: stretch;
  gap: 8px;
  border-bottom: 1px solid var(--gsat-line);
  min-height: 50px;
}

.gsat-gnb .gnb_1dli {
  position: relative;
  line-height: normal;
}

.gsat-gnb .gnb_1da {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  color: var(--gsat-text);
  font-weight: 700;
  font-family: var(--gsat-font-ui);
  letter-spacing: 0.01em;
  border-radius: 0;
  transition: background-color .2s ease, color .2s ease;
}

.gsat-gnb .gnb_1dli:hover > .gnb_1da {
  color: #fff;
  background: var(--gsat-menu-hover);
}

.gsat-gnb .gnb_1dli.is-active > .gnb_1da {
  color: #fff;
  background: var(--gsat-menu-hover);
}

.gsat-gnb .gnb_2dul {
  position: absolute;
  top: 58px;
  left: 0;
  min-width: 220px;
  display: none;
  border: 1px solid var(--gsat-line);
  background: var(--gsat-surface);
  border-radius: 10px;
  z-index: 999;
}

.gsat-gnb .gnb_2dul_box {
  padding: 8px;
}

.gsat-gnb .gnb_2da {
  color: var(--gsat-text);
  display: block;
  padding: 9px 10px;
  border-radius: 8px;
  font-family: var(--gsat-font-ui);
}

.gsat-gnb .gnb_2da:hover {
  background: var(--gsat-surface-2);
}

/* Override legacy basic.css GNB styles with stronger selectors */
body #gnb.gsat-gnb {
  background: var(--gsat-surface) !important;
}

body #gnb.gsat-gnb .gnb_wrap {
  background: transparent !important;
}

body #gnb.gsat-gnb #gnb_1dul {
  border-bottom: 1px solid var(--gsat-line) !important;
}

body #gnb.gsat-gnb .gnb_1dli {
  float: none !important;
  padding: 0 !important;
}

body #gnb.gsat-gnb .gnb_1da {
  color: var(--gsat-text) !important;
  font-family: var(--gsat-font-ui) !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}

body #gnb.gsat-gnb .gnb_1dli:hover > .gnb_1da {
  color: #fff !important;
  background: var(--gsat-menu-hover) !important;
}

body #gnb.gsat-gnb .gnb_1dli.is-active > .gnb_1da {
  color: #fff !important;
  background: var(--gsat-menu-hover) !important;
}

body #gnb.gsat-gnb .gnb_2dul {
  border: 1px solid var(--gsat-line) !important;
  background: var(--gsat-surface) !important;
}

body #gnb.gsat-gnb .gnb_2da {
  color: var(--gsat-text) !important;
}

body #gnb.gsat-gnb .gnb_2da:hover,
body #gnb.gsat-gnb .gnb_2da:focus {
  background: var(--gsat-surface-2) !important;
}

.gsat-wrapper {
  background:
    radial-gradient(circle at 5% 0%, rgba(77, 173, 255, 0.08), transparent 30%),
    radial-gradient(circle at 95% 8%, rgba(255, 198, 102, 0.1), transparent 30%),
    var(--gsat-bg);
  min-height: 600px;
}

.gsat-container-wr {
  max-width: 1280px;
  margin: 0 auto;
  padding: 26px 16px 56px;
}

.gsat-container {
  border: 0;
  background: transparent;
  min-height: 400px;
  padding: 0;
}

.gsat-hero {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 20px;
}

.gsat-hero-copy,
.gsat-hero-cards,
.gsat-info-block,
.gsat-latest-wrap .lt {
  border: 1px solid var(--gsat-line);
  border-radius: 20px;
  background: var(--gsat-surface);
}

.gsat-hero-copy {
  padding: 30px;
}

.gsat-kicker {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 99px;
  background: rgba(24, 79, 146, 0.1);
  color: var(--gsat-primary);
  font-size: 12px;
  letter-spacing: 0.09em;
}

.gsat-hero-copy h2 {
  margin: 14px 0 12px;
  font-size: 42px;
  line-height: 1.08;
  color: var(--gsat-text);
}

.gsat-hero-copy p {
  margin: 0;
  color: var(--gsat-muted);
  line-height: 1.8;
}

.gsat-hero-actions {
  margin-top: 24px;
  display: flex;
  gap: 10px;
}

.gsat-btn {
  min-height: 46px;
  padding: 0 18px;
  border-radius: 99px;
  display: inline-flex;
  align-items: center;
  font-weight: 700;
}

.gsat-btn-solid {
  background: linear-gradient(135deg, var(--gsat-accent), #ffd998);
  color: #2a1a04;
}

.gsat-btn-ghost {
  border: 1px solid var(--gsat-line);
  color: var(--gsat-text);
}

.gsat-meta {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.gsat-meta li {
  border-top: 1px solid var(--gsat-line);
  padding-top: 10px;
}

.gsat-meta strong {
  display: block;
  font-size: 11px;
  color: var(--gsat-primary);
  text-transform: uppercase;
}

.gsat-meta span {
  color: var(--gsat-text);
  font-size: 13px;
}

.gsat-hero-cards {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.gsat-card {
  border-radius: 14px;
  padding: 22px;
  background: var(--gsat-surface-2);
  border: 1px solid var(--gsat-line);
}

.gsat-card span {
  font-size: 12px;
  color: var(--gsat-primary);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gsat-card h3 {
  margin: 10px 0 8px;
  color: var(--gsat-text);
}

.gsat-card p {
  color: var(--gsat-muted);
  margin: 0;
  line-height: 1.7;
}

.gsat-card-accent {
  background: linear-gradient(140deg, rgba(255, 189, 105, 0.18), var(--gsat-surface-2));
}

.gsat-section-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.gsat-info-block {
  padding: 20px;
}

.gsat-info-block h3 {
  margin: 0 0 10px;
  color: var(--gsat-text);
}

.gsat-info-block p {
  margin: 0;
  color: var(--gsat-muted);
  line-height: 1.7;
}

.gsat-latest-wrap {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

/* latest skin (pic_list) uses fixed 33% width + float; force full-width cards in grid */
.gsat-latest-wrap > .pic_li_lt {
  width: 100% !important;
  float: none !important;
  padding: 18px !important;
  margin: 0 !important;
  border-radius: 16px;
  border: 1px solid var(--gsat-line);
  background: var(--gsat-surface) !important;
  box-sizing: border-box;
}

.gsat-latest-wrap > .pic_li_lt .lat_title {
  margin: 0 0 10px;
  line-height: 1.3;
  font-size: 18px;
}

.gsat-latest-wrap > .pic_li_lt .lat_title a {
  color: var(--gsat-text) !important;
}

.gsat-latest-wrap > .pic_li_lt ul {
  margin: 0;
  padding: 0;
}

.gsat-latest-wrap > .pic_li_lt li {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--gsat-line);
}

.gsat-latest-wrap > .pic_li_lt li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.gsat-latest-wrap > .pic_li_lt .pic_li_tit {
  color: var(--gsat-text) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
}

.gsat-latest-wrap > .pic_li_lt .lt_info {
  padding: 8px 0 0;
  color: var(--gsat-muted);
  font-size: 12px;
}

.gsat-latest-wrap > .pic_li_lt .lt_more {
  color: var(--gsat-primary) !important;
  top: 14px !important;
  right: 14px !important;
}

.gsat-latest-wrap > .pic_li_lt .lt_more:hover {
  color: var(--gsat-text) !important;
}

.gsat-ft {
  background: var(--gsat-surface);
  border-top: 1px solid var(--gsat-line);
}

.gsat-ft #ft_wr {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 16px;
}

.gsat-ft #ft_link a,
.gsat-ft .ft_info,
.gsat-ft #ft_copy {
  color: var(--gsat-muted);
}

.gsat-ft #ft_copy {
  border-top: 1px solid var(--gsat-line);
  text-align: center;
  padding: 14px 16px 20px;
}

/* Force footer colors over legacy basic.css (#ft selector) */
body #ft.gsat-ft {
  background: var(--gsat-surface) !important;
  border-top: 1px solid var(--gsat-line) !important;
}

body #ft.gsat-ft,
body #ft.gsat-ft a,
body #ft.gsat-ft .ft_info,
body #ft.gsat-ft #ft_copy,
body #ft.gsat-ft h2 {
  color: var(--gsat-muted) !important;
}

/* Footer widgets (notice/visit skins) were built for dark bg; normalize for light/dark tokens */
body #ft.gsat-ft .notice h2 a,
body #ft.gsat-ft .notice li a,
body #ft.gsat-ft .notice li.empty_li,
body #ft.gsat-ft #visit h2,
body #ft.gsat-ft #visit dt,
body #ft.gsat-ft #visit dd,
body #ft.gsat-ft #visit dd strong {
  color: var(--gsat-muted) !important;
}

body #ft.gsat-ft .notice li {
  border-bottom: 1px solid var(--gsat-line) !important;
}

@media (max-width: 1024px) {
  .gsat-hero,
  .gsat-section-grid,
  .gsat-latest-wrap,
  .gsat-meta {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1024px) {
  .gsat-header-main {
    min-height: auto;
    padding: 14px 16px;
    flex-direction: column;
    align-items: flex-start;
  }

  .gsat-nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .gsat-gnb #gnb_1dul {
    display: none;
    flex-direction: column;
    background: var(--gsat-surface);
    border-radius: 10px;
    margin: 0 0 12px;
    padding: 8px;
  }

  .gsat-gnb.gsat-open #gnb_1dul {
    display: flex;
  }

  .gsat-gnb .gnb_2dul {
    position: static;
    display: block;
    border: 0;
    background: transparent;
  }

  .gsat-gnb .gnb_2dul_box {
    padding: 0 0 8px 10px;
  }

  .gsat-latest-wrap > .pic_li_lt {
    padding: 14px !important;
  }

  /* Collapse text-heavy top area on small widths */
  .gsat-topbar .inner {
    min-height: 36px;
  }

  .gsat-topbar p,
  .gsat-topbar-links,
  .gsat-auth,
  .gsat-logo span {
    display: none !important;
  }

  .gsat-header-main {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .gsat-logo strong {
    font-size: 24px;
    letter-spacing: 0.12em;
  }

  .gsat-mode-toggle {
    min-height: 34px;
    padding: 0 10px;
    font-size: 12px;
  }

  body #gnb.gsat-gnb #gnb_1dul {
    width: 100%;
  }
}

/* ==========================================================================
   Fluid Layout Overrides (remove basic theme fixed widths)
   ========================================================================== */
html,
body {
  max-width: 100%;
}

body #hd.gsat-hd,
body #wrapper.gsat-wrapper,
body #ft.gsat-ft {
  min-width: 0 !important;
}

body #hd.gsat-hd #hd_wrapper.gsat-header-main,
body #hd.gsat-hd #tnb .inner,
body #gnb.gsat-gnb .gnb_wrap,
body #wrapper.gsat-wrapper #container_wr.gsat-container-wr,
body #ft.gsat-ft #ft_wr {
  width: min(1280px, calc(100% - 32px)) !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body #wrapper.gsat-wrapper #container.gsat-container {
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  float: none !important;
}

body #wrapper.gsat-wrapper #aside {
  display: none !important;
}

body #ft.gsat-ft #ft_wr {
  display: block !important;
  padding: 24px 0 !important;
}

body #ft.gsat-ft #ft_copy {
  width: auto !important;
  max-width: 1280px;
  margin: 0 auto !important;
  padding-left: 16px;
  padding-right: 16px;
}

.gsat-ft #ft_wr .ft_cnt {
  width: 25% !important;
  padding: 0 12px !important;
}

@media (max-width: 1280px) {
  .gsat-hero-copy h2 {
    font-size: 36px;
  }

  .gsat-section-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1024px) {
  body #hd.gsat-hd #hd_wrapper.gsat-header-main,
  body #hd.gsat-hd #tnb .inner,
  body #gnb.gsat-gnb .gnb_wrap,
  body #wrapper.gsat-wrapper #container_wr.gsat-container-wr,
  body #ft.gsat-ft #ft_wr {
    width: calc(100% - 24px) !important;
  }

  .gsat-ft #ft_wr .ft_cnt {
    width: 50% !important;
    margin-bottom: 14px;
  }
}

@media (max-width: 768px) {
  .gsat-hero-copy h2 {
    font-size: 30px;
  }

  .gsat-hero-copy,
  .gsat-hero-cards,
  .gsat-info-block,
  .gsat-latest-wrap > .pic_li_lt {
    padding: 16px !important;
  }

  body #hd.gsat-hd #hd_wrapper.gsat-header-main,
  body #hd.gsat-hd #tnb .inner,
  body #gnb.gsat-gnb .gnb_wrap,
  body #wrapper.gsat-wrapper #container_wr.gsat-container-wr,
  body #ft.gsat-ft #ft_wr {
    width: calc(100% - 16px) !important;
  }

  .gsat-ft #ft_wr .ft_cnt {
    width: 100% !important;
    padding: 0 !important;
  }
}

/* ==========================================================================
   Header layout: logo + menu inline, mobile hamburger on right
   ========================================================================== */
body #hd.gsat-hd #hd_wrapper.gsat-header-main {
  display: flex !important;
  align-items: center;
  gap: 20px;
}

body #hd.gsat-hd .gsat-logo {
  flex: 0 0 auto;
}

body #hd.gsat-hd #gnb.gsat-gnb {
  flex: 1 1 auto;
  border-top: 0 !important;
  background: transparent !important;
}

body #hd.gsat-hd #gnb.gsat-gnb .gnb_wrap {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 0 !important;
}

body #hd.gsat-hd .gsat-header-right {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
}

body #hd.gsat-hd .gsat-header-right .gsat-nav-toggle {
  display: none;
}

@media (max-width: 1024px) {
  body #hd.gsat-hd #hd_wrapper.gsat-header-main {
    gap: 10px;
  }

  body #hd.gsat-hd #gnb.gsat-gnb {
    flex: 0 0 auto;
    position: relative;
  }

  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
    display: none !important;
    position: absolute;
    right: 0;
    top: 46px;
    width: min(320px, calc(100vw - 24px));
    max-height: calc(100vh - 90px);
    overflow: auto;
    background: var(--gsat-surface);
    border: 1px solid var(--gsat-line);
    border-radius: 10px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
    padding: 8px;
    z-index: 1001;
  }

  body #hd.gsat-hd #gnb.gsat-gnb.gsat-open #gnb_1dul {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli {
    width: 100%;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1da {
    width: 100%;
    min-height: 46px;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_2dul {
    position: static;
    display: block;
    border: 0 !important;
    background: transparent !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_2dul_box {
    padding: 0 0 8px 10px;
  }

  body #hd.gsat-hd .gsat-header-right .gsat-nav-toggle {
    display: inline-flex;
    margin-left: 2px;
  }
}

@media (max-width: 768px) {
  body #hd.gsat-hd #hd_wrapper.gsat-header-main {
    min-height: 70px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  body #hd.gsat-hd .gsat-auth {
    display: none !important;
  }

  body #hd.gsat-hd .gsat-logo strong {
    font-size: 24px;
    letter-spacing: 0.12em;
  }
}

/* ==========================================================================
   Final nav behavior overrides (desktop slide + mobile hamburger)
   ========================================================================== */
body #hd.gsat-hd #gnb.gsat-gnb {
  position: relative;
  overflow: visible !important;
}

/* desktop submenu sliding */
@media (min-width: 1025px) {
  body #hd.gsat-hd #gnb.gsat-gnb {
    align-self: stretch;
    min-width: 0;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_wrap {
    height: 100%;
    min-width: 0;
  }

  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
    display: flex !important;
    gap: 24px;
    height: 100%;
    min-height: 0;
    align-items: stretch;
  }

  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul > .gnb_1dli {
    flex: 1 1 0;
    min-width: 0;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1da {
    display: flex;
    align-items: center;
    min-height: 0;
    height: 100%;
    width: 100%;
    justify-content: center;
    padding: 0 10px;
    border-radius: 0 !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_2dul {
    display: block !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease, max-height 0.22s ease;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli:hover > .gnb_2dul,
  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli:focus-within > .gnb_2dul,
  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli.is-open > .gnb_2dul {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    max-height: 520px;
    pointer-events: auto;
  }
}

/* mobile / tablet hamburger */
@media (max-width: 1024px) {
  body #hd.gsat-hd .gsat-header-right .gsat-nav-toggle {
    display: inline-flex !important;
    order: 3;
  }

  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
    display: none !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb.gsat-open #gnb_1dul {
    display: flex !important;
    flex-direction: column;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli.has-mobile-sub > .gnb_1da {
    position: relative;
    padding-right: 30px !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli.has-mobile-sub > .gnb_1da::after {
    content: "+";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    line-height: 1;
    font-weight: 800;
    color: var(--gsat-muted);
    transition: transform 0.2s ease;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli.sub-open > .gnb_1da::after {
    transform: translateY(-50%) rotate(45deg);
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gsat-mobile-sub {
    display: block;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0 0 8px 14px;
    transform: translateY(-4px);
    transition: max-height 0.26s ease, opacity 0.2s ease, transform 0.2s ease;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_1dli.sub-open > .gsat-mobile-sub {
    max-height: 420px;
    opacity: 1;
    transform: translateY(0);
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gsat-mobile-sub ul {
    margin: 0;
    padding: 0;
    border-left: 1px solid var(--gsat-line);
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gsat-mobile-sub li {
    margin: 0;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gsat-mobile-sub a {
    display: block;
    padding: 8px 0 8px 12px;
    color: var(--gsat-muted);
    font-size: 13px;
    line-height: 1.4;
  }
}

/* ==========================================================================
   Mega dropdown (full width sliding panel like gsat.or.kr)
   ========================================================================== */
@media (min-width: 1025px) {
  body #hd.gsat-hd {
    position: relative;
  }

  body #hd.gsat-hd > .gsat-mega-panel {
    position: absolute;
    left: 0;
    top: 100%;
    width: 100%;
    background: var(--gsat-surface);
    border-top: 1px solid var(--gsat-line);
    border-bottom: 1px solid var(--gsat-line);
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.14);
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: max-height 0.28s ease, opacity 0.2s ease, transform 0.24s ease;
    z-index: 1200;
  }

  body #hd.gsat-hd.mega-open > .gsat-mega-panel,
  body #hd.gsat-hd:hover > .gsat-mega-panel,
  body #hd.gsat-hd .gsat-header-main:hover + .gsat-mega-panel,
  body #hd.gsat-hd:focus-within > .gsat-mega-panel {
    max-height: 520px;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    display: flex;
    gap: var(--gsat-mega-gap, 0px);
    padding: 4px var(--gsat-mega-pad-right, 0px) 6px var(--gsat-mega-pad-left, 0px);
    box-sizing: border-box;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-col {
    flex: 1 1 0;
    min-width: 0;
    padding: 0;
    border-left: 0;
    transition: background-color .2s ease;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-title {
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 0 18px;
    font-weight: 700;
    color: var(--gsat-text);
    margin: 0;
    font-size: 15px;
    border-bottom: 1px solid var(--gsat-line);
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-list li {
    margin: 0;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-list a {
    display: block;
    padding: 8px 18px;
    color: var(--gsat-muted);
    font-size: 14px;
    line-height: 1.45;
    text-align: center;
    font-weight: 500;
    text-decoration: none;
    text-underline-offset: 3px;
    transition: color .2s ease;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-col.is-active {
    background: var(--gsat-menu-hover);
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-col.is-active .gsat-mega-list a {
    color: #fff;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-title:hover,
  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-list a:hover {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
  }

  body #hd.gsat-hd > .gsat-mega-panel .gsat-mega-list a:focus-visible {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
  }

  body #hd.gsat-hd #gnb.gsat-gnb .gnb_2dul {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  body #hd.gsat-hd > .gsat-mega-panel {
    display: none !important;
  }
}

/* ==========================================================================
   Final mobile hamburger normalization (highest priority)
   ========================================================================== */
@media (max-width: 1024px) {
  body #hd.gsat-hd,
  body #hd.gsat-hd #hd_wrapper.gsat-header-main,
  body #hd.gsat-hd #gnb.gsat-gnb,
  body #hd.gsat-hd #gnb.gsat-gnb .gnb_wrap {
    overflow: visible !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    position: fixed !important;
    top: var(--gsat-mobile-menu-top, 74px) !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - var(--gsat-mobile-menu-top, 74px) - 12px) !important;
    overflow: auto !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    border: 1px solid var(--gsat-line) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    background: var(--gsat-surface) !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.18) !important;
    z-index: 2000 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-10px) !important;
    transition: opacity 0.22s ease, transform 0.24s ease, visibility 0.22s ease !important;
  }

  body #hd.gsat-hd #gnb.gsat-gnb.gsat-open #gnb_1dul {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
}

@media (max-width: 768px) {
  body #hd.gsat-hd #gnb.gsat-gnb #gnb_1dul {
    top: var(--gsat-mobile-menu-top, 66px) !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - var(--gsat-mobile-menu-top, 66px) - 8px) !important;
    padding: 10px 12px !important;
  }
}

.gsat-mobile-auth {
  display: none;
}

.gsat-mobile-sub {
  display: none !important;
}

@media (max-width: 1024px) {
  .gsat-mobile-sub {
    display: block !important;
  }

  .gsat-mobile-auth {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--gsat-line);
  }

  .gsat-mobile-auth a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--gsat-line);
    color: var(--gsat-text);
    font-weight: 600;
    font-size: 13px;
    background: var(--gsat-surface-2);
  }
}
