.free-page { position: relative; overflow: hidden; }
.free-page::before { position: absolute; z-index: 0; top: -160px; left: 50%; width: min(1100px, 130vw); height: 620px; content: ''; transform: translateX(-50%); background: radial-gradient(ellipse at center, rgb(var(--acc) / .11), transparent 66%); pointer-events: none; }
.free-hero, .free-zone { position: relative; z-index: 1; }
.free-hero { display: flex; flex-direction: column; align-items: center; padding: calc(var(--nav-h, 68px) + 72px) 20px 0; text-align: center; }
.free-hero .sec-title { font-size: clamp(52px, 8.5vw, 104px); }
.free-hero .sec-sub { max-width: 560px; }

.free-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: min(100%, 1040px); margin: 38px 0 0; padding: 0; list-style: none; text-align: left; }
.free-steps li { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.02); }
.free-steps span { display: grid; flex: none; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line-2); border-radius: 50%; color: var(--text); font: 700 12px/1 var(--display); }
.free-steps b { display: block; color: var(--text); font-size: 13px; font-weight: 600; }
.free-steps small { display: block; margin-top: 2px; color: var(--dim); font-size: 11.5px; }

.free-zone { display: grid; justify-items: center; gap: 18px; width: min(100%, var(--maxw, 1180px)); margin: 42px auto 0; padding: 0 20px 26px; }
.free-cards { width: min(100%, 980px); }
.free-card { position: relative; }
.free-card .product-card__visual { height: clamp(170px, 19vw, 225px); }
.free-card__badge { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 6px 10px; border: 1px solid var(--line-2); border-radius: 999px; color: var(--text); font-size: 10.5px; font-weight: 600; letter-spacing: .03em; background: rgba(9,9,11,.72); backdrop-filter: blur(8px); }
.free-card .product-card__status { min-height: 18px; }
.free-card__cta { justify-content: center; gap: 8px; width: 100%; min-height: 46px !important; font-size: 13px !important; }
.free-card__cta .ico { transition: transform .25s var(--ease); }
.free-card__cta:not(:disabled):hover .ico { transform: translateX(3px); }
.free-card__cta:disabled .ico { display: none; }
.free-card.is-chosen { border-color: var(--line-2); }

.free-error { width: min(100%, 980px); margin: 0; padding: 12px 16px; border: 1px solid rgba(240,120,120,.28); border-radius: 12px; color: #f3b4b4; font-size: 13.5px; text-align: center; background: rgba(240,120,120,.07); }

.free-result { display: grid; justify-items: center; gap: 12px; width: min(100%, 980px); padding: 30px clamp(18px, 4vw, 36px); border: 1px solid rgba(99,213,154,.28); border-radius: 18px; text-align: center; background: linear-gradient(180deg, rgba(99,213,154,.07), #0b0b0d 70%); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); animation: free-in .45s var(--ease) both; }
.free-result[hidden] { display: none; }
.free-result__tick { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #07130d; background: var(--good); }
.free-result__tick svg { width: 21px; height: 21px; }
.free-result h2 { margin: 2px 0 0; font: 700 clamp(19px, 2.4vw, 25px)/1.15 var(--display); letter-spacing: -.02em; }
.free-result__key { display: flex; align-items: stretch; gap: 8px; width: min(100%, 600px); margin-top: 4px; }
.free-result__key code { display: flex; flex: 1; align-items: center; justify-content: center; min-width: 0; padding: 13px 14px; overflow-wrap: anywhere; border: 1px solid var(--line-2); border-radius: 11px; color: #fff; font-size: clamp(13px, 1.7vw, 16px); letter-spacing: .02em; background: #08080a; }
.free-result__copy { display: inline-flex; flex: none; align-items: center; gap: 7px; padding: 0 15px; border: 1px solid var(--line-2); border-radius: 11px; color: var(--text); font-family: inherit; font-size: 12.5px; font-weight: 600; line-height: 1; background: rgba(255,255,255,.04); cursor: pointer; transition: background .2s, border-color .2s; }
.free-result__copy:hover { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.09); }
.free-result__copy svg { width: 15px; height: 15px; }
.free-result p { max-width: 560px; margin: 2px 0 0; color: var(--dim); font-size: 13.5px; }
.free-result a, .free-note a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }

.free-note { margin: 4px 0 0; color: var(--dim); font-size: 12.5px; text-align: center; }
.free-account { padding: 12px 16px; border: 1px solid var(--line-2); border-radius: 12px; color: var(--text); font-size: 13px; }
.free-account a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
@keyframes free-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 1000px) {
  .free-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .free-hero { padding-top: calc(var(--nav-h, 68px) + 44px); }
  .free-steps { grid-template-columns: minmax(0, 1fr); }
  .free-cards { grid-template-columns: minmax(0, 1fr); }
  .free-result__key { flex-direction: column; }
  .free-result__copy { justify-content: center; min-height: 42px; }
}
@media (prefers-reduced-motion: reduce) { .free-result { animation: none; } }
