/* =========================================================
   ROULETTE PAGE UI POLISH
   ========================================================= */


/* =========================================================
   HERO
   ========================================================= */

.page-hero {
  padding:
    clamp(2.25rem, 6vw, 5rem)
    1rem;

  text-align: center;
}

.page-hero h1 {
  width: min(940px, 100%);

  margin:
    0 auto 1rem;

  font-size:
    clamp(2rem, 4.5vw, 3.8rem);

  line-height: 1.08;

  letter-spacing:
    -.025em;

  text-wrap: balance;
}

.page-hero p {
  width: min(760px, 100%);

  margin:
    0 auto;

  font-size:
    clamp(.98rem, 1.4vw, 1.12rem);

  line-height: 1.7;

  opacity: .86;
}


/* =========================================================
   DEMO CATALOGUE
   ========================================================= */

#slotslaunch-games {
  width:
    min(1180px, calc(100% - 32px));

  margin:
    0 auto
    clamp(3rem, 6vw, 5.5rem);

  padding:
    clamp(1rem, 2.5vw, 2rem);

  border-radius:
    22px;

  overflow: hidden;
}

#slotslaunch-games h2 {
  text-align: center;

  font-size:
    clamp(1.75rem, 3vw, 2.6rem);

  line-height: 1.15;

  text-wrap: balance;
}

#slotslaunch-games input,
#slotslaunch-games select {
  min-height: 46px;

  border-radius: 10px;

  font-size: 1rem;
}


/* Keep all catalogue images responsive */

#slotslaunch-games img {
  display: block;

  max-width: 100%;

  height: auto;
}


/* Common SlotsLaunch cards */

#slotslaunch-games .game-card,
#slotslaunch-games [class*="game-card"] {
  min-width: 0;

  border-radius:
    14px !important;

  overflow: hidden;

  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}


@media (hover:hover) {

  #slotslaunch-games .game-card:hover,
  #slotslaunch-games [class*="game-card"]:hover {
    transform:
      translateY(-3px);

    box-shadow:
      0 16px 38px
      rgba(0,0,0,.28);
  }

}


/* =========================================================
   ARTICLE CONTENT
   ========================================================= */

.roulette-content-update {
  width:
    min(1050px, calc(100% - 32px));

  margin:
    0 auto
    clamp(3rem, 7vw, 6rem);

  padding:
    clamp(1.5rem, 4vw, 3rem);

  border:
    1px solid
    rgba(151,71,255,.17);

  border-radius:
    22px;

  background:
    linear-gradient(
      180deg,
      rgba(31,14,48,.55),
      rgba(11,6,19,.40)
    );

  box-shadow:
    inset 0 1px 0
    rgba(255,255,255,.025);
}


/* Editorial note */

.roulette-content-update
.editorial-disclosure {
  margin:
    0 0 2.25rem;

  padding:
    1.15rem 1.25rem;

  border:
    1px solid
    rgba(255,205,71,.18);

  border-left:
    4px solid #f1c84b;

  border-radius:
    11px;

  background:
    rgba(255,203,70,.055);
}

.roulette-content-update
.editorial-disclosure p {
  margin: 0;

  font-size:
    .95rem;

  line-height:
    1.7;
}


/* Paragraphs */

.roulette-content-update p,
.roulette-content-update li {
  font-size:
    clamp(1rem, 1.2vw, 1.075rem);

  line-height:
    1.82;
}

.roulette-content-update p {
  margin:
    0 0 1.3rem;
}


/* H2 */

.roulette-content-update h2 {
  margin:
    3.2rem 0 1.15rem;

  padding-left:
    14px;

  border-left:
    4px solid #f4ca4d;

  color:
    #f5dc8a;

  font-size:
    clamp(1.55rem, 2.7vw, 2.15rem);

  line-height:
    1.18;

  letter-spacing:
    -.015em;

  text-wrap:
    balance;
}


/* H3 */

.roulette-content-update h3 {
  margin:
    2.1rem 0 .85rem;

  color:
    #fff;

  font-size:
    clamp(1.15rem, 2vw, 1.45rem);

  line-height:
    1.3;
}


/* H4 */

.roulette-content-update h4 {
  margin:
    1.7rem 0 .7rem;

  color:
    #f3d877;

  font-size:
    1.08rem;
}


/* Lists */

.roulette-content-update ul,
.roulette-content-update ol {
  margin:
    .8rem 0 1.6rem;

  padding-left:
    1.5rem;
}

.roulette-content-update li {
  margin-bottom:
    .55rem;
}


/* Bold / keywords */

.roulette-content-update strong {
  color:
    #f5ce5c;
}


/* Links */

.roulette-content-update a:not(.btn) {
  text-decoration-thickness:
    1px;

  text-underline-offset:
    3px;
}


/* =========================================================
   TABLES
   ========================================================= */

.roulette-content-update
.table-container {
  width: 100%;

  margin:
    1.5rem 0 2rem;

  overflow-x:
    auto;

  border-radius:
    14px;

  -webkit-overflow-scrolling:
    touch;
}

.roulette-content-update table {
  width: 100%;

  min-width:
    620px;

  border-collapse:
    collapse;
}

.roulette-content-update th,
.roulette-content-update td {
  padding:
    .95rem 1rem;

  text-align:
    left;

  vertical-align:
    top;

  line-height:
    1.55;
}

.roulette-content-update th {
  color:
    #f3d36f;

  font-weight:
    800;
}


/* =========================================================
   DEMO JUMP BOX
   ========================================================= */

.roulette-demo-pathway {
  margin:
    1.7rem 0 2rem;

  padding:
    1.25rem;

  border:
    1px solid
    rgba(245,202,76,.24);

  border-radius:
    13px;

  background:
    rgba(245,202,76,.045);
}

.roulette-demo-pathway p {
  margin-bottom:
    .8rem;
}


/* =========================================================
   FAQ — VIP STYLE
   ========================================================= */

.roulette-content-update
.roulette-faq {
  margin:
    3.5rem 0;

  padding:
    clamp(1.35rem, 3vw, 2.5rem);

  border:
    1px solid
    rgba(140,63,224,.35);

  border-radius:
    20px;

  background:
    linear-gradient(
      145deg,
      rgba(26,12,43,.98),
      rgba(18,8,31,.98)
    );

  box-shadow:
    inset 0 1px 0
    rgba(255,255,255,.025);
}


/* FAQ title */

.roulette-content-update
.roulette-faq
.faq-heading > h2 {
  margin: 0;

  padding:
    0 0 1.15rem;

  border-left: 0;

  border-bottom:
    1px solid
    rgba(246,203,80,.18);

  color:
    #f4d77c;

  font-size:
    clamp(1.55rem, 3vw, 2.25rem);

  line-height:
    1.15;

  text-wrap:
    balance;
}


.roulette-faq
.faq-intro {
  margin:
    1rem 0 0;

  max-width:
    840px;

  color:
    rgba(255,255,255,.68);

  font-size:
    .98rem;

  line-height:
    1.7;
}


/* FAQ list */

.roulette-faq
.faq-list {
  display: grid;

  gap:
    14px;

  margin-top:
    1.5rem;
}


/* Individual FAQ card */

.roulette-faq
.faq-item {
  margin: 0;

  border:
    1px solid
    rgba(140,63,224,.36);

  border-radius:
    12px;

  background:
    rgba(34,16,55,.80);

  overflow: hidden;

  transition:
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}


@media (hover:hover) {

  .roulette-faq
  .faq-item:hover {
    background:
      rgba(42,20,65,.94);

    border-color:
      rgba(246,203,76,.42);

    transform:
      translateY(-1px);
  }

}


/* FAQ question */

.roulette-faq summary {
  position: relative;

  display: flex;

  align-items: center;

  width: 100%;

  min-height:
    62px;

  padding:
    1.15rem 3.4rem
    1.15rem 1.3rem;

  cursor: pointer;

  list-style: none;

  color:
    #fff;

  font-size:
    clamp(.98rem, 1.2vw, 1.08rem);

  font-weight:
    750;

  line-height:
    1.45;

  user-select:
    none;
}


.roulette-faq
summary::-webkit-details-marker {
  display: none;
}

.roulette-faq
summary::marker {
  content: "";
}


/* + icon */

.roulette-faq
summary::after {
  content: "+";

  position: absolute;

  top: 50%;

  right:
    1.25rem;

  width:
    28px;

  height:
    28px;

  display: grid;

  place-items:
    center;

  transform:
    translateY(-50%);

  border-radius:
    50%;

  color:
    #ffd04c;

  font-size:
    1.4rem;

  font-weight:
    900;

  line-height:
    1;
}


/* Open FAQ */

.roulette-faq
.faq-item[open] {
  border-color:
    rgba(246,203,76,.46);

  background:
    rgba(42,20,67,.96);
}


.roulette-faq
.faq-item[open]
summary {
  color:
    #f7df91;
}


.roulette-faq
.faq-item[open]
summary::after {
  content: "−";

  background:
    rgba(255,208,68,.08);
}


/* Answer */

.roulette-faq
.faq-answer {
  padding:
    0 1.3rem 1.3rem;
}


.roulette-faq
.faq-answer::before {
  content: "";

  display: block;

  height:
    1px;

  margin-bottom:
    1rem;

  background:
    linear-gradient(
      90deg,
      rgba(246,203,76,.24),
      rgba(140,63,224,.16),
      transparent
    );
}


.roulette-content-update
.roulette-faq
.faq-answer p {
  margin: 0;

  color:
    rgba(255,255,255,.81);

  font-size:
    1rem;

  line-height:
    1.72;
}


/* Keyboard accessibility */

.roulette-faq summary:focus-visible {
  outline:
    2px solid #ffd04c;

  outline-offset:
    -3px;

  border-radius:
    10px;
}


/* =========================================================
   AFFILIATE CTA
   ========================================================= */

.contextual-pathway {
  width:
    min(1050px, calc(100% - 32px));

  margin-left:
    auto;

  margin-right:
    auto;

  border-radius:
    19px;

  overflow:
    hidden;
}


.contextual-pathway__card {
  padding:
    clamp(1.25rem, 4vw, 2.5rem);
}


.contextual-pathway__cta {
  display: grid;

  grid-template-columns:
    minmax(0,1fr) auto;

  gap:
    1.5rem;

  align-items:
    center;
}


.contextual-pathway__cta-headline {
  line-height:
    1.12;

  text-wrap:
    balance;
}


.contextual-pathway__button {
  min-height:
    52px;

  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  text-align:
    center;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .contextual-pathway__cta {
    grid-template-columns:
      1fr;
  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

  .page-hero {
    padding:
      2.2rem 1rem
      1.8rem;
  }


  .page-hero h1 {
    font-size:
      clamp(1.75rem, 8vw, 2.5rem);
  }


  #slotslaunch-games {
    width:
      calc(100% - 20px);

    padding:
      .9rem;

    border-radius:
      16px;
  }


  #slotslaunch-games input,
  #slotslaunch-games select {
    width:
      100%;

    min-height:
      46px;
  }


  .roulette-content-update {
    width:
      calc(100% - 20px);

    padding:
      1.25rem 1rem;

    border-radius:
      16px;
  }


  .roulette-content-update p,
  .roulette-content-update li {
    font-size:
      1rem;

    line-height:
      1.72;
  }


  .roulette-content-update h2 {
    margin-top:
      2.5rem;

    font-size:
      1.55rem;
  }


  .roulette-content-update h3 {
    font-size:
      1.22rem;
  }


  .roulette-content-update ul,
  .roulette-content-update ol {
    padding-left:
      1.25rem;
  }


  /* FAQ */

  .roulette-content-update
  .roulette-faq {
    margin:
      2.5rem 0;

    padding:
      1rem;

    border-radius:
      16px;
  }


  .roulette-content-update
  .roulette-faq
  .faq-heading > h2 {
    font-size:
      1.55rem;
  }


  .roulette-faq
  .faq-list {
    gap:
      10px;
  }


  .roulette-faq
  summary {
    min-height:
      58px;

    padding:
      1rem 3rem
      1rem 1rem;

    font-size:
      .95rem;
  }


  .roulette-faq
  summary::after {
    right:
      .95rem;
  }


  .roulette-faq
  .faq-answer {
    padding:
      0 1rem 1.05rem;
  }


  /* CTA */

  .contextual-pathway {
    width:
      calc(100% - 20px);

    border-radius:
      16px;
  }


  .contextual-pathway__cta {
    display:
      block;
  }


  .contextual-pathway__button-wrap {
    width:
      100%;

    margin-top:
      1.25rem;
  }


  .contextual-pathway__button {
    width:
      100%;
  }

}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 420px) {

  .roulette-content-update {
    width:
      calc(100% - 16px);

    padding:
      1.1rem .9rem;
  }


  .roulette-content-update
  .roulette-faq {
    padding:
      .85rem;
  }


  .roulette-content-update
  .roulette-faq
  .faq-heading > h2 {
    font-size:
      1.3rem;
  }


  .roulette-faq
  .faq-intro {
    font-size:
      .9rem;
  }


  .roulette-faq
  summary {
    padding:
      .9rem 2.75rem
      .9rem .85rem;

    font-size:
      .9rem;
  }


  .roulette-faq
  summary::after {
    right:
      .75rem;

    width:
      24px;

    height:
      24px;

    font-size:
      1.2rem;
  }


  .roulette-content-update
  .roulette-faq
  .faq-answer p {
    font-size:
      .93rem;

    line-height:
      1.65;
  }

}


/* =========================================================
   GLOBAL OVERFLOW PROTECTION
   ========================================================= */

html,
body {
  max-width:
    100%;

  overflow-x:
    clip;
}

img,
video,
iframe {
  max-width:
    100%;
}
