.cta { padding: 110px 0; text-align: center; position: relative; overflow: hidden; }
.cta::before { content: ''; position: absolute; inset: 0; background: url('../hero-backdrop.jpg') center / cover; opacity: 0.3; filter: grayscale(1); mask-image: radial-gradient(60% 70% at 50% 60%, #000, transparent); -webkit-mask-image: radial-gradient(60% 70% at 50% 60%, #000, transparent); }
.cta .wrap { position: relative; }
.cta h2 { font-size: clamp(34px, 4.6vw, 56px); letter-spacing: -0.04em; }
.cta .btn { margin-top: 28px; }
.cta-note { margin-top: 14px; color: var(--muted); font-size: 13px; }

.site-footer { border-top: 1px solid var(--line); padding: 64px 0 36px; font-size: 14px; }
.foot-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; }
.foot-grid h4 { margin: 0 0 14px; font-size: 13px; font-weight: 500; color: var(--text); }
.foot-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.foot-grid a { color: var(--muted); transition: color 0.2s; }
.foot-grid a:hover { color: var(--text); }
.foot-brand p { margin-top: 12px; color: var(--muted); max-width: 260px; }
.foot-bottom { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; color: var(--dim); font-size: 12px; }
.foot-bottom a { color: var(--muted); }
@media (max-width: 760px) { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-brand { grid-column: 1 / -1; } }
