/*
|--------------------------------------------------------------------------
| SAN NICODEMO ABATE
|--------------------------------------------------------------------------
| PREMIUM PUBLIC EVENTS
|--------------------------------------------------------------------------
|
| Dedicated styling for:
| app/views/public/events.php
|
|--------------------------------------------------------------------------
*/

.heritage-events {
    --he-navy: #0b1d2d;
    --he-navy-soft: #19364c;
    --he-gold: #b88a18;
    --he-gold-dark: #9c7311;
    --he-gold-soft: #f0dfab;
    --he-cream: #fbf7ec;
    --he-paper: #fffdf8;
    --he-line: rgba(11, 29, 45, 0.12);
    --he-muted: #6d7887;
    --he-soft-blue: #edf6fb;
    --he-green: #4c805b;
    --he-shadow: 0 22px 64px rgba(26, 43, 55, 0.11);

    width: min(1180px, calc(100% - 40px));
    margin: 54px auto 96px;

    color: var(--he-navy);
}

.heritage-events *,
.heritage-events *::before,
.heritage-events *::after {
    box-sizing: border-box;
}

.heritage-events a {
    text-decoration: none;
}

.heritage-events-hero,
.heritage-featured,
.heritage-calendar,
.heritage-upcoming-list,
.heritage-past,
.heritage-press,
.heritage-contact-cta {
    border:
        1px
        solid
        rgba(184, 138, 24, 0.18);

    background:
        var(--he-paper);

    box-shadow:
        var(--he-shadow);
}


/* ================================================================
   HERO
================================================================ */

.heritage-events-hero {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(320px, .85fr);

    overflow: hidden;

    min-height: 520px;

    border-radius: 34px;

    background:
        linear-gradient(
            90deg,
            rgba(255, 253, 248, .99) 0%,
            rgba(255, 253, 248, .96) 46%,
            rgba(255, 253, 248, .70) 72%,
            rgba(255, 253, 248, .45) 100%
        ),
        radial-gradient(
            circle at 88% 16%,
            rgba(221, 239, 248, .88),
            transparent 34%
        ),
        radial-gradient(
            circle at 68% 90%,
            rgba(232, 217, 172, .55),
            transparent 36%
        ),
        #fffdf8;
}

.heritage-events-hero::before {
    content: "";

    position: absolute;

    inset:
        0
        0
        0
        auto;

    width: 47%;

    background:
        radial-gradient(
            circle at 54% 43%,
            rgba(184, 138, 24, .12),
            transparent 9%
        ),
        repeating-radial-gradient(
            circle at 64% 42%,
            transparent 0 54px,
            rgba(184, 138, 24, .075) 55px 56px
        );

    opacity: .9;

    pointer-events: none;
}

.heritage-events-hero-copy {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        clamp(38px, 6vw, 76px);
}

.heritage-events-eyebrow {
    margin: 0 0 18px;

    color:
        var(--he-gold);

    font-size:
        .76rem;

    font-weight:
        850;

    letter-spacing:
        .17em;

    text-transform:
        uppercase;
}

.heritage-events-hero h1,
.heritage-section-heading h2,
.heritage-featured h2,
.heritage-upcoming-card h3,
.heritage-past-card h3,
.heritage-contact-cta h2 {
    font-family:
        Georgia,
        "Times New Roman",
        serif;
}

.heritage-events-hero h1 {
    max-width:
        660px;

    margin:
        0;

    color:
        var(--he-navy);

    font-size:
        clamp(
            3.5rem,
            7vw,
            6rem
        );

    font-weight:
        500;

    line-height:
        .95;

    letter-spacing:
        -.055em;
}

.heritage-events-intro {
    max-width:
        650px;

    margin:
        28px
        0
        0;

    color:
        var(--he-muted);

    font-size:
        clamp(
            1rem,
            1.7vw,
            1.16rem
        );

    line-height:
        1.72;
}

.heritage-events-tabs {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

    gap:
        0;

    width:
        min(
            640px,
            100%
        );

    margin-top:
        36px;

    overflow:
        hidden;

    border:
        1px
        solid
        rgba(
            184,
            138,
            24,
            .28
        );

    border-radius:
        999px;
}

.heritage-events-tabs a {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        11px;

    min-height:
        56px;

    padding:
        0
        24px;

    color:
        var(--he-navy);

    background:
        rgba(
            255,
            255,
            255,
            .84
        );

    font-weight:
        750;

    transition:
        transform
        .18s
        ease,
        background
        .18s
        ease;
}

.heritage-events-tabs a.is-primary {
    color:
        #fff;

    background:
        linear-gradient(
            135deg,
            #bf901a,
            #a8780b
        );
}

.heritage-events-tabs a:hover,
.heritage-events-tabs a:focus-visible {
    transform:
        translateY(
            -1px
        );
}

.heritage-events-hero-art {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 520px;
    overflow: hidden;
}

.heritage-events-hero-art::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: -12%;
    right: -10%;
    width: 112%;
    height: 116%;
    background:
        radial-gradient(
            circle at 58% 42%,
            rgba(255, 255, 255, .96) 0 10%,
            rgba(245, 221, 151, .52) 11% 24%,
            rgba(214, 237, 248, .55) 25% 43%,
            rgba(255, 255, 255, .12) 60%,
            transparent 76%
        );
    pointer-events: none;
}

.heritage-events-hero-art::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(255, 253, 248, .96) 0%,
            rgba(255, 253, 248, .42) 18%,
            rgba(255, 253, 248, .02) 50%,
            rgba(255, 253, 248, .08) 100%
        ),
        linear-gradient(
            0deg,
            rgba(255, 253, 248, .42) 0%,
            transparent 24%
        );
    pointer-events: none;
}

.heritage-events-hero-rings {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: 3%;
    width: min(480px, 96%);
    aspect-ratio: 1;
    transform: translateY(-50%);
    border: 1px solid rgba(184, 138, 24, .23);
    border-radius: 50%;
    box-shadow:
        0 0 0 58px rgba(184, 138, 24, .075),
        0 0 0 116px rgba(184, 138, 24, .05),
        0 0 0 174px rgba(184, 138, 24, .035);
    pointer-events: none;
}

.heritage-events-hero-statue {
    position: absolute;
    z-index: 2;
    right: 4%;
    bottom: -4px;
    width: min(365px, 78%);
    height: 96%;
    object-fit: contain;
    object-position: right bottom;
    filter:
        saturate(.92)
        contrast(1.02)
        drop-shadow(0 20px 30px rgba(45, 35, 20, .22));
    opacity: .98;
}

.heritage-events-hero-motto {
    position: absolute;
    z-index: 4;
    top: 54px;
    left: 26px;
    max-width: 230px;
    margin: 0;
    color: rgba(11, 29, 45, .64);
    font-family: Georgia, serif;
    font-size: 1.18rem;
    font-style: italic;
    line-height: 1.45;
    transform: rotate(-5deg);
}

.heritage-events-hero-quote {
    position: absolute;
    z-index: 4;
    right: 28px;
    bottom: 38px;
    width: min(290px, 72%);
    margin: 0;
    padding-top: 17px;
    border-top: 2px solid rgba(184, 138, 24, .48);
    color: var(--he-navy-soft);
    font-family: Georgia, serif;
    font-size: 1.06rem;
    font-style: italic;
    line-height: 1.5;
    text-align: right;
    text-shadow: 0 1px 8px rgba(255, 253, 248, .95);
}


/* ================================================================
   FEATURED EVENT
================================================================ */

.heritage-featured {
    margin-top:
        30px;

    padding:
        clamp(
            22px,
            3vw,
            32px
        );

    border-radius:
        30px;
}

.heritage-featured-card {
    display:
        grid;

    grid-template-columns:
        minmax(
            0,
            1fr
        )
        minmax(
            0,
            1.13fr
        );

    overflow:
        hidden;

    border:
        1px
        solid
        var(--he-line);

    border-radius:
        24px;

    background:
        #fff;
}

.heritage-featured-image {
    position:
        relative;

    min-height:
        430px;

    background-position:
        center;

    background-size:
        cover;
}

.heritage-featured-image::after {
    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            180deg,
            rgba(
                11,
                29,
                45,
                .05
            )
            38%,
            rgba(
                11,
                29,
                45,
                .74
            )
            100%
        );
}

.heritage-featured-image.has-no-image {
    background:
        radial-gradient(
            circle at 70% 25%,
            rgba(
                234,
                219,
                178,
                .82
            ),
            transparent 24%
        ),
        radial-gradient(
            circle at 30% 66%,
            rgba(
                213,
                236,
                246,
                .88
            ),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #d8e8ef,
            #f4e9c9
        );
}

.heritage-featured-image.has-no-image::before {
    content:
        "✦";

    position:
        absolute;

    top:
        50%;

    left:
        50%;

    z-index:
        2;

    transform:
        translate(
            -50%,
            -50%
        );

    color:
        rgba(
            11,
            29,
            45,
            .30
        );

    font-size:
        7rem;
}

.heritage-featured-ribbon {
    position:
        absolute;

    top:
        24px;

    left:
        0;

    z-index:
        3;

    padding:
        12px
        22px;

    border-radius:
        0
        999px
        999px
        0;

    color:
        #fff;

    background:
        linear-gradient(
            135deg,
            #c49620,
            #a97808
        );

    font-size:
        .78rem;

    font-weight:
        850;

    letter-spacing:
        .10em;

    text-transform:
        uppercase;
}

.heritage-featured-image-quote {
    position:
        absolute;

    right:
        26px;

    bottom:
        24px;

    left:
        26px;

    z-index:
        3;

    max-width:
        310px;

    color:
        #fff;

    font-family:
        Georgia,
        serif;

    font-size:
        1.25rem;

    font-style:
        italic;

    line-height:
        1.4;
}

.heritage-featured-content {
    padding:
        clamp(
            28px,
            5vw,
            54px
        );
}

.heritage-featured-topline {
    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        20px;
}

.heritage-date-card {
    display:
        grid;

    place-items:
        center;

    align-content:
        center;

    width:
        108px;

    height:
        118px;

    border:
        1px
        solid
        rgba(
            184,
            138,
            24,
            .22
        );

    border-radius:
        20px;

    background:
        var(--he-cream);
}

.heritage-date-card strong {
    font-family:
        Georgia,
        serif;

    font-size:
        2.8rem;

    font-weight:
        500;

    line-height:
        1;
}

.heritage-date-card span {
    margin-top:
        8px;

    color:
        var(--he-gold);

    font-size:
        .72rem;

    font-weight:
        850;

    letter-spacing:
        .14em;
}

.heritage-countdown {
    display:
        inline-flex;

    align-items:
        center;

    min-height:
        36px;

    padding:
        0
        14px;

    border-radius:
        999px;

    color:
        var(--he-gold-dark);

    background:
        #fff7de;

    font-size:
        .76rem;

    font-weight:
        800;
}

.heritage-featured h2 {
    margin:
        28px
        0
        0;

    font-size:
        clamp(
            2.2rem,
            4vw,
            3.6rem
        );

    font-weight:
        500;

    line-height:
        1.02;

    letter-spacing:
        -.045em;
}

.heritage-featured-location,
.heritage-upcoming-location,
.heritage-past-location {
    display:
        flex;

    align-items:
        flex-start;

    gap:
        9px;

    color:
        var(--he-gold-dark);

    font-weight:
        750;

    line-height:
        1.45;
}

.heritage-featured-location {
    margin:
        18px
        0
        0;
}

.heritage-featured-description {
    margin:
        22px
        0
        0;

    color:
        var(--he-muted);

    font-size:
        1rem;

    line-height:
        1.72;
}

.heritage-featured-actions {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        12px;

    margin-top:
        28px;
}

.heritage-button {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    min-height:
        50px;

    padding:
        0
        20px;

    border-radius:
        999px;

    font-weight:
        800;
}

.heritage-button-primary {
    color:
        #fff;

    background:
        linear-gradient(
            135deg,
            #c49620,
            #a97808
        );
}

.heritage-button-secondary {
    border:
        1px
        solid
        rgba(
            184,
            138,
            24,
            .45
        );

    color:
        var(--he-gold-dark);

    background:
        #fff;
}


/* ================================================================
   SECTION HEADING
================================================================ */

.heritage-section-heading {
    display:
        flex;

    align-items:
        end;

    justify-content:
        space-between;

    gap:
        34px;
}

.heritage-section-heading h2 {
    margin:
        0;

    color:
        var(--he-navy);

    font-size:
        clamp(
            2rem,
            4vw,
            3.5rem
        );

    font-weight:
        500;

    line-height:
        1;

    letter-spacing:
        -.045em;
}

.heritage-section-heading > p {
    max-width:
        440px;

    margin:
        0;

    color:
        var(--he-muted);

    line-height:
        1.7;
}


/* ================================================================
   CALENDAR
================================================================ */

.heritage-calendar {
    margin-top:
        30px;

    padding:
        clamp(
            28px,
            4vw,
            46px
        );

    border-radius:
        30px;
}

.heritage-calendar-nav {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;
}

.heritage-calendar-nav a {
    display:
        grid;

    place-items:
        center;

    min-width:
        44px;

    min-height:
        44px;

    padding:
        0
        14px;

    border:
        1px
        solid
        var(--he-line);

    border-radius:
        999px;

    color:
        var(--he-navy);

    background:
        #fff;

    font-weight:
        800;
}

.heritage-calendar-weekdays,
.heritage-calendar-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            7,
            minmax(
                0,
                1fr
            )
        );
}

.heritage-calendar-weekdays {
    margin-top:
        30px;

    border-bottom:
        1px
        solid
        var(--he-line);
}

.heritage-calendar-weekdays span {
    padding:
        0
        4px
        11px;

    color:
        var(--he-muted);

    font-size:
        .68rem;

    font-weight:
        850;

    letter-spacing:
        .08em;

    text-align:
        center;

    text-transform:
        uppercase;
}

.heritage-calendar-grid {
    overflow:
        hidden;

    border-top:
        1px
        solid
        var(--he-line);

    border-left:
        1px
        solid
        var(--he-line);

    border-radius:
        20px;

    background:
        #fff;
}

.heritage-calendar-day {
    position:
        relative;

    min-height:
        112px;

    padding:
        12px;

    border-right:
        1px
        solid
        var(--he-line);

    border-bottom:
        1px
        solid
        var(--he-line);
}

.heritage-calendar-day.is-empty {
    background:
        #fafbfc;
}

.heritage-calendar-day.has-event {
    background:
        linear-gradient(
            180deg,
            rgba(
                251,
                247,
                236,
                .95
            ),
            #fff
        );
}

.heritage-calendar-day.is-today {
    background:
        linear-gradient(
            180deg,
            rgba(
                237,
                246,
                251,
                .98
            ),
            #fff
        );
}

.heritage-calendar-number {
    display:
        grid;

    place-items:
        center;

    width:
        31px;

    height:
        31px;

    border-radius:
        50%;

    font-size:
        .82rem;

    font-weight:
        850;
}

.heritage-calendar-day.is-today
.heritage-calendar-number {
    color:
        #fff;

    background:
        var(--he-navy);
}

.heritage-calendar-events {
    display:
        grid;

    gap:
        5px;

    margin-top:
        7px;
}

.heritage-calendar-events a {
    display:
        flex;

    align-items:
        flex-start;

    gap:
        6px;

    min-width:
        0;

    padding:
        6px
        7px;

    border-radius:
        9px;

    color:
        var(--he-navy);

    background:
        rgba(
            184,
            138,
            24,
            .11
        );

    font-size:
        .68rem;
}

.heritage-calendar-events a > span {
    color:
        var(--he-gold);

    font-size:
        .58rem;

    line-height:
        1.45;
}

.heritage-calendar-events strong {
    overflow:
        hidden;

    display:
        -webkit-box;

    -webkit-box-orient:
        vertical;

    -webkit-line-clamp:
        2;

    line-height:
        1.35;
}


/* ================================================================
   UPCOMING EVENTS LIST
================================================================ */

.heritage-upcoming-list {
    margin-top:
        30px;

    padding:
        clamp(
            30px,
            5vw,
            56px
        );

    border-radius:
        30px;
}

.heritage-upcoming-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

    gap:
        18px;

    margin-top:
        32px;
}

.heritage-upcoming-card {
    display:
        grid;

    grid-template-columns:
        108px
        minmax(
            0,
            1fr
        );

    overflow:
        hidden;

    border:
        1px
        solid
        var(--he-line);

    border-radius:
        20px;

    background:
        #fff;

    scroll-margin-top:
        120px;
}

.heritage-upcoming-date {
    display:
        grid;

    place-items:
        center;

    align-content:
        center;

    min-height:
        210px;

    padding:
        16px;

    background:
        var(--he-cream);
}

.heritage-upcoming-date strong {
    font-family:
        Georgia,
        serif;

    font-size:
        2.8rem;

    font-weight:
        500;

    line-height:
        1;
}

.heritage-upcoming-date span {
    margin-top:
        8px;

    color:
        var(--he-gold);

    font-size:
        .72rem;

    font-weight:
        850;

    letter-spacing:
        .13em;
}

.heritage-upcoming-body {
    padding:
        24px
        24px
        26px;
}

.heritage-upcoming-card h3 {
    margin:
        0;

    color:
        var(--he-navy);

    font-size:
        1.75rem;

    font-weight:
        500;

    line-height:
        1.08;

    letter-spacing:
        -.035em;
}

.heritage-upcoming-location {
    margin:
        13px
        0
        0;
}

.heritage-upcoming-body > p:not(.heritage-upcoming-location) {
    margin:
        16px
        0
        0;

    color:
        var(--he-muted);

    line-height:
        1.65;
}

.heritage-upcoming-actions {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        16px;

    margin-top:
        20px;
}

.heritage-upcoming-actions a {
    color:
        var(--he-gold-dark);

    font-size:
        .82rem;

    font-weight:
        800;
}


/* ================================================================
   PAST EVENTS
================================================================ */

.heritage-past {
    margin-top:
        30px;

    padding:
        clamp(
            30px,
            5vw,
            56px
        );

    border-radius:
        30px;
}

.heritage-past-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

    gap:
        18px;

    margin-top:
        32px;
}

.heritage-past-card {
    overflow:
        hidden;

    border:
        1px
        solid
        var(--he-line);

    border-radius:
        22px;

    background:
        #fff;
}

.heritage-past-image {
    min-height:
        205px;

    background-position:
        center;

    background-size:
        cover;
}

.heritage-past-image.has-no-image {
    position:
        relative;

    background:
        radial-gradient(
            circle at 34% 35%,
            rgba(
                221,
                239,
                248,
                .96
            ),
            transparent 29%
        ),
        radial-gradient(
            circle at 72% 66%,
            rgba(
                235,
                219,
                174,
                .82
            ),
            transparent 30%
        ),
        #f5f2e9;
}

.heritage-past-image.has-no-image::after {
    content:
        "✦";

    position:
        absolute;

    inset:
        0;

    display:
        grid;

    place-items:
        center;

    color:
        rgba(
            11,
            29,
            45,
            .22
        );

    font-size:
        4rem;
}

.heritage-past-body {
    padding:
        24px;
}

.heritage-past-topline {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        14px;
}

.heritage-mini-date {
    display:
        flex;

    align-items:
        baseline;

    gap:
        8px;

    color:
        var(--he-navy);
}

.heritage-mini-date strong {
    font-family:
        Georgia,
        serif;

    font-size:
        1.9rem;

    font-weight:
        500;
}

.heritage-mini-date span {
    color:
        var(--he-gold);

    font-size:
        .70rem;

    font-weight:
        850;

    letter-spacing:
        .12em;
}

.heritage-completed-badge {
    display:
        inline-flex;

    align-items:
        center;

    min-height:
        30px;

    padding:
        0
        11px;

    border-radius:
        999px;

    color:
        #65717f;

    background:
        #eef1f3;

    font-size:
        .68rem;

    font-weight:
        750;
}

.heritage-past-card h3 {
    margin:
        18px
        0
        0;

    color:
        var(--he-navy);

    font-size:
        1.8rem;

    font-weight:
        500;

    line-height:
        1.06;

    letter-spacing:
        -.035em;
}

.heritage-past-location {
    margin:
        12px
        0
        0;
}

.heritage-past-description {
    display:
        -webkit-box;

    overflow:
        hidden;

    margin:
        15px
        0
        0;

    color:
        var(--he-muted);

    line-height:
        1.62;

    -webkit-box-orient:
        vertical;

    -webkit-line-clamp:
        3;
}

.heritage-past-footer {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        18px;

    margin-top:
        22px;

    padding-top:
        18px;

    border-top:
        1px
        solid
        var(--he-line);
}

.heritage-past-footer span {
    color:
        var(--he-muted);

    font-size:
        .78rem;

    font-weight:
        700;
}

.heritage-past-footer a {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        40px;

    padding:
        0
        15px;

    border:
        1px
        solid
        rgba(
            184,
            138,
            24,
            .42
        );

    border-radius:
        999px;

    color:
        var(--he-gold-dark);

    font-size:
        .78rem;

    font-weight:
        800;
}


/* ================================================================
   PRESS
================================================================ */

.heritage-press {
    margin-top:
        30px;

    padding:
        clamp(
            30px,
            5vw,
            56px
        );

    border-radius:
        30px;
}

.heritage-press-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(
                0,
                1fr
            )
        );

    gap:
        16px;

    margin-top:
        28px;
}

.heritage-press-card {
    position:
        relative;

    min-height:
        180px;

    padding:
        23px;

    border:
        1px
        solid
        var(--he-line);

    border-radius:
        18px;

    color:
        var(--he-navy);

    background:
        #fff;
}

.heritage-press-card strong {
    display:
        block;

    color:
        var(--he-navy);

    font-size:
        1rem;
}

.heritage-press-card small {
    display:
        block;

    margin-top:
        8px;

    color:
        var(--he-muted);

    font-size:
        .68rem;

    letter-spacing:
        .08em;
}

.heritage-press-card p {
    margin:
        18px
        0
        0;

    font-family:
        Georgia,
        serif;

    font-size:
        1.1rem;

    line-height:
        1.35;
}

.heritage-press-card > span {
    position:
        absolute;

    top:
        20px;

    right:
        20px;

    color:
        var(--he-gold);
}


/* ================================================================
   CONTACT CTA
================================================================ */

.heritage-contact-cta {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        28px;

    margin-top:
        30px;

    padding:
        26px
        30px;

    border-radius:
        24px;

    background:
        linear-gradient(
            135deg,
            #fffaf0,
            #fffdf8
        );
}

.heritage-contact-cta > div {
    display:
        flex;

    align-items:
        center;

    gap:
        18px;
}

.heritage-cta-branch {
    display:
        grid;

    place-items:
        center;

    width:
        70px;

    height:
        70px;

    border-radius:
        50%;

    color:
        var(--he-gold);

    background:
        rgba(
            184,
            138,
            24,
            .10
        );

    font-size:
        2rem;
}

.heritage-contact-cta h2 {
    margin:
        0;

    font-size:
        1.55rem;

    font-weight:
        500;
}

.heritage-contact-cta p {
    margin:
        7px
        0
        0;

    color:
        var(--he-muted);
}

.heritage-contact-cta > a {
    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        10px;

    min-height:
        50px;

    padding:
        0
        22px;

    border-radius:
        999px;

    color:
        #fff;

    background:
        linear-gradient(
            135deg,
            #c49620,
            #a97808
        );

    font-weight:
        800;
}

.heritage-events-signoff {
    margin:
        28px
        0
        0;

    color:
        var(--he-gold);

    font-size:
        .70rem;

    font-weight:
        850;

    letter-spacing:
        .28em;

    text-align:
        center;

    text-transform:
        uppercase;
}


/* ================================================================
   EMPTY STATE
================================================================ */

.heritage-events-empty {
    display:
        grid;

    place-items:
        center;

    min-height:
        260px;

    padding:
        40px;

    border:
        1px
        dashed
        rgba(
            11,
            29,
            45,
            .18
        );

    border-radius:
        20px;

    text-align:
        center;

    background:
        #fbfcfd;
}

.heritage-events-empty > span {
    color:
        var(--he-gold);

    font-size:
        2.4rem;
}

.heritage-events-empty h2 {
    margin:
        12px
        0
        0;

    font-family:
        Georgia,
        serif;

    font-size:
        2rem;

    font-weight:
        500;
}

.heritage-events-empty p {
    max-width:
        600px;

    margin:
        10px
        auto
        0;

    color:
        var(--he-muted);

    line-height:
        1.65;
}

.heritage-events-empty.is-compact {
    min-height:
        140px;

    margin-top:
        28px;
}


/* ================================================================
   TABLET
================================================================ */

@media (
    max-width:
    980px
) {

    .heritage-events-hero {
        grid-template-columns:
            1fr;
    }

    .heritage-events-hero-art {
        min-height: 380px;
    }

    .heritage-events-hero-statue {
        right: 8%;
        width: min(340px, 72%);
        height: 100%;
    }

    .heritage-events-hero-motto {
        top: 38px;
        left: 30px;
    }

    .heritage-featured-card {
        grid-template-columns:
            1fr;
    }

    .heritage-featured-image {
        min-height:
            360px;
    }

    .heritage-upcoming-grid,
    .heritage-past-grid {
        grid-template-columns:
            1fr;
    }

    .heritage-press-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(
                    0,
                    1fr
                )
            );
    }
}


/* ================================================================
   MOBILE
================================================================ */

@media (
    max-width:
    680px
) {

    .heritage-events {
        width:
            calc(
                100%
                -
                20px
            );

        margin:
            24px
            auto
            72px;
    }

    .heritage-events-hero,
    .heritage-featured,
    .heritage-calendar,
    .heritage-upcoming-list,
    .heritage-past,
    .heritage-press {
        border-radius:
            24px;
    }

    .heritage-events-hero-copy {
        padding:
            36px
            24px
            34px;
    }

    .heritage-events-hero h1 {
        font-size:
            clamp(
                3rem,
                14vw,
                4.6rem
            );
    }

    .heritage-events-tabs {
        grid-template-columns:
            1fr;

        border-radius:
            22px;
    }

    .heritage-events-tabs a {
        min-height:
            52px;
    }

    .heritage-events-hero-art {
        min-height: 315px;
    }

    .heritage-events-hero-statue {
        right: -2%;
        width: min(275px, 76%);
        height: 100%;
    }

    .heritage-events-hero-rings {
        right: -10%;
        width: 310px;
    }

    .heritage-events-hero-motto {
        top: 28px;
        left: 22px;
        max-width: 150px;
        font-size: .92rem;
    }

    .heritage-events-hero-quote {
        right: 18px;
        bottom: 22px;
        width: 58%;
        font-size: .86rem;
    }

    .heritage-featured {
        padding:
            14px;
    }

    .heritage-featured-image {
        min-height:
            300px;
    }

    .heritage-featured-content {
        padding:
            24px
            20px
            26px;
    }

    .heritage-featured-topline {
        align-items:
            center;
    }

    .heritage-date-card {
        width:
            86px;

        height:
            96px;
    }

    .heritage-date-card strong {
        font-size:
            2.2rem;
    }

    .heritage-featured h2 {
        font-size:
            2.3rem;
    }

    .heritage-featured-actions {
        display:
            grid;
    }

    .heritage-button {
        width:
            100%;
    }

    .heritage-section-heading {
        align-items:
            flex-start;

        flex-direction:
            column;
    }

    .heritage-calendar {
        padding:
            24px
            12px
            18px;
    }

    .heritage-calendar-weekdays span {
        padding:
            0
            2px
            8px;

        font-size:
            .58rem;
    }

    .heritage-calendar-day {
        min-height:
            66px;

        padding:
            5px
            3px;
    }

    .heritage-calendar-number {
        width:
            25px;

        height:
            25px;

        font-size:
            .70rem;
    }

    .heritage-calendar-events {
        margin-top:
            3px;
    }

    .heritage-calendar-events a {
        justify-content:
            center;

        padding:
            3px;

        background:
            transparent;
    }

    .heritage-calendar-events a strong {
        display:
            none;
    }

    .heritage-calendar-events a > span {
        font-size:
            .72rem;
    }

    .heritage-upcoming-list,
    .heritage-past,
    .heritage-press {
        padding:
            32px
            18px;
    }

    .heritage-upcoming-card {
        grid-template-columns:
            82px
            minmax(
                0,
                1fr
            );
    }

    .heritage-upcoming-date {
        min-height:
            180px;

        padding:
            12px
            7px;
    }

    .heritage-upcoming-date strong {
        font-size:
            2.2rem;
    }

    .heritage-upcoming-body {
        padding:
            20px
            16px
            22px;
    }

    .heritage-upcoming-card h3 {
        font-size:
            1.5rem;
    }

    .heritage-upcoming-actions {
        display:
            grid;

        gap:
            8px;
    }

    .heritage-past-grid,
    .heritage-press-grid {
        grid-template-columns:
            1fr;
    }

    .heritage-past-image {
        min-height:
            190px;
    }

    .heritage-past-footer {
        align-items:
            flex-start;

        flex-direction:
            column;
    }

    .heritage-contact-cta {
        align-items:
            stretch;

        flex-direction:
            column;

        padding:
            24px;
    }

    .heritage-contact-cta > div {
        align-items:
            flex-start;
    }

    .heritage-cta-branch {
        flex:
            0
            0
            auto;

        width:
            54px;

        height:
            54px;
    }

    .heritage-contact-cta > a {
        width:
            100%;
    }

    .heritage-events-signoff {
        letter-spacing:
            .16em;

        line-height:
            1.7;
    }
}
/* ========================================================================
   MOCKUP ALIGNMENT OVERRIDES
   ========================================================================
   IMPORTANT:
   These rules intentionally come AFTER the original complete stylesheet.
   They refine only the Events page layout without deleting the existing
   calendar, gallery, archive, responsive, accessibility or state rules.
   ======================================================================== */


/* ------------------------------------------------------------------------
   HERO — SAN NICODEMO PHOTO BLENDED INTO THE RIGHT SIDE
   ------------------------------------------------------------------------ */

.heritage-events-hero {
    grid-template-columns:
        minmax(0, 1.03fr)
        minmax(430px, .97fr);

    min-height: 470px;

    border-radius: 28px;
}

.heritage-events-hero-copy {
    padding:
        54px
        30px
        48px
        64px;
}

.heritage-events-hero h1 {
    max-width: 700px;

    font-size:
        clamp(
            3.8rem,
            6.2vw,
            6.25rem
        );
}

.heritage-events-intro {
    max-width: 620px;

    margin-top: 24px;

    font-size: 1rem;
}

.heritage-events-tabs {
    width: min(560px, 100%);

    margin-top: 28px;
}

.heritage-events-tabs a {
    min-height: 50px;
}

.heritage-events-hero-art {
    min-height: 470px;
    overflow: hidden;
}

.heritage-events-hero-art::before {
    z-index: 1;

    inset: 0;

    width: 100%;
    height: 100%;

    background:
        radial-gradient(
            circle at 60% 43%,
            rgba(243, 216, 137, .54) 0 15%,
            rgba(216, 238, 248, .45) 16% 31%,
            rgba(255, 253, 248, .10) 45%,
            transparent 66%
        );
}

.heritage-events-hero-art::after {
    z-index: 4;

    background:
        linear-gradient(
            90deg,
            rgba(255, 253, 248, 1) 0%,
            rgba(255, 253, 248, .72) 13%,
            rgba(255, 253, 248, .16) 32%,
            rgba(255, 253, 248, .02) 66%,
            rgba(255, 253, 248, .18) 100%
        ),
        linear-gradient(
            0deg,
            rgba(255, 253, 248, .64) 0%,
            rgba(255, 253, 248, .08) 30%,
            transparent 55%
        );
}

.heritage-events-hero-rings {
    z-index: 2;

    right: 7%;

    width: min(430px, 86%);

    opacity: .9;
}

.heritage-events-hero-statue {
    z-index: 3;

    right: -1%;
    bottom: -2%;

    width: 82%;
    height: 104%;

    object-fit: cover;
    object-position: 54% 34%;

    opacity: .96;

    filter:
        saturate(.91)
        contrast(1.02)
        brightness(1.03)
        drop-shadow(
            0
            18px
            26px
            rgba(44, 33, 17, .18)
        );

    -webkit-mask-image:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(0, 0, 0, .28) 10%,
            #000 28%,
            #000 92%,
            rgba(0, 0, 0, .80) 100%
        );

    mask-image:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(0, 0, 0, .28) 10%,
            #000 28%,
            #000 92%,
            rgba(0, 0, 0, .80) 100%
        );
}

.heritage-events-hero-motto {
    z-index: 5;

    top: 45px;
    left: 28px;

    font-size: 1rem;
}

.heritage-events-hero-quote {
    z-index: 5;

    right: 34px;
    bottom: 34px;

    width: min(255px, 66%);

    font-size: .98rem;
}


/* ------------------------------------------------------------------------
   HEADING ABOVE FEATURED EVENT + CALENDAR
   ------------------------------------------------------------------------ */

.heritage-feature-calendar-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;

    margin-top: 30px;
    padding: 0 4px 14px;
}

.heritage-feature-calendar-heading > div {
    display: flex;
    align-items: center;
    gap: 12px;
}

.heritage-feature-calendar-line {
    display: block;

    width: 34px;
    height: 2px;

    background: var(--he-gold);
}

.heritage-feature-calendar-heading h2 {
    margin: 0;

    color: var(--he-ink);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            2rem,
            3.6vw,
            3.25rem
        );

    font-weight: 500;
    line-height: 1;
    letter-spacing: -.04em;
}

.heritage-feature-calendar-heading > a {
    color: var(--he-navy);

    font-size: .82rem;
    font-weight: 800;
}


/* ------------------------------------------------------------------------
   FEATURED EVENT + CALENDAR — SIDE BY SIDE LIKE THE MOCKUP
   ------------------------------------------------------------------------ */

.heritage-feature-calendar-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(390px, .8fr);

    gap: 18px;

    align-items: stretch;
}

.heritage-feature-calendar-layout
.heritage-featured,
.heritage-feature-calendar-layout
.heritage-calendar {
    min-width: 0;
    height: 100%;

    margin-top: 0;

    border-radius: 22px;
}

.heritage-feature-calendar-layout
.heritage-featured {
    padding: 14px;
}

.heritage-feature-calendar-layout
.heritage-featured-card {
    grid-template-columns:
        minmax(250px, .92fr)
        minmax(0, 1.08fr);

    min-height: 350px;

    border-radius: 17px;
}

.heritage-feature-calendar-layout
.heritage-featured-image {
    min-height: 350px;
}

.heritage-feature-calendar-layout
.heritage-featured-content {
    padding:
        28px
        28px
        30px;
}

.heritage-feature-calendar-layout
.heritage-date-card {
    width: 78px;
    height: 84px;

    border-radius: 14px;
}

.heritage-feature-calendar-layout
.heritage-date-card strong {
    font-size: 2.2rem;
}

.heritage-feature-calendar-layout
.heritage-featured h2 {
    margin-top: 19px;

    font-size:
        clamp(
            2rem,
            3vw,
            3.1rem
        );
}

.heritage-feature-calendar-layout
.heritage-featured-description {
    margin-top: 16px;

    font-size: .92rem;
}

.heritage-feature-calendar-layout
.heritage-featured-actions {
    margin-top: 20px;
}

.heritage-feature-calendar-layout
.heritage-button {
    min-height: 42px;

    padding:
        0
        16px;

    font-size: .76rem;
}


/* ------------------------------------------------------------------------
   COMPACT CALENDAR CARD
   ------------------------------------------------------------------------ */

.heritage-feature-calendar-layout
.heritage-calendar {
    padding:
        24px
        22px;
}

.heritage-feature-calendar-layout
.heritage-calendar
.heritage-section-heading {
    align-items: center;
}

.heritage-feature-calendar-layout
.heritage-calendar
.heritage-section-heading
.heritage-events-eyebrow {
    display: none;
}

.heritage-feature-calendar-layout
.heritage-calendar
.heritage-section-heading h2 {
    font-size: 1.9rem;
}

.heritage-feature-calendar-layout
.heritage-calendar-nav a {
    min-width: 38px;
    min-height: 38px;

    padding: 0 11px;
}

.heritage-feature-calendar-layout
.heritage-calendar-weekdays {
    margin-top: 18px;
}

.heritage-feature-calendar-layout
.heritage-calendar-weekdays span {
    padding-bottom: 8px;

    font-size: .58rem;
}

.heritage-feature-calendar-layout
.heritage-calendar-day {
    min-height: 49px;

    padding: 4px;
}

.heritage-feature-calendar-layout
.heritage-calendar-number {
    width: 26px;
    height: 26px;

    margin: 0 auto;

    font-size: .68rem;
}

.heritage-feature-calendar-layout
.heritage-calendar-events {
    margin-top: 1px;
}

.heritage-feature-calendar-layout
.heritage-calendar-events a {
    justify-content: center;

    padding: 2px;

    background: transparent;
}

.heritage-feature-calendar-layout
.heritage-calendar-events a > span {
    font-size: .62rem;
}

.heritage-feature-calendar-layout
.heritage-calendar-events strong {
    display: none;
}


/* ------------------------------------------------------------------------
   OTHER EVENTS — COMPACT THREE-CARD PROGRAMME ROW
   ------------------------------------------------------------------------ */

.heritage-upcoming-list {
    margin-top: 28px;

    padding:
        30px
        28px;

    border-radius: 22px;
}

.heritage-upcoming-grid {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 14px;

    margin-top: 24px;
}

.heritage-upcoming-card {
    grid-template-columns:
        100px
        72px
        minmax(0, 1fr);

    min-height: 136px;

    overflow: hidden;

    border-radius: 16px;
}

.heritage-upcoming-image {
    min-height: 136px;

    background-position: center;
    background-size: cover;
}

.heritage-upcoming-image.has-no-image {
    background:
        radial-gradient(
            circle at 70% 30%,
            rgba(215, 237, 247, .9),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #e4eef2,
            #f4e8c4
        );
}

.heritage-upcoming-date {
    min-height: 136px;

    padding:
        10px
        6px;
}

.heritage-upcoming-date strong {
    font-size: 2rem;
}

.heritage-upcoming-body {
    padding:
        17px
        14px
        18px;
}

.heritage-upcoming-card h3 {
    font-size: 1.25rem;
}

.heritage-upcoming-location {
    margin-top: 8px;

    font-size: .74rem;
}

.heritage-upcoming-body
> p:not(.heritage-upcoming-location) {
    display:
        -webkit-box;

    overflow: hidden;

    margin-top: 10px;

    font-size: .78rem;
    line-height: 1.45;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.heritage-upcoming-actions {
    gap: 10px;

    margin-top: 11px;
}

.heritage-upcoming-actions a {
    font-size: .70rem;
}


/* ------------------------------------------------------------------------
   RESPONSIVE MATCHING
   ------------------------------------------------------------------------ */

@media (
    max-width:
    1120px
) {

    .heritage-feature-calendar-layout {
        grid-template-columns: 1fr;
    }

    .heritage-upcoming-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}


@media (
    max-width:
    980px
) {

    .heritage-events-hero {
        grid-template-columns: 1fr;
    }

    .heritage-events-hero-art {
        display: block;

        min-height: 370px;
    }

    .heritage-events-hero-statue {
        right: 0;

        width: 70%;
        height: 108%;
    }
}


@media (
    max-width:
    680px
) {

    .heritage-events-hero-copy {
        padding:
            36px
            24px
            30px;
    }

    .heritage-events-hero-art {
        min-height: 310px;
    }

    .heritage-events-hero-statue {
        right: -7%;

        width: 82%;
        height: 105%;
    }

    .heritage-feature-calendar-heading {
        align-items: flex-start;

        flex-direction: column;
    }

    .heritage-feature-calendar-layout
    .heritage-featured-card {
        grid-template-columns: 1fr;
    }

    .heritage-feature-calendar-layout
    .heritage-featured-image {
        min-height: 285px;
    }

    .heritage-upcoming-grid {
        grid-template-columns: 1fr;
    }

    .heritage-upcoming-card {
        grid-template-columns:
            88px
            66px
            minmax(0, 1fr);
    }

    .heritage-upcoming-image,
    .heritage-upcoming-date {
        min-height: 124px;
    }
}


