/* Calendor-Bereich: Layout und Aufbau nach dem Melanor-Bereich. */
.calendor-intro {
  max-width:920px;
  margin:0 auto 34px;
  color:var(--text-soft,#c4d2dd);
  font-size:1.05rem;
  line-height:1.8
}

.calendor-facts {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:28px 0 38px
}

.calendor-fact {
  padding:17px 18px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:14px;
  background:linear-gradient(180deg,rgba(14,32,45,.76),rgba(7,18,27,.72));
  box-shadow:inset 0 1px rgba(255,255,255,.035)
}

.calendor-fact strong {
  display:block;
  margin-bottom:5px;
  color:var(--ice,#b9e4f5);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem
}

.calendor-fact span {
  color:var(--text-soft,#c4d2dd);
  line-height:1.45
}

.calendor-section-title {
  margin:42px 0 18px;
  padding-bottom:9px;
  border-bottom:1px solid var(--line,rgba(159,210,238,.2))
}

.calendor-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px;
  margin:18px 0 40px
}

.calendor-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:220px;
  padding:22px;
  overflow:hidden;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:16px;
  text-decoration:none;
  background:radial-gradient(circle at 88% 6%,rgba(164,218,243,.11),transparent 32%),linear-gradient(160deg,rgba(14,32,45,.91),rgba(7,17,25,.84));
  box-shadow:0 16px 42px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.04);
  transition:transform .18s ease,border-color .18s ease,background .18s ease
}

.calendor-card:hover,.calendor-card:focus-visible {
  transform:translateY(-3px);
  border-color:rgba(178,228,248,.52);
  background:radial-gradient(circle at 88% 6%,rgba(164,218,243,.17),transparent 34%),linear-gradient(160deg,rgba(17,40,56,.94),rgba(7,17,25,.88))
}

.calendor-card .kicker {
  margin-bottom:8px;
  color:var(--ice,#b9e4f5);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase
}

.calendor-card h2,.calendor-card h3 {
  margin:0 0 10px;
  color:var(--text,#eef6fb);
  font-size:clamp(1.25rem,2vw,1.65rem)
}

.calendor-card p {
  margin:0;
  color:var(--text-soft,#c4d2dd);
  line-height:1.62
}

.calendor-card .jump {
  margin-top:auto;
  padding-top:18px;
  color:var(--ice,#b9e4f5);
  font-weight:700
}

.calendor-reading {
  display:grid;
  grid-template-columns:minmax(0,1fr) 270px;
  gap:34px;
  align-items:start
}

.calendor-reading-single {
  grid-template-columns:minmax(0,1fr)
}

.calendor-article {
  min-width:0
}

.calendor-article h2 {
  margin-top:44px;
  padding-bottom:9px;
  border-bottom:1px solid var(--line,rgba(159,210,238,.2))
}

.calendor-article h2:first-child {
  margin-top:0
}

.calendor-article h3 {
  margin-top:30px;
  color:var(--ice,#b9e4f5)
}

.calendor-article p,.calendor-article li {
  color:var(--text-soft,#c4d2dd);
  line-height:1.78
}

.calendor-article ul {
  padding-left:1.2rem
}

.calendor-toc {
  position:sticky;
  top:100px;
  padding:18px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:14px;
  background:rgba(7,17,25,.74);
  backdrop-filter:blur(10px)
}

.calendor-toc h3 {
  margin:0 0 12px;
  color:var(--text,#eef6fb);
  font-size:1rem
}

.calendor-toc a {
  display:block;
  padding:7px 0;
  color:var(--text-soft,#c4d2dd);
  text-decoration:none;
  border-bottom:1px solid rgba(159,210,238,.08)
}

.calendor-toc a:hover,.calendor-toc a:focus-visible {
  color:var(--ice,#b9e4f5)
}

.calendor-timeline {
  position:relative;
  margin:24px 0 40px;
  padding-left:30px
}

.calendor-timeline:before {
  content:"";
  position:absolute;
  left:9px;
  top:7px;
  bottom:7px;
  width:1px;
  background:linear-gradient(var(--ice,#b9e4f5),rgba(185,228,245,.08))
}

.calendor-event {
  position:relative;
  margin:0 0 24px;
  padding:17px 19px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:13px;
  background:rgba(8,20,29,.68)
}

.calendor-event:before {
  content:"";
  position:absolute;
  left:-27px;
  top:24px;
  width:11px;
  height:11px;
  border:2px solid var(--ice,#b9e4f5);
  border-radius:50%;
  background:#07111b
}

.calendor-event time {
  display:inline-block;
  margin-bottom:5px;
  color:var(--ice,#b9e4f5);
  font-weight:800
}

.calendor-event h3 {
  margin:0 0 8px;
  color:var(--text,#eef6fb);
  font-size:1.13rem
}

.calendor-event p {
  margin:.55rem 0
}

.calendor-anchorbar {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:22px 0 30px
}

.calendor-anchorbar a {
  padding:8px 11px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:999px;
  color:var(--text-soft,#c4d2dd);
  text-decoration:none;
  background:rgba(9,22,32,.66)
}

.calendor-anchorbar a:hover,.calendor-anchorbar a:focus-visible {
  border-color:rgba(185,228,245,.5);
  color:var(--ice,#b9e4f5)
}

.calendor-page-nav {
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-top:46px;
  padding-top:20px;
  border-top:1px solid var(--line,rgba(159,210,238,.2))
}

.calendor-page-nav a {
  color:var(--ice,#b9e4f5);
  text-decoration:none
}

.calendor-note {
  margin:22px 0;
  padding:15px 17px;
  border-left:3px solid var(--ice,#b9e4f5);
  background:rgba(12,29,40,.63);
  color:var(--text-soft,#c4d2dd);
  line-height:1.7
}

.calendor-keyline {
  padding:8px 12px;
  border-left:2px solid rgba(185,228,245,.35);
  background:rgba(9,22,32,.38)
}

.calendor-map {
  margin:1.2rem 0 2rem;
  padding:10px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:16px;
  background:rgba(7,17,25,.72)
}

.calendor-map img {
  display:block;
  width:100%;
  height:auto;
  border-radius:10px
}

.calendor-map figcaption {
  padding:9px 5px 2px;
  color:var(--text-soft,#c4d2dd);
  text-align:center
}

.history-portrait-single,.history-portrait-inline {
  float:right!important;
  width:min(28%,240px)!important;
  max-width:240px!important;
  margin:.35rem 0 1.25rem 1.6rem!important
}

.history-portrait-inline-left {
  float:left!important;
  width:min(28%,240px)!important;
  max-width:240px!important;
  margin:.35rem 1.6rem 1.25rem 0!important
}

.history-portrait-card {
  padding:10px;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:16px;
  background:rgba(7,17,25,.72);
  box-shadow:0 14px 34px rgba(0,0,0,.20)
}

.history-portrait-card img,.history-portrait-inline-left img {
  display:block;
  width:100%;
  height:auto;
  border-radius:10px
}

.history-portrait-card figcaption,.history-portrait-inline-left figcaption {
  padding:10px 4px 2px;
  color:var(--text-soft,#c4d2dd);
  text-align:center;
  font-size:.9rem;
  line-height:1.45
}

.history-portrait-card figcaption strong,.history-portrait-card figcaption span,.history-portrait-inline-left figcaption strong,.history-portrait-inline-left figcaption span {
  display:block
}

.history-portrait-card figcaption strong,.history-portrait-inline-left figcaption strong {
  color:var(--ice,#b9e4f5)
}

.history-portrait-fallback,.calendor-portrait-fallback {
  display:grid;
  place-items:center;
  aspect-ratio:4/5;
  min-height:118px;
  padding:12px;
  box-sizing:border-box;
  border:1px dashed rgba(178,228,248,.38);
  border-radius:9px;
  background:linear-gradient(160deg,rgba(14,32,45,.82),rgba(7,17,25,.78));
  color:var(--text-soft,#c4d2dd);
  text-align:center
}

.history-portrait-fallback[hidden],.calendor-portrait-fallback[hidden] {
  display:none
}

.history-portrait-fallback strong,.calendor-portrait-fallback strong {
  display:block;
  color:var(--ice,#b9e4f5);
  margin-bottom:4px
}

.calendor-profile {
  display:grid;
  grid-template-columns:175px minmax(0,1fr);
  gap:22px;
  align-items:start;
  margin:1.35rem 0 1.8rem;
  clear:both
}

.calendor-profile-copy {
  min-width:0
}

.calendor-profile-copy h3 {
  margin-top:0
}

.calendor-profile-portrait {
  width:175px;
  max-width:175px;
  margin:0;
  padding:8px;
  box-sizing:border-box;
  border:1px solid var(--line,rgba(159,210,238,.2));
  border-radius:14px;
  background:rgba(7,17,25,.72)
}

.calendor-profile-portrait img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:9px
}

.calendor-profile-portrait figcaption {
  margin-top:8px;
  color:var(--text-soft,#c4d2dd);
  font-size:.78rem;
  line-height:1.3;
  text-align:center;
  overflow-wrap:anywhere
}

.calendor-profile-portrait figcaption strong,.calendor-profile-portrait figcaption span {
  display:block
}

.calendor-profile-portrait figcaption strong {
  color:var(--ice,#b9e4f5);
  font-size:.89rem;
  margin-bottom:3px
}

.calendor-creature-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:.9rem 0 1.35rem
}

.calendor-creature-card {
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  gap:12px;
  align-items:start;
  margin:0;
  padding:10px;
  box-sizing:border-box;
  border:1px solid var(--line,rgba(159,210,238,.18));
  border-radius:14px;
  background:rgba(7,17,25,.62)
}

.calendor-creature-card img {
  display:block;
  width:104px;
  max-width:104px;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:9px
}

.calendor-creature-card .calendor-portrait-fallback {
  width:104px;
  max-width:104px;
  min-height:128px
}

.calendor-creature-card figcaption {
  min-width:0;
  margin:0;
  padding:2px 3px;
  color:var(--text-soft,#c4d2dd);
  font-size:.81rem;
  line-height:1.35;
  text-align:left;
  overflow-wrap:anywhere
}

.calendor-creature-card figcaption strong,.calendor-creature-card figcaption span {
  display:block
}

.calendor-creature-card figcaption strong {
  color:var(--ice,#b9e4f5);
  font-size:.91rem;
  margin-bottom:4px
}

.history-part-nav {
  display:grid;
  gap:6px
}

.history-part-nav a[aria-current="page"] {
  color:var(--ice,#b9e4f5);
  font-weight:700
}

@media(max-width:980px) {
  .calendor-facts {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .calendor-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .calendor-reading {
    grid-template-columns:1fr
  }
  .calendor-toc {
    position:static;
    order:-1
  }
}

@media(max-width:760px) {
  .history-portrait-single,.history-portrait-inline,.history-portrait-inline-left {
    float:none!important;
    width:min(100%,240px)!important;
    max-width:240px!important;
    margin:1rem auto 1.4rem!important
  }
  .calendor-profile {
    grid-template-columns:1fr
  }
  .calendor-profile-portrait {
    width:min(100%,220px);
    max-width:220px;
    margin:0 auto 1rem
  }
  .calendor-creature-grid {
    grid-template-columns:1fr
  }
}

@media(max-width:640px) {
  .calendor-facts,.calendor-grid {
    grid-template-columns:1fr
  }
  .calendor-card {
    min-height:0
  }
  .calendor-page-nav {
    flex-direction:column;
    align-items:flex-start
  }
}

@media(max-width:480px) {
  .calendor-creature-card {
    grid-template-columns:86px minmax(0,1fr)
  }
  .calendor-creature-card img,.calendor-creature-card .calendor-portrait-fallback {
    width:86px;
    max-width:86px
  }
}
