/* Fonts */

@font-face {
    font-family: 'Cinzel';
    src: url('../fonts/cinzel.woff2') format('woff2');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/eb-garamond.woff2') format('woff2');
    font-weight: 400 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/eb-garamond-italic.woff2') format('woff2');
    font-weight: 400 800;
    font-style: italic;
    font-display: swap;
}


/* Tokens */

:root {
    --bh-midnight: #0a1631;
    --bh-royal: #0f1f45;
    --bh-banner: #16295a;
    --bh-banner-border: #2f4785;
    --bh-line-on-dark: #22386e;
    --bh-gold: #c9962f;
    --bh-gold-leaf: #e2b65a;
    --bh-old-gold: #7d5a16;
    --bh-parchment: #f4ead6;
    --bh-parchment-light: #faf5ea;
    --bh-parchment-shade: #ece0c6;
    --bh-parchment-dark: #e3d2ad;
    --bh-parchment-line: #d9c49a;
    --bh-crimson: #7c1e1e;
    --bh-crimson-dark: #5e1414;
    --bh-ink: #1f1a14;
    --bh-sepia: #5a4e3e;
    --bh-text-on-dark: #ddd3bd;
    --bh-muted-on-dark: #c9bfa8;
    --bh-footer-text: #d8ccb2;

    --bh-font-display: 'Cinzel', Georgia, serif;
    --bh-font-body: 'EB Garamond', Garamond, Georgia, serif;

    --bh-gutter: clamp(1rem, 4vw, 2.5rem);
    --bh-hero-overlap: 6rem;

    --vo-color-black: var(--bh-ink);
    --vo-color-grey: var(--bh-parchment-shade);
    --vo-color-grey-light: var(--bh-parchment-light);
    --vo-color-grey-medium: var(--bh-sepia);
    --vo-color-grey-dark: var(--bh-ink);
    --vo-color-primary: var(--bh-royal);
    --vo-color-primary-medium: var(--bh-banner);
    --vo-color-primary-dark: var(--bh-midnight);
    --vo-color-primary-light: var(--bh-gold-leaf);
    --vo-color-secondary: var(--bh-gold);
    --vo-color-secondary-medium: var(--bh-gold);
    --vo-color-secondary-dark: var(--bh-old-gold);
    --vo-color-secondary-light: var(--bh-gold-leaf);
    --vo-color-tertiary: var(--bh-parchment);
    --vo-color-tertiary-medium: var(--bh-parchment-shade);
    --vo-color-tertiary-light: var(--bh-parchment-light);
    --vo-color-accent: var(--bh-crimson);
    --vo-color-accent-medium: var(--bh-crimson);
    --vo-color-accent-light: var(--bh-crimson);
    --vo-color-success: var(--bh-parchment);
    --vo-color-alert: var(--bh-crimson);
    --vo-color-link: var(--bh-crimson);
    --vo-color-link-hover: var(--bh-crimson-dark);
    --vo-color-purple: var(--bh-royal);
    --vo-color-pink: var(--bh-crimson);
    --vo-color-cyan: var(--bh-gold-leaf);
    --vo-color-amber: var(--bh-crimson);
    --vo-color-teal: var(--bh-gold);

    --vo-font-size-small: 0.875rem;
    --vo-font-size-base: 1.125rem;
    --vo-font-size-base-medium: 1.1875rem;
    --vo-font-size-base-large: 1.25rem;
    --vo-font-size-base-xlarge: 1.25rem;
    --vo-font-size-lead: 1.25rem;
    --vo-font-size-h6: 1rem;
    --vo-font-size-h5: 1.125rem;
    --vo-font-size-h4: 1.25rem;
    --vo-font-size-h3: 1.5rem;
    --vo-font-size-h2: 1.875rem;
    --vo-font-size-h1: 2.25rem;
}

@media (min-width: 64em) {
    :root {
        --vo-font-size-base: 1.1875rem;
        --vo-font-size-base-medium: 1.25rem;
        --vo-font-size-base-large: 1.3125rem;
        --vo-font-size-base-xlarge: 1.375rem;
        --vo-font-size-lead: 1.375rem;
        --vo-font-size-h6: 1.125rem;
        --vo-font-size-h5: 1.25rem;
        --vo-font-size-h4: 1.5rem;
        --vo-font-size-h3: 2rem;
        --vo-font-size-h2: 2.75rem;
        --vo-font-size-h1: 3.5rem;
    }
}


/* Base */

body {
    background-color: var(--bh-parchment);
    color: var(--bh-ink);
    font-family: var(--bh-font-body);
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--bh-royal);
    font-family: var(--bh-font-display);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.15;
}

a {
    color: var(--bh-crimson);
}

a:hover {
    color: var(--bh-crimson-dark);
}

::selection {
    background-color: var(--bh-gold-leaf);
    color: var(--bh-royal);
}

:focus-visible {
    outline: 2px solid var(--bh-gold);
    outline-offset: 3px;
}


/* Buttons */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    min-height: 3rem;
    margin: 0;
    padding: 0 1.5rem;
    background-color: var(--bh-royal);
    background-image: none;
    border: 1px solid var(--bh-royal);
    border-radius: 0;
    box-shadow: inset 0 0 0 3px var(--bh-royal), inset 0 0 0 4px var(--bh-gold);
    color: var(--bh-parchment);
    font-family: var(--bh-font-display);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: left;
}

.button:link,
.button:visited {
    color: var(--bh-parchment);
}

.button:hover {
    background-color: var(--bh-banner);
    box-shadow: inset 0 0 0 3px var(--bh-banner), inset 0 0 0 4px var(--bh-gold-leaf);
    color: var(--bh-parchment);
    transform: none;
}

.button::after {
    content: '';
    flex: none;
    width: 1.125rem;
    height: 1.125rem;
    background-color: currentColor;
    -webkit-mask: url('../images/arrow.svg') center / contain no-repeat;
    mask: url('../images/arrow.svg') center / contain no-repeat;
    transition: transform 0.2s ease-in-out;
}

.button:hover::after {
    transform: translateX(0.25rem);
}

.button--transparent,
.button--transparent:link,
.button--transparent:visited {
    min-height: 2.75rem;
    padding: 0;
    background: none;
    border: 0;
    box-shadow: none;
    color: var(--bh-crimson);
    font-size: 0.8125rem;
    font-weight: 600;
}

.button--transparent:hover {
    background: none;
    box-shadow: none;
    color: var(--bh-crimson-dark);
}

.text-media__link .button::after {
    background-color: var(--bh-gold-leaf);
}

.hero-home__buttons .button,
.cta .cta__buttons .button,
.cta .cta__buttons .button:link,
.cta .cta__buttons .button:visited {
    min-height: 3rem;
    padding: 0 1.5rem;
    background-color: var(--bh-gold);
    border: 1px solid var(--bh-gold);
    box-shadow: none;
    color: var(--bh-midnight);
    font-size: 0.875rem;
    font-weight: 700;
}

.hero-home__buttons .button:hover,
.cta .cta__buttons .button:hover {
    background-color: var(--bh-gold-leaf);
    border-color: var(--bh-gold-leaf);
    box-shadow: none;
    color: var(--bh-midnight);
}

.latest-news__more-link .button,
.latest-news__more-link .button:link,
.latest-news__more-link .button:visited {
    min-height: 2.875rem;
    padding: 0 1.375rem;
    background: none;
    border-color: var(--bh-crimson);
    box-shadow: none;
    color: var(--bh-crimson);
    font-size: 0.8125rem;
}

.latest-news__more-link .button:hover {
    background-color: var(--bh-crimson);
    box-shadow: none;
    color: var(--bh-parchment);
}

.latest-news__more-link .button::after {
    content: none;
}


/* Header */

.header {
    margin-bottom: 0;
}

@media (min-width: 64em) {
    .header {
        margin-bottom: 0;
    }
}

.header__inner {
    background-color: var(--bh-midnight);
    border-bottom: 1px solid var(--bh-line-on-dark);
}

.header__top {
    align-items: center;
    gap: 1rem 2rem;
    padding: 1.125rem 0;
}

.header__branding,
.header__branding:hover {
    display: inline-flex;
    align-items: center;
    gap: 0.875rem;
    color: var(--bh-gold-leaf);
    text-decoration: none;
}

.header__branding .header__branding-icon {
    flex: none;
    width: 2.125rem;
    height: 2.25rem;
    color: var(--bh-gold);
}

.header__branding-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.header__branding-name {
    font-family: var(--bh-font-display);
    font-size: 1.375rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.header__branding-tagline {
    color: var(--bh-muted-on-dark);
    font-family: var(--bh-font-display);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.38em;
}

.header__search .search-form {
    width: 20rem;
    max-width: 100%;
}

.header .search-form input[type=search] {
    width: 100%;
    height: 2.75rem;
    padding: 0 0.875rem 0 2.75rem;
    background-color: var(--bh-royal);
    background-image: url('../images/search.svg');
    background-position: 0.875rem center;
    background-size: 1.125rem;
    border: 1px solid #3a5190;
    border-radius: 0;
    color: var(--bh-parchment);
    font-family: var(--bh-font-body);
    font-size: 1.0625rem;
}

.header .search-form input[type=search]::placeholder {
    color: rgba(244, 234, 214, 0.6);
}

.header .search-form input[type=search]:focus {
    border-color: var(--bh-gold);
    box-shadow: none;
}

.header__bottom {
    background-color: var(--bh-banner);
    border-bottom: 2px solid var(--bh-gold);
    color: var(--bh-parchment);
}

.primary-navigation__menu > li a {
    color: var(--bh-parchment);
    font-family: var(--bh-font-display);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-decoration: none;
}

.primary-navigation__menu > li.current-menu-item > a {
    background-color: transparent;
    color: var(--bh-gold-leaf);
}

.primary-navigation__menu > li > ul.sub-menu > li > a {
    font-family: var(--bh-font-display);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.primary-navigation__menu ul.sub-menu a:hover {
    color: var(--bh-gold-leaf);
}

@media (min-width: 64em) {
    .primary-navigation__menu > li > a {
        padding: 1rem 1rem 0.8125rem;
        border-bottom: 3px solid transparent;
    }

    .primary-navigation__menu > li > a:hover,
    .primary-navigation__menu > li.menu-item-has-children:hover > a {
        background-color: transparent;
        color: var(--bh-gold-leaf);
    }

    .primary-navigation__menu > li.current-menu-item > a,
    .primary-navigation__menu > li.current-menu-ancestor > a {
        border-bottom-color: var(--bh-gold-leaf);
        color: var(--bh-gold-leaf);
    }

    .primary-navigation__menu > li > ul.sub-menu {
        border-bottom: 2px solid var(--bh-gold);
    }
}

@media (max-width: 63.99em) {
    .header__bottom {
        background-color: var(--bh-midnight);
    }

    .header__section-toggle {
        background-color: var(--bh-midnight);
    }

    .header__section-toggle .header__branding {
        top: 50%;
        width: auto;
        height: auto;
        color: var(--bh-gold-leaf);
        transform: translateY(-50%);
    }

    .header__section-toggle .header__branding .header__branding-icon {
        width: 1.5rem;
        height: 1.625rem;
    }

    .header__section-toggle .header__branding-name {
        font-size: 1rem;
    }

    .header__section-toggle .header__branding-tagline {
        font-size: 0.625rem;
    }

    .hamburger__part {
        background-color: var(--bh-gold-leaf);
    }

    .primary-navigation {
        color: var(--bh-parchment);
    }

    .primary-navigation__menu > li > a {
        font-size: 1.0625rem;
    }

    .primary-navigation__menu > li.menu-item-has-children > a::after {
        background-color: var(--bh-gold-leaf);
        background-image: none;
        -webkit-mask: url('../images/chevron.svg') center / 1rem no-repeat;
        mask: url('../images/chevron.svg') center / 1rem no-repeat;
    }

    .header__search-mobile {
        padding: 0.75rem var(--bh-gutter);
        background-color: var(--bh-royal);
    }
}


/* Homepage hero */

.hero-home {
    min-height: 0;
    background-color: var(--bh-royal);
    background-image: none;
    color: var(--bh-parchment);
}

.hero-home__inner {
    display: grid;
    gap: 3rem 3.5rem;
    padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 6vw, 4.5rem);
}

@media (min-width: 64em) {
    .hero-home__inner:has(.hero-home__figure) {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
        align-items: center;
    }

    .hero-home__cards {
        grid-column: 1 / -1;
    }
}

.hero-home__content {
    gap: 1.375rem;
    max-width: 45rem;
}

.hero-home__title {
    order: 1;
    margin: 0;
    color: var(--bh-parchment);
    font-size: clamp(2.25rem, 4vw, 3.5rem);
    letter-spacing: 0.01em;
    line-height: 1.06;
}

.hero-home__subtitle {
    display: flex;
    align-items: center;
    gap: 1rem;
    order: 2;
    max-width: 28.75rem;
    margin: 0;
    color: var(--bh-gold-leaf);
    font-family: var(--bh-font-display);
    font-size: 2.125rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1;
}

.hero-home__subtitle::before,
.hero-home__subtitle::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--bh-gold);
}

.hero-home__description {
    order: 3;
    max-width: 33.75rem;
    margin: 0;
    color: var(--bh-text-on-dark);
    font-family: var(--bh-font-body);
    font-size: 1.3125rem;
    line-height: 1.55;
}

.hero-home__buttons {
    order: 4;
    margin-top: 0.375rem;
}

.hero-home__figure {
    margin: 0;
    background-color: var(--bh-midnight);
    border: 2px solid var(--bh-gold);
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.45);
}

.hero-home__image {
    display: block;
    width: 100%;
    height: auto;
}

.hero-home__caption,
.typography figcaption,
.typography .wp-element-caption {
    margin: 0;
    padding: 0.875rem 1.375rem;
    background-color: var(--bh-crimson);
    border-top: 2px solid var(--bh-gold);
    box-shadow: inset 0 0 0 4px var(--bh-crimson), inset 0 0 0 5px rgba(226, 182, 90, 0.55);
    color: var(--bh-parchment);
    font-family: var(--bh-font-body);
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
}

.hero-home__cards {
    position: relative;
    z-index: 1;
    margin-top: 0;
}

/* The cards hang over the hero's bottom edge; the page builder makes room for them below */
@media (min-width: 40em) {
    .hero-home__cards {
        margin-bottom: calc(-1 * (var(--bh-hero-overlap) + clamp(3rem, 6vw, 4.5rem)));
    }

    .page-template-template-homepage .hero-home ~ .entry__container {
        padding-top: var(--bh-hero-overlap);
    }
}

.card {
    padding: 1.75rem;
    background-color: var(--bh-banner);
    background-image: none;
    border: 1px solid var(--bh-banner-border);
    box-shadow: 0 18px 40px rgba(5, 12, 30, 0.35);
    color: var(--bh-parchment);
}

.card:hover {
    background-image: none;
    border-color: var(--bh-gold);
}

.card__content {
    gap: 0.75rem;
    padding-bottom: 1rem;
}

.card__content::before {
    content: '';
    order: 0;
    width: 1.5rem;
    height: 1.625rem;
    background-color: var(--bh-gold);
    -webkit-mask: url('../images/fleur.svg') center / contain no-repeat;
    mask: url('../images/fleur.svg') center / contain no-repeat;
}

.card__title {
    margin: 0;
    color: var(--bh-gold-leaf);
    font-size: 1.375rem;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.card__subtitle {
    margin: 0;
    color: var(--bh-muted-on-dark);
    font-family: var(--bh-font-display);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
}

.card__description {
    color: var(--bh-text-on-dark);
    font-size: 1.125rem;
    line-height: 1.5;
}

.card .button--transparent,
.card .button--transparent:link,
.card .button--transparent:visited,
.card .button--transparent:hover {
    color: var(--bh-gold-leaf);
}

/* On phones the parent shows the hero CTAs as bricks above the hero; move them below it */
.page-template-template-homepage .entry:has(> .hero-home) {
    display: flex;
    flex-direction: column;
}

.homepage-ctas-mobile {
    order: 1;
    padding: 0 var(--bh-gutter) 2.5rem;
    background-color: var(--bh-royal);
}

.page-template-template-homepage .entry:has(> .hero-home) > .entry__container {
    order: 2;
}

.homepage-ctas-mobile .grid {
    gap: 1rem;
}

.homepage-ctas-mobile .brick {
    padding: 1.25rem 1.5rem;
    background-color: var(--bh-banner);
    background-image: none;
    border: 1px solid var(--bh-banner-border);
    border-radius: 0;
    box-shadow: none;
    color: var(--bh-parchment);
}

.homepage-ctas-mobile .brick__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}

.homepage-ctas-mobile .brick__title {
    color: var(--bh-gold-leaf);
    font-size: 1.125rem;
}

.homepage-ctas-mobile .brick__text {
    color: var(--bh-text-on-dark);
}

.homepage-ctas-mobile .brick .button--transparent,
.homepage-ctas-mobile .brick .button--transparent:link,
.homepage-ctas-mobile .brick .button--transparent:visited {
    color: var(--bh-gold-leaf);
}


/* Page hero */

.hero {
    margin-bottom: clamp(3rem, 6vw, 5rem);
    background-color: var(--bh-royal);
    color: var(--bh-parchment);
}

.news .hero {
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

.hero__inner {
    align-items: center;
    gap: 2.5rem 3.5rem;
    padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

.hero__content {
    gap: 1.125rem;
    min-width: 0;
}

.hero__title,
.entry--post .entry__title {
    margin: 0;
    color: var(--bh-parchment);
    font-size: clamp(2.5rem, 4.6vw, 4rem);
    line-height: 1.05;
}

.hero__title::after,
.entry--post .entry__title::after {
    content: '';
    display: block;
    width: min(100%, 22.5rem);
    height: 1.3125rem;
    margin-top: 1.25rem;
    background:
        url('../images/fleur-gold.svg') center / 1.25rem 1.3125rem no-repeat,
        linear-gradient(var(--bh-gold), var(--bh-gold)) left center / calc(50% - 1.5rem) 1px no-repeat,
        linear-gradient(var(--bh-gold), var(--bh-gold)) right center / calc(50% - 1.5rem) 1px no-repeat;
}

.hero__description {
    max-width: 33.75rem;
    margin: 0;
    color: var(--bh-text-on-dark);
    font-family: var(--bh-font-body);
    font-size: 1.25rem;
    line-height: 1.55;
}

.hero__image {
    align-items: center;
    min-width: 0;
    margin-bottom: 0;
}

.hero__image img {
    display: block;
    width: 100%;
    height: auto;
    border: 2px solid var(--bh-gold);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.4);
}

/* Only side by side: below this the hero stacks and a flex-basis would become a height */
@media (min-width: 64em) {
    .hero__content {
        flex: 1 1 26.25rem;
    }

    .hero__image {
        flex: 1 1 27.5rem;
    }
}


/* Page builder blocks */

.text-media .grid {
    align-items: center;
    column-gap: clamp(2rem, 5vw, 4.5rem);
}

.text-media__content {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.text-media__title {
    margin: 0;
    color: var(--bh-royal);
    line-height: 1.12;
}

.text-media__title--large {
    font-size: clamp(1.875rem, 3.4vw, 2.75rem);
}

.text-media__title--small {
    font-size: clamp(1.625rem, 2.8vw, 2.125rem);
}

.text-media__text {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.6;
}

.text-media__text p:last-child {
    margin-bottom: 0;
}

.text-media__link {
    margin-top: 0.5rem;
}

.text-media__visual {
    justify-content: center;
}

.text-media__figure {
    display: flex;
    justify-content: center;
}

/* Capped height keeps portrait images such as book covers from towering over the text */
.text-media__image {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 40rem;
    border: 2px solid var(--bh-gold);
    box-shadow: 0 24px 50px rgba(31, 26, 20, 0.25);
}

.cta {
    background-color: var(--bh-crimson);
    border-top: 2px solid var(--bh-gold);
    border-bottom: 2px solid var(--bh-gold);
    color: var(--bh-parchment);
}

.cta--lines {
    background-color: var(--bh-royal);
}

.cta--people {
    background-color: var(--bh-parchment-shade);
    border-color: var(--bh-parchment-line);
    color: var(--bh-ink);
}

.cta .cta__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.75rem 4rem;
    max-width: none;
    padding: clamp(3rem, 6vw, 4.5rem) 0;
    background: none;
    color: inherit;
}

.cta__inner::after {
    content: none;
}

.cta__content {
    flex: 1 1 32.5rem;
    gap: 0.875rem;
    min-width: 0;
    max-width: 50rem;
}

.cta__title {
    order: 1;
    margin: 0;
    color: var(--bh-parchment);
    font-size: clamp(1.75rem, 3.4vw, 2.875rem);
    line-height: 1.15;
}

.cta__subtitle {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    order: 2;
    margin: 0;
    color: #f0cf86;
    font-family: var(--bh-font-display);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-transform: none;
}

.cta__subtitle::before {
    content: '';
    flex: none;
    width: 2.5rem;
    height: 1px;
    background-color: currentColor;
}

.cta--lines .cta__subtitle {
    color: var(--bh-gold-leaf);
}

.cta--people .cta__title {
    color: var(--bh-royal);
}

.cta--people .cta__subtitle {
    color: var(--bh-crimson);
}

.cta__buttons {
    flex: none;
}

/* A CTA that ends the page sits straight on the footer */
.page-builder:has(> .cta:last-child) {
    margin-bottom: 0;
}

body:has(.page-builder > .cta:last-child) .site-footer {
    margin-top: 0;
    border-top: 0;
}

.entry__footer:not(:has(.column)) {
    display: none;
}

.latest-news__header {
    display: flex;
    align-items: center;
    gap: 1.125rem;
    margin-bottom: 2.25rem;
}

.latest-news__header::before,
.latest-news__header::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--bh-gold);
}

.latest-news__title {
    margin: 0;
    color: var(--bh-royal);
    font-size: clamp(1.75rem, 3vw, 2.375rem);
    text-align: center;
}

.latest-news__more-link {
    margin-top: 2.5rem;
}


/* Article cards */

.article-card__anchor,
.article-card--featured .article-card__anchor {
    top: 0;
    height: 100%;
}

.article-card__anchor::before {
    content: none;
}

.article-card__inner {
    flex-direction: column;
    gap: 0;
    padding: 0;
    background-color: var(--bh-parchment-light);
    border: 1px solid var(--bh-parchment-dark);
    border-radius: 0;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.article-card__anchor:hover + .article-card__inner {
    border-color: var(--bh-gold);
    box-shadow: 0 12px 30px rgba(31, 26, 20, 0.14);
    transform: none;
}

.article-card__anchor:hover + .article-card__inner .article-card__container {
    box-shadow: none;
}

.article-card__figure {
    position: relative;
    top: auto;
    right: auto;
    order: -1;
    width: auto;
    min-width: 0;
    max-width: none;
    min-height: 0;
    max-height: none;
    margin: 0;
    aspect-ratio: 16 / 10;
    background-color: var(--bh-parchment-dark);
    border-bottom: 2px solid var(--bh-gold);
}

.article-card__container {
    flex: 1;
    margin-top: 0;
    padding: 1.5rem 1.5rem 1.625rem;
    background-color: transparent;
    border-radius: 0;
}

.article-card__header {
    display: flex;
    flex-direction: column-reverse;
    gap: 0.625rem;
    margin-bottom: 0.625rem;
}

.article-card__date {
    margin: 0;
    color: var(--bh-old-gold);
    font-family: var(--bh-font-display);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.4;
}

.article-card__title,
.article-card .article-card__title {
    margin: 0;
    color: var(--bh-royal);
    font-size: 1.3125rem;
    line-height: 1.25;
}

.article-card__excerpt {
    display: block;
    margin-bottom: 0.625rem;
    color: var(--bh-sepia);
    font-size: 1.125rem;
    line-height: 1.5;
}

.article-card__excerpt p {
    margin: 0;
}

.article-card__button > a.button {
    color: var(--bh-crimson);
    font-size: 0.8125rem;
    text-decoration: none;
}

.article-card__featured {
    order: 0;
    margin-bottom: 1rem;
}

.article-card__badge {
    gap: 0.5rem;
    margin: 0;
    padding: 0.5rem 0.875rem;
    background-color: var(--bh-crimson);
    border: 1px solid var(--bh-gold);
    border-radius: 0;
    color: var(--bh-parchment);
    font-family: var(--bh-font-display);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.article-card__badge::before {
    content: '';
    width: 0.875rem;
    height: 0.9375rem;
    background-color: var(--bh-gold-leaf);
    -webkit-mask: url('../images/fleur.svg') center / contain no-repeat;
    mask: url('../images/fleur.svg') center / contain no-repeat;
}

.news__featured {
    margin-bottom: 1.75rem;
}

.news__featured .column {
    --col-span: 1 / -1;
}

.article-card--featured .article-card__inner {
    flex-direction: column;
}

.article-card--featured .article-card__figure {
    min-width: 0;
    aspect-ratio: 16 / 10;
}

@media (min-width: 64em) {
    .article-card--featured .article-card__inner {
        flex-direction: row;
        background-color: var(--bh-parchment-light);
        border-radius: 0;
    }

    .article-card--featured .article-card__figure {
        flex: 1 1 55%;
        min-width: 0;
        aspect-ratio: 3 / 2;
        border-right: 2px solid var(--bh-gold);
        border-bottom: 0;
    }

    .article-card--featured .article-card__container {
        flex: 1 1 45%;
        justify-content: center;
        padding: 3rem;
    }

    .article-card--featured .article-card__title {
        font-size: 2rem;
        line-height: 1.18;
    }

    .articles--news .article-card:not(.article-card--featured) .article-card__inner {
        flex-direction: row;
    }

    .articles--news .article-card:not(.article-card--featured) .article-card__figure {
        flex: 0 0 40%;
        aspect-ratio: auto;
        min-height: 15rem;
        border-right: 2px solid var(--bh-gold);
        border-bottom: 0;
    }
}

.articles--news .grid {
    row-gap: 1.75rem;
}

.pagination {
    gap: 0.5rem;
    min-height: 2.75rem;
}

.pagination .page-numbers:not(.prev):not(.next) {
    min-width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    border: 1px solid var(--bh-parchment-line);
    border-radius: 0;
    color: var(--bh-royal);
    font-family: var(--bh-font-display);
    font-size: 0.9375rem;
    font-weight: 700;
    text-decoration: none;
}

.pagination .page-numbers.dots {
    border-color: transparent;
}

.pagination a.page-numbers:not(.prev):not(.next):hover {
    border-color: var(--bh-gold);
    color: var(--bh-royal);
    text-decoration: none;
}

.pagination .page-numbers.current {
    background-color: var(--bh-royal);
    border-color: var(--bh-royal);
    color: var(--bh-gold-leaf);
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
    display: inline-flex;
    align-items: center;
    height: 2.75rem;
    background: none;
    border: 1px solid var(--bh-parchment-line);
    border-radius: 0;
    box-shadow: none;
    color: var(--bh-crimson);
    font-family: var(--bh-font-display);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.pagination .page-numbers.prev:hover,
.pagination .page-numbers.next:hover {
    background: none;
    border-color: var(--bh-gold);
    color: var(--bh-crimson);
    transform: none;
}


/* Single post */

.entry--post {
    overflow-x: clip;
}

.entry--post .entry__body {
    margin-top: 0;
}

.entry--post .entry__header {
    position: relative;
    isolation: isolate;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 0;
    padding: clamp(2.5rem, 5vw, 4rem) 0 calc(clamp(2.5rem, 5vw, 4rem) + 10rem);
    color: var(--bh-parchment);
    text-align: center;
}

.entry--post:not(:has(.entry__figure)) .entry__header {
    padding-bottom: clamp(2.5rem, 5vw, 4rem);
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.entry--post .entry__header::before {
    content: '';
    position: absolute;
    inset: 0 calc(50% - 50vw);
    z-index: -1;
    background-color: var(--bh-royal);
}

.entry--post .entry__title {
    font-size: clamp(2rem, 4.2vw, 3.5rem);
    line-height: 1.1;
}

.entry--post .entry__title::after {
    margin-right: auto;
    margin-left: auto;
}

.entry--post .entry__meta {
    justify-content: center;
    margin: 0;
    color: var(--bh-muted-on-dark);
    font-family: var(--bh-font-display);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.18em;
}

.entry--post .entry__figure {
    float: none;
    width: min(65rem, 100vw - 2rem);
    max-width: none;
    margin: -10rem 0 clamp(2.5rem, 5vw, 4rem) 50%;
    background-color: var(--bh-midnight);
    border: 2px solid var(--bh-gold);
    box-shadow: 0 28px 60px rgba(10, 22, 49, 0.35);
    transform: translateX(-50%);
}

.entry--post .entry__figure img {
    display: block;
    width: 100%;
    height: auto;
}

.entry--post .entry__content {
    font-size: 1.25rem;
    line-height: 1.65;
}

.entry--post .entry__content > p:first-of-type {
    font-size: 1.4375rem;
    line-height: 1.6;
}

.entry--post .entry__content > p:first-of-type::first-letter {
    float: left;
    padding: 0.5rem 0.75rem 0 0;
    color: var(--bh-crimson);
    font-family: var(--bh-font-display);
    font-size: 4.875rem;
    font-weight: 700;
    line-height: 0.82;
}


/* Typography (post and page content) */

.typography p,
.typography li {
    font-size: inherit;
    line-height: inherit;
}

.typography h1,
.typography h2,
.typography h3,
.typography h4,
.typography h5,
.typography h6 {
    color: var(--bh-royal);
}

.typography h2,
.entry--post .entry__content h2 {
    margin: 3rem 0 1rem;
    font-size: clamp(1.625rem, 2.6vw, 2rem);
    line-height: 1.2;
}

.typography h3,
.entry--post .entry__content h3 {
    margin: 2.25rem 0 0.75rem;
    font-size: 1.375rem;
    line-height: 1.25;
}

.typography a:not([class]),
.entry--post .entry__content a:not([class]) {
    color: var(--bh-crimson);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.15em;
}

.typography a:not([class]):hover {
    color: var(--bh-crimson-dark);
}

.typography ul:not([class]),
.typography ul.wp-block-list {
    padding-left: 0;
    list-style: none;
}

.typography ul:not([class]) > li,
.typography ul.wp-block-list > li {
    position: relative;
    margin-bottom: 0.5rem;
    padding-left: 1.375rem;
}

.typography ul:not([class]) > li::before,
.typography ul.wp-block-list > li::before {
    content: '';
    position: absolute;
    top: 0.62em;
    left: 0.125rem;
    width: 0.4375rem;
    height: 0.4375rem;
    background-color: var(--bh-gold);
    transform: rotate(45deg);
}

.typography ol > li::marker {
    color: var(--bh-crimson);
    font-family: var(--bh-font-display);
    font-weight: 700;
}

.typography blockquote,
.entry--post .entry__content blockquote {
    margin: 2.5rem 0;
    padding: 1.75rem 2rem;
    background-color: var(--bh-royal);
    border: 1px solid var(--bh-gold);
    box-shadow: inset 0 0 0 5px var(--bh-royal), inset 0 0 0 6px rgba(201, 150, 47, 0.45);
    color: var(--bh-parchment);
    font-weight: 400;
    text-align: left;
}

.typography blockquote p {
    margin: 0;
    color: var(--bh-parchment);
    font-size: clamp(1.625rem, 3vw, 2.125rem);
    font-style: italic;
    font-weight: 500;
    line-height: 1.25;
}

.typography blockquote cite {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.875rem;
    color: var(--bh-gold-leaf);
    font-family: var(--bh-font-display);
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.14em;
}

.typography blockquote cite::before {
    content: '';
    flex: none;
    width: 2rem;
    height: 1px;
    background-color: var(--bh-gold);
}

.typography .wp-block-image {
    margin: 2.5rem 0;
}

/* As a table the caption takes the image's width instead of the column's */
.typography .wp-block-image:has(figcaption) {
    display: table;
}

.typography .wp-block-image figcaption {
    display: table-caption;
    caption-side: bottom;
}

.typography .wp-block-image img {
    display: block;
    border: 2px solid var(--bh-gold);
}

.typography .wp-block-image:has(figcaption) img {
    border-bottom: 0;
}

.typography .wp-block-image figcaption {
    border: 2px solid var(--bh-gold);
    font-size: 1.1875rem;
}

.disclaimer {
    margin-top: 3rem;
    padding: 1.25rem 1.5rem;
    background-color: var(--bh-parchment-shade);
    border: 1px solid var(--bh-parchment-line);
    color: var(--bh-sepia);
    font-size: 1.0625rem;
    line-height: 1.5;
}

.disclaimer p {
    margin: 0;
}


/* Footer */

.site-footer {
    padding: clamp(3rem, 6vw, 4.5rem) 0 1.75rem;
    background-color: var(--bh-midnight);
    border-top: 2px solid var(--bh-gold);
    color: var(--bh-footer-text);
}

.site-footer h6 {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
    color: var(--bh-gold-leaf);
    font-size: 1.125rem;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.site-footer h6::before {
    content: '';
    flex: none;
    width: 1.75rem;
    height: 1.875rem;
    background-color: var(--bh-gold);
    -webkit-mask: url('../images/fleur.svg') center / contain no-repeat;
    mask: url('../images/fleur.svg') center / contain no-repeat;
}

.site-footer__title {
    margin: 0 0 0.875rem;
    color: var(--bh-gold-leaf);
    font-family: var(--bh-font-display);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.site-footer__block--description * {
    color: var(--bh-footer-text);
    font-size: 1.0625rem;
    line-height: 1.55;
}

.site-footer__menu li {
    margin: 0.5rem 0;
    font-size: 1.125rem;
}

.site-footer a {
    color: var(--bh-footer-text);
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--bh-gold-leaf);
}

.site-footer__bottom {
    margin-top: 3rem;
    padding-top: 1.375rem;
    border-top: 1px solid var(--bh-line-on-dark);
}

.site-footer__menu--bottom li {
    margin: 0;
    font-size: 1rem;
}

.site-footer__menu--bottom a {
    color: #b9ad94;
}
