:root {
  --color-navy: #071421;
  --color-navy-hover: #0E2436;
  --color-gold: #C6A46A;
  --color-gold-hover: #B38B4D;
  --color-bg: #FAF9F6;
  --color-section: #F3EFE7;
  --color-card: #FFFFFF;
  --color-border: #E5E0D8;
  --color-text: #1F2933;
  --color-muted: #6B7280;
  --color-success: #2F7D5C;
  --color-error: #B94A48;

  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-body: "Plus Jakarta Sans", Arial, sans-serif;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;

  --shadow-card: 0 18px 45px rgba(7, 20, 33, 0.07);
  --shadow-card-hover: 0 24px 60px rgba(7, 20, 33, 0.12);
  --shadow-search: 0 18px 50px rgba(7, 20, 33, 0.12);

  --resort-alabaster: var(--color-bg);
  --resort-card: var(--color-card);
  --resort-beige-light: var(--color-section);
  --resort-beige-premium: #E8DED0;
  --resort-navy: var(--color-navy);
  --resort-navy-hover: var(--color-navy-hover);
  --resort-text: var(--color-text);
  --resort-muted: var(--color-muted);
  --resort-line: var(--color-border);
  --resort-gold: var(--color-gold);
  --resort-gold-hover: var(--color-gold-hover);
  --resort-success: var(--color-success);
  --resort-error: var(--color-error);
  --resort-radius: var(--radius-md);
  --resort-shadow: var(--shadow-card);
}

body.rbp-preset-modern-apartments {
  --color-navy: #111827;
  --color-navy-hover: #273244;
  --color-gold: #7C8A99;
  --color-gold-hover: #5F6F7D;
  --color-bg: #F7F8FA;
  --color-section: #ECEFF3;
  --color-card: #FFFFFF;
  --color-border: #D9DEE6;
  --color-text: #1E252E;
  --color-muted: #667085;
  --color-success: #2F7D5C;
  --color-error: #B94A48;
  --font-heading: "Playfair Display", Georgia, serif;
  --font-body: "Inter", Arial, sans-serif;
  --radius-sm: 5px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --shadow-card: 0 18px 45px rgba(17, 24, 39, 0.08);
  --shadow-card-hover: 0 24px 58px rgba(17, 24, 39, 0.13);
  --shadow-search: 0 18px 50px rgba(17, 24, 39, 0.12);
}

body.rbp-preset-forest-cabins {
  --color-navy: #12251D;
  --color-navy-hover: #1D382D;
  --color-gold: #B88A4A;
  --color-gold-hover: #9D743C;
  --color-bg: #F7F5EF;
  --color-section: #EDE7DC;
  --color-card: #FFFEFB;
  --color-border: #DCD2C1;
  --color-text: #24322A;
  --color-muted: #66746B;
  --color-success: #2F7D5C;
  --color-error: #A9473E;
  --font-heading: "Lora", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
  --radius-sm: 7px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow-card: 0 18px 45px rgba(18, 37, 29, 0.08);
  --shadow-card-hover: 0 24px 60px rgba(18, 37, 29, 0.14);
  --shadow-search: 0 18px 50px rgba(18, 37, 29, 0.12);
}

body.rbp-preset-coastal-stay {
  --color-navy: #073042;
  --color-navy-hover: #0D4A63;
  --color-gold: #D2A85E;
  --color-gold-hover: #B98D42;
  --color-bg: #F5FAFA;
  --color-section: #E8F1F1;
  --color-card: #FFFFFF;
  --color-border: #D7E3E2;
  --color-text: #1C2E35;
  --color-muted: #60757B;
  --color-success: #2F7D5C;
  --color-error: #B94A48;
  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-body: "Plus Jakarta Sans", Arial, sans-serif;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --shadow-card: 0 18px 45px rgba(7, 48, 66, 0.08);
  --shadow-card-hover: 0 24px 60px rgba(7, 48, 66, 0.14);
  --shadow-search: 0 18px 50px rgba(7, 48, 66, 0.12);
}

body.rbp-preset-city-boutique {
  --color-navy: #18181B;
  --color-navy-hover: #2A2A30;
  --color-gold: #A78BFA;
  --color-gold-hover: #8B6EEA;
  --color-bg: #F8F7FB;
  --color-section: #ECEAF2;
  --color-card: #FFFFFF;
  --color-border: #DDD8E8;
  --color-text: #24212B;
  --color-muted: #6F687B;
  --color-success: #2F7D5C;
  --color-error: #B94A48;
  --font-heading: "Playfair Display", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --shadow-card: 0 18px 45px rgba(24, 24, 27, 0.08);
  --shadow-card-hover: 0 24px 60px rgba(24, 24, 27, 0.14);
  --shadow-search: 0 18px 50px rgba(24, 24, 27, 0.12);
}

body.rbp-preset-premium-resort {
  --color-navy: #071421;
  --color-navy-hover: #0E2436;
  --color-gold: #C6A46A;
  --color-gold-hover: #B38B4D;
  --color-bg: #FAF9F6;
  --color-section: #F3EFE7;
  --color-card: #FFFFFF;
  --color-border: #E5E0D8;
  --color-text: #1F2933;
  --color-muted: #6B7280;
  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-body: "Plus Jakarta Sans", Arial, sans-serif;
}

body.resort-booking-theme {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
}

.resort-booking-theme h1,
.resort-booking-theme h2,
.resort-booking-theme h3 {
  color: var(--color-navy);
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: -0.02em;
}

.resort-booking-theme h1 {
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1.05;
}

.resort-booking-theme h2 {
  font-size: clamp(34px, 3.5vw, 48px);
  line-height: 1.15;
}

.resort-booking-theme h3 {
  font-size: clamp(26px, 2.6vw, 34px);
  line-height: 1.2;
}

.resort-booking-theme p {
  color: var(--color-text);
}

.resort-booking-theme a {
  color: var(--color-navy);
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.resort-booking-theme a:hover,
.resort-booking-theme a:focus-visible {
  color: var(--color-gold);
}

.resort-booking-theme svg,
.resort-booking-theme .et-pb-icon,
.resort-booking-theme .dashicons,
.resort-booking-theme [class^="fa-"],
.resort-booking-theme [class*=" fa-"],
.resort-icon {
  color: currentColor;
}

.resort-booking-theme svg:not([fill]),
.resort-booking-theme svg [fill="none"] {
  fill: none;
}

.resort-booking-theme svg:not([stroke]),
.resort-booking-theme svg [stroke],
.resort-icon svg,
.resort-icon [stroke] {
  stroke: currentColor;
}

.resort-booking-theme svg [fill]:not([fill="none"]) {
  fill: currentColor;
}

.resort-booking-theme .resort-accent svg,
.resort-booking-theme .resort-accent .et-pb-icon,
.resort-booking-theme .resort-accent .dashicons,
.resort-booking-theme .badge-gold svg,
.resort-booking-theme .badge-gold .et-pb-icon,
.resort-booking-theme .rbe-amenity-icon {
  color: var(--color-gold);
}

.resort-booking-theme .btn-primary svg,
.resort-booking-theme .btn-primary .et-pb-icon,
.resort-booking-theme .btn-primary .dashicons,
.resort-booking-theme .badge-navy svg,
.resort-booking-theme .badge-navy .et-pb-icon {
  color: #fff;
}

.resort-booking-theme .btn-gold svg,
.resort-booking-theme .btn-gold .et-pb-icon,
.resort-booking-theme .btn-gold .dashicons {
  color: var(--color-navy);
}

.resort-booking-theme .resort-available svg,
.resort-booking-theme .resort-available .et-pb-icon,
.resort-booking-theme .is-available svg {
  color: var(--color-success);
}

.resort-booking-theme .resort-unavailable svg,
.resort-booking-theme .resort-unavailable .et-pb-icon,
.resort-booking-theme .is-unavailable svg {
  color: var(--color-error);
}

.btn-primary,
.resort-booking-theme .btn-primary,
.resort-booking-theme .et_pb_button.btn-primary {
  background-color: var(--color-navy) !important;
  border: 0 !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: 0 12px 30px rgba(7, 20, 33, 0.18);
  color: #fff !important;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 14px 28px !important;
}

.btn-primary:hover,
.resort-booking-theme .btn-primary:hover,
.resort-booking-theme .et_pb_button.btn-primary:hover {
  background-color: var(--color-navy-hover) !important;
  color: #fff !important;
  transform: translateY(-2px);
}

.btn-gold,
.resort-booking-theme .btn-gold,
.resort-booking-theme .et_pb_button.btn-gold {
  background-color: var(--color-gold) !important;
  border: 0 !important;
  border-radius: var(--radius-sm) !important;
  color: var(--color-navy) !important;
  font-weight: 700;
  padding: 13px 26px !important;
}

.btn-gold:hover,
.resort-booking-theme .btn-gold:hover,
.resort-booking-theme .et_pb_button.btn-gold:hover {
  background-color: var(--color-gold-hover) !important;
}

.resort-booking-theme .et_pb_button,
.resort-booking-theme button,
.resort-booking-theme input[type="submit"] {
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
}

.premium-card,
.property-card,
.resort-card,
.resort-booking-theme .premium-card,
.resort-booking-theme .property-card,
.resort-booking-theme .resort-card,
.resort-booking-theme .et_pb_module.resort-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.premium-card:hover,
.property-card:hover,
.resort-booking-theme .premium-card:hover,
.resort-booking-theme .property-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

.property-card img,
.resort-booking-theme .property-card img {
  height: 210px;
  object-fit: cover;
  width: 100%;
}

.property-card-title {
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 700;
}

.property-card-location {
  color: var(--color-muted);
  font-size: 13px;
}

.property-card-price {
  color: var(--color-navy);
  font-size: 18px;
  font-weight: 800;
}

.property-card-price small {
  color: var(--color-muted);
  font-size: 12px;
  font-weight: 500;
}

.badge-gold,
.resort-booking-theme .badge-gold {
  align-items: center;
  background: rgba(198, 164, 106, 0.14);
  border: 1px solid rgba(198, 164, 106, 0.35);
  border-radius: 999px;
  color: #8A6834;
  display: inline-flex;
  font-size: 12px;
  font-weight: 700;
  gap: 6px;
  padding: 6px 10px;
}

.badge-navy,
.resort-booking-theme .badge-navy {
  align-items: center;
  background: var(--color-navy);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 12px;
  font-weight: 700;
  gap: 6px;
  padding: 6px 10px;
}

.booking-search-bar,
.resort-booking-theme .booking-search-bar {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-search);
  padding: 18px 22px;
}

.booking-search-label {
  color: var(--color-muted);
  font-size: 12px;
  font-weight: 600;
}

.booking-search-value {
  color: var(--color-text);
  font-size: 14px;
  font-weight: 600;
}

.filter-sidebar,
.resort-booking-theme .filter-sidebar {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: 0 12px 35px rgba(7, 20, 33, 0.05);
  padding: 24px;
}

.filter-title {
  color: var(--color-navy);
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 14px;
}

.filter-item {
  color: var(--color-text);
  font-size: 13px;
}

.hero-premium,
.category-hero {
  background-position: center;
  background-size: cover;
  position: relative;
}

.hero-premium {
  min-height: 620px;
}

.category-hero {
  min-height: 340px;
}

.hero-premium::before,
.category-hero::before {
  content: "";
  inset: 0;
  position: absolute;
}

.hero-premium::before {
  background: linear-gradient(90deg, rgba(7, 20, 33, 0.72) 0%, rgba(7, 20, 33, 0.38) 45%, rgba(7, 20, 33, 0.08) 100%);
}

.category-hero::before {
  background: linear-gradient(90deg, rgba(7, 20, 33, 0.76) 0%, rgba(7, 20, 33, 0.42) 55%, rgba(7, 20, 33, 0.12) 100%);
}

.hero-premium > *,
.category-hero > * {
  position: relative;
  z-index: 2;
}

.hero-eyebrow {
  color: var(--color-gold);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.hero-premium h1,
.category-hero h1 {
  color: #fff;
}

.hero-premium p {
  color: rgba(255, 255, 255, 0.82);
  max-width: 560px;
}

.breadcrumbs {
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
}

.breadcrumbs a {
  color: rgba(255, 255, 255, 0.78);
}

.breadcrumbs a:hover {
  color: var(--color-gold);
}

.reservation-box,
.resort-booking-theme .reservation-box {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: 0 18px 45px rgba(7, 20, 33, 0.08);
  padding: 28px;
}

@media (min-width: 981px) {
  .reservation-box,
  .resort-booking-theme .reservation-box {
    position: sticky;
    top: 110px;
  }
}

.reservation-price {
  color: var(--color-navy);
  font-size: 28px;
  font-weight: 800;
}

.reservation-price small {
  color: var(--color-muted);
  font-size: 13px;
  font-weight: 500;
}

.resort-booking-theme input,
.resort-booking-theme select,
.resort-booking-theme textarea {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  font-family: var(--font-body);
  padding: 13px 14px;
}

.resort-booking-theme input:focus,
.resort-booking-theme select:focus,
.resort-booking-theme textarea:focus {
  border-color: var(--color-gold);
  outline: 0;
}

.footer-premium,
.resort-booking-theme .footer-premium {
  background: var(--color-navy);
  color: #fff;
  padding: 70px 0 35px;
}

.footer-premium a {
  color: rgba(255, 255, 255, 0.72);
}

.footer-premium a:hover {
  color: var(--color-gold);
}

.resort-booking-theme footer svg,
.resort-booking-theme .et-l--footer svg,
.resort-booking-theme #main-footer svg,
.resort-booking-theme footer .et-pb-icon,
.resort-booking-theme .et-l--footer .et-pb-icon,
.resort-booking-theme #main-footer .et-pb-icon,
.resort-booking-theme footer .dashicons,
.resort-booking-theme .et-l--footer .dashicons,
.resort-booking-theme #main-footer .dashicons,
.resort-booking-theme footer [class^="fa-"],
.resort-booking-theme footer [class*=" fa-"],
.resort-booking-theme .et-l--footer [class^="fa-"],
.resort-booking-theme .et-l--footer [class*=" fa-"],
.resort-booking-theme #main-footer [class^="fa-"],
.resort-booking-theme #main-footer [class*=" fa-"] {
  color: var(--color-navy) !important;
}

.resort-booking-theme .footer-premium svg,
.resort-booking-theme .footer-premium .et-pb-icon,
.resort-booking-theme .footer-premium .dashicons,
.resort-booking-theme .footer-premium [class^="fa-"],
.resort-booking-theme .footer-premium [class*=" fa-"] {
  color: rgba(255, 255, 255, 0.78) !important;
}

.resort-booking-theme footer a:hover svg,
.resort-booking-theme .footer-premium a:hover svg,
.resort-booking-theme .et-l--footer a:hover svg,
.resort-booking-theme #main-footer a:hover svg,
.resort-booking-theme footer a:hover .et-pb-icon,
.resort-booking-theme .footer-premium a:hover .et-pb-icon,
.resort-booking-theme .et-l--footer a:hover .et-pb-icon,
.resort-booking-theme #main-footer a:hover .et-pb-icon,
.resort-booking-theme footer a:hover .dashicons,
.resort-booking-theme .footer-premium a:hover .dashicons,
.resort-booking-theme .et-l--footer a:hover .dashicons,
.resort-booking-theme #main-footer a:hover .dashicons,
.resort-booking-theme footer a:hover [class^="fa-"],
.resort-booking-theme footer a:hover [class*=" fa-"],
.resort-booking-theme .footer-premium a:hover [class^="fa-"],
.resort-booking-theme .footer-premium a:hover [class*=" fa-"],
.resort-booking-theme .et-l--footer a:hover [class^="fa-"],
.resort-booking-theme .et-l--footer a:hover [class*=" fa-"],
.resort-booking-theme #main-footer a:hover [class^="fa-"],
.resort-booking-theme #main-footer a:hover [class*=" fa-"] {
  color: var(--color-gold) !important;
}

.resort-booking-theme .et-l--footer .et-social-icon a,
.resort-booking-theme #main-footer .et-social-icon a {
  color: var(--color-navy) !important;
}

.resort-booking-theme .footer-premium .et-social-icon a {
  color: rgba(255, 255, 255, 0.78) !important;
}

.resort-booking-theme .et-l--footer .et-social-icon a:hover,
.resort-booking-theme #main-footer .et-social-icon a:hover,
.resort-booking-theme .footer-premium .et-social-icon a:hover {
  color: var(--color-gold) !important;
}

.resort-booking-theme .et-l--footer .et-social-icon a::before,
.resort-booking-theme #main-footer .et-social-icon a::before,
.resort-booking-theme .footer-premium .et-social-icon a::before,
.resort-booking-theme .et-l--footer .et_pb_social_media_follow li a.icon::before,
.resort-booking-theme #main-footer .et_pb_social_media_follow li a.icon::before,
.resort-booking-theme .footer-premium .et_pb_social_media_follow li a.icon::before {
  color: currentColor !important;
}

.footer-premium p {
  color: rgba(255, 255, 255, 0.72);
}

.footer-logo {
  color: var(--color-gold);
  font-family: var(--font-heading);
  letter-spacing: 0.16em;
}

.resort-section-muted {
  background: var(--color-section);
}

.resort-badge {
  background: var(--resort-beige-premium);
  border-radius: 999px;
  color: var(--color-navy);
}

.resort-accent,
.resort-booking-theme .resort-accent {
  color: var(--color-gold);
}

.resort-available {
  color: var(--color-success);
}

.resort-unavailable {
  color: var(--color-error);
}

.has-alabaster-background-color {
  color: #FAF9F6;
}

.has-alabaster-background-background-color {
  background-color: #FAF9F6;
}

.has-warm-card-white-color {
  color: #FFFFFF;
}

.has-warm-card-white-background-color {
  background-color: #FFFFFF;
}

.has-light-beige-color {
  color: #F3EFE7;
}

.has-light-beige-background-color {
  background-color: #F3EFE7;
}

.has-premium-beige-color {
  color: #E8DED0;
}

.has-premium-beige-background-color {
  background-color: #E8DED0;
}

.has-deep-navy-color {
  color: #071421;
}

.has-deep-navy-background-color {
  background-color: #071421;
}

.has-navy-hover-color {
  color: #0E2436;
}

.has-navy-hover-background-color {
  background-color: #0E2436;
}

.has-text-anthracite-color {
  color: #1F2933;
}

.has-text-anthracite-background-color {
  background-color: #1F2933;
}

.has-text-muted-color {
  color: #6B7280;
}

.has-text-muted-background-color {
  background-color: #6B7280;
}

.has-soft-line-color {
  color: #E5E0D8;
}

.has-soft-line-background-color {
  background-color: #E5E0D8;
}

.has-premium-gold-color {
  color: #C6A46A;
}

.has-premium-gold-background-color {
  background-color: #C6A46A;
}

.has-gold-hover-color {
  color: #B38B4D;
}

.has-gold-hover-background-color {
  background-color: #B38B4D;
}

.has-availability-success-color {
  color: #2F7D5C;
}

.has-availability-success-background-color {
  background-color: #2F7D5C;
}

.has-availability-error-color {
  color: #B94A48;
}

.has-availability-error-background-color {
  background-color: #B94A48;
}

@media (max-width: 767px) {
  .hero-premium {
    min-height: 620px;
  }

  .category-hero {
    min-height: 420px;
  }

  .booking-search-bar,
  .resort-booking-theme .booking-search-bar {
    padding: 18px;
  }

  .filter-sidebar,
  .resort-booking-theme .filter-sidebar {
    padding: 20px;
  }

  .footer-premium,
  .resort-booking-theme .footer-premium {
    padding: 50px 0 30px;
  }
}
