/* WordPress adapters retain the approved design rather than imposing a card system. */
.header > nav > .nav-list { display: flex; gap: 28px; align-items: center; }
.nav-list { list-style: none; padding: 0; margin: 0; }
.nav-list li { position: relative; }
.nav-list a { overflow-wrap: anywhere; }
.header > nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; padding: 15px 20px; background: var(--navy); border: 1px solid var(--border); list-style: none; z-index: 10; }
.header > nav .menu-item:hover > .sub-menu, .header > nav .menu-item:focus-within > .sub-menu { display: block; }
.header > nav .sub-menu .sub-menu { top: 0; left: 100%; }
.header > nav .sub-menu a { min-height: 44px; }
.header .brand b { font-size: 23px; }
.brand img.bcswe-logo { width: 45px; height: auto; }
.menu nav > .nav-list { display: grid; gap: 4px; }
.menu .sub-menu { list-style: none; margin: 0; padding: 0 0 0 18px; }
.menu nav { max-height: 75vh; overflow-y: auto; }
.footer .nav-list { display: grid; gap: 3px; }
.footer .sub-menu { list-style: none; padding-left: 18px; }
.homepage > *, .homepage > .wp-block-group { margin-block: 0; }
.homepage .a-opening-images > figure { margin-block: 0; }
.a-intro h1 { margin-block: 24px !important; }
.a-people-story h2 { margin-block: 23px !important; }
.a-people .people-link { margin-block: 0; }
.a-first-grid h2 { overflow-wrap: anywhere; }
.small-date span, .row-date span { text-transform: uppercase; }
.concert-date span { text-transform: uppercase; }
.concert-date span:last-child { text-transform: none; }
.concert-title .title-phrase { display: block; font-style: italic; }
.concert-status { padding: 12px 18px; margin-top: 20px; background: var(--navy); color: var(--cream); border-left: 3px solid var(--cream); font-size: 18px; font-weight: 600; }
.concert-empty { background: var(--navy); padding-block: 45px; }
.concert-empty h2 { font-family: var(--serif); font-size: clamp(30px, 4vw, 48px); letter-spacing: -.04em; margin-block: 20px; max-width: 22ch; }
.concert-actions:empty { display: none; }
.program-link { margin-right: 20px; }
.event-row .event-link { display: inline-flex; align-items: center; }
.event-row h2 { font-family: var(--serif); font-size: clamp(28px, 3vw, 36px); letter-spacing: -.025em; margin-block: 9px; overflow-wrap: anywhere; }
.event-row .row-status { color: var(--brass); font-weight: 600; margin-top: 9px; }
.concert-reading .entry-content > h2 { margin-top: 20px; }
.content-surface { background: var(--surface-light); color: var(--on-light); padding-block: 55px; }
.content-surface a:focus-visible { outline-color: var(--focus-on-light); }
.content-surface .entry-content { max-width: 900px; }
.content-surface .entry-content > :not(.alignwide):not(.alignfull):not(.wp-block-columns):not(.wp-block-gallery) { max-width: 760px; margin-inline: auto; }
.entry-content p, .entry-content ul, .entry-content ol, .entry-content blockquote, .entry-content .wp-block-group { margin-block: 1.25em; }
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 { font-family: var(--serif); letter-spacing: -.03em; margin-block: 1.1em .45em; overflow-wrap: anywhere; }
.entry-content h2 { font-size: clamp(30px, 4vw, 46px); }
.entry-content h3 { font-size: clamp(25px, 3vw, 33px); }
.entry-content a:not(.wp-block-button__link):not(.button) { text-decoration: underline; text-underline-offset: .2em; }
.entry-content img { height: auto; }
.entry-content figure { max-width: 100%; margin-inline: 0; }
.entry-content .wp-block-gallery { gap: 20px; }
.entry-content iframe { max-width: 100%; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 12px; border: 1px solid var(--border); text-align: left; }
.entry-content pre { overflow: auto; }
.wp-block-button__link, input[type=submit], button[type=submit] { background: var(--button-bg); color: var(--button-text); border: 1px solid var(--blue-tint); border-radius: 0; display: inline-flex; align-items: center; padding: 14px 23px; min-height: 52px; font: 600 16px/1.5 var(--body); text-decoration: none; cursor: pointer; }
.wp-block-button__link:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
.content-surface :is(input, textarea, select, button, .wp-block-button__link):focus-visible { outline-color: var(--focus-on-light); }
input:not([type=checkbox]):not([type=radio]):not([type=submit]), textarea, select { max-width: 100%; min-height: 44px; padding: 10px; font: inherit; border: 1px solid var(--navy); background: var(--white); color: var(--navy); }
.final-support .wp-block-button__link, .support-row .wp-block-button__link { background: var(--cream); color: var(--navy); border-color: var(--cream); }
.final-support .wp-block-buttons { margin-block: 23px 0; }
.sound-story h2 { margin-block: 23px !important; }
.sound-story .text-link { margin-top: 0; }
.sound-story > .sound-copy { min-width: 0; }
.sponsor-logos > figure { margin: 0; }
.interior-intro:not(:has(figure)) { grid-template-columns: 1fr; }
.archive-reading { padding-block: 50px 80px; }
.archive-reading > h1 { font-family: var(--serif); font-size: clamp(42px, 6vw, 76px); letter-spacing: -.04em; margin-block: 20px 35px; }
.editorial-result { padding-block: 30px; border-bottom: 1px solid var(--border); }
.editorial-result h2 { font-family: var(--serif); font-size: 36px; }
.editorial-result h2 a { text-decoration: underline; }
.navigation.pagination { padding-block: 30px; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 7px; border: 1px solid var(--border); }
.bcswe-local-payment-note { border: 1px solid currentColor; padding: 20px; margin-block: 20px; font-size: 16px; }
.comments-area { padding-block: 45px; }
.comment-list { padding-left: 24px; }
.comments-area h2 { font-family: var(--serif); font-size: 32px; }
.comments-area a { text-decoration: underline; }
.footer { align-items: start; }
.footer .brand img.bcswe-logo { width: 48px; height: auto; }
@media (max-width: 1100px) { .header > nav > .nav-list { gap: 18px; } .header .nav-cta { display: none; } }
@media (max-width: 900px) {
    .header > nav { display: none; }
    .header { justify-content: space-between; position: relative; }
    .menu { display: block; }
    .menu summary { list-style: none; min-height: 44px; display: flex; align-items: center; font-size: 16px; border-bottom: 1px solid var(--brass); }
    .menu nav { position: absolute; top: 90px; right: 0; background: var(--navy); padding: 18px 24px; z-index: 15; display: grid; min-width: 240px; max-width: min(400px, calc(100vw - 40px)); border: 1px solid var(--border); }
    .menu nav a { min-height: 48px; display: flex; align-items: center; }
}
@media (max-width: 650px) {
    .menu nav { top: 80px; }
    .a-intro h1 { margin-block: 18px !important; }
    .a-people-story h2 { margin-block: 19px !important; }
    .a-community-wide { margin-inline: -20px !important; }
    .wp-block-buttons .wp-block-button { width: 100%; }
    .wp-block-button__link { width: 100%; }
    .event-row { grid-template-columns: 58px minmax(0, 1fr); }
    .content-surface { padding-block: 35px; }
    .footer .brand img.bcswe-logo { width: 44px; height: auto; }
    .concert-reading .entry-content > h2 { font-size: 36px; }
    .concert-actions .program-link { margin-right: 0; }
    .support-close .support-close-copy, .conductor-story .conductor-copy { grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
.concert-stage.undated .concert-composition { grid-template-columns: 1.5fr 1fr; }
.event-meta:has(> div:nth-child(2):last-child) { grid-template-columns: 1fr 1.6fr; }
.event-meta > div:only-child { grid-column: 1 / -1; }
.concert-local-note { font-size: 15px; color: var(--cream); }
.a-opening:has(> .a-opening-images:empty) { grid-template-columns: 1fr; }
.a-opening-images:empty { display: none; }
.a-opening-images:not(:has(.a-performance)) { height: auto; }
.a-opening-images:not(:has(.a-performance)) .a-candid { position: static; width: 100%; height: 300px; }
@media (max-width: 650px) { .concert-stage.undated .concert-composition, .event-meta:has(> div:nth-child(2):last-child) { grid-template-columns: 1fr; } }
/* Native block image defaults must not undo the approved photograph crops. */
.homepage .a-performance img, .homepage .a-candid img { width: 100%; height: 100%; object-fit: cover; }
.homepage :is(.a-opening, .a-people-grid, .sound-story, .support-grid) > * { margin-block: 0; }
.homepage .sponsor-logos img { height: 62px; }
@media (max-width: 650px) { .homepage .sponsor-logos img { height: 50px; } }
.header > nav { min-width: 0; }
.header > nav > .nav-list { flex-wrap: wrap; row-gap: 0; }
.header .nav-cta { flex-shrink: 0; }
.header > nav .nav-list > li:nth-last-child(-n+2) > .sub-menu { left: auto; right: 0; }
.header > nav .sub-menu .sub-menu { position: static; padding: 5px 0 0 16px; border: 0; min-width: 0; }

.skip:focus-visible { outline-color: var(--focus-on-light); }

.long-title .concert-title :is(h1, h2) { font-size: clamp(35px, 3.6vw, 53px); line-height: 1.12; }
/* Phase 4A: quieter single-image arrival; the blue event field stays the main statement. */
.homepage .a-opening { grid-template-columns: 1.05fr 1fr; gap: clamp(35px, 4.5vw, 60px); padding-block: 50px 60px; }
.homepage .a-intro { max-width: 550px; min-width: 0; }
.homepage .a-intro .intro-copy { max-width: 40ch; }
.homepage .a-opening-images { height: clamp(400px, 38vw, 490px); min-width: 0; }
.homepage .a-performance { inset: 0; }
.homepage .a-performance img { object-position: 50% 68%; }
.header .brand img.bcswe-logo { width: 72px; height: auto; }
.header { padding-block: 16px; }
.header > nav > .nav-list { gap: 24px; }
.header nav a, .header .nav-cta { font-size: 17px; }
.menu nav { top: calc(100% - 1px); }
@media (max-width: 1100px) { .header > nav > .nav-list { gap: 18px; } }
@media (min-width: 651px) and (max-width: 800px) {
    .concert-composition > .concert-no-image { grid-column: 1 / -1; }
    .homepage .a-intro h1 { font-size: clamp(44px, 6.4vw, 51px); }
    .homepage .a-opening { gap: 28px; }
    .homepage .a-opening-images { height: 410px; }
}
@media (max-width: 650px) {
    .header { padding-block: 12px; min-height: 88px; gap: 12px; }
    .header .brand { gap: 10px; }
    .header .brand img.bcswe-logo { width: 66px; height: auto; }
    .header .brand b { font-size: 22px; }
    .header .brand small { font-size: 10px; line-height: 1.4; }
    .header .menu summary { min-height: 48px; font-size: 17px; }
    .menu nav { top: calc(100% - 1px); }
    .homepage .a-opening { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 36px 42px; }
    .homepage .a-intro .intro-copy { font-size: 18px; line-height: 1.7; max-width: 36ch; }
    .homepage .a-opening-images { height: clamp(260px, 70vw, 320px); }
    .homepage .a-performance img { object-position: 50% 65%; }
    .homepage .eyebrow { font-size: 13px; line-height: 1.6; letter-spacing: .08em; }
    .homepage .promo-label { font-size: 16px; letter-spacing: .06em; }
    .homepage figcaption { font-size: 14px; line-height: 1.6; }
    .homepage .a-performance figcaption { font-size: 13px; }
    .homepage .concert-stage { padding-block: 32px 38px; }
    .homepage .concert-stage .admission { font-size: 14px; line-height: 1.5; }
    .homepage .concert-date span:last-child { font-size: 15px; line-height: 1.6; }
    .homepage .concert-title p { font-size: 18px; line-height: 1.65; }
    .homepage .concert-stage .event-meta { gap: 22px; padding-block: 24px; margin-bottom: 26px; }
    .homepage .concert-stage .event-meta dt { font-size: 13px; line-height: 1.5; }
    .homepage .concert-stage .event-meta dd { font-size: 17px; line-height: 1.65; }
    .homepage .concert-stage .event-meta dd span { font-size: 16px; }
    .homepage .concert-stage .event-meta > div { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; }
    .long-title .concert-title :is(h1, h2) { font-size: clamp(30px, 8.4vw, 39px); line-height: 1.13; }
    .homepage .concert-actions { gap: 20px; }
    .homepage .a-people { padding-block: 50px; }
    .homepage .a-people-grid { gap: 34px; }
    .homepage .a-people p:not(.eyebrow) { font-size: 18px; line-height: 1.75; }
    .homepage .a-people figcaption { margin-top: 14px; }
    .homepage .upcoming { padding-block: 50px; }
    .homepage .row-date span { font-size: 13px; line-height: 1.4; }
    .homepage .event-row .eyebrow { font-size: 13px; }
    .homepage .event-row p:not(.eyebrow) { font-size: 17px; line-height: 1.65; }
    .homepage .sound-story { gap: 32px; padding-block: 12px 54px; }
    .homepage .sound-story p:not(.eyebrow) { font-size: 18px; line-height: 1.75; }
    .homepage .sound-story figcaption { margin-top: 14px; }
    .homepage .final-support { padding-block: 52px; }
    .homepage .support-grid { gap: 32px; }
    .homepage .final-support p:not(.eyebrow) { font-size: 18px; line-height: 1.75; }
    .homepage .final-support .support-note { font-size: 15px; line-height: 1.7; margin-top: 22px; }
    .homepage .sponsors { padding-block: 54px; }
    .homepage .sponsors h2 { line-height: 1.2; margin-bottom: 32px; }
    .footer { padding-block: 40px; gap: 32px; }
    .footer > p { font-size: 16px; line-height: 1.75; }
    .footer nav a { font-size: 16px; min-height: 48px; }
}
