.ps-hero {
    display: block;
    min-height: 0;
    padding: clamp(32px, 3vw, 44px) 0 0;
}

.ps-main--has-badge {
    --ps-home-badge-size: min(
        var(--ps-home-badge-width, 300px),
        clamp(190px, 22vw, 600px)
    );
    --ps-home-badge-2-size: min(
        var(--ps-home-badge-2-width, 300px),
        clamp(190px, 22vw, 600px)
    );
    --ps-home-badge-group-width: var(--ps-home-badge-size);
}

.ps-main--has-two-badges {
    --ps-home-badge-size: min(
        var(--ps-home-badge-width, 300px),
        clamp(145px, 17vw, 600px)
    );
    --ps-home-badge-2-size: min(
        var(--ps-home-badge-2-width, 300px),
        clamp(145px, 17vw, 600px)
    );
    --ps-home-badge-group-width: calc(
        var(--ps-home-badge-size) +
        var(--ps-home-badge-2-size) +
        var(--ps-home-badge-gap, 20px)
    );
}

.ps-main--only-second-badge {
    --ps-home-badge-group-width: var(--ps-home-badge-2-size);
}

.ps-hero__inner {
    position: relative;
    width: min(100%, var(--ps-wide-width));
    margin-inline: auto;
}

.ps-hero__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 1050px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
}

.ps-hero--has-badge .ps-hero__heading {
    max-width: calc(100% - var(--ps-home-badge-group-width, 300px) - 32px);
}

.ps-hero__eyebrow {
    margin: 0 0 12px;
    color: var(--ps-home-eyebrow);
    font-size: clamp(16px, 2.4vw, var(--ps-home-eyebrow-size, 40px));
    font-weight: 700;
    line-height: 1.2;
}

.ps-hero__title {
    margin: 0;
    color: var(--ps-home-title);
    font-size: clamp(32px, 6vw, var(--ps-home-title-size, 92px));
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    text-transform: uppercase;
}

.ps-hero__subtitle {
    margin: 10px 0 0;
    color: var(--ps-home-subtitle);
    font-size: clamp(20px, 3.5vw, var(--ps-home-subtitle-size, 54px));
    font-weight: 900;
    line-height: 1.05;
}

.ps-hero__badges {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: var(--ps-home-badge-gap, 20px);
    width: var(--ps-home-badge-group-width, 300px);
    max-width: 100%;
    pointer-events: none;
}

.ps-hero__badge {
    flex: 0 1 auto;
    width: var(--ps-home-badge-size, 300px);
    margin: 0;
}

.ps-hero__badge--secondary {
    width: var(--ps-home-badge-2-size, 300px);
}

.ps-main--has-badge .ps-page-content--front > .ps-glass-panel:first-child .ps-glass-panel__title {
    padding-right: calc(var(--ps-home-badge-group-width, 300px) + 20px);
}

.ps-main--has-candidate .ps-glass-panel--has-candidate {
    position: relative;
    min-height: min(520px, calc(var(--ps-candidate-width, 320px) * 1.24));
    padding-right: calc(min(var(--ps-candidate-width, 320px), 32%) + clamp(28px, 4vw, 58px));
    overflow: hidden;
}

.ps-parish-candidate {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    width: min(var(--ps-candidate-width, 320px), 32%);
    max-height: calc(100% - 18px);
    margin: 0;
    pointer-events: none;
}

.ps-parish-candidate__image {
    display: block;
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: right bottom;
}

.ps-hero__badge-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin-inline: auto;
}

.ps-hero__actions,
.ps-home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 38px 0 22px;
}

.ps-pill,
.ps-glass-panel a.ps-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 48px;
    padding: 16px 34px;
    color: var(--ps-pill-text);
    background-color: var(--ps-pill-background);
    border: 0;
    border-radius: 999px;
    font-size: 1.125rem;
    font-weight: 600;
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.ps-pill:hover,
.ps-pill:focus-visible,
.ps-glass-panel a.ps-pill:hover,
.ps-glass-panel a.ps-pill:focus-visible {
    color: var(--ps-pill-text);
    background-color: var(--ps-pill-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.ps-pill .ps-icon {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

.ps-main--front .ps-glass-panel__title {
    margin: 0 0 14px;
    padding: 0;
    color: var(--ps-panel-heading, #ffe700);
    font-size: clamp(11px, 3vw, var(--ps-home-panel-title-size, 36px));
    font-weight: 700;
    line-height: 1.15;
    text-transform: none;
    white-space: nowrap;
    border: 0;
}

.ps-main--front .ps-glass-panel__intro {
    color: var(--ps-home-panel-intro-color, #fafafa);
    font-size: clamp(14px, 2vw, var(--ps-home-panel-intro-size, 24px));
}

.ps-main--front .ps-glass-panel__content {
    color: var(--ps-home-panel-content-color, #fafafa);
    font-size: clamp(12px, 1.5vw, var(--ps-home-panel-content-size, 18px));
}

@media (max-width: 900px) {
    .ps-page-content--front > .ps-glass-panel:first-child {
        margin-top: 24px;
    }

    .ps-main--front .ps-page-content--front > .ps-pill-group,
    .ps-main--front .ps-page-content--front > .ps-home-actions {
        margin-top: 22px;
    }
}

@media (min-width: 681px) and (max-width: 900px) {
    .ps-main--has-badge .ps-page-content--front > .ps-glass-panel:first-child {
        padding-top: clamp(62px, 9vw, 76px);
    }
}

@media (max-width: 680px) {
    .ps-main--has-candidate .ps-glass-panel--has-candidate {
        min-height: 0;
        padding-right: 20px;
        overflow: hidden;
    }

    .ps-parish-candidate {
        position: static;
        width: min(var(--ps-candidate-width, 320px), 68vw, 260px);
        max-height: none;
        margin: -8px auto 22px;
    }

    .ps-main--front .ps-glass-panel__title {
        font-size: var(--ps-home-panel-mobile-title-size, 30px);
    }

    .ps-main--front .ps-glass-panel__intro {
        font-size: var(--ps-home-panel-mobile-intro-size, 20px);
    }

    .ps-main--front .ps-glass-panel__content {
        font-size: var(--ps-home-panel-mobile-content-size, 18px);
    }

    .ps-hero__badges {
        position: static;
        justify-content: center;
        width: auto;
        max-width: 100%;
        margin: 28px 0 0;
    }

    .ps-hero__badge {
        width: min(var(--ps-home-badge-width, 300px), clamp(170px, 38vw, 220px));
    }

    .ps-hero__badge--secondary {
        width: min(var(--ps-home-badge-2-width, 300px), clamp(170px, 38vw, 220px));
    }

    .ps-main--has-two-badges .ps-hero__badge {
        width: min(var(--ps-home-badge-width, 300px), clamp(118px, 36vw, 210px));
    }

    .ps-main--has-two-badges .ps-hero__badge--secondary {
        width: min(var(--ps-home-badge-2-width, 300px), clamp(118px, 36vw, 210px));
    }

    .ps-hero--has-badge .ps-hero__heading {
        max-width: none;
    }

    .ps-main--has-badge .ps-page-content--front > .ps-glass-panel:first-child .ps-glass-panel__title {
        padding-right: 0;
    }

    .ps-page-content--front > .ps-glass-panel:first-child {
        margin-top: 14px;
    }

    .ps-main--front .ps-page-content--front > .ps-pill-group,
    .ps-main--front .ps-page-content--front > .ps-home-actions {
        margin-top: 14px;
    }
}
