/* ================= HERO ================= */
.free-hero { text-align: center; background: var(--sage); color: var(--ivory); padding: clamp(85px, 10vw, 145px) 24px clamp(70px, 8vw, 110px); }
.free-hero h1 { font-size: clamp(5rem, 11vw, 11rem); line-height: .84; }
.free-hero h1 em { color: var(--gold); }
.free-hero p:last-child { font-size: 1.05rem; max-width: 680px; margin: 24px auto 0; }

/* ================= GRID ================= */
.free-list { padding: clamp(50px, 6vw, 80px) 0 var(--section-pad); }
.free-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.free-card {
  display: flex; flex-direction: column; min-height: 260px; padding: 32px;
  border-radius: 22px; border: 1px solid var(--line); background: var(--ivory-deep); color: var(--ink);
  transition: box-shadow .25s, transform .25s var(--ease-soft);
}
.free-card:nth-child(4n+2), .free-card:nth-child(4n+3) { background: var(--ivory); }
.free-card:hover { box-shadow: var(--shadow-card); transform: translateY(-3px); }
.free-card h3 { color: var(--sage); font-size: clamp(1.7rem, 2.6vw, 2.5rem); line-height: .98; margin: 0 0 10px; }
.free-card p { color: var(--text-muted); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.free-card__arrow {
  margin-top: auto; align-self: flex-end;
  display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--sage); color: var(--ivory); transition: transform .2s var(--ease-soft);
}
.free-card:hover .free-card__arrow { transform: translateX(4px); }

/* ================= CTA ================= */
.free-cta { background: var(--gold); padding: clamp(70px, 8vw, 110px) 0; }
.free-cta__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 1100px; }
.free-cta__tile { background: var(--sage); color: var(--ivory); border-radius: 22px; padding: 34px; }
.free-cta__tile h3 { font-size: clamp(1.8rem, 2.6vw, 2.6rem); margin-top: 12px; }
.free-cta__tile .btn { background: transparent; color: var(--ivory); border-color: var(--ivory); }
.free-cta__tile .btn:hover, .free-cta__tile .btn:focus-visible { background: var(--gold); border-color: var(--gold); color: var(--ivory); }
.free-cta__tile p { margin: 14px 0 24px; }

@media (max-width: 760px) {
  .free-hero h1 { font-size: clamp(4.2rem, 21vw, 6.8rem); }
  .free-grid, .free-cta__grid { grid-template-columns: 1fr; }
  .free-card p { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}
@media (max-width: 700px) {
}