/* Property Reservations — front end.
 * Inherits the theme's font family; everything else is locked with !important
 * where themes / Elementor kits commonly restyle buttons, inputs and headings. */
.prsv,.prsv-modal{--prsv-accent:#1F3A5F;--prsv-ink:#1f2937;--prsv-muted:#6b7280;--prsv-line:#e5e7eb;--prsv-soft:#f4f5f7;--prsv-taken:#f6dada;--prsv-taken-ink:#a24646}
.prsv{color:var(--prsv-ink);box-sizing:border-box;font-size:15px;line-height:1.5;text-align:left;container-type:inline-size;width:100%;max-width:100%}
.prsv *,.prsv *::before,.prsv *::after{box-sizing:border-box}
.prsv [hidden],.prsv-modal[hidden]{display:none!important}
.prsv p{margin:0}

/* neutralise theme / Elementor button + input styles inside the widget */
.prsv button,.prsv input,.prsv textarea{font-family:inherit!important;letter-spacing:normal!important;text-transform:none!important;text-shadow:none!important;box-shadow:none!important;margin:0!important;max-width:100%}
.prsv button{-webkit-appearance:none;appearance:none;line-height:1.2!important;min-width:0!important;width:auto}

.prsv--book{background:#fff;border:1px solid var(--prsv-line);border-radius:14px;padding:clamp(16px,3vw,30px)}
.prsv .prsv__title{margin:0 0 18px!important;padding:0!important;font-size:clamp(19px,2vw,24px)!important;line-height:1.3!important;color:var(--prsv-ink)!important;font-weight:700!important;text-transform:none!important;letter-spacing:normal!important}
.prsv--book{max-width:680px}
.prsv .prsv-steps{list-style:none!important;margin:0 0 20px!important;padding:0!important;display:flex;gap:8px;counter-reset:none}
.prsv .prsv-steps li{flex:1;display:flex;align-items:center;gap:8px;margin:0!important;padding:0 0 10px!important;border-bottom:2px solid var(--prsv-line);font-size:13.5px;font-weight:600;color:var(--prsv-muted);list-style:none!important}
.prsv .prsv-steps li::before,.prsv .prsv-steps li::marker{content:none}
.prsv .prsv-steps li span{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;background:var(--prsv-soft);color:var(--prsv-muted);flex-shrink:0}
.prsv .prsv-steps li.is-active{color:var(--prsv-ink);border-color:var(--prsv-accent)}
.prsv .prsv-steps li.is-active span{background:var(--prsv-accent);color:#fff}
.prsv .prsv-steps li.is-done{color:var(--prsv-ink);border-color:color-mix(in srgb,var(--prsv-accent) 45%,#fff)}
.prsv .prsv-steps li.is-done span{background:color-mix(in srgb,var(--prsv-accent) 18%,#fff);color:var(--prsv-accent)}
.prsv-step{display:grid;gap:0}
.prsv .prsv-next{margin-top:18px!important}
.prsv .prsv-next:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none}
.prsv-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;background:var(--prsv-soft);border:1px solid var(--prsv-line)}
.prsv-summary small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--prsv-muted)}
.prsv-summary b{display:block;font-size:14.5px;font-weight:600;color:var(--prsv-ink)}
.prsv .prsv-back{border:0!important;background:none!important;color:var(--prsv-accent)!important;font-size:13.5px!important;font-weight:600!important;text-decoration:underline!important;cursor:pointer;padding:6px 0!important;min-height:0!important;border-radius:0!important;white-space:nowrap}

/* ---- calendar ---- */
.prsv-cal{position:relative;min-width:0}
.prsv-cal__nav{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none;z-index:2}
.prsv .prsv-cal__nav button{pointer-events:auto;width:34px!important;height:34px!important;min-height:0!important;padding:0!important;border-radius:50%!important;border:1px solid var(--prsv-line)!important;background:#fff!important;color:var(--prsv-ink)!important;font-size:20px!important;line-height:1!important;display:flex!important;align-items:center;justify-content:center;cursor:pointer}
.prsv .prsv-cal__nav button:hover:not(:disabled){border-color:var(--prsv-accent)!important;color:var(--prsv-accent)!important}
.prsv .prsv-cal__nav button:disabled{opacity:.35;cursor:default}
.prsv-cal__months{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}
.prsv--book .prsv-cal__months{grid-template-columns:minmax(0,1fr)}
.prsv-cal__loading{padding:50px 0!important;text-align:center;color:var(--prsv-muted)}
.prsv-m{min-width:0}
.prsv-m__title{text-align:center;font-weight:600;height:34px;line-height:34px;margin-bottom:6px;text-transform:capitalize;color:var(--prsv-ink)}
.prsv-m__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.prsv-wd{text-align:center;font-size:11.5px;color:var(--prsv-muted);padding:4px 0;text-transform:uppercase}
.prsv .prsv-m__grid button{display:flex!important;align-items:center;justify-content:center;width:100%!important;height:38px!important;min-height:0!important;padding:0!important;border:0!important;border-radius:7px!important;background:var(--prsv-soft)!important;color:var(--prsv-ink)!important;font-size:14px!important;font-weight:400!important;cursor:pointer;transition:background .15s,color .15s;outline-offset:2px}
.prsv .prsv-m__grid button:hover:not(:disabled):not(.is-in):not(.is-out){background:color-mix(in srgb,var(--prsv-accent) 14%,#fff)!important;color:var(--prsv-ink)!important}
.prsv .prsv-m__grid button:disabled{cursor:default;opacity:1}
.prsv .prsv-m__grid button.is-past{background:transparent!important;color:#c3c7ce!important}
.prsv .prsv-m__grid button.is-taken{background:var(--prsv-taken)!important;color:var(--prsv-taken-ink)!important}
.prsv .prsv-m__grid button.is-taken span{text-decoration:line-through}
.prsv .prsv-m__grid button.is-taken.is-past{background:transparent!important;color:#c3c7ce!important}
.prsv .prsv-m__grid button.is-today span{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.prsv .prsv-m__grid button.is-range{background:color-mix(in srgb,var(--prsv-accent) 18%,#fff)!important;color:var(--prsv-ink)!important;border-radius:0!important}
.prsv .prsv-m__grid button.is-in,.prsv .prsv-m__grid button.is-out{background:var(--prsv-accent)!important;color:#fff!important}
.prsv .prsv-m__grid button.is-in span,.prsv .prsv-m__grid button.is-out span{text-decoration:none}
.prsv .prsv-m__grid button:focus-visible{outline:2px solid var(--prsv-accent)!important;z-index:1}
.prsv-cal__legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12.5px;color:var(--prsv-muted)}
.prsv-cal__legend span{display:inline-flex;align-items:center;gap:6px}
.prsv-cal__legend i{width:13px;height:13px;border-radius:4px;display:inline-block}
.prsv-cal__legend .is-free{background:var(--prsv-soft);border:1px solid var(--prsv-line)}
.prsv-cal__legend .is-taken{background:var(--prsv-taken)}
.prsv-cal__legend .is-sel{background:var(--prsv-accent)}

.prsv-sel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;margin-top:16px;padding:12px 14px;border-radius:10px;background:var(--prsv-soft)}
.prsv-sel small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--prsv-muted)}
.prsv-sel b{display:block;font-size:14.5px;font-weight:600;color:var(--prsv-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prsv .prsv-clear{border:0!important;background:none!important;color:var(--prsv-accent)!important;font-size:13px!important;text-decoration:underline!important;cursor:pointer;padding:4px 0!important;min-height:0!important;border-radius:0!important}
@container (max-width:420px){.prsv-sel{grid-template-columns:repeat(3,minmax(0,1fr))}.prsv .prsv-clear{grid-column:1/-1;justify-self:start}}
.prsv .prsv-hint{margin-top:10px!important;font-size:13px;color:var(--prsv-muted)}
.prsv .prsv-hint.is-err{color:#b42318}

/* ---- form ---- */
.prsv-form{display:grid;gap:14px;min-width:0;margin:0!important;padding:0!important;border:0!important;background:none!important}
.prsv-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@container (max-width:460px){.prsv-row{grid-template-columns:minmax(0,1fr)}}
.prsv-f{display:grid;gap:6px;min-width:0}
.prsv .prsv-f label{display:block!important;margin:0!important;padding:0!important;font-size:13.5px!important;font-weight:600!important;color:var(--prsv-ink)!important;line-height:1.3!important;text-transform:none!important;letter-spacing:normal!important}
.prsv-f label em{color:#b42318;font-style:normal}
.prsv .prsv-f input,.prsv .prsv-f textarea{display:block!important;width:100%!important;height:auto!important;min-height:46px!important;padding:10px 14px!important;border:1px solid #d1d5db!important;border-radius:8px!important;background:#fff!important;color:var(--prsv-ink)!important;font-size:15px!important;line-height:1.4!important;outline:none}
.prsv .prsv-f textarea{min-height:90px!important;resize:vertical}
.prsv .prsv-f input:focus,.prsv .prsv-f textarea:focus{border-color:var(--prsv-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--prsv-accent) 18%,transparent)!important}
.prsv .prsv-f input.is-bad{border-color:#d92d20!important}
.prsv .prsv-docs{font-size:13.5px;line-height:1.55;color:var(--prsv-muted);background:var(--prsv-soft);border-left:3px solid var(--prsv-accent);padding:12px 14px;border-radius:0 8px 8px 0}
.prsv .prsv-agree{display:flex!important;gap:10px;align-items:flex-start;margin:0!important;font-size:14px!important;font-weight:400!important;line-height:1.5!important;color:var(--prsv-ink)!important;cursor:pointer}
.prsv .prsv-agree input{width:18px!important;height:18px!important;min-height:0!important;padding:0!important;margin:2px 0 0!important;flex-shrink:0;accent-color:var(--prsv-accent);-webkit-appearance:checkbox!important;appearance:auto!important;border-radius:3px}
.prsv .prsv-agree.is-bad span{color:#b42318}
.prsv-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.prsv .prsv-msg{padding:10px 14px;border-radius:8px;background:#fef3f2;color:#b42318;font-size:14px}
.prsv .prsv-msg.is-ok{background:#ecfdf3;color:#067647}
.prsv .prsv-submit,.prsv-open{display:inline-flex!important;align-items:center;justify-content:center;width:100%!important;min-height:48px!important;height:auto!important;padding:12px 26px!important;border:0!important;border-radius:8px!important;background:var(--prsv-accent,#1F3A5F)!important;color:#fff!important;font-family:inherit!important;font-size:15px!important;font-weight:600!important;line-height:1.2!important;text-transform:none!important;letter-spacing:normal!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer;transition:filter .2s,transform .2s}
.prsv-open{width:auto!important}
.prsv .prsv-submit:hover,.prsv-open:hover,.prsv-open:focus{filter:brightness(1.12);transform:translateY(-1px);color:#fff!important;background:var(--prsv-accent,#1F3A5F)!important}
.prsv .prsv-submit:disabled{opacity:.7;cursor:progress;transform:none}
.prsv .prsv-note{margin-top:-4px!important;font-size:12.5px;color:var(--prsv-muted);text-align:center}

.prsv-done{text-align:center;padding:28px 10px}
.prsv-done:focus{outline:none}
.prsv-done__ico{width:58px;height:58px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:#ecfdf3;color:#067647;font-size:26px}
.prsv-done p{max-width:46ch;margin:0 auto!important;font-size:16px;line-height:1.6}

/* ---- popup ---- */
html.prsv-lock{overflow:hidden}
.prsv-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .25s}
.prsv-modal.is-open{opacity:1}
.prsv-modal__bg{position:absolute;inset:0;background:rgba(15,23,42,.6)}
.prsv-modal__box{position:relative;width:min(620px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:14px;background:#fff;transform:translateY(12px);transition:transform .3s}
.prsv-modal.is-open .prsv-modal__box{transform:none}
.prsv-modal__box .prsv--book{border:0}
.prsv-modal .prsv-modal__x{position:absolute;top:10px;right:10px;z-index:3;width:40px!important;height:40px!important;min-height:0!important;padding:0!important;border-radius:50%!important;border:1px solid #e5e7eb!important;background:#fff!important;color:#1f2937!important;font-size:24px!important;line-height:1!important;cursor:pointer}
.prsv-modal .prsv__title{padding-right:44px!important}
@media (max-width:520px){
  .prsv-modal{padding:0;align-items:flex-end}
  .prsv-modal__box{max-height:94vh;border-radius:16px 16px 0 0}
  .prsv .prsv-m__grid button{height:40px!important;font-size:15px!important}
}
