:root {
    --hfc-navy: #05005f;
    --hfc-navy-deep: #030044;
    --hfc-white: #ffffff;
    --hfc-yellow: #ffd95a;
}

body.hfc-inner-page-template-active {
    background: #ffffff !important;
}

body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-title-area,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-title-section,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-banner,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-hero,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .hero-banner,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .hero-section,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .inner-banner,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .inner-hero,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .subpage-banner,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-hero-section,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .inner-page-hero,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .theme-page-header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .main-title-section,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .banner-wrapper,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .breadcrumb-area,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .breadcumb-area,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .breadcumb-wrapper,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .breadcrumb-wrapper,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .titlebar,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .title-bar,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-title-wrap,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .page-title-wrapper,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .elementor-page-title,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .entry-header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .site-main > header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .site-content > header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .elementor-location-header + .page-header,
body.hfc-inner-page-template-active.hfc-hide-existing-hero .elementor-location-header .elementor-section:has(.elementor-widget-theme-page-title),
body.hfc-inner-page-template-active.hfc-hide-existing-hero .elementor-location-header .elementor-section:has(.elementor-widget-theme-post-title),
body.hfc-inner-page-template-active.hfc-hide-existing-hero .elementor-location-header .elementor-section:has(.elementor-widget-breadcrumbs) {
    display: none !important;
}

.hfc-inner-page-shell,
.hfc-inner-page-shell * {
    box-sizing: border-box !important;
}

.hfc-inner-page-shell {
    --hfc-page-max: 1400px;
    --hfc-sidebar-max: 300px;
    --hfc-radius: 34px;
    --hfc-shadow: 0 14px 34px rgba(10, 16, 47, 0.10);
    width: 100% !important;
    margin: 0 auto !important;
    padding: clamp(24px, 3vw, 52px) clamp(26px, 4vw, 70px) clamp(46px, 4vw, 72px) !important;
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

.hfc-inner-hero {
    width: 100% !important;
    max-width: var(--hfc-page-max) !important;
    margin: 0 auto clamp(30px, 3vw, 54px) !important;
    display: grid !important;
    grid-template-columns: minmax(300px, 0.44fr) minmax(360px, 0.56fr) !important;
    gap: clamp(18px, 1.8vw, 28px) !important;
    align-items: stretch !important;
}

.hfc-inner-hero-card {
    min-height: clamp(300px, 26vw, 430px) !important;
    border-radius: var(--hfc-radius) !important;
    overflow: hidden !important;
    box-shadow: var(--hfc-shadow) !important;
}

.hfc-inner-hero-card--text {
    background: var(--hfc-navy) !important;
    color: var(--hfc-white) !important;
    padding: clamp(32px, 3.2vw, 54px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
}

.hfc-inner-breadcrumbs {
    position: relative !important;
    z-index: 5 !important;
    pointer-events: auto !important;
    margin: 0 0 clamp(46px, 4vw, 72px) !important;
    font-family: inherit !important;
    font-size: clamp(13px, 0.85vw, 15px) !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    color: rgba(255, 255, 255, 0.92) !important;
}

.hfc-inner-breadcrumbs a,
.hfc-inner-breadcrumbs span {
    color: inherit !important;
    text-decoration: none !important;
    pointer-events: auto !important;
}

.hfc-inner-breadcrumbs a:hover,
.hfc-inner-breadcrumbs a:focus-visible {
    color: var(--hfc-yellow) !important;
    outline: none !important;
}

.hfc-breadcrumb-separator {
    margin: 0 0.18em !important;
    opacity: 0.9 !important;
}

.hfc-inner-hero-copy {
    width: 100% !important;
    max-width: 680px !important;
}

.hfc-inner-parent-label {
    margin: 0 0 clamp(16px, 1.5vw, 26px) !important;
    color: rgba(255, 255, 255, 0.86) !important;
    font-family: inherit !important;
    font-size: clamp(14px, 0.95vw, 17px) !important;
    font-weight: 900 !important;
    letter-spacing: 0.22em !important;
    line-height: 1.25 !important;
}

.hfc-inner-page-title {
    margin: 0 0 clamp(18px, 2vw, 32px) !important;
    color: var(--hfc-white) !important;
    font-family: inherit !important;
    font-size: clamp(42px, 4vw, 66px) !important;
    line-height: 0.98 !important;
    font-weight: 900 !important;
    letter-spacing: -0.05em !important;
}

.hfc-inner-intro {
    margin: 0 !important;
    max-width: 680px !important;
    color: rgba(255, 255, 255, 0.9) !important;
    font-family: inherit !important;
    font-size: clamp(15px, 0.95vw, 17px) !important;
    line-height: 1.42 !important;
    font-weight: 500 !important;
}

.hfc-inner-hero-card--image {
    position: relative !important;
    background: var(--hfc-navy-deep) !important;
}

.hfc-inner-slideshow,
.hfc-inner-slide,
.hfc-inner-slide img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

.hfc-inner-slideshow {
    overflow: hidden !important;
    background: radial-gradient(circle at 60% 30%, rgba(255,255,255,0.13), transparent 32%), var(--hfc-navy-deep) !important;
}

.hfc-inner-slide {
    opacity: 0 !important;
    transform: scale(1.035) !important;
    transition: opacity 850ms ease, transform 6500ms ease !important;
}

.hfc-inner-slide.is-active {
    opacity: 1 !important;
    transform: scale(1) !important;
    z-index: 1 !important;
}

.hfc-inner-slide img {
    object-fit: cover !important;
    object-position: center !important;
}

.hfc-inner-slide-overlay {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    background: linear-gradient(90deg, rgba(4, 0, 88, 0.92) 0%, rgba(4, 0, 88, 0.60) 36%, rgba(4, 0, 88, 0.12) 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0.06)) !important;
    pointer-events: none !important;
}

.hfc-inner-slide-dots {
    position: absolute !important;
    left: clamp(28px, 3vw, 48px) !important;
    bottom: clamp(24px, 2.5vw, 38px) !important;
    z-index: 3 !important;
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
}

.hfc-inner-slide-dot {
    display: block !important;
    width: clamp(42px, 3.6vw, 58px) !important;
    height: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.67) !important;
    cursor: pointer !important;
    appearance: none !important;
    transition: background 180ms ease, transform 180ms ease !important;
}

.hfc-inner-slide-dot:hover,
.hfc-inner-slide-dot:focus-visible {
    transform: translateY(-1px) !important;
    outline: none !important;
    background: rgba(255, 255, 255, 0.9) !important;
}

.hfc-inner-slide-dot.is-active {
    background: var(--hfc-yellow) !important;
}

.hfc-inner-page-layout {
    width: 100% !important;
    max-width: var(--hfc-page-max) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(240px, var(--hfc-sidebar-max)) !important;
    gap: clamp(24px, 3vw, 48px) !important;
    align-items: start !important;
}

.hfc-inner-content-area {
    min-width: 0 !important;
    color: inherit !important;
    padding: 4px 0 0 !important;
}

.hfc-inner-content-area > .elementor,
.hfc-inner-content-area .elementor-section-wrap,
.hfc-inner-content-area .elementor-section,
.hfc-inner-content-area .elementor-container {
    max-width: 100% !important;
}

.hfc-inner-content-area .elementor-widget-sidebar,
.hfc-inner-content-area .elementor-widget-wp-widget-advanced_sidebar_menu,
.hfc-inner-content-area .wp-widget-advanced_sidebar_menu,
.hfc-inner-content-area .advanced-sidebar-menu,
.hfc-inner-content-area .widget-area,
.hfc-inner-content-area .sidebar {
    display: none !important;
}

.hfc-inner-content-area img {
    max-width: 100% !important;
    height: auto !important;
}

.hfc-inner-content-area > p:first-child,
.hfc-inner-content-area > h2:first-child,
.hfc-inner-content-area > h3:first-child {
    margin-top: 0 !important;
}

.hfc-inner-sidebar {
    position: sticky !important;
    top: 24px !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: var(--hfc-sidebar-max) !important;
    justify-self: end !important;
    font-size: 16px !important;
    line-height: 1.28 !important;
}

.hfc-inner-sidebar-panel {
    background: var(--hfc-navy) !important;
    color: var(--hfc-white) !important;
    border-radius: 0 0 34px 34px !important;
    padding: 26px 26px 30px !important;
    box-shadow: var(--hfc-shadow) !important;
    width: 100% !important;
}

.hfc-sidebar-main-title,
.hfc-inner-widget-title {
    margin: 0 0 18px !important;
    color: var(--hfc-white) !important;
    font-family: inherit !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

.hfc-sidebar-widget-area,
.hfc-auto-section-menu {
    width: 100% !important;
}

.hfc-inner-sidebar ul,
.hfc-inner-sidebar .advanced-sidebar-menu,
.hfc-inner-sidebar .advanced-sidebar-menu ul,
.hfc-inner-sidebar .widget_pages ul,
.hfc-inner-sidebar .wp-block-page-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.hfc-inner-sidebar li,
.hfc-auto-section-menu li,
.hfc-inner-sidebar .advanced-sidebar-menu li,
.hfc-inner-sidebar .widget_pages li,
.hfc-inner-sidebar .page_item {
    margin: 0 !important;
    padding: 0 !important;
    border-top: 1px dotted rgba(255, 255, 255, 0.26) !important;
}

.hfc-inner-sidebar li:last-child,
.hfc-auto-section-menu li:last-child,
.hfc-inner-sidebar .advanced-sidebar-menu li:last-child,
.hfc-inner-sidebar .widget_pages li:last-child {
    border-bottom: 1px dotted rgba(255, 255, 255, 0.26) !important;
}

.hfc-inner-sidebar a,
.hfc-inner-sidebar .advanced-sidebar-menu a,
.hfc-inner-sidebar .widget_pages a,
.hfc-inner-sidebar .page_item a {
    display: block !important;
    padding: 12px 0 !important;
    color: rgba(255, 255, 255, 0.92) !important;
    text-decoration: none !important;
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
    letter-spacing: -0.015em !important;
    transition: color 180ms ease, transform 180ms ease !important;
}

.hfc-inner-sidebar a:hover,
.hfc-inner-sidebar a:focus-visible,
.hfc-inner-sidebar .current_page_item > a,
.hfc-inner-sidebar .current-page-ancestor > a,
.hfc-inner-sidebar .is-current > a,
.hfc-inner-sidebar .advanced-sidebar-menu .current_page_item > a,
.hfc-inner-sidebar .advanced-sidebar-menu .current_page_ancestor > a {
    color: var(--hfc-yellow) !important;
    transform: translateX(4px) !important;
    outline: none !important;
}

.hfc-inner-sidebar .children,
.hfc-inner-sidebar .sub-menu,
.hfc-inner-sidebar .advanced-sidebar-menu ul ul {
    padding-left: 14px !important;
    border-left: 2px solid rgba(255, 255, 255, 0.14) !important;
}

.hfc-inner-sidebar .children a,
.hfc-inner-sidebar .sub-menu a,
.hfc-inner-sidebar .advanced-sidebar-menu ul ul a {
    font-size: 15px !important;
    font-weight: 800 !important;
}

@media (max-width: 1180px) {
    .hfc-inner-hero {
        grid-template-columns: 1fr !important;
    }

    .hfc-inner-hero-card {
        min-height: 340px !important;
    }

    .hfc-inner-hero-card--image {
        min-height: 300px !important;
    }

    .hfc-inner-page-layout {
        grid-template-columns: minmax(0, 1fr) minmax(230px, var(--hfc-sidebar-max)) !important;
        gap: 32px !important;
    }
}

@media (max-width: 900px) {
    .hfc-inner-page-shell {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .hfc-inner-hero-card,
    .hfc-inner-sidebar-panel {
        border-radius: 28px !important;
    }

    .hfc-inner-page-layout {
        grid-template-columns: 1fr !important;
    }

    .hfc-inner-sidebar {
        position: relative !important;
        top: auto !important;
        order: 2 !important;
        max-width: var(--hfc-sidebar-max) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .hfc-inner-content-area {
        order: 1 !important;
    }

    .hfc-inner-sidebar-panel {
        padding: 24px 24px 28px !important;
    }

    .hfc-inner-slide-dots {
        left: 28px !important;
        bottom: 24px !important;
        gap: 10px !important;
    }

    .hfc-inner-slide-dot {
        width: 42px !important;
        height: 7px !important;
    }
}

@media (max-width: 560px) {
    .hfc-inner-page-shell {
        padding-top: 12px !important;
    }

    .hfc-inner-hero-card--text {
        padding: 28px 24px !important;
        min-height: 315px !important;
    }

    .hfc-inner-breadcrumbs {
        margin-bottom: 42px !important;
    }

    .hfc-inner-parent-label {
        letter-spacing: 0.14em !important;
    }

    .hfc-inner-page-title {
        font-size: clamp(36px, 10vw, 52px) !important;
    }
}


/* Strong Advanced Sidebar Pro reset, stops the widget inheriting oversized heading styles from the theme. */
.hfc-inner-sidebar .widget,
.hfc-inner-sidebar .widget *:not(svg):not(path) {
    font-family: inherit !important;
}

.hfc-inner-sidebar .widget,
.hfc-inner-sidebar .advanced-sidebar-menu,
.hfc-inner-sidebar .advanced-sidebar-menu li,
.hfc-inner-sidebar .widget_pages,
.hfc-inner-sidebar .widget_pages li,
.hfc-inner-sidebar .hfc-auto-section-menu,
.hfc-inner-sidebar .hfc-auto-section-menu li {
    font-size: 16px !important;
    line-height: 1.28 !important;
}

.hfc-inner-sidebar h1,
.hfc-inner-sidebar h2,
.hfc-inner-sidebar h3,
.hfc-inner-sidebar h4,
.hfc-inner-sidebar h5,
.hfc-inner-sidebar h6 {
    font-size: 24px !important;
    line-height: 1.12 !important;
    margin-top: 0 !important;
}


/* v1.3: the small page excerpt/bio is no longer shown in the hero. */
.hfc-inner-intro {
    display: none !important;
}

/* Keeps the split hero aligned with the main site rather than sitting hard against the browser edge. */
@media (min-width: 1200px) {
    .hfc-inner-page-shell {
        padding-left: max(52px, calc((100vw - var(--hfc-page-max)) / 2)) !important;
        padding-right: max(52px, calc((100vw - var(--hfc-page-max)) / 2)) !important;
    }
}
