.free-download-gate[hidden] { display: none !important; }

.free-download-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgb(15 23 42 / 58%);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

body.free-download-gate-open { overflow: hidden; }

.free-download-gate__dialog {
  position: relative;
  width: min(100%, 29rem);
  overflow: hidden;
  border: 1px solid rgb(226 232 240 / 90%);
  border-radius: 1.4rem;
  background: linear-gradient(145deg, #fff 0%, #f8fafc 100%);
  padding: 1.6rem;
  color: #334155;
  box-shadow: 0 28px 80px rgb(15 23 42 / 32%);
  text-align: center;
}

.free-download-gate__close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  display: grid;
  width: 2.3rem;
  height: 2.3rem;
  place-items: center;
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  background: #fff;
  color: #64748b;
  font: 700 1.35rem/1 sans-serif;
  cursor: pointer;
}

.free-download-gate__close:hover { color: #0f172a; background: #f1f5f9; }
.free-download-gate__icon { display: grid; width: 2.35rem; height: 2.35rem; margin: 0 auto .8rem; color: #e1306c; }
.free-download-gate__icon svg { width: 100%; height: 100%; }
.free-download-gate__eyebrow { margin: 0; color: #2563eb; font: 800 .7rem/1.3 'Inter', sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.free-download-gate__title { margin: .5rem 1.5rem 0; color: #0f172a; font: 800 1.5rem/1.2 'Outfit', 'Inter', sans-serif; }
.free-download-gate__description { margin: .8rem auto 0; max-width: 24rem; color: #64748b; font: 400 .9rem/1.65 'Inter', sans-serif; }
.free-download-gate__product { margin: 1rem 0; border-radius: .8rem; background: #eff6ff; padding: .7rem .85rem; color: #1d4ed8; font: 750 .82rem/1.4 'Inter', sans-serif; }

.free-download-gate__follow,
.free-download-gate__download {
  width: 100%;
  min-height: 3rem;
  border: 0;
  border-radius: .85rem;
  padding: .8rem 1rem;
  font: 800 .87rem/1.25 'Inter', sans-serif;
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease, opacity 150ms ease;
}

.free-download-gate__follow { background: linear-gradient(120deg, #833ab4, #e1306c 55%, #f77737); color: #fff; box-shadow: 0 12px 26px rgb(225 48 108 / 24%); }
.free-download-gate__download { background: #2563eb; color: #fff; box-shadow: 0 12px 26px rgb(37 99 235 / 20%); }
.free-download-gate__follow:hover,
.free-download-gate__download:not(:disabled):hover { transform: translateY(-1px); }
.free-download-gate__download:disabled { background: #e2e8f0; color: #94a3b8; box-shadow: none; cursor: not-allowed; }
.free-download-gate__status { min-height: 2.4rem; margin: .85rem 0; color: #475569; font: 650 .78rem/1.5 'Inter', sans-serif; }
.free-download-gate__note { margin: .8rem 0 0; color: #94a3b8; font: 500 .68rem/1.45 'Inter', sans-serif; }

.free-download-gate button:focus-visible { outline: 3px solid rgb(37 99 235 / 35%); outline-offset: 2px; }

@media (max-width: 480px) {
  .free-download-gate {
    align-items: center;
    padding: max(.65rem, env(safe-area-inset-top)) .65rem max(.65rem, env(safe-area-inset-bottom));
  }

  .free-download-gate__dialog {
    max-height: calc(100dvh - 1.3rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 1.3rem;
    padding: 1.35rem 1rem calc(1.2rem + env(safe-area-inset-bottom));
  }
  .free-download-gate__title { font-size: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .free-download-gate__follow,
  .free-download-gate__download { transition: none; }
}
