/* KeepItDirect standard template: Host Portal booking widget (light theme) */
.avail-layout.avail-stack { grid-template-columns: minmax(0, 1fr); }
.book-card { scroll-margin-top: 5.25rem; }
@media (min-width: 880px) { .calendar-card, .book-card { padding: 1.75rem 2rem; } .book-card .lead { max-width: 46rem; } }
.cal-head { justify-content: flex-end; }
.cal-months { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
.cal-pane-title { font-size: 1.2rem; font-weight: 700; margin-bottom: 0.75rem; text-align: center; color: var(--ink); }
.cal-pane--secondary { display: none; }
@media (min-width: 900px) {
  .cal-months { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .cal-pane--secondary { display: block; }
  .cal-pane--secondary[hidden] { display: none; }
  .avail-stack .cal-day { min-height: 2.35rem; font-size: 0.9rem; }
}
.cal-day.selectable { cursor: pointer; width: 100%; font: inherit; font-size: 0.9rem; border: 1px solid transparent; background: var(--paper); color: var(--ink); transition: background .15s, border-color .15s, color .15s; }
.cal-day.selectable:hover, .cal-day.selectable:focus-visible { background: var(--rose-soft); border-color: var(--rose); outline: none; }
.cal-day.busy.selectable { color: #9aa1ad; text-decoration: line-through; background: #ece8e4; }
.cal-day.in-range { background: var(--rose-soft); border-color: var(--rose); color: var(--rose-dark); font-weight: 600; }
.cal-day.range-start, .cal-day.range-end, .cal-day.range-start:hover, .cal-day.range-end:hover { background: var(--rose); color: #fff; font-weight: 700; text-decoration: none; border-color: transparent; }
.cal-legend .swatch-stay { background: var(--rose); }
.book-summary { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .35rem .75rem; margin-bottom: 1.1rem; padding: .8rem 1rem; border-radius: 12px; border: 1px solid var(--line); background: var(--wash); font-size: .95rem; color: var(--muted); }
.book-summary.is-ready { color: var(--ink); border-color: var(--rose); background: var(--rose-soft); font-weight: 600; }
.book-summary.is-warning { color: var(--rose-dark); }
.book-clear { font: inherit; font-size: .85rem; color: var(--rose); background: none; border: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.book-form { display: grid; gap: .85rem; }
.book-form .field { display: grid; gap: .3rem; min-width: 0; }
.book-form .field-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: .75rem; }
.book-form .book-fields { display: grid; gap: .85rem; }
.book-form .field-row-even { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .book-form .field-row-even { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 880px) {
  .book-form .book-fields { grid-template-columns: 1fr 1.25fr 1fr .6fr; }
  .book-form .book-fields > .field-row { display: contents; }
  .book-form > .btn { justify-self: start; width: auto; min-width: 16rem; }
  .book-foot { display: flex; align-items: flex-start; gap: 1.5rem; margin-top: .4rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
  .book-foot .book-airbnb { width: auto; min-width: 16rem; flex-shrink: 0; margin-bottom: 0; }
  .book-foot .book-meta { margin-top: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1.5rem; flex: 1; }
}
.book-form label { font-size: .78rem; font-weight: 600; color: var(--ink); }
.book-form .optional { font-weight: 400; color: var(--muted); }
.book-form input, .book-form textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper); border: 1px solid #d6d1cb; border-radius: 10px; padding: .7rem .85rem; transition: border-color .15s, box-shadow .15s; }
.book-form textarea { resize: vertical; min-height: 5rem; }
.book-form input::placeholder, .book-form textarea::placeholder { color: #a0a6b1; }
.book-form input:focus, .book-form textarea:focus { outline: none; border-color: var(--rose); box-shadow: 0 0 0 3px rgba(227, 28, 95, .15); }
.book-form.was-validated input:invalid { border-color: var(--rose-dark); }
.book-form .btn { margin: .2rem 0 .65rem; }
.book-form .btn:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.book-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-error { font-size: .9rem; color: var(--rose-dark); }
.form-error:empty { display: none; }
.form-error a { text-decoration: underline; }
.book-quote td { padding: 3px 0; color: var(--ink); }
.book-sent { margin-bottom: .9rem; padding: 1rem 1.1rem; border-radius: 12px; border: 1px solid var(--rose); background: var(--rose-soft); color: var(--ink); font-size: .95rem; }
.book-sent:focus { outline: none; }
.book-sent h4 { font-size: 1.2rem; font-weight: 700; margin-bottom: .4rem; }
.book-sent p + p { margin-top: .4rem; }
.map-card { margin-top: 1.25rem; padding: 0; overflow: hidden; }
.map-frame { aspect-ratio: 16 / 9; background: var(--wash); }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.map-meta { padding: 1rem 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; justify-content: space-between; color: var(--muted); font-size: .92rem; }
.map-meta strong { color: var(--ink); }
.map-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.map-link { color: var(--rose); font-weight: 600; }
.footer-card a.contact-line { display: block; color: var(--rose); font-weight: 600; margin-bottom: .35rem; }
.kid-credit { text-align: center; font-size: 12px; color: var(--muted); padding: 10px 12px; }
.kid-credit a { color: inherit; text-decoration: underline; }

#dates { scroll-margin-top: 5.25rem; }
