.igm-geo-blocked-link {
  opacity: .66 !important;
  cursor: not-allowed !important;
  filter: grayscale(.15);
  position: relative;
}

.igm-geo-blocked-link.button,
.button.igm-geo-blocked-link {
  background: #6b7280 !important;
  border-color: #6b7280 !important;
  color: #fff !important;
  box-shadow: none !important;
}

.igm-geo-access-notice {
  background: #fff7ed;
  border-bottom: 1px solid #fed7aa;
  color: #7c2d12;
  font-size: 14px;
  line-height: 1.45;
}

.igm-geo-access-notice__inner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
  flex-wrap: wrap;
}

.igm-geo-access-notice__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 24px;
  border-radius: 999px;
  background: #ea580c;
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  flex: 0 0 auto;
}

.igm-geo-access-notice__text {
  flex: 1 1 360px;
}

.igm-geo-access-notice__link {
  color: #7c2d12;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.igm-geo-restriction-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.igm-geo-restriction-modal.is-open {
  display: flex;
}

.igm-geo-restriction-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .58);
  backdrop-filter: blur(3px);
}

.igm-geo-restriction-modal__panel {
  position: relative;
  width: min(560px, 100%);
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(15, 23, 42, .24);
  padding: 26px;
  color: #111827;
}

.igm-geo-restriction-modal__close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: #f3f4f6;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}

.igm-geo-restriction-modal__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 28px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-weight: 800;
  margin-bottom: 12px;
}

.igm-geo-restriction-modal h2 {
  margin: 0 38px 10px 0;
  font-size: 24px;
  line-height: 1.2;
}

.igm-geo-restriction-modal__text {
  color: #4b5563;
  margin: 0 0 18px;
  line-height: 1.6;
}

.igm-geo-restriction-modal__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

body.igm-geo-modal-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .igm-geo-restriction-modal__panel {
    padding: 22px;
    border-radius: 20px;
  }

  .igm-geo-restriction-modal__actions .button {
    width: 100%;
  }
}

/* Global affiliate disclosure.
   v0.2.4: on casino/bonus cards the disclosure is a tiny absolute icon in the card corner.
   It does not sit in the CTA row, so buttons keep their original width and alignment. */
.igm-affiliate-disclaimer {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: auto;
  margin: 4px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6b7280;
  font-size: 10px;
  line-height: 1.1;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: pointer;
  box-shadow: none;
  white-space: nowrap;
  opacity: .82;
  vertical-align: top;
}

.igm-affiliate-disclaimer:hover,
.igm-affiliate-disclaimer:focus-visible {
  color: #374151;
  opacity: 1;
}

.igm-affiliate-disclaimer__icon {
  font-size: 10px;
  line-height: 1;
  opacity: .9;
}

.igm-affiliate-disclaimer-card-host {
  position: relative;
}

.igm-affiliate-disclaimer--corner {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, .08);
  background: rgba(255, 255, 255, .92);
  color: #64748b;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
  text-decoration: none;
  opacity: .78;
}

.igm-affiliate-disclaimer--corner:hover,
.igm-affiliate-disclaimer--corner:focus-visible {
  opacity: 1;
  background: #ffffff;
  color: #0f172a;
}

.igm-affiliate-disclaimer--corner .igm-affiliate-disclaimer__icon {
  font-size: 13px;
}

.igm-affiliate-disclaimer--corner .igm-affiliate-disclaimer__text {
  display: none;
}

/* Existing manual hero disclaimer wins; avoid visual conflict if both appear in rare layouts. */
.hero-cta-stack .hero-disclaimer + .igm-affiliate-disclaimer,
.hero-cta-stack .igm-affiliate-disclaimer + .hero-disclaimer {
  display: none;
}
