
.kh-booking-wrap{--khb-line:#e7ddcf;--khb-text:#2b241e;--khb-muted:#72685f;--khb-accent:#a86a16;position:relative;background:#fff;border:1px solid var(--khb-line);border-radius:24px;padding:22px;box-shadow:0 18px 40px rgba(0,0,0,.05)}
.kh-booking-wrap *{box-sizing:border-box}.kh-booking-form{display:grid;gap:18px;min-width:0}.kh-step-box{display:grid;gap:14px;padding:16px;border:1px solid #eee2d0;border-radius:22px;background:#fff}.kh-step-box[hidden]{display:none!important}.kh-step-box--active{border-color:#e4c68d;box-shadow:0 10px 24px rgba(196,146,62,.08)}
.kh-step-header{display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;color:var(--khb-text);text-align:center}.kh-step-pill{display:inline-flex;align-items:center;justify-content:center;min-width:68px;height:28px;padding:0 10px;border-radius:999px;background:#f6ede4;color:#8b5b37;font-size:12px;font-weight:700}.kh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kh-grid--hour{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;column-gap:22px;row-gap:18px}.kh-field{display:flex;flex-direction:column;gap:8px;min-width:0}.kh-field-full{grid-column:1/-1}.kh-field--readonly .kh-readonly-value{width:100%;padding:14px 16px;border-radius:16px;border:1px dashed var(--khb-line);background:#faf7f2;font-size:15px;font-weight:700;color:var(--khb-text);min-height:52px;display:flex;align-items:center}
.kh-booking-wrap label{font-weight:700;color:var(--khb-text);display:flex;align-items:center;gap:8px;min-height:24px;line-height:1.35;margin-bottom:2px}.kh-label-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;opacity:.85;font-size:15px}.kh-booking-wrap input,.kh-booking-wrap select,.kh-booking-wrap textarea{width:100%;max-width:100%;padding:14px 16px;border-radius:16px;border:1px solid var(--khb-line);background:#fff;font-size:15px;transition:border-color .2s ease,box-shadow .2s ease;min-height:56px}.kh-booking-wrap input:focus,.kh-booking-wrap select:focus,.kh-booking-wrap textarea:focus{outline:none;border-color:#d2b06a;box-shadow:0 0 0 4px rgba(212,168,79,.12)}
.kh-room-help,.kh-estimate-note{font-size:13px;color:var(--khb-muted)}.kh-room-help{margin-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:44px}.kh-room-link{border:0;background:#15120f;color:#fff;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer}.kh-meta-chip{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f1e5cf;color:#6b4f1d;font-size:12px;font-weight:700;margin-right:6px;margin-bottom:6px}
.kh-booking-alert{padding:14px 16px;border-radius:16px;margin-bottom:14px}.kh-booking-alert.success{background:#edf9f0;color:#17643a}.kh-booking-alert.error{background:#fef0f0;color:#982626}.kh-estimate-box{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 18px;border-radius:20px;background:linear-gradient(135deg,#15110d 0%,#24201b 100%);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.08)}.kh-estimate-price{font-size:28px;font-weight:800;white-space:nowrap}.kh-btn-submit{width:100%;min-height:58px;border-radius:18px;background:linear-gradient(135deg,#b87919 0%,#d8a94b 55%,#f0d18b 100%);color:#151515;border:none;font-weight:900;font-size:17px;cursor:pointer;box-shadow:0 14px 28px rgba(168,115,72,.28);display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .18s ease, box-shadow .18s ease}.kh-btn-submit:hover{transform:translateY(-1px);box-shadow:0 18px 32px rgba(168,115,72,.34)}.kh-btn-submit__arrow{font-size:20px;line-height:1}
.kh-room-modal[hidden]{display:none}.kh-room-modal{position:fixed;inset:0;z-index:9999}.kh-room-modal__backdrop{position:absolute;inset:0;background:rgba(17,17,17,.65)}.kh-room-modal__dialog{position:relative;max-width:880px;width:min(calc(100% - 24px),880px);margin:5vh auto;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.25)}.kh-room-modal__close{position:absolute;right:12px;top:12px;border:0;background:#111;color:#fff;width:38px;height:38px;border-radius:999px;font-size:24px;line-height:1;cursor:pointer;z-index:2}.kh-room-modal__content{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,1fr);gap:0}.kh-room-modal__media{min-height:280px;background:#eee}.kh-room-modal__media img{width:100%;height:100%;object-fit:cover}.kh-room-modal__body{padding:28px}.kh-room-modal__body h3{margin:0 0 10px;font-size:28px;line-height:1.1}.kh-room-modal__meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.kh-room-modal__amenities{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.kh-room-modal__amenity{padding:8px 10px;border-radius:999px;background:#f5f1ea;border:1px solid #e7e1d8;font-size:13px}.kh-room-modal__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.kh-room-modal__actions a,.kh-room-modal__actions button{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:14px;font-weight:700;text-decoration:none}.kh-room-modal__actions a{background:#111;color:#fff}.kh-room-modal__actions button{background:#f3e8d4;color:#6b4f1d;border:0;cursor:pointer}
.kh-booking-wrap--hero{padding:0;border:0;background:transparent;box-shadow:none}.kh-booking-wrap--hero .kh-hero-form-head{text-align:center;margin-bottom:12px}.kh-booking-wrap--hero .kh-hero-form-title{margin:0;color:#b5842f;font-size:clamp(1.65rem,2.6vw,2.2rem);line-height:1.05;letter-spacing:.04em;font-weight:900}.kh-booking-wrap--hero .kh-hero-form-subtitle{margin:8px auto 0;max-width:32ch;color:#6f655e;font-size:.94rem}.kh-booking-wrap--hero .kh-booking-form{gap:14px}.kh-booking-wrap--hero textarea,.kh-booking-wrap--hero .kh-field textarea{display:none}
.kh-price-notices{display:grid;gap:8px;margin-top:10px}.kh-notice{border-radius:14px;padding:10px 12px;font-size:.92rem;line-height:1.45}.kh-notice--warn{background:#fff6e8;border:1px solid rgba(200,146,46,.28);color:#7a5716;font-weight:600}.kh-notice--muted{background:#f8f6f2;border:1px solid rgba(39,35,31,.08);color:#675f58}.kh-room-modal__notice{margin:8px 0 12px;padding:10px 12px;border-radius:12px;background:#fff6e8;color:#7a5716;font-size:.92rem;border:1px solid rgba(200,146,46,.28)}
@media(max-width:991px){.kh-grid--hour{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:14px}}
@media(max-width:767px){.kh-grid,.kh-grid--hour,.kh-booking-wrap--hero .kh-grid--hero{grid-template-columns:1fr}.kh-booking-wrap{padding:0;border:0;box-shadow:none;background:transparent}.kh-step-box{padding:14px 0;border:0;background:transparent;box-shadow:none}.kh-booking-wrap--hero .kh-hero-form-title{font-size:1.5rem}.kh-step-header{justify-content:flex-start;text-align:left}.kh-estimate-box{flex-direction:column}.kh-estimate-price{font-size:24px}.kh-room-modal__content{grid-template-columns:1fr}.kh-room-modal__body{padding:20px}.kh-room-modal__body h3{font-size:22px}}

@media(min-width:992px){.kh-time-panel--hour .kh-grid--hour{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 22px}.kh-time-panel--hour .kh-field{justify-content:flex-end}.kh-time-panel--hour .kh-field label{font-size:14px;white-space:normal}.kh-time-panel--hour .kh-field select,.kh-time-panel--hour .kh-field input,.kh-time-panel--hour .kh-readonly-value{height:56px}.kh-time-panel--hour .kh-field:nth-child(3) select{min-width:0}.kh-time-panel--hour .kh-field:nth-child(4) .kh-readonly-value{justify-content:flex-start}.kh-time-panel--hour{padding-top:6px}.kh-step-box--1,.kh-step-box--2,.kh-step-box--3{padding-left:24px;padding-right:24px}.kh-step-box--2 .kh-estimate-box{margin-top:10px}.kh-step-box--3{padding-top:18px}}

@media(min-width:1200px){.kh-booking-wrap--hero .kh-booking-form{gap:18px}.kh-step-box{padding:18px 18px 20px}.kh-step-box--2 .kh-grid{gap:18px}.kh-step-box--2 .kh-booking-type-wrap{margin-bottom:2px}.kh-step-box--2 .kh-price-notices{margin-top:2px}}

.kh-time-panel--hour{padding:6px 0 2px}.kh-time-panel--hour .kh-grid--hour .kh-field{min-width:0}.kh-time-panel--hour .kh-grid--hour .kh-readonly-value{font-size:16px}
.kh-booking-wrap input[type="date"]{cursor:pointer}.kh-booking-wrap input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.92;transform:scale(1.08)}

.kh-room-type-select,.kh-room-select{width:100%}.kh-step-box--1 .kh-field-full{display:flex;align-items:center}.kh-step-box--1 .kh-room-link{margin-top:2px}.kh-step-box--1 .kh-room-help{justify-content:flex-start}


/* v1.9.6 room modal mobile scroll */
html.kh-room-modal-open,body.kh-room-modal-open{overflow:hidden;height:100%}
.kh-room-modal{display:flex;align-items:flex-start;justify-content:center;padding:16px}
.kh-room-modal__dialog{max-height:calc(100dvh - 32px);display:flex;flex-direction:column}
.kh-room-modal__content{min-height:0;align-items:stretch}
.kh-room-modal__body{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0}
@media(max-width:767px){.kh-room-modal{padding:0;align-items:flex-end}.kh-room-modal__dialog{width:100%;max-width:none;max-height:92dvh;margin:0;border-radius:24px 24px 0 0}.kh-room-modal__content{grid-template-columns:1fr;max-height:92dvh;overflow:hidden}.kh-room-modal__media{min-height:190px;max-height:190px}.kh-room-modal__body{padding:18px 16px 24px}.kh-room-modal__actions{display:grid;grid-template-columns:1fr;gap:10px}.kh-room-modal__actions a,.kh-room-modal__actions button{width:100%}}


/* v1.9.7 mobile room modal scroll hard-fix */
html.kh-room-modal-open,body.kh-room-modal-open{overflow:hidden !important;height:100%;}
body.kh-room-modal-open{touch-action:none;}
.kh-room-modal{overflow-y:auto !important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;}
.kh-room-modal__dialog{overflow:hidden;}
.kh-room-modal__content{min-height:0;}
.kh-room-modal__body{overflow-y:auto !important;overflow-x:hidden !important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;}
.kh-room-modal__media,.kh-room-modal__media img{touch-action:pan-y;}
@media(max-width:767px){
  .kh-room-modal{padding:0;align-items:flex-end;}
  .kh-room-modal__dialog{width:100%;max-width:none;max-height:92dvh;margin:0;border-radius:24px 24px 0 0;display:block;overflow-y:auto !important;-webkit-overflow-scrolling:touch;}
  .kh-room-modal__content{display:block !important;max-height:none !important;overflow:visible !important;}
  .kh-room-modal__media{min-height:200px;max-height:none;}
  .kh-room-modal__media img{height:200px;object-fit:cover;}
  .kh-room-modal__body{max-height:none !important;overflow:visible !important;padding:18px 16px 28px;}
}
