/* =========================================================
   GLOBAL STYLES
   ========================================================= */
.sl_booking_page {
	display: flex;
	flex-direction: column;
}
.sl_booking_page * {
	font-family: 'Manrope' !important;
}
.entry-title.main_title, 
.c_hero_button {
	display:none;
}
#main-content .container {
	max-width: 100%;
	width: 100%;
	padding-top: 0px !important;
}
.cbf_error_message {
color: #d00;
    font-size: 13px;
    margin-top: 4px;}

/* =========================================================
   HERO SECTION
   ========================================================= */
.c_hero_section {
	position: relative;
	width: 100%;
	height: 350px;
	background-size: cover;
	background-position: center;
	display: flex;
	justify-content: center;
	overflow: hidden;
	flex-direction: column;
	align-items: center;
    padding-left:10vw;
    padding-right:10vw;
}
.c_hero_section_inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: unset;
    padding: 0px;
	width: 100%;
}
.c_hero_overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #030D0F66;
}
.back_to_listing {
	width: 100%;
	max-width: 1440px;
	position: relative;
}
.back_btn_block {
	display: flex;
	max-width: 94px;
	width: 94px;
	height: 44px;
	border-radius: 8px;
	padding: 8px 16px;
	align-items: center;
	justify-content: space-around;
}
.back_btn_block a {
	color: #fff;
	line-height: 24px;
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	display: flex;
}
.back_button_icon {
	padding: 3px 7px 3px 7px;
}
.c_hero_content {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	width: 100%;
    max-width: unset;
	padding: 64px 10vw;
	gap: 5vw;
}
.c_hero_section_inner .c_hero_content {
    padding:0px;
}
.c_hero_column {
	flex: 1;
}
.c_hero_text {
	color: #fff;
	max-width: 1000px;
	display: flex;
	flex-direction: column;
    gap: 16px;
}
.c_hero_heading {
	font-size: 64px;
	font-weight: 500;
	letter-spacing: -2px;
	line-height: 1em;
	color: #FFFFFF;
	margin: 0;
    padding: 0;
}
.c_hero_unit_name {
    font-size: 32px;
    font-weight: 700;
    text-align: left;
    margin-bottom: 0;
    padding-bottom: 0;
    letter-spacing: -2px;
}
.c_hero_paragraph {
	font-size: 14px;
	margin: 0;
	font-weight: 400;
	line-height: 21px;
}

/* =========================================================
   UNIT INFO SECTION
   ========================================================= */
   
.unit_info_section {
   flex-direction:column!important;
   	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
    max-width: unset;
	padding: 0px;
	gap: 5vw;
   
   }
.c_unit_info_section {
	width: 100%;
	display: flex;
	justify-content: center;
	flex-direction: column;
	align-items: center;
}
.c_unit_info_section .c_hero_text {
	color: #000000;
}
.c_unit_info_section .c_hero_text .c_hero_paragraph {
	max-width:unset;
}
/* Allow right-hand image column to shrink within grid */
.c_hero_column.c_hero_image {
  min-width: 0;       /* key fix: allows flex child to shrink */
  max-width: 100%;    /* never larger than container */
  flex: 1 1 auto;     /* flex but not rigid */
  overflow: hidden;   /* safeguard against image spill */
}

.c_hero_img_inner,
.c_hero_unit_img {
  max-width: 100%;    /* keep image contained */
  height: auto;
}

.c_hero_image {
	display: flex;
	justify-content: center;
  	align-items: flex-start;
	background-color: #EBEFEC;
    border-radius: 12px;
}
.c_hero_img_inner {
	width: 100%;
	max-width: 430px;
	display: flex;
}
.displaynone {
	display: none !important;
}
.c_hero_unit_img {
	border-radius: 10px;
	margin-top: 6px;
	max-width: 430px;
}
.facility_features_block {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 250px;
	max-width: 257px;
	position: relative;
}
.page-id-32162 .facility_features_block {
	left: -80px;
	top: 28px;
}
.facility_feature_item {
	display: flex;
	flex-direction: row;
	gap: 12px;
	align-items: center;
}

/* =========================================================
   FORM BASE STYLING
   ========================================================= */
.c_b_field_row { position: relative; }
.cbfield_icon {
	position: absolute;
	left: 12px;
	top: 14px;
}
.cbf_label {
	font-size: 14px;
	font-weight: 400;
	line-height: 21px;
	display: flex;
	gap: 4px;
}
.cbf_required_sign {
	color: #E80000;
	font-size: 14px;
	line-height: 19px;
}
input[type=text]:has(.c_hero_date_picker_block) {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: 10px;
}
.c_hero_date_picker {
	padding-left:32px!important;
    background-color:#EBEFEC!important;
}
.ui-datepicker-calendar {
    font-family: 'Manrope';
}
.ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
color:#454545;}
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
background:#EBEFEC!important;
}

input.c_b_field {
	width: 100%;
	max-width: 291px;
	height: 48px;
	border-radius: 8px !important;
	border: 1px solid #fff !important;
	padding: 8px 12px 8px 36px !important;
	line-height: 21px;
	color: #BDBDBD;
}
input.c_b_field::placeholder {
	color: #BDBDBD;
}

/* =========================================================
   CHECKOUT LAYOUT
   ========================================================= */
.checkout_main_block {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background-color: #FCFCFC;
  padding: 64px 10vw;
  column-gap: 5vw;
  flex-direction: row;
}
.checkout_left_column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 30px; /* spacing between contact + payment */
}
.checkout_summary {
  flex: 1 1 300px;
  min-width: 250px;
}
.checkout_contact, 
.checkout_summary, 
.checkout_payment, 
.checkout_terms {
	width:100%;
	display: flex;
	flex-direction: column;
	gap: 40px;
}
.checkout_contact {
}
.checkout_payment {
  flex: 1 1 400px;
  max-width: 100%;
}

/* Hide manual Card Type dropdown (auto-detects via JS) */
.cbf_field_group:has(#cbf_card_type) {
  display: none !important;
}

/* =========================================================
   PAYMENT FORM STYLING
   ========================================================= */
.checkout_payment .cbf_row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 20px;
}
.checkout_payment .cbf_field_group {
  flex: 1 1 100%;
}
.checkout_payment label {
  display: block;
  margin-bottom: 6px;
  font-weight: 500;
}
.checkout_payment .cbf_field {
  width: 100%;
  padding: 12px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
.checkout_payment .cbf_error_message {
  color: #d00;
  font-size: 13px;
  margin-top: 4px;
}
/* Responsive split rows */
@media (min-width: 600px) {
  /* Card Type + Holder Name */
  .checkout_payment .cbf_row:first-of-type .cbf_field_group:nth-child(1),
  .checkout_payment .cbf_row:first-of-type .cbf_field_group:nth-child(2) {
    flex: 1 1 calc(50% - 10px);
  }
  /* Card Number full */
  .checkout_payment .cbf_row:first-of-type .cbf_field_group:nth-child(3) {
    flex: 1 1 100%;
  }
  /* Expiry + CVV side-by-side */
  .checkout_payment .cbf_row:nth-of-type(2) .cbf_field_group {
    flex: 1 1 calc(50% - 10px);
  }
}
/* Checkbox Row */
.cbf_row.cbf_auto_bill_wrapper .cbf_field_checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
}
.card_auto_bill {width:unset!important;}
.checkout_payment .cbf_field_checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
}
.checkout_payment .cbf_field_checkbox label {
  margin-bottom: 0;
  font-weight: normal;
}

/* =========================================================
   FORM ELEMENTS SHARED
   ========================================================= */
.cbf_fields_block {
	display: flex;
	flex-direction: column;
	gap:16px;
	z-index: 1;
}
.cbf_section_heading {
	font-size: 32px;
	font-weight: 700;
	text-align: left;
	margin-bottom: 0;
	padding-bottom: 0;
	letter-spacing: -2px;
}
.cbf_row {
	display: flex;
	gap: 20px;
}
.cbf_row_four_fields {
	flex-wrap: wrap;
}
.cbf_field_group {
	flex: 1;
	min-width: 200px;
	display: flex;
	gap: 4px;
	flex-direction: column;
}
.cbf_field_group label {
	font-size: 14px;
	font-weight: 400;
	color: #464646;
	line-height: 21px;
}
.cbf_field_with_icon { position: relative; }
input.cbf_field, 
select.cbf_field {
	padding: 8px 12px;
	height: 48px;
	font-size: 14px;
	border: 1px solid #DCDCDC;
	border-radius: 4px;
	background-color: #fff;
	width: 100%;
}
input.cbf_field::placeholder, 
select.cbf_field::placeholder {
	color:#BDBDBD;
}
.cbf_field:focus { outline: none; }
.cbf_field_with_icon input.cbf_field {
	padding-left: 34px!important;
}
.cbf_row_four_fields .cbf_field_group {
	flex: 1 1 23%;
	min-width: 200px;
}
.cbf_field_note {
	font-size: 12px;
	font-weight: 400;
	color: #7C7C7C;
	line-height: 18px;
}

/* =========================================================
   BOOKING SUMMARY TABLE
   ========================================================= */
.booking_summary .cbf_section_heading {margin-bottom:40px;}
.cbf_table_wrapper {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cbf_table_container {
	border: 1px solid #DCDCDC;
	border-radius: 12px;
	overflow: hidden;
	margin: 0 !important;
	border-top: none;
}
.cbf_table_scroll {
	overflow-x: auto;
	position: relative;
	white-space: nowrap;
}
.cbf_table_scroll::-webkit-scrollbar {
	height: 6px;
}
.cbf_table_scroll::-webkit-scrollbar-thumb {
	background-color: #DCDCDC;
	border-radius: 6px;
}
.cbf_table_scroll::-webkit-scrollbar-track {
	background: transparent;
}
.table-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.8);
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.5rem;
	color: #333;
	display: none;
}
table.cbf_table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 !important;
	border-right: none !important;
}
table.cbf_table th {
	background-color: #215628;
	color: #fff !important;
	padding: 16px !important;
	text-align: left;
	font-weight: bold !important;
	font-size: 14px;
	border: 2px solid #215628;
}
table.cbf_table td {
	color: #525252;
	padding: 16px !important;
	border-top: 1px solid #DCDCDC !important;
	border-right: 1px solid #DCDCDC !important;
	font-size: 14px;
}
.sticky-col {
	position: sticky;
	left: 0;
	background-color: #FCFCFC;
	z-index: 1;
}
table.cbf_table td:first-child { font-weight: 700; }
table.cbf_table td:not(:first-child) { font-weight: 400; }
.cbf_total_summary {
	display: flex;
	align-items: baseline;
	gap: 8px;
	justify-content: right;
}
.cbf_total_label {
	font-weight: 700;
	font-size: 14px;
	line-height: 21px;
	color: #000;
}
.cbf_total_value {
	font-size: 32px;
	font-weight: 800;
	line-height: 39px;
	color: #215628;
}

/* =========================================================
   TERMS + CONFIRM BOOKING
   ========================================================= */
.checkout_terms {
	padding-top: 0;
	padding-bottom: 10px;
}
.cbf_terms_container {
	display:flex;
	flex-direction: column;
	gap:16px;
	padding: 16px;
	border: 1px solid #DCDCDC;
	border-radius: 8px;
}
.cbf_field_checkbox {
	display: flex;
	gap: 8px;
}
input[type='checkbox'] {
	margin: 0;
	width: 17px;
	height: auto !important;
}
input[type='checkbox']:checked {
	accent-color: #215628;
}
.cbf_terms_content {
	max-height: 260px;
	overflow-y: auto;
	gap: 16px;
	display: flex;
	flex-direction: column;
}
.cbf_terms_content h1 {
	color: #215628;
	font-weight: 800;
	font-size: 18px;
	line-height: 24px;
	margin: 0;
}
.cbf_terms_content h2 {
	color: #464646;
	font-weight: 700;
	font-size: 14px;
	line-height: 21px;
	margin: 0;
}
.cbf_terms_content h3 {
	color: #215628;
	font-weight: 700;
	font-size: 14px;
	line-height: 21px;
	margin: 0;
}
.cbf_terms_content p, .cbf_terms_content li {
	color: #525252;
	font-size: 12px;
	line-height: 1.2em;
	margin: 0;
    font-weight:400;
}
.cbf_terms_content * { padding: 0; }

/* Confirm Booking Button */
.checkout_confirm_booking {
	width:100%;
	display: flex;
	justify-content: right;
	align-items: center;
	align-self: flex-end;
}
.cbf_confirm_booking_btn {
	width: 100%;
	max-width: 257px;
	color: #fff;
	background-color: #215628;
	border: none;
	border-radius: 8px;
	padding: 16px 32px;
	height: 56px;
	font-size: 16px;
	line-height: 24px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
.cbf_confirm_booking_btn:hover { background-color: #184b20; }
.cbf_confirm_booking_btn:active { background-color: #133e1a; }
.cbf_confirm_booking_btn:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

/* =========================================================
   MODAL (BOOK NOW OVERLAY)
   ========================================================= */
.bookNowModelOverlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: auto;
	z-index: 9999999999;
}
.bookNowModel {
	background-color: #fff;
	width: 80%;
	max-width: 566px;
	border-radius: 8px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0;
	max-height: 350px;
	min-height: 200px;
	font-family: 'Manrope' !important;
}
.bookNowModel * { font-family: 'Manrope' !important; }
.cbsm_header {
	width: 100%;
	padding: 16px;
	display: flex;
	justify-content: center;
	border-bottom: 1px solid #EFEFEF;
}
.cbsm_header h3 {
	padding: 0;
	text-align: left;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 0;
	color: #3D3D3D;
	line-height: 29px;
	letter-spacing: -1px;
}
.cbsm_body {
	text-align: center;
	display: flex;
	flex-direction: column;
}
.cbsm_bodytext {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 20%;
}
.cbsm_bodytext p {
	font-size: 16px;
	color: #3D3D3D;
	font-weight: 400;
	line-height: 24px;
	margin: 0;
}
.cbsm_img_block img {
	max-width: 150px;
	margin-top: 20px;
}
.bnm_close_btn {
	cursor: pointer;
	align-content: center;
    top:20px;
    right:20px;
}
.bnm_close_btn img {
	width: 15px;
	height: 15px;
}
.signLeasePopup .bookNowModel {
	max-height:250px;
	max-width:500px;
}
.signLeasePopup .cbsm_bodytext {
	padding-bottom: 3vh;
}

/* =========================================================
   RESPONSIVE STYLES
   ========================================================= */
@media (max-width: 1024px) {
	.c_hero_heading { font-size: 40px; line-height: 45px; font-weight: 700; }
	.c_hero_unit_name { font-size: 24px; line-height: 29px; font-weight: 800; color: #292929; }
	.c_hero_text { gap: 12px; }
	.c_hero_image { max-width: 100%; }
	.c_hero_content { flex-direction: column-reverse; gap: 24px; }
	.facility_features_block { left: -50px; }
	.c_hero_section_inner .c_hero_content { flex-direction: row; }
}
@media (min-width: 769px) {
	.cbf_field_group.cbf_field_group_password{
		max-width: calc(50% - 10px);
	}
}
@media (max-width: 768px) {

.cbf_fields_block,.checkout_payment .cbf_row {gap:12px; margin-bottom:0px;}
	.c_hero_section {
		padding: 40px 16px;
		background-image: none;
		height: auto;
		gap: 40px;
	}
	.c_hero_overlay { background-color: #EBEFEC; }
	.c_hero_section_inner { padding: 0; gap: 20px; }
	.c_hero_content { flex-direction: column-reverse; }
	.c_unit_info_section .c_hero_content { padding: 0; }
	.c_hero_image { width: 100%; max-width: 100%; background: #F6F7F8; }
	.c_hero_heading { font-size: 28px; font-weight: 600; line-height: 34px; }
	.c_hero_text { width: 100%; gap: 8px; color: #FFFFFF; }
	.back_btn_block { padding: 8px 16px 8px 0; justify-content: left; }
	.c_unit_info_section .c_hero_text { color: #3D3D3D; font-size: 14px; font-weight: 400; }
	.c_hero_date_picker_block { margin-top: 16px; }
	.checkout_contact, .checkout_summary, .checkout_payment, .checkout_terms, .c_hero_content,.booking_summary,.c_unit_info_section {
		padding: 20px 16px;
	}
	.checkout_summary, .checkout_payment, .checkout_terms { padding-bottom: 40px; }
	.checkout_confirm_booking { padding: 0 16px 64px 16px; justify-content: center; }
	.cbf_section_heading { font-size: 24px; font-weight: 700; }
	.cbf_row { flex-direction: column; gap: 12px; }
	.cbf_row_four_fields .cbf_field_group { flex: 1 1 100%; }
	th.cbf_table_th:first-child { width: unset !important; min-width:unset!important; }
	th.cbf_table_th:not(:first-child) { width: unset !important; min-width: unset; }
	.cbf_total_value { font-size: 24px; line-height: 29px; }
	.cbf_terms_content h1 { font-size: 16px; font-weight: 700; }
	.cbf_terms_content h2 { font-size: 12px; line-height: 18px; }
    .bnm_close_btn { top: 10px; right: 10px; font-size:16px; }
	.bnm_close_btn img { margin-top: 7px; }
	.cbsm_bodytext p { font-size: 14px; line-height: 21px; text-align: center; }
	.c_hero_unit_img { width: 100%; }
	.facility_features_block { display: none; }
}
@media (max-width: 768px) {
  .checkout_main_block {
    flex-direction: column !important;
    padding: 64px 0vw;
  }
  .checkout_summary, .checkout_payment {
    flex: 1 1 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
  }
  .cbf_confirm_booking_btn {
    max-width: 100% !important;
    width: 100% !important;
  }
  input.cbf_field,
  select.cbf_field {
    font-size: 16px;
    height: 48px;
  }
}
.cbf_field_group input[type=email], 
.cbf_field_group input[type=password], 
.cbf_field_group input[type=tel], 
.cbf_field_group input[type=text], 
.cbf_field_group select, 
.cbf_field_group textarea {
	padding-left: 8px;
    padding-right: 8px;
}

/* =========================================================
   CHECKOUT COLUMN ORDERING
   (Ensures contact info appears above payment info)
   ========================================================= */
.checkout_left_column {
  display: flex;
  flex-direction: column;
}

.checkout_contact {
  order: 1; /* first in column */
}

.checkout_payment {
  order: 2; /* second in column */
}

.checkout_main_block {
  display: flex;
  align-items: flex-start;   /* align left + right columns at the top */
  gap: 40px;
}

.sl_booking_page .checkout_main_block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "contact   unitinfo"
    "payment   terms"
    "bookings  confirm";
  column-gap: 5vw;
  row-gap: 40px;
  align-items: start;
}

/* Assign areas */
.sl_booking_page .checkout_contact   { grid-area: contact; }
.sl_booking_page .checkout_payment   { grid-area: payment; }
.sl_booking_page .booking_summary    { grid-area: bookings; }
.sl_booking_page .c_unit_info_section{ grid-area: unitinfo; }
.sl_booking_page .checkout_terms     { grid-area: terms; }
.sl_booking_page .checkout_confirm_booking { grid-area: confirm; }


/* Flatten the two wrapper columns so their children can be addressed as grid items */
.sl_booking_page .checkout_left_column,
.sl_booking_page .checkout_summary{
  display: contents;
}


/* Responsive: stack on small screens */
@media (max-width: 768px){
  .sl_booking_page .checkout_main_block{
    grid-template-columns: 1fr;
    grid-template-areas:
      "contact"
      "payment"
      "unitinfo"
      "bookings";
    row-gap:0px!important;
  }
}

/* =======================
   MOBILE FIXES (≤768px)
   ======================= */
@media (max-width: 768px) {
.c_hero_img_inner {
max-width:230px;
}

  /* Force full width inside Divi wrappers */
  .sl_booking_page,
  .sl_booking_page .et_pb_section,
  .sl_booking_page .et_pb_row,
  .sl_booking_page .checkout_main_block,
  .sl_booking_page .checkout_contact,
  .sl_booking_page .checkout_payment,
  .sl_booking_page .checkout_summary,
  .sl_booking_page .checkout_terms,
  .sl_booking_page .checkout_confirm_booking,
  .sl_booking_page .c_unit_info_section {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  /* Reorder grid so unit info is first */
  .sl_booking_page .checkout_main_block {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "unitinfo"
      "contact"
      "payment"
      "bookings"
      "terms"
      "confirm";
    row-gap: 32px;
    padding: 24px 0;
  }

  /* Form rows stack */
  .cbf_row {
    flex-direction: column;
    gap: 12px;
  }

  /* Booking table responsive */
  .cbf_table_scroll {
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
    .cbf_table_th.sticky-col,
  .cbf_table td.sticky-col {
    max-width: 100px;   /* or whatever feels balanced */
    white-space: normal; /* allow wrapping if needed */
    word-break: break-word;
  }

  .cbf_table th,
  .cbf_table td {
    width: auto !important;
    white-space: nowrap;
  }
.entry-content tr td {
	padding:8px!important;
	font-size:10px!important;
}
table.cbf_table th {
	padding:8px!important;
	font-size:12px!important;
}

  table.cbf_table {
    width: 100% !important;
    table-layout: auto;
  }

  /* Total row always visible */
  .cbf_total_summary {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding: 16px !important;
    margin-top: 12px !important;
    width: 100% !important;
    box-sizing: border-box;
  }

  .cbf_total_label {
    font-size: 16px !important;
    font-weight: 700;
  }
  .cbf_total_value {
    font-size: 24px !important;
    font-weight: 800;
    color: #215628;
  }

  /* Confirm Booking button */
  .checkout_confirm_booking {
    justify-content: left !important;
    padding: 24px 16px;
    display: flex !important;
  }
  .cbf_confirm_booking_btn {
    width: 100% !important;
    max-width: 320px !important;
  }

  /* Hero section clean up */
  .c_hero_section {
    padding: 40px 16px;
    background-image: none;
    height: auto;
    gap: 40px;
  }

  .c_hero_heading {
    font-size: 28px;
    line-height: 34px;
  }

  .facility_features_block {
    display: none;
  }

  /* Prevent sticky column offset */
  .sticky-col {
    background-color: #fff;
    left: 0 !important;
  }
  
}

/* =========================================================
   PATCH / OVERRIDES (safe fixes for cut-off + resizing)
   ========================================================= */

/* Use grid consistently at desktop, with a flexible right column */
.sl_booking_page .checkout_main_block {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  grid-auto-rows: auto;
  align-items: start;
}

/* Ensure grid children are allowed to shrink (prevents “cut off”) */
.sl_booking_page .checkout_main_block > * { min-width: 0; }
.sl_booking_page .checkout_contact,
.sl_booking_page .checkout_payment,
.sl_booking_page .c_unit_info_section,
.sl_booking_page .booking_summary,
.sl_booking_page .checkout_terms,
.sl_booking_page .checkout_confirm_booking { min-width: 0; }

/* Make long content wrap instead of forcing layout overflow */
.sl_booking_page .checkout_main_block,
.sl_booking_page .checkout_main_block * {
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Sticky first column in table behaves better inside scroll container */
.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 2; /* above other cells */
  background: #FCFCFC;
}

/* Tablet down: single column grid that keeps everything inside viewport */
@media (max-width: 1024px) {
  .sl_booking_page .checkout_main_block {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "unitinfo"
      "contact"
      "payment"
      "bookings"
      "terms"
      "confirm";
    row-gap: 32px;
    padding-left: 5vw;
    padding-right: 5vw;
  }
}

/* Mobile: keep paddings tight and avoid horizontal scroll entirely */
@media (max-width: 768px) {
  .sl_booking_page,
  .sl_booking_page * { box-sizing: border-box; }
  .sl_booking_page { overflow-x: hidden; }
  .sl_booking_page .checkout_main_block {
    padding-left: 0;
    padding-right: 0;
  }
  .cbf_table_scroll { max-width: 100%; overflow-x: auto; }
}

.checkout_confirm_booking,
.cbf_confirm_booking_btn {
  position: relative;
  z-index: 99999;
}
.table-overlay,
.c_hero_img_inner,
.facility_features_block {
  pointer-events: none;
}