* { box-sizing:border-box; }
body { margin:0; }
a { color:inherit; text-decoration:none; text-underline-offset:4px; }
a:hover { color:var(--accent); }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
img { max-width:100%; height:auto; display:block; }
p { line-height:1.8; margin:0 0 24px; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; line-height:1.2; margin:0; }
h1 { font-size:46px; }
h2 { font-size:36px; }
h3 { font-size:23px; }
h1,h2,h3,p,li,address { overflow-wrap:anywhere; }
em { color:var(--orange); }
figure { margin:0; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--green); outline-offset:5px; }
.container { width:min(1288px,calc(100% - 112px)); margin-inline:auto; }
.icon { width:20px; height:20px; flex-shrink:0; vertical-align:middle; }
.skip-link { position:absolute; left:20px; top:-90px; z-index:20; background:white; padding:16px; }
.skip-link:focus { top:10px; }
.site-header { background:white; border-bottom:3px solid var(--orange); }
.header-inner { min-height:99px; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:30px; align-items:center; }
.header-inner > .theatre-brand { justify-self:start; }
.header-inner > .main-nav { justify-self:center; }
.header-inner > .header-actions { justify-self:end; }
.theatre-brand { display:flex; gap:16px; align-items:center; flex-shrink:0; }
.theatre-brand img { width:64px; height:72px; object-fit:contain; }
.theatre-brand strong { display:block; color:var(--ink); font:700 17px/1.35 Georgia,"Times New Roman",serif; max-width:230px; }
.brand-region { display:block; color:var(--muted); font-size:11px; margin-top:5px; }
.brand-overline { color:var(--accent); letter-spacing:2px; font-size:12px; font-weight:700; display:block; margin-bottom:2px; }
.main-nav { display:flex; align-items:center; gap:34px; }
.main-nav a { text-transform:uppercase; font-size:14px; font-weight:700; padding:12px 0; position:relative; white-space:nowrap; }
.main-nav a[aria-current=page] { color:var(--accent); }
.main-nav a[aria-current=page]::after { content:""; position:absolute; bottom:1px; left:0; width:100%; height:3px; background:var(--orange); }
.header-actions { display:flex; align-items:center; gap:18px; }
.social-button { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:#ffdfa5; font-size:14px; flex-shrink:0; }
.social-button:hover { background:#ffd184; }
.button,.ticket-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:11px; padding:16px 25px; background:var(--accent); color:white; font-size:15px; font-weight:700; min-height:48px; line-height:1.45; cursor:pointer; text-align:center; }
.button:hover,.ticket-button:hover { background:#a93613; color:white; }
.ticket-button { text-transform:uppercase; font-size:13px; white-space:nowrap; }
.ticket-button .icon { color:#ffe194; width:17px; }
.pill { border-radius:40px; padding:20px 36px; }
.menu-toggle { display:none; border:1px solid var(--line); border-radius:10px; padding:10px 14px; background:#fff8ec; color:var(--ink); }
.gradient-banner { background:repeating-linear-gradient(116deg,transparent 0,transparent 56px,#c9b69310 57px,#c9b69310 58px),radial-gradient(ellipse at 0 0,#f9dfaa99,transparent 52%),radial-gradient(ellipse at 100% 100%,#b2dbc9cc,transparent 38%),radial-gradient(ellipse at 100% 0,#f7d4c399,transparent 42%),var(--paper); }
.hero { text-align:center; padding:94px 0 90px; }
.hero-copy { max-width:900px; }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--accent); line-height:1.6; margin:0 0 28px; }
.hero h1 { text-transform:uppercase; font-size:58px; letter-spacing:.3px; max-width:800px; margin-inline:auto; }
.hero .hero-quote { margin-bottom:38px; }
.hero-quote { font-family:Georgia,"Times New Roman",serif; font-size:25px; font-style:italic; color:var(--accent); margin:24px 0 30px; line-height:1.4; }
.photo-hero { position:relative; isolation:isolate; overflow:hidden; min-height:620px; display:grid; place-items:center; background:#35251a; color:white; }
.photo-hero::before { content:""; position:absolute; inset:-5px; z-index:-2; background:url('../images/warm-meetings.png') center / cover no-repeat; filter:blur(2px); }
.photo-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#150e0a80,#150e0a69 50%,#150e0a80); }
.photo-hero .eyebrow { color:#ffd16b; letter-spacing:3px; font-size:clamp(30px,3.8vw,52px); line-height:1.15; margin-bottom:24px; }
.photo-hero h1 { max-width:1000px; font-size:clamp(42px,4.7vw,66px); text-shadow:0 2px 14px #0004; }
.photo-hero .hero-copy { max-width:1080px; }
.photo-hero .hero-quote { color:white; font-size:30px; margin:30px 0 38px; }
.photo-hero .button { background:#ec571f; box-shadow:0 8px 24px #20140e33; }
.photo-hero .button:hover { background:#c64014; }
.section { padding-top:82px; padding-bottom:40px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:42px; }
.section-heading h2 { text-transform:uppercase; }
.text-link { font-weight:700; color:var(--accent); font-size:15px; }
.text-link:hover { text-decoration:underline; }
.performance-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.performance-card { border-radius:20px; background:white; overflow:hidden; box-shadow:0 12px 30px #59422612; display:flex; flex-direction:column; }
.poster-art { height:190px; display:grid; place-items:center; }
.poster-art svg { width:104px; height:104px; fill:white; }
.tone-apricot { background:linear-gradient(120deg,#ef6028,#bf461d); }
.tone-sage { background:linear-gradient(120deg,#199c78,#10745f); }
.tone-ochre { background:linear-gradient(120deg,#f0ac32,#ca8420); }
.tone-night { background:linear-gradient(120deg,#526d91,#324862); }
.tone-rose { background:linear-gradient(120deg,#c77b7d,#9d4e64); }
.performance-body { padding:28px 24px; flex:1; display:flex; flex-direction:column; align-items:stretch; }
.performance-body .eyebrow { letter-spacing:.5px; font-size:11px; margin-bottom:15px; }
.performance-body h3 { font-style:italic; margin-bottom:14px; }
.performance-body > p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.6; margin-bottom:24px; }
.performance-body .button { margin-top:auto; font-size:14px; padding:14px; }
.section-end { text-align:center; padding:40px 0 0; }
.home-about { display:grid; grid-template-columns:260px minmax(0,600px); justify-content:center; gap:64px; align-items:center; padding-top:62px; padding-bottom:90px; }
.home-logo-panel { padding:28px; border-radius:24px; background:white; border:1px solid var(--line); }
.home-logo-panel img { width:100%; height:auto; }
.home-about h2 { font-size:36px; margin-bottom:22px; }
.home-about-copy > p:not(.eyebrow) { color:var(--muted); }
.page-banner { text-align:center; padding:62px 0 86px; }
.page-banner h1 { text-transform:uppercase; }
.page-banner .hero-quote { margin-bottom:0; }
.page-banner .back-link { display:inline-block; color:var(--accent); font-size:14px; font-weight:700; margin-bottom:24px; }
.poster-section { text-align:center; padding-top:80px; padding-bottom:80px; }
.repertoire-poster { max-width:600px; margin:auto; border:6px solid white; border-radius:22px; overflow:hidden; box-shadow:0 26px 40px #33231629; }
.repertoire-poster a { display:block; }
.repertoire-poster img { width:100%; }
.poster-section > .button { margin-top:36px; }
.about-page { padding:42px 0 88px; background:radial-gradient(ellipse at 100% 35%,#f8e6c166,transparent 55%),var(--paper); }
.about-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:0 0 48px; color:var(--muted); font-size:13px; }
.about-breadcrumb a:hover { color:var(--accent); text-decoration:underline; }
.about-breadcrumb span[aria-current] { color:var(--ink); }
.about-intro { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(40px,6vw,90px); align-items:center; }
.about-copy { max-width:620px; }
.about-copy h1 { font-size:clamp(40px,4.3vw,60px); line-height:1.12; letter-spacing:-1.3px; margin-bottom:32px; }
.about-copy h1 em { display:block; font-weight:400; color:var(--accent); }
.about-copy > p { color:var(--muted); font-size:17px; line-height:1.8; margin-bottom:20px; }
.about-copy .about-opening { color:var(--ink); }
.about-links { display:flex; flex-wrap:wrap; align-items:center; gap:22px 28px; margin-top:34px; }
.about-links .button { padding:16px 28px; }
.about-links .text-link { font-size:14px; }
.about-emblem { width:100%; max-width:460px; justify-self:end; padding:30px; background:#f2dfc2; border-radius:230px 230px 28px 28px; position:relative; }
.about-emblem::before { content:""; position:absolute; inset:14px; border:1px solid #c997555e; border-radius:inherit; pointer-events:none; }
.about-emblem-paper { position:relative; padding:58px 34px 42px; overflow:hidden; background:white; border-radius:200px 200px 12px 12px; box-shadow:0 14px 26px #6a4d2710; }
.about-emblem img { width:100%; height:auto; object-fit:contain; }
.about-gallery { margin-top:80px; padding-top:42px; border-top:1px solid var(--line); }
.about-gallery h2 { margin-bottom:28px; }
.inline-link { color:var(--green); text-decoration:underline; font-weight:700; }
.photo-collage { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.photo-collage img { border-radius:16px; }
.tickets-section { padding-top:60px; padding-bottom:90px; }
.tickets-section .section-heading { margin-bottom:30px; gap:24px; }
.tickets-section .section-heading h2 { font-size:36px; }
.tickets-section .section-heading p { color:var(--muted); font-size:14px; margin:0; }
.ticket-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.ticket-card { display:flex; flex-direction:column; min-width:0; border:1px solid #e2d7ca; border-radius:22px; overflow:hidden; background:#fff; box-shadow:0 8px 24px #59422608; }
.ticket-cover { aspect-ratio:16/9; background:#f3ede2; overflow:hidden; }
.ticket-cover > img { display:block; width:100%; height:100%; object-fit:contain; }
.ticket-cover .poster-art { height:100%; }
.ticket-card-body { display:flex; flex:1; flex-direction:column; padding:28px; }
.ticket-date { display:block; color:var(--accent); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; line-height:1.7; margin:0 0 20px; }
.ticket-title { font:italic 25px/1.35 Georgia,serif; overflow-wrap:anywhere; margin:0 0 18px; }
.ticket-description { color:var(--muted); font-size:15px; line-height:1.7; overflow-wrap:anywhere; margin:0 0 28px; }
.ticket-card-actions { margin-top:auto; padding-top:10px; }
.ticket-price { font-size:16px; font-weight:700; overflow-wrap:anywhere; margin:0 0 14px; }
.ticket-price span { font-size:13px; font-weight:400; color:var(--muted); }
.ticket-card .button { width:100%; min-height:52px; }
.ticket-card .button:disabled { background:#ede5db; color:#746454; cursor:not-allowed; }
.ticket-availability { color:var(--muted); font-size:13px; margin:0 0 14px; }
.show-poster { max-width:620px; margin:0 auto 32px; }
.show-poster img { width:100%; max-height:480px; object-fit:contain; border-radius:16px; }
.pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px; margin-top:35px; font-size:14px; }
.schedule-note { color:var(--muted); text-align:center; font-size:13px; margin:25px 0 0; }
.empty-schedule { text-align:center; background:white; border-radius:24px; padding:50px 32px; margin-top:20px; }
.empty-schedule h2 { font-size:30px; margin-bottom:20px; }
.empty-schedule p { color:var(--muted); max-width:530px; margin:0 auto 24px; }
.site-footer { background:#2e251e; color:#c4b9ad; padding:60px 0 28px; font-size:14px; }
.footer-grid { display:grid; grid-template-columns:1.5fr .65fr 1fr 1.1fr; gap:40px; padding-bottom:38px; }
.footer-name { color:#fff6e8; font:700 22px/1.35 Georgia,serif; text-transform:uppercase; margin-bottom:20px; }
.footer-theatre > p:not(.footer-name) { font-size:14px; max-width:360px; }
.site-footer h2 { font:700 12px/1.5 Arial,sans-serif; letter-spacing:2px; text-transform:uppercase; color:#efb54f; margin:0 0 20px; }
.site-footer nav a,.footer-contacts a { display:block; margin-bottom:15px; }
.site-footer address { font-style:normal; line-height:1.8; }
.site-footer a:hover { color:white; }
.site-footer .social-button { background:#61482e; color:white; }
.site-footer .social-button:hover { background:#785936; color:white; }
.footer-region { display:flex; align-items:center; gap:18px; margin-bottom:28px; }
.footer-region img { width:64px; height:76px; object-fit:contain; flex-shrink:0; }
.footer-region small { display:block; max-width:420px; margin-top:7px; font-size:11px; line-height:1.6; }
.footer-region small a { text-decoration:underline; }
.contact-choice { font-size:14px; color:var(--muted); margin:8px 0 18px; }
.legal p { line-height:1.9; }
.footer-bottom { border-top:1px solid #5d4d3e; display:flex; justify-content:space-between; gap:20px; padding-top:24px; font-size:12px; }
.page-heading { padding:65px 0 40px; }
.page-heading h1 { margin:0 0 25px; }
.page-heading p { color:var(--muted); max-width:820px; }
.page-heading .eyebrow { color:var(--accent); }
.checkout-field select { width:100%; padding:12px; border:1px solid #cfc4b8; background:white; border-radius:5px; min-height:48px; font-size:16px; }
.checkout-field select[aria-invalid=true] { border-color:#a34f5a; }
@media(max-width:1150px) {
  .container { width:calc(100% - 64px); }
  .header-inner { gap:20px; }
  .theatre-brand { gap:12px; }
  .theatre-brand strong { max-width:175px; font-size:15px; }
  .main-nav { gap:22px; }
  .main-nav a { font-size:12px; }
  .header-actions { gap:12px; }
  .ticket-button { padding:14px 18px; }
  .home-about { gap:36px; }
  .footer-grid { grid-template-columns:1.4fr .7fr 1fr; gap:30px; }
  .legal { grid-column:1/-1; display:flex; align-items:start; gap:40px; }
  .legal h2 { margin-top:5px; }
  .legal p { margin:0; }
}
@media(max-width:850px) {
  .header-inner { display:flex; justify-content:space-between; flex-wrap:wrap; padding-block:14px; gap:12px 24px; }
  .main-nav { order:4; width:100%; justify-content:center; gap:40px; }
  .main-nav a { font-size:13px; }
  .hero { padding:70px 0; }
  .hero h1 { font-size:48px; }
  .performance-grid { gap:18px; }
  .performance-body { padding:22px 18px; }
  .performance-body h3 { font-size:20px; }
  .home-about { grid-template-columns:210px minmax(0,1fr); gap:28px; }
  .home-about h2 { font-size:29px; }
  .about-intro { gap:32px; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .about-copy h1 { font-size:40px; }
  .about-copy > p { font-size:16px; }
  .about-emblem { padding:22px; }
  .about-emblem::before { inset:10px; }
  .about-emblem-paper { padding:44px 22px 30px; }
  .ticket-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .ticket-card-body { padding:24px; }
}
@media(max-width:700px) {
  .container { width:calc(100% - 36px); }
  .header-inner { gap:10px 12px; }
  .theatre-brand { flex:1; gap:12px; }
  .theatre-brand img { width:47px; height:54px; }
  .theatre-brand strong { font-size:15px; max-width:170px; }
  .brand-region { font-size:10px; max-width:165px; }
  .brand-overline { font-size:10px; }
  .header-actions { order:3; width:100%; justify-content:space-between; }
  .header-actions .ticket-button { flex:1; }
  .has-js .menu-toggle { display:inline-flex; align-items:center; gap:8px; font-size:12px; }
  .main-nav { justify-content:space-around; gap:10px; }
  .has-js .main-nav:not(.is-open) { display:none; }
  .main-nav a { font-size:12px; }
  .hero { padding:58px 0 62px; }
  .hero h1 { font-size:clamp(29px,7.6vw,46px); }
  .eyebrow { letter-spacing:1.8px; font-size:10px; margin-bottom:24px; }
  .hero-quote { font-size:22px; margin:22px 0; }
  .photo-hero { min-height:500px; }
  .photo-hero .hero-quote { font-size:23px; }
  .photo-hero::before { background-position:48% center; }
  .pill { padding:17px 26px; font-size:14px; }
  .section { padding-top:52px; padding-bottom:20px; }
  .section-heading { display:block; margin-bottom:28px; }
  .section-heading h2 { font-size:29px; margin-bottom:18px; }
  .performance-grid { grid-template-columns:1fr; gap:24px; }
  .poster-art { height:180px; }
  .performance-body { padding:24px; }
  .performance-body h3 { font-size:24px; }
  .performance-body .eyebrow { font-size:11px; }
  .home-about { grid-template-columns:1fr; padding-top:44px; padding-bottom:60px; gap:32px; }
  .home-logo-panel { max-width:230px; width:100%; margin:auto; }
  .home-about h2 { font-size:31px; }
  .page-banner { padding:45px 0 56px; }
  .page-banner h1 { font-size:clamp(29px,7.2vw,42px); }
  .poster-section { padding-top:42px; padding-bottom:52px; }
  .repertoire-poster { border-width:4px; border-radius:16px; }
  .about-page { padding:28px 0 54px; }
  .about-breadcrumb { margin-bottom:32px; font-size:12px; }
  .about-intro { grid-template-columns:minmax(0,1fr); gap:38px; }
  .about-copy { max-width:none; }
  .about-copy h1 { font-size:clamp(34px,8.4vw,46px); letter-spacing:-.7px; margin-bottom:24px; }
  .about-links { margin-top:28px; gap:20px 24px; }
  .about-emblem { max-width:300px; justify-self:center; }
  .about-gallery { margin-top:48px; padding-top:30px; }
  .about-gallery h2 { font-size:29px; }
  .photo-collage { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }
  .footer-theatre { grid-column:1/-1; }
  .legal { display:block; }
  .legal p { margin-bottom:15px; }
  .footer-bottom { flex-direction:column; line-height:1.7; }
  .site-footer { padding-top:40px; }
  .footer-name { font-size:21px; }
  .footer-contacts { font-size:13px; }
  .tickets-section { padding-top:22px; padding-bottom:60px; }
  .ticket-grid { grid-template-columns:1fr; }
  .tickets-section .section-heading h2 { font-size:29px; }
  .ticket-title { font-size:25px; }
  .empty-schedule { padding:35px 22px; }
  .empty-schedule h2 { font-size:27px; }
}

/* Invitations are reachable by their private link, outside the three main tabs. */
.invitation-page { padding-bottom: 75px; }
.invitation-page h1 { overflow-wrap: anywhere; }
.invitation-page .page-heading > p:last-child { overflow-wrap: anywhere; }
.invitation-summary { display: flex; flex-wrap: wrap; gap: 30px 65px; padding: 32px; border-radius: 8px; background: #eee6d9; }
.invitation-summary div { display: flex; flex-direction: column; gap: 12px; }
.invitation-summary span { font-size: 12px; color: #746657; }
.invitation-summary strong { font-family: Georgia, serif; font-size: 27px; font-weight: 400; color: var(--wine); }
.invitation-description { max-width: 820px; padding-top: 45px; }
.invitation-description h2 { font-size: 34px; margin-bottom: 24px; }
.invitation-description p { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--muted); }
.invitation-contact { padding-top: 45px; }
.invitation-contact h2 { font-size: 34px; margin-bottom: 20px; }
.invitation-contact p { color: var(--muted); }
.invitation-contact .text-link { margin: 20px; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,460px); gap:48px; align-items:start; }
.booking-layout > * { min-width:0; }
.public-booking { padding-top:42px; }
.booking-layout .show-summary { margin-top:0; }
.checkout-section { min-width:0; }
.checkout-section h2 { font-size: clamp(30px, 3.2vw, 42px); margin: 0 0 24px; }
.checkout-section p { color: var(--muted); }
.checkout-form { border:1px solid var(--line); border-radius:20px; background:white; padding:32px; min-width:0; }
.checkout-field { margin-bottom: 22px; }
.checkout-field label { display: block; margin-bottom: 10px; font-size: 14px; font-weight: 600; }
.checkout-field input { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #cfc4b8; border-radius: 5px; background: #fff; color: var(--ink); font-size: 16px; }
.checkout-field input:focus-visible { outline: 3px solid #cb954c; outline-offset: 3px; }
.checkout-field input[aria-invalid=true] { border-color: #a34f5a; }
.checkout-errors p, .checkout-form .checkout-error { color: #813341; font-size: 14px; margin: 8px 0; }
.checkout-note { font-size: 13px; line-height: 1.6; }
.checkout-total { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; margin: 26px 0; padding-top: 24px; border-top: 1px solid var(--line); }
.checkout-total output { font-family: Georgia, serif; font-size: 27px; color: var(--wine); overflow-wrap: anywhere; max-width: 100%; }
.checkout-form .button { width: 100%; }
.checkout-agreements { display:grid; gap:12px; margin:0 0 24px; font-size:13px; line-height:1.55; }
.checkout-check { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.checkout-check input { flex:0 0 19px; width:19px; height:19px; margin:1px 0 0; accent-color:var(--orange); }
.checkout-agreements a { text-decoration:underline; text-underline-offset:3px; }
.checkout-policy { justify-self:start; margin-left:29px; }
.footer-documents { display:flex; flex-wrap:wrap; gap:12px 26px; margin-bottom:28px; font-size:13px; line-height:1.7; }
.legal-page { max-width:880px; padding-top:48px; padding-bottom:72px; }
.legal-page header { margin:32px 0 24px; }
.legal-page h1 { font-size:clamp(30px,4vw,48px); line-height:1.15; overflow-wrap:anywhere; margin:12px 0; }
.legal-date { color:var(--muted); font-size:14px; }
.legal-draft { padding:16px 20px; border-left:3px solid var(--orange); background:#fff0d9; line-height:1.6; font-size:14px; }
.legal-copy { line-height:1.8; overflow-wrap:anywhere; }
.legal-copy h2 { font-size:26px; margin:36px 0 12px; }
.legal-copy p { margin:12px 0; }
.legal-copy ul { padding-left:24px; }
.legal-copy li { margin:12px 0; }
.legal-copy a, .legal-related a { text-decoration:underline; text-underline-offset:3px; }
.legal-related { display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--line); margin-top:40px; padding-top:24px; font-size:14px; }
.checkout-error { padding: 15px; border: 1px solid #e4c7ca; border-radius: 5px; background: #fff0ef; color: #813341; }
.order-result { max-width: 820px; padding-top: 45px; }
.order-result h2 { font-size: 34px; margin-bottom: 24px; }
.order-result p { color: var(--muted); }
.order-result .text-link { display: inline-block; margin: 20px; }
@media (max-width: 950px) { .booking-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; } }
@media (max-width: 700px) {
  .invitation-page { padding-bottom: 45px; }
  .invitation-summary { padding: 24px; gap: 28px; }
  .invitation-summary strong { font-size: 23px; }
  .invitation-page .page-heading h1 { font-size: 40px; }
  .invitation-contact .text-link { display: flex; margin: 25px 0 0; }
  .booking-layout { grid-template-columns:1fr; gap:28px; }
  .checkout-form { padding: 24px; }
  .order-result .text-link { display: block; margin: 25px 0 0; }
}


.show-summary { margin-top: 42px; }

/* Compact order flow: keep the payment action near the top on every screen. */
.compact-checkout .header-inner { min-height:76px; padding-block:8px; }
.compact-checkout .theatre-brand img { width:44px; height:50px; }
.compact-checkout .brand-region, .compact-checkout .header-actions { display:none; }
.compact-checkout .page-banner { padding:24px 0; }
.compact-checkout .page-banner .back-link { margin-bottom:10px; }
.compact-checkout .page-banner h1, .compact-checkout .page-heading h1 { font-size:clamp(27px,3vw,36px); }
.compact-checkout .page-heading { padding:24px 0 18px; margin:0; }
.compact-checkout .page-heading p { margin:10px 0 0; }
.compact-checkout .public-booking { padding-top:24px; }
.compact-checkout .invitation-summary { padding:20px; gap:20px; }
.compact-checkout .invitation-description { padding-top:24px; }
.compact-checkout .invitation-description h2 { font-size:27px; margin-bottom:14px; }
.compact-checkout .checkout-form { padding:24px; }
.personal-booking { max-width:1080px; padding-top:32px; }
.personal-booking .booking-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:28px; align-items:start; }
.invitation-card { min-width:0; padding:30px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--orange); border-radius:20px; }
.invitation-eyebrow { margin:0 0 12px; color:var(--wine); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.invitation-card h1 { margin:0; font-size:clamp(28px,3vw,38px); line-height:1.15; }
.invitation-details { display:grid; gap:20px; margin:26px 0 0; }
.invitation-details dt { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.invitation-details dt svg { width:18px; height:18px; flex:none; color:var(--wine); }
.invitation-details dd { margin:6px 0 0 26px; font-size:17px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.invitation-copy { margin:24px 0 0; padding-top:20px; border-top:1px solid var(--line); font-size:15px; line-height:1.75; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:700px) {
  .personal-booking { padding-top:20px; }
  .personal-booking .booking-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
  .invitation-card { padding:22px; }
  .invitation-details { margin-top:20px; gap:14px; }
  .invitation-copy { margin-top:18px; padding-top:16px; }
}
.ticket-quantities { border:0; margin:0; padding:0; display:block; }
.ticket-quantities legend { padding:0; margin-bottom:18px; font:700 23px/1.3 Georgia,serif; }
.ticket-quantities .checkout-field label { line-height:1.5; }
.compact-checkout .checkout-field { margin-bottom:16px; }
.compact-checkout .checkout-total { margin:18px 0; padding-top:16px; }
.compact-checkout .checkout-agreements { margin-bottom:18px; }
.payment-page { max-width:640px; padding-block:28px 44px; }
.payment-card { background:white; border:1px solid var(--line); border-radius:20px; padding:28px; box-shadow:0 10px 30px #30271f09; }
.payment-heading .eyebrow { margin-bottom:8px; color:var(--green); }
.payment-heading h1 { font-size:clamp(28px,4vw,36px); margin-bottom:12px; }
.payment-heading .order-title { font:700 21px/1.35 Georgia,serif; color:var(--ink); }
.payment-heading p { margin:0 0 8px; line-height:1.5; }
.payment-heading .payment-date { font-size:14px; color:var(--muted); }
.payment-details { margin:22px 0; }
.payment-details > div { display:flex; justify-content:space-between; gap:16px; padding-block:8px; font-size:15px; }
.payment-details dt { color:var(--muted); }
.payment-details dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.payment-details .payment-total { border-top:1px solid var(--line); margin-top:10px; padding-top:16px; align-items:baseline; }
.payment-total dt { color:var(--ink); font-weight:700; }
.payment-total dd { font:700 28px/1.2 Georgia,serif; }
.payment-card .payment-button { width:100%; min-height:60px; font-size:20px; background:#117866; box-shadow:0 5px 14px #11786626; }
.payment-card .payment-button:hover { background:#09594c; }
.payment-card .payment-button:disabled { cursor:wait; opacity:.75; }
.payment-card > p { margin-bottom:14px; font-size:15px; line-height:1.6; }
.payment-card .payment-success { color:var(--green); font-weight:700; }
@media (max-width:700px) {
  .compact-checkout .header-inner { min-height:68px; padding-block:6px; }
  .compact-checkout .page-banner { padding:14px 0; }
  .compact-checkout .public-booking { padding-top:16px; }
  .compact-checkout .booking-layout { gap:16px; }
  .compact-checkout .invitation-page { padding-bottom:28px; }
  .compact-checkout .checkout-form { padding:20px; }
  .compact-checkout .ticket-quantities legend { font-size:20px; margin-bottom:10px; }
  .compact-checkout .invitation-summary { padding:16px; }
  .compact-checkout .invitation-summary strong { font-size:20px; }
  .payment-page { padding-block:20px 28px; }
  .payment-card { padding:22px 20px; border-radius:16px; }
  .payment-details > div { gap:12px; font-size:14px; }
  .payment-total dd { font-size:26px; }
}
