/* ==========================================================================
   kalender.css: availability calendar (display only)
   ========================================================================== */
.cal-intro{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1.6rem;}
.cal-legend{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.84rem;color:var(--ink-soft);align-items:center;list-style:none;}
.cal-legend li{display:inline-flex;align-items:center;gap:.5rem;line-height:1.35;}
.lg-split{display:inline-grid;grid-template-rows:1fr 1fr;border:1.5px solid var(--gray-300);border-radius:7px;overflow:hidden;}
.lg-split i{font-style:normal;font-size:.66rem;padding:.1rem .45rem;line-height:1.4;}
.lg-split i+i{border-top:1px solid var(--gray-300);}
.cal-legend .bl{width:18px;height:18px;}

.cal-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.6rem;position:relative;border:1px solid var(--gray-100);}
.cal-month{padding:0;}
.cal-month + .cal-month{margin-top:2.4rem;}
.js .cal-month + .cal-month{margin-top:0;}
.cal-month[hidden]{display:none;}
.cal-head{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.2rem;}
.js .cal-head{justify-content:space-between;}
.cal-head h2{font-size:clamp(1.25rem,2.4vw,1.6rem);}
.cal-nav{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gray-300);background:#fff;color:var(--ink);display:grid;place-items:center;transition:border-color .25s ease,color .25s ease;}
.cal-nav .ico{width:20px;height:20px;}
.cal-nav:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}
.cal-nav:disabled{opacity:.3;cursor:default;}
.cal-nav[hidden]{display:none;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;}
.cal-wd{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);text-align:center;padding-bottom:.3rem;font-weight:520;}
.cal-wd.we{color:var(--m-700);}
.cal-day{position:relative;min-height:128px;border-radius:12px;border:1.5px solid var(--gray-100);background:#fff;padding:.45rem .55rem;display:flex;flex-direction:column;}
.cal-day .num{font-size:.92rem;font-weight:540;position:relative;z-index:1;pointer-events:none;}
.cal-day.empty{border:none;background:none;}
.cal-day.we{background:var(--m-50);}
.cal-day.past,.cal-day.out{background:var(--gray-50);border-color:transparent;color:var(--gray-300);}
.cal-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}
.cal-day.today .num{color:var(--accent);}
.bl{display:block;}
.cal-halves{flex:1;display:grid;grid-template-rows:1fr 1fr;margin:.35rem -.55rem -.45rem;border-top:1px solid var(--gray-100);}
.cal-h{display:flex;align-items:center;justify-content:center;border:none;background:none;padding:0;min-height:38px;}
.cal-h+.cal-h{border-top:1.5px solid var(--gray-200);}
.cal-h.is-f span[aria-hidden]{font-size:.74rem;letter-spacing:.06em;color:var(--m-700);font-weight:500;}
.cal-h.is-b{background:rgba(224,45,45,.08);cursor:pointer;}
.cal-h.is-b:last-child{border-radius:0 0 10px 10px;}
.cal-h.is-b .bl{width:22px;height:22px;transition:transform .2s ease;}
.cal-h.is-b:hover .bl,.cal-h.is-b:focus-visible .bl{transform:scale(1.18) rotate(8deg);}
.cal-day.today .cal-halves{border-top-color:var(--m-200);}
.cal-day.full{background:rgba(224,45,45,.09);border-color:rgba(224,45,45,.22);}
.cal-full{flex:1;display:flex;align-items:center;justify-content:center;border:none;background:none;padding:0;cursor:pointer;}
.cal-full .bl{width:52px;height:52px;transition:transform .2s ease;}
.cal-full:hover .bl,.cal-full:focus-visible .bl{transform:scale(1.12) rotate(6deg);}

.cal-pop{position:absolute;z-index:20;left:0;top:0;background:var(--dark);color:#fff;border-radius:12px;padding:.75rem .95rem;font-size:.84rem;line-height:1.5;box-shadow:0 14px 34px rgba(0,0,0,.25);min-width:180px;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;}
.cal-pop.show{opacity:1;transform:none;pointer-events:auto;}
.cal-pop b{display:block;color:var(--m-200);font-weight:600;margin-bottom:.15rem;}
.cal-pop .t{display:flex;align-items:center;gap:.45rem;}
.cal-pop .t::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--booked);flex:none;}
.cal-pop::after{content:"";position:absolute;left:var(--ax,50%);top:100%;border:7px solid transparent;border-top-color:var(--dark);transform:translateX(-50%);}
.cal-note{font-size:.8rem;color:var(--ink-soft);margin-top:1rem;}
.cal-error{background:var(--m-50);border:1.5px solid var(--m-200);border-radius:var(--radius);padding:1.2rem 1.4rem;}
.cal-error a{color:var(--m-700);font-weight:600;}

.cal-cta{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;background:var(--dark);color:#fff;border-radius:var(--radius-lg);padding:2rem 2.2rem;margin-top:2rem;position:relative;overflow:hidden;}
.cal-cta > div{position:relative;z-index:1;}
.cal-cta h2{font-size:1.35rem;font-weight:620;margin-bottom:.3rem;}
.cal-cta p{color:rgba(255,255,255,.75);max-width:52ch;font-size:.93rem;}
.btn-tel{font-size:1.2rem;padding:1.15rem 2rem;position:relative;z-index:1;font-weight:640;box-shadow:0 0 0 7px rgba(216,46,140,.22),0 14px 34px rgba(216,46,140,.4);}
.btn-tel .ico{width:20px;height:20px;}

@media (max-width:640px){
  .cal-card{padding:1rem .7rem;}
  .cal-grid{gap:.3rem;}
  .cal-day{min-height:88px;padding:.3rem .35rem;border-radius:9px;}
  .cal-halves{margin:.25rem -.35rem -.3rem;}
  .cal-h{min-height:26px;}
  .cal-h.is-f span[aria-hidden]{font-size:.58rem;letter-spacing:0;}
  .cal-h.is-b .bl{width:15px;height:15px;}
  .cal-full .bl{width:30px;height:30px;}
  .cal-day .num{font-size:.8rem;}
  .cal-wd{font-size:.62rem;letter-spacing:.04em;}
  .cal-cta{padding:1.6rem 1.3rem;}
  .btn-tel{font-size:1.05rem;padding:1rem 1.4rem;}
}
