/* House K2 booking components. Colours inherit the theme tokens, with fallbacks for other themes. */
.hk2-bar,.hk2-booking,.hk2-form,.hk2-map-wrap{--o:var(--k2-orange,#F15A24);--c:var(--k2-charcoal,#171B1E);--w:var(--k2-warm,#F8F7F4);--g:var(--k2-grey,#EAE8E4);--m:var(--k2-medium,#777);--t:var(--k2-orange-text,#B9400F)}
.hk2-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.hk2-btn{display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:46px;padding:.75em 1.5em;border:0;border-radius:2px;font:600 .8125rem/1.2 var(--k2-font-body,Inter,sans-serif);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s,transform .2s}
.hk2-btn--primary{background:var(--k2-orange,#F15A24);color:#fff}
.hk2-btn--primary:hover{background:var(--k2-orange-dark,#D44513);color:#fff}
.hk2-btn--dark{background:var(--k2-charcoal,#171B1E);color:#fff}
.hk2-btn--dark:hover{background:#000;color:#fff}
.hk2-btn:disabled{opacity:.6;cursor:wait}
.hk2-arrow{font-size:1.2em;line-height:1}

/* Search bar */
.hk2-bar{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:stretch}
.hk2-field{position:relative;display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;background:#fff;color:var(--c);border-radius:2px;font-size:.875rem;cursor:pointer}
.hk2-field__icon{flex:none;color:var(--c)}
.hk2-field input,.hk2-field select,.hk2-field__value{flex:1;min-width:0;min-height:44px;border:0;background:transparent;color:inherit;font:inherit;padding:0;text-align:left;cursor:pointer;outline-offset:2px}
.hk2-field select{appearance:auto}
.hk2-bar__submit{white-space:nowrap;padding-inline:1.7em}
.hk2-bar__message{grid-column:1/-1;margin:0;padding:.65em 1em;background:#fff;color:#a12d00;font-size:.875rem;font-weight:500;border-left:3px solid var(--o)}
.hk2-popover{position:absolute;z-index:40;left:0;bottom:calc(100% + 10px);width:min(680px,100%);padding:18px;background:#fff;color:var(--c);box-shadow:0 18px 50px rgb(0 0 0 / .28);border-radius:2px;max-height:min(70vh,560px);overflow:auto}
.hk2-popover__close{position:absolute;top:8px;right:10px;z-index:1;width:36px;height:36px;border:0;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--c)}

/* Calendar */
.hk2-calendar{font-size:.875rem;color:var(--c);min-height:120px}
.hk2-calendar__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.hk2-popover .hk2-calendar__head{padding-right:36px}
.hk2-calendar__hint{margin:0;font-weight:600;text-align:center;font-size:.8125rem}
.hk2-calendar__nav{width:40px;height:40px;border:1px solid var(--g);background:#fff;color:var(--c);font-size:1.25rem;line-height:1;cursor:pointer;border-radius:2px}
.hk2-calendar__nav:disabled{opacity:.3;cursor:default}
.hk2-calendar__months{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}
.hk2-calendar__title{margin:6px 0 10px;font:700 1rem/1.2 var(--k2-font-head,Manrope,sans-serif);text-align:center;text-transform:capitalize}
.hk2-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.hk2-calendar__dow{padding:4px 0;text-align:center;font-size:.6875rem;font-weight:600;letter-spacing:.03em;color:#5f5f5f;text-transform:uppercase}
.hk2-day{position:relative;aspect-ratio:1;min-height:36px;border:0;padding:0;font:500 .875rem/1 var(--k2-font-body,Inter,sans-serif);background:var(--w);color:var(--c);cursor:pointer}
.hk2-day:hover:not(:disabled){outline:2px solid var(--o);outline-offset:-2px}
.hk2-day:focus-visible{outline:2px solid var(--c);outline-offset:1px;z-index:1}
.hk2-day:disabled{cursor:not-allowed}
.hk2-booking .hk2-day{background:#fff}
.hk2-day.is-past,.hk2-booking .hk2-day.is-past{background:transparent;color:#b5b5b5}
.hk2-day.is-out-of-range,.hk2-booking .hk2-day.is-out-of-range{background:transparent;color:#a8a8a8}
.hk2-day.is-unavailable,.hk2-booking .hk2-day.is-unavailable{background:var(--g);color:#6d6d6d;text-decoration:line-through;text-decoration-thickness:1px}
.hk2-day.is-checkout-only{cursor:pointer}
.hk2-day.is-range,.hk2-booking .hk2-day.is-range{background:#fde3d8;color:var(--c)}
.hk2-day.is-selected,.hk2-booking .hk2-day.is-selected{background:var(--o);color:#fff;text-decoration:none;font-weight:700}
.hk2-calendar__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:30px;margin-top:8px}
.hk2-calendar__clear{margin-left:auto;background:none;border:0;padding:6px 0;font:inherit;font-size:.8125rem;text-decoration:underline;color:var(--c);cursor:pointer}
.hk2-calendar__error{margin:0;color:#a12d00;font-size:.8125rem}
.hk2-legend{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;margin:10px 0 0;padding:0;font-size:.8125rem}
.hk2-legend li{display:flex;align-items:center;gap:8px;margin:0}
.hk2-legend__swatch{display:inline-block;width:16px;height:16px;background:var(--w);border:1px solid var(--g)}
.hk2-legend__swatch.is-unavailable{background:linear-gradient(to top right,var(--g) calc(50% - 1px),#888 50%,var(--g) calc(50% + 1px))}
.hk2-legend__swatch.is-selected{background:var(--o);border-color:var(--o)}

/* Booking panel and forms */
.hk2-booking{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.hk2-form__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.hk2-form__row{margin:0 0 14px;min-width:0}
.hk2-form label{display:block;margin-bottom:5px;font-size:.8125rem;font-weight:600;color:var(--c)}
.hk2-form input:not([type=checkbox]),.hk2-form select,.hk2-form textarea{display:block;width:100%;min-height:46px;padding:10px 12px;border:1px solid #b9b6b0;border-radius:2px;background:#fff;color:var(--c);font:400 1rem/1.4 var(--k2-font-body,Inter,sans-serif)}
.hk2-form input:focus,.hk2-form select:focus,.hk2-form textarea:focus{outline:2px solid var(--o);outline-offset:0;border-color:var(--o)}
.hk2-form__row.has-error input,.hk2-form__row.has-error textarea{border-color:#a12d00}
.hk2-form__error{margin:5px 0 0;color:#a12d00;font-size:.8125rem;font-weight:500}
.hk2-form__stay{margin:0 0 14px;padding:.6em .9em;border-left:3px solid #a12d00;background:#fff}
.hk2-form__notice{margin:0 0 16px;padding:.8em 1em;background:#fff;border-left:3px solid #a12d00;color:#a12d00;font-weight:500}
.hk2-form__note{margin:0 0 14px;font-size:.8125rem;color:#555}
.hk2-form__check label{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.hk2-form__check input{margin-top:3px;width:18px;height:18px;flex:none}
.hk2-thanks{padding:clamp(24px,4vw,48px);background:#fff;border-left:5px solid var(--k2-orange,#F15A24)}
.hk2-thanks h2{margin-top:0}
.hk2-thanks__ref{margin-bottom:0;font-size:1.0625rem}

/* Map */
.hk2-map-wrap{margin:0}
.hk2-map{width:100%;height:clamp(320px,50vw,520px);background:var(--g);z-index:0}
.hk2-map__caption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.hk2-map__caption p{margin:0;flex:1 1 260px}
.hk2-marker{background:none;border:0}
.hk2-marker__pin{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--k2-charcoal,#171B1E);border:3px solid var(--k2-orange,#F15A24);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 10px rgb(0 0 0 / .35)}
.hk2-marker__pin b{transform:rotate(45deg);color:#fff;font:800 14px/1 var(--k2-font-head,Manrope,sans-serif)}

@media (max-width:860px){
	.hk2-booking{grid-template-columns:1fr}
	.hk2-bar{grid-template-columns:1fr 1fr}
	.hk2-field--guests,.hk2-bar__submit{grid-column:1/-1}
	.hk2-popover{position:fixed;left:8px;right:8px;bottom:8px;top:auto;width:auto;max-height:82vh;z-index:120}
}
@media (max-width:480px){
	.hk2-form__grid{grid-template-columns:1fr 1fr}
	.hk2-form__grid .hk2-form__row:last-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){.hk2-btn{transition:none}}
