/* Right-rail ad - game pages except hearts */
@media (min-width: 900px) {
  body.ocg-manual-ad-right {
    overflow-x: hidden;
  }

  .ocg-right-rail-ad {
    position: absolute;
    top: 140px;
    right: 24px;
    width: 300px;
    min-height: 600px;
    z-index: 5;
    pointer-events: auto;
  }

  /*
   * Cap game board width so it never overlaps the fixed right-rail ad.
   * 380px = 300px ad + 24px right offset + 40px safety buffer + 16px padding.
   * At 1024px viewport: board capped at 644px (enough for 7-9 column games).
   * At 1280px viewport: board capped at 900px (most boards unaffected).
   */
  body.ocg-manual-ad-right .game-board {
    max-width: min(var(--board-max-width, 900px), calc(100vw - 380px));
  }

  /* Freecell centers its board on desktop via margin: 0 auto.
   * Left-align when right-rail is active to prevent overlap. */
  body.ocg-manual-ad-right .game-board--freecell {
    margin-left: 0;
    margin-right: auto;
  }

  body.ocg-manual-ad-right .game-board--double-freecell,
  body.ocg-manual-ad-right .game-board--eight-off,
  body.ocg-manual-ad-right .game-board--seahaven,
  body.ocg-manual-ad-right .game-board--penguin {
    margin-left: 0;
    margin-right: auto;
  }

  body.ocg-manual-ad-right[data-variant="bakers-game"]
    .game-area
    .header-telemetry,
  body.ocg-manual-ad-right[data-variant="freecell"]
    .game-area
    .header-telemetry,
  body.ocg-manual-ad-right[data-variant="double-freecell"]
    .game-area
    .header-telemetry,
  body.ocg-manual-ad-right[data-variant="eight-off"]
    .game-area
    .header-telemetry,
  body.ocg-manual-ad-right[data-variant="seahaven-towers"]
    .game-area
    .header-telemetry,
  body.ocg-manual-ad-right[data-variant="penguin"]
    .game-area
    .header-telemetry {
    margin-left: 0;
    margin-right: auto;
  }

  body.ocg-manual-ad-right .checkers-area {
    margin-left: 0;
    margin-right: auto;
    width: min(980px, calc(100vw - 380px));
  }

  body.ocg-manual-ad-right .checkers-shell {
    justify-content: start;
    margin-inline: 0;
  }

  body.ocg-manual-ad-right[data-variant="monte-carlo"] .mc-layout {
    grid-template-columns: minmax(120px, 180px) auto minmax(120px, 180px);
    max-width: calc(100vw - 390px);
    margin-left: 0;
    margin-right: auto;
    justify-content: start;
    gap: clamp(0.65rem, 2vw, 1.25rem);
  }

  body.ocg-manual-ad-right[data-variant="monte-carlo"] .mc-board-wrap,
  body.ocg-manual-ad-right[data-variant="monte-carlo"] .mc-side {
    justify-content: start;
  }
}

/* Hearts bottom ad - hearts page only */
@media (min-width: 1024px) and (min-height: 620px) {
  body.ocg-manual-ad-hearts-bottom {
    overflow-x: hidden;
  }

  /* Reserve in-canvas strip under hand for the ad */
  body.ocg-manual-ad-hearts-bottom #hearts-game-wrapper {
    height: 100vh;
    padding-bottom: 106px; /* 90px ad + 16px gap */
    box-sizing: border-box;
  }

  body.ocg-manual-ad-hearts-bottom #main_canvas {
    height: calc(100vh - 106px);
    min-height: calc(100vh - 106px);
    width: 100%;
  }

  .ocg-hearts-bottom-ad {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 728px;
    height: 90px;
    z-index: 120;
    pointer-events: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0d2818;
  }

  #floating-buttons-container.ocg-hearts-floating-buttons-lifted {
    bottom: 122px !important;
  }
}

/* In-content horizontal ad - all pages except hearts */
.ocg-in-content-ad {
  display: block;
  max-width: 728px;
  min-height: 90px;
  margin: 2rem auto;
  text-align: center;
}

.ocg-in-content-ad-inline {
  margin: 2.5rem auto;
}

.ocg-in-content-ad-after {
  margin-top: 3rem;
}

/* Extra spacing when in-content appears below game guide on game pages */
.game-area + .ocg-in-content-ad,
#game-guide-root + .ocg-in-content-ad {
  margin-top: 3rem;
}
