/* Dobcross Silver Band Ã¢â‚¬â€ final homepage polish
   Replaces the previous home-polish.css.
   Focus: photo position, lighter fade, spacing, and restrained hover motion. */

:root {
    --polish-paper: #f5f3ef;
    --polish-shadow: 0 18px 44px rgba(0, 0, 0, .115);
    --polish-shadow-hover: 0 24px 54px rgba(0, 0, 0, .16);
    --polish-ease: cubic-bezier(.2,.7,.2,1);
}

/* =========================
   HEADER Ã¢â‚¬â€ preserve current direction
   ========================= */
@media (min-width: 901px) {
    :root { --header-height: 100px !important; }

    .site-header__inner {
        height: 100px !important;
    }

    .site-brand {
        gap: 15px !important;
        min-width: 390px !important;
    }

    .site-brand__logo {
        width: 82px !important;
        height: 82px !important;
    }

    .site-brand__name {
        font-size: 2rem !important;
        letter-spacing: -.015em !important;
    }

    .site-brand__est {
        margin-top: 6px !important;
        letter-spacing: .18em !important;
    }

    .site-nav {
        gap: 27px !important;
    }

    .site-nav a::after {
        bottom: 20px !important;
        transition: transform 220ms var(--polish-ease) !important;
    }
}

/* =========================
   HERO Ã¢â‚¬â€ shift band right + lighter fade
   ========================= */
@media (min-width: 901px) {
    .home-hero {
        height: clamp(485px, 33vw, 515px) !important;
        overflow: hidden !important;
        background: #060606 !important;
    }

    .home-hero__photo {
        inset: 0 !important;
        background-size: cover !important;

        /* Move the real band photo further right, as requested. */
        background-position: var(--home-hero-position-x, 59%) var(--home-hero-position-y, 49%) !important;

        filter: saturate(1.08) contrast(1.035) brightness(1.035) !important;
        transform: scale(1.008);
        transform-origin: 72% center;
    }

    /* Slightly lighter fade so fewer musicians disappear into black. */
    .home-hero__shade {
        background:
            linear-gradient(90deg,
                rgba(0,0,0,.96) 0%,
                rgba(0,0,0,.91) 17%,
                rgba(0,0,0,.69) 29%,
                rgba(0,0,0,.31) 40%,
                rgba(0,0,0,.07) 51%,
                rgba(0,0,0,0) 62%),
            linear-gradient(0deg,
                rgba(0,0,0,.12) 0%,
                rgba(0,0,0,0) 38%) !important;
    }

    .home-hero__inner {
        align-items: center !important;
    }

    .home-hero__content {
        width: 650px !important;
        max-width: 46% !important;
        padding: 0 0 18px !important;
    }

    .home-kicker {
        margin-bottom: 12px !important;
        font-size: .7rem !important;
        letter-spacing: .21em !important;
    }

    .home-hero h1 {
        font-size: clamp(3.15rem, 4.8vw, 4.75rem) !important;
        line-height: .94 !important;
        letter-spacing: -.025em !important;
        white-space: nowrap;
    }

    .home-hero__rule {
        width: 178px !important;
        height: 2px !important;
        margin: 17px 0 !important;
    }

    .home-hero__intro {
        max-width: 500px !important;
        font-size: .94rem !important;
        line-height: 1.5 !important;
        color: rgba(255,255,255,.9) !important;
    }

    .home-hero__actions {
        margin-top: 19px !important;
        gap: 10px !important;
    }

    .home-btn {
        min-width: 166px !important;
        height: 46px !important;
        padding: 0 18px !important;
        font-size: .69rem !important;
        transition:
            transform 240ms var(--polish-ease),
            background-color 240ms var(--polish-ease),
            color 240ms var(--polish-ease),
            border-color 240ms var(--polish-ease) !important;
    }

    .home-hero__champions {
        margin-top: 16px !important;
        font-size: .68rem !important;
        line-height: 1.35 !important;
        white-space: nowrap;
    }
}

/* =========================
   BUTTON HOVER MOTION
   ========================= */
.home-btn:hover,
.highlight-card a:hover,
.explore-tile a:hover {
    transform: translateY(-1px);
}

.home-btn--primary:hover {
    background: #b91219 !important;
}

.home-btn--outline:hover {
    background: #fff !important;
    color: #111 !important;
    border-color: #fff !important;
}

/* Move arrows slightly on hover without changing layout. */
.home-btn span,
.highlight-card a span,
.explore-tile a span,
.home-btn::after,
.highlight-card a::after,
.explore-tile a::after {
    transition: transform 240ms var(--polish-ease);
}

.home-btn:hover span,
.highlight-card a:hover span,
.explore-tile a:hover span,
.home-btn:hover::after,
.highlight-card a:hover::after,
.explore-tile a:hover::after {
    transform: translateX(4px);
}

/* =========================
   HERO -> CARDS SPACING
   ========================= */
.home-highlights {
    background: var(--polish-paper) !important;
    margin-top: 0 !important;
    padding-top: 36px !important;
    padding-bottom: 0 !important;
}

.home-highlights__grid {
    gap: 22px !important;
}

.highlight-card {
    min-height: 174px !important;
    padding: 21px 23px !important;
    border: 1px solid rgba(0,0,0,.075) !important;
    border-top: 0 !important;
    border-radius: 2px !important;
    box-shadow: var(--polish-shadow) !important;
    position: relative;

    transition:
        transform 260ms var(--polish-ease),
        box-shadow 260ms var(--polish-ease),
        border-color 260ms var(--polish-ease) !important;
}

.highlight-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 72px;
    height: 3px;
    background: var(--red);

    transition: width 260ms var(--polish-ease);
}

.highlight-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--polish-shadow-hover) !important;
    border-color: rgba(0,0,0,.11) !important;
}

.highlight-card:hover::before {
    width: 108px;
}

.highlight-card__label {
    margin-bottom: 12px !important;
    color: #555 !important;
    font-size: .68rem !important;
    letter-spacing: .16em !important;
}

.highlight-card h2 {
    font-size: 1.44rem !important;
    line-height: 1.02 !important;
}

/* Event */
.highlight-event {
    grid-template-columns: 86px 1fr !important;
    gap: 17px !important;
}

.highlight-event__date {
    min-height: 112px !important;
    box-shadow: inset 0 -4px 0 rgba(0,0,0,.09);
}

.highlight-event__date strong {
    font-size: 2.9rem !important;
}

/* News */
.highlight-news {
    grid-template-columns: 126px 1fr !important;
    gap: 17px !important;
}

.highlight-news__image {
    width: 126px !important;
    height: 112px !important;
    border-radius: 1px;
    box-shadow: 0 5px 16px rgba(0,0,0,.12);

    transition: transform 300ms var(--polish-ease);
}

.highlight-news:hover .highlight-news__image {
    transform: scale(1.025);
}

/* Result */
.highlight-result {
    grid-template-columns: 98px 1fr !important;
    gap: 18px !important;
}

.highlight-result__trophy {
    width: 90px !important;
    height: 90px !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: var(--red) !important;
    border: 3px solid var(--red) !important;
    box-shadow: 0 6px 18px rgba(215,25,32,.12) !important;
    font-size: 2.5rem !important;

    transition:
        transform 280ms var(--polish-ease),
        box-shadow 280ms var(--polish-ease) !important;
}

.highlight-result:hover .highlight-result__trophy {
    transform: scale(1.035);
    box-shadow: 0 10px 24px rgba(215,25,32,.18) !important;
}

/* =========================
   CARDS -> EXPLORE SPACING
   ========================= */
.home-explore {
    padding: 34px 0 40px !important;
    background: var(--polish-paper) !important;
}

.home-explore__grid {
    gap: 18px !important;
}

.explore-tile {
    min-height: 224px !important;
    height: 224px !important;
    border-radius: 2px;
    box-shadow: 0 13px 30px rgba(0,0,0,.12);
    overflow: hidden;

    transition:
        transform 280ms var(--polish-ease),
        box-shadow 280ms var(--polish-ease) !important;
}

/* Slight image zoom without changing the source image. */
.explore-tile::before {
    transition: transform 340ms var(--polish-ease) !important;
    transform: scale(1);
}

.explore-tile:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px rgba(0,0,0,.17);
}

.explore-tile:hover::before {
    transform: scale(1.035);
}

.explore-tile__shade {
    background:
        linear-gradient(180deg,
            rgba(0,0,0,.02) 5%,
            rgba(0,0,0,.08) 36%,
            rgba(0,0,0,.48) 68%,
            rgba(0,0,0,.94) 100%) !important;

    transition: opacity 280ms var(--polish-ease);
}

.explore-tile:hover .explore-tile__shade {
    opacity: .94;
}

.explore-tile__content {
    left: 21px !important;
    right: 21px !important;
    bottom: 18px !important;

    transition: transform 280ms var(--polish-ease);
}

.explore-tile:hover .explore-tile__content {
    transform: translateY(-2px);
}

.explore-tile__content strong {
    font-size: 1.76rem !important;
    line-height: 1 !important;
}

.explore-tile__content small {
    font-size: .76rem !important;
    line-height: 1.4 !important;
}

.explore-tile__content em {
    margin-top: 9px !important;
    color: #ff353b !important;
}

/* Deliberate crops from genuine supplied photos. */
.explore-tile--band { background-position: 24% 53% !important; }
.explore-tile--events { background-position: 45% 48% !important; }
.explore-tile--gallery { background-position: 73% 53% !important; }
.explore-tile--media { background-position: 64% 48% !important; }

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width: 900px) {
    .home-highlights {
        margin-top: 0 !important;
        padding-top: 26px !important;
    }

    .home-explore {
        padding-top: 26px !important;
    }

    .home-hero {
        height: 520px !important;
        min-height: 0 !important;
    }

    .home-hero__photo {
        transform: none !important;
        background-position: var(--home-hero-position-x, 59%) var(--home-hero-position-y, 49%) !important;
    }

    .home-hero h1 {
        font-size: clamp(2.45rem, 6vw, 3.3rem) !important;
        white-space: normal;
    }

    .home-highlights__grid,
    .home-explore__grid {
        gap: 16px !important;
    }
}

@media (max-width: 620px) {
    .home-hero {
        height: auto !important;
        min-height: 620px !important;
    }

    .home-hero__champions {
        white-space: normal !important;
    }

    .explore-tile {
        height: 218px !important;
        min-height: 218px !important;
    }
}

/* Respect user accessibility preference. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* === Dobcross hero composition adjustment ===
   Move the band further right and carry the fade transition with it.
   No other homepage layout or interaction changes. */
@media (min-width: 901px) {
    .home-hero__photo {
        background-position: 68% 49% !important;
        transform: scale(1.008) translateX(1.5%) !important;
        transform-origin: 76% center !important;
    }

    .home-hero__shade {
        background:
            linear-gradient(90deg,
                rgba(0,0,0,.97) 0%,
                rgba(0,0,0,.95) 20%,
                rgba(0,0,0,.88) 29%,
                rgba(0,0,0,.68) 36%,
                rgba(0,0,0,.36) 43%,
                rgba(0,0,0,.12) 49%,
                rgba(0,0,0,.025) 55%,
                rgba(0,0,0,0) 61%),
            linear-gradient(0deg,
                rgba(0,0,0,.12) 0%,
                rgba(0,0,0,0) 38%) !important;
    }
}

/* === Dobcross FINAL composition + footer correction === */

/* Desktop hero: genuinely pin the image right.
   background-position alone could not visibly move a cover-sized image. */
@media (min-width: 901px) {
    .home-hero__photo {
        background-image: url('/images/dobcross-band-hero.jpg') !important;
        background-size: 78% auto !important;
        background-repeat: no-repeat !important;
        background-position: right 47% !important;
        transform: none !important;
        filter: saturate(1.08) contrast(1.035) brightness(1.035) !important;
    }

    .home-hero__shade {
        background:
            linear-gradient(90deg,
                rgba(0,0,0,1) 0%,
                rgba(0,0,0,.98) 22%,
                rgba(0,0,0,.91) 31%,
                rgba(0,0,0,.68) 39%,
                rgba(0,0,0,.36) 45%,
                rgba(0,0,0,.12) 50%,
                rgba(0,0,0,.03) 54%,
                rgba(0,0,0,0) 58%),
            linear-gradient(0deg,
                rgba(0,0,0,.10) 0%,
                rgba(0,0,0,0) 36%) !important;
    }
}

/* Give the image tiles a clean landing before the footer. */
.home-explore {
    padding-bottom: 46px !important;
}

/* Footer: stronger hierarchy, cleaner spacing, no oversized dead area. */
.site-footer {
    background: #080808 !important;
    color: #fff !important;
    border-top: 3px solid var(--red) !important;
}

.site-footer__inner {
    width: min(calc(100% - 64px), 1400px) !important;
}

.site-footer__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    padding: 34px 0 30px !important;
}

.site-footer__grid section {
    min-height: 108px !important;
    padding: 0 32px !important;
    gap: 5px !important;
    border-right: 1px solid rgba(255,255,255,.16) !important;
    color: rgba(255,255,255,.76) !important;
    font-size: .78rem !important;
    line-height: 1.55 !important;
}

.site-footer__grid section:first-child {
    padding-left: 0 !important;
}

.site-footer__grid section:last-child {
    padding-right: 0 !important;
    border-right: 0 !important;
}

.site-footer__grid strong {
    color: #fff !important;
    font-size: .86rem !important;
}

.site-footer__eyebrow {
    margin: 0 0 9px !important;
    color: #ff2c33 !important;
    font-size: .69rem !important;
    font-weight: 800 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
}

.site-footer__grid a:not(.site-footer__cta) {
    color: rgba(255,255,255,.82) !important;
    transition: color 180ms ease !important;
}

.site-footer__grid a:not(.site-footer__cta):hover {
    color: #fff !important;
}

.site-footer__cta {
    display: inline-flex !important;
    align-items: center !important;
    margin-top: 9px !important;
    color: #ff2c33 !important;
    font-size: .72rem !important;
    font-weight: 800 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    transition: color 180ms ease, transform 180ms ease !important;
}

.site-footer__cta:hover {
    color: #fff !important;
    transform: translateX(3px) !important;
}

.site-footer__bottom {
    min-height: 54px !important;
    padding: 12px 0 !important;
    border-top: 1px solid rgba(255,255,255,.13) !important;
    color: rgba(255,255,255,.48) !important;
    font-size: .69rem !important;
}

.site-footer__links {
    gap: 24px !important;
}

.site-footer__links a {
    color: rgba(255,255,255,.56) !important;
}

.site-footer__links a:hover {
    color: #fff !important;
}

@media (max-width: 900px) {
    .site-footer__inner {
        width: min(calc(100% - 36px), 1400px) !important;
    }

    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .site-footer__grid section {
        padding: 18px 24px !important;
    }

    .site-footer__grid section:nth-child(odd) {
        padding-left: 0 !important;
    }

    .site-footer__grid section:nth-child(even) {
        border-right: 0 !important;
    }
}

@media (max-width: 620px) {
    .site-footer__grid {
        grid-template-columns: 1fr !important;
        padding: 20px 0 16px !important;
    }

    .site-footer__grid section,
    .site-footer__grid section:nth-child(odd),
    .site-footer__grid section:nth-child(even) {
        padding: 17px 0 !important;
        min-height: 0 !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.12) !important;
    }

    .site-footer__grid section:last-child {
        border-bottom: 0 !important;
    }

    .site-footer__bottom {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .site-footer__links {
        flex-wrap: wrap !important;
        gap: 10px 18px !important;
    }
}

/* === Dobcross large hero restore + right crop ===
   Keeps the dramatic large photograph, fills the hero vertically,
   and shifts the usable crop toward the right without shrinking the band. */
@media (min-width: 901px) {
    .home-hero__photo {
        background-image: url('/images/dobcross-band-hero.jpg') !important;
        background-size: 108% auto !important;
        background-repeat: no-repeat !important;
        background-position: right 50% !important;
        transform: none !important;
        filter: saturate(1.08) contrast(1.035) brightness(1.035) !important;
    }

    .home-hero__shade {
        background:
            linear-gradient(90deg,
                rgba(0,0,0,1) 0%,
                rgba(0,0,0,.99) 20%,
                rgba(0,0,0,.94) 27%,
                rgba(0,0,0,.78) 33%,
                rgba(0,0,0,.52) 39%,
                rgba(0,0,0,.27) 45%,
                rgba(0,0,0,.09) 50%,
                rgba(0,0,0,.02) 54%,
                rgba(0,0,0,0) 58%),
            linear-gradient(0deg,
                rgba(0,0,0,.08) 0%,
                rgba(0,0,0,0) 34%) !important;
    }
}

/* === Dobcross native-resolution hero sharpness pass ===
   The hero JPG is now a native-width crop from the original photograph.
   Avoid extra CSS image processing that can soften fine detail. */
@media (min-width: 901px) {
    .home-hero__photo {
        filter: none !important;
        image-rendering: auto !important;
    }
}

/* === Dobcross FINAL hero composition ===
   Keep the native-resolution sharp hero, show slightly more of the band,
   retain the right-hand bias, and keep the text area clean. */
@media (min-width: 901px) {
    .home-hero__photo {
        background-image: url('/images/dobcross-band-hero.jpg') !important;
        background-size: 101.5% auto !important;
        background-repeat: no-repeat !important;
        background-position: right 50% !important;
        transform: none !important;
        filter: none !important;
        image-rendering: auto !important;
    }

    .home-hero__shade {
        background:
            linear-gradient(90deg,
                rgba(0,0,0,1) 0%,
                rgba(0,0,0,.99) 19%,
                rgba(0,0,0,.95) 27%,
                rgba(0,0,0,.80) 34%,
                rgba(0,0,0,.55) 40%,
                rgba(0,0,0,.29) 46%,
                rgba(0,0,0,.10) 51%,
                rgba(0,0,0,.025) 55%,
                rgba(0,0,0,0) 59%),
            linear-gradient(0deg,
                rgba(0,0,0,.07) 0%,
                rgba(0,0,0,0) 34%) !important;
    }
}

/* === Meet the Band: refined CMS roster === */
.band-roster { padding: 64px 0 72px; background: var(--paper); }
.band-roster .container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.band-roster__intro { max-width: 720px; margin: 0 0 30px; }
.band-roster__intro > p:last-child { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.band-roster__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; align-items: start; }
.band-member-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--red); box-shadow: 0 12px 28px rgba(0,0,0,.065); transition: transform 180ms ease, box-shadow 180ms ease; }
.band-member-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(0,0,0,.1); }
.band-member-card__photo { aspect-ratio: 4 / 3; overflow: hidden; background: #1d1d1d; }
.band-member-card__photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 24%; }
.band-member-card__placeholder { width:100%; height:100%; display:grid; place-items:center; color:#fff; font-family:"DM Serif Display",Georgia,serif; font-size:clamp(3.4rem,8vw,5.5rem); }
.band-member-card__content { padding: 22px 22px 24px; }
.band-member-card__content h2 { margin:0; font-family:"DM Serif Display",Georgia,serif; font-size:clamp(1.55rem,2vw,1.85rem); font-weight:400; line-height:1.08; }
.band-member-card__role { margin:9px 0 0; color:var(--red); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.band-member-card__instrument { margin:5px 0 0; color:var(--ink); font-size:.86rem; font-weight:700; }
.band-member-card__bio { margin:15px 0 0; color:var(--muted); font-size:.92rem; line-height:1.6; white-space:pre-line; }
@media (max-width:980px){ .band-roster__grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:640px){
  .band-roster{padding:46px 0 54px;}
  .band-roster .container{width:min(100% - 28px,1180px);}
  .band-roster__grid{grid-template-columns:1fr;gap:18px;}
  .band-member-card__content{padding:20px;}
}


/* Meet the Band â€” compact sectioned roster */
.band-page-hero{padding-bottom:48px}
.roster-shell{padding:52px 0 72px;background:var(--paper)}
.roster-shell>.container{width:min(1240px,calc(100% - 40px));margin-inline:auto}
.roster-section{padding:0 0 52px;margin:0 0 52px;border-bottom:1px solid var(--line)}
.roster-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.roster-section__heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 24px;margin-bottom:22px}
.roster-section__heading .eyebrow{grid-column:1/-1;margin:0;color:var(--red)}
.roster-section__heading h2{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2rem,4vw,3.1rem);font-weight:400;line-height:1}
.roster-section__heading span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.roster-card{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:112px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(0,0,0,.045);transition:transform 160ms ease,box-shadow 160ms ease}
.roster-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08)}
.roster-card__portrait{min-height:112px;background:#171717;overflow:hidden}
.roster-card__portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 22%}
.roster-card__initial{height:100%;display:grid;place-items:center;color:#fff;font-family:"DM Serif Display",Georgia,serif;font-size:2.6rem}
.roster-card__copy{padding:17px 14px;align-self:center;min-width:0}
.roster-card__copy h3{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:1.22rem;font-weight:400;line-height:1.05}
.roster-card__copy p{margin:7px 0 0;color:var(--red);font-size:.69rem;font-weight:850;letter-spacing:.055em;text-transform:uppercase;line-height:1.35}
.roster-card--vacancy{border-style:dashed;background:transparent}
.roster-card--vacancy .roster-card__portrait{background:var(--red)}
.roster-section--director .roster-grid{grid-template-columns:minmax(0,560px)}
.roster-section--director .roster-card{grid-template-columns:180px 1fr;min-height:210px}
.roster-section--director .roster-card__portrait{min-height:210px}
.roster-section--director .roster-card__copy{padding:28px}
.roster-section--director .roster-card__copy h3{font-size:2rem}
@media(max-width:1050px){.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-card{grid-template-columns:78px 1fr}.roster-section--director .roster-card{grid-template-columns:140px 1fr}}
@media(max-width:520px){.roster-shell>.container{width:min(100% - 28px,1240px)}.roster-grid{grid-template-columns:1fr}.roster-section__heading{grid-template-columns:1fr}.roster-section__heading span{margin-top:8px}.roster-section--director .roster-card{grid-template-columns:110px 1fr;min-height:150px}.roster-section--director .roster-card__portrait{min-height:150px}.roster-section--director .roster-card__copy{padding:18px}.roster-section--director .roster-card__copy h3{font-size:1.5rem}}


/* Meet the Band V4 heading cleanup */
.roster-section__heading{display:block!important;margin-bottom:24px!important}
.roster-section__heading>.eyebrow,
.roster-section__heading>span{display:none!important}
.roster-section__heading h2{margin:0!important}

/* =========================================================
   MEET THE BAND — FINAL COMPACT ROSTER LAYOUT
   ========================================================= */

/* Kill the huge empty hero area on this page only */
.band-page-hero{
    padding:36px 0 40px !important;
    min-height:0 !important;
}
.band-page-hero .container{
    width:min(1240px,calc(100% - 48px)) !important;
    margin-inline:auto !important;
}
.band-page-hero .eyebrow{
    margin:0 0 10px !important;
    font-size:.72rem !important;
}
.band-page-hero h1{
    margin:0 !important;
    font-size:clamp(2.8rem,5vw,4.7rem) !important;
    line-height:.95 !important;
}
.band-page-hero .page-hero__intro{
    max-width:680px !important;
    margin:16px 0 0 !important;
    font-size:1rem !important;
    line-height:1.6 !important;
}

/* Bring the roster immediately up under the intro */
.roster-shell{
    padding:28px 0 72px !important;
}
.roster-shell > .container{
    width:min(1240px,calc(100% - 48px)) !important;
    margin-inline:auto !important;
}

/* Section rhythm */
.roster-section{
    margin:0 0 44px !important;
    padding:0 0 44px !important;
}
.roster-section__heading{
    display:flex !important;
    align-items:center !important;
    gap:18px !important;
    margin:0 0 20px !important;
}
.roster-section__heading::after{
    content:"" !important;
    display:block !important;
    height:1px !important;
    flex:1 1 auto !important;
    width:auto !important;
    margin:6px 0 0 !important;
    background:var(--line) !important;
}
.roster-section__heading h2{
    flex:0 0 auto !important;
    margin:0 !important;
    font-size:clamp(2rem,3vw,2.8rem) !important;
    line-height:1 !important;
}

/* Main roster grid */
.roster-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:14px !important;
    align-items:stretch !important;
}

/* Compact cards */
.roster-card{
    display:grid !important;
    grid-template-columns:82px minmax(0,1fr) !important;
    min-height:100px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    box-shadow:none !important;
    overflow:hidden !important;
}
.roster-card:hover{
    transform:translateY(-2px) !important;
    box-shadow:0 10px 24px rgba(0,0,0,.07) !important;
}
.roster-card__portrait{
    width:82px !important;
    min-height:100px !important;
    height:100% !important;
}
.roster-card__initial{
    font-size:2rem !important;
}
.roster-card__copy{
    padding:14px 14px 13px !important;
    align-self:center !important;
}
.roster-card__copy h3{
    margin:0 !important;
    font-size:1.08rem !important;
    line-height:1.06 !important;
}
.roster-card__copy p{
    margin:7px 0 0 !important;
    font-size:.63rem !important;
    line-height:1.2 !important;
}

/* MD should feel featured, but not enormous */
.roster-section--director{
    margin-bottom:44px !important;
    padding-bottom:44px !important;
}
.roster-section--director .roster-grid{
    grid-template-columns:minmax(0,620px) !important;
}
.roster-section--director .roster-card{
    grid-template-columns:150px minmax(0,1fr) !important;
    min-height:160px !important;
}
.roster-section--director .roster-card__portrait{
    width:150px !important;
    min-height:160px !important;
}
.roster-section--director .roster-card__initial{
    font-size:3rem !important;
}
.roster-section--director .roster-card__copy{
    padding:24px 26px !important;
}
.roster-section--director .roster-card__copy h3{
    font-size:1.8rem !important;
}

/* Vacancy stays visually distinct but same footprint as the chair it represents */
.roster-card--vacancy{
    background:#faf8f5 !important;
    border:1px dashed #d8d2ca !important;
}
.roster-card--vacancy .roster-card__portrait{
    background:var(--red) !important;
}

/* Tablet */
@media(max-width:1050px){
    .roster-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

/* Small tablet */
@media(max-width:780px){
    .band-page-hero .container,
    .roster-shell > .container{
        width:min(100% - 32px,1240px) !important;
    }
    .roster-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    .roster-section--director .roster-grid{
        grid-template-columns:1fr !important;
    }
}

/* Mobile */
@media(max-width:520px){
    .band-page-hero{
        padding:28px 0 30px !important;
    }
    .roster-shell{
        padding-top:20px !important;
    }
    .roster-grid{
        grid-template-columns:1fr !important;
    }
    .roster-card{
        grid-template-columns:76px minmax(0,1fr) !important;
    }
    .roster-card__portrait{
        width:76px !important;
    }
    .roster-section--director .roster-card{
        grid-template-columns:105px minmax(0,1fr) !important;
        min-height:135px !important;
    }
    .roster-section--director .roster-card__portrait{
        width:105px !important;
        min-height:135px !important;
    }
}

/* Meet the Band V6: roster-only page chrome cleanup */
.meet-band-page .band-page-hero .eyebrow,
.meet-band-page .band-page-hero .page-hero__intro,
.meet-band-page .page-cta,
.meet-band-page .page-footer-cta,
.meet-band-page .content-cta{
    display:none!important;
}
.meet-band-page .band-page-hero{
    padding:30px 0 22px!important;
}
.meet-band-page .band-page-hero h1{
    margin:0!important;
}
.meet-band-page .roster-shell{
    padding-top:18px!important;
    padding-bottom:34px!important;
}
.meet-band-page .roster-section:last-child{
    margin-bottom:0!important;
    padding-bottom:0!important;
    border-bottom:0!important;
}

/* MEET THE BAND V7 */
.meet-band-page .band-page-hero{padding:30px 0 18px!important}
.meet-band-page .band-page-hero h1{font-size:clamp(3rem,5vw,4.6rem)!important;letter-spacing:-.025em}
.meet-band-page .roster-shell{padding:18px 0 54px!important}
.meet-band-page .roster-shell>.container{width:min(1240px,calc(100% - 48px))!important}
.meet-band-page .roster-section{margin:0 0 38px!important;padding:0 0 38px!important}
.meet-band-page .roster-section__heading{display:flex!important;align-items:center!important;gap:16px!important;margin:0 0 18px!important}
.meet-band-page .roster-section__heading h2{font-size:clamp(1.95rem,2.8vw,2.6rem)!important;letter-spacing:-.015em}
.meet-band-page .roster-section__heading::after{content:""!important;flex:1!important;width:auto!important;height:1px!important;margin:4px 0 0!important;background:var(--line)!important}

.meet-band-page .roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.meet-band-page .roster-card{grid-template-columns:92px minmax(0,1fr)!important;min-height:108px!important;border:1px solid #dedbd6!important;box-shadow:0 5px 16px rgba(0,0,0,.035)!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important}
.meet-band-page .roster-card:hover{transform:translateY(-3px)!important;box-shadow:0 12px 28px rgba(0,0,0,.075)!important;border-color:#cec9c1!important}
.meet-band-page .roster-card__portrait{width:92px!important;min-height:108px!important}
.meet-band-page .roster-card__portrait img{object-fit:cover!important;object-position:center 20%!important}
.meet-band-page .roster-card__copy{padding:15px 14px!important}
.meet-band-page .roster-card__copy h3{font-size:1.08rem!important;line-height:1.06!important}
.meet-band-page .roster-card__copy p{font-size:.62rem!important;line-height:1.22!important;letter-spacing:.045em!important}

.meet-band-page .roster-section--director .roster-grid{grid-template-columns:minmax(0,470px)!important}
.meet-band-page .roster-section--director .roster-card{grid-template-columns:150px minmax(0,1fr)!important;min-height:192px!important}
.meet-band-page .roster-section--director .roster-card__portrait{width:150px!important;min-height:192px!important}
.meet-band-page .roster-section--director .roster-card__copy{padding:24px!important}
.meet-band-page .roster-section--director .roster-card__copy h3{font-size:1.75rem!important}

.meet-band-page .roster-card--vacancy{background:#fbf8f5!important;border:1px dashed #d6cec5!important;box-shadow:none!important}
.meet-band-page .roster-card--vacancy .roster-card__portrait{background:var(--red)!important}

@media(max-width:1080px){.meet-band-page .roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:800px){
 .meet-band-page .roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .meet-band-page .roster-section--director .roster-grid{grid-template-columns:minmax(0,1fr)!important;max-width:470px}
}
@media(max-width:540px){
 .meet-band-page .roster-grid{grid-template-columns:1fr!important}
 .meet-band-page .roster-card{grid-template-columns:86px minmax(0,1fr)!important}
 .meet-band-page .roster-card__portrait{width:86px!important}
 .meet-band-page .roster-section--director .roster-card{grid-template-columns:120px minmax(0,1fr)!important;min-height:155px!important}
 .meet-band-page .roster-section--director .roster-card__portrait{width:120px!important;min-height:155px!important}
}

/* ABOUT THE BAND — migrated content presentation */
.about-page .page-hero{
    padding:58px 0 64px;
}
.about-page .page-hero .container{
    width:min(1180px,calc(100% - 48px));
    margin-inline:auto;
}
.about-page .page-hero h1{
    max-width:930px;
    font-size:clamp(3.4rem,6vw,6.3rem);
    line-height:.92;
    letter-spacing:-.035em;
}
.about-page .page-hero__intro{
    max-width:760px;
    margin-top:24px;
    font-size:1.08rem;
    line-height:1.7;
}
.about-page .content-section{
    padding:0;
    border-top:1px solid var(--line);
}
.about-page .content-section__inner{
    width:min(1180px,calc(100% - 48px));
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);
    gap:70px;
    padding:48px 0;
}
.about-page .content-section__heading .eyebrow{
    position:sticky;
    top:24px;
    margin:4px 0 0;
}
.about-page .content-section__body p{
    max-width:790px;
    margin:0;
    font-family:"DM Serif Display",Georgia,serif;
    font-size:clamp(1.45rem,2.2vw,2.05rem);
    line-height:1.42;
    letter-spacing:-.012em;
}
.about-page .content-section:nth-of-type(4) .content-section__body{
    position:relative;
    padding-left:26px;
}
.about-page .content-section:nth-of-type(4) .content-section__body::before{
    content:"";
    position:absolute;
    inset:4px auto 4px 0;
    width:4px;
    background:var(--red);
}
.about-page .page-cta{
    margin-top:0;
}
@media(max-width:760px){
    .about-page .page-hero{padding:38px 0 42px}
    .about-page .page-hero .container,
    .about-page .content-section__inner{width:min(100% - 32px,1180px)}
    .about-page .content-section__inner{grid-template-columns:1fr;gap:16px;padding:34px 0}
    .about-page .content-section__heading .eyebrow{position:static}
    .about-page .content-section__body p{font-size:1.35rem}
}

/* ABOUT THE BAND — final presentation polish v2 */
.about-page .page-cta,
.about-page .page-footer-cta,
.about-page .content-cta {
    display: none !important;
}

.about-page {
    overflow: hidden;
}

.about-page .page-hero {
    position: relative;
    padding-bottom: 72px;
}

.about-page .page-hero::after {
    content: "";
    position: absolute;
    left: max(24px, calc((100% - 1180px) / 2));
    bottom: 0;
    width: 76px;
    height: 4px;
    background: var(--red);
}

.about-page .content-section__inner {
    align-items: start;
}

.about-page .content-section__heading .eyebrow {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .035em;
}

.about-page .content-section__body p {
    text-wrap: pretty;
}

.about-page .content-section:nth-of-type(even) {
    background: rgba(0,0,0,.018);
}

.about-page .content-section:nth-of-type(4) {
    background:
        linear-gradient(90deg, rgba(204,25,32,.035), transparent 48%);
}

.about-page .content-section:nth-of-type(4) .content-section__body {
    padding-left: 30px;
}

.about-page .content-section:nth-of-type(4) .content-section__body::before {
    width: 3px;
}

.about-page .content-section:last-of-type {
    margin-bottom: 0;
}

.about-page + footer,
.about-page ~ footer {
    margin-top: 0;
}

@media (min-width: 900px) {
    .about-page .content-section__inner {
        padding-top: 54px;
        padding-bottom: 54px;
    }

    .about-page .content-section:nth-of-type(3) .content-section__body {
        padding-right: 42px;
    }
}

@media (max-width: 760px) {
    .about-page .page-hero {
        padding-bottom: 48px;
    }

    .about-page .page-hero::after {
        left: 16px;
        width: 56px;
    }

    .about-page .content-section:nth-of-type(4) .content-section__body {
        padding-left: 20px;
    }
}

/* ABOUT THE BAND — full layout redesign v3
   Uses the existing genuine Dobcross band photograph; CMS wording remains untouched. */

.about-page .page-hero{
    position:relative;
    isolation:isolate;
    min-height:500px;
    display:flex;
    align-items:flex-end;
    padding:0 !important;
    background:
        linear-gradient(90deg,rgba(8,8,8,.86) 0%,rgba(8,8,8,.68) 42%,rgba(8,8,8,.18) 76%,rgba(8,8,8,.08) 100%),
        url("/images/dobcross-band-hero.jpg") center 38% / cover no-repeat;
    border:0;
}
.about-page .page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(0deg,rgba(0,0,0,.28),transparent 42%);
}
.about-page .page-hero::after{
    display:none !important;
}
.about-page .page-hero .container{
    width:min(1180px,calc(100% - 64px));
    margin-inline:auto;
    padding:76px 0 68px;
}
.about-page .page-hero .eyebrow{
    margin:0 0 16px;
    color:#fff;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.about-page .page-hero .eyebrow::after{
    content:"";
    display:block;
    width:54px;
    height:3px;
    margin-top:12px;
    background:var(--red);
}
.about-page .page-hero h1{
    max-width:760px;
    margin:0;
    color:#fff;
    font-size:clamp(3rem,5.2vw,5.2rem);
    line-height:.94;
    letter-spacing:-.035em;
    text-wrap:balance;
}
.about-page .page-hero__intro{
    max-width:670px;
    margin:22px 0 0;
    color:rgba(255,255,255,.92);
    font-size:1.05rem;
    line-height:1.65;
}

/* More compact editorial body */
.about-page .content-section{
    border-top:1px solid rgba(0,0,0,.10);
    background:#f5f3ef !important;
}
.about-page .content-section:nth-of-type(even){
    background:#fff !important;
}
.about-page .content-section__inner{
    width:min(1040px,calc(100% - 64px));
    margin-inline:auto;
    display:grid;
    grid-template-columns:170px minmax(0,1fr);
    gap:54px;
    padding:48px 0;
}
.about-page .content-section__heading .eyebrow{
    position:static !important;
    margin:7px 0 0;
    color:#171717;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.02em;
    text-transform:none;
}
.about-page .content-section__body{
    max-width:760px;
}
.about-page .content-section__body p{
    max-width:none;
    margin:0;
    font-size:clamp(1.28rem,1.7vw,1.75rem);
    line-height:1.46;
    letter-spacing:-.01em;
}
.about-page .content-section:nth-of-type(4){
    background:#151515 !important;
    color:#fff;
}
.about-page .content-section:nth-of-type(4) .content-section__heading .eyebrow{
    color:rgba(255,255,255,.72);
}
.about-page .content-section:nth-of-type(4) .content-section__body{
    padding-left:24px;
}
.about-page .content-section:nth-of-type(4) .content-section__body::before{
    inset:2px auto 2px 0;
    width:3px;
    background:var(--red);
}
.about-page .content-section:nth-of-type(4) .content-section__body p{
    color:#fff;
}

.about-page .page-cta,
.about-page .page-footer-cta,
.about-page .content-cta{
    display:none !important;
}

@media(max-width:760px){
    .about-page .page-hero{
        min-height:440px;
        background-position:58% center;
    }
    .about-page .page-hero .container{
        width:min(100% - 32px,1180px);
        padding:54px 0 44px;
    }
    .about-page .page-hero h1{
        font-size:clamp(2.6rem,13vw,4rem);
    }
    .about-page .page-hero__intro{
        font-size:.98rem;
    }
    .about-page .content-section__inner{
        width:min(100% - 32px,1040px);
        grid-template-columns:1fr;
        gap:14px;
        padding:34px 0;
    }
    .about-page .content-section__body p{
        font-size:1.28rem;
    }
    .about-page .content-section:nth-of-type(4) .content-section__body{
        padding-left:18px;
    }
}

/* ABOUT THE BAND â€” Orchard-managed rotating hero v4 */
.about-page .about-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#111 !important;
}
.about-page .about-hero__media,
.about-page .about-hero__shade,
.about-page .about-hero__slide{
    position:absolute;
    inset:0;
}
.about-page .about-hero__media{
    z-index:-3;
}
.about-page .about-hero__slide{
    opacity:0;
    background-position:center 38%;
    background-size:cover;
    background-repeat:no-repeat;
    transform:scale(1.015);
    transition:opacity 1.2s ease, transform 8s ease;
}
.about-page .about-hero__slide.is-active{
    opacity:1;
    transform:scale(1);
}
.about-page .about-hero__shade{
    z-index:-2;
    background:
        linear-gradient(90deg,rgba(8,8,8,.86) 0%,rgba(8,8,8,.68) 42%,rgba(8,8,8,.18) 76%,rgba(8,8,8,.08) 100%),
        linear-gradient(0deg,rgba(0,0,0,.28),transparent 42%);
}
.about-page .about-hero .container{
    position:relative;
    z-index:1;
}
.about-page .about-hero::before,
.about-page .about-hero::after{
    display:none !important;
}
@media (prefers-reduced-motion: reduce){
    .about-page .about-hero__slide{
        transition:none;
        transform:none;
    }
}
@media(max-width:760px){
    .about-page .about-hero__slide{
        background-position:58% center;
    }
}


/* HISTORY â€” maintainable timeline v1 */
.history-page{background:#f4f1eb;overflow:hidden}
.history-page .history-hero{position:relative;isolation:isolate;overflow:hidden;min-height:510px;display:flex;align-items:flex-end;padding:0;background:#111}
.history-hero__media,.history-hero__shade,.history-hero__slide{position:absolute;inset:0}
.history-hero__media{z-index:-3}
.history-hero__slide{opacity:0;background:center 40%/cover no-repeat;transform:scale(1.015);transition:opacity 1.2s ease,transform 8s ease}
.history-hero__slide.is-active{opacity:1;transform:scale(1)}
.history-hero__shade{z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.88),rgba(5,5,5,.65) 45%,rgba(5,5,5,.16) 82%),linear-gradient(0deg,rgba(0,0,0,.35),transparent 50%)}
.history-hero .container{width:min(1180px,calc(100% - 64px));margin:auto;padding:78px 0 68px}
.history-hero .eyebrow{color:#fff;margin:0 0 16px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.history-hero .eyebrow:after{content:"";display:block;width:54px;height:3px;margin-top:12px;background:var(--red)}
.history-hero h1{max-width:800px;margin:0;color:#fff;font-size:clamp(3.2rem,5.5vw,5.5rem);line-height:.94;letter-spacing:-.035em;text-wrap:balance}
.history-hero .page-hero__intro{max-width:700px;margin:22px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.65}
.history-intro{background:#171717;color:#fff}
.history-intro__inner{width:min(1180px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:180px 1fr;gap:48px;padding:42px 0}
.history-intro .eyebrow{margin:7px 0 0;color:rgba(255,255,255,.65);font-size:.78rem;font-weight:800}
.history-intro__statement{max-width:800px;margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1.2}
.history-timeline>.container{width:min(1080px,calc(100% - 64px));margin:auto;padding:66px 0 84px}
.history-entry{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:42px;padding:0 0 64px 46px;margin-left:14px;border-left:1px solid rgba(0,0,0,.18)}
.history-entry:last-child{padding-bottom:0}
.history-entry__marker{position:absolute;left:-7px;top:8px;width:13px;height:13px;border:3px solid #f4f1eb;border-radius:50%;background:var(--red);box-shadow:0 0 0 1px var(--red)}
.history-entry__era{padding-top:2px;font-size:.85rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--red)}
.history-entry__content{max-width:760px}
.history-entry__content h2{margin:0 0 18px;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2rem,3vw,3.2rem);line-height:1;letter-spacing:-.025em}
.history-entry__copy{font-size:1.03rem;line-height:1.72;color:#333}
.history-entry__copy p{margin:0 0 1.05em}
.history-entry__copy p:last-child{margin-bottom:0}
.history-entry__copy strong{color:#111}
.history-entry.has-image{grid-template-columns:150px minmax(0,1fr) 300px}
.history-entry__figure{margin:5px 0 0}
.history-entry__figure img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.history-entry__figure figcaption{margin-top:9px;font-size:.78rem;line-height:1.45;color:#666}
.history-empty{padding:50px;background:#fff}
@media(max-width:900px){
 .history-entry.has-image{grid-template-columns:120px minmax(0,1fr)}
 .history-entry__figure{grid-column:2}
 .history-entry{grid-template-columns:120px minmax(0,1fr)}
}
@media(max-width:680px){
 .history-page .history-hero{min-height:450px}
 .history-hero .container,.history-intro__inner,.history-timeline>.container{width:min(100% - 32px,1180px)}
 .history-hero .container{padding:56px 0 44px}
 .history-intro__inner{grid-template-columns:1fr;gap:10px;padding:30px 0}
 .history-entry,.history-entry.has-image{grid-template-columns:1fr;gap:10px;margin-left:5px;padding-left:28px;padding-bottom:48px}
 .history-entry__figure{grid-column:1;margin-top:10px}
 .history-entry__era{padding-top:0}
}
@media(prefers-reduced-motion:reduce){.history-hero__slide{transition:none;transform:none}}


/* GALLERY â€” Orchard-managed albums, photos and lightbox v1 */
.gallery-page{background:#f4f1eb;overflow:hidden}
.gallery-page .gallery-hero{position:relative;isolation:isolate;overflow:hidden;min-height:470px;display:flex;align-items:flex-end;padding:0;background:#111}
.gallery-hero__media,.gallery-hero__shade,.gallery-hero__slide{position:absolute;inset:0}
.gallery-hero__media{z-index:-3}
.gallery-hero__slide{opacity:0;background:center 42%/cover no-repeat;transform:scale(1.015);transition:opacity 1.2s ease,transform 8s ease}
.gallery-hero__slide.is-active{opacity:1;transform:scale(1)}
.gallery-hero__shade{z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.86),rgba(5,5,5,.61) 45%,rgba(5,5,5,.12) 83%),linear-gradient(0deg,rgba(0,0,0,.32),transparent 52%)}
.gallery-hero .container{width:min(1180px,calc(100% - 64px));margin:auto;padding:72px 0 62px}
.gallery-hero .eyebrow{color:#fff;margin:0 0 16px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.gallery-hero .eyebrow:after{content:"";display:block;width:54px;height:3px;margin-top:12px;background:var(--red)}
.gallery-hero h1{max-width:800px;margin:0;color:#fff;font-size:clamp(3.1rem,5.4vw,5.4rem);line-height:.94;letter-spacing:-.035em}
.gallery-hero .page-hero__intro{max-width:680px;margin:22px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.65}

.gallery-filter{position:sticky;top:0;z-index:8;background:rgba(244,241,235,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.1)}
.gallery-filter__inner{width:min(1180px,calc(100% - 64px));margin:auto;display:flex;gap:8px;overflow:auto;padding:14px 0}
.gallery-filter__button{appearance:none;border:1px solid rgba(0,0,0,.17);background:transparent;padding:9px 15px;border-radius:999px;font:inherit;font-size:.82rem;font-weight:750;white-space:nowrap;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.gallery-filter__button:hover{transform:translateY(-1px);border-color:#111}
.gallery-filter__button.is-active{background:#111;border-color:#111;color:#fff}

.gallery-collections>.container{width:min(1180px,calc(100% - 64px));margin:auto;padding:54px 0 86px}
.gallery-album{margin-bottom:72px}
.gallery-album:last-child{margin-bottom:0}
.gallery-album__heading{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:end;gap:24px;margin-bottom:24px;padding-bottom:17px;border-bottom:1px solid rgba(0,0,0,.16)}
.gallery-album__heading .eyebrow{margin:0 0 5px;font-size:.76rem;font-weight:800;color:var(--red)}
.gallery-album__heading h2{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2rem,3.2vw,3.35rem);line-height:1}
.gallery-album__heading>span{padding-bottom:4px;font-size:.8rem;color:#666}

.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery-card{appearance:none;display:block;width:100%;padding:0;border:0;background:#fff;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.08);transition:transform .2s ease,box-shadow .2s ease}
.gallery-card:hover{transform:translateY(-4px);box-shadow:0 16px 35px rgba(0,0,0,.11)}
.gallery-card__image{display:block;overflow:hidden;background:#ddd;aspect-ratio:4/3}
.gallery-card__image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-card:hover .gallery-card__image img{transform:scale(1.025)}
.gallery-card__copy{display:flex;flex-direction:column;gap:5px;padding:14px 15px 15px}
.gallery-card__copy strong{font-size:.92rem;color:#111}
.gallery-card__copy span{font-size:.79rem;line-height:1.45;color:#666}

.gallery-empty>.container{width:min(900px,calc(100% - 64px));margin:auto;padding:80px 0 100px}
.gallery-empty .eyebrow{color:var(--red);font-size:.76rem;font-weight:800}
.gallery-empty h2{margin:8px 0 10px;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2.2rem,4vw,4rem)}
.gallery-empty p{max-width:600px;line-height:1.65}

.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:28px}
.gallery-lightbox__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.92)}
.gallery-lightbox__dialog{position:relative;z-index:1;width:min(1200px,96vw);max-height:92vh;display:flex;flex-direction:column;align-items:center}
.gallery-lightbox__image{display:block;max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 22px 70px rgba(0,0,0,.4)}
.gallery-lightbox__close{position:absolute;right:0;top:-48px;width:40px;height:40px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.gallery-lightbox__copy{width:min(850px,100%);display:flex;flex-direction:column;gap:4px;padding-top:14px;text-align:center;color:#fff}
.gallery-lightbox__title{font-size:1rem}
.gallery-lightbox__caption{font-size:.84rem;color:rgba(255,255,255,.72)}
.gallery-lightbox-open{overflow:hidden}

@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
 .gallery-page .gallery-hero{min-height:430px}
 .gallery-hero .container,.gallery-filter__inner,.gallery-collections>.container,.gallery-empty>.container{width:min(100% - 32px,1180px)}
 .gallery-hero .container{padding:52px 0 42px}
 .gallery-album__heading{grid-template-columns:1fr auto;gap:8px 16px}
 .gallery-album__heading .eyebrow{grid-column:1/-1}
 .gallery-grid{grid-template-columns:1fr}
 .gallery-lightbox{padding:18px}
 .gallery-lightbox__close{top:-44px}
}
@media(prefers-reduced-motion:reduce){
 .gallery-hero__slide,.gallery-card,.gallery-card__image img{transition:none;transform:none}
}

/* === DOBCROSS MEET THE BAND V8 START === */
.meet-band-page{
    background:#f4f1eb;
    overflow:hidden;
}

/* Same Orchard-managed hero system and proportions as Gallery/History/About */
.meet-band-page .band-page-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:470px !important;
    display:flex !important;
    align-items:flex-end !important;
    padding:0 !important;
    background:#111 !important;
    color:#fff;
}

.meet-band-page .band-page-hero__media,
.meet-band-page .band-page-hero__shade,
.meet-band-page .band-page-hero__slide{
    position:absolute;
    inset:0;
}

.meet-band-page .band-page-hero__media{
    z-index:-3;
}

.meet-band-page .band-page-hero__slide{
    opacity:0;
    background:center 42% / cover no-repeat;
    transform:scale(1.015);
    transition:opacity 1.2s ease, transform 8s ease;
}

.meet-band-page .band-page-hero__slide.is-active{
    opacity:1;
    transform:scale(1);
}

.meet-band-page .band-page-hero__shade{
    z-index:-2;
    background:
        linear-gradient(90deg,rgba(5,5,5,.88),rgba(5,5,5,.60) 46%,rgba(5,5,5,.18) 84%),
        linear-gradient(0deg,rgba(0,0,0,.30),transparent 54%);
}

/* If no hero photo is selected, the page keeps a deliberate dark fallback. */
.meet-band-page .band-page-hero .container{
    width:min(1180px,calc(100% - 64px)) !important;
    margin:auto !important;
    padding:72px 0 62px !important;
    position:relative;
    z-index:1;
}

.meet-band-page .band-page-hero .eyebrow{
    position:static !important;
    display:block !important;
    margin:0 0 16px !important;
    color:#fff !important;
    font-size:.78rem !important;
    font-weight:800 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase;
}

.meet-band-page .band-page-hero .eyebrow::after{
    content:"";
    display:block;
    width:54px;
    height:3px;
    margin-top:12px;
    background:var(--red);
}

.meet-band-page .band-page-hero h1{
    max-width:800px;
    margin:0 !important;
    color:#fff !important;
    font-size:clamp(3.1rem,5.4vw,5.4rem) !important;
    line-height:.94 !important;
    letter-spacing:-.035em !important;
}

.meet-band-page .band-page-hero .page-hero__intro{
    max-width:680px !important;
    margin:22px 0 0 !important;
    color:rgba(255,255,255,.92) !important;
    font-size:1.05rem !important;
    line-height:1.65 !important;
}

/* Roster */
.meet-band-page .roster-shell{
    padding:48px 0 82px !important;
    background:#f4f1eb !important;
}

.meet-band-page .roster-shell > .container{
    width:min(1180px,calc(100% - 64px)) !important;
    margin:auto !important;
}

.meet-band-page .roster-section{
    margin:0 0 48px !important;
    padding:0 0 48px !important;
    border-bottom:1px solid rgba(0,0,0,.13) !important;
}

.meet-band-page .roster-section:last-child{
    margin-bottom:0 !important;
    padding-bottom:0 !important;
    border-bottom:0 !important;
}

.meet-band-page .roster-section__heading{
    display:flex !important;
    align-items:center !important;
    gap:18px !important;
    margin:0 0 22px !important;
}

.meet-band-page .roster-section__heading::after{
    content:"" !important;
    display:block !important;
    flex:1 1 auto !important;
    width:auto !important;
    height:1px !important;
    margin-top:7px !important;
    background:rgba(0,0,0,.13) !important;
}

.meet-band-page .roster-section__heading h2{
    flex:0 0 auto;
    margin:0 !important;
    font-family:"DM Serif Display",Georgia,serif !important;
    font-size:clamp(2rem,3.2vw,2.75rem) !important;
    font-weight:400 !important;
    line-height:1 !important;
    letter-spacing:-.02em !important;
}

.meet-band-page .roster-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:14px !important;
}

.meet-band-page .roster-card{
    display:grid !important;
    grid-template-columns:92px minmax(0,1fr) !important;
    min-height:108px !important;
    overflow:hidden;
    background:#fff !important;
    border:1px solid #dedbd6 !important;
    box-shadow:0 5px 16px rgba(0,0,0,.035) !important;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease !important;
}

.meet-band-page .roster-card:hover{
    transform:translateY(-3px) !important;
    border-color:#cec9c1 !important;
    box-shadow:0 12px 28px rgba(0,0,0,.075) !important;
}

.meet-band-page .roster-card__portrait{
    width:92px !important;
    min-height:108px !important;
    overflow:hidden;
}

.meet-band-page .roster-card__portrait img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover !important;
    object-position:center 20% !important;
}

.meet-band-page .roster-card__initial{
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    min-height:108px;
    background:#ece8e1;
    color:#111;
    font-family:"DM Serif Display",Georgia,serif;
    font-size:2rem;
}

.meet-band-page .roster-card__copy{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:15px 14px !important;
}

.meet-band-page .roster-card__copy h3{
    margin:0 !important;
    font-family:"DM Serif Display",Georgia,serif;
    font-size:1.08rem !important;
    font-weight:400;
    line-height:1.08 !important;
}

.meet-band-page .roster-card__copy p{
    margin:7px 0 0 !important;
    color:var(--red) !important;
    font-size:.62rem !important;
    font-weight:850 !important;
    line-height:1.22 !important;
    letter-spacing:.045em !important;
    text-transform:uppercase;
}

.meet-band-page .roster-card--vacancy{
    background:#fbf8f5 !important;
    border:1px dashed #d6cec5 !important;
    box-shadow:none !important;
}

.meet-band-page .roster-card--vacancy .roster-card__portrait,
.meet-band-page .roster-card--vacancy .roster-card__initial{
    background:var(--red) !important;
    color:#fff !important;
}

.meet-band-page .roster-section--director .roster-grid{
    grid-template-columns:minmax(0,470px) !important;
}

.meet-band-page .roster-section--director .roster-card{
    grid-template-columns:150px minmax(0,1fr) !important;
    min-height:192px !important;
}

.meet-band-page .roster-section--director .roster-card__portrait,
.meet-band-page .roster-section--director .roster-card__initial{
    width:150px !important;
    min-height:192px !important;
}

.meet-band-page .roster-section--director .roster-card__copy{
    padding:24px !important;
}

.meet-band-page .roster-section--director .roster-card__copy h3{
    font-size:1.75rem !important;
}

@media(max-width:1080px){
    .meet-band-page .roster-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:800px){
    .meet-band-page .roster-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .meet-band-page .roster-section--director .roster-grid{
        grid-template-columns:minmax(0,1fr) !important;
        max-width:470px;
    }
}

@media(max-width:620px){
    .meet-band-page .band-page-hero{
        min-height:430px !important;
    }

    .meet-band-page .band-page-hero .container,
    .meet-band-page .roster-shell > .container{
        width:min(100% - 32px,1180px) !important;
    }

    .meet-band-page .band-page-hero .container{
        padding:52px 0 42px !important;
    }

    .meet-band-page .roster-grid{
        grid-template-columns:1fr !important;
    }

    .meet-band-page .roster-card{
        grid-template-columns:86px minmax(0,1fr) !important;
    }

    .meet-band-page .roster-card__portrait{
        width:86px !important;
    }

    .meet-band-page .roster-section--director .roster-card{
        grid-template-columns:120px minmax(0,1fr) !important;
        min-height:155px !important;
    }

    .meet-band-page .roster-section--director .roster-card__portrait,
    .meet-band-page .roster-section--director .roster-card__initial{
        width:120px !important;
        min-height:155px !important;
    }
}

@media(prefers-reduced-motion:reduce){
    .meet-band-page .band-page-hero__slide,
    .meet-band-page .roster-card{
        transition:none !important;
        transform:none !important;
    }
}
/* === DOBCROSS MEET THE BAND V8 END === */

/* === DOBCROSS RESULTS CMS V1 START === */
.results-page{
    background:var(--paper);
}

.results-page .results-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:470px;
    display:flex;
    align-items:flex-end;
    padding:0;
    background:#090909;
    color:#fff;
}

.results-page .results-hero__media,
.results-page .results-hero__shade,
.results-page .results-hero__slide{
    position:absolute;
    inset:0;
}

.results-page .results-hero__media{
    z-index:-3;
}

.results-page .results-hero__slide{
    opacity:0;
    background:center 46% / cover no-repeat;
    transform:scale(1.015);
    transition:opacity 1.2s ease,transform 8s ease;
}

.results-page .results-hero__slide.is-active{
    opacity:1;
    transform:scale(1);
}

.results-page .results-hero__shade{
    z-index:-2;
    background:
        linear-gradient(90deg,rgba(5,5,5,.90),rgba(5,5,5,.64) 47%,rgba(5,5,5,.20) 84%),
        linear-gradient(0deg,rgba(0,0,0,.30),transparent 54%);
}

.results-page .results-hero .container,
.results-page .results-content .container{
    width:min(1180px,calc(100% - 64px));
    margin-inline:auto;
}

.results-page .results-hero .container{
    padding:72px 0 62px;
}

.results-page .results-hero .eyebrow{
    display:block;
    margin:0 0 16px;
    color:#fff;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.results-page .results-hero .eyebrow::after{
    content:"";
    display:block;
    width:54px;
    height:3px;
    margin-top:12px;
    background:var(--red);
}

.results-page .results-hero h1{
    max-width:820px;
    margin:0;
    color:#fff;
    font-size:clamp(3.1rem,5.4vw,5.4rem);
    line-height:.94;
    letter-spacing:-.035em;
}

.results-page .results-hero .page-hero__intro{
    max-width:680px;
    margin:22px 0 0;
    color:rgba(255,255,255,.92);
    font-size:1.05rem;
    line-height:1.65;
}

.results-page .results-content{
    padding:48px 0 82px;
}

.results-page .results-section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin:0 0 18px;
}

.results-page .results-section-heading .eyebrow{
    margin:0;
    color:var(--red);
    font-size:.72rem;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.results-page .results-external-link{
    color:var(--red);
    font-size:.71rem;
    font-weight:850;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.results-page .results-external-link:hover,
.results-page .text-link:hover{
    text-decoration:underline;
    text-underline-offset:3px;
}

.results-page .results-table-shell{
    overflow:hidden;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 12px 34px rgba(0,0,0,.055);
}

.results-page .results-table-scroll{
    overflow-x:auto;
}

.results-page .results-table--polished{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}

.results-page .results-table--polished th{
    padding:16px 18px;
    background:#111;
    color:#fff;
    border:0;
    text-align:left;
    font-size:.68rem;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.results-page .results-table--polished td{
    padding:17px 18px;
    border-bottom:1px solid #e9e6e1;
    color:#242424;
    font-size:.86rem;
    vertical-align:middle;
}

.results-page .results-table--polished tbody tr:last-child td{
    border-bottom:0;
}

.results-page .results-table--polished tbody tr{
    transition:background .16s ease;
}

.results-page .results-table--polished tbody tr:hover{
    background:#faf8f5;
}

.results-page .results-table--polished th:nth-child(1),
.results-page .results-table--polished td:nth-child(1){
    width:150px;
}

.results-page .results-table--polished th:nth-child(3),
.results-page .results-table--polished td:nth-child(3){
    width:130px;
}

.results-page .results-table--polished th:nth-child(4),
.results-page .results-table--polished td:nth-child(4){
    width:220px;
}

.results-page .results-position{
    display:inline-flex;
    min-width:40px;
    min-height:31px;
    padding:5px 10px;
    align-items:center;
    justify-content:center;
    border:1px solid #ddd8d0;
    background:#f6f3ee;
    font-weight:800;
}

.results-page .results-credit{
    margin:18px 0 0;
    color:var(--muted);
    font-size:.78rem;
}

.results-page .text-link{
    color:inherit;
    font-weight:700;
}

.results-page .results-empty{
    padding:38px;
    background:#fff;
    border:1px solid var(--line);
    border-top:3px solid var(--red);
}

.results-page .results-empty h2{
    margin:0;
    font-family:"DM Serif Display",Georgia,serif;
    font-size:2rem;
    font-weight:400;
}

.results-page .results-empty p{
    max-width:700px;
    color:var(--muted);
}

@media(max-width:700px){
    .results-page .results-hero{
        min-height:430px;
    }

    .results-page .results-hero .container,
    .results-page .results-content .container{
        width:min(100% - 32px,1180px);
    }

    .results-page .results-hero .container{
        padding:52px 0 42px;
    }

    .results-page .results-section-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:9px;
    }

    .results-page .results-table--polished thead{
        display:none;
    }

    .results-page .results-table--polished,
    .results-page .results-table--polished tbody,
    .results-page .results-table--polished tr,
    .results-page .results-table--polished td{
        display:block;
        width:100% !important;
    }

    .results-page .results-table--polished tr{
        padding:12px 16px;
        border-bottom:1px solid #dedbd6;
    }

    .results-page .results-table--polished tr:last-child{
        border-bottom:0;
    }

    .results-page .results-table--polished td{
        display:grid;
        grid-template-columns:92px minmax(0,1fr);
        gap:12px;
        padding:7px 0;
        border:0;
    }

    .results-page .results-table--polished td::before{
        content:attr(data-label);
        color:#777;
        font-size:.65rem;
        font-weight:850;
        letter-spacing:.06em;
        text-transform:uppercase;
    }
}

@media(prefers-reduced-motion:reduce){
    .results-page .results-hero__slide,
    .results-page .results-table--polished tbody tr{
        transition:none;
        transform:none;
    }
}
/* === DOBCROSS RESULTS CMS V1 END === */

/* === DOBCROSS RESULTS HERO ALIGN V2 START === */
/* Match Gallery hero text geometry exactly. */
.results-page .results-hero{
    min-height:470px !important;
    display:flex !important;
    align-items:flex-end !important;
    padding:0 !important;
}

.results-page .results-hero .container{
    width:min(1180px,calc(100% - 64px)) !important;
    margin:auto !important;
    padding:72px 0 62px !important;
}

.results-page .results-hero .eyebrow{
    color:#fff !important;
    margin:0 0 16px !important;
    font-size:.78rem !important;
    font-weight:800 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}

.results-page .results-hero .eyebrow::after{
    content:"" !important;
    display:block !important;
    width:54px !important;
    height:3px !important;
    margin-top:12px !important;
    background:var(--red) !important;
}

.results-page .results-hero h1{
    max-width:800px !important;
    margin:0 !important;
    color:#fff !important;
    font-size:clamp(3.1rem,5.4vw,5.4rem) !important;
    line-height:.94 !important;
    letter-spacing:-.035em !important;
}

.results-page .results-hero .page-hero__intro{
    max-width:680px !important;
    margin:22px 0 0 !important;
    color:rgba(255,255,255,.92) !important;
    font-size:1.05rem !important;
    line-height:1.65 !important;
}

@media(max-width:620px){
    .results-page .results-hero{
        min-height:430px !important;
    }

    .results-page .results-hero .container{
        width:min(100% - 32px,1180px) !important;
        margin:auto !important;
        padding:52px 0 42px !important;
    }
}
/* === DOBCROSS RESULTS HERO ALIGN V2 END === */

/* === DOBCROSS CONTACT PAGE V8 START === */
.contact-page{background:var(--paper);}
.contact-page .contact-hero{position:relative;isolation:isolate;overflow:hidden;min-height:470px;display:flex;align-items:flex-end;padding:0;background:#090909;color:#fff;}
.contact-page .contact-hero__media,.contact-page .contact-hero__shade,.contact-page .contact-hero__slide{position:absolute;inset:0;}
.contact-page .contact-hero__media{z-index:-3;}
.contact-page .contact-hero__slide{opacity:0;background:center 46% / cover no-repeat;transform:scale(1.015);transition:opacity 1.2s ease,transform 8s ease;}
.contact-page .contact-hero__slide.is-active{opacity:1;transform:scale(1);}
.contact-page .contact-hero__shade{z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.90),rgba(5,5,5,.64) 47%,rgba(5,5,5,.20) 84%),linear-gradient(0deg,rgba(0,0,0,.30),transparent 54%);}
.contact-page .contact-hero .container,.contact-page .contact-content .container{width:min(1180px,calc(100% - 64px));margin:auto;}
.contact-page .contact-hero .container{padding:72px 0 62px;}
.contact-page .contact-hero .eyebrow{display:block;margin:0 0 16px;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.contact-page .contact-hero .eyebrow::after{content:"";display:block;width:54px;height:3px;margin-top:12px;background:var(--red);}
.contact-page .contact-hero h1{max-width:820px;margin:0;color:#fff;font-size:clamp(3.1rem,5.4vw,5.4rem);line-height:.94;letter-spacing:-.035em;}
.contact-page .contact-hero .page-hero__intro{max-width:680px;margin:22px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.65;}
.contact-page .contact-content{scroll-margin-top:24px;padding:48px 0 82px;}
.contact-page .contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.contact-page .contact-card{min-height:250px;display:flex;flex-direction:column;align-items:flex-start;padding:34px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 10px 28px rgba(0,0,0,.045);transition:transform .18s ease,box-shadow .18s ease;}
.contact-page .contact-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,.075);}
.contact-page .contact-card .eyebrow,.contact-page .contact-form-panel .eyebrow,.contact-page .contact-info-strip .eyebrow{margin:0 0 18px;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.10em;text-transform:uppercase;}
.contact-page .contact-card__text{max-width:540px;margin:0;color:#2a2a2a;font-size:1.02rem;line-height:1.72;}
.contact-page .contact-card__button{margin-top:auto;padding-top:12px;}
.contact-page .contact-notice{margin:0 0 22px;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--red);background:#fff;color:#222;font-weight:700;}
.contact-page .contact-notice--success{border-left-color:#278548;}
.contact-page .contact-form-panel{display:grid;grid-template-rows:0fr;margin-top:0;opacity:0;overflow:hidden;transition:grid-template-rows .3s ease,opacity .24s ease,margin-top .3s ease;scroll-margin-top:24px;}
.contact-page .contact-form-panel.is-open{grid-template-rows:1fr;margin-top:22px;opacity:1;}
.contact-page .contact-form-panel__inner{min-height:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 12px 34px rgba(0,0,0,.055);}
.contact-page .contact-form-panel__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:34px 34px 0;}
.contact-page .contact-form-panel__heading h2{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2rem,3.2vw,3rem);line-height:1.05;font-weight:400;}
.contact-page .contact-form-close{width:42px;height:42px;flex:0 0 42px;border:1px solid #ded9d2;background:#fff;color:#111;font-size:1.75rem;line-height:1;cursor:pointer;transition:background .16s ease,transform .16s ease;}
.contact-page .contact-form-close:hover{background:#f5f1eb;transform:rotate(3deg);}
.contact-page .contact-enquiry-form{padding:30px 34px 36px;}
.contact-page .contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.contact-page .contact-field{display:flex;flex-direction:column;gap:8px;}
.contact-page .contact-field--wide{grid-column:1 / -1;}
.contact-page .contact-field label{color:#202020;font-size:.78rem;font-weight:850;letter-spacing:.04em;}
.contact-page .contact-field input,.contact-page .contact-field textarea{width:100%;border:1px solid #d8d4ce;border-radius:0;background:#fff;color:#151515;font:inherit;padding:13px 14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease;}
.contact-page .contact-field textarea{resize:vertical;min-height:150px;line-height:1.55;}
.contact-page .contact-field input:focus,.contact-page .contact-field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(205,29,35,.10);}
.contact-page .contact-form-actions{display:flex;align-items:center;gap:18px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line);}
.contact-page .contact-form-actions p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45;}
.contact-page .contact-honeypot{position:absolute !important;left:-10000px !important;width:1px !important;height:1px !important;overflow:hidden !important;}
.contact-page .contact-info-strip{margin-top:22px;padding:28px 32px;border-left:3px solid var(--red);background:#fff;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.contact-page .contact-info-strip p:last-child{margin:0;color:#2a2a2a;line-height:1.65;}
@media(max-width:760px){
.contact-page .contact-hero{min-height:430px;}
.contact-page .contact-hero .container,.contact-page .contact-content .container{width:min(100% - 32px,1180px);}
.contact-page .contact-hero .container{padding:52px 0 42px;}
.contact-page .contact-grid,.contact-page .contact-form-grid{grid-template-columns:1fr;}
.contact-page .contact-field--wide{grid-column:auto;}
.contact-page .contact-form-panel__heading{padding:26px 22px 0;}
.contact-page .contact-enquiry-form{padding:24px 22px 28px;}
.contact-page .contact-form-actions{align-items:flex-start;flex-direction:column;}
}
@media(prefers-reduced-motion:reduce){
.contact-page .contact-hero__slide,.contact-page .contact-card,.contact-page .contact-form-panel,.contact-page .contact-form-close{transition:none;transform:none;}
}

.contact-page .contact-action-button{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:46px;
    padding:12px 48px 12px 18px;
    border:2px solid var(--red);
    border-radius:0;
    background:var(--red);
    color:#fff;
    font:inherit;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.055em;
    line-height:1;
    text-transform:uppercase;
    cursor:pointer;
    box-shadow:none;
    transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}

.contact-page .contact-action-button::after{
    content:"\2192";
    position:absolute;
    right:17px;
    top:50%;
    transform:translateY(-52%);
    font-size:1rem;
    font-weight:900;
    transition:transform .18s ease;
}

.contact-page .contact-action-button:hover{
    background:#111;
    border-color:#111;
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(0,0,0,.12);
}

.contact-page .contact-action-button:hover::after{
    transform:translate(4px,-52%);
}

.contact-page .contact-action-button:focus-visible{
    outline:3px solid rgba(197,31,43,.28);
    outline-offset:3px;
}

.contact-page .contact-action-button--submit{
    min-width:210px;
}

/* === DOBCROSS CONTACT PAGE V8 END === */

/* === DOBCROSS MEDIA ARCHIVE V2 START === */
.media-archive-page{background:var(--paper);}
.media-archive-page .media-archive-hero{position:relative;isolation:isolate;overflow:hidden;min-height:470px;display:flex;align-items:flex-end;padding:0;background:#090909;color:#fff;}
.media-archive-page .media-archive-hero__media,.media-archive-page .media-archive-hero__shade,.media-archive-page .media-archive-hero__slide{position:absolute;inset:0;}
.media-archive-page .media-archive-hero__media{z-index:-3;}
.media-archive-page .media-archive-hero__slide{opacity:0;background:center 46% / cover no-repeat;transform:scale(1.015);transition:opacity 1.2s ease,transform 8s ease;}
.media-archive-page .media-archive-hero__slide.is-active{opacity:1;transform:scale(1);}
.media-archive-page .media-archive-hero__shade{z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.90),rgba(5,5,5,.64) 47%,rgba(5,5,5,.20) 84%),linear-gradient(0deg,rgba(0,0,0,.30),transparent 54%);}
.media-archive-page .media-archive-hero .container,.media-archive-page .media-library .container{width:min(1180px,calc(100% - 64px));margin:auto;}
.media-archive-page .media-archive-hero .container{padding:72px 0 62px;}
.media-archive-page .media-archive-hero .eyebrow{display:block;margin:0 0 16px;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.media-archive-page .media-archive-hero .eyebrow::after{content:"";display:block;width:54px;height:3px;margin-top:12px;background:var(--red);}
.media-archive-page .media-archive-hero h1{max-width:820px;margin:0;color:#fff;font-size:clamp(3.1rem,5.4vw,5.4rem);line-height:.94;letter-spacing:-.035em;}
.media-archive-page .media-archive-hero .page-hero__intro{max-width:680px;margin:22px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.65;}

.media-archive-page .media-library{padding:48px 0 84px;}
.media-archive-page .media-library__group + .media-library__group{margin-top:52px;}
.media-archive-page .media-library__group-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.media-archive-page .media-library__group-heading .eyebrow{margin:0;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.10em;text-transform:uppercase;}
.media-archive-page .media-library__group-heading h2{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2.2rem,3.4vw,3.7rem);font-weight:400;line-height:.95;}
.media-archive-page .media-library__list{display:grid;gap:10px;}

.media-archive-page .media-link-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:18px;min-height:96px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--red);box-shadow:0 7px 20px rgba(0,0,0,.035);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.media-archive-page .media-link-card:not(.is-unlinked):hover{transform:translateY(-2px);box-shadow:0 12px 27px rgba(0,0,0,.065);border-color:#d7d1ca;}
.media-archive-page .media-link-card__icon{width:48px;height:48px;display:grid;place-items:center;background:#111;color:#fff;font-size:1rem;font-weight:900;}
.media-archive-page .media-link-card__body{min-width:0;}
.media-archive-page .media-link-card__type{margin:0 0 5px;color:var(--red);font-size:.65rem;font-weight:850;letter-spacing:.10em;text-transform:uppercase;}
.media-archive-page .media-link-card h3{margin:0;color:#171717;font-size:1rem;font-weight:780;line-height:1.35;}
.media-archive-page .media-link-card__action{display:inline-flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid #191919;color:#191919;text-decoration:none;font-size:.69rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;transition:background .16s ease,color .16s ease,transform .16s ease;}
.media-archive-page .media-link-card__action:hover{background:#191919;color:#fff;transform:translateX(2px);}
.media-archive-page .media-link-card__missing{padding:8px 0;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.media-archive-page .media-link-card.is-unlinked{opacity:.72;}
.media-archive-page .media-library__empty{padding:28px;background:#fff;border:1px solid var(--line);color:var(--muted);}

@media(max-width:700px){
.media-archive-page .media-archive-hero{min-height:430px;}
.media-archive-page .media-archive-hero .container,.media-archive-page .media-library .container{width:min(100% - 32px,1180px);}
.media-archive-page .media-archive-hero .container{padding:52px 0 42px;}
.media-archive-page .media-library__group-heading{align-items:flex-start;flex-direction:column-reverse;gap:8px;}
.media-archive-page .media-link-card{grid-template-columns:46px minmax(0,1fr);gap:14px;padding:15px;}
.media-archive-page .media-link-card__icon{width:42px;height:42px;}
.media-archive-page .media-link-card__action,.media-archive-page .media-link-card__missing{grid-column:2;justify-self:start;}
}
@media(prefers-reduced-motion:reduce){
.media-archive-page .media-archive-hero__slide,.media-archive-page .media-link-card,.media-archive-page .media-link-card__action{transition:none;transform:none;}
}
/* === DOBCROSS MEDIA ARCHIVE V2 END === */

/* === DOBCROSS USEFUL LINKS V1 START === */
.useful-links-page{background:var(--paper);}
.useful-links-page .useful-links-hero{position:relative;isolation:isolate;overflow:hidden;min-height:470px;display:flex;align-items:flex-end;padding:0;background:#090909;color:#fff;}
.useful-links-page .useful-links-hero__media,.useful-links-page .useful-links-hero__shade,.useful-links-page .useful-links-hero__slide{position:absolute;inset:0;}
.useful-links-page .useful-links-hero__media{z-index:-3;}
.useful-links-page .useful-links-hero__slide{opacity:0;background:center 46% / cover no-repeat;transform:scale(1.015);transition:opacity 1.2s ease,transform 8s ease;}
.useful-links-page .useful-links-hero__slide.is-active{opacity:1;transform:scale(1);}
.useful-links-page .useful-links-hero__shade{z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.90),rgba(5,5,5,.64) 47%,rgba(5,5,5,.20) 84%),linear-gradient(0deg,rgba(0,0,0,.30),transparent 54%);}
.useful-links-page .useful-links-hero .container,.useful-links-page .useful-links-content .container{width:min(1180px,calc(100% - 64px));margin:auto;}
.useful-links-page .useful-links-hero .container{padding:72px 0 62px;}
.useful-links-page .useful-links-hero .eyebrow{display:block;margin:0 0 16px;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.useful-links-page .useful-links-hero .eyebrow::after{content:"";display:block;width:54px;height:3px;margin-top:12px;background:var(--red);}
.useful-links-page .useful-links-hero h1{max-width:820px;margin:0;color:#fff;font-size:clamp(3.1rem,5.4vw,5.4rem);line-height:.94;letter-spacing:-.035em;}
.useful-links-page .useful-links-hero .page-hero__intro{max-width:720px;margin:22px 0 0;color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.65;}

.useful-links-page .useful-links-content{padding:48px 0 84px;}
.useful-links-page .useful-links-group + .useful-links-group{margin-top:54px;}
.useful-links-page .useful-links-group__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.useful-links-page .useful-links-group__heading .eyebrow{margin:0;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.10em;text-transform:uppercase;}
.useful-links-page .useful-links-group__heading h2{margin:0;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2.15rem,3.2vw,3.55rem);font-weight:400;line-height:.95;}
.useful-links-page .useful-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}

.useful-links-page .useful-link-card{position:relative;min-height:210px;display:flex;flex-direction:column;align-items:flex-start;padding:28px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 8px 24px rgba(0,0,0,.04);transition:transform .16s ease,box-shadow .16s ease;}
.useful-links-page .useful-link-card:not(.is-unlinked):hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(0,0,0,.07);}
.useful-links-page .useful-link-card__mark{position:absolute;right:22px;top:20px;width:40px;height:40px;display:grid;place-items:center;border:1px solid #ddd7cf;color:var(--red);font-size:1.05rem;font-weight:900;}
.useful-links-page .useful-link-card__body{padding-right:54px;}
.useful-links-page .useful-link-card h3{margin:0 0 12px;font-family:"DM Serif Display",Georgia,serif;font-size:1.55rem;font-weight:400;line-height:1.1;}
.useful-links-page .useful-link-card p{margin:0;color:#444;font-size:.95rem;line-height:1.65;}
.useful-links-page .useful-link-card__action{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:22px;color:var(--red);font-size:.7rem;font-weight:900;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;}
.useful-links-page .useful-link-card__action span{transition:transform .16s ease;}
.useful-links-page .useful-link-card__action:hover span{transform:translate(3px,-2px);}
.useful-links-page .useful-link-card__missing{margin-top:auto;padding-top:22px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.useful-links-page .useful-link-card.is-unlinked{opacity:.7;}
.useful-links-page .useful-links-empty{padding:28px;background:#fff;border:1px solid var(--line);color:var(--muted);}

@media(max-width:760px){
.useful-links-page .useful-links-hero{min-height:430px;}
.useful-links-page .useful-links-hero .container,.useful-links-page .useful-links-content .container{width:min(100% - 32px,1180px);}
.useful-links-page .useful-links-hero .container{padding:52px 0 42px;}
.useful-links-page .useful-links-grid{grid-template-columns:1fr;}
.useful-links-page .useful-links-group__heading{align-items:flex-start;flex-direction:column-reverse;gap:8px;}
.useful-links-page .useful-link-card{min-height:190px;padding:24px;}
}
@media(prefers-reduced-motion:reduce){
.useful-links-page .useful-links-hero__slide,.useful-links-page .useful-link-card,.useful-links-page .useful-link-card__action span{transition:none;transform:none;}
}
/* === DOBCROSS USEFUL LINKS V1 END === */



/* === Dobcross CMS-controlled homepage hero ===
   Final override: this intentionally comes last so the Orchard-selected image
   and editor-controlled crop win over older homepage composition experiments. */
.home-hero__photo {
    background-image: var(--home-hero-image, url('/images/dobcross-band-hero.jpg')) !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position:
        var(--home-hero-position-x, 59%)
        var(--home-hero-position-y, 49%) !important;
    transform: none !important;
}

@media (min-width: 901px) {
    .home-hero__content {
        width: 650px !important;
        max-width: 46% !important;
    }

    .home-hero h1 {
        font-size: clamp(3.15rem, 4.8vw, 4.75rem) !important;
        line-height: .94 !important;
        letter-spacing: -.025em !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 900px) {
    .home-hero h1 {
        white-space: normal !important;
    }
}


/* === Production CMS/mobile correction v1 ===
   About hero mobile copy follows the same left-aligned internal-page contract. */
@media (max-width: 760px) {
    .about-page .about-hero > .container {
        text-align: left !important;
    }

    .about-page .about-hero .eyebrow,
    .about-page .about-hero h1,
    .about-page .about-hero .page-hero__intro {
        text-align: left !important;
        margin-left: 0 !important;
        margin-right: auto !important;
    }

    .about-page .about-hero h1,
    .about-page .about-hero .page-hero__intro {
        max-width: 100% !important;
    }
}
