/* ==========================================================================
   Gamostar gaming theme — loaded after bootstrap + style.css
   Palette: deep-space navy, electric violet, neon cyan, gold accent
   ========================================================================== */
:root {
    --gs-navy: #0a0e27;
    --gs-navy-2: #141a4a;
    --gs-violet: #7c4dff;
    --gs-violet-dark: #5a34d6;
    --gs-magenta: #c026d3;
    --gs-cyan: #22d3ee;
    --gs-gold: #ffc233;
    --gs-green: #25d366;
    --primary: #7c4dff;
    --dark: #0a0e27;
}

html { scroll-behavior: smooth; }
body { font-family: 'Nunito', sans-serif; color: #2b3050; }
h1, h2, h3, h4, h5, h6 { font-family: 'Rubik', sans-serif; }
img { max-width: 100%; height: auto; }

/* ---------- colour overrides for the old template blue ---------- */
a { color: var(--gs-violet-dark); }
a:hover { color: var(--gs-magenta); }
.text-primary { color: var(--gs-violet) !important; }
.border-primary { border-color: var(--gs-violet) !important; }
.section-subtitle { color: var(--gs-violet); }
.process-number { background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); }
.bg-primary { background: linear-gradient(135deg, #5a34d6 0%, #9333ea 55%, #c026d3 100%) !important; }
.btn-primary {
    background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta));
    border: 0; color: #fff;
    box-shadow: 0 8px 22px rgba(124, 77, 255, .35);
}
.btn-primary:hover, .btn-primary:focus { color: #fff; filter: brightness(1.08); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(124, 77, 255, .5); }
.btn-outline-primary { color: var(--gs-violet); border-color: var(--gs-violet); }
.btn-outline-primary:hover { background: var(--gs-violet); border-color: var(--gs-violet); color: #fff; }
.btn-success { background: var(--gs-green); border-color: var(--gs-green); color: #062b14; font-weight: 700; }
.btn-success:hover { background: #1ebe57; border-color: #1ebe57; color: #062b14; }

/* dark hero / banner blocks: navy gradient + subtle game-pattern glow */
.bg-dark {
    background:
        radial-gradient(900px 380px at 88% -10%, rgba(124, 77, 255, .38), transparent 60%),
        radial-gradient(700px 320px at 0% 110%, rgba(34, 211, 238, .16), transparent 60%),
        linear-gradient(135deg, var(--gs-navy) 0%, var(--gs-navy-2) 100%) !important;
}
.bg-dark h1, .bg-dark h2, .bg-dark .display-5 { color: #fff; }
.bg-dark .fa-check-circle { color: var(--gs-cyan) !important; }

.back-to-top { background: var(--gs-violet) !important; border-color: var(--gs-violet) !important; right: 24px !important; bottom: 96px !important; z-index: 900; }

/* ---------- header ---------- */
.gs-header { position: sticky; top: 0; z-index: 1030; background: var(--gs-navy); box-shadow: 0 4px 24px rgba(0, 0, 0, .28); }
.gs-nav.navbar { position: static !important; background: transparent !important; padding: 8px 0; border: 0; }
.gs-nav-inner { align-items: center; gap: 10px; }
.gs-brand { font-family: 'Rubik', sans-serif; font-weight: 700; font-size: 1.55rem; color: #fff; letter-spacing: .3px; }
.gs-nav .navbar-brand:hover .gs-brand { color: var(--gs-gold); }
.gs-nav .navbar-toggler { border: 1px solid rgba(255, 255, 255, .35) !important; padding: 6px 12px; }
.gs-nav .nav-link {
    position: relative; margin: 0 !important; padding: 12px 10px !important;
    color: rgba(255, 255, 255, .88) !important; font-size: 15.5px !important; font-weight: 600 !important;
}
.gs-nav .nav-link:hover, .gs-nav .nav-link.active, .gs-nav .nav-link.show { color: var(--gs-gold) !important; }
.gs-nav .nav-link::before { display: none !important; }
.gs-nav .dropdown-toggle::after { vertical-align: .18em; }

.gs-nav .dropdown-menu {
    display: none; opacity: 1; visibility: visible; transform: none; transition: none;
    background: #10163a; border: 1px solid rgba(255, 255, 255, .09); border-radius: 12px;
    padding: 10px; margin-top: 0; box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
}
.gs-nav .dropdown-item { color: #d7dcff; border-radius: 8px; padding: 7px 12px; font-size: 14.5px; white-space: normal; }
.gs-nav .dropdown-menu::before { display: none; }
.gs-nav .dropdown-menu.show { display: block; }
.gs-nav .dropdown-item:hover, .gs-nav .dropdown-item.active { background: rgba(124, 77, 255, .28); color: #fff; padding-left: 12px; }
.gs-mega-title { color: var(--gs-cyan); font-size: 12.5px; letter-spacing: 1.2px; text-transform: uppercase; margin: 4px 12px 2px; font-weight: 800 !important; }
.gs-mega-sub { color: #8f97c9; font-size: 12px; margin: 0 12px 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.08); }

.gs-nav-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; }
@media (min-width: 1200px) { .gs-nav-actions { flex-wrap: nowrap; } .gs-nav-actions .store-badges { flex-wrap: nowrap; gap: 8px; } }
.gs-nav-actions .store-wrap { margin: 0; }
.gs-btn-quote {
    background: var(--gs-green); color: #062b14; font-weight: 800; border-radius: 10px;
    padding: 7px 13px; white-space: nowrap; border: 0; font-size: 14px;
}
.gs-btn-quote:hover { background: #1ebe57; color: #062b14; transform: translateY(-1px); }

@media (min-width: 1200px) {
    .gs-nav .dropdown:hover > .dropdown-menu { display: block; }
    .gs-nav-inner { position: relative; }
    .gs-nav .nav-item.dropdown { position: static; }
    .gs-mega { min-width: 520px; left: 50% !important; right: auto !important; top: 100% !important; margin: 0 !important; transform: translateX(-50%) !important; } /* !important beats Popper's inline positioning */
    .gs-nav .dropdown-menu.gs-mega.show, .gs-nav .dropdown:hover > .gs-mega { display: flex; gap: 8px; }
    .gs-mega-col { flex: 1 1 0; min-width: 240px; }
    .gs-mega-3 { min-width: 780px; flex-wrap: wrap; }
}
@media (max-width: 1199.98px) {
    .gs-nav .navbar-collapse { padding: 10px 0 16px; max-height: calc(100vh - 70px); overflow-y: auto; }
    .gs-nav .nav-link { padding: 10px 4px !important; }
    .gs-nav .dropdown-menu { background: rgba(255, 255, 255, .05); box-shadow: none; }
    .gs-nav-actions { margin: 12px 0 0; }
}

/* ---------- Play Store / App Store buttons ---------- */
.store-wrap { margin: 18px 0 0; }
.store-wrap.store-center { text-align: center; }
.store-wrap.store-center .store-badges { justify-content: center; }
.store-label { font-size: .85rem; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gs-cyan); font-weight: 700; margin-bottom: 10px; }
.store-badges { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.store-badge {
    display: inline-flex; align-items: center; gap: 10px; background: #000; color: #fff !important;
    border: 1.5px solid #a6a6a6; border-radius: 12px; padding: 8px 18px 8px 14px; text-decoration: none;
    line-height: 1.1; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.store-badge:hover { transform: translateY(-3px); border-color: #fff; box-shadow: 0 10px 24px rgba(0, 0, 0, .45); color: #fff !important; }
.store-badge i { font-size: 1.9rem; }
.store-badge span { display: flex; flex-direction: column; text-align: left; }
.store-badge small { font-size: .62rem; letter-spacing: .6px; text-transform: uppercase; opacity: .85; }
.store-badge strong { font-size: 1.12rem; font-weight: 700; font-family: 'Rubik', sans-serif; }
.store-sm .store-badge { padding: 3px 10px 3px 8px; border-radius: 9px; gap: 6px; }
.store-sm .store-badge i { font-size: 1.2rem; }
.store-sm .store-badge small { font-size: .46rem; }
.store-sm .store-badge strong { font-size: .8rem; }
.store-lg .store-badge { padding: 11px 24px 11px 18px; border-radius: 14px; }
.store-lg .store-badge i { font-size: 2.3rem; }
.store-lg .store-badge strong { font-size: 1.3rem; }

/* store button strip used inside game hero sections */
.hero-stores { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .14); }
.hero-stores .store-wrap { margin: 0; }

/* ---------- home hero ---------- */
.gs-hero {
    position: relative; overflow: hidden; color: #fff; padding: 70px 0 60px;
    background:
        radial-gradient(800px 420px at 80% 20%, rgba(124, 77, 255, .5), transparent 62%),
        radial-gradient(600px 360px at 5% 100%, rgba(34, 211, 238, .22), transparent 60%),
        linear-gradient(135deg, #070a1f 0%, #141a4a 100%);
}
.gs-hero::before {
    content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none;
    background-image: url("/img/hero-pattern.svg"); background-size: 420px;
}
.gs-hero .container { position: relative; z-index: 1; }
.gs-hero h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 800; line-height: 1.12; color: #fff; }
.gs-hero h1 span { background: linear-gradient(90deg, var(--gs-gold), #ff8a3d); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gs-hero .lead { color: #d3d8ff; max-width: 560px; }
.gs-hero-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 26px; padding: 0; list-style: none; }
.gs-hero-tags li { background: rgba(255, 255, 255, .09); border: 1px solid rgba(255, 255, 255, .16); padding: 6px 14px; border-radius: 30px; font-size: .9rem; }
.gs-hero-art { filter: drop-shadow(0 30px 50px rgba(124, 77, 255, .45)); animation: gsFloat 6s ease-in-out infinite; }
@keyframes gsFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }

.gs-download-strip { background: linear-gradient(90deg, #5a34d6, #9333ea 55%, #c026d3); color: #fff; padding: 26px 0; }
.gs-download-strip h2 { color: #fff; font-size: 1.35rem; margin: 0 0 4px; }
.gs-download-strip p { margin: 0; opacity: .92; }

/* ---------- WhatsApp floating widget ---------- */
.wa-float {
    position: fixed; right: 20px; bottom: 20px; z-index: 9999; display: flex; align-items: center; gap: 10px;
    text-decoration: none; flex-direction: row-reverse;
}
.wa-float .wa-btn {
    width: 60px; height: 60px; border-radius: 50%; background: var(--gs-green); display: flex; align-items: center; justify-content: center;
    box-shadow: 0 8px 24px rgba(37, 211, 102, .55); position: relative; transition: transform .2s;
}
.wa-float .wa-btn::after {
    content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--gs-green); animation: waPulse 1.8s infinite;
}
.wa-float:hover .wa-btn { transform: scale(1.08); }
.wa-float svg { width: 34px; height: 34px; fill: #fff; }
.wa-float .wa-label {
    background: #fff; color: #163; font-weight: 700; font-size: 14px; padding: 8px 14px; border-radius: 22px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18); white-space: nowrap;
}
@keyframes waPulse { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.65); opacity: 0; } }
@media (max-width: 575.98px) { .wa-float .wa-label { display: none; } .wa-float { right: 14px; bottom: 14px; } }

/* ---------- footer polish ---------- */
.footer-links a { opacity: .85; text-decoration: none; }
.footer-links a:hover { opacity: 1; color: var(--gs-gold) !important; }
.footer-stores { padding: 6px 0 22px; }

/* keep multi-line cards from overflowing on phones */
@media (max-width: 575.98px) {
    .store-badge { padding: 6px 12px 6px 10px; }
    .store-badge strong { font-size: 1rem; }
    .display-5 { font-size: 1.85rem; }
}

/* headings inside coloured / dark blocks must stay readable (style.css sets a dark heading colour) */
.bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary h5, .bg-primary p,
.bg-dark h3, .bg-dark h4, .bg-dark h5,
.text-white h1, .text-white h2, .text-white h3, .text-white h4 { color: #fff; }

@media (max-width: 575.98px) {
    .gs-hero { padding: 36px 0 40px; }
    .gs-hero-tags { gap: 6px; margin: 12px 0 18px; }
    .gs-hero-tags li { font-size: .78rem; padding: 4px 10px; }
    .gs-hero .lead { font-size: 1rem; }
}

/* ---------- header quote button inside the menu list ---------- */
.gs-nav .gs-btn-quote { display: inline-flex; align-items: center; }

/* ---------- footer ---------- */
.gs-footer { background: #070a1f; color: #c5cbef; }
.gs-footer-cta { background: linear-gradient(90deg, #5a34d6, #9333ea 55%, #c026d3); padding: 34px 0; color: #fff; }
.gs-footer-cta h2 { color: #fff; font-size: 1.6rem; margin-bottom: 6px; }
.gs-footer-main { padding-top: 56px; padding-bottom: 40px; }
.gs-footer-about { font-size: .95rem; line-height: 1.7; }
.gs-footer-contact li { margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.gs-footer-contact i { color: var(--gs-cyan); width: 18px; text-align: center; }
.gs-footer a { color: #c5cbef; text-decoration: none; }
.gs-footer a:hover { color: var(--gs-gold); }
.gs-footer-social { display: flex; gap: 10px; margin: 16px 0 6px; }
.gs-footer-social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .08); display: flex; align-items: center; justify-content: center; color: #fff; transition: background .2s, transform .2s; }
.gs-footer-social a:hover { background: var(--gs-violet); color: #fff; transform: translateY(-3px); }
.gs-footer-title { color: #fff; font-size: 1.05rem; font-weight: 700; margin-bottom: 18px; position: relative; padding-bottom: 10px; }
.gs-footer-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--gs-violet), var(--gs-cyan)); }
.gs-footer-links li { margin-bottom: 9px; font-size: .94rem; }
.gs-footer-links a { display: inline-block; transition: transform .2s, color .2s; }
.gs-footer-links a:hover { transform: translateX(4px); }
.gs-footer .store-wrap { margin-top: 14px; }
.gs-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); padding: 16px 0; font-size: .88rem; color: #8f97c9; }

/* ---------- landing extras ---------- */
.gs-statband { background: #fff; margin-top: -1px; padding: 26px 0; border-bottom: 1px solid #eceffd; }
.gs-stat strong { display: block; font-family: 'Rubik', sans-serif; font-size: 1.7rem; color: var(--gs-violet); }
.gs-stat span { font-size: .9rem; color: #5a6088; }
.gs-usecase { background: #f6f7ff; border: 1px solid #e6e9ff; border-radius: 14px; padding: 22px; transition: transform .25s, box-shadow .25s; }
.gs-usecase:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(124, 77, 255, .15); }
.gs-usecase i { font-size: 1.6rem; color: var(--gs-violet); margin-bottom: 10px; display: block; }
.gs-usecase p { font-size: .9rem; color: #5a6088; margin: 0; }

/* ---------- FAQ + career ---------- */
.gs-faq { border: 1px solid #e6e9ff; border-radius: 12px; background: #fff; transition: box-shadow .2s; }
.gs-faq[open] { box-shadow: 0 10px 26px rgba(124, 77, 255, .12); border-color: var(--gs-violet); }
.gs-faq summary { cursor: pointer; font-weight: 700; padding: 16px 20px; list-style: none; position: relative; padding-right: 48px; color: #1b1f45; }
.gs-faq summary::-webkit-details-marker { display: none; }
.gs-faq summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--gs-violet); }
.gs-faq[open] summary::after { content: "–"; }
.gs-faq p { padding: 0 20px 18px; margin: 0; color: #4b5180; }
.gs-role { display: flex; align-items: center; gap: 18px; background: #fff; border: 1px solid #e6e9ff; border-radius: 14px; padding: 18px 22px; margin-bottom: 14px; transition: transform .2s, box-shadow .2s; flex-wrap: wrap; }
.gs-role:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(124, 77, 255, .15); }
.gs-role-icon { width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.gs-role-body { flex: 1 1 240px; }

/* ---------- live games slider (slow, endless) ---------- */
.gs-games-sec { background: linear-gradient(180deg, #f6f7ff 0%, #ffffff 100%); overflow: hidden; }
.gs-marquee { overflow: hidden; padding: 12px 0 28px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.gs-marquee-track { display: flex; width: max-content; animation: gsMarquee 90s linear infinite; }
.gs-marquee:hover .gs-marquee-track, .gs-marquee:focus-within .gs-marquee-track { animation-play-state: paused; }
@keyframes gsMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gs-game-card {
    flex: 0 0 auto; width: 340px; margin-right: 28px; background: #fff; border-radius: 20px; overflow: hidden;
    border: 1px solid #e6e9ff; box-shadow: 0 10px 30px rgba(20, 26, 74, .08); text-decoration: none; display: block; color: inherit;
    transition: transform .3s, box-shadow .3s, border-color .3s;
}
.gs-game-card:hover { transform: translateY(-8px); box-shadow: 0 22px 46px rgba(124, 77, 255, .28); border-color: var(--gs-violet); color: inherit; }
.gs-game-img { display: block; height: 220px; background: linear-gradient(135deg, #1b2260, #0a0e27); overflow: hidden; }
.gs-game-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.gs-game-card:hover .gs-game-img img { transform: scale(1.07); }
.gs-game-body { display: block; padding: 20px 22px 22px; }
.gs-game-body strong { display: block; font-family: 'Rubik', sans-serif; font-size: 1.25rem; color: #14194a; margin-bottom: 6px; }
.gs-game-body > span { display: block; color: #5a6088; font-size: .95rem; min-height: 46px; }
.gs-game-body em { display: inline-block; margin-top: 12px; font-style: normal; font-weight: 700; color: var(--gs-violet); }
.gs-game-card:hover em i { transform: translateX(5px); }
.gs-game-body em i, .gs-svc-card em i, .gs-ai-card em i, .gs-work-body em i { transition: transform .2s; }
@media (max-width: 575.98px) { .gs-game-card { width: 270px; } .gs-game-img { height: 180px; } .gs-marquee-track { animation-duration: 70s; } }
@media (prefers-reduced-motion: reduce) { .gs-marquee-track { animation: none; } .gs-marquee { overflow-x: auto; } }

/* ---------- clickable core service cards ---------- */
.gs-svc-card { display: block; height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 18px; padding: 32px 28px; text-decoration: none; color: inherit; box-shadow: 0 8px 26px rgba(20, 26, 74, .06); transition: transform .25s, box-shadow .25s, border-color .25s; position: relative; overflow: hidden; }
.gs-svc-card::before { content: ""; position: absolute; left: 0; top: 0; height: 4px; width: 0; background: linear-gradient(90deg, var(--gs-violet), var(--gs-cyan)); transition: width .35s; }
.gs-svc-card:hover { transform: translateY(-8px); box-shadow: 0 22px 46px rgba(124, 77, 255, .22); border-color: var(--gs-violet); color: inherit; }
.gs-svc-card:hover::before { width: 100%; }
.gs-svc-icon { width: 60px; height: 60px; border-radius: 16px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 18px; }
.gs-svc-card h3 { font-size: 1.2rem; color: #14194a; margin-bottom: 10px; }
.gs-svc-card p { color: #5a6088; font-size: .95rem; }
.gs-svc-card em, .gs-ai-card em { font-style: normal; font-weight: 700; color: var(--gs-violet); }
.gs-svc-card:hover em i, .gs-ai-card:hover em i, .gs-work-card:hover em i { transform: translateX(5px); }

/* ---------- AI section ---------- */
.gs-ai-sec { background: radial-gradient(800px 380px at 90% 0%, rgba(124, 77, 255, .4), transparent 60%), radial-gradient(600px 300px at 0% 100%, rgba(34, 211, 238, .18), transparent 60%), linear-gradient(135deg, #070a1f, #141a4a); padding: 64px 0; }
.gs-ai-card { display: block; height: 100%; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: 18px; padding: 28px 24px; text-decoration: none; color: #d3d8ff; backdrop-filter: blur(4px); transition: transform .25s, background .25s, border-color .25s; }
.gs-ai-card:hover { transform: translateY(-8px); background: rgba(124, 77, 255, .22); border-color: var(--gs-cyan); color: #fff; }
.gs-ai-icon { width: 54px; height: 54px; border-radius: 14px; background: linear-gradient(135deg, var(--gs-cyan), var(--gs-violet)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 16px; }
.gs-ai-card h3 { color: #fff; font-size: 1.15rem; margin-bottom: 10px; }
.gs-ai-card p { font-size: .92rem; }
.gs-ai-card ul { list-style: none; padding: 0; margin: 12px 0 16px; font-size: .88rem; }
.gs-ai-card li i { color: var(--gs-cyan); margin-right: 6px; }
.gs-ai-card em { color: var(--gs-gold); }

/* ---------- development process ---------- */
.gs-process-sec { background: #f6f7ff; padding: 64px 0; }
.gs-step { position: relative; height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 18px; padding: 30px 26px 26px; box-shadow: 0 8px 26px rgba(20, 26, 74, .06); transition: transform .25s, box-shadow .25s; }
.gs-step:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(124, 77, 255, .18); }
.gs-step-num { position: absolute; right: 22px; top: 12px; font-family: 'Rubik', sans-serif; font-weight: 800; font-size: 3rem; line-height: 1; color: rgba(124, 77, 255, .12); }
.gs-step-icon { width: 54px; height: 54px; border-radius: 15px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; margin-bottom: 16px; }
.gs-step h3 { font-size: 1.15rem; color: #14194a; margin-bottom: 6px; }
.gs-step-time { display: inline-block; font-size: .8rem; font-weight: 700; color: var(--gs-violet-dark); background: #ede9ff; border-radius: 20px; padding: 3px 12px; margin-bottom: 12px; }
.gs-step p { color: #5a6088; font-size: .94rem; }
.gs-step-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gs-step-chips span { font-size: .78rem; background: #f1f3ff; border: 1px solid #e0e4ff; color: #3a4080; border-radius: 6px; padding: 3px 9px; }

/* ---------- recent work ---------- */
.gs-work-card { display: block; height: 100%; background: #fff; border-radius: 18px; overflow: hidden; border: 1px solid #e6e9ff; text-decoration: none; color: inherit; box-shadow: 0 8px 26px rgba(20, 26, 74, .07); transition: transform .25s, box-shadow .25s; }
.gs-work-card:hover { transform: translateY(-8px); box-shadow: 0 22px 46px rgba(124, 77, 255, .22); color: inherit; }
.gs-work-img { display: block; position: relative; height: 200px; overflow: hidden; background: #0a0e27; }
.gs-work-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.gs-work-card:hover .gs-work-img img { transform: scale(1.08); }
.gs-work-img b { position: absolute; left: 12px; top: 12px; background: rgba(10, 14, 39, .85); color: #fff; font-size: .72rem; letter-spacing: .5px; text-transform: uppercase; padding: 4px 10px; border-radius: 20px; }
.gs-work-body { display: block; padding: 18px 20px 20px; }
.gs-work-body strong { display: block; font-family: 'Rubik', sans-serif; color: #14194a; font-size: 1.05rem; margin-bottom: 6px; }
.gs-work-body > span { display: block; font-size: .9rem; color: #5a6088; min-height: 64px; }
.gs-work-body em { font-style: normal; font-weight: 700; color: var(--gs-violet); font-size: .9rem; }

/* ---------- mega-menu "view all" + hub pages ---------- */
.gs-mega-all { flex: 0 0 100%; margin-top: 8px; padding: 10px 14px 4px; border-top: 1px solid rgba(255,255,255,.1); color: var(--gs-gold) !important; font-weight: 700; font-size: 14px; text-decoration: none; }
.gs-mega-all:hover { color: #fff !important; }
.gs-hub-jump { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #fff !important; border-radius: 30px; padding: 7px 18px; font-weight: 600; font-size: .9rem; text-decoration: none; }
.gs-hub-jump:hover { background: var(--gs-violet); }
.gs-hub-card { display: flex; align-items: center; gap: 12px; height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 14px; padding: 16px 18px; text-decoration: none; color: #14194a !important; font-weight: 700; transition: transform .2s, box-shadow .2s, border-color .2s; }
.gs-hub-card:hover { transform: translateY(-4px); border-color: var(--gs-violet); box-shadow: 0 14px 30px rgba(124,77,255,.18); }
.gs-hub-card > i { color: var(--gs-violet); font-size: 1.3rem; width: 26px; text-align: center; }
.gs-hub-card span { flex: 1; font-size: .95rem; line-height: 1.3; }
.gs-hub-card b { color: var(--gs-violet); font-size: .8rem; transition: transform .2s; }
.gs-hub-card:hover b { transform: translateX(4px); }

/* legacy blue CTA sections -> theme gradient */
section[style*="#0d6efd"], div[style*="linear-gradient(90deg, #0d6efd"] { background: linear-gradient(90deg, #5a34d6, #9333ea 55%, #c026d3) !important; }

/* merged games list + iGaming badge */
.gs-two-col { column-count: 2; column-gap: 8px; }
.gs-two-col li { break-inside: avoid; }
@media (min-width: 1200px) { .gs-mega-3 .gs-col-wide { flex: 1.6 1 0; min-width: 340px; } .gs-mega-3 { min-width: 1040px; max-width: calc(100vw - 32px); } }
.gs-badge-new { background: linear-gradient(135deg, var(--gs-gold), #ff8a3d); color: #3a1600; font-size: 9.5px; font-weight: 800; padding: 2px 6px; border-radius: 6px; vertical-align: 2px; letter-spacing: .4px; }

/* home flagship MGP section */
.gs-mgp-sec { background: radial-gradient(800px 420px at 85% 30%, rgba(124,77,255,.45), transparent 60%), radial-gradient(600px 300px at 0% 100%, rgba(34,211,238,.18), transparent 60%), linear-gradient(135deg, #070a1f, #141a4a); color: #d3d8ff; padding: 70px 0; overflow: hidden; }
.gs-mgp-sec h2 { color: #fff; font-size: clamp(1.7rem, 3.6vw, 2.6rem); font-weight: 800; }
.gs-mgp-sec h2 span { background: linear-gradient(90deg, var(--gs-gold), #ff8a3d); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gs-mgp-list { list-style: none; padding: 0; margin: 20px 0 26px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; }
.gs-mgp-list li { display: flex; gap: 10px; align-items: flex-start; font-size: .96rem; }
.gs-mgp-list i { color: var(--gs-cyan); margin-top: 4px; }
.gs-mgp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 8px; }
.gs-mgp-mini { display: block; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.15); border-radius: 14px; padding: 16px; text-decoration: none; color: #d3d8ff; transition: transform .2s, background .2s, border-color .2s; }
.gs-mgp-mini:hover { transform: translateY(-4px); background: rgba(124,77,255,.25); border-color: var(--gs-cyan); color: #fff; }
.gs-mgp-mini strong { display: block; color: #fff; font-family: 'Rubik', sans-serif; font-size: .98rem; margin: 6px 0 4px; }
.gs-mgp-mini span { font-size: .82rem; }
.gs-mgp-mini i { color: var(--gs-cyan); font-size: 1.3rem; }
@media (max-width: 767.98px) { .gs-mgp-list, .gs-mgp-cards { grid-template-columns: 1fr; } }

/* ---------- trust section ---------- */
.gs-trust-sec { background: #f6f7ff; padding: 60px 0; }
.gs-trust-card { display: flex; gap: 16px; height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 22px; box-shadow: 0 8px 24px rgba(20,26,74,.06); transition: transform .25s, box-shadow .25s; }
.gs-trust-card:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(124,77,255,.16); }
.gs-trust-icon { flex: 0 0 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; }
.gs-trust-card h3 { font-size: 1.05rem; color: #14194a; margin-bottom: 6px; }
.gs-trust-card p { font-size: .92rem; color: #5a6088; margin: 0; }
.gs-trust-panel { height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 24px; }
.gs-trust-panel h3 { font-size: 1.1rem; color: #14194a; margin-bottom: 14px; }
.gs-chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.gs-chip-row a { background: #f1f3ff; border: 1px solid #e0e4ff; color: #3a4080; border-radius: 30px; padding: 7px 16px; font-size: .9rem; font-weight: 600; text-decoration: none; transition: background .2s, color .2s; }
.gs-chip-row a:hover { background: var(--gs-violet); color: #fff; border-color: var(--gs-violet); }
.gs-model-list { list-style: none; padding: 0; margin: 0; }
.gs-model-list li { display: flex; gap: 10px; margin-bottom: 10px; font-size: .93rem; color: #4b5180; }
.gs-model-list i { color: var(--gs-violet); margin-top: 4px; }

/* ---------- portfolio filter + live pill ---------- */
.gs-filter { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 30px; }
.gs-filter button { border: 1px solid #d9ddff; background: #fff; color: #3a4080; font-weight: 700; border-radius: 30px; padding: 8px 22px; transition: all .2s; }
.gs-filter button:hover { border-color: var(--gs-violet); color: var(--gs-violet); }
.gs-filter button.active { background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; border-color: transparent; box-shadow: 0 8px 20px rgba(124,77,255,.3); }
.gs-work-img u { position: absolute; right: 12px; top: 12px; text-decoration: none; background: rgba(34,197,94,.95); color: #052e14; font-size: .7rem; font-weight: 800; padding: 4px 10px; border-radius: 20px; display: inline-flex; align-items: center; gap: 5px; }
.gs-work-img u i { font-size: .5rem; }

/* ---------- tech stack ---------- */
.gs-stack-card { height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 22px; box-shadow: 0 8px 22px rgba(20,26,74,.05); }
.gs-stack-card h3 { font-size: 1.02rem; color: #14194a; margin-bottom: 14px; }
.gs-stack-card h3 i { color: var(--gs-violet); margin-right: 8px; }
.gs-stack-card div { display: flex; flex-wrap: wrap; gap: 7px; }
.gs-stack-card span { background: #f1f3ff; border: 1px solid #e0e4ff; color: #3a4080; border-radius: 8px; padding: 4px 11px; font-size: .84rem; font-weight: 600; }

/* ---------- testimonials ---------- */
.gs-quote { height: 100%; margin: 0; background: #fff; border: 1px solid #e6e9ff; border-radius: 18px; padding: 28px 26px; box-shadow: 0 10px 28px rgba(20,26,74,.07); position: relative; }
.gs-quote > i { color: var(--gs-violet); opacity: .25; font-size: 2rem; }
.gs-quote blockquote { margin: 10px 0 20px; color: #2b3050; font-size: 1.02rem; line-height: 1.65; }
.gs-quote figcaption { display: flex; align-items: center; gap: 12px; }
.gs-quote figcaption strong { display: block; color: #14194a; }
.gs-quote figcaption small { color: #6a7099; }
.gs-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; font-family: 'Rubik', sans-serif; }

/* ---------- security + deliverables ---------- */
.gs-secure-sec { background: radial-gradient(700px 360px at 90% 10%, rgba(124,77,255,.4), transparent 60%), linear-gradient(135deg, #070a1f, #141a4a); padding: 64px 0; color: #d3d8ff; }
.gs-secure-item { display: flex; gap: 12px; height: 100%; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 16px; }
.gs-secure-item i { color: var(--gs-cyan); font-size: 1.25rem; margin-top: 3px; width: 24px; text-align: center; }
.gs-secure-item strong { display: block; color: #fff; font-size: .98rem; margin-bottom: 2px; }
.gs-secure-item span { font-size: .86rem; }
.gs-deliver { background: #fff; color: #2b3050; border-radius: 20px; padding: 28px; box-shadow: 0 22px 50px rgba(0,0,0,.35); }
.gs-deliver h3 { color: #14194a; font-size: 1.2rem; margin-bottom: 16px; }
.gs-deliver ul { list-style: none; padding: 0; margin: 0 0 20px; }
.gs-deliver li { display: flex; gap: 10px; margin-bottom: 11px; font-size: .95rem; }
.gs-deliver li i { color: var(--gs-violet); margin-top: 4px; }

/* ---------- lead form ---------- */
.gs-lead-card { background: #fff; border: 1px solid #e6e9ff; border-radius: 20px; padding: 30px; box-shadow: 0 18px 44px rgba(20,26,74,.1); }
.gs-lead-form .form-label { font-weight: 700; font-size: .88rem; color: #2b3050; }
.gs-lead-form .form-control, .gs-lead-form .form-select { border-radius: 10px; border-color: #d9ddff; padding: 11px 14px; user-select: text; }
.gs-lead-form .form-control:focus, .gs-lead-form .form-select:focus { border-color: var(--gs-violet); box-shadow: 0 0 0 .2rem rgba(124,77,255,.18); }
#formMessage.alert { margin: 0; }

/* page-load spinner must never block the page: auto-hide even if a CDN script is slow */
#spinner.show { animation: gsSpinnerOut .3s ease 1.2s forwards; }
@keyframes gsSpinnerOut { to { opacity: 0; visibility: hidden; } }


/* =====================================================================================
   HERO v2 — warm indigo → violet → magenta mesh, gold accent, glass stats bar
   ===================================================================================== */
.gs-hero {
    background:
        radial-gradient(700px 420px at 100% 0%, rgba(124, 77, 255, .55), transparent 62%),
        radial-gradient(500px 300px at 55% 110%, rgba(34, 211, 238, .18), transparent 60%),
        linear-gradient(135deg, #100a36 0%, #24115f 52%, #0c1b57 100%);
    padding: 76px 0 0;
}
.gs-orb { position: absolute; border-radius: 50%; filter: blur(70px); pointer-events: none; opacity: .55; }
.gs-orb-1 { display: none; }
.gs-orb-2 { width: 300px; height: 300px; background: #22d3ee; right: 8%; top: -120px; opacity: .3; animation: gsOrb 18s ease-in-out infinite reverse; }
@keyframes gsOrb { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(30px, 24px); } }
.gs-hero-pill { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 194, 51, .14); border: 1px solid rgba(255, 194, 51, .45); color: #ffd76a; padding: 6px 16px; border-radius: 30px; font-size: .86rem; font-weight: 700; margin-bottom: 18px; }
.gs-hero h1 { margin-bottom: 0; }
.gs-hero h1 span { background: linear-gradient(90deg, #ffd76a, #ff8a3d 55%, #ff5e8a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gs-hero .lead { color: #d9dcff; }
.gs-hero-tags li { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); backdrop-filter: blur(6px); }
.hero-stores { border-top-color: rgba(255, 255, 255, .18); }
.gs-hero-visual { position: relative; display: inline-block; max-width: 100%; }
.gs-float {
    position: absolute; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
    background: rgba(255, 255, 255, .96); color: #14194a; font-weight: 800; font-size: .82rem; padding: 8px 14px; border-radius: 30px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .35); animation: gsFloat 6s ease-in-out infinite;
}
.gs-float i { color: var(--gs-violet); }
.gs-float-1 { left: -6%; top: 14%; }
.gs-float-2 { right: -4%; top: 46%; animation-delay: -2s; }
.gs-float-3 { left: 4%; bottom: 10%; animation-delay: -4s; }
.gs-float-1 i { color: #059669; }
.gs-float-3 i { color: #db2777; }

.gs-hero-stats {
    position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 52px; transform: translateY(1px);
    background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); border-bottom: 0; border-radius: 22px 22px 0 0; backdrop-filter: blur(10px);
}
.gs-hero-stats > div { padding: 20px 16px; text-align: center; border-right: 1px solid rgba(255, 255, 255, .12); }
.gs-hero-stats > div:last-child { border-right: 0; }
.gs-hero-stats strong { display: block; font-family: 'Rubik', sans-serif; font-size: 1.85rem; font-weight: 800; color: #fff; line-height: 1.1; }
.gs-hero-stats span { font-size: .85rem; color: #c5cbef; }
@media (max-width: 991.98px) { .gs-float { font-size: .72rem; padding: 6px 10px; } .gs-float-1 { left: 0; } .gs-float-2 { right: 0; } }
@media (max-width: 575.98px) {
    .gs-hero { padding-top: 40px; }
    .gs-hero-stats { grid-template-columns: repeat(2, 1fr); margin-top: 34px; }
    .gs-hero-stats > div:nth-child(2) { border-right: 0; }
    .gs-hero-stats > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .gs-float-3 { display: none; }
}

/* =====================================================================================
   HEADER v2 — clean white header so it contrasts with the dark hero
   ===================================================================================== */
.gs-header { background: #ffffff; box-shadow: 0 4px 22px rgba(20, 26, 74, .12); border-bottom: 3px solid transparent; border-image: linear-gradient(90deg, #7c4dff, #c026d3, #ff8a3d) 1; }
.gs-brand { color: #14194a; }
.gs-nav .navbar-brand:hover .gs-brand { color: var(--gs-violet); }
.gs-nav .navbar-toggler { border-color: #cfd4ff !important; }
.gs-nav .navbar-toggler .fa-bars { color: #14194a !important; }
.gs-nav .nav-link { color: #2b3050 !important; }
.gs-nav .nav-link:hover, .gs-nav .nav-link.active, .gs-nav .nav-link.show { color: var(--gs-violet) !important; }
.gs-nav .nav-link.active { position: relative; }
.gs-nav .dropdown-menu { background: #ffffff; border: 1px solid #e6e9ff; box-shadow: 0 22px 50px rgba(20, 26, 74, .18); }
.gs-nav .dropdown-item { color: #2b3050; }
.gs-nav .dropdown-item:hover, .gs-nav .dropdown-item.active { background: #f1eeff; color: var(--gs-violet-dark); }
.gs-mega-title { color: var(--gs-violet); }
.gs-mega-sub { color: #6a7099; border-bottom-color: #eceffd; }
.gs-mega-all { border-top-color: #eceffd; color: var(--gs-violet) !important; }
.gs-mega-all:hover { color: var(--gs-magenta) !important; }
.gs-btn-quote { box-shadow: 0 8px 18px rgba(37, 211, 102, .35); }
@media (max-width: 1199.98px) { .gs-nav .dropdown-menu { background: #f7f8ff; box-shadow: none; } }


/* ============================ MGP section v2 ============================ */
.gs-mgp-sec { padding: 78px 0; }
.gs-mgp-sec h2 span { background: linear-gradient(90deg, #ffd76a, #ff8a3d); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gs-mgp-visual { position: relative; display: inline-block; max-width: 100%; }
.gs-mgp-features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.gs-mgp-feat { display: flex; gap: 12px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 14px; }
.gs-mgp-feat > span { flex: 0 0 40px; height: 40px; border-radius: 11px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: flex; align-items: center; justify-content: center; }
.gs-mgp-feat strong { display: block; color: #fff; font-size: .95rem; margin-bottom: 2px; }
.gs-mgp-feat small { color: #b9c0f0; font-size: .8rem; line-height: 1.4; display: block; }
.gs-mgp-cat { height: 100%; text-align: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 22px 14px; transition: transform .2s, border-color .2s; }
.gs-mgp-cat:hover { transform: translateY(-5px); border-color: var(--gs-gold); }
.gs-mgp-cat i { font-size: 1.7rem; color: var(--gs-gold); margin-bottom: 10px; display: block; }
.gs-mgp-cat strong { display: block; color: #fff; margin-bottom: 4px; }
.gs-mgp-cat span { font-size: .8rem; color: #b9c0f0; }
.gs-mgp-steps { background: rgba(255,255,255,.05); border: 1px dashed rgba(255,255,255,.22); border-radius: 20px; padding: 28px; }
.gs-mgp-steps h3 { color: #fff; font-size: 1.25rem; text-align: center; margin: 0 0 6px; }
.gs-mgp-step { text-align: center; position: relative; padding: 6px 8px; }
.gs-mgp-step b { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--gs-gold), #ff8a3d); color: #3a1600; display: inline-flex; align-items: center; justify-content: center; font-family: 'Rubik', sans-serif; font-size: 1.1rem; margin-bottom: 10px; }
.gs-mgp-step strong { display: block; color: #fff; }
.gs-mgp-step span { font-size: .85rem; color: #b9c0f0; }
@media (max-width: 575.98px) { .gs-mgp-features { grid-template-columns: 1fr; } }

/* ========================== Trusted global v2 ========================== */
.gs-global-sec { background: linear-gradient(180deg, #ffffff 0%, #f4f2ff 100%); padding: 64px 0; position: relative; overflow: hidden; }
.gs-region-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.gs-region-chips span { background: #fff; border: 1px solid #e0e4ff; border-radius: 30px; padding: 7px 16px; font-weight: 700; font-size: .9rem; color: #2b3050; box-shadow: 0 4px 12px rgba(20,26,74,.06); }
.gs-global-points { list-style: none; padding: 0; margin: 0 0 14px; }
.gs-global-points li { display: flex; gap: 10px; margin-bottom: 9px; color: #4b5180; font-size: .95rem; }
.gs-global-points i { color: var(--gs-violet); margin-top: 4px; }
.gs-globe-wrap { text-align: center; }
.gs-globe { width: min(300px, 70%); filter: drop-shadow(0 24px 40px rgba(124,77,255,.4)); animation: gsFloat 7s ease-in-out infinite; }
.gs-gstat { height: 100%; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 18px; box-shadow: 0 10px 26px rgba(20,26,74,.07); transition: transform .2s; }
.gs-gstat:hover { transform: translateY(-4px); }
.gs-gstat i { color: var(--gs-violet); font-size: 1.3rem; }
.gs-gstat strong { display: block; font-family: 'Rubik', sans-serif; font-size: 2rem; font-weight: 800; color: #14194a; line-height: 1.15; margin-top: 6px; }
.gs-gstat b { display: block; color: #14194a; font-size: .95rem; }
.gs-gstat small { color: #6a7099; font-size: .8rem; }


/* ============================== Core services v2 ============================== */
.gs-core-sec { background: linear-gradient(180deg, #ffffff 0%, #f6f7ff 100%); padding: 64px 0; }
.gs-svc-card { padding: 30px 26px 26px; }
.gs-svc-tag { position: absolute; right: 18px; top: 18px; background: linear-gradient(135deg, var(--gs-gold), #ff8a3d); color: #3a1600; font-size: .68rem; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; padding: 4px 10px; border-radius: 20px; }
.gs-svc-card ul { list-style: none; padding: 0; margin: 14px 0 18px; border-top: 1px dashed #dfe3ff; padding-top: 14px; }
.gs-svc-card li { font-size: .88rem; color: #3a4080; margin-bottom: 7px; display: flex; gap: 8px; }
.gs-svc-card li i { color: #059669; font-size: .75rem; margin-top: 5px; }
.gs-svc-card em { display: inline-flex; align-items: center; gap: 6px; }

/* ================================= AI section v2 ================================= */
.gs-ai-sec { padding: 72px 0; }
.gs-grad { background: linear-gradient(90deg, #22d3ee, #a78bfa 55%, #f0abfc); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gs-ai-points { list-style: none; padding: 0; margin: 20px 0 26px; }
.gs-ai-points li { display: flex; gap: 10px; margin-bottom: 12px; color: #d3d8ff; }
.gs-ai-points i { color: var(--gs-cyan); margin-top: 5px; }
.gs-ai-points strong { color: #fff; }
.gs-chat { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 22px; overflow: hidden; box-shadow: 0 28px 60px rgba(0,0,0,.4); backdrop-filter: blur(8px); }
.gs-chat-head { display: flex; align-items: center; gap: 10px; padding: 14px 20px; background: rgba(255,255,255,.08); color: #fff; }
.gs-chat-head small { margin-left: auto; color: #34d399; font-weight: 700; }
.gs-chat-dot { width: 10px; height: 10px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 4px rgba(52,211,153,.25); }
.gs-chat-body { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.gs-chat-body p { margin: 0; max-width: 86%; padding: 11px 15px; border-radius: 16px; font-size: .92rem; line-height: 1.5; }
.gs-chat-body .u { align-self: flex-end; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; border-bottom-right-radius: 4px; }
.gs-chat-body .b { align-self: flex-start; background: rgba(255,255,255,.12); color: #e5e8ff; border-bottom-left-radius: 4px; }
.gs-typing { display: inline-flex; gap: 4px; margin-left: 4px; vertical-align: middle; }
.gs-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--gs-cyan); animation: gsBlink 1.2s infinite; }
.gs-typing i:nth-child(2) { animation-delay: .2s; } .gs-typing i:nth-child(3) { animation-delay: .4s; }
@keyframes gsBlink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }
.gs-chat-tags { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 20px; }
.gs-chat-tags span { background: rgba(34,211,238,.14); border: 1px solid rgba(34,211,238,.4); color: #7fe9f7; font-size: .75rem; font-weight: 700; padding: 3px 11px; border-radius: 20px; }
.gs-ai-card { position: relative; }
.gs-ai-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 36px; }
.gs-ai-strip span { color: #c9cffb; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.05); border-radius: 30px; padding: 6px 16px; font-size: .85rem; font-weight: 600; }


/* ========================== Trusted global v3 (world map) ========================== */
.gs-map-card { background: radial-gradient(700px 360px at 80% 0%, rgba(124,77,255,.45), transparent 60%), linear-gradient(135deg, #0f0a36, #1d1265 60%, #0c1b57); border-radius: 26px; overflow: hidden; box-shadow: 0 30px 70px rgba(29,18,101,.35); border: 1px solid rgba(255,255,255,.1); }
.gs-map { position: relative; padding: 34px 26px 6px; }
.gs-map img { width: 100%; height: auto; display: block; }
.gs-pin { position: absolute; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 6px; pointer-events: none; }
.gs-pin i { position: relative; width: 11px; height: 11px; border-radius: 50%; background: #ffd76a; box-shadow: 0 0 0 3px rgba(255,215,106,.35); flex: 0 0 11px; }
.gs-pin i::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid #ffd76a; animation: gsPing 2s ease-out infinite; }
.gs-pin b { background: rgba(255,255,255,.95); color: #14194a; font-size: .72rem; font-weight: 800; padding: 3px 9px; border-radius: 20px; box-shadow: 0 6px 14px rgba(0,0,0,.3); white-space: nowrap; }
.gs-pin-l { flex-direction: row-reverse; }
@keyframes gsPing { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.2); opacity: 0; } }
.gs-region-dark { padding: 6px 26px 26px; margin: 0; justify-content: center; }
.gs-region-dark span { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #e5e8ff; box-shadow: none; }
.gs-map-side { height: 100%; padding: 34px 30px; background: rgba(255,255,255,.05); border-left: 1px solid rgba(255,255,255,.1); }
.gs-map-side h3 { color: #fff; font-size: 1.15rem; margin-bottom: 22px; }
.gs-how { display: flex; gap: 14px; margin-bottom: 22px; }
.gs-how > span { flex: 0 0 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: flex; align-items: center; justify-content: center; }
.gs-how strong { display: block; color: #fff; font-size: .98rem; }
.gs-how small { color: #b9c0f0; font-size: .84rem; line-height: 1.5; display: block; }
.gs-stat-row { margin-top: -38px; position: relative; z-index: 2; padding: 0 18px; }
.gs-gstat { text-align: center; }
.gs-gstat i { display: inline-flex; width: 42px; height: 42px; border-radius: 12px; background: #f1eeff; align-items: center; justify-content: center; }
@media (max-width: 991.98px) { .gs-map-side { border-left: 0; border-top: 1px solid rgba(255,255,255,.1); } .gs-stat-row { padding: 0; margin-top: 20px; } }
@media (max-width: 575.98px) { .gs-map { padding: 20px 10px 4px; } .gs-pin b { font-size: .6rem; padding: 2px 6px; } .gs-pin i { width: 8px; height: 8px; flex-basis: 8px; } }


/* ============================ Process v2 (stepper, 2 rows) ============================ */
.gs-process-sec { background: radial-gradient(600px 300px at 50% 0%, rgba(124,77,255,.10), transparent 70%), #f6f7ff; padding: 70px 0; }
.gs-process-sec .row.g-4 { --bs-gutter-y: 3rem; }
.gs-step { padding: 46px 26px 26px; overflow: visible; }
.gs-step-icon { position: absolute; left: 24px; top: -30px; width: 62px; height: 62px; border-radius: 18px; font-size: 1.5rem; box-shadow: 0 14px 28px rgba(124,77,255,.4); margin: 0; border: 4px solid #f6f7ff; }
.gs-step-num { top: 14px; right: 20px; }
.gs-step h3 { margin-top: 4px; }
@media (min-width: 992px) {
    .gs-process-sec .col-lg-4:not(:nth-child(3n)) .gs-step::after { content: "\f061"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; right: -25px; top: 50%; width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; font-size: .7rem; display: flex; align-items: center; justify-content: center; transform: translateY(-50%); z-index: 3; box-shadow: 0 6px 14px rgba(124,77,255,.4); }
}

/* ============================ Work cards v2 ============================ */
.gs-work-card { border-radius: 20px; }
.gs-work-img { height: 210px; }
.gs-work-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(10,14,39,.65)); pointer-events: none; }
.gs-work-img b { z-index: 2; background: rgba(255,255,255,.95); color: #14194a; }
.gs-work-card::before { content: "View project \2192"; position: absolute; left: 50%; top: 105px; transform: translate(-50%, -50%) scale(.85); opacity: 0; z-index: 3; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; font-weight: 800; font-size: .85rem; padding: 9px 20px; border-radius: 30px; box-shadow: 0 12px 26px rgba(124,77,255,.5); transition: opacity .25s, transform .25s; pointer-events: none; white-space: nowrap; }
.gs-work-card { position: relative; }
.gs-work-card:hover::before { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.gs-work-body strong { font-size: 1.08rem; }
.gs-work-body > span { min-height: 0; margin-bottom: 4px; }


/* ============================== Testimonials v2 ============================== */
.gs-testi-sec { background: linear-gradient(180deg, #ffffff 0%, #f6f7ff 100%); padding: 64px 0; }
.gs-testi-list { display: flex; flex-direction: column; gap: 12px; height: 100%; }
.gs-testi-tab { display: flex; align-items: center; gap: 14px; text-align: left; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 16px 18px; transition: all .25s; box-shadow: 0 6px 18px rgba(20,26,74,.05); cursor: pointer; }
.gs-testi-tab:hover { border-color: var(--gs-violet); transform: translateX(4px); }
.gs-testi-tab.active { background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); border-color: transparent; box-shadow: 0 16px 34px rgba(124,77,255,.38); transform: translateX(8px); }
.gs-testi-tab .gs-avatar { flex: 0 0 44px; }
.gs-testi-tab.active .gs-avatar { background: #fff; color: var(--gs-violet); }
.gs-testi-who { flex: 1; }
.gs-testi-who strong { display: block; color: #14194a; font-size: .98rem; }
.gs-testi-who small { color: #6a7099; font-size: .82rem; }
.gs-testi-tab.active .gs-testi-who strong, .gs-testi-tab.active .gs-testi-who small { color: #fff; }
.gs-testi-flag { font-size: 1.4rem; }
.gs-testi-note { margin-top: auto; font-size: .82rem; color: #5a6088; background: #f1f3ff; border: 1px dashed #d5d9ff; border-radius: 12px; padding: 12px 14px; }
.gs-testi-note i { color: var(--gs-violet); margin-right: 6px; }
.gs-testi-stage { position: relative; height: 100%; min-height: 330px; background: #fff; border: 1px solid #e6e9ff; border-radius: 26px; box-shadow: 0 24px 56px rgba(20,26,74,.12); overflow: hidden; }
.gs-testi-stage::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 6px; background: linear-gradient(90deg, var(--gs-violet), var(--gs-magenta), #ff8a3d); }
.gs-testi-slide { position: absolute; inset: 0; margin: 0; padding: 44px 46px 34px; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .5s, transform .5s, visibility .5s; }
.gs-testi-slide.active { opacity: 1; visibility: visible; transform: none; }
.gs-testi-mark { font-size: 2.6rem; color: var(--gs-violet); opacity: .22; }
.gs-testi-slide blockquote { margin: 8px 0 18px; font-family: 'Rubik', sans-serif; font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 1.55; color: #14194a; font-weight: 500; }
.gs-testi-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: auto; }
.gs-testi-tags span { background: #f1eeff; color: var(--gs-violet-dark); border-radius: 30px; padding: 5px 14px; font-size: .8rem; font-weight: 700; }
.gs-testi-tags i { font-size: .65rem; margin-right: 4px; }
.gs-testi-slide figcaption { display: flex; align-items: center; gap: 14px; padding-top: 20px; margin-top: 20px; border-top: 1px solid #eceffd; }
.gs-testi-slide figcaption strong { display: block; color: #14194a; font-size: 1.05rem; }
.gs-testi-slide figcaption small { color: #6a7099; }
.gs-avatar-lg { width: 54px; height: 54px; font-size: 1.25rem; }
.gs-testi-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #eceffd; z-index: 2; }
.gs-testi-progress span { display: block; height: 100%; width: 100%; transform-origin: left; background: linear-gradient(90deg, var(--gs-violet), var(--gs-magenta)); animation: gsProg 6.5s linear infinite; }
@keyframes gsProg { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 991.98px) { .gs-testi-stage { min-height: 420px; } .gs-testi-slide { padding: 34px 26px 28px; } .gs-testi-tab.active { transform: none; } }
@media (prefers-reduced-motion: reduce) { .gs-testi-progress span { animation: none; } }

/* ============================== Security v2 ============================== */
.gs-secure-sec { padding: 78px 0; }
.gs-sec-col { display: flex; flex-direction: column; gap: 16px; }
.gs-sec-card { position: relative; display: flex; gap: 14px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 18px; padding: 20px 18px; backdrop-filter: blur(6px); transition: transform .25s, border-color .25s, background .25s; overflow: hidden; }
.gs-sec-card:hover { transform: translateY(-4px); border-color: var(--gs-cyan); background: rgba(124,77,255,.2); }
.gs-sec-num { position: absolute; right: 14px; bottom: 4px; font-family: 'Rubik', sans-serif; font-weight: 800; font-size: 1.6rem; color: rgba(255,255,255,.1); }
.gs-sec-ic { flex: 0 0 46px; height: 46px; border-radius: 13px; background: linear-gradient(135deg, var(--gs-cyan), var(--gs-violet)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.15rem; }
.gs-sec-card strong { display: block; color: #fff; font-size: 1rem; margin-bottom: 3px; }
.gs-sec-card div span { font-size: .86rem; color: #c1c8f5; line-height: 1.5; display: block; }
.gs-shield { position: relative; width: 250px; height: 290px; margin: 0 auto; display: flex; align-items: center; justify-content: center; }
.gs-shield svg { position: relative; z-index: 2; width: 170px; filter: drop-shadow(0 24px 40px rgba(34,211,238,.35)); animation: gsFloat 6s ease-in-out infinite; }
.gs-ring { position: absolute; border-radius: 50%; border: 1.5px solid rgba(34,211,238,.4); animation: gsRing 4s ease-out infinite; }
.gs-ring-1 { width: 200px; height: 200px; } .gs-ring-2 { width: 200px; height: 200px; animation-delay: 1.3s; } .gs-ring-3 { width: 200px; height: 200px; animation-delay: 2.6s; }
@keyframes gsRing { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(1.5); opacity: 0; } }
.gs-deliver-bar { margin-top: 44px; background: linear-gradient(135deg, rgba(255,255,255,.1), rgba(255,255,255,.04)); border: 1px solid rgba(255,255,255,.18); border-radius: 22px; padding: 28px 30px; }
.gs-deliver-bar h3 { color: #fff; font-size: 1.2rem; margin-bottom: 6px; }
.gs-deliver-bar p { color: #b9c0f0; font-size: .9rem; margin: 0; }
.gs-deliver-bar ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 18px; }
.gs-deliver-bar li { display: flex; gap: 9px; color: #e5e8ff; font-size: .92rem; }
.gs-deliver-bar li i { color: #34d399; margin-top: 4px; }
@media (max-width: 767.98px) { .gs-deliver-bar ul { grid-template-columns: 1fr; } .gs-shield { height: 240px; } }
@media (prefers-reduced-motion: reduce) { .gs-ring, .gs-shield svg { animation: none; } }


/* ============================ Testimonials: more feedback ============================ */
.gs-testi-tab { padding: 11px 16px; }
.gs-testi-list { gap: 9px; }
.gs-testi-stage { min-height: 430px; }
.gs-testi-slide blockquote.long { font-size: clamp(1.02rem, 1.6vw, 1.22rem); line-height: 1.6; }
.gs-testi-nav { position: absolute; right: 26px; bottom: 26px; z-index: 3; display: flex; align-items: center; gap: 8px; }
.gs-testi-count { font-size: .85rem; color: #6a7099; margin-right: 6px; font-weight: 700; }
.gs-testi-count b { color: var(--gs-violet); }
.gs-testi-nav button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d9ddff; background: #fff; color: var(--gs-violet); transition: all .2s; }
.gs-testi-nav button:hover { background: var(--gs-violet); color: #fff; border-color: var(--gs-violet); }
@media (max-width: 991.98px) { .gs-testi-stage { min-height: 520px; } .gs-testi-slide figcaption { padding-right: 130px; } }

/* ============================ About v2 ============================ */
.gs-about-sec { background: #fff; padding: 70px 0; }
.gs-about-visual { position: relative; padding: 20px; }
.gs-about-frame { background: radial-gradient(400px 300px at 70% 20%, rgba(124,77,255,.55), transparent 65%), linear-gradient(135deg, #100a36, #24115f 55%, #0c1b57); border-radius: 30px; padding: 26px; box-shadow: 0 30px 60px rgba(29,18,101,.3); }
.gs-about-frame img { width: 100%; height: auto; display: block; }
.gs-about-badge { position: absolute; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 12px 18px; box-shadow: 0 16px 34px rgba(20,26,74,.2); animation: gsFloat 6s ease-in-out infinite; }
.gs-about-badge strong { display: block; font-family: 'Rubik', sans-serif; font-size: 1.6rem; color: var(--gs-violet); line-height: 1.1; }
.gs-about-badge span { font-size: .8rem; color: #5a6088; font-weight: 600; }
.gs-about-badge i { color: #059669; margin-right: 6px; }
.gs-about-badge-1 { left: -4px; top: 12%; }
.gs-about-badge-2 { right: -4px; bottom: 26%; animation-delay: -2s; }
.gs-about-badge-3 { left: 8%; bottom: 2%; animation-delay: -4s; padding: 10px 16px; }
.gs-value { display: flex; gap: 12px; height: 100%; background: #f6f7ff; border: 1px solid #e6e9ff; border-radius: 14px; padding: 14px; transition: transform .2s, box-shadow .2s; }
.gs-value:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(124,77,255,.14); }
.gs-value > span { flex: 0 0 40px; height: 40px; border-radius: 11px; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; display: flex; align-items: center; justify-content: center; }
.gs-value strong { display: block; color: #14194a; font-size: .95rem; }
.gs-value small { color: #5a6088; font-size: .82rem; line-height: 1.4; display: block; }
.gs-pillar { display: block; height: 100%; text-align: center; background: linear-gradient(180deg, #fff, #f6f7ff); border: 1px solid #e6e9ff; border-radius: 18px; padding: 22px 16px; text-decoration: none; transition: transform .25s, box-shadow .25s, border-color .25s; }
.gs-pillar:hover { transform: translateY(-6px); border-color: var(--gs-violet); box-shadow: 0 18px 36px rgba(124,77,255,.18); }
.gs-pillar i { font-size: 1.6rem; color: var(--gs-violet); margin-bottom: 10px; display: block; }
.gs-pillar strong { display: block; color: #14194a; }
.gs-pillar span { font-size: .84rem; color: #5a6088; }
@media (max-width: 575.98px) { .gs-about-badge-1 { left: 0; } .gs-about-badge-2 { right: 0; } }

/* ============================ Footer CTA v2 ============================ */
.gs-footer-cta { position: relative; overflow: hidden; padding: 56px 0; background: radial-gradient(600px 300px at 90% 0%, rgba(34,211,238,.25), transparent 60%), linear-gradient(120deg, #4a2ad0 0%, #8b2fe0 55%, #c026d3 100%); }
.gs-footer-cta::before { content: ""; position: absolute; inset: 0; background-image: url("/img/hero-pattern.svg"); background-size: 380px; opacity: .5; pointer-events: none; }
.gs-footer-cta .container { position: relative; z-index: 1; }
.gs-footer-cta h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; margin: 12px 0 10px; }
.gs-cta-kicker { display: inline-flex; gap: 8px; align-items: center; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); border-radius: 30px; padding: 5px 16px; font-size: .84rem; font-weight: 700; }
.gs-cta-points { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: inherit; }
.gs-cta-points li { font-weight: 600; font-size: .93rem; }
.gs-cta-points i { color: #ffd76a; margin-right: 6px; }
.gs-cta-card { background: rgba(10,14,39,.35); border: 1px solid rgba(255,255,255,.25); border-radius: 22px; padding: 24px; backdrop-filter: blur(8px); box-shadow: 0 24px 50px rgba(0,0,0,.28); }
.gs-cta-or { text-align: center; margin: 14px 0; position: relative; }
.gs-cta-or::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid rgba(255,255,255,.25); }
.gs-cta-or span { position: relative; background: #5a2fd0; padding: 0 12px; font-size: .8rem; color: #e5e8ff; border-radius: 20px; }
.gs-cta-note { margin: 14px 0 0; font-size: .82rem; color: #e5e8ff; text-align: center; }
@media (max-width: 991.98px) { .gs-cta-points { justify-content: center; } }

/* fixes: footer brand must stay white on the dark footer; readable "Email us" button */
.gs-footer .gs-brand { color: #fff; }
.gs-cta-card .btn-light { background: #fff; color: #14194a; font-weight: 700; opacity: 1; }
.gs-cta-card .btn-light:hover { background: #f1eeff; color: var(--gs-violet-dark); }


/* ======================= Testimonials v3: 4-up endless slider ======================= */
.gs-tslider { overflow: hidden; margin: 0 -12px; padding: 14px 0 26px; }
.gs-ttrack { display: flex; will-change: transform; --pv: 1; }
.gs-tcard { flex: 0 0 calc(100% / var(--pv)); padding: 0 12px; box-sizing: border-box; }
@media (min-width: 768px)  { .gs-ttrack { --pv: 2; } }
@media (min-width: 992px)  { .gs-ttrack { --pv: 3; } }
@media (min-width: 1200px) { .gs-ttrack { --pv: 4; } }
.gs-tcard-in { position: relative; height: 100%; display: flex; flex-direction: column; background: #fff; border: 1px solid #e6e9ff; border-radius: 20px; padding: 26px 22px 22px; box-shadow: 0 12px 30px rgba(20,26,74,.08); overflow: hidden; }
.gs-tcard-in::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, var(--gs-violet), var(--gs-magenta), #ff8a3d); }
.gs-tmark { color: var(--gs-violet); opacity: .25; font-size: 1.7rem; }
.gs-tcard blockquote { margin: 10px 0 14px; font-size: .95rem; line-height: 1.65; color: #2b3050; flex: 1; }
.gs-ttags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.gs-ttags span { background: #f1eeff; color: var(--gs-violet-dark); border-radius: 30px; padding: 3px 11px; font-size: .74rem; font-weight: 700; }
.gs-ttags i { font-size: .6rem; margin-right: 3px; }
.gs-tcard footer { display: flex; align-items: center; gap: 12px; border-top: 1px solid #eceffd; padding-top: 14px; }
.gs-tcard footer strong { display: block; color: #14194a; font-size: .95rem; }
.gs-tcard footer small { color: #6a7099; font-size: .78rem; line-height: 1.3; display: block; }
.gs-tctrl { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.gs-tctrl > span { font-size: .84rem; color: #5a6088; text-align: center; }
.gs-tctrl > span i { color: var(--gs-violet); margin-right: 6px; }
.gs-tctrl button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #d9ddff; background: #fff; color: var(--gs-violet); transition: all .2s; }
.gs-tctrl button:hover { background: var(--gs-violet); color: #fff; border-color: var(--gs-violet); }


/* ============================ Combined contact CTA ============================ */
.gs-cta-sec { position: relative; overflow: hidden; padding: 72px 0; color: #fff; background: radial-gradient(700px 380px at 95% 0%, rgba(34,211,238,.28), transparent 60%), linear-gradient(120deg, #3b1fb8 0%, #7a2bd8 55%, #b024c4 100%); }
.gs-cta-sec::before { content: ""; position: absolute; inset: 0; background-image: url("/img/hero-pattern.svg"); background-size: 380px; opacity: .45; pointer-events: none; }
.gs-cta-sec .container { position: relative; z-index: 1; }
.gs-cta-sec h2 { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.4rem); font-weight: 800; margin: 14px 0 12px; }
.gs-cta-lead { color: #ece9ff; font-size: 1.02rem; }
.gs-cta-steps { list-style: none; padding: 0; margin: 24px 0; }
.gs-cta-steps li { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.gs-cta-steps b { flex: 0 0 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #ffd76a, #ff8a3d); color: #3a1600; display: flex; align-items: center; justify-content: center; font-family: 'Rubik', sans-serif; }
.gs-cta-steps strong { display: block; }
.gs-cta-steps small { color: #dcd8ff; }
.gs-cta-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.gs-cta-mail { color: #fff !important; font-weight: 600; text-decoration: none; }
.gs-cta-mail i { color: #ffd76a; margin-right: 6px; }
.gs-cta-sec .gs-lead-card { background: #fff; color: #2b3050; padding: 30px; border-radius: 24px; box-shadow: 0 30px 70px rgba(0,0,0,.35); }
.gs-lf-label { font-weight: 800; color: #14194a; margin-bottom: 10px; }
.gs-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-pill input { position: absolute; opacity: 0; pointer-events: none; }
.gs-pill span { display: inline-flex; align-items: center; gap: 7px; border: 1.5px solid #d9ddff; background: #f8f9ff; color: #3a4080; border-radius: 30px; padding: 8px 15px; font-size: .86rem; font-weight: 700; cursor: pointer; transition: all .18s; }
.gs-pill span i { color: var(--gs-violet); }
.gs-pill:hover span { border-color: var(--gs-violet); }
.gs-pill input:checked + span { background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); border-color: transparent; color: #fff; box-shadow: 0 8px 18px rgba(124,77,255,.35); }
.gs-pill input:checked + span i { color: #fff; }
.gs-pill input:focus-visible + span { outline: 3px solid rgba(124,77,255,.4); }
.gs-lf-note { font-size: .8rem; color: #6a7099; text-align: center; }
.gs-lf-note i { color: var(--gs-violet); margin-right: 5px; }
@media (max-width: 575.98px) { .gs-cta-sec { padding: 48px 0; } .gs-cta-sec .gs-lead-card { padding: 20px; } }


/* footer v3: bigger store buttons (stacked in the brand column) */
.gs-footer .store-wrap { margin-top: 20px; }
.gs-footer .store-label { color: var(--gs-cyan); }
.gs-footer .store-lg .store-badges { flex-direction: column; align-items: stretch; gap: 12px; }
.gs-footer .store-lg .store-badge { justify-content: flex-start; padding: 12px 22px 12px 18px; }
.gs-footer-legal a { white-space: nowrap; }


/* footer store band: full width, buttons side by side and large */
.gs-footer-stores { border-top: 1px solid rgba(255,255,255,.08); background: linear-gradient(90deg, rgba(124,77,255,.16), rgba(34,211,238,.08)); padding: 34px 0; }
.gs-fs-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px 40px; flex-wrap: wrap; }
.gs-fs-text { flex: 1 1 380px; }
.gs-fs-kicker { color: var(--gs-cyan); font-size: .82rem; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 800; }
.gs-fs-kicker i { margin-right: 6px; }
.gs-fs-text h3 { color: #fff; font-size: clamp(1.25rem, 2.2vw, 1.7rem); font-weight: 800; margin: 6px 0 6px; }
.gs-fs-text p { color: #b9c0f0; margin: 0; }
.gs-fs-buttons { flex: 0 1 auto; }
.gs-fs-buttons .store-wrap { margin: 0; }
.gs-fs-buttons .store-badges { flex-wrap: nowrap; gap: 18px; }
.store-xl .store-badge { padding: 14px 30px 14px 24px; border-radius: 16px; gap: 14px; border-width: 2px; }
.store-xl .store-badge i { font-size: 2.7rem; }
.store-xl .store-badge small { font-size: .72rem; }
.store-xl .store-badge strong { font-size: 1.55rem; }
.store-end .store-badges { justify-content: flex-end; }
@media (max-width: 991.98px) { .gs-fs-inner { justify-content: center; text-align: center; } .gs-fs-buttons .store-badges, .store-end .store-badges { justify-content: center; } }
@media (max-width: 575.98px) { .gs-fs-buttons .store-badges { flex-wrap: wrap; } .store-xl .store-badge { padding: 10px 20px 10px 16px; } .store-xl .store-badge i { font-size: 2rem; } .store-xl .store-badge strong { font-size: 1.2rem; } }

/* ---- Blog (generated pages: /blog, /blog/{slug}) ---- */
.gs-blog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e6e9ff; border-radius: 14px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.gs-blog-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(124,77,255,.15); }
.gs-blog-thumb { display: block; aspect-ratio: 16 / 9; background: #f1f3ff; overflow: hidden; }
.gs-blog-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-blog-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--gs-violet, #7c4dff); font-size: 2.4rem; background: linear-gradient(135deg, #eef0ff, #f7f2ff); }
.gs-blog-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gs-blog-body h3 a, .gs-blog-feature h2 a { color: #14194a; text-decoration: none; }
.gs-blog-body h3 a:hover, .gs-blog-feature h2 a:hover { color: var(--gs-violet, #7c4dff); }
.gs-blog-body p { color: #5a6079; margin: 0; flex: 1; }
.gs-blog-cat { display: inline-block; align-self: flex-start; background: #efeaff; color: var(--gs-violet, #7c4dff); font-size: .75rem; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; padding: 3px 10px; border-radius: 99px; }
.gs-blog-feature { border: 1px solid #e6e9ff; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 10px 30px rgba(20,25,74,.06); }
.gs-blog-feature img { display: block; height: 100%; max-height: 380px; object-fit: cover; }
.gs-article { font-size: 1.06rem; line-height: 1.85; color: #262b45; overflow-wrap: anywhere; }
.gs-article h2 { font-size: 1.7rem; margin: 2.2rem 0 .8rem; scroll-margin-top: 90px; }
.gs-article h3 { font-size: 1.3rem; margin: 1.8rem 0 .6rem; scroll-margin-top: 90px; }
.gs-article h4 { font-size: 1.1rem; margin: 1.4rem 0 .5rem; }
.gs-article p, .gs-article ul, .gs-article ol { margin-bottom: 1.15rem; }
.gs-article img { max-width: 100%; height: auto; border-radius: 10px; }
.gs-article figure { margin: 1.5rem 0; text-align: center; }
.gs-article figcaption { font-size: .9rem; color: #6a7089; margin-top: .4rem; }
.gs-article blockquote { border-left: 4px solid var(--gs-violet, #7c4dff); background: #f7f5ff; padding: 12px 18px; margin: 1.5rem 0; border-radius: 0 10px 10px 0; }
.gs-article pre { background: #14194a; color: #eef; padding: 14px 16px; border-radius: 10px; overflow-x: auto; }
.gs-article a { color: var(--gs-violet, #7c4dff); text-decoration: underline; }
.gs-article iframe { max-width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 10px; }
.gs-blog-toc { background: #f7f8ff; border: 1px solid #e6e9ff; border-radius: 12px; padding: 16px 20px; }
.gs-blog-toc ol { margin: 8px 0 0; padding-left: 20px; }
.gs-blog-toc a { color: #14194a; text-decoration: none; }
.gs-blog-toc a:hover { color: var(--gs-violet, #7c4dff); text-decoration: underline; }
.gs-blog-cta { background: linear-gradient(135deg, #14194a, #4b2fbf); color: #e9ebff; border-radius: 16px; padding: 28px 30px; }
.gs-blog-nav { display: block; border: 1px solid #e6e9ff; border-radius: 12px; padding: 14px 18px; text-decoration: none; color: #14194a; height: 100%; }
.gs-blog-nav small { display: block; color: #6a7089; }
.gs-blog-nav:hover { border-color: var(--gs-violet, #7c4dff); }

/* ---- Home: 8-step game workflow ---- */
.gs-wf-sec { background: #fff; padding: 70px 0; }
.gs-wf-title { font-family: 'Rubik', sans-serif; font-weight: 700; font-size: clamp(1.7rem, 3.6vw, 2.8rem); color: #1c1c28; line-height: 1.2; max-width: 900px; margin: 0 auto 14px; }
.gs-wf-title span { color: #0d99ff; }
.gs-wf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 56px 20px; max-width: 1100px; margin: 0 auto; }
.gs-wf-item { position: relative; text-align: center; }
.gs-wf-circle { position: relative; width: 96px; height: 96px; margin: 0 auto 18px; border: 2px dashed #0d99ff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #4b2fbf; font-size: 2rem; background: #fff; }
.gs-wf-circle img { width: 64px; height: 64px; object-fit: contain; }
.gs-wf-num { position: absolute; left: -22px; top: 2px; width: 38px; height: 38px; border-radius: 50%; background: #0d99ff; color: #fff; font: 600 1rem/38px 'Rubik', sans-serif; text-align: center; }
.gs-wf-item h3 { font-family: 'Rubik', sans-serif; font-weight: 600; font-size: 1.15rem; color: #111; margin: 0; }
.gs-wf-item.has-arrow::after { content: ""; position: absolute; top: 20px; left: calc(50% + 78px); width: 110px; height: 34px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 34' fill='none'%3E%3Cpath d='M2 8 C40 -2 80 4 104 26' stroke='%230d5fe6' stroke-width='2' stroke-dasharray='5 4' stroke-linecap='round'/%3E%3Cpath d='M96 24 L105 28 L101 19' stroke='%230d5fe6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
@media (max-width: 991.98px) { .gs-wf-grid { grid-template-columns: repeat(2, 1fr); gap: 44px 16px; } .gs-wf-item.has-arrow::after { display: none; } }
@media (max-width: 479.98px) { .gs-wf-num { left: -14px; } }

/* ---- Footer disclaimer ---- */
.gs-footer-disclaimer { padding: 22px 0 6px; }
.gs-footer-disclaimer p { max-width: 1100px; margin: 0 auto; border: 1px solid rgba(255, 255, 255, .85); border-radius: 10px; padding: 14px 22px; text-align: center; color: #fff; font-size: .95rem; line-height: 1.7; }
@media (min-width: 768px) { .gs-wf-title span { white-space: nowrap; } }

/* ---- Play-page long-form guide content ---- */
.gs-prose { font-size: 1.04rem; line-height: 1.85; color: #2a2f4a; }
.gs-prose h3 { font-size: 1.25rem; margin: 1.6rem 0 .6rem; color: #14194a; }
.gs-prose p, .gs-prose ul, .gs-prose ol { margin-bottom: 1.1rem; }
.gs-prose table { width: 100%; margin-bottom: 1.2rem; }
.gs-prose th { background: #f1f3ff; }
.gs-prose dt { font-weight: 700; color: #14194a; margin-top: .9rem; }
.gs-prose dd { margin: 0 0 .3rem; }

/* ---- Play pages: bigger, attention-grabbing download buttons ---- */
.gs-play-cta { margin-top: 26px; padding: 18px 20px 20px; border-radius: 20px; background: linear-gradient(135deg, rgba(124,77,255,.28), rgba(0,200,255,.14)); border: 1px solid rgba(255,255,255,.28); box-shadow: 0 0 0 4px rgba(124,77,255,.12), 0 18px 40px rgba(0,0,0,.35); }
.gs-play-cta .store-wrap { margin: 0; }
.gs-play-cta-tag { display: inline-flex; align-items: center; gap: 8px; background: #ffb400; color: #1b1b1b; font-weight: 800; font-size: .8rem; letter-spacing: .8px; text-transform: uppercase; padding: 5px 14px; border-radius: 99px; margin-bottom: 10px; animation: gs-tag-pop 2.4s ease-in-out infinite; }
.gs-play-cta-title { font: 700 1.35rem/1.3 'Rubik', sans-serif; color: #fff; margin: 0 0 14px; }
.gs-play-cta .store-badge { animation: gs-store-glow 2.2s ease-in-out infinite; }
.gs-play-cta .store-badge + .store-badge { animation-delay: 1.1s; }
.gs-play-cta .store-xl .store-badge { padding: 16px 34px 16px 26px; }
.gs-play-cta .store-xl .store-badge i { font-size: 3rem; }
.gs-play-cta .store-xl .store-badge strong { font-size: 1.75rem; }
.gs-play-cta-center { display: inline-block; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.4); }
@keyframes gs-store-glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,255,255,.55); transform: translateY(0); } 50% { box-shadow: 0 0 0 12px rgba(255,255,255,0); transform: translateY(-2px); } }
@keyframes gs-tag-pop { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .gs-play-cta .store-badge, .gs-play-cta-tag { animation: none; } }
@media (max-width: 575.98px) { .gs-play-cta .store-xl .store-badges { flex-direction: column; align-items: stretch; } .gs-play-cta .store-xl .store-badge { justify-content: flex-start; } .gs-play-cta-title { font-size: 1.15rem; } }
.gs-play-sticky { display: none; }
@media (max-width: 767.98px) {
    .gs-play-sticky { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; padding: 8px 76px 8px 10px; background: rgba(15, 18, 55, .96); border-top: 1px solid rgba(255,255,255,.2); box-shadow: 0 -8px 24px rgba(0,0,0,.35); }
    .gs-play-sticky .store-badges { flex-wrap: nowrap; gap: 8px; justify-content: center; }
    .gs-play-sticky .store-badge { animation: gs-store-glow 2.2s ease-in-out infinite; }
}
@media (max-width: 575.98px) { .gs-play-cta .store-xl .store-badge { width: 100%; padding: 12px 20px 12px 18px; } .gs-play-cta .store-xl .store-badge strong { font-size: 1.45rem; white-space: nowrap; } .gs-play-cta .store-xl .store-badge i { font-size: 2.4rem; } }

/* ==========================================================================
   Service pages (partials/landing.php) — themed layout
   ========================================================================== */
.gs-sv-hero { padding: 64px 0 70px; }
.gs-sv-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .85rem; margin-bottom: 16px; color: #b8beff; }
.gs-sv-crumb a { color: #b8beff; text-decoration: none; } .gs-sv-crumb a:hover { color: #fff; }
.gs-sv-crumb i { font-size: .6rem; opacity: .7; }
.gs-sv-kicker { display: inline-flex; align-items: center; gap: 8px; background: rgba(34,211,238,.12); border: 1px solid rgba(34,211,238,.35); color: var(--gs-cyan); font-weight: 700; font-size: .8rem; letter-spacing: 1.2px; text-transform: uppercase; padding: 5px 14px; border-radius: 99px; margin-bottom: 16px; }
.gs-sv-hero h1 { font-size: clamp(1.9rem, 4vw, 3rem); margin-bottom: 16px; }
.gs-sv-hero .lead { font-size: 1.15rem; margin-bottom: 4px; }
.gs-sv-art { position: relative; display: inline-block; }
.gs-sv-art img { filter: drop-shadow(0 28px 46px rgba(124,77,255,.5)); animation: gsFloat 6s ease-in-out infinite; }
.gs-sv-badge { position: absolute; left: -8px; bottom: 18px; background: #fff; color: #14194a; font-weight: 700; font-size: .85rem; padding: 8px 14px; border-radius: 12px; box-shadow: 0 12px 28px rgba(0,0,0,.3); }
.gs-sv-badge i { color: var(--gs-gold); margin-right: 6px; }
.gs-sv-sec { padding: 70px 0; }
.gs-sv-soft { background: #f6f7ff; }
.gs-sv-dark { background: radial-gradient(700px 320px at 50% 0, rgba(124,77,255,.28), transparent 70%), linear-gradient(135deg, #0a0e27, #141a4a); }
.gs-sv-head { text-align: center; margin-bottom: 42px; }
.gs-sv-head h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 800; color: #14194a; margin: 4px 0 0; }
.gs-sv-head .section-subtitle { font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; font-size: .8rem; }
.gs-sv-prose { color: #3a4066; line-height: 1.85; }
.gs-sv-card { background: #fff; border: 1px solid #e6e9ff; border-radius: 18px; padding: 28px 26px; box-shadow: 0 8px 26px rgba(20,26,74,.06); transition: transform .25s, box-shadow .25s, border-color .25s; }
.gs-sv-card:hover { transform: translateY(-6px); border-color: var(--gs-violet); box-shadow: 0 20px 40px rgba(124,77,255,.16); }
.gs-sv-ico { display: inline-flex; width: 56px; height: 56px; border-radius: 16px; align-items: center; justify-content: center; font-size: 1.4rem; color: #fff; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); margin-bottom: 16px; box-shadow: 0 10px 22px rgba(124,77,255,.35); }
.gs-sv-card h3 { font-size: 1.15rem; color: #14194a; margin-bottom: 8px; }
.gs-sv-card p { color: #5a6088; margin: 0; font-size: .96rem; }
.gs-sv-why { display: flex; gap: 16px; align-items: flex-start; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 22px; }
.gs-sv-why > i { flex: 0 0 46px; height: 46px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; background: rgba(34,211,238,.16); color: var(--gs-cyan); font-size: 1.2rem; }
.gs-sv-why h3 { font-size: 1.05rem; color: #fff; margin-bottom: 6px; }
.gs-sv-why p { color: #c9cdf5; font-size: .92rem; margin: 0; }
.gs-sv-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; position: relative; }
.gs-sv-step { position: relative; background: #fff; border: 1px solid #e6e9ff; border-radius: 16px; padding: 30px 18px 22px; text-align: center; box-shadow: 0 8px 22px rgba(20,26,74,.05); }
.gs-sv-step > i { font-size: 1.6rem; color: var(--gs-violet); margin-bottom: 12px; }
.gs-sv-step h3 { font-size: 1rem; color: #14194a; margin-bottom: 8px; }
.gs-sv-step p { font-size: .88rem; color: #5a6088; margin: 0; }
.gs-sv-stepnum { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; font: 700 .95rem/34px 'Rubik', sans-serif; box-shadow: 0 8px 16px rgba(124,77,255,.4); }
.gs-sv-chip { background: #fff; border: 1px solid #e0e4ff; color: #2a3070; font-weight: 700; padding: 8px 18px; border-radius: 99px; box-shadow: 0 4px 12px rgba(20,26,74,.05); }
.gs-sv-model { text-align: center; border: 1px solid #e6e9ff; border-radius: 18px; padding: 30px 24px; background: linear-gradient(180deg, #fff, #f8f6ff); }
.gs-sv-model > i { font-size: 1.8rem; color: var(--gs-violet); margin-bottom: 12px; }
.gs-sv-model h3 { font-size: 1.15rem; color: #14194a; }
.gs-sv-model p { color: #5a6088; margin: 0; }
.gs-sv-faq { background: #fff; border: 1px solid #e6e9ff; border-radius: 14px; padding: 4px 22px; margin-bottom: 12px; box-shadow: 0 6px 16px rgba(20,26,74,.04); }
.gs-sv-faq summary { cursor: pointer; font-weight: 700; color: #14194a; padding: 16px 0; list-style: none; position: relative; padding-right: 30px; }
.gs-sv-faq summary::-webkit-details-marker { display: none; }
.gs-sv-faq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--gs-violet); }
.gs-sv-faq[open] summary::after { content: "–"; }
.gs-sv-faq p { color: #4a5078; margin: 0 0 16px; }
.gs-sv-cta { padding: 76px 0; color: #dfe2ff; background: radial-gradient(600px 300px at 15% 0, rgba(192,38,211,.35), transparent 70%), radial-gradient(600px 300px at 85% 100%, rgba(34,211,238,.25), transparent 70%), linear-gradient(135deg, #0a0e27, #1d1660); }
.gs-sv-cta h2 { color: #fff; font-size: clamp(1.6rem, 3.4vw, 2.5rem); font-weight: 800; margin-bottom: 10px; }
.gs-sv-cta p { max-width: 640px; margin: 0 auto 24px; font-size: 1.05rem; }
.gs-sv-cta .gs-sv-cta-note { font-size: .9rem; margin: 22px auto 0; max-width: none; text-align: center; opacity: .85; }
.gs-sv-cta .d-flex { justify-content: center; align-items: center; }
@media (max-width: 991.98px) { .gs-sv-steps { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; } .gs-sv-sec { padding: 54px 0; } .gs-sv-badge { left: 8px; } }
@media (max-width: 575.98px) { .gs-sv-steps { grid-template-columns: 1fr; } }
.gs-sv-shot { margin: 0; border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid #e6e9ff; box-shadow: 0 14px 34px rgba(20,26,74,.12); }
.gs-sv-shot img { display: block; width: 100%; height: auto; }

/* ---- Shared compact hero + legal pages ---- */
.gs-sv-hero-compact { padding: 56px 0 60px; }
.gs-sv-hero-compact .lead { max-width: 720px; }
.gs-legal { background: #fff; }
.gs-legal h2 { font-size: 1.35rem; color: #14194a; margin: 1.8rem 0 .7rem; }
.gs-legal p, .gs-legal li { color: #3a4066; line-height: 1.85; }
.gs-legal ul { margin-bottom: 1rem; }
.gs-legal a { color: var(--gs-violet-dark); }
.gs-sv-steps-3 { grid-template-columns: repeat(3, 1fr); row-gap: 34px; }
.gs-sv-steps-3 .gs-sv-step { padding-top: 34px; text-align: left; }
@media (max-width: 991.98px) { .gs-sv-steps-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .gs-sv-steps-3 { grid-template-columns: 1fr; } }
.gs-sv-cta .gs-play-cta { margin-top: 8px; }
.gs-sv-hero .gs-play-cta { max-width: 560px; }
.gs-sv-hero .gs-play-cta { max-width: none; }
@media (min-width: 992px) { .gs-sv-hero .gs-play-cta .store-xl .store-badge { padding: 14px 24px 14px 20px; } .gs-sv-hero .gs-play-cta .store-xl .store-badge strong { font-size: 1.5rem; } .gs-sv-hero .gs-play-cta .store-xl .store-badge i { font-size: 2.6rem; } .gs-sv-hero .gs-play-cta .store-xl .store-badges { flex-wrap: nowrap; gap: 14px; } }

/* ---- Portfolio ---- */
.gs-pf-tabs .nav-link { border-radius: 99px; padding: 9px 22px; margin: 4px; color: #14194a; background: #f1f3ff; font-weight: 700; border: 1px solid #e0e4ff; }
.gs-pf-tabs .nav-link:hover { border-color: var(--gs-violet); }
.gs-pf-tabs .nav-link.active { background: linear-gradient(135deg, var(--gs-violet), var(--gs-magenta)); color: #fff; border-color: transparent; box-shadow: 0 8px 18px rgba(124,77,255,.35); }
.gs-pf-pager .btn { border-radius: 10px; min-width: 42px; }
.gs-pf-pager .btn.active { background: var(--gs-violet); border-color: var(--gs-violet); color: #fff; }
.gs-pf-cat { display: inline-block; align-self: flex-start; background: #efeaff; color: var(--gs-violet); font-weight: 800; font-size: .7rem; letter-spacing: .5px; text-transform: uppercase; padding: 2px 10px; border-radius: 99px; margin-bottom: 6px; }
