/*
 * Oliver Hotel News
 * Front-end styles for the News archive, location archives, and single stories.
 *
 * The parent theme sets html { font-size: 62.5% }, so 1rem = 10px on this
 * site. Every rem value below is authored against that 10px base to match the
 * rest of the site (site body copy is 18px = 1.8rem). Media-query widths are
 * unaffected: query rem always resolves against the 16px initial size.
 *
 * All selectors are intentionally independent of Elementor and page IDs.
 */

:where(
    .oliver-news-context-general,
    .oliver-news-context-knoxville,
    .oliver-news-context-oxford
) {
    --oliver-news-navy: #13303d;
    --oliver-news-cream: #f6f5ee;
    --oliver-news-sage: #90afaf;
    --oliver-news-sand: #eae2ca;
    --oliver-news-white: #fff;
    --oliver-news-ink: var(--oliver-news-navy);
    --oliver-news-muted: #50626a;
    --oliver-news-accent: var(--oliver-news-sage);
    --oliver-news-accent-contrast: var(--oliver-news-navy);

    /* Typography per brand context. The general site pairs CervoNeue display
       type with IvyOra serif copy; the location overrides below mirror the
       computed styles of /knoxville/ and /oxford/. */
    --oliver-news-heading-font: "CervoNeue", "Arial Narrow", Arial, sans-serif;
    --oliver-news-body-font: "IvyOraDisplay", Georgia, serif;
    --oliver-news-control-font: "CervoNeue", "Arial Narrow", Arial, sans-serif;
    --oliver-news-nav-font: "CervoNeue", "Arial Narrow", Arial, sans-serif;
    --oliver-news-display-transform: uppercase;
    --oliver-news-title-transform: uppercase;
    --oliver-news-display-leading: 0.9;
    --oliver-news-title-leading: 1.05;
    --oliver-news-display-tracking: -0.02em;

    --oliver-news-shell: 132rem;
    --oliver-news-reading-width: 70ch;
    --oliver-news-gutter: clamp(2rem, 4vw, 6.4rem);
    --oliver-news-safe-inline-start: max(var(--oliver-news-gutter), env(safe-area-inset-left, 0px));
    --oliver-news-safe-inline-end: max(var(--oliver-news-gutter), env(safe-area-inset-right, 0px));
    --oliver-news-viewport-safe-start: max(0.8rem, env(safe-area-inset-left, 0px));
    --oliver-news-viewport-safe-end: max(0.8rem, env(safe-area-inset-right, 0px));
    --oliver-news-section-space: clamp(6.4rem, 8vw, 12.8rem);
    --oliver-news-radius: 0;
    --oliver-news-line: rgb(19 48 61 / 18%);
    --oliver-news-shadow: 0 1.6rem 4.8rem rgb(19 48 61 / 12%);
    color: var(--oliver-news-ink);
}

.oliver-news-context-knoxville {
    --oliver-news-accent: #d3915b;
    --oliver-news-accent-contrast: var(--oliver-news-navy);
    --oliver-news-heading-font: "CalderLC", Georgia, serif;
    --oliver-news-body-font: "BauerBodoniStd", "Bodoni 72", Didot, serif;
    --oliver-news-control-font: "CervoNeue", "Arial Narrow", Arial, sans-serif;
    --oliver-news-nav-font: "franklin-gothic-urw-cond", "Arial Narrow", Arial, sans-serif;
    --oliver-news-display-transform: uppercase;
    --oliver-news-title-transform: uppercase;
    --oliver-news-display-leading: 1.04;
    --oliver-news-title-leading: 1.18;
    --oliver-news-display-tracking: 0.01em;
}

.oliver-news-context-oxford {
    --oliver-news-accent: #974746;
    --oliver-news-accent-contrast: var(--oliver-news-white);
    --oliver-news-heading-font: "p22-mackinac-pro", Georgia, serif;
    --oliver-news-body-font: "franklin-gothic-urw-cond", "Arial Narrow", Arial, sans-serif;
    --oliver-news-control-font: "franklin-gothic-urw-cond", "Arial Narrow", Arial, sans-serif;
    --oliver-news-nav-font: "franklin-gothic-urw-cond", "Arial Narrow", Arial, sans-serif;
    --oliver-news-display-transform: uppercase;
    --oliver-news-title-transform: none;
    --oliver-news-display-leading: 1.05;
    --oliver-news-title-leading: 1.2;
    --oliver-news-display-tracking: 0.01em;
}

:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *,
:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *::before,
:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *::after {
    box-sizing: border-box;
}

/* Total's element reset (`html, body, div, span, … { font: inherit }`) has
   0-0-1 specificity, which outranks a :where() rule, so this base typography
   needs real class specificity. The div prefix keeps it off the body element,
   which carries the same classes but must keep the site's own header/footer
   typography. */
div.oliver-news-archive,
div.oliver-news-single {
    overflow-x: hidden;
    overflow-x: clip;
    background: var(--oliver-news-cream, #f6f5ee);
    color: var(--oliver-news-ink, #13303d);
    font-family: var(--oliver-news-body-font, Georgia, serif);
    font-size: 1.8rem;
    line-height: 1.65;
}

/* Match the primary navigation to the fonts each hotel site uses. */
body.oliver-news #site-navigation,
body.oliver-news #site-navigation a,
body.oliver-news .mobile-menu-toggle {
    font-family: var(--oliver-news-nav-font, Arial, sans-serif);
}

.oliver-news-shell {
    width: min(100%, calc(var(--oliver-news-shell, 132rem) + var(--oliver-news-gutter, 3.2rem) + var(--oliver-news-gutter, 3.2rem)));
    margin-inline: auto;
    padding-right: var(--oliver-news-gutter, 3.2rem);
    padding-left: var(--oliver-news-gutter, 3.2rem);
    padding-inline-start: var(--oliver-news-safe-inline-start, var(--oliver-news-gutter, 3.2rem));
    padding-inline-end: var(--oliver-news-safe-inline-end, var(--oliver-news-gutter, 3.2rem));
}

.oliver-news-section {
    padding-block: var(--oliver-news-section-space, 9.6rem);
}

.oliver-news-section--sand {
    background: var(--oliver-news-sand, #eae2ca);
}

.oliver-news-section--white {
    background: var(--oliver-news-white, #fff);
}

/* Small uppercase interface labels always use the control font. */
.oliver-news-eyebrow,
.oliver-news-meta,
.oliver-news-filter,
.oliver-news-lead__link,
.oliver-news-back-link,
.oliver-news-cta__link {
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.oliver-news-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 1.2rem;
    margin: 0 0 1.4rem;
    color: inherit;
    font-size: 1.25rem;
    line-height: 1.3;
}

.oliver-news-eyebrow::before {
    width: 3.6rem;
    height: 1px;
    background: currentColor;
    content: "";
}

.oliver-news-lead .oliver-news-eyebrow {
    color: var(--oliver-news-navy, #13303d);
}

.oliver-news-lead .oliver-news-eyebrow::before {
    background: var(--oliver-news-accent, #90afaf);
}

.oliver-news-title,
.oliver-news-lead__title,
.oliver-news-card__title,
.oliver-news-article__title,
.oliver-news-related__title,
.oliver-news-cta__title,
.oliver-news-empty__title {
    margin: 0;
    color: var(--oliver-news-ink, #13303d);
    font-family: var(--oliver-news-heading-font, Georgia, serif);
    font-weight: 400;
    line-height: var(--oliver-news-title-leading, 1.05);
    overflow-wrap: anywhere;
    text-transform: var(--oliver-news-title-transform, none);
    text-wrap: balance;
}

/* Archive hero */
.oliver-news-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    min-height: 43rem;
    min-height: clamp(43rem, 64svh, 72rem);
    margin-inline: calc(50% - 50vw);
    padding:
        clamp(11rem, 14vw, 17.6rem)
        max(var(--oliver-news-gutter, 3.2rem), env(safe-area-inset-right))
        clamp(6.4rem, 8vw, 11.2rem)
        max(var(--oliver-news-gutter, 3.2rem), env(safe-area-inset-left));
    overflow: hidden;
    align-items: end;
    background: var(--oliver-news-navy, #13303d);
    color: var(--oliver-news-white, #fff);
}

.oliver-news-hero::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(180deg, rgb(8 26 34 / 20%) 10%, rgb(8 26 34 / 82%) 100%),
        linear-gradient(90deg, rgb(8 26 34 / 45%), transparent 72%);
    content: "";
}

.oliver-news-hero__media {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.oliver-news-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--oliver-news-hero-position, center);
}

.oliver-news-hero__inner {
    width: min(100%, var(--oliver-news-shell, 132rem));
    margin-inline: auto;
}

.oliver-news-hero__title {
    max-width: 14ch;
    margin: 0;
    color: inherit;
    font-family: var(--oliver-news-heading-font, Georgia, serif);
    font-size: clamp(4.8rem, 3.2rem + 4.5vw, 10.4rem);
    font-weight: 400;
    letter-spacing: var(--oliver-news-display-tracking, 0);
    line-height: var(--oliver-news-display-leading, 1);
    overflow-wrap: anywhere;
    text-transform: var(--oliver-news-display-transform, uppercase);
    text-wrap: balance;
}

/* Archive content and location filters */
.oliver-news-archive__intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(26rem, 0.72fr);
    gap: clamp(3.2rem, 7vw, 11.2rem);
    margin-bottom: clamp(4rem, 5vw, 7.2rem);
    align-items: end;
}

.oliver-news-archive__intro-copy {
    max-width: 77rem;
    font-size: clamp(1.9rem, 1.7rem + 0.5vw, 2.4rem);
    line-height: 1.55;
}

.oliver-news-archive__intro-copy > :first-child {
    margin-top: 0;
}

.oliver-news-archive__intro-copy > :last-child {
    margin-bottom: 0;
}

.oliver-news-filters {
    position: relative;
    z-index: 2;
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 0;
    gap: 0.9rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    list-style: none;
}

.oliver-news-filter {
    display: inline-flex;
    min-height: 4.4rem;
    padding: 1.2rem 1.9rem 1.1rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--oliver-news-navy, #13303d);
    border-radius: 999px;
    color: var(--oliver-news-navy, #13303d);
    font-size: 1.25rem;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

/* Hover/active states throughout use a doubled class so they outrank the
   Elementor kit's global `.elementor-kit-8 a:hover` color (0-2-1) and Total's
   `a:hover` underline, which otherwise repaint these controls on rollover. */
.oliver-news-filter.oliver-news-filter:hover,
.oliver-news-filter.oliver-news-filter[aria-current="page"] {
    border-color: var(--oliver-news-accent, #90afaf);
    background: var(--oliver-news-accent, #90afaf);
    color: var(--oliver-news-accent-contrast, #13303d);
    text-decoration: none;
}

/* Featured/lead story */
.oliver-news-lead {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1.28fr) minmax(30rem, 0.72fr);
    color: inherit;
    background: var(--oliver-news-white, #fff);
    box-shadow: var(--oliver-news-shadow, 0 1.6rem 4.8rem rgb(19 48 61 / 12%));
    text-decoration: none;
}

.oliver-news-lead__media,
.oliver-news-card__media,
.oliver-news-article__media {
    position: relative;
    display: block;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgb(144 175 175 / 52%), rgb(234 226 202 / 70%)),
        var(--oliver-news-sand, #eae2ca);
}

.oliver-news-lead__media {
    min-height: clamp(35rem, 46vw, 58rem);
}

.oliver-news-lead__image,
.oliver-news-card__image,
.oliver-news-card__media img,
.oliver-news-article__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms cubic-bezier(0.2, 0.65, 0.3, 1);
}

.oliver-news-lead:is(:hover, :focus-within) .oliver-news-lead__image,
.oliver-news-card:is(:hover, :focus-within) :where(.oliver-news-card__image, .oliver-news-card__media img) {
    transform: scale(1.025);
}

.oliver-news-lead__media.is-placeholder::after,
.oliver-news-card__media.is-placeholder::after,
.oliver-news-article__media.is-placeholder::after {
    position: absolute;
    inset: 50% auto auto 50%;
    color: rgb(19 48 61 / 62%);
    content: "OH";
    font-family: var(--oliver-news-heading-font, Georgia, serif);
    font-size: clamp(4rem, 6vw, 8rem);
    letter-spacing: 0.05em;
    transform: translate(-50%, -50%);
}

.oliver-news-lead__content {
    display: flex;
    min-width: 0;
    padding: clamp(3.2rem, 5vw, 7.2rem);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.oliver-news-meta {
    display: flex;
    margin: 0 0 1.6rem;
    padding: 0;
    gap: 0.9rem 1.4rem;
    flex-wrap: wrap;
    align-items: center;
    color: var(--oliver-news-muted, #50626a);
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    line-height: 1.4;
    list-style: none;
}

.oliver-news-meta > * + *::before {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    margin-right: 1.4rem;
    border-radius: 50%;
    background: var(--oliver-news-accent, #90afaf);
    content: "";
    vertical-align: 0.1em;
}

.oliver-news-meta a {
    color: inherit;
    text-decoration-color: transparent;
}

.oliver-news-meta.oliver-news-meta a:hover {
    color: inherit;
    text-decoration-color: currentColor;
}

.oliver-news-lead__title {
    font-size: clamp(3.4rem, 2.6rem + 2vw, 6rem);
}

.oliver-news-lead__title a,
.oliver-news-card__title a {
    color: inherit;
    text-decoration: none;
}

.oliver-news-lead__title.oliver-news-lead__title a:hover,
.oliver-news-card__title.oliver-news-card__title a:hover {
    color: inherit;
    text-decoration: none;
}

.oliver-news-lead__excerpt {
    margin: 2.2rem 0 0;
    color: var(--oliver-news-muted, #50626a);
    font-size: 1.8rem;
    line-height: 1.6;
}

.oliver-news-lead__link,
.oliver-news-back-link {
    position: relative;
    display: inline-flex;
    min-height: 4.4rem;
    margin-top: 2.2rem;
    padding: 1rem 0;
    gap: 1.2rem;
    align-items: center;
    color: var(--oliver-news-navy, #13303d);
    font-size: 1.25rem;
    line-height: 1.2;
    text-decoration: none;
}

.oliver-news-lead__link::after,
.oliver-news-back-link::before {
    width: 4rem;
    height: 1px;
    background: var(--oliver-news-accent, #90afaf);
    content: "";
    transition: width 180ms ease;
}

.oliver-news-back-link::before {
    order: -1;
}

.oliver-news-lead__link:hover::after,
.oliver-news-back-link:hover::before {
    width: 5.4rem;
}

.oliver-news-lead__link.oliver-news-lead__link:hover,
.oliver-news-back-link.oliver-news-back-link:hover {
    color: var(--oliver-news-navy, #13303d);
    text-decoration: none;
}

.oliver-news-single__header .oliver-news-back-link:hover {
    color: var(--oliver-news-white, #fff);
}

/* Story card grid */
.oliver-news-grid {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(3.2rem, 3.5vw, 5.6rem) clamp(2rem, 2.5vw, 3.6rem);
}

.oliver-news-card {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
}

.oliver-news-card__link {
    position: relative;
    display: inline-flex;
    min-height: 4.4rem;
    margin-top: auto;
    padding: 2rem 0 1rem;
    gap: 1.2rem;
    align-items: center;
    color: var(--oliver-news-navy, #13303d);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
}

.oliver-news-card__link::after {
    width: 4rem;
    height: 1px;
    background: var(--oliver-news-accent, #90afaf);
    content: "";
    transition: width 180ms ease;
}

.oliver-news-card__link:hover::after {
    width: 5.4rem;
}

.oliver-news-card__link.oliver-news-card__link:hover {
    color: var(--oliver-news-navy, #13303d);
    text-decoration: none;
}

.oliver-news-card__media {
    aspect-ratio: 4 / 3;
}

.oliver-news-card__content {
    display: flex;
    min-width: 0;
    padding: 2.2rem 0 0;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
}

.oliver-news-card__title {
    font-size: clamp(2.4rem, 2rem + 0.8vw, 3.2rem);
}

.oliver-news-card__excerpt {
    display: -webkit-box;
    margin: 1.4rem 0 0;
    overflow: hidden;
    color: var(--oliver-news-muted, #50626a);
    font-size: 1.7rem;
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/* Pagination and archive empty state */
.oliver-news-pagination {
    margin-top: clamp(5.6rem, 7vw, 9.6rem);
}

.oliver-news-pagination .nav-links {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.oliver-news-pagination .page-numbers {
    display: inline-flex;
    min-width: 4.4rem;
    min-height: 4.4rem;
    padding: 0.9rem 1.2rem;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    color: var(--oliver-news-navy, #13303d);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1;
    text-decoration: none;
}

.oliver-news-pagination a.page-numbers:hover,
.oliver-news-pagination .page-numbers.current {
    border-color: var(--oliver-news-accent, #90afaf);
    background: var(--oliver-news-accent, #90afaf);
    color: var(--oliver-news-accent-contrast, #13303d);
    text-decoration: none;
}

.oliver-news-pagination .prev,
.oliver-news-pagination .next {
    width: auto;
    padding-inline: 1.6rem;
    border-color: var(--oliver-news-navy, #13303d);
}

.oliver-news-empty {
    max-width: 77rem;
    margin-inline: auto;
    padding: clamp(4.8rem, 7vw, 9.6rem) var(--oliver-news-gutter, 3.2rem);
    text-align: center;
}

.oliver-news-empty__title {
    font-size: clamp(3.4rem, 5vw, 5.6rem);
}

.oliver-news-empty__copy {
    margin: 2rem 0 0;
}

/* Single story header */
.oliver-news-single__header {
    padding:
        clamp(11rem, 13vw, 17.6rem)
        max(var(--oliver-news-gutter, 3.2rem), calc((100vw - 115rem) / 2), env(safe-area-inset-right))
        clamp(4.8rem, 6vw, 8.8rem)
        max(var(--oliver-news-gutter, 3.2rem), calc((100vw - 115rem) / 2), env(safe-area-inset-left));
    background: var(--oliver-news-navy, #13303d);
    color: var(--oliver-news-white, #fff);
}

.oliver-news-single__header-inner {
    width: min(100%, 115rem);
    padding-inline: 0;
}

.oliver-news-back-link {
    margin: 0 0 clamp(4rem, 5vw, 6.4rem);
}

/* These header rules intentionally carry class specificity so they beat the
   default navy component colors on the dark header background. */
.oliver-news-single__header .oliver-news-back-link {
    color: var(--oliver-news-white, #fff);
}

.oliver-news-single__header .oliver-news-meta {
    color: rgb(255 255 255 / 78%);
}

.oliver-news-article__title {
    max-width: 15ch;
    font-size: clamp(4.2rem, 3rem + 3.6vw, 9.2rem);
    letter-spacing: var(--oliver-news-display-tracking, 0);
    line-height: var(--oliver-news-display-leading, 1);
    text-transform: var(--oliver-news-display-transform, uppercase);
}

.oliver-news-single__header .oliver-news-article__title {
    color: var(--oliver-news-white, #fff);
}

.oliver-news-article__dek {
    max-width: 80rem;
    margin: clamp(2.4rem, 3vw, 3.6rem) 0 0;
    color: var(--oliver-news-muted, #50626a);
    font-size: clamp(1.9rem, 1.7rem + 0.6vw, 2.6rem);
    line-height: 1.5;
}

.oliver-news-single__header .oliver-news-article__dek {
    color: rgb(255 255 255 / 82%);
}

.oliver-news-article__media {
    width: min(100%, var(--oliver-news-shell, 132rem));
    aspect-ratio: 16 / 9;
    margin: clamp(4rem, 6vw, 8rem) auto 0;
}

.oliver-news-article__media figcaption {
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: min(100%, 61rem);
    padding: 1rem 1.4rem;
    background: rgb(19 48 61 / 88%);
    color: var(--oliver-news-white, #fff);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.15rem;
    letter-spacing: 0.025em;
    line-height: 1.4;
}

/* Article body and WordPress blocks */
.oliver-news-article__content {
    width: min(100%, calc(var(--oliver-news-reading-width, 70ch) + var(--oliver-news-gutter, 3.2rem) + var(--oliver-news-gutter, 3.2rem)));
    margin-inline: auto;
    padding-top: clamp(5.6rem, 7vw, 10.4rem);
    padding-right: var(--oliver-news-gutter, 3.2rem);
    padding-bottom: clamp(5.6rem, 7vw, 10.4rem);
    padding-left: var(--oliver-news-gutter, 3.2rem);
    padding-inline-start: var(--oliver-news-safe-inline-start, var(--oliver-news-gutter, 3.2rem));
    padding-inline-end: var(--oliver-news-safe-inline-end, var(--oliver-news-gutter, 3.2rem));
    font-size: clamp(1.8rem, 1.7rem + 0.25vw, 2rem);
    line-height: 1.75;
}

.oliver-news-article__content > :first-child {
    margin-top: 0;
}

.oliver-news-article__content > :last-child {
    margin-bottom: 0;
}

.oliver-news-article__content :where(
    p,
    ul,
    ol,
    dl,
    table,
    figure,
    blockquote,
    .wp-block-group,
    .wp-block-columns,
    .wp-block-buttons,
    .wp-block-embed
) {
    margin-block: 1.6em;
}

.oliver-news-article__content :where(h2, h3, h4, h5, h6) {
    margin: 1.65em 0 0.55em;
    color: var(--oliver-news-navy, #13303d);
    font-family: var(--oliver-news-heading-font, Georgia, serif);
    font-weight: 400;
    line-height: var(--oliver-news-title-leading, 1.1);
    overflow-wrap: anywhere;
    text-transform: var(--oliver-news-title-transform, none);
    text-wrap: balance;
}

.oliver-news-article__content h2 {
    font-size: clamp(3rem, 2.4rem + 1.5vw, 4.6rem);
}

.oliver-news-article__content h3 {
    font-size: clamp(2.4rem, 2rem + 1vw, 3.4rem);
}

.oliver-news-article__content h4 {
    font-size: clamp(2rem, 1.9rem + 0.4vw, 2.4rem);
}

.oliver-news-article__content :where(ul, ol) {
    padding-left: 1.3em;
}

.oliver-news-article__content li + li {
    margin-top: 0.5em;
}

.oliver-news-article__content a:not(.wp-element-button) {
    color: var(--oliver-news-navy, #13303d);
    text-decoration-color: var(--oliver-news-accent, #90afaf);
    text-decoration-thickness: 0.12em;
    text-underline-offset: 0.18em;
}

.oliver-news-article__content a:not(.wp-element-button):hover {
    color: var(--oliver-news-navy, #13303d);
    text-decoration-thickness: 0.2em;
}

.oliver-news-article__content :where(blockquote, .wp-block-quote) {
    padding: clamp(2.4rem, 4vw, 4.8rem);
    border: 0;
    border-left: 0.5rem solid var(--oliver-news-accent, #90afaf);
    background: var(--oliver-news-sand, #eae2ca);
    color: var(--oliver-news-navy, #13303d);
    font-family: var(--oliver-news-heading-font, Georgia, serif);
    font-size: clamp(2.2rem, 1.8rem + 1vw, 3.2rem);
    line-height: 1.35;
}

.oliver-news-article__content blockquote p {
    margin: 0;
}

.oliver-news-article__content blockquote cite {
    display: block;
    margin-top: 1.6rem;
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.15rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.oliver-news-article__content .wp-block-pullquote {
    padding-block: clamp(4rem, 5vw, 6.4rem);
    border-block: 1px solid var(--oliver-news-accent, #90afaf);
    text-align: center;
}

.oliver-news-article__content .wp-block-pullquote blockquote {
    padding: 0;
    border: 0;
    background: transparent;
}

.oliver-news-article__content img {
    max-width: 100%;
    height: auto;
}

.oliver-news-article__content figure {
    max-width: 100%;
}

.oliver-news-article__content :where(figcaption, .wp-caption-text) {
    margin-top: 1.1rem;
    color: var(--oliver-news-muted, #50626a);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.2rem;
    letter-spacing: 0.025em;
    line-height: 1.45;
}

.oliver-news-article__content .alignwide {
    width: min(calc(100vw - var(--oliver-news-safe-inline-start, var(--oliver-news-gutter, 3.2rem)) - var(--oliver-news-safe-inline-end, var(--oliver-news-gutter, 3.2rem))), 122rem);
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.oliver-news-article__content .alignfull {
    width: 100vw;
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.oliver-news-article__content .wp-block-gallery {
    gap: clamp(0.8rem, 1.5vw, 1.6rem);
}

.oliver-news-article__content :where(.wp-block-image, .wp-block-gallery) img {
    display: block;
    width: 100%;
}

.oliver-news-article__content .wp-block-separator {
    width: min(11rem, 35%);
    margin: clamp(4rem, 6vw, 8rem) auto;
    border: 0;
    border-top: 1px solid var(--oliver-news-accent, #90afaf);
}

/* Full class selectors (not :where) so these outrank the kit link-hover color
   and core's `:root :where(.wp-element-button)` button styling. */
.oliver-news-article__content .wp-block-button__link,
.oliver-news-article__content .wp-element-button {
    display: inline-flex;
    min-height: 4.4rem;
    padding: 1.3rem 2.2rem 1.2rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--oliver-news-navy, #13303d);
    border-radius: 0;
    background: var(--oliver-news-navy, #13303d);
    color: var(--oliver-news-white, #fff);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
}

.oliver-news-article__content .wp-block-button__link:hover,
.oliver-news-article__content .wp-element-button:hover {
    border-color: var(--oliver-news-accent, #90afaf);
    background: var(--oliver-news-accent, #90afaf);
    color: var(--oliver-news-accent-contrast, #13303d);
    text-decoration: none;
}

.oliver-news-article__content .wp-block-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.oliver-news-article__content table {
    width: 100%;
    min-width: 54rem;
    border: 0;
    border-collapse: collapse;
    font-size: 0.92em;
}

.oliver-news-article__content :where(th, td) {
    padding: 1.2rem 1.4rem;
    border-bottom: 1px solid var(--oliver-news-line, rgb(19 48 61 / 18%));
    text-align: left;
    vertical-align: top;
}

.oliver-news-article__content th {
    background: var(--oliver-news-sand, #eae2ca);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 0.82em;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.oliver-news-article__content :where(iframe, video, embed, object) {
    max-width: 100%;
}

.oliver-news-article__content .wp-block-embed.is-type-video .wp-block-embed__wrapper {
    position: relative;
    aspect-ratio: 16 / 9;
}

.oliver-news-article__content .wp-block-embed.is-type-video .wp-block-embed__wrapper > :where(iframe, video) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-21-9 .wp-block-embed__wrapper {
    aspect-ratio: 21 / 9;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-18-9 .wp-block-embed__wrapper {
    aspect-ratio: 18 / 9;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-4-3 .wp-block-embed__wrapper {
    aspect-ratio: 4 / 3;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-1-1 .wp-block-embed__wrapper {
    aspect-ratio: 1;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-9-16 .wp-block-embed__wrapper {
    aspect-ratio: 9 / 16;
}

.oliver-news-article__content .wp-block-embed.is-type-video.wp-embed-aspect-1-2 .wp-block-embed__wrapper {
    aspect-ratio: 1 / 2;
}

.oliver-news-article__page-links {
    display: flex;
    margin-top: clamp(4rem, 5vw, 6.4rem);
    gap: 0.6rem;
    flex-wrap: wrap;
    align-items: center;
    color: var(--oliver-news-muted, #50626a);
    font-family: var(--oliver-news-control-font, Arial, sans-serif);
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.oliver-news-article__page-links > :where(a, span) {
    display: inline-flex;
    min-width: 4.4rem;
    min-height: 4.4rem;
    align-items: center;
    justify-content: center;
}

.oliver-news-article__page-links > span,
.oliver-news-article__page-links.oliver-news-article__page-links a:hover {
    background: var(--oliver-news-accent, #90afaf);
    color: var(--oliver-news-accent-contrast, #13303d);
    text-decoration: none;
}

/* Related stories */
.oliver-news-related {
    padding-block: var(--oliver-news-section-space, 9.6rem);
    background: var(--oliver-news-white, #fff);
}

.oliver-news-related__header {
    display: flex;
    margin-bottom: clamp(3.2rem, 4vw, 5.6rem);
    gap: 2.4rem;
    flex-wrap: wrap;
    align-items: end;
    justify-content: space-between;
}

.oliver-news-related__title {
    font-size: clamp(3.2rem, 2.6rem + 1.8vw, 5.6rem);
}

/* Conversion callout */
.oliver-news-cta {
    position: relative;
    isolation: isolate;
    display: grid;
    min-height: clamp(40rem, 52vw, 64rem);
    padding:
        clamp(6.4rem, 9vw, 12.8rem)
        max(var(--oliver-news-gutter, 3.2rem), env(safe-area-inset-right))
        calc(clamp(6.4rem, 9vw, 12.8rem) + env(safe-area-inset-bottom))
        max(var(--oliver-news-gutter, 3.2rem), env(safe-area-inset-left));
    overflow: hidden;
    place-items: center;
    background: var(--oliver-news-navy, #13303d);
    color: var(--oliver-news-white, #fff);
    text-align: center;
}

.oliver-news-cta::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(rgb(9 29 38 / 58%), rgb(9 29 38 / 84%));
    content: "";
}

.oliver-news-cta__image {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.oliver-news-cta__inner {
    width: min(100%, 90rem);
}

.oliver-news-cta__title {
    color: inherit;
    font-size: clamp(3.6rem, 2.8rem + 2.8vw, 7.6rem);
}

.oliver-news-cta__copy {
    max-width: 67rem;
    margin: 2.2rem auto 0;
    font-size: clamp(1.8rem, 1.7rem + 0.3vw, 2.1rem);
}

.oliver-news-cta__copy > :first-child {
    margin-top: 0;
}

.oliver-news-cta__copy > :last-child {
    margin-bottom: 0;
}

.oliver-news-cta__actions {
    display: flex;
    margin-top: 3.2rem;
    gap: 1.2rem;
    flex-wrap: wrap;
    justify-content: center;
}

.oliver-news-cta__link {
    display: inline-flex;
    min-height: 4.4rem;
    padding: 1.5rem 2.6rem 1.4rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--oliver-news-white, #fff);
    background: var(--oliver-news-white, #fff);
    color: var(--oliver-news-navy, #13303d);
    font-size: 1.25rem;
    line-height: 1;
    text-decoration: none;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.oliver-news-cta__link--secondary {
    background: transparent;
    color: var(--oliver-news-white, #fff);
}

.oliver-news-cta__link.oliver-news-cta__link:hover {
    border-color: var(--oliver-news-accent, #90afaf);
    background: var(--oliver-news-accent, #90afaf);
    color: var(--oliver-news-accent-contrast, #13303d);
    text-decoration: none;
}

/* Clear, consistent keyboard focus without changing mouse interaction. */
:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) a:focus-visible,
:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) button:focus-visible,
:where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) [tabindex]:focus-visible {
    outline: 0.3rem solid currentColor;
    outline-offset: 0.3rem;
}

/* Safe clearance for booking/chat widgets that occupy a viewport corner. */
.oliver-news-widget-safe-area {
    padding-bottom: max(2.4rem, env(safe-area-inset-bottom));
}

@media (max-width: 68.75rem) {
    .oliver-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .oliver-news-lead {
        grid-template-columns: minmax(0, 1.05fr) minmax(29rem, 0.95fr);
    }
}

@media (max-width: 50rem) {
    .oliver-news-archive__intro,
    .oliver-news-lead {
        grid-template-columns: minmax(0, 1fr);
    }

    .oliver-news-filters {
        justify-content: flex-start;
    }

    .oliver-news-lead__media {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .oliver-news-lead__content {
        padding: clamp(2.8rem, 7vw, 4.8rem);
    }

    .oliver-news-article__content .wp-block-columns:not(.is-not-stacked-on-mobile) {
        flex-wrap: wrap !important;
    }

    .oliver-news-article__content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
    }
}

@media (max-width: 40rem) {
    :where(.oliver-news-archive, .oliver-news-single) {
        overflow-wrap: break-word;
    }

    .oliver-news-hero {
        min-height: 44rem;
        padding-top: clamp(10.4rem, 27vw, 14.4rem);
    }

    .oliver-news-hero__title {
        font-size: clamp(4.2rem, 12vw, 6.4rem);
    }

    .oliver-news-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .oliver-news-card__title {
        font-size: clamp(2.6rem, 7vw, 3.4rem);
    }

    .oliver-news-filters {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .oliver-news-filter {
        width: 100%;
        padding-inline: 0.9rem;
        letter-spacing: 0.07em;
    }

    .oliver-news-meta {
        gap: 0.7rem 1rem;
    }

    .oliver-news-meta > * + *::before {
        margin-right: 1rem;
    }

    .oliver-news-single__header {
        padding-top: clamp(10.4rem, 26vw, 13.6rem);
    }

    .oliver-news-article__title {
        font-size: clamp(3.8rem, 11vw, 5.6rem);
    }

    .oliver-news-article__media {
        aspect-ratio: auto;
    }

    .oliver-news-article__image {
        height: auto;
        aspect-ratio: 4 / 3;
        object-fit: cover;
    }

    .oliver-news-article__media figcaption {
        position: static;
        max-width: none;
        background: var(--oliver-news-navy, #13303d);
    }

    .oliver-news-article__content .alignfull {
        width: auto;
        margin-right: calc(50% - 50vw + var(--oliver-news-viewport-safe-end, 0.8rem));
        margin-left: calc(50% - 50vw + var(--oliver-news-viewport-safe-start, 0.8rem));
        transform: none;
    }

    .oliver-news-pagination .prev,
    .oliver-news-pagination .next {
        width: 100%;
    }

    .oliver-news-related__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .oliver-news-cta__actions,
    .oliver-news-cta__link {
        width: 100%;
    }

    .oliver-news-widget-safe-area {
        padding-bottom: max(8rem, calc(env(safe-area-inset-bottom) + 6.4rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    :where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *,
    :where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *::before,
    :where(.oliver-news-archive, .oliver-news-single, .oliver-news-cta) *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .oliver-news-archive,
    .oliver-news-single {
        overflow: visible;
        background: #fff;
        color: #000;
    }

    .oliver-news-single__header {
        padding: 1rem 0 2rem;
        background: #fff;
        color: #000;
    }

    .oliver-news-hero {
        min-height: 0;
        margin-inline: 0;
        padding: 1rem 0 2rem;
        background: #fff;
        color: #000;
    }

    .oliver-news-hero::after,
    .oliver-news-hero__media {
        display: none !important;
    }

    .oliver-news-hero__title {
        max-width: none;
        color: #000;
        font-size: 34pt;
    }

    .oliver-news-back-link,
    .oliver-news-filters,
    .oliver-news-pagination,
    .oliver-news-related,
    .oliver-news-cta,
    .oliver-news-widget-safe-area,
    .oliver-news-article__media.is-placeholder {
        display: none !important;
    }

    .oliver-news-shell,
    .oliver-news-article__content {
        width: 100%;
        max-width: none;
        padding-inline: 0;
    }

    .oliver-news-article__title,
    .oliver-news-single__header .oliver-news-article__title {
        max-width: none;
        color: #000;
        font-size: 34pt;
    }

    .oliver-news-single__header .oliver-news-meta,
    .oliver-news-single__header .oliver-news-article__dek {
        color: #000;
    }

    .oliver-news-article__media {
        margin-top: 1.5rem;
        overflow: visible;
        aspect-ratio: auto;
        break-inside: avoid;
    }

    .oliver-news-article__image {
        height: auto;
    }

    .oliver-news-article__media figcaption {
        position: static;
        max-width: none;
        padding: 0.5rem 0 0;
        background: transparent;
        color: #000;
    }

    .oliver-news-article__content {
        padding-block: 1.5rem;
        color: #000;
        font-size: 11pt;
        line-height: 1.5;
    }

    .oliver-news-article__content :where(.alignwide, .alignfull) {
        width: 100%;
        margin-left: 0;
        transform: none;
    }

    .oliver-news-article__content a {
        color: #000 !important;
    }

    .oliver-news-article__content a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-family: Arial, sans-serif;
        font-size: 8pt;
        overflow-wrap: anywhere;
    }
}
