/* ═══════════ Terminkalender ═══════════ */

.fld__hint{
  font-size:.92rem;color:var(--ink-3);margin:0 0 .9rem;line-height:1.55;
}

.kal{
  border:1px solid var(--gline);border-radius:16px;
  padding:clamp(12px,2vw,18px);background:var(--milk);
  user-select:none;
}

.kal__top{
  display:flex;align-items:center;justify-content:space-between;gap:.7rem;
  margin-bottom:.9rem;
}
.kal__top strong{
  font-family:var(--serif);font-size:1.24rem;font-weight:600;color:var(--ink);
}
.kal__nav{
  width:42px;height:42px;flex:none;border-radius:50%;
  border:1px solid var(--gline);background:var(--paper);color:var(--ink);
  display:grid;place-items:center;transition:.3s var(--e);
}
.kal__nav svg{width:18px;height:18px}
.kal__nav:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.kal__nav:disabled{opacity:.3;cursor:not-allowed}
.kal__nav:focus-visible{outline:2px solid var(--g2);outline-offset:2px}

.kal__wt{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;
}
.kal__wt span{
  text-align:center;font-size:.72rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-4);padding-block:.3rem;
}

.kal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.kal__leer{display:block}

.kal__t{
  position:relative;
  aspect-ratio:1;min-height:40px;
  display:grid;place-items:center;
  border:1px solid transparent;border-radius:11px;
  background:var(--paper);
  font-size:1rem;font-weight:500;color:var(--ink);
  transition:.28s var(--e);
}
.kal__t:hover:not(:disabled){background:var(--sand);border-color:var(--g2);transform:translateY(-1px)}
.kal__t:focus-visible{outline:2px solid var(--g2);outline-offset:2px}

/* Nicht buchbar */
.kal__t--zu{
  background:transparent;color:var(--ink-4);opacity:.42;
  cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px;
}
/* Feiertag: zusätzlich mit Punkt markiert */
.kal__t--fe{opacity:.5;color:#A4472F}
.kal__pt{
  position:absolute;bottom:5px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:#A4472F;
}
/* Montag – nur nach Absprache */
.kal__t--abs{
  border-style:dashed;border-color:var(--g2);color:var(--g3);
  background:rgba(201,168,124,.08);
}
/* Freitag – Hausbesuch */
.kal__t--mob{border-color:var(--g2);background:rgba(201,168,124,.14);color:var(--g4)}
/* Heute */
.kal__t--heute{box-shadow:inset 0 0 0 1px var(--clay)}
/* Gewählt */
.kal__t.is-on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
  box-shadow:0 6px 16px -8px rgba(47,38,28,.6);
}
.kal__t.is-on .kal__pt{background:var(--paper)}

.kal__leg{
  display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;
  margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--gline);
  font-size:.8rem;color:var(--ink-3);
}
.kal__leg span{display:inline-flex;align-items:center;gap:.45em}
.lg{width:13px;height:13px;border-radius:4px;flex:none;border:1px solid var(--gline)}
.lg--of{background:var(--paper)}
.lg--abs{background:rgba(201,168,124,.12);border-style:dashed;border-color:var(--g2)}
.lg--mob{background:rgba(201,168,124,.2);border-color:var(--g2)}
.lg--zu{background:transparent;opacity:.42;border-style:solid}

/* Rückmeldungen unter dem Kalender */
.fld__note{margin-top:.8rem;font-size:.9rem;line-height:1.55}
.fld__note--info{
  color:var(--g4);background:rgba(201,168,124,.12);
  border-left:3px solid var(--g2);padding:.7rem .9rem;border-radius:0 10px 10px 0;
}
.fld__note--ok{
  color:#2A6B3B;background:rgba(63,154,84,.09);
  border-left:3px solid #3F9A54;padding:.7rem .9rem;border-radius:0 10px 10px 0;
}

@media (max-width:420px){
  .kal__t{min-height:36px;font-size:.94rem;border-radius:9px}
  .kal__grid,.kal__wt{gap:3px}
  .kal__leg{font-size:.75rem;gap:.4rem .8rem}
}
