/* Private family calendar: parchment, wine, and restrained editorial type. */
.calendar-mount{min-width:0;margin-bottom:48px}
.family-calendar{--cal-wine:#502c3b;--cal-rose:#e9dce1;--cal-border:#dfd5ce;--cal-gold:#8b713f;border:1px solid var(--cal-border);border-radius:18px;background:#fffcf7;overflow:hidden;box-shadow:0 12px 40px #4e303909}
.cal-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;background:#eee5de;border-bottom:1px solid var(--cal-border)}
.cal-heading .eyebrow{font-size:.65rem;letter-spacing:.16em;margin:0 0 10px;color:#765f40}
.cal-heading h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;margin:0;color:#30262c}
.cal-heading h2 em{color:#876170}
.cal-heading p:not(.eyebrow){font-size:.8rem;color:#73666b;margin:12px 0 0}
.cal-private{font-size:.65rem;color:#755f69;padding:10px 14px;border:1px solid #c9b5bd;border-radius:30px;white-space:nowrap}
.family-calendar .button{min-height:46px;font-size:.76rem;padding:12px 18px;border-radius:8px;text-transform:none;letter-spacing:0;background:var(--cal-wine);color:#fff;border-color:var(--cal-wine)}
.cal-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr)}
.cal-month-panel{min-width:0;padding:26px}
.cal-month-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}
.cal-month-heading h3{font-size:1.6rem;color:var(--cal-wine);white-space:nowrap;line-height:1.2;margin:0}
.cal-month-controls{display:flex;align-items:center;gap:7px}
.cal-month-controls button{border:1px solid #cbbcc2;color:var(--cal-wine);background:#f3eaee;border-radius:8px;min-height:44px;cursor:pointer}
.cal-arrow{width:44px;flex-shrink:0;font:28px/1 Georgia,serif;padding:0}
.cal-current{padding:8px 12px;font-size:.67rem;white-space:nowrap}
.cal-grid{width:100%;table-layout:fixed;border-collapse:collapse;border:0}
.cal-grid th{text-align:center;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#806f77;padding:0 0 12px}
.cal-grid abbr{text-decoration:none}
.cal-grid td{padding:0;border:1px solid #e5ddd6;vertical-align:top}
.cal-outside{background:#f4f0ea}
.cal-day{width:100%;min-width:0;min-height:87px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:7px;border:0;background:transparent;text-align:left;color:#45363f;cursor:pointer;font:inherit}
.cal-day-number{display:grid;place-content:center;width:25px;height:25px;flex-shrink:0;font-size:.76rem;border-radius:50%}
.is-today .cal-day-number{background:var(--cal-wine);color:white}
.cal-day[aria-pressed=true]{background:#eadbe1;box-shadow:inset 0 0 0 2px #956f80}
.cal-day-events{display:grid;gap:3px;width:100%;min-width:0}
.cal-mini{font-size:.65rem;line-height:1.55;border-left:2px solid var(--event-color);padding-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-studio{--event-color:#8b763f}.cal-rehearsal{--event-color:#8e5d77}.cal-performance{--event-color:#476f63}
.cal-more{font-size:.5rem;color:#796570}
.cal-dots{display:none}
.cal-key{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding-top:16px;font-size:.58rem;color:#796b73}
.cal-key>span{display:flex;align-items:center;gap:5px}
.cal-key i,.cal-dots i{width:6px;height:6px;border-radius:50%;display:block;background:var(--event-color)}
.cal-time-zone{margin-left:auto}
.cal-agenda{padding:26px 24px;background:#f7f0ec;border-left:1px solid var(--cal-border);min-width:0}
.cal-agenda-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}
.cal-agenda-heading .eyebrow{font-size:.59rem;margin-bottom:7px}
.cal-agenda-heading h3{font-size:1.5rem;margin:0}
.cal-count{font-size:.65rem;color:#806a75;white-space:nowrap}
.cal-agenda .text-button{font-size:.68rem;min-height:44px}
.cal-agenda-list{max-height:415px;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;padding:3px}
.cal-event-card{display:flex;align-items:flex-start;gap:12px;width:100%;min-width:0;text-align:left;border:1px solid #dacdd3;border-left:3px solid var(--event-color);border-radius:10px;background:#fffcf9;box-shadow:0 3px 7px #4e303905;padding:16px 12px;margin-bottom:12px;cursor:pointer;color:#372c34}
.cal-event-date{display:grid;justify-items:center;min-width:33px;color:var(--event-color);padding-top:2px}
.cal-event-date strong{font:26px/1.1 var(--serif)}
.cal-event-date small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-top:4px}
.cal-event-copy{min-width:0;display:grid;gap:6px;flex:1;overflow-wrap:anywhere}
.cal-event-copy>strong{font-family:var(--serif);font-weight:400;font-size:1.07rem;line-height:1.25}
.cal-event-type{font:600 .65rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--event-color)}
.cal-event-copy small{font:400 .75rem/1.55 var(--sans);color:#77656e}
.cal-event-arrow{font-size:16px;color:#977d89}
.cal-empty{text-align:center;padding:45px 10px;color:#8a6a7a}
.cal-empty>span{font-size:36px;display:block;margin-bottom:14px}
.cal-empty h4{font:400 1.3rem/1.3 var(--serif);margin:0 0 12px;color:#644a58}
.cal-empty p{font-size:.76rem;line-height:1.8;color:#8a7781}
.cal-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--cal-border);padding:22px 30px;background:#fcf9f4}
.cal-footer strong{font:400 1.35rem/1.2 var(--serif);color:#594250}
.cal-footer p{font-size:.63rem;color:#7d6d77;max-width:440px;line-height:1.7;margin:7px 0 0}
.cal-download{white-space:normal;text-align:center;flex-shrink:0;gap:14px;text-decoration:none}
.cal-loading{padding:35px;border:1px solid #dfd5ce;background:#f7f0ec;color:#755f69;font-size:.9rem}
.family-calendar button:disabled{opacity:.45;cursor:not-allowed}
.family-calendar button:focus-visible,.family-calendar a:focus-visible{outline:3px solid #987b4e;outline-offset:2px;position:relative;z-index:1}
.cal-event-detail{margin-top:20px}
.cal-event-detail p{margin:18px 0;font-size:.92rem}
.cal-detail-when{color:#785c6a}
.cal-description{white-space:pre-wrap;overflow-wrap:anywhere}
.cal-event-form{margin-top:24px}
.cal-event-form [hidden]{display:none!important}
.cal-event-form input,.cal-event-form textarea,.cal-event-form select{max-width:100%;min-width:0;font-size:16px}
.cal-event-form label{min-width:0}
.cal-event-form .form-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.cal-event-form .actions{flex-wrap:wrap}
@media(hover:hover){.cal-day:hover{background:#f1e8eb}.cal-day[aria-pressed=true]:hover{background:#e5d2da}.cal-event-card:hover{background:#f3e8ec;border-color:#b99aa8}.cal-month-controls button:hover{background:#e9dce1}}
@media(max-width:1100px){.cal-layout{grid-template-columns:minmax(0,1.4fr) minmax(245px,1fr)}.cal-month-panel{padding:22px 18px}.cal-month-heading{flex-wrap:wrap}.cal-agenda{padding:22px 16px}.cal-private{display:none}.cal-footer{flex-wrap:wrap}}
@media(max-width:760px){.calendar-mount{margin-bottom:32px}.cal-heading{padding:22px 18px;flex-wrap:wrap;gap:16px}.cal-heading h2{font-size:1.9rem}.cal-heading p:not(.eyebrow){font-size:.75rem}.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-month-panel{padding:20px 12px}.cal-month-heading{gap:12px;margin-bottom:19px}.cal-month-heading h3{font-size:1.5rem}.cal-month-controls{gap:5px}.cal-current{padding:6px 9px}.cal-arrow{width:44px}.cal-grid th{font-size:.58rem;letter-spacing:0}.cal-day{min-height:58px;align-items:center;padding:6px 2px;gap:5px}.cal-day-number{font-size:.8rem}.cal-day-events{display:none}.cal-dots{display:flex;gap:3px;min-height:6px}.cal-key{gap:9px;font-size:.55rem}.cal-time-zone{margin-left:0}.cal-agenda{border-left:0;border-top:1px solid var(--cal-border);padding:20px 16px}.cal-agenda-list{max-height:350px}.cal-event-copy>strong{font-size:1.15rem}.cal-event-copy small{font-size:.72rem}.cal-event-type{font-size:.6rem}.cal-empty{padding:20px 10px}.cal-footer{padding:22px 18px;gap:16px}.cal-footer>div{min-width:0}.cal-footer p{font-size:.7rem}.cal-download{width:100%;justify-content:center}.cal-event-form .form-row{grid-template-columns:minmax(0,1fr)}.family-calendar .button{font-size:.77rem}}
