.fp-container,
.epg-container {
    width: min(var(--fp-container), calc(100% - 40px));
    margin-inline: auto;
}

.site-main { min-height: 1px; }
.first-promise-front-page,
.first-promise-page { padding: 0; }
.first-promise-page-content { margin: 0; }

.fp-header-inner {
    min-height: 78px;
    display: grid;
    grid-template-columns: minmax(190px, 270px) minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
}

.fp-hero { overflow: hidden; }
.fp-hero__grid {
    min-height: 590px;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, 0.98fr);
    align-items: stretch;
}
.fp-hero__content {
    align-self: center;
    padding: 72px 64px 72px 0;
}
.fp-hero__visual { min-height: 590px; position: relative; }

.site-footer { margin-top: 0; }
.fp-footer-grid {
    display: grid;
    grid-template-columns: 1.55fr repeat(4, minmax(0, 1fr));
    gap: 42px;
    padding-top: 64px;
    padding-bottom: 44px;
}
.fp-footer-bottom {
    min-height: 68px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

@media (max-width: 1024px) {
    :root { --fp-section-space: 76px; }
    .fp-header-inner { grid-template-columns: minmax(180px, 240px) 1fr auto; }
    .fp-hero__grid { grid-template-columns: 1fr 0.9fr; min-height: 520px; }
    .fp-hero__content { padding: 60px 36px 60px 0; }
    .fp-hero__visual { min-height: 520px; }
    .fp-footer-grid { grid-template-columns: 1.4fr repeat(2, 1fr); }
}

@media (max-width: 820px) {
    .fp-container, .epg-container { width: min(var(--fp-container), calc(100% - 30px)); }
    .fp-header-inner { min-height: 70px; grid-template-columns: minmax(150px, 1fr) auto; gap: 16px; }
    .fp-hero__grid { grid-template-columns: 1fr; }
    .fp-hero__content { padding: 52px 0 40px; }
    .fp-hero__visual { min-height: 390px; }
    .fp-footer-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
}

@media (max-width: 560px) {
    :root { --fp-section-space: 56px; }
    .fp-container, .epg-container { width: calc(100% - 24px); }
    .fp-hero__content { padding-top: 42px; }
    .fp-hero__visual { min-height: 330px; }
    .fp-footer-grid { grid-template-columns: 1fr; padding-top: 46px; }
    .fp-footer-bottom { align-items: flex-start; flex-direction: column; padding: 24px 0; }
}
