/* Homepage layout refinements. Scoped to the front page to preserve other templates. */
.home {
    --home-ink: #26384a;
    --home-muted: #526274;
    --home-accent: #be4e2a;
    --home-border: #e1e6e9;
}

.home .elementor-52 .elementor-element.elementor-element-0979cd7 {
    --min-height: 570px;
    --align-items: center;
}

.home .elementor-52 .elementor-element.elementor-element-6413f8b {
    --padding-left: max(28px, calc((100vw - 1160px) / 2));
    --padding-right: 24px;
}

.home .elementor-52 .elementor-element.elementor-element-ab8c8ae .elementor-heading-title {
    font-size: clamp(2.2rem, 4vw, 3.8rem);
    line-height: 1.18;
}

.home .elementor-52 .elementor-element.elementor-element-ec89861 {
    width: 100%;
    max-width: 100%;
    --container-widget-width: 100%;
}

.home .elementor-52 .elementor-element.elementor-element-ec89861 .elementor-heading-title {
    font-size: clamp(1rem, 1.45vw, 1.2rem);
    line-height: 1.8;
    font-weight: 400;
}

.home .elementor-52 .elementor-element.elementor-element-30d5b39 img {
    width: min(65%, 330px);
    height: auto;
}

.home .elementor-52 .elementor-element.elementor-element-e14c9b8,
.home .elementor-52 .elementor-element.elementor-element-b4f81a4,
.home .elementor-52 .elementor-element.elementor-element-5b51509,
.home .elementor-52 .elementor-element.elementor-element-f08f2bc {
    --padding-top: 48px;
    --padding-bottom: 48px;
}

.home .elementor-52 .elementor-element.elementor-element-b4f81a4 .e-con-inner,
.home .elementor-52 .elementor-element.elementor-element-5b51509 .e-con-inner,
.home .elementor-52 .elementor-element.elementor-element-f08f2bc .e-con-inner {
    gap: clamp(24px, 4vw, 56px);
    align-items: center;
}

.home .elementor-52 .elementor-widget-text-editor {
    color: var(--home-muted);
    line-height: 1.85;
}

.home .elementor-52 .elementor-widget-text-editor p {
    margin-bottom: 1em;
}

.home .elementor-52 .elementor-widget-heading h2.elementor-heading-title {
    font-size: clamp(1.65rem, 2.4vw, 2.45rem);
    line-height: 1.3;
}

.home .home-recent-posts {
    box-sizing: content-box;
    padding-top: 64px !important;
    padding-bottom: 72px !important;
}

.home .home-recent-posts > h2 {
    margin-bottom: 32px !important;
    color: var(--home-ink) !important;
    font-size: clamp(1.65rem, 2.4vw, 2.45rem) !important;
}

.home .recent-posts-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.home .recent-post-item {
    min-width: 0;
    border: 1px solid var(--home-border);
    box-shadow: none !important;
}

.home .recent-post-item .post-thumbnail img {
    width: 100%;
    height: 180px !important;
    object-fit: cover;
}

.home .recent-post-item .post-title a {
    color: var(--home-ink) !important;
}

.home .recent-post-item .post-title a:hover,
.home .recent-post-item .post-title a:focus-visible {
    color: var(--home-accent) !important;
}

.home .recent-post-item .read-more:focus-visible,
.home .recent-post-item a:focus-visible {
    outline: 3px solid var(--home-accent);
    outline-offset: 3px;
}

@media (max-width: 1024px) {
    .home .elementor-52 .elementor-element.elementor-element-0979cd7 {
        --min-height: 480px;
    }
    .home .elementor-52 .elementor-element.elementor-element-6413f8b {
        --padding-left: 32px;
    }
    .home .recent-posts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    .home .elementor-52 .elementor-element.elementor-element-0979cd7 {
        --min-height: 0px;
        --padding-top: 48px;
        --padding-bottom: 40px;
    }
    .home .elementor-52 .elementor-element.elementor-element-6413f8b {
        --padding-left: 22px;
        --padding-right: 22px;
        --align-items: flex-start;
    }
    .home .elementor-52 .elementor-element.elementor-element-ec89861 .elementor-heading-title {
        line-height: 1.65;
    }
    .home .elementor-52 .elementor-element.elementor-element-30d5b39 img {
        width: min(60%, 220px);
    }
    .home .elementor-52 .elementor-element.elementor-element-e14c9b8,
    .home .elementor-52 .elementor-element.elementor-element-b4f81a4,
    .home .elementor-52 .elementor-element.elementor-element-5b51509,
    .home .elementor-52 .elementor-element.elementor-element-f08f2bc {
        --padding-top: 32px;
        --padding-bottom: 32px;
    }
    .home .home-recent-posts {
        padding: 40px 18px 52px !important;
    }
    .home .recent-posts-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
    }
    .home .recent-post-item .post-thumbnail img {
        height: 210px !important;
    }
}
