/* Календарь практик (см. lk-calendar.js) */
.lk-cal-sec{ padding:100px 0; }
.lk-cal{ position:relative; max-width:1100px; margin:40px auto 0; background:var(--white-color, #fff); border-radius:24px; padding:30px; box-shadow:0 20px 60px rgba(0,0,0,.06); }
.lk-cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.lk-cal__title{ font-family:var(--accent-font); font-size:28px; font-weight:600; color:var(--primary-color); }
.lk-cal__nav{ width:48px; height:48px; border-radius:50%; border:1px solid var(--divider-color, #0001); background:var(--bg-color, #f7f7f7); font-size:20px; cursor:pointer; }
.lk-cal__nav:hover:not(:disabled){ background:var(--accent-color); }
.lk-cal__nav:disabled{ opacity:.3; cursor:default; }
.lk-cal__dow, .lk-cal__grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:8px; }
.lk-cal__dow span{ text-align:center; font-size:13px; font-weight:600; text-transform:uppercase; opacity:.5; padding-bottom:6px; }
.lk-cal__day{ position:relative; min-height:96px; border-radius:14px; background:var(--bg-color, #f7f7f7); padding:10px; text-align:left; border:0;
  display:flex; flex-direction:column; gap:6px; font-family:inherit; }
.lk-cal__day.is-empty{ background:transparent; }
.lk-cal__day.is-we .lk-cal__num{ opacity:.55; }
.lk-cal__day.is-past{ opacity:.45; }
.lk-cal__num{ font-size:15px; font-weight:600; color:var(--primary-color); }
.lk-cal__day.has-ev{ background:var(--accent-color); cursor:pointer; transition:transform .2s, box-shadow .2s; }
.lk-cal__day.has-ev:hover, .lk-cal__day.has-ev.is-active{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.15); }
.lk-cal__ev{ font-size:13px; line-height:1.25; font-weight:700; color:var(--primary-color); }
.lk-cal__time{ margin-top:auto; font-size:12px; font-weight:600; opacity:.7; color:var(--primary-color); }
.lk-cal__legend{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:20px; font-size:14px; opacity:.75; }
.lk-cal__legend span{ display:inline-flex; align-items:center; gap:8px; }
.lk-cal__dot{ width:10px; height:10px; border-radius:3px; background:var(--accent-color); display:inline-block; }

.lk-cal__pop{ position:absolute; z-index:50; width:380px; background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.25);
  display:none; }
.lk-cal__pop.is-open{ display:block; animation:lkCalIn .2s ease; }
@keyframes lkCalIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.lk-cal__x{ position:absolute; top:10px; right:10px; z-index:2; width:34px; height:34px; border-radius:50%; border:0; background:rgba(0,0,0,.5); color:#fff; font-size:22px; line-height:32px; cursor:pointer; padding:0; }
.lk-cal__pimg{ height:230px; background-size:cover; background-position:center 35%; }
.lk-cal__pbody{ padding:18px 20px 20px; }
.lk-cal__when{ font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--accent-color); filter:brightness(.7); }
.lk-cal__pbody h3{ font-size:22px; margin:6px 0 8px; }
.lk-cal__meta{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.lk-cal__meta span{ font-size:13px; background:var(--bg-color, #f7f7f7); border-radius:20px; padding:5px 12px; }
.lk-cal__form{ display:flex; flex-direction:column; gap:10px; }
.lk-cal__form input[type=text], .lk-cal__form input[type=tel]{ width:100%; border:1px solid var(--divider-color, #0002); border-radius:12px; padding:11px 14px; font-size:15px; background:var(--bg-color, #f7f7f7); }
.lk-cal__form .lk-chip{ padding:7px 14px; font-size:14px; }
.lk-cal__cons{ display:flex; gap:8px; font-size:12px; line-height:1.4; opacity:.75; }
.lk-cal__cons input{ accent-color:var(--accent-color); margin-top:2px; }
.lk-cal__err{ color:#c62828; font-size:13px; font-weight:600; min-height:0; }
.lk-cal__form .btn-default{ width:100%; text-align:center; }
.lk-cal__more{ display:inline-block; margin-top:12px; font-weight:700; text-decoration:underline; color:var(--primary-color); }
.lk-cal__note{ font-size:14px; opacity:.7; }
.lk-cal__ok{ background:var(--bg-color, #f7f7f7); border-radius:12px; padding:14px; font-size:14px; line-height:1.5; }
html.lk-cal-lock{ overflow:hidden; }

@media (max-width:767px){
  .lk-cal-sec{ padding:60px 0; }
  .lk-cal{ padding:16px 10px; border-radius:18px; }
  .lk-cal__title{ font-size:20px; }
  .lk-cal__dow, .lk-cal__grid{ gap:4px; }
  .lk-cal__day{ min-height:54px; padding:6px 4px; border-radius:10px; align-items:center; }
  .lk-cal__time{ display:none; }
  .lk-cal__ev{ font-size:0; width:8px; height:8px; border-radius:50%; background:var(--primary-color); }   /* на мобиле — точка, название в попапе */
  .lk-cal__pop{ position:fixed; left:0 !important; right:0; bottom:0; top:auto !important; width:100%; max-height:88vh; overflow:auto; border-radius:20px 20px 0 0; z-index:99999; }
  .lk-cal__pop.is-open{ animation:lkCalUp .25s ease; }
  @keyframes lkCalUp{ from{ transform:translateY(100%); } to{ transform:none; } }
}
