
/* ===== CalKit: shared month/times/sheet (Marim) ===== */
.ck-month-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; font-size: 14px; font-weight: 800; text-transform: capitalize; }
.ck-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.ck-wd { padding: 4px 0 6px; font-size: 10px; font-weight: 700; text-align: center; text-transform: uppercase; opacity: .45; }
.ck-day { position: relative; display: grid; place-items: center; aspect-ratio: 1; min-height: 34px; border: 0; border-radius: var(--ck-radius, 50%); background: none; color: var(--ck-text, var(--ink)); font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; transition: background .18s, color .18s; }
.ck-day::after { content: ""; position: absolute; bottom: 14%; width: 4px; height: 4px; border-radius: 50%; background: transparent; }
.ck-day--open::after { background: var(--ck-secondary, #19a974); }
.ck-day--call::after { background: var(--ck-accent, var(--red)); }
.ck-day--open:hover { background: color-mix(in srgb, var(--ck-secondary, #19a974) 18%, transparent); }
.ck-day--soldout, .ck-day--none, .ck-day--past, .ck-day--out, .ck-day--unknown { color: rgba(6,46,43,.28); cursor: default; }
.ck-day--soldout span { text-decoration: line-through; }
.ck-day.is-today span { border-bottom: 1.5px solid currentColor; }
.ck-day.is-sel { background: var(--ck-selected, var(--ink)); color: #fff; }
.ck-day.is-sel::after { background: var(--ck-accent, var(--red)); }
.ck-times-title { display: grid; gap: 3px; margin-bottom: 12px; }
.ck-times-title b { font-size: 15px; text-transform: capitalize; }
.ck-times-title span { font-size: 11px; opacity: .6; }
.ck-slot-list { display: grid; gap: 6px; }
.ck-slot { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 8px; padding: 11px 13px; border: 1px solid var(--ck-line, var(--line)); border-radius: var(--ck-radius, 0); background: var(--ck-surface, #fff); color: var(--ck-text, var(--ink)); transition: border-color .15s, transform .15s; }
.ck-slot b { font-size: 16px; }
.ck-slot small { font-size: 11px; opacity: .55; }
.ck-slot span { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ck-accent, var(--red)); }
a.ck-slot:hover { border-color: var(--ck-accent, var(--red)); transform: translateX(2px); }
.ck-slot--soldout { background: var(--ck-surface-muted, #f1efe7); color: color-mix(in srgb, var(--ck-text, var(--ink)) 40%, transparent); }
.ck-slot--soldout b { text-decoration: line-through; }
.ck-slot--call span { color: var(--ck-accent, var(--red)); }
.ck-msg { padding: 10px 0; font-size: 13px; opacity: .8; }
.ck-msg button { border: 0; background: none; color: var(--ck-accent, var(--red)); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.ck-icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--ck-line, var(--line)); border-radius: var(--ck-radius, 50%); background: var(--ck-surface, #fff); color: var(--ck-text, var(--ink)); font-size: 15px; cursor: pointer; }
.ck-icon:disabled { opacity: .3; cursor: default; }
.ck-mnav { display: flex; gap: 6px; }

.ck-sheet { position: fixed; inset: 0; z-index: 400; pointer-events: none; }
.ck-sheet-backdrop { position: absolute; inset: 0; background: rgba(20,19,27,.62); opacity: 0; transition: opacity .25s; }
.ck-sheet-panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 88svh; overflow: auto; padding: 8px 18px calc(22px + env(safe-area-inset-bottom)); background: var(--ck-surface, #fff); color: var(--ck-text, var(--ink)); border-top: 6px solid var(--ck-accent, var(--red)); border-radius: var(--ck-panel-radius, 18px) var(--ck-panel-radius, 18px) 0 0; transform: translateY(100%); transition: transform .32s cubic-bezier(.2,.8,.2,1); }
.ck-sheet.is-open { pointer-events: auto; }
.ck-sheet.is-open .ck-sheet-backdrop { opacity: 1; }
.ck-sheet.is-open .ck-sheet-panel { transform: none; }
.ck-sheet-grab { width: 40px; height: 4px; margin: 4px auto 10px; border-radius: 4px; background: var(--ck-secondary, rgba(6,46,43,.2)); }
.ck-sheet-head { display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; gap: 8px; margin-bottom: 14px; }
.ck-sheet-head b { text-align: center; font-size: 15px; }
.ck-sheet-head .ck-back[hidden] { visibility: hidden; display: grid; }
.ck-sheet .ck-day { min-height: 42px; font-size: 15px; }
html.ck-lock { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .ck-sheet-panel, .ck-sheet-backdrop, .ck-day, .ck-slot { transition: none !important; } }

/* Mobile: first screen = photo + tour + rating; calendar via sheet */
@media (max-width: 900px) {
  .hero--book .cal { display: none; }
  .hero.hero--book, .tour-hero.hero--book { display: flex !important; align-items: flex-end; min-height: calc(100svh - 72px) !important; }
  .hero--book .hero-media, .hero--book .tour-hero-media { height: 100% !important; bottom: 0 !important; }
  .hero--book .hero-shade { height: 100%; bottom: 0; }
  .hero--book .hero-grid { padding: 90px var(--pad) 34px; }
  .hero--book .hero-copy, .hero--book .tour-hero-copy { min-height: 0; }
  .hero--book h1 { font-size: clamp(44px, 13vw, 64px) !important; }
  .hero--book .hero-line { font-size: 15px; }
  .rating-slot { min-height: 0; }
}
@media (min-width: 901px) {
  .ck-sheet { display: grid; place-items: center; }
  .ck-sheet-panel { position: relative; left: auto; right: auto; bottom: auto; width: 420px; max-height: 80vh; border-radius: var(--ck-panel-radius, 16px); padding: 18px 22px 24px; transform: translateY(12px) scale(.98); opacity: 0; transition: transform .25s, opacity .25s; }
  .ck-sheet.is-open .ck-sheet-panel { transform: none; opacity: 1; }
  .ck-sheet-grab { display: none; }
}
