/* Text widths (Natasha's typography rule, Nov 1, 2026). Text wraps naturally across the space it has.
   --lede: hero descriptions, page and section intros, subtitles and CTA lines (short text, room to breathe).
   --copy: long reading text in a single wide column (comfortable line length).
   Paragraphs inside cards and two-column layouts have no cap of their own: the column is the limit.
   Paragraphs wrap with text-wrap:pretty (never "balance"); headings use balance. */
:root{--lede:1200px;--copy:72ch}
/* SMASH Performing Arts: shared styles for the static build */
/* Fonts, served from this site (no Google request) */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-600-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/jost-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jost-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jost-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
html{scroll-behavior:smooth}
img{max-width:100%}
[hidden]{display:none !important}
.dd{position:relative}
.dd-btn{all:unset;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;padding:0}
.dd-menu{display:none}
.dd:hover>.dd-menu,.dd.open>.dd-menu{display:block}
/* Programs photo menu (desktop). Photos load the first time the menu opens (loading=lazy inside a hidden panel) */
/* Home hero: on wide screens the buttons sit bottom right, so lift them clear of the Ask SMASH button */
@media (min-width:1100px){.home-hero-content{padding-bottom:108px !important}}
.mega-find[hidden]{display:none !important}
.mega-card img{transition:transform .6s ease}
.mega-card:hover img,.mega-card:focus-visible img{transform:scale(1.05)}
.mega-card:focus-visible{outline-offset:4px}
@media (prefers-reduced-motion:reduce){.mega-card img{transition:none}.mega-card:hover img,.mega-card:focus-visible img{transform:none}}
.dd-btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #CFAE6B;outline-offset:3px}
[tabindex="-1"]:focus{outline:none}
[data-slide]{transition:opacity .9s ease}
[data-filter]{transition:background .2s,color .2s}
.skip-link{position:absolute;left:-9999px;top:0;background:#CFAE6B;color:#22306B;padding:12px 18px;z-index:1000}
.skip-link:focus{left:12px;top:12px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-slide]{transition:none}}

/* Mobile menu (the design's nav wraps badly on phones) */
@media (max-width: 960px){
  .menu-btn{display:inline-flex !important}
  .site-nav{display:none !important}
  .site-nav.open{display:flex !important;position:fixed;inset:0;z-index:400;background:#22306B;flex-direction:column;align-items:flex-start !important;justify-content:flex-start;gap:0 !important;padding:96px 24px 40px;overflow-y:auto;font-size:15px !important}
  .site-nav.open>a,.site-nav.open>.dd{width:100%;padding:16px 0 !important;border-bottom:1px solid rgba(207,174,107,.35)}
  .site-nav.open .dd-btn{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:24px;cursor:pointer}
  .site-nav.open .dd-btn>span{display:inline-block;transition:transform .2s}
  .site-nav.open .dd.open .dd-btn>span{transform:rotate(180deg)}
  .site-nav.open .dd>.dd-menu{display:none !important}
  .site-nav.open .dd.open>.dd-menu{display:block !important}
  .site-nav.open .dd-menu>div{position:static !important;min-width:0 !important;width:auto !important;white-space:normal !important;border:0 !important;box-shadow:none !important;background:transparent !important;padding:8px 0 0 !important}
  .site-nav.open .dd-menu a{padding:10px 0 10px 16px !important;font-size:13px}
  .site-nav.open .mega-in{display:flex !important;flex-direction:column;background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 !important;gap:0 !important}
  .site-nav.open .mega-ph,.site-nav.open .mega-find{display:none !important}
  .site-nav.open .mega-card{flex-direction:row !important;justify-content:space-between;align-items:baseline;gap:18px !important}
  .site-nav.open .mega-name{font-family:inherit !important;font-size:13px !important;letter-spacing:.22em;text-transform:uppercase;line-height:1.5 !important}
  .site-nav.open .mega-meta{flex:none;font-size:10px !important;flex-direction:row !important}
  .site-nav.open .mega-meta>span+span{display:none}
  .site-nav.open>a:last-child{margin-top:24px;border:1px solid #CFAE6B !important;padding:16px 22px !important;width:auto;text-align:center}
  .menu-close{position:fixed !important;top:22px !important;right:20px !important;z-index:401 !important;background:#22306B !important}
  body.menu-open{overflow:hidden}
}

/* Blog posts (no artboard in the design; styled to match it) */
.post-page{font-family:'Jost',system-ui,sans-serif;font-weight:300;color:#fff;background:#22306B;overflow-x:hidden}
.post{background:#fff;color:#22306B;padding-bottom:clamp(50px,6vw,90px)}
.post-wrap{max-width:1200px;margin:0 auto;padding-left:clamp(20px,4vw,40px);padding-right:clamp(20px,4vw,40px)}
.post-wrap-wide{max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.post-head{padding-top:clamp(50px,6vw,90px);padding-bottom:clamp(28px,3vw,40px)}
.post-crumbs{font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:500;color:#1F78A8}
.post-crumbs a{color:#1F78A8;border-bottom:1px solid #CFAE6B}
.post-head h1{margin:22px 0 0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(40px,5.6vw,72px);line-height:1.02;letter-spacing:-.02em;text-wrap:balance}
.post-head h1.h1-mid{font-size:clamp(36px,4.9vw,64px)}
.post-head h1.h1-long{font-size:clamp(32px,4.2vw,56px)}
.post-meta{margin:22px 0 0;font-size:14px;letter-spacing:.06em;color:rgba(34,48,107,.75)}
.post-cover{max-width:1200px;margin:0 auto clamp(30px,4vw,50px);padding:0 clamp(20px,4vw,40px)}
.post-cover img{display:block;width:100%;height:auto}
.post-body{font-size:clamp(17px,1.3vw,19px);line-height:1.75}
.post-body p{margin:0 0 1.2em}
.post-body h2,.post-body h3,.post-body h4{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.15;margin:1.6em 0 .5em;color:#22306B}
.post-body h2{font-size:clamp(30px,3vw,40px)} .post-body h3{font-size:clamp(26px,2.4vw,32px)} .post-body h4{font-size:clamp(22px,2vw,26px)}
.post-body a{color:#1F78A8;text-decoration:underline;text-underline-offset:3px}
.post-body strong,.post-body b{font-weight:500}
.post-body ul,.post-body ol{margin:0 0 1.2em;padding-left:1.3em}
.post-body li{margin:.3em 0}
.post-body figure{margin:1.8em 0}
.post-body figure img{display:block;width:100%;height:auto}
.post-body figcaption{font-size:14px;margin-top:8px;color:rgba(34,48,107,.75)}
.post-body hr{border:0;height:1px;background:#CFAE6B;margin:2.2em 0}
.post-body blockquote{margin:1.5em 0;padding-left:20px;border-left:2px solid #CFAE6B;font-family:'Cormorant Garamond',serif;font-size:1.3em}
.post-btn a{display:inline-block;background:#22306B;color:#fff !important;text-decoration:none !important;padding:17px 30px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.post-btn a:hover{background:#1F78A8}
.post-faq details{border-top:1px solid rgba(34,48,107,.2);padding:14px 0}
.post-faq summary{cursor:pointer;font-family:'Cormorant Garamond',serif;font-size:22px}
.post-back{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(30px,4vw,50px);padding-top:26px;border-top:1px solid #CFAE6B;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.post-back a{color:#22306B} .post-back a:hover{color:#1F78A8}
.post-reg{border:1px solid #22306B;padding:14px 22px}
.post-related{background:#F4F6FB;color:#22306B;padding:clamp(60px,7vw,100px) 0}
.post-related h2{margin:0 0 clamp(26px,3vw,40px);font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(34px,3.6vw,52px)}
.post-related h2 em{color:#1F78A8}
.post-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:clamp(16px,1.8vw,26px)}
.post-related-grid a{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(34,48,107,.14);padding:12px;color:#22306B}
.post-related-grid a:hover{border-color:#CFAE6B}
.pr-img{display:block;aspect-ratio:3/2;background-size:cover;background-position:center;background-color:#22306B}
.pr-cat{display:block;margin:18px 6px 0;font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:#1F78A8}
.pr-title{display:block;margin:10px 6px 10px;font-family:'Cormorant Garamond',serif;font-size:24px;line-height:1.2;text-wrap:balance}
[data-more]:not(.show){display:none !important}

/* Programme layout (Nov 10): a post told in steps reads like a theatre programme. Used by posts with layout:'programme'. */
.prog{--ink:#22306B;--stage:#141C45;--gold:#CFAE6B;--gold-deep:#A98741;--gold-text:#8A6A2B;--sky:#97D9F8;--link:#1F78A8;--mist:#F4F6FB;--aside:250px;--gut:clamp(48px,6vw,88px);--numw:clamp(64px,7vw,108px);--num:clamp(68px,7.6vw,116px);--pad:clamp(20px,4vw,40px)}
/* clip (not hidden) keeps the page from becoming its own scroll box, so the running order can stay on screen */
.prog-page{overflow-x:clip}
.prog a:focus-visible{outline-color:var(--link)}
.prog-band a:focus-visible,.prog-finale a:focus-visible,.prog-ticket a:focus-visible{outline-color:var(--gold)}
.prog-text{font-size:clamp(17px,1.3vw,19px);line-height:1.75}
.prog-text p{margin:0 0 1.1em}
.prog-text p:last-child{margin-bottom:0}
.prog-text a{color:var(--link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prog-text strong{font-weight:500}
/* Cover: the title on a navy band, the stage photo set into it inside a fine gold frame */
.prog-head{--ov:clamp(70px,13vw,200px)}
.prog-band{background:var(--ink);color:#fff;padding:clamp(40px,5vw,72px) 0 calc(var(--ov) + clamp(48px,5vw,76px))}
.prog-band .post-crumbs,.prog-band .post-crumbs a{color:var(--sky)}
.prog-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,5vw,80px);align-items:end;margin-top:clamp(26px,3.4vw,48px)}
.prog-title h1{margin:0;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(44px,6.4vw,94px);line-height:.98;letter-spacing:-.022em;color:#fff;text-wrap:balance}
.prog-title h1 .t1,.prog-title h1 .t2{display:block}
.prog-title h1 .t2{margin-top:.3em;font-style:italic;font-size:.48em;line-height:1.1;letter-spacing:-.005em;color:rgba(255,255,255,.8)}
.prog-meta{margin:0 0 .4em;display:grid;gap:18px;min-width:200px;padding-left:24px;border-left:1px solid rgba(207,174,107,.55)}
.prog-meta dt{font-size:13px;letter-spacing:.05em;font-weight:400;color:var(--gold)}
.prog-meta dd{margin:5px 0 0;font-size:16px;line-height:1.4;color:#fff}
.prog-cover{max-width:1200px;margin:calc(-1 * var(--ov)) auto 0;padding:0 var(--pad);position:relative}
.prog-cover img{display:block;width:100%;height:auto;outline:1px solid rgba(207,174,107,.8);outline-offset:clamp(7px,1vw,14px)}
/* Overture */
.prog-lede{padding-top:clamp(60px,7.4vw,112px)}
.prog-lede p{max-width:1000px}
.prog-lede .prog-stand{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(23px,2.6vw,37px);line-height:1.32;letter-spacing:-.005em;color:var(--ink);margin-bottom:.9em;text-wrap:wrap}
/* Running order: the index on the left lights each cue as you reach it */
.prog-run{display:grid;grid-template-columns:var(--aside) minmax(0,1fr);gap:var(--gut);align-items:start;padding-top:clamp(56px,7vw,104px)}
.prog-index{position:sticky;top:28px}
.prog-index-h{margin:0 0 14px;font-size:13px;letter-spacing:.05em;font-weight:500;color:var(--gold-text)}
.prog-index ol{list-style:none;margin:0;padding:0;position:relative;--prog:0}
.prog-index ol::before,.prog-index ol::after{content:'';position:absolute;left:5px;top:21px;width:1px;background:rgba(169,135,65,.35)}
.prog-index ol::before{bottom:21px}
.prog-index ol::after{background:var(--gold);height:calc((100% - 42px) * var(--prog));transition:height .35s ease}
.prog-index li{margin:0}
.prog-index a{display:grid;grid-template-columns:11px 20px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;font-size:15px;line-height:1.3;color:rgba(34,48,107,.72)}
.prog-index a:hover{color:var(--ink)}
.ci-light{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;background:#fff;border:1px solid var(--gold-deep);transition:background-color .3s,border-color .3s,box-shadow .3s}
.ci-n{font-family:'Cormorant Garamond',serif;font-size:21px;line-height:1;text-align:right;color:var(--gold-deep);font-variant-numeric:lining-nums}
.prog-index a.past .ci-light{background:var(--gold);border-color:var(--gold)}
.prog-index a[aria-current]{color:var(--ink);font-weight:500}
.prog-index a[aria-current] .ci-light{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 4px rgba(207,174,107,.2),0 0 16px 3px rgba(207,174,107,.7)}
.prog-cue{display:grid;grid-template-columns:var(--numw) minmax(0,1fr);column-gap:clamp(18px,2.2vw,32px);padding:clamp(30px,3.6vw,52px) 0;scroll-margin-top:20px}
.prog-cue:first-child{padding-top:0}
.cue-n{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:var(--num);line-height:.74;letter-spacing:-.04em;text-align:right;color:var(--gold-deep);font-variant-numeric:lining-nums}
.cue-body h2{margin:.06em 0 .42em;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(32px,3.2vw,46px);line-height:1.06;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
/* Scene change: the photo between cues runs off the right edge of the page */
.prog-scene{margin:clamp(24px,3vw,44px) calc(-1 * (max(0px, (100vw - 1200px) / 2) + var(--pad))) clamp(24px,3vw,44px) 0}
.prog-scene img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 30%}
/* The stage moment: house lights go down and one pool of light comes up (once; still for reduced motion) */
.prog-finale{position:relative;isolation:isolate;overflow:hidden;margin-top:clamp(56px,7vw,104px);padding:clamp(100px,12vw,176px) 0 clamp(92px,11vw,156px);background:var(--stage);color:#fff;text-align:center;scroll-margin-top:0}
.prog-finale::before{content:'';position:absolute;z-index:-1;left:50%;top:52%;width:min(1180px,140%);height:96%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(255,228,178,.28),rgba(244,210,150,.22) 18%,rgba(207,174,107,.15) 38%,rgba(207,174,107,.09) 56%,rgba(207,174,107,.04) 74%,rgba(207,174,107,.012) 88%,rgba(207,174,107,0))}
.prog-finale .cue-n{display:block;text-align:center;color:var(--gold);font-size:clamp(100px,11.5vw,176px);letter-spacing:-.02em}
.prog-finale h2{margin:.22em 0 .55em;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(46px,5.8vw,86px);line-height:1;letter-spacing:-.02em;color:#fff}
.prog-finale p{max-width:880px;margin:0 auto;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(22px,2.3vw,32px);line-height:1.45;color:rgba(255,255,255,.9);text-wrap:pretty}
.prog-finale p+p{margin-top:.8em}
.prog-finale a{color:var(--sky)}
.prog-finale{transition:background-color 1.3s ease}
.prog-finale::before{transition:opacity 1.9s ease .45s}
.prog-finale-in{transition:opacity 1.2s ease .7s}
.prog-finale.dim{background-color:var(--ink)}
.prog-finale.dim::before{opacity:0}
.prog-finale.dim .prog-finale-in{opacity:.18}
/* Programme notes and the ticket */
.prog-after{padding-top:clamp(64px,8vw,120px)}
.prog-note{display:grid;grid-template-columns:var(--aside) minmax(0,1fr);gap:var(--gut);padding-bottom:clamp(52px,6.4vw,96px)}
.prog-note h2{margin:0;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(32px,3vw,42px);line-height:1.08;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.prog-note .pn-body{padding-left:calc(var(--numw) + clamp(18px,2.2vw,32px))}
.prog-ticket{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;margin:0 0 clamp(52px,6.4vw,96px);background:var(--tk,var(--ink));color:#fff}
.prog-ticket::before{content:'';position:absolute;inset:11px;border:1px solid rgba(207,174,107,.5);pointer-events:none}
.tk-main{padding:clamp(40px,4.6vw,68px) clamp(30px,4.4vw,72px)}
.tk-main h2{margin:0 0 .4em;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(36px,3.9vw,56px);line-height:1.04;letter-spacing:-.015em;color:#fff}
.tk-main p{color:rgba(255,255,255,.88)}
.prog-ticket .tk-main a{color:var(--sky)}
.tk-stub{position:relative;display:flex;align-items:center;justify-content:center;padding:40px clamp(32px,4.6vw,72px);border-left:1px dashed rgba(207,174,107,.75)}
.tk-stub::before,.tk-stub::after{content:'';position:absolute;left:-16px;width:31px;height:31px;border-radius:50%;background:#fff}
.tk-stub::before{top:-16px} .tk-stub::after{bottom:-16px}
.tk-stub .post-btn{margin:0;text-align:center}
.tk-stub .post-btn a{background:var(--gold);color:var(--ink) !important;padding:18px 28px;white-space:nowrap}
.tk-stub .post-btn a:hover{background:#fff}
.prog .post-faq details{border-top:1px solid rgba(34,48,107,.16);padding:0}
.prog .post-faq details:last-child{border-bottom:1px solid rgba(34,48,107,.16)}
.prog .post-faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:20px 0;list-style:none;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(22px,2vw,27px);line-height:1.25;color:var(--ink)}
.prog .post-faq summary::-webkit-details-marker{display:none}
.prog .post-faq summary::after{content:'+';flex:none;font-family:'Jost',system-ui,sans-serif;font-weight:300;font-size:28px;line-height:1;color:var(--gold-deep);transition:transform .25s ease}
.prog .post-faq details[open] summary::after{transform:rotate(45deg)}
.prog .post-faq details>:not(summary){margin:0 0 22px;max-width:none}
.prog .post-faq summary:focus-visible{outline:2px solid var(--link);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.prog-index ol::after,.ci-light,.prog-finale,.prog-finale::before,.prog-finale-in,.prog .post-faq summary::after{transition:none}}
@media (max-width:1180px){.prog{--aside:216px;--gut:44px}.prog-index a{grid-template-columns:11px 18px minmax(0,1fr);gap:10px;font-size:14px}.ci-t{text-wrap:balance}}
@media (max-width:960px){
  .prog-title{grid-template-columns:1fr;gap:26px}
  .prog-meta{display:flex;flex-wrap:wrap;gap:14px 40px;margin:0;padding:18px 0 0;border-left:0;border-top:1px solid rgba(207,174,107,.55)}
  .prog-run{grid-template-columns:minmax(0,1fr);gap:0}
  .prog-index{position:static;margin:0 0 clamp(36px,6vw,56px);padding:22px 24px 14px;background:var(--mist)}
  .prog-note{grid-template-columns:minmax(0,1fr);gap:18px}
  .prog-note .pn-body{padding-left:0}
  .prog-scene{margin-right:calc(-1 * var(--pad))}
}
@media (max-width:640px){
  .prog{--numw:46px;--num:62px}
  .prog-head{--ov:56px}
  .prog-band{padding-top:34px}
  .prog-title h1 .t2{font-size:.56em}
  .prog-cover img{outline-offset:6px}
  .prog-cue{column-gap:14px;align-items:center}
  .cue-body{display:contents}
  .cue-body h2{grid-column:2;margin:0}
  .cue-body>:not(h2){grid-column:1/-1;margin-top:14px}
  .cue-body>:not(h2)~:not(h2){margin-top:0}
  .prog-scene{margin-left:calc(-1 * var(--pad))}
  .prog-scene img{aspect-ratio:4/3}
  .prog-ticket{grid-template-columns:minmax(0,1fr)}
  .tk-stub{border-left:0;border-top:1px dashed rgba(207,174,107,.75);padding:34px 24px 40px}
  .tk-stub .post-btn a{white-space:normal}
  .tk-stub::before,.tk-stub::after{top:-16px;bottom:auto}
  .tk-stub::before{left:-16px} .tk-stub::after{left:auto;right:-16px}
}
@media print{.prog-index{position:static}.prog-finale.dim{background-color:var(--stage)}.prog-finale.dim .prog-finale-in,.prog-finale.dim::before{opacity:1}}

/* Show Poster template (Nov 10): show announcements. The show artwork hangs in a framed card beside the story
   (on screen while you read on a computer); --wall and --deep come from each show's artwork (theme in the post data). */
.pst{--wall:#EEF1F8;--deep:#22306B;--card:clamp(300px,29vw,390px)}
.pst-grid{display:grid;grid-template-columns:minmax(0,1fr) var(--card);grid-template-areas:"title card" "body card";column-gap:clamp(40px,4.4vw,88px);align-items:start}
.pst-title{grid-area:title;position:relative;isolation:isolate;padding:clamp(44px,5.4vw,80px) 0 clamp(52px,6vw,92px)}
.pst-title::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:-100vw;right:-100vw;background:var(--wall)}
.pst-title h1{margin:clamp(24px,3vw,40px) 0 0;font-family:'Cormorant Garamond',serif;font-weight:500;color:var(--ink);letter-spacing:-.02em;text-wrap:balance}
.pst-title h1 .t1{display:block;margin-bottom:.55em;font-family:'Jost',system-ui,sans-serif;font-weight:400;font-size:clamp(17px,1.5vw,21px);line-height:1.35;letter-spacing:.01em;color:var(--deep)}
.pst-title h1 .t2{display:block;font-size:clamp(46px,6vw,90px);line-height:.98}
.pst-card{grid-area:card;position:sticky;top:24px;margin-top:clamp(44px,5.4vw,80px)}
.pst-poster{margin:0;padding:clamp(10px,1vw,14px);background:#fff;outline:1px solid rgba(207,174,107,.85);outline-offset:clamp(6px,.8vw,10px);box-shadow:0 34px 60px -34px rgba(20,28,69,.55)}
.pst-poster img{display:block;width:100%;height:auto}
.pst-facts{margin:clamp(30px,3vw,40px) 0 0}
.pst-facts>div{padding:13px 0;border-top:1px solid rgba(34,48,107,.14)}
.pst-facts>div:last-child{border-bottom:1px solid rgba(34,48,107,.14)}
.pst-facts dt{font-size:13px;letter-spacing:.04em;font-weight:500;color:var(--deep)}
.pst-facts dd{margin:3px 0 0;font-size:16px;line-height:1.45;font-weight:400;color:var(--ink)}
.pst .post-btn a{background:var(--deep)}
.pst .post-btn a:hover{background:var(--ink)}
.pst-cta{margin:22px 0 0}
.pst-cta a{display:block;text-align:center}
.pst-body{grid-area:body;padding:clamp(44px,5.4vw,80px) 0 clamp(20px,3vw,40px)}
.pst-lede p:first-child{font-size:clamp(18px,1.45vw,21px);line-height:1.7}
.pst-first::first-letter{float:left;margin:.07em .09em 0 -.03em;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:4.9em;line-height:.78;color:var(--deep)}
.pst-sec{padding-top:clamp(46px,5.2vw,76px)}
.pst-sec h2{position:relative;margin:0 0 .5em;padding-top:30px;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(32px,3.2vw,46px);line-height:1.06;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.pst-sec h2::before{content:'';position:absolute;left:0;top:4px;width:46px;height:1px;background:var(--deep)}
.pst-sec h2::after{content:'';position:absolute;left:52px;top:1px;width:7px;height:7px;background:var(--deep);transform:rotate(45deg)}
.pst-sec ul{margin:0 0 1.1em;padding-left:1.2em}
.pst-sec li{margin:.35em 0}
.pst-sec li::marker{color:var(--deep)}
.pst-ticket{--tk:var(--deep);grid-template-columns:minmax(0,1fr);margin:clamp(46px,5.2vw,76px) 0 0}
.pst-ticket .tk-stub{justify-content:flex-start;border-left:0;border-top:1px dashed rgba(207,174,107,.75);padding:30px clamp(30px,4.4vw,72px) 38px}
.pst-ticket .tk-stub::before,.pst-ticket .tk-stub::after{top:-16px;bottom:auto}
.pst-ticket .tk-stub::before{left:-16px} .pst-ticket .tk-stub::after{left:auto;right:-16px}
.pst-ticket .tk-stub .post-btn a{background:var(--gold);color:var(--ink) !important}
.pst-ticket .tk-stub .post-btn a:hover{background:#fff}
.pst-show{margin:0 0 .2em !important;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(22px,2vw,28px);color:#fff !important}
.pst-bill{margin:18px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 32px}
.pst-bill dt{font-size:13px;letter-spacing:.04em;font-weight:500;color:#EFDDB4}
.pst-bill dd{margin:3px 0 0;font-size:16px;line-height:1.45;color:#fff}
.pst-bill a{color:var(--sky) !important}
.pst-ticket .tk-main p:not(.pst-show){margin-top:1.2em;font-size:15px;color:rgba(255,255,255,.8)}
.pst-faqs{margin-top:clamp(26px,3vw,40px)}
.pst-faqs+.post-btn,.pst-sec .post-btn{margin-top:28px}
@media (max-width:960px){
  .pst-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "card" "body"}
  .pst-title{padding-bottom:calc(clamp(110px,24vw,190px) + 36px)}
  .pst-card{position:relative;top:auto;margin-top:calc(-1 * clamp(110px,24vw,190px));max-width:640px}
  .pst-body{padding-top:clamp(40px,7vw,60px)}
}
@media (max-width:640px){
  .pst-bill{grid-template-columns:minmax(0,1fr)}
  .pst-ticket .tk-stub .post-btn a{white-space:normal}
}

/* Class Guide template (Nov 10): program and class posts. A split cover (photo bleeds to the left edge), the
   classes listed like a programme's cast list (name, dotted line, ages), then each class as a row. */
.gd{--focus:50% 40%}
.gd-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:clamp(520px,44vw,680px)}
.gd-photo{position:relative;margin:0;background:var(--ink)}
.gd-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus)}
.gd-head-in{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,5.4vw,84px) max(var(--pad),calc((100vw - 1200px) / 2 + 40px)) clamp(48px,5.4vw,84px) clamp(36px,5vw,80px)}
.gd-head-in h1{margin:clamp(20px,2.4vw,32px) 0 0;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(40px,4.4vw,66px);line-height:1.02;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.gd-cast{margin-top:clamp(30px,3.4vw,48px)}
.gd-cast-h{margin:0 0 6px;font-size:13px;letter-spacing:.05em;font-weight:500;color:var(--gold-text)}
.gd-cast ol{list-style:none;margin:0;padding:0}
.gd-cast a{display:flex;align-items:baseline;gap:14px;padding:9px 0;color:var(--ink)}
.gc-name{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(22px,1.9vw,27px);line-height:1.2}
.gc-dots{flex:1 1 24px;min-width:24px;border-bottom:2px dotted rgba(169,135,65,.75);transform:translateY(-6px)}
.gc-age{flex:none;font-size:15px;color:var(--gold-text);font-weight:400}
.gd-cast a:hover .gc-name{color:var(--link)}
.gd-body{padding-top:clamp(56px,6.6vw,100px)}
.gd-lede p{max-width:900px}
.gd-lede p:first-child{font-size:clamp(19px,1.55vw,22px);line-height:1.65}
.gd-sec{margin-top:clamp(60px,7vw,104px);padding-top:clamp(40px,4.4vw,60px);border-top:1px solid rgba(34,48,107,.14)}
.gd-sec>h2{margin:0 0 .55em;max-width:900px;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(34px,3.6vw,52px);line-height:1.05;letter-spacing:-.015em;color:var(--ink);text-wrap:balance;scroll-margin-top:24px}
.gd-sec>p,.gd-intro p{max-width:900px}
.gd-body ul{list-style:none;margin:1.3em 0 1.4em;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 44px;max-width:1000px}
.gd-body li{position:relative;margin:0;padding-top:20px}
.gd-body li::before{content:'';position:absolute;left:0;top:0;width:36px;height:2px;background:var(--gold)}
.gd-body li strong{color:var(--ink)}
.gd-classes{margin-top:clamp(18px,2vw,28px)}
.gd-sec.gd-classes{border-top:0;padding-top:0}
.gd-sec.gd-classes+.gd-sec.gd-classes{margin-top:0}
.gd-sec.gd-classes+.gd-sec.gd-classes>.gd-class{border-top:0}
.gd-class{display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding:clamp(28px,3vw,40px) 0;border-top:1px solid rgba(169,135,65,.5);scroll-margin-top:20px}
.gd-classes>.gd-class:last-child{border-bottom:1px solid rgba(169,135,65,.5)}
.gd-class>h2,.gd-class>h3{margin:0;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(30px,2.8vw,40px);line-height:1.08;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.gd-cn{display:block}
.gd-age{display:block;margin-top:12px;font-family:'Jost',system-ui,sans-serif;font-size:15px;font-weight:400;letter-spacing:.02em;color:var(--gold-text)}
.gd-cbody figure{margin:1.4em 0 0}
.gd-cbody figure img{display:block;width:auto;max-width:100%;height:auto;max-height:560px}
.gd-ticket{margin:clamp(60px,7vw,104px) 0 0}
.gd-faqs{margin-top:clamp(60px,7vw,104px);padding-bottom:0}
@media (max-width:960px){
  .gd-head{grid-template-columns:minmax(0,1fr);min-height:0}
  .gd-photo{aspect-ratio:4/3}
  .gd-head-in{padding:clamp(36px,6vw,56px) var(--pad) clamp(8px,2vw,16px)}
  .gd-class{grid-template-columns:minmax(0,1fr);gap:14px}
  .gd-body ul{grid-template-columns:minmax(0,1fr);gap:20px}
}

/* Callboard template (Nov 10): studio news. The title is a notice pinned over the cover photo; date lists read
   like a posted schedule; other lists and short sub-sections are notes pinned to a pale sky board. */
.cb{--focus:50% 35%;--board:#EAF5FC}
.cb-head{background:var(--board);padding:clamp(48px,6vw,96px) 0 clamp(52px,6.4vw,104px)}
.cb-head-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.cb-sheet{position:relative;padding:clamp(44px,5vw,72px) clamp(28px,4.4vw,64px) clamp(38px,4.4vw,60px);background:#fff;box-shadow:0 1px 0 rgba(34,48,107,.06),0 30px 60px -42px rgba(20,28,69,.45)}
.cb-photo{position:relative;margin:0;padding:clamp(8px,.9vw,12px);background:#fff;box-shadow:0 1px 0 rgba(34,48,107,.06),0 30px 60px -42px rgba(20,28,69,.45)}
.cb-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;object-position:var(--focus)}
.cb-pin{position:absolute;left:50%;top:-7px;z-index:1;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#F3E2B8,#CFAE6B 55%,#A98741);box-shadow:0 3px 5px rgba(20,28,69,.28)}
.cb-sheet h1{margin:clamp(20px,2.4vw,30px) 0 0;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(40px,4.8vw,72px);line-height:1.02;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.cb-stand{margin:clamp(18px,2vw,26px) 0 0;font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink)}
.cb-body{padding-top:clamp(52px,6vw,88px)}
.cb-lede,.cb-sec{max-width:880px;margin-left:auto;margin-right:auto}
.cb-sec{padding-top:clamp(52px,6vw,88px)}
.cb-sec>h2{margin:0 0 .55em;text-align:center;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(34px,3.6vw,50px);line-height:1.06;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.cb-sec figure,.cb-lede figure{margin:1.6em 0}
.cb-sec figure img,.cb-lede figure img{display:block;width:auto;max-width:100%;height:auto;max-height:640px;margin:0 auto}
.cb-sec .post-btn{margin-top:30px;text-align:center}
/* posted schedule */
.cb-dates{list-style:none;margin:1.4em 0 1.6em;padding:0;border-top:2px dotted rgba(169,135,65,.7)}
.cb-dates li{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:24px;align-items:baseline;padding:15px 0;border-bottom:2px dotted rgba(169,135,65,.7)}
.cb-when{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(21px,1.8vw,25px);line-height:1.2;color:var(--ink)}
.cb-what{font-size:clamp(16px,1.2vw,18px);line-height:1.55}
/* pinned notes: the board runs wider than the text */
.cb-board{margin:1.6em calc(-1 * min(120px, max(0px, (100vw - 880px) / 2 - var(--pad)))) 1.8em;padding:clamp(34px,3.6vw,52px) clamp(20px,3vw,44px) clamp(24px,3vw,40px);background:var(--board)}
.cb-notes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:clamp(22px,2.4vw,34px) clamp(16px,2vw,28px)}
.cb-notes>li,.cb-slip{position:relative;margin:0;padding:30px 24px 24px;background:#fff;font-size:16px;line-height:1.6;box-shadow:0 1px 0 rgba(34,48,107,.08),0 12px 24px -20px rgba(20,28,69,.35)}
.cb-slip h3{margin:0 0 .5em;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(22px,1.9vw,26px);line-height:1.18;color:var(--ink);text-wrap:balance}
@media (min-width:900px){.cb-notes[data-n="5"],.cb-notes[data-n="6"],.cb-notes[data-n="9"]{grid-template-columns:repeat(3,minmax(0,1fr))}.cb-notes[data-n="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cb-slip p{margin:0 0 .8em}
.cb-slip p:last-child{margin-bottom:0}
.cb-ticket{max-width:1000px;margin:clamp(60px,7vw,100px) auto 0}
@media (max-width:860px){.cb-head-in{grid-template-columns:minmax(0,1fr);gap:40px}.cb-photo{max-width:560px}}
@media (max-width:640px){
  .cb-sheet{padding-left:22px;padding-right:22px}
  .cb-dates li{grid-template-columns:minmax(0,1fr);gap:4px}
  .cb-board{margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad))}
}

/* Blog archive */
.arc{background:#fff;color:#22306B;padding-bottom:clamp(60px,7vw,100px)}
.arc-head{padding-top:clamp(50px,6vw,90px);padding-bottom:clamp(20px,3vw,30px)}
.arc-head h1{margin:22px 0 0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(46px,6vw,88px);line-height:1;letter-spacing:-.02em}
.arc-head h1 em{color:#1F78A8}
.arc-head>p{margin:22px 0 0;max-width:var(--lede);font-size:18px;line-height:1.7}
.arc-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.arc-jump a{border:1px solid #22306B;padding:11px 16px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:#22306B}
.arc-jump a:hover{background:#22306B;color:#fff}
.arc-jump span{color:#1F78A8;margin-left:4px}
.arc-jump a:hover span{color:#97D9F8}
.arc-group{padding-top:clamp(40px,5vw,60px);scroll-margin-top:20px}
.arc-group h2{margin:0;padding-bottom:14px;border-bottom:1px solid #CFAE6B;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(34px,3.6vw,52px)}
.arc-intro{margin:14px 0 0;color:rgba(34,48,107,.75)}
.arc-list{list-style:none;margin:18px 0 0;padding:0;columns:2 340px;column-gap:48px}
.arc-list li{break-inside:avoid;padding:11px 0;border-bottom:1px solid rgba(34,48,107,.12)}
.arc-list a{color:#22306B;font-size:17px;line-height:1.45}
.arc-list a:hover{color:#1F78A8}
.post-archive-note{margin:0 0 2em;padding:16px 20px;background:#F4F6FB;border-left:2px solid #CFAE6B;font-size:15px;line-height:1.65;color:rgba(34,48,107,.9)}

/* Class schedule */
@media (max-width: 640px){
  .sched-row{grid-template-columns:1fr !important;gap:4px !important}
  .sched-tag{white-space:normal !important}
}
@media print{
  .no-print,.menu-btn,.site-nav{display:none !important}
  body,body > div,.sched-hero,.sched-title,.sched{background:#fff !important;color:#000 !important}
  .sched-title{padding:0 0 12px !important}
  .sched-title h1{font-size:40px !important;color:#000 !important}
  .sched-title h1 em{color:#000 !important}
  .sched-title p{color:#000 !important;font-size:12px !important}
  .sched{padding:0 !important}
  .sched-day{padding-top:14px !important;break-inside:avoid}
  .sched-day h2{font-size:24px !important}
  .sched-row{padding:6px 0 !important;grid-template-columns:150px 1fr auto !important}
  .sched-row a{color:#000 !important;font-size:16px !important}
  .sched-tag{color:#000 !important}
  [data-fam]{display:grid !important}
  [data-sched-day]{display:block !important}
  /* Calendar view prints as one landscape page (site.js sets the page size); every class shows, whatever the filter */
  html.cal-on [data-sched-list]{display:none !important}
  html:not(.cal-on) [data-sched-cal]{display:none !important}
  .ask-root,.back-top,.ask-launch{display:none !important}
  .cal{padding-top:2px !important}
  html.cal-on .sched-title p{display:none !important}
  .sched > div > div:last-child{break-inside:avoid}
  html.cal-on .sched-title{padding-bottom:6px !important}
  html.cal-on .sched-title h1{font-size:30px !important}
  .cal-tabs,.cal-tip,.cal-none{display:none !important}
  .cal-grid{display:grid !important;grid-template-columns:repeat(6,minmax(0,1fr)) !important;max-width:none !important;gap:4px !important}
  .cal-head{display:block !important;padding:6px 8px !important;font-size:14px !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cal-head[data-today]::after{display:none !important}
  .cal-head small{font-size:8px !important;margin-top:2px !important}
  .cal-band{display:flex !important;padding:5px 0 1px !important}
  .cal-band span{font-size:9px !important}
  .cal-band small{font-size:9px !important}
  .cal-cell{display:flex !important;padding:3px !important;gap:3px !important;min-height:16px !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  [data-band-empty]{display:flex !important}
  [data-cal-fam]{display:block !important}
  .cal-card{padding:3px 6px 4px !important;break-inside:avoid;box-shadow:none !important;border-color:rgba(34,48,107,.2) !important}
  .cal-time{font-size:8.5px !important}
  .cal-name{font-size:11.5px !important;line-height:1.1 !important;margin-top:0 !important}
  .cal-meta{font-size:8px !important;margin-top:1px !important}
  .cal-note{font-size:7px !important;margin-top:2px !important}
}


/* Back to top (site.js): small square above the Ask SMASH button, only after scrolling down a long page */
.back-top{position:fixed;right:clamp(14px,2vw,28px);bottom:calc(clamp(14px,2vw,28px) + 84px);z-index:150;width:46px;height:46px;display:flex;align-items:center;justify-content:center;padding:0;border:0;background:#CFAE6B;color:#22306B;cursor:pointer;box-shadow:0 0 0 1px rgba(34,48,107,.25),0 10px 26px rgba(8,14,40,.35);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s,background .2s}
.back-top.show{opacity:1;visibility:visible;transform:none}
.back-top:hover{background:#22306B;color:#CFAE6B;box-shadow:0 0 0 1px rgba(207,174,107,.85),0 10px 26px rgba(8,14,40,.35)}
.back-top:focus-visible{outline:2px solid #CFAE6B;outline-offset:3px}
body:has(.ask-panel:not([hidden])) .back-top{opacity:0;visibility:hidden}
@media (max-width:520px){.back-top{right:10px;bottom:80px;width:44px;height:44px}}
/* Portals have no Ask SMASH button, so the arrow sits in the corner */
.back-top.solo{bottom:clamp(14px,2vw,28px)}
@media (max-width:520px){.back-top.solo{bottom:14px}}
@media (prefers-reduced-motion:reduce){.back-top{transition:none}}
@media print{.back-top{display:none}}

/* No lonely last lines (with the build's non-breaking spaces in body text) */
h1,h2,h3,h4{text-wrap:balance}
p,li,blockquote,summary,figcaption,dd{text-wrap:pretty}
.nw{white-space:nowrap}

/* Phones: label/value detail rows stack (label above value) so times, addresses and fees get the full width */
@media (max-width:600px){[style*="minmax(110px,150px) 1fr"]{grid-template-columns:1fr!important;row-gap:4px!important}[style*="minmax(110px,150px) 1fr"]>:first-child{padding-top:0!important}}

/* FAQ sections: heading + questions on the left, photo on the right (site.js matches the photo's height to the questions) */
.faq-wrap{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(40px,6vw,100px);align-items:start}
.faq-wrap.faq-wide{max-width:1500px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)} /* long FAQ lists: wider photo so it isn't a skinny strip */
@media (max-width:900px){.faq-wrap,.faq-wrap.faq-wide{grid-template-columns:1fr}.faq-photo{order:-1}}

/* Text for screen readers only (e.g. "opens in a new tab") */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Home page closing photo: phones crop a tall slice, so keep the boy in frame */
@media (max-width: 760px){
  .home-cta-photo{object-position:11% 40% !important}
}

/* Show galleries: the text side of the hero gets more room than the photo on computers,
   so "Photos from our production of …" sits on one line; each sentence wraps as a unit */
@media (min-width:1000px){.sg-hero{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) !important}}

/* Two-column balance (Natasha, Nov 1): where a short heading + note + button column sits beside a taller
   details list, the short column is centred against the tall one on desktop (with a small optical lift,
   since the eyebrow and heading make the top read heavier). Editorial intros and long text stay top-aligned.
   Use class="details-grid" with align-items:center on new sections of this shape. */
@media (min-width:900px){.details-grid>:first-child{transform:translateY(-14px)}}

/* hover states from the design */
.hv-684bee2:hover{color:#1D35C2 !important}
.hv-217fd96:hover{color:#CFAE6B !important}
.hv-ded9de0:hover{background:#2B3C86 !important}
.hv-3208e9f:hover{background:#CFAE6B !important;color:#22306B !important}
.hv-e84ee06:hover{transform:scale(1.03) !important}
.hv-3c17c2c:hover{background:#fff !important;color:#22306B !important}
.hv-4eb23a8:hover{color:#fff !important}
.hv-c73ce5d:hover{background:#97D9F8 !important;color:#fff !important}
.hv-31b2a41:hover{background:#1F78A8 !important;color:#fff !important}
.hv-276fbb3:hover{border-color:#CFAE6B !important;color:#CFAE6B !important}
.hv-f705233:hover{background:rgba(255,255,255,.12) !important;color:#fff !important}
.hv-5a75a2a:hover{color:#1F78A8 !important;border-color:#1F78A8 !important}
.hv-984d6f6:hover{background:#97D9F8 !important}
.hv-f1cffcd:hover{background:#97D9F8 !important;color:#22306B !important}
.hv-c3d3067:hover{background:#1F78A8 !important}
.hv-5c67670:hover{color:#1F78A8 !important}
.hv-a5b3a55:hover{color:#22306B !important}
.hv-635ba42:hover{color:#fff !important;background:#2A3A80 !important}
.hv-1f8d138:hover{background:rgba(255,255,255,.12) !important}
.hv-b220279:hover{background:#1A6A98 !important;color:#fff !important}
.hv-63946b7:hover{color:#22306B !important;transform:translateY(-4px) !important;border-color:#CFAE6B !important;box-shadow:0 28px 60px -28px rgba(34,48,107,.45) !important}
.hv-a7c51b7:hover{color:#CFAE6B !important;border-color:#CFAE6B !important}
.hv-05a4f54:hover{color:#22306B !important;border-color:#CFAE6B !important}
.hv-fb8e5e6:hover{border-color:#CFAE6B !important}
.hv-0695ff9:hover{background:#fff !important}
