/* Summer theatre poster identity: sky, navy, vermilion, cream and sunshine. */
@font-face{font-family:MoominHeadings;src:url('fonts/MoominFont2.0-Medium.otf') format('opentype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:PosterLabel;src:url('fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--paper:#fff7e5;--ink:#063e5a;--muted:#365b70;--line:#b5d6df;--green:#d6341d;--sage:#e2f2f8;--serif:MoominHeadings,Arial,sans-serif;--sky:#8ccff5;--navy:#063e5a;--red:#ed4327;--cream:#fff7e5;--yellow:#ffe58a;--label:PosterLabel,Arial,sans-serif}
body{background:var(--cream);color:var(--navy)}
.review-bar{background:var(--navy);color:var(--cream);font-size:10px;letter-spacing:1.3px;padding-block:10px}
.review-bar i{background:var(--yellow)}
.site-header{padding-block:24px;border-color:#c7dbe0}
.wordmark{font-family:var(--serif);font-size:28px;line-height:1;letter-spacing:.3px;text-transform:uppercase;transform:rotate(-1deg);display:inline-block}
.wordmark em{font-style:normal;color:#d93821;display:block;font-size:.67em;letter-spacing:1.4px;margin-top:2px}
.wordmark small{font-family:var(--label);font-weight:600;font-size:9px;letter-spacing:1.65px;margin-top:10px}
.site-header nav{font-size:13px;gap:28px}
.nav-cta{border:1.5px solid var(--navy);border-radius:5px;padding:10px 16px;box-shadow:3px 3px 0 var(--yellow)}
.nav-cta:hover{background:var(--yellow)}
.hero-shell{background:var(--sky);position:relative;overflow:hidden;padding:0 0 31px}
.hero-shell::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:22px;background:radial-gradient(ellipse 36px 15px at 36px 22px,var(--cream) 97%,transparent 100%) 0 0/72px 22px repeat-x;pointer-events:none}
.hero{position:relative;grid-template-columns:.94fr 1.06fr;gap:46px;padding-block:49px 22px;min-height:620px;z-index:1}
.eyebrow{font-family:var(--label);font-size:13px;letter-spacing:1.8px;font-weight:600}
.short-line{background:var(--navy);height:2px}
.hero .eyebrow{font-size:13px;margin-bottom:23px}
.hero h1{font-size:clamp(50px,5.4vw,77px);line-height:1.03;letter-spacing:.5px;text-transform:uppercase;margin-bottom:23px;font-weight:400}
.hero h1 em{display:block;font-style:normal;color:var(--cream);text-shadow:2px 3px 0 #2c709442;transform:rotate(-2deg);transform-origin:left}
.intro{font-size:16px;line-height:1.8;max-width:400px;color:var(--navy)}
.hero-sub{font-size:13px;color:#234f69;margin-bottom:26px}
.button{font-size:13px;border-radius:5px;padding:13px 20px;min-height:48px}
.primary{background:#d6341d;box-shadow:4px 4px 0 var(--navy);color:white}
.primary:hover{background:#ba2814}
.secondary{background:var(--yellow);border:1px solid var(--navy);color:var(--navy)}
.secondary:hover{background:#ffdd64}
.hero-note{font-size:10px;color:#224e67;margin-top:19px}
.hero-art{padding-bottom:25px;transform:rotate(1.5deg)}
.art-frame{aspect-ratio:1.12;border:6px solid var(--cream);border-radius:9px;background:var(--sky);box-shadow:10px 10px 0 #063e5a14;overflow:hidden}
.poster-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.art-tag{left:-20px;bottom:41px;background:var(--yellow);padding:11px 17px;font-family:var(--label);font-weight:600;font-size:20px;box-shadow:3px 3px 0 var(--navy);border:1px solid var(--navy);transform:rotate(-4deg)}
.tag-dot{background:var(--red)}
.art-star{color:var(--navy)}
.art-caption{font-family:var(--label);font-size:10px;letter-spacing:1px;color:var(--navy);right:2px;bottom:0}
.experience-strip{border-top:0;border-bottom:1px solid #bdd8df;padding-block:24px;font-family:var(--label);font-size:17px;font-weight:600;letter-spacing:.7px;text-transform:uppercase}
.experience-strip b{font-family:var(--serif);font-style:normal;font-size:21px;color:#d93821;line-height:1}
.experience-strip span{gap:15px}
.programme{padding-block:60px 63px}
.section-heading{margin-bottom:31px;align-items:flex-end}
.section-heading h2{font-family:var(--serif);font-size:37px;line-height:1.15;letter-spacing:.2px;text-transform:uppercase;font-weight:400}
.section-heading .eyebrow{font-size:12px;margin-bottom:12px;color:#28637d}
.section-heading>p{font-size:13px;line-height:1.8;color:var(--muted)}
.filters{border-color:#bad3da;padding-bottom:18px}
.filter{border-radius:4px;font-family:var(--label);font-size:16px;font-weight:600;letter-spacing:.4px;padding:9px 15px;gap:11px}
.filter.active{background:var(--navy);color:var(--cream);box-shadow:3px 3px 0 #6bbcf0}
.filter:not(.active):hover{background:#dfedf0}
.filter span{font-family:var(--sans);font-size:9px;font-weight:400;opacity:1}
.period-field{font-size:12px}
.period-field label{color:var(--navy)}
.period-field select{font-size:12px;border-color:#6f9daf;background:#fffaf0;border-radius:4px;min-height:39px}
.result-line{color:#355c6c;font-size:11px}
.result-line>span{font-size:10px}
.event-grid{gap:23px;align-items:stretch}
.event-card{background:#fffdfa;border:1px solid #bdd5dc;border-radius:7px;overflow:hidden;box-shadow:4px 5px 0 #e5e9dc}
.card-link{display:flex;flex-direction:column}
.card-art{width:100%;aspect-ratio:1.3;border-radius:0;background:var(--sky);border-bottom:3px solid var(--navy)}
.card-art svg,.card-art .poster-image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s;object-position:center top}
.card-link:hover .card-art svg,.card-link:hover .card-art .poster-image{transform:scale(1.035)}
.card-kicker{left:12px;top:auto;bottom:12px;right:12px}
.badge,.badge.tour{background:var(--cream);color:var(--navy);border:1px solid var(--navy);border-radius:2px;font-family:var(--label);font-size:11px;font-weight:600;letter-spacing:1px;padding:4px 8px;box-shadow:2px 2px 0 #063e5a29}
.card-body{padding:20px 20px 15px;display:flex;flex-direction:column;flex:1;width:100%}
.card-meta{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.8px;color:#38677e;margin-bottom:12px}
.event-card h3{font-family:var(--serif);font-size:25px;line-height:1.12;letter-spacing:.2px;min-height:58px;text-transform:uppercase;color:var(--navy);margin-bottom:14px}
.card-description{font-size:12px;line-height:1.8;color:var(--muted);min-height:66px;margin-bottom:19px}
.card-date{font-size:12px;margin-top:auto}
.card-status{font-size:10px;line-height:1.6;color:#405e70;min-height:16px;margin-bottom:17px}
.card-action{font-size:12px;font-weight:600;border-color:#c9dce1}
.card-action span{color:#cf3119;font-size:20px}
.programme-note{background:#e1f1f7;border:1px solid #c4e1ec;color:#355b71;border-radius:5px;font-size:11px;padding:17px 19px}
.programme-note strong{color:var(--navy)}
.note-icon{border-color:#3a6c80;font-family:Georgia,serif;font-style:italic}
.empty-state{background:#f2faff;border-color:#72a8bf;border-radius:5px;padding:40px 20px}
.empty-state>span{color:#dc3b22}
.empty-state h3{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:.3px;text-transform:uppercase}
.empty-state p{font-size:13px}
.places{position:relative;background:#8ccff5;padding-block:61px 45px}
.places::before{content:'';position:absolute;top:0;left:0;right:0;height:17px;background:radial-gradient(ellipse 31px 13px at 31px 0,var(--cream) 97%,transparent 100%) 0 0/62px 17px repeat-x;pointer-events:none}
.places .section-heading .eyebrow{color:#20516b}
.places .section-heading>p{color:#234f69}
.place-grid{gap:23px}
.place-card{background:var(--cream);border:1px solid #fff9e5;border-radius:6px;box-shadow:5px 5px 0 #063e5a24;padding:25px 28px;border-top:6px solid #ed4327}
.tour-place{background:#fff7e5;border-top-color:#ffe58a}
.place-number{font-family:var(--label);font-weight:600;font-size:12px;letter-spacing:1.3px}
.small-icon{color:#d7371e}
.place-card h3{font-family:var(--serif);font-size:28px;letter-spacing:.3px;text-transform:uppercase}
.place-card .place-location{color:#3c6275;font-size:11px}
.place-card>p:not(.place-location){font-size:13px;color:var(--muted)}
.text-button{font-size:12px;font-weight:600;border-color:#e44f37;color:var(--navy)}
.text-button:hover{border-color:var(--navy)}
.concept-details{border-color:#437c9890;margin-top:30px}
.concept-details summary{font-size:14px;font-weight:600}
.concept-details summary .eyebrow{font-size:11px;color:#245973}
.concept-content{color:#164a65;font-size:13px}
.hierarchy{border-color:#6699b2;background:#aeddff66;border-radius:5px}
.hierarchy>div{border-color:#6699b2}
.hierarchy span{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.9px}
.hierarchy h4{font-family:var(--serif);font-size:21px;line-height:1.2;letter-spacing:.3px;text-transform:uppercase}
.hierarchy p{font-size:12px}
.concept-content .concept-footnote{font-size:11px;line-height:1.8}
.footer-shell{background:var(--navy);color:var(--cream)}
footer{padding-block:31px}
.footer-top{border-color:#507286}
.footer-top .wordmark{font-size:26px}
.footer-top .wordmark em{color:var(--yellow)}
.footer-top>span,.footer-bottom{color:#e0edf0;font-size:10px}
.footer-bottom a{color:var(--yellow)}
dialog{background:var(--cream);border:5px solid var(--cream);border-radius:10px;box-shadow:9px 9px 0 #032b4190}
dialog::backdrop{background:#032c46b0}
.dialog-close{background:var(--cream);border:1.5px solid var(--navy);color:var(--navy)}
.dialog-close:hover{background:var(--yellow)}
.detail-art{background:var(--sky);min-height:390px;border-right:4px solid #fff7e5;overflow:hidden}
.detail-art .poster-image{width:100%;height:100%;object-fit:cover;object-position:center top}
.detail-art svg{width:100%;height:100%;object-fit:cover}
.detail-intro{padding:53px 32px 29px;background:#e6f4fa}
.detail-breadcrumb{font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:1px;color:#3a6a7f}
.detail-intro h2{font-family:var(--serif);font-size:36px;line-height:1.1;letter-spacing:.2px;text-transform:uppercase}
.detail-intro>p:not(.detail-breadcrumb){font-size:14px;color:var(--muted)}
.detail-tag{background:var(--yellow);color:var(--navy);font-size:10px;border-radius:3px}
.detail-bottom{border-color:#c2dce3}
.detail-facts>div{border-color:#ed4327}
.detail-facts dt{font-family:var(--label);font-weight:600;letter-spacing:1.2px;font-size:12px;color:#32647a}
.detail-facts dd{font-size:13px}
.detail-grid h3{font-family:var(--serif);font-size:23px;letter-spacing:.4px;text-transform:uppercase}
.detail-grid p,.detail-grid li{font-size:13px;color:var(--muted)}
.detail-alert{background:#e2f2f8;font-size:12px;border-left:3px solid #5cb7ed}
.related-event p{font-family:var(--label);font-size:12px;font-weight:600;color:#315b70;letter-spacing:.7px}
.related-event button{font-size:12px;color:#b82c17}
.detail-review{font-size:10px;color:#3e6375;border-color:#c5dbe1}
button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c42f18;outline-offset:4px}
@media(max-width:1060px){
 .hero{gap:30px;min-height:auto;padding-block:48px 26px}
 .hero h1{font-size:59px}
 .hero .eyebrow{font-size:11px}
 .art-tag{font-size:18px;left:-12px}
 .event-card h3{font-size:21px;min-height:49px}
 .card-body{padding:17px 16px 15px}
 .card-description{min-height:86px}
 .section-heading h2{font-size:32px}
 .experience-strip{font-size:15px}
 .card-meta{font-size:11px}
 .badge,.badge.tour{font-size:10px}
}
@media(max-width:760px){
 .review-bar{font-size:8px;padding-block:9px}
 .site-header{padding-block:19px}
 .wordmark{font-size:26px}
 .wordmark small{font-size:8px;letter-spacing:1.3px}
 .site-header nav{font-size:11px}
 .hero-shell{padding-bottom:23px}
 .hero{grid-template-columns:1fr;gap:28px;padding-block:32px 18px}
 .hero .eyebrow{font-size:11px;margin-bottom:22px}
 .hero h1{font-size:clamp(42px,11.5vw,65px);line-height:1.03;letter-spacing:.5px;margin-bottom:22px}
 .hero h1 em{white-space:nowrap}
 .intro{font-size:15px;line-height:1.75;max-width:none}
 .hero-sub{font-size:12px;margin-bottom:23px}
 .hero-note{font-size:9px}
 .hero-art{transform:rotate(1deg);padding-bottom:25px;max-width:540px;width:100%;margin-inline:auto}
 .art-frame{aspect-ratio:1.14;border-width:4px;border-radius:5px;box-shadow:5px 5px 0 #063e5a20}
 .art-tag{left:11px;bottom:35px;font-size:17px;padding:9px 13px;gap:8px}
 .art-tag .art-star{font-size:20px;margin-left:6px}
 .art-caption{font-size:9px;letter-spacing:.8px}
 .experience-strip{padding-block:18px;gap:12px;font-size:12px;letter-spacing:.2px}
 .experience-strip span{gap:7px;line-height:1.25}
 .experience-strip b{font-size:18px}
 .programme{padding-block:38px 39px}
 .section-heading{align-items:flex-start;gap:14px;margin-bottom:23px}
 .section-heading h2{font-size:31px}
 .section-heading .eyebrow{font-size:11px;margin-bottom:11px}
 .section-heading>p{font-size:12px}
 .location-filters{gap:3px}
 .filter{font-size:15px;padding:9px 11px;gap:7px}
 .period-field{width:100%}
 .result-line{font-size:11px;gap:8px}
 .result-line>span{font-size:10px}
 .event-grid{gap:25px}
 .card-art{aspect-ratio:1.3}
 .card-body{padding:20px 19px 16px}
 .event-card h3{font-size:29px;min-height:0;letter-spacing:.5px}
 .card-description{font-size:13px;min-height:0;margin-bottom:18px}
 .card-meta{font-size:12px;margin-bottom:13px}
 .badge,.badge.tour{font-size:11px}
 .card-status{font-size:11px;min-height:0}
 .programme-note{font-size:11px;padding:15px}
 .places{padding-block:45px 35px}
 .place-card{padding:23px;border-top-width:5px}
 .place-card h3{font-size:27px}
 .place-number{font-size:11px}
 .concept-details summary{font-size:13px;line-height:1.7}
 .hierarchy>div{border-color:#6699b2}
 .footer-top>span,.footer-bottom{font-size:9px}
 .detail-art{height:270px;min-height:0;border-right:0;border-bottom:4px solid var(--cream)}
 .detail-intro{padding:24px}
 .detail-intro h2{font-size:32px}
 .detail-breadcrumb{font-size:11px}
 .detail-intro>p:not(.detail-breadcrumb){font-size:13px}
 .detail-bottom{padding:24px 20px}
 dialog{border-width:3px;width:calc(100% - 22px)}
 .dialog-close{top:10px;margin-top:10px;margin-right:10px}
}
@media(max-width:360px){.filter{font-size:13px;padding:9px 8px}.card-body{padding-inline:16px}.event-card h3{font-size:25px}.hero h1{font-size:40px}.wordmark{font-size:24px}.site-header nav{font-size:10px}}
