:root{
  --gp-bg:#ffffff;
  --gp-surface:#fbfbfc;
  --gp-text:#101114;
  --gp-muted:#535862;
  --gp-border:#e3e6ea;
  --gp-accent:#2d3340;
  --gp-radius:14px;
  --gp-shadow:0 10px 30px rgba(16,17,20,.08);
  --gp-max:1120px;
  --gp-sidebar:280px;
  --gp-font:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Noto Sans","Liberation Sans",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--gp-font);
  color:var(--gp-text);
  background:var(--gp-bg);
  line-height:1.55;
}

a{color:inherit;text-decoration:underline;text-decoration-color:rgba(16,17,20,.25);text-underline-offset:3px}
a:hover{text-decoration-color:rgba(16,17,20,.6)}

.gp-skip-link{
  position:absolute;left:-9999px;top:10px;
  padding:10px 12px;background:var(--gp-text);color:#fff;border-radius:10px;
}
.gp-skip-link:focus{left:10px;z-index:9999}

/* Layout */
.gp-topbar{display:none;position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--gp-border);z-index:60}
.gp-topbar__inner{max-width:var(--gp-max);margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}

.gp-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.gp-brand__logo{display:block}
.gp-brand__name{font-weight:700;letter-spacing:.2px}
.gp-brand__tagline{display:block;font-size:12px;color:var(--gp-muted)}
.gp-brand__stack{display:flex;flex-direction:column;line-height:1.15}
.gp-brand--sidebar .gp-brand__name{font-size:18px}

.gp-burger{border:1px solid var(--gp-border);background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}
.gp-burger__lines{display:block;width:18px;height:12px;position:relative}
.gp-burger__lines:before,.gp-burger__lines:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--gp-text);border-radius:2px}
.gp-burger__lines:before{top:0}
.gp-burger__lines:after{bottom:0}

.gp-sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--gp-sidebar);
  border-right:1px solid var(--gp-border);
  background:linear-gradient(180deg,#fff, #fbfbfc);
  padding:18px 16px;
  overflow:auto;
  z-index:40;
}
.gp-sidebar__brand{margin-bottom:16px}
.gp-sidebar__note{margin-top:16px;padding-top:16px;border-top:1px solid var(--gp-border)}

.gp-nav__group{margin:14px 0}
.gp-nav__title{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--gp-muted);margin:0 0 8px}
.gp-nav__link{display:block;padding:8px 10px;border-radius:12px;text-decoration:none}
.gp-nav__link:hover{background:rgba(16,17,20,.04)}
.gp-nav__link.is-active{background:rgba(16,17,20,.06);font-weight:600}

.gp-main{
  margin-left:var(--gp-sidebar);
  min-height:100vh;
}
.gp-container{max-width:var(--gp-max);margin:0 auto;padding:28px 24px}

.gp-hero{background:var(--gp-surface);border:1px solid var(--gp-border);border-radius:var(--gp-radius);box-shadow:var(--gp-shadow)}
.gp-hero__inner{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;padding:22px}
.gp-hero__title{margin:0 0 10px;font-size:30px;letter-spacing:-.02em}
.gp-hero__desc{margin:0;color:var(--gp-muted)}

.gp-hero__controls{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.gp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:10px 14px;border:1px solid var(--gp-border);background:#fff;cursor:pointer;text-decoration:none}
.gp-btn:hover{border-color:#cfd6dd}
.gp-btn--primary{background:var(--gp-text);color:#fff;border-color:var(--gp-text);text-decoration:none}
.gp-btn--primary:hover{opacity:.94}
.gp-btn--ghost{background:transparent}

.gp-hero__dots{display:flex;gap:8px}
.gp-dot{width:10px;height:10px;border-radius:999px;border:1px solid var(--gp-border);background:#fff;cursor:pointer}
.gp-dot[aria-current="true"]{background:var(--gp-text);border-color:var(--gp-text)}

.gp-hero__side{
  border-left:1px solid var(--gp-border);
  padding-left:18px;
}
.gp-kpis{display:grid;gap:10px}
.gp-kpi{padding:12px;border:1px solid var(--gp-border);border-radius:var(--gp-radius);background:#fff}
.gp-kpi__t{font-weight:650}
.gp-kpi__p{margin:6px 0 0;color:var(--gp-muted);font-size:14px}

.gp-section{margin-top:26px}
.gp-section__title{margin:0 0 12px;font-size:22px;letter-spacing:-.01em}
.gp-muted{color:var(--gp-muted)}

/* Homepage sidebar-content */
.gp-home-grid{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start}
.gp-localnav{
  position:sticky;top:88px;
  border:1px solid var(--gp-border);
  border-radius:var(--gp-radius);
  background:#fff;
  padding:14px;
}
.gp-localnav__title{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--gp-muted);margin:0 0 10px}
.gp-localnav a{display:block;padding:8px 10px;border-radius:12px;text-decoration:none}
.gp-localnav a:hover{background:rgba(16,17,20,.04)}

.gp-card{
  border:1px solid var(--gp-border);
  border-radius:var(--gp-radius);
  background:#fff;
  box-shadow:var(--gp-shadow);
}
.gp-card__pad{padding:18px}

.gp-platforms{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));gap:16px}
.gp-platform{overflow:hidden}
.gp-platform__logo{display:block;margin:0 auto 10px;max-width:190px;width:100%;height:auto}
.gp-compliance{margin:0 auto 12px;max-width:280px;text-align:center;background:#fafafb;border:1px solid var(--gp-border);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--gp-muted)}
.gp-platform__title{margin:0 0 10px;font-size:18px}
.gp-platform__list{margin:10px 0 0;padding-left:18px;color:var(--gp-muted)}
.gp-note{border-left:3px solid var(--gp-border);padding:10px 12px;background:#fafafb;border-radius:12px;color:var(--gp-muted)}

.gp-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gp-hub a{display:block;padding:14px;border:1px solid var(--gp-border);border-radius:var(--gp-radius);background:#fff;text-decoration:none}
.gp-hub a:hover{border-color:#cfd6dd}
.gp-hub__t{font-weight:650;margin:0 0 4px}
.gp-hub__p{margin:0;color:var(--gp-muted);font-size:14px}

/* Footer */
.gp-footer{margin-top:34px;border-top:1px solid var(--gp-border);background:linear-gradient(180deg,#fff,#fbfbfc)}
.gp-footer__grid{max-width:var(--gp-max);margin:0 auto;padding:26px 24px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px}
.gp-footer__brand{font-weight:700;margin-bottom:8px}
.gp-footer__title{font-weight:650;margin-bottom:10px}
.gp-footer__logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gp-footer__logo{display:block;border:1px solid var(--gp-border);border-radius:12px;overflow:hidden;background:#565151;}
.gp-footer__logo img{display:block;width:100%;height:54px;object-fit:contain;padding:8px}
.gp-footer__links{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.gp-footer__links a{text-decoration:none}
.gp-footer__links a:hover{text-decoration:underline}
.gp-footer__bottom{max-width:var(--gp-max);margin:0 auto;padding:0 24px 26px}
.gp-footer__mandatory{margin:0 0 6px;font-weight:650}
.gp-footer__operator{margin:0 0 6px;color:var(--gp-muted)}
.gp-footer__copyright{margin:0;color:var(--gp-muted);font-size:14px}

/* Sticky editorial bar */
.gp-stickybar{
  position:fixed;left:calc(var(--gp-sidebar) + 18px);right:18px;bottom:18px;
  max-width:calc(var(--gp-max) - 36px);
  margin:0 auto;
  display:none;
  z-index:70;
}
.gp-stickybar.is-visible{display:block}
.gp-stickybar__inner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid var(--gp-border);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-radius:999px;
  padding:10px 12px;
  box-shadow:var(--gp-shadow);
}
.gp-stickybar__text{margin:0;color:var(--gp-muted);font-size:14px}
.gp-stickybar__actions{display:flex;gap:10px;align-items:center}
.gp-x{border:1px solid var(--gp-border);background:#fff;border-radius:999px;padding:8px 10px;cursor:pointer}

/* Modals / banners */
.gp-overlay{position:fixed;inset:0;background:rgba(16,17,20,.55);backdrop-filter:blur(6px);display:none;z-index:90}
.gp-overlay.is-open{display:block}
.gp-modal{
  position:fixed;inset:auto 16px 16px 16px;
  max-width:720px;margin:0 auto;
  background:#fff;border:1px solid var(--gp-border);border-radius:var(--gp-radius);
  box-shadow:var(--gp-shadow);
  padding:18px;
  display:none;
  z-index:100;
}
.gp-modal.is-open{display:block}
.gp-modal__title{margin:0 0 8px;font-size:18px}
.gp-modal__p{margin:0 0 14px;color:var(--gp-muted)}
.gp-modal__actions{display:flex;gap:10px;flex-wrap:wrap}

.gp-cookie{
  position:fixed;left:16px;right:16px;bottom:16px;
  max-width:920px;margin:0 auto;
  border:1px solid var(--gp-border);border-radius:var(--gp-radius);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  padding:14px;
  display:none;
  z-index:80;
}
.gp-cookie.is-open{display:block}
.gp-cookie__inner{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.gp-cookie__text{margin:0;color:var(--gp-muted);max-width:660px}

/* Responsive */
@media (max-width: 980px){
  .gp-sidebar{display:none}
  .gp-topbar{display:block}
  .gp-main{margin-left:0}
  .gp-container{padding:20px 16px}
  .gp-hero__inner{grid-template-columns:1fr;gap:14px}
  .gp-hero__side{border-left:0;border-top:1px solid var(--gp-border);padding-left:0;padding-top:14px}
  .gp-home-grid{grid-template-columns:1fr}
  .gp-localnav{position:relative;top:0}
  .gp-platforms{grid-template-columns:1fr}
  .gp-hub{grid-template-columns:1fr}
  .gp-footer__grid{grid-template-columns:1fr}
  .gp-stickybar{left:16px;right:16px;max-width:none}
}

/* Mobile drawer */
.gp-mobile-drawer{position:fixed;inset:0;z-index:95}
.gp-mobile-drawer__backdrop{position:absolute;inset:0;border:0;background:rgba(16,17,20,.45);cursor:pointer;z-index:0}
.gp-mobile-drawer__panel{position:absolute;inset:0 0 0 auto;width:min(360px, 92vw);background:#fff;border-left:1px solid var(--gp-border);padding:16px;overflow:auto;z-index:1}
.gp-mobile-drawer__header{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--gp-border);padding-bottom:12px;margin-bottom:12px}
.gp-mobile-drawer__title{font-weight:700}
.gp-close{border:1px solid var(--gp-border);background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}

/* Forms */
.gp-form{display:grid;gap:12px}
.gp-field{display:grid;gap:6px}
.gp-label{font-weight:650}
.gp-input,.gp-textarea{
  width:100%;padding:10px 12px;border:1px solid var(--gp-border);border-radius:12px;font:inherit
}
.gp-textarea{min-height:140px;resize:vertical}
.gp-help{font-size:13px;color:var(--gp-muted)}
