/* ── RELEASE CALENDAR CUSTOM PROPERTIES (scoped, never bleeds into site) ── */
.cal-root {
  --cc: #F4EDDD;
  --cf: #2D5A3F;
  --cb: #A0432A;
  --ci: #2A2A2A;
  --cm: rgba(42,42,42,0.72);
  --cr: rgba(42,42,42,0.22);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Cormorant Garamond', Georgia, serif;
  --font-mono:    'DM Mono', ui-monospace, Menlo, monospace;
  min-height: 100vh;
  background: var(--cc);
  color: var(--ci);
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.cal-inner { max-width: 680px; margin: 0 auto; padding: 40px 20px 80px; }

/* Header */
.cal-header { border-bottom: 2px solid var(--cf); padding-bottom: 24px; margin-bottom: 28px; }
.cal-header-meta { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.cal-eyebrow { font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.20em; text-transform:uppercase; color:var(--cb); }
.cal-currency-tag { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.14em; color:var(--cm); }
.cal-title { font-family:var(--font-display); font-size:clamp(32px,5.5vw,44px); font-weight:700; line-height:1.05; letter-spacing:-.015em; color:var(--ci); margin-bottom:14px; }
.cal-title em { font-style:italic; font-weight:600; }
.cal-lede { font-family:var(--font-body); font-size:16px; line-height:1.6; color:var(--ci); margin:0 0 12px; font-weight:500; }
.cal-updated { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.04em; color:var(--cm); margin:0; }
.cal-updated strong { color:var(--ci); font-weight:600; }
.cal-byline { font-style:italic; font-size:13px; font-weight:500; color:var(--cm); margin:8px 0 0; }

/* Discord CTA banner */
.cal-discord-cta {
  margin: 0 0 28px; padding: 16px 20px;
  background: rgba(45,90,63,.08); border-left: 4px solid var(--cf);
  font-family: var(--font-display); font-size: 17px; font-style: italic; font-weight: 500; line-height: 1.5; color: var(--ci);
}
.cal-discord-cta a { color: var(--cf); font-weight: 600; font-style: normal; text-decoration: underline; text-underline-offset: 2px; }
.cal-discord-cta a:hover { color: var(--cb); }

/* Filters */
.cal-filters { display:flex; flex-wrap:wrap; gap:20px 28px; align-items:flex-end; margin-bottom:28px; padding-bottom:18px; border-bottom:1.5px solid var(--cr); }
.cal-filter-group { border:none; padding:0; margin:0; }
.cal-filter-legend { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--ci); opacity:.78; padding:0; margin-bottom:8px; }
.cal-chip { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:13px; font-weight:500; color:var(--ci); cursor:pointer; }
.cal-chip input { accent-color:var(--cf); width:16px; height:16px; cursor:pointer; }
.cal-select { font-family:var(--font-mono); font-size:14px; font-weight:500; color:var(--ci); background:var(--cc); border:1.5px solid var(--cr); padding:8px 10px; cursor:pointer; }
.cal-select:focus-visible { border-color:var(--cf); outline:none; }

/* Month accordion (mirrors .calc-guide details) */
.cal-months { display:flex; flex-direction:column; gap:10px; }
.cal-month { border:1.5px solid var(--cr); background:rgba(45,90,63,.04); }
.cal-month[open] { border-color:var(--cf); }
.cal-month-summary {
  list-style:none; cursor:pointer; user-select:none; position:relative;
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:14px 18px;
}
.cal-month-summary::-webkit-details-marker { display:none; }
.cal-month-name { font-family:var(--font-display); font-size:21px; font-style:italic; font-weight:600; color:var(--cf); }
.cal-month-name::before {
  content:"+"; display:inline-block; width:16px; font-family:var(--font-mono); font-style:normal; font-size:18px; margin-right:8px; color:var(--cb);
}
.cal-month[open] .cal-month-name::before { content:"−"; }
.cal-month-count { font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--cm); }
.cal-month-summary:hover { background:rgba(45,90,63,.07); }
.cal-month-summary:focus-visible { outline:2px solid var(--cf); outline-offset:-2px; }
.cal-month-body { padding:4px 18px 18px; border-top:1.5px solid var(--cr); }

/* Release card */
.cal-release { padding:20px 0; border-bottom:1px dashed var(--cr); }
.cal-release:last-child { border-bottom:none; padding-bottom:4px; }
.cal-release-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.cal-release-name { font-family:var(--font-display); font-size:22px; font-weight:700; line-height:1.1; color:var(--ci); margin:0; }

/* Status badges */
.cal-badge { font-family:var(--font-mono); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; padding:3px 9px; border-radius:2px; white-space:nowrap; }
.cal-badge--confirmed { background:var(--cf); color:var(--cc); }
.cal-badge--predicted { background:transparent; color:var(--cb); border:1.5px solid var(--cb); }
.cal-badge--speculative { background:transparent; color:var(--cm); border:1.5px dashed var(--cm); }
.cal-badge--sm { font-size:9px; padding:2px 6px; letter-spacing:.12em; }

/* Products comparison table */
.cal-products { width:100%; border-collapse:collapse; margin:0 0 14px; }
.cal-products th { font-family:var(--font-mono); font-size:10px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--ci); opacity:.78; text-align:left; padding:0 0 6px; border-bottom:1.5px solid var(--cr); }
.cal-products td { font-family:var(--font-body); font-size:15px; font-weight:500; color:var(--ci); padding:7px 0; border-bottom:1px solid var(--cr); }
.cal-products tr:last-child td { border-bottom:none; }
.cal-products .cal-num { text-align:right; font-family:var(--font-mono); font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cal-products th.cal-num { text-align:right; }

/* Dates list */
.cal-dates { display:flex; flex-wrap:wrap; gap:10px 28px; margin:0 0 8px; }
.cal-dates div { display:flex; flex-direction:column; gap:3px; }
.cal-dates dt { font-family:var(--font-mono); font-size:10px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--cm); }
.cal-dates dd { margin:0; font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--ci); display:flex; align-items:center; gap:8px; }

.cal-confidence { display:block; margin-top:4px; font-size:11px; color:var(--cm); font-style:italic; line-height:1.5; }

/* Actions */
.cal-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:14px; }
.cal-ics-btn { font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:8px 14px; background:var(--cf); color:var(--cc); border:none; cursor:pointer; transition:background .15s ease; }
.cal-ics-btn:hover { background:var(--ci); }
.cal-ics-btn:focus-visible { outline:2px solid var(--cb); outline-offset:2px; }
.cal-gcal-link, .cal-pc-link, .cal-discord-link { font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--cf); text-decoration:underline; text-underline-offset:3px; }
.cal-gcal-link:hover, .cal-pc-link:hover, .cal-discord-link:hover { color:var(--cb); }

.cal-pc-tag { font-family:var(--font-mono); font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--cf); border:1px solid var(--cf); border-radius:2px; padding:1px 5px; white-space:nowrap; }
.cal-est-tag { font-family:var(--font-mono); font-size:9px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--cm); cursor:help; }
.cal-market-tba { font-family:var(--font-mono); font-size:11px; font-style:normal; color:var(--cm); cursor:help; }
.cal-sources { margin:12px 0 0; font-family:var(--font-mono); font-size:11px; font-weight:400; color:var(--cm); line-height:1.6; }
.cal-sources a { color:var(--cf); text-decoration:underline; text-underline-offset:2px; }
.cal-sources a:hover { color:var(--cb); }
.cal-empty { font-style:italic; color:var(--cm); padding:24px 0; }

/* How-it-works (mirrors .calc-guide) */
.cal-how { margin:32px 0 0; border:1.5px solid var(--cr); background:rgba(45,90,63,.04); }
.cal-how[open] { border-color:var(--cf); }
.cal-how-summary { list-style:none; cursor:pointer; user-select:none; font-family:var(--font-display); font-size:18px; font-style:italic; font-weight:600; color:var(--cf); padding:14px 18px; }
.cal-how-summary::-webkit-details-marker { display:none; }
.cal-how-summary::before { content:"+"; display:inline-block; width:16px; font-family:var(--font-mono); font-style:normal; font-size:18px; margin-right:8px; color:var(--cb); }
.cal-how[open] .cal-how-summary::before { content:"−"; }
.cal-how-summary:hover { background:rgba(45,90,63,.07); }
.cal-how-summary:focus-visible { outline:2px solid var(--cf); outline-offset:-2px; }
.cal-how-body { padding:16px 22px 18px; border-top:1.5px solid var(--cr); font-size:14px; line-height:1.65; color:var(--ci); }
.cal-how-body p { margin:0 0 10px; }
.cal-how-body p:last-child { margin-bottom:0; }
.cal-how-body strong { font-weight:600; color:var(--ci); }
.cal-how-body em { font-style:italic; font-weight:600; color:var(--cf); }

/* FAQ */
.cal-faq { margin:36px 0 0; }
.cal-faq-title { font-family:var(--font-display); font-size:24px; font-style:italic; font-weight:600; color:var(--ci); margin:0 0 16px; padding-bottom:8px; border-bottom:1.5px solid var(--ci); }
.cal-faq-item { margin-bottom:18px; }
.cal-faq-q { font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--ci); margin:0 0 4px; }
.cal-faq-a { font-size:14px; font-weight:500; line-height:1.6; color:var(--ci); margin:0; }
.cal-faq-a a { color:var(--cf); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cal-faq-a a:hover { color:var(--cb); }

/* Section label (Calendar) */
.cal-section-label { font-family:var(--font-display); font-size:24px; font-style:italic; font-weight:600; color:var(--ci); margin:0 0 16px; padding-bottom:8px; border-bottom:1.5px solid var(--ci); }

/* Byline + footnote */
.cal-footer-note { margin-top:32px; padding-top:22px; border-top:1.5px solid var(--cr); color:var(--cm); line-height:1.65; }
.cal-footer-note-title { font-family:var(--font-display); font-style:italic; font-weight:600; font-size:15px; color:var(--ci); margin-bottom:10px; display:block; }
.cal-footer-note p { font-size:13px; font-weight:500; margin:0 0 8px; }
.cal-footer-note p:last-child { margin-bottom:0; }

/* noscript fallback */
.cal-noscript { margin:24px 0; padding:18px 20px; border:1.5px dashed var(--cr); }
.cal-noscript ul { margin:8px 0 0; padding-left:20px; }
.cal-noscript li { font-size:14px; margin-bottom:6px; }

/* Responsive */
@media (max-width:880px) {
  .cal-actions { gap:10px 12px; }
}
@media (max-width:480px) {
  .cal-inner { padding:28px 16px 60px; }
  .cal-filters { gap:16px 20px; }
  .cal-actions { flex-direction:column; align-items:stretch; }
  .cal-ics-btn { text-align:center; }
  .cal-gcal-link, .cal-pc-link { text-align:center; padding:6px 0; }
  .cal-dates { gap:10px 20px; }
}
@media (max-width:360px) {
  .cal-products td, .cal-products .cal-num { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) {
  .cal-ics-btn, .cal-month-summary, .cal-how-summary { transition:none; }
}
