/* Calendar additions use the existing TEB typography, palette and buttons. */
.cal-skip{position:fixed;left:1rem;top:-8rem;z-index:200;background:var(--paper-soft);padding:.7rem 1rem}
.cal-skip:focus{top:1rem}
.cal-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.cal-toolbar .btn{padding:.6rem .9rem;font-size:.9rem}
.cal-toolbar label{font-size:.9rem}
.cal-toolbar input{min-width:10rem}
.cal-view-switch [aria-pressed=true]{background:var(--forest);color:var(--paper-soft)}
.cal-period{margin:1.6rem 0 1rem}
.cal-period h2{margin:0;text-transform:none}
.cal-text-button{background:none;border:0;padding:.6rem 0;font:inherit;text-decoration:underline;color:var(--forest);cursor:pointer}
.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal-weekday{padding:.65rem .4rem;text-align:center;background:var(--forest);color:var(--paper-soft);font-size:.8rem}
.cal-day{min-height:140px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.55rem .4rem;background:var(--paper-soft);font-size:.85rem;min-width:0}
.cal-day time{display:inline-block;min-width:1.8rem;text-align:center;font-weight:700}
.cal-outside{background:var(--paper-deep)}
.cal-outside time{color:var(--muted)}
.cal-today time{background:var(--forest);color:var(--paper-soft);border-radius:50%}
.cal-day-event{display:block;margin:.5rem 0;padding:.35rem;border-left:2px solid var(--moss);background:var(--paper);font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}
.cal-day-event.is-cancelled{border-color:var(--terra)}
.cal-week-list{display:none}
.cal-week-list.cal-week-only{display:block}
.cal-event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.cal-event h3{margin-top:0}
.cal-event p{font-size:1rem;margin-bottom:.7rem}
.cal-event .cal-when{font-weight:600}
.cal-event .cal-organizer{color:var(--muted);font-size:.88rem}
.cal-event .cal-description{white-space:pre-wrap}
.cal-cancelled{color:var(--terra);border:1px solid var(--terra)}
.cal-event.is-cancelled{border-left:4px solid var(--terra)}
.cal-week-heading{margin:1.7rem 0 1rem;font-size:1.3rem}
.cal-archive{margin:4rem 0 2rem;border-top:1px solid var(--line);padding-top:1rem}
.cal-archive details{margin-top:1.5rem}
.cal-archive summary{cursor:pointer}
.cal-archive details p{padding-top:.7rem}
#calendar-workspace{border-top:1px solid var(--line);padding:2rem 0 3rem;margin-bottom:2rem;border-bottom:1px solid var(--line)}
#calendar-workspace>h3{margin-top:2rem}
#workspace-heading{margin:0 0 1rem;scroll-margin-top:120px}
.cal-editor{margin:1.5rem 0}
.cal-editor .fp-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.cal-editor .fp-form>div{grid-column:1/-1;min-width:0}
.cal-editor .fp-form>.cal-half-field{grid-column:auto}
.cal-preview{position:sticky;top:120px}
.cal-preview .cal-event{padding:0;border:0;box-shadow:none}
.cal-preview .eyebrow{margin-bottom:.4rem}
.cal-private-link{margin:1.5rem 0;max-width:100%;overflow-wrap:anywhere}
.cal-private-link input{display:block;width:100%;font:inherit;font-size:.85rem;padding:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);margin:.5rem 0 1rem}
.cal-private-link label{font-size:.9rem;font-weight:600}
.cal-private-actions{margin:1.5rem 0}
.cal-cancel-panel{margin:1.5rem 0}
.cal-cancel-panel>div{margin-top:1rem}
.cal-channels{margin:3rem 0 0}
.cal-channels .fp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cal-channels .fp-card p{font-size:1rem}
.cal-channels .fp-card .fp-note{font-size:.88rem}
.cal-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.cal-grid-empty{margin-top:1rem}
#calendar-events[aria-busy=true]{opacity:.65}
#calendar-updated{margin-top:1.5rem}
@media(max-width:1000px){.cal-weekday{font-size:.7rem}
.cal-day{min-height:120px}
.cal-day-event{font-size:.72rem}
.cal-toolbar{align-items:center}
}
@media(max-width:850px){.cal-preview{position:static}
.cal-toolbar .fp-actions{gap:.4rem}
.cal-toolbar{padding:1rem}
.cal-toolbar .btn{font-size:.85rem}
.cal-event-list{grid-template-columns:1fr}
}
@media(max-width:700px){.cal-month-grid,.cal-grid-empty{display:none}
.cal-week-list{display:block}
.cal-period h2{font-size:1.8rem}
.cal-channels .fp-grid{grid-template-columns:1fr}
.cal-toolbar{gap:.8rem}
.cal-view-switch{width:100%}
.cal-toolbar .fp-filter{flex:1;min-width:0}
.cal-toolbar input{min-width:0;width:100%}
.cal-toolbar>.fp-actions:first-child{width:100%}
.cal-toolbar>.fp-actions:first-child .btn{flex:1}
.cal-event{padding:1.2rem}
.cal-editor .fp-form{padding:1rem}
.cal-editor .fp-form>.cal-half-field{grid-column:1/-1}
.cal-private-link .fp-actions{align-items:stretch;flex-direction:column}
.cal-private-link .btn{font-size:.9rem;text-align:center}
.cal-archive{margin-top:2.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}
@media print{.site-header,.site-footer,.cal-toolbar,.cal-text-button,.cal-skip,.cal-channels,.cal-private-link,.cal-cancel-panel{display:none!important}
.cal-month-grid{display:none}
.cal-week-list{display:block}
.cal-event{break-inside:avoid}
.page-heading{padding-top:0}
.cal-archive{display:none}
}
.cal-toolbar .btn::after{content:none}

.cal-sharing label{display:flex;align-items:flex-start;gap:.7rem;margin:.7rem 0;font-size:.9rem}.cal-sharing input[type=checkbox]{width:18px;min-width:18px;height:18px;margin-top:.2rem}.cal-sharing{border:1px solid var(--line);border-radius:6px;padding:1rem}.cal-detail-image{width:100%;max-height:350px;object-fit:cover;border-radius:6px}
.cal-edit-image-preview{display:block;width:auto;max-width:100%;height:auto;max-height:220px;object-fit:contain;object-position:center;margin:.8rem auto;border-radius:6px}.cal-edit-image-preview[hidden]{display:none}

/* Public calendar: one column per day, upcoming events and the print calendar. */
.cal-kicker{display:block;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--terra);margin:0}
.cal-toolbar-simple{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;flex-wrap:wrap}
.cal-period-nav{display:flex;align-items:center;gap:.4rem}
.cal-period-nav>button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--paper-soft);color:var(--forest);font:inherit;font-size:1.2rem;line-height:1;cursor:pointer}
.cal-period-nav>button:hover{border-color:var(--forest)}
.cal-period-nav strong{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.5rem;color:var(--forest);margin:0 .6rem}
.cal-period-nav>.cal-today-button{width:auto;border-radius:99px;padding:0 1rem;font-size:.85rem}
.cal-board{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}
.cal-board-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line)}
.cal-board-head span{background:var(--paper-deep);padding:.55rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--forest)}
.cal-board-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}
.cal-board-head+.cal-board-grid{border-top:1px solid var(--line)}
.cal-day{min-width:0;background:var(--paper-soft);padding:.6rem .5rem .75rem}
.cal-day.is-outside{background:var(--paper)}
.cal-day.is-outside .cal-day-number,.cal-day.is-outside .cal-chip{opacity:.55}
.cal-day-date{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font:inherit}
.cal-day-weekday{font-size:.75rem;color:var(--muted)}
.cal-day-number{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 .2rem;border:0;border-radius:50%;background:none;font:inherit;font-weight:700;font-size:.9rem;color:var(--ink)}
button.cal-day-number{cursor:pointer}button.cal-day-number:hover{background:var(--paper-deep)}
.cal-day.is-today .cal-day-number{background:var(--forest);color:var(--paper-soft)}
.cal-day.is-today .cal-day-weekday{color:var(--terra);font-weight:700}
.cal-day-count{display:none}
.cal-day-events{display:grid;gap:.4rem}
.cal-chip{display:grid;gap:.1rem;min-width:0;padding:.4rem .5rem;border-left:3px solid var(--terra);border-radius:5px;background:var(--paper-deep);color:var(--ink)!important;text-decoration:none!important;font-size:.78rem;line-height:1.3}
.cal-chip:hover{box-shadow:0 0 0 1px var(--forest)}
.cal-chip.is-cancelled{opacity:.7}.cal-chip.is-cancelled .cal-chip-title{text-decoration:line-through}
.cal-chip-time{font-size:.68rem;font-weight:700;color:var(--terra)}
.cal-chip-title{font-weight:600;overflow-wrap:anywhere}
.cal-chip-place{font-size:.7rem;color:var(--muted);overflow-wrap:anywhere}
.cal-board--week .cal-day{min-height:260px}
.cal-board--week .cal-day-date{flex-direction:column;align-items:flex-start;gap:.1rem;padding-bottom:.45rem;border-bottom:1px solid var(--line)}
.cal-board--week .cal-day-number{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.35rem;min-width:36px;height:36px;margin-left:-.2rem}
.cal-board--week .cal-chip{padding:0 0 .5rem;border:1px solid var(--line);background:var(--paper);overflow:hidden}
.cal-board--week .cal-chip>span,.cal-board--week .cal-chip>strong{padding:0 .55rem}
.cal-board--week .cal-chip>:first-child:not(img){padding-top:.5rem}
.cal-chip-image{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;object-position:center;background:var(--paper-deep);margin-bottom:.35rem}
.cal-day-none{margin:0;font-size:.75rem;color:var(--muted)}
.cal-board--month .cal-day{min-height:118px}
.cal-board--month .cal-day-weekday{display:none}
.cal-board--month .cal-chip{display:block;padding:.25rem .4rem;font-size:.72rem}
.cal-board--month .cal-chip-time{display:inline;margin-right:.3rem}
.cal-board--month .cal-chip-title{display:inline;font-weight:500}
.cal-upcoming{margin:3.5rem 0 0}
.cal-upcoming h2,.cal-print h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:0 0 1.2rem}
.cal-upcoming-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:1rem}
.cal-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--paper-soft);color:var(--ink)!important;text-decoration:none!important;transition:border-color .15s,box-shadow .15s}
.cal-card:hover{border-color:var(--forest);box-shadow:var(--shadow-lift)}
.cal-card.is-cancelled .cal-card-title{text-decoration:line-through}
.cal-card-media{display:block;aspect-ratio:16/10;background:var(--paper-deep);overflow:hidden}
.cal-card-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.cal-card-tile{display:grid;place-content:center;justify-items:center;height:100%;color:var(--forest);font-size:.8rem}
.cal-card-tile strong{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:2.6rem;line-height:1.1}
.cal-card-copy{display:grid;gap:.3rem;padding:.9rem 1rem 1rem}
.cal-card-title{font-family:'Fraunces',Georgia,serif;font-size:1.2rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere}
.cal-card-meta{font-size:.8rem;color:var(--muted)}
.cal-more{display:block;margin:1.2rem auto 0;padding:.7rem 1.4rem;border:1px solid var(--forest);border-radius:99px;background:none;color:var(--forest);font:inherit;font-size:.9rem;cursor:pointer}
.cal-print{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.75rem;align-items:center;margin:3.5rem 0 0;padding:1.75rem;border:1px solid var(--line);border-radius:12px;background:var(--paper-soft)}
.cal-print>img{width:120px;height:155px;object-fit:cover;object-position:top;border:1px solid var(--line);transform:rotate(-3deg);box-shadow:3px 4px 0 var(--paper-deep)}
.cal-print h2{margin-bottom:.4rem}
.cal-print p{margin:0 0 1rem;color:var(--muted)}
.cal-print details{margin-top:1rem;font-size:.85rem}
.cal-print summary{cursor:pointer;color:var(--muted)}
.cal-print details a{display:block;margin:.5rem 0 0}
.cal-sources{margin:2.5rem 0 0;padding-top:1rem;border-top:1px solid var(--line);font-size:.75rem;line-height:1.6;color:var(--muted)}
.cal-sources p{margin:0 0 .3rem}.cal-sources .ds-text-button{font-size:.75rem}
.cal-dialog{width:min(900px,calc(100% - 2rem));max-height:90dvh;overflow:auto;padding:0;background:var(--paper-soft);border:1px solid var(--line);border-radius:14px;color:var(--ink)}
.cal-dialog::backdrop{background:rgba(25,35,25,.55)}
.cal-dialog-close{position:absolute;top:.8rem;right:.8rem;z-index:1;border:0;background:var(--paper-deep);padding:.55rem .9rem;font:inherit;font-size:.85rem;cursor:pointer;border-radius:99px}
.cal-detail{display:grid;min-width:0}
.cal-detail.has-image{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.cal-detail-image{display:block;width:100%;height:100%;min-height:280px;max-height:560px;object-fit:contain;background:#1f241f}
.cal-detail-copy{padding:2rem 2rem 1.75rem;min-width:0}
.cal-dialog .cal-detail-copy{padding-top:2.4rem}
.cal-detail-title{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.15;margin:.4rem 0 1.1rem;overflow-wrap:anywhere}
.cal-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.45rem 1rem;margin:0 0 1.2rem;font-size:.95rem}
.cal-facts dt{font-size:.75rem;font-weight:600;color:var(--muted);padding-top:.15rem}
.cal-facts dd{margin:0;overflow-wrap:anywhere}
.cal-detail .cal-description{white-space:pre-wrap;line-height:1.7;font-size:.95rem;color:var(--ink);overflow-wrap:anywhere}
.cal-detail-sources{display:grid;gap:.4rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.9rem}
.cal-detail-actions{margin-top:1.2rem}
.cal-cancelled-label{color:var(--terra)}
.cal-detail.is-cancelled .cal-detail-title{text-decoration:line-through}
#calendar-workspace .cal-detail,.cal-preview .cal-detail{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper-soft)}
.cal-preview .cal-detail.has-image{grid-template-columns:1fr}
.cal-preview .cal-detail-image{width:auto;max-width:100%;height:auto;min-height:0;max-height:220px;object-position:center;justify-self:center;margin-inline:auto}
@media(max-width:900px){.cal-detail.has-image{grid-template-columns:1fr}.cal-detail-image{min-height:0;max-height:340px}}
/* Seven columns do not fit a phone: the week becomes rows and the month shows counts. */
@media(max-width:760px){
.cal-board--week .cal-board-grid{grid-template-columns:1fr}
.cal-board--week .cal-day{display:grid;grid-template-columns:52px minmax(0,1fr);gap:.75rem;min-height:0;padding:.75rem}
.cal-board--week .cal-day-date{border:0;padding:0;align-items:center;margin:0}
.cal-board--week .cal-chip{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"img time" "img title" "img place";column-gap:.6rem;padding:.4rem .5rem .4rem .4rem}
.cal-board--week .cal-chip>span,.cal-board--week .cal-chip>strong{padding:0!important}
.cal-board--week .cal-chip-image{grid-area:img;width:64px;height:52px;aspect-ratio:auto;margin:0;border-radius:4px}
.cal-board--week .cal-chip-time{grid-area:time}.cal-board--week .cal-chip-title{grid-area:title}.cal-board--week .cal-chip-place{grid-area:place}
.cal-board--week .cal-chip:not(:has(img)){grid-template-columns:1fr;grid-template-areas:"time" "title" "place"}
.cal-board--week .cal-day.is-empty{padding:.45rem .75rem}
.cal-board--month .cal-day{min-height:58px;padding:.3rem .15rem;text-align:center}
.cal-board--month .cal-day-date{flex-direction:column;gap:.15rem;margin:0}
.cal-board--month .cal-day-events{display:none}
.cal-board--month .cal-day-count{display:grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:var(--terra);color:#fff;font-size:.65rem;font-weight:700}
.cal-board-head span{padding:.4rem .1rem;font-size:.65rem}
.cal-period-nav strong{font-size:1.15rem;margin:0 .3rem}
.cal-print{grid-template-columns:76px minmax(0,1fr);gap:1rem;padding:1.1rem}.cal-print>img{width:76px;height:100px}
.cal-detail-copy{padding:1.4rem 1.2rem}.cal-dialog{width:calc(100% - 1rem)}
}
@media(prefers-reduced-motion:reduce){.cal-card{transition:none}}

.cal-sharing-link{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:1.4rem;margin:0 0 2rem;padding:1.75rem;border:1px solid var(--forest);border-radius:14px;background:var(--forest);color:var(--paper-soft);box-shadow:0 8px 24px rgba(36,59,43,.12)}
.cal-print + .cal-sharing-link{margin-top:2rem}
.cal-sharing-icon{display:grid;place-items:center;width:64px;height:64px;border:1px solid rgba(246,241,228,.3);border-radius:50%;color:#f0d39a;background:rgba(246,241,228,.08)}
.cal-sharing-icon svg{width:42px;height:42px}
.cal-sharing-kicker{display:block;margin:0 0 .35rem;color:#f0d39a;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.cal-sharing-link h2{margin:0 0 .5rem;color:var(--paper-soft);font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.15}
.cal-sharing-link p{max-width:62ch;margin:0;color:var(--paper);font-size:.9rem;line-height:1.6}
.cal-sharing-link .cal-sharing-cta{display:inline-flex;justify-content:center;align-items:center;gap:1rem;min-height:48px;padding:.95rem 1.2rem;border:2px solid var(--paper);border-radius:99px;background:var(--paper);color:var(--forest);font-size:.85rem;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;transition:background .15s,color .15s}
.cal-sharing-link .cal-sharing-cta:hover{background:var(--paper-soft);border-color:var(--paper-soft);color:var(--forest)}
.cal-sharing-link .cal-sharing-cta:focus-visible{outline:3px solid #f0d39a;outline-offset:5px}
@media(max-width:900px){.cal-sharing-link{grid-template-columns:52px minmax(0,1fr);gap:1rem}.cal-sharing-icon{width:52px;height:52px}.cal-sharing-icon svg{width:34px;height:34px}.cal-sharing-cta{grid-column:2;justify-self:start}}
@media(max-width:600px){.cal-sharing-link{padding:1.25rem;gap:.8rem;margin-bottom:1.5rem}.cal-sharing-icon{align-self:start;width:44px;height:44px}.cal-sharing-icon svg{width:30px;height:30px}.cal-sharing-link{grid-template-columns:44px minmax(0,1fr)}.cal-sharing-link p{font-size:.85rem}.cal-sharing-link .cal-sharing-cta{grid-column:1/-1;justify-self:stretch;padding:.85rem 1rem;font-size:.85rem}}
@media(prefers-reduced-motion:reduce){.cal-sharing-link .cal-sharing-cta{transition:none}}
