/* =========================================================================
   GovServe portal — full stylesheet
   Design tokens lifted verbatim from the original portal.
   Shared by the standalone mockup and the Power Pages code site.
   ========================================================================= */

:root {
  --gp-primary:#003F7F; --gp-primary-hover:#0053A6; --gp-primary-light:#0067B8;
  --gp-accent:#008DA8; --gp-accent2:#5558AF; --gp-teal:#00A3A3;
  --gp-amber:#F59E0B; --gp-green:#107C10; --gp-red:#A4262C;

  --gp-bg:#F5F7FA; --gp-surface:#FFFFFF; --gp-surface2:#EEF2F7;
  --gp-border:rgba(0,63,127,0.12); --gp-shadow:0 4px 24px rgba(0,63,127,0.10);

  --gp-text:#0B1E3D; --gp-text2:#3D5A80; --gp-text3:#6B7B99; --gp-text-inv:#FFFFFF;

  --gp-glass-bg:rgba(255,255,255,0.82); --gp-glass-border:rgba(255,255,255,0.55);
  --gp-glass-shadow:0 8px 32px rgba(0,63,127,0.14); --gp-blur:blur(18px);

  --gp-nav-h:68px;
  --gp-ease:cubic-bezier(0.22,1,0.36,1);
  --gp-ease-spring:cubic-bezier(0.34,1.56,0.64,1);

  --gp-radius-sm:6px; --gp-radius:12px; --gp-radius-lg:18px; --gp-radius-xl:24px;

  --gp-font:'Segoe UI',-apple-system,BlinkMacSystemFont,'Inter','Helvetica Neue',Arial,sans-serif;
  --gp-font-heading:'Segoe UI Semibold','Segoe UI',-apple-system,BlinkMacSystemFont,'Inter','Helvetica Neue',Arial,sans-serif;
}

[data-theme="dark"], .gp-dark {
  --gp-bg:#060F20; --gp-surface:#0B1832; --gp-surface2:#101E3C;
  --gp-border:rgba(0,163,163,0.18); --gp-shadow:0 4px 24px rgba(0,0,0,0.40);
  --gp-text:#E8EEFF; --gp-text2:#A8BADB; --gp-text3:#6B80A8;
  --gp-glass-bg:rgba(6,15,32,0.78); --gp-glass-border:rgba(0,163,163,0.20);
  --gp-glass-shadow:0 8px 32px rgba(0,0,0,0.50);
}

*,*::before,*::after{box-sizing:border-box}
html{scrollbar-gutter:stable}
a,a:link,a:visited,a:hover,a:focus,a:active,
button,button:hover,button:focus,button:active,
[role="button"],[role="button"]:hover,[role="button"]:focus{text-decoration:none!important}

body{
  background:var(--gp-bg); color:var(--gp-text); font-family:var(--gp-font);
  margin:0; padding-top:var(--gp-nav-h);
  transition:background .35s var(--gp-ease), color .35s var(--gp-ease);
}
/* color:inherit is required — the Power Pages Bootstrap bundle sets a hard
   h1..h6{color:#232222}, which beats inheritance from the section container
   and makes headings unreadable on the dark hero, CTA and in dark mode. */
h1,h2,h3,h4,h5,h6{font-family:var(--gp-font-heading);margin:0;color:inherit}
button,input,textarea,select{font-family:inherit}

.gp-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}
.gp-skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--gp-primary);color:#fff;padding:10px 18px;border-radius:0 0 var(--gp-radius-sm) 0}
.gp-skip:focus{left:0}
.gp-container{max-width:1240px;margin:0 auto;padding:0 24px}
:focus-visible{outline:2px solid var(--gp-accent);outline-offset:2px;border-radius:4px}

/* ============================================================ BLOB */
.gp-blob{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;will-change:transform;transition:opacity .5s var(--gp-ease);opacity:0;z-index:0;mix-blend-mode:normal}
[data-blob-off] .gp-blob{opacity:0!important}
[data-theme="dark"] .gp-blob{background:radial-gradient(circle at center,rgba(0,210,220,.32) 0%,rgba(0,140,210,.10) 38%,transparent 70%)!important}

/* ============================================================ HEADER */
.gp-header{
  position:fixed;top:0;left:0;right:0;height:var(--gp-nav-h);z-index:120;
  background:var(--gp-glass-bg);backdrop-filter:var(--gp-blur);-webkit-backdrop-filter:var(--gp-blur);
  border-bottom:1px solid var(--gp-border);
}
.gp-panel-wrap{position:relative;flex:0 0 auto}
[data-theme="dark"] .gp-header{border-bottom-color:rgba(255,255,255,.08)}
.gp-header-inner{max-width:1400px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;gap:18px}

.gp-logo{display:flex;align-items:center;gap:12px;flex:0 0 auto;color:inherit;min-width:0}
.gp-logo-ms-grid{display:grid;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);gap:2px}
.gp-logo-ms-grid span:nth-child(1){background:#F25022}
.gp-logo-ms-grid span:nth-child(2){background:#7FBA00}
.gp-logo-ms-grid span:nth-child(3){background:#00A4EF}
.gp-logo-ms-grid span:nth-child(4){background:#FFB900}
.gp-logo-ms-word{font-size:15px;color:var(--gp-text);letter-spacing:-.2px}
.gp-logo-divider{width:1px;height:24px;background:var(--gp-border)}
.gp-logo-wordmark{display:flex;align-items:center;gap:10px}
.gp-logo-wordmark svg{height:26px;width:auto}
.gp-logo-tagline{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--gp-text3);white-space:nowrap}
[data-theme="dark"] .wm-gov{fill:#E8EEFF}
[data-theme="dark"] .wm-serve{fill:#00C8C8}
[data-theme="dark"] .wm-icon-bg{fill:#00A3A3}
[data-theme="dark"] .gp-logo-tagline{color:rgba(168,186,219,.70)}

.gp-nav{display:flex;align-items:center;gap:2px;margin-left:4px;flex:1 1 auto;min-width:0}
.gp-nav-item{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:6px;
  padding:9px 12px;border-radius:var(--gp-radius-sm);border:0;background:transparent;
  font-size:13.5px;font-weight:600;color:var(--gp-text2);cursor:pointer;white-space:nowrap;flex:0 0 auto;
  transition:color .18s var(--gp-ease), background .18s var(--gp-ease);
}
.gp-nav-item:hover,.gp-nav-item.active,.gp-nav-item.mega-open{color:var(--gp-primary-light);background:rgba(0,103,184,.08)}
[data-theme="dark"] .gp-nav-item:hover,
[data-theme="dark"] .gp-nav-item.active,
[data-theme="dark"] .gp-nav-item.mega-open{color:var(--gp-teal)!important;background:rgba(0,163,163,.10)}
.gp-nav-item > *:not(.gp-blob){position:relative;z-index:1}
.gp-chevron{width:14px;height:14px;transition:transform .22s var(--gp-ease)}
.gp-nav-item.mega-open .gp-chevron{transform:rotate(180deg)}

.gp-header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.gp-icon-btn{
  position:relative;width:36px;height:36px;border-radius:50%;border:1px solid var(--gp-border);
  background:var(--gp-surface);color:var(--gp-text2);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .18s var(--gp-ease),color .18s var(--gp-ease),border-color .18s var(--gp-ease);
}
.gp-icon-btn:hover{color:var(--gp-primary-light);border-color:var(--gp-primary-light)}
.gp-icon-btn svg{width:18px;height:18px}
.gp-notif-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--gp-red);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}

.gp-signin{
  display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--gp-radius-sm);
  background:var(--gp-primary-light);color:#fff!important;font-size:14px;font-weight:600;
  transition:background .18s var(--gp-ease);white-space:nowrap;
}
.gp-signin:hover{background:var(--gp-primary-hover)}
.gp-signin svg{width:16px;height:16px}

/* ============================================================ MEGA MENU */
.gp-mega-overlay{position:fixed;inset:var(--gp-nav-h) 0 0 0;background:rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .25s var(--gp-ease);z-index:100}
.gp-mega-overlay.visible{opacity:1;pointer-events:auto}

.gp-mega-panel{
  position:fixed;top:var(--gp-nav-h);left:0;right:0;z-index:110;
  background:rgba(255,255,255,.94);backdrop-filter:var(--gp-blur);-webkit-backdrop-filter:var(--gp-blur);
  border-bottom:1px solid var(--gp-border);box-shadow:0 20px 60px rgba(0,63,127,.12);
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .26s var(--gp-ease),transform .26s var(--gp-ease),visibility .26s;
  max-height:calc(100vh - var(--gp-nav-h));overflow-y:auto;
}
.gp-mega-panel.open{opacity:1;visibility:visible;transform:translateY(0)}
[data-theme="dark"] .gp-mega-panel{background:rgba(8,18,42,.94);border-bottom:1px solid rgba(255,255,255,.10);box-shadow:0 20px 60px rgba(0,0,0,.50)}

.gp-mega-inner{max-width:1240px;margin:0 auto;padding:28px 24px 22px}
.gp-mega-title{font-size:11px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--gp-text3);margin-bottom:18px}
.gp-mega-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}

.gp-mega-tile{
  position:relative;overflow:hidden;display:flex;gap:13px;padding:15px;
  border-radius:var(--gp-radius);background:var(--gp-surface);
  border:1px solid var(--gp-border);box-shadow:0 1px 3px rgba(0,63,127,.05);
  transition:transform .22s var(--gp-ease),box-shadow .22s var(--gp-ease),border-color .22s var(--gp-ease);
  color:inherit;
}
.gp-mega-tile:hover{transform:translateY(-2px);box-shadow:var(--gp-shadow);border-color:var(--tc,var(--gp-primary-light))}
[data-theme="dark"] .gp-mega-tile{background:rgba(11,24,50,.55);border:1px solid rgba(255,255,255,.10);box-shadow:0 4px 16px rgba(0,0,0,.30)}

.gp-tile-icon{
  flex:0 0 auto;width:40px;height:40px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--tcl,rgba(0,103,184,.10));color:var(--tc,var(--gp-primary-light));
  position:relative;z-index:1;
}
.gp-tile-icon svg{width:22px;height:22px}
[data-theme="dark"] .gp-tile-icon{background:rgba(255,255,255,.08)}

.gp-tile-info{flex:1 1 auto;min-width:0;position:relative;z-index:1}
.gp-tile-name{font-size:14px;font-weight:600;color:var(--gp-text);margin-bottom:3px}
.gp-tile-desc{font-size:12px;color:var(--gp-text3);line-height:1.45;margin-bottom:8px}
.gp-tile-count{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--tcl,var(--gp-surface2));color:var(--tc,var(--gp-text2))}
[data-theme="dark"] .gp-tile-count{background:rgba(255,255,255,.08)}
[data-theme="dark"] .gp-mega-tile:hover .gp-tile-name{color:#E8EEFF}
[data-theme="dark"] .gp-mega-tile:hover .gp-tile-desc{color:rgba(232,238,255,.72)}
[data-theme="dark"] .gp-mega-tile:hover .gp-tile-count{color:rgba(232,238,255,.90);background:rgba(255,255,255,.10)}

.gp-mega-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--gp-border)}
.gp-mega-footer-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gp-text3)}
.gp-quick-link{font-size:13px;font-weight:600;padding:6px 13px;border-radius:99px;background:var(--gp-surface2);color:var(--gp-primary-light)!important;transition:background .18s var(--gp-ease)}
.gp-quick-link:hover{background:rgba(0,103,184,.14)}
[data-theme="dark"] .gp-quick-link{color:var(--gp-teal)!important;background:rgba(0,163,163,.10)}

.gp-mega-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.gp-mega-app-item{display:flex;gap:13px;align-items:center;padding:15px;border-radius:var(--gp-radius);background:var(--gp-surface);border:1px solid var(--gp-border);transition:transform .22s var(--gp-ease),box-shadow .22s var(--gp-ease);color:inherit}
.gp-mega-app-item:hover{transform:translateY(-2px);box-shadow:var(--gp-shadow)}
[data-theme="dark"] .gp-mega-app-item{background:rgba(11,24,50,.55);border-color:rgba(255,255,255,.10)}
.gp-mega-app-icon{flex:0 0 auto;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(0,103,184,.10);color:var(--gp-primary-light)}
.gp-mega-app-icon svg{width:20px;height:20px}
[data-theme="dark"] .gp-mega-app-icon{background:rgba(255,255,255,.08)}
[data-theme="dark"] .gp-mega-app-icon svg{color:#9FC0F0}
.gp-mega-app-name{font-size:14px;font-weight:600;color:var(--gp-text)}
.gp-mega-app-sub{font-size:12px;color:var(--gp-text3);margin-top:2px}

/* ============================================================ PANELS */
.gp-panel{
  position:absolute;top:calc(100% + 10px);right:0;width:340px;z-index:130;
  background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:var(--gp-radius-lg);
  box-shadow:0 16px 56px rgba(0,63,127,.18);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);
  transition:opacity .22s var(--gp-ease),transform .22s var(--gp-ease),visibility .22s;
}
.gp-panel.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
[data-theme="dark"] .gp-panel{background:#0f1f3d;border-color:rgba(255,255,255,.10);box-shadow:0 16px 56px rgba(0,0,0,.55),0 2px 12px rgba(0,0,0,.25)}
.gp-panel-wrap{position:relative}
.gp-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--gp-border)}
.gp-panel-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.gp-panel-body{padding:14px 16px;max-height:60vh;overflow-y:auto}
.gp-panel-foot{padding:11px 16px;border-top:1px solid var(--gp-border);text-align:center}

.gp-setting-group{margin-bottom:18px}
.gp-setting-group:last-child{margin-bottom:0}
.gp-setting-label{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gp-text3);margin-bottom:10px}
.gp-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.gp-setting-row:last-child{margin-bottom:0}
.gp-setting-name{font-size:13.5px;color:var(--gp-text)}
.gp-setting-val{font-size:12px;color:var(--gp-text3);font-variant-numeric:tabular-nums}

.gp-switch{position:relative;width:42px;height:23px;flex:0 0 auto;border:0;padding:0;border-radius:99px;background:var(--gp-border);cursor:pointer;transition:background .22s var(--gp-ease)}
.gp-switch::after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .22s var(--gp-ease-spring)}
.gp-switch[aria-checked="true"]{background:var(--gp-primary-light)}
.gp-switch[aria-checked="true"]::after{transform:translateX(19px)}

.gp-slider{width:100%;accent-color:var(--gp-primary-light)}
.gp-btn-reset{width:100%;padding:8px;border-radius:var(--gp-radius-sm);border:1px solid var(--gp-border);background:transparent;color:var(--gp-text2);font-size:13px;cursor:pointer}
.gp-btn-reset:hover{background:var(--gp-surface2)}

.gp-notif-tabs{display:flex;gap:6px;padding:0 16px 12px}
.gp-notif-tab{padding:5px 12px;border-radius:99px;border:0;background:var(--gp-surface2);color:var(--gp-text2);font-size:12px;font-weight:600;cursor:pointer}
.gp-notif-tab.active{background:var(--gp-primary-light);color:#fff}
.gp-notif-item{display:flex;gap:11px;padding:12px;border-radius:var(--gp-radius-sm);cursor:pointer;transition:background .18s}
.gp-notif-item:hover{background:var(--gp-surface2)}
.gp-notif-item.unread{background:rgba(0,163,163,.04)}
[data-theme="dark"] .gp-notif-item.unread{background:rgba(0,163,163,.07)}
[data-theme="dark"] .gp-notif-item:hover{background:rgba(255,255,255,.04)}
.gp-notif-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--gp-teal);margin-top:6px}
.gp-notif-title{font-size:13px;font-weight:600;margin-bottom:2px}
.gp-notif-sub{font-size:12px;color:var(--gp-text3);line-height:1.45}
.gp-notif-time{font-size:11px;color:var(--gp-text3);margin-top:4px}
.gp-empty{padding:28px 12px;text-align:center;color:var(--gp-text3);font-size:13px}

/* ============================================================ HERO */
.gp-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0B3C7A 0%,#0F5E96 42%,#0A7C8C 100%);color:#fff;padding:78px 0 132px}
[data-theme="dark"] .gp-hero{background:linear-gradient(135deg,#071B3A 0%,#0A2F5C 45%,#064E5C 100%)}
.gp-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.gp-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}

.gp-badge-live{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:99px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.20);font-size:12.5px;font-weight:600;margin-bottom:26px}
.gp-badge-live .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:gp-pulse 2.2s infinite}
@keyframes gp-pulse{70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}

.gp-hero h1{font-size:clamp(38px,5vw,58px);line-height:1.06;letter-spacing:-1.2px;margin-bottom:18px;color:#fff}
.gp-hero h1 .accent{display:block;color:#7FE3E3}
.gp-hero p.lead{font-size:17px;line-height:1.62;color:rgba(255,255,255,.88);max-width:520px;margin-bottom:30px}

.gp-search{display:flex;gap:0;max-width:520px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:var(--gp-radius);padding:5px;backdrop-filter:blur(8px);margin-bottom:16px}
.gp-search input{flex:1 1 auto;border:0;background:transparent;color:#fff;padding:12px 15px;font-size:15px;outline:none}
.gp-search input::placeholder{color:rgba(255,255,255,.62)}
.gp-search button{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border:0;border-radius:var(--gp-radius-sm);background:var(--gp-teal);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .18s}
.gp-search button:hover{background:#00b8b8}

.gp-navigator{
  display:flex;align-items:center;gap:14px;width:100%;max-width:520px;
  padding:14px 18px;border-radius:var(--gp-radius);border:2px solid #fff;
  background:#fff;cursor:pointer;text-align:left;
  box-shadow:0 10px 34px rgba(0,0,0,.20);
  transition:transform .22s var(--gp-ease),box-shadow .22s var(--gp-ease);
}
.gp-navigator:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(0,0,0,.26)}
.gp-navigator-ico{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8C48FF,#F2598A);color:#fff}
.gp-navigator-ico svg{width:19px;height:19px}
.gp-navigator-txt{flex:1 1 auto;display:flex;flex-direction:column}
.gp-navigator-main{font-size:15px;font-weight:700;color:#5558AF;line-height:1.25}
.gp-navigator-sub{font-size:12.5px;color:#6B7B99;margin-top:1px}
.gp-navigator-arrow{color:#5558AF;flex:0 0 auto}

.gp-popular{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px}
.gp-popular-label{font-size:12.5px;color:rgba(255,255,255,.72);font-weight:600}
.gp-chip{padding:6px 14px;border-radius:99px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff!important;font-size:12.5px;font-weight:600;transition:background .18s}
.gp-chip:hover{background:rgba(255,255,255,.24)}

/* hero mock card */
.gp-mock{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:var(--gp-radius-lg);padding:18px;backdrop-filter:blur(10px)}
.gp-mock-bar{display:flex;align-items:center;gap:7px;margin-bottom:16px}
.gp-mock-bar .d{width:11px;height:11px;border-radius:50%}
.gp-mock-title{flex:1 1 auto;text-align:center;font-size:13px;font-weight:600;color:rgba(255,255,255,.92)}
.gp-mock-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--gp-radius-sm);background:rgba(255,255,255,.09);margin-bottom:9px}
.gp-mock-row:last-child{margin-bottom:0}
.gp-mock-ico{flex:0 0 auto;width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:17px}
.gp-mock-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.gp-mock-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-mock-sub{font-size:11.5px;color:rgba(255,255,255,.66);margin-top:1px}
.gp-mock-badge{flex:0 0 auto;font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:99px}
.gp-mb-review{background:rgba(245,158,11,.24);color:#FCD34D}
.gp-mb-active{background:rgba(0,163,163,.24);color:#5EEAD4}
.gp-mb-new{background:rgba(74,222,128,.22);color:#86EFAC}
.gp-mb-approved{background:rgba(16,124,16,.26);color:#86EFAC}

/* wave */
.gp-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:1;line-height:0;pointer-events:none}
.gp-wave svg{width:100%;height:auto;display:block}

/* ============================================================ SECTIONS */
.gp-section{padding:74px 0}
.gp-section.alt{background:var(--gp-surface2)}
.gp-eyebrow{font-size:12px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--gp-accent);margin-bottom:10px}
.gp-h2{font-size:clamp(26px,3vw,36px);letter-spacing:-.6px;margin-bottom:12px;color:var(--gp-text)}
.gp-sub{font-size:15.5px;color:var(--gp-text2);line-height:1.62;max-width:640px}
.gp-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.gp-link-more{font-size:14px;font-weight:600;color:var(--gp-primary-light)!important;white-space:nowrap}

.gp-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.gp-cat-card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  padding:24px;border-radius:var(--gp-radius-lg);background:var(--gp-surface);
  border:1px solid var(--gp-border);box-shadow:0 1px 3px rgba(0,63,127,.05);color:inherit;
  transition:transform .24s var(--gp-ease),box-shadow .24s var(--gp-ease),border-color .24s var(--gp-ease);
}
.gp-cat-card:hover{transform:translateY(-4px);box-shadow:var(--gp-shadow);border-color:var(--tc)}
.gp-cat-ico{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--tcl);color:var(--tc);margin-bottom:16px;position:relative;z-index:1;flex:0 0 auto}
.gp-cat-ico svg{width:26px;height:26px}
.gp-cat-name{display:block;font-size:17px;font-weight:600;margin-bottom:7px;position:relative;z-index:1}
.gp-cat-desc{display:block;font-size:13.5px;color:var(--gp-text3);line-height:1.55;margin-bottom:16px;flex:1 1 auto;position:relative;z-index:1}
.gp-cat-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;position:relative;z-index:1}
.gp-cat-tag{font-size:11.5px;padding:4px 10px;border-radius:99px;background:var(--gp-surface2);color:var(--gp-text2)}
[data-theme="dark"] .gp-cat-tag{background:rgba(255,255,255,.07)}
.gp-cat-foot{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--gp-border);position:relative;z-index:1}
.gp-cat-count{font-size:12.5px;font-weight:600;color:var(--tc)}
.gp-cat-arrow{color:var(--tc);transition:transform .22s var(--gp-ease);display:inline-flex}
.gp-cat-card:hover .gp-cat-arrow{transform:translateX(4px)}

.gp-tile-icon{
  flex:0 0 auto;width:40px;height:40px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--tcl,rgba(0,103,184,.10));color:var(--tc,var(--gp-primary-light));
  position:relative;z-index:1;
}
.gp-tile-name{display:block;font-size:14px;font-weight:600;color:var(--gp-text);margin-bottom:3px}
.gp-tile-desc{display:block;font-size:12px;color:var(--gp-text3);line-height:1.45;margin-bottom:8px}

.gp-common-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}
.gp-common{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--gp-radius);background:var(--gp-surface);border:1px solid var(--gp-border);color:inherit;transition:transform .22s var(--gp-ease),box-shadow .22s var(--gp-ease)}
.gp-common:hover{transform:translateY(-3px);box-shadow:var(--gp-shadow)}
.gp-common-emoji{font-size:26px;flex:0 0 auto}
.gp-common > span:last-child{display:flex;flex-direction:column;min-width:0}
.gp-common-name{font-size:14.5px;font-weight:600;margin-bottom:5px}
.gp-common-meta{display:flex;gap:12px;font-size:12px;color:var(--gp-text3)}

.gp-mega-app-item > span:last-child{display:flex;flex-direction:column;min-width:0}
.gp-cat-card > span,.gp-mega-tile > span{display:block}
.gp-tile-info{display:flex;flex-direction:column}

.gp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px}
.gp-step{text-align:center}
.gp-step-ico{position:relative;width:66px;height:66px;margin:0 auto 16px;border-radius:18px;background:var(--gp-surface);border:1px solid var(--gp-border);display:flex;align-items:center;justify-content:center;font-size:27px;box-shadow:var(--gp-shadow)}
.gp-step-num{position:absolute;top:-7px;right:-7px;width:25px;height:25px;border-radius:50%;background:var(--gp-primary-light);color:#fff;font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.gp-step-name{font-size:16px;font-weight:600;margin-bottom:7px}
.gp-step-desc{font-size:13.5px;color:var(--gp-text3);line-height:1.58;max-width:260px;margin:0 auto}

.gp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.gp-stat{text-align:center;padding:26px 16px;border-radius:var(--gp-radius-lg);background:var(--gp-surface);border:1px solid var(--gp-border)}
.gp-stat-ico{font-size:25px;margin-bottom:10px}
.gp-stat-val{font-size:29px;font-weight:700;color:var(--gp-primary-light);letter-spacing:-.8px;margin-bottom:5px}
.gp-stat-lbl{font-size:13px;color:var(--gp-text3);line-height:1.5}

.gp-notice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.gp-notice{display:block;padding:22px;border-radius:var(--gp-radius-lg);background:var(--gp-surface);border:1px solid var(--gp-border);color:inherit;transition:transform .22s var(--gp-ease),box-shadow .22s var(--gp-ease)}
.gp-notice:hover{transform:translateY(-3px);box-shadow:var(--gp-shadow)}
.gp-notice-tag{display:inline-block;font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:99px;background:var(--gp-surface2);color:var(--gp-text2);margin-bottom:12px}
.gp-notice-title{font-size:15.5px;font-weight:600;line-height:1.4;margin-bottom:8px}
.gp-notice-body{font-size:13.5px;color:var(--gp-text3);line-height:1.58;margin-bottom:14px}
.gp-notice-foot{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--gp-text3)}
.gp-notice-more{color:var(--gp-primary-light);font-weight:600}

.gp-cta{background:linear-gradient(135deg,var(--gp-primary) 0%,var(--gp-accent) 100%);color:#fff;border-radius:var(--gp-radius-xl);padding:52px;display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap}
.gp-cta h2{font-size:clamp(24px,2.6vw,32px);margin-bottom:10px;color:#fff}
.gp-cta p{color:rgba(255,255,255,.88);font-size:15px;line-height:1.6;max-width:520px}
.gp-cta-actions{display:flex;gap:12px;flex-wrap:wrap}
.gp-btn-white{padding:13px 26px;border-radius:var(--gp-radius-sm);background:#fff;color:var(--gp-primary)!important;font-size:14.5px;font-weight:600;transition:transform .18s}
.gp-btn-white:hover{transform:translateY(-2px)}
.gp-btn-ghost{padding:13px 26px;border-radius:var(--gp-radius-sm);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);color:#fff!important;font-size:14.5px;font-weight:600;transition:background .18s}
.gp-btn-ghost:hover{background:rgba(255,255,255,.24)}

/* ============================================================ FOOTER */
.gp-footer{background:var(--gp-surface);border-top:1px solid var(--gp-border);padding:28px 0}
.gp-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.gp-footer-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--gp-text3)}
.gp-footer-links a{color:var(--gp-text2)!important}
.gp-footer-links a:hover{color:var(--gp-primary-light)!important}
.gp-wcag{font-size:12px;padding:5px 12px;border-radius:99px;background:var(--gp-surface2);color:var(--gp-text2)}

/* ============================================================ RESPONSIVE */
@media (max-width:1080px){
  .gp-hero-grid{grid-template-columns:1fr;gap:40px}
  .gp-mock{max-width:520px}
}
@media (max-width:820px){
  .gp-nav{display:none}
  .gp-logo-tagline{display:none}
  .gp-hero{padding:52px 0 104px}
  .gp-section{padding:52px 0}
  .gp-cta{padding:34px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .gp-blob{display:none!important}
}
