/* Integration styles; the approved visual design lives in approved-design.css. */
body.public-site { background: var(--midnight) url('/assets/brand/events-background.webp') no-repeat center top; background-size:max(1536px,100%) auto; color:var(--text); font:17px/1.6 var(--font); }
.public-site h1,.public-site h2,.public-site h3,.public-site h4 { color:inherit; }
.public-site .month-head h2 { font-size:24px; letter-spacing:-.02em; }
.public-site .crumb .back-link { margin:0; }
.public-site .site-header { width:auto; margin:0; border-radius:0; background:transparent; box-shadow:none; }
.public-site .site-footer { display:block; width:auto; margin:0; background:var(--midnight); color:var(--text); }
.public-site [hidden] { display:none!important; }
.public-site .notice { margin:20px 0; padding:16px; color:var(--text); background:var(--midnight-2); border:1px solid var(--line-strong); border-radius:12px; }
.public-site .notice--error { border-color:#ffb7ad; color:#ffe4df; }
.public-site .source-choice { width:auto; margin:0; max-width:520px; padding:0; background:transparent; border:0; color:var(--muted); font-size:14px; }
.public-site .source-choice summary { min-height:44px; color:var(--text); font-weight:700; cursor:pointer; }
.public-site .source-choice__content { padding:12px 0; }
.public-site .source-choice h2 { color:var(--text); font-size:20px; }
.public-site .source-choice p { margin-top:12px; }
.public-site .source-choice__actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.public-site .source-choice button { min-height:44px; border-radius:12px; background:transparent; color:var(--text); border:1px solid var(--line-strong); padding:8px 12px; }
.public-site .source-choice button[aria-pressed=true] { border-color:var(--yellow); }
.public-site .promise li { gap:12px; }
.public-site .promise li::before { content:'✓'; display:grid; place-items:center; color:var(--yellow); width:36px; height:36px; border:1px solid var(--line); border-radius:10px; background:var(--surface); flex:none; }
.public-site .search input { padding-left:14px; }
.public-site .results-bar .text-link { background:transparent; border:0; cursor:pointer; }
.public-site .feature-media.no-art,.public-site .card-media.no-art { background:var(--midnight); }
.public-site .no-art img { width:min(70%,300px); height:auto; object-fit:contain; }
.public-site .card-media.no-art { display:flex; align-items:center; justify-content:center; }
.public-site .card-body>.pill { align-self:flex-start; }
.public-site .card .meta span { min-width:0; overflow-wrap:anywhere; }
.public-site .feature-foot .price small { display:block; }
.public-site .feature .desc { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; white-space:pre-line; }
.public-site .ev-hero figure.no-art { min-height:250px; display:grid; place-items:center; }
.public-site .ev-hero figure.no-art img { aspect-ratio:auto; }
.public-site .date-picker { display:grid; gap:8px; margin-top:20px; color:var(--text); font-weight:700; }
.public-site .date-picker select { width:100%; min-width:0; min-height:48px; color:var(--text); background:var(--midnight); border:1px solid var(--line-strong); border-radius:10px; padding:10px; font-size:16px; }
.public-site .t-list .ticket-availability { color:var(--muted); font-size:13px; grid-column:1/-1; }
.public-site .t-refund,.booking-dialog .event-content-copy { white-space:pre-line; overflow-wrap:anywhere; }
.public-site .section .event-content-copy { white-space:pre-line; overflow-wrap:anywhere; }
.public-site .section .event-speaker-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.public-site .section .event-speaker-card { padding:20px; background:var(--white); border:1px solid var(--light-line); border-radius:14px; color:var(--midnight); }
.public-site .section .event-speaker-card h3 { font-size:20px; }
.public-site .section .event-content-meta { margin-top:6px; font-size:15px; }
.public-site .section .event-agenda-list { margin:0; padding:0; list-style:none; }
.public-site .section .event-agenda-item { position:relative; padding:0 0 24px 28px; border-left:2px solid var(--line); }
.public-site .section .event-agenda-item::before { position:absolute; content:''; width:12px; height:12px; left:-7px; top:6px; border-radius:50%; background:var(--yellow); }
.public-site .section .event-agenda-item .event-content-meta { color:var(--yellow-soft); }
.public-site .event-gallery { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.public-site .event-gallery__item { margin:0; }
.public-site .event-gallery__item img { width:100%; height:auto; border-radius:12px; }
.public-site .event-gallery figcaption { font-size:14px; margin-top:8px; }
.public-site .event-supporter-list { display:grid; gap:16px; }
.public-site .venue-card { overflow-wrap:anywhere; }
.public-site .venue-card .text-link { margin-top:8px; }
.booking-dialog { --surface:#eef2f4; --muted:#3f5466; --border:#d9dee2; width:min(1120px,calc(100% - 32px)); max-width:1120px; max-height:calc(100dvh - 32px); padding:0; color:var(--midnight); background:var(--light); border:1px solid var(--line-strong); border-radius:20px; box-shadow:0 30px 100px #0009; }
.booking-dialog::backdrop { background:#03121fbb; }
.booking-dialog .booking-heading { position:sticky; top:0; z-index:3; display:flex; gap:16px; align-items:center; justify-content:space-between; padding:20px 24px; background:var(--midnight); color:var(--white); border-bottom:3px solid var(--yellow); }
.booking-dialog .booking-heading h2 { font-size:24px; color:var(--white); }
.booking-dialog .booking-close { min-height:44px; min-width:72px; padding:8px 14px; background:transparent; color:var(--white); border:1px solid var(--line-strong); border-radius:10px; cursor:pointer; }
.booking-dialog .booking-content { padding:24px; }
.booking-dialog .panel { background:var(--white); color:var(--midnight); border:1px solid var(--light-line); border-radius:14px; }
.booking-dialog .form-note,.booking-dialog .muted { color:var(--light-muted); }
.booking-dialog .notice { background:var(--white); color:var(--midnight); border-color:var(--light-line); }
.booking-dialog .notice--error { color:#8b2017; border-color:#a83227; }
.booking-dialog label,.booking-dialog legend,.booking-dialog input,.booking-dialog textarea,.booking-dialog select { color:var(--midnight); }
.booking-dialog input,.booking-dialog textarea,.booking-dialog select { background:var(--white); border:1px solid #718391; }
.booking-dialog .button { min-height:48px; border-radius:10px; cursor:pointer; }
.booking-dialog .button--primary { background:var(--yellow); color:var(--midnight); border-color:var(--yellow); }
.booking-dialog a { color:var(--midnight); }
.booking-dialog :focus-visible { outline-color:var(--midnight); }
.booking-dialog .booking-heading :focus-visible { outline-color:var(--yellow); }
body.booking-open { overflow:hidden; }
body.booking-open .dock { display:none; }
@media(max-width:760px) {
  .public-site .month-head h2 { font-size:20px; }
  .public-site .section .event-speaker-grid,.public-site .event-gallery { grid-template-columns:1fr; }
  .booking-dialog { width:100%; max-width:100%; max-height:100dvh; margin:0; border-radius:0; }
  .booking-dialog .booking-heading,.booking-dialog .booking-content { padding:16px; }
  .booking-dialog .checkout-layout { grid-template-columns:1fr; }
  .booking-dialog .summary-panel { position:static; }
}
