/* Add-on "ics" (P7) — the calendar menu on the card page. */
.ics-row-main { display: flex; justify-content: center; }
.ics-menu { position: relative; display: inline-block; }
.ics-menu > summary { list-style: none; }
.ics-menu > summary::-webkit-details-marker { display: none; }
.ics-main { min-height: 48px; padding: 10px 22px; font-size: 15px; }
.ics-main::before { content: "\1F4C5"; margin-right: 4px; }
.ics-options {
  position: absolute; z-index: 30; top: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  min-width: 260px; max-width: calc(100vw - 32px); display: flex; flex-direction: column;
  background: #fff; border: 1px solid rgba(181,138,90,0.35); border-radius: 12px;
  box-shadow: 0 14px 34px rgba(60,40,30,0.18); overflow: hidden;
}
.ics-menu-sm .ics-options { left: auto; right: 0; transform: none; }
.ics-option { padding: 12px 16px; font-family: var(--sans); font-size: 14px; color: var(--ink); text-decoration: none; border-bottom: 1px solid rgba(0,0,0,0.06); }
.ics-option:last-child { border-bottom: 0; }
.ics-option:hover, .ics-option:focus-visible { background: var(--cream); outline: none; }
.ics-parts { list-style: none; margin: 0 0 var(--sp-3); padding: 0; }
.ics-part {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 6px 0; border-bottom: 1px solid rgba(181,138,90,0.25);
}
.ics-part-text { display: flex; flex-direction: column; min-width: 0; }
.ics-part-title { font-family: var(--serif); font-size: 17px; line-height: 1.3; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.ics-all { margin-top: var(--sp-1); }
/* paper: an open calendar menu is a list of apps, not something to read —
   the print filter opens every <details> (FAQ answers), so its options
   would print once per programme item */
@media print { .ics-options { display: none !important; } }
