/* Airbnb Inspired Global Design System */

:root {
  --abnb-primary: #FF385C;
  --abnb-primary-hover: #D90B38;
  --abnb-dark: #222222;
  --abnb-gray-dark: #717171;
  --abnb-gray-light: #B0B0B0;
  --abnb-gray-bg: #F7F7F7;
  --abnb-border: #DDDDDD;
  --abnb-white: #FFFFFF;
  --abnb-shadow-sm: 0 1px 2px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05);
  --abnb-shadow-md: 0 6px 16px rgba(0,0,0,0.12);
  --abnb-shadow-lg: 0 14px 28px rgba(0,0,0,0.15), 0 10px 10px rgba(0,0,0,0.12);
  
  --font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body {
  font-family: var(--font-family-sans) !important;
  color: var(--abnb-dark);
  background-color: var(--abnb-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Typography Utilities */
.text-primary { color: var(--abnb-primary) !important; }
.text-dark { color: var(--abnb-dark) !important; }
.text-gray { color: var(--abnb-gray-dark) !important; }
.font-bold { font-weight: 600 !important; }
.font-extrabold { font-weight: 800 !important; }

/* Buttons */
.btn-abnb {
  background: var(--abnb-primary);
  color: var(--abnb-white);
  border-radius: 8px;
  padding: 14px 24px;
  font-weight: 600;
  font-size: 16px;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.1s ease;
  display: inline-block;
  text-align: center;
}

.btn-abnb:hover {
  background: var(--abnb-primary-hover);
  color: var(--abnb-white);
}

.btn-abnb:active {
  transform: scale(0.98);
}

.btn-abnb-outline {
  background: transparent;
  color: var(--abnb-dark);
  border: 1px solid var(--abnb-dark);
  border-radius: 8px;
  padding: 13px 23px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.btn-abnb-outline:hover {
  background: var(--abnb-gray-bg);
}

/* Search Form Pill */
.abnb-header-search-wrapper {
  width: 100%;
}
.header-rmsearch-wrapper {
  background-size: cover;
  background-position: center;
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.abnb-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

/* Amenities Block Fixes - Airbnb Redesign */
#hotelAmenitiesBlock {
  padding: 64px 0;
  width: 100%;
}
.abnb-amenities-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 32px;
  margin-top: 32px;
}
.abnb-amenity-card {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.abnb-amenity-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}
.abnb-amenity-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
}
.abnb-amenity-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.abnb-amenity-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--abnb-dark);
  margin-bottom: 8px;
}
.abnb-amenity-desc {
  font-size: 15px;
  color: var(--abnb-gray-text);
  line-height: 1.5;
}

/* Interior Gallery Grid (Bento) */
.abnb-interior-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 250px);
  gap: 8px;
  border-radius: 16px;
  overflow: hidden;
  margin-top: 32px;
}
.abnb-interior-grid > div {
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.abnb-interior-grid > div:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.abnb-interior-grid > div img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.abnb-interior-grid > div:hover img {
  transform: scale(1.05);
  opacity: 0.9;
}

.abnb-search-container {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Layout Utilities */
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.container-abnb {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
}

@media (max-width: 743px) {
  .container-abnb {
    padding: 0 24px;
  }
}

/* Header Overrides */
#header {
  background-color: var(--abnb-white) !important;
  background-image: none !important; /* Remove Qloapps default background image */
  border-bottom: 1px solid var(--abnb-border);
  height: 80px !important;
  position: sticky;
  top: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  width: 100%;
}

.header-top {
  width: 100%;
  background: none !important;
}

.header-top > .container {
  width: 100%;
  max-width: 1440px;
  padding: 0 40px;
  margin: 0 auto;
}

.header-top-menu {
  display: none !important; /* Hide old Qloapps top menu, we'll replace it */
}

/* Reset Banner */
.banner { display: none; }

/* Search Pill */
.abnb-search-pill {
  display: flex;
  background: var(--abnb-white);
  border: 1px solid var(--abnb-border);
  border-radius: 40px;
  box-shadow: var(--abnb-shadow-sm);
  transition: box-shadow 0.2s ease;
  align-items: stretch;
  height: 66px;
  overflow: visible;
  margin: 0 auto;
  max-width: 850px;
}
.abnb-search-pill:hover {
  box-shadow: var(--abnb-shadow-md);
}
.abnb-search-item {
  flex: 1;
  padding: 14px 32px;
  position: relative;
  border-radius: 40px;
  cursor: pointer;
  transition: background 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}
.abnb-search-item:hover {
  background: var(--abnb-gray-bg);
}
.abnb-search-item::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 32px;
  width: 1px;
  background: var(--abnb-border);
}
.abnb-search-item:last-child::after,
.abnb-search-item:hover::after,
.abnb-search-item:hover + .abnb-search-item::after { 
  display: none; 
}
.abnb-search-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--abnb-dark);
  margin-bottom: 2px;
  letter-spacing: 0.5px;
}
.abnb-search-input, .abnb-search-value {
  border: none;
  background: transparent;
  padding: 0;
  font-size: 14px;
  color: var(--abnb-gray-dark);
  font-weight: 400;
  width: 100%;
  outline: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.abnb-search-input:focus { color: var(--abnb-dark); }
.abnb-search-button-wrapper {
  padding: 8px 10px 8px 0;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 10;
}
.btn-abnb-search {
  background: var(--abnb-primary);
  color: white;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.btn-abnb-search:hover { background: var(--abnb-primary-hover); }

/* Property Cards */
.abnb-product-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 32px 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.abnb-card {
  position: relative;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  text-decoration: none !important;
}
.abnb-card-image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 20 / 19;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 12px;
  background-color: var(--abnb-gray-bg);
}
.abnb-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.abnb-card:hover .abnb-card-image {
  transform: scale(1.05);
}
.abnb-card-favorite {
  position: absolute;
  top: 12px;
  right: 12px;
  color: white;
  z-index: 10;
  cursor: pointer;
  transition: transform 0.2s ease, color 0.2s ease;
}
.abnb-card-favorite:hover {
  transform: scale(1.1);
}
.abnb-card-favorite.active .material-symbols-rounded {
  color: #ff385c;
  font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.abnb-card-favorite .material-symbols-rounded {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.abnb-card-heart {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  cursor: pointer;
  transition: transform 0.2s;
}
.abnb-card-heart svg {
  fill: rgba(0, 0, 0, 0.5);
  stroke: white;
  stroke-width: 2px;
  transition: fill 0.2s;
}
.abnb-card-heart:hover {
  transform: scale(1.1);
}
.abnb-card-heart:hover svg {
  fill: var(--abnb-primary);
  stroke: var(--abnb-white);
}
.abnb-card-content {
  display: flex;
  flex-direction: column;
}
.abnb-card-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 4px;
}
.abnb-card-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--abnb-dark);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 80%;
}
.abnb-card-rating {
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--abnb-dark);
}
.abnb-card-subtitle {
  font-size: 15px;
  color: var(--abnb-gray-dark);
  margin: 0 0 2px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.abnb-card-price {
  font-size: 15px;
  color: var(--abnb-dark);
  margin-top: 6px;
}

/* Product Page Airbnb Layout */
.abnb-product-header {
  margin-top: 24px;
  margin-bottom: 24px;
}
.abnb-product-title {
  font-size: 26px;
  font-weight: 600;
  color: var(--abnb-dark);
  margin-bottom: 8px;
  line-height: 1.2;
}
.abnb-product-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--abnb-dark);
  font-weight: 500;
}

/* Image Collage */
.abnb-image-collage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  border-radius: 12px;
  overflow: hidden;
  height: 60vh;
  min-height: 400px;
  margin-bottom: 48px;
}
.abnb-main-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
}
.abnb-thumbnail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
}
.abnb-thumbnail-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
}

/* Content Layout */
.abnb-product-content {
  display: flex;
  flex-wrap: wrap;
  gap: 8%;
  margin-bottom: 64px;
}
.abnb-product-left {
  flex: 1 1 55%;
  max-width: 65%;
}
.abnb-product-right {
  flex: 1 1 30%;
  max-width: 35%;
  position: sticky;
  top: 100px; /* offset for sticky header */
  align-self: flex-start;
  z-index: 10;
}

/* Sticky Booking Card */
.abnb-booking-card {
  background: var(--abnb-white);
  border: 1px solid var(--abnb-border);
  border-radius: 12px;
  padding: 24px;
  box-shadow: var(--abnb-shadow-lg);
}

.abnb-info-section {
  padding: 32px 0;
  border-bottom: 1px solid var(--abnb-border);
}
.abnb-info-section:last-child {
  border-bottom: none;
}
.abnb-info-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--abnb-dark);
  margin-bottom: 16px;
}
.abnb-info-text {
  font-size: 16px;
  color: var(--abnb-dark);
  line-height: 1.6;
  font-weight: 400;
}

/* Authentication Page Redesign */
.abnb-auth-page {
  background-color: var(--abnb-gray-bg);
  padding: 60px 0;
  min-height: calc(100vh - 200px);
}
.abnb-auth-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  max-width: 1000px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .abnb-auth-grid {
    grid-template-columns: 1fr;
  }
}
.abnb-auth-card {
  background: white;
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.08);
  border: 1px solid var(--abnb-border);
  display: flex;
  flex-direction: column;
}
.abnb-auth-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--abnb-dark);
  margin-top: 0;
  margin-bottom: 24px;
  letter-spacing: -0.5px;
}
.abnb-auth-desc {
  font-size: 15px;
  color: var(--abnb-gray-dark);
  margin-bottom: 32px;
  line-height: 1.5;
}
.abnb-form-group {
  position: relative;
  margin-bottom: 16px;
}
.abnb-form-label {
  position: absolute;
  top: 8px;
  left: 14px;
  font-size: 12px;
  font-weight: 500;
  color: var(--abnb-gray-text);
  margin-bottom: 0;
  text-transform: none;
  letter-spacing: normal;
  pointer-events: none;
  z-index: 2;
}
.abnb-form-input {
  width: 100%;
  padding: 24px 14px 8px;
  font-size: 16px;
  border: 1px solid var(--abnb-border);
  border-radius: 8px;
  color: var(--abnb-dark);
  transition: border-color 0.2s, box-shadow 0.2s;
  background-color: white;
  position: relative;
}
.abnb-form-input:focus {
  outline: none;
  border-color: var(--abnb-dark);
  box-shadow: 0 0 0 1px var(--abnb-dark);
  z-index: 1;
}
.abnb-btn-primary {
  width: 100%;
  padding: 16px;
  background-color: var(--abnb-primary);
  color: white;
  font-size: 16px;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.abnb-btn-primary:hover {
  background-color: #e31c5f;
  color: white;
}
.abnb-btn-primary:active {
  transform: scale(0.98);
}
.abnb-btn-secondary {
  width: 100%;
  padding: 16px;
  background-color: transparent;
  color: var(--abnb-dark);
  font-size: 16px;
  font-weight: 600;
  border: 1px solid var(--abnb-dark);
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.abnb-btn-secondary:hover {
  background-color: var(--abnb-gray-bg);
}
.abnb-btn-secondary:active {
  transform: scale(0.98);
}
.abnb-auth-single-col {
  max-width: 600px;
  margin: 0 auto;
}
.abnb-auth-section-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--abnb-dark);
  margin-top: 32px;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--abnb-border);
}
.abnb-auth-row {
  display: flex;
  gap: 16px;
}
.abnb-auth-row > div {
  flex: 1;
}

/* My Account Page */
.abnb-account-page {
  background-color: var(--abnb-gray-bg);
  padding: 60px 0;
  min-height: calc(100vh - 200px);
}
.abnb-account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}
.abnb-account-card {
  background: white;
  border-radius: 16px;
  padding: 32px 24px;
  border: 1px solid var(--abnb-border);
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
  text-decoration: none !important;
  color: var(--abnb-dark) !important;
}
.abnb-account-card:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
  transform: translateY(-4px);
}
.abnb-account-card i {
  font-size: 32px;
  color: var(--abnb-primary);
  margin-bottom: 24px;
}
.abnb-account-card span {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
}
.abnb-account-card p {
  font-size: 14px;
  color: var(--abnb-gray-dark);
  margin: 0;
  line-height: 1.5;
}

/* Airbnb Styled Tables for Account Pages */
.abnb-table-container {
  overflow-x: auto;
}
.abnb-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 0;
}
.abnb-table th {
  background-color: var(--abnb-gray-bg);
  color: var(--abnb-dark);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.5px;
  padding: 16px;
  text-align: left;
  border-bottom: 2px solid var(--abnb-border);
}
.abnb-table td {
  padding: 16px;
  vertical-align: middle;
  border-bottom: 1px solid var(--abnb-border);
  color: var(--abnb-gray-dark);
  font-size: 15px;
}
.abnb-table tbody tr {
  transition: background-color 0.2s;
}
.abnb-table tbody tr:hover {
  background-color: #fafafa;
}
.abnb-table-action {
  color: var(--abnb-primary);
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.abnb-table-action:hover {
  text-decoration: underline;
  color: var(--abnb-dark);
}

/* Back Link styling */
.abnb-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--abnb-gray-dark);
  font-weight: 600;
  text-decoration: none;
  margin-top: 32px;
  transition: color 0.2s;
}
.abnb-back-link:hover {
  color: var(--abnb-dark);
}
/* Dark Footer Theme */
.abnb-dark-footer {
  background-color: #222222;
  color: #dddddd;
  padding: 64px 0 32px;
  border-top: none;
}
.abnb-dark-footer .footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  border-bottom: 1px solid #444444;
  padding-bottom: 40px;
  margin-bottom: 32px;
}
.abnb-dark-footer .footer-col h4 {
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 20px;
}
.abnb-dark-footer .footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  line-height: 2.5;
}
.abnb-dark-footer .footer-col ul li a,
.abnb-dark-footer .footer-col ul li span {
  color: #dddddd;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s;
}
.abnb-dark-footer .footer-col ul li a:hover {
  color: #ffffff;
  text-decoration: underline;
}
.abnb-dark-footer .footer-bottom {
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
}
.abnb-dark-footer .copyright a {
  color: #dddddd;
  text-decoration: none;
}
.abnb-dark-footer .copyright a:hover {
  color: #ffffff;
  text-decoration: underline;
}
.abnb-dark-footer .footer-utils {
  display: flex;
  gap: 20px;
  align-items: center;
  font-weight: 500;
  color: #ffffff;
}
/* Hero Banner Animations & Styling */
.header-rmsearch-wrapper {
  height: 100vh;
  min-height: 600px;
}
.abnb-hero-overlay {
  background: rgba(0, 0, 0, 0.4);
}
.abnb-hero-content {
  text-align: center;
  color: white;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding-top: 80px; /* offset for transparent header */
}
.abnb-hero-subtitle {
  font-size: 24px;
  font-weight: 400;
  margin-bottom: 8px;
  color: #f0f0f0;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.abnb-hero-title {
  font-size: 64px;
  font-weight: 700;
  margin-bottom: 16px;
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
  letter-spacing: -1px;
}
.abnb-hero-desc {
  font-size: 18px;
  font-weight: 300;
  margin-bottom: 48px;
  color: #e0e0e0;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.abnb-hero-search {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

/* Animations */
@keyframes abnbFadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.abnb-animate-up {
  opacity: 0; /* start hidden */
  animation: abnbFadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
/* Hide the original QloApps hero text to prevent duplication */
.header-desc-welcome, .heasder-desc-hr-first, .header-desc-inner-wrapper {
    display: none !important;
}
.header-rmsearch-wrapper {
  background-color: #1a1a1a;
  background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1542314831-c6a4d1409362?q=80&w=2000&auto=format&fit=crop');
  background-size: cover;
  background-position: center;
}

/* Override QloApps default absolute positioning to fix layout collapse */
.header-rmsearch-container {
  position: relative !important;
  height: 100vh !important;
  min-height: 600px !important;
  width: 100% !important;
}

/* 1. Bulletproof Image Aspect Ratio */
.abnb-amenity-img {
  aspect-ratio: auto !important;
  padding-bottom: 56.25% !important; /* 16:9 */
}

/* 2. Fix overlapping blocks by forcing clearing */


/* 3. Local fallback background image */
.header-rmsearch-wrapper {
  background-color: #1a1a1a !important;
  background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6)), url('../../../modules/wkhotelfeaturesblock/views/img/hotels_features_img/1.jpg') !important;
}

/* 4. Fix Chosen Dropdown Styling inside the search pill */
.abnb-search-item .chosen-container-single .chosen-single {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    height: auto !important;
    line-height: normal !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #222222 !important;
}
.abnb-search-item .chosen-container-single .chosen-single span {
    margin-right: 0 !important;
}
.abnb-search-item .chosen-container-single .chosen-single div {
    display: none !important;
}
.abnb-search-item .chosen-container {
    width: 100% !important;
}


/* Replace padding hack with a solid minimum height to prevent grid collapse */
.abnb-amenity-img {
  padding-bottom: 0 !important;
  height: 250px !important; 
  min-height: 250px !important;
  width: 100% !important;
}


/* Bulletproof Clearfix for all home block containers to prevent overlap */
.home_block_container::after {
    content: "";
    display: table;
    clear: both;
}

/* RESET AVRINA-HOME BLOCK BREAKOUTS THAT CAUSE COLLAPSES */
#hotelAmenitiesBlock, #hotelRoomsBlock {
    width: 100% !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    clear: both !important;
}

/* Force wrappers to take height and not collapse */
.home_amenities_wrapper {
    float: none !important;
    width: 100% !important;
    display: block !important;
    height: auto !important;
    min-height: 100px !important;
}

/* Reset image sizing to standard block + aspect ratio */
.abnb-amenity-img {
  width: 100% !important;
  height: 250px !important; /* Explicit safe height */
  min-height: 250px !important;
  padding-bottom: 0 !important;
  display: block !important;
}

/* Reset the grid to be fully stable */
.abnb-amenities-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 30px !important;
    margin-top: 30px !important;
    width: 100% !important;
}
.abnb-amenity-card {
    flex: 1 1 calc(33.333% - 30px) !important;
    min-width: 280px !important;
    height: auto !important; /* Let content dictate height */
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
}


/* Fix horizontal scrollbar */
body, html {
    overflow-x: hidden !important;
}

/* Fix Hero Banner width to avoid white gaps */
.header-rmsearch-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* Search Pill Alignment Fixes */
.abnb-search-pill {
    display: flex !important;
    align-items: center !important;
    background: #ffffff !important;
    border-radius: 40px !important;
    padding: 8px 8px 8px 32px !important;
    box-shadow: 0 16px 32px rgba(0,0,0,0.15) !important;
    width: 100% !important;
    max-width: 1000px !important;
    margin: 0 auto !important;
    height: 66px !important;
}

.abnb-search-item {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 0 24px !important;
    flex: 1 !important;
    border-right: 1px solid #e0e0e0 !important;
    height: 100% !important;
}
.abnb-search-item:last-of-type {
    border-right: none !important;
}

.abnb-search-label {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 2px !important;
}

.abnb-search-input, .abnb-search-value {
    border: none !important;
    outline: none !important;
    font-size: 14px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 400 !important;
    width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}

/* Fix Chosen Dropdown Alignment */
.abnb-search-item .hotel-selector-wrap {
    width: 100% !important;
}
.abnb-search-item .chosen-container-single .chosen-single {
    padding: 0 !important;
    height: auto !important;
    line-height: 1.2 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: var(--abnb-gray-dark) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.abnb-search-button-wrapper {
    margin-left: 8px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
}

.btn-abnb-search {
    width: 50px !important;
    height: 50px !important;
    border-radius: 25px !important;
    background-color: var(--abnb-primary) !important;
    color: white !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background-color 0.2s !important;
    padding: 0 !important;
}
.btn-abnb-search:hover {
    background-color: #d6204b !important;
}


/* Beautiful Hero Slideshow Animation */
@keyframes abnbHeroSlideshow {
  0%, 25% {
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.5)), url('../img/hero1.png');
  }
  33.33%, 58.33% {
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.5)), url('../img/hero2.png');
  }
  66.66%, 91.66% {
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.5)), url('../img/hero3.png');
  }
  100% {
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.5)), url('../img/hero1.png');
  }
}

.header-rmsearch-wrapper {
  background-color: #1a1a1a !important;
  background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5)), url('../img/hero1.png') !important;
  background-size: cover !important;
  background-position: center !important;
  animation: abnbHeroSlideshow 18s infinite linear !important;
}


/* CRITICAL FIX FOR SEARCH PILL ALIGNMENT */
.abnb-search-pill {
    display: flex !important;
    align-items: stretch !important; /* stretch to fill height */
    background: #ffffff !important;
    border-radius: 40px !important;
    padding: 0 8px 0 32px !important;
    box-shadow: 0 16px 32px rgba(0,0,0,0.15) !important;
    width: 100% !important;
    max-width: 1000px !important;
    margin: 0 auto !important;
    height: 66px !important;
    box-sizing: border-box !important;
}

.abnb-search-item {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    padding: 0 24px !important;
    flex: 1 !important;
    border-right: 1px solid #e0e0e0 !important;
    height: 100% !important;
    background: transparent !important; /* override any bootstrap dropdown bg */
    border-radius: 0 !important;
}
.abnb-search-item:last-of-type {
    border-right: none !important;
}

.abnb-search-label {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 0 4px 0 !important;
    line-height: 1 !important;
    height: auto !important;
}

.abnb-search-input, .abnb-search-value {
    border: none !important;
    outline: none !important;
    font-size: 14px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 500 !important;
    width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    height: auto !important;
    min-height: auto !important;
    box-shadow: none !important;
}

/* Fix Chosen Dropdown Height & Alignment */
.abnb-search-item .hotel-selector-wrap {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.abnb-search-item .chosen-container-single .chosen-single {
    padding: 0 !important;
    height: auto !important;
    min-height: auto !important;
    line-height: 1 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--abnb-gray-dark) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.abnb-search-item .chosen-container-single .chosen-single span {
    margin: 0 !important;
    line-height: 1.2 !important;
    top: 0 !important;
    color: var(--abnb-dark) !important;
}

.abnb-search-button-wrapper {
    margin-left: 8px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
}

/* ==========================================================================
   CATEGORY PAGE SEARCH CARD (LEFT SIDEBAR)
   ========================================================================== */

/* Left column container override */
#left_column {
    padding-right: 15px !important;
}

#left_column .header-rmsearch-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    background: #ffffff !important;
    background-image: none !important;
    animation: none !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 24px !important;
    position: static !important;
}

/* Clear the old "Search Rooms" header styles */
#left_column .filter_header {
    margin-bottom: 20px !important;
    width: 100% !important;
}
#left_column .filter_header p {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    line-height: normal !important;
    margin: 0 0 8px 0 !important;
    text-transform: none !important;
}
#left_column .filter_header .header-bottom-hr {
    display: none !important; /* Hide old yellow line */
}

#left_column #search_hotel_block_form {
    display: block !important;
    width: 100% !important;
}

/* Stack the fields vertically */
#left_column .abnb-search-pill {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Format each search item as a distinct modern field card */
#left_column .abnb-search-item {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    height: auto !important;
    padding: 12px 16px !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

#left_column .abnb-search-item:hover,
#left_column .abnb-search-item:focus-within {
    border-color: var(--abnb-dark) !important;
    box-shadow: 0 0 0 1px var(--abnb-dark) !important;
    background: #ffffff !important;
}

/* Adjust labels inside items */
#left_column .abnb-search-label {
    font-size: 10px !important;
    font-weight: 800 !important;
    color: var(--abnb-gray-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    margin-bottom: 4px !important;
    line-height: 1 !important;
}

/* Adjust input text / value inside items */
#left_column .abnb-search-input,
#left_column .abnb-search-value {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--abnb-dark) !important;
    width: 100% !important;
    height: auto !important;
    line-height: 1.4 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Custom adjustment for the Chosen hotel select container inside sidebar */
#left_column .abnb-search-item .hotel-selector-wrap {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#left_column .abnb-search-item .chosen-container-single .chosen-single {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--abnb-dark) !important;
    height: auto !important;
    min-height: 0 !important;
    min-height: unset !important;
    line-height: 1.4 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

#left_column .abnb-search-item .chosen-container-active .chosen-single {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

#left_column .abnb-search-item .chosen-container-single .chosen-single span {
    margin-right: 0 !important;
    top: 0 !important;
    min-height: 0 !important;
    min-height: unset !important;
    height: auto !important;
}

#left_column .abnb-search-item .chosen-container-single .chosen-single div {
    display: none !important;
}

/* Redesign Search Button to be full width and red */
#left_column .abnb-search-button-wrapper {
    width: 100% !important;
    margin: 8px 0 0 0 !important;
    padding: 0 !important;
}

#left_column .btn-abnb-search {
    width: 100% !important;
    height: 48px !important;
    border-radius: 12px !important;
    background-color: var(--abnb-primary) !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border: none !important;
    cursor: pointer !important;
    transition: background-color 0.2s, transform 0.1s !important;
    padding: 0 !important;
    text-transform: uppercase !important;
}

#left_column .btn-abnb-search:hover {
    background-color: var(--abnb-primary-hover) !important;
}

#left_column .btn-abnb-search:active {
    transform: scale(0.98) !important;
}

/* Add text label inside the button next to search icon */
#left_column .btn-abnb-search::after {
    content: "Search Rooms";
    font-family: var(--font-family-sans);
}

/* Dropdowns & Occupancy Box inside Sidebar */
#left_column #search_occupancy_wrapper {
    position: absolute !important;
    left: 24px !important;
    right: 24px !important;
    width: calc(100% - 48px) !important;
    min-width: 0 !important;
    z-index: 1001 !important;
    border-radius: 16px !important;
    padding: 20px !important;
    border: 1px solid var(--abnb-border) !important;
    box-shadow: var(--abnb-shadow-lg) !important;
    background: #ffffff !important;
}

/* Datepicker & Dropdown Layering Fix */
.daterangepicker, 
.datepicker, 
.ui-datepicker, 
.ui-datepicker-container,
.bootstrap-datetimepicker-widget {
    z-index: 9999999 !important;
}

/* ==========================================================================
   AIRBNB ROOM CARDS OVERHAUL
   ========================================================================== */

#category_data_cont {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
}

.room_cont {
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    margin-bottom: 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    border-top: 1px solid var(--abnb-border) !important; /* override the old border-top */
}

.room_cont:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08) !important;
}

/* Image section */
.room_cont .room-type-image {
    border-radius: 12px !important;
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    margin-bottom: 0 !important;
}

/* Info container */
.room_info_cont {
    padding-left: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    height: 100% !important;
    min-height: 220px !important;
}

/* Room Heading */
.room_cont .rm_heading {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    line-height: 28px !important;
    margin-bottom: 8px !important;
}

/* Hurry! rooms left indicator */
.room_cont .rm_left {
    font-size: 14px !important;
    color: var(--abnb-primary) !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    text-align: left !important;
}

/* Description text */
.room_cont .rm_desc {
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: var(--abnb-gray-dark) !important;
    margin-bottom: 16px !important;
}

.room_cont .rm_desc a.view_more {
    color: var(--abnb-dark) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    margin-left: 6px !important;
    display: inline-block !important;
}

/* Amenities container */
.room_cont .room_features_cont {
    margin-top: auto !important;
}

.room_cont .rm_amenities_cont {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
}

.room_cont .rm_amen {
    width: 20px !important;
    height: 20px !important;
    object-fit: contain !important;
    margin: 0 !important;
}

/* Capacity/Guest text */
.room_cont .capa_txt {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    line-height: 1.4 !important;
}

.room_cont .capa_txt span {
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
}

/* Price section */
.room_cont .rm_price_cont {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: center !important;
    margin-bottom: 0 !important;
    text-align: right !important;
}

.room_cont .rm_price_val {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    display: inline-block !important;
}

.room_cont .rm_price_txt {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 400 !important;
    padding-top: 0 !important;
    display: inline-block !important;
}

/* Old Price styling */
.room_cont .room_type_old_price {
    font-size: 14px !important;
    color: var(--abnb-gray-light) !important;
    text-decoration: line-through !important;
    font-weight: 500 !important;
    margin-bottom: 2px !important;
    display: block !important;
}

/* Action Controls section */
.room_cont .room_type_list_actions {
    margin-top: 16px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--abnb-border) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.room_cont .booking_room_fields {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    justify-content: flex-end !important;
    width: 100% !important;
}

.room_cont .booking_guest_occupancy_conatiner {
    display: none !important;
    align-items: center !important;
}

.room_cont .booking_guest_occupancy_conatiner .form-group {
    margin-bottom: 0 !important;
}

/* Select Occupancy Dropdown Button */
.room_cont .booking_guest_occupancy.form-control {
    background: #ffffff !important;
    background-image: none !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 8px !important;
    height: 40px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
    padding: 0 16px !important;
    box-shadow: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: border-color 0.2s, background-color 0.2s !important;
}

.room_cont .booking_guest_occupancy.form-control:hover {
    border-color: var(--abnb-dark) !important;
    background-color: var(--abnb-gray-bg) !important;
}

/* Done Button and Booking Occupancy Wrapper in Card */
.room_cont .booking_occupancy_wrapper {
    z-index: 1001 !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-lg) !important;
    border: 1px solid var(--abnb-border) !important;
    padding: 20px !important;
    width: 320px !important;
}

/* Book Now Button */
.room_cont .ajax_add_to_cart_button {
    background: var(--abnb-primary) !important;
    color: #ffffff !important;
    border-radius: 8px !important;
    height: 40px !important;
    padding: 0 24px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    cursor: pointer !important;
    transition: background-color 0.2s, transform 0.1s !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}

.room_cont .ajax_add_to_cart_button:hover {
    background: var(--abnb-primary-hover) !important;
    color: #ffffff !important;
}

.room_cont .ajax_add_to_cart_button:active {
    transform: scale(0.98) !important;
}

.room_cont .ajax_add_to_cart_button span {
    color: #ffffff !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-block !important;
    line-height: normal !important;
}

/* General Page Layout Adjustments */
.cat_cont {
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Sorting Block styling */
.catSortBlock {
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    padding: 12px 20px !important;
    margin-bottom: 24px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    width: fit-content !important;
}

.catSortBlock > div {
    width: auto !important;
    float: none !important;
    padding: 0 !important;
}

.catSortBlock .sortBlockHeading {
    margin: 0 !important;
    color: var(--abnb-gray-dark) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

.catSortBlock .sortBlockHeading p {
    margin: 0 !important;
    white-space: nowrap !important;
    color: var(--abnb-gray-dark) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

.catSortBlock .filter_dw_cont button.dropdown-toggle {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    box-shadow: none !important;
    height: auto !important;
    width: auto !important;
}

.catSortBlock .filter_dw_cont .dropdown-menu {
    border-radius: 8px !important;
    box-shadow: var(--abnb-shadow-md) !important;
    border: 1px solid var(--abnb-border) !important;
    margin-top: 8px !important;
}

/* Responsive adjustments */
@media (max-width: 767px) {
    #left_column {
        margin-bottom: 30px !important;
        padding-right: 15px !important;
    }
    
    .room_cont .row {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .room_info_cont {
        padding-left: 0 !important;
        margin-top: 16px !important;
        min-height: 0 !important;
    }
    
    .room_cont .room_type_list_actions {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 16px !important;
    }
    
    .room_cont .booking_room_fields {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    
    .room_cont .booking_guest_occupancy.form-control,
    .room_cont .ajax_add_to_cart_button {
        width: 100% !important;
    }
}

/* ==========================================================================
   OCCUPANCY POPUP CENTERING & BLUR EFFECT (FROZEN THEME)
   ========================================================================== */

/* Set layout context for active card */
.room_cont.occupancy-popup-active {
    position: relative !important;
}

/* Blurred overlay backdrop to blur the exact room card behind the popup */
.room_cont.occupancy-popup-active::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-radius: 16px !important;
    z-index: 1000 !important;
    pointer-events: auto !important;
}

/* Re-route absolute positioning ancestors to allow absolute centering within room_cont */
.room_cont.occupancy-popup-active .row,
.room_cont.occupancy-popup-active .col-sm-8,
.room_cont.occupancy-popup-active .col-sm-12,
.room_cont.occupancy-popup-active .col-md-6,
.room_cont.occupancy-popup-active .col-lg-8,
.room_cont.occupancy-popup-active .room_info_cont,
.room_cont.occupancy-popup-active .room_type_list_actions,
.room_cont.occupancy-popup-active .booking_room_fields,
.room_cont.occupancy-popup-active .booking_guest_occupancy_conatiner,
.room_cont.occupancy-popup-active .booking_guest_occupancy_conatiner .dropdown {
    position: static !important;
}

/* Center popup box in the middle of the selected room card */
.room_cont.occupancy-popup-active .booking_occupancy_wrapper {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 1005 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 350px !important;
    max-width: 90% !important;
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-lg) !important;
    padding: 24px !important;
}

/* Premium styling touch for sliders and buttons inside the card popup */
.room_cont.occupancy-popup-active .booking_occupancy_wrapper label {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--abnb-dark) !important;
}

.room_cont.occupancy-popup-active .booking_occupancy_wrapper .btn-default {
    border-color: var(--abnb-border) !important;
    border-radius: 6px !important;
    color: var(--abnb-dark) !important;
    font-weight: 600 !important;
}

.room_cont.occupancy-popup-active .booking_occupancy_wrapper .submit_occupancy_btn {
    background: var(--abnb-primary) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    padding: 8px 20px !important;
    transition: background-color 0.2s, transform 0.1s !important;
}

.room_cont.occupancy-popup-active .booking_occupancy_wrapper .submit_occupancy_btn:hover {
    background: var(--abnb-primary-hover) !important;
}

.room_cont.occupancy-popup-active .booking_occupancy_wrapper .submit_occupancy_btn:active {
    transform: scale(0.98) !important;
}

/* Hide QloApps native per-room elements inside simplified dropdowns */
.booking_occupancy_wrapper .booking_occupancy_inner,
#search_occupancy_wrapper #occupancy_inner_wrapper,
.booking_occupancy_wrapper .room_counter_row,
#search_occupancy_wrapper .room_counter_row,
.booking_occupancy_wrapper .submit_occupancy_btn,
#search_occupancy_wrapper .submit_occupancy_btn {
    display: none !important;
}

/* Premium Shopping Cart in Header */
.abnb-top-hook-wrapper .header_user_info {
    display: none !important;
}

.abnb-top-hook-wrapper .shopping_cart {
    display: inline-block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

.abnb-top-hook-wrapper .shopping_cart > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    border: 1px solid var(--abnb-border) !important;
    background: #ffffff !important;
    transition: background-color 0.2s, box-shadow 0.2s !important;
    position: relative !important;
    text-decoration: none !important;
    padding: 0 !important;
    float: none !important;
    overflow: visible !important;
}

.abnb-top-hook-wrapper .shopping_cart > a:hover {
    background-color: var(--abnb-gray-bg) !important;
    box-shadow: var(--abnb-shadow-sm) !important;
}

.abnb-top-hook-wrapper .shopping_cart > a:before,
.abnb-top-hook-wrapper .shopping_cart > a:after {
    display: none !important;
    content: none !important;
}

.abnb-top-hook-wrapper .shopping_cart .badge_style {
    position: absolute !important;
    top: -4px !important;
    right: -4px !important;
    background: var(--abnb-primary) !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    border-radius: 50% !important;
    min-width: 18px !important;
    height: 18px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid #ffffff !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.abnb-top-hook-wrapper .shopping_cart .badge_style.unvisible {
    display: none;
}

/* Matching Profile Toggle Pill */
#abnb-user-menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 50% !important;
    width: 44px !important;
    height: 44px !important;
    cursor: pointer !important;
    transition: background-color 0.2s, box-shadow 0.2s !important;
    background: #ffffff !important;
}

#abnb-user-menu-toggle:hover {
    background-color: var(--abnb-gray-bg) !important;
    box-shadow: var(--abnb-shadow-sm) !important;
}

#abnb-user-menu {
    margin-left: 38px !important;
}

/* Modern Shopping Cart Dropdown Card */
.shopping_cart .cart_block,
.shopping_cart .cart_block.expanded,
#header .cart_block {
    display: none !important;
}

.cart_block .cart-prices {
    margin: 12px 0 !important;
    padding: 12px 0 !important;
    border-top: 1px solid var(--abnb-border) !important;
    border-bottom: 1px solid var(--abnb-border) !important;
}

.cart_block .cart-prices-line {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 14px !important;
    margin-bottom: 8px !important;
}

.cart_block .cart-prices-line.last-line {
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    font-size: 16px !important;
    margin-bottom: 0 !important;
}

.cart_block .cart-buttons {
    margin: 16px 0 0 0 !important;
    display: flex !important;
    justify-content: stretch !important;
}

.cart_block #button_order_cart {
    width: 100% !important;
    background: var(--abnb-primary) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    padding: 10px !important;
    text-align: center !important;
    transition: background-color 0.2s !important;
}

.cart_block #button_order_cart:hover {
    background: var(--abnb-primary-hover) !important;
}

/* Format room rows in cart dropdown */
.cart_block dl.products {
    margin: 0 !important;
    max-height: 240px !important;
    overflow-y: auto !important;
}

.cart_block dl.products dt {
    padding: 8px 0 !important;
    border-bottom: 1px solid #f2f2f2 !important;
    position: relative !important;
}

.cart_block .table {
    margin-bottom: 0 !important;
    width: 100% !important;
}

.cart_block .table th {
    font-weight: 600 !important;
    color: var(--abnb-gray-dark) !important;
    border: none !important;
    padding: 4px 6px !important;
    font-size: 11px !important;
}

.cart_block .table td {
    padding: 6px 6px !important;
    font-size: 11px !important;
    border: none !important;
    color: var(--abnb-dark) !important;
    vertical-align: middle !important;
}

.cart_block .remove_rooms_from_cart_link::before {
    content: "✕" !important;
    color: #ff3333 !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    cursor: pointer !important;
}

.cart_block .ajax_cart_block_remove_link::before {
    content: "✕" !important;
    color: #ff3333 !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    cursor: pointer !important;
}

.cart_block .remove_link {
    position: absolute !important;
    right: 0 !important;
    top: 8px !important;
}

.cart-images img {
    border-radius: 6px !important;
    width: 48px !important;
    height: auto !important;
}

.cart_block dl.products dd {
    margin: 0 !important;
    padding: 4px 0 12px 0 !important;
    border-bottom: 1px solid var(--abnb-border) !important;
}

/* Hide Hamburger Menu and Align Hook Elements */
.nav_toggle,
.header-top-item:has(.nav_toggle) {
    display: none !important;
}

.abnb-top-hook-wrapper > .header-top-item {
    display: none !important;
}

.abnb-top-hook-wrapper > .header-top-item.abnb-cart-item {
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    height: auto !important;
    width: auto !important;
}

/* ==========================================================================
   Premium Airbnb-Inspired Checkout / One Page Checkout (OPC) Redesign
   ========================================================================== */

/* Page layout and wrap adjustments */
#order-opc {
    background-color: #FAFAFA !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    font-family: var(--font-family-sans) !important;
}

#order-opc .page-heading {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    letter-spacing: -0.8px !important;
    margin-bottom: 30px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

#order-opc .page-heading.step-num {
    padding-left: 0 !important;
}
#order-opc .page-heading.step-num span {
    display: none !important; /* Hide old numbers */
}

/* Accordion cards styling */
#oprder-opc-accordion {
    box-shadow: none !important;
    border: none !important;
}

#oprder-opc-accordion .card {
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    padding: 24px !important;
    margin-bottom: 24px !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
}

#oprder-opc-accordion .card:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
}

#oprder-opc-accordion .card-header {
    background: transparent !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

#oprder-opc-accordion .accordion-header {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    cursor: pointer !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

#oprder-opc-accordion .accordion-header span {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
}

#oprder-opc-accordion .accordion-left-arrow {
    font-size: 20px !important;
    color: var(--abnb-gray-dark) !important;
    transition: transform 0.3s ease !important;
}

/* Rotate arrow when open */
#oprder-opc-accordion .card-header[aria-expanded="true"] .accordion-left-arrow,
#oprder-opc-accordion h5[aria-expanded="true"] .accordion-left-arrow {
    transform: rotate(-90deg) !important;
}

#oprder-opc-accordion .card-body {
    margin-top: 24px !important;
    padding: 0 !important;
}

/* Room Summary Grid Redesign */
.order-detail-content .cart_section_title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 20px !important;
}

.order-detail-content .cart_product_line {
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    background: #ffffff !important;
    margin-bottom: 20px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transition: border-color 0.2s ease !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

.order-detail-content .cart_product_line:hover {
    border-color: var(--abnb-gray-light) !important;
}

.order-detail-content hr {
    display: none !important; /* Hide old ugly HRs */
}

/* Room cover images */
.order-detail-content .product-img-block {
    padding-left: 0 !important;
    padding-right: 15px !important;
}

.order-detail-content .product-img-block img {
    border-radius: 12px !important;
    width: 100% !important;
    height: 100px !important;
    object-fit: cover !important;
    border: 1px solid var(--abnb-border) !important;
}

.order-detail-content .room_remove_block,
.order-detail-content .product_remove_block {
    margin-top: 12px !important;
    text-align: left !important;
}

.order-detail-content .cart_room_delete,
.order-detail-content .cart_quantity_delete {
    color: var(--abnb-gray-dark) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: color 0.2s ease !important;
}

.order-detail-content .cart_room_delete:hover,
.order-detail-content .cart_quantity_delete:hover {
    color: var(--abnb-primary) !important;
}

.order-detail-content .cart_room_delete i,
.order-detail-content .cart_quantity_delete i {
    font-size: 16px !important;
    vertical-align: middle !important;
}

/* Room information titles and elements */
.order-detail-content .product-name {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
}

.order-detail-content .product-name a {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.order-detail-content .product-name a:hover {
    color: var(--abnb-primary) !important;
}

.order-detail-content .hotel-location {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    padding: 0 !important;
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.order-detail-content .hotel-location i {
    font-size: 16px !important;
    color: var(--abnb-primary) !important;
}

/* Features */
.order-detail-content div.room-type-features {
    margin-bottom: 16px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
}

.order-detail-content span.room-type-feature {
    background-color: var(--abnb-gray-bg) !important;
    border-radius: 8px !important;
    padding: 6px 12px !important;
    font-size: 12px !important;
    color: var(--abnb-dark) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    border: 1px solid var(--abnb-border) !important;
    margin-right: 0 !important;
}

.order-detail-content span.room-type-feature img {
    width: 14px !important;
    height: 14px !important;
}

/* Check in / Check out Duration block */
.order-detail-content .room_duration_block {
    background-color: var(--abnb-gray-bg) !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    padding: 16px !important;
    margin-bottom: 20px !important;
    box-shadow: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

.order-detail-content .room_duration_block > div {
    border-right: 1px solid var(--abnb-border) !important;
    padding: 0 15px !important;
}

.order-detail-content .room_duration_block > div:last-child {
    border-right: none !important;
}

.order-detail-content .room_duration_block_head {
    font-size: 10px !important;
    font-weight: 800 !important;
    color: var(--abnb-gray-dark) !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    margin-bottom: 4px !important;
}

.order-detail-content .room_duration_block_value {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
}

/* Room price breakdown inside lines */
.order-detail-content .room_price_detail_block {
    border-top: 1px solid var(--abnb-border) !important;
    padding-top: 20px !important;
    margin-top: 16px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

.order-detail-content .room_price_detail_block .price_block,
.order-detail-content .room_price_detail_block .demand_price_block {
    padding: 0 !important;
}

.order-detail-content .room_price_detail_block .total_price {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin-bottom: 2px !important;
}

.order-detail-content .room_price_detail_block .total_price span {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
}

.order-detail-content .room_price_detail_block .total_price_detial {
    font-size: 12px !important;
    color: var(--abnb-gray-dark) !important;
}

.order-detail-content .room_price_detail_block .open_rooms_extra_services_panel {
    color: var(--abnb-primary) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-decoration: none !important;
}

.order-detail-content .room_price_detail_block .open_rooms_extra_services_panel:hover {
    text-decoration: underline !important;
}

.order-detail-content .total_price_block {
    background-color: var(--abnb-gray-bg) !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    padding: 12px 20px !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    float: none !important;
}

.order-detail-content .total_price_block .total_price {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--abnb-primary) !important;
}

.order-detail-content .total_price_block .total_price span {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--abnb-primary) !important;
}

/* Standalone / Add-on Products summary line updates */
.order-detail-content .quantity_cont {
    display: inline-flex !important;
    align-items: center !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 24px !important;
    padding: 4px 8px !important;
    background: #ffffff !important;
}

.order-detail-content .cart_quantity_input {
    border: none !important;
    width: 32px !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
    background: transparent !important;
    height: auto !important;
    padding: 0 !important;
}

.order-detail-content .cart_quantity_button {
    display: flex !important;
    gap: 4px !important;
}

.order-detail-content .cart_quantity_button a {
    width: 24px !important;
    height: 24px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--abnb-border) !important;
    background: #ffffff !important;
    color: var(--abnb-dark) !important;
    padding: 0 !important;
    transition: background-color 0.2s !important;
}

.order-detail-content .cart_quantity_button a:hover {
    background-color: var(--abnb-gray-bg) !important;
    border-color: var(--abnb-dark) !important;
}

.order-detail-content .cart_quantity_button a i {
    font-size: 10px !important;
}

/* Sidebar Columns: Pricing Breakdown sidebar */
.cart_total_detail_block {
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    padding: 24px !important;
    margin-bottom: 24px !important;
    float: none !important;
    width: 100% !important;
}

.cart_total_detail_block p {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 14px !important;
    font-size: 15px !important;
    color: var(--abnb-gray-dark) !important;
    line-height: normal !important;
}

.cart_total_detail_block p span {
    font-size: 15px !important;
    color: var(--abnb-gray-dark) !important;
}

.cart_total_detail_block p span.cart_total_values {
    color: var(--abnb-dark) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
}

.cart_total_detail_block .cart_total_tax span {
    color: var(--abnb-gray-dark) !important;
}

.cart_total_detail_block .total_discount_block {
    color: #278A1A !important;
}

.cart_total_detail_block .total_discount_block span {
    color: #278A1A !important;
}

.cart_total_detail_block .total_discount_block span.cart_total_values {
    color: #278A1A !important;
    font-weight: 700 !important;
}

.cart_total_detail_block hr {
    border-top: 1px solid var(--abnb-border) !important;
    margin: 16px 0 !important;
}

.cart_total_detail_block .cart_final_total_block {
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}

.cart_total_detail_block .cart_final_total_block span.strong {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
}

.cart_total_detail_block .cart_final_total_block span.cart_total_values {
    font-size: 24px !important;
    font-weight: 800 !important;
    color: var(--abnb-primary) !important;
}

/* Coupons block */
.cart_voucher_detail_block {
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    padding: 24px !important;
    margin-bottom: 24px !important;
    float: none !important;
    width: 100% !important;
}

.cart_voucher_detail_block .cart_voucher_head {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 16px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.cart_voucher_detail_block span.cart_discount_name {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border: 1px dashed var(--abnb-primary) !important;
    background-color: #FFF0F2 !important;
    color: var(--abnb-primary) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-weight: 700 !important;
    width: 100% !important;
    margin-bottom: 12px !important;
}

.cart_voucher_detail_block span.voucher_apply_state {
    background-color: #E6F6EC !important;
    color: #278A1A !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    float: none !important;
}

.cart_voucher_detail_block .price_discount_delete {
    color: var(--abnb-primary) !important;
    font-size: 16px !important;
    transition: transform 0.2s !important;
}

.cart_voucher_detail_block .price_discount_delete:hover {
    transform: scale(1.1) !important;
}

.cart_voucher_detail_block input#discount_name {
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    height: 46px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    width: 100% !important;
    margin-bottom: 12px !important;
}

.cart_voucher_detail_block .submit_discount_div {
    padding: 0 !important;
}

.cart_voucher_detail_block button[name="submitAddDiscount"] {
    background-color: var(--abnb-dark) !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    height: 46px !important;
    width: 100% !important;
    border: none !important;
    transition: background-color 0.2s !important;
}

.cart_voucher_detail_block button[name="submitAddDiscount"]:hover {
    background-color: #000000 !important;
}

.cart_voucher_detail_block .avail_vouchers_block {
    margin-top: 15px !important;
}

.cart_voucher_detail_block .avail_voucher_name {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: normal !important;
}

.cart_voucher_detail_block .voucher_name {
    color: var(--abnb-primary) !important;
    font-weight: 700 !important;
}

/* Input Fields and Dropdowns Styling for checkout */
#order-opc input[type="text"].form-control,
#order-opc input[type="email"].form-control,
#order-opc input[type="password"].form-control,
#order-opc select {
    border: 1px solid var(--abnb-border) !important;
    border-radius: 12px !important;
    height: 48px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    color: var(--abnb-dark) !important;
    background-color: #ffffff !important;
    box-shadow: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}

#order-opc input[type="text"].form-control:focus,
#order-opc input[type="email"].form-control:focus,
#order-opc input[type="password"].form-control:focus,
#order-opc select:focus {
    border-color: var(--abnb-dark) !important;
    box-shadow: 0 0 0 1px var(--abnb-dark) !important;
}

#order-opc .form-group label {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin-bottom: 6px !important;
    text-transform: none !important;
}

/* Proceed Actions and edit buttons */
#order-opc .proceed_btn_block {
    text-align: right !important;
}

#order-opc .submit-guest-details,
#order-opc .proceed_btn_block a.button-medium {
    background-color: var(--abnb-primary) !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    padding: 14px 32px !important;
    height: auto !important;
    line-height: normal !important;
    border: none !important;
    display: inline-block !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    transition: background-color 0.2s, transform 0.1s !important;
    text-transform: none !important;
}

#order-opc .submit-guest-details span,
#order-opc .proceed_btn_block a.button-medium span {
    padding: 0 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    text-transform: none !important;
}

#order-opc .submit-guest-details:hover,
#order-opc .proceed_btn_block a.button-medium:hover {
    background-color: var(--abnb-primary-hover) !important;
    color: #ffffff !important;
}

#order-opc .submit-guest-details:active,
#order-opc .proceed_btn_block a.button-medium:active {
    transform: scale(0.98) !important;
}

#order-opc .btn-edit-guest-info {
    background-color: transparent !important;
    border: 1px solid var(--abnb-dark) !important;
    color: var(--abnb-dark) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    padding: 13px 28px !important;
    transition: background-color 0.2s !important;
    text-transform: none !important;
}

#order-opc .btn-edit-guest-info span {
    padding: 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-transform: none !important;
}

#order-opc .btn-edit-guest-info:hover {
    background-color: var(--abnb-gray-bg) !important;
}

/* Terms and Conditions / TOS checkbox card */
#tc_cont {
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 20px !important;
    margin-bottom: 24px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
}

#tc_cont p.checkbox {
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

#tc_cont input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--abnb-primary) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

#tc_cont label#tc_txt {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--abnb-dark) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

#tc_link {
    color: var(--abnb-primary) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

#tc_link:hover {
    text-decoration: underline !important;
}

/* Payment Modules Redesign */
.paiement_block {
    background: transparent !important;
    padding: 0 !important;
}

.paiement_block .block-small-header {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 16px !important;
}

.payment_module {
    margin-bottom: 16px !important;
}

.payment_module a {
    display: block !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    background-color: #ffffff !important;
    color: var(--abnb-dark) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    text-decoration: none !important;
    position: relative !important;
}

.payment_module a:hover {
    border-color: var(--abnb-dark) !important;
    box-shadow: var(--abnb-shadow-md) !important;
}

.payment_module a i {
    color: var(--abnb-primary) !important;
    font-size: 20px !important;
    margin-right: 12px !important;
    vertical-align: middle !important;
}

.payment_module a img {
    border-radius: 12px !important;
    border: 1px solid var(--abnb-border) !important;
    max-width: 200px !important;
    margin-top: 16px !important;
}

/* OPC New Account Login / Register tab style adjustments */
#login_form, #opc_new_account {
    background: #ffffff !important;
    border: none !important;
    padding: 0 !important;
}

#login_form h3, #opc_account_form h3, #new_account_title {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin-bottom: 20px !important;
}

#order-opc .already_registered_block {
    font-size: 14px !important;
    color: var(--abnb-gray-dark) !important;
    margin-bottom: 20px !important;
}

#order-opc .already_registered_block #openLoginFormBlock,
#order-opc #login_form_content #idAccountChoice {
    color: var(--abnb-primary) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

#order-opc .already_registered_block #openLoginFormBlock:hover,
#order-opc #login_form_content #idAccountChoice:hover {
    text-decoration: underline !important;
}

#new_account_form #opc_guestCheckout,
#new_account_form #opc_createAccount {
    background-color: var(--abnb-dark) !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    height: 48px !important;
    border: none !important;
    transition: background-color 0.2s !important;
    padding: 0 24px !important;
}

#new_account_form #opc_createAccount {
    background-color: var(--abnb-primary) !important;
}

#new_account_form #opc_guestCheckout:hover {
    background-color: #000000 !important;
}

#new_account_form #opc_createAccount:hover {
    background-color: var(--abnb-primary-hover) !important;
}

/* Custom Empty Cart View */
.empty-cart-custom-message {
    text-align: center !important;
    padding: 60px 20px !important;
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    max-width: 500px !important;
    margin: 40px auto !important;
}

.empty-cart-custom-message .sad-face-icon {
    width: 80px !important;
    height: 80px !important;
    border: 4px solid var(--abnb-gray-light) !important;
    border-radius: 50% !important;
    position: relative !important;
    margin: 0 auto 24px auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

.empty-cart-custom-message .sad-face-icon .eyes {
    display: flex !important;
    gap: 16px !important;
    margin-bottom: 8px !important;
}

.empty-cart-custom-message .sad-face-icon .eye {
    width: 8px !important;
    height: 8px !important;
    background-color: var(--abnb-gray-light) !important;
    border-radius: 50% !important;
}

.empty-cart-custom-message .sad-face-icon .mouth {
    width: 24px !important;
    height: 12px !important;
    border: 4px solid var(--abnb-gray-light) !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 12px 12px 0 0 !important;
    transform: rotate(180deg) !important;
}

.empty-cart-custom-message p {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin: 0 !important;
}

#order-opc p.checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

#order-opc p.checkbox input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--abnb-primary) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

#order-opc p.checkbox label {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--abnb-dark) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

/* OPC Blue elements override to Airbnb theme color */
#order-opc .opc-btn-primary,
#order-opc .opc-btn-primary:focus,
#order-opc .opc-btn-primary:active {
    background-color: var(--abnb-primary) !important;
    color: #ffffff !important;
    border: none !important;
}

#order-opc .opc-btn-default,
#order-opc .opc-btn-default:focus,
#order-opc .opc-btn-default:active {
    border: 1px solid var(--abnb-dark) !important;
    background-color: transparent !important;
    color: var(--abnb-dark) !important;
}

#order-opc .opc-btn-default:hover {
    background-color: var(--abnb-gray-bg) !important;
}

#order-opc .button-medium,
#order-opc .button-medium:focus,
#order-opc .button-medium:active {
    background-color: var(--abnb-primary) !important;
    border: none !important;
    box-shadow: var(--abnb-shadow-sm) !important;
}

#order-opc .button-medium span {
    color: #ffffff !important;
}

#order-opc .button-medium:hover {
    background-color: var(--abnb-primary-hover) !important;
}

/* Mobile responsive style adjustments */
@media (max-width: 767px) {
    .order-detail-content .cart_product_line {
        padding: 16px !important;
    }
    .order-detail-content .product-img-block {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 0 !important;
        margin-bottom: 16px !important;
    }
    .order-detail-content .product-img-block img {
        height: 150px !important;
    }
    .order-detail-content .room_duration_block > div {
        border-right: none !important;
        border-bottom: 1px solid var(--abnb-border) !important;
        padding: 10px 0 !important;
        width: 100% !important;
    }
    .order-detail-content .room_duration_block > div:last-child {
        border-bottom: none !important;
    }
    .order-detail-content .room_price_detail_block {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 16px !important;
    }
    .order-detail-content .total_price_block {
        align-items: center !important;
        width: 100% !important;
    }
}

/* Premium Modern Alert Styling */
.alert.alert-danger:not(.unvisible),
.alert.alert-warning:not(.unvisible),
#order-opc .alert-danger:not(.unvisible),
#order-opc .alert-warning:not(.unvisible) {
    background-color: #FFF0F2 !important;
    border: 1px solid #FFE0E5 !important;
    border-radius: 16px !important;
    color: #222222 !important;
    padding: 18px 24px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03) !important;
    text-shadow: none !important;
    margin-bottom: 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

.alert.alert-danger:before,
.alert.alert-warning:before,
#order-opc .alert-danger:before,
#order-opc .alert-warning:before {
    font-family: "FontAwesome" !important;
    content: "\f05a" !important; /* fa-info-circle */
    color: #FF385C !important;
    font-size: 20px !important;
    margin-right: 12px !important;
    float: none !important;
    display: inline-block !important;
    margin-bottom: 8px !important;
}

.alert.alert-danger p,
.alert.alert-warning p,
#order-opc .alert-danger p,
#order-opc .alert-warning p {
    color: #222222 !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    margin-bottom: 8px !important;
    margin-top: 0 !important;
}

.alert.alert-danger ol,
.alert.alert-warning ol,
#order-opc .alert-danger ol,
#order-opc .alert-warning ol {
    margin-left: 20px !important;
    padding-left: 0 !important;
    list-style-type: decimal !important;
    width: 100% !important;
}

.alert.alert-danger li,
.alert.alert-warning li,
#order-opc .alert-danger li,
#order-opc .alert-warning li {
    color: #484848 !important;
    margin-bottom: 6px !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

.alert.alert-danger .lnk,
.alert.alert-warning .lnk,
#order-opc .alert-danger .lnk,
#order-opc .alert-warning .lnk {
    margin-top: 12px !important;
    margin-bottom: 0 !important;
}

.alert.alert-danger .lnk a,
.alert.alert-warning .lnk a,
#order-opc .alert-danger .lnk a,
#order-opc .alert-warning .lnk a {
    color: #FF385C !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.alert.alert-danger .lnk a:hover,
.alert.alert-warning .lnk a:hover,
#order-opc .alert-danger .lnk a:hover,
#order-opc .alert-warning .lnk a:hover {
    color: #E31C5F !important;
}

/* ==========================================================================
   Fix: Remove White Blocks above/below content on cart/checkout pages
   The default global.css gives .columns-container background:#fff and
   #columns padding-top:15px which creates white gaps. We strip them for
   all pages except index where the hero occupies that space.
   ========================================================================== */

/* Keep spacing below the navbar but remove it from the index page */
body:not(#index) #columns {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
}

/* Remove white background from wrapper/columns on checkout page */
#order-opc .columns-container,
#order-opc ~ .columns-container,
body#order-opc .columns-container {
    background: #FAFAFA !important;
}

/* Zero out the slider row that creates an empty white block */
body:not(#index) #slider_row {
    display: none !important;
}

/* Ensure OPC wrapper fills full screen with correct background */
#order-opc #wrapper {
    background: #FAFAFA !important;
    min-height: 60vh;
}

/* Remove inner white paddings from columns-container on non-homepage */
body:not(#index) .columns-container {
    background: transparent !important;
}

/* Remove padding-bottom from #page on checkout */
#order-opc ~ * .columns-container {
    padding-bottom: 0 !important;
}

/* ==========================================================================
   Aesthetic Layout Fixes: Remove Space Above Navbar & Below Footer
   ========================================================================== */

/* 1. Remove space above the navbar */
html, body {
    margin: 0 !important;
    padding: 0 !important;
}
#page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.header-container, .abnb-header-wrapper, #header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* 2. Remove space below the footer by utilizing a sticky flex layout */
#page {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
}
.columns-container {
    flex: 1 0 auto !important;
}
.footer-container.abnb-dark-footer {
    margin-top: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 32px !important;
}

/* ==========================================================================
   Payment Validation Page Redesign (Cheque & Bankwire)
   ========================================================================== */

/* Set background color of cheque and bankwire pages to match checkout */
body[id^="module-cheque"], body[id^="module-bankwire"] {
    background-color: #FAFAFA !important;
}

body[id^="module-cheque"] #columns, body[id^="module-bankwire"] #columns {
    background-color: #FAFAFA !important;
}

.abnb-payment-validation {
    max-width: 800px;
    margin: 40px auto 80px;
}

/* Page Heading */
.abnb-payment-validation .page-heading {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    letter-spacing: -0.8px !important;
    margin-bottom: 30px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
    text-transform: none !important;
}

/* Form Card / Box */
.abnb-payment-validation .cheque-box {
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 32px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    margin-bottom: 30px !important;
}

.abnb-payment-validation .page-subheading {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    border-bottom: none !important;
    margin-bottom: 20px !important;
    text-transform: none !important;
    padding-bottom: 0 !important;
}

.abnb-payment-validation .cheque-indent {
    font-size: 16px !important;
    color: var(--abnb-dark) !important;
    margin-bottom: 24px !important;
}

.abnb-payment-validation p {
    font-size: 15px !important;
    color: #484848 !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
}

.abnb-payment-validation p strong.dark {
    color: var(--abnb-dark) !important;
    font-weight: 600 !important;
}

.abnb-payment-validation .price {
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
}

.abnb-payment-validation select.form-control {
    border-radius: 12px !important;
    border: 1px solid var(--abnb-border) !important;
    padding: 10px 16px !important;
    height: 44px !important;
    font-family: var(--font-family-sans) !important;
    color: var(--abnb-dark) !important;
}

/* Confirmation/Navigation Buttons */
.abnb-payment-validation .cart_navigation {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Back link */
.abnb-payment-validation .cart_navigation .button-exclusive {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    background: transparent !important;
    border: none !important;
    padding: 10px 0 !important;
    font-size: 15px !important;
    transition: color 0.2s !important;
}

.abnb-payment-validation .cart_navigation .button-exclusive:hover {
    color: var(--abnb-dark) !important;
}

.abnb-payment-validation .cart_navigation .button-exclusive i {
    font-size: 12px !important;
}

/* Confirm Button */
.abnb-payment-validation .cart_navigation button.confirm_order {
    background: #FF385C !important;
    border: none !important;
    color: #ffffff !important;
    padding: 14px 28px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    transition: background-color 0.2s, transform 0.1s !important;
    box-shadow: none !important;
    height: auto !important;
    line-height: normal !important;
}

.abnb-payment-validation .cart_navigation button.confirm_order:hover {
    background: #E31C5F !important;
}

.abnb-payment-validation .cart_navigation button.confirm_order:active {
    transform: scale(0.98) !important;
}

.abnb-payment-validation .cart_navigation button.confirm_order i {
    font-size: 14px !important;
}

/* ==========================================================================
   Order Confirmation Page Redesign
   ========================================================================== */

/* Align page background to light grey */
body#order-confirmation {
    background-color: #FAFAFA !important;
}

body#order-confirmation #columns {
    background-color: #FAFAFA !important;
}

/* Page Heading */
body#order-confirmation .page-heading {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    letter-spacing: -0.8px !important;
    margin-bottom: 30px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
    text-transform: none !important;
}

/* Success Notice */
body#order-confirmation .alert.alert-success {
    background-color: #E6F4EA !important;
    border: 1px solid #CEEAD6 !important;
    color: #137333 !important;
    border-radius: 12px !important;
    padding: 16px 24px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    margin-bottom: 24px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

/* Payment Return / Check Instructions Card */
body#order-confirmation .order-confirmation-column > .card {
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 32px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    margin-bottom: 30px !important;
}

body#order-confirmation .order-confirmation-column > .card .card-body {
    padding: 0 !important;
    font-size: 15px !important;
    color: #484848 !important;
    line-height: 1.8 !important;
}

body#order-confirmation .order-confirmation-column > .card .price strong {
    color: var(--abnb-primary) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

body#order-confirmation .order-confirmation-column > .card strong {
    color: var(--abnb-dark) !important;
}

/* Card Overhauls (Room Details, Payment Details, Payment Summary) */
body#order-confirmation .card {
    background: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    margin-bottom: 24px !important;
    overflow: hidden !important;
}

body#order-confirmation .card-header {
    background: transparent !important;
    border-bottom: none !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    padding: 24px 24px 0 !important;
    text-transform: none !important;
}

body#order-confirmation .card-body {
    padding: 24px !important;
}

/* Room details styling inside card */
body#order-confirmation .product-detail {
    padding: 20px 0 !important;
    border-bottom: 1px solid var(--abnb-border) !important;
}

body#order-confirmation .product-detail:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

body#order-confirmation .product-detail:first-child {
    padding-top: 0 !important;
}

body#order-confirmation .product-detail img {
    border-radius: 12px !important;
    object-fit: cover !important;
    aspect-ratio: 1.2 !important;
}

body#order-confirmation .product-detail .product-name a {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-decoration: none !important;
}

body#order-confirmation .product-detail .product-name a:hover {
    color: var(--abnb-primary) !important;
}

body#order-confirmation .product-detail dt,
body#order-confirmation .product-detail .description-list dt {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 500 !important;
    padding: 4px 0 !important;
}

body#order-confirmation .product-detail dd,
body#order-confirmation .product-detail .description-list dd {
    font-size: 14px !important;
    color: var(--abnb-dark) !important;
    font-weight: 600 !important;
    padding: 4px 0 !important;
}

/* Payment details grid */
body#order-confirmation .value.payment-method {
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
}

body#order-confirmation .value.status .label {
    border-radius: 20px !important;
    padding: 4px 12px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    display: inline-block !important;
}

/* Payment summary pricing table */
body#order-confirmation .prices-breakdown-table table {
    width: 100% !important;
    border-collapse: collapse !important;
}

body#order-confirmation .prices-breakdown-table tr.item {
    border-bottom: 1px solid var(--abnb-border) !important;
}

body#order-confirmation .prices-breakdown-table tr.item:last-child {
    border-bottom: none !important;
}

body#order-confirmation .prices-breakdown-table td {
    padding: 12px 0 !important;
    font-size: 14px !important;
    color: #484848 !important;
}

body#order-confirmation .prices-breakdown-table td strong {
    font-weight: 500 !important;
    color: var(--abnb-dark) !important;
}

body#order-confirmation .prices-breakdown-table td.text-right span {
    font-weight: 600 !important;
    color: var(--abnb-dark) !important;
}

body#order-confirmation .prices-breakdown-table tr.totalprice td {
    padding-top: 16px !important;
    border-top: 2px solid var(--abnb-dark) !important;
}

body#order-confirmation .prices-breakdown-table tr.totalprice td strong {
    font-weight: 700 !important;
    font-size: 16px !important;
    color: var(--abnb-dark) !important;
}

body#order-confirmation .prices-breakdown-table tr.totalprice td.text-right span {
    font-weight: 800 !important;
    font-size: 20px !important;
    color: var(--abnb-primary) !important;
}

/* Footer elements styling */
body#order-confirmation .cust_serv_lnk {
    color: var(--abnb-primary) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

body#order-confirmation .cust_serv_lnk:hover {
    color: #E31C5F !important;
}

body#order-confirmation p {
    font-size: 15px !important;
    color: #484848 !important;
    line-height: 1.6 !important;
}

body#order-confirmation .cart_navigation.exclusive {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin-top: 24px !important;
}

body#order-confirmation .cart_navigation.exclusive a.btn {
    background: #222222 !important;
    color: #ffffff !important;
    border-radius: 12px !important;
    padding: 12px 24px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: background-color 0.2s !important;
}

body#order-confirmation .cart_navigation.exclusive a.btn:hover {
    background: #000000 !important;
}

body#order-confirmation .cart_navigation.exclusive a.btn i {
    font-size: 12px !important;
}

/* ==========================================================================
   Order History / Bookings Page Redesign
   ========================================================================== */

body#history {
    background-color: #FAFAFA !important;
}

body#history #columns {
    background-color: #FAFAFA !important;
    padding-top: 0 !important;
}

body#history .abnb-auth-page {
    padding-top: 24px !important;
}

/* Page Heading & Subheading */
body#history .abnb-auth-title {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    letter-spacing: -0.8px !important;
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    text-transform: none !important;
    border: none !important;
    padding: 0 !important;
    text-align: center !important;
}

body#history .abnb-auth-desc {
    font-size: 15px !important;
    color: var(--abnb-gray-dark) !important;
    margin-bottom: 24px !important;
    text-align: center !important;
}

/* Card Container Overhaul (Transparent Wrapper for Floating Row Cards) */
body#history .abnb-auth-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 auto 40px !important;
    max-width: 1000px !important;
}

/* Transform Table into a Modern Flex List */
body#history .abnb-table-container {
    overflow: visible !important;
}

body#history .abnb-table {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
}

/* Hide Table Header entirely to mimic Airbnb Trips feed */
body#history .abnb-table thead {
    display: none !important;
}

/* Table Body Row-to-Card Formatting */
body#history .abnb-table tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    width: 100% !important;
}

body#history .abnb-table tbody tr {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
    box-sizing: border-box !important;
}

body#history .abnb-table tbody tr:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--abnb-shadow-md) !important;
    border-color: #D0D0D0 !important;
}

body#history .abnb-table td {
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 !important;
    border: none !important;
    min-height: auto !important;
}

/* 1. Cover Image Column */
body#history .abnb-table td.history_cover {
    flex: 0 0 120px !important;
    margin-right: 24px !important;
}

body#history .abnb-booking-img {
    width: 120px !important;
    height: 90px !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    border: 1px solid var(--abnb-border) !important;
}

body#history .abnb-booking-img-placeholder {
    width: 120px !important;
    height: 90px !important;
    background-color: #F7F7F7 !important;
    border-radius: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--abnb-gray-dark) !important;
    border: 1px solid var(--abnb-border) !important;
}

body#history .abnb-booking-img-placeholder i {
    font-size: 28px !important;
}

/* 2. Main Info Column */
body#history .abnb-table td.history_main_info {
    flex: 2.5 !important;
    padding-right: 16px !important;
}

body#history .abnb-booking-meta {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

body#history .abnb-booking-header-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

body#history .abnb-booking-hotel {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: var(--abnb-gray-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    line-height: 1.2 !important;
}

body#history .abnb-booking-divider {
    font-size: 11px !important;
    color: var(--abnb-border) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

body#history .abnb-status-indicator {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    color: var(--status-color) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 4px 8px !important;
    border-radius: 4px !important;
    line-height: 1.2 !important;
    z-index: 1 !important;
}

body#history .abnb-status-indicator::before {
    content: "" !important;
    display: inline-block !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    background-color: var(--status-color) !important;
}

body#history .abnb-status-indicator::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background-color: var(--status-color) !important;
    border: 1px solid var(--status-color) !important;
    opacity: 0.12 !important;
    border-radius: 4px !important;
    z-index: -1 !important;
}

body#history .abnb-booking-room {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    margin: 2px 0 !important;
}

body#history .abnb-booking-dates {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #484848 !important;
}

/* 3. Meta Details Column (Ref, Payment, Price) */
body#history .abnb-table td.history_meta_details {
    flex: 1.8 !important;
    padding-right: 16px !important;
}

body#history .abnb-booking-meta-details {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
}

body#history .abnb-booking-ref {
    font-size: 13px !important;
    color: #484848 !important;
    font-weight: 500 !important;
}

body#history .abnb-booking-ref a.color-myaccount {
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-decoration: none !important;
}

body#history .abnb-booking-ref a.color-myaccount:hover {
    color: var(--abnb-primary) !important;
}

body#history .abnb-booking-payment {
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    font-weight: 500 !important;
}

body#history .abnb-booking-meta-details .price {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    margin-top: 2px !important;
}

body#history .abnb-booking-actions {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    justify-content: flex-end !important;
    width: 100% !important;
}

/* DETAILS Pill Button */
body#history a.abnb-table-action {
    color: #FF385C !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    letter-spacing: 0.8px !important;
    text-decoration: none !important;
    border: 1.5px solid #FF385C !important;
    border-radius: 20px !important;
    padding: 8px 18px !important;
    transition: all 0.2s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    background-color: transparent !important;
    white-space: nowrap !important;
}

body#history a.abnb-table-action:hover {
    background-color: #FF385C !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(255, 56, 92, 0.2) !important;
}

/* Circular Trash Icon Cancel Button */
body#history .abnb-table td.history_actions_col a.ajax-cancel-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background-color: #ffffff !important;
    border: 1px solid #EAEAEA !important;
    color: #717171 !important;
    transition: all 0.2s ease !important;
    padding: 0 !important;
    min-width: 0 !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02) !important;
}

body#history .abnb-table td.history_actions_col a.ajax-cancel-trigger:hover {
    background-color: #FFF0F2 !important;
    border-color: #FFE0E5 !important;
    color: #FF385C !important;
    transform: scale(1.06) !important;
    box-shadow: 0 4px 8px rgba(255, 56, 92, 0.1) !important;
}

body#history .abnb-table td.history_actions_col a.ajax-cancel-trigger i {
    font-size: 15px !important;
    margin: 0 !important;
}

/* Pagination Hidden Row override */
body#history .abnb-table tbody tr.hidden-row {
    display: none !important;
}

/* Pagination Styling */
.abnb-pagination-wrapper {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin-top: 32px !important;
    margin-bottom: 24px !important;
}

.abnb-pagination {
    display: flex !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 8px !important;
    align-items: center !important;
}

.abnb-pagination li {
    display: inline-block !important;
}

.abnb-pagination li a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    border: 1px solid var(--abnb-border) !important;
    background-color: #ffffff !important;
    color: var(--abnb-dark) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
}

.abnb-pagination li.active a {
    background-color: var(--abnb-dark) !important;
    color: #ffffff !important;
    border-color: var(--abnb-dark) !important;
}

.abnb-pagination li:not(.active):not(.disabled) a:hover {
    background-color: #F7F7F7 !important;
    border-color: #DDDDDD !important;
    transform: scale(1.05) !important;
}

.abnb-pagination li.disabled a {
    color: #C0C0C0 !important;
    border-color: #EAEAEA !important;
    background-color: #FAFAFA !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.abnb-pagination li a i {
    font-size: 12px !important;
}

/* Back Link styling */
body#history .abnb-back-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: var(--abnb-dark) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    transition: color 0.2s ease !important;
    margin-top: 24px !important;
}

body#history .abnb-back-link:hover {
    color: var(--abnb-primary) !important;
}

/* Mobile responsive card transformations */
@media (max-width: 767px) {
    body#history .abnb-table tbody tr {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        padding: 20px !important;
        border-radius: 16px !important;
    }
    body#history .abnb-table td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        min-height: auto !important;
        padding: 8px 0 !important;
        border-bottom: 1px dashed #F0F0F0 !important;
    }
    body#history .abnb-table td:last-child {
        border-bottom: none !important;
    }
    body#history .abnb-table td.history_cover {
        justify-content: center !important;
        margin-right: 0 !important;
        padding-bottom: 12px !important;
        border-bottom: 1px solid var(--abnb-border) !important;
    }
    body#history .abnb-booking-img {
        width: 100% !important;
        height: 150px !important;
    }
    body#history .abnb-booking-img-placeholder {
        width: 100% !important;
        height: 150px !important;
    }
    /* Hide generated labels on cover info */
    body#history .abnb-table td.history_cover::before {
        display: none !important;
    }
    /* Mobile cell text alignments */
    body#history .abnb-booking-meta {
        align-items: flex-end !important;
        text-align: right !important;
    }
    body#history .abnb-booking-header-row {
        justify-content: flex-end !important;
    }
    body#history .abnb-booking-meta-details {
        align-items: flex-end !important;
        text-align: right !important;
    }
    /* Labels injection on left on mobile */
    body#history .abnb-table td.history_main_info::before {
        content: "Booking";
        font-weight: 700;
        color: var(--abnb-gray-dark);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    body#history .abnb-table td.history_meta_details::before {
        content: "Details";
        font-weight: 700;
        color: var(--abnb-gray-dark);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    body#history .abnb-table td.history_invoice {
        justify-content: space-between !important;
        padding-bottom: 8px !important;
    }
    body#history .abnb-table td.history_detail {
        justify-content: space-between !important;
        margin-top: 4px;
        padding-top: 10px !important;
    }
}

/* ==========================================================================
   Booking Details Page Overhaul (body#order-detail)
   ========================================================================== */

body#order-detail {
    background-color: #FAFAFA !important;
}

body#order-detail #columns {
    background-color: #FAFAFA !important;
    padding-top: 24px !important;
    padding-bottom: 40px !important;
}

/* Page Heading */
body#order-detail .page-heading {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    letter-spacing: -0.8px !important;
    border: none !important;
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 24px !important;
    text-transform: none !important;
}

/* Soft-Green Premium Reference Card Banner */
body#order-detail .well.well-order-date {
    background-color: #E6F4EA !important;
    border: 1px solid #CEEAD6 !important;
    color: #137333 !important;
    border-radius: 16px !important;
    padding: 18px 24px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
    margin-bottom: 30px !important;
}

body#order-detail .well.well-order-date strong {
    font-weight: 800 !important;
    color: #137333 !important;
}

/* Card Styling */
body#order-detail .card {
    border-radius: 16px !important;
    border: 1px solid var(--abnb-border) !important;
    background: #ffffff !important;
    box-shadow: var(--abnb-shadow-sm) !important;
    margin-bottom: 24px !important;
    overflow: hidden !important;
}

body#order-detail .card .card-header {
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--abnb-border) !important;
    padding: 20px 24px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    text-transform: none !important;
}

body#order-detail .card .card-body {
    padding: 24px !important;
}

/* Outline Pill Cancellation Buttons */
body#order-detail .order_refund_request, 
body#order-detail .refund_policy_link {
    display: inline-flex !important;
    align-items: center !important;
    background-color: transparent !important;
    border: 1.5px solid #FF385C !important;
    color: #FF385C !important;
    border-radius: 20px !important;
    padding: 6px 16px !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
    margin-left: 8px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    float: none !important;
    height: auto !important;
    line-height: normal !important;
}

body#order-detail .order_refund_request:hover,
body#order-detail .refund_policy_link:hover {
    background-color: #FF385C !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(255, 56, 92, 0.15) !important;
    opacity: 1 !important;
}

body#order-detail .hotel-details .card-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

body#order-detail .hotel-details .card-header .booking-actions-wrap {
    margin: 0 !important;
}

/* Description Lists in Cards */
body#order-detail .description-list dt {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--abnb-gray-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 6px 0 !important;
}

body#order-detail .description-list dd {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin: 6px 0 !important;
}

body#order-detail .description-list dd a {
    color: var(--abnb-dark) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

body#order-detail .description-list dd a:hover {
    color: var(--abnb-primary) !important;
}

/* Payment Details Card Rows */
body#order-detail .payment-details .detail-row {
    border-bottom: 1px dashed var(--abnb-border) !important;
    padding: 12px 0 !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

body#order-detail .payment-details .detail-row:last-child {
    border-bottom: none !important;
}

body#order-detail .payment-details .detail-row .title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-gray-dark) !important;
}

body#order-detail .payment-details .detail-row .value {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
}

body#order-detail .payment-details .detail-row .payment-method a {
    color: var(--abnb-dark) !important;
    text-decoration: underline !important;
    top: 0 !important;
}

body#order-detail .payment-details .detail-row .payment-method a:hover {
    color: var(--abnb-primary) !important;
}

/* Premium Status Badge override with colored dots */
body#order-detail .payment-details .detail-row .status span.label {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 4px 10px !important;
    border-radius: 4px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
    color: var(--status-color, #1A73E8) !important;
    background-color: transparent !important;
    border: 1px solid transparent !important;
    z-index: 1 !important;
}

body#order-detail .payment-details .detail-row .status span.label::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background-color: var(--status-color, #1A73E8) !important;
    border: 1px solid var(--status-color, #1A73E8) !important;
    opacity: 0.12 !important;
    border-radius: 4px !important;
    z-index: -1 !important;
}

body#order-detail .payment-details .detail-row .status span.label::before {
    content: "" !important;
    display: inline-block !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    background-color: var(--status-color, #1A73E8) !important;
}

/* Hotel Location Card */
body#order-detail .hotel-location .card-subtitle {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--abnb-gray-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 8px !important;
}

body#order-detail .hotel-location p.hotel-address {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    line-height: 1.5 !important;
}

body#order-detail .hotel-location .hotel-location-map {
    border-radius: 12px !important;
    overflow: hidden !important;
    border: 1px solid var(--abnb-border) !important;
    margin-top: 16px !important;
}

/* Room Details Product List */
body#order-detail .product-detail {
    padding: 24px !important;
    border-bottom: 1px solid var(--abnb-border) !important;
}

body#order-detail .product-detail:last-child {
    border-bottom: none !important;
}

body#order-detail .product-detail .img-room-type {
    border-radius: 12px !important;
    border: 1px solid var(--abnb-border) !important;
}

body#order-detail .product-detail .product-name h3 {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    margin: 0 0 12px 0 !important;
    line-height: 1.2 !important;
}

body#order-detail .product-detail .product-name:hover h3 {
    color: var(--abnb-primary) !important;
}

body#order-detail .product-detail .description-list dt {
    font-size: 11px !important;
    color: var(--abnb-gray-dark) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 4px 0 !important;
}

body#order-detail .product-detail .description-list dd {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    margin: 4px 0 !important;
}

/* Payment Summary Prices Breakdown Table */
body#order-detail .payment-summary table {
    width: 100% !important;
}

body#order-detail .payment-summary table tr {
    border-bottom: 1px dashed var(--abnb-border) !important;
}

body#order-detail .payment-summary table tr:last-child {
    border-bottom: none !important;
}

body#order-detail .payment-summary table td {
    padding: 12px 0 !important;
    font-size: 14px !important;
    color: var(--abnb-gray-dark) !important;
    border-top: none !important;
}

body#order-detail .payment-summary table td:last-child {
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    font-size: 15px !important;
    text-align: right !important;
}

body#order-detail .payment-summary table tr.totalprice td {
    font-size: 15px !important;
    color: var(--abnb-dark) !important;
    padding: 16px 0 !important;
}

body#order-detail .payment-summary table tr.totalprice td:last-child {
    font-size: 20px !important;
    color: var(--abnb-primary) !important;
    font-weight: 800 !important;
}

/* Guest Details Card */
body#order-detail .guest-details table td {
    padding: 12px 0 !important;
    font-size: 14px !important;
    color: var(--abnb-gray-dark) !important;
    border-bottom: 1px dashed var(--abnb-border) !important;
    border-top: none !important;
}

body#order-detail .guest-details table tr:last-child td {
    border-bottom: none !important;
}

body#order-detail .guest-details table td:last-child {
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    text-align: right !important;
}

/* Hotel Policies Tabs */
body#order-detail .hotel-policies .nav-tabs {
    border-bottom: 1px solid var(--abnb-border) !important;
    display: flex !important;
    gap: 20px !important;
    background: #ffffff !important;
    padding: 0 24px !important;
}

body#order-detail .hotel-policies .nav-tabs li {
    margin-bottom: -1px !important;
    position: relative !important;
}

body#order-detail .hotel-policies .nav-tabs li a {
    border: none !important;
    background: transparent !important;
    padding: 14px 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-gray-dark) !important;
    border-radius: 0 !important;
    outline: none !important;
    margin: 0 !important;
}

body#order-detail .hotel-policies .nav-tabs li.active a {
    color: var(--abnb-primary) !important;
}

body#order-detail .hotel-policies .nav-tabs li.active::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background-color: var(--abnb-primary) !important;
    top: auto !important;
    width: 100% !important;
}

body#order-detail .hotel-policies .tab-content {
    padding: 24px !important;
}

body#order-detail .hotel-policies .card-body {
    padding: 0 !important;
}

/* Message Boards */
body#order-detail .order-messages,
body#order-detail .add-order-message {
    margin-top: 24px !important;
}

body#order-detail .add-order-message select.form-control,
body#order-detail .add-order-message textarea.form-control {
    border-radius: 8px !important;
    border: 1px solid var(--abnb-border) !important;
    padding: 12px !important;
    font-size: 14px !important;
    color: var(--abnb-dark) !important;
    outline: none !important;
    background-color: #ffffff !important;
}

body#order-detail .add-order-message select.form-control:focus,
body#order-detail .add-order-message textarea.form-control:focus {
    border-color: var(--abnb-dark) !important;
    box-shadow: 0 0 0 1px var(--abnb-dark) !important;
}

body#order-detail #sendOrderMessage button#submitMessage {
    background-color: var(--abnb-dark) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    padding: 10px 24px !important;
    border-radius: 8px !important;
    border: none !important;
    transition: opacity 0.2s ease !important;
    display: inline-block !important;
}

body#order-detail #sendOrderMessage button#submitMessage:hover {
    opacity: 0.9 !important;
}

/* ==========================================
   Address Page UI Redesign (Airbnb Style)
   ========================================== */

/* Page heading and description */
/* Page heading and description for unified settings */
body#address .abnb-auth-page h1.abnb-auth-title,
body#identity .abnb-auth-page h1.abnb-auth-title {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--abnb-dark) !important;
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    text-align: center !important;
}

body#address .abnb-auth-page p.info-title,
body#identity .abnb-auth-page p.info-title,
body#identity .abnb-auth-page p.abnb-auth-desc {
    text-align: center !important;
    font-size: 15px !important;
    color: var(--abnb-gray-dark) !important;
    margin-bottom: 24px !important;
}

body#address .abnb-auth-page p.required,
body#identity .abnb-auth-page p.required {
    text-align: right !important;
    font-size: 13px !important;
    color: var(--abnb-gray-dark) !important;
    max-width: 600px !important;
    margin: 0 auto 16px auto !important;
}

body#address .abnb-auth-page p.required sup,
body#identity .abnb-auth-page p.required sup {
    color: var(--abnb-primary) !important;
    font-size: 14px !important;
}

/* Tab Navigation Styling */
.abnb-profile-tabs {
    display: flex !important;
    justify-content: center !important;
    gap: 32px !important;
    border-bottom: 1px solid var(--abnb-border) !important;
    max-width: 600px !important;
    margin: 0 auto 32px auto !important;
    padding-bottom: 0 !important;
}

.abnb-profile-tab {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--abnb-gray-dark) !important;
    text-decoration: none !important;
    padding: 12px 8px !important;
    border-bottom: 2px solid transparent !important;
    transition: color 0.2s, border-color 0.2s !important;
    cursor: pointer !important;
}

.abnb-profile-tab:hover {
    color: var(--abnb-dark) !important;
}

.abnb-profile-tab.active {
    color: var(--abnb-primary) !important;
    border-bottom-color: var(--abnb-primary) !important;
}

/* Card container for forms */
#add_address.abnb-auth-card,
body#identity form.abnb-auth-card {
    background: #ffffff !important;
    border-radius: 16px !important;
    padding: 40px !important;
    box-shadow: 0 12px 32px rgba(0,0,0,0.08) !important;
    border: 1px solid var(--abnb-border) !important;
    max-width: 600px !important;
    margin: 0 auto !important;
}

/* Form layout overrides */
#add_address .abnb-form-group,
body#identity .abnb-form-group {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 20px !important;
    position: relative !important;
}

/* Labels positioned cleanly above inputs */
#add_address .abnb-form-label,
body#identity .abnb-form-label {
    position: static !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
    pointer-events: auto !important;
    transform: none !important;
    margin-bottom: 0 !important;
    display: inline-block !important;
    z-index: auto !important;
}

#add_address .abnb-form-label sup,
body#identity .abnb-form-label sup {
    color: var(--abnb-primary) !important;
    font-size: 12px !important;
}

/* Inputs styled cleanly */
#add_address .abnb-form-input,
body#identity .abnb-form-input {
    width: 100% !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 8px !important;
    color: var(--abnb-dark) !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    background-color: #ffffff !important;
    position: relative !important;
    height: 48px !important;
    box-sizing: border-box !important;
}

#add_address .abnb-form-input:focus,
body#identity .abnb-form-input:focus {
    outline: none !important;
    border-color: var(--abnb-dark) !important;
    box-shadow: 0 0 0 1px var(--abnb-dark) !important;
}

/* Custom placeholder (shadow text) styling */
#add_address .abnb-form-input::placeholder,
body#identity .abnb-form-input::placeholder {
    color: #a0a0a0 !important;
    opacity: 1 !important;
}

/* Textarea styling */
#add_address textarea.abnb-form-input {
    height: auto !important;
    min-height: 100px !important;
    resize: vertical !important;
}

/* Select dropdown styling */
#add_address select.abnb-form-input,
body#identity select.form-control {
    height: 48px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 16px !important;
    padding-right: 40px !important;
    background-color: #ffffff !important;
    border: 1px solid var(--abnb-border) !important;
    border-radius: 8px !important;
    color: var(--abnb-dark) !important;
    width: 100% !important;
}

/* Social Title & Radios styling */
body#identity .clearfix label {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--abnb-dark) !important;
}

body#identity .radio-inline {
    margin-top: 8px !important;
    margin-right: 16px !important;
    font-size: 14px !important;
}

body#identity .radio-inline input[type="radio"] {
    margin-right: 6px !important;
}

/* Inner descriptions and inline notices */
#add_address .form_info {
    display: block !important;
    font-size: 12px !important;
    color: var(--abnb-gray-dark) !important;
    margin-top: 4px !important;
}

#add_address p.inline-infos {
    font-size: 13px !important;
    color: var(--abnb-primary) !important;
    margin-top: -12px !important;
    margin-bottom: 20px !important;
}

/* Save / Submit actions */
#add_address .submit2,
body#identity .submit-group {
    text-align: center !important;
    margin-top: 32px !important;
}

#add_address #submitAddress,
body#identity button[name="submitIdentity"] {
    max-width: 240px !important;
    margin: 0 auto !important;
    width: 100% !important;
}

#add_address #submitAddress span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

#add_address #submitAddress i.right {
    font-size: 14px !important;
}

/* ==========================================================================
   ADDED TO CART OVERLAY / LAYER CART (MODAL POPUP) OVERHAUL
   ========================================================================== */

/* 1. Backdrop Overlay with blur */
.layer_cart_overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: rgba(0, 0, 0, 0.45) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    z-index: 9999 !important;
    opacity: 1 !important;
    display: none;
    transition: opacity 0.2s ease-in-out;
}

/* 2. Main Modal Centered Card */
#layer_cart {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 10000 !important;
    background-color: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2) !important;
    width: 720px !important;
    max-width: 90vw !important;
    overflow: hidden !important;
    border: none !important;
    display: none;
    box-sizing: border-box !important;
}

/* Flex layout clearing float overrides */
#layer_cart .clearfix {
    display: flex !important;
    flex-wrap: wrap !important;
}

#layer_cart .layer_cart_product {
    flex: 1 1 50% !important;
    width: 50% !important;
    padding: 32px !important;
    background: #ffffff !important;
    min-height: 320px !important;
    box-sizing: border-box !important;
}

#layer_cart .layer_cart_cart {
    flex: 1 1 50% !important;
    width: 50% !important;
    padding: 32px !important;
    background: #f7f7f7 !important;
    border-left: 1px solid #ebebeb !important;
    min-height: 320px !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    #layer_cart {
        width: 440px !important;
        max-width: 95vw !important;
    }
    #layer_cart .layer_cart_product {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-height: auto !important;
        padding: 24px !important;
    }
    #layer_cart .layer_cart_cart {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-height: auto !important;
        padding: 24px !important;
        border-left: none !important;
        border-top: 1px solid #ebebeb !important;
    }
}

/* Close/Cross Button */
#layer_cart .cross {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 32px !important;
    height: 32px !important;
    cursor: pointer !important;
    background: #ffffff !important;
    border: 1px solid #dddddd !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 10 !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.1s ease !important;
}

#layer_cart .cross:hover {
    background-color: #f7f7f7 !important;
    border-color: #b0b0b0 !important;
}

#layer_cart .cross:active {
    transform: scale(0.95) !important;
}

#layer_cart .cross:before {
    content: "close" !important;
    font-family: "Material Symbols Rounded" !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: #222222 !important;
    speak: none;
    font-weight: normal !important;
}

/* Success Heading */
#layer_cart .layer_cart_product h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    color: #137333 !important; /* Soft green */
    margin: 0 0 20px 0 !important;
    display: flex;
    align-items: center !important;
    gap: 8px !important;
}

#layer_cart .layer_cart_product h2 i.icon-check {
    font-family: "FontAwesome" !important;
    font-size: 14px !important;
    color: #137333 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #e6f4ea !important;
    border-radius: 50% !important;
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Product Info Card */
#layer_cart .product-image-container.layer_cart_img {
    width: 100px !important;
    height: 75px !important;
    max-width: 100px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    border: 1px solid #ebebeb !important;
    padding: 0 !important;
    float: left !important;
    margin-right: 16px !important;
}

#layer_cart .product-image-container.layer_cart_img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

#layer_cart .layer_cart_product_info {
    overflow: hidden !important;
    padding: 0 !important;
}

#layer_cart #layer_cart_product_title {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #222222 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

#layer_cart #layer_cart_product_attributes {
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    color: #717171 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

/* Hide ugly dash separators inside info rows */
#layer_cart .layer_cart_product_info > div {
    font-size: 0 !important;
    margin-bottom: 6px !important;
}

#layer_cart .layer_cart_product_info > div strong {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #222222 !important;
    margin-right: 4px !important;
}

#layer_cart .layer_cart_product_info > div span {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    color: #484848 !important;
}

/* Right Column Summary */
#layer_cart .layer_cart_cart h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #222222 !important;
    border-bottom: 1px solid #ebebeb !important;
    padding-bottom: 12px !important;
    margin-bottom: 20px !important;
}

#layer_cart .layer_cart_cart .layer_cart_row {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    color: #484848 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 0 10px 0 !important;
}

#layer_cart .layer_cart_cart .layer_cart_row strong {
    font-weight: 500 !important;
    color: #484848 !important;
}

#layer_cart .layer_cart_cart .layer_cart_row span {
    font-weight: 600 !important;
    color: #222222 !important;
}

/* Total Price Row */
#layer_cart .layer_cart_cart .layer_cart_row:nth-last-of-type(1) {
    border-top: 1px solid #ebebeb !important;
    padding-top: 14px !important;
    margin-top: 6px !important;
}

#layer_cart .layer_cart_cart .layer_cart_row:nth-last-of-type(1) strong {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #222222 !important;
}

#layer_cart .layer_cart_cart .layer_cart_row:nth-last-of-type(1) span {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #FF385C !important;
}

/* Buttons Container */
#layer_cart .layer_cart_cart .button-container {
    position: static !important;
    padding: 16px 0 0 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Button overrides */
#layer_cart .layer_cart_cart .button-container span.continue,
#layer_cart .layer_cart_cart .button-container a.button-medium {
    cursor: pointer !important;
    border-radius: 8px !important;
    width: 100% !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    background-image: none !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.1s ease !important;
}

#layer_cart .layer_cart_cart .button-container span.continue span,
#layer_cart .layer_cart_cart .button-container a.button-medium span {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: inherit !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

#layer_cart .layer_cart_cart .button-container span.continue i,
#layer_cart .layer_cart_cart .button-container a.button-medium i {
    display: none !important;
}

/* Proceed Button */
#layer_cart .layer_cart_cart .button-container a.button-medium {
    background-color: #FF385C !important;
    color: #ffffff !important;
    border: 1px solid #FF385C !important;
    text-decoration: none !important;
}

#layer_cart .layer_cart_cart .button-container a.button-medium:hover {
    background-color: #e61e4d !important;
    border-color: #e61e4d !important;
    color: #ffffff !important;
}

#layer_cart .layer_cart_cart .button-container a.button-medium:active {
    transform: scale(0.98) !important;
}

/* Continue Button */
#layer_cart .layer_cart_cart .button-container span.continue {
    background-color: #ffffff !important;
    color: #222222 !important;
    border: 1px solid #222222 !important;
}

#layer_cart .layer_cart_cart .button-container span.continue:hover {
    background-color: #f7f7f7 !important;
    border-color: #222222 !important;
}

#layer_cart .layer_cart_cart .button-container span.continue:active {
    transform: scale(0.98) !important;
}

/* Cross-selling grid */
#layer_cart .crossseling {
    background: #ffffff !important;
    border-top: 1px solid #ebebeb !important;
    padding: 24px !important;
}

/* ==========================================================================
   Comprehensive Mobile Responsive Design System (Avrina / Airbnb Theme)
   ========================================================================== */

/* Base Header Layout */
.abnb-header-wrapper {
  background: white;
  border-bottom: 1px solid var(--abnb-border);
}
.header-abnb-inner {
  width: 100%;
  height: 100%;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.abnb-logo-wrapper {
  flex: 1;
  display: flex;
  align-items: center;
}
.abnb-logo-link {
  text-decoration: none !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
.abnb-logo-text {
  font-size: 24px;
  font-weight: 700;
  font-family: var(--font-family-sans);
  letter-spacing: -0.5px;
}
.abnb-header-search-container {
  flex: 2;
  display: flex;
  justify-content: center;
}
.abnb-header-user-container {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 16px;
}
.abnb-home-link {
  font-weight: 600;
  color: var(--abnb-dark);
  font-size: 14px;
  padding: 12px;
  border-radius: 24px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.abnb-home-link:hover {
  background-color: var(--abnb-gray-bg);
}
.header-action-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.abnb-top-hook-wrapper {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  width: auto;
  height: auto;
}
#abnb-user-menu {
  position: relative;
}
.user-menu-icon {
  color: var(--abnb-gray-dark);
  font-size: 30px;
  vertical-align: middle;
}
#abnb-user-menu-dropdown {
  border-radius: 12px;
  padding: 12px 0;
  border: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  min-width: 240px;
  margin-top: 12px;
  position: absolute;
  right: 0;
  top: 100%;
  display: none;
  z-index: 1000;
  background: white;
}
.abnb-dropdown-item {
  padding: 10px 16px;
  color: var(--abnb-dark) !important;
  display: block;
  text-decoration: none !important;
}
.abnb-dropdown-item:hover {
  background-color: var(--abnb-gray-bg) !important;
}

/* --- Mobile Breakpoints (Tablet & Mobile: <= 991px) --- */
@media (max-width: 991px) {
  .header-abnb-inner {
    padding: 0 20px !important;
  }
  .abnb-header-search-container {
    display: none !important; /* Hide inline search bar in header on tablet/mobile */
  }
  
  /* Product Detail Page Stack */
  .abnb-product-left {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  .abnb-product-right {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    position: static !important;
    margin-top: 24px !important;
  }
  .abnb-image-collage {
    height: 40vh !important;
    min-height: 280px !important;
  }
}

/* --- Small Mobile Breakpoints (Mobile Phones: <= 767px) --- */
@media (max-width: 767px) {
  /* Header Mobile Optimization */
  #header {
    height: 64px !important;
  }
  .header-abnb-inner {
    padding: 0 16px !important;
  }
  .abnb-logo-text {
    font-size: 20px !important;
  }
  .abnb-logo-icon {
    width: 26px !important;
    height: 26px !important;
  }
  .abnb-home-link {
    display: none !important; /* Hide desktop text link on mobile */
  }
  
  /* Mobile Search Pill Transformation */
  .abnb-search-pill {
    flex-direction: column !important;
    height: auto !important;
    border-radius: 20px !important;
    padding: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
  }
  .abnb-search-item {
    padding: 10px 16px !important;
    width: 100% !important;
    border-bottom: 1px solid var(--abnb-border) !important;
  }
  .abnb-search-item::after {
    display: none !important;
  }
  .abnb-search-item:last-of-type {
    border-bottom: none !important;
  }
  .abnb-search-button-wrapper {
    padding: 8px 0 0 0 !important;
    width: 100% !important;
  }
  .btn-abnb-search {
    width: 100% !important;
    height: 48px !important;
    border-radius: 12px !important;
    gap: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
  }
  .btn-abnb-search::after {
    content: 'Search Rooms' !important;
    color: white !important;
  }

  /* Bento Grid Mobile Stack */
  .abnb-interior-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 12px !important;
  }
  .abnb-interior-grid > div:first-child {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
    height: 240px !important;
  }
  .abnb-interior-grid > div:not(:first-child) {
    height: 180px !important;
  }

  /* Property Cards & Lists */
  .abnb-product-list {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .abnb-card-image-wrapper {
    aspect-ratio: 16 / 10 !important;
  }

  /* Amenities Grid */
  .abnb-amenities-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .abnb-amenity-card {
    margin-bottom: 0 !important;
  }

  /* Authentication / Account Cards */
  .abnb-auth-grid, .abnb-account-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 16px !important;
  }
  .abnb-auth-card {
    padding: 24px 16px !important;
    border-radius: 12px !important;
  }
  .abnb-auth-row {
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* Shopping Cart Modal Fixes */
  #layer_cart {
    width: 92vw !important;
    left: 4vw !important;
    margin-left: 0 !important;
    top: 5% !important;
  }
  #layer_cart .layer_cart_product,
  #layer_cart .layer_cart_cart {
    width: 100% !important;
    float: none !important;
    border: none !important;
  }
  #layer_cart .button-container {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
  }
  #layer_cart .button-container a.button-medium,
  #layer_cart .button-container span.continue {
    width: 100% !important;
    margin: 0 !important;
  }

  /* Footer Mobile Layout */
  .abnb-dark-footer {
    padding: 40px 16px 24px !important;
  }
  .abnb-dark-footer .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    text-align: center !important;
  }
}
