:root {
    --epic-content-width: 760px;
    --epic-wide-width: 1200px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
}

img {
    max-width: 100%;
    height: auto;
}

.site-shell {
    width: min(100% - 2rem, var(--epic-wide-width));
    margin-inline: auto;
}

.site-header {
    border-bottom: 1px solid #D7DBDE;
    background: #FAF8F3;
}

.site-header__inner {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.site-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: #101820;
    text-decoration: none;
}

.site-brand__logo-image {
    display: block;
    width: 34px;
    height: auto;
    flex: 0 0 auto;
}

.site-brand__name {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    font-family: Geist, Arial, sans-serif;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
}

.site-brand__name span:first-child {
    color: #101820;
}

.site-brand__name span:last-child {
    color: #1C6376;
}

.site-nav__list {
    display: flex;
    align-items: center;
    gap: 1.8rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav__list li {
    margin: 0;
}

.site-nav__list a {
    color: #5D6871;
    font-family: Geist, Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: color 0.18s ease;
}

.site-nav__list a:hover,
.site-nav__list a:focus {
    color: #101820;
}

.site-nav__list .menu-item-has-children > a::after {
    content: "⌄";
    display: inline-block;
    margin-left: 5px;
    font-size: 12px;
    transform: translateY(-1px);
}

.site-nav__list .sub-menu {
    display: none;
    position: absolute;
    z-index: 1000;
    min-width: 190px;
    margin: 12px 0 0;
    padding: 10px 0;
    list-style: none;
    border: 1px solid #D7DBDE;
    border-radius: 8px;
    background: #FFFFFF;
    box-shadow: 0 10px 28px rgba(16, 24, 32, 0.10);
}

.site-nav__list li {
    position: relative;
}

.site-nav__list li:hover > .sub-menu,
.site-nav__list li:focus-within > .sub-menu {
    display: block;
}

.site-nav__list .sub-menu a {
    display: block;
    padding: 10px 16px;
    white-space: nowrap;
}

.site-nav__list .sub-menu a:hover {
    background: #F5F7F7;
}

.site-footer {
    margin-top: 0;
    padding: 72px 0 28px;
    border-top: 0;
    background: #081116;
    color: #FFFFFF;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: minmax(300px, 340px) repeat(3, max-content);
    column-gap: 64px;
    row-gap: 40px;
    justify-content: space-between;
}

.site-brand--footer {
    margin-bottom: 28px;
}

.site-brand--footer .site-brand__name span:first-child {
    color: #FFFFFF;
}

.site-brand--footer .site-brand__name span:last-child {
    color: #78A9B5;
}

.site-footer__intro {
    max-width: 340px;
    margin: 0;
    color: #84919A;
    font-family: Geist, Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
}

.site-footer__heading {
    margin: 0 0 22px;
    color: #84919A;
    font-family: Geist, Arial, sans-serif;
    font-size: 12px;
    font-weight: 900;
    line-height: 18px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.site-footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer li {
    margin: 0;
}

.site-footer li + li {
    margin-top: 14px;
}

.site-footer a {
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 22px;
    text-decoration: none;
    transition: opacity 0.16s ease;
}

.site-footer a:hover,
.site-footer a:focus {
    color: #FFFFFF;
    opacity: 0.72;
}

.site-footer__bottom {
    margin-top: 66px;
    padding-top: 24px;
    border-top: 1px solid #263138;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.site-footer__bottom p {
    margin: 0;
    color: #84919A;
    font-family: Geist, Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
}

@media (max-width: 800px) {
    .site-header__inner {
        align-items: flex-start;
        flex-direction: column;
        padding-block: 1rem;
    }

    .site-nav__list {
        flex-wrap: wrap;
        gap: 0.75rem 1rem;
    }

    .site-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

    .site-footer__bottom {
        flex-direction: column;
    }
}

@media (max-width: 520px) {
    .site-footer__grid {
        grid-template-columns: 1fr;
    }
}

.hero {
    padding: 6rem 0 5rem;
    background: #f5f1e8;
}

.hero__inner {
    display: flex;
    align-items: center;
    min-height: 420px;
}

.hero__content {
    max-width: 760px;
}

.eyebrow {
    margin: 0 0 1rem;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.hero h1 {
    margin: 0;
    font-size: clamp(2.8rem, 6vw, 5.8rem);
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.hero__intro {
    max-width: 680px;
    margin-top: 1.5rem;
    font-size: 1.2rem;
}

.fan-sites,
.features,
.faq {
    padding: 5rem 0;
}

.section-heading {
    margin-bottom: 2rem;
}

.section-heading h2 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.4rem);
    letter-spacing: -0.04em;
}

.fan-sites__grid,
.features__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.fan-card,
.features__grid article {
    padding: 2rem;
    border: 1px solid #e5e5e5;
    border-radius: 18px;
    background: #fff;
}

.fan-card h3,
.features__grid h3 {
    margin-top: 0;
}

.fan-card a {
    display: inline-block;
    margin-top: 1rem;
    font-weight: 700;
}

.features {
    background: #f8f8f8;
}

.faq__list {
    max-width: 900px;
}

.faq details {
    border-top: 1px solid #dcdcdc;
    padding: 1rem 0;
}

.faq details:last-child {
    border-bottom: 1px solid #dcdcdc;
}

.faq summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 1.05rem;
}

.faq details p {
    max-width: 760px;
}

@media (max-width: 700px) {
    .hero {
        padding: 4rem 0;
    }

    .hero__inner {
        min-height: auto;
    }

    .fan-sites__grid,
    .features__grid {
        grid-template-columns: 1fr;
    }
}

/* Global Epic Fans typography */
body,
p,
li,
input,
button,
textarea,
select {
    font-family: Geist, Arial, sans-serif;
}

h1,
h2,
h3 {
    font-family: Georgia, "Times New Roman", serif;
}

h4,
h5,
h6 {
    font-family: Geist, Arial, sans-serif;
}

/* Epic Fans default buttons */
.wp-block-button__link,
.wp-element-button {
    transition: transform 0.18s ease, opacity 0.18s ease;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
    transform: translateY(-2px);
}

/* Reusable section eyebrow */
.section-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    color: #1C6376;
    font-family: Geist, Arial, sans-serif !important;
    font-size: 13px;
    font-weight: 900;
    line-height: 20px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.section-eyebrow::before {
    content: "";
    display: block;
    width: 34px;
    height: 2px;
    flex: 0 0 34px;
    background: #1C6376;
}

/* Global body typography */
body,
p,
li,
input,
textarea,
select {
    font-family: Geist, Arial, sans-serif;
    font-weight: 400;
}


/* Global body text colour */
body,
p,
li {
    color: #5D6871;
}

/* Global H3 typography */
h3.wp-block-heading {
    font-size: 25px;
    line-height: 1.1;
    font-weight: 600;
}

@media (max-width: 800px) {
    h3.wp-block-heading {
        font-size: 22px;
        line-height: 1.12;
    }
}

/* Global heading and paragraph spacing */
h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
}

h1 {
    margin-bottom: 28px;
}

h2 {
    margin-top: 0;
    margin-bottom: 0;
}

h2 + h2 {
    margin-top: 0;
}

h2 + p {
    margin-top: 28px;
}

p {
    margin-top: 0;
    margin-bottom: 24px;
}

/* Refine primary navigation to match live site */
.site-nav__list {
    gap: 1.45rem;
}

.site-nav__list a {
    color: #5D6871;
    font-family: Geist, Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.site-nav__list .menu-item-has-children > a::after {
    content: "⌄";
    margin-left: 4px;
    font-size: 11px;
    opacity: 0.8;
}

.site-nav__list .sub-menu {
    min-width: 170px;
    margin-top: 10px;
    padding: 8px;
    border-radius: 10px;
    background: #FFFFFF;
    border: 1px solid #D9DDDF;
    box-shadow: 0 8px 24px rgba(16, 24, 32, 0.10);
}

.site-nav__list .sub-menu a {
    padding: 9px 12px;
    border-radius: 7px;
    font-size: 14px;
    font-weight: 600;
    color: #101820;
}

.site-nav__list .sub-menu a:hover {
    background: #F5F1E8;
}

/* Darken primary navigation */
.site-nav__list a {
    color: #46515A;
}

/* Match live primary navigation typography */
.site-nav__list a {
    color: #101820;
    font-family: Geist, Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 21px;
}

.site-nav__list a:hover,
.site-nav__list a:focus {
    color: #101820;
}

/* Soften primary navigation colour */
.site-nav__list a,
.site-nav__list a:hover,
.site-nav__list a:focus {
    color: #46515A;
}

/* Primary nav dropdown refinements */
.site-nav__list .menu-item-has-children > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.site-nav__list .menu-item-has-children > a::after {
    content: "";
    width: 6px;
    height: 6px;
    margin: 0;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    opacity: 0.8;
}

.site-nav__list .sub-menu {
    top: 100%;
    left: -8px;
    margin-top: 0;
    padding-top: 10px;
}

/* Keeps hover active while moving from parent into dropdown */
.site-nav__list .menu-item-has-children::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 12px;
}

/* Refine nav chevrons + dropdown animation */
.site-nav__list .menu-item-has-children > a::after {
    transform: translateY(0) rotate(45deg);
}

.site-nav__list .sub-menu {
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);

    transition:
        opacity 0.16s ease,
        transform 0.16s ease,
        visibility 0.16s ease;
}

.site-nav__list li:hover > .sub-menu,
.site-nav__list li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}







/* Tighten footer menu spacing */
.site-footer__heading {
    margin-bottom: 16px;
}

.site-footer li + li {
    margin-top: 10px;
}

/* Remove gap above footer */
.site-footer {
    margin-top: 0 !important;
}

main#primary {
    margin-bottom: 0;
}

main#primary > *:last-child {
    margin-bottom: 0 !important;
}




/* Homepage topic strip */
.home-topic-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.home-topic-strip p {
    position: relative;
    margin: 0;
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
}

.home-topic-strip p:not(:last-child)::after {
    content: "•";
    position: absolute;
    left: calc(100% + 12px);
    color: #FFD34D;
    font-size: 10px;
    font-weight: 900;
}

/* Spread homepage topic strip across full width */
.home-topic-strip {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

.home-topic-strip {
    max-width: 1320px;
}

/* Make homepage topic strip span the viewport */
.home-topic-strip {
    position: relative;
    left: 50%;
    width: calc(100vw - 120px);
    max-width: none;
    margin-left: -50vw;
    padding-left: 0;
    padding-right: 0;
    justify-content: space-between;
}

/* Final homepage topic strip alignment */
.home-topic-strip {
    position: static;
    left: auto;
    width: calc(100% - 160px);
    max-width: 1480px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: initial;
    gap: 0;
}

.home-topic-strip p {
    flex: 1 1 0;
    position: relative;
    margin: 0;
    text-align: center;
}

.home-topic-strip p:not(:last-child)::after {
    content: "•";
    position: absolute;
    top: 50%;
    right: 0;
    left: auto;
    transform: translate(50%, -50%);
    margin: 0;
    color: #FFD34D;
    font-size: 10px;
    line-height: 1;
}

/* Widen homepage topic strip */
.home-topic-strip {
    width: calc(100vw - 80px);
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

/* Mobile navigation */
.site-nav-toggle {
    display: none;
}

@media (max-width: 800px) {
    .site-header__inner {
        min-height: 76px;
        padding: 0 20px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .site-brand__logo-image {
        width: 32px;
    }

    .site-brand__name {
        font-size: 16px;
    }

    .site-nav-toggle {
        display: inline-flex;
        width: 44px;
        height: 44px;
        padding: 10px;
        border: 0;
        background: transparent;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        cursor: pointer;
    }

    .site-nav-toggle span {
        display: block;
        width: 24px;
        height: 2px;
        background: #101820;
        transition: transform 0.18s ease, opacity 0.18s ease;
    }

    .site-nav-toggle[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-nav-toggle[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
    }

    .site-nav-toggle[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1000;
        padding: 14px 20px 20px;
        background: #FAF8F3;
        border-top: 1px solid #D7DBDE;
        border-bottom: 1px solid #D7DBDE;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-8px);
        transition:
            opacity 0.16s ease,
            transform 0.16s ease,
            visibility 0.16s ease;
    }

    .site-nav.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .site-nav__list {
        display: block;
    }

    .site-nav__list > li {
        border-bottom: 1px solid #E1E4E6;
    }

    .site-nav__list > li:last-child {
        border-bottom: 0;
    }

    .site-nav__list a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 14px 0;
        font-size: 15px;
        line-height: 22px;
    }

    .site-nav__list .menu-item-has-children > a::after {
        width: 7px;
        height: 7px;
        transform: rotate(45deg);
        transition: transform 0.18s ease;
    }

    .site-nav__list .menu-item-has-children.submenu-open > a::after {
        transform: rotate(225deg);
    }

    .site-nav__list .sub-menu {
        position: static;
        display: none;
        margin: 0;
        padding: 0 0 10px 14px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .site-nav__list .menu-item-has-children.submenu-open > .sub-menu {
        display: block;
    }

    .site-nav__list .sub-menu a {
        padding: 10px 0;
        font-size: 14px;
        font-weight: 600;
    }

    .site-nav__list .menu-item-has-children::after {
        display: none;
    }
}

/* Mobile homepage hero */
@media (max-width: 800px) {

    /* Give hero content consistent mobile gutters */
    .kt-row-column-wrap {
        padding-left: 20px;
        padding-right: 20px;
    }

    /* Tighten top of homepage hero */
    .section-eyebrow {
        margin-top: 0;
        margin-bottom: 28px;
    }

    /* Mobile hero headings */
    h2.wp-block-heading {
        font-size: 42px !important;
        line-height: 44px !important;
    }

    /* Mobile supporting copy */
    .wp-block-paragraph {
        font-size: 18px;
        line-height: 28px;
    }
}

/* Mobile content gutters */
@media (max-width: 800px) {
    .wp-block-kadence-rowlayout > .kt-row-column-wrap {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}


/* Mobile primary buttons */
@media (max-width: 800px) {
    .wp-block-kadence-advancedbtn,
    .wp-block-kadence-advancedbtn .kb-button,
    .wp-block-buttons,
    .wp-block-button,
    .wp-block-button__link {
        width: 100%;
    }

    .wp-block-kadence-advancedbtn .kb-button,
    .wp-block-button__link {
        justify-content: center;
        text-align: center;
    }
}

/* Mobile topic strip: keep single horizontal line like live site */
@media (max-width: 800px) {
    .home-topic-strip {
        width: max-content;
        max-width: none;
        margin: 0;
        transform: none;
        justify-content: flex-start;
        overflow: visible;
        white-space: nowrap;
    }

    .home-topic-strip p {
        flex: 0 0 auto;
        min-width: 150px;
        text-align: center;
    }

    .home-topic-strip p:not(:last-child)::after {
        right: -12px;
        transform: translate(50%, -50%);
    }

    .home-topic-strip,
    .home-topic-strip * {
        white-space: nowrap;
    }

    .home-topic-strip-wrapper,
    .wp-block-kadence-rowlayout:has(.home-topic-strip) {
        overflow: hidden;
    }
}

/* Mobile footer: match live two-column layout */
@media (max-width: 520px) {
    .site-footer__grid {
        grid-template-columns: 1fr 1fr;
        column-gap: 32px;
        row-gap: 38px;
    }

    .site-footer__brand {
        grid-column: 1 / -1;
    }

    .site-footer__grid > div:nth-child(4) {
        grid-column: 1 / 2;
    }

    .site-footer__bottom {
        margin-top: 48px;
        padding-top: 22px;
    }
}

/* Tablet/intermediate content gutters */
@media (min-width: 801px) and (max-width: 1100px) {
    .wp-block-kadence-rowlayout > .kt-row-column-wrap {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* Laptop/intermediate content gutters */
@media (min-width: 801px) and (max-width: 1280px) {
    .wp-block-kadence-rowlayout > .kt-row-column-wrap {
        padding-left: 32px !important;
        padding-right: 32px !important;
    }
}

/* Centre Advanced Images on tablet/mobile stacked layouts */
@media (max-width: 1280px) {
    .wp-block-kadence-image {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center;
    }

    .wp-block-kadence-image img {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* Mobile menu - match live site */
@media (max-width: 800px) {

    .site-nav {
        top: 100%;
        padding: 14px 22px 22px;
        background: #FAF8F3;
        border-top: 1px solid #D7DBDE;
        border-bottom: 1px solid #D7DBDE;
        box-shadow: 0 8px 22px rgba(16, 24, 32, 0.06);
    }

    .site-nav__list {
        margin: 0;
        padding: 0;
    }

    .site-nav__list > li {
        margin: 0;
        border-bottom: 1px solid #D7DBDE;
    }

    .site-nav__list > li > a {
        min-height: 50px;
        padding: 13px 0;
        color: #5D6871;
        font-family: Geist, Arial, sans-serif;
        font-size: 17px;
        font-weight: 700;
        line-height: 24px;
    }

    .site-nav__list > .menu-item-has-children > a {
        color: #101820;
    }

    .site-nav__list .menu-item-has-children > a::after {
        width: 6px;
        height: 6px;
        margin-right: 3px;
        border-width: 0 1px 1px 0;
        opacity: 1;
    }

    .site-nav__list .sub-menu {
        padding: 0 0 10px 16px;
    }

    .site-nav__list .sub-menu li {
        border: 0;
    }

    .site-nav__list .sub-menu a {
        min-height: auto;
        padding: 9px 0;
        color: #5D6871;
        font-size: 15px;
        font-weight: 600;
        line-height: 22px;
    }

    .site-nav-toggle {
        width: 40px;
        height: 40px;
        padding: 8px;
        gap: 5px;
    }

    .site-nav-toggle span {
        width: 23px;
        height: 2px;
    }
}

/* Anchor mobile navigation to the header */
.site-header {
    position: relative;
    z-index: 1000;
}

@media (max-width: 800px) {
    .site-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1001;
    }

    .site-nav.is-open {
        display: block;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
}

/* Mobile submenu behaviour and styling */
@media (max-width: 800px) {

    /* Never open mobile submenus from hover */
    .site-nav__list li:hover > .sub-menu,
    .site-nav__list li:focus-within > .sub-menu {
        display: none;
    }

    /* Open only after tapping the parent */
    .site-nav__list .menu-item-has-children.submenu-open > .sub-menu {
        display: block !important;
    }

    /* Live-site style submenu panel */
    .site-nav__list .sub-menu {
        margin: 0 0 10px;
        padding: 6px;
        background: #ECE9E2;
        border-radius: 8px;
    }

    .site-nav__list .sub-menu li {
        margin: 0;
        padding: 0;
    }

    .site-nav__list .sub-menu a {
        padding: 12px 10px;
        color: #101820;
        background: transparent;
        border-radius: 6px;
        font-size: 15px;
        font-weight: 700;
    }

    .site-nav__list .sub-menu a:hover,
    .site-nav__list .sub-menu a:focus {
        color: #101820;
        background: rgba(255, 255, 255, 0.35);
        opacity: 1;
    }
}

/* Mobile H2 typography */
@media (max-width: 800px) {
    h2.wp-block-heading {
        font-size: 38px !important;
        line-height: 40px !important;
    }
}

/* Smaller mobile H2 typography */
@media (max-width: 800px) {
    h2.wp-block-heading {
        font-size: 34px !important;
        line-height: 36px !important;
    }
}

/* Mobile H2 typography */
@media (max-width: 800px) {
    h2.wp-block-heading {
        font-size: 30px !important;
        line-height: 32px !important;
    }
}

/* Global mobile body typography */
@media (max-width: 800px) {
    main p,
    main li {
        font-size: 17px;
        line-height: 26px;
    }
}

/* Force mobile paragraph typography over block-level responsive values */
@media (max-width: 800px) {
    main .wp-block-paragraph {
        font-size: 17px !important;
        line-height: 26px !important;
    }
}

/* Global major section H2 typography */
h2.wp-block-heading {
    font-size: 76px;
    line-height: 73px;
    font-weight: 500;
}

/* Scale H2 line-height with its font size */
h2.wp-block-heading {
    line-height: 0.96;
}

/* App selector */
.app-selector {
    overflow: hidden;
    padding: 5px;
    background: #fff;
    border: 1px solid #D7DBDE;
    border-radius: 10px;
}

.app-selector__item {
    margin: 0 !important;
    min-height: 50px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    color: #5D6871;
    font-family: Geist, Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    border-radius: 7px;
    cursor: pointer;
}

.app-selector__item.is-active {
    background: #C8102E;
    color: #fff;
    font-weight: 700;
}

/* Compact desktop selector */
@media (min-width: 801px) {
    .app-selector {
        width: max-content !important;
        max-width: 100%;
        margin-left: auto;
        margin-top: 0;
        transform: translateY(72px);
    }

    .app-selector__item {
        flex: 0 0 auto !important;
        min-height: 42px;
        padding: 10px 16px;
        font-size: 14px;
        line-height: 20px;
        white-space: nowrap;
    }
}

/* App feature panels */
.app-feature-panel,
.app-feature-panel h1,
.app-feature-panel h2,
.app-feature-panel h3,
.app-feature-panel h4,
.app-feature-panel p,
.app-feature-panel li {
    color: #FFFFFF;
}

.app-feature-panel p,
.app-feature-panel li {
    font-family: Geist, Arial, sans-serif;
}




/* Default button typography - individual block settings may override */
:where(
    .wp-block-kadence-advancedbtn .kb-button,
    .wp-block-button__link,
    .wp-element-button
) {
    font-family: Geist, Arial, sans-serif;
    font-weight: 800;
}


/* App CTA hover lift */
.app-cta-row .kb-button,
.app-cta-row .wp-block-kadence-image img {
    transition: transform 0.18s ease;
}

.app-cta-row .kb-button:hover,
.app-cta-row .wp-block-kadence-image:hover img {
    transform: translateY(-2px);
}

/* Global button hover lift */
.wp-block-button__link,
.wp-element-button,
.wp-block-kadence-advancedbtn .kb-button,
.wp-block-kadence-image a img {
    transition: transform 0.18s ease;
}

.wp-block-button__link:hover,
.wp-element-button:hover,
.wp-block-kadence-advancedbtn .kb-button:hover,
.wp-block-kadence-image a:hover img {
    transform: translateY(-2px);
}

/* Feature panel small labels */
.app-feature-panel__eyebrow {
    font-family: "Geist", sans-serif;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: uppercase;
    margin: 0;
}

.app-feature-panel__date {
    font-family: "Geist", sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    opacity: 0.55;
    margin: 0;
}

@media (max-width: 800px) {

    .app-cta-row {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .app-cta-row .wp-block-kadence-advancedbtn {
        width: 100%;
    }

    .app-cta-row .wp-block-kadence-advancedbtn .kb-button {
        width: 100%;
        justify-content: center;
    }

    .app-store-badges {
        width: 100%;
        gap: 10px;
    }

    .app-store-badges .wp-block-kadence-image {
        flex: 1 1 0;
    }

    .app-store-badges a {
        display: block;
        width: 100%;
    }

    .app-store-badges img {
        width: 100%;
        height: auto;
        max-height: 50px;
        object-fit: contain;
    }
}

/* Refine reusable feature-panel labels */
.app-feature-panel__eyebrow {
    font-family: "Geist", sans-serif;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: uppercase;
    margin: 0 0 26px 0;
}

.app-feature-panel__date {
    font-family: "Geist", sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    opacity: 0.55;
    margin: 0 0 22px 0;
}

/* Match feature-panel eyebrow to live-site tab style */
.app-feature-panel__eyebrow {
    display: inline-block;
    position: relative;
    font-family: "Geist", sans-serif;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin: 0 0 26px 0;
    padding-bottom: 7px;
}

.app-feature-panel__eyebrow::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 60px;
    height: 2px;
    background: currentColor;
}

/* Refine feature-panel eyebrow underline */
.app-feature-panel__eyebrow::after {
    width: 48px;
    height: 2px;
    background: currentColor;
    opacity: 0.55;
}

/* Mobile app CTA layout */
@media (max-width: 800px) {

    .app-cta-row.is-layout-flex {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .app-cta-row > .wp-block-kadence-advancedbtn {
        width: 100%;
    }

    .app-cta-row > .wp-block-kadence-advancedbtn .kb-button {
        width: 100%;
        justify-content: center;
    }

    .app-cta-row > .app-store-badges {
        width: 100%;
        display: flex;
        gap: 10px;
    }

    .app-store-badges .wp-block-kadence-image {
        flex: 1 1 0;
        margin: 0 !important;
    }

    .app-store-badges img {
        width: 100%;
        height: auto;
        max-height: 50px;
        object-fit: contain;
    }
}

/* Keep app-store badges side-by-side on mobile */
@media (max-width: 800px) {

    .app-store-badges.is-layout-flex {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
    }

    .app-store-badges > .wp-block-kadence-image {
        flex: 0 1 auto;
        width: auto;
    }

    .app-store-badges > .wp-block-kadence-image img {
        width: auto;
        height: 42px;
        max-height: none;
        object-fit: contain;
    }
}

/* App CTA structure */
.app-cta-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.app-store-badges {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 10px;
}

.app-store-badges > .wp-block-kadence-image {
    margin: 0 !important;
    width: auto !important;
    flex: 0 0 auto !important;
}

.app-store-badges img {
    display: block;
    width: auto !important;
    height: 48px;
    max-height: none;
    object-fit: contain;
}

/* Mobile CTA layout */
@media (max-width: 800px) {

    .app-cta-row {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .app-cta-row > .wp-block-kadence-advancedbtn {
        width: 100%;
    }

    .app-cta-row > .wp-block-kadence-advancedbtn .kb-button {
        width: 100%;
        justify-content: center;
    }

    .app-store-badges {
        width: 100%;
        justify-content: flex-start;
    }

    .app-store-badges img {
        height: 42px;
    }
}

/* Feature panel mobile typography */
@media (max-width: 800px) {

    main .app-feature-panel p.app-feature-panel__eyebrow {
        font-size: 10px !important;
        line-height: 1.2 !important;
        letter-spacing: 0.5px;
    }

    main .app-feature-panel p.app-feature-panel__date {
        font-size: 10px !important;
        line-height: 1.2 !important;
        letter-spacing: 2px;
    }

    .app-feature-panel h2.wp-block-heading {
        font-size: 46px !important;
        line-height: 0.98 !important;
    }
}

/* Refine small mobile labels */
@media (max-width: 800px) {

    main .app-feature-panel p.app-feature-panel__eyebrow,
    main .app-feature-panel p.app-feature-panel__date,
    main p.section-eyebrow {
        font-size: 11px !important;
        line-height: 1.2 !important;
    }

    main .app-feature-panel p.app-feature-panel__date {
        letter-spacing: 2px;
    }

    main p.section-eyebrow {
        letter-spacing: 1.6px;
    }
}

/* Number app selector items automatically */
.app-selector {
    counter-reset: app-selector-item;
}

.app-selector__item {
    counter-increment: app-selector-item;
}

.app-selector__item::before {
    content: counter(app-selector-item, decimal-leading-zero);
    flex: 0 0 auto;
    margin-right: 10px;
    font-size: 9px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.4px;
    opacity: 0.45;
}

.app-selector__item.is-active::before {
    opacity: 0.65;
}

/* Mobile component typography/layout corrections */
@media (max-width: 800px) {

    /* Keep the red topic strip compact and on one clipped line */
    .home-topic-strip p {
        font-size: 10px !important;
        line-height: 1 !important;
        white-space: nowrap;
    }

    .home-topic-strip p:not(:last-child)::after {
        top: 50%;
        right: 0;
        left: auto;
        font-size: 8px;
        line-height: 1;
        transform: translate(50%, -50%);
    }

    /* App selector matches live-site stacked mobile layout */
    .app-selector {
        width: 100% !important;
        max-width: 100%;
    }

    .app-selector__item {
        width: 100% !important;
        box-sizing: border-box;
        justify-content: flex-start;
    }
}

/* Align mobile topic strip closer to live site */
@media (max-width: 800px) {
    .home-topic-strip {
        margin-left: -22px;
    }
}

/* Reusable app feature slider */
.app-feature-panel {
    position: relative;
}

.app-feature-panel[hidden] {
    display: none !important;
}

.app-feature-panel__nav {
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
}

.app-feature-panel__nav-button {
    position: absolute;
    top: 50%;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.30);
    border-radius: 7px;
    background: rgba(0, 0, 0, 0.10);
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    cursor: pointer;
    pointer-events: auto;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}

.app-feature-panel__nav-button:hover,
.app-feature-panel__nav-button:focus-visible {
    background: rgba(0, 0, 0, 0.22);
    border-color: rgba(255, 255, 255, 0.55);
}

.app-feature-panel__nav-button--previous {
    left: 14px;
}

.app-feature-panel__nav-button--next {
    right: 14px;
}

@media (max-width: 800px) {
    .app-feature-panel__nav-button {
        top: 18px;
        transform: none;
        width: 40px;
        height: 40px;
    }

    .app-feature-panel__nav-button--previous {
        left: 14px;
    }

    .app-feature-panel__nav-button--next {
        right: 14px;
    }
}

/* App selector state colours */
.app-selector__item {
    background: #FFFFFF !important;
    color: #5D6871 !important;
}

/* First app/property active colour */
.app-selector__item:nth-child(1).is-active {
    background: #C8102E !important;
    color: #FFFFFF !important;
}

/* Second app/property active colour */
.app-selector__item:nth-child(2).is-active {
    background: #702477 !important;
    color: #FFFFFF !important;
}

.app-selector__item:not(.is-active)::before {
    opacity: 0.40;
}

.app-selector__item.is-active::before {
    color: #FFFFFF;
    opacity: 0.65;
}

/* Feature card grid */
.feature-card {
    background: #FFFFFF;
    border: 1px solid #D8DCDD;
    padding: 18px;
}

.feature-card__meta {
    margin: 0 0 14px;
    color: #1C6376;
    font-family: "Geist", sans-serif;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.feature-card__title {
    margin: 16px 0 8px;
    color: #101820;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.05;
}

.feature-card__text {
    margin: 0;
    color: #5D6871;
    font-family: "Geist", sans-serif;
    font-size: 15px;
    line-height: 1.55;
}

.feature-card .wp-block-kadence-image,
.feature-card .wp-block-image {
    margin: 0;
}

.feature-card img {
    display: block;
    width: 100%;
    height: auto;
}

/* Refine feature cards to match live site */
.feature-card {
    background: #FFFFFF;
    border: 1px solid #D8DCDD;
    padding: 18px;
    margin-right: -1px;
    margin-bottom: -1px;
}

/* Card number + category line */
.feature-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 14px;
}

.feature-card__number,
.feature-card__label {
    margin: 0 !important;
    font-family: "Geist", sans-serif;
    font-size: 11px !important;
    line-height: 17px !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.feature-card__number {
    color: #5D6871;
    font-weight: 500;
}

.feature-card__label {
    color: #1C6376;
    font-weight: 900;
}

.feature-card__label--accent {
    color: #C8102E;
}

/* Editorial card title */
.feature-card__title {
    margin: 14px 0 8px;
    color: #101820;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px !important;
    font-weight: 600;
    line-height: 1.08 !important;
}

/* Card body */
.feature-card__text {
    margin: 0;
    color: #5D6871;
    font-family: "Geist", sans-serif;
    font-size: 15px;
    line-height: 1.5;
}

/* Feature-card images */
.feature-card .wp-block-kadence-image,
.feature-card .wp-block-image {
    margin: 0;
}

.feature-card img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #E5E0D7;
    border-radius: 8px;
}

/* Refine feature-card body text */
.feature-card p.feature-card__text {
    font-size: 16px !important;
    line-height: 24px !important;
}

/* Mobile feature-card refinements */
@media (max-width: 800px) {

    /* Don't apply the global Kadence gutter again inside the card grid */
    .feature-card-grid > .kt-row-column-wrap {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Keep card meta typography compact */
    main .feature-card p.feature-card__number {
        font-size: 9px !important;
        line-height: 14px !important;
    }

    main .feature-card p.feature-card__label {
        font-size: 10px !important;
        line-height: 14px !important;
    }
}

/* Tighten space above feature-card grid on mobile */
@media (max-width: 800px) {
    .feature-card-grid {
        margin-block-start: 10px !important;
        margin-top: 10px !important;
    }
}

/* Tighten stacked feature overview columns on mobile */
@media (max-width: 800px) {
    .feature-overview > .kt-row-column-wrap {
        row-gap: 4px !important;
    }
}

/* Reusable sticky intro column for split-content sections */
@media (min-width: 801px) {
    .sticky-section-intro {
        position: sticky;
        top: 110px;
        align-self: start;
        z-index: 2;
    }
}

/* Sticky columns should behave normally when stacked on mobile */
@media (max-width: 800px) {
    .sticky-section-intro {
        position: static;
    }
}

/* Reusable content-width divider above major sections */
.content-divider-top > .kt-row-column-wrap {
    border-top: 1px solid #D7DBDE;
    padding-top: 72px;
}

/* Reusable legal/link cards */
.legal-link-card {
    position: relative;
    background: #FFFFFF;
    border: 1px solid #D7DBDE;
    border-radius: 10px;
    overflow: hidden;
}

.legal-link-card > .kt-row-column-wrap {
    padding: 26px 68px 26px 28px !important;
}

.legal-link-card h3 {
    margin-bottom: 10px;
}

.legal-link-card p {
    margin-bottom: 0;
}

.legal-link-card p.legal-link-card__arrow {
    position: absolute;
    top: 50%;
    right: 28px;
    margin: 0 !important;
    transform: translateY(-50%);
    color: #17657A;
    font-size: 20px !important;
    line-height: 1 !important;
}

.legal-link-card + .legal-link-card {
    margin-top: 8px;
}

@media (max-width: 800px) {
    .legal-link-card > .kt-row-column-wrap {
        padding: 22px 54px 22px 20px !important;
    }

    .legal-link-card p.legal-link-card__arrow {
        right: 20px;
    }
}

/* Legal cards: fill their column and align arrows to card edge */
.legal-link-card {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

.legal-link-card > .kt-row-column-wrap {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

.legal-link-card p.legal-link-card__arrow {
    top: 50% !important;
    right: 24px !important;
    bottom: auto !important;
    left: auto !important;
    transform: translateY(-50%) !important;
}

/* Anchor legal-card arrows to the full card, not Kadence inner wrappers */
.legal-link-card {
    position: relative !important;
}

.legal-link-card .wp-block-kadence-column,
.legal-link-card .kt-inside-inner-col {
    position: static !important;
}

.legal-link-card p.legal-link-card__arrow {
    position: absolute !important;
    top: 50% !important;
    right: 28px !important;
    left: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
}

/* Spacing between stacked legal link cards */
.legal-link-stack {
    gap: 8px !important;
    row-gap: 8px !important;
}

/* Legal link card hover interaction */
.legal-link-card {
    transition:
        transform 0.18s ease,
        border-color 0.18s ease;
}

.legal-link-card:hover {
    transform: translateX(4px);
    border-color: #17657A;
}

/* Global title for standard pages; homepage uses its own content H1 */
.epic-page-layout__main > h1 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 82px;
    line-height: 1.05;
    font-weight: 500;
    color: #101820;
}

@media (max-width: 800px) {
    .epic-page-layout__main > h1 {
        font-size: 54px;
        line-height: 1.02;
    }
}

/* Tighter tracking for standard page titles */
.epic-page-layout__main > h1 {
    letter-spacing: -0.035em;
}

/* Standard page layout — homepage has its own layout */
body:not(.home) {
    background: #F7F4EE;
}

body:not(.home) .epic-page-layout__main {
    padding-top: 72px;
    padding-bottom: 96px;
}

@media (max-width: 800px) {
    body:not(.home) .epic-page-layout__main {
        padding-top: 44px;
        padding-bottom: 64px;
    }
}

/* Global in-content text links */
main a:not(.wp-block-button__link):not(.wp-element-button):not(.kb-button):not(.kb-section-link-overlay) {
    color: #1C6376;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

main a:not(.wp-block-button__link):not(.wp-element-button):not(.kb-button):not(.kb-section-link-overlay):hover,
main a:not(.wp-block-button__link):not(.wp-element-button):not(.kb-button):not(.kb-section-link-overlay):focus {
    color: #124D5D;
}

/* Standard page body typography — homepage has its own typography.
   Gutenberg block settings may override these defaults. */
body:not(.home) main.site-shell p,
body:not(.home) main.site-shell li {
    font-size: 16px;
    line-height: 28px;
}

/* Standard page H2 typography — homepage keeps its own larger section headings */
body:not(.home) main.site-shell h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 29px !important;
    line-height: 44px !important;
    font-weight: 600;
    letter-spacing: 0;
}

/* Reusable legal-page callout */
.legal-callout {
    background: #FFFFFF;
    border-left: 4px solid #1C6376;
}

.legal-callout > .kt-row-column-wrap {
    padding: 24px 28px !important;
}

.legal-callout p {
    margin: 0 !important;
}

@media (max-width: 800px) {
    .legal-callout > .kt-row-column-wrap {
        padding: 20px 22px !important;
    }
}

/* Legal callout: match live styling */
.legal-callout {
    background: #FFFFFF !important;
    border-left: 4px solid #1C6376 !important;
}

.legal-callout > .kt-row-column-wrap {
    padding: 26px 28px !important;
}

.legal-callout .kt-inside-inner-col {
    padding: 0 !important;
}

.legal-callout p {
    margin: 0 !important;
}

@media (max-width: 800px) {
    .legal-callout > .kt-row-column-wrap {
        padding: 22px 24px !important;
    }
}

/* Space after legal callouts before following section heading */
.legal-callout {
    margin-bottom: 44px !important;
}

/* Standard page H3 typography — homepage keeps its own H3 styling */
body:not(.home) main.site-shell h3 {
    font-family: Geist, Arial, sans-serif;
    font-size: 18px !important;
    line-height: 28px !important;
    font-weight: 700;
    letter-spacing: 0;
}

/* Space between standard-page H2 and following H3 */
body:not(.home) main.site-shell h2 + h3 {
    margin-top: 18px;
}

body:not(.home) main.site-shell h3 {
    margin-bottom: 8px;
}

/* Mobile standard-page heading sizes — homepage keeps its own typography */
@media (max-width: 800px) {
    body:not(.home) .epic-page-layout__main > h1 {
        font-size: 42px;
        line-height: 1.02;
    }

    body:not(.home) main.site-shell h2 {
        font-size: 24px !important;
        line-height: 32px !important;
    }
}

/* Contact form checkbox sizing */
.wp-block-kadence-advanced-form input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-right: 8px;
    vertical-align: middle;
}

.wp-block-kadence-advanced-form label {
    line-height: 1.45;
}

/* Kadence Advanced Form checkbox sizing */
.kb-radio-check-item input.kb-checkbox-style {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    flex: 0 0 18px;
    margin: 2px 8px 0 0 !important;
}

.kb-radio-check-item {
    display: flex;
    align-items: flex-start;
}

/* Larger custom tick for Kadence form checkboxes */
.kb-radio-check-item input.kb-checkbox-style {
    appearance: none !important;
    -webkit-appearance: none !important;
    position: relative;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    border: 1px solid #9AA3AA;
    border-radius: 3px;
    background: #FFFFFF;
    cursor: pointer;
}

.kb-radio-check-item input.kb-checkbox-style:checked {
    background: #1C6376;
    border-color: #1C6376;
}

.kb-radio-check-item input.kb-checkbox-style:checked::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid #FFFFFF;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.kb-radio-check-item input.kb-checkbox-style:focus-visible {
    outline: 2px solid #1C6376;
    outline-offset: 2px;
}

/* Contact form card */
.contact-form-card > .kt-inside-inner-col {
    background: #FFFFFF;
    border-radius: 12px;
    padding: 32px !important;
    box-shadow: 0 18px 40px rgba(16, 24, 32, 0.12);
}

.contact-form-card > .kt-inside-inner-col > p:first-child {
    margin-top: 0;
    margin-bottom: 24px;
    font-size: 14px !important;
    line-height: 22px !important;
}

@media (max-width: 800px) {
    .contact-form-card > .kt-inside-inner-col {
        padding: 24px 20px !important;
    }
}

/* Contact form finishing touches */
.contact-form-card .kb-adv-form-submit-button {
    background: #1C6376 !important;
    border-color: #1C6376 !important;
    border-radius: 6px !important;
    font-weight: 700;
}

.contact-form-card .kb-adv-form-submit-button:hover,
.contact-form-card .kb-adv-form-submit-button:focus {
    background: #124D5D !important;
    border-color: #124D5D !important;
}

.contact-form-card > .kt-inside-inner-col {
    box-shadow: 0 16px 34px rgba(16, 24, 32, 0.10);
}

/* Space above Kadence contact form response messages */
.contact-form-card .kb-form-message,
.contact-form-card .kb-adv-form-message,
.contact-form-card [class*="success"],
.contact-form-card [class*="message"] {
    margin-top: 14px !important;
}

/* Contact form mobile refinements */
@media (max-width: 800px) {
    /* Let the form card use more of the mobile width */
    .contact-form-card {
        margin-left: -8px;
        margin-right: -8px;
    }

    /* Reduce internal card padding */
    .contact-form-card > .kt-inside-inner-col {
        padding: 20px 16px !important;
    }

    /* Remove Kadence's infield label indentation */
    .contact-form-card .kb-adv-form-label {
        left: 0 !important;
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    .contact-form-card .kb-adv-form-field {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Prevent sticky section intros from overlapping blocks in Gutenberg editor */
.editor-styles-wrapper .sticky-section-intro {
    position: static !important;
    top: auto !important;
}

/* Fan landing page section headings */
body.page-template-page-fan-landing main h2 {
    font-size: 58px;
    line-height: 1.02;
}

/* Keep the main app hero headline large */
body.page-template-page-fan-landing .app-feature-panel h2 {
    font-size: 76px;
    line-height: 0.96;
}

@media (max-width: 800px) {
    body.page-template-page-fan-landing main h2 {
        font-size: 38px;
        line-height: 1.04;
    }

    body.page-template-page-fan-landing .app-feature-panel h2 {
        font-size: 52px;
        line-height: 0.98;
    }
}

/* Reusable large feature screenshots */
.feature-showcase-image img {
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(16, 24, 32, 0.14);
    display: block;
}

@media (max-width: 800px) {
    .feature-showcase-image img {
        border-radius: 10px;
        box-shadow: 0 12px 28px rgba(16, 24, 32, 0.12);
    }
}

/* Fan feature rows: always show text before showcase image on mobile */
@media (max-width: 800px) {
    body.page-template-page-fan-landing
    .kt-row-column-wrap > .wp-block-kadence-column:has(.feature-showcase-image) {
        order: 2;
    }

    body.page-template-page-fan-landing
    .kt-row-column-wrap > .wp-block-kadence-column:not(:has(.feature-showcase-image)) {
        order: 1;
    }
}

/* Multisite property branding */
.site-brand__name--property span {
    color: #101820;
}

.site-brand--footer .site-brand__name--property span {
    color: #FFFFFF;
}

/* =========================================================
   Epic Fans timeline
   ========================================================= */

.epic-fans-timeline {
    width: 100%;
    margin: 0;
    font-family: Geist, Arial, sans-serif;
}

.epic-fans-timeline__month {
    margin-bottom: 14px;
    color: #786a64;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
}

.epic-fans-timeline__dates {
    display: flex;
    gap: 0;
    width: 100%;
    padding: 0 0 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    border-bottom: 2px solid #8d7e77;
}

.epic-fans-timeline__date {
    position: relative;
    flex: 0 0 78px;
    min-height: 84px;
    padding: 4px 5px 8px;
    text-align: center;
}

.epic-fans-timeline__day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid transparent;
    border-radius: 50%;
    color: #62544e;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
}

.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border-color: #c9232c;
    background: #fff3f2;
    color: #c9232c;
}

.epic-fans-timeline__date.is-selected::after {
    position: absolute;
    bottom: -10px;
    left: 50%;
    width: 1px;
    height: 11px;
    background: #c9232c;
    content: "";
    transform: translateX(-50%);
}

.epic-fans-timeline__fixtures {
    margin-top: 7px;
}

.epic-fans-timeline__fixture-marker {
    display: block;
    color: #6a5e58;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.3;
}

.epic-fans-timeline__events {
    margin-top: 34px;
}

.epic-fans-timeline__heading {
    margin: 0 0 20px;
    color: #b5121b;
    font-family: Geist, Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.15;
}

.epic-fans-timeline__event-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.epic-fans-timeline__event-card {
    position: relative;
    margin: 0;
    padding: 22px 24px;
    overflow: hidden;
    border: 1px solid #e4ded9;
    border-radius: 14px;
    background: #fffdfa;
    box-shadow: 0 2px 8px rgba(16, 24, 32, 0.05);
}

.epic-fans-timeline__event-card::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 5px;
    background: #b5121b;
    content: "";
}

.epic-fans-timeline__event-year {
    margin-bottom: 8px;
    color: #b5121b;
    font-size: 25px;
    font-weight: 800;
    line-height: 1;
}

.epic-fans-timeline__event-title {
    margin: 0 0 8px;
    color: #554943;
    font-family: Geist, Arial, sans-serif;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.25;
}

.epic-fans-timeline__event-excerpt {
    margin: 0;
    color: #887872;
    font-size: 16px;
    line-height: 1.45;
}

.epic-fans-timeline__event-category {
    margin-top: 16px;
    color: #9a625f;
    font-size: 13px;
    font-weight: 700;
}

.epic-fans-timeline__empty {
    color: #786a64;
    font-size: 16px;
}


/* Mobile timeline */
@media (max-width: 800px) {

    .epic-fans-timeline__date {
        flex-basis: 58px;
        min-height: 78px;
    }

    .epic-fans-timeline__day {
        width: 36px;
        height: 36px;
        font-size: 15px;
    }

    .epic-fans-timeline__fixture-marker {
        font-size: 9px;
    }

    .epic-fans-timeline__events {
        margin-top: 28px;
    }

    .epic-fans-timeline__heading {
        font-size: 24px;
    }

    .epic-fans-timeline__event-list {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .epic-fans-timeline__event-card {
        padding: 19px 20px;
    }

    .epic-fans-timeline__event-year {
        font-size: 23px;
    }

    .epic-fans-timeline__event-title {
        font-size: 18px;
    }

    .epic-fans-timeline__event-excerpt {
        font-size: 15px;
    }
}

/* Timeline strip refinements */
.epic-fans-timeline__dates {
    overflow-x: auto;
    overflow-y: hidden;
}

.epic-fans-timeline__fixture-marker {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Timeline month navigation + hidden scrollbar */
.epic-fans-timeline__month-row {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
    margin-bottom: 14px;
}

.epic-fans-timeline__month {
    margin-bottom: 0;
}

.epic-fans-timeline__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #8d7e77;
    font-family: Arial, sans-serif;
    font-size: 34px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
}

.epic-fans-timeline__arrow:hover,
.epic-fans-timeline__arrow:focus-visible {
    color: #b5121b;
}

.epic-fans-timeline__dates {
    cursor: grab;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.epic-fans-timeline__dates::-webkit-scrollbar {
    display: none;
}

.epic-fans-timeline__dates.is-dragging {
    cursor: grabbing;
    user-select: none;
}

/* Timeline compact fixture markers */
.epic-fans-timeline__fixtures {
    display: flex;
    justify-content: center;
    margin-top: 6px;
}

.epic-fans-timeline__fixture-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: auto;
    max-width: none;
    overflow: visible;
    white-space: nowrap;
}

.epic-fans-timeline__fixture-badge {
    width: 16px;
    height: 16px;
    object-fit: contain;
    display: block;
    flex: 0 0 auto;
}

.epic-fans-timeline__fixture-value {
    min-width: 38px;
    text-align: center;
    color: #6a5e58;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 800px) {
    .epic-fans-timeline__fixture-badge {
        width: 15px;
        height: 15px;
    }

    .epic-fans-timeline__fixture-value {
        min-width: 34px;
        font-size: 11px;
    }
}

/* =========================================================
   Premium timeline visual pass
   ========================================================= */

.epic-fans-timeline {
    padding: 22px 24px 26px;
    border: 1px solid #e5ddd7;
    border-radius: 22px;
    background: rgba(255, 253, 250, 0.92);
    box-shadow: 0 12px 34px rgba(16, 24, 32, 0.07);
}

.epic-fans-timeline__month-row {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 10px;
    margin-bottom: 18px;
}

.epic-fans-timeline__month {
    color: #6f625c;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.epic-fans-timeline__arrow {
    width: 38px;
    height: 38px;
    border: 1px solid #ddd3cc;
    border-radius: 50%;
    background: #fffdfa;
    color: #786a64;
    font-size: 26px;
    box-shadow: 0 3px 10px rgba(16, 24, 32, 0.05);
    transition:
        transform 0.16s ease,
        border-color 0.16s ease,
        color 0.16s ease,
        box-shadow 0.16s ease;
}

.epic-fans-timeline__arrow:hover,
.epic-fans-timeline__arrow:focus-visible {
    color: #b5121b;
    border-color: rgba(181, 18, 27, 0.42);
    box-shadow: 0 5px 14px rgba(16, 24, 32, 0.09);
    transform: translateY(-1px);
}

.epic-fans-timeline__dates {
    gap: 2px;
    padding: 2px 0 12px;
    border-bottom: 2px solid #8f817a;
    scroll-snap-type: x proximity;
}

.epic-fans-timeline__date {
    flex: 0 0 74px;
    min-height: 78px;
    padding: 4px 4px 8px;
    scroll-snap-align: center;
}

.epic-fans-timeline__day {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #5d504a;
    font-size: 15px;
    font-weight: 800;
    transition:
        background 0.16s ease,
        color 0.16s ease,
        transform 0.16s ease,
        box-shadow 0.16s ease;
}

.epic-fans-timeline__date:hover .epic-fans-timeline__day {
    background: #f6efeb;
    transform: translateY(-1px);
}

.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border: 1px solid #cf343c;
    background: #fff1f0;
    color: #b5121b;
    box-shadow:
        0 0 0 4px rgba(181, 18, 27, 0.06),
        0 4px 12px rgba(181, 18, 27, 0.10);
}

.epic-fans-timeline__date.is-selected::after {
    bottom: -13px;
    width: 2px;
    height: 13px;
    border-radius: 999px;
    background: #cf343c;
}

.epic-fans-timeline__fixtures {
    margin-top: 6px;
    min-height: 20px;
}

.epic-fans-timeline__fixture-marker {
    gap: 5px;
    padding: 3px 6px;
    border: 1px solid #ece4df;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(16, 24, 32, 0.05);
}

.epic-fans-timeline__fixture-badge {
    width: 17px;
    height: 17px;
    border-radius: 50%;
}

.epic-fans-timeline__fixture-value {
    min-width: 34px;
    color: #514640;
    font-size: 11px;
    font-weight: 800;
}

.epic-fans-timeline__events {
    margin-top: 28px;
}

.epic-fans-timeline__heading {
    position: relative;
    margin: 0 0 18px;
    padding-left: 18px;
    color: #b5121b;
    font-size: 27px;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.epic-fans-timeline__heading::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 6px;
    height: 30px;
    border-radius: 999px;
    background: #b5121b;
    content: "";
    transform: translateY(-50%);
}

.epic-fans-timeline__event-list {
    gap: 20px;
}

.epic-fans-timeline__event-card {
    padding: 24px 26px;
    border-color: #e7dfda;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 4px 12px rgba(16, 24, 32, 0.05),
        0 14px 30px rgba(16, 24, 32, 0.035);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}

.epic-fans-timeline__event-card:hover {
    transform: translateY(-2px);
    border-color: #d9cec7;
    box-shadow:
        0 6px 16px rgba(16, 24, 32, 0.07),
        0 18px 36px rgba(16, 24, 32, 0.05);
}

.epic-fans-timeline__event-card::before {
    width: 6px;
    background: linear-gradient(
        to bottom,
        #b5121b 0%,
        #d33a43 100%
    );
}

.epic-fans-timeline__event-year {
    margin-bottom: 10px;
    color: #b5121b;
    font-size: 26px;
    font-weight: 900;
}

.epic-fans-timeline__event-title {
    margin-bottom: 10px;
    color: #4e433e;
    font-size: 20px;
    font-weight: 850;
    line-height: 1.25;
}

.epic-fans-timeline__event-excerpt {
    color: #7f706a;
    font-size: 16px;
    line-height: 1.55;
}

.epic-fans-timeline__event-category {
    display: inline-flex;
    align-items: center;
    margin-top: 18px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f7efec;
    color: #9b5d5b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

/* Mobile premium timeline */
@media (max-width: 800px) {

    .epic-fans-timeline {
        padding: 16px 14px 20px;
        border-radius: 16px;
    }

    .epic-fans-timeline__month-row {
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 6px;
        margin-bottom: 12px;
    }

    .epic-fans-timeline__arrow {
        width: 34px;
        height: 34px;
        font-size: 24px;
    }

    .epic-fans-timeline__month {
        font-size: 13px;
    }

    .epic-fans-timeline__date {
        flex-basis: 56px;
        min-height: 74px;
    }

    .epic-fans-timeline__day {
        width: 36px;
        height: 36px;
        font-size: 15px;
    }

    .epic-fans-timeline__fixture-marker {
        gap: 4px;
        padding: 2px 5px;
    }

    .epic-fans-timeline__fixture-badge {
        width: 15px;
        height: 15px;
    }

    .epic-fans-timeline__fixture-value {
        min-width: 30px;
        font-size: 10px;
    }

    .epic-fans-timeline__events {
        margin-top: 24px;
    }

    .epic-fans-timeline__heading {
        margin-bottom: 16px;
        padding-left: 14px;
        font-size: 23px;
    }

    .epic-fans-timeline__heading::before {
        width: 5px;
        height: 26px;
    }

    .epic-fans-timeline__event-list {
        gap: 14px;
    }

    .epic-fans-timeline__event-card {
        padding: 20px 20px 19px;
        border-radius: 15px;
    }

    .epic-fans-timeline__event-year {
        font-size: 23px;
    }

    .epic-fans-timeline__event-title {
        font-size: 18px;
    }

    .epic-fans-timeline__event-excerpt {
        font-size: 15px;
        line-height: 1.5;
    }

    .epic-fans-timeline__event-category {
        margin-top: 15px;
        font-size: 11px;
    }
}

/* =========================================================
   Timeline refinement pass: tighter dates + edge fade
   ========================================================= */

.epic-fans-timeline__dates {
    gap: 0;
    padding: 2px 18px 12px;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0,
        rgba(0,0,0,0.22) 14px,
        rgba(0,0,0,1) 38px,
        rgba(0,0,0,1) calc(100% - 38px),
        rgba(0,0,0,0.22) calc(100% - 14px),
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0,
        rgba(0,0,0,0.22) 14px,
        rgba(0,0,0,1) 38px,
        rgba(0,0,0,1) calc(100% - 38px),
        rgba(0,0,0,0.22) calc(100% - 14px),
        transparent 100%
    );
}

.epic-fans-timeline__date {
    flex: 0 0 54px;
    min-height: 74px;
    padding: 4px 1px 8px;
}

.epic-fans-timeline__day {
    width: 36px;
    height: 36px;
    font-size: 14px;
}

.epic-fans-timeline__fixtures {
    margin-top: 4px;
    min-height: 18px;
}

.epic-fans-timeline__fixture-marker {
    gap: 4px;
    padding: 2px 5px;
}

.epic-fans-timeline__fixture-badge {
    width: 15px;
    height: 15px;
}

.epic-fans-timeline__fixture-value {
    min-width: 28px;
    font-size: 10px;
}

@media (max-width: 800px) {
    .epic-fans-timeline__dates {
        padding: 2px 12px 10px;
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0,
            rgba(0,0,0,0.22) 10px,
            rgba(0,0,0,1) 26px,
            rgba(0,0,0,1) calc(100% - 26px),
            rgba(0,0,0,0.22) calc(100% - 10px),
            transparent 100%
        );
        mask-image: linear-gradient(
            to right,
            transparent 0,
            rgba(0,0,0,0.22) 10px,
            rgba(0,0,0,1) 26px,
            rgba(0,0,0,1) calc(100% - 26px),
            rgba(0,0,0,0.22) calc(100% - 10px),
            transparent 100%
        );
    }

    .epic-fans-timeline__date {
        flex-basis: 48px;
        min-height: 68px;
        padding: 4px 0 6px;
    }

    .epic-fans-timeline__day {
        width: 34px;
        height: 34px;
        font-size: 14px;
    }

    .epic-fans-timeline__fixture-badge {
        width: 14px;
        height: 14px;
    }

    .epic-fans-timeline__fixture-value {
        min-width: 24px;
        font-size: 10px;
    }
}

/* =========================================================
   Timeline refinement pass 2
   - tighter dates
   - fixtures below the line like the app
   ========================================================= */

.epic-fans-timeline__panel {
    overflow: hidden;
}

.epic-fans-timeline__dates {
    gap: 0;
    padding: 2px 18px 0;
}

.epic-fans-timeline__date {
    flex: 0 0 44px;
    min-height: 96px;
    padding: 2px 0 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.epic-fans-timeline__day {
    width: 36px;
    height: 36px;
    font-size: 14px;
    margin-bottom: 10px;
}

.epic-fans-timeline__track {
    margin-top: 0;
    position: relative;
    z-index: 1;
}

.epic-fans-timeline__date.is-active::after,
.epic-fans-timeline__date--active::after {
    top: 54px;
}

.epic-fans-timeline__fixtures {
    margin-top: 18px;
    min-height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    position: relative;
    z-index: 2;
}

.epic-fans-timeline__fixture-marker {
    gap: 4px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.epic-fans-timeline__fixture-badge {
    width: 15px;
    height: 15px;
}

.epic-fans-timeline__fixture-value {
    min-width: 26px;
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
}

/* soften line edges a little */
.epic-fans-timeline__track::before {
    opacity: 0.92;
}

@media (max-width: 800px) {
    .epic-fans-timeline__dates {
        padding: 2px 12px 0;
    }

    .epic-fans-timeline__date {
        flex-basis: 40px;
        min-height: 88px;
    }

    .epic-fans-timeline__day {
        width: 34px;
        height: 34px;
        margin-bottom: 8px;
    }

    .epic-fans-timeline__date.is-active::after,
    .epic-fans-timeline__date--active::after {
        top: 50px;
    }

    .epic-fans-timeline__fixtures {
        margin-top: 16px;
        min-height: 18px;
        gap: 3px;
    }

    .epic-fans-timeline__fixture-badge {
        width: 14px;
        height: 14px;
    }

    .epic-fans-timeline__fixture-value {
        min-width: 24px;
        font-size: 11px;
    }
}

/* =========================================================
   Timeline structure correction
   - line beneath date numbers
   - fixtures/results beneath the line
   ========================================================= */

.epic-fans-timeline__dates {
    position: relative;
    border-bottom: 0;
    padding-top: 2px;
    padding-bottom: 0;
}

/* Actual horizontal timeline line */
.epic-fans-timeline__dates::after {
    position: absolute;
    z-index: 0;
    top: 54px;
    left: 18px;
    right: 18px;
    height: 2px;
    border-radius: 999px;
    background: #8f817a;
    content: "";
    pointer-events: none;
}

.epic-fans-timeline__date {
    position: relative;
    z-index: 1;
    flex: 0 0 44px;
    min-height: 88px;
    padding: 2px 0 0;
}

.epic-fans-timeline__day {
    margin-bottom: 0;
}

/* Selected-date marker reaches down to the timeline */
.epic-fans-timeline__date.is-selected::after {
    top: 44px;
    bottom: auto;
    width: 2px;
    height: 12px;
    z-index: 2;
}

/* Match markers now sit beneath the timeline */
.epic-fans-timeline__fixtures {
    position: absolute;
    z-index: 3;
    top: 64px;
    left: 50%;
    width: max-content;
    min-height: 0;
    margin: 0;
    transform: translateX(-50%);
}

.epic-fans-timeline__fixture-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

@media (max-width: 800px) {

    .epic-fans-timeline__dates::after {
        top: 51px;
        left: 12px;
        right: 12px;
    }

    .epic-fans-timeline__date {
        flex-basis: 40px;
        min-height: 84px;
    }

    .epic-fans-timeline__date.is-selected::after {
        top: 42px;
        height: 11px;
    }

    .epic-fans-timeline__fixtures {
        top: 61px;
    }
}

/* =========================================================
   Timeline refinement
   - selected date has NO vertical tick
   - only fixtures/results get vertical ticks
   - fixture ticks align centrally to the timeline line
   ========================================================= */

.epic-fans-timeline__date.is-selected::after {
    display: none;
}

.epic-fans-timeline__dates {
    position: relative;
}

.epic-fans-timeline__dates::after {
    top: 54px;
    left: 18px;
    right: 18px;
    height: 2px;
    background: #8f817a;
}

.epic-fans-timeline__date {
    min-height: 74px;
}

.epic-fans-timeline__fixtures {
    top: 61px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}

.epic-fans-timeline__fixture-marker {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.epic-fans-timeline__fixture-marker::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -11px;
    transform: translateX(-50%);
    width: 2px;
    height: 11px;
    border-radius: 999px;
    background: #8f817a;
    pointer-events: none;
}

@media (max-width: 800px) {
    .epic-fans-timeline__dates::after {
        top: 51px;
        left: 12px;
        right: 12px;
    }

    .epic-fans-timeline__date {
        min-height: 70px;
    }

    .epic-fans-timeline__fixtures {
        top: 58px;
    }

    .epic-fans-timeline__fixture-marker::before {
        top: -10px;
        height: 10px;
    }
}

/* =========================================================
   Timeline structural correction
   - line spans entire scrollable month
   - fixture ticks are centred on their dates
   - selected date and actual today are separate states
   ========================================================= */

/* Remove the old viewport-width line. */
.epic-fans-timeline__dates::after {
    display: none;
}

/*
 * Each date contributes one segment of the horizontal line.
 * Because the cells touch, these segments form one continuous
 * line across the complete scrollable month.
 */
.epic-fans-timeline__date::before {
    position: absolute;
    z-index: 0;
    top: 54px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #8f817a;
    content: "";
    pointer-events: none;
}

/* No selected-date tick. The circle alone indicates selection. */
.epic-fans-timeline__date.is-selected::after {
    display: none;
}

/*
 * Fixture/result tick belongs to the DATE, not to the badge/score
 * marker, so its centre always matches the centre of the date.
 */
.epic-fans-timeline__date.has-fixture::after {
    position: absolute;
    z-index: 2;
    top: 50px;
    left: 50%;
    display: block;
    width: 2px;
    height: 10px;
    border-radius: 999px;
    background: #8f817a;
    content: "";
    transform: translateX(-50%);
    pointer-events: none;
}

/* Remove the old marker-based tick. */
.epic-fans-timeline__fixture-marker::before {
    display: none;
}

/* Fixture information remains below the line. */
.epic-fans-timeline__fixtures {
    top: 64px;
    left: 50%;
    transform: translateX(-50%);
}

/* Actual calendar date: larger/red, as in the app. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
}

/*
 * Selected date keeps the outlined circle.
 * If selected date is also today, both treatments naturally combine.
 */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border-color: #cf343c;
    background: #fff1f0;
    color: #b5121b;
}

/* Make sure the complete line fades naturally with the date strip. */
.epic-fans-timeline__dates {
    overflow-x: auto;
    overflow-y: hidden;
}

@media (max-width: 800px) {
    .epic-fans-timeline__date::before {
        top: 51px;
    }

    .epic-fans-timeline__date.has-fixture::after {
        top: 47px;
        height: 10px;
    }

    .epic-fans-timeline__fixtures {
        top: 61px;
    }

    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 18px;
    }
}

/* =========================================================
   Timeline correction
   - restore selected-date circle
   - restore fixture/result pills
   - prevent bottom clipping
   ========================================================= */

/* Give the below-line fixture/result row enough vertical room. */
.epic-fans-timeline__date {
    min-height: 94px;
}

/* Selected date = outlined circle, independent of today's date. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    width: 36px;
    height: 36px;
    border: 1.5px solid #cf343c;
    border-radius: 50%;
    background: #fff1f0;
    color: #b5121b;
    box-shadow:
        0 0 0 4px rgba(181, 18, 27, 0.06),
        0 3px 9px rgba(181, 18, 27, 0.10);
}

/* Today remains the larger red number even when another date is selected. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
}

/* If today is also selected, keep both treatments. */
.epic-fans-timeline__date.is-today.is-selected .epic-fans-timeline__day {
    font-size: 19px;
}

/* Fixture/result row below the horizontal line. */
.epic-fans-timeline__fixtures {
    top: 64px;
    min-height: 24px;
}

/* Restore the compact premium tablet/pill. */
.epic-fans-timeline__fixture-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 3px 6px;
    border: 1px solid #e6ddd7;
    border-radius: 999px;
    background: #ffffff;
    box-shadow:
        0 2px 5px rgba(16, 24, 32, 0.06),
        0 1px 2px rgba(16, 24, 32, 0.04);
    white-space: nowrap;
}

.epic-fans-timeline__fixture-badge {
    display: block;
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    object-fit: contain;
}

.epic-fans-timeline__fixture-value {
    min-width: 26px;
    color: #514640;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

/* Fixture tick remains centred on the DATE itself. */
.epic-fans-timeline__date.has-fixture::after {
    top: 50px;
    left: 50%;
    width: 2px;
    height: 10px;
    transform: translateX(-50%);
}


/* Mobile */
@media (max-width: 800px) {

    .epic-fans-timeline__date {
        min-height: 90px;
    }

    .epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
        width: 34px;
        height: 34px;
    }

    .epic-fans-timeline__date.is-today .epic-fans-timeline__day,
    .epic-fans-timeline__date.is-today.is-selected .epic-fans-timeline__day {
        font-size: 18px;
    }

    .epic-fans-timeline__fixtures {
        top: 61px;
    }

    .epic-fans-timeline__fixture-marker {
        gap: 3px;
        padding: 3px 5px;
    }

    .epic-fans-timeline__fixture-badge {
        width: 14px;
        height: 14px;
    }

    .epic-fans-timeline__fixture-value {
        min-width: 24px;
        font-size: 10px;
    }
}

/* =========================================================
   Timeline selectable dates
   ========================================================= */

.epic-fans-timeline__day {
    padding: 0;
    border: 1.5px solid transparent;
    background: transparent;
    font-family: Geist, Arial, sans-serif;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.epic-fans-timeline__day:hover {
    background: #f7efec;
}

.epic-fans-timeline__day:focus-visible {
    outline: 2px solid rgba(181, 18, 27, 0.35);
    outline-offset: 2px;
}

/* selected date always gets the circle */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border: 1.5px solid #cf343c;
    border-radius: 50%;
    background: #fff1f0;
    color: #b5121b;
    box-shadow:
        0 0 0 4px rgba(181, 18, 27, 0.06),
        0 3px 9px rgba(181, 18, 27, 0.10);
}

/* actual today remains red/larger, selected or not */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
}

/* Timeline dates are real links. */
.epic-fans-timeline__day {
    text-decoration: none;
}

.epic-fans-timeline__day:hover,
.epic-fans-timeline__day:focus {
    text-decoration: none;
}

/* =========================================================
   App-style centred timeline selection
   ========================================================= */

/*
 * The selection ring belongs to the VIEWPORT, not an individual date.
 * Dates slide underneath it.
 */
.epic-fans-timeline__dates::before {
    position: sticky;
    z-index: 20;
    top: 2px;
    left: 50%;
    display: block;
    width: 36px;
    height: 36px;
    margin-right: -36px;
    border: 1.5px solid #cf343c;
    border-radius: 50%;
    background: rgba(255, 241, 240, 0.72);
    box-shadow:
        0 0 0 4px rgba(181, 18, 27, 0.05),
        0 3px 9px rgba(181, 18, 27, 0.09);
    content: "";
    transform: translateX(-50%);
    pointer-events: none;
}

/* Cell selection supplies the red text only. The fixed ring is above. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #b5121b;
}

/* Scroll should settle with a date precisely under the centre ring. */
.epic-fans-timeline__dates {
    scroll-snap-type: x mandatory;
}

.epic-fans-timeline__date {
    scroll-snap-align: center;
    scroll-snap-stop: always;
}

/* Actual today remains red/larger whether selected or not. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
}

@media (max-width: 800px) {
    .epic-fans-timeline__dates::before {
        top: 2px;
        width: 34px;
        height: 34px;
        margin-right: -34px;
    }

    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 18px;
    }
}

/* =========================================================
   True fixed centre selection ring
   ========================================================= */

.epic-fans-timeline__dates-shell {
    position: relative;
}

/* Disable the previous pseudo-element attempt. */
.epic-fans-timeline__dates::before {
    display: none;
}

/*
 * This ring belongs to the viewport, not to a date.
 * Dates move beneath it exactly like the app.
 */
.epic-fans-timeline__selection-ring {
    position: absolute;
    z-index: 40;
    top: 2px;
    left: 50%;
    display: block;
    width: 36px;
    height: 36px;
    border: 1.5px solid #cf343c;
    border-radius: 50%;
    background: rgba(255, 241, 240, 0.62);
    box-shadow:
        0 0 0 4px rgba(181, 18, 27, 0.05),
        0 3px 9px rgba(181, 18, 27, 0.10);
    transform: translateX(-50%);
    pointer-events: none;
}

/* The date itself no longer draws the selection circle. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    border: 0;
    background: transparent;
    box-shadow: none;
}

/* Selected number is red. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
    color: #b5121b;
}

/* Today is independently larger/red, like the app. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
}

.epic-fans-timeline__dates.is-dragging,
.epic-fans-timeline__dates.is-dragging * {
    cursor: grabbing !important;
    user-select: none;
}

@media (max-width: 800px) {
    .epic-fans-timeline__selection-ring {
        width: 34px;
        height: 34px;
    }

    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 18px;
    }
}

/* =========================================================
   Timeline interaction polish
   ========================================================= */

/* Dates are links for reliability, but must not LOOK like links. */
.epic-fans-timeline__day,
.epic-fans-timeline__day:link,
.epic-fans-timeline__day:visited,
.epic-fans-timeline__day:hover,
.epic-fans-timeline__day:focus,
.epic-fans-timeline__day:active {
    color: #5d504a;
    text-decoration: none !important;
}

/*
 * Enough virtual space at both ends means even the first/last date
 * can move underneath the fixed centre selector.
 */
.epic-fans-timeline__dates {
    box-sizing: border-box;
    padding-left: calc(50% - 22px);
    padding-right: calc(50% - 22px);
}

/* True fixed selection ring. No white fill. */
.epic-fans-timeline__selection-ring {
    top: 2px;
    left: 50%;
    width: 38px;
    height: 38px;
    border: 1.5px solid #cf343c;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
    transform: translateX(-50%);
}

/* Selected date under the centre ring. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:visited {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
    text-decoration: none !important;
}

/* Today's date stays red/larger independently of selection. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:visited {
    color: #b5121b;
    font-size: 19px;
    font-weight: 900;
    text-decoration: none !important;
}

/* Better mouse-drag behaviour over links. */
.epic-fans-timeline__dates {
    cursor: grab;
    touch-action: pan-y;
}

.epic-fans-timeline__dates.is-dragging {
    cursor: grabbing;
}

.epic-fans-timeline__dates.is-dragging a {
    pointer-events: none;
}

/* Stop browser image/link dragging interfering with timeline dragging. */
.epic-fans-timeline__date,
.epic-fans-timeline__day,
.epic-fans-timeline__fixture-marker,
.epic-fans-timeline__fixture-badge {
    -webkit-user-drag: none;
    user-drag: none;
}

@media (max-width: 800px) {
    .epic-fans-timeline__dates {
        padding-left: calc(50% - 20px);
        padding-right: calc(50% - 20px);
    }

    .epic-fans-timeline__selection-ring {
        width: 36px;
        height: 36px;
    }

    .epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 18px;
    }
}

/* =========================================================
   Timeline final centre-state emphasis
   ========================================================= */

.epic-fans-timeline__selection-ring {
    width: 40px;
    height: 40px;
    top: 0;
    border: 2.5px solid #cf343c;
    background: transparent;
    box-shadow: none;
}

/* Normal dates. */
.epic-fans-timeline__date .epic-fans-timeline__day,
.epic-fans-timeline__date .epic-fans-timeline__day:link,
.epic-fans-timeline__date .epic-fans-timeline__day:visited {
    color: #5d504a !important;
    font-size: 14px;
    font-weight: 800;
}

/* Selected date beneath the fixed ring. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:hover {
    color: #c51d27 !important;
    font-size: 21px !important;
    font-weight: 900 !important;
}

/* Actual today remains highlighted even when not selected. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:hover {
    color: #c51d27 !important;
    font-size: 21px !important;
    font-weight: 900 !important;
}

@media (max-width: 800px) {
    .epic-fans-timeline__selection-ring {
        width: 38px;
        height: 38px;
        border-width: 2.5px;
    }

    .epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 20px !important;
    }
}

/* =========================================================
   Timeline centre-selector refinement
   ========================================================= */

.epic-fans-timeline__selection-ring {
    top: 3px;
    width: 40px;
    height: 40px;
    border: 2.5px solid #cf343c;
    background: transparent;
}

/* Centred/selected date */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:hover {
    color: #c51620 !important;
    font-size: 22px !important;
    font-weight: 900 !important;
}

/* Actual today, even when it isn't selected */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:hover {
    color: #c51620 !important;
    font-size: 22px !important;
    font-weight: 900 !important;
}

@media (max-width: 800px) {
    .epic-fans-timeline__selection-ring {
        top: 2px;
        width: 38px;
        height: 38px;
    }

    .epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 20px !important;
    }
}

/* =========================================================
   Timeline final visual controls
   ========================================================= */

/* Arrow buttons */
.epic-fans-timeline__arrow {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #ddd3cc;
    border-radius: 50%;
    background: #fffdfa;
    color: #786a64;
    box-shadow: 0 3px 10px rgba(16, 24, 32, 0.05);
    line-height: 1;
}

/* Disable every older pseudo-chevron rule. */
.epic-fans-timeline__arrow::before {
    content: none !important;
    display: none !important;
}

.epic-fans-timeline__arrow-icon {
    display: block;
    width: 15px;
    height: 15px;
    overflow: visible;
}

.epic-fans-timeline__arrow-icon path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.epic-fans-timeline__arrow:hover,
.epic-fans-timeline__arrow:focus-visible {
    color: #b5121b;
    border-color: rgba(181, 18, 27, 0.42);
}

/* Never move the arrow button on hover. */
.epic-fans-timeline__arrow:hover,
.epic-fans-timeline__arrow:focus-visible {
    transform: none;
}

/* Date visual box */
.epic-fans-timeline__day,
.epic-fans-timeline__day:link,
.epic-fans-timeline__day:visited,
.epic-fans-timeline__day:hover,
.epic-fans-timeline__day:focus,
.epic-fans-timeline__day:active {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #5d504a;
    font-family: Geist, Arial, sans-serif;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none !important;
    transform: none !important;
}

/* Kill the old hover lift/background completely. */
.epic-fans-timeline__date:hover .epic-fans-timeline__day {
    background: transparent;
    transform: none !important;
}

/*
 * The ring is exactly the same 40x40 box as the date.
 * Both are centred on the same timeline midpoint.
 */
.epic-fans-timeline__selection-ring {
    top: 2px;
    left: 50%;
    width: 40px;
    height: 40px;
    border: 2px solid #cf343c;
    border-radius: 50%;
    background: rgba(207, 52, 60, 0.055);
    box-shadow: none;
    transform: translateX(-50%);
}

/* Selected = red but normal-sized, like the app. */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:hover {
    border: 0;
    background: transparent;
    color: #c51620 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    box-shadow: none;
}

/* Today = red and larger. */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:hover {
    color: #c51620 !important;
    font-size: 21px !important;
    font-weight: 900 !important;
}

/* Three cards across on normal desktop widths. */
.epic-fans-timeline__event-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.epic-fans-timeline__event-card {
    padding: 22px 22px 20px;
}

.epic-fans-timeline__event-year {
    font-size: 24px;
}

.epic-fans-timeline__event-title {
    font-size: 18px;
}

.epic-fans-timeline__event-excerpt {
    font-size: 15px;
    line-height: 1.5;
}

@media (max-width: 1100px) and (min-width: 801px) {
    .epic-fans-timeline__event-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .epic-fans-timeline__arrow {
        width: 34px;
        height: 34px;
    }

    .epic-fans-timeline__arrow-icon {
        width: 14px;
        height: 14px;
    }

    .epic-fans-timeline__day,
    .epic-fans-timeline__day:link,
    .epic-fans-timeline__day:visited {
        width: 38px;
        height: 38px;
    }

    .epic-fans-timeline__selection-ring {
        top: 2px;
        width: 38px;
        height: 38px;
    }

    .epic-fans-timeline__date.is-selected .epic-fans-timeline__day {
        font-size: 14px !important;
    }

    .epic-fans-timeline__date.is-today .epic-fans-timeline__day {
        font-size: 20px !important;
    }

    .epic-fans-timeline__event-list {
        grid-template-columns: 1fr;
    }

    .epic-fans-timeline__event-card {
        padding: 20px;
    }
}


/* Selected-date text alignment without moving the date box */
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-selected .epic-fans-timeline__day:hover {
    box-sizing: border-box;
    padding-top: 3px;
}

/* Final ring vertical alignment */
.epic-fans-timeline__selection-ring {
    top: 3px !important;
}

/* Final ring vertical alignment */
.epic-fans-timeline__selection-ring {
    top: 4px !important;
}

/* Slightly stronger emphasis for today's date */
.epic-fans-timeline__date.is-today .epic-fans-timeline__day,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:link,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:visited,
.epic-fans-timeline__date.is-today .epic-fans-timeline__day:hover {
    font-size: 23px !important;
}

/* =========================================================
   Smooth kinetic timeline movement
   Browser snapping is replaced by JS momentum + soft settling.
   ========================================================= */

.epic-fans-timeline__dates {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    overscroll-behavior-x: contain;
}

.epic-fans-timeline__date {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
}

/* Timeline heading refinements */
.epic-fans-timeline__month {
    font-size: 18px !important;
}

/* Remove decorative line after "On this day in …" */
.epic-fans-timeline__heading::after {
    display: none !important;
    content: none !important;
}

/* Remove decorative line before "On this day in …" */
.epic-fans-timeline__heading::before {
    display: none !important;
    content: none !important;
}


/* Final heading alignment */
.epic-fans-timeline__heading {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* =========================================================
   Timeline cards: app category visuals
   ========================================================= */

.epic-fans-timeline__event-card {
    position: relative;
    border-left-color: var(--event-accent, #c51f2d) !important;
}

.epic-fans-timeline__event-year {
    color: var(--event-accent, #c51f2d) !important;
    padding-right: 34px;
}

.epic-fans-timeline__event-icon {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 22px;
    height: 22px;
    color: var(--event-accent, #c51f2d);
    display: grid;
    place-items: center;
}

.epic-fans-timeline__event-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.epic-fans-timeline__event-category {
    color: var(--event-accent, #c51f2d) !important;
    background: color-mix(
        in srgb,
        var(--event-accent, #c51f2d) 12%,
        white
    ) !important;
}

/* =========================================================
   Timeline card category accent fixes
   ========================================================= */

/* Category colour must control the card's left accent */
.epic-fans-timeline__event-card {
    border-left-color: var(--event-accent, #c51f2d) !important;
}

/* Older card styling draws the stripe as a pseudo-element */
.epic-fans-timeline__event-card::before {
    background: var(--event-accent, #c51f2d) !important;
    border-color: var(--event-accent, #c51f2d) !important;
}

/* Solid app-style category icons */
.epic-fans-timeline__event-icon svg {
    fill: currentColor !important;
    stroke: none !important;
}

/* Tighten gap between timeline rail and event section */
.epic-fans-timeline__events {
    margin-top: 16px !important;
}

/* =========================================================
   Timeline event card links
   ========================================================= */

.epic-fans-timeline__event-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none !important;
    border-radius: inherit;
}

.epic-fans-timeline__event-link .epic-fans-timeline__event-card {
    height: 100%;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.epic-fans-timeline__event-link:hover .epic-fans-timeline__event-card {
    transform: translateY(-2px);
}

.epic-fans-timeline__event-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 14px;
}

/* =========================================================
   Event slide-over drawer
   ========================================================= */

.epic-fans-event-drawer {
    --event-accent: #c51f2d;

    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
    visibility: hidden;
}

.epic-fans-event-drawer.is-open {
    pointer-events: auto;
    visibility: visible;
}

.epic-fans-event-drawer__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(20, 20, 20, 0.38);
    opacity: 0;
    cursor: default;
    transition: opacity 0.24s ease;
}

.epic-fans-event-drawer.is-open
.epic-fans-event-drawer__backdrop {
    opacity: 1;
}

.epic-fans-event-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(560px, 48vw);
    height: 100%;
    background: #fff;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.16);
    transform: translateX(100%);
    transition: transform 0.26s cubic-bezier(.22, .8, .3, 1);
    overflow: hidden;
}

.epic-fans-event-drawer.is-open
.epic-fans-event-drawer__panel {
    transform: translateX(0);
}

.epic-fans-event-drawer__scroll {
    height: 100%;
    overflow-y: auto;
    padding: 64px 44px 48px;
}

.epic-fans-event-drawer__close {
    position: absolute;
    z-index: 2;
    top: 18px;
    right: 18px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid #ddd;
    border-radius: 50%;
    background: #fff;
    color: #222;
    font: inherit;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
}

.epic-fans-event-drawer__close:hover {
    background: #f5f5f5;
}

.epic-fans-event-drawer__year {
    margin: 0 44px 9px 0;
    color: var(--event-accent);
    font-size: 18px;
    font-weight: 800;
}

.epic-fans-event-drawer__icon {
    position: absolute;
    top: 66px;
    right: 45px;
    width: 25px;
    height: 25px;
    color: var(--event-accent);
}

.epic-fans-event-drawer__icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
    stroke: none;
}

.epic-fans-event-drawer__title {
    margin: 0 0 18px;
    padding: 0;
    color: #171717;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 3vw, 43px);
    line-height: 1.08;
    font-weight: 700;
}

.epic-fans-event-drawer__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 28px;
}

.epic-fans-event-drawer__category,
.epic-fans-event-drawer__sub-category {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 4px 9px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
}

.epic-fans-event-drawer__category {
    color: var(--event-accent);
    background: color-mix(
        in srgb,
        var(--event-accent) 12%,
        white
    );
}

.epic-fans-event-drawer__sub-category {
    color: #555;
    background: #f1f1f1;
}

.epic-fans-event-drawer__content {
    color: #303030;
    font-size: 17px;
    line-height: 1.7;
}

.epic-fans-event-drawer__content p {
    margin: 0 0 1.1em;
}

.epic-fans-event-drawer__sources {
    margin-top: 34px;
    padding-top: 22px;
    border-top: 1px solid #e5e5e5;
}

.epic-fans-event-drawer__sources h3 {
    margin: 0 0 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.25;
}

.epic-fans-event-drawer__sources p {
    margin: 0;
    color: #666;
    font-size: 13px;
    line-height: 1.5;
}

.epic-fans-event-drawer__full-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 30px;
    color: var(--event-accent);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

.epic-fans-event-drawer__full-link:hover {
    text-decoration: underline !important;
}

@media (max-width: 700px) {

    .epic-fans-event-drawer__panel {
        width: 100%;
        max-width: none;
    }

    .epic-fans-event-drawer__scroll {
        padding: 62px 22px 38px;
    }

    .epic-fans-event-drawer__icon {
        top: 64px;
        right: 24px;
    }

    .epic-fans-event-drawer__title {
        font-size: 31px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .epic-fans-event-drawer__panel,
    .epic-fans-event-drawer__backdrop {
        transition: none;
    }
}

/* =========================================================
   Standalone event article
   Mirrors the event drawer visual language.
   ========================================================= */

/* The WordPress shell title is intentionally blank on event routes. */
body.epic-fans-event-route h1:empty,
body.epic-fans-event-route .entry-title:empty {
    display: none !important;
    margin: 0 !important;
}

/* Remove excess shell space left by the suppressed editor page title. */
body.epic-fans-event-route .entry-header:has(h1:empty) {
    display: none;
}

.epic-fans-event-detail {
    --event-accent: #c51f2d;

    position: relative;
    max-width: 980px;
    margin: 20px auto 48px;
    padding: 42px 48px 46px;

    background: #fff;
    border: 1px solid #e4ddd6;
    border-left: 6px solid var(--event-accent);
    border-radius: 18px;

    box-shadow: 0 12px 34px rgba(20, 24, 28, 0.07);
}

.epic-fans-event-detail__top {
    position: relative;
    min-height: 30px;
    padding-right: 50px;
}

.epic-fans-event-detail__date {
    color: var(--event-accent);
    font-size: 18px;
    line-height: 1.3;
    font-weight: 800;
}

.epic-fans-event-detail__icon {
    position: absolute;
    top: -2px;
    right: 0;

    width: 27px;
    height: 27px;

    color: var(--event-accent);
}

.epic-fans-event-detail__icon svg {
    width: 100%;
    height: 100%;

    fill: currentColor;
    stroke: none;
}

.epic-fans-event-detail__title {
    margin: 12px 0 13px !important;

    color: #171717;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.08;
    font-weight: 700;
}

.epic-fans-event-detail__story-title {
    max-width: 830px;
    margin: 0 0 22px;

    color: #504640;
    font-size: 20px;
    line-height: 1.45;
    font-weight: 700;
}

.epic-fans-event-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;

    margin: 0 0 30px;
}

.epic-fans-event-detail__category,
.epic-fans-event-detail__sub-category {
    display: inline-flex;
    align-items: center;

    min-height: 26px;
    padding: 5px 10px;

    border-radius: 5px;

    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
}

.epic-fans-event-detail__category {
    color: var(--event-accent);

    background: color-mix(
        in srgb,
        var(--event-accent) 12%,
        white
    );
}

.epic-fans-event-detail__sub-category {
    color: #555;
    background: #f1f1f1;
}

.epic-fans-event-detail__content {
    max-width: 840px;

    color: #4d555b;
    font-size: 17px;
    line-height: 1.75;
}

.epic-fans-event-detail__content p {
    margin: 0 0 1.25em;
}

.epic-fans-event-detail__sources {
    max-width: 840px;

    margin-top: 34px;
    padding-top: 22px;

    border-top: 1px solid #e6e0db;
}

.epic-fans-event-detail__sources h2 {
    margin: 0 0 8px;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.25;
}

.epic-fans-event-detail__sources p {
    margin: 0;

    color: #687078;
    font-size: 13px;
    line-height: 1.55;
}


/* Drawer secondary "On this day..." heading */
.epic-fans-event-drawer__story-title {
    margin: -3px 0 22px;

    color: #665951;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 700;
}


/* Full date in drawer */
.epic-fans-event-drawer__year {
    font-size: 18px;
    font-weight: 800;
}


@media (max-width: 700px) {

    .epic-fans-event-detail {
        margin: 12px 0 34px;
        padding: 28px 22px 32px;

        border-radius: 14px;
        border-left-width: 5px;
    }

    .epic-fans-event-detail__date {
        font-size: 16px;
    }

    .epic-fans-event-detail__icon {
        width: 23px;
        height: 23px;
    }

    .epic-fans-event-detail__title {
        font-size: 32px;
    }

    .epic-fans-event-detail__story-title {
        font-size: 18px;
    }

    .epic-fans-event-detail__content {
        font-size: 16px;
        line-height: 1.7;
    }

}

/* Event page card width + remove left accent stripe */
.epic-fans-event-detail {
    max-width: none !important;
    width: 100% !important;
    border-left: 1px solid #e4ddd6 !important;
}

/* Use full width inside standalone event card */
.epic-fans-event-detail__story-title,
.epic-fans-event-detail__content,
.epic-fans-event-detail__sources {
    max-width: none !important;
    width: 100%;
}

/* Event article Sources heading hierarchy */
.epic-fans-event-detail__sources h3 {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.25;
}

/* Event category is semantically H3 but remains visually a pill */
.epic-fans-event-detail__category {
    margin: 0;
}

/* Keep event category semantic H3 visually identical to category pill */
.epic-fans-event-detail__meta {
    align-items: center;
}

.epic-fans-event-detail h3.epic-fans-event-detail__category {
    display: inline-flex !important;
    align-items: center !important;

    width: auto !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 5px 10px !important;

    border-radius: 5px !important;

    font-family: inherit !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: normal !important;

    color: var(--event-accent) !important;
    background: color-mix(
        in srgb,
        var(--event-accent) 12%,
        white
    ) !important;
}

/* Match category H3 pill height exactly to sub-category pill */
.epic-fans-event-detail h3.epic-fans-event-detail__category,
.epic-fans-event-detail__sub-category {
    display: inline-flex !important;
    align-items: center !important;

    height: 26px !important;
    min-height: 26px !important;
    padding: 0 10px !important;

    box-sizing: border-box !important;

    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 800 !important;

    margin: 0 !important;
}

/* Make category H3 text match sub-category pill exactly */
.epic-fans-event-detail h3.epic-fans-event-detail__category {
    font-family: inherit !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

/* Event category H3: override standard-page H3 typography inside pill */
body:not(.home) main.site-shell
.epic-fans-event-detail
h3.epic-fans-event-detail__category {
    font-family: inherit !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;

    height: 26px !important;
    min-height: 26px !important;
    padding: 0 10px !important;
    margin: 0 !important;
}

/* Timeline typography — independent of semantic heading tags */
.epic-fans-timeline__heading,
.epic-fans-timeline__event-year,
.epic-fans-timeline__event-title {
    font-family: Georgia, "Times New Roman", serif !important;
}

/* Event page timeline intro */
.event-timeline-intro {
    margin: 0 0 18px;
}

.event-timeline-intro .timeline-eyebrow {
    margin-bottom: 6px;

    color: #8a7668;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.event-timeline-intro .timeline-title {
    margin-bottom: 5px;

    color: #171717;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;
}

.event-timeline-intro .timeline-copy {
    margin: 0;

    color: #667078;
    font-size: 16px;
    line-height: 1.6;
}

@media (max-width: 700px) {
    .event-timeline-intro .timeline-title {
        font-size: 21px;
    }

    .event-timeline-intro .timeline-copy {
        font-size: 15px;
    }
}

/* =========================================================
   Event article media
   ========================================================= */

.epic-fans-event-detail__content::after {
    content: "";
    display: block;
    clear: both;
}

.epic-fans-event-detail__image--desktop {
    float: right;

    width: 320px;
    max-width: 40%;

    margin: 0 0 22px 30px;
}

.epic-fans-event-detail__image--inline {
    display: none;
}

.epic-fans-event-detail__image img {
    display: block;

    width: 100%;
    height: auto;
    max-height: 390px;

    object-fit: contain;
    object-position: top center;

    border-radius: 12px;
}

.epic-fans-event-detail__image figcaption {
    margin-top: 7px;

    color: #7b8388;
    font-size: 12px;
    line-height: 1.5;
}

.epic-fans-event-detail__image figcaption a {
    color: inherit;
    font: inherit;
    text-decoration: none;
}

.epic-fans-event-detail__video {
    max-width: 720px;
    margin-top: 30px;
}

.epic-fans-event-detail__video-link {
    display: block;

    color: inherit;
    text-decoration: none;
}

.epic-fans-event-detail__video-thumb {
    position: relative;
    overflow: hidden;

    aspect-ratio: 16 / 9;

    background: #111;
    border-radius: 12px;
}

.epic-fans-event-detail__video-thumb img {
    display: block;

    width: 100%;
    height: 100%;
    object-fit: cover;

    transition: transform 0.2s ease;
}

.epic-fans-event-detail__video-play {
    position: absolute;
    top: 50%;
    left: 50%;

    display: grid;
    place-items: center;

    width: 58px;
    height: 58px;

    padding-left: 4px;

    background: rgba(0, 0, 0, 0.78);
    border-radius: 50%;

    color: #fff;
    font-size: 23px;
    line-height: 1;

    transform: translate(-50%, -50%);
}

.epic-fans-event-detail__video-label {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-top: 10px;

    color: #30383d;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 800;
}

@media (hover: hover) and (pointer: fine) {

    .epic-fans-event-detail__video-link:hover
    .epic-fans-event-detail__video-thumb img {
        transform: scale(1.02);
    }

    .epic-fans-event-detail__video-link:hover
    .epic-fans-event-detail__video-label {
        color: var(--event-accent);
    }
}

@media (max-width: 700px) {

    .epic-fans-event-detail__image--desktop {
        display: none;
    }

    .epic-fans-event-detail__image--inline {
        display: block;
        float: none;

        width: 100%;
        max-width: none;

        margin: 24px 0 0;
    }

    .epic-fans-event-detail__image--inline img {
        width: 100%;
        height: auto;
        max-height: none;

        object-fit: contain;
    }

    .epic-fans-event-detail__video {
        margin-top: 24px;
    }

    .epic-fans-event-detail__video-play {
        width: 50px;
        height: 50px;
        font-size: 20px;
    }

}

/* =========================================================
   Event drawer media
   ========================================================= */

.epic-fans-event-drawer__event-image {
    margin: 22px 0 26px;
}

.epic-fans-event-drawer__event-image img {
    display: block;

    width: 100%;
    height: auto;
    max-height: 420px;

    object-fit: contain;
    object-position: center top;

    border-radius: 12px;
}

.epic-fans-event-drawer__event-image figcaption {
    margin-top: 7px;

    color: #7b8388;
    font-size: 12px;
    line-height: 1.5;
}

.epic-fans-event-drawer__event-image figcaption a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.epic-fans-event-drawer__video {
    display: block;

    margin: 26px 0 6px;

    color: inherit;
    text-decoration: none;
}

.epic-fans-event-drawer__video-thumb {
    position: relative;
    overflow: hidden;

    aspect-ratio: 16 / 9;

    background: #111;
    border-radius: 12px;
}

.epic-fans-event-drawer__video-thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.epic-fans-event-drawer__video-play {
    position: absolute;
    top: 50%;
    left: 50%;

    display: grid;
    place-items: center;

    width: 54px;
    height: 54px;

    padding-left: 3px;

    background: rgba(0, 0, 0, 0.78);
    border-radius: 50%;

    color: #fff;
    font-size: 21px;

    transform: translate(-50%, -50%);
}

.epic-fans-event-drawer__video-label {
    margin-top: 9px;

    color: #30383d;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 800;
}

/* Event image caption + credit (page and drawer) */
.epic-fans-event-detail__image figcaption,
.epic-fans-event-drawer__event-image figcaption {
    margin-top: 10px;
}

.epic-fans-event-detail__image-caption,
.epic-fans-event-drawer__image-caption {
    display: block;
    margin: 0 0 6px;
    color: #6F6F6F;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
}

.epic-fans-event-detail__image-credit,
.epic-fans-event-drawer__image-credit {
    display: block;
    margin: 0;
    color: #9A9A9A;
    font-size: 12px;
    line-height: 1.4;
    font-style: italic;
    text-align: center;
}

/* =========================================================
   Video title overlay inside thumbnail
   ========================================================= */

.epic-fans-event-detail__video-thumb,
.epic-fans-event-drawer__video-thumb {
    position: relative;
    overflow: hidden;
}

.epic-fans-event-detail__video-thumb::after,
.epic-fans-event-drawer__video-thumb::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 44%;
    z-index: 1;

    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.72),
        rgba(0, 0, 0, 0)
    );

    pointer-events: none;
}

.epic-fans-event-detail__video-thumb
> .epic-fans-event-detail__video-label,
.epic-fans-event-drawer__video-thumb
> .epic-fans-event-drawer__video-label {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 12px;
    z-index: 3;

    margin: 0;

    color: #fff;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 800;

    text-decoration: none;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.epic-fans-event-detail__video-play,
.epic-fans-event-drawer__video-play {
    z-index: 3;
}

.epic-fans-event-detail__video-link,
.epic-fans-event-drawer__video {
    text-decoration: none;
}

/* =========================================================
   Video hover refinements
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

    /* Drawer: same subtle thumbnail zoom as event page */
    .epic-fans-event-drawer__video:hover
    .epic-fans-event-drawer__video-thumb img {
        transform: scale(1.02);
    }

    .epic-fans-event-drawer__video-thumb img {
        transition: transform 0.2s ease;
    }

    /* Event page: keep overlay title readable on hover */
    .epic-fans-event-detail__video-link:hover
    .epic-fans-event-detail__video-label {
        color: #FFFFFF;
        text-decoration: none;
    }

}

/* =========================================================
   Click-to-load YouTube player
   ========================================================= */

.epic-fans-event-detail__video-player,
.epic-fans-event-drawer__video-player {
    position: relative;
    overflow: hidden;

    width: 100%;
    aspect-ratio: 16 / 9;

    background: #000;
    border-radius: 12px;
}

.epic-fans-event-detail__video-player iframe,
.epic-fans-event-drawer__video-player iframe {
    position: absolute;
    inset: 0;

    display: block;
    width: 100%;
    height: 100%;

    border: 0;
}

.epic-fans-event-detail__video-player {
    max-width: 720px;
}

.epic-fans-event-drawer__video-player {
    margin: 26px 0 6px;
}

/* =========================================================
   Standard page + app-promotion sidebar
   ========================================================= */

.epic-page-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 48px;
    align-items: start;
}

.epic-page-layout__main {
    min-width: 0;
}

.epic-app-promo-sidebar {
    min-width: 0;
    padding-top: 72px;
}

.epic-app-promo-sidebar__inner {
    position: sticky;
    top: 110px;

    padding: 26px;

    background: #FFFFFF;
    border: 1px solid #E4DDD6;
    border-radius: 16px;

    box-shadow:
        0 10px 30px rgba(16, 24, 32, 0.06);
}

/* Sidebar Gutenberg content */
.epic-app-promo-sidebar__inner > :first-child {
    margin-top: 0;
}

.epic-app-promo-sidebar__inner > :last-child {
    margin-bottom: 0;
}

.epic-app-promo-sidebar .epic-app-promo-eyebrow {
    margin: 0 0 8px;

    color: #8A7668;

    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: 0.14em;

    text-transform: uppercase;
}

.epic-app-promo-sidebar .epic-app-promo-title {
    margin: 0 0 12px;

    color: #171717;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 26px;
    line-height: 1.15;
    font-weight: 700;
}

.epic-app-promo-sidebar .epic-app-promo-copy {
    margin: 0 0 20px;

    color: #667078;

    font-size: 15px;
    line-height: 1.55;
}

.epic-app-promo-sidebar .wp-block-buttons {
    gap: 10px;
}

.epic-app-promo-sidebar .wp-block-button {
    width: 100%;
}

.epic-app-promo-sidebar .wp-block-button__link {
    width: 100%;
    text-align: center;
}

/* Collapse beneath page content on tablet/mobile */
@media (max-width: 960px) {

    .epic-page-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .epic-app-promo-sidebar {
        padding-top: 0;
        padding-bottom: 64px;
    }

    .epic-app-promo-sidebar__inner {
        position: static;
    }

}

@media (max-width: 700px) {

    .epic-app-promo-sidebar__inner {
        padding: 22px;
    }

    .epic-app-promo-sidebar .epic-app-promo-title {
        font-size: 23px;
    }

}

/* =========================================================
   Sidebar alignment refinements
   ========================================================= */

/* Bring the two columns closer together */
.epic-page-layout {
    gap: 28px;
}

/* Lift the event card slightly so it aligns better with the sidebar */
.epic-page-layout__main .epic-fans-event-detail {
    margin-top: -14px;
}

/* Keep the sidebar sticky on desktop */
.epic-app-promo-sidebar__inner {
    position: sticky;
    top: 110px;
}

/* Reset the event card lift on smaller screens */
@media (max-width: 960px) {
    .epic-page-layout {
        gap: 24px;
    }

    .epic-page-layout__main .epic-fans-event-detail {
        margin-top: 0;
    }
}

/* =========================================================
   Event page — event card + bounded sticky app sidebar
   ========================================================= */

.epic-event-page {
    padding-top: 58px;
    padding-bottom: 96px;
}

.epic-event-page__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: start;
}

.epic-event-page__main {
    min-width: 0;
}

/*
 * Event Detail already supplies its own white card.
 * Align its top exactly with the sidebar card.
 */
.epic-event-page__main .epic-fans-event-detail {
    margin-top: 0;
}

/*
 * Sidebar is sticky only within the top event row.
 * It therefore stops when the event-card section ends.
 */
.epic-event-page__top .epic-app-promo-sidebar {
    padding-top: 0;
    min-width: 0;
}

.epic-event-page__top .epic-app-promo-sidebar__inner {
    position: sticky;
    top: 110px;
}

/*
 * Timeline intro + timeline return to the complete page width.
 */
.epic-event-page__after {
    width: 100%;
    margin-top: 48px;
}

/*
 * Remove the old event-card lift now that alignment
 * is handled structurally.
 */
.epic-event-page
.epic-page-layout__main
.epic-fans-event-detail {
    margin-top: 0;
}

@media (max-width: 960px) {

    .epic-event-page {
        padding-top: 44px;
        padding-bottom: 64px;
    }

    .epic-event-page__top {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .epic-event-page__top .epic-app-promo-sidebar {
        padding-bottom: 0;
    }

    .epic-event-page__top .epic-app-promo-sidebar__inner {
        position: static;
    }

    .epic-event-page__after {
        margin-top: 44px;
    }

}

/* =========================================================
   Event sidebar sticky travel area
   ========================================================= */

@media (min-width: 961px) {

    /*
     * Let the sidebar grid cell stretch to the full height
     * of the event-card row. This gives the sticky card
     * room to travel while scrolling.
     */
    .epic-event-page__top {
        align-items: stretch;
    }

    /*
     * Keep the event content itself aligned to the top.
     */
    .epic-event-page__main {
        align-self: start;
    }

    /*
     * Sidebar column now spans the full event section height.
     */
    .epic-event-page__top .epic-app-promo-sidebar {
        align-self: stretch;
        height: 100%;
    }

    /*
     * The promo card follows the viewport, but remains
     * bounded by the event section.
     */
    .epic-event-page__top .epic-app-promo-sidebar__inner {
        position: sticky;
        top: 110px;
    }

}

/* Align sticky sidebar bottom with event-card bottom */
@media (min-width: 961px) {

    .epic-event-page__top .epic-app-promo-sidebar__inner {
        position: sticky;
        top: 110px;

        /*
         * When the sidebar reaches the end of its travel area,
         * keep its bottom aligned with the event section bottom.
         */
        bottom: 0;
    }

}

/* =========================================================
   Event sidebar — sticky card bounded by event row
   ========================================================= */

@media (min-width: 961px) {

    .epic-event-page__top {
        align-items: start;
    }

    .epic-event-page__top .epic-app-promo-sidebar {
        position: sticky;
        top: 110px;

        align-self: start;
        height: auto;

        padding-top: 0;
    }

    .epic-event-page__top .epic-app-promo-sidebar__inner {
        position: static;
        top: auto;
        bottom: auto;
    }

}

/* Event card defines the exact bottom boundary for sticky sidebar */
.epic-event-page__main .epic-fans-event-detail {
    margin-bottom: 0;
}

/* =========================================================
   App promo sidebar — centre store badges
   ========================================================= */

.epic-app-promo-sidebar .wp-block-image,
.epic-app-promo-sidebar .wp-block-kadence-image {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center;
}

.epic-app-promo-sidebar .wp-block-image a,
.epic-app-promo-sidebar .wp-block-kadence-image a {
    display: inline-block;
    width: auto;
}

.epic-app-promo-sidebar .wp-block-image img,
.epic-app-promo-sidebar .wp-block-kadence-image img {
    display: block;
    width: auto;
    margin-left: auto;
    margin-right: auto;
}

/* If the existing app-store-badges wrapper is used in the sidebar */
.epic-app-promo-sidebar .app-store-badges {
    justify-content: center !important;
}

/* App promo sidebar — store badge hover lift */
@media (hover: hover) and (pointer: fine) {

    .epic-app-promo-sidebar .wp-block-image a,
    .epic-app-promo-sidebar .wp-block-kadence-image a {
        transition: transform 0.18s ease;
    }

    .epic-app-promo-sidebar .wp-block-image a:hover,
    .epic-app-promo-sidebar .wp-block-kadence-image a:hover {
        transform: translateY(-2px);
    }

}

/* =========================================================
   Mobile app promo drawer
   ========================================================= */

.epic-app-promo-mobile {
    display: none;
}

@media (max-width: 960px) {

    /*
     * Desktop sidebar disappears completely.
     */
    .epic-app-promo-sidebar {
        display: none;
    }

    .epic-app-promo-mobile {
        position: fixed;
        z-index: 9990;

        left: 0;
        right: 0;
        bottom: 0;

        display: block;

        padding-bottom: env(safe-area-inset-bottom, 0);

        pointer-events: none;
    }

    .epic-app-promo-mobile__toggle {
        position: relative;
        z-index: 2;

        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;

        width: 100%;
        min-height: 58px;

        padding:
            12px
            max(20px, env(safe-area-inset-right))
            12px
            max(20px, env(safe-area-inset-left));

        background: #FFFFFF;
        border: 0;
        border-top: 1px solid #E4DDD6;

        box-shadow:
            0 -8px 28px rgba(16, 24, 32, 0.12);

        color: #171717;

        cursor: pointer;

        pointer-events: auto;
    }

    .epic-app-promo-mobile__toggle-text {
        font-family: Geist, Arial, sans-serif;
        font-size: 15px;
        line-height: 1.3;
        font-weight: 800;
    }

    .epic-app-promo-mobile__toggle-icon {
        flex: 0 0 auto;

        font-size: 13px;

        transition: transform 0.22s ease;
    }

    .epic-app-promo-mobile.is-open
    .epic-app-promo-mobile__toggle-icon {
        transform: rotate(180deg);
    }

    .epic-app-promo-mobile__panel {
        position: absolute;

        left: 0;
        right: 0;
        bottom: 58px;

        max-height: min(72vh, 620px);

        overflow-y: auto;

        padding:
            18px
            max(20px, env(safe-area-inset-right))
            22px
            max(20px, env(safe-area-inset-left));

        background: #FFFFFF;

        border-top: 1px solid #E4DDD6;

        box-shadow:
            0 -14px 34px rgba(16, 24, 32, 0.14);

        transform: translateY(100%);
        opacity: 0;
        visibility: hidden;

        transition:
            transform 0.24s ease,
            opacity 0.18s ease,
            visibility 0.24s ease;

        pointer-events: auto;
    }

    .epic-app-promo-mobile.is-open
    .epic-app-promo-mobile__panel {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }

    .epic-app-promo-mobile__panel-inner {
        width: min(100%, 360px);
        margin-inline: auto;
    }

    /*
     * Reuse sidebar presentation in expanded mobile panel.
     */
    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-eyebrow,
    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-title,
    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-copy {
        text-align: center;
    }

    .epic-app-promo-mobile__panel-inner
    .wp-block-image,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center;
    }

    .epic-app-promo-mobile__panel-inner
    .wp-block-image a,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image a {
        display: inline-block;
        width: auto;
    }

    .epic-app-promo-mobile__panel-inner
    .wp-block-image img,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image img {
        display: block;
        width: auto;
        margin-inline: auto;
    }

    /*
     * Prevent the fixed strip covering the final page content.
     */
    body:not(.home) main {
        padding-bottom: 74px;
    }

}

/* =========================================================
   Mobile app promo — Forest strip + sidebar styling
   ========================================================= */

@media (max-width: 960px) {

    /* Forest-red collapsed strip */
    .epic-app-promo-mobile__toggle {
        background: #C51F2D;
        border-top-color: #A71925;
        color: #FFFFFF;

        box-shadow:
            0 -8px 28px rgba(16, 24, 32, 0.16);
    }

    .epic-app-promo-mobile__toggle-text,
    .epic-app-promo-mobile__toggle-icon {
        color: #FFFFFF;
    }

    /*
     * Expanded content uses the same visual language
     * as the desktop sidebar.
     */
    .epic-app-promo-mobile__panel {
        padding: 0;
    }

    .epic-app-promo-mobile__panel-inner {
        width: min(100%, 360px);
        margin-inline: auto;
        padding: 26px 24px 28px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-eyebrow {
        margin: 0 0 8px;

        color: #8A7668;

        font-family: Geist, Arial, sans-serif;
        font-size: 11px;
        line-height: 1.2;
        font-weight: 900;
        letter-spacing: 0.14em;

        text-align: center;
        text-transform: uppercase;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-title {
        margin: 0 0 12px;

        font-family: Georgia, "Times New Roman", serif;
        font-size: 23px;
        line-height: 1.15;
        font-weight: 700;

        text-align: center;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-copy {
        margin: 0 0 20px;

        color: #667078;

        font-family: Geist, Arial, sans-serif;
        font-size: 15px;
        line-height: 1.55;

        text-align: center;
    }

    /* Centre Gutenberg/Kadence images exactly as in sidebar */
    .epic-app-promo-mobile__panel-inner
    .wp-block-image,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center;
    }

    .epic-app-promo-mobile__panel-inner
    .wp-block-image a,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image a {
        display: inline-block;
        width: auto;
    }

    .epic-app-promo-mobile__panel-inner
    .wp-block-image img,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image img {
        display: block;
        width: auto;
        max-width: 100%;
        height: auto;

        margin-left: auto;
        margin-right: auto;
    }

    .epic-app-promo-mobile__panel-inner
    .app-store-badges {
        justify-content: center !important;
    }

}

/* Mobile promo refinements */
@media (max-width: 960px) {

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-title {
        font-size: 26px;
    }

    .epic-app-promo-mobile__toggle {
        min-height: 44px;

        padding:
            8px
            max(18px, env(safe-area-inset-right))
            8px
            max(18px, env(safe-area-inset-left));
    }

    .epic-app-promo-mobile__toggle-text {
        font-size: 14px;
        line-height: 1.2;
    }

    .epic-app-promo-mobile__toggle-icon {
        font-size: 11px;
    }

    .epic-app-promo-mobile__panel {
        bottom: 44px;
    }

}

/* Mobile promo panel — clearer boundary + more compact artwork */
@media (max-width: 960px) {

    .epic-app-promo-mobile__panel {
        border-top: 4px solid #C51F2D;
    }

    /*
     * Main phone/mock-up image only.
     * Keep store badges at their normal size.
     */
    .epic-app-promo-mobile__panel-inner
    .wp-block-image:not(.app-store-badges .wp-block-image)
    img,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image:not(.app-store-badges .wp-block-kadence-image)
    img {
        max-height: 275px;
        width: auto;
        object-fit: contain;
    }

    /* Slightly tighten vertical spacing in the expanded panel */
    .epic-app-promo-mobile__panel-inner {
        padding-top: 20px;
        padding-bottom: 20px;
    }

}

/* Mobile promo panel — compact fit */
@media (max-width: 960px) {

    .epic-app-promo-mobile__panel {
        border-top: 2px solid #C51F2D;
    }

    .epic-app-promo-mobile__panel-inner {
        padding-top: 14px;
        padding-bottom: 14px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-eyebrow {
        margin-bottom: 5px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-title {
        margin-bottom: 8px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-copy {
        margin-bottom: 12px;
        line-height: 1.45;
    }

    /* Main phone/mock-up image */
    .epic-app-promo-mobile__panel-inner
    .wp-block-image:first-of-type img,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image:first-of-type img {
        max-height: 230px;
        width: auto;
        object-fit: contain;
    }

    /* Tighten gaps between Gutenberg blocks */
    .epic-app-promo-mobile__panel-inner
    .wp-block-image,
    .epic-app-promo-mobile__panel-inner
    .wp-block-kadence-image {
        margin-top: 6px !important;
        margin-bottom: 6px !important;
    }

}

/* Mobile promo — fit complete panel within phone viewport */
@media (max-width: 960px) {

    .epic-app-promo-mobile__panel-inner {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    /* Phone mock-up */
    .epic-app-promo-mobile__panel-inner
    .app-promo-phone-image img {
        width: auto !important;
        height: auto !important;
        max-height: 190px !important;
        object-fit: contain;
    }

    .epic-app-promo-mobile__panel-inner
    .app-promo-phone-image {
        margin-top: 5px !important;
        margin-bottom: 8px !important;
    }

    /* Slightly tighter copy */
    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-copy {
        margin-bottom: 10px;
        font-size: 14px;
        line-height: 1.4;
    }

    /* Store badges side-by-side */
    .epic-app-promo-mobile__panel-inner
    .app-store-badges {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        width: 100%;
    }

    .epic-app-promo-mobile__panel-inner
    .app-store-badges
    .wp-block-image,
    .epic-app-promo-mobile__panel-inner
    .app-store-badges
    .wp-block-kadence-image {
        flex: 0 1 auto !important;
        width: auto !important;
        margin: 0 !important;
    }

    .epic-app-promo-mobile__panel-inner
    .app-store-badges img {
        width: auto !important;
        height: 38px !important;
        max-height: 38px !important;
    }

}

/* =========================================================
   Mobile app promo — exact Gutenberg structure
   ========================================================= */

@media (max-width: 960px) {

    /* Two-column area allows the store badges to sit side-by-side */
    .epic-app-promo-mobile__panel-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 8px;
        row-gap: 6px;

        padding: 12px 18px 14px;
    }

    /* Main content group spans the full panel width */
    .epic-app-promo-mobile__panel-inner > .wp-block-group {
        grid-column: 1 / -1;
    }

    /* Phone mock-up: image inside the main content group */
    .epic-app-promo-mobile__panel-inner
    > .wp-block-group
    .wp-block-image img {
        width: auto !important;
        height: auto !important;
        max-height: 170px !important;
        object-fit: contain;
    }

    .epic-app-promo-mobile__panel-inner
    > .wp-block-group
    .wp-block-image {
        margin-top: 4px !important;
        margin-bottom: 8px !important;
    }

    /* Tighten copy spacing */
    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-eyebrow {
        margin-bottom: 4px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-title {
        margin-bottom: 6px;
    }

    .epic-app-promo-mobile__panel-inner
    .epic-app-promo-copy {
        margin-bottom: 6px;
        font-size: 14px;
        line-height: 1.4;
    }

    /*
     * The two store badge figures are direct children
     * of panel-inner, after the main Group.
     */
    .epic-app-promo-mobile__panel-inner
    > figure.wp-block-image {
        width: 100% !important;
        margin: 0 !important;
        text-align: center;
    }

    .epic-app-promo-mobile__panel-inner
    > figure.wp-block-image a {
        display: block;
        width: 100%;
    }

    .epic-app-promo-mobile__panel-inner
    > figure.wp-block-image img {
        width: 100% !important;
        max-width: 150px !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 auto;
    }

}

/* Event-page contextual intro above event card/sidebar */
.epic-event-page__intro {
    margin: 0 0 18px;
}

.epic-event-page__intro > :first-child {
    margin-top: 0;
}

.epic-event-page__intro > :last-child {
    margin-bottom: 0;
}

/* Event page — back to timeline link */
.event-back-to-timeline {
    margin: 6px 0 0;

    font-size: 14px;
    line-height: 1.4;
}

.event-back-to-timeline a {
    color: #667078;
    font-weight: 600;
    text-decoration: none;
}

.event-back-to-timeline a:hover,
.event-back-to-timeline a:focus {
    color: #C51F2D;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Event page — breadcrumb typography */
.event-back-to-timeline,
.event-back-to-timeline a {
    font-family: Geist, Arial, sans-serif !important;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0;
}

/* Event page — breadcrumb hover */
.event-back-to-timeline a:hover,
.event-back-to-timeline a:focus {
    color: #C51F2D !important;
}

/* Homepage timeline spacing */
.home main.site-shell {
    padding-top: 48px;
    padding-bottom: 72px;
}

@media (max-width: 800px) {
    .home main.site-shell {
        padding-top: 32px;
        padding-bottom: 48px;
    }
}

/* =========================================================
   Property-site header branding
   ========================================================= */

/*
 * Default property accent.
 * Individual property sites can override this later.
 */
body {
    --property-accent: #C51F2D;
}

/* Property sites: strong branded header */
body:not(.network-admin)
.site-header:has(.site-brand__name--property) {
    background: var(--property-accent);
    border-bottom-color: var(--property-accent);
}

/* Property-site name */
.site-header
.site-brand__name--property {
    color: #FFFFFF;
}

.site-header
.site-brand__name--property span {
    color: #FFFFFF;
}

/* Primary navigation */
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a {
    color: rgba(255, 255, 255, 0.92);
}

.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:hover,
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:focus {
    color: #FFFFFF;
}

/* Mobile navigation button */
.site-header:has(.site-brand__name--property)
.site-nav-toggle span {
    background: #FFFFFF;
}

/* Keep dropdowns readable */
.site-header:has(.site-brand__name--property)
.site-nav__list .sub-menu {
    background: #FFFFFF;
    border-color: #E4DDD6;
}

.site-header:has(.site-brand__name--property)
.site-nav__list .sub-menu a {
    color: #30383D;
}

.site-header:has(.site-brand__name--property)
.site-nav__list .sub-menu a:hover,
.site-header:has(.site-brand__name--property)
.site-nav__list .sub-menu a:focus {
    color: var(--property-accent);
    background: #FAF8F3;
}

/* Property header title — match app typography */
.site-header
.site-brand__name--property {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
}

/* Property header logo size */
.site-header .site-brand__logo-image {
    width: 46px;
    height: 46px;
    object-fit: contain;
}

.site-header .site-brand {
    gap: 0.8rem;
}

/* Property footer title — match header typography */
.site-footer
.site-brand__name--property,
.site-footer
.site-brand__name--property span {
    color: #FFFFFF !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
}

/* Drawer event images — match event-page rounded corners */
.epic-fans-event-drawer__event-image img {
    border-radius: 12px;
}

/* Drawer images — force visible rounded clipping */
.epic-fans-event-drawer__event-image img {
    border-radius: 12px;
    clip-path: inset(0 round 12px);
}

/* Event images — consistent visible corner rounding */
.epic-fans-event-detail__image img,
.epic-fans-event-drawer__event-image img {
    border-radius: 16px !important;
    clip-path: inset(0 round 16px);
}

/* Drawer images — radius follows actual visible image bounds */
.epic-fans-event-drawer__event-image img {
    display: block;

    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 420px;

    margin-left: auto;
    margin-right: auto;

    object-fit: contain;
    border-radius: 12px !important;
    clip-path: none;
}

/* Homepage hero — break out of site-shell to full viewport width */
.home .forest-home-hero {
    width: 100vw;
    max-width: none !important;

    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* Homepage Forest hero — full-bleed background */
.home #forest-home-hero {
    width: 100vw;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* =========================================================
   Property header — light background with Forest-red branding
   ========================================================= */

.site-header:has(.site-brand__name--property) {
    background: #FAF8F3;
    border-bottom-color: #D7DBDE;
}

.site-header
.site-brand__name--property,
.site-header
.site-brand__name--property span {
    color: #C51F2D !important;
}

/* Primary navigation on light header */
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a {
    color: #30383D;
}

.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:hover,
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:focus,
.site-header:has(.site-brand__name--property)
.site-nav__list > li.current-menu-item > a {
    color: #C51F2D;
}

/* Mobile hamburger */
.site-header:has(.site-brand__name--property)
.site-nav-toggle span {
    background: #C51F2D;
}

/* Property header — final light treatment */
body:not(.network-admin)
.site-header:has(.site-brand__name--property) {
    background: #FAF8F3 !important;
    border-bottom: 1px solid #D7DBDE !important;
}

body:not(.network-admin)
.site-header
.site-brand__name--property,
body:not(.network-admin)
.site-header
.site-brand__name--property span {
    color: #C51F2D !important;
}

body:not(.network-admin)
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a {
    color: #30383D !important;
}

body:not(.network-admin)
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:hover,
body:not(.network-admin)
.site-header:has(.site-brand__name--property)
.site-nav__list > li > a:focus,
body:not(.network-admin)
.site-header:has(.site-brand__name--property)
.site-nav__list > li.current-menu-item > a {
    color: #C51F2D !important;
}

body:not(.network-admin)
.site-header:has(.site-brand__name--property)
.site-nav-toggle span {
    background: #C51F2D !important;
}

/* Homepage hero starts directly beneath header */
.home main.site-shell {
    padding-top: 0;
}

@media (max-width: 800px) {
    .home main.site-shell {
        padding-top: 0;
    }
}

/* =========================================================
   Homepage hero — daily featured event
   ========================================================= */

.home #forest-home-hero
.epic-home-featured-event {
    width: min(100%, 330px);
    margin: auto 0 auto auto;
    padding: 24px 24px 22px;

    color: #FFFFFF;

    background: rgba(31, 0, 8, 0.48);
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 16px;

    box-shadow:
        0 16px 38px rgba(16, 0, 4, 0.18);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.home #forest-home-hero
.epic-home-featured-event__eyebrow {
    margin: 0 0 12px;

    color: rgba(255, 255, 255, 0.72);

    font-family: Geist, Arial, sans-serif;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: 0.12em;

    text-transform: uppercase;
}

.home #forest-home-hero
.epic-home-featured-event__date {
    margin: 0 0 8px;

    color: #FFFFFF;

    font-family: Geist, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;
}

.home #forest-home-hero
.epic-home-featured-event__title {
    margin: 0 0 14px;

    color: #FFFFFF;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    line-height: 1.15;
    font-weight: 700;
}

.home #forest-home-hero
.epic-home-featured-event__category {
    display: inline-flex;
    align-items: center;

    min-height: 24px;
    margin: 0 0 18px;
    padding: 0 9px;

    background:
        color-mix(
            in srgb,
            var(--featured-event-accent) 82%,
            transparent
        );

    border-radius: 999px;

    color: #FFFFFF;

    font-family: Geist, Arial, sans-serif;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
}

.home #forest-home-hero
.epic-home-featured-event__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    color: #FFFFFF !important;

    font-family: Geist, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 800;

    text-decoration: none !important;
}

.home #forest-home-hero
.epic-home-featured-event__link:hover,
.home #forest-home-hero
.epic-home-featured-event__link:focus {
    color: #F6C64B !important;
}

@media (max-width: 800px) {

    .home #forest-home-hero
    .epic-home-featured-event {
        width: 100%;
        max-width: 360px;
        margin: 26px 0 0;
        padding: 20px;
    }

    .home #forest-home-hero
    .epic-home-featured-event__title {
        font-size: 22px;
    }

}
/* Homepage hero featured event refinements */
.home #forest-home-hero .epic-home-featured-event {
    width: min(100%, 430px);
    margin: auto;
    padding: 30px 32px 28px;

    color: #FFFFFF;

    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.22) 0%,
        rgba(255, 255, 255, 0.14) 52%,
        rgba(255, 255, 255, 0.08) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 22px;

    box-shadow:
        0 18px 45px rgba(16, 0, 4, 0.14);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.home #forest-home-hero .epic-home-featured-event__eyebrow {
    margin: 0 0 12px;
    color: rgba(255, 255, 255, 0.78);
    font-family: Geist, Arial, sans-serif;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home #forest-home-hero .epic-home-featured-event__date {
    margin: 0 0 10px;
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 800;
}

.home #forest-home-hero .epic-home-featured-event__title {
    margin: 0 0 14px;
    color: #FFFFFF;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.08;
    font-weight: 700;
}

.home #forest-home-hero .epic-home-featured-event__intro {
    margin: 0 0 18px;
    color: rgba(255, 255, 255, 0.95);
    font-family: Geist, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 500;
}

.home #forest-home-hero .epic-home-featured-event__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.home #forest-home-hero .epic-home-featured-event__category {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--featured-event-accent) 78%, white 22%);
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    white-space: nowrap;
}

.home #forest-home-hero .epic-home-featured-event__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #FFFFFF;
    font-family: Geist, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 800;
    text-decoration: none;
}

.home #forest-home-hero .epic-home-featured-event__link:hover,
.home #forest-home-hero .epic-home-featured-event__link:focus {
    opacity: 0.82;
}

@media (max-width: 1024px) {
    .home #forest-home-hero .epic-home-featured-event {
        width: min(100%, 460px);
        margin: 26px auto 0;
    }
}

@media (max-width: 767px) {
    .home #forest-home-hero .epic-home-featured-event {
        padding: 24px 22px 22px;
        border-radius: 18px;
    }

    .home #forest-home-hero .epic-home-featured-event__title {
        font-size: 20px;
    }

    .home #forest-home-hero .epic-home-featured-event__intro {
        font-size: 15px;
    }
}
