/* TDN Rich Text Header Bar v2.1.1 */

/* Skip-to-content link: keep it accessible to screen readers and keyboard
   users, but visually hidden so it doesn't render as a tall white block above
   the masthead (the mobile gap). It becomes visible again on focus. */
.skip-link,
.skip-to-content,
.screen-reader-text.skip-link,
a[href="#content"].skip-link,
a[href="#tdn-content"],
a[href="#main"].skip-link,
#tdn-skip-link {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.skip-link:focus,
.skip-to-content:focus,
.screen-reader-text.skip-link:focus,
a[href="#content"].skip-link:focus,
a[href="#tdn-content"]:focus,
a[href="#main"].skip-link:focus,
#tdn-skip-link:focus {
    position: fixed !important;
    top: 8px !important;
    left: 8px !important;
    z-index: 100000 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    clip: auto !important;
    clip-path: none !important;
    background: #fff !important;
    color: #b47a19 !important;
    font: 700 14px/1 "Montserrat", Arial, sans-serif !important;
    border: 2px solid #b47a19 !important;
    border-radius: 6px !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.2) !important;
    text-decoration: none !important;
}

#tdn-header {
    width: 100% !important;
    margin: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}

/* Kill any top gap the theme reserves above the header (sticky offset,
   spacers, page-wrapper top padding/margin). Note: body top padding is handled
   separately below so the admin-bar clearance is not wiped out. */
html,
#tdn-page,
.tdn-page-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body {
    margin-top: 0 !important;
}

body:not(.admin-bar) {
    padding-top: 0 !important;
}

/* Zeroing the top spacing above also removes the room WordPress reserves for
   its fixed admin bar. WordPress normally offsets the page via html{margin-top}
   which this plugin clears. Restore the clearance on the BODY (padding-top)
   only when the admin bar is present. Using body padding keeps the admin bar
   from overlapping the header WITHOUT adding a visible white gap above it
   (an earlier margin-top on the header itself rendered as blank space because
   the admin bar is position:fixed and occupies no flow). */
body.admin-bar {
    padding-top: 32px !important;
}

@media screen and (max-width: 782px) {
    body.admin-bar {
        padding-top: 46px !important;
    }
}

body.admin-bar #tdn-header {
    margin-top: 0 !important;
}

/* Reading progress bar and any leftover sticky/header offset elements that
   render ABOVE the masthead and create a tall blank gap on mobile. */
#tdn-progress-bar,
.tdn-progress-bar,
.tdn-reading-progress,
.tdn-scroll-progress {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
}

/* Offline banner ("You're offline...") is a toast that should be fixed and
   hidden until the connection drops. In its idle state it was sitting in the
   normal document flow as a full-width block, reserving vertical space and
   pushing the page down (the white gap). Pin it out of flow. The theme's
   offline.js reveals it by setting visibility/opacity/transform, so keeping it
   fixed here does not stop it from appearing when actually offline. */
#tdn-offline-banner {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    margin: 0 !important;
}

/* Collapse any element that sits immediately before the header and is only
   there to reserve sticky-header space. */
#tdn-header::before,
.tdn-hdr-top::before,
#tdn-header > .tdn-header-spacer,
.tdn-header-spacer,
.header-spacer,
.sticky-header-spacer,
.site-header-spacer,
.tdn-header-offset,
.tdn-sticky-spacer {
    margin: 0 !important;
}

.tdn-header-spacer,
.header-spacer,
.sticky-header-spacer,
.site-header-spacer,
.tdn-header-offset,
.tdn-sticky-spacer {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
}

.tdn-hdr-dateline {
    display: none !important;
}

.tdn-hdr-top {
    position: relative !important;
    width: 100% !important;
    min-height: var(--tdn-bar-desktop-height) !important;
    height: var(--tdn-bar-desktop-height) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background:
        radial-gradient(circle at 12% 18%, rgba(194, 144, 49, .14), transparent 18%),
        linear-gradient(135deg, #fff 0%, #f9f9f7 43%, #ffffff 62%, #f5f2eb 100%) !important;
}

.tdn-hdr-top::before,
.tdn-hdr-top::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    z-index: 4;
    pointer-events: none;
}

.tdn-hdr-top::before {
    top: 0;
    height: 5px;
    background:
        linear-gradient(to bottom, #b47a19 0 2px, rgba(255,255,255,.7) 2px 3px, #d6a33a 3px 5px);
}

.tdn-hdr-top::after {
    bottom: 0;
    height: 3px;
    background: linear-gradient(to right, rgba(180,122,25,.25), #b47a19 12%, #d6a33a 50%, #b47a19 88%, rgba(180,122,25,.25));
}

.tdn-hdr-top-inner {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.tdn-hdr-logo {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 8px clamp(16px, 4.2vw, 58px) 7px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    color: #111 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    flex: none !important;
}

.tdn-hdr-logo > img,
.tdn-hdr-logo > span:not(.tdn-rich-header-bar) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px,1px,1px,1px) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.tdn-rich-header-bar {
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(10px, 1.4vw, 18px);
    width: min(100%, 1180px);
    height: 100%;
    margin: 0 auto;
    color: #0a0a0a;
    text-decoration: none;
}

.tdn-rich-header-mark {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-width: 0;
}

.tdn-rich-header-title {
    display: flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: .18em;
    /* Libre Bodoni (loaded as a webfont) is the closest match to the logo's
       high-contrast Didone wordmark and renders identically on every device.
       The platform Bodonis are kept as fast-path fallbacks for machines that
       happen to have them; Times/Georgia are last-resort only. */
    font-family: "Libre Bodoni", "Bodoni 72", "Bodoni MT", Didot, "Times New Roman", Georgia, serif;
    font-size: clamp(28px, 3.6vw, var(--tdn-bar-desktop-font));
    font-weight: 700;
    line-height: .86;
    letter-spacing: -.02em;
    text-transform: uppercase;
    white-space: nowrap;
    color: #050505;
    text-shadow: 0 1px 0 rgba(255,255,255,.9), 0 2px 5px rgba(0,0,0,.10);
}

.tdn-rich-header-title-red {
    color: #d20d12;
}

/* The full name ("Trevor Decker") lives in one span, so the gap between first
   and last name is just a word-space. With the tight tracking and uppercase
   Bodoni that space gets crushed and the names read as one word. Open the
   word-spacing so the names separate clearly. This does not affect the flex
   gap before "News". */
.tdn-rich-header-title-black {
    word-spacing: .22em;
}

.tdn-rich-header-tagline-wrap {
    display: flex;
    align-items: center;
    gap: 13px;
    width: 100%;
    margin-top: 7px;
}

.tdn-rich-header-tagline-wrap::before,
.tdn-rich-header-tagline-wrap::after {
    content: "";
    display: block;
    height: 2px;
    width: clamp(38px, 8vw, 110px);
    background: linear-gradient(to right, transparent, #c68a24 22%, #d4a544 78%, transparent);
    flex: 0 1 auto;
}

.tdn-rich-header-tagline {
    font-family: "Montserrat", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(9px, .92vw, 13px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .58em;
    text-transform: uppercase;
    color: #111;
    white-space: nowrap;
}

.tdn-rich-header-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(28px, 3.2vw, 38px);
    height: clamp(28px, 3.2vw, 38px);
    margin-left: auto;
    margin-right: clamp(8px, 3vw, 42px);
    color: #b88021;
    font-size: clamp(22px, 2.5vw, 34px);
    line-height: 1;
    text-shadow: 0 2px 8px rgba(184, 128, 33, .25);
}

.tdn-rich-header-star::before {
    content: "★";
}

.tdn-rich-header-rule {
    display: block;
    flex: 1 1 auto;
    max-width: 280px;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(186, 126, 28, .65), transparent);
}

.tdn-hdr-burger {
    position: absolute !important;
    top: 50% !important;
    right: 12px !important;
    transform: translateY(-50%) !important;
    z-index: 30 !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(184,133,37,.55) !important;
    border-radius: 999px !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.14) !important;
}

.tdn-hdr-nav {
    margin: 0 !important;
    border-top: 0 !important;
}

.tdn-hdr-nav-inner {
    max-width: none !important;
}

body,
#tdn-page,
.tdn-page-wrapper {
    scroll-padding-top: 0 !important;
}

@media (min-width: 768px) {
    .tdn-hdr-burger {
        display: none !important;
    }
}

@media (max-width: 1024px) {
    .tdn-hdr-top {
        height: var(--tdn-bar-tablet-height) !important;
        min-height: var(--tdn-bar-tablet-height) !important;
    }

    .tdn-rich-header-title {
        font-size: clamp(28px, 4.5vw, 40px);
    }

    .tdn-rich-header-star,
    .tdn-rich-header-rule {
        display: none;
    }
}

@media (max-width: 767px) {
    .tdn-hdr-top {
        height: var(--tdn-bar-mobile-height) !important;
        min-height: var(--tdn-bar-mobile-height) !important;
    }

    .tdn-hdr-logo {
        padding: 7px 54px 7px 12px !important;
        justify-content: flex-start !important;
    }

    .tdn-rich-header-bar {
        width: 100%;
        margin: 0;
        justify-content: flex-start;
    }

    .tdn-rich-header-title {
        font-size: clamp(24px, 8.8vw, var(--tdn-bar-mobile-font));
        letter-spacing: -.055em;
    }

    .tdn-rich-header-tagline-wrap {
        gap: 7px;
        margin-top: 5px;
    }

    .tdn-rich-header-tagline-wrap::before,
    .tdn-rich-header-tagline-wrap::after {
        width: 22px;
    }

    .tdn-rich-header-tagline {
        font-size: 8px;
        letter-spacing: .36em;
    }

    .tdn-hdr-burger {
        right: 10px !important;
    }
}

@media (max-width: 430px) {
    .tdn-rich-header-title {
        font-size: clamp(21px, 8.2vw, 30px);
    }

    .tdn-rich-header-tagline {
        font-size: 7.5px;
        letter-spacing: .28em;
    }

    .tdn-rich-header-tagline-wrap::before,
    .tdn-rich-header-tagline-wrap::after {
        width: 14px;
    }
}
