:root {
    --mh-bg: #f5f0e9;
    --mh-surface: #fbf8f3;
    --mh-text: #171513;
    --mh-muted: #756e67;
    --mh-accent: #8c2f39;
    --mh-line: #ded6cc;
    --mh-max: 1440px;
    --mh-serif: "Cormorant Garamond", "Times New Roman", serif;
    --mh-sans: Inter, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--mh-bg);
    color: var(--mh-text);
    font-family: var(--mh-serif);
    font-size: 18px;
    line-height: 1.55;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
.container { width: min(calc(100% - 40px), var(--mh-max)); margin-inline: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { background: rgba(245,240,233,.96); border-bottom: 1px solid rgba(222,214,204,.55); position: relative; z-index: 20; }
.site-header__inner { min-height: 94px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; }
.site-brand { display: inline-flex; flex-direction: column; text-decoration: none; font-family: var(--mh-sans); text-transform: uppercase; }
.site-brand__name { font-size: 1.08rem; letter-spacing: .28em; }
.site-brand__role { margin-top: 4px; color: var(--mh-muted); font-size: .56rem; letter-spacing: .34em; }
.primary-nav ul, .language-switcher ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 28px; }
.primary-nav { justify-self: end; }
.primary-nav a, .language-switcher a { font-family: var(--mh-sans); font-size: .65rem; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.primary-nav .current-menu-item > a { color: var(--mh-accent); border-bottom: 1px solid var(--mh-accent); padding-bottom: 8px; }
.language-switcher { justify-self: end; }
.language-switcher ul { gap: 8px; }
.menu-toggle { display: none; }

.page-hero { min-height: 600px; display: grid; grid-template-columns: .82fr 1.18fr; align-items: stretch; padding-inline: 0; }
.page-hero__content { padding: clamp(72px, 9vw, 150px) clamp(28px, 7vw, 110px); align-self: center; }
.page-hero h1 { margin: 0; font-weight: 400; font-size: clamp(3.2rem, 7vw, 7.2rem); line-height: .92; letter-spacing: -.025em; }
.page-hero h1::after { content: ""; display: block; width: 44px; margin-top: 32px; border-bottom: 1px solid var(--mh-accent); }
.page-hero__intro { max-width: 29ch; margin-top: 30px; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.eyebrow { color: var(--mh-accent); font-family: var(--mh-sans); font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; }
.prose { max-width: 860px; padding-block: 72px; }
.prose h2, .prose h3 { font-weight: 400; }
.button { display: inline-block; padding: 13px 22px; background: var(--mh-accent); color: white; font-family: var(--mh-sans); font-size: .7rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }

.site-footer { margin-top: 90px; padding: 55px 0; border-top: 1px solid var(--mh-line); background: var(--mh-surface); }
.site-footer__grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr .8fr; gap: 44px; }
.site-footer__title { margin-top: 0; font-family: var(--mh-sans); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer p, .site-footer a { font-size: .9rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }

@media (max-width: 980px) {
    .site-header__inner { grid-template-columns: 1fr auto auto; min-height: 78px; }
    .menu-toggle { display: inline-grid; place-items: center; border: 0; background: transparent; font-size: 1.3rem; }
    .primary-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--mh-bg); border-top: 1px solid var(--mh-line); padding: 22px; }
    .primary-nav.is-open { display: block; }
    .primary-nav ul { align-items: flex-start; flex-direction: column; gap: 16px; }
    .page-hero { grid-template-columns: 1fr; min-height: 0; }
    .page-hero__content { padding: 70px 20px 52px; }
    .page-hero__media { order: -1; max-height: 55vh; overflow: hidden; }
    .site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
    body { font-size: 17px; }
    .container { width: min(calc(100% - 28px), var(--mh-max)); }
    .site-brand__name { font-size: .85rem; }
    .site-brand__role { font-size: .48rem; }
    .language-switcher { display: none; }
    .site-footer__grid { grid-template-columns: 1fr; }
    .page-hero h1 { font-size: clamp(2.8rem, 17vw, 4.6rem); }
}

/* --------------------------------------------------------------------------
   Homepage — editable Gutenberg layout based on the approved mockup
   -------------------------------------------------------------------------- */
.container-wide {
    width: min(100%, var(--mh-max));
    margin-inline: auto;
}

.home-editorial {
    overflow: hidden;
    background: var(--mh-bg);
}

/* Gutenberg can add block margins/gaps. The approved homepage owns all of its
   spacing so the frontend stays faithful to the mockup. */
.home-editorial > .wp-block-group,
.home-editorial .wp-block-group,
.home-editorial .wp-block-image,
.home-editorial .wp-block-cover,
.home-editorial .wp-block-quote,
.home-editorial p,
.home-editorial h1,
.home-editorial h2,
.home-editorial h3 {
    margin-block-start: 0;
}

.home-editorial .wp-block-group {
    margin-block-end: 0;
}

.home-hero {
    min-height: clamp(430px, 45vw, 650px);
    display: grid;
    grid-template-columns: minmax(360px, 48%) minmax(0, 52%);
    background: #f3eee7;
}

.home-hero__copy {
    align-self: center;
    padding: clamp(48px, 6vw, 90px) clamp(34px, 5.8vw, 84px);
}

.home-hero__title,
.home-hero h1 {
    margin: 0;
    font-size: clamp(3.35rem, 5.6vw, 5.35rem);
    font-weight: 400;
    letter-spacing: .035em;
    line-height: .97;
    text-transform: uppercase;
}

/* Important: in the approved mockup MEZZO-SOPRANO sits below MARIE HAMARD. */
.home-hero__role {
    margin: 20px 0 0 !important;
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .67rem;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.home-rule,
.home-editorial hr.home-rule {
    display: block;
    width: 38px;
    height: 0;
    margin: 27px 0 22px;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--mh-accent);
    opacity: 1;
}

.home-hero__intro {
    max-width: 27ch;
    margin: 0 0 31px !important;
    font-size: 1rem;
    line-height: 1.52;
}

.home-hero__image {
    min-height: clamp(430px, 45vw, 650px);
    margin: 0 !important;
    overflow: hidden;
}

.home-hero__image img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    object-position: 50% 34%;
}

.home-text-link {
    display: inline-flex;
    align-items: center;
    gap: 30px;
    margin: 0 !important;
    color: inherit;
    font-family: var(--mh-sans);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-text-link a {
    padding-bottom: 6px;
    border-bottom: 1px solid var(--mh-accent);
    color: inherit;
    text-decoration: none;
}

.home-text-link > span {
    font-family: var(--mh-serif);
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: 0;
}

.home-overview {
    display: grid;
    grid-template-columns: 48% 52%;
    background: var(--mh-surface);
}

.home-overview__intro,
.home-upcoming {
    padding: clamp(42px, 4.8vw, 70px) clamp(34px, 5.5vw, 80px);
}

.home-overview__intro {
    border-right: 1px solid var(--mh-line);
}

.eyebrow {
    margin: 0;
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .66rem;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.home-overview h2 {
    max-width: 11ch;
    margin: 17px 0 0;
    font-size: clamp(2.4rem, 3.5vw, 3.65rem);
    font-weight: 400;
    line-height: 1.02;
}

.home-overview__intro > p:not(.eyebrow):not(.home-text-link) {
    max-width: 44ch;
    margin: 0 0 31px;
    font-size: .92rem;
    line-height: 1.55;
}

.home-upcoming > .eyebrow {
    margin-bottom: 7px;
}

.home-event-list {
    margin-bottom: 24px;
}

.home-event {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 24px;
    align-items: start;
    padding: 25px 0;
    border-bottom: 1px solid var(--mh-line);
}

.home-event__date strong,
.home-event__date span,
.home-event__date small {
    display: block;
}

.home-event__date strong {
    font-size: 2.4rem;
    font-weight: 400;
    line-height: .86;
}

.home-event__date span {
    margin-top: 6px;
    font-size: 1rem;
    letter-spacing: .12em;
}

.home-event__date small {
    margin-top: 2px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .55rem;
    letter-spacing: .24em;
}

.home-event__body h3 {
    margin: 0 0 5px;
    font-size: 1.17rem;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

.home-event__body p {
    margin: 0 !important;
    font-size: .82rem;
    line-height: 1.48;
}

.home-event__actions {
    display: grid;
    gap: 13px;
    padding-top: 2px;
}

.home-event__actions a {
    padding-bottom: 4px;
    border-bottom: 1px solid var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .54rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
}

.home-upcoming__empty {
    min-height: 160px;
    display: flex;
    align-items: center;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--mh-line);
    color: var(--mh-muted);
}

.home-upcoming__empty p {
    margin: 0 !important;
}

/* Gutenberg Cover block: editorial stage feature. */
.home-feature {
    position: relative;
    min-height: clamp(560px, 48vw, 900px);
    padding: 0;
    display: flex;
    align-items: stretch;
    color: #fff;
    overflow: hidden;
    isolation: isolate;
}

.home-feature > .wp-block-cover__image-background {
    object-position: center 64%;
    z-index: 0 !important;
}

@media (min-width: 900px) {
    .home-feature > .wp-block-cover__image-background {
        object-position: center 62%;
    }
}

@media (min-width: 1600px) {
    .home-feature {
        min-height: clamp(800px, 48vw, 900px);
    }
}

/* Full-bleed stage gradient. Use Gutenberg's native cover overlay layer so
   the dark fade always sits ABOVE the image but BELOW the text/content. This
   avoids the recurring issue where the copy appears dark because it is being
   covered by a custom pseudo-element. */
.home-feature::after {
    display: none;
}

.home-feature .wp-block-cover__background {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 1 !important;
    background: linear-gradient(90deg, rgba(5,5,5,.90) 0%, rgba(5,5,5,.70) 25%, rgba(5,5,5,.26) 52%, rgba(5,5,5,.05) 76%, rgba(5,5,5,0) 100%) !important;
}

.home-feature .wp-block-cover__inner-container {
    position: relative;
    z-index: 2 !important;
    width: 100%;
    display: flex;
    background: transparent !important;
}

.home-feature .wp-block-cover__inner-container > * {
    position: relative;
    z-index: 2;
}

.home-feature__content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: clamp(38px, 4.5vw, 55px) clamp(34px, 5.8vw, 84px);
    background: transparent !important;
}

.home-feature .eyebrow {
    color: #cf737c;
}

.home-feature h2 {
    max-width: 12ch;
    margin: 10px 0 0;
    font-size: clamp(2.7rem, 4.4vw, 4.6rem);
    font-weight: 400;
    line-height: .95;
    text-transform: uppercase;
}

.home-feature__composer,
.home-feature__content > p:not(.eyebrow):not(.home-text-link) {
    margin: 5px 0 0 !important;
}

.home-feature .home-rule {
    margin-top: 20px;
    margin-bottom: 20px;
}

.home-text-link--light a {
    border-color: #cf737c;
}

.home-media-press {
    display: grid;
    grid-template-columns: 48% 52%;
    background: var(--mh-surface);
}

.home-media-card,
.home-press-card {
    padding: clamp(36px, 4.3vw, 58px) clamp(34px, 5.5vw, 78px);
}

.home-media-card {
    border-right: 1px solid var(--mh-line);
}

.home-media-card__visual {
    position: relative;
    display: block;
    aspect-ratio: 16 / 8.5;
    margin-top: 24px;
    overflow: hidden;
    background: #111;
}

.home-media-card__visual figure,
.home-media-card__visual figure a {
    width: 100%;
    height: 100%;
    display: block;
    margin: 0;
}

.home-media-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    transition: transform .45s ease;
}

.home-media-card__visual:hover img {
    transform: scale(1.015);
}

.play-button {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 50%;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
    color: #16120f;
    font-family: Arial, sans-serif;
    font-size: .9rem;
    line-height: 1;
    padding-left: 3px;
    text-decoration: none;
}

.home-media-card__caption {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: end;
    padding-top: 14px;
}

.home-media-card__caption h2 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 400;
}

.home-media-card__caption p:not(.home-text-link) {
    margin: 2px 0 0 !important;
    color: var(--mh-muted);
    font-size: .79rem;
}

.home-press-card blockquote,
.home-press-card .wp-block-quote {
    max-width: 23ch;
    margin: 24px 0 0;
    padding: 0;
    border: 0;
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    font-style: italic;
    line-height: 1.2;
}

.home-press-card blockquote p {
    margin: 0 !important;
}

.home-press-card__source {
    margin: 0 0 27px !important;
    font-family: var(--mh-sans);
    font-size: .58rem;
    letter-spacing: .06em;
    line-height: 1.45;
    text-transform: uppercase;
}

.home .site-footer,
.home-editorial + .site-footer {
    margin-top: 0;
}

@media (max-width: 980px) {
    .home-hero {
        min-height: 0;
        grid-template-columns: 48% 52%;
    }
    .home-hero__image {
        min-height: 500px;
    }
    .home-overview,
    .home-media-press {
        grid-template-columns: 1fr;
    }
    .home-overview__intro,
    .home-media-card {
        border-right: 0;
        border-bottom: 1px solid var(--mh-line);
    }
}

@media (max-width: 720px) {
    .home-hero {
        grid-template-columns: 1fr;
    }
    .home-hero__image {
        order: -1;
        min-height: min(68vh, 590px);
    }
    .home-hero__image img {
        object-position: 50% 25%;
    }
    .home-hero__copy {
        padding-top: 44px;
        padding-bottom: 54px;
    }
    .home-hero__title,
    .home-hero h1 {
        font-size: clamp(3.4rem, 17vw, 5.2rem);
    }
    .home-event {
        grid-template-columns: 58px 1fr;
        gap: 17px;
    }
    .home-event__date strong {
        font-size: 2rem;
    }
    .home-event__actions {
        grid-column: 2;
        grid-template-columns: repeat(2, max-content);
    }
    .home-feature {
        min-height: 560px;
    }
    .home-feature > .wp-block-cover__image-background {
        object-position: 53% center;
    }
    .home-feature .wp-block-cover__background {
        background: linear-gradient(90deg, rgba(5,5,5,.90) 0%, rgba(5,5,5,.72) 48%, rgba(5,5,5,.28) 100%) !important;
    }
    .home-media-card__caption {
        grid-template-columns: 1fr;
    }
}


/* v1.5 — Homepage full-bleed fixes.
   Gutenberg/global layout rules must not add side gutters to the approved
   homepage composition. The hero, overview and media/press rows all run edge
   to edge, like the stage feature. */
.home-editorial > .home-hero,
.home-editorial > .home-overview.container-wide,
.home-editorial > .home-media-press.container-wide {
    width: 100%;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* The Carmen feature sits on a dark photograph. Force all editorial copy to
   remain white even when WordPress global block styles inject text colors. */
.home-feature,
.home-feature h1,
.home-feature h2,
.home-feature h3,
.home-feature p,
.home-feature em,
.home-feature a,
.home-feature .home-text-link,
.home-feature .home-text-link > span {
    color: #fff !important;
}

/* Keep only the small section eyebrow in the burgundy/pink accent. */
.home-feature .eyebrow {
    color: #cf737c !important;
}

/* Footer settings */
.site-footer__brand { margin-bottom: 18px; }
.site-footer p { margin: 0 0 4px; }
.site-footer__socials { display: grid; gap: 3px; }
.site-footer__legal span { font-size: .9rem; }

/* --------------------------------------------------------------------------
   Events — custom-plugin powered editorial index
   -------------------------------------------------------------------------- */
.events-page {
    background: var(--mh-bg);
}

.events-hero {
    min-height: clamp(390px, 43vw, 610px);
    display: grid;
    grid-template-columns: minmax(320px, 43%) minmax(0, 57%);
    background: #f3eee7;
}

.events-hero__copy {
    align-self: center;
    padding: clamp(58px, 7.5vw, 112px) clamp(34px, 6vw, 92px);
}

.events-hero__copy h1 {
    margin: 0;
    font-size: clamp(3rem, 5.4vw, 5.8rem);
    font-weight: 400;
    letter-spacing: -.015em;
    line-height: .96;
    text-transform: uppercase;
}

.events-hero__rule {
    display: block;
    width: 38px;
    margin: 30px 0 25px;
    border-top: 1px solid var(--mh-accent);
}

.events-hero__copy p {
    max-width: 31ch;
    margin: 0;
    font-size: 1rem;
    line-height: 1.55;
}

.events-hero__media {
    margin: 0;
    min-height: 100%;
    overflow: hidden;
}

.events-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 32%;
}

.events-index {
    max-width: 1180px;
    padding-top: clamp(42px, 5vw, 72px);
    padding-bottom: clamp(75px, 8vw, 120px);
}

.events-tabs {
    display: flex;
    gap: 44px;
    border-bottom: 1px solid var(--mh-line);
}

.events-tab {
    position: relative;
    margin: 0;
    padding: 0 0 14px;
    border: 0;
    background: transparent;
    color: var(--mh-text);
    cursor: pointer;
    font-family: var(--mh-sans);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.events-tab::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 0;
    border-bottom: 1px solid var(--mh-accent);
    transition: width .18s ease;
}

.events-tab.is-active::after,
.events-tab:hover::after,
.events-tab:focus-visible::after {
    width: 100%;
}

.events-panel[hidden] {
    display: none;
}

.events-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 112px;
    gap: clamp(22px, 3.4vw, 50px);
    align-items: start;
    padding: clamp(32px, 4vw, 52px) 0;
    border-bottom: 1px solid var(--mh-line);
}

.events-row__date strong,
.events-row__date span,
.events-row__date small {
    display: block;
}

.events-row__date strong {
    font-size: clamp(2.4rem, 3vw, 3.5rem);
    font-weight: 400;
    line-height: .82;
}

.events-row__date span {
    margin-top: 9px;
    font-size: 1.08rem;
    letter-spacing: .12em;
}

.events-row__date small {
    margin-top: 4px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .6rem;
    letter-spacing: .27em;
}

.events-row__date .events-row__tba {
    margin-top: 3px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .64rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.events-row__body h2 {
    margin: 0 0 7px;
    font-size: clamp(1.15rem, 1.6vw, 1.48rem);
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

.events-row__body p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.5;
}

.events-row__role {
    font-variant: small-caps;
    letter-spacing: .025em;
}

.events-row__actions {
    display: grid;
    justify-items: start;
    gap: 19px;
    padding-top: 2px;
}

.events-row__actions a {
    padding-bottom: 4px;
    border-bottom: 1px solid var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
}

.events-empty {
    min-height: 220px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--mh-line);
    color: var(--mh-muted);
}

.event-single__article {
    max-width: 980px;
    padding-top: clamp(70px, 9vw, 130px);
    padding-bottom: 90px;
}

.event-single__article > h1 {
    max-width: 14ch;
    margin: 16px 0 38px;
    font-size: clamp(3rem, 6vw, 6rem);
    font-weight: 400;
    line-height: .95;
}

.event-single__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 48px;
    background: var(--mh-line);
    border: 1px solid var(--mh-line);
}

.event-single__meta > div {
    padding: 22px 24px;
    background: var(--mh-surface);
}

.event-single__meta span,
.event-single__meta strong {
    display: block;
}

.event-single__meta span {
    margin-bottom: 5px;
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .58rem;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.event-single__meta strong {
    font-weight: 400;
}

.event-single__image {
    margin: 0 0 48px;
}

.event-single__content.prose {
    padding-block: 0 50px;
}

.event-single__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    border-top: 1px solid var(--mh-line);
    padding-top: 28px;
}

.events-back {
    font-family: var(--mh-sans);
    font-size: .64rem;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
}

@media (max-width: 760px) {
    .events-hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .events-hero__copy {
        order: 2;
        padding: 54px 24px 62px;
    }

    .events-hero__media {
        max-height: 54vh;
        aspect-ratio: 4 / 3;
    }

    .events-row {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 20px;
    }

    .events-row__actions {
        grid-column: 2;
        grid-auto-flow: column;
        justify-content: start;
        gap: 25px;
        padding-top: 8px;
    }

    .event-single__meta {
        grid-template-columns: 1fr;
    }
}

/* v1.8 — Events hero now lives in editable WordPress blocks. */
.events-hero > .events-hero__copy,
.events-hero > .events-hero__media {
    min-width: 0;
}
.events-hero .wp-block-image.events-hero__media {
    margin: 0;
    height: 100%;
}
.events-hero .wp-block-image.events-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 32%;
}


/* --------------------------------------------------------------------------
   v2.3 — Homepage width follows the same container strategy as the header

   Hero, Presence/Coming up and Listen/Press now use the exact same horizontal
   container behavior as .site-header__inner: 20px gutters, capped by
   --mh-max (1440px), and 14px gutters on small screens. Carmen intentionally
   remains full-bleed.
   -------------------------------------------------------------------------- */
.home-editorial > .home-hero,
.home-editorial > .home-overview.container-wide,
.home-editorial > .home-media-press.container-wide {
    width: min(calc(100% - 40px), var(--mh-max)) !important;
    max-width: var(--mh-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 620px) {
    .home-editorial > .home-hero,
    .home-editorial > .home-overview.container-wide,
    .home-editorial > .home-media-press.container-wide {
        width: min(calc(100% - 28px), var(--mh-max)) !important;
    }
}

/* Carmen stays full-bleed. */
.home-editorial > .home-feature {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Keep Carmen copy white over the stage image; eyebrow stays accented. */
.home-feature,
.home-feature h1,
.home-feature h2,
.home-feature h3,
.home-feature p,
.home-feature em,
.home-feature a,
.home-feature .wp-block-cover__inner-container,
.home-feature .home-feature__content,
.home-feature .home-feature__composer,
.home-feature .home-text-link,
.home-feature .home-text-link > span {
    color: #fff !important;
}

.home-feature .eyebrow {
    color: #cf737c !important;
}

/* --------------------------------------------------------------------------
   v3.2 — Events page: repertoire-inspired editorial layout
   -------------------------------------------------------------------------- */

/* All page heroes use the exact same horizontal container as the header.
   Generic .page-hero already carries .container in PHP; Events is a Gutenberg
   block and receives the same rule here. */
.events-page > .events-hero {
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin-inline: auto;
}

.events-feature,
.events-index {
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin-inline: auto;
}

.events-feature {
    padding-top: clamp(34px, 4vw, 58px);
}

.events-section-title {
    display: grid;
    justify-items: center;
    margin-bottom: 26px;
    text-align: center;
}

.events-section-title h2 {
    margin: 0;
    font-family: var(--mh-sans);
    font-size: clamp(.82rem, .9vw, 1rem);
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.events-section-title span {
    width: 44px;
    margin-top: 12px;
    border-top: 1px solid var(--mh-accent);
}

.events-feature-card {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(330px, .95fr);
    min-height: clamp(470px, 45vw, 680px);
    background: #0b0b0b;
    color: #fff;
}

.events-feature-card__image {
    min-width: 0;
    margin: 0;
    overflow: hidden;
}

.events-feature-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.events-feature-card__copy {
    align-self: stretch;
    padding: clamp(42px, 5vw, 78px) clamp(34px, 4.5vw, 70px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.events-feature-card__eyebrow {
    margin: 0 0 10px;
    color: #cf737c;
    font-family: var(--mh-sans);
    font-size: .68rem;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.events-feature-card__copy h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(2.8rem, 4.5vw, 5.2rem);
    font-weight: 400;
    line-height: .96;
}

.events-feature-card__role {
    margin: 10px 0 0;
    color: #fff;
    font-size: clamp(1.08rem, 1.35vw, 1.45rem);
}

.events-feature-card__rule {
    width: 46px;
    margin: 24px 0 22px;
    border-top: 1px solid var(--mh-accent);
}

.events-feature-card__excerpt {
    max-width: 34ch;
    margin: 0;
    color: rgba(255,255,255,.9);
    font-family: var(--mh-sans);
    font-size: .82rem;
    line-height: 1.65;
}

.events-feature-card__meta {
    display: grid;
    gap: 10px;
    margin: 28px 0 0;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.18);
}

.events-feature-card__meta > div {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 10px;
}

.events-feature-card__meta dt,
.events-feature-card__meta dd {
    margin: 0;
}

.events-feature-card__meta dt {
    color: #cf737c;
    font-family: var(--mh-sans);
    font-size: .56rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.events-feature-card__meta dd {
    color: #fff;
    font-family: var(--mh-sans);
    font-size: .75rem;
}

.events-feature-card__link {
    align-self: flex-start;
    margin-top: 28px;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--mh-accent);
    color: #fff;
    font-family: var(--mh-sans);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
}

.events-feature-card__link span {
    margin-left: 20px;
}

.events-feature-gallery {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    background: #111;
}

.events-feature-gallery figure {
    aspect-ratio: 1.35 / 1;
    margin: 0;
    overflow: hidden;
    border-right: 1px solid rgba(255,255,255,.8);
}

.events-feature-gallery figure:last-child {
    border-right: 0;
}

.events-feature-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.events-index {
    max-width: var(--mh-max);
    padding-top: clamp(46px, 5vw, 76px);
    padding-bottom: 0;
}

.events-index--past {
    padding-top: clamp(58px, 6vw, 90px);
    padding-bottom: clamp(70px, 8vw, 120px);
}

.events-works-list {
    border-top: 1px solid var(--mh-line);
}

.events-work-row {
    display: grid;
    grid-template-columns: minmax(105px, .75fr) minmax(240px, 1.65fr) minmax(130px, .9fr) minmax(220px, 1.45fr) 130px 30px;
    gap: clamp(16px, 2.4vw, 38px);
    align-items: center;
    min-height: 84px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--mh-line);
}

.events-work-row__composer {
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .61rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.events-work-row__title {
    margin: 0;
    font-size: clamp(1.15rem, 1.55vw, 1.6rem);
    font-weight: 400;
    line-height: 1.15;
}

.events-work-row__role,
.events-work-row__place,
.events-work-row__date {
    color: #38332f;
    font-size: .82rem;
    line-height: 1.35;
}

.events-work-row__date {
    font-family: var(--mh-sans);
    font-size: .64rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.events-work-row__more {
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    color: var(--mh-text);
    font-family: var(--mh-sans);
    font-size: 1.45rem;
    font-weight: 300;
    line-height: 1;
    text-decoration: none;
}

.events-work-row__more:hover,
.events-work-row__more:focus-visible {
    color: var(--mh-accent);
}

.events-works-list--past .events-work-row {
    opacity: .78;
}

@media (max-width: 1040px) {
    .events-feature-card {
        grid-template-columns: minmax(0, 1.3fr) minmax(300px, .9fr);
    }

    .events-work-row {
        grid-template-columns: 105px minmax(220px, 1.5fr) minmax(120px, .8fr) minmax(180px, 1fr) 110px 30px;
        gap: 16px;
    }
}

@media (max-width: 820px) {
    .events-feature-card {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .events-feature-card__image {
        aspect-ratio: 16 / 10;
    }

    .events-feature-card__copy {
        padding: 38px 28px 44px;
    }

    .events-feature-gallery {
        grid-template-columns: repeat(3, 1fr);
    }

    .events-feature-gallery figure:nth-child(n+4) {
        display: none;
    }

    .events-work-row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 5px 18px;
        padding: 22px 4px;
    }

    .events-work-row__composer,
    .events-work-row__title,
    .events-work-row__role,
    .events-work-row__place,
    .events-work-row__date {
        grid-column: 1;
    }

    .events-work-row__more {
        grid-column: 2;
        grid-row: 1 / span 5;
        align-self: center;
    }

    .events-work-row__title {
        margin: 3px 0 5px;
    }
}

@media (max-width: 620px) {
    .events-page > .events-hero,
    .events-feature,
    .events-index {
        width: min(calc(100% - 28px), var(--mh-max));
    }

    .events-feature {
        padding-top: 30px;
    }

    .events-feature-card__image {
        aspect-ratio: 4 / 3;
    }

    .events-feature-gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    .events-feature-gallery figure:nth-child(n+3) {
        display: none;
    }
}

/* Keep every standard page hero aligned with the header, even if a future
   template forgets to add the .container utility class explicitly. */
.page-hero {
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin-inline: auto;
}

@media (max-width: 620px) {
    .page-hero {
        width: min(calc(100% - 28px), var(--mh-max));
    }
}

/* --------------------------------------------------------------------------
   v3.3 — Site-wide full-background heroes

   Every page hero now follows the header container width, while its image
   fills the complete hero as a background layer. Foreground colours are page
   variables configured in the WordPress page editor:
   --mh-hero-text / --mh-hero-rule.
   -------------------------------------------------------------------------- */

/* Full-width colour band behind the header-aligned hero. The photograph stays
   constrained to the same container as the header, while the selected colour
   fills the left/right gutters so dark images can visually blend into black. */
.mh-hero-bg-context {
    position: relative;
}

.mh-hero-bg-context::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: clamp(500px, 42vw, 650px);
    background: var(--mh-hero-bg, #f3eee7);
    pointer-events: none;
    z-index: 0;
}

.mh-hero-bg-context > * {
    position: relative;
    z-index: 1;
}

/* Shared hero layer model. */
.page-hero,
.home-editorial > .home-hero,
.events-page > .events-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: min(calc(100% - 40px), var(--mh-max)) !important;
    max-width: var(--mh-max) !important;
    margin-inline: auto !important;
    min-height: clamp(500px, 42vw, 650px);
    display: block;
    background: var(--mh-hero-bg, #f3eee7);
    color: var(--mh-hero-text, var(--mh-text));
}

/* The image is a true edge-to-edge background layer inside the header-aligned
   hero container. The image remains an editable WP image/Featured Image. */
.page-hero__media,
.home-hero > .home-hero__image,
.events-hero > .events-hero__media {
    position: absolute !important;
    inset: 0;
    z-index: -1;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden;
}

.page-hero__media img,
.home-hero > .home-hero__image img,
.events-hero > .events-hero__media img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover;
}

/* Keep copy above the image and in an editorial readable measure. */
.page-hero__content,
.home-hero > .home-hero__copy,
.events-hero > .events-hero__copy {
    position: relative;
    z-index: 2;
    width: min(52%, 650px);
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(58px, 7vw, 105px) clamp(34px, 5.8vw, 84px);
    color: inherit;
}

/* One chosen foreground colour drives all hero typography. */
.page-hero__content,
.page-hero__content h1,
.page-hero__content p,
.page-hero__content a,
.page-hero__content .eyebrow,
.home-hero > .home-hero__copy,
.home-hero > .home-hero__copy h1,
.home-hero > .home-hero__copy p,
.home-hero > .home-hero__copy a,
.home-hero > .home-hero__copy .home-hero__role,
.events-hero > .events-hero__copy,
.events-hero > .events-hero__copy h1,
.events-hero > .events-hero__copy p,
.events-hero > .events-hero__copy a {
    color: var(--mh-hero-text, var(--mh-text)) !important;
}

/* The small rule is independently configurable per page. */
.page-hero h1::after {
    border: 0;
    width: 44px;
    height: 1px;
    background: var(--mh-hero-rule, var(--mh-accent));
}

.home-hero .home-rule,
.events-hero .events-hero__rule {
    border: 0 !important;
    height: 1px !important;
    background: var(--mh-hero-rule, var(--mh-accent));
    opacity: 1;
}

/* Preserve the approved positioning defaults, now across the full background. */
.home-hero > .home-hero__image img {
    object-position: 50% 34%;
}

.events-hero > .events-hero__media img {
    object-position: center 32%;
}

@media (max-width: 980px) {
    .mh-hero-bg-context::before {
        height: clamp(460px, 72vw, 620px);
    }

    .page-hero,
    .home-editorial > .home-hero,
    .events-page > .events-hero {
        min-height: clamp(460px, 72vw, 620px);
    }

    .page-hero__content,
    .home-hero > .home-hero__copy,
    .events-hero > .events-hero__copy {
        width: min(78%, 620px);
        min-height: inherit;
        padding: 64px clamp(26px, 6vw, 58px);
    }

    /* Historical mobile rules moved page media above the copy. It is now a
       background layer on every viewport. */
    .page-hero__media {
        order: initial;
    }
}

@media (max-width: 620px) {
    .mh-hero-bg-context::before {
        height: 500px;
    }

    .page-hero,
    .home-editorial > .home-hero,
    .events-page > .events-hero {
        width: min(calc(100% - 28px), var(--mh-max)) !important;
        min-height: 500px;
    }

    .page-hero__content,
    .home-hero > .home-hero__copy,
    .events-hero > .events-hero__copy {
        width: 100%;
        min-height: inherit;
        padding: 54px 28px;
        justify-content: flex-end;
    }
}

/* --------------------------------------------------------------------------
   v3.5 — Biography hero now lives in Gutenberg

   The block deliberately reuses the shared .page-hero layer model, so the
   image fills the hero visually while remaining a normal replaceable Image
   block inside Pages → Biographie / Biography.
   -------------------------------------------------------------------------- */
.page-template-biography .bio-hero {
    margin-bottom: 0 !important;
}

.page-template-biography .bio-hero .page-hero__media img {
    object-position: 62% 30%;
}

/* --------------------------------------------------------------------------
   v3.4 — Biography / Biographie editorial page
   -------------------------------------------------------------------------- */
.biography-content {
    /* Biography's editable hero sits inside .entry-content. A solid surface
       background here used to cover the full-width hero gutter colour from
       .mh-hero-bg-context, leaving beige strips beside dark hero images.
       Paint the selected hero background for exactly the hero band, then
       return to the normal page surface below it. */
    background:
        linear-gradient(
            to bottom,
            var(--mh-hero-bg, #f3eee7) 0,
            var(--mh-hero-bg, #f3eee7) clamp(500px, 42vw, 650px),
            var(--mh-surface) clamp(500px, 42vw, 650px),
            var(--mh-surface) 100%
        );
}

.bio-editorial,
.bio-editorial .wp-block-group,
.bio-editorial .wp-block-image,
.bio-editorial p,
.bio-editorial h2,
.bio-editorial h3 {
    margin-block-start: 0;
}

.bio-editorial .wp-block-group,
.bio-editorial .wp-block-image {
    margin-block-end: 0;
}

.bio-section {
    padding-block: clamp(70px, 7vw, 112px);
}

.bio-opening,
.bio-career {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(52px, 7vw, 112px);
    align-items: start;
}

.bio-opening__copy,
.bio-opening__aside,
.bio-career__column {
    min-width: 0;
}

.bio-lede {
    max-width: 31ch;
    margin-bottom: 38px !important;
    color: var(--mh-accent);
    font-size: clamp(1.55rem, 2.25vw, 2.35rem);
    line-height: 1.2;
}

.bio-editorial p {
    margin-bottom: 24px;
}

.bio-editorial strong {
    font-weight: 600;
}

.bio-editorial a {
    text-decoration-color: rgba(140,47,57,.55);
    text-underline-offset: .18em;
}

.bio-image {
    overflow: hidden;
    background: #e8dfd4;
}

.bio-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bio-image--portrait {
    aspect-ratio: 4 / 3;
    margin-bottom: clamp(42px, 5vw, 70px) !important;
}

.bio-image--portrait img {
    object-position: center 28%;
}

.bio-image--secondary {
    aspect-ratio: 4 / 3;
    margin-top: clamp(42px, 5vw, 72px) !important;
}

.bio-image--secondary img {
    object-position: center 18%;
    filter: grayscale(1);
}

.bio-pullquote-band {
    padding: clamp(52px, 5vw, 78px) 0;
    border-block: 1px solid var(--mh-line);
    background: #eee5da;
}

.bio-pullquote {
    position: relative;
    max-width: 1040px;
    margin-inline: auto !important;
    margin-bottom: 0 !important;
    padding-left: clamp(58px, 7vw, 100px);
    font-size: clamp(1.65rem, 2.4vw, 2.55rem);
    font-style: italic;
    line-height: 1.3;
}

.bio-pullquote::before {
    content: "“";
    position: absolute;
    left: 0;
    top: -.22em;
    color: var(--mh-accent);
    font-family: Georgia, serif;
    font-size: clamp(4.2rem, 7vw, 7rem);
    font-style: normal;
    line-height: 1;
}

.bio-career {
    padding-bottom: clamp(76px, 8vw, 126px);
}

.bio-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin-inline: auto !important;
    padding: clamp(58px, 5.5vw, 88px) 0 clamp(44px, 4.5vw, 72px);
    border-top: 0;
}

.bio-card {
    min-width: 0;
    padding: 0 clamp(34px, 4vw, 70px) clamp(10px, 1vw, 18px);
    border-right: 1px solid var(--mh-line);
}

.bio-card:first-child {
    padding-left: 0;
}

.bio-card:last-child {
    padding-right: 0;
    border-right: 0;
}

.bio-card h3 {
    position: relative;
    margin-bottom: clamp(28px, 2.5vw, 38px) !important;
    padding-top: 48px;
    font-size: clamp(1.75rem, 2.2vw, 2.35rem);
    font-weight: 400;
}

.bio-card h3::before {
    content: "";
    position: absolute;
    top: 16px;
    left: 0;
    width: 42px;
    height: 1px;
    background: var(--mh-accent);
}

.bio-card p {
    color: #4f4944;
    font-size: clamp(1rem, 1.15vw, 1.08rem);
    line-height: 1.7;
}

.bio-credits {
    margin-bottom: 0 !important;
    padding-bottom: clamp(64px, 6vw, 92px);
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .68rem;
    letter-spacing: .13em;
    text-align: center;
    text-transform: uppercase;
}

.page-template-biography .page-hero__media img {
    object-position: 62% 30%;
}

.page-template-biography .site-footer {
    margin-top: 0;
}

@media (max-width: 900px) {
    .bio-highlights {
        width: min(calc(100% - 40px), var(--mh-max));
        padding-top: 46px;
    }

    .bio-opening,
    .bio-career {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .bio-opening__aside {
        display: contents;
    }

    .bio-opening__aside .bio-image {
        order: -1;
    }

    .bio-highlights {
        grid-template-columns: 1fr;
    }

    .bio-card,
    .bio-card:first-child,
    .bio-card:last-child {
        padding: 36px 0;
        border-right: 0;
        border-bottom: 1px solid var(--mh-line);
    }

    .bio-card:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 620px) {
    .bio-highlights {
        width: min(calc(100% - 28px), var(--mh-max));
    }

    .bio-section {
        padding-block: 56px;
    }

    .bio-lede {
        font-size: 1.5rem;
    }

    .bio-pullquote {
        padding-left: 48px;
        font-size: 1.55rem;
    }

    .bio-image--portrait,
    .bio-image--secondary {
        aspect-ratio: 5 / 4;
    }
}


/* --------------------------------------------------------------------------
   v3.7 — Biography semantic editorial flow

   The visual order now follows the Gutenberg / HTML order exactly. No
   display:contents, nth-child placement, CSS columns or grid-row teleporting.
   Editors can move blocks in WordPress and the front end follows that order.
   -------------------------------------------------------------------------- */
.bio-layout-v37 .bio-intro,
.bio-layout-v37 .bio-career-v37 {
    padding-block: clamp(64px, 6vw, 104px);
}

.bio-layout-v37 .bio-split {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: clamp(48px, 6vw, 96px);
    align-items: start;
}

.bio-layout-v37 .bio-split--image-left {
    grid-template-columns: minmax(340px, .88fr) minmax(0, 1.12fr);
}

.bio-layout-v37 .bio-split__copy {
    min-width: 0;
}

.bio-layout-v37 .bio-split__copy > :last-child,
.bio-layout-v37 .bio-text-pair__item > :last-child {
    margin-bottom: 0;
}

.bio-layout-v37 .bio-image--portrait,
.bio-layout-v37 .bio-image--secondary {
    width: 100%;
    margin: 0 !important;
    filter: none;
}

.bio-layout-v37 .bio-image--portrait {
    aspect-ratio: 4 / 3;
}

.bio-layout-v37 .bio-image--secondary {
    aspect-ratio: 4 / 3;
}

.bio-layout-v37 .bio-image--portrait img {
    object-position: center 28%;
}

.bio-layout-v37 .bio-image--secondary img {
    object-position: center 24%;
    filter: none;
}

.bio-layout-v37 .bio-text-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(48px, 6vw, 96px);
    align-items: start;
}

.bio-layout-v37 .bio-text-pair--repertoire {
    margin-top: clamp(48px, 5vw, 76px) !important;
    padding-top: clamp(42px, 4vw, 62px);
    border-top: 1px solid var(--mh-line);
}

.bio-layout-v37 .bio-career-v37 {
    padding-bottom: clamp(70px, 7vw, 116px);
}

.bio-layout-v37 .bio-text-pair--career {
    margin-top: clamp(52px, 5.5vw, 84px) !important;
    padding-top: clamp(44px, 4vw, 64px);
    border-top: 1px solid var(--mh-line);
}

/* Keep the closing three-column section aligned with the main site container
   and give it the calmer spacing approved in the revised mock-up. */
.bio-layout-v37 .bio-highlights {
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin-inline: auto !important;
    padding: clamp(64px, 6vw, 96px) 0 clamp(48px, 4.5vw, 72px);
}

.bio-layout-v37 .bio-card {
    padding-inline: clamp(38px, 4vw, 68px);
}

.bio-layout-v37 .bio-card:first-child {
    padding-left: 0;
}

.bio-layout-v37 .bio-card:last-child {
    padding-right: 0;
}

.bio-layout-v37 .bio-card h3 {
    font-size: clamp(1.8rem, 2.15vw, 2.35rem);
}

.bio-layout-v37 .bio-credits {
    padding-bottom: clamp(66px, 6vw, 92px);
}

@media (max-width: 900px) {
    .bio-layout-v37 .bio-split,
    .bio-layout-v37 .bio-split--image-left,
    .bio-layout-v37 .bio-text-pair {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .bio-layout-v37 .bio-text-pair--repertoire,
    .bio-layout-v37 .bio-text-pair--career {
        margin-top: 42px !important;
        padding-top: 36px;
    }

    .bio-layout-v37 .bio-highlights {
        width: min(calc(100% - 40px), var(--mh-max));
        padding-top: 50px;
    }
}

@media (max-width: 620px) {
    .bio-layout-v37 .bio-intro,
    .bio-layout-v37 .bio-career-v37 {
        padding-block: 52px;
    }

    .bio-layout-v37 .bio-highlights {
        width: min(calc(100% - 28px), var(--mh-max));
    }
}

/* --------------------------------------------------------------------------
   v4.0 — Media / Médias
   The HTML order is the Gutenberg order. No CSS reordering is used here.
   -------------------------------------------------------------------------- */
.page-template-media .media-hero .page-hero__media img {
    object-position: center 42%;
}

.media-editorial {
    padding: clamp(70px, 7vw, 110px) 0 clamp(90px, 8vw, 130px);
}

.media-section + .media-section {
    margin-top: clamp(90px, 8vw, 130px);
}

.media-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
    column-gap: clamp(45px, 7vw, 110px);
    align-items: end;
    padding-bottom: clamp(28px, 3vw, 44px);
    border-bottom: 1px solid var(--mh-line);
}

.media-section__heading .eyebrow {
    grid-column: 1 / -1;
    margin: 0 0 12px;
    color: var(--mh-accent);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.media-section__heading h2 {
    margin: 0;
    font-size: clamp(2.6rem, 4.3vw, 4.8rem);
    font-weight: 400;
    line-height: .98;
}

.media-section__heading > p:last-child {
    max-width: 38ch;
    margin: 0 0 .25em;
    color: var(--mh-muted);
    font-size: clamp(1rem, 1.25vw, 1.16rem);
    line-height: 1.6;
}

.media-audio-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 3vw, 46px);
    padding-top: clamp(34px, 4vw, 58px);
}

.media-audio-card {
    min-width: 0;
    padding: clamp(20px, 2.2vw, 32px);
    border: 1px solid var(--mh-line);
    background: rgba(255,255,255,.36);
}


/* v4.1 — Custom SoundCloud-backed track list. The original embeds stay in the
   DOM as audio engines/fallback, but disappear visually only after JS has
   successfully built the editorial list. */
.media-audio-section {
    position: relative;
}

.media-audio-list {
    margin-top: clamp(34px, 4vw, 58px);
    border-top: 1px solid var(--mh-line);
}

.media-audio-list__loading {
    margin: 0;
    padding: 28px 0;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .82rem;
    letter-spacing: .06em;
}

.media-audio-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: clamp(16px, 2vw, 26px);
    align-items: center;
    min-height: 84px;
    padding: 16px 4px;
    border-bottom: 1px solid var(--mh-line);
}

.media-audio-row__play {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0 0 0 2px;
    border: 1px solid rgba(165,91,97,.36);
    border-radius: 50%;
    background: transparent;
    color: var(--mh-accent);
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.media-audio-row__play:hover,
.media-audio-row__play:focus-visible,
.media-audio-row__play.is-playing {
    border-color: var(--mh-accent);
    background: var(--mh-accent);
    color: #fff;
}

.media-audio-row__icon {
    font-family: Arial, sans-serif;
    font-size: .72rem;
    line-height: 1;
}

.media-audio-row__copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.media-audio-row__title {
    width: fit-content;
    max-width: 100%;
    overflow: hidden;
    color: var(--mh-text);
    font-family: var(--mh-serif);
    font-size: clamp(1rem, 1.2vw, 1.18rem);
    line-height: 1.25;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.media-audio-row__title:hover,
a.media-audio-row__title:focus-visible {
    color: var(--mh-accent);
}

.media-audio-row__artist {
    overflow: hidden;
    color: var(--mh-muted);
    font-size: .82rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.media-audio-row__duration {
    color: var(--mh-muted);
    font-family: var(--mh-serif);
    font-size: .88rem;
    font-variant-numeric: tabular-nums;
}

.media-audio-section.is-enhanced .media-audio-grid {
    position: absolute;
    left: 0;
    top: 0;
    width: 2px;
    height: 2px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    opacity: .001;
    pointer-events: none;
}

.media-audio-section.is-enhanced .media-audio-card,
.media-audio-section.is-enhanced .media-embed--soundcloud,
.media-audio-section.is-enhanced .media-embed--soundcloud iframe {
    width: 2px !important;
    height: 2px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.media-embed iframe {
    display: block;
    width: 100%;
    border: 0;
}

.media-embed--soundcloud iframe {
    height: 300px;
}

.media-embed--playlist iframe {
    height: 300px;
}

.media-video-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(52px, 6vw, 88px) clamp(30px, 4vw, 60px);
    padding-top: clamp(40px, 5vw, 68px);
}

.media-video-card {
    min-width: 0;
}

.media-embed--video {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #111;
}

.media-embed--video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.media-video-card__caption {
    padding-top: 20px;
}

.media-video-card__title {
    margin: 0;
    font-family: var(--mh-serif);
    font-size: clamp(1.28rem, 1.6vw, 1.65rem);
    line-height: 1.25;
}

.media-video-card__title em {
    font-style: italic;
}

.media-video-card__meta {
    margin: 10px 0 0;
    color: var(--mh-muted);
    font-size: .92rem;
    line-height: 1.6;
}

/* Give the first performance a little more editorial weight without changing
   HTML order: it spans the grid, while every following video remains in order. */
.media-video-grid > .media-video-card:first-child {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
    gap: clamp(28px, 4vw, 58px);
    align-items: center;
    padding-bottom: clamp(38px, 4vw, 58px);
    border-bottom: 1px solid var(--mh-line);
}

.media-video-grid > .media-video-card:first-child .media-video-card__caption {
    padding-top: 0;
}

.media-video-grid > .media-video-card:first-child .media-video-card__title {
    font-size: clamp(1.7rem, 2.5vw, 2.6rem);
}

@media (max-width: 900px) {
    .media-section__heading {
        grid-template-columns: 1fr;
        row-gap: 14px;
    }

    .media-audio-grid,
    .media-video-grid {
        grid-template-columns: 1fr;
    }

    .media-video-grid > .media-video-card:first-child {
        grid-column: auto;
        grid-template-columns: 1fr;
    }

    .media-video-grid > .media-video-card:first-child .media-video-card__caption {
        padding-top: 20px;
    }
}

@media (max-width: 620px) {
    .page-template-media .media-hero .page-hero__media img {
        object-position: 58% center;
    }

    .media-editorial {
        padding-top: 54px;
    }

    .media-section + .media-section {
        margin-top: 70px;
    }

    .media-audio-card {
        padding: 14px;
    }

    .media-audio-row {
        grid-template-columns: 42px minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 76px;
        padding-block: 13px;
    }

    .media-audio-row__play {
        width: 34px;
        height: 34px;
    }

    .media-embed--soundcloud iframe,
    .media-embed--playlist iframe {
        height: 260px;
    }

    .media-video-grid {
        gap: 46px;
    }
}


/* --------------------------------------------------------------------------
   v4.2 — Homepage Carmen height + Listen/Press vertical alignment

   Use an explicit height on wide screens instead of relying only on min-height.
   Gutenberg/WordPress cover styles can otherwise win in the cascade and keep
   the feature close to the default Cover height. The image focal point is also
   moved back toward centre so the performers' heads remain visible.
   -------------------------------------------------------------------------- */
@media (min-width: 1200px) {
    .home-editorial > .wp-block-cover.home-feature,
    .home-editorial > .home-feature {
        height: min(48vw, 900px) !important;
        min-height: 680px !important;
    }

    .home-feature > .wp-block-cover__image-background {
        object-position: center 50% !important;
    }
}

@media (min-width: 1600px) {
    .home-editorial > .wp-block-cover.home-feature,
    .home-editorial > .home-feature {
        min-height: 820px !important;
    }
}

/* Start the media visual and the press quotation on the same editorial line.
   An explicit top gap avoids margin-collapsing differences between the image
   wrapper and Gutenberg's blockquote. */
.home-media-card > .eyebrow,
.home-press-card > .eyebrow {
    margin-bottom: 0 !important;
}

.home-media-card__visual,
.home-press-card blockquote,
.home-press-card .wp-block-quote {
    margin-top: 38px !important;
}

@media (max-width: 720px) {
    .home-media-card__visual,
    .home-press-card blockquote,
    .home-press-card .wp-block-quote {
        margin-top: 26px !important;
    }
}


/* v4.3 — The homepage Carmen panel is an evergreen portfolio highlight, not
   a current-performance notice. Keep the editor block intact but hide the
   dated "À l’affiche / Now appearing" eyebrow on the front end. */
.home-feature > .wp-block-cover__inner-container .home-feature__content > .eyebrow {
    display: none !important;
}
.home-feature .home-feature__content > h2 {
    margin-top: 0;
}

/* v4.3 — Rich single-event / production pages. The actual long-form copy,
   images, galleries and videos remain in the WordPress event editor. */
.event-single__article {
    max-width: none;
    padding: 0 0 clamp(70px, 7vw, 110px);
}

.event-single-hero {
    position: relative;
    min-height: clamp(520px, 52vw, 780px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #171514;
    color: #fff;
}

.event-single-hero__image,
.event-single-hero__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.event-single-hero__image {
    object-fit: cover;
    object-position: center 42%;
    z-index: 0;
}

.event-single-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgba(8,7,7,.88) 0%, rgba(8,7,7,.60) 34%, rgba(8,7,7,.18) 66%, rgba(8,7,7,.04) 100%);
}

.event-single-hero__copy {
    position: relative;
    z-index: 2;
    width: min(100%, 760px);
    padding: clamp(56px, 7vw, 105px) clamp(34px, 7vw, 100px);
}

.event-single-hero__copy .eyebrow {
    color: #cf737c;
}

.event-single-hero__copy h1 {
    max-width: 12ch;
    margin: 16px 0 14px;
    color: #fff;
    font-size: clamp(3.4rem, 7vw, 7rem);
    font-weight: 400;
    line-height: .92;
}

.event-single-hero__work,
.event-single-hero__role {
    margin: 0;
    color: #fff;
    font-size: clamp(1.15rem, 1.8vw, 1.55rem);
}

.event-single-hero__role {
    margin-top: 8px;
}

.event-single__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 32px;
    padding-top: clamp(42px, 5vw, 70px);
}

.event-single__meta {
    margin: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.event-single__ticket {
    margin-bottom: 1px;
    white-space: nowrap;
}

.event-single__story {
    padding-top: clamp(65px, 8vw, 110px);
}

.event-single__section-heading {
    margin-bottom: 32px;
}

.event-single__section-rule {
    display: block;
    width: 42px;
    height: 1px;
    margin-top: 15px;
    background: var(--mh-accent);
}

.event-single__content.prose {
    max-width: none;
    padding: 0;
    font-size: 1rem;
    line-height: 1.75;
}

.event-single__content.prose > p,
.event-single__content.prose > h2,
.event-single__content.prose > h3,
.event-single__content.prose > ul,
.event-single__content.prose > ol,
.event-single__content.prose > blockquote {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

.event-single__content.prose > h2 {
    margin-top: 64px;
    margin-bottom: 18px;
    font-size: clamp(2.2rem, 3.4vw, 3.6rem);
}

.event-single__content.prose > h3 {
    margin-top: 42px;
    margin-bottom: 14px;
    font-size: clamp(1.6rem, 2.4vw, 2.3rem);
}

.event-single__content .wp-block-image,
.event-single__content .wp-block-gallery,
.event-single__content .wp-block-video,
.event-single__content .wp-block-embed,
.event-single__content .wp-block-cover {
    margin-top: clamp(36px, 5vw, 70px);
    margin-bottom: clamp(36px, 5vw, 70px);
}

.event-single__content .wp-block-image img,
.event-single__content .wp-block-gallery img,
.event-single__content .wp-block-video video {
    display: block;
    width: 100%;
    height: auto;
}

.event-single__content .wp-block-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px !important;
}

.event-single__content .wp-block-gallery > figure.wp-block-image {
    width: auto !important;
    margin: 0 !important;
}

.event-single__content .wp-block-gallery > figure.wp-block-image img {
    width: 100% !important;
    height: 100% !important;
    min-height: 260px;
    object-fit: cover;
}

.event-single__content .wp-block-embed__wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #111;
}

.event-single__content .wp-block-embed__wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.event-single__content figcaption {
    margin-top: 9px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .7rem;
    line-height: 1.5;
}

.event-single__story--empty {
    color: var(--mh-muted);
    font-style: italic;
}

.event-single__actions {
    margin-top: clamp(60px, 8vw, 100px);
}

@media (max-width: 980px) {
    .event-single__summary {
        grid-template-columns: 1fr;
        align-items: start;
    }
    .event-single__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .event-single__ticket {
        justify-self: start;
    }
}

@media (max-width: 760px) {
    .event-single-hero {
        min-height: 72vh;
    }
    .event-single-hero__image {
        object-position: 58% center;
    }
    .event-single-hero__overlay {
        background: linear-gradient(0deg, rgba(8,7,7,.86) 0%, rgba(8,7,7,.38) 58%, rgba(8,7,7,.08) 100%);
    }
    .event-single-hero__copy {
        padding: 46px 24px;
    }
    .event-single__meta {
        grid-template-columns: 1fr;
    }
    .event-single__content .wp-block-gallery {
        grid-template-columns: 1fr 1fr;
    }
    .event-single__content .wp-block-gallery > figure.wp-block-image img {
        min-height: 180px;
    }
}

/* v4.6 — Dedicated production pages for selected Marie Hamard Core events. */
.event-production-page {
    padding-bottom: 0;
}
.production-article {
    max-width: none;
    padding-bottom: clamp(70px, 7vw, 110px);
}
.production-hero {
    position: relative;
    min-height: clamp(560px, 56vw, 820px);
    display: flex;
    align-items: stretch;
    overflow: hidden;
    background: var(--mh-hero-bg, #11100f);
    color: var(--mh-hero-text, #fff);
}

/* Production pages use the same header-aligned hero rule as normal pages.
   The selected background fills the full viewport band behind the side gutters. */
.event-production-page.mh-hero-bg-context::before {
    height: clamp(560px, 56vw, 820px);
}
.production-hero__image,
.production-hero__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.production-hero__image {
    object-fit: cover;
    object-position: center 38%;
    z-index: 0;
}
.production-hero__overlay {
    z-index: 1;
    background: linear-gradient(90deg, rgba(5,7,9,.96) 0%, rgba(5,7,9,.86) 30%, rgba(5,7,9,.38) 54%, rgba(5,7,9,.08) 76%, rgba(5,7,9,0) 100%);
}
.production-hero__copy {
    position: relative;
    z-index: 2;
    width: min(100%, 660px);
    min-height: inherit;
    padding: clamp(34px, 4vw, 58px) clamp(34px, 6vw, 92px) clamp(54px, 6vw, 88px);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.production-back {
    position: absolute;
    top: clamp(28px, 3.2vw, 46px);
    left: clamp(34px, 6vw, 92px);
    color: var(--mh-hero-text, #fff) !important;
    font-family: var(--mh-sans);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
    text-decoration: none;
}
.production-hero__eyebrow,
.production-video__eyebrow,
.production-section-title p {
    margin: 0;
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.production-hero__eyebrow {
    color: var(--mh-hero-rule, var(--mh-accent));
}
.production-hero h1 {
    max-width: 10ch;
    margin: 16px 0 8px;
    color: var(--mh-hero-text, #fff);
    font-size: clamp(4rem, 7.5vw, 7.8rem);
    font-weight: 400;
    line-height: .9;
}
.production-hero__work {
    margin: 0;
    color: var(--mh-hero-text, #fff);
    font-size: clamp(1.28rem, 2vw, 1.72rem);
    font-style: italic;
}
.production-hero__rule {
    display: block;
    width: 58px;
    height: 1px;
    margin: 28px 0 26px;
    background: var(--mh-hero-rule, var(--mh-accent));
}
.production-hero__meta {
    display: grid;
    gap: 11px;
    margin: 0;
}
.production-hero__meta > div {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 12px;
    align-items: baseline;
}
.production-hero__meta dt,
.production-hero__meta dd {
    margin: 0;
}
.production-hero__meta dt {
    color: var(--mh-hero-text, #fff);
    opacity: .62;
    font-family: var(--mh-sans);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.production-hero__meta dd {
    color: var(--mh-hero-text, #fff);
    font-size: 1rem;
}
.production-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 26px;
    margin-top: 28px;
}
.production-link {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 0 4px;
    border-bottom: 1px solid var(--mh-accent);
    color: var(--mh-hero-text, #fff) !important;
    font-family: var(--mh-sans);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-decoration: none;
    text-transform: uppercase;
}
.production-link--quiet {
    border-bottom-color: rgba(255,255,255,.48);
}
.production-hero__credit {
    position: absolute;
    z-index: 2;
    right: 22px;
    bottom: 16px;
    margin: 0;
    color: var(--mh-hero-text, #fff);
    opacity: .72;
    font-family: var(--mh-sans);
    font-size: .62rem;
}
.production-about {
    display: grid;
    grid-template-columns: minmax(330px, .8fr) minmax(0, 1.35fr);
    gap: clamp(50px, 7vw, 110px);
    align-items: start;
    padding-top: clamp(64px, 7vw, 105px);
}
.production-section-title {
    margin-bottom: 28px;
}
.production-section-title span {
    display: block;
    width: 34px;
    height: 1px;
    margin-top: 14px;
    background: var(--mh-accent);
}
.production-about__lead {
    margin: 0 0 34px;
    font-size: clamp(1.12rem, 1.45vw, 1.34rem);
    line-height: 1.65;
}
.production-credits {
    display: grid;
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--mh-line);
}
.production-credits > div {
    display: grid;
    grid-template-columns: minmax(120px, .72fr) minmax(0, 1.4fr);
    gap: 18px;
    padding: 11px 0;
    border-bottom: 1px solid var(--mh-line);
}
.production-credits dt,
.production-credits dd {
    margin: 0;
}
.production-credits dt {
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.production-credits dd {
    font-size: .98rem;
    line-height: 1.45;
}
.production-video {
    min-width: 0;
}
.production-video__eyebrow {
    margin-bottom: 12px;
}
.production-video__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #0e0d0c;
}
.production-video__frame iframe,
.production-video__frame video {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}
.production-video__caption {
    margin: 11px 0 0;
    font-size: .92rem;
}
.production-gallery {
    padding-top: clamp(72px, 8vw, 120px);
}
.production-section-title--gallery {
    margin-bottom: 22px;
}
.production-gallery__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
}
.production-gallery__item {
    min-width: 0;
    margin: 0;
    aspect-ratio: 1.22 / 1;
    overflow: hidden;
    background: #ddd5cc;
}
.production-gallery__item--large {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
    min-height: 420px;
}
.production-gallery__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.production-more {
    padding-top: clamp(72px, 8vw, 118px);
}
.production-more__content.prose {
    max-width: 900px;
    margin: 0 auto;
    padding: 0;
    font-size: 1.03rem;
    line-height: 1.75;
}
.production-more__content .wp-block-embed,
.production-more__content .wp-block-video {
    max-width: 100%;
    margin: clamp(36px, 5vw, 64px) 0;
}
.production-more__content .wp-block-embed__wrapper {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #111;
}
.production-more__content .wp-block-embed__wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.production-footer {
    margin-top: clamp(70px, 8vw, 110px);
    padding-top: 28px;
    border-top: 1px solid var(--mh-line);
}

@media (max-width: 980px) {
    .production-about {
        grid-template-columns: 1fr;
    }
    .production-video {
        max-width: 900px;
    }
    .production-gallery__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .event-production-page.mh-hero-bg-context::before {
        height: 78vh;
    }
    .production-hero {
        min-height: 78vh;
    }
    .production-hero__image {
        object-position: 62% center;
    }
    .production-hero__overlay {
        background: linear-gradient(0deg, rgba(5,7,9,.94) 0%, rgba(5,7,9,.66) 42%, rgba(5,7,9,.12) 76%, rgba(5,7,9,0) 100%);
    }
    .production-hero__copy {
        width: 100%;
        padding: 96px 24px 44px;
    }
    .production-back {
        top: 28px;
        left: 24px;
    }
    .production-hero h1 {
        font-size: clamp(3.5rem, 17vw, 5.4rem);
    }
    .production-hero__meta > div {
        grid-template-columns: 62px 1fr;
    }
    .production-about {
        gap: 48px;
        padding-top: 56px;
    }
    .production-credits > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .production-gallery__grid {
        grid-template-columns: 1fr 1fr;
    }
    .production-gallery__item,
    .production-gallery__item--large {
        grid-column: auto;
        grid-row: auto;
        min-height: 0;
        aspect-ratio: 1 / 1;
    }
}

/* --------------------------------------------------------------------------
 * v4.7 — Detailed production pages
 * About + credits → video → horizontal gallery slider → editorial synopsis.
 * Gutenberg gallery/image blocks remain the source of gallery images; only
 * their public presentation changes here.
 * -------------------------------------------------------------------------- */
.production-about {
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    gap: clamp(54px, 8vw, 128px);
    padding-top: clamp(72px, 8vw, 118px);
    padding-bottom: 0;
}

.production-about__intro {
    max-width: 590px;
}

.production-about__lead {
    max-width: 36ch;
    margin: 0;
    font-family: var(--mh-serif);
    font-size: clamp(1.34rem, 1.8vw, 1.72rem);
    line-height: 1.55;
}

.production-credits {
    align-self: start;
    margin-top: 3px;
}

.production-video-section {
    padding-top: clamp(82px, 9vw, 138px);
}

.production-video-section .production-section-title {
    margin-bottom: 24px;
}

.production-video {
    width: 100%;
    max-width: none;
}

.production-video__frame {
    aspect-ratio: 16 / 8.4;
}

.production-video__caption {
    margin-top: 13px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .78rem;
    letter-spacing: .025em;
}

.production-gallery {
    padding-top: clamp(82px, 9vw, 138px);
    overflow: hidden;
}

.production-gallery__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 24px;
}

.production-gallery__head .production-section-title {
    margin-bottom: 0;
}

.production-gallery__controls {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .68rem;
    letter-spacing: .08em;
}

.production-gallery__arrow {
    display: grid;
    width: 40px;
    height: 40px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--mh-line);
    border-radius: 50%;
    background: transparent;
    color: var(--mh-ink);
    font: inherit;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, opacity .2s ease;
}

.production-gallery__arrow:hover,
.production-gallery__arrow:focus-visible {
    border-color: var(--mh-accent);
    color: var(--mh-accent);
}

.production-gallery__arrow:disabled {
    opacity: .28;
    cursor: default;
}

.production-gallery__count {
    min-width: 44px;
    text-align: center;
}

.production-gallery__viewport {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
}

.production-gallery__viewport::-webkit-scrollbar {
    display: none;
}

.production-gallery__track {
    display: flex;
    gap: clamp(10px, 1.2vw, 18px);
    width: max-content;
}

.production-gallery__slide {
    flex: 0 0 clamp(310px, 61vw, 850px);
    width: clamp(310px, 61vw, 850px);
    height: clamp(330px, 39vw, 560px);
    margin: 0;
    overflow: hidden;
    background: #ddd5cc;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.production-gallery__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.production-synopsis {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(0, 1.35fr);
    gap: clamp(54px, 8vw, 130px);
    align-items: center;
    padding-top: clamp(92px, 10vw, 154px);
}

.production-synopsis__art {
    display: grid;
    min-height: 280px;
    place-items: center;
    color: var(--mh-accent);
}

.production-synopsis__rose {
    width: min(170px, 70%);
    height: auto;
    opacity: .92;
}

.production-synopsis__placeholder {
    position: relative;
    width: min(205px, 74%);
    aspect-ratio: 1;
    opacity: .56;
}

.production-synopsis__placeholder-ring,
.production-synopsis__placeholder-orbit {
    position: absolute;
    border: 1px solid currentColor;
    border-radius: 50%;
}

.production-synopsis__placeholder-ring {
    inset: 23%;
    background: color-mix(in srgb, var(--mh-accent) 7%, transparent);
}

.production-synopsis__placeholder-orbit {
    inset: 7%;
    border-style: dashed;
    transform: rotate(-18deg) scaleY(.54);
}

.production-synopsis--huit .production-synopsis__art {
    color: var(--mh-muted);
}

.production-synopsis__copy {
    max-width: 780px;
}

.production-synopsis__copy > p:last-child {
    margin: 0;
    font-family: var(--mh-serif);
    font-size: clamp(1.2rem, 1.55vw, 1.48rem);
    line-height: 1.72;
}

@media (max-width: 980px) {
    .production-about {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .production-about__intro {
        max-width: 720px;
    }

    .production-about__lead {
        max-width: 44ch;
    }

    .production-synopsis {
        grid-template-columns: 180px minmax(0, 1fr);
        gap: 48px;
    }

    .production-synopsis__art {
        min-height: 220px;
    }
}

@media (max-width: 760px) {
    .production-video-section,
    .production-gallery,
    .production-synopsis {
        padding-top: 68px;
    }

    .production-gallery__head {
        align-items: center;
    }

    .production-gallery__controls {
        gap: 8px;
    }

    .production-gallery__arrow {
        width: 36px;
        height: 36px;
    }

    .production-gallery__slide {
        flex-basis: min(84vw, 620px);
        width: min(84vw, 620px);
        height: clamp(300px, 71vw, 480px);
    }

    .production-synopsis {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .production-synopsis__art {
        justify-items: start;
        min-height: 130px;
    }

    .production-synopsis__rose {
        width: 88px;
    }

    .production-synopsis__placeholder {
        width: 105px;
    }

    .production-synopsis__copy > p:last-child {
        font-size: 1.13rem;
    }
}

/* --------------------------------------------------------------------------
 * v4.8 — Production pages
 * Restore the stronger editorial composition requested for all rich events:
 * structured production details on the left, main video on the right, then
 * the horizontal gallery and the synopsis below. HTML order matches the
 * visual order; no CSS reordering is used.
 * -------------------------------------------------------------------------- */
.production-overview {
    display: grid;
    grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
    gap: clamp(52px, 7vw, 118px);
    align-items: start;
    padding-top: clamp(72px, 8vw, 118px);
}

.production-overview--no-video {
    grid-template-columns: minmax(0, 760px);
}

.production-overview__details,
.production-overview__video {
    min-width: 0;
}

.production-overview__details .production-section-title,
.production-overview__video .production-section-title {
    margin-bottom: 24px;
}

.production-overview__details .production-about__lead {
    max-width: 39ch;
    margin-bottom: clamp(32px, 4vw, 52px);
}

.production-overview .production-credits {
    margin-top: 0;
}

.production-overview .production-credits > div {
    grid-template-columns: minmax(118px, .75fr) minmax(0, 1.55fr);
}

.production-overview__video .production-video {
    max-width: none;
}

.production-overview__video .production-video__frame {
    aspect-ratio: 16 / 9;
    background: #141311;
}

.production-overview__video .production-video__frame iframe,
.production-overview__video .production-video__frame video {
    width: 100%;
    height: 100%;
}

.production-gallery {
    padding-top: clamp(82px, 9vw, 138px);
}

.production-synopsis__art-image {
    display: block;
    width: min(260px, 88%);
    height: auto;
    mix-blend-mode: multiply;
}

.production-synopsis--carmen .production-synopsis__art {
    min-height: 260px;
}

.production-synopsis--huit .production-synopsis__art,
.production-synopsis--rando .production-synopsis__art,
.production-synopsis--zefka .production-synopsis__art {
    color: var(--mh-muted);
}

@media (max-width: 1040px) {
    .production-overview {
        grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
        gap: 44px;
    }

    .production-overview .production-credits > div {
        grid-template-columns: 110px minmax(0, 1fr);
    }
}

@media (max-width: 820px) {
    .production-overview,
    .production-overview--no-video {
        grid-template-columns: 1fr;
        gap: 58px;
        padding-top: 68px;
    }

    .production-overview__details .production-about__lead {
        max-width: 46ch;
    }

    .production-overview__video .production-video__frame {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 560px) {
    .production-overview .production-credits > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .production-synopsis__art-image {
        width: 112px;
    }
}

/* --------------------------------------------------------------------------
 * v4.9 — Rich production layout refinement
 * About copy is a full-width editorial introduction. Technical credits and
 * the main video form the two-column row below it. Long production titles use
 * smaller, more readable hero type without changing the stored title.
 * -------------------------------------------------------------------------- */
.production-about-wide {
    padding-top: clamp(72px, 8vw, 118px);
}

.production-about-wide .production-section-title {
    margin-bottom: 24px;
}

.production-about-wide__lead {
    max-width: 66ch;
    margin: 0;
    font-family: var(--mh-serif);
    font-size: clamp(1.38rem, 1.75vw, 1.8rem);
    line-height: 1.58;
}

.production-about-wide + .production-overview {
    padding-top: clamp(48px, 5vw, 72px);
}

.production-overview {
    grid-template-columns: minmax(330px, .82fr) minmax(0, 1.18fr);
}

.production-overview__details .production-section-title,
.production-overview__video .production-section-title {
    margin-bottom: 24px;
}

.production-hero__title--long {
    max-width: 12ch !important;
    font-size: clamp(2.8rem, 4.8vw, 5rem) !important;
    line-height: .93 !important;
}

.production-hero__title--xlong {
    max-width: 12ch !important;
    font-size: clamp(2rem, 3.7vw, 3.8rem) !important;
    line-height: .92 !important;
}

/* Custom synopsis artwork selected in Marie Hamard Core should render as-is.
   Transparent PNG/WebP files will naturally merge with the page background. */
.production-synopsis__art-image {
    mix-blend-mode: normal;
    object-fit: contain;
}

@media (max-width: 820px) and (min-width: 681px) {
    .production-overview,
    .production-overview--no-video {
        grid-template-columns: minmax(240px, .78fr) minmax(0, 1.22fr);
        gap: 34px;
        padding-top: 52px;
    }

    .production-overview .production-credits > div {
        grid-template-columns: 96px minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .production-about-wide {
        padding-top: 64px;
    }

    .production-about-wide__lead {
        font-size: 1.2rem;
    }

    .production-overview,
    .production-overview--no-video {
        grid-template-columns: 1fr;
        gap: 52px;
        padding-top: 52px;
    }

    .production-hero__title--long,
    .production-hero__title--xlong {
        max-width: 12ch !important;
        font-size: clamp(2.4rem, 11.5vw, 3.8rem) !important;
        line-height: .94 !important;
    }
}


/* v5.1 — Do not render an empty technical sheet. When a rich event has a
   video but no structured production credits, let the video use the available
   row width instead of reserving an empty left column. */
.production-overview--video-only {
    grid-template-columns: minmax(0, 1fr);
}

.production-overview--video-only .production-overview__video {
    width: min(100%, 980px);
}


/* --------------------------------------------------------------------------
   v5.6 — Full-bleed heroes, header-aligned copy

   The photograph now spans the complete viewport width. Only the foreground
   copy remains aligned to the same 1440px / 20px-gutter container as the
   header. The former configurable gutter/background colour is intentionally
   retired; stored legacy values are left untouched in the database but are
   no longer read or rendered.
   -------------------------------------------------------------------------- */
.mh-hero-bg-context::before,
.event-production-page.mh-hero-bg-context::before {
    display: none !important;
    content: none !important;
}

/* Biography must return to the normal page surface below its full-bleed hero. */
.biography-content {
    background: var(--mh-surface) !important;
}

/* Every page-level hero photograph is full viewport width. */
.page-hero,
.home-editorial > .home-hero,
.events-page > .events-hero,
.production-hero {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* The generic .container/.container-wide utilities must not constrain heroes. */
.page-hero.container,
.production-hero.container-wide {
    width: 100% !important;
    max-width: none !important;
}

/* Header-aligned foreground container. */
.page-hero__content,
.home-hero > .home-hero__copy,
.events-hero > .events-hero__copy {
    width: min(calc(100% - 40px), var(--mh-max)) !important;
    max-width: var(--mh-max) !important;
    margin-inline: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
}

/* Keep the editorial copy measure while its left edge follows the header. */
.page-hero__content > *,
.home-hero > .home-hero__copy > *,
.events-hero > .events-hero__copy > * {
    width: 100%;
    max-width: 650px;
}

/* Production pages use the same header container for all overlaid copy. */
.production-hero__copy {
    width: min(calc(100% - 40px), var(--mh-max)) !important;
    max-width: var(--mh-max) !important;
    margin-inline: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
}

.production-hero__copy > *:not(.production-back) {
    width: 100%;
    max-width: 660px;
}

.production-back {
    left: 0 !important;
}

@media (max-width: 620px) {
    .page-hero,
    .home-editorial > .home-hero,
    .events-page > .events-hero,
    .production-hero {
        width: 100% !important;
        max-width: none !important;
    }

    .page-hero__content,
    .home-hero > .home-hero__copy,
    .events-hero > .events-hero__copy,
    .production-hero__copy {
        width: min(calc(100% - 28px), var(--mh-max)) !important;
        max-width: var(--mh-max) !important;
        margin-inline: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .production-back {
        left: 0 !important;
    }
}


/* --------------------------------------------------------------------------
   v5.7 — Mobile homepage hero
   The desktop full-bleed background treatment is retained, but the homepage
   needs a deliberately smaller editorial scale on phones. Earlier legacy
   rules used 17vw for the title, which made MARIE HAMARD overwhelm the image.
   -------------------------------------------------------------------------- */
@media (max-width: 720px) {
    .home-editorial > .home-hero {
        min-height: clamp(610px, 112vw, 760px) !important;
    }

    .home-hero > .home-hero__image img {
        object-position: 58% center !important;
    }

    .home-hero > .home-hero__copy {
        width: calc(100% - 40px) !important;
        min-height: inherit;
        margin-inline: auto !important;
        padding: 42px 0 48px !important;
        justify-content: flex-end !important;
    }

    .home-hero > .home-hero__copy > * {
        max-width: min(78vw, 390px) !important;
    }

    .home-hero__title,
    .home-hero h1 {
        max-width: 8ch !important;
        font-size: clamp(3rem, 13vw, 4.25rem) !important;
        line-height: .9 !important;
        letter-spacing: .02em !important;
    }

    .home-hero__role {
        margin-top: 14px !important;
        font-size: .62rem !important;
        letter-spacing: .22em !important;
    }

    .home-hero .home-rule {
        margin-top: 20px !important;
        margin-bottom: 18px !important;
    }

    .home-hero__intro {
        max-width: 29ch !important;
        margin-bottom: 24px !important;
        font-size: .96rem !important;
        line-height: 1.45 !important;
    }

    .home-hero .home-text-link {
        gap: 20px !important;
    }
}

@media (max-width: 430px) {
    .home-editorial > .home-hero {
        min-height: 650px !important;
    }

    .home-hero > .home-hero__copy {
        width: calc(100% - 32px) !important;
        padding-bottom: 38px !important;
    }

    .home-hero > .home-hero__copy > * {
        max-width: 84vw !important;
    }

    .home-hero__title,
    .home-hero h1 {
        font-size: clamp(2.75rem, 14.5vw, 3.7rem) !important;
    }

    .home-hero__intro {
        max-width: 26ch !important;
        font-size: .92rem !important;
    }
}

/* --------------------------------------------------------------------------
   v5.9 — Mobile hero text
   Keep heroes photographic/full-bleed on phones. All hero copy turns white
   for predictable contrast; accent/rule colors remain controlled separately.
   -------------------------------------------------------------------------- */
@media (max-width: 720px) {
    .home-hero > .home-hero__copy,
    .home-hero > .home-hero__copy h1,
    .home-hero > .home-hero__copy h2,
    .home-hero > .home-hero__copy p,
    .home-hero > .home-hero__copy a,
    .home-hero > .home-hero__copy em,
    .home-hero > .home-hero__copy .home-hero__role,
    .page-hero__content,
    .page-hero__content h1,
    .page-hero__content h2,
    .page-hero__content p,
    .page-hero__content a,
    .page-hero__content em,
    .events-hero > .events-hero__copy,
    .events-hero > .events-hero__copy h1,
    .events-hero > .events-hero__copy h2,
    .events-hero > .events-hero__copy p,
    .events-hero > .events-hero__copy a,
    .events-hero > .events-hero__copy em,
    .production-hero__copy,
    .production-hero__copy h1,
    .production-hero__copy h2,
    .production-hero__copy p,
    .production-hero__copy a,
    .production-hero__copy em,
    .production-hero__copy dt,
    .production-hero__copy dd,
    .production-hero__copy .production-back,
    .production-hero__copy .production-hero__work,
    .production-hero__copy .production-hero__meta,
    .production-hero__copy .production-hero__actions {
        color: #fff !important;
    }

    /* Keep the dedicated accent/rule settings intact. */
    .home-hero .home-rule,
    .events-hero .events-hero__rule,
    .production-hero__rule,
    .page-hero h1::after {
        color: inherit;
    }
}


/* --------------------------------------------------------------------------
   v6.0 — Photos and Contact page implementations
   -------------------------------------------------------------------------- */
.photos-content,
.contact-content {
    width: min(calc(100% - 40px), var(--mh-max));
    max-width: var(--mh-max);
    margin: 0 auto;
    padding: clamp(54px, 8vw, 110px) 0 clamp(80px, 9vw, 140px);
}

.photos-page-content,
.contact-page-content {
    width: 100%;
}

.photos-gallery-section + .photos-gallery-section {
    margin-top: clamp(12px, 2vw, 20px);
}

.photos-gallery-title {
    margin: 0 0 20px;
    font-size: clamp(2rem, 3.2vw, 3.4rem);
    font-weight: 400;
    line-height: .98;
}

.mh-photo-gallery-shell {
    display: grid;
    gap: 12px;
}

.mh-photo-gallery-hint {
    margin: 0;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.mh-photo-gallery-viewport {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
}

.mh-photo-gallery-viewport::-webkit-scrollbar {
    display: none;
}

.mh-photo-gallery-track {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, minmax(210px, 1fr));
    grid-auto-columns: minmax(280px, 360px);
    gap: 18px;
    width: max-content;
}

.mh-photo-gallery-track .mh-photo-tile {
    margin: 0 !important;
    width: 100%;
    overflow: hidden;
    background: #d9d1c8;
}

.mh-photo-gallery-track .mh-photo-tile img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.contact-main-grid {
    align-items: start;
    gap: clamp(32px, 5vw, 80px);
}

.contact-lead {
    margin: 0 0 18px;
    font-size: clamp(1.5rem, 2.4vw, 2.35rem);
    line-height: 1.28;
}

.mh-contact-form-wrap {
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid var(--mh-line);
    background: rgba(255,255,255,.36);
}

.mh-contact-form__notice {
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid var(--mh-line);
    font-family: var(--mh-sans);
    font-size: .92rem;
}

.mh-contact-form__notice.is-success {
    border-color: rgba(78, 111, 86, .35);
}

.mh-contact-form__notice.is-error {
    border-color: rgba(140, 47, 57, .35);
}

.mh-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.mh-contact-form__field {
    margin: 0 0 18px;
}

.mh-contact-form__field--trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.mh-contact-form label {
    display: block;
    margin-bottom: 7px;
    font-family: var(--mh-sans);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.mh-contact-form input,
.mh-contact-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--mh-line);
    background: rgba(255,255,255,.68);
    color: var(--mh-ink);
    font: inherit;
    box-sizing: border-box;
}

.mh-contact-form textarea {
    min-height: 180px;
    resize: vertical;
}

.mh-contact-form__turnstile {
    margin: 4px 0 20px;
}

.mh-contact-form__actions {
    margin: 24px 0 0;
}

.mh-contact-form__actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 24px;
    border: 1px solid var(--mh-accent);
    background: transparent;
    color: var(--mh-ink);
    font-family: var(--mh-sans);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
}

.contact-secondary-grid {
    gap: clamp(22px, 3vw, 36px);
}

.contact-info-card {
    height: 100%;
    padding: 24px 0 0;
    border-top: 1px solid var(--mh-line);
}

.contact-info-card h3 {
    margin: 0 0 12px;
    font-size: clamp(1.3rem, 1.8vw, 1.8rem);
    font-weight: 400;
}

@media (max-width: 900px) {
    .mh-photo-gallery-track {
        grid-auto-columns: minmax(240px, 290px);
        grid-template-rows: repeat(2, minmax(190px, 1fr));
    }
}

@media (max-width: 720px) {
    .photos-content,
    .contact-content {
        width: min(calc(100% - 28px), var(--mh-max));
    }

    .mh-photo-gallery-track {
        grid-template-rows: none;
        grid-auto-columns: minmax(220px, 82vw);
    }

    .mh-contact-form__grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
}


/* --------------------------------------------------------------------------
   v6.1 — Contact page / minimalist editorial form

   This override deliberately restyles the v6.0 Gutenberg structure instead
   of rewriting existing editor content. Pages already edited in WordPress keep
   their blocks; the form itself adopts the approved maintenance-form language.
   -------------------------------------------------------------------------- */
.page-template-contact .contact-content {
    padding-top: clamp(58px, 7vw, 96px);
}

.page-template-contact .contact-page-content {
    max-width: 100%;
}

/* Existing v6.0 two-column starter content becomes a simple editorial intro
   followed by a full-width form. The content order stays unchanged in HTML. */
.page-template-contact .contact-main-grid {
    display: block !important;
    margin: 0 !important;
}

.page-template-contact .contact-main-grid > .wp-block-column {
    width: 100% !important;
    flex-basis: auto !important;
}

.page-template-contact .contact-main-grid > .wp-block-column:first-child {
    max-width: 860px;
    margin-bottom: clamp(46px, 6vw, 74px);
}

.page-template-contact .contact-main-grid > .wp-block-column:first-child > .eyebrow {
    display: none;
}

.page-template-contact .contact-main-grid .contact-lead,
.page-template-contact .contact-page-intro {
    max-width: 920px;
    margin: 0 0 18px;
    font-family: var(--mh-serif);
    font-size: clamp(1.7rem, 2.7vw, 2.75rem);
    font-weight: 400;
    line-height: 1.28;
}

.page-template-contact .contact-main-grid > .wp-block-column:first-child > p:not(.eyebrow):not(.contact-lead) {
    max-width: 720px;
    margin: 0;
    color: var(--mh-muted);
    font-size: clamp(1rem, 1.3vw, 1.16rem);
}

.page-template-contact .contact-secondary-grid {
    margin-top: clamp(56px, 8vw, 100px);
}

/* Form shell: no card, no boxed fields. */
.page-template-contact .mh-contact-form-wrap {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
}

.page-template-contact .mh-contact-form__heading {
    display: grid;
    grid-template-columns: auto minmax(60px, 1fr);
    gap: clamp(24px, 3vw, 44px);
    align-items: center;
    margin-bottom: clamp(34px, 4vw, 54px);
}

.page-template-contact .mh-contact-form__heading h2 {
    margin: 0;
    color: var(--mh-accent);
    font-family: var(--mh-sans);
    font-size: clamp(.92rem, 1.25vw, 1.08rem);
    font-weight: 600;
    letter-spacing: .28em;
    line-height: 1.1;
    text-transform: none;
}

.page-template-contact .mh-contact-form__heading > span {
    display: block;
    height: 1px;
    background: var(--mh-line);
}

.page-template-contact .mh-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(30px, 4vw, 58px);
}

.page-template-contact .mh-contact-form__field {
    position: relative;
    margin: 0;
}

.page-template-contact .mh-contact-form__grid .mh-contact-form__field {
    min-height: 122px;
}

.page-template-contact .mh-contact-form__field--message {
    min-height: clamp(210px, 24vw, 300px);
    margin-top: 14px;
}

.page-template-contact .mh-contact-form label {
    display: block;
    margin: 0 0 18px;
    color: var(--mh-ink);
    font-family: var(--mh-sans);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.page-template-contact .mh-contact-form input,
.page-template-contact .mh-contact-form textarea {
    display: block;
    width: 100%;
    padding: 12px 0 16px;
    border: 0;
    border-bottom: 1px solid rgba(23,21,19,.42);
    border-radius: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    color: var(--mh-ink);
    font: inherit;
    box-sizing: border-box;
}

.page-template-contact .mh-contact-form input {
    min-height: 56px;
}

.page-template-contact .mh-contact-form textarea {
    min-height: clamp(155px, 17vw, 220px);
    resize: vertical;
}

.page-template-contact .mh-contact-form input:focus,
.page-template-contact .mh-contact-form textarea:focus {
    border-bottom-color: var(--mh-accent);
}

.page-template-contact .mh-contact-form__bottom {
    display: grid;
    grid-template-columns: minmax(280px, .7fr) minmax(260px, 1fr);
    gap: clamp(44px, 7vw, 110px);
    align-items: start;
    margin-top: clamp(30px, 4vw, 46px);
}

.page-template-contact .mh-contact-form__actions {
    margin: 0;
}

.page-template-contact .mh-contact-form__actions button {
    display: inline-flex;
    width: min(100%, 372px);
    min-height: 80px;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 18px 36px;
    border: 0;
    background: var(--mh-accent);
    color: #fff;
    font-family: var(--mh-sans);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .2s ease, filter .2s ease;
}

.page-template-contact .mh-contact-form__actions button:hover,
.page-template-contact .mh-contact-form__actions button:focus-visible {
    filter: brightness(.94);
    transform: translateY(-1px);
}

.page-template-contact .mh-contact-form__privacy {
    max-width: 480px;
    margin: 16px 0 0;
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .96rem;
    line-height: 1.5;
}

.page-template-contact .mh-contact-form__turnstile {
    margin: 20px 0 0;
}

.page-template-contact .mh-contact-form__security {
    display: flex;
    gap: 11px;
    max-width: 390px;
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--mh-line);
    color: var(--mh-muted);
    font-family: var(--mh-sans);
    font-size: .78rem;
    line-height: 1.45;
}

.page-template-contact .mh-contact-form__security strong {
    color: var(--mh-muted);
    font-weight: 500;
}

.page-template-contact .mh-contact-form__security-icon {
    flex: 0 0 auto;
    color: var(--mh-muted);
    font-size: 1.05rem;
}

.page-template-contact .mh-contact-form__notice {
    margin: 0 0 28px;
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid var(--mh-line);
    background: transparent;
}

@media (max-width: 760px) {
    .page-template-contact .contact-main-grid > .wp-block-column:first-child {
        margin-bottom: 42px;
    }

    .page-template-contact .mh-contact-form__heading {
        grid-template-columns: auto 1fr;
        gap: 18px;
        margin-bottom: 32px;
    }

    .page-template-contact .mh-contact-form__grid,
    .page-template-contact .mh-contact-form__bottom {
        grid-template-columns: 1fr;
    }

    .page-template-contact .mh-contact-form__grid {
        gap: 0;
    }

    .page-template-contact .mh-contact-form__grid .mh-contact-form__field {
        min-height: 110px;
    }

    .page-template-contact .mh-contact-form__field--message {
        min-height: 210px;
        margin-top: 8px;
    }

    .page-template-contact .mh-contact-form__bottom {
        gap: 22px;
        margin-top: 26px;
    }

    .page-template-contact .mh-contact-form__actions button {
        width: 100%;
        min-height: 66px;
        padding: 16px 22px;
    }

    .page-template-contact .mh-contact-form__privacy {
        margin-top: 0;
    }
}


/* --------------------------------------------------------------------------
   v6.3 — Contact template hardening
   Existing French/English Contact pages can pre-date this theme. The template
   is now forced by canonical slug/starter metadata, and this class guarantees
   the approved minimalist form styling is applied even without template meta.
   -------------------------------------------------------------------------- */
.page-template-contact .contact-page-content--injected {
    width: 100%;
}

.page-template-contact .contact-legacy-copy {
    max-width: 920px;
    margin: 0 0 clamp(42px, 6vw, 72px);
}

/* If an older Contact page still contains a third-party/legacy form, don't
   display two public forms. The saved content is untouched in WordPress. */
.page-template-contact .contact-legacy-copy form,
.page-template-contact .contact-legacy-copy .wpcf7,
.page-template-contact .contact-legacy-copy .wpforms-container,
.page-template-contact .contact-legacy-copy .gform_wrapper {
    display: none !important;
}


/* v6.4 — Turnstile runtime-template fix + responsive widget. */
.page-template-contact .mh-contact-form__turnstile {
    width: min(100%, 420px);
    min-width: 0;
    overflow: visible;
}

.page-template-contact .mh-contact-form__turnstile .cf-turnstile {
    width: 100%;
    min-width: 0;
}
