/* VYV layout revision 2026-10-10. Loaded after main.css. */
:root { --vyv-gutter: clamp(16px, 4vw, 64px); --vyv-gap: clamp(18px, 2.4vw, 36px); --container: min(calc(100% - 2 * var(--vyv-gutter)), 1980px); }
body { background-image: url("data:image/svg+xml,%3Csvg width='78' height='78' viewBox='0 0 78 78' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='77' height='77' rx='14' fill='none' stroke='%23111' stroke-opacity='.14' stroke-width='.7'/%3E%3C/svg%3E"); }
:where(.bp-card, .bp-service-full, .bp-work-full, .bp-content-layout__grid > *, .bp-footer-wrap > *) { min-width: 0; }
:where(h1,h2,h3,a) { overflow-wrap: break-word; }
.vyv-intro { display: none; }
.vyv-intro-ready .vyv-intro { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 10000; background: #fffaf5; }
.vyv-intro__brand { font-family: var(--font-main); font-weight: 850; font-size: 12.4vw; letter-spacing: -0.04em; white-space: nowrap; line-height: 1.15; transform-origin: left top; }
.vyv-intro__brand span { color: var(--accent); }
.vyv-intro-running .bp-hero .bp-logo { visibility: hidden; }

/* Home: a twelve-column composition with explicit rows and content-sized cards. */
:is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) {
    display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: var(--vyv-gap);
    width: var(--container); margin: 0 auto; padding: 64px 0; min-height: 0 !important;
    overflow: visible; align-items: start;
}
:is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) > :not([class$="__tiles"]) {
    position: relative !important; inset: auto !important; width: auto; max-width: none; min-height: 0; margin: 0;
}
:is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) > .bp-card {
    padding: clamp(26px, 3.4vw, 54px); border-radius: 18px; background-color: #fffaf5;
    box-shadow: 0 18px 45px -28px rgba(17,17,17,.3);
}
.bp-hero { padding-top: 32px; }
.bp-hero > .bp-card--logo { grid-column: 1 / 6; grid-row: 1; justify-self: start; height: 112px; padding: 24px 32px; display: flex; align-items: center; z-index: 5; }
.bp-hero .bp-logo { font-size: clamp(26px, 3vw, 46px); font-weight: 850; letter-spacing: -.04em; line-height: 1.15; white-space: nowrap; }
.bp-hero > .bp-card--menu { grid-column: 10 / -1; grid-row: 1; height: 112px; padding: 20px; }
.bp-hero > .bp-video { grid-column: 2 / 12; grid-row: 2; aspect-ratio: 16 / 9; height: auto; margin-top: -48px; border-radius: 18px; }
.bp-hero > .bp-work-badge { grid-column: 10 / -1; grid-row: 2; align-self: end; height: auto; aspect-ratio: 4 / 3; margin-bottom: 32px; }
.bp-hero > .bp-card--headline { grid-column: 1 / 10; grid-row: 3; margin-top: -56px; z-index: 4; }
.bp-hero > .bp-card--text { grid-column: 5 / -1; grid-row: 4; }
.bp-hero > .bp-card--news { grid-column: 1 / 8; grid-row: 5; }
:is(.bp-card--headline, .bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) :is(h1,h2) { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: clamp(44px, 5.8vw, 92px); line-height: 1.02; }
:is(.bp-card--text, .bp-studio-text, .bp-works-text, .bp-services-text, .bp-production-text, .bp-contact-text) p { font-size: clamp(17px, 1.5vw, 22px); line-height: 1.45; }
.bp-card--news li { font-size: clamp(17px, 1.5vw, 22px); line-height: 1.4; }
:is(.bp-studio-label, .bp-works-label, .bp-services-label, .bp-production-label, .bp-contact-label) { grid-column: 1 / 4; grid-row: 1; }
:is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) { grid-column: 2 / 10; grid-row: 2; }
.bp-studio-media { grid-column: 1 / 7; grid-row: 3; height: auto !important; aspect-ratio: 4 / 3; }
.bp-studio-media__inner { height: 100%; }
.bp-studio-text { grid-column: 7 / -1; grid-row: 3; }
.bp-studio-list { grid-column: 3 / 10; grid-row: 4; }
.bp-studio-link { grid-column: 10 / -1; grid-row: 4; height: auto !important; aspect-ratio: 4 / 3; align-self: end; }
:is(.bp-works-text, .bp-services-text, .bp-production-text, .bp-contact-text) { grid-column: 6 / -1; grid-row: 3; }
.bp-work-project--main { grid-column: 1 / 8; grid-row: 4 / 6; }
.bp-work-project--second { grid-column: 8 / -1; grid-row: 4; margin-top: 64px !important; }
.bp-work-project--third { grid-column: 8 / -1; grid-row: 5; }
.bp-work-project__media { height: auto !important; aspect-ratio: 4 / 3; }
.bp-works-badge { grid-column: 2 / 6; grid-row: 6; height: auto !important; aspect-ratio: 4 / 3; }
.bp-service-ticket { padding: clamp(26px, 3vw, 46px); height: auto !important; }
.bp-service-ticket--one { grid-column: 1 / 7; grid-row: 4; }
.bp-service-ticket--two { grid-column: 7 / -1; grid-row: 4; margin-top: 52px !important; }
.bp-service-ticket--three { grid-column: 2 / 8; grid-row: 5; }
.bp-service-ticket--four { grid-column: 7 / -1; grid-row: 6; }
.bp-services-badge { grid-column: 2 / 6; grid-row: 6; height: auto !important; aspect-ratio: 4 / 3; }
.bp-production-media { grid-column: 2 / 12; grid-row: 4; height: auto !important; aspect-ratio: 16 / 9; }
.bp-production-step--one { grid-column: 1 / 5; grid-row: 5; }
.bp-production-step--two { grid-column: 5 / 9; grid-row: 5; margin-top: 40px !important; }
.bp-production-step--three { grid-column: 9 / -1; grid-row: 5; }
.bp-contact-small--one { grid-column: 1 / 5; grid-row: 4; }
.bp-contact-small--two { grid-column: 5 / 9; grid-row: 4; }
.bp-contact-small--three { grid-column: 9 / -1; grid-row: 4; }
.bp-contact-copy { grid-column: 1 / -1; grid-row: 5; }
.bp-contact-main a { font-size: clamp(20px, 3vw, 42px); overflow-wrap: anywhere; }

/* Main inner pages: animated word and navigation, followed by readable content. */
.bp-word-hero { width: var(--container); margin: 0 auto; height: auto; padding: 32px 0 64px; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--vyv-gap); }
.bp-word-hero__sticky { position: relative; top: auto !important; height: auto !important; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--vyv-gap); }
.bp-word-hero__logo-card, .bp-word-hero__menu-card { position: relative; inset: auto; height: 112px; width: auto; padding: 24px 32px; }
.bp-word-hero__logo-card { grid-column: 1 / 6; grid-row: 1; font-size: clamp(26px,3vw,46px); letter-spacing: -.04em; justify-self: start; white-space: nowrap; }
.bp-word-hero__menu-card { grid-column: 10 / -1; grid-row: 1; }
.bp-word-hero__stage { position: relative; inset: auto; grid-column: 2 / 12; grid-row: 2; height: clamp(300px,65svh,700px); margin-top: -48px; }
.bp-word-hero__word { font-size: clamp(64px,14vw,260px); }
.bp-word-hero__content-card, .bp-word-hero__side-card { position: relative; inset: auto !important; opacity: 1; transform: none !important; width: auto; min-height: 0; padding: clamp(26px,3.4vw,54px); }
.bp-word-hero__content-card { grid-column: 1 / 10; margin-top: -56px; }
.bp-word-hero__content-card h1 { font-size: clamp(40px,5.2vw,82px); line-height: 1.04; }
.bp-word-hero__side-card { grid-column: 6 / -1; }
.bp-word-hero__side-card p { line-height: 1.45; }

/* Lists and scenes on the main inner pages use flow rather than coordinates. */
:is(.bp-studio, .bp-about, .bp-contacts, .bp-works-note, .bp-services-process) { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--vyv-gap); width: var(--container); margin: 0 auto; min-height: 0 !important; padding: 32px 0 64px; overflow: visible; align-items: start; }
:is(.bp-studio, .bp-about, .bp-contacts, .bp-works-note, .bp-services-process) > :not([class$="__tiles"]) { position: relative !important; inset: auto !important; width: auto; min-height: 0; margin: 0; padding: clamp(26px,3.4vw,54px); }
:is(.bp-studio__media, .bp-about__media) { grid-column: 1 / 8; grid-row: 1; height: auto; aspect-ratio: 4 / 3; padding: 0 !important; }
:is(.bp-studio__intro, .bp-about__intro) { grid-column: 8 / -1; grid-row: 1; }
:is(.bp-studio__text, .bp-about__text) { grid-column: 2 / 9; grid-row: 2; }
:is(.bp-studio__features, .bp-about__principles) { grid-column: 7 / -1; grid-row: 3; }
:is(.bp-studio__cta, .bp-about__cta) { grid-column: 2 / 6; grid-row: 3; height: auto; aspect-ratio: 4 / 3; }
.bp-contacts__main { grid-column: 1 / 8; grid-row: 1; }
.bp-contacts__links { grid-column: 8 / -1; grid-row: 1; }
.bp-contacts__brief { grid-column: 3 / 10; grid-row: 2; }
.bp-contacts__cta { grid-column: 9 / -1; grid-row: 3; height: auto; aspect-ratio: 4 / 3; }
.bp-works-note-headline, .bp-services-process-headline { grid-column: 1 / 9; grid-row: 1; }
.bp-works-note-text, .bp-services-process-text { grid-column: 6 / -1; grid-row: 2; }
.bp-works-note-badge { grid-column: 2 / 6; grid-row: 3; height: auto; aspect-ratio: 4 / 3; }
.bp-services-process-step--one { grid-column: 1 / 5; grid-row: 3; }
.bp-services-process-step--two { grid-column: 5 / 9; grid-row: 3; }
.bp-services-process-step--three { grid-column: 9 / -1; grid-row: 3; }
:is(.bp-services-cards, .bp-works-list) { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--vyv-gap); width: var(--container); margin: 0 auto; padding: 32px 0 64px !important; min-height: 0 !important; align-items: start; }
:is(.bp-service-full, .bp-work-full) { position: relative !important; inset: auto !important; grid-column: auto !important; grid-row: auto !important; width: auto !important; margin: 0 !important; }
:is(.bp-service-full, .bp-work-full):nth-of-type(even) { margin-top: 60px !important; }
:is(.bp-service-full__media, .bp-work-full__media) { height: auto !important; aspect-ratio: 4 / 3; }
:is(.bp-service-full__caption, .bp-work-full__caption) { padding: clamp(24px,3vw,40px); }
:is(.bp-service-full__caption, .bp-work-full__caption) h2 { font-size: clamp(28px,3.2vw,48px); line-height: 1.12; }

/* The complete overlay menu lives here, without coordinate-based legacy rules.
   max-content rows never shrink into overlapping cards on a short screen. */
#bp-menu-panel {
    position: fixed; inset: 0; z-index: 999;
    display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr);
    grid-template-rows: max-content max-content; gap: var(--vyv-gap);
    padding: 32px max(var(--vyv-gutter), calc((100vw - 1980px) / 2));
    align-items: start; align-content: start;
    overflow-x: hidden; overflow-y: auto;
    background: rgba(255,250,245,.94); color: #111; font-family: var(--font-main);
    opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-14px);
    transition: opacity .32s ease, visibility .32s ease, transform .32s ease;
}
body.bp-menu-open { overflow: hidden; }
body.bp-menu-open #bp-menu-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
#bp-menu-panel .bp-menu-panel__tiles { display: none; }
#bp-menu-panel .bp-menu-panel__close {
    position: relative; inset: auto; z-index: 3; grid-column: 2; grid-row: 1;
    width: min(300px,100%); height: 90px; min-width: 0; margin: 0; justify-self: end;
    display: flex; align-items: center; justify-content: center; gap: 14px;
    border: 1.4px solid #111; border-radius: 18px; background: #fffaf5; color: #111;
    font: inherit; font-size: 22px; cursor: pointer;
}
#bp-menu-panel .bp-menu-panel__close span:last-child {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 42px; width: 42px; height: 42px;
    border: 1.4px solid #111; border-radius: 50%; font-size: 18px;
}
#bp-menu-panel .bp-menu-panel__nav {
    position: relative; inset: auto; z-index: 2; grid-column: 1; grid-row: 1 / 3;
    display: grid; width: auto; min-width: 0; margin: 0; gap: 14px;
}
#bp-menu-panel .bp-menu-panel__nav a {
    display: flex; align-items: center; gap: clamp(18px,2vw,34px);
    padding: clamp(22px,2.8vw,40px); min-width: 0; min-height: 0;
    border: 1.4px solid #111; border-radius: 18px; background: #fffaf5; color: #111;
    font-family: Georgia,'Times New Roman',serif; font-size: clamp(28px,3.8vw,60px);
    font-weight: 400; line-height: 1.05;
    transition: transform .28s ease, box-shadow .28s ease;
}
#bp-menu-panel .bp-menu-panel__nav span {
    flex: 0 0 auto; color: #ff4a1c;
    font-family: Inter,system-ui,sans-serif; font-size: 15px; font-weight: 900;
}
#bp-menu-panel .bp-menu-panel__contact {
    position: relative; inset: auto; z-index: 2; grid-column: 2; grid-row: 2;
    width: auto; min-width: 0; min-height: 0; margin: 0; align-self: end;
    padding: clamp(24px,3vw,44px); border: 1.4px solid #111; border-radius: 18px;
    background: #fffaf5;
}
#bp-menu-panel .bp-menu-panel__contact p {
    margin: 0 0 18px; color: rgba(17,17,17,.64); font-size: 15px;
    font-weight: 850; text-transform: uppercase;
}
#bp-menu-panel .bp-menu-panel__contact a {
    display: block; color: #111; font-size: clamp(18px,1.8vw,28px);
    overflow-wrap: anywhere; line-height: 1.6; letter-spacing: normal;
}
@media (hover: hover) and (pointer: fine) and (min-width: 992px) {
    #bp-menu-panel .bp-menu-panel__nav a:hover { transform: translateX(8px); box-shadow: 0 18px 40px rgba(17,17,17,.1); }
}
@media (max-width: 991px) {
    #bp-menu-panel { grid-template-columns: minmax(0,1fr); grid-template-rows: repeat(3,max-content); }
    #bp-menu-panel .bp-menu-panel__close { grid-column: 1; grid-row: 1; }
    #bp-menu-panel .bp-menu-panel__nav { grid-column: 1; grid-row: 2; }
    #bp-menu-panel .bp-menu-panel__contact { grid-column: 1; grid-row: 3; align-self: start; }
}
@media (max-width: 600px) {
    #bp-menu-panel { padding: 16px; }
    #bp-menu-panel .bp-menu-panel__close { height: 72px; }
    #bp-menu-panel .bp-menu-panel__nav a { padding: 22px 20px; gap: 16px; font-size: clamp(26px,6.25vw,34px); }
    #bp-menu-panel .bp-menu-panel__contact { padding: 24px; }
}
@media (max-width: 479px) {
    #bp-menu-panel .bp-menu-panel__close { width: 100%; }
}
.bp-footer-wrap { width: var(--container); max-width: 1980px; margin-inline: auto; padding-inline: 0; gap: var(--vyv-gap); }
.bp-footer-contacts a { overflow-wrap: anywhere; }
.bp-inner-hero__card h1 { font-size: clamp(36px,6.5vw,90px); line-height: 1.05; }
.bp-content-layout__grid { grid-template-columns: minmax(0,1fr) minmax(240px,.36fr); }
.bp-content-layout__entry { overflow-wrap: break-word; }
.bp-content-layout__entry table { display: block; max-width: 100%; overflow-x: auto; }

@media (max-width: 1200px) {
    :root { --vyv-gutter: 32px; }
    :is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) { padding-block: 44px; }
    .bp-hero { padding-top: 24px; }
    :is(.bp-studio__intro, .bp-about__intro) :is(h2,h3) { font-size: clamp(32px,4vw,52px); }
}
@media (max-width: 1024px) {
    .bp-hero > .bp-card--menu, .bp-word-hero__menu-card { grid-column: 9 / -1; }
    .bp-hero > .bp-card--headline, .bp-word-hero__content-card { grid-column: 1 / 12; }
    .bp-studio-list { grid-column: 1 / 9; }
    :is(.bp-studio__media, .bp-about__media) { grid-column: 1 / -1; }
    :is(.bp-studio__intro, .bp-about__intro) { grid-column: 2 / 12; grid-row: 2; }
    :is(.bp-studio__text, .bp-about__text) { grid-column: 1 / 9; grid-row: 3; }
    :is(.bp-studio__features, .bp-about__principles) { grid-column: 5 / -1; grid-row: 4; }
    :is(.bp-studio__cta, .bp-about__cta) { grid-column: 1 / 5; grid-row: 4; }
}
@media (max-width: 991px) {
    .bp-content-layout__grid { grid-template-columns: minmax(0,1fr); }
    .bp-content-layout__side { position: static; }
    .bp-contacts__main { grid-column: 1 / -1; }
    .bp-contacts__links { grid-column: 3 / -1; grid-row: 2; }
    .bp-contacts__brief { grid-column: 1 / 11; grid-row: 3; }
    .bp-contacts__cta { grid-row: 4; grid-column: 8 / -1; }
    :is(.bp-production-step, .bp-contact-small, .bp-services-process-step) { padding: 24px !important; }
    :is(.bp-production-step, .bp-services-process-step) h3 { font-size: 26px; }
}
@media (max-width: 768px) {
    :root { --vyv-gutter: 24px; --vyv-gap: 20px; }
    .bp-hero > .bp-card--logo, .bp-word-hero__logo-card { height: 88px; padding: 18px 24px; }
    .bp-hero > .bp-card--menu, .bp-word-hero__menu-card { height: 88px; padding: 18px; }
    .bp-hero > .bp-video, .bp-word-hero__stage { grid-column: 1 / -1; margin-top: 0; }
    .bp-hero > .bp-work-badge { grid-column: 9 / -1; margin-bottom: -24px; font-size: 12px; }
    .bp-hero > .bp-card--headline { grid-column: 1 / 11; margin-top: -16px; }
    .bp-hero > .bp-card--text { grid-column: 3 / -1; }
    .bp-hero > .bp-card--news { grid-column: 1 / 12; }
    :is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) { grid-column: 1 / -1; }
    .bp-studio-media { grid-column: 1 / 9; }
    .bp-studio-text { grid-column: 3 / -1; grid-row: 4; }
    .bp-studio-list { grid-column: 1 / 10; grid-row: 5; }
    .bp-studio-link { grid-column: 9 / -1; grid-row: 6; }
    :is(.bp-works-text, .bp-services-text, .bp-production-text, .bp-contact-text) { grid-column: 3 / -1; }
    .bp-word-hero__side-card { grid-column: 3 / -1; }
    .bp-word-hero__stage { height: 52svh; min-height: 260px; }
    .bp-word-hero__content-card { margin-top: -24px; }
    .bp-production-media { grid-column: 1 / -1; }
    .bp-production-step--one, .bp-services-process-step--one { grid-column: 1 / 7; }
    .bp-production-step--two, .bp-services-process-step--two { grid-column: 7 / -1; margin-top: 0 !important; }
    .bp-production-step--three { grid-column: 3 / 11; grid-row: 6; }
    .bp-services-process-step--three { grid-column: 3 / 11; grid-row: 4; }
    .bp-contact-small--one { grid-column: 1 / 7; }
    .bp-contact-small--two { grid-column: 7 / -1; }
    .bp-contact-small--three { grid-column: 3 / 11; grid-row: 5; }
    .bp-contact-copy { grid-row: 6; }
    .bp-single-work__gallery { margin-bottom: 24px; }
}
@media (max-width: 600px) {
    :root { --vyv-gutter: 16px; --vyv-gap: 18px; }
    :is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene, .bp-studio, .bp-about, .bp-contacts, .bp-works-note, .bp-services-process) { grid-template-columns: minmax(0,1fr); padding-block: 28px; }
    :is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene, .bp-studio, .bp-about, .bp-contacts, .bp-works-note, .bp-services-process) > :not([class$="__tiles"]) { grid-column: 1 !important; grid-row: auto !important; margin: 0 !important; }
    .bp-hero { grid-template-columns: minmax(0,1fr) auto; padding-top: 16px; }
    .bp-hero > .bp-card--logo { grid-column: 1 !important; grid-row: 1 !important; height: 72px; padding: 16px; width: 100%; }
    .bp-hero .bp-logo { font-size: clamp(22px,5.3vw,32px); }
    .bp-hero > .bp-card--menu { grid-column: 2 !important; grid-row: 1 !important; height: 72px; padding: 14px; gap: 8px; font-size: 12px; }
    .bp-menu-star { width: 28px; height: 28px; font-size: 14px; }
    .bp-hero > :not(.bp-card--logo):not(.bp-card--menu) { grid-column: 1 / -1 !important; }
    .bp-hero > .bp-work-badge { width: 160px; justify-self: end; aspect-ratio: 4 / 3; }
    .bp-hero > .bp-video { aspect-ratio: 4 / 3; }
    :is(.bp-studio-link, .bp-works-badge, .bp-services-badge, .bp-studio__cta, .bp-about__cta, .bp-contacts__cta, .bp-works-note-badge) { width: min(200px,100%) !important; justify-self: end; }
    :is(.bp-studio-label, .bp-works-label, .bp-services-label, .bp-production-label, .bp-contact-label) { justify-self: start; padding: 20px 26px !important; }
    :is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) > .bp-card { padding: 26px; }
    :is(.bp-card--headline, .bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) :is(h1,h2) { font-size: clamp(36px,8.5vw,50px); }
    .bp-word-hero { grid-template-columns: 1fr; padding: 16px 0 28px; }
    .bp-word-hero__sticky { grid-template-columns: minmax(0,1fr) auto; }
    .bp-word-hero__logo-card { grid-column: 1; grid-row: 1; width: 100%; height: 72px; padding: 16px; font-size: clamp(22px,5.3vw,32px); }
    .bp-word-hero__menu-card { grid-column: 2; grid-row: 1; height: 72px; padding: 14px; gap: 8px; font-size: 12px; }
    .bp-word-hero__menu-card span:last-child { width: 28px; height: 28px; font-size: 14px; }
    .bp-word-hero__stage { grid-column: 1 / -1; grid-row: 2; height: 44svh; min-height: 240px; }
    .bp-word-hero__content-card, .bp-word-hero__side-card { grid-column: 1; margin: 0; }
    .bp-word-hero__content-card h1 { font-size: clamp(34px,8vw,46px); }
    :is(.bp-services-cards, .bp-works-list) { grid-template-columns: minmax(0,1fr); }
    :is(.bp-service-full, .bp-work-full):nth-of-type(even) { margin-top: 0 !important; }
    .bp-footer-wrap { grid-template-columns: minmax(0,1fr); }
    .bp-footer-wrap > * { grid-column: 1 / -1; }
    .bp-footer-bottom { flex-direction: column; align-items: start; gap: 12px; }
    .bp-inner-hero__card { padding: 28px 24px; }
    .bp-content-layout { padding-inline: var(--vyv-gutter); }
    .bp-content-layout__entry { padding: 26px 20px; }
}
@media (max-width: 479px) {
    .bp-hero, .bp-word-hero__sticky { column-gap: 10px; }
    .bp-hero > .bp-card--menu, .bp-word-hero__menu-card { gap: 0; padding: 12px; }
    .bp-hero .bp-menu-star, .bp-word-hero__menu-card span:last-child { display: none; }
    .bp-single-work__photo { min-height: 0; }
    .bp-inner-hero__card h1 { font-size: 36px; }
}
@media (max-width: 360px) {
    .bp-hero > .bp-card--logo, .bp-word-hero__logo-card { padding-inline: 12px; }
    .bp-hero .bp-logo, .bp-word-hero__logo-card { font-size: 21px; }
    :is(.bp-card--headline, .bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) :is(h1,h2) { font-size: 34px; }
}
@media (prefers-reduced-motion: reduce) {
    .vyv-intro-ready .vyv-intro { display: none; }
    .vyv-intro-running .bp-hero .bp-logo { visibility: visible; }
    html { scroll-behavior: auto; }
    .bp-word-hero__word span { transform: none !important; }
}
/* Prevent intrinsic aspect-ratio sizes from widening narrow grid columns. */
:is(.bp-work-project__media, .bp-work-full__media, .bp-service-full__media) { width: 100%; min-width: 0; min-height: 0 !important; }
.bp-work-project__caption { width: 100%; min-width: 0; padding: clamp(22px,2.4vw,34px); }
.bp-work-project__caption h3 { font-size: clamp(26px,2.8vw,44px); line-height: 1.1; }
.bp-production-media__inner { min-width: 0; }
.bp-production-media span { font-size: clamp(28px,7vw,100px); }
/* Image logo comes from Appearance > Customize > Site Identity. */
.vyv-brand-image { display: block; width: auto; height: auto; max-width: 100%; }
:is(.bp-logo, .bp-word-hero__logo-card):has(.vyv-brand-image) { display: flex; align-items: center; justify-content: flex-start; }
:is(.bp-logo, .bp-word-hero__logo-card) .vyv-brand-image { max-width: min(28vw,300px); max-height: 70px; }
.vyv-intro__brand:has(img) { width: 92vw; max-width: 92vw; }
.vyv-intro__brand .vyv-brand-image { width: 100%; height: auto; max-width: none; }
.bp-footer-logo:has(img) { display: block; width: 100%; }
.bp-footer-logo .vyv-brand-image { width: min(100%,1000px); max-height: 200px; object-fit: contain; object-position: left center; }
.site-header .custom-logo { width: auto; height: auto; max-width: 240px; max-height: 54px; }
@media (max-width: 600px) {
    :is(.bp-logo, .bp-word-hero__logo-card) .vyv-brand-image { max-width: min(54vw,220px); max-height: 44px; }
    .site-header .custom-logo { max-width: 190px; max-height: 42px; }
}
/* Service image and caption belong to the same content-sized card. */
.bp-services-cards .bp-service-full { min-height: 0 !important; }
.bp-services-cards .bp-service-full > a { display: block; position: relative; height: auto; min-height: 0; }
.bp-services-cards .bp-service-full__media { position: relative; inset: auto; width: 100%; }
.bp-services-cards .bp-service-full__caption { position: relative; inset: auto; transform: none; width: 92%; min-height: 0; margin: -32px 0 0 auto; }
@media (max-width: 600px) {
    .bp-services-cards .bp-service-full__caption { width: 100%; margin-top: -16px; padding: 24px; }
    .bp-services-cards .bp-service-full__caption h2 { font-size: 26px; }
    .bp-production-media__inner { padding: 26px; }
}
.vyv-intro__brand .vyv-brand-image { max-height: 76svh; object-fit: contain; }

/* The supplied wordmark is white; dark brand surfaces preserve the artwork. */
.vyv-intro-ready .vyv-intro { background: #111; }
.bp-hero > .bp-card--logo:has(img), .bp-word-hero__logo-card:has(img){ background: #111; }
.bp-hero > .bp-card--logo:has(img), .bp-word-hero__logo-card:has(img) { height: 164px; padding: 20px 26px; }
:is(.bp-logo, .bp-word-hero__logo-card) .vyv-brand-image { max-width: min(30vw,300px); max-height: 124px; }
.site-header__brand:has(img) { background: #111; border-radius: 12px; padding: 8px 14px; }
.site-header :is(.custom-logo, .vyv-brand-image) { max-width: 240px; max-height: 81px; width: auto; height: auto; }
.bp-hero > .bp-video { margin-top: -80px; }
.bp-word-hero__stage { margin-top: -80px; }
@media (max-width: 768px) {
    .bp-hero > .bp-card--logo:has(img), .bp-word-hero__logo-card:has(img) { height: 132px; padding: 18px 22px; }
    :is(.bp-logo, .bp-word-hero__logo-card) .vyv-brand-image { max-height: 96px; }
    .bp-hero > .bp-video, .bp-word-hero__stage { margin-top: 0; }
}
@media (max-width: 600px) {
    .bp-hero > .bp-card--logo:has(img), .bp-word-hero__logo-card:has(img) { height: 104px; padding: 12px 16px; }
    :is(.bp-logo, .bp-word-hero__logo-card) .vyv-brand-image { max-width: min(58vw,240px); max-height: 80px; }
    .site-header :is(.custom-logo, .vyv-brand-image) { max-width: 145px; max-height: 48px; }
}
/* Wide editorial composition, revised against the supplied reference PDF. */
:root { --container: min(calc(100% - 2 * var(--vyv-gutter)), 1980px); }
:is(.bp-inner-hero__card, .bp-content-layout__grid, .bp-footer-wrap) { max-width: 1980px; }
@media (min-width: 1201px) {
    :root { --vyv-gutter: clamp(40px,3.2vw,80px); --vyv-gap: clamp(24px,2vw,40px); }
    :is(.bp-hero, .bp-studio-scene, .bp-works-scene, .bp-services-scene, .bp-production-scene, .bp-contact-scene) { padding-block: 48px; }
    .bp-hero { padding-top: 32px; }
    .bp-hero > .bp-card--headline { grid-column: 1 / 9; padding-bottom: 140px; }
    .bp-hero > .bp-card--text { grid-column: 7 / -1; margin-top: -140px; z-index: 6; }
    .bp-hero > .bp-card--news { grid-column: 2 / 7; margin-top: -70px; z-index: 7; }
    :is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) { grid-column: 1 / 9; padding-bottom: 140px !important; }
    .bp-studio-media { grid-column: 1 / 7; grid-row: 3; margin-top: -100px !important; z-index: 5; }
    .bp-studio-text { grid-column: 4 / 11; grid-row: 4; margin-top: -200px !important; padding-bottom: 100px !important; z-index: 6; }
    .bp-studio-list { grid-column: 2 / 8; grid-row: 5; margin-top: -90px !important; z-index: 7; }
    .bp-studio-link { grid-column: 10 / -1; grid-row: 4; align-self: start; margin-top: -140px !important; z-index: 8; }
    :is(.bp-works-text, .bp-services-text, .bp-production-text, .bp-contact-text) { grid-column: 7 / -1; margin-top: -140px !important; z-index: 6; }
    .bp-work-project--main { grid-column: 5 / -1; grid-row: 4; }
    .bp-work-project--second { grid-column: 1 / 9; grid-row: 5; margin-top: -80px !important; z-index: 5; }
    .bp-work-project--third { grid-column: 4 / 12; grid-row: 6; margin-top: -80px !important; z-index: 6; }
    .bp-work-project__caption { padding-bottom: 110px; }
    .bp-works-badge { grid-column: 9 / -1; grid-row: 7; margin-top: -70px !important; z-index: 7; }
    .bp-service-ticket { padding-bottom: 140px; }
    .bp-service-ticket--three { margin-top: -100px !important; z-index: 6; }
    .bp-service-ticket--four { margin-top: -100px !important; z-index: 7; }
    .bp-services-badge { align-self: end; z-index: 8; }
    .bp-production-step--one, .bp-production-step--two, .bp-production-step--three { margin-top: -80px !important; z-index: 5; }
    .bp-contact-small--one, .bp-contact-small--two, .bp-contact-small--three { margin-top: -60px !important; z-index: 7; }
    .bp-contact-text { padding-bottom: 100px !important; }
    .bp-word-hero__content-card { grid-column: 1 / 9; padding-bottom: 140px; }
    .bp-word-hero__side-card { grid-column: 7 / -1; margin-top: -140px; }
    :is(.bp-studio__intro, .bp-about__intro) { grid-column: 7 / -1; margin-top: 80px !important; z-index: 5; }
    :is(.bp-studio__media, .bp-about__media) { grid-column: 1 / 8; }
    :is(.bp-studio__text, .bp-about__text) { grid-column: 3 / 10; margin-top: -90px !important; padding-bottom: 110px !important; z-index: 6; }
    :is(.bp-studio__features, .bp-about__principles) { margin-top: -90px !important; z-index: 7; }
    :is(.bp-works-note-headline, .bp-services-process-headline) { padding-bottom: 140px !important; }
    :is(.bp-works-note-text, .bp-services-process-text) { grid-column: 7 / -1; margin-top: -140px !important; z-index: 6; }
}
/* On tablets the same rhythm uses shallower overlaps and wider text columns. */
@media (min-width: 769px) and (max-width: 1200px) {
    .bp-hero > .bp-card--headline { padding-bottom: 90px; }
    .bp-hero > .bp-card--text { grid-column: 6 / -1; margin-top: -85px; z-index: 6; }
    .bp-hero > .bp-card--news { grid-column: 1 / 9; }
    :is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) { padding-bottom: 90px !important; }
    :is(.bp-works-text, .bp-services-text, .bp-production-text, .bp-contact-text) { grid-column: 6 / -1; margin-top: -85px !important; z-index: 6; }
    .bp-word-hero__content-card { padding-bottom: 90px; }
    .bp-word-hero__side-card { grid-column: 5 / -1; margin-top: -85px; }
}
@media (min-width: 1201px) {
    /* Keep the text clear of the badge which overlaps its right edge. */
    .bp-studio-text { padding-right: clamp(180px,16vw,320px) !important; }
    :is(.bp-studio__intro, .bp-about__intro) { padding-bottom: 110px !important; }
}
/* Fine outlines make the edges of the overlapping paper cards readable. */
.bp-card {border: 1px solid rgba(17, 17, 17, .25); }
@media (min-width: 769px) and (max-width: 1200px) {
    .bp-studio > .bp-studio__media, .bp-about > .bp-about__media { grid-column: 1 / -1; grid-row: 1; }
    .bp-studio > .bp-studio__intro, .bp-about > .bp-about__intro { grid-column: 2 / 12; grid-row: 2; }
    .bp-studio > .bp-studio__text, .bp-about > .bp-about__text { grid-column: 1 / 9; grid-row: 3; }
    .bp-studio > .bp-studio__features, .bp-about > .bp-about__principles { grid-column: 5 / -1; grid-row: 4; }
    .bp-studio > .bp-studio__cta, .bp-about > .bp-about__cta { grid-column: 1 / 5; grid-row: 4; min-width: 0; max-width: 100%; }
}

/* Typography and real-content corrections from the 09 October layout audit. */
:is(.bp-card--headline, .bp-word-hero__content-card, .bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline, .bp-contact-main) :is(h1,h2) { text-wrap: balance; }
:is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline) h2 { font-size: clamp(36px,4.5vw,76px); line-height: 1.08; }
:is(.bp-services-process-headline, .bp-works-note-headline) h2 { font-size: clamp(30px,3.5vw,60px); line-height: 1.1; text-wrap: balance; }
.bp-services-process-headline .text-headline { padding: 0; }
.bp-services-process-headline h2 { max-width: 80%; }
:is(.bp-services-process-text, .bp-works-note-text) p { font-size: clamp(17px,1.4vw,22px); line-height: 1.45; }
:is(.bp-studio__intro, .bp-about__intro) h2 { font-size: clamp(30px,3.2vw,52px); line-height: 1.12; text-wrap: balance; }
.bp-service-ticket h3 { font-size: clamp(28px,2.7vw,46px); line-height: 1.1; margin-bottom: 24px; text-wrap: balance; }
:is(.bp-production-step, .bp-services-process-step) h3 { font-size: clamp(25px,2.1vw,38px); line-height: 1.12; text-wrap: balance; }
.bp-works-list .bp-work-full__media { min-height: 0 !important; width: 100%; }
.bp-works-list .bp-work-full { min-height: 0 !important; }
.bp-works-list .bp-work-full > a { min-height: 0; grid-template-rows: auto auto; }
.bp-work-full__caption h2 { font-size: clamp(24px,3vw,44px); line-height: 1.14; text-wrap: balance; }
.bp-service-full__caption h2 { line-height: 1.14; text-wrap: balance; }
.bp-contacts__main h2 { font-size: clamp(30px,4.2vw,64px); line-height: 1.1; text-wrap: balance; }
.bp-contacts__content p { font-size: clamp(17px,1.35vw,22px); font-weight: 400; line-height: 1.5; text-transform: none; }
.bp-contacts__links a { width: auto; max-width: 100%; font-size: clamp(18px,2.2vw,32px); line-height: 1.4; overflow-wrap: anywhere; }
@media (min-width: 601px) and (max-width: 1200px) {
    .bp-contacts > .bp-contacts__main { grid-column: 1 / -1; grid-row: 1; }
    .bp-contacts > .bp-contacts__links { grid-column: 5 / -1; grid-row: 2; }
    .bp-contacts > .bp-contacts__brief { grid-column: 1 / 11; grid-row: 3; }
    .bp-contacts > .bp-contacts__cta { grid-column: 9 / -1; grid-row: 4; justify-self: end; }
    .bp-services-process > .bp-services-process-headline, .bp-works-note > .bp-works-note-headline { grid-column: 1 / 11; }
}
@media (min-width: 601px) and (max-width: 768px) {
    .bp-studio > .bp-studio__intro, .bp-about > .bp-about__intro { grid-column: 1 / -1; grid-row: 2; }
    .bp-studio > .bp-studio__text, .bp-about > .bp-about__text { grid-column: 1 / -1; grid-row: 3; }
    .bp-studio > .bp-studio__features, .bp-about > .bp-about__principles { grid-column: 1 / -1; grid-row: 4; }
    .bp-studio > .bp-studio__cta, .bp-about > .bp-about__cta { grid-column: 9 / -1; grid-row: 5; width: min(220px,100%); justify-self: end; }
}
@media (max-width: 600px) {
    :is(.bp-studio-headline, .bp-works-headline, .bp-services-headline, .bp-production-headline) h2 { font-size: clamp(32px,7.5vw,42px); }
    .bp-service-ticket h3 { font-size: clamp(26px,6.5vw,32px); }
}
@media (max-width: 768px) {
    .bp-services-process-headline h2 { max-width: 100%; }
}

/* Inner page heading and excerpt: two paper cards like the Services intro. */
.bp-inner-hero--split .bp-inner-hero__layout {
    --vyv-heading-column: 1 / -1;
    --vyv-heading-overlap: 0px;
    --vyv-heading-padding: clamp(28px, 3.4vw, 54px);
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--vyv-gap);
    align-items: start;
    width: var(--container);
    max-width: 1980px;
    margin-inline: auto;
    isolation: isolate;
}
.bp-inner-hero--split .bp-inner-hero__layout--with-text {
    --vyv-heading-column: 1 / 9;
    --vyv-heading-overlap: clamp(90px, 6.5vw, 128px);
}
.bp-inner-hero--split .bp-inner-hero__card,
.bp-inner-hero--split .bp-inner-hero__summary {
    position: relative;
    min-width: 0;
    width: auto;
    max-width: none;
    min-height: 0;
    margin-inline: 0;
    border: 1px solid rgba(17, 17, 17, .25);
    border-radius: 18px;
    background-color: #ffffff;
    box-shadow: 0 18px 45px -28px rgba(17, 17, 17, .3);
}
.bp-inner-hero--split .bp-inner-hero__card {
    grid-column: var(--vyv-heading-column);
    grid-row: 1;
    display: block;
    padding: var(--vyv-heading-padding);
    padding-bottom: calc(var(--vyv-heading-padding) + var(--vyv-heading-overlap));
    overflow: hidden;
}
.bp-inner-hero--split .bp-inner-hero__content {
    width: 100%;
    min-width: 0;
}
.bp-inner-hero--split .bp-inner-hero__content > p {
    margin: 0 0 clamp(18px, 1.8vw, 24px);
}
.bp-inner-hero--split .bp-inner-hero__content > p a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 5px;
    border-radius: 2px;
}
.bp-inner-hero--split .bp-inner-hero__content > p a:hover {
    color: var(--accent);
}
.bp-inner-hero--split .bp-inner-hero__card h1 {
    margin: 0;
    font-size: clamp(32px, 5.2vw, 82px);
    line-height: 1.08;
    text-wrap: balance;
    overflow-wrap: break-word;
}
.bp-inner-hero--split .bp-inner-hero__summary {
    grid-column: 7 / -1;
    grid-row: 2;
    z-index: 3;
    margin-top: calc(-1 * var(--vyv-heading-overlap));
    padding: var(--vyv-heading-padding);
    overflow-wrap: break-word;
}
.bp-inner-hero--split .bp-inner-hero__summary p {
    margin: 0;
}
.bp-inner-hero--split .bp-inner-hero__summary li {
    margin-bottom: 20px;
}
.bp-inner-hero__summary .vyv-page-hero-text { width: 83.333%; }
@media (max-width: 991px) {
.bp-inner-hero__summary .vyv-page-hero-text { width: 100%; }
}
@media (min-width: 769px) and (max-width: 1200px) {
    .bp-inner-hero--split .bp-inner-hero__layout--with-text {
        --vyv-heading-column: 1 / 11;
        --vyv-heading-overlap: 72px;
    }
    .bp-inner-hero--split .bp-inner-hero__summary { grid-column: 5 / -1; }
}

@media (max-width: 768px) {
    .bp-inner-hero--split .bp-inner-hero__layout { row-gap: var(--vyv-gap); }
    .bp-inner-hero--split .bp-inner-hero__layout--with-text {
        --vyv-heading-column: 1 / -1;
        --vyv-heading-overlap: 0px;
    }
    .bp-inner-hero--split .bp-inner-hero__summary { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .bp-inner-hero--split .bp-inner-hero__layout { --vyv-heading-padding: 24px; }
}
