/* Homepage typography */
.homepage {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Homepage typography scale (readability boost) */
.homepage {
  font-size: 1.05rem; /* base text bigger */
  line-height: 1.65;
}

/* Headings: bigger, clearer hierarchy */
.homepage h1 {
  font-size: clamp(2.4rem, 4vw, 3.2rem);
}

.homepage h2 {
  font-size: clamp(1.7rem, 2.6vw, 2.1rem);
}

.homepage h3 {
  font-size: 1.25rem;
}

.homepage h1, .homepage h2, .homepage h3, .homepage .display-4 {
  font-family: Sora, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  letter-spacing: -0.02em;
}

.hp-hero--gradient{
  background: transparent !important; /* IMPORTANT: hero must not paint its own panel */
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;

  padding-top: 80px;
  padding-bottom: 80px;
  background: transparent !important;
}

/* Keep content readable */
.hp-hero-kicker{
  color: rgba(255,255,255,.75);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .85rem;
  margin-bottom: 10px;
}

.hp-hero-title{
  font-size: clamp(4.2rem, 7.5vw, 6.5rem); /* ~2x size */
  line-height: 1.02;
  font-weight: 900;
  text-transform: uppercase;
  color: #ffc107; /* yellow */

  /* gentle white glow */
  text-shadow:
    0 2px 10px rgba(255,255,255,0.25),
    0 0 30px rgba(255,255,255,0.15);
}


.hp-hero-title-accent{
  color: #ffc107;
}

.hp-hero-subtitle{
  font-size: 1.25rem;
  line-height: 1.6;
  max-width: 42rem;
  color: rgba(255,255,255,0.85);
}


.hp-cta{
  margin-top: 28px;
  padding: 14px 28px;
  font-size: 1.05rem;
  font-weight: 700;
}



/* Shared bright brand gradient for homepage boxes */
:root {
  --hp-grad-yellow: rgba(255, 193, 7, 0.24);
  --hp-grad-pink: rgba(203, 84, 255, 0.26);
  --hp-grad-top: rgba(24, 24, 34, 0.92);
  --hp-grad-bottom: rgba(12, 12, 18, 0.96);
  --hp-border: rgba(255,255,255,0.10);
  --hp-shadow: rgba(0,0,0,0.38);
}

/* HERO SECTION spacing (this is the fix) */
.hp-hero {
  padding-top: 120px;     /* space below navbar */
  padding-bottom: 140px;  /* space before next section */
}


.hp-card:hover,
.homepage .card:hover,
.homepage .accordion-item:hover {
  transform: translateY(-2px);
  transition: transform 160ms ease, box-shadow 160ms ease;
  box-shadow: 0 24px 48px rgba(0,0,0,0.45);
}

/* Apply the same vivid gradient to homepage surfaces (exclude the full-bleed hero section) */
.hp-card,
.hp-mock,
.homepage .card,
.homepage .accordion-item {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  background:
    radial-gradient(1100px 520px at 15% 18%, var(--hp-grad-yellow), transparent 58%),
    radial-gradient(900px 480px at 82% 12%, var(--hp-grad-pink), transparent 58%),
    linear-gradient(180deg, var(--hp-grad-top), var(--hp-grad-bottom));
  border: 1px solid var(--hp-border);
  box-shadow: 0 16px 36px var(--hp-shadow);
}

/* Reusable hero-like gradient surface */
.hp-surface {
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
  background: radial-gradient(1200px 600px at 15% 20%, rgba(255,193,7,0.18), transparent 55%),
              radial-gradient(900px 500px at 80% 10%, rgba(160,64,255,0.20), transparent 55%),
              linear-gradient(180deg, rgba(255,255,255,0.04), rgba(0,0,0,0.00));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}

.hp-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.75);
  font-size: .9rem;
}

.hp-hero-title {
  text-transform: uppercase;
  font-weight: 800;
  line-height: 1.05;

  /* 🔥 150% size increase */
  font-size: clamp(2.8rem, 6vw, 4.5rem);
}


.hp-hero-sub {
  color: rgba(255,255,255,0.75);
  max-width: 42rem;
}


.hp-mock-inner {
  padding: 1rem;
  color: rgba(255,255,255,0.65);
}



.hp-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(255,193,7,0.12);
  border: 1px solid rgba(255,193,7,0.25);
  color: #ffc107;
  font-weight: 700;
}

.hp-logo-img{
  height: 56px;   /* 2× size */
  width: auto;
  display: block;
}

nav.hp-navbar{
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

nav.hp-navbar .navbar-brand{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


.navbar .navbar-brand,
.navbar .navbar-nav,
.navbar .navbar-nav .nav-link,
.navbar .navbar-actions{
  align-items: center;
}


/* Use-case pills */
.hp-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.8);
  font-size: .95rem;
}

/* Buttons polish */
.homepage .btn-warning {
  font-weight: 600;
}

/* Buttons: visible and consistent */
.homepage .btn {
  border-radius: 999px;
  padding: 0.65rem 1.35rem;
  letter-spacing: 0.01em;
}

.homepage .btn-sm {
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
}

.homepage .btn-outline-light {
  border-color: rgba(255,255,255,0.28);
  color: rgba(255,255,255,0.90);
}

.homepage .btn-outline-light:hover {
  border-color: rgba(255,255,255,0.45);
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.95);
}

/* Make warning buttons pop without looking neon */
.homepage .btn-warning {
  color: #1b1b1b !important;
  box-shadow: 0 10px 25px rgba(255,193,7,0.18);
}

.homepage .btn-warning:hover {
  filter: brightness(1.03);
}

.homepage .nav-link {
  color: rgba(255,255,255,0.92) !important;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.homepage .nav-link:hover {
  color: rgba(255,255,255,0.95) !important;
}

/* Navbar polish (dropdown + logo + language picker) */
.hp-logo {
  display: block;
}

.hp-navlink {
  text-transform: uppercase;
}

.hp-dropdown {
  background: rgba(20, 20, 28, 0.96);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 18px 40px rgba(0,0,0,0.45);
  padding: 0.5rem;
  border-radius: 0.9rem;
  list-style: none;
}

.hp-dropdown .dropdown-item {
  color: rgba(255,255,255,0.90);
  font-weight: 600;
  border-radius: 0.65rem;
  padding: 0.55rem 0.8rem;
}

.hp-dropdown .dropdown-item:hover,
.hp-dropdown .dropdown-item:focus {
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.98);
}

.hp-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
}

.hp-lang-code {
  display: inline-block;
  min-width: 1.6rem;
}

.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: rgba(255,255,255,0.7);
}

.lang-switch a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  font-weight: 600;
}

.lang-switch a.active,
.lang-switch a:hover {
  color: #ffc107;
}

/* Do NOT constrain <main>. Background is full-width; content is centered by hp wrappers. */
.homepage main{
  max-width: none;
  width: 100%;
}


.homepage section {
  padding: 0.5rem 0;
}

/* Readability: consistent high-contrast text on dark surfaces */
.homepage .text-white-50,
.homepage .text-muted,
.homepage .small.text-muted {
  color: rgba(255,255,255,0.72) !important;
}

.homepage p,
.homepage li,
.homepage .lead {
  color: rgba(255,255,255,0.80);
}

.homepage h1,
.homepage h2,
.homepage h3,
.homepage .fw-bold,
.homepage .fw-semibold {
  color: rgba(255,255,255,0.95);
}

/* FAQ accordion: gradient questions + white text + clear borders */
.homepage .accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: rgba(255,255,255,0.10);
  --bs-accordion-btn-color: rgba(255,255,255,0.92);
  --bs-accordion-color: rgba(255,255,255,0.84);
}

/* Each FAQ item box */
.homepage .accordion-item {
  background:
    radial-gradient(1100px 520px at 15% 18%, var(--hp-grad-yellow), transparent 58%),
    radial-gradient(900px 480px at 82% 12%, var(--hp-grad-pink), transparent 58%),
    linear-gradient(180deg, var(--hp-grad-top), var(--hp-grad-bottom)) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 1rem !important;
  overflow: hidden;
  margin-bottom: .75rem; /* space between items */
}

/* Question row */
.homepage .accordion-button {
  background: transparent !important;
  color: rgba(255,255,255,0.92) !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
}

/* Remove Bootstrap focus glow and keep it clean */
.homepage .accordion-button:focus {
  box-shadow: none !important;
}

/* When opened */
.homepage .accordion-button:not(.collapsed) {
  color: rgba(255,255,255,0.96) !important;
  background: transparent !important;
}

/* Arrow icon (make it visible on dark) */
.homepage .accordion-button::after {
  filter: invert(1) opacity(0.85);
}

/* Answer box */
.homepage .accordion-body {
  background: transparent !important;
  color: rgba(255,255,255,0.84) !important;
  border-top: 1px solid rgba(255,255,255,0.10) !important;
}

.hp-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.hp-section{
  padding-top: 80px;
  padding-bottom: 80px;
}

/* Section header */
.hp-section-title {
  font-size: 2.4rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 24px;
}

.hp-list {
  padding-left: 1.1rem;
  margin-top: 0.75rem;
  color: rgba(255,255,255,0.78);
}

.hp-list li {
  margin-bottom: 0.35rem;
}

.hp-callout {
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.85);
}
/* Force gradient on ALL hp-card boxes on the homepage (beats Bootstrap + other css) */
.homepage .hp-card {
  background:
    radial-gradient(1100px 520px at 15% 18%, var(--hp-grad-yellow), transparent 58%),
    radial-gradient(900px 480px at 82% 12%, var(--hp-grad-pink), transparent 58%),
    linear-gradient(180deg, var(--hp-grad-top), var(--hp-grad-bottom)) !important;
  border: 1px solid var(--hp-border) !important;
  box-shadow: 0 16px 36px var(--hp-shadow) !important;
  color: rgba(255,255,255,0.90);
}

/* Hero media: make screenshot fill the whole right-side box */
.hp-hero-media {
  padding: 0 !important;
  overflow: hidden;
  min-height: 360px;          /* keeps it tall even if image is small */
  display: block;
}

.hp-hero-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;          /* fills the box */
  border-radius: 0;           /* remove inner rounding */
  box-shadow: none;           /* remove inner shadow */
}
/* ===== Step 3: Make boxes feel wider (without changing layout) ===== */

/* A) More breathing room inside boxes */
.homepage .hp-card,
.homepage .accordion-item,
.homepage .hp-hero:not(.hp-hero--gradient) {
  padding: 1.75rem !important;
}

/* B) Let text use full available width inside boxes */
.homepage .hp-card p,
.homepage .hp-card .text-white-50,
.homepage .accordion-body {
  max-width: 100%;
}

@media (max-width: 991.98px) {
  .homepage .navbar {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .homepage .navbar .navbar-nav {
    gap: 0.5rem;
  }

  .homepage .hp-hero {
    text-align: center;
  }

  .homepage .hp-hero .d-flex.flex-wrap {
    justify-content: center;
  }

  .hp-section-title {
    flex-direction: column;
    align-items: flex-start;
  }

  .hp-hero-media {
    min-height: 240px;
  }
}

@media (max-width: 575.98px) {
  .homepage {
    font-size: 1rem;
  }

  .homepage h1 {
    font-size: clamp(2rem, 6vw, 2.6rem);
  }

  .homepage .btn {
    width: 100%;
    justify-content: center;
  }
}

/* 🔥 FORCE HERO HEADER (DEBUG – MUST WORK) */
.homepage h1 {
  font-size: 6rem !important;
  color: #ffc107 !important;
  text-shadow:
    0 2px 10px rgba(255,255,255,0.25),
    0 0 30px rgba(255,255,255,0.15);
}


/* Card container */
.hp-card {
  background: rgba(255,255,255,0.04);
  border-radius: 14px;
  padding: 28px;
  position: relative;
  border: 1px solid rgba(255,255,255,0.08);
}

/* ===========================
   Games overview: image cards
   Transparent (no background)
   =========================== */
.hp-game-card{
  background: transparent;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  overflow: hidden;
}



.games-overview-card-image {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}



.hp-game-card-body{
  padding: 20px 20px 18px;

  /* Restored visible gradient panel */
  background: linear-gradient(
    135deg,
    rgba(255, 193, 7, 0.22) 0%,
    rgba(120, 100, 255, 0.22) 55%,
    rgba(10, 10, 18, 0.30) 100%
  );

  border-top: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);

  /* Needed for spacer layout */
  display: flex;
  flex-direction: column;
}


.hp-game-card-title{
  color: #fff;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  font-size: 1.35rem;
}

.hp-game-card-text{
  color: rgba(255,255,255,0.72);
  margin: 0;
  line-height: 1.6;
  font-size: 1.05rem;
}

/* Remove extra paragraph spacing inside game cards */
.hp-game-card-text{
  margin-bottom: 0;
}

.hp-game-card-spacer{
  flex: 1 1 auto;
}

/* LEFT accent stripe (this is the color you asked about) */
.hp-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 100%;
  background: #ffc107; /* amber / yellow accent */
  border-radius: 14px 0 0 14px;
  opacity: 0.85;
}

/* Card title */
.hp-card .fw-bold {
  font-size: 1.15rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* PLATFORM SECTION — card typography only */
.hp-platform-section .hp-card .fw-bold {
  font-size: 1.3rem;       /* bigger title */
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.hp-platform-section .hp-card p {
  font-size: 1.15rem;      /* bigger explanation text */
  line-height: 1.65;
}

.hp-platform-section .hp-card {
  padding: 32px;
}

/* Card body text */
.hp-card p {
  font-size: 1.05rem;
  line-height: 1.6;
}


/* ====== LAYOUT WRAPPER (FORCE) ====== */




/* ====== GLOBAL HOMEPAGE BACKGROUND (FULL-WIDTH) ======
   One ambient gradient layer for the entire homepage.
   No section "background containers" — content stays centered via .hp-content only.
*/
body.homepage {
  overflow-x: hidden;

  /* ONE unified background for the whole homepage */
  background-image:
    /* HERO-strength blobs */
    radial-gradient(1200px 700px at 12% 12%, rgba(255,193,7,0.28), transparent 60%),
    radial-gradient(1100px 650px at 86% 18%, rgba(120,80,255,0.26), transparent 60%),

    /* Mid-page blobs */
    radial-gradient(1000px 600px at 18% 55%, rgba(0,180,255,0.14), transparent 60%),
    radial-gradient(1000px 600px at 82% 62%, rgba(255,193,7,0.12), transparent 60%),

    /* Lower-page blobs */
    radial-gradient(1100px 650px at 30% 92%, rgba(120,80,255,0.16), transparent 60%),
    radial-gradient(900px 520px at 85% 98%, rgba(0,180,255,0.10), transparent 60%);

  background-repeat: no-repeat;
  background-attachment: scroll;
}

.hp-global-bg{
  width: 100%;
  flex: 1; /* allows main to grow, footer stays bottom */


  background:
    radial-gradient(900px 520px at 18% 18%, rgba(255, 198, 0, .25) 0%, rgba(0,0,0,0) 60%),
    radial-gradient(900px 520px at 78% 20%, rgba(140, 85, 255, .25) 0%, rgba(0,0,0,0) 60%),
    radial-gradient(900px 520px at 25% 78%, rgba(20, 210, 255, .16) 0%, rgba(0,0,0,0) 62%),
    radial-gradient(900px 520px at 82% 78%, rgba(255, 130, 80, .14) 0%, rgba(0,0,0,0) 62%),

    /* extra “random” spots lower down the page (Y > 100%) */
    radial-gradient(900px 520px at 22% 140%, rgba(255, 198, 0, .18) 0%, rgba(0,0,0,0) 62%),
    radial-gradient(900px 520px at 80% 165%, rgba(140, 85, 255, .18) 0%, rgba(0,0,0,0) 62%),
    radial-gradient(900px 520px at 30% 215%, rgba(20, 210, 255, .14) 0%, rgba(0,0,0,0) 65%),
    radial-gradient(900px 520px at 75% 245%, rgba(255, 130, 80, .12) 0%, rgba(0,0,0,0) 65%),

    linear-gradient(180deg, #090b10 0%, #0b0d14 100%);

  background-repeat: no-repeat;   /* ✅ this removes the square tiles */
  background-size: auto;          /* ✅ don’t force a tiling size */
}


/* Make sure homepage wrapper stays transparent so the body gradient shows through */
.homepage{
  background: transparent;
}

/* ===== FORCE HOMEPAGE CONTENT CENTERING ===== */



.homepage, .homepage * { box-sizing: border-box; }



.hp-section,
.hp-platform-section,
.homepage section{
  background: transparent !important;
}

.hp-platform-section{
  margin-bottom: 64px;
}

/* ============================
   HERO LAYOUT (single source of truth)
   ============================ */

/* full-width section background stays unified on body; hero itself stays transparent */
.hp-hero,
.hp-hero--gradient{
  background: transparent !important;
}

/* Hero CONTENT wrapper: centered + correct spacing under navbar and before section 2 */
.hp-hero-inner{
  width: min(1440px, calc(100% - 64px));  /* wider hero */
  margin: 0 auto;

  /* side gutters */
  padding-left: 32px;
  padding-right: 32px;

  /* THIS is the gap you want */
  padding-top: 100px;     /* increase if needed */
  padding-bottom: 100px;  /* prevents section 2 sticking to CTA */

  box-sizing: border-box;
}

@media (max-width: 576px){
  .hp-hero-inner{
    padding-left: 16px;
    padding-right: 16px;
    padding-top: 140px;
    padding-bottom: 120px;
  }
}

.hp-carousel img{
  width: 100%;
  height: auto;
  display: block;
}

/* HERO: make carousel box bigger + pop more */
.hp-carousel{
  width: 100%;
  max-width: 900px;         /* makes it big but still balanced */
  margin-left: auto;
}

.hp-carousel .carousel-inner{
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 16 / 9;     /* KEY */
  background: rgba(0,0,0,0.18);
}

/* make image fit inside without cropping */
.hp-carousel .carousel-item,
.hp-carousel .carousel-item img{
  width: 100%;
  height: 100%;
}

.hp-carousel .carousel-item img{
  object-fit: contain;      /* KEY: no crop */
  display: block;
}

/* mobile */
@media (max-width: 991px){
  .hp-carousel{
    max-width: 100%;
    margin-left: 0;
  }
  .hp-carousel .carousel-item img{
    height: 280px;
  }
}

/* Reusable background (homepage-style) for other pages like login/register */
.app-gradient-bg{
  height: auto;  
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(255,193,7,.18), transparent 60%),
    radial-gradient(900px 500px at 85% 20%, rgba(138,92,246,.20), transparent 60%),
    radial-gradient(900px 600px at 50% 80%, rgba(0,180,216,.18), transparent 65%),
    #0b0e14;
}

/* Full-screen background for auth pages (applied to BODY) */
body.auth-body-gradient{
  min-height: 100vh;
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(255,193,7,.18), transparent 60%),
    radial-gradient(900px 500px at 85% 20%, rgba(138,92,246,.20), transparent 60%),
    radial-gradient(900px 600px at 50% 80%, rgba(0,180,216,.18), transparent 65%),
    #0b0e14 !important;
  background-attachment: fixed;
}

/* remove the beige background bleeding through */
body.auth-body-gradient,
body.auth-body-gradient main,
body.auth-body-gradient .container{
  background: transparent !important;
}

.auth-page{
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 16px;
  position: relative;
}

/* AUTH pages (login/register) */
.auth-top-brand{
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.auth-top-brand img{
  height: 44px;
  width: auto;
  display: block;
}

/* Games overview — match top hp-card “glow panel” look */
.hp-game-card-body{
  padding: 20px 20px 18px;
  background: rgba(255,255,255,0.035);
  border-top: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(8px);

  display: flex;
  flex-direction: column;
}

/* Pricing polish */
.hp-price-card{
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
  overflow: visible;
}

.hp-price-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.35);
}



.hp-price-name{
  font-size: 1.35rem;
  font-weight: 900;
  color: #fff;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.06em;

}

.hp-price-amount{
  font-size: 2.4rem;
  font-weight: 900;
  color: #fff;
}

.hp-price-amount span{
  font-size: 1rem;
  font-weight: 600;
  color: rgba(255,255,255,0.6);
}

.hp-price-divider{
  height: 1px;
  background: rgba(255,255,255,0.12);
  margin: 16px 0;
}

.hp-price-list{
  list-style: none;
  padding: 0;
  margin: 0;
}

.hp-price-list li{
  margin: 10px 0;
  font-size: 1.05rem;
  color: rgba(255,255,255,0.82);
}

/* Popular badge */
.hp-price-popular{
  border: 1px solid rgba(255,193,7,0.6);
}

.hp-price-badge{
  position: absolute;
  top: 22px;          /* moved lower */
  right: 20px;
  z-index: 2;

  background: linear-gradient(135deg, #ffc107, #ff9800);
  color: #000;
  font-weight: 800;
  font-size: 0.8rem;
  padding: 6px 12px;
  border-radius: 20px;
}


.hp-section-spacer{
  height: 56px;
}

/* Remove default left stripe on pricing cards */
.hp-price-card::before{
  content: none;
}

/* Top accent bar for pricing cards */
.hp-price-card{
  position: relative;
  overflow: hidden;
}

.hp-price-card::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, #ffc107, #ff9800);
  border-top-left-radius: 14px;
  border-top-right-radius: 14px;
}

/* Consistent section heading + spacing */
.hp-section-title{
  color: #fff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 1.15rem;        /* compact, clean */
  margin: 0;
}

.hp-section-subtitle{
  color: rgba(255,255,255,0.70);
  font-size: 1.05rem;
  max-width: 60ch;
}

/* Yellow divider (light) */
.hp-divider{
  height: 1px;
  background: linear-gradient(90deg, rgba(255,193,7,0), rgba(255,193,7,0.55), rgba(255,193,7,0));
  margin: 44px 0;
}

.hp-price-cta{
  margin-top: 18px;
}

.hp-price-cta .btn{
  width: 50%;
}

/* HOW IT WORKS cards — move accent stripe to the right */
.hp-how-card{
  position: relative;
}

/* Disable inherited left stripe */
.hp-how-card::before{
  content: none;
}

/* Add right accent stripe */
.hp-how-card::after{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, #ffc107, #ff9800);
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}


/* HOW IT WORKS typography */
.hp-how-title{
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 1.05rem;
  color: #fff;
  margin-bottom: 12px;

  /* Align body text across all cards (reserve 2 lines) */
  line-height: 1.2;
  min-height: calc(1.2em * 2);
}


.hp-how-text{
  color: rgba(255,255,255,0.78);
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0;
}

/* Games overview — bottom accent line */
.hp-game-card{
  position: relative;
  overflow: hidden;
}

/* Remove inherited left stripe */
.hp-game-card::before{
  content: none;
}

/* Bottom stripe */
.hp-game-card::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(90deg, #ffc107, #ff9800);
}

/* Solid bars so navbar/footer match perfectly (no transparency/blur) */
.hp-surface-bar{
  background: #0b0d14; /* solid */
  color: rgba(255,255,255,0.85);
}

.hp-surface-bar--top{
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.hp-surface-bar--bottom{
  border-top: 1px solid rgba(255,255,255,0.08);
}

/* FAQ accordion readability on gradient cards */
.homepage .accordion-button{
  background: transparent !important;
  color: #fff !important;
  font-weight: 800;
  border: 0;
  box-shadow: none !important;
}

.homepage .accordion-button:not(.collapsed){
  color: #fff !important;
}

.homepage .accordion-body{
  padding-top: 0.25rem;
}

.hp-wrap{
  width: min(1200px, 80vw);
  margin: 0 auto;
}

.hp-faq-hero{
  display: flex;
  justify-content: space-between;
  align-items: center; /* vertically centers both sides */
  padding-top: 2.5rem; /* same distance from navbar */
}

.hp-faq-hero-left,
.hp-faq-hero-right{
  width: 48%;
}

.hp-faq-hero-right{
  text-align: center; /* centered inside its half */
  display: flex;
  justify-content: center;
}


.hp-faq-hero-left{
  max-width: 60%;
}

.hp-faq-hero-right{
  max-width: 40%;
  text-align: right;
}

/* Pricing page: ensure cards match homepage styling */
.hp-pricing-section .hp-price-card{
  overflow: visible !important; /* prevents MOST POPULAR clipping */
}

/* Make sure text is readable on pricing page cards */
.hp-pricing-section .hp-price-card,
.hp-pricing-section .hp-price-card *{
  color: rgba(255,255,255,0.92);
}

.hp-pricing-section .hp-price-unit{
  color: rgba(255,255,255,0.70);
}

/* Buttons should be 50% width like homepage */
.hp-pricing-section .hp-price-card .btn.hp-cta{
  width: 50% !important;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

/* Game pages: demo placeholders */
.hp-demo-frame{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(10,12,18,0.35);
  overflow: hidden;
}

.hp-demo-label{
  padding: 14px 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.hp-demo-screen{
  position: relative;
  aspect-ratio: 16 / 9;      /* ✅ 16:9 */
  width: 100%;
  height: auto;              /* let ratio control height */
  border-radius: 14px;
  overflow: hidden;
  background: rgba(0,0,0,.65);
}

/* Optional: cap max height so it doesn't become gigantic on huge screens */
.hp-demo-screen{
  max-height: 560px;
}



.hp-demo-iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  display: block;
  overflow: hidden;   /* ✅ */
}



/* Familiada intro section */
.hp-familiada-intro{
  max-width: 820px;
  margin: 0 auto;
}

.hp-familiada-intro p{
  font-size: 1.35rem; /* roughly h3 feel */
  line-height: 1.6;
  color: rgba(255,255,255,0.90);
  margin-bottom: 1.2rem;
}

/* Game page hero split (left text / right demo) */
.hp-hero-split{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 28px;
  align-items: center;
}

.hp-hero-right{
  display: flex;
  justify-content: flex-end;
}

.hp-demo-frame-hero{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;   /* match your PNG ratio */
  overflow: hidden;
  border-radius: 16px;
}


.hp-demo-image{
  width: 100%;
  height: 100%;
  object-fit: contain;  /* preserves full image */
  display: block;
}


/* Intro panel under hero */

.hp-intro-big{
  font-size: 1.25rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.90);
  max-width: 85ch;
}

.hp-card .hp-intro-big{
  max-width: 70ch;
}

/* CAPS titles for cards */
.hp-card-title-caps{
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 0.03em;
}

/* Mobile stacking */
@media (max-width: 991px){
  .hp-hero-split{
    grid-template-columns: 1fr;
  }
  .hp-hero-right{
    justify-content: flex-start;
  }
  .hp-demo-frame-hero .hp-demo-imagewrap{
    width: 100%;
    height: 300px;
  }
}

/* Extra spacing before Business & Schools */
.nav-separate {
  margin-left: 1.5rem;
}

.hp-price-card .hp-price-list li{
  margin-bottom: 0.5rem;
}

/* Blog cards */
.hp-blog-card{
  overflow: hidden;
}

.hp-blog-thumb{
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.hp-blog-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 4-line clamp with trailing ellipsis */
.hp-blog-excerpt{
  color: rgba(255,255,255,0.85);

  display: -webkit-box;
  display: box;

  -webkit-line-clamp: 4;
  line-clamp: 4; /* standard property */

  -webkit-box-orient: vertical;
  box-orient: vertical;

  overflow: hidden;
}


/* CTA sizing */
.hp-blog-btn{
  width: 50%;
}

.footer-links{
  margin-top: 1rem; /* ~one line gap */
  display: flex;
  gap: 18px;
  justify-content: center;
  flex-wrap: wrap;
}
.footer-links a{
  color: rgba(255,255,255,.75);
  text-decoration: none;
}
.footer-links a:hover{
  color: rgba(255,255,255,.95);
  text-decoration: underline;
}

.hp-demo-grid.is-hidden{ display: none; }

/* --- Demo grid layout (2 windows side-by-side) --- */
.hp-demo-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
}

/* On smaller screens, stack (mobile) */
@media (max-width: 991.98px){
  .hp-demo-grid{
    grid-template-columns: 1fr;
  }
}

/* If you use these in HTML, make sure they look like cards */
.hp-demo-card{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(10,12,18,0.35);
  overflow: hidden;
}

.hp-demo-title{
  padding: 14px 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

.hp-demo-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  font-weight:700;
  color:#fff;
  background: linear-gradient(135deg, rgba(0,0,0,0.55), rgba(0,0,0,0.35));
  border-radius: inherit;
  z-index: 2;
}

.hp-demo-screen{
  position: relative;
  overflow: hidden;
}

.hp-demo-iframe{
  position: relative;
  z-index: 1;
}

/* Game card button */
.hp-btn-yellow{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  border: 0;
  border-radius: 999px;

  background: #f6b100;
  color: #111;
  font-weight: 700;
  text-decoration: none;

  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}

.hp-btn-yellow:hover{
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(246,177,0,.35);
  color: #111;
}

/* Specific sizing for overview cards */
.hp-btn-card{
  width: 50%;
  padding: 10px 14px;

  /* consistent top/bottom spacing */
  margin-top: 16px;
  margin-bottom: 0;

  align-self: flex-start; /* left aligned */
}

/* HERO carousel: make the image fill the hero box */
.hp-hero-carousel-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Make sure the hero media box defines a real height */
.hp-hero-carousel,
.hp-hero-media,
.hp-hero-right {
  overflow: hidden;
}
/* Give the carousel a real height on mobile so the image has something to fill */
@media (max-width: 768px){
  .hp-carousel{
    height: 220px;        /* adjust: 200–280 depending on taste */
  }
}

/* Make inner + items match that height */
.hp-carousel .carousel-inner,
.hp-carousel .carousel-item{
  height: 100%;
}

/* Make the image fill the whole slide (no empty area) */
.hp-carousel .carousel-item{
  position: relative;
}

.hp-carousel .carousel-item img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;      /* fill + crop if needed */
  object-position: center;
  display: block;
}

/* MOBILE ONLY: tighten hero spacing */
@media (max-width: 768px){

  .hp-hero,
  .hp-hero-section,
  .hero-section {
    padding-top: 24px !important;   /* reduce large top padding */
  }

  .hp-hero h1,
  .hp-hero .display-4 {
    margin-top: 0 !important;
  }

}

/* MOBILE ONLY: center hero body text */
@media (max-width: 768px){

  .hp-hero p,
  .hp-hero .lead {
    text-align: center !important;
    margin-left: auto;
    margin-right: auto;
  }

}

@media (max-width: 768px){

  .hp-hero {
    text-align: center;
  }

  .hp-hero .btn {
    margin-left: auto;
    margin-right: auto;
  }

}

@media (max-width: 768px) {
  /* Reduce the “top gap” under navbar */
  .hp-hero--gradient {
    padding-top: 40px; /* was ~80px desktop */
  }

  /* Center hero text on mobile */
  .hp-hero-text,
  .hp-hero-text * {
    text-align: center;
  }

  /* Prevent the subtitle line from looking “off-center” */
  .hp-hero-text .hp-hero-subtitle {
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================
   MOBILE FIXES (homepage)
   ========================= */
@media (max-width: 768px) {

  /* reduce the big empty gap under the navbar */
  .hp-hero{
    padding-top: 80px !important;   /* was 160px */
    padding-bottom: 40px !important;
  }

  /* center the hero text on mobile */
  .hp-hero .hp-hero-left{
    text-align: center !important;
  }
  .hp-hero .hp-hero-left .hp-hero-title,
  .hp-hero .hp-hero-left .hp-hero-subtitle{
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Make the carousel IMAGE fill the container */
  .hp-carousel .carousel-inner{
    height: 280px !important;       /* keep your container height */
  }

  .hp-carousel .carousel-item{
    height: 100% !important;
  }

  .hp-carousel img,
  .hp-hero-carousel-img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;   /* IMPORTANT: fills the area */
    object-position: center !important;
    display: block;
  }
}

/* =========================
   MOBILE: hero spacing + centered text (ONLY)
   ========================= */
  @media (max-width: 576px) {
    .hp-hero {
      padding-top: 80px;   /* mobile gap */
    }

    .hp-hero-inner {
      padding-top: 0;      /* remove double stacking */
    }


    /* if the section has extra padding too, reduce it */
    .hp-hero{
      padding-top: 0 !important;
    }

    /* 2) center the hero text */
    .hp-hero-left{
      text-align: center !important;
    }

    .hp-hero-left p,
    .hp-hero-left .hp-hero-subtitle{
      text-align: center !important;
      margin-left: auto !important;
      margin-right: auto !important;
    }

    /* If your buttons sit in a flex row, center them */
    .hp-hero-left .d-flex,
    .hp-hero-left .hp-cta-row,
    .hp-hero-left .hp-hero-cta{
      justify-content: center !important;
    }
  }

/* =========================
   MOBILE HERO FIX
   ========================= */
  @media (max-width: 576px){

    /* reduce giant hero spacing */
    .hp-hero{
      padding-top: 40px !important;   /* was 160px */
      padding-bottom: 40px !important;
    }

    .hp-hero-inner{
      padding-top: 0 !important;      /* remove extra mobile padding */
    }

    /* center text properly */
    .hp-hero-left{
      text-align: center !important;
    }

    .hp-hero-left .hp-hero-title,
    .hp-hero-left .hp-hero-subtitle{
      margin-left: auto !important;
      margin-right: auto !important;
    }

    /* center button row */
    .hp-hero-left .d-flex{
      justify-content: center !important;
    }
  }

  /* MOBILE: reduce only the homepage HERO gap under navbar */
@media (max-width: 576px) {
  .hp-home-hero { padding-top: 1.5rem !important; }
}

/* Make hero / banner images fill their containers nicely */
.hp-carousel .carousel-item,
.hp-carousel img,
.hp-hero-media,
.hp-hero-media img,
.hp-banner,
.hp-banner img {
  width: 100%;
}

/* If the image sits in a fixed-height container, cover it */
.hp-carousel .carousel-item img,
.hp-hero-media img,
.hp-banner img {
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Mobile: give banners a sensible height so cover can work */
@media (max-width: 768px) {
  .hp-carousel {
    min-height: 220px;
  }
  .hp-carousel .carousel-item {
    height: 220px;
  }
}

/* MOBILE: reduce hero spacing under navbar */
@media (max-width: 768px) {

  .hp-home-hero{
    padding-top: 1.5rem !important;   /* half of pt-5 */
  }

}

/* MOBILE: center text only in hero */
@media (max-width: 768px) {

  .hp-home-hero .hp-hero-title,
  .hp-home-hero .hp-hero-subtitle{
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }

  .hp-home-hero .d-flex{
    justify-content:center;
  }

}

/* Ensure hero/banner images fill container */
.hp-carousel .carousel-item img,
.game-hero img,
.hp-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

/* ensure container defines height */
.hp-carousel .carousel-item{
  height:100%;
}

.game-hero{
  min-height:260px;
}

/* =========================
   MOBILE: game page hero spacing + image fill
   ========================= */
@media (max-width: 768px) {
  /* Game pages use: <section class="mb-5 pt-5"> for HERO */
  .homepage-main section.pt-5{
    padding-top: 1.5rem !important; /* reduce huge Bootstrap pt-5 */
  }
}

/* Game pages hero preview image: make it fill the frame */
.hp-demo-frame-hero .hp-demo-imagewrap{
  height: 100% !important;          /* override the global 300px wrapper */
}

.hp-demo-frame-hero .hp-demo-image{
  object-fit: cover !important;      /* was contain -> caused empty space */
  width: 100%;
  height: 100%;
  display: block;
}