/* Header-only styles. Deliberately isolated from the legacy navigation. */
#masthead.doyle-header {
    position: absolute;
    inset: 0 0 auto;
    z-index: 1000;
    width: 100%;
    background: #fff;
    color: #1a1a1a;
    border-bottom: 1px solid rgba(26, 26, 26, .12);
    font-family: 'Source Sans Pro', Arial, sans-serif;
}
#masthead.doyle-header--overlay {
    color: #fff;
    background: rgba(15, 18, 20, .36);
    border-bottom-color: rgba(255, 255, 255, .18);
}
.doyle-header *, .doyle-header *::before, .doyle-header *::after { box-sizing: border-box; }
.doyle-header .doyle-header__bar {
    min-height: 88px;
    padding: 16px clamp(22px, 4vw, 72px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.doyle-header .doyle-header__brand { min-width: 0; }
.doyle-header .custom-logo-link { display: block; margin: 0; }
.doyle-header .custom-logo { display: block; width: auto; max-width: min(260px, 52vw); height: auto; max-height: 56px; object-fit: contain; }
.doyle-header .doyle-header__wordmark {
    font-size: clamp(20px, 2.2vw, 30px);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.2;
    color: inherit;
    text-decoration: none;
    box-shadow: none;
}
.doyle-header button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-width: 44px;
    min-height: 44px;
    padding: 8px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: 400 15px/1.4 'Source Sans Pro', Arial, sans-serif;
    letter-spacing: .02em;
    text-transform: none;
    cursor: pointer;
}
.doyle-header button:hover { background: transparent; color: inherit; opacity: .65; }
.doyle-header a:focus-visible, .doyle-header button:focus-visible, .doyle-header input:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.doyle-header__hamburger { display: grid; gap: 7px; width: 28px; }
.doyle-header__hamburger span { display: block; height: 2px; width: 100%; background: currentColor; }
.doyle-header .doyle-header__panel {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(680px, 100%);
    max-width: 100%;
    height: 100%;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 28px clamp(24px, 5vw, 76px) 36px;
    border: 0;
    background: #f6f5f2;
    color: #202020;
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    opacity: 0;
    transition: transform .45s cubic-bezier(.22, 1, .36, 1), opacity .3s;
}
.doyle-header .doyle-header__panel[open] { display: flex; flex-direction: column; }
.doyle-header .doyle-header__panel.is-open { transform: translateX(0); opacity: 1; }
.doyle-header__panel::backdrop { background: rgba(0, 0, 0, .48); opacity: 0; transition: opacity .35s; }
.doyle-header__panel.is-open::backdrop { opacity: 1; }
.doyle-header .doyle-header__panel-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 36px; }
.doyle-header__panel-top > span { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #6b6b6b; }
.doyle-header__cross { display: block; position: relative; width: 24px; height: 24px; }
.doyle-header__cross::before, .doyle-header__cross::after { content: ''; position: absolute; top: 11px; left: 0; width: 24px; height: 1.5px; background: currentColor; transform: rotate(45deg); }
.doyle-header__cross::after { transform: rotate(-45deg); }
.doyle-header .doyle-header__links, .doyle-header .doyle-header__links ul { list-style: none; margin: 0; padding: 0; }
.doyle-header .doyle-header__links li { position: relative; float: none !important; margin: 0; padding: 0; background: transparent; text-align: left; }
.doyle-header .doyle-header__links > li { border-bottom: 1px solid #ddddd8; }
.doyle-header .doyle-header__links a {
    display: block;
    padding: 12px 48px 12px 0;
    margin: 0;
    color: #202020 !important;
    font-size: clamp(28px, 1.8vw, 44px);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: 1.25;
    text-decoration: none;
    box-shadow: none;
    background: transparent;
    transition: color .2s, padding-left .2s;
}
.doyle-header .doyle-header__links a:hover { color: #777 !important; padding-left: 8px; }
.doyle-header .doyle-header__links .current-menu-item > a, .doyle-header .doyle-header__links .current_page_item > a { font-weight: 600; }
.doyle-header .doyle-header__links ul { padding: 0 0 16px 18px; }
.doyle-header .doyle-header__links ul a { font-size: 20px; letter-spacing: 0; padding-top: 8px; padding-bottom: 8px; }
.doyle-header .doyle-header__links [hidden] { display: none; }
.doyle-header .doyle-header__submenu-toggle { position: absolute; top: 12px; right: 0; font-size: 26px; font-weight: 300; }
.doyle-header .doyle-header__links ul .doyle-header__submenu-toggle { top: 0; }
.doyle-header .doyle-header__panel-bottom { margin-top: auto; padding-top: 48px; }
.doyle-header .doyle-header__search { display: flex; align-items: center; border-bottom: 1px solid #aaa; }
.doyle-header .doyle-header__search input { width: 100%; min-width: 0; padding: 12px 0; border: 0; border-radius: 0; background: transparent; color: #202020; font: 400 16px/1.5 'Source Sans Pro', Arial, sans-serif; }
.doyle-header .doyle-header__search button { flex-shrink: 0; }
.doyle-header .doyle-header__social-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 24px 0 0; padding: 0; list-style: none; }
.doyle-header .doyle-header__social-links a { font-size: 14px; color: #555; text-decoration: none; box-shadow: none; }
.doyle-header .doyle-header__social-links a:hover { text-decoration: underline; }
html.doyle-header-menu-open { overflow: hidden; }
.admin-bar .doyle-header .doyle-header__panel { top: 32px; height: calc(100% - 32px); height: calc(100dvh - 32px); }
.no-js .doyle-header__toggle { display: none; }
.doyle-header .doyle-header__noscript { padding: 24px; background: #fff; }
@media (max-width: 782px) { .admin-bar .doyle-header .doyle-header__panel { top: 46px; height: calc(100% - 46px); height: calc(100dvh - 46px); } }
@media (max-width: 600px) {
    .doyle-header .doyle-header__bar { min-height: 76px; padding: 10px 20px; }
    .doyle-header .custom-logo { max-height: 48px; }
    .doyle-header .doyle-header__panel { padding-top: 16px; }
    .doyle-header .doyle-header__panel-top { padding-bottom: 24px; }
    .doyle-header .doyle-header__links a { font-size: 32px; }
    .doyle-header .doyle-header__links ul a { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
    .doyle-header .doyle-header__panel, .doyle-header__panel::backdrop, .doyle-header .doyle-header__links a { transition: none; }
}
