/* The same calendar component is used on Kalender and Det sker. */
.calendar-viewport{max-width:100%;overflow-x:auto}.calendar-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.calendar-grid--month{grid-template-columns:repeat(7,minmax(0,1fr));min-width:840px}.calendar-weekday{padding:.65rem .5rem;background:var(--paper-deep);color:var(--forest);font-size:.75rem;font-weight:600;text-align:center;text-transform:capitalize}.calendar-day{min-width:0;min-height:120px;background:var(--paper-soft);padding:.65rem .45rem}.calendar-day.is-outside{background:var(--paper);color:var(--muted)}.calendar-day-heading{font:inherit;margin:0 0 .65rem;display:flex;align-items:center;gap:.45rem}.calendar-day time{display:inline-grid;place-items:center;min-width:28px;height:28px;font-size:.9rem;font-weight:600}.calendar-day.is-today time{background:var(--forest);color:var(--paper-soft);border-radius:50%}.calendar-day-weekday{display:none;text-transform:capitalize}.calendar-entry{display:block;overflow:hidden;background:var(--paper-deep);border-left:3px solid var(--terra);border-radius:5px;margin:.5rem 0 0;text-decoration:none!important;color:var(--ink)!important;transition:box-shadow .15s}.calendar-entry:hover{box-shadow:0 0 0 1px var(--terra)}.calendar-entry.is-imported{border-left-color:var(--forest)}.calendar-entry.is-cancelled{opacity:.75}.calendar-entry.is-cancelled strong{text-decoration:line-through}.calendar-entry-copy{display:flex;flex-direction:column;gap:.3rem;padding:.65rem}.calendar-entry-time{font-size:.7rem;color:var(--terra);font-weight:600}.calendar-entry-title{font-size:.85rem;line-height:1.4;overflow-wrap:anywhere;font-weight:600}.calendar-entry-place{font-size:.7rem;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}.calendar-entry-image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.calendar-day-empty{display:none}.calendar-scroll-hint{display:none;font-size:.75rem;color:var(--muted)}
.calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper-soft);margin-bottom:1.1rem}.calendar-day-tab{min-width:0;display:flex;align-items:center;justify-content:center;gap:.6rem;border:0;border-right:1px solid var(--line);padding:.75rem .5rem;background:none;color:var(--ink);font:inherit;cursor:pointer}.calendar-day-tab:last-child{border-right:0}.calendar-tab-weekday{text-transform:capitalize;font-size:.8rem}.calendar-day-tab strong{font-size:1.15rem}.calendar-tab-count{display:grid;place-items:center;min-width:18px;height:18px;border-radius:50%;font-size:.65rem;background:var(--paper-deep);color:var(--muted)}.calendar-day-tab.is-today{box-shadow:inset 0 -3px var(--terra)}.calendar-day-tab[aria-pressed=true]{background:var(--forest);color:var(--paper-soft)}.calendar-reset{border:0;background:none;font:inherit;font-size:.8rem;color:var(--forest);text-decoration:underline;cursor:pointer;padding:.25rem 0 .75rem}.calendar-grid--week{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1rem;background:none;border:0;border-radius:0;overflow:visible}.calendar-grid--week .calendar-day{min-height:0;background:none;padding:0}.calendar-grid--week .calendar-day-weekday{display:inline;font-size:.85rem}.calendar-grid--week .calendar-day-heading{padding-bottom:.4rem;margin-bottom:0;border-bottom:1px solid var(--line)}.calendar-grid--week .calendar-entry{background:var(--paper-soft);border:1px solid var(--line)}.calendar-grid--week .calendar-entry-title{font-size:1rem}.calendar-grid--week .calendar-entry-copy{padding:.85rem}.calendar-grid--week .calendar-day-empty{display:block;font-size:.8rem;color:var(--muted);padding:1rem 0}
/* Days form one chronological list on both public calendar pages. */
.calendar-grid--week{display:flex;flex-direction:column;gap:0}
.calendar-grid--week .calendar-day{display:grid;grid-template-columns:76px minmax(0,1fr);gap:1.25rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.calendar-grid--week .calendar-day:first-child{padding-top:0}
.calendar-grid--week .calendar-day-heading{display:flex;flex-direction:column;justify-content:flex-start;gap:.15rem;border:0;margin:0;padding:.7rem 0 0;align-self:start}
.calendar-grid--week .calendar-day-weekday{font-size:.8rem;color:var(--muted)}
.calendar-grid--week .calendar-day time{font-family:var(--font-display);font-size:2rem;font-weight:500;min-width:45px;height:45px}
.calendar-day-entries{min-width:0}
.calendar-grid--week .calendar-day-entries{display:grid;gap:.65rem}
.calendar-grid--week .calendar-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:0;border-radius:7px}
.calendar-grid--week .calendar-entry:has(.calendar-entry-image){grid-template-columns:112px minmax(0,1fr) auto}
.calendar-grid--week .calendar-entry::after{content:'→';color:var(--forest);padding-right:1rem}
.calendar-grid--week .calendar-entry-image{width:100%;height:100%;min-height:112px;max-height:160px;aspect-ratio:auto;object-fit:cover}
.calendar-grid--week .calendar-entry-copy{padding:.85rem 1rem;gap:.2rem}
.calendar-grid--week .calendar-entry-title{font-family:var(--font-display);font-size:1.25rem;line-height:1.3;font-weight:500}
.calendar-entry-source{color:var(--muted);font-size:.7rem;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:1000px){.calendar-scroll-hint{display:block}.calendar-day-tab{gap:.3rem}.calendar-tab-count{display:none}}
@media(max-width:700px){.calendar-week-strip{margin-bottom:1rem}.calendar-day-tab{flex-direction:column;gap:0;padding:.55rem .1rem}.calendar-tab-weekday{font-size:.7rem}.calendar-day-tab strong{font-size:1.05rem}.calendar-grid--week .calendar-day{grid-template-columns:44px minmax(0,1fr);gap:.65rem;padding:.8rem 0}.calendar-grid--week .calendar-day time{font-size:1.7rem;min-width:37px;height:37px}.calendar-grid--week .calendar-entry:has(.calendar-entry-image){grid-template-columns:72px minmax(0,1fr) auto}.calendar-grid--week .calendar-entry-image{min-height:105px}.calendar-grid--week .calendar-entry-title{font-size:1.05rem}.calendar-grid--week .calendar-entry-copy{padding:.7rem}.calendar-grid--week .calendar-entry::after{padding-right:.6rem}.calendar-grid--week .calendar-entry-source{font-size:.65rem}}
