/* Selected B: reusable portrait-led composition and richer editorial modules. */
.direction-b{--hero-inset:clamp(32px,4.5vw,72px);--section-gap:clamp(64px,7vw,104px);--module-gap:32px}
.direction-b .main-nav{gap:24px}.direction-b .site-header{gap:26px}.direction-b .header-actions{gap:20px}.direction-b .main-nav sup{font-size:.65em}
.direction-b .hero{margin:0 var(--gutter);padding:48px var(--hero-inset) 0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,430px);grid-template-rows:auto auto;gap:0 56px;background:none}
.direction-b .hero:before{inset:0 0 112px;background:var(--season-gradient)}
.direction-b .hero-copy{grid-column:1;grid-row:1;padding:0 0 56px;align-self:center;min-width:0}
.direction-b .hero-copy h1{font-size:clamp(3.6rem,6.3vw,5.6rem)}
.direction-b .hero-date{position:static;margin-bottom:32px;font-size:22px;gap:16px;align-items:center;flex-direction:row}.direction-b .date-year{font-size:13px;margin-top:6px}
.direction-b .hero-artist{margin-top:16px}.direction-b .hero-description{margin-top:24px;font-size:22px}
.direction-b .hero-links{margin-top:20px}.direction-b .hero-genre{position:static;display:block;margin-top:20px;font-size:13px;background:none;color:var(--ink);padding:0;max-width:none;line-height:1.5}
.direction-b .hero-photo{grid-column:2;grid-row:1;align-self:start;min-height:0;height:auto;aspect-ratio:1231/1490;margin:0;z-index:1}
.direction-b .hero-photo img{width:100%;height:100%;object-fit:contain;object-position:center}
.direction-b .booking-ledge{grid-column:1/-1;grid-row:2;align-self:start;margin:-56px 80px 0 0;padding:24px 28px 24px 0;min-height:112px;gap:24px;background:var(--paper)}
.direction-b .booking-ledge .ledge-date{flex:1}.direction-b .booking-ledge .button{min-width:220px}.direction-b .booking-ledge .ledge-price{padding-left:24px}
.home-shortcuts{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:40px;margin-top:24px}
.home-shortcuts a{display:flex;align-items:center;gap:16px;border-block:1px solid var(--line);padding:20px 0;font-size:16px}.home-shortcuts .icon{margin-left:auto;width:18px}.home-shortcuts span{font-size:13px;color:var(--muted)}.home-shortcuts a:hover{border-color:var(--ink)}
.direction-b .programme{padding-top:64px;padding-bottom:72px}.programme-more{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px}.programme-more .programme-note{margin:0;font-size:13px}
.festival{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);column-gap:12%;padding-block:64px 28px;color:var(--paper);background:var(--ink)}
.festival-copy{padding-top:24px}.festival h2{font-size:clamp(3.8rem,6.6vw,6rem);line-height:.99}.festival h2 em{color:var(--season-start)}.festival-date{margin-top:28px;font-size:23px}.festival-copy>p:not(.festival-date){margin-top:24px;max-width:42ch;font-size:20px;color:var(--line)}.festival .button{margin-top:32px}.festival-all{margin-left:28px}.festival-poster{display:block;max-width:360px;justify-self:end;align-self:center}.festival-poster img{width:100%;height:auto}.festival-selection{grid-column:1/-1;border-top:1px solid #ffffff50;display:flex;gap:48px;padding-top:24px;margin-top:44px;font-size:13px;line-height:1.6}.festival-selection>span{color:var(--season-start);flex-shrink:0}
.direction-b .appointment{background:var(--surface);padding-block:56px;gap:64px}.direction-b .appointment-intro>.text-link{margin-top:24px}.direction-b .appointment-row{border-color:var(--line)}.direction-b .appointment-intro p{font-size:17px}
.journal{padding-block:var(--section-gap)}.journal .section-head h2{font-size:clamp(2.7rem,4.2vw,4.2rem)}.journal h2 sup{font-size:.55em;position:relative;top:-.15em}.journal .section-head h2 em{margin-left:0}.journal .section-head>p{font-size:18px;color:var(--muted)}
.journal-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px}.journal-feature>a:first-child{display:block;aspect-ratio:1.45;overflow:hidden}.journal-feature img{width:100%;height:100%;object-fit:cover}.direction-b .journal-feature h3{font-family:Encorpada;font-size:clamp(2rem,3vw,3rem);line-height:1.08;max-width:24ch;margin-top:24px}.journal h3 a:hover{text-decoration:underline;text-decoration-thickness:1px}.journal-type{font-size:13px;color:var(--muted);margin-top:12px}.journal-feature .text-link{margin-top:20px}
.journal-row{display:grid;grid-template-columns:100px minmax(0,1fr) 24px;gap:20px;align-items:center;border-top:1px solid var(--line);padding-block:20px}.journal-row:first-child{padding-top:0;border:0}.journal-row:last-child{padding-bottom:0}.journal-thumb{display:block;aspect-ratio:1.2}.journal-thumb img{width:100%;height:100%;object-fit:cover}.direction-b .journal-row h3{font-size:20px;line-height:1.18}.journal-row .journal-type{font-size:12px;margin-top:8px}.journal-arrow{display:grid;place-items:center;min-height:44px}.journal-bottom{margin-top:36px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:flex-end}
.season{background:var(--season-gradient);display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:8%;padding-block:64px;align-items:center}.season-cover{max-width:310px;justify-self:center;transform:rotate(-4deg)}.season-cover img{height:auto;width:100%}.season h2{font-size:clamp(2.8rem,4.6vw,4.6rem)}.season-copy>p{font-size:18px;margin-top:24px;max-width:55ch}.pass-options{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}.pass-options>div{border-block:1px solid #0005;padding-block:20px}.direction-b .pass-options h3{font-size:25px}.pass-options p{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px;font-size:16px}.pass-options strong{font-size:28px;font-weight:400}.pass-options span{display:block;font-size:14px;margin-top:8px}.season-copy .pass-conditions{font-size:12px;margin-top:18px;max-width:80ch}.season-actions{display:flex;gap:32px;flex-wrap:wrap;margin-top:24px}.season-actions .text-link{font-size:15px}
.direction-b .place{padding-block:var(--section-gap);gap:8%;grid-template-columns:1fr 1fr}.direction-b .place-copy p{max-width:38ch}.direction-b .place-copy .place-status{font-size:13px;padding-top:20px;border-top:1px solid var(--line);margin-top:32px;color:var(--ink)}
.actors{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;margin-bottom:var(--section-gap)}.actors-image{background:var(--surface);overflow:hidden}.actors-image img{width:100%;height:auto;min-height:250px;object-fit:cover}.actors-copy h2{font-size:clamp(2.7rem,4vw,4rem)}.actors-copy p{margin-top:24px;color:var(--muted);max-width:34ch}.actors-copy .text-link{margin-top:20px}
.visit{padding-block:64px;background:var(--surface)}.visit .section-head h2 em{margin-left:64px}.visit .section-head>p{font-size:18px;color:var(--muted)}.visit-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:56px;margin-top:48px}.direction-b .visit h3{font-size:25px;margin-bottom:24px}.visit p{font-size:17px}.visit .text-link{display:flex;justify-content:space-between;font-size:15px;min-height:52px;font-weight:400;border-color:var(--line);gap:16px}.visit-arrival>p:first-of-type{margin-bottom:20px}.visit-contact{margin-top:24px;line-height:1.8}.visit-contact a{font-size:15px;text-decoration:underline;text-underline-offset:3px}.visit-schools>p{margin-bottom:20px;color:var(--muted)}
.newsletter{background:var(--season-gradient);display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding-block:64px;align-items:center}.newsletter h2{font-size:clamp(2.8rem,4.8vw,4.8rem)}.newsletter p{font-size:17px;max-width:34ch;margin-top:20px}.newsletter form{position:relative;min-width:0}.newsletter label{display:block;font-size:16px;margin-bottom:14px}.newsletter-field{display:flex;border-bottom:1px solid var(--ink);padding-bottom:12px;gap:12px}.newsletter input[type=email]{border:0;border-radius:0;background:none;min-width:0;flex:1;outline-offset:5px;font-size:20px;padding:12px 0;caret-color:var(--ink)}.newsletter input::placeholder{color:#3b2830;opacity:1}.newsletter .button{flex-shrink:0;gap:20px}.newsletter #newsletter-note{max-width:64ch;font-size:12px;line-height:1.6;margin-top:16px}.newsletter #newsletter-note a{text-decoration:underline}.newsletter-trap{position:absolute;left:-5000px}
.home-footer{padding-block:64px 24px}.footer-main{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:56px}.footer-identity>p{font:36px/1.05 Encorpada,Georgia,serif;margin-top:28px}.footer-identity address{font-size:14px;font-style:normal;line-height:1.6;margin-top:24px;color:var(--muted)}.direction-b .footer-main h3{font:700 16px/1.4 Effra,Arial,sans-serif;margin-bottom:20px}.footer-main nav a{display:block;font-size:14px;padding-block:6px}.footer-main a:hover,.footer-socials a:hover{text-decoration:underline}.footer-socials{border-block:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:48px;padding-block:24px;font-size:14px}.footer-socials nav{display:flex;flex-wrap:wrap;gap:24px}.footer-support{display:flex;align-items:center;justify-content:space-between;gap:48px;padding-block:28px}.footer-support p{font-size:12px;color:var(--muted);max-width:90ch}.footer-support .text-link{font-size:13px;white-space:nowrap}.footer-bottom{display:flex;gap:28px;font-size:12px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line)}.footer-bottom>span{margin-right:auto}.direction-note{margin-top:32px;border-top:1px solid var(--line);padding-top:18px;font-size:13px}.direction-note summary{cursor:pointer;list-style-position:outside;margin-left:16px}.direction-note p{margin-top:20px;font-size:15px;max-width:80ch}.direction-note .text-link{font-size:14px;margin-top:16px}.direction-note .small-note{font-size:12px;color:var(--muted)}.menu-services{padding:0 24px 24px;display:flex;gap:24px}.menu-sheet{max-height:100dvh;overflow:auto}
@media(min-width:1600px){.direction-b .hero{grid-template-columns:minmax(0,1fr) minmax(0,480px);column-gap:80px}}
@media(max-width:1100px){
 .direction-b .main-nav{gap:16px}.direction-b .main-nav a{font-size:14px}.direction-b .site-header{gap:20px}.direction-b .hero{grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:0 32px;padding-top:40px}.direction-b .hero-copy h1{font-size:6.1vw}.direction-b .hero-copy{padding-bottom:40px}.direction-b .hero-date{margin-bottom:24px;font-size:20px}.direction-b .hero-artist{font-size:18px}.direction-b .hero-description{font-size:20px;margin-top:20px}.direction-b .hero-genre{font-size:12px;margin-top:16px}.direction-b .hero-links{gap:16px;margin-top:16px}.direction-b .hero-links .text-link{font-size:14px;gap:16px}.direction-b .booking-ledge{margin-right:40px;margin-top:-40px;padding-right:24px}.direction-b .booking-ledge .button{min-width:205px}.home-shortcuts{gap:24px}.home-shortcuts a{font-size:14px}.home-shortcuts span{display:none}.festival{column-gap:8%}.festival-all{display:table;margin-left:0;margin-top:12px}.journal-grid{gap:40px}.journal-row{grid-template-columns:80px minmax(0,1fr) 20px;gap:16px}.direction-b .journal-row h3{font-size:18px}.visit-grid{gap:32px}.footer-main{gap:32px}.season{gap:6%}.season-cover{max-width:250px}
}
@media(max-width:860px) and (min-width:761px){.direction-b .header-book{display:none}.direction-b .hero{grid-template-columns:minmax(0,1fr) 280px;padding-inline:32px}.direction-b .hero-copy h1{font-size:6vw}.direction-b .hero-links .favorite{display:none!important}.direction-b .booking-ledge{margin-top:0;margin-right:0}.direction-b .hero:before{bottom:112px}.direction-b .hero-genre{max-width:26ch}.direction-b .hero-links .text-link{font-size:13px;gap:12px}}
@media(max-width:760px){
 .direction-b .hero{margin:0;padding:24px 24px 0;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:0;background:var(--season-gradient)}.direction-b .hero:before{display:none}
 .direction-b .hero-photo{grid-column:1;grid-row:1;aspect-ratio:1231/1490;width:calc(100% - 80px);height:auto;margin:0 0 0 80px;min-height:0;align-self:start}.direction-b .hero-photo img{object-fit:contain}
 .direction-b .hero-copy{grid-row:2;grid-column:1;position:static;padding:28px 0 24px;background:none;align-self:start}.direction-b .hero-copy h1{font-size:clamp(3.2rem,15vw,4.5rem);margin:0}.direction-b .hero-date{position:absolute;left:24px;top:48px;flex-direction:column;align-items:start;gap:16px;font-size:18px;margin:0}.direction-b .date-line{height:48px;width:1px;margin-left:20px}.direction-b .date-year{font-size:12px;margin-top:8px}.direction-b .hero-artist{margin-top:12px;font-size:17px}.direction-b .hero-description{font-size:20px;margin-top:22px;max-width:27ch}.direction-b .hero-links{margin-top:20px;justify-content:space-between}.direction-b .hero-genre{font-size:12px;margin-top:18px;max-width:none;color:var(--ink)}
 .direction-b .booking-ledge{grid-row:3;grid-column:1;display:grid;grid-template-columns:1fr auto;margin:0 -24px;min-height:0;padding:24px!important;gap:20px!important;border-bottom:1px solid var(--line)}.direction-b .booking-ledge .ledge-price{border:0;padding:0}.direction-b .booking-ledge .button{min-width:0}.direction-b .booking-ledge .ledge-date{font-size:12px}
 .home-shortcuts{display:flex;flex-direction:column;gap:0;margin-top:0}.home-shortcuts a{font-size:15px;padding:16px 0;border-top:0;min-height:56px}.home-shortcuts span{display:inline;font-size:12px}.home-shortcuts a:nth-child(n+2){display:none}.direction-b .programme{padding-top:48px;padding-bottom:56px}.programme-more{display:block;margin-top:28px}.programme-more .text-link{font-size:15px}.programme-more .programme-note{margin-top:20px;line-height:1.6}
 .festival{grid-template-columns:1fr;gap:0;padding-block:40px 24px}.festival-copy{padding:0}.festival h2{font-size:51px}.festival-date{font-size:19px;margin-top:24px}.festival-copy>p:not(.festival-date){font-size:17px;margin-top:20px}.festival .button{margin-top:24px;min-width:220px}.festival-all{display:inline-flex;margin-top:12px;font-size:14px}.festival-poster{grid-column:1;max-width:230px;justify-self:end;margin-top:28px;margin-right:12px}.festival-selection{display:block;margin-top:28px;padding-top:20px;font-size:12px}.festival-selection p{margin-top:12px;line-height:1.8}
 .direction-b .appointment{padding-block:40px}.direction-b .appointment-intro{display:block;margin-bottom:28px}.direction-b .appointment-intro p{margin:20px 0 0;font-size:16px;max-width:none}.direction-b .appointment-intro>.text-link{margin-top:12px;font-size:14px}.direction-b .appointment-intro p br{display:none}
 .journal{padding-block:56px}.journal .section-head{display:block}.journal .section-head h2{font-size:39px}.journal .section-head>p{font-size:16px;margin-top:24px}.journal-grid{display:block}.journal-feature>a:first-child{aspect-ratio:1.3}.direction-b .journal-feature h3{font-size:30px}.journal-list{margin-top:36px}.journal-row{grid-template-columns:72px minmax(0,1fr) 18px;gap:16px;padding-block:20px}.direction-b .journal-row h3{font-size:18px}.journal-bottom{justify-content:flex-start;margin-top:28px}
 .season{grid-template-columns:1fr;padding-block:40px;gap:32px}.season-copy{grid-row:1}.season h2{font-size:44px}.season-copy>p{font-size:17px;margin-top:22px}.season-cover{max-width:180px;justify-self:end;margin-right:20px}.pass-options{gap:24px;margin-top:28px}.direction-b .pass-options h3{font-size:24px}.pass-options p{display:block;font-size:15px}.pass-options strong{display:block;margin-top:8px;font-size:28px}.pass-options span{font-size:13px}.season-actions{display:block;margin-top:24px}.season-actions .text-link{display:flex;justify-content:space-between;min-height:52px;font-size:14px}.season-copy .pass-conditions{font-size:12px;line-height:1.6}
 .direction-b .place{display:block;padding-block:56px}.direction-b .place-copy{padding:28px 0 0 24px}.direction-b .place-copy h2{font-size:44px}.direction-b .place-copy p{font-size:17px}.direction-b .place-copy .place-status{font-size:12px;margin-top:24px;padding-top:16px}.actors{display:block;margin-bottom:56px}.actors-image{margin-left:24px}.actors-image img{min-height:0;aspect-ratio:1.8;object-fit:cover}.actors-copy{padding:28px 24px 0 0}.actors-copy h2{font-size:40px}.actors-copy p{font-size:17px;margin-top:20px}
 .visit{padding-block:40px}.visit .section-head{display:block}.visit .section-head h2{font-size:40px}.visit .section-head h2 em{margin-left:24px}.visit .section-head>p{font-size:16px;margin-top:24px}.visit-grid{display:block;margin-top:36px}.visit-grid>div+div{margin-top:36px}.direction-b .visit h3{font-size:24px;margin-bottom:20px}.visit p{font-size:16px}.visit .text-link{font-size:15px}.visit-contact a{overflow-wrap:anywhere}
 .newsletter{grid-template-columns:1fr;gap:32px;padding-block:40px}.newsletter h2{font-size:48px}.newsletter p{font-size:17px}.newsletter input[type=email]{font-size:18px}.newsletter .button{padding:14px 16px;gap:12px;font-size:14px}.newsletter-field{gap:8px}.newsletter label{font-size:14px}.newsletter #newsletter-note{font-size:12px}.newsletter-trap{left:-1000px}
 .home-footer{padding-block:40px 24px}.footer-main{grid-template-columns:1fr 1fr;gap:32px 24px}.footer-identity{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:24px}.footer-identity img{width:145px;height:auto}.footer-identity>p{font-size:28px;margin:0}.footer-identity address{grid-column:1/-1;margin:0;font-size:13px}.direction-b .footer-main h3{font-size:15px;margin-bottom:16px}.footer-main nav a{font-size:13px;min-height:32px}.footer-socials{display:block;margin-top:32px;padding-block:24px}.footer-socials nav{margin-top:16px;gap:8px 20px}.footer-socials nav a{padding-block:8px}.footer-support{display:block;padding-block:24px}.footer-support .text-link{margin-top:12px}.footer-bottom{gap:16px;font-size:12px}.footer-bottom>span{flex-basis:100%}.direction-note{margin-top:24px}.direction-note p{font-size:14px}
}
@media(max-width:359px){.direction-b .hero-copy h1{font-size:14.6vw}.home-shortcuts span{display:none}.newsletter-field{display:block}.newsletter input[type=email]{width:100%;min-height:48px}.newsletter .button{width:100%;margin-top:12px}.direction-b .booking-ledge .ledge-date strong{font-size:16px}}
/* The festival artwork is supplied as a wide graphic; respect its native format. */
.festival{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;padding-top:56px}
.festival-copy{display:contents}.festival h2{grid-column:1;grid-row:1}.festival-date{grid-column:1;grid-row:2;margin-top:0}.festival-copy>p:not(.festival-date){grid-column:2;grid-row:2;margin-top:0;max-width:44ch}.festival-poster{grid-column:2;grid-row:1;max-width:none;width:100%;align-self:center;justify-self:stretch}.festival .button{grid-column:1;grid-row:3;justify-self:start;margin-top:0}.festival-all{grid-column:2;grid-row:3;justify-self:start;align-self:center;margin:0;display:inline-flex}.festival-selection{grid-row:4;margin-top:20px}
.direction-b .journal-row h3{line-height:1.3}
@media(max-width:760px){.festival{grid-template-columns:1fr;gap:0;padding-top:40px}.festival-copy{display:block}.festival-date{margin-top:24px}.festival-copy>p:not(.festival-date){margin-top:20px}.festival .button{margin-top:24px}.festival-all{display:table;margin-top:12px}.festival-poster{grid-column:1;grid-row:auto;width:100%;max-width:none;margin:28px 0 0}.festival-selection{grid-row:auto;margin-top:28px}.actors-image img{aspect-ratio:auto;height:auto}}
