/* ============================================================
   GEXYRAL global front shell
   Scope: shared variables, base reset, header, footer and shared buttons only.
   Page-level sections/cards/heroes should live in each page CSS file.
   Version: 20260507-footer-clean-v9
============================================================ */
:root{
  --gx-bg:#f5f7fb;
  --gx-bg2:#eef4fb;
  --gx-ink:#0b1220;
  --gx-ink2:#1e293b;
  --gx-muted:#64748b;
  --gx-muted2:#94a3b8;
  --gx-card:#ffffff;
  --gx-soft:#f8fafc;
  --gx-line:#e2e8f0;
  --gx-line2:#d7e0ec;
  --gx-blue:#1d4ed8;
  --gx-blue2:#2563eb;
  --gx-blue3:#dbeafe;
  --gx-green:#047857;
  --gx-green2:#10b981;
  --gx-amber:#b45309;
  --gx-red:#b42318;
  --gx-navy:#0f2a43;
  --gx-navy2:#12324a;
  --gx-shadow:0 26px 80px rgba(15,23,42,.10);
  --gx-shadow2:0 16px 42px rgba(15,23,42,.075);
  --gx-shadow3:0 10px 28px rgba(15,23,42,.055);
  --gx-radius:26px;
  --gx-radius2:20px;
  --gx-radius3:16px;
  --gx-max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{
  margin:0;
  min-width:320px;
  color:var(--gx-ink);
  background:
    radial-gradient(760px 420px at 10% -8%,rgba(37,99,235,.13),transparent 64%),
    radial-gradient(680px 420px at 96% 2%,rgba(16,185,129,.10),transparent 62%),
    linear-gradient(180deg,#ffffff 0%,#f7faff 38%,var(--gx-bg) 100%);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  font-size:16px;
  line-height:1.68;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:
    linear-gradient(rgba(15,42,67,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(15,42,67,.028) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.36),transparent 62%);
}
::selection{background:#bfdbfe;color:#0f172a}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.gx-skip{position:absolute;left:-999px;top:auto}
.gx-skip:focus{left:16px;top:16px;z-index:1000;background:#fff;padding:10px 12px;border-radius:12px;border:1px solid var(--gx-line);box-shadow:var(--gx-shadow3)}
.gx-container{width:min(var(--gx-max),calc(100% - 40px));margin:0 auto}
.gx-narrow{width:min(900px,calc(100% - 40px));margin:0 auto}
.gx-main{padding:0 0 64px}
.gx-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* Shared buttons used by header, footer and page-level CSS. */
.gx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid var(--gx-line);border-radius:999px;padding:10px 17px;text-decoration:none;font-size:14px;font-weight:850;line-height:1.15;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;white-space:nowrap;cursor:pointer}
.gx-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,23,42,.10)}
.gx-btn--primary{background:linear-gradient(135deg,#0f172a,#12324a);color:#fff;border-color:#0f172a;box-shadow:0 12px 30px rgba(15,23,42,.16)}
.gx-btn--primary:hover{background:linear-gradient(135deg,#111827,#0f2a43)}
.gx-btn--blue{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border-color:#1d4ed8;box-shadow:0 12px 30px rgba(37,99,235,.20)}
.gx-btn--green{background:linear-gradient(135deg,#047857,#059669);color:#fff;border-color:#047857;box-shadow:0 12px 30px rgba(4,120,87,.18)}
.gx-btn--ghost{background:rgba(255,255,255,.88);color:#0f172a}
.gx-btn--soft{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.gx-btn--soft:hover{background:#dbeafe;border-color:#93c5fd}

/* ============================================================
   Header
============================================================ */
.gx-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(203,213,225,.72)}
.gx-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.22),rgba(16,185,129,.18),transparent)}
.gx-header__inner{width:min(1280px,calc(100% - 32px));margin:0 auto;height:72px;display:flex;align-items:center;gap:14px;position:relative}
.gx-brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:230px;flex:0 0 auto}
.gx-brand__mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#fff,#f1f5f9);border:1px solid rgba(226,232,240,.96);display:grid;place-items:center;box-shadow:0 16px 36px rgba(29,78,216,.13),inset 0 1px 0 rgba(255,255,255,.95);overflow:hidden;position:relative}
.gx-brand__mark:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(37,99,235,.13),rgba(16,185,129,.11));opacity:.9}
.gx-brand__mark img{width:27px;height:27px;object-fit:contain;position:relative;z-index:1}
.gx-brand__text strong{display:block;font-size:14.5px;letter-spacing:.07em;line-height:1.15;color:#0f172a;white-space:nowrap}
.gx-brand__text em{display:block;margin-top:3px;font-style:normal;font-size:11.5px;line-height:1.3;color:#64748b;white-space:nowrap;max-width:210px;overflow:hidden;text-overflow:ellipsis}
.gx-nav{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;justify-content:center}
.gx-nav a{font-size:13px;text-decoration:none;color:#334155;font-weight:850;border-radius:999px;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.gx-nav--rich>a{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 13px;line-height:1;white-space:nowrap;box-shadow:none}
.gx-nav--rich>a:hover,.gx-nav--rich>a.is-active{background:#eef6ff;color:#1d4ed8;box-shadow:inset 0 0 0 1px #bfdbfe}
.gx-nav-item em{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;background:#dcfce7;color:#047857;font-size:11px;font-style:normal;font-weight:950;letter-spacing:.01em;box-shadow:inset 0 0 0 1px #bbf7d0}
.gx-header__actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.gx-header__actions .gx-btn{min-height:38px;padding:9px 14px;font-size:13px}
.gx-lang{height:38px;min-width:116px;max-width:128px;border:1px solid var(--gx-line);border-radius:999px;background:#fff;color:#334155;padding:0 10px;font-size:13px;font-weight:750;outline:none;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.gx-lang:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(59,130,246,.13)}
.gx-menu-btn{display:none;width:44px;height:44px;border:1px solid var(--gx-line);border-radius:15px;background:#fff;padding:9px;box-shadow:0 10px 24px rgba(15,23,42,.05);cursor:pointer}
.gx-menu-btn span{display:block;height:2px;background:#0f172a;border-radius:2px;margin:5px 0}

/* Header dropdown. */
.gx-more-menu{position:relative;display:flex;align-items:center;height:44px}
.gx-more-menu:hover::after,.gx-more-menu.is-open::after{content:"";position:absolute;left:-22px;right:-22px;top:100%;height:14px;z-index:99}
.gx-more-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 13px;border:1px solid #dbeafe;border-radius:999px;background:#f8fbff;color:#1e3a8a;font-size:13px;font-weight:900;line-height:1;box-shadow:0 8px 22px rgba(37,99,235,.06);cursor:pointer}
.gx-more-trigger b{font-size:15px;transition:transform .16s ease;line-height:1}
.gx-more-menu:hover .gx-more-trigger,.gx-more-menu.is-open .gx-more-trigger{background:#eef6ff;border-color:#bfdbfe;color:#1d4ed8}
.gx-more-menu:hover .gx-more-trigger b,.gx-more-menu.is-open .gx-more-trigger b{transform:rotate(180deg) translateY(1px)}
.gx-more-panel{position:absolute;left:50%;top:calc(100% + 10px);width:min(940px,calc(100vw - 44px));max-height:calc(100vh - 104px);overflow:auto;padding:16px;border-radius:24px;background:rgba(255,255,255,.98);border:1px solid rgba(226,232,240,.96);box-shadow:0 26px 72px rgba(15,23,42,.15);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(6px);transition:.18s ease;z-index:100}
.gx-more-menu:hover .gx-more-panel,.gx-more-menu.is-open .gx-more-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.gx-more-panel:before{content:"";position:absolute;left:50%;top:-7px;width:14px;height:14px;transform:translateX(-50%) rotate(45deg);background:#fff;border-left:1px solid rgba(226,232,240,.96);border-top:1px solid rgba(226,232,240,.96)}
.gx-more-panel__head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:2px 4px 12px;margin-bottom:12px;border-bottom:1px solid #edf2f7;position:relative;z-index:1}
.gx-more-panel__head strong{font-size:17px;line-height:1.25;color:#0f172a}
.gx-more-panel__head span{font-size:12.5px;line-height:1.55;color:#64748b;max-width:560px}
.gx-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;position:relative;z-index:1}
.gx-more-card{border:1px solid #e2e8f0;border-radius:18px;padding:12px;background:linear-gradient(180deg,#fff,#f9fbff);display:flex;flex-direction:column;min-width:0}
.gx-more-card h3{font-size:13px;line-height:1.25;margin:0 0 8px;color:#1e293b}
.gx-more-link{display:block;text-decoration:none;border:1px solid transparent;border-radius:13px;padding:9px 10px;margin:2px 0;min-width:0}
.gx-more-link span{display:block;font-size:13.5px;font-weight:850;line-height:1.25;white-space:normal;color:#0f172a}
.gx-more-link em{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px;font-style:normal;font-size:12px;line-height:1.45;color:#64748b}
.gx-more-link:hover,.gx-more-link:focus{background:#eff6ff;border-color:#bfdbfe;outline:none}
.gx-more-link.maybe-active{background:#f8fbff;border-color:#dbeafe}

/* Mobile navigation. */
.gx-mobile-panel{display:none;position:absolute;left:16px;right:16px;top:74px;background:rgba(255,255,255,.98);border:1px solid var(--gx-line);border-radius:22px;box-shadow:var(--gx-shadow);padding:12px;z-index:80;max-height:calc(100vh - 94px);overflow:auto}
.gx-mobile-panel.is-open{display:grid;gap:10px}
.gx-mobile-panel a{text-decoration:none;color:#334155;border-radius:14px;padding:12px 14px;transition:.18s ease}
.gx-mobile-panel a:hover,.gx-mobile-panel a.is-active{background:#eef4ff;color:#1d4ed8}
.gx-mobile-panel a strong{display:block;font-size:14px;line-height:1.22;color:inherit}
.gx-mobile-panel a span{display:block;margin-top:4px;font-size:12px;line-height:1.45;color:#64748b}
.gx-mobile-panel__core{display:grid;gap:4px}
.gx-mobile-group{border-top:1px solid #edf2f7;padding-top:10px;display:grid;gap:4px}
.gx-mobile-group h3{font-size:12px;color:#64748b;margin:0 8px 2px;letter-spacing:.05em}
.gx-mobile-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid #edf2f7;padding-top:12px}

/* ============================================================
   Footer
============================================================ */
.gx-footer{margin-top:0;background:#08111f;color:#cbd5e1;position:relative;overflow:hidden}
.gx-footer:before{content:"";position:absolute;inset:0 0 auto 0;height:280px;background:radial-gradient(640px 230px at 16% 0,rgba(37,99,235,.24),transparent 70%),radial-gradient(540px 220px at 88% 4%,rgba(16,185,129,.18),transparent 72%);pointer-events:none}
.gx-footer a{color:#cbd5e1;text-decoration:none}
.gx-footer a:hover{color:#fff}
.gx-footer-cta{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding:46px 0 34px;border-bottom:1px solid rgba(148,163,184,.18)}
.gx-footer-kicker{display:inline-flex;align-items:center;gap:8px;color:#93c5fd;font-size:13px;font-weight:950;margin-bottom:10px}
.gx-footer-kicker:before{content:"";width:7px;height:7px;border-radius:99px;background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.16)}
.gx-footer-cta h2{font-size:clamp(24px,3vw,38px);line-height:1.2;margin:0;max-width:820px;letter-spacing:-.03em;color:#fff;text-wrap:balance}
.gx-footer-cta p{max-width:820px;margin:12px 0 0;color:#a8b6c7;font-size:15px;line-height:1.78}
.gx-footer-cta__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.gx-footer .gx-btn--primary{background:#fff;color:#0f172a;border-color:#fff;box-shadow:0 14px 32px rgba(0,0,0,.22)}
.gx-footer .gx-btn--soft{background:rgba(37,99,235,.14);color:#dbeafe;border-color:rgba(147,197,253,.42)}
.gx-footer__grid{position:relative;display:grid;grid-template-columns:minmax(280px,1.45fr) repeat(4,minmax(140px,.75fr));gap:26px;padding:38px 0 28px}
.gx-footer__brand{display:grid;grid-template-columns:48px 1fr;gap:14px;min-width:0}
.gx-footer__logo{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#fff,#eaf2ff);border:1px solid rgba(226,232,240,.94);box-shadow:0 18px 42px rgba(0,0,0,.18);overflow:hidden}
.gx-footer__logo img{width:31px;height:31px;object-fit:contain}
.gx-footer__brand strong{display:block;color:#fff;font-size:16px;letter-spacing:.05em;line-height:1.2}
.gx-footer__brand p{margin:9px 0 0;color:#94a3b8;font-size:14px;line-height:1.75;max-width:430px}
.gx-footer-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.gx-footer-tags span{display:inline-flex;border:1px solid rgba(147,197,253,.32);background:rgba(37,99,235,.12);color:#dbeafe;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850}
.gx-footer-col{display:grid;align-content:start;gap:8px;min-width:0}
.gx-footer-col h3{color:#fff;font-size:14px;line-height:1.3;margin:0 0 7px;letter-spacing:.02em}
.gx-footer-col a{display:inline-flex;align-items:center;width:max-content;max-width:100%;font-size:14px;line-height:1.4;color:#cbd5e1;border-radius:10px;padding:3px 0;transition:color .18s ease,transform .18s ease}
.gx-footer-col a:hover{color:#fff;transform:translateX(2px)}
.gx-footer__trust{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border-top:1px solid rgba(148,163,184,.18);padding:22px 0;color:#94a3b8;font-size:14px;line-height:1.72}
.gx-footer__trust strong{color:#fff;white-space:nowrap}
.gx-footer__bottom{position:relative;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(148,163,184,.18);padding:18px 0 28px;color:#94a3b8;font-size:13.5px;line-height:1.6}

@media(max-width:1240px){
  .gx-container,.gx-header__inner,.gx-footer__grid,.gx-footer__bottom,.gx-footer__trust,.gx-footer-cta{width:min(var(--gx-max),calc(100% - 32px))}
  .gx-brand{min-width:206px}
  .gx-nav--rich>a{padding:0 9px;font-size:12.5px}
  .gx-more-trigger{padding:0 11px}
  .gx-header-query{display:none!important}
  .gx-footer__grid{grid-template-columns:minmax(260px,1.3fr) repeat(2,minmax(160px,1fr));gap:24px}
  .gx-footer__brand{grid-column:1/-1}
}
@media(max-width:1100px){
  .gx-more-panel{width:min(820px,calc(100vw - 36px))}
  .gx-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .gx-nav{display:none}
  .gx-menu-btn{display:block;margin-left:auto}
  .gx-header__actions .gx-btn--primary{display:none}
  .gx-header__inner{height:66px}
  .gx-mobile-panel{top:68px}
  .gx-more-panel{display:none}
  .gx-footer-cta{grid-template-columns:1fr;align-items:start;padding-top:36px}
  .gx-footer-cta__actions{justify-content:flex-start}
  .gx-footer__grid{grid-template-columns:1fr 1fr}
  .gx-footer__brand{grid-template-columns:44px 1fr}
}
@media(max-width:640px){
  .gx-container,.gx-narrow,.gx-header__inner,.gx-footer__grid,.gx-footer__bottom,.gx-footer__trust,.gx-footer-cta{width:calc(100% - 28px)}
  .gx-header__inner{height:64px}
  .gx-brand{min-width:0}
  .gx-brand__mark{width:40px;height:40px;border-radius:13px}
  .gx-brand__text em{display:none}
  .gx-header__actions .gx-lang{min-width:102px;max-width:112px;height:36px;font-size:12px}
  .gx-mobile-panel{left:10px;right:10px;top:66px;border-radius:20px}
  .gx-mobile-actions .gx-btn{width:100%}
  .gx-btn{width:auto}
  .gx-footer-cta{padding:32px 0 26px;gap:20px}
  .gx-footer-cta h2{font-size:25px;line-height:1.22}
  .gx-footer-cta p{font-size:14.5px;line-height:1.72}
  .gx-footer-cta__actions .gx-btn{width:100%}
  .gx-footer__grid{grid-template-columns:1fr;padding:30px 0 24px;gap:22px}
  .gx-footer__trust{grid-template-columns:1fr;gap:6px}
  .gx-footer__trust strong{white-space:normal}
  .gx-footer__bottom{display:grid;gap:8px;padding-bottom:24px}
}
@media(max-width:430px){
  .gx-container,.gx-narrow,.gx-header__inner,.gx-footer__grid,.gx-footer__bottom,.gx-footer__trust,.gx-footer-cta{width:calc(100% - 22px)}
  .gx-brand__text strong{font-size:13px;letter-spacing:.04em}
  .gx-lang{display:none}
  .gx-footer__brand{grid-template-columns:1fr}
  .gx-footer__logo{width:46px;height:46px}
}
