:root {
  --topesg-global-bg: #f1f1ef;
  --topesg-global-ink: #171817;
  --topesg-global-yellow: #f3ad19;
  --topesg-global-orange: #db8320;
  --topesg-global-line: #dfe5ec;
  --topesg-global-dark: #0b1320;
}

.topesg-global-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.topesg-global-shell { width: min(1460px, calc(100% - 48px)); margin: 0 auto; }
.topesg-global-header, .topesg-global-header *, .topesg-global-footer, .topesg-global-footer *, .topesg-global-compact-hero, .topesg-global-compact-hero *, .topesg-global-search-dialog, .topesg-global-search-dialog * { box-sizing: border-box; letter-spacing: 0; }
.topesg-global-header { position: sticky; top: 0; z-index: 100; border: 0; overflow: visible; background: rgba(241,241,239,.96); box-shadow: none; backdrop-filter: blur(14px); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topesg-global-header::before { display: none; }
.topesg-global-header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 0; }
.topesg-global-brand { width: 158px; display: inline-flex; flex: 0 0 auto; }
.topesg-global-brand img { width: 100%; height: 58px; display: block; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.topesg-global-navigation { display: flex; flex: 1 1 auto; align-items: center; justify-content: center; gap: 6px; }
.topesg-global-nav-item { position: relative; display: flex; align-items: center; }
.topesg-global-navigation a { position: relative; padding: 11px 10px; color: var(--topesg-menu-link-color, var(--topesg-global-ink)); font-size: var(--topesg-menu-font-size, 13px); font-weight: 800; text-decoration: none; white-space: nowrap; }
.topesg-global-navigation a::after { position: absolute; right: 10px; bottom: 5px; left: 10px; height: 2px; background: var(--topesg-global-orange); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.topesg-global-navigation a:hover::after, .topesg-global-navigation a.is-active::after { transform: scaleX(1); }
.topesg-global-submenu-toggle { width: 24px; height: 34px; display: grid; place-items: center; border: 0; padding: 0 0 3px; background: transparent; color: var(--topesg-menu-link-color, var(--topesg-global-ink)); font-size: 18px; cursor: pointer; }
.topesg-global-submenu { position: absolute; top: 100%; left: 0; z-index: 20; min-width: 210px; visibility: hidden; overflow: hidden; border: 1px solid var(--topesg-global-line); border-radius: 8px; background: #fff; box-shadow: 0 18px 48px rgba(29,36,48,.10); opacity: 0; transform: translateY(-5px); transition: opacity .16s ease, transform .16s ease, visibility .16s ease; }
.topesg-global-submenu a { display: block; padding: 11px 14px; border-bottom: 1px solid var(--topesg-global-line); }
.topesg-global-submenu a:last-child { border-bottom: 0; }
.topesg-global-submenu a::after { display: none; }
.topesg-global-submenu a:hover, .topesg-global-submenu a.is-active { background: #f3f5f7; color: var(--topesg-global-orange); }
.topesg-global-nav-item:hover > .topesg-global-submenu, .topesg-global-nav-item:focus-within > .topesg-global-submenu, .topesg-global-nav-item.is-open > .topesg-global-submenu { visibility: visible; opacity: 1; transform: none; }
.topesg-global-menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.topesg-global-menu-toggle > span:not(.topesg-global-sr-only) { width: 24px; height: 2px; display: block; margin: 5px auto; background: var(--topesg-menu-link-color, var(--topesg-global-ink)); transition: transform .16s ease, opacity .16s ease; }
.topesg-global-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.topesg-global-header-cta, .topesg-global-header-logout { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; padding: 12px 18px; background: var(--topesg-menu-cta-bg, var(--topesg-global-ink)); color: #fff; font-size: var(--topesg-menu-font-size, 13px); font-weight: 900; line-height: 1.1; text-decoration: none; }
.topesg-global-header-logout { border-color: #b8b9b5; background: transparent; color: var(--topesg-global-ink); }
.topesg-global-search-trigger { min-height: 46px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid #c9cac6; border-radius: 8px; padding: 7px 8px 7px 13px; background: transparent; color: var(--topesg-menu-link-color, var(--topesg-global-ink)); font-size: var(--topesg-menu-font-size, 13px); font-weight: 800; line-height: 1; cursor: pointer; white-space: nowrap; }
.topesg-global-search-trigger:hover { border-color: var(--topesg-global-ink); background: #fff; }
.topesg-global-search-trigger svg, .topesg-global-search-field svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.topesg-global-search-trigger kbd, .topesg-global-search-field kbd { min-width: 30px; min-height: 30px; display: grid; place-items: center; border: 1px solid #d6d7d3; border-radius: 7px; background: #fff; box-shadow: 0 2px 0 #dedfdb; color: #676863; font: inherit; font-weight: 850; }
.topesg-global-navigation-search, .topesg-global-navigation-guide, .topesg-global-navigation-logout { display: none; }

.topesg-global-search-dialog { position: fixed; inset: 0; z-index: 300; display: grid; place-items: start center; padding: 104px 20px 24px; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topesg-global-search-dialog[hidden] { display: none !important; }
.topesg-global-search-backdrop { position: absolute; inset: 0; border: 0; background: rgba(23,24,23,.46); backdrop-filter: blur(5px); }
.topesg-global-search-panel { position: relative; width: min(680px, 100%); max-height: calc(100vh - 128px); overflow: hidden; border-radius: 12px; padding: 28px; background: var(--topesg-global-bg); box-shadow: 0 28px 90px rgba(0,0,0,.28); }
.topesg-global-search-control-row { display: grid; grid-template-columns: minmax(0, 1fr) 58px; align-items: center; gap: 10px; }
.topesg-global-search-field { min-height: 58px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid #b9bab6; border-radius: 8px; padding: 7px 9px 7px 16px; background: #fff; color: var(--topesg-global-ink); }
.topesg-global-search-field input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--topesg-global-ink); font-size: 18px; font-weight: 700; }
.topesg-global-search-close { width: 58px; height: 58px; border: 1px solid #c9cac6; border-radius: 8px; background: transparent; color: var(--topesg-global-ink); font-size: 30px; line-height: 1; cursor: pointer; }
.topesg-global-search-meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 2px 10px; color: #666762; font-size: 13px; }
.topesg-global-search-meta > span { font-weight: 850; }
.topesg-global-search-list { max-height: min(520px, calc(100vh - 270px)); overflow-y: auto; border-top: 1px solid #c7c8c4; }
.topesg-global-search-list a { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #d8d9d5; padding: 10px 4px; color: var(--topesg-global-ink); font-size: 14px; font-weight: 750; text-decoration: none; }
.topesg-global-search-list a[hidden] { display: none !important; }
.topesg-global-search-list a:hover { padding-right: 10px; padding-left: 10px; background: #fff; }
.topesg-global-search-empty { margin: 20px 0 0; color: #666762; text-align: center; }

.topesg-global-compact-hero { padding: 14px 0 52px; background: var(--topesg-global-bg); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topesg-global-compact-hero-stage { position: relative; height: 330px; overflow: hidden; border-radius: var(--topesg-hero-radius, 28px); background: #d9d9d5; }
.topesg-global-compact-hero-media { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.topesg-global-compact-hero-media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.topesg-global-compact-hero-panel { --topesg-notch-radius: var(--topesg-hero-radius, 28px); width: min(720px, 54%); min-height: 220px; position: absolute; right: 0; bottom: 0; display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: 28px; border-radius: var(--topesg-notch-radius) 0 0 0; background: var(--topesg-global-bg); color: var(--topesg-global-ink); }
.topesg-global-compact-hero-panel::before, .topesg-global-compact-hero-panel::after { width: var(--topesg-notch-radius); height: var(--topesg-notch-radius); position: absolute; background: radial-gradient(circle var(--topesg-notch-radius) at top left, transparent calc(100% - 1px), var(--topesg-global-bg) 100%); content: ""; pointer-events: none; }
.topesg-global-compact-hero-panel::before { top: calc(-1 * var(--topesg-notch-radius)); right: 0; }
.topesg-global-compact-hero-panel::after { bottom: 0; left: calc(-1 * var(--topesg-notch-radius)); }
.topesg-global-eyebrow { margin: 0 0 8px; color: var(--topesg-global-orange); font-size: 13px; font-weight: 900; text-transform: uppercase; }
.topesg-global-compact-hero-panel h1 { width: 100%; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 5px solid var(--topesg-global-yellow); color: var(--topesg-global-ink); font-size: clamp(38px, 4vw, var(--topesg-compact-title-size, 56px)); line-height: .98; overflow-wrap: anywhere; }
.topesg-global-compact-hero-panel p:last-child { max-width: 650px; margin: 0; color: #3f403d; font-size: 18px; font-weight: 550; line-height: 1.45; }

.topesg-global-footer { border: 0; background: var(--topesg-global-dark); color: #fff; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topesg-global-footer-grid { display: grid; grid-template-columns: minmax(340px, 1.6fr) repeat(3, minmax(170px, 1fr)); column-gap: clamp(42px, 5vw, 78px); padding-top: 72px; padding-bottom: 58px; }
.topesg-global-footer-logo { width: min(100%, 280px); display: block; margin: 0 0 22px; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.22); }
.topesg-global-footer-logo img { width: min(100%, 210px); height: auto; max-height: 78px; display: block; object-fit: contain; object-position: left center; }
.topesg-global-footer-brand dl, .topesg-global-footer-brand dd { margin: 0; }
.topesg-global-footer-brand dl { display: grid; gap: 13px; }
.topesg-global-footer-brand dl > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px; }
.topesg-global-footer-brand dt { color: #fff; font-size: 13px; font-weight: 850; }
.topesg-global-footer-brand dd { min-width: 0; color: #aeb8c7; font-size: 14px; }
.topesg-global-footer h2 { margin: 0 0 20px; color: #fff; font-size: 17px; line-height: 1.2; }
.topesg-global-footer-column, .topesg-global-footer-column nav { display: grid; align-content: start; }
.topesg-global-footer-column.is-split { grid-template-rows: 142px auto; gap: 20px; }
.topesg-global-footer a { display: block; width: fit-content; margin-bottom: 10px; color: #aeb8c7; font-size: 14px; text-decoration: none; }
.topesg-global-footer a:hover { color: var(--topesg-global-yellow); }
.topesg-global-footer .site-social-links { display: flex; gap: 7px; }
.topesg-global-footer .site-social-links a { width: 24px; height: 24px; display: grid; place-items: center; margin: 0; color: #d8dee7; }
.topesg-global-footer .site-social-links svg { width: 19px; height: 19px; fill: currentColor; }
.topesg-global-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; padding-bottom: 26px; border-top: 1px solid rgba(255,255,255,.18); color: #8f9bad; font-size: 12px; font-weight: 750; }

body.topesg-global-menu-open, body.topesg-global-search-open { overflow: hidden; }
body.has-topesg-global-chrome > main.container { width: min(1460px, calc(100% - 48px)); max-width: none; margin-right: auto; margin-left: auto; padding: 0 0 60px; }
body.has-topesg-global-chrome > main.container > :first-child { margin-top: 0; }
body.topesg-guide-index { background: #fff; }
body.topesg-guide-index > main.container { width: min(1240px, calc(100% - 280px)); margin-right: auto; margin-left: max(24px, calc((100% - 1460px) / 2)); }
body.topesg-guide-index .filters-card { border: 0; background: #fff; box-shadow: none; }
body.topesg-guide-detail { background: #fff; }
body.topesg-guide-detail > main.container { width: min(1460px, calc(100% - 48px)); padding-top: 38px; }

@media (min-width: 821px) {
  .topesg-global-footer-grid > :nth-child(n+2), .topesg-global-footer-grid > :nth-child(n+2) nav { justify-items: end; text-align: right; }
}

@media (max-width: 1080px) {
  .topesg-global-header-inner { min-height: 72px; }
  .topesg-global-header-actions { display: none; }
  .topesg-global-menu-toggle { display: block; }
  .topesg-global-navigation { position: fixed; inset: 72px 0 auto; max-height: calc(100vh - 72px); display: none; overflow-y: auto; align-items: stretch; flex-direction: column; padding: 18px 24px 28px; border-bottom: 1px solid var(--topesg-global-line); background: #fff; box-shadow: 0 18px 48px rgba(29,36,48,.10); }
  .topesg-global-navigation.is-open { display: flex; }
  .topesg-global-nav-item { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 44px; }
  .topesg-global-navigation a { padding: 13px 4px; font-size: max(16px, var(--topesg-menu-font-size, 13px)); }
  .topesg-global-submenu-toggle { width: 44px; height: 44px; justify-self: end; }
  .topesg-global-submenu { position: static; grid-column: 1 / -1; min-width: 0; display: none; visibility: visible; margin: 0 0 8px 14px; border: 0; border-left: 2px solid var(--topesg-global-orange); border-radius: 0; box-shadow: none; opacity: 1; transform: none; }
  .topesg-global-nav-item.is-open > .topesg-global-submenu { display: block; }
  .topesg-global-navigation-search { width: 100%; display: flex; justify-content: flex-start; margin-top: 8px; font-size: max(16px, var(--topesg-menu-font-size, 13px)); }
  .topesg-global-navigation .topesg-global-navigation-guide, .topesg-global-navigation .topesg-global-navigation-logout { min-height: 46px; display: flex; align-items: center; justify-content: center; margin-top: 10px; border-radius: 8px; padding: 12px 18px; background: var(--topesg-menu-cta-bg, var(--topesg-global-ink)); color: #fff; font-weight: 900; line-height: 1.1; }
  .topesg-global-navigation .topesg-global-navigation-logout { border: 1px solid #b8b9b5; background: transparent; color: var(--topesg-global-ink); }
  .topesg-global-navigation .topesg-global-navigation-guide::after, .topesg-global-navigation .topesg-global-navigation-logout::after { display: none; }
  .topesg-global-menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .topesg-global-menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .topesg-global-menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .topesg-global-compact-hero-panel { width: min(680px, 60%); }
}

@media (max-width: 900px) {
  body.topesg-guide-index > main.container {
    width: min(100% - 32px, 1240px);
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 820px) {
  .topesg-global-shell { width: min(100% - 32px, 1460px); }
  .topesg-global-compact-hero-stage { height: auto; display: grid; grid-template-areas: "panel" "media"; }
  .topesg-global-compact-hero-media { position: relative; inset: auto; grid-area: media; aspect-ratio: 16 / 6; border-radius: 0; }
  .topesg-global-compact-hero-panel { width: 100%; min-height: 0; position: relative; inset: auto; grid-area: panel; padding: 26px 28px 28px; border-radius: var(--topesg-hero-radius) var(--topesg-hero-radius) 0 0; }
  .topesg-global-compact-hero-panel::before, .topesg-global-compact-hero-panel::after { display: none; }
  .topesg-global-compact-hero-panel h1 { font-size: min(44px, var(--topesg-compact-title-size, 56px)); }
  .topesg-global-footer-grid { grid-template-columns: 1fr 1fr; }
  .topesg-global-footer-grid > :first-child { grid-column: 1 / -1; }
  .topesg-global-footer-column.is-split { grid-template-rows: auto auto; }
  body.has-topesg-global-chrome > main.container { width: min(100% - 32px, 1460px); }
  body.topesg-guide-index > main.container { width: min(100% - 32px, 1240px); margin-right: auto; margin-left: auto; }
  body.topesg-guide-detail > main.container { width: min(100% - 32px, 1460px); margin-right: auto; margin-left: auto; padding-top: 30px; }
}

@media (max-width: 620px) {
  body.topesg-guide-index > main.container { width: min(100% - 32px, 1240px); margin-right: auto; margin-left: auto; }
}

@media (max-width: 560px) {
  .topesg-global-shell { width: min(100% - 24px, 1460px); }
  .topesg-global-brand { width: 146px; }
  .topesg-global-compact-hero { padding-top: 4px; padding-bottom: 36px; }
  .topesg-global-compact-hero-media { aspect-ratio: 16 / 8; }
  .topesg-global-compact-hero-panel { padding: 24px 18px 26px; }
  .topesg-global-compact-hero-panel h1 { margin-bottom: 14px; padding-bottom: 10px; font-size: min(36px, var(--topesg-compact-title-size, 56px)); }
  .topesg-global-compact-hero-panel p:last-child { font-size: 16px; }
  .topesg-global-search-dialog { padding: 76px 10px 10px; }
  .topesg-global-search-panel { max-height: calc(100vh - 86px); padding: 20px 16px; }
  .topesg-global-search-control-row { grid-template-columns: minmax(0, 1fr) 48px; gap: 7px; }
  .topesg-global-search-close { width: 48px; height: 48px; }
  .topesg-global-search-meta { align-items: flex-start; flex-direction: column; gap: 2px; }
  .topesg-global-search-list { max-height: calc(100vh - 250px); }
  .topesg-global-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .topesg-global-footer-grid > :first-child { grid-column: auto; }
  .topesg-global-footer-bottom { flex-direction: column; }
  .topesg-global-footer-column.is-split { gap: 28px; }
  body.has-topesg-global-chrome > main.container { width: min(100% - 24px, 1460px); padding-bottom: 46px; }
  body.topesg-guide-index > main.container { width: min(100% - 24px, 1240px); }
  body.topesg-guide-detail > main.container { width: min(100% - 24px, 1460px); padding-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .topesg-global-navigation *, .topesg-global-search-dialog * { transition-duration: .01ms !important; }
}
