@charset "utf-8";

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--page); font: 400 17px/1.6 Inter, "Segoe UI", Arial, system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--blue-dark); }
h1, h2, h3, p, dl, dd { margin: 0; }
ul, ol { margin: 0; padding: 0; }
main { min-height: 60vh; }

.shell {
  width: min(calc(100% - 48px), var(--shell));
  margin-inline: auto;
}

.skip-link {
  position: fixed;
  left: 12px;
  top: -80px;
  z-index: 100;
  padding: 10px 14px;
  color: var(--ink);
  background: var(--page);
  border: 2px solid currentColor;
}
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--focus-inner); outline-offset: 3px; box-shadow: 0 0 0 6px var(--focus-outer); }

.site-header { position: sticky; top: 0; z-index: 50; min-height: 72px; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 72px; display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(210px, 1fr); align-items: center; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; color: var(--ink); font-weight: 750; letter-spacing: -.02em; }
.brand:hover { color: var(--ink); }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; color: var(--page); background: var(--blue); border-radius: 7px; font-size: 14px; font-weight: 800; }
.site-nav { display: flex; align-items: center; justify-content: center; gap: 24px; }
.site-nav a { position: relative; padding: 24px 0 22px; color: var(--muted); font-size: 14px; font-weight: 650; white-space: nowrap; }
.site-nav .account-link { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); }
.account-link svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--ink); }
.site-nav a[aria-current="page"]::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--orange); }
.header-action { justify-self: end; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; color: var(--page); background: var(--ink); border-radius: 8px; font-size: 14px; font-weight: 700; }
.header-action:hover { color: var(--page); background: var(--blue-dark); }
.menu-toggle { display: none; align-items: center; justify-content: center; min-height: 42px; padding: 8px 12px; color: var(--ink); background: var(--page); border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }

.site-footer { padding-block: 56px 28px; color: #C6CDDB; background: var(--ink); }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; }
.site-footer .brand { color: var(--page); }
.site-footer .brand-mark { background: var(--blue); }
.footer-intro { max-width: 360px; margin-top: 18px; color: #AEB7C8; font-size: 14px; }
.footer-title { margin-bottom: 14px; color: var(--page); font-size: 13px; font-weight: 750; }
.footer-links { display: grid; gap: 9px; }
.footer-links a { color: #B4BDCC; font-size: 14px; }
.footer-links a:hover, .footer-links a[aria-current="page"] { color: var(--page); }
.footer-meta { display: grid; grid-template-columns: 1fr auto; gap: 24px; margin-top: 42px; padding-top: 20px; color: #919CAF; border-top: 1px solid #353C49; font-size: 13px; }
.footer-operator { display: flex; flex-wrap: wrap; gap: 8px 18px; }

@media (min-width: 761px) and (max-width: 1080px) {
  .header-inner { grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; }
  .header-inner > .brand > span:last-child { display: none; }
  .site-nav { min-width: 0; justify-content: flex-start; gap: clamp(8px, 1.4vw, 14px); }
  .site-nav a { font-size: 12px; }
  .header-action { min-width: 0; padding-inline: 12px; font-size: 12px; white-space: nowrap; }
}

@media (max-width: 760px) {
  .shell { width: min(calc(100% - 28px), var(--shell)); }
  body { font-size: 16px; }
  .header-inner { position: relative; min-height: 64px; grid-template-columns: 1fr auto; gap: 12px; }
  .menu-toggle { display: inline-flex; }
  .header-action { display: none; }
  [data-site-nav] { grid-column: 1 / -1; width: 100%; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-bottom: 14px; }
  .js [data-site-nav] { display: none; }
  .js [data-site-nav].is-open { display: flex; }
  .site-nav a { width: 100%; padding: 10px 0; border-top: 1px solid var(--line); }
  .site-nav a[aria-current="page"]::after { top: 9px; right: auto; bottom: 9px; left: -8px; width: 3px; height: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 22px; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .footer-meta { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.brand-logo{display:block;width:154px;height:auto;max-height:38px;object-fit:contain;object-position:left center}.site-footer .brand-logo{width:176px;max-height:42px}@media (max-width:760px){.brand-logo{width:142px}.site-footer .brand-logo{width:164px}}


/* Responsive core R1: prevent page-level overflow and collapse navigation before tablet collision. */
html,body{max-width:100%;overflow-x:clip}
img,svg,video,canvas{max-width:100%;height:auto}
.shell,.container,.header-inner,.site-header,.site-footer{min-width:0}
.brand,.site-nav,.header-action,.footer-grid>*,main,section,article{min-width:0}
.brand-logo{max-width:100%;height:auto}
@media (max-width:900px){
  .header-inner{grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .menu-toggle{display:inline-flex}
  .header-action{display:none}
  .site-nav{display:none;grid-column:1/-1;width:100%;min-width:0;flex-direction:column;align-items:stretch;gap:0;padding-bottom:14px}
  .site-nav.is-open{display:flex}
  .site-nav a{width:100%;min-width:0;padding:10px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
  .site-nav .account-link{gap:9px}
}
@media (max-width:760px){
  .shell{width:min(calc(100% - 28px),var(--shell))}
  .header-inner{min-height:64px}
  .site-nav{padding-bottom:10px}
  .site-footer .footer-links a{overflow-wrap:anywhere}
}


/* Shell polish R1: fixed mobile header and universal back-to-top control. */
html{scroll-behavior:smooth}
.back-to-top{position:fixed;right:18px;bottom:18px;z-index:80;display:grid;place-items:center;width:42px;height:42px;padding:0;color:#fff;background:var(--ink);border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:22px;line-height:1;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;cursor:pointer;box-shadow:0 6px 18px rgba(18,49,81,.2)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
@media (max-width:900px){
  body{padding-top:64px}
  .site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:70}
}
@media (max-width:760px){
  .back-to-top{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:40px;height:40px}
}


/* Shell polish R2: opaque fixed mobile navigation and visible return control. */
@media (max-width:900px){
  .site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:120;background:var(--page);background-color:var(--page);opacity:1;box-shadow:0 2px 14px rgba(18,49,81,.14)}
  .site-header .header-inner{background:var(--page)}
  .site-nav{background:var(--page);background-color:var(--page);box-shadow:0 10px 18px rgba(18,49,81,.12);max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain}
}
.back-to-top{opacity:1;visibility:visible;transform:none;background:var(--ink);z-index:130}

/* Public header R2: one canonical shell and full-width opaque mobile navigation. */
.site-header{width:100%;background:#fff;background-color:#fff;}
@media (max-width:900px){
  .site-header{position:fixed;inset-inline:0;top:0;width:100vw;max-width:none;margin:0;background:#fff;background-color:#fff;box-shadow:0 2px 14px rgba(18,49,81,.14)}
  .site-header .header-inner{width:min(calc(100% - 28px),var(--shell));max-width:var(--shell);margin-inline:auto;background:#fff;background-color:#fff}
  .site-nav{width:100%;max-width:none;background:#fff;background-color:#fff;box-shadow:0 10px 18px rgba(18,49,81,.12);max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain}
}

/* Public header R2: one canonical shell and full-width opaque mobile navigation. */
.site-header{width:100%;background:#fff;background-color:#fff;}
@media (max-width:900px){
  .site-header{position:fixed;inset-inline:0;top:0;width:100vw;max-width:none;margin:0;background:#fff;background-color:#fff;box-shadow:0 2px 14px rgba(18,49,81,.14)}
  .site-header .header-inner{width:min(calc(100% - 28px),var(--shell));max-width:var(--shell);margin-inline:auto;background:#fff;background-color:#fff}
  .site-nav{width:100%;max-width:none;background:#fff;background-color:#fff;box-shadow:0 10px 18px rgba(18,49,81,.12);max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain}
}
