.ssbt-wrap { --ssbt-navy:#172c45; --ssbt-gold:#bda065; --ssbt-border:#d8e0e8; max-width:1100px; margin:2rem auto 3rem; color:#182e46; font:inherit; }
.ssbt-wrap * { box-sizing:border-box; }
.ssbt-heading { margin:0 0 1.25rem; }
.ssbt-eyebrow { font-weight:800; letter-spacing:.13em; font-size:.74rem; color:#7b6339; }
.ssbt-heading h2 { font-size:clamp(1.7rem,4vw,2.6rem); margin:.3rem 0 .5rem; color:var(--ssbt-navy); }
.ssbt-heading p { max-width:780px; line-height:1.65; }
.ssbt-calendar-head { background:var(--ssbt-navy); color:#fff; display:grid; grid-template-columns:1fr 2fr 1fr; align-items:center; padding:1rem 1.25rem; border-radius:12px 12px 0 0; gap:.4rem; }
.ssbt-calendar-head h3 { margin:0; color:#fff; font-size:1.3rem; text-align:center; }
.ssbt-calendar-head span:last-child { text-align:right; }
.ssbt-month { color:#f1d69a!important; font-size:.9rem; font-weight:700; text-decoration:none!important; }
.ssbt-month:hover { text-decoration:underline!important; }
.ssbt-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid var(--ssbt-border); border-top:0; background:#fff; }
.ssbt-weekday { padding:.75rem .2rem; background:#e9eef3; font-size:.78rem; font-weight:700; text-align:center; }
.ssbt-day { min-height:96px; padding:.5rem; min-width:0; border-right:1px solid var(--ssbt-border); border-top:1px solid var(--ssbt-border); background:#fff; }
.ssbt-day:nth-child(7n) { border-right:0; }
.ssbt-empty { background:#f5f7f9; }
.ssbt-daynum { display:block; margin-bottom:.35rem; font-size:.85rem; }
.ssbt-has-class { background:#fcf9f1; }
.ssbt-calendar-link { display:block; background:#f0e3c8; border-radius:4px; color:#293c4c!important; line-height:1.3; font-weight:700; font-size:.71rem; padding:.34rem; margin:.3rem 0; text-decoration:none!important; overflow-wrap:anywhere; }
.ssbt-calendar-link:hover { background:#d5bc88; }
.ssbt-empty-message { padding:1.2rem; background:#f5f7f9; border:1px solid var(--ssbt-border); border-radius:0 0 12px 12px; }
.ssbt-session-list { margin-top:2rem; }
.ssbt-session-list h3 { color:var(--ssbt-navy); }
.ssbt-session { background:#fff; color:#263746; padding:1.45rem; margin:1.1rem 0; border:1px solid var(--ssbt-border); border-left:5px solid var(--ssbt-gold); border-radius:10px; box-shadow:0 4px 20px #172c450e; scroll-margin-top:130px; }
.ssbt-session-top { display:flex; gap:1.1rem; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
.ssbt-session h4 { margin:.2rem 0 1rem; font-size:1.4rem; color:var(--ssbt-navy); }
.ssbt-session p { margin:.4rem 0; }
.ssbt-seats { display:inline-block; padding:.36rem .6rem; border-radius:40px; background:#e1f3e9; color:#20603c; font-size:.8rem; font-weight:800; white-space:nowrap; }
.ssbt-full { background:#f4e5e5; color:#843636; }
.ssbt-request { margin-top:1.15rem; border-top:1px solid var(--ssbt-border); padding-top:1rem; }
.ssbt-request summary { color:var(--ssbt-navy); font-weight:800; cursor:pointer; }
.ssbt-request form { padding-top:1rem; }
.ssbt-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.ssbt-fields label { font-size:.92rem; font-weight:700; }
.ssbt-fields input,.ssbt-fields select { display:block; border:1px solid #b1becb; border-radius:6px; width:100%; padding:.75rem; margin:.35rem 0; background:white; color:#172c45; font:inherit; }
.ssbt-consent { display:flex; align-items:flex-start; gap:.55rem; margin:1rem 0; font-size:.89rem; line-height:1.6; }
.ssbt-consent input { margin-top:.35rem; flex-shrink:0; }
.ssbt-button { background:var(--ssbt-navy); color:white; border:0; cursor:pointer; border-radius:6px; padding:.8rem 1.25rem; font-weight:750; font:inherit; }
.ssbt-button:hover { background:#294a6e; }
.ssbt-small { font-size:.81rem; line-height:1.55; opacity:.85; }
.ssbt-hp { display:none; }
.ssbt-alert { padding:1rem; border-radius:8px; }
.ssbt-success { background:#e0f2e8; border:1px solid #8ab99d; color:#20533a; }
.ssbt-error { background:#f6e5e5; border:1px solid #ce9898; color:#8b3030; }
@media(max-width:680px) { .ssbt-calendar-head { padding:.7rem; } .ssbt-calendar-head h3 { font-size:1rem; } .ssbt-month { font-size:.72rem; } .ssbt-weekday { font-size:.67rem; } .ssbt-day { min-height:64px; padding:.22rem; } .ssbt-calendar-link { font-size:.61rem; padding:.2rem; } .ssbt-fields { grid-template-columns:1fr; } .ssbt-session { padding:1rem; } }
