/* CNWS Hotel search CTA/popup frontend. Loaded only for cnwshotel_booking_cta_* shortcodes. */
.cnwshotel-booking-cta-wrap{display:block;margin:22px 0;}
.cnwshotel-booking-cta-trigger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:0;border-radius:16px;background:#111827;color:#ffffff;font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(15,23,42,0.12);}
.cnwshotel-booking-modal{padding:0;border:0;background:transparent;}
.cnwshotel-booking-modal::backdrop{background:rgba(15,23,42,0.45);}
.cnwshotel-booking-modal__card{width:min(100%,760px);margin:0;border:1px solid #d0d7de;border-radius:22px;background:#ffffff;box-shadow:0 18px 40px rgba(15,23,42,0.18);overflow:hidden;}
.cnwshotel-booking-modal__close{width:42px;height:42px;margin:16px 16px 0;border:1px solid #d0d7de;border-radius:12px;background:#ffffff;color:#0f172a;font-size:24px;line-height:1;cursor:pointer;}
.cnwshotel-booking-modal__head{padding:18px 18px 10px;}
.cnwshotel-booking-modal__head h4{margin:0 0 10px;font-size:20px;color:#0f172a;}
.cnwshotel-booking-modal__head p{margin:0;color:#475569;}
.cnwshotel-booking-modal__body{padding:0 18px 18px;}
@media (max-width: 767px){
.cnwshotel-booking-modal__card{width:min(100vw - 24px,760px);}
}
.cnwshotel-booking-modal .cnwshotel-booking-modal__card{width:min(100vw - 32px,var(--cnwshotel-cta-popup-width,760px));max-height:calc(100vh - 48px);overflow:auto;}
.cnwshotel-booking-modal .cnwshotel-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 14px;align-items:end;}
.cnwshotel-booking-modal .cnwshotel-field label{margin-bottom:6px;font-size:12px;font-weight:600;color:#334155;}
.cnwshotel-booking-modal .cnwshotel-field input,.cnwshotel-booking-modal .cnwshotel-field select{min-height:42px;padding-top:8px;padding-bottom:8px;font-size:14px;}
.cnwshotel-booking-modal .cnwshotel-field-submit{grid-column:1 / -1;justify-self:end;width:auto;min-width:190px;}
.cnwshotel-booking-modal .cnwshotel-search-btn{width:auto;min-width:190px;min-height:44px;padding:0 22px;white-space:nowrap;}
.cnwshotel-booking-modal .cnwshotel-field-icon-svg{width:17px;height:17px;max-width:17px;max-height:17px;}
@media (max-width: 767px){
.cnwshotel-booking-modal .cnwshotel-search-grid{grid-template-columns:1fr !important;}
.cnwshotel-booking-modal .cnwshotel-field-submit,.cnwshotel-booking-modal .cnwshotel-search-btn{width:100%;min-width:0;}
}
.cnwshotel-booking-modal{width:min(620px,calc(100vw - 28px));max-width:620px;padding:0;border:0;background:transparent;}
.cnwshotel-booking-modal::backdrop{background:rgba(15,23,42,0.48);backdrop-filter:blur(2px);}
.cnwshotel-booking-modal .cnwshotel-booking-modal__card{position:relative;width:100%;max-height:calc(100vh - 42px);margin:0;padding:30px 30px 26px;overflow:auto;border:1.5px solid #111827;border-radius:20px;background:#fffdfd;box-shadow:0 24px 70px rgba(15,23,42,0.24);box-sizing:border-box;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__close,.cnwshotel-booking-modal .cnwshotel-booking-modal__close:hover,.cnwshotel-booking-modal .cnwshotel-booking-modal__close:focus,.cnwshotel-booking-modal .cnwshotel-booking-modal__close:active{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;min-width:34px;min-height:34px;margin:0;padding:0;border:1px solid #0f172a;border-radius:10px;background:#111827;color:#ffffff;font-size:18px;font-weight:700;line-height:1;box-shadow:none;cursor:pointer;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__head{margin:0 44px 18px 0;padding:0;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__head h4{margin:0 0 8px;color:#1f2937;font-size:21px;font-weight:650;line-height:1.2;letter-spacing:-0.02em;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__head p{margin:0;color:#475569;font-size:14px;line-height:1.45;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__body{padding:0;}
.cnwshotel-booking-modal .cnwshotel-search,.cnwshotel-booking-modal .cnwshotel-search-inner{margin:0;padding:0;border:0 !important;border-radius:0;background:transparent;box-shadow:none !important;overflow:visible;}
.cnwshotel-booking-modal .cnwshotel-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 14px;align-items:end;}
.cnwshotel-booking-modal .cnwshotel-field{gap:6px;min-width:0;}
.cnwshotel-booking-modal .cnwshotel-field label{margin:0;color:#334155;font-size:12px;font-weight:600;line-height:1.2;}
.cnwshotel-booking-modal .cnwshotel-field input,.cnwshotel-booking-modal .cnwshotel-field select{width:100%;min-height:42px;padding:8px 12px;border:1px solid #d6dde7;border-radius:10px;background:#ffffff;color:#111827;font-size:14px;box-shadow:none;box-sizing:border-box;}
.cnwshotel-booking-modal .cnwshotel-field input:focus,.cnwshotel-booking-modal .cnwshotel-field select:focus{border-color:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,0.16);outline:none;}
.cnwshotel-booking-modal .cnwshotel-field-control--has-icon input,.cnwshotel-booking-modal .cnwshotel-field-control--has-icon select{padding-left:38px;}
.cnwshotel-booking-modal .cnwshotel-field-control--has-icon .cnwshotel-field-icon{left:13px;width:16px;height:16px;color:#334155;opacity:0.9;}
.cnwshotel-booking-modal .cnwshotel-field-icon-svg{width:16px;height:16px;max-width:16px;max-height:16px;stroke-width:1.8;}
.cnwshotel-booking-modal .cnwshotel-children-ages{grid-column:1 / -1;margin-top:0;}
.cnwshotel-booking-modal .cnwshotel-field-submit{grid-column:2;justify-self:end;align-self:end;width:100%;min-width:0;}
.cnwshotel-booking-modal .cnwshotel-search-btn{width:100%;min-width:0;min-height:42px;padding:0 18px;border-radius:10px;background:#111827;color:#ffffff;font-size:14px;font-weight:700;white-space:normal;line-height:1.15;box-shadow:0 10px 24px rgba(15,23,42,0.13);}
@media (max-width: 767px){
.cnwshotel-booking-modal{width:calc(100vw - 20px);}
.cnwshotel-booking-modal .cnwshotel-booking-modal__card{padding:24px 18px 20px;border-radius:18px;}
.cnwshotel-booking-modal .cnwshotel-booking-modal__head{margin-right:44px;}
.cnwshotel-booking-modal .cnwshotel-search-grid,.cnwshotel-booking-modal .cnwshotel-field-submit,.cnwshotel-booking-modal .cnwshotel-children-ages{grid-template-columns:1fr !important;grid-column:1 / -1;}
}
.cnwshotel-booking-modal::backdrop{background:transparent !important;backdrop-filter:none !important;}
.cnwshotel-booking-modal[open]{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 40px));max-width:560px;max-height:calc(100vh - 40px);margin:0;padding:0;overflow:visible;border:0;background:transparent;}
.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__card{width:100%;max-height:calc(100vh - 40px);overflow-y:auto;overflow-x:hidden;padding:28px 28px 24px;border:2px solid #0b1324;border-radius:18px;background:#fffdfd;box-shadow:0 0 0 1px rgba(255,255,255,0.72),0 18px 48px rgba(15,23,42,0.20);box-sizing:border-box;}
.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__close,.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__close:hover,.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__close:focus,.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__close:active{top:12px;right:12px;}
.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__head{margin:0 44px 18px 0;}
.cnwshotel-booking-modal[open] .cnwshotel-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.cnwshotel-booking-modal[open] .cnwshotel-field-submit{grid-column:2;justify-self:stretch;}
@media (max-width: 767px){
.cnwshotel-booking-modal[open]{width:calc(100vw - 24px);max-height:calc(100vh - 24px);}
.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__card{max-height:calc(100vh - 24px);padding:24px 18px 20px;}
.cnwshotel-booking-modal[open] .cnwshotel-search-grid,.cnwshotel-booking-modal[open] .cnwshotel-field-submit,.cnwshotel-booking-modal[open] .cnwshotel-children-ages{grid-template-columns:1fr !important;grid-column:1 / -1;}
}
.cnwshotel-booking-modal .cnwshotel-search-form .cnwshotel-children-ages{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,96px));gap:10px 12px;justify-content:flex-start;}
.cnwshotel-booking-modal .cnwshotel-search-form .cnwshotel-children-ages[hidden]{display:none !important;}
.cnwshotel-booking-modal .cnwshotel-search-form .cnwshotel-field-submit{min-width:0;}
.cnwshotel-booking-modal .cnwshotel-search-form .cnwshotel-search-btn{min-width:0;white-space:normal;}
.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-modal__card{background:var(--cnwshotel_search_bg);color:var(--cnwshotel_search_text);border-color:var(--cnwshotel_search_border);}
.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-modal__head,.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-modal__head p{color:var(--cnwshotel_search_text);}
.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-cta-trigger{background:var(--cnwshotel_search_button_bg) !important;color:var(--cnwshotel_search_button_text) !important;border-color:var(--cnwshotel_search_button_bg) !important;border-radius:var(--cnwshotel_search_button_radius);box-shadow:none;font:inherit;text-decoration:none;}
.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-cta-trigger:hover,.cnwshotel_scope.cnwshotel_search_scope .cnwshotel-booking-cta-trigger:focus{filter:brightness(0.96);color:var(--cnwshotel_search_button_text) !important;}

.cnwshotel-booking-modal .cnwshotel-booking-modal__head h3,
.cnwshotel-booking-modal[open] .cnwshotel-booking-modal__head h3 {
    margin: 0 0 8px;
    color: #1f2937;
    font-size: 21px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.cnwshotel-booking-modal[open] .cnwshotel-field-submit {
    grid-column: 1 / -1;
    justify-self: center;
    width: min(100%, 210px);
}

.cnwshotel-booking-modal[open] .cnwshotel-search-btn {
    width: 100%;
}
