/* Oxygen Hotels — distinct UI (Bootstrap 5 overlay) */
/* Typography: Inter + Sora across website */
:root {
  /* Theme aligned to Oxygen logo (blue + orange) */
  --oh-forest: #0b4f9c;      /* primary blue */
  --oh-forest-2: #0a63c9;    /* bright blue */
  --oh-sage: #d8ecff;        /* light blue tint */
  --oh-gold: #f4a300;        /* oxygen orange */
  --oh-cream: #f6f3ec;
  --oh-slate: #2d3a3a;
  --font-sans: "Inter", system-ui, sans-serif;
  --font-serif: "Sora", "Inter", sans-serif;
  --booking-accent: #f26522;
  --booking-page-bg: #e8eaef;
  --booking-star: #f26522;
}

body {
  font-family: var(--font-sans);
  color: var(--oh-slate);
  background: var(--oh-cream);
}

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.display-font {
  font-family: var(--font-serif);
}

.bg-brand {
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 100%) !important;
}

.text-brand {
  color: var(--oh-forest) !important;
}

.navbar-brand .brand-text {
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.navbar .nav-link,
.navbar .btn {
  font-family: var(--font-sans);
}

.navbar .nav-link {
  font-weight: 700;
  padding-left: 0.8rem !important;
  padding-right: 0.8rem !important;
}

.navbar .nav-tagline {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.logo-mark {
  width: 42px;
  height: 42px;
  background: var(--oh-sage);
  font-size: 1rem;
}

.navbar {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}

.navbar .container {
  align-items: center;
  gap: 0.35rem;
}

/* Nav dropdowns */
.navbar .dropdown-menu {
  background: #fff;
  border: 1px solid #e7ebf2;
  border-radius: 0.75rem;
  padding: 0.5rem 0;
  min-width: 240px;
  box-shadow: 0 14px 40px rgba(11, 79, 156, 0.14);
  max-height: 70vh;
  overflow-y: auto;
  margin-top: 0.35rem;
}

.navbar .dropdown-menu .dropdown-header {
  font-family: var(--font-serif);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--oh-forest);
  padding: 0.5rem 1rem 0.2rem;
}

.navbar .dropdown-menu .dropdown-item {
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--oh-slate);
  padding: 0.42rem 1rem;
  transition: background 0.15s ease, color 0.15s ease;
}

.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus {
  background: var(--oh-sage);
  color: var(--oh-forest);
}

.navbar .dropdown-menu .dropdown-item.fw-semibold {
  color: var(--booking-accent);
}

.navbar .dropdown-menu .dropdown-item.fw-semibold:hover {
  background: rgba(242, 101, 34, 0.08);
  color: var(--booking-accent);
}

.navbar .dropdown-menu .dropdown-divider {
  border-color: #e7ebf2;
  margin: 0.3rem 0;
}

.site-logo {
  height: 62px;
  width: auto;
  object-fit: contain;
  background: transparent;
  border-radius: 0;
  padding: 0;
}

.btn-accent {
  background: var(--oh-gold);
  border: none;
  color: #1a1510;
  font-weight: 600;
}

.btn-accent:hover {
  background: #d4b76a;
  color: #1a1510;
}

.hero-swiper {
  min-height: 78vh;
  background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.6)),
    url("https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1600&q=80") center/cover no-repeat;
  color: #fff;
}

.hero-swiper.hero-alt {
  background: linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.6)),
    url("https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1600&q=80") center/cover no-repeat;
}

.section-title .eyebrow {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--oh-forest-2);
  font-weight: 600;
}

.card-hotel {
  border: none;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(15, 61, 58, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card-hotel:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(15, 61, 58, 0.12);
}

.card-hotel .card-img-wrap {
  height: 200px;
  background: linear-gradient(145deg, #e8f5e4, #dceee8);
}

.card-hotel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.badge-soft {
  background: rgba(200, 230, 193, 0.35);
  color: var(--oh-forest);
  font-weight: 500;
}

.home-handpicked-section {
  background: #fff;
}

.home-handpicked-card {
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  background: #fff;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-handpicked-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(11, 79, 156, 0.1);
}

.home-handpicked-img-wrap {
  height: 230px;
  background: #edf1f6;
}

.home-handpicked-card--tall {
  min-height: 220px;
}

.home-handpicked-img-wrap--tall {
  height: 230px;
}

.home-handpicked-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-handpicked-track {
  height: 2px;
  background: #d9dee8;
}

.home-handpicked-next {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-decoration: none;
  border: 1px solid #d4dce8;
  color: #2d3a53;
  background: #fff;
}

.home-handpicked-next:hover {
  background: var(--oh-forest);
  color: #fff;
}

.benefit-card {
  position: relative;
  overflow: hidden;
}

.benefit-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(200, 230, 193, 0.55);
  color: var(--oh-forest);
  display: grid;
  place-items: center;
  font-size: 1.15rem;
}

.benefit-image-wrap {
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(15, 61, 58, 0.12);
}

.benefit-image {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}

.stat-pill {
  background: #fff;
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 8px 30px rgba(15, 61, 58, 0.06);
}

/* ========== THE OXYGEN WAY (about page) ========== */
.oxy-way {
  padding: 5rem 0;
  background: #fff;
}
.oxy-way-head {
  text-align: center;
  margin-bottom: 3rem;
}
.oxy-way-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.75rem;
}
.oxy-way-kicker-line {
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: var(--booking-accent);
}
.oxy-way-title {
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.5rem;
}
.oxy-way-sub {
  color: #64748b;
  font-size: 0.95rem;
  max-width: 480px;
  margin: 0 auto;
}

/* Cards grid */
.oxy-way-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.oxy-way-card {
  position: relative;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  padding: 2rem 1.75rem 1.75rem;
  overflow: hidden;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.oxy-way-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  border-radius: 1.25rem 1.25rem 0 0;
}
.oxy-way-card--blue::before   { background: linear-gradient(90deg, var(--oh-forest), var(--oh-forest-2)); }
.oxy-way-card--accent::before { background: linear-gradient(90deg, var(--booking-accent), #ff8a50); }
.oxy-way-card--gold::before   { background: linear-gradient(90deg, var(--oh-gold), #fbbf24); }

.oxy-way-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
}

.oxy-way-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.oxy-way-card-num {
  font-family: var(--font-serif);
  font-size: 2.2rem;
  font-weight: 800;
  color: #e2e8f0;
  line-height: 1;
}
.oxy-way-card-icon {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
}
.oxy-way-card--blue .oxy-way-card-icon {
  background: linear-gradient(135deg, rgba(11,79,156,0.12), rgba(10,99,201,0.06));
  color: var(--oh-forest);
}
.oxy-way-card--accent .oxy-way-card-icon {
  background: linear-gradient(135deg, rgba(242,101,34,0.12), rgba(242,101,34,0.06));
  color: var(--booking-accent);
}
.oxy-way-card--gold .oxy-way-card-icon {
  background: linear-gradient(135deg, rgba(244,163,0,0.15), rgba(244,163,0,0.06));
  color: #d97706;
}

.oxy-way-card-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.6rem;
}
.oxy-way-card-text {
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.oxy-way-card-line {
  width: 36px;
  height: 3px;
  border-radius: 3px;
  background: #e2e8f0;
  transition: width 0.3s, background 0.3s;
}
.oxy-way-card:hover .oxy-way-card-line { width: 56px; }
.oxy-way-card--blue:hover .oxy-way-card-line   { background: var(--oh-forest); }
.oxy-way-card--accent:hover .oxy-way-card-line { background: var(--booking-accent); }
.oxy-way-card--gold:hover .oxy-way-card-line   { background: var(--oh-gold); }

@media (max-width: 767.98px) {
  .oxy-way { padding: 3rem 0; }
  .oxy-way-grid { grid-template-columns: 1fr; gap: 1rem; }
  .oxy-way-card { padding: 1.5rem 1.25rem 1.25rem; }
}

/* ========== GUEST REVIEWS (about page) ========== */
.oxy-reviews {
  padding: 5rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.oxy-reviews-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.oxy-reviews-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.oxy-reviews-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.oxy-reviews-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.oxy-reviews-sub {
  color: #64748b;
  font-size: 0.9rem;
  max-width: 400px;
  text-align: right;
  margin: 0;
}

/* Card grid */
.oxy-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.oxy-rev-card {
  position: relative;
  background: #fff;
  border: 1px solid #e8ecf2;
  border-radius: 1.25rem;
  padding: 1.75rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.oxy-rev-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
}
.oxy-rev-card-accent {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--oh-forest), var(--oh-forest-2));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
}
.oxy-rev-card:hover .oxy-rev-card-accent {
  transform: scaleX(1);
}

.oxy-rev-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.oxy-rev-quote-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(11,79,156,0.1), rgba(10,99,201,0.05));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--oh-forest);
  font-size: 1.2rem;
}
.oxy-rev-stars {
  color: #f59e0b;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
}
.oxy-rev-text {
  font-size: 0.9rem;
  color: #334155;
  line-height: 1.7;
  flex: 1;
  margin-bottom: 1.25rem;
  font-style: italic;
}
.oxy-rev-author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid #f1f5f9;
}
.oxy-rev-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #e2e8f0;
}
.oxy-rev-name {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e293b;
}
.oxy-rev-loc {
  display: block;
  font-size: 0.72rem;
  color: #94a3b8;
}

/* Trust strip */
.oxy-reviews-trust {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
}
.oxy-reviews-trust-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748b;
}
.oxy-reviews-trust-item i {
  color: var(--oh-forest);
  font-size: 0.95rem;
}

@media (max-width: 991.98px) {
  .oxy-reviews-grid { grid-template-columns: 1fr 1fr; }
  .oxy-reviews-sub { text-align: left; }
}
@media (max-width: 575.98px) {
  .oxy-reviews { padding: 3rem 0; }
  .oxy-reviews-grid { grid-template-columns: 1fr; }
  .oxy-reviews-trust { gap: 1rem; }
  .oxy-rev-card { padding: 1.25rem 1.1rem; }
}

/* ========== FIELD NOTES (about page) ========== */
.oxy-field {
  padding: 5rem 0;
  background: #fff;
}
.oxy-field-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.oxy-field-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.oxy-field-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.oxy-field-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.oxy-field-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
}
.oxy-field-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }

/* Cards */
.oxy-field-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.oxy-field-card {
  text-decoration: none;
  color: inherit;
  border-radius: 1.25rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e8ecf2;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.oxy-field-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}
.oxy-field-card-img-wrap {
  position: relative;
  overflow: hidden;
  height: 220px;
}
.oxy-field-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.oxy-field-card:hover .oxy-field-card-img-wrap img {
  transform: scale(1.06);
}
.oxy-field-card-tag {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: 50px;
}
.oxy-field-card-body {
  padding: 1.25rem 1.25rem 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.oxy-field-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.75rem;
  line-height: 1.4;
  flex: 1;
}
.oxy-field-card-link {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--oh-forest);
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  transition: gap 0.3s;
}
.oxy-field-card:hover .oxy-field-card-link { gap: 0.4rem; }

@media (max-width: 991.98px) {
  .oxy-field-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
  .oxy-field { padding: 3rem 0; }
  .oxy-field-grid { grid-template-columns: 1fr; }
  .oxy-field-card-img-wrap { height: 180px; }
}

.footer-oxygen {
  background: linear-gradient(180deg, #0a2e2c 0%, #061f1e 100%);
}

.footer-logo {
  height: 40px;
  width: auto;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 6px 8px;
}

.footer-col-title {
  font-family: var(--font-serif);
  font-weight: 700;
}

.footer-support-strip {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  padding: 0.9rem 1rem;
  display: flex;
  gap: 1.2rem;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.footer-strip-logo {
  display: flex;
  align-items: center;
}

.footer-strip-item {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.footer-strip-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(200, 230, 193, 0.18);
  color: #e9f7ea;
  display: grid;
  place-items: center;
  font-size: 1.1rem;
}

.footer-bottom {
  padding: 1rem 0 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-socials {
  display: flex;
  gap: 0.55rem;
  justify-content: flex-end;
  align-items: center;
}
.footer-socials a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.75);
  font-size: 1rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
.footer-socials a:hover {
  background: var(--oh-gold);
  border-color: var(--oh-gold);
  color: #1a1510;
  transform: translateY(-3px);
}
.footer-socials a[aria-label="WhatsApp"]:hover {
  background: #25d366;
  border-color: #25d366;
  color: #fff;
}

@media (max-width: 767.98px) {
  .footer-socials {
    justify-content: center;
    margin-top: 0.75rem;
  }
}

.footer-brand {
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: 1.25rem;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
}

.footer-links a:hover {
  color: var(--oh-sage);
}

#faq.home-faq-section {
  background: #e9edf4;
}

#faq .home-faq-panel {
  background: #fff;
  padding: 2rem 1.25rem;
}

@media (min-width: 992px) {
  #faq .home-faq-panel {
    padding: 2.6rem 2.5rem;
  }
}

#faq .home-faq-kicker {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--booking-accent);
}

#faq .home-faq-lead {
  max-width: 28rem;
}

#faq .home-faq-media {
  border-radius: 0.95rem;
  overflow: hidden;
  border: 1px solid #dfe5ee;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.09);
}

#faq .home-faq-media img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
}

@media (max-width: 991.98px) {
  #faq .home-faq-media img {
    height: 210px;
  }
}

#faq .faq-accordion .accordion-item {
  border: 1px solid #dfe5ee !important;
  border-radius: 0.5rem !important;
  background: #fff;
  box-shadow: none !important;
  overflow: hidden;
  margin-bottom: 0.6rem !important;
}

#faq .faq-accordion .accordion-button {
  padding: 0.85rem 1rem;
  font-size: 0.92rem;
  font-weight: 500;
  color: #111827;
  background: #fff;
  box-shadow: none !important;
}

#faq .faq-accordion .accordion-button::after {
  content: "+";
  width: auto;
  height: auto;
  background-image: none !important;
  font-size: 1.1rem;
  font-weight: 400;
  color: #6b7280;
  transform: none !important;
}

#faq .faq-accordion .accordion-button:not(.collapsed) {
  background: #f7f9fc;
  color: #0f172a;
}

#faq .faq-accordion .accordion-button:not(.collapsed)::after {
  content: "−";
  color: #374151;
}

#faq .faq-accordion .accordion-button:focus {
  box-shadow: 0 0 0 2px rgba(242, 101, 34, 0.16) !important;
}

#faq .faq-accordion .accordion-body {
  padding: 0 1rem 0.95rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #4b5563 !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--oh-forest-2);
  box-shadow: 0 0 0 0.2rem rgba(26, 92, 86, 0.15);
}

.page-hero {
  padding: 3rem 0;
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 100%);
  color: #fff;
}

.page-hero h1 {
  color: #fff;
}

/* Policy pages */
.policy-hero {
  min-height: 34vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.policy-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.7) 100%),
    url("https://images.unsplash.com/photo-1450101499163-c8848c66ca85?w=1800&q=80")
      center/cover no-repeat;
}

.policy-hero .container {
  z-index: 1;
  padding-top: 5rem;
  padding-bottom: 2rem;
}

.policy-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

/* Nav cards */
.policy-nav-strip {
  margin-top: -1.5rem;
  position: relative;
  z-index: 2;
  padding-bottom: 0.5rem;
}

.policy-nav-card {
  display: block;
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 1.15rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 10px 28px rgba(11, 79, 156, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  height: 100%;
}

.policy-nav-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(11, 79, 156, 0.12);
  color: inherit;
}

.policy-nav-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  margin-bottom: 0.65rem;
}

/* Policy article card */
.policy-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 61, 58, 0.05);
}

.policy-card-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #e9edf4;
  background: #f9fafb;
}

.policy-card-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.policy-card-body {
  padding: 1.5rem;
}

.policy-content {
  font-size: 0.92rem;
  line-height: 1.75;
  color: #4b5563;
}

.policy-content h1,
.policy-content h2,
.policy-content h3,
.policy-content h4 {
  font-family: var(--font-serif);
  color: var(--oh-slate);
  margin-top: 1.5rem;
  margin-bottom: 0.6rem;
}

.policy-content h2 { font-size: 1.15rem; }
.policy-content h3 { font-size: 1.05rem; }
.policy-content h4 { font-size: 0.95rem; }

.policy-content ul,
.policy-content ol {
  padding-left: 1.25rem;
  margin-bottom: 1rem;
}

.policy-content li {
  margin-bottom: 0.35rem;
}

.policy-content p {
  margin-bottom: 0.85rem;
}

.policy-content a {
  color: var(--oh-forest-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.policy-content strong {
  color: var(--oh-slate);
}

/* Help strip */
.policy-help-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 1.15rem 1.5rem;
  box-shadow: 0 6px 18px rgba(15, 61, 58, 0.04);
}

.policy-help-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(11, 79, 156, 0.1);
  color: var(--oh-forest);
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  .policy-hero {
    min-height: 28vh;
  }

  .policy-card-header {
    padding: 1rem 1.15rem;
  }

  .policy-card-body {
    padding: 1.15rem;
  }

  .policy-help-strip {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
    padding: 1rem;
  }
}

.hotel-page-hero {
  padding: 4.5rem 0 3rem;
}

.hotel-page-hero .container {
  max-width: 1280px;
}

/* Hotel detail — booking-style layout (light shell + main card) */
body.hotel-detail-booking {
  background: #fff !important;
}

body.hotel-detail-booking .hotel-booking-wrap {
  background: #fff;
}

/* ================================================================
   HOTEL DETAIL — LUXURY CARD REDESIGN
   ================================================================ */

/* ---------- FULL-WIDTH HERO GALLERY ---------- */
.hbc-hero-wrap {
  position: relative;
}

.hbc-hero-gallery {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 5px;
  height: min(520px, 58vh);
  overflow: hidden;
}

.hbc-hero-main {
  position: relative;
  overflow: hidden;
  display: block;
}

.hbc-hero-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
}

.hbc-hero-main:hover img {
  transform: scale(1.04);
}

.hbc-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 5px;
}

.hbc-hero-cell {
  overflow: hidden;
  position: relative;
  display: block;
}

.hbc-hero-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}

.hbc-hero-cell:hover img {
  transform: scale(1.07);
}

.hbc-hero-cell--more .hbc-hero-more-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: rgba(15,23,42,0.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  color: #fff;
  font-weight: 600;
  font-size: 0.82rem;
  z-index: 1;
  pointer-events: none;
  transition: background 0.3s;
}

.hbc-hero-cell--more .hbc-hero-more-overlay i {
  font-size: 1.6rem;
  opacity: 0.9;
}

.hbc-hero-cell--more:hover .hbc-hero-more-overlay {
  background: rgba(15,23,42,0.7);
}

/* Floating breadcrumb / action bar over gallery */
.hbc-hero-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 5;
  padding: 1rem 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, transparent 100%);
}

.hbc-hero-bar .breadcrumb {
  --bs-breadcrumb-divider: "›";
  font-size: 0.78rem;
  margin: 0;
}

.hbc-hero-bar .breadcrumb-item a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.hbc-hero-bar .breadcrumb-item a:hover {
  color: #fff;
}

.hbc-hero-bar .breadcrumb-item.active {
  color: rgba(255,255,255,0.6);
}

.hbc-hero-bar .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255,255,255,0.4) !important;
}

.hbc-hero-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.hbc-hero-action-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  transition: all 0.25s;
}

.hbc-hero-action-btn:hover {
  background: #fff;
  color: var(--booking-accent);
  border-color: #fff;
  transform: scale(1.08);
}

.hbc-hero-photos-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.25);
  transition: all 0.25s;
}

.hbc-hero-photos-btn:hover {
  background: #fff;
  color: #0f172a;
  border-color: #fff;
}

/* ---------- CONTENT CARD BELOW GALLERY ---------- */
.hbc-content-wrap {
  margin-top: -3rem;
  position: relative;
  z-index: 6;
  padding-bottom: 0.5rem;
}

.hbc-card {
  background: #fff;
  border-radius: 1.5rem 1.5rem 1.25rem 1.25rem;
  box-shadow: 0 -8px 40px rgba(0,0,0,0.08), 0 4px 20px rgba(0,0,0,0.04);
  overflow: hidden;
  border: none;
}

/* ---------- LEFT INFO PANEL ---------- */
.hbc-info-panel {
  padding: 2rem 2.5rem 2.5rem;
  border-right: 1px solid #f1f5f9;
}

/* Identity */
.hbc-identity {
  margin-bottom: 1.5rem;
}

.hbc-badge-row {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}

.hbc-type-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  color: var(--oh-forest);
  border: 1px solid rgba(11,79,156,0.12);
}

.hbc-type-badge--hot {
  background: linear-gradient(135deg, #fef2f2, #fee2e2);
  color: #dc2626;
  border-color: rgba(220,38,38,0.12);
}

.hbc-hotel-name {
  font-size: clamp(1.6rem, 3.5vw, 2.25rem);
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.6rem;
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.hbc-location-line {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: #64748b;
}

.hbc-location-line i {
  color: var(--booking-accent);
  font-size: 0.9rem;
}

.hbc-map-link {
  margin-left: 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--oh-forest);
  text-decoration: none;
  border-bottom: 1px dashed var(--oh-forest);
  transition: color 0.2s;
}

.hbc-map-link:hover {
  color: var(--booking-accent);
  border-color: var(--booking-accent);
}

/* Stats banner */
.hbc-stats-banner {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: linear-gradient(135deg, #fafbff 0%, #f8f9fc 100%);
  border: 1px solid #e8ecf4;
  border-radius: 1rem;
  padding: 1rem 0;
  margin-bottom: 1.25rem;
  overflow: hidden;
}

.hbc-stat-block {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.25rem 1.25rem;
  flex: 1;
  min-width: 0;
}

.hbc-stat-block--rating {
  flex: 0 0 auto;
}

.hbc-stat-block--price {
  flex: 0 0 auto;
}

.hbc-score-box {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 800;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(11,79,156,0.25);
}

.hbc-stat-icon {
  font-size: 1.4rem;
  color: var(--booking-accent);
  flex-shrink: 0;
  opacity: 0.8;
}

.hbc-stat-primary {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.2;
  white-space: nowrap;
}

.hbc-stat-secondary {
  display: block;
  font-size: 0.72rem;
  color: #94a3b8;
  white-space: nowrap;
}

.hbc-stat-divider {
  width: 1px;
  background: #e2e8f0;
  align-self: stretch;
  margin: 0.25rem 0;
  flex-shrink: 0;
}

.hbc-price-main {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--booking-accent);
  line-height: 1.1;
}

.hbc-price-main small {
  font-size: 0.6em;
  font-weight: 500;
  color: #94a3b8;
}

/* USP strip */
.hbc-usp-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #f1f5f9;
}

.hbc-usp {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 600;
  color: #16a34a;
  background: linear-gradient(135deg, #f0fdf4, #dcfce7);
  border: 1px solid rgba(22,163,74,0.12);
  letter-spacing: 0.01em;
}

.hbc-usp i {
  font-size: 0.78rem;
}

/* Offers section */
.hbc-offers {
  margin-bottom: 0;
}

.hbc-offers-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.hbc-offers-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.15rem;
  font-family: var(--font-serif);
}

.hbc-offers-subtitle {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: 0;
}

.hbc-offers-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--booking-accent);
  text-decoration: none;
  transition: gap 0.25s, color 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 0.15rem;
}

.hbc-offers-viewall:hover {
  color: var(--booking-accent);
  gap: 0.35rem;
}

.hbc-offers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 0.75rem;
}

.hbc-offer-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.85rem;
  background: #fff;
  border: 1px solid #eef1f6;
  transition: all 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
  cursor: default;
}

.hbc-offer-item:hover {
  border-color: var(--booking-accent);
  box-shadow: 0 4px 16px rgba(242,101,34,0.1);
  transform: translateY(-3px);
}

.hbc-offer-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(11,79,156,0.06), rgba(11,79,156,0.12));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.3s;
}

.hbc-offer-item:hover .hbc-offer-icon {
  background: linear-gradient(135deg, var(--booking-accent), #ff7a3d);
}

.hbc-offer-icon i {
  font-size: 1rem;
  color: var(--oh-forest);
  transition: color 0.3s;
}

.hbc-offer-item:hover .hbc-offer-icon i {
  color: #fff;
}

.hbc-offer-text {
  min-width: 0;
}

.hbc-offer-name {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.2;
}

.hbc-offer-desc {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  line-height: 1.3;
}

/* ---------- INLINE TABS (inside card) ---------- */
.hbc-tabs-inline {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid #f1f5f9;
  position: sticky;
  top: 74px;
  z-index: 20;
  background: #fff;
  margin-left: -2.5rem;
  margin-right: -2.5rem;
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.hbc-tabs-nav {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0;
}

.hbc-tabs-nav::-webkit-scrollbar {
  display: none;
}

.hbc-tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 0.9rem;
  border-radius: 0.6rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
  transition: all 0.25s;
  white-space: nowrap;
}

.hbc-tab:hover {
  color: #1e293b;
  background: #f8fafc;
}

.hbc-tab.is-active {
  color: #fff;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(11,79,156,0.2);
}

@media (max-width: 1199.98px) {
  .hbc-tabs-inline {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (max-width: 767.98px) {
  .hbc-tabs-inline {
    margin-left: -1.25rem;
    margin-right: -1.25rem;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .hbc-tab {
    padding: 0.5rem 0.7rem;
    font-size: 0.72rem;
  }
}

/* ---------- TAB CONTENT (inside card) ---------- */
.hbc-tab-content-inner {
  padding: 1rem 2rem 1rem;
  border-top: 1px solid #f1f5f9;
}
@media (max-width: 767.98px) {
  .hbc-tab-content-inner {
    padding: 1rem 0.75rem 0.5rem;
  }
}

/* ---------- ABOUT THIS PROPERTY (inside card) ---------- */
.hbc-about-property {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #f1f5f9;
}

.hbc-about-label {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.85rem;
}

.hbc-about-label-line {
  display: inline-block;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--booking-accent), #ff8a50);
}

.hbc-about-heading {
  font-size: clamp(1.3rem, 2.8vw, 1.75rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.2;
  margin-bottom: 0.5rem;
  letter-spacing: -0.02em;
}

.hbc-about-tagline {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.5;
  margin-bottom: 1.75rem;
  max-width: 540px;
}

/* Content grid: text + visual */
.hbc-about-content-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}

.hbc-about-prose {
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.55;
  margin-bottom: 1.5rem;
}

.hbc-about-prose p {
  margin-bottom: 0.6rem;
}

.hbc-about-prose p:last-child {
  margin-bottom: 0;
}

/* Quick facts grid */
.hbc-about-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.hbc-about-fact {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, #f8faff, #f1f5fb);
  border-radius: 0.85rem;
  border: 1px solid #e8ecf4;
  transition: all 0.3s;
}

.hbc-about-fact:hover {
  border-color: rgba(11,79,156,0.2);
  box-shadow: 0 3px 12px rgba(11,79,156,0.06);
  transform: translateY(-2px);
}

.hbc-about-fact-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.hbc-about-fact-icon i {
  font-size: 0.95rem;
  color: #fff;
}

.hbc-about-fact-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #94a3b8;
  line-height: 1.2;
  margin-bottom: 0.15rem;
}

.hbc-about-fact-value {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.3;
}

/* Visual side — image + badge */
.hbc-about-visual {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.hbc-about-img-wrap {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(0,0,0,0.1);
}

.hbc-about-img-wrap img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}

.hbc-about-img-wrap:hover img {
  transform: scale(1.04);
}

.hbc-about-img-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--booking-accent), #e55a1b);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 6px 20px rgba(242,101,34,0.35);
  border: 3px solid rgba(255,255,255,0.6);
  animation: hbc-badge-float 3s ease-in-out infinite;
}

@keyframes hbc-badge-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.hbc-about-badge-score {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}

.hbc-about-badge-text {
  font-size: 0.52rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-align: center;
  opacity: 0.9;
}

/* Mini trust card */
.hbc-about-mini-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, #f0fdf4, #dcfce7);
  border-radius: 0.85rem;
  border: 1px solid rgba(22,163,74,0.15);
}

.hbc-about-mini-card > i {
  font-size: 1.5rem;
  color: #16a34a;
  flex-shrink: 0;
}

.hbc-about-mini-card strong {
  display: block;
  font-size: 0.82rem;
  color: #15803d;
  line-height: 1.2;
  margin-bottom: 0.1rem;
}

.hbc-about-mini-card span {
  display: block;
  font-size: 0.72rem;
  color: #4ade80;
  font-weight: 500;
}

/* House rules */
.hbc-about-rules {
  padding-top: 1.75rem;
  border-top: 1px solid #f1f5f9;
}

.hbc-about-rules-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 1rem;
  font-family: var(--font-sans);
}

.hbc-about-rules-title i {
  color: var(--oh-forest);
}

.hbc-about-rules-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}

.hbc-about-rule {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  background: #fafbfc;
  border: 1px solid #eef1f6;
  transition: all 0.25s;
}

.hbc-about-rule:hover {
  border-color: var(--booking-accent);
  background: #fff;
  box-shadow: 0 2px 10px rgba(242,101,34,0.06);
  transform: translateX(3px);
}

.hbc-about-rule > i {
  font-size: 0.95rem;
  color: var(--booking-accent);
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.hbc-about-rule > span {
  font-size: 0.82rem;
  color: #475569;
  line-height: 1.45;
}

/* Responsive */
@media (max-width: 991.98px) {
  .hbc-about-content-grid {
    grid-template-columns: 1fr;
  }
  .hbc-about-img-wrap img {
    height: 220px;
  }
}

@media (max-width: 767.98px) {
  .hbc-about-property {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
  }
  .hbc-about-facts {
    grid-template-columns: 1fr;
  }
  .hbc-about-rules-list {
    grid-template-columns: 1fr;
  }
  .hbc-about-heading {
    font-size: 1.2rem;
  }
}

/* ---------- RIGHT ENQUIRY PANEL ---------- */
.hbc-enquiry-panel {
  padding: 2rem 2rem 2rem 1.5rem;
  position: sticky;
  top: 120px;
}

.hbc-enquiry-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1.25rem;
  box-shadow: 0 16px 48px rgba(15,23,42,0.08), 0 4px 12px rgba(15,23,42,0.04);
  padding: 0;
  overflow: hidden;
  position: relative;
}

.hbc-enquiry-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--oh-forest), var(--booking-accent), var(--oh-gold));
}

/* Price teaser at top */
.hbc-enquiry-price-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem 1rem;
  background: linear-gradient(135deg, #fffbf5, #fff7ed);
  border-bottom: 1px solid #fed7aa;
}

.hbc-enquiry-price-was {
  font-size: 0.82rem;
  color: #94a3b8;
  text-decoration: line-through;
  margin-right: 0.4rem;
}

.hbc-enquiry-price-now {
  font-family: var(--font-serif);
  font-size: 1.65rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
}

.hbc-enquiry-price-unit {
  font-size: 0.78rem;
  color: #64748b;
  font-weight: 400;
}

.hbc-enquiry-discount-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #16a34a, #22c55e);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  box-shadow: 0 2px 8px rgba(22,163,74,0.3);
}

.hbc-enquiry-header {
  padding: 1.25rem 1.5rem 0;
  margin-bottom: 0.85rem;
}

.hbc-enquiry-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.2rem;
}

.hbc-enquiry-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0;
}

.hbc-enquiry-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  padding: 0 1.5rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
}

.hbc-enquiry-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: #16a34a;
}

.hbc-enquiry-trust i {
  font-size: 0.72rem;
}

/* Form within enquiry card */
.hbc-enquiry-card .enquiry-compact-form {
  padding: 0 1.5rem;
}

.hbc-enquiry-card .enquiry-compact-form .form-label {
  font-weight: 600;
  color: #475569;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.3rem;
}

.hbc-enquiry-card .enquiry-compact-form .form-control,
.hbc-enquiry-card .enquiry-compact-form .form-select {
  border-radius: 0.65rem;
  border: 1.5px solid #e2e8f0;
  padding: 0.6rem 0.9rem;
  font-size: 0.85rem;
  background: #fafbfc;
  transition: all 0.25s;
}

.hbc-enquiry-card .enquiry-compact-form .form-control:focus,
.hbc-enquiry-card .enquiry-compact-form .form-select:focus {
  border-color: var(--oh-forest);
  box-shadow: 0 0 0 4px rgba(11,79,156,0.08);
  background: #fff;
}

.hbc-enquiry-card .enquiry-compact-form textarea.form-control {
  resize: none;
  min-height: 72px;
}

.hbc-enquiry-card .enquiry-compact-form .btn.btn-accent {
  background: linear-gradient(135deg, var(--booking-accent), #e55a1b);
  border: none;
  border-radius: 0.75rem !important;
  font-weight: 700;
  padding: 0.7rem;
  font-size: 0.92rem;
  letter-spacing: 0.03em;
  box-shadow: 0 6px 20px rgba(242,101,34,0.3);
  transition: all 0.3s;
  text-transform: uppercase;
}

.hbc-enquiry-card .enquiry-compact-form .btn.btn-accent:hover {
  box-shadow: 0 8px 28px rgba(242,101,34,0.4);
  transform: translateY(-2px);
}

/* OR divider */
.hbc-enquiry-or-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.5rem;
}

.hbc-enquiry-or-divider::before,
.hbc-enquiry-or-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e2e8f0;
}

.hbc-enquiry-or-divider span {
  font-size: 0.7rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* Direct contact buttons */
.hbc-enquiry-direct {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  padding: 0 1.5rem 1.5rem;
}

.hbc-direct-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.25s;
}

.hbc-direct-btn--call {
  background: #f1f5f9;
  color: var(--oh-forest);
  border: 1px solid #e2e8f0;
}

.hbc-direct-btn--call:hover {
  background: var(--oh-forest);
  color: #fff;
  border-color: var(--oh-forest);
}

.hbc-direct-btn--wa {
  background: #f0fdf4;
  color: #16a34a;
  border: 1px solid #bbf7d0;
}

.hbc-direct-btn--wa:hover {
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
}

/* Why book with us card */
.hbc-why-card {
  margin-top: 1rem;
  background: linear-gradient(135deg, #f8faff, #f1f5ff);
  border: 1px solid #e0e7ff;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
}

.hbc-why-card h4 {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--oh-forest);
  margin-bottom: 0.75rem;
  font-family: var(--font-sans);
}

.hbc-why-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.hbc-why-card li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  color: #475569;
  padding: 0.35rem 0;
}

.hbc-why-card li i {
  color: var(--oh-forest);
  font-size: 0.82rem;
  flex-shrink: 0;
}

/* Follow us mini card */
.hbc-follow-card {
  margin-top: 1rem;
  background: linear-gradient(135deg, #fff5ee, #ffe8d9);
  border: 1px solid #fed7aa;
  border-radius: 0.85rem;
  padding: 1.25rem 1.5rem;
  position: relative;
  overflow: hidden;
}
.hbc-follow-card::before {
  content: '';
  position: absolute;
  top: -30px;
  right: -30px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(242,101,34,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.hbc-follow-head {
  position: relative;
  margin-bottom: 0.9rem;
}
.hbc-follow-head h4 {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--booking-accent);
  margin: 0 0 0.2rem;
  font-family: var(--font-sans);
  display: flex;
  align-items: center;
}
.hbc-follow-head p {
  font-size: 0.72rem;
  color: #94a3b8;
  margin: 0;
}
.hbc-follow-socials {
  display: flex;
  gap: 0.5rem;
  position: relative;
}
.hbc-follow-social {
  flex: 1;
  aspect-ratio: 1 / 1;
  max-width: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.95rem;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(15,23,42,0.08);
}
.hbc-follow-social:hover {
  color: #fff;
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 8px 18px rgba(15,23,42,0.16);
}
.hbc-follow-social--fb { background: linear-gradient(135deg, #1877f2, #0d65d9); }
.hbc-follow-social--ig { background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%); }
.hbc-follow-social--tw { background: linear-gradient(135deg, #0f0f0f, #333); }
.hbc-follow-social--yt { background: linear-gradient(135deg, #ff0000, #cc0000); }
.hbc-follow-social--wa { background: linear-gradient(135deg, #25d366, #1ea956); }
}

/* ---------- LEGACY BUTTONS ---------- */
.btn-booking-outline {
  border: 2px solid var(--booking-accent);
  color: var(--booking-accent);
  background: #fff;
  font-weight: 600;
  padding: 0.45rem 1.25rem;
  border-radius: 0.5rem;
  transition: background 0.2s ease, color 0.2s ease;
}

.btn-booking-outline:hover {
  background: var(--booking-accent);
  color: #fff;
  border-color: var(--booking-accent);
}

.btn-booking-solid {
  background: var(--booking-accent);
  border: none;
  color: #fff;
  font-weight: 600;
  transition: filter 0.2s ease, transform 0.15s ease;
}

.btn-booking-solid:hover {
  background: var(--booking-accent);
  color: #fff;
  filter: brightness(0.92);
}

.hotel-booking-card {
  background: #fff;
}

.hotel-enquiry-side-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.95rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  padding: 1rem;
  position: sticky;
  top: 132px;
}

.hotel-enquiry-side-card .btn.btn-accent {
  border-radius: 0.65rem !important;
  font-weight: 600;
}

@media (max-width: 1199.98px) {
  .hotel-enquiry-side-card { position: static; top: auto; }
  .hbc-enquiry-panel { position: static; }
}

@media (max-width: 767.98px) {
  body.hotel-detail-booking .hotel-enquiry-side-card { display: none; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1199.98px) {
  .hbc-info-panel { border-right: none; border-bottom: 1px solid #f1f5f9; }
  .hbc-enquiry-panel { padding: 1.5rem; }
  .hbc-stats-banner { flex-wrap: wrap; }
  .hbc-stat-block { flex: 0 0 auto; }
  .hbc-stat-divider { display: none; }
  .hbc-stats-banner { gap: 0.5rem; padding: 0.75rem 1rem; }
}

@media (max-width: 991.98px) {
  .hbc-hero-gallery { height: min(380px, 48vh); }
  .hbc-info-panel { padding: 1.5rem; }
  .hbc-offers-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}

@media (max-width: 767.98px) {
  .hbc-hero-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: 260px auto;
    height: auto;
  }
  .hbc-hero-grid { height: 130px; }
  .hbc-hero-bar { padding: 0.65rem 0; }
  .hbc-hero-bar .breadcrumb { font-size: 0.7rem; }
  .hbc-content-wrap { margin-top: -1.5rem; }
  .hbc-card { border-radius: 1rem 1rem 0.75rem 0.75rem; }
  .hbc-info-panel { padding: 1.25rem; }
  .hbc-hotel-name { font-size: 1.35rem; }
  .hbc-stats-banner {
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
  }
  .hbc-stat-block { padding: 0; }
  .hbc-offers-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
  .hbc-offer-desc { display: none; }
  .hbc-usp-strip { gap: 0.4rem; }
  .hbc-usp { font-size: 0.7rem; padding: 0.3rem 0.65rem; }
  .hbc-enquiry-panel { padding: 1.25rem; }
  .hbc-enquiry-direct { grid-template-columns: 1fr 1fr; }
}

/* Legacy compact offers — kept */
.hotel-place-offers-compact {
  border-top: 1px solid #edf1f6;
  padding-top: 0.7rem;
}

.hotel-place-offers-compact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem 1rem;
}

.hotel-place-offers-compact-grid div {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  font-size: 0.82rem;
  color: #374151;
  line-height: 1.25;
}

.hotel-place-offers-compact-grid i {
  color: var(--booking-accent);
  font-size: 0.9rem;
}

@media (max-width: 991.98px) {
  .hotel-place-offers-compact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.hotel-booking-badge {
  background: rgba(242, 101, 34, 0.12);
  color: var(--booking-accent);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
}

.hotel-booking-stars {
  font-size: 1rem;
  letter-spacing: 0.05em;
}

.hotel-booking-stars .bi-star-fill:not(.text-muted) {
  color: var(--booking-star);
}

.text-booking-accent {
  color: var(--booking-accent) !important;
}

/** Section labels on hotel detail (matches --booking-accent) */
.hotel-detail-kicker {
  color: var(--booking-accent) !important;
}

.bg-booking {
  background-color: var(--booking-accent) !important;
  color: #fff !important;
}

.border-booking {
  border-color: var(--booking-accent) !important;
}

.hotel-booking-mosaic {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: minmax(118px, 1fr) minmax(118px, 1fr);
  gap: 0.65rem;
  max-height: min(440px, 52vh);
}

.hotel-booking-mosaic-main {
  grid-column: 1;
  grid-row: 1 / span 2;
  min-height: 240px;
  display: block;
}

.hotel-booking-mosaic-main img,
.hotel-booking-mosaic-cell img {
  display: block;
}

.hotel-booking-mosaic-cell:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}

.hotel-booking-mosaic-cell:nth-child(3) {
  grid-column: 3;
  grid-row: 1;
}

.hotel-booking-mosaic-cell:nth-child(4) {
  grid-column: 2;
  grid-row: 2;
}

.hotel-booking-mosaic-cell:nth-child(5) {
  grid-column: 3;
  grid-row: 2;
}

.hotel-booking-mosaic-main:hover img,
.hotel-booking-mosaic-cell:not(.hotel-booking-mosaic-more):hover img {
  transform: scale(1.03);
}

.hotel-booking-mosaic-main img,
.hotel-booking-mosaic-cell img {
  transition: transform 0.35s ease;
}

.hotel-booking-mosaic-more .hotel-booking-mosaic-more-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.55);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  z-index: 1;
  pointer-events: none;
}

.hotel-booking-amenity-icon {
  color: var(--booking-accent);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.hotel-booking-map iframe {
  width: 100%;
  height: 220px;
  border: 0;
  display: block;
  filter: saturate(0.95);
}

.hotel-booking-map-cta {
  z-index: 2;
  border-radius: 999px !important;
  font-weight: 600;
  padding-inline: 1.1rem !important;
}

.hotel-booking-overview {
  scroll-margin-top: 88px;
}

#popular-amenities,
#accommodation,
#about-property,
#policies,
#facilities,
#location,
#gallery,
#reviews,
#dining,
#how-to-reach,
#contact-us {
  scroll-margin-top: 120px;
}

/* Hotel detail — room picker (OTA-style) */
.hotel-rooms-picker {
  background: #fff;
}

.letter-spacing-sm {
  letter-spacing: 0.12em;
}

/* ===== ABOUT PROPERTY — PREMIUM HERO ===== */
.hotel-about-hero {
  /* scroll handled by #about-property rule */
}

.about-hero-banner {
  position: relative;
  overflow: hidden;
}

.about-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.about-hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.35) saturate(1.2);
  transform: scale(1.03);
  transition: transform 8s ease-out;
}

.about-hero-banner:hover .about-hero-bg-img {
  transform: scale(1.08);
}

.about-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(11,79,156,0.7) 0%, rgba(15,23,42,0.85) 60%, rgba(242,101,34,0.3) 100%);
  z-index: 1;
}

.about-hero-content {
  position: relative;
  z-index: 2;
  padding: 5rem 0 4rem;
}

.min-vh-50 {
  min-height: 50vh;
}

.about-hero-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 0.5rem 1.2rem;
  border-radius: 999px;
  margin-bottom: 1.5rem;
}

.about-hero-badge i {
  color: var(--booking-accent);
}

.about-hero-title {
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 1rem;
  max-width: 640px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}

.about-hero-tagline {
  color: rgba(255,255,255,0.8);
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 520px;
  margin-bottom: 2.5rem;
}

.about-hero-stats {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.about-hero-stat {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #fff;
}

.about-hero-stat > i {
  font-size: 1.5rem;
  color: var(--booking-accent);
  filter: drop-shadow(0 0 8px rgba(242,101,34,0.4));
}

.about-hero-stat-value {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.1;
}

.about-hero-stat-label {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.7;
}

.about-hero-stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,0.2);
}

/* Highlight cards — floating above sections */
.about-premium-content {
  background: #fff;
  position: relative;
}

.about-highlight-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-top: -3rem;
  position: relative;
  z-index: 3;
  margin-bottom: 4rem;
}

.about-highlight-card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.04);
  border: 1px solid rgba(0,0,0,0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.about-highlight-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06);
}

.about-highlight-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.about-highlight-icon i {
  font-size: 1.25rem;
  color: #fff;
}

.about-highlight-card h4 {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 0.2rem;
  font-family: var(--font-sans);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.about-highlight-card p {
  font-size: 0.88rem;
  color: #64748b;
  margin: 0;
  line-height: 1.4;
}

/* Story section */
.about-story-section {
  padding: 2rem 0 4rem;
}

.about-section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--booking-accent);
  margin-bottom: 1.25rem;
}

.about-label-line {
  display: inline-block;
  width: 32px;
  height: 2px;
  background: var(--booking-accent);
  border-radius: 2px;
}

.about-story-heading {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 700;
  color: #0f172a;
  line-height: 1.2;
  margin-bottom: 1.5rem;
}

.about-story-body {
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.8;
  margin-bottom: 2rem;
}

.about-story-body p {
  margin-bottom: 1rem;
}

.about-story-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  color: #fff;
  padding: 0.85rem 2rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(11,79,156,0.3);
}

.about-story-cta:hover {
  color: #fff;
  transform: translateX(4px);
  box-shadow: 0 6px 24px rgba(11,79,156,0.4);
}

.about-story-cta i {
  transition: transform 0.3s ease;
}

.about-story-cta:hover i {
  transform: translateX(4px);
}

/* Gallery composition */
.about-story-gallery {
  position: relative;
  padding: 1.5rem;
}

.about-story-img-main {
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}

.about-story-img-main img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.about-story-gallery:hover .about-story-img-main img {
  transform: scale(1.03);
}

.about-story-img-accent {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 45%;
  border-radius: 1rem;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}

.about-story-img-accent img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}

.about-story-experience-badge {
  position: absolute;
  top: 0;
  right: 0;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--booking-accent), #ff6b35);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 8px 24px rgba(242,101,34,0.4);
  border: 3px solid #fff;
  animation: badge-float 3s ease-in-out infinite;
}

@keyframes badge-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.about-exp-number {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
}

.about-exp-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
  opacity: 0.9;
}

/* Rules section */
.about-rules-section {
  padding: 3rem 0 4rem;
  border-top: 1px solid #e2e8f0;
}

.about-rules-heading {
  font-size: 1.6rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.75rem;
}

.about-rules-sub {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.5;
}

.about-rules-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.about-rule-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, #f8fafc, #fff);
  border-radius: 1rem;
  border: 1px solid #e2e8f0;
  transition: all 0.3s ease;
}

.about-rule-item:hover {
  border-color: var(--booking-accent);
  box-shadow: 0 4px 16px rgba(242,101,34,0.08);
  transform: translateX(4px);
}

.about-rule-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(242,101,34,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.about-rule-icon i {
  font-size: 1.1rem;
  color: var(--booking-accent);
}

.about-rule-item p {
  margin: 0;
  font-size: 0.9rem;
  color: #475569;
  line-height: 1.5;
  padding-top: 0.4rem;
}

/* Responsive */
@media (max-width: 991.98px) {
  .about-hero-content {
    padding: 3.5rem 0 3rem;
  }
  .about-highlight-cards {
    grid-template-columns: repeat(2, 1fr);
    margin-top: -2rem;
    margin-bottom: 3rem;
  }
  .about-story-img-main img {
    height: 300px;
  }
  .about-story-img-accent {
    width: 40%;
  }
}

@media (max-width: 767.98px) {
  .about-hero-content {
    padding: 3rem 0 2.5rem;
  }
  .min-vh-50 {
    min-height: auto;
  }
  .about-highlight-cards {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-top: -1.5rem;
    margin-bottom: 2.5rem;
  }
  .about-highlight-card {
    padding: 1rem;
    flex-direction: column;
    gap: 0.75rem;
  }
  .about-hero-stats {
    gap: 1rem;
  }
  .about-hero-stat-divider {
    display: none;
  }
  .about-story-gallery {
    padding: 1rem 0;
    margin-top: 1rem;
  }
  .about-story-img-main img {
    height: 240px;
  }
  .about-story-img-accent {
    position: relative;
    width: 60%;
    margin-top: -2rem;
    margin-left: auto;
  }
  .about-story-experience-badge {
    width: 72px;
    height: 72px;
    top: auto;
    bottom: 60px;
    right: -8px;
  }
  .about-exp-number {
    font-size: 1.3rem;
  }
}
/* ===== END ABOUT PROPERTY HERO ===== */

/* ================================================================
   POLICIES — PREMIUM REDESIGN
   ================================================================ */

/* Hero banner */
.pol-hero {
  position: relative;
  overflow: hidden;
}

.pol-hero-bg {
  position: absolute;
  inset: 0;
}

.pol-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.25) saturate(1.3);
}

.pol-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(11,79,156,0.65) 0%, rgba(15,23,42,0.8) 50%, rgba(242,101,34,0.25) 100%);
}

.pol-hero-inner {
  position: relative;
  z-index: 2;
  padding: 3.5rem 0 3rem;
  text-align: center;
}

.pol-hero-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 0.45rem 1.15rem;
  border-radius: 999px;
  margin-bottom: 1.25rem;
}

.pol-hero-badge i {
  color: var(--booking-accent);
}

.pol-hero-title {
  color: #fff;
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  font-weight: 800;
  margin-bottom: 0.5rem;
  text-shadow: 0 2px 12px rgba(0,0,0,0.2);
}

.pol-hero-sub {
  color: rgba(255,255,255,0.7);
  font-size: 0.95rem;
  margin-bottom: 2rem;
  max-width: 440px;
  margin-inline: auto;
}

/* Check-in/out floating pills */
.pol-time-pills {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 1rem;
  padding: 1rem 2rem;
}

.pol-time-pill {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #fff;
}

.pol-time-pill-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255,255,255,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
}

.pol-time-pill-icon--out {
  background: rgba(242,101,34,0.25);
}

.pol-time-pill-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.6;
}

.pol-time-pill-value {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.1;
}

.pol-time-pill-arrow {
  color: rgba(255,255,255,0.3);
  font-size: 1.2rem;
}

/* Body / cards area */
.pol-body {
  padding: 3rem 0 3.5rem;
  background: #fff;
}

/* Section header */
.pol-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 2.25rem;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.pol-section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.6rem;
}

.pol-section-label-line {
  display: inline-block;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--booking-accent), #ff8a50);
}

.pol-section-title {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.35rem;
  letter-spacing: -0.02em;
}

.pol-section-sub {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
  max-width: 480px;
}

/* Check-in/out mini block in header */
.pol-checkinout-mini {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  background: linear-gradient(135deg, #f8faff, #f0f4ff);
  border: 1px solid #e0e7f5;
  border-radius: 1rem;
  padding: 0.85rem 1.5rem;
  flex-shrink: 0;
}

.pol-checkinout-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.pol-checkinout-item > i {
  font-size: 1.15rem;
  color: var(--oh-forest);
}

.pol-checkinout-label {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #94a3b8;
}

.pol-checkinout-value {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--oh-forest);
  line-height: 1.1;
}

.pol-checkinout-arrow {
  color: #cbd5e1;
  font-size: 0.85rem;
}

@media (max-width: 767.98px) {
  .pol-checkinout-mini {
    padding: 0.7rem 1rem;
    gap: 0.6rem;
  }
  .pol-checkinout-value {
    font-size: 0.9rem;
  }
}

.pol-cards-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

.pol-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.15rem;
  padding: 1.75rem;
  transition: box-shadow 0.35s, transform 0.35s;
}

.pol-card:hover {
  box-shadow: 0 12px 36px rgba(15,23,42,0.07);
  transform: translateY(-3px);
}

.pol-card--wide {
  grid-column: 1 / -1;
}

/* Card heads */
.pol-card-head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.5rem;
}

.pol-card-head h3 {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
  font-family: var(--font-sans);
  line-height: 1.2;
}

.pol-card-head p {
  font-size: 0.75rem;
  color: #94a3b8;
  margin: 0.1rem 0 0;
}

.pol-card-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pol-card-icon i {
  font-size: 1.2rem;
  color: #fff;
}

.pol-card-icon--accent {
  background: linear-gradient(135deg, var(--booking-accent), #e55a1b);
  box-shadow: 0 4px 14px rgba(242,101,34,0.25);
}

.pol-card-icon--amber {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  box-shadow: 0 4px 14px rgba(245,158,11,0.25);
}

.pol-card-icon--green {
  background: linear-gradient(135deg, #16a34a, #22c55e);
  box-shadow: 0 4px 14px rgba(22,163,74,0.25);
}

/* House rules numbered grid */
.pol-rules-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0.85rem;
}

.pol-rule {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
  border-radius: 0.85rem;
  background: #fafbfd;
  border: 1px solid #eef1f6;
  transition: all 0.3s;
}

.pol-rule:hover {
  background: #fff;
  border-color: var(--booking-accent);
  box-shadow: 0 4px 16px rgba(242,101,34,0.07);
  transform: translateX(4px);
}

.pol-rule-marker {
  flex-shrink: 0;
}

.pol-rule-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  color: #fff;
  font-family: var(--font-serif);
  font-size: 0.72rem;
  font-weight: 800;
  box-shadow: 0 3px 8px rgba(11,79,156,0.2);
}

.pol-rule-body {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  min-width: 0;
}

.pol-rule-body > i {
  color: var(--booking-accent);
  font-size: 0.92rem;
  flex-shrink: 0;
  margin-top: 0.12rem;
}

.pol-rule-body > span {
  font-size: 0.84rem;
  color: #475569;
  line-height: 1.5;
}

/* Status-colored list items */
.pol-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.pol-list-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: #fafbfd;
  border-left: 3px solid transparent;
  transition: all 0.25s;
}

.pol-list-item:hover {
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

.pol-list-item--green {
  border-left-color: #22c55e;
  background: linear-gradient(90deg, #f0fdf4 0%, #fafbfd 40%);
}

.pol-list-item--amber {
  border-left-color: #f59e0b;
  background: linear-gradient(90deg, #fffbeb 0%, #fafbfd 40%);
}

.pol-list-item--blue {
  border-left-color: var(--oh-forest);
  background: linear-gradient(90deg, #eff6ff 0%, #fafbfd 40%);
}

.pol-list-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.35rem;
}

.pol-list-item--green .pol-list-dot { background: #22c55e; }
.pol-list-item--amber .pol-list-dot { background: #f59e0b; }
.pol-list-item--blue .pol-list-dot { background: var(--oh-forest); }

.pol-list-item > span {
  font-size: 0.84rem;
  color: #475569;
  line-height: 1.5;
}

.pol-card-note {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.6rem;
  background: #f8fafc;
  font-size: 0.76rem;
  color: #94a3b8;
  line-height: 1.4;
}

.pol-card-note > i {
  flex-shrink: 0;
  margin-top: 0.05rem;
  font-size: 0.82rem;
}

/* Bottom essentials strip */
.pol-essentials {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  padding-top: 2.5rem;
  border-top: 1px solid #eef1f6;
}

.pol-essential {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem;
  border-radius: 1.15rem;
  background: linear-gradient(160deg, #fafbff 0%, #f5f7ff 100%);
  border: 1px solid #e8ecf4;
  transition: all 0.35s;
}

.pol-essential:hover {
  border-color: var(--oh-forest);
  box-shadow: 0 8px 28px rgba(11,79,156,0.06);
  transform: translateY(-3px);
}

.pol-essential-icon {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--booking-accent), #e55a1b);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(242,101,34,0.2);
}

.pol-essential-icon i {
  font-size: 1.25rem;
  color: #fff;
}

.pol-essential-icon--blue {
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  box-shadow: 0 4px 14px rgba(11,79,156,0.2);
}

.pol-essential-icon--green {
  background: linear-gradient(135deg, #16a34a, #22c55e);
  box-shadow: 0 4px 14px rgba(22,163,74,0.2);
}

.pol-essential-content h4 {
  font-size: 0.88rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.6rem;
  font-family: var(--font-sans);
}

.pol-essential-content p {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.45;
  margin: 0;
}

/* Payment method tags */
.pol-payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.pol-pay-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  background: #fff;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.pol-pay-tag i {
  font-size: 0.72rem;
  color: var(--booking-accent);
}

/* ID tags */
.pol-id-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.pol-id-tags span {
  display: inline-flex;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  color: var(--oh-forest);
  border: 1px solid rgba(11,79,156,0.1);
}

/* Contact buttons */
.pol-contact-btns {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.pol-contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
  border-radius: 0.6rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  background: #f1f5f9;
  color: var(--oh-forest);
  border: 1px solid #e2e8f0;
  transition: all 0.25s;
}

.pol-contact-btn:hover {
  background: var(--oh-forest);
  color: #fff;
  border-color: var(--oh-forest);
}

.pol-contact-btn--wa {
  background: #f0fdf4;
  color: #16a34a;
  border-color: #bbf7d0;
}

.pol-contact-btn--wa:hover {
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
}

/* Responsive */
@media (max-width: 991.98px) {
  .pol-cards-grid {
    grid-template-columns: 1fr;
  }
  .pol-essentials {
    grid-template-columns: 1fr;
  }
  .pol-time-pills {
    padding: 0.85rem 1.25rem;
    gap: 0.75rem;
  }
}

@media (max-width: 767.98px) {
  .pol-hero-inner {
    padding: 2.5rem 0 2rem;
  }
  .pol-hero-title {
    font-size: 1.5rem;
  }
  .pol-time-pills {
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
  }
  .pol-time-pill-arrow {
    transform: rotate(90deg);
  }
  .pol-body {
    padding: 2rem 0 2.5rem;
  }
  .pol-card {
    padding: 1.25rem;
  }
  .pol-rules-grid {
    grid-template-columns: 1fr;
  }
  .pol-essential {
    padding: 1.15rem;
  }
  .pol-contact-btns {
    flex-direction: column;
  }
}

.hotel-amenity-cat-icon {
  color: var(--booking-accent);
  font-size: 1.1rem;
  margin-top: 0.1rem;
}

/* ================================================================
   AMENITIES — PREMIUM REDESIGN
   ================================================================ */

/* Hero */
.amen-hero {
  position: relative;
  overflow: hidden;
}

.amen-hero-bg {
  position: absolute;
  inset: 0;
}

.amen-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.22) saturate(1.4);
}

.amen-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(15,23,42,0.7) 0%, rgba(11,79,156,0.5) 50%, rgba(242,101,34,0.2) 100%);
}

.amen-hero-inner {
  position: relative;
  z-index: 2;
  padding: 3.5rem 0 3rem;
  text-align: center;
}

.amen-hero-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 0.45rem 1.15rem;
  border-radius: 999px;
  margin-bottom: 1.25rem;
}

.amen-hero-badge i {
  color: var(--oh-gold);
}

.amen-hero-title {
  color: #fff;
  font-size: clamp(1.5rem, 3.8vw, 2.4rem);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 0.65rem;
  text-shadow: 0 2px 16px rgba(0,0,0,0.2);
}

.amen-hero-sub {
  color: rgba(255,255,255,0.65);
  font-size: 0.92rem;
  max-width: 480px;
  margin-inline: auto;
  margin-bottom: 2rem;
  line-height: 1.5;
}

/* Counters row */
.amen-hero-counters {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1rem;
  padding: 1rem 2.25rem;
}

.amen-counter {
  text-align: center;
  color: #fff;
}

.amen-counter-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 0.15rem;
}

.amen-counter-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.55;
}

.amen-counter-divider {
  width: 1px;
  height: 32px;
  background: rgba(255,255,255,0.15);
}

/* Body */
.amen-body {
  padding: 1.5rem 0 3.5rem;
  background: #fff;
}

/* Section header */
.amen-section-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 2.25rem;
  gap: 1rem;
}

.amen-section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.6rem;
}

.amen-section-label-line {
  display: inline-block;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--booking-accent), #ff8a50);
}

.amen-section-title {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.35rem;
  letter-spacing: -0.02em;
}

.amen-section-sub {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
  max-width: 500px;
}

.amen-section-count {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--booking-accent);
  background: rgba(242,101,34,0.06);
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(242,101,34,0.12);
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 0.3rem;
}

/* Category cards grid */
.amen-cats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 3rem;
}

.amen-cat-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  padding: 1.75rem;
  position: relative;
  overflow: hidden;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}

.amen-cat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 1.25rem 1.25rem 0 0;
}

.amen-cat-card--accent::before { background: linear-gradient(90deg, var(--booking-accent), #ff8a50); }
.amen-cat-card--amber::before { background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.amen-cat-card--blue::before { background: linear-gradient(90deg, var(--oh-forest), var(--oh-forest-2)); }

.amen-cat-card:hover {
  box-shadow: 0 16px 48px rgba(15,23,42,0.08);
  transform: translateY(-5px);
}

.amen-cat-header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.5rem;
}

.amen-cat-header h3 {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
  font-family: var(--font-sans);
  line-height: 1.2;
}

.amen-cat-header p {
  font-size: 0.72rem;
  color: #94a3b8;
  margin: 0.1rem 0 0;
}

.amen-cat-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.amen-cat-icon i {
  font-size: 1.25rem;
  color: #fff;
}

.amen-cat-icon--accent {
  background: linear-gradient(135deg, var(--booking-accent), #e55a1b);
  box-shadow: 0 4px 14px rgba(242,101,34,0.25);
}

.amen-cat-icon--amber {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  box-shadow: 0 4px 14px rgba(245,158,11,0.25);
}

.amen-cat-icon--blue {
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  box-shadow: 0 4px 14px rgba(11,79,156,0.25);
}

/* Items inside category */
.amen-cat-items {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.amen-cat-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.75rem;
  background: #fafbfd;
  border: 1px solid #f1f5f9;
  transition: all 0.3s;
}

.amen-cat-item:hover {
  background: #fff;
  border-color: rgba(242,101,34,0.2);
  box-shadow: 0 3px 12px rgba(242,101,34,0.06);
  transform: translateX(4px);
}

.amen-cat-item-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.3s;
}

.amen-cat-card--accent .amen-cat-item-icon {
  background: rgba(242,101,34,0.08);
}
.amen-cat-card--amber .amen-cat-item-icon {
  background: rgba(245,158,11,0.08);
}
.amen-cat-card--blue .amen-cat-item-icon {
  background: rgba(11,79,156,0.08);
}

.amen-cat-item:hover .amen-cat-item-icon {
  background: linear-gradient(135deg, var(--booking-accent), #ff7a3d);
}

.amen-cat-item-icon i {
  font-size: 0.95rem;
  transition: color 0.3s;
}

.amen-cat-card--accent .amen-cat-item-icon i { color: var(--booking-accent); }
.amen-cat-card--amber .amen-cat-item-icon i { color: #d97706; }
.amen-cat-card--blue .amen-cat-item-icon i { color: var(--oh-forest); }

.amen-cat-item:hover .amen-cat-item-icon i {
  color: #fff;
}

.amen-cat-item > span {
  font-size: 0.84rem;
  font-weight: 500;
  color: #334155;
}

/* Full facility list */
.amen-full-section {
  padding-top: 2.5rem;
  border-top: 1px solid #eef1f6;
}

.amen-full-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.amen-full-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.15rem;
  font-family: var(--font-serif);
}

.amen-full-sub {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: 0;
}

.amen-full-count {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--booking-accent);
  background: rgba(242,101,34,0.06);
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(242,101,34,0.12);
  white-space: nowrap;
}

.amen-full-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.7rem;
}

.amen-full-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.75rem;
  background: #fafbfd;
  border: 1px solid #f1f5f9;
  font-size: 0.82rem;
  color: #334155;
  font-weight: 500;
  transition: all 0.3s;
  animation: amen-fade-in 0.4s ease backwards;
}

@keyframes amen-fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.amen-full-item:hover {
  background: #fff;
  border-color: var(--booking-accent);
  box-shadow: 0 4px 14px rgba(242,101,34,0.08);
  transform: translateY(-2px);
}

.amen-full-check {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f0fdf4, #dcfce7);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.3s;
}

.amen-full-check i {
  font-size: 0.75rem;
  color: #16a34a;
  font-weight: 900;
  transition: color 0.3s;
}

.amen-full-item:hover .amen-full-check {
  background: linear-gradient(135deg, var(--booking-accent), #ff7a3d);
}

.amen-full-item:hover .amen-full-check i {
  color: #fff;
}

/* Responsive */
@media (max-width: 991.98px) {
  .amen-cats-grid {
    grid-template-columns: 1fr;
  }
  .amen-full-grid {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }
}

@media (max-width: 767.98px) {
  .amen-hero-inner {
    padding: 2.5rem 0 2rem;
  }
  .amen-hero-title {
    font-size: 1.4rem;
  }
  .amen-hero-title br {
    display: none;
  }
  .amen-hero-counters {
    padding: 0.85rem 1.25rem;
    gap: 1rem;
  }
  .amen-counter-num {
    font-size: 1.2rem;
  }
  .amen-body {
    padding: 2rem 0 2.5rem;
  }
  .amen-cat-card {
    padding: 1.25rem;
  }
  .amen-full-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
}

.hotel-location-detail {
  background: var(--booking-page-bg);
}

.hotel-location-map-frame iframe {
  min-height: 280px;
}

.hotel-review-progress {
  height: 6px;
  border-radius: 999px;
  background: #e8ecf2;
}

.hotel-review-progress-bar {
  background: var(--booking-accent) !important;
  border-radius: 999px;
}

.hotel-detail-amenities-section .hotel-detail-facility-grid {
  margin-top: 0.5rem;
}

.hotel-reviews-block .hotel-review-score-card {
  border-color: #e8ecf2 !important;
  border-top: 3px solid var(--booking-accent);
}

.hotel-reviews-block .hotel-review-score-card .display-4 {
  color: var(--booking-accent);
}

.hotel-review-photos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.hotel-review-photos img {
  width: 100%;
  height: 74px;
  border-radius: 0.55rem;
  object-fit: cover;
  border: 1px solid #e6ebf2;
}

@media (min-width: 992px) {
  .hotel-rooms-section-pad {
    padding-top: 1.5rem;
    padding-bottom: 4rem;
  }
}

.hotel-rooms-picker-inner {
  max-width: 1200px;
}

.hotel-picker-tabs-wrap {
  border: 0;
  padding: 0 !important;
}

.hotel-picker-tabs {
  border-bottom: none;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.hotel-picker-tabs::-webkit-scrollbar {
  display: none;
}

.hotel-picker-tab {
  color: #64748b;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.78rem;
  padding: 0.65rem 0.1rem;
  margin-bottom: 0;
  border-bottom: 2.5px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
  letter-spacing: 0.01em;
}

a.hotel-picker-tab:hover {
  color: var(--oh-forest);
}

.hotel-picker-tab.is-active {
  color: var(--oh-forest);
  border-bottom-color: var(--booking-accent);
  font-weight: 700;
  cursor: default;
}

.hotel-picker-sticky-wrap {
  position: sticky;
  top: 74px;
  z-index: 1020;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
  background: #fff !important;
  border-top: none !important;
  border-bottom: 1px solid #eef1f6 !important;
}

body.admin-bar .hotel-picker-sticky-wrap {
  top: 104px;
}

.hotel-rooms-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--booking-accent);
}

.hotel-rooms-title {
  font-size: clamp(1.5rem, 2.5vw, 1.85rem);
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
}

.hotel-rooms-lead {
  max-width: 36rem;
  line-height: 1.5;
}

.hotel-room-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
}

.hotel-room-glance-card {
  background: #fff;
  border: 1px solid #e8ecf2;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(15, 23, 42, 0.05);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.hotel-room-glance-card.is-active,
.hotel-room-glance-card:hover {
  border-color: rgba(242, 101, 34, 0.34);
  box-shadow: 0 8px 24px rgba(242, 101, 34, 0.12);
}

.hotel-room-glance-image {
  width: 100%;
  height: 170px;
  object-fit: cover;
  background: #f8fafc;
  display: block;
}

.hotel-room-glance-body {
  padding: 0.9rem;
}

.hotel-room-glance-title {
  font-size: 1.05rem;
  font-weight: 700;
}

.hotel-room-glance-pax {
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #374151;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.2rem 0.45rem;
  white-space: nowrap;
}

.hotel-room-glance-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}

@media (max-width: 1199.98px) {
  .hotel-room-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .hotel-room-card-grid {
    grid-template-columns: 1fr;
  }
}

.hotel-room-picker-card {
  background: #fff;
  border: 1px solid #e8ecf2;
  border-radius: 1rem;
  padding: 1.25rem 1.25rem 1.5rem;
  box-shadow: 0 2px 16px rgba(15, 23, 42, 0.05);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

@media (min-width: 768px) {
  .hotel-room-picker-card {
    padding: 1.5rem 1.75rem 1.75rem;
  }
}

.hotel-room-picker-card:hover {
  border-color: rgba(242, 101, 34, 0.18);
  box-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
}

.hotel-room-card-head {
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
}

.hotel-room-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
}

.hotel-room-card-sub {
  line-height: 1.45;
}

.hotel-room-carousel {
  min-height: 160px;
}

.hotel-room-carousel-slides {
  position: relative;
  aspect-ratio: 4/3;
  max-height: 260px;
  background: #e8eaef;
  border-radius: 0.75rem;
}

.hotel-room-carousel-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.hotel-room-carousel-slide.is-active {
  opacity: 1;
  z-index: 1;
}

.hotel-room-carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 2.25rem;
  height: 2.25rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50% !important;
  opacity: 0.95;
  border: 1px solid rgba(15, 23, 42, 0.06) !important;
}

.hotel-room-carousel-nav:focus-visible {
  outline: 2px solid var(--booking-accent);
  outline-offset: 2px;
}

.hotel-room-carousel-prev {
  left: 0.5rem;
}

.hotel-room-carousel-next {
  right: 0.5rem;
}

.hotel-room-spec-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.hotel-spec-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e8ecf2;
  border-radius: 999px;
  padding: 0.35rem 0.65rem;
  line-height: 1.2;
}

.hotel-spec-chip i {
  color: var(--booking-accent);
  font-size: 0.85rem;
}

.hotel-room-extras {
  line-height: 1.5;
}

.hotel-amenities-link {
  text-underline-offset: 3px;
}

.hotel-amenities-link:hover {
  text-decoration: underline !important;
}

.hotel-room-option--tier {
  background: #fafbfc;
  border: 1px solid #e8ecf2 !important;
  border-radius: 0.85rem;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.hotel-room-option--tier:hover {
  border-color: rgba(242, 101, 34, 0.22) !important;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.06);
}

.hotel-room-option-inner {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.1rem 1.15rem 1.25rem;
}

@media (min-width: 576px) {
  .hotel-room-option-inner {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 1.35rem 1.35rem;
  }
}

.hotel-room-option-content {
  flex: 1;
  min-width: 0;
}

.hotel-room-option-aside {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

@media (min-width: 576px) {
  .hotel-room-option-aside {
    width: min(220px, 38%);
    max-width: 240px;
    align-items: stretch;
    text-align: right;
  }

  .hotel-room-option-aside .hotel-add-rooms-btn {
    align-self: stretch;
  }
}

.hotel-room-option-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.65rem;
}

.hotel-room-option-title {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}

.hotel-room-option-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 0.28rem 0.6rem;
}

.hotel-room-option-inc {
  font-size: 0.8125rem;
  color: #475569;
  line-height: 1.45;
}

.hotel-room-option-inc li {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin-bottom: 0.4rem;
}

.hotel-room-option-inc li:last-child {
  margin-bottom: 0;
}

.hotel-room-option-inc .bi-check2 {
  color: var(--booking-accent);
  flex-shrink: 0;
  margin-top: 0.15rem;
  font-size: 0.95rem;
}

.hotel-room-complimentary {
  line-height: 1.45;
}

.hotel-cancel-policy-link {
  color: var(--booking-accent);
  font-weight: 600;
  text-decoration: none;
}

.hotel-cancel-policy-link:hover {
  text-decoration: underline;
}

.hotel-cancel-policy-link:focus-visible {
  outline: 2px solid var(--booking-accent);
  outline-offset: 2px;
  border-radius: 2px;
}

.hotel-room-price-block {
  padding: 0.5rem 0 0;
}

@media (min-width: 576px) {
  .hotel-room-price-block {
    padding: 0;
  }

  .hotel-room-option-aside .hotel-room-price-block {
    text-align: right;
  }
}

.hotel-room-price-was {
  font-size: 0.8125rem;
  color: #94a3b8;
  text-decoration: line-through;
}

.hotel-room-price-now {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--booking-accent);
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.hotel-room-price-note {
  font-size: 0.75rem;
  color: #64748b;
}

.btn-booking-outline.hotel-add-rooms-btn {
  min-height: 46px;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 0.65rem !important;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.btn-booking-outline:focus-visible,
.btn-booking-solid:focus-visible {
  outline: 2px solid var(--booking-accent);
  outline-offset: 3px;
}

.hotel-add-rooms-btn.is-selected {
  border-color: transparent !important;
  color: #fff !important;
}

.hotel-fare-sidebar {
  position: sticky;
  top: 5.5rem;
  align-self: flex-start;
  z-index: 4;
}

@media (max-width: 991.98px) {
  .hotel-fare-sidebar {
    position: static;
    top: auto;
  }
}

.hotel-fare-card {
  border: 1px solid #e8ecf2 !important;
}

.hotel-fare-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.hotel-fare-conv-fee-sub {
  display: block;
  font-size: 0.7rem;
  font-weight: 400;
  color: #94a3b8;
  margin-top: 0.1rem;
}

.btn-fare-proceed {
  min-height: 48px;
  letter-spacing: 0.06em;
  font-size: 0.8125rem !important;
  padding-top: 0.65rem !important;
  padding-bottom: 0.65rem !important;
}

.hotel-important-info-card {
  border-color: #e8ecf2 !important;
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
}

.hotel-room-feature-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin-bottom: 0.35rem;
  color: #475569;
}

.hotel-room-feature-list .bi-check-lg {
  color: var(--booking-accent);
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.hotel-fare-total-amt {
  font-size: 1.45rem;
  letter-spacing: -0.03em;
  color: var(--booking-accent);
}

.hotel-important-list li {
  padding-left: 0.15rem;
}

.hotel-important-list li::marker {
  color: var(--booking-accent);
}

@media (max-width: 575.98px) {
  .hotel-room-option-aside {
    border-top: 1px solid #f1f5f9;
    padding-top: 1rem;
    margin-top: 0.25rem;
  }

  .hotel-room-price-now {
    font-size: 1.35rem;
  }
}

@media (max-width: 767.98px) {
  .hotel-booking-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(200px, 42vw) repeat(2, minmax(88px, 22vw));
    max-height: none;
  }

  .hotel-booking-mosaic-main {
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 200px;
  }

  .hotel-booking-mosaic-cell:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }

  .hotel-booking-mosaic-cell:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
  }

  .hotel-booking-mosaic-cell:nth-child(4) {
    grid-column: 1;
    grid-row: 3;
  }

  .hotel-booking-mosaic-cell:nth-child(5) {
    grid-column: 2;
    grid-row: 3;
  }
}

.min-vh-75 {
  min-height: 75vh;
}

.home-hero-min {
  min-height: 100vh;
}

.home-hero-wrap {
  background: #000;
  min-height: auto;
  position: relative;
}

/* Hero content */
.hero-swiper.d-flex { align-items: center !important; }
.home-hero-content {
  padding-bottom: 2rem;
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}
.home-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
}
.home-hero-badge i { color: var(--oh-gold); }
.home-hero-title {
  color: #fff;
  font-size: clamp(2.8rem, 6vw, 4.2rem);
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 0.5rem;
  letter-spacing: -0.02em;
}
.home-hero-sub {
  color: var(--oh-gold);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 600;
  margin-bottom: 0.75rem;
  letter-spacing: 0.02em;
}
.home-hero-desc {
  color: rgba(255,255,255,0.7);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}
.home-hero-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.home-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--oh-gold);
  color: #1a1510;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.75rem 1.6rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
}
.home-hero-cta:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.home-hero-cta i { transition: transform 0.3s; }
.home-hero-cta:hover i { transform: translateX(4px); }
.home-hero-cta-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #fff;
  font-weight: 600;
  font-size: 0.88rem;
  padding: 0.75rem 1.4rem;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
  backdrop-filter: blur(4px);
}
.home-hero-cta-ghost:hover {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.5);
  color: #fff;
}

/* Hero indicators */
.home-hero-indicators {
  position: absolute;
  bottom: 1.75rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 5;
}
.home-hero-indicators button {
  background: none;
  border: none;
  padding: 0.5rem 0.25rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.home-hero-ind-bar {
  display: block;
  width: 48px;
  height: 3px;
  border-radius: 3px;
  background: rgba(255,255,255,0.25);
  transition: all 0.4s;
  overflow: hidden;
  position: relative;
}
.home-hero-indicators button.active .home-hero-ind-bar {
  background: var(--oh-gold);
  width: 64px;
}
.home-hero-ind-label {
  font-size: 0.65rem;
  font-weight: 600;
  color: rgba(255,255,255,0.35);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 0.3s;
}
.home-hero-indicators button.active .home-hero-ind-label {
  color: #fff;
}

/* Hero arrows */
.home-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(0,0,0,0.25);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
}
.home-hero-arrow:hover {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.4);
}
.home-hero-arrow--prev { left: 1.5rem; }
.home-hero-arrow--next { right: 1.5rem; }

@media (max-width: 767.98px) {
  .home-hero-content { padding-bottom: 5.5rem; }
  .home-hero-arrow { display: none; }
  .home-hero-ind-label { display: none; }
  .home-hero-ind-bar { width: 32px; }
  .home-hero-indicators button.active .home-hero-ind-bar { width: 44px; }
}

/* ========== HOME ABOUT ========== */
.home-about {
  padding: 5rem 0;
  background: #fff;
}
.home-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

/* Visual / image side */
.home-about-visual {
  position: relative;
}
.home-about-img-main {
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(15,23,42,0.12);
}
.home-about-img-main img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}
.home-about-img-float {
  position: absolute;
  bottom: -2rem;
  right: -1.5rem;
  width: 200px;
  border-radius: 1rem;
  overflow: hidden;
  border: 5px solid #fff;
  box-shadow: 0 12px 32px rgba(15,23,42,0.15);
}
.home-about-img-float img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.home-about-exp-badge {
  position: absolute;
  top: -1.25rem;
  right: 2rem;
  background: var(--oh-forest);
  color: #fff;
  padding: 1.1rem 1.3rem;
  border-radius: 1rem;
  text-align: center;
  box-shadow: 0 8px 24px rgba(11,79,156,0.3);
}
.home-about-exp-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 0.15rem;
}
.home-about-exp-label {
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.8;
  line-height: 1.3;
}

/* Content side */
.home-about-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.75rem;
}
.home-about-kicker-line {
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: var(--booking-accent);
}
.home-about-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 1rem;
  line-height: 1.2;
}
.home-about-text {
  color: #64748b;
  font-size: 0.92rem;
  line-height: 1.7;
  margin-bottom: 0.75rem;
}

/* Feature grid */
.home-about-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}
.home-about-feat {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.home-about-feat-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(242,101,34,0.1), rgba(242,101,34,0.05));
  color: var(--booking-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
}
.home-about-feat strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 0.1rem;
}
.home-about-feat span {
  font-size: 0.75rem;
  color: #94a3b8;
}

/* CTA button */
.home-about-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--oh-forest);
  color: #fff;
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.7rem 1.5rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
}
.home-about-btn:hover {
  background: var(--oh-forest-2);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(11,79,156,0.25);
}

/* Responsive */
@media (max-width: 991.98px) {
  .home-about-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .home-about-img-main img { height: 340px; }
  .home-about-img-float { right: 1rem; bottom: -1.5rem; width: 160px; }
  .home-about-img-float img { height: 130px; }
}
@media (max-width: 575.98px) {
  .home-about { padding: 3rem 0; }
  .home-about-features { grid-template-columns: 1fr; }
  .home-about-img-main img { height: 260px; }
  .home-about-img-float { width: 130px; right: 0.5rem; }
  .home-about-img-float img { height: 100px; }
  .home-about-exp-badge { top: -1rem; right: 1rem; padding: 0.8rem 1rem; }
  .home-about-exp-num { font-size: 1.4rem; }
}

/* ========== HOME DESTINATIONS ========== */
.home-dest {
  padding: 5rem 0;
  background: #fff;
}
.home-dest-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.home-dest-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.home-dest-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.home-dest-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.home-dest-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
}
.home-dest-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }
.home-dest-sub {
  color: #64748b;
  font-size: 0.92rem;
  max-width: 600px;
  margin-bottom: 2rem;
}

/* Destination card grid */
.home-dest-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.home-dest-card {
  position: relative;
  display: block;
  border-radius: 1.25rem;
  overflow: hidden;
  height: 340px;
  text-decoration: none;
  color: #fff;
}
.home-dest-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.home-dest-card:hover .home-dest-card-img {
  transform: scale(1.08);
}
.home-dest-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.7) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  transition: background 0.3s;
}
.home-dest-card:hover .home-dest-card-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 20%, rgba(0,0,0,0.75) 100%);
}
.home-dest-card-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: 50px;
}
.home-dest-card-name {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.home-dest-card-link {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--oh-gold);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.3s ease;
}
.home-dest-card:hover .home-dest-card-link {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 991.98px) {
  .home-dest-grid { grid-template-columns: 1fr 1fr; }
  .home-dest-card { height: 280px; }
}
@media (max-width: 575.98px) {
  .home-dest { padding: 3rem 0; }
  .home-dest-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .home-dest-card { height: 220px; }
  .home-dest-card-name { font-size: 1.1rem; }
  .home-dest-card-overlay { padding: 1rem; }
  .home-dest-card-link { opacity: 1; transform: none; }
}

/* ========== HOME HANDPICKED HOTELS ========== */
.home-picks {
  padding: 5rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.home-picks-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.home-picks-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.home-picks-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.home-picks-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.home-picks-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
}
.home-picks-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }
.home-picks-sub {
  color: #64748b;
  font-size: 0.92rem;
  max-width: 580px;
  margin-bottom: 2rem;
}

/* Card grid */
.home-picks-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.home-picks-card {
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid #e8ecf2;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.home-picks-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}

/* Image */
.home-picks-card-img {
  position: relative;
  height: 220px;
  overflow: hidden;
}
.home-picks-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.home-picks-card:hover .home-picks-card-img img {
  transform: scale(1.06);
}
.home-picks-card-badge {
  position: absolute;
  top: 0.75rem; left: 0.75rem;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.65rem;
  border-radius: 50px;
}

/* Body */
.home-picks-card-body {
  padding: 1.1rem 1.15rem 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.home-picks-card-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.home-picks-card-loc {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: 0 0 0.6rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.home-picks-card-loc i { color: var(--booking-accent); font-size: 0.72rem; }
.home-picks-card-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.home-picks-card-score {
  background: var(--oh-forest);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
}
.home-picks-card-stars {
  color: #f59e0b;
  font-size: 0.62rem;
  letter-spacing: 0.05em;
}
.home-picks-card-link {
  margin-top: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--oh-forest);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  transition: gap 0.3s;
}
.home-picks-card:hover .home-picks-card-link { gap: 0.4rem; }

@media (max-width: 991.98px) {
  .home-picks-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
  .home-picks { padding: 3rem 0; }
  .home-picks-grid { grid-template-columns: 1fr; }
  .home-picks-card-img { height: 200px; }
}

/* ========== HOME BENEFITS ========== */
.home-benefits {
  padding: 5rem 0;
  background: #fff;
}
.home-benefits-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 4rem;
  align-items: center;
}

/* Visual side */
.home-benefits-visual {
  position: relative;
}
.home-benefits-img-frame {
  position: relative;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(15,23,42,0.12);
  aspect-ratio: 5 / 4;
}
.home-benefits-img-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.home-benefits-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(11,79,156,0.25) 100%);
}
.home-benefits-float {
  position: absolute;
  background: #fff;
  border-radius: 1rem;
  padding: 0.85rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  box-shadow: 0 12px 32px rgba(15,23,42,0.12);
  min-width: 180px;
}
.home-benefits-float--top {
  top: 1.5rem;
  right: -1.5rem;
}
.home-benefits-float--bottom {
  bottom: 1.5rem;
  left: -1.5rem;
}
.home-benefits-float-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.home-benefits-float-icon--alt {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
}
.home-benefits-float-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  margin-bottom: 0.15rem;
}
.home-benefits-float-label {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 600;
}

/* Content side */
.home-benefits-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.75rem;
}
.home-benefits-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.home-benefits-title {
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.75rem;
  line-height: 1.2;
}
.home-benefits-sub {
  color: #64748b;
  font-size: 0.95rem;
  line-height: 1.65;
  margin-bottom: 1.75rem;
  max-width: 520px;
}

/* Benefits list */
.home-benefits-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem;
  margin-bottom: 2rem;
}
.home-benefit-item {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  border-radius: 0.9rem;
  transition: all 0.3s;
}
.home-benefit-item:hover {
  background: #fff;
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(15,23,42,0.06);
  transform: translateY(-2px);
}
.home-benefit-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  color: #fff;
}
.home-benefit-icon--blue   { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); box-shadow: 0 4px 12px rgba(11,79,156,0.25); }
.home-benefit-icon--gold   { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); box-shadow: 0 4px 12px rgba(244,163,0,0.25); }
.home-benefit-icon--accent { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); box-shadow: 0 4px 12px rgba(242,101,34,0.25); }
.home-benefit-icon--green  { background: linear-gradient(135deg, #10b981, #34d399); box-shadow: 0 4px 12px rgba(16,185,129,0.25); }

.home-benefit-info h3 {
  font-size: 0.9rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.15rem;
}
.home-benefit-info p {
  font-size: 0.76rem;
  color: #64748b;
  line-height: 1.5;
  margin: 0;
}

/* CTA button */
.home-benefits-cta {
  display: inline-flex;
  align-items: center;
  background: var(--oh-forest);
  color: #fff;
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.75rem 1.6rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
}
.home-benefits-cta:hover {
  background: var(--oh-forest-2);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(11,79,156,0.25);
}

@media (max-width: 991.98px) {
  .home-benefits-layout { grid-template-columns: 1fr; gap: 3rem; }
  .home-benefits-visual { max-width: 480px; margin: 0 auto; width: 100%; }
  .home-benefits-img-frame { aspect-ratio: 16 / 11; }
}
@media (max-width: 575.98px) {
  .home-benefits { padding: 3rem 0; }
  .home-benefits-list { grid-template-columns: 1fr; gap: 0.75rem; }
  .home-benefits-float { min-width: 0; padding: 0.6rem 0.85rem; }
  .home-benefits-float--top { right: 0.5rem; }
  .home-benefits-float--bottom { left: 0.5rem; }
  .home-benefits-float-num { font-size: 1.1rem; }
  .home-benefits-float-label { font-size: 0.65rem; }
}

/* ========== HOME TESTIMONIALS ========== */
.home-testi {
  position: relative;
  padding: 5rem 0 5.5rem;
  overflow: hidden;
  background:
    linear-gradient(135deg, #0a2744 0%, #0b4f9c 40%, #0a63c9 70%, #1a1f3a 100%);
}
.home-testi-bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse at 15% 20%, rgba(244,163,0,0.22) 0%, transparent 45%),
    radial-gradient(ellipse at 85% 85%, rgba(242,101,34,0.18) 0%, transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.05) 0%, transparent 60%);
  pointer-events: none;
}
.home-testi::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,0.08) 1px, transparent 0);
  background-size: 28px 28px;
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
  pointer-events: none;
  opacity: 0.5;
}
.home-testi::after {
  content: '"';
  position: absolute;
  top: 8%;
  right: 6%;
  font-family: var(--font-serif);
  font-size: clamp(12rem, 22vw, 20rem);
  font-weight: 900;
  line-height: 0.8;
  color: rgba(244,163,0,0.06);
  pointer-events: none;
  z-index: 0;
}
.home-testi .container { position: relative; z-index: 1; }

.home-testi-head {
  text-align: center;
  margin-bottom: 3rem;
  color: #fff;
}
.home-testi-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--oh-gold);
  margin-bottom: 0.75rem;
}
.home-testi-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--oh-gold);
}
.home-testi-title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 800;
  color: #fff;
  margin-bottom: 0.75rem;
}
.home-testi-sub {
  color: rgba(255,255,255,0.7);
  font-size: 0.95rem;
  max-width: 520px;
  margin: 0 auto;
}

/* Card grid */
.home-testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.home-testi-card {
  position: relative;
  background: #fff;
  border-radius: 1.25rem;
  padding: 2.25rem 1.75rem 1.75rem;
  box-shadow: 0 20px 50px rgba(0,0,0,0.15);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  transition: transform 0.35s ease;
}
.home-testi-card:hover {
  transform: translateY(-6px);
}
.home-testi-big-quote {
  position: absolute;
  top: -20px;
  left: 1.5rem;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #fff;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  box-shadow: 0 8px 20px rgba(244,163,0,0.35);
}
.home-testi-stars {
  color: #f59e0b;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.85rem;
}
.home-testi-text {
  font-size: 0.92rem;
  color: #334155;
  line-height: 1.75;
  flex: 1;
  margin-bottom: 1.5rem;
  font-style: italic;
}
.home-testi-author {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1.25rem;
  border-top: 1px solid #f1f5f9;
}
.home-testi-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 4px 12px rgba(11,79,156,0.18);
}
.home-testi-name {
  display: block;
  font-size: 0.92rem;
  font-weight: 700;
  color: #0f172a;
}
.home-testi-loc {
  display: flex;
  align-items: center;
  font-size: 0.72rem;
  color: #94a3b8;
}

/* Controls */
.home-testi-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 2.5rem;
}
.home-testi-arrow {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 1rem;
}
.home-testi-arrow:hover {
  background: var(--oh-gold);
  border-color: var(--oh-gold);
  color: #1a1510;
}
.home-testi-dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.home-testi-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 0;
  background: rgba(255,255,255,0.25);
  padding: 0;
  cursor: pointer;
  transition: all 0.3s;
}
.home-testi-dot.active {
  background: var(--oh-gold);
  width: 28px;
  border-radius: 50px;
}

@media (max-width: 991.98px) {
  .home-testi-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
  .home-testi { padding: 3rem 0 3.5rem; }
  .home-testi-grid { grid-template-columns: 1fr; }
  .home-testi-head { margin-bottom: 2rem; }
}

/* ========== DESTINATION HERO ========== */
.dest-hero {
  position: relative;
  min-height: 82vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
}
.dest-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: destHeroZoom 18s ease-out infinite alternate;
}
@keyframes destHeroZoom {
  0%   { transform: scale(1.05); }
  100% { transform: scale(1.15); }
}
.dest-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.3) 40%, rgba(11,79,156,0.55) 100%);
}
.dest-hero-pattern {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 15%, rgba(244,163,0,0.15) 0%, transparent 35%),
    radial-gradient(circle at 10% 90%, rgba(11,79,156,0.25) 0%, transparent 40%);
  pointer-events: none;
}
.dest-hero-inner {
  position: relative;
  z-index: 2;
  padding: 7rem 0 5rem;
}

/* Breadcrumb */
.dest-hero-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.78rem;
  font-weight: 500;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  padding: 0.55rem 1.1rem;
  border-radius: 50px;
  margin-bottom: 2rem;
}
.dest-hero-crumb a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: color 0.2s;
}
.dest-hero-crumb a:hover { color: #fff; }
.dest-hero-crumb span { color: #fff; font-weight: 600; }
.dest-hero-crumb-sep {
  font-size: 0.6rem;
  color: rgba(255,255,255,0.35);
}

/* Title block */
.dest-hero-title-wrap {
  max-width: 780px;
  margin-bottom: 2.5rem;
}
.dest-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(244,163,0,0.15);
  border: 1px solid rgba(244,163,0,0.35);
  color: var(--oh-gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
  backdrop-filter: blur(6px);
}
.dest-hero-title {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 1rem;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.dest-hero-lead {
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  max-width: 620px;
  margin: 0;
}

/* Stats row */
.dest-hero-stats {
  display: inline-flex;
  align-items: center;
  gap: 1.75rem;
  flex-wrap: wrap;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 1rem;
  padding: 1.1rem 1.75rem;
  margin-bottom: 2rem;
}
.dest-hero-stat {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
.dest-hero-stat-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex-shrink: 0;
}
.dest-hero-stat-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
}
.dest-hero-stat-label {
  display: block;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
}
.dest-hero-stat-div {
  width: 1px;
  height: 32px;
  background: rgba(255,255,255,0.15);
}

/* CTAs */
.dest-hero-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.dest-hero-cta,
.dest-hero-cta-ghost {
  display: inline-flex;
  align-items: center;
  padding: 0.8rem 1.75rem;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.dest-hero-cta {
  background: var(--oh-gold);
  color: #1a1510;
}
.dest-hero-cta:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.25);
}
.dest-hero-cta-ghost {
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(6px);
}
.dest-hero-cta-ghost:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-color: rgba(255,255,255,0.5);
}

/* Scroll hint */
.dest-hero-scroll {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  color: rgba(255,255,255,0.55);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  z-index: 2;
  animation: destHeroBounce 2.2s ease-in-out infinite;
}
.dest-hero-scroll i { font-size: 1rem; }
@keyframes destHeroBounce {
  0%, 100% { transform: translate(-50%, 0); opacity: 0.55; }
  50%      { transform: translate(-50%, 6px); opacity: 1; }
}

@media (max-width: 767.98px) {
  .dest-hero { min-height: 70vh; }
  .dest-hero-inner { padding: 5.5rem 0 4rem; }
  .dest-hero-stats {
    gap: 1rem;
    padding: 1rem;
    width: 100%;
    justify-content: space-between;
  }
  .dest-hero-stat-div { display: none; }
  .dest-hero-stat { flex: 1 1 auto; }
  .dest-hero-stat-num { font-size: 0.9rem; }
  .dest-hero-stat-label { font-size: 0.62rem; }
  .dest-hero-actions { width: 100%; }
  .dest-hero-cta,
  .dest-hero-cta-ghost { flex: 1; justify-content: center; }
  .dest-hero-scroll { display: none; }
}

/* ========== PACKAGES PAGE — RECOMMENDED SECTIONS ========== */
.pkg-rec-dest {
  padding: 5rem 0;
  background: #fff;
}
.pkg-rec-hotels {
  padding: 5rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.pkg-rec-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.pkg-rec-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.pkg-rec-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.pkg-rec-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.pkg-rec-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
}
.pkg-rec-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }
.pkg-rec-sub {
  color: #64748b;
  font-size: 0.92rem;
  max-width: 600px;
  margin-bottom: 2rem;
}

/* ----- Destination cards ----- */
.pkg-rec-dest-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.pkg-rec-dest-card {
  position: relative;
  display: block;
  border-radius: 1.25rem;
  overflow: hidden;
  height: 320px;
  text-decoration: none;
  color: #fff;
}
.pkg-rec-dest-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.pkg-rec-dest-card:hover img {
  transform: scale(1.08);
}
.pkg-rec-dest-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.75) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
}
.pkg-rec-dest-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: 50px;
}
.pkg-rec-dest-name {
  font-size: 1.3rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.pkg-rec-dest-link {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--oh-gold);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.3s ease;
}
.pkg-rec-dest-card:hover .pkg-rec-dest-link {
  opacity: 1;
  transform: translateY(0);
}

/* ----- Hotel cards ----- */
.pkg-rec-hotels-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.pkg-rec-hotel-card {
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid #e8ecf2;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.pkg-rec-hotel-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}
.pkg-rec-hotel-img {
  position: relative;
  height: 210px;
  overflow: hidden;
}
.pkg-rec-hotel-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.pkg-rec-hotel-card:hover .pkg-rec-hotel-img img {
  transform: scale(1.06);
}
.pkg-rec-hotel-badge {
  position: absolute;
  top: 0.75rem; left: 0.75rem;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.65rem;
  border-radius: 50px;
}
.pkg-rec-hotel-body {
  padding: 1.1rem 1.15rem 1.25rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pkg-rec-hotel-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.pkg-rec-hotel-loc {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: 0 0 0.6rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.pkg-rec-hotel-loc i { color: var(--booking-accent); font-size: 0.72rem; }
.pkg-rec-hotel-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.pkg-rec-hotel-score {
  background: var(--oh-forest);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
}
.pkg-rec-hotel-stars {
  color: #f59e0b;
  font-size: 0.62rem;
  letter-spacing: 0.05em;
}
.pkg-rec-hotel-link {
  margin-top: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--oh-forest);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  transition: gap 0.3s;
}
.pkg-rec-hotel-card:hover .pkg-rec-hotel-link { gap: 0.4rem; }

@media (max-width: 991.98px) {
  .pkg-rec-dest-grid,
  .pkg-rec-hotels-grid { grid-template-columns: 1fr 1fr; }
  .pkg-rec-dest-card { height: 280px; }
}
@media (max-width: 575.98px) {
  .pkg-rec-dest,
  .pkg-rec-hotels { padding: 3rem 0; }
  .pkg-rec-dest-grid { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .pkg-rec-hotels-grid { grid-template-columns: 1fr; }
  .pkg-rec-dest-card { height: 220px; }
  .pkg-rec-dest-name { font-size: 1.05rem; }
  .pkg-rec-dest-link { opacity: 1; transform: none; }
}

/* ========== CONTACT HERO (new) ========== */
.contact-hero-new {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
}
.contact-hero-new-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: contactHeroZoom 18s ease-out infinite alternate;
}
@keyframes contactHeroZoom {
  0%   { transform: scale(1.05); }
  100% { transform: scale(1.12); }
}
.contact-hero-new-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(11,79,156,0.45) 60%, rgba(0,0,0,0.5) 100%);
}
.contact-hero-new-pattern {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(244,163,0,0.18) 0%, transparent 40%),
    radial-gradient(circle at 10% 85%, rgba(11,79,156,0.3) 0%, transparent 45%);
  pointer-events: none;
}
.contact-hero-new-inner {
  position: relative;
  z-index: 2;
  padding: 7rem 0 5rem;
}

/* Breadcrumb */
.contact-hero-new-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.78rem;
  font-weight: 500;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  padding: 0.55rem 1.1rem;
  border-radius: 50px;
  margin-bottom: 2rem;
}
.contact-hero-new-crumb a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: color 0.2s;
}
.contact-hero-new-crumb a:hover { color: #fff; }
.contact-hero-new-crumb span { color: #fff; font-weight: 600; }
.contact-hero-new-crumb-sep {
  font-size: 0.6rem;
  color: rgba(255,255,255,0.35);
}

/* Title block */
.contact-hero-new-title-wrap {
  max-width: 720px;
  margin-bottom: 2.5rem;
}
.contact-hero-new-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(244,163,0,0.15);
  border: 1px solid rgba(244,163,0,0.35);
  color: var(--oh-gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
  backdrop-filter: blur(6px);
}
.contact-hero-new-title {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 1rem;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.contact-hero-new-lead {
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  color: rgba(255,255,255,0.85);
  line-height: 1.65;
  max-width: 560px;
  margin: 0;
}

/* Quick contact cards */
.contact-hero-new-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  max-width: 780px;
  margin-bottom: 2rem;
}
.contact-hero-new-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  backdrop-filter: blur(12px);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  text-decoration: none;
  color: #fff;
  transition: all 0.3s;
}
.contact-hero-new-card:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.3);
  color: #fff;
  transform: translateY(-3px);
}
.contact-hero-new-card-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #fff;
  flex-shrink: 0;
}
.contact-hero-new-card-icon--gold  { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); color: #1a1510; }
.contact-hero-new-card-icon--blue  { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); }
.contact-hero-new-card-icon--green { background: linear-gradient(135deg, #16a34a, #22c55e); }
.contact-hero-new-card-label {
  display: block;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.1rem;
}
.contact-hero-new-card-value {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #fff;
}

/* Scroll hint */
.contact-hero-new-scroll {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(255,255,255,0.7);
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  text-decoration: none;
  padding: 0.6rem 1.2rem;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(6px);
  transition: all 0.3s;
}
.contact-hero-new-scroll:hover {
  color: #fff;
  border-color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.12);
}
.contact-hero-new-scroll i { animation: contactHeroArrowBounce 1.8s ease-in-out infinite; }
@keyframes contactHeroArrowBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(3px); }
}

@media (max-width: 991.98px) {
  .contact-hero-new-cards { grid-template-columns: 1fr; gap: 0.75rem; }
}
@media (max-width: 767.98px) {
  .contact-hero-new { min-height: 70vh; }
  .contact-hero-new-inner { padding: 5rem 0 4rem; }
}

/* ========== CONTACT MAIN (info + form) ========== */
.contact-main {
  padding: 5rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.contact-main-grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 2rem;
  align-items: start;
}

/* ----- Info panel ----- */
.contact-info-panel {
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(15,23,42,0.08);
  border: 1px solid #eef1f6;
}
.contact-info-image {
  position: relative;
  height: 220px;
  overflow: hidden;
}
.contact-info-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-info-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(11,79,156,0.6) 100%);
  display: flex;
  align-items: flex-end;
  padding: 1.25rem;
}
.contact-info-image-chip {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.35rem 0.75rem;
  border-radius: 50px;
}

.contact-info-body {
  padding: 2rem 1.75rem 1.75rem;
}
.contact-info-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.6rem;
}
.contact-info-kicker-line {
  width: 24px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.contact-info-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
}
.contact-info-sub {
  font-size: 0.85rem;
  color: #64748b;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

/* Contact items */
.contact-info-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.contact-info-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  border-radius: 0.85rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s;
}
.contact-info-item:not(.contact-info-item--static):hover {
  background: #fff;
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(15,23,42,0.08);
  transform: translateY(-2px);
  color: inherit;
}
.contact-info-item-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  color: #fff;
}
.contact-info-item-icon--blue   { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); box-shadow: 0 4px 12px rgba(11,79,156,0.22); }
.contact-info-item-icon--accent { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); box-shadow: 0 4px 12px rgba(242,101,34,0.22); }
.contact-info-item-icon--gold   { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); box-shadow: 0 4px 12px rgba(244,163,0,0.22); color: #1a1510; }
.contact-info-item-text {
  flex: 1;
  min-width: 0;
}
.contact-info-item-label {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.15rem;
}
.contact-info-item-value {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e293b;
  word-break: break-word;
}
.contact-info-item-arrow {
  color: #cbd5e1;
  font-size: 1rem;
  transition: transform 0.3s, color 0.3s;
}
.contact-info-item:hover .contact-info-item-arrow {
  color: var(--booking-accent);
  transform: translate(2px, -2px);
}

/* Working hours */
.contact-info-hours {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, rgba(11,79,156,0.06), rgba(10,99,201,0.02));
  border: 1px solid rgba(11,79,156,0.1);
  border-radius: 0.85rem;
  margin-bottom: 1.25rem;
}
.contact-info-hours-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(11,79,156,0.12);
  color: var(--oh-forest);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.contact-info-hours-title {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.1rem;
}
.contact-info-hours-text {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
}

/* Socials */
.contact-info-socials {
  display: flex;
  gap: 0.6rem;
  padding-top: 1.25rem;
  border-top: 1px solid #f1f5f9;
}
.contact-info-socials a {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #64748b;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  transition: all 0.3s;
  text-decoration: none;
}
.contact-info-socials a:hover {
  background: var(--oh-forest);
  color: #fff;
  transform: translateY(-3px);
}

/* ----- Form panel ----- */
.contact-form-panel {
  background: #fff;
  border-radius: 1.5rem;
  padding: 2.5rem;
  box-shadow: 0 20px 50px rgba(15,23,42,0.08);
  border: 1px solid #eef1f6;
}
.contact-form-head {
  margin-bottom: 1.25rem;
}
.contact-form-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.6rem;
}
.contact-form-kicker-line {
  width: 24px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.contact-form-title {
  font-size: clamp(1.5rem, 2.5vw, 1.9rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
}
.contact-form-sub {
  font-size: 0.88rem;
  color: #64748b;
  margin: 0;
  line-height: 1.6;
}
.contact-form-sub a {
  color: var(--booking-accent);
  font-weight: 600;
  text-decoration: none;
}
.contact-form-sub a:hover { text-decoration: underline; }

/* Trust strip */
.contact-form-trust {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  background: linear-gradient(135deg, rgba(11,79,156,0.04), rgba(242,101,34,0.04));
  border: 1px solid #eef1f6;
  border-radius: 0.85rem;
}
.contact-form-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
}
.contact-form-trust i {
  color: var(--oh-forest);
  font-size: 0.92rem;
}

@media (max-width: 991.98px) {
  .contact-main-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .contact-main { padding: 3rem 0; }
  .contact-form-panel { padding: 1.75rem 1.25rem; }
  .contact-info-body { padding: 1.5rem 1.25rem 1.25rem; }
  .contact-form-trust { padding: 0.85rem 1rem; gap: 0.85rem; }
}

/* ========== HOME PACKAGES ========== */
.home-pkg {
  position: relative;
  padding: 5rem 0;
  background: #fff;
  overflow: hidden;
}
.home-pkg-bg-blob {
  position: absolute;
  top: -120px;
  right: -120px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244,163,0,0.08) 0%, transparent 70%);
  pointer-events: none;
}
.home-pkg .container { position: relative; z-index: 1; }

/* Header */
.home-pkg-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: end;
  margin-bottom: 2.5rem;
}
.home-pkg-head-main { max-width: 660px; }
.home-pkg-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.6rem;
}
.home-pkg-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.home-pkg-title {
  font-size: clamp(1.6rem, 3.2vw, 2.25rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.75rem;
  line-height: 1.2;
}
.home-pkg-sub {
  color: #64748b;
  font-size: 0.92rem;
  line-height: 1.65;
  margin: 0;
}
.home-pkg-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
  padding-bottom: 0.35rem;
}
.home-pkg-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }

/* Card grid */
.home-pkg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.home-pkg-card {
  position: relative;
  background: #fff;
  border: 1px solid #e8ecf2;
  border-radius: 1.25rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.home-pkg-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 60px rgba(15,23,42,0.12);
  border-color: transparent;
  color: inherit;
}
.home-pkg-card--featured {
  transform: translateY(-12px);
  box-shadow: 0 20px 50px rgba(11,79,156,0.15);
  border: 2px solid var(--booking-accent);
}
.home-pkg-card--featured:hover {
  transform: translateY(-20px);
}

/* Card image */
.home-pkg-card-img {
  position: relative;
  height: 230px;
  overflow: hidden;
}
.home-pkg-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.home-pkg-card:hover .home-pkg-card-img img {
  transform: scale(1.08);
}
.home-pkg-card-ribbon {
  position: absolute;
  top: 1rem;
  left: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.4rem 0.85rem;
  border-radius: 50px;
  box-shadow: 0 6px 16px rgba(242,101,34,0.35);
}
.home-pkg-card-ribbon i { color: #fff200; }
.home-pkg-card-duration {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  border-radius: 50px;
}

/* Card body */
.home-pkg-card-body {
  padding: 1.5rem 1.4rem 1.4rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.home-pkg-card-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
  line-height: 1.3;
}
.home-pkg-card-desc {
  font-size: 0.85rem;
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 1.1rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Feature pills */
.home-pkg-card-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px dashed #e2e8f0;
}
.home-pkg-card-features span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: #f8fafc;
  color: #475569;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.35rem 0.7rem;
  border-radius: 50px;
  border: 1px solid #eef1f6;
}
.home-pkg-card-features i {
  color: var(--booking-accent);
  font-size: 0.78rem;
}

/* Foot: price + CTA */
.home-pkg-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
}
.home-pkg-card-price {
  display: flex;
  flex-direction: column;
}
.home-pkg-card-price-label {
  font-size: 0.65rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.1rem;
}
.home-pkg-card-price-val {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--booking-accent);
  line-height: 1.1;
}
.home-pkg-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--oh-forest);
  transition: gap 0.3s;
}
.home-pkg-card:hover .home-pkg-card-cta {
  gap: 0.4rem;
  color: var(--booking-accent);
}

@media (max-width: 991.98px) {
  .home-pkg-grid { grid-template-columns: 1fr 1fr; }
  .home-pkg-card--featured { transform: none; }
  .home-pkg-card--featured:hover { transform: translateY(-8px); }
  .home-pkg-head { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .home-pkg { padding: 3rem 0; }
  .home-pkg-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .home-pkg-card-img { height: 200px; }
}

/* ========== SITE HEADER ========== */

/* Top utility bar */
.oh-topbar {
  background: linear-gradient(135deg, #081f3d 0%, #0b4f9c 100%);
  color: #fff;
  font-size: 0.78rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.oh-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0;
  gap: 1rem;
}
.oh-topbar-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.oh-topbar-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255,255,255,0.85);
}
.oh-topbar-item a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  transition: color 0.2s;
}
.oh-topbar-item a:hover { color: var(--oh-gold); }
.oh-topbar-item i {
  color: var(--oh-gold);
  font-size: 0.85rem;
}
.oh-topbar-sep {
  color: rgba(255,255,255,0.25);
  font-weight: 300;
}
.oh-topbar-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.oh-topbar-promo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--oh-gold);
  font-weight: 600;
}
.oh-topbar-promo i { font-size: 0.85rem; }
.oh-topbar-socials {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  padding-left: 1rem;
  border-left: 1px solid rgba(255,255,255,0.12);
}
.oh-topbar-socials a {
  color: rgba(255,255,255,0.65);
  font-size: 0.9rem;
  text-decoration: none;
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.3s;
}
.oh-topbar-socials a:hover {
  background: var(--oh-gold);
  color: #1a1510;
}

@media (max-width: 991.98px) {
  .oh-topbar-right { display: none; }
  .oh-topbar-left { justify-content: center; width: 100%; font-size: 0.72rem; }
}
@media (max-width: 575.98px) {
  .oh-topbar-sep,
  .oh-topbar-left .oh-topbar-item:nth-child(3) { display: none; }
}

/* Main navbar */
.oh-nav {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff !important;
  border-bottom: 1px solid #eef1f6;
  padding: 0.85rem 0;
  box-shadow: 0 4px 16px rgba(15,23,42,0.04);
  transition: background 0.35s ease, box-shadow 0.35s ease, padding 0.3s ease, border-color 0.3s ease;
}

/* Scrolled state — theme blue gradient */
.oh-nav.navbar-scrolled {
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 100%) !important;
  border-bottom-color: transparent;
  box-shadow: 0 10px 30px rgba(11, 79, 156, 0.22);
}
.oh-nav.navbar-scrolled .oh-nav-link {
  color: #fff !important;
}
.oh-nav.navbar-scrolled .oh-nav-link:hover {
  color: var(--oh-gold) !important;
}
.oh-nav.navbar-scrolled .oh-nav-link::after {
  background: var(--oh-gold);
}
.oh-nav.navbar-scrolled .oh-nav-toggler {
  border-color: rgba(255, 255, 255, 0.3) !important;
}
.oh-nav.navbar-scrolled .oh-nav-toggler .navbar-toggler-icon {
  filter: invert(1) brightness(2);
}
.oh-nav.navbar-scrolled .oh-book-btn {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 8px 20px rgba(244, 163, 0, 0.35);
}
.oh-nav.navbar-scrolled .oh-book-btn:hover {
  background: #fff;
  color: var(--oh-forest);
}
.oh-brand {
  display: flex;
  align-items: center;
  padding: 0;
}
.oh-brand .site-logo {
  height: 48px;
  width: auto;
  transition: height 0.3s;
}

.oh-nav-list {
  gap: 0.15rem;
}
.oh-nav-link {
  position: relative;
  color: #1e293b !important;
  font-weight: 600;
  font-size: 0.88rem;
  padding: 0.55rem 0.95rem !important;
  border-radius: 8px;
  transition: all 0.25s;
}
.oh-nav-link::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0.3rem;
  width: 0;
  height: 2px;
  background: var(--booking-accent);
  border-radius: 2px;
  transform: translateX(-50%);
  transition: width 0.3s ease;
}
.oh-nav-link:hover {
  color: var(--booking-accent) !important;
}
.oh-nav-link:hover::after,
.oh-nav-link.active::after {
  width: 18px;
}
.oh-nav-link.dropdown-toggle::after {
  display: none;
}

/* Dropdown */
.oh-dropdown {
  border: 1px solid #eef1f6;
  border-radius: 0.85rem;
  padding: 0.5rem;
  box-shadow: 0 20px 48px rgba(15,23,42,0.12);
  margin-top: 0.5rem !important;
  min-width: 220px;
}
.oh-dropdown .dropdown-item {
  padding: 0.55rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 6px;
  color: #334155;
  transition: all 0.2s;
}
.oh-dropdown .dropdown-item:hover {
  background: #f8fafc;
  color: var(--booking-accent);
  padding-left: 1.1rem;
}
.oh-dropdown .dropdown-header {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--booking-accent);
  font-weight: 800;
  padding: 0.5rem 0.85rem 0.35rem;
}
.oh-dropdown .dropdown-divider {
  border-color: #eef1f6;
  margin: 0.35rem 0;
}

/* Book Now button */
.oh-book-btn {
  display: inline-flex;
  align-items: center;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.6rem 1.35rem;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(242,101,34,0.28);
  transition: all 0.3s;
}
.oh-book-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(242,101,34,0.38);
  color: #fff;
}

/* Mobile toggler */
.oh-nav-toggler {
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px;
  padding: 0.45rem 0.65rem !important;
}
.oh-nav-toggler .navbar-toggler-icon {
  filter: invert(0.3);
}

/* Home page override — white semi-transparent when at top, blue when scrolled */
.navbar-home.oh-nav {
  background: rgba(255,255,255,0.95) !important;
  backdrop-filter: blur(10px);
}
.navbar-home.oh-nav .oh-nav-link {
  color: #1e293b !important;
}
.navbar-home.oh-nav .oh-nav-link:hover {
  color: var(--booking-accent) !important;
}

@media (max-width: 991.98px) {
  .oh-nav { padding: 0.75rem 0; }
  .oh-brand .site-logo { height: 40px; }
  .oh-nav-list {
    padding-top: 1rem;
    border-top: 1px solid #eef1f6;
    margin-top: 0.75rem;
  }
  .oh-nav-link {
    padding: 0.7rem 0.85rem !important;
  }
  .oh-nav-link::after { display: none; }
  .oh-book-btn {
    width: 100%;
    justify-content: center;
    margin-top: 0.5rem;
  }
  .oh-dropdown {
    box-shadow: none;
    border: none;
    background: #f8fafc;
    margin-left: 1rem;
  }
}

/* ========== HOME PLAN / CTA ========== */
.home-plan {
  position: relative;
  padding: 5rem 0;
  background: linear-gradient(180deg, #fafbfc 0%, #f1f5f9 100%);
  overflow: hidden;
}
.home-plan-bg-blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(60px);
}
.home-plan-bg-blob--left {
  top: -120px;
  left: -80px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(11,79,156,0.12) 0%, transparent 70%);
}
.home-plan-bg-blob--right {
  bottom: -120px;
  right: -80px;
  width: 340px;
  height: 340px;
  background: radial-gradient(circle, rgba(242,101,34,0.12) 0%, transparent 70%);
}

/* Card */
.home-plan-card {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 3rem;
  align-items: center;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.75rem;
  padding: 3.5rem 3rem;
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}
.home-plan-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--oh-forest), var(--booking-accent), var(--oh-gold));
}

/* Content */
.home-plan-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.85rem;
}
.home-plan-kicker-line {
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: var(--booking-accent);
}
.home-plan-title {
  font-size: clamp(1.9rem, 4vw, 2.75rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.85rem;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.home-plan-sub {
  color: #64748b;
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 0 1.5rem;
  max-width: 560px;
}

/* Feature pills */
.home-plan-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.home-plan-features span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.5rem 0.85rem;
  border-radius: 50px;
}
.home-plan-features i {
  color: var(--booking-accent);
  font-size: 0.85rem;
}

/* Buttons */
.home-plan-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.home-plan-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.75rem;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.home-plan-btn--primary {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  box-shadow: 0 10px 24px rgba(242, 101, 34, 0.28);
}
.home-plan-btn--primary:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(242, 101, 34, 0.38);
}
.home-plan-btn--ghost {
  background: #fff;
  color: var(--oh-forest);
  border: 1.5px solid #e2e8f0;
}
.home-plan-btn--ghost:hover {
  background: var(--oh-forest);
  color: #fff;
  border-color: var(--oh-forest);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(11, 79, 156, 0.22);
}

/* Visual side */
.home-plan-visual {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.75rem;
  padding: 2rem;
}
.home-plan-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(242, 101, 34, 0.08) 0%, transparent 65%);
  border-radius: 1.5rem;
  pointer-events: none;
}
.home-plan-visual-icon {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 32px;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
  box-shadow: 0 20px 50px rgba(242, 101, 34, 0.3);
  animation: planIconFloat 4s ease-in-out infinite;
}
@keyframes planIconFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-8px) rotate(4deg); }
}
.home-plan-visual-stats {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1rem;
  padding: 1rem 1.5rem;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}
.home-plan-visual-stat {
  text-align: center;
}
.home-plan-visual-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.home-plan-visual-num i {
  color: #f59e0b;
  font-size: 0.85rem;
  margin-left: 0.15rem;
}
.home-plan-visual-label {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.home-plan-visual-divider {
  width: 1px;
  height: 36px;
  background: #e2e8f0;
}

@media (max-width: 991.98px) {
  .home-plan-card {
    grid-template-columns: 1fr;
    padding: 2.5rem 2rem;
    gap: 2rem;
  }
  .home-plan-visual { padding: 1rem; }
}
@media (max-width: 575.98px) {
  .home-plan { padding: 3rem 0; }
  .home-plan-card { padding: 2rem 1.25rem; border-radius: 1.25rem; }
  .home-plan-actions { width: 100%; }
  .home-plan-btn { flex: 1; }
  .home-plan-visual-icon { width: 96px; height: 96px; font-size: 2.75rem; border-radius: 24px; }
}

/* ========== DESTINATION DETAILS CTA ========== */
.dest-cta {
  position: relative;
  padding: 5rem 0;
  background: linear-gradient(135deg, #0a2744 0%, #0b4f9c 50%, #0a63c9 100%);
  overflow: hidden;
}
.dest-cta-bg-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
}
.dest-cta-bg-blob--a {
  top: -150px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(244,163,0,0.25) 0%, transparent 70%);
}
.dest-cta-bg-blob--b {
  bottom: -150px;
  right: -100px;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(242,101,34,0.2) 0%, transparent 70%);
}

.dest-cta-card {
  position: relative;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 3rem;
  align-items: center;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1.75rem;
  padding: 3rem;
  backdrop-filter: blur(12px);
  overflow: hidden;
}
.dest-cta-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--oh-gold), var(--booking-accent));
}

/* Content */
.dest-cta-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(244,163,0,0.15);
  border: 1px solid rgba(244,163,0,0.35);
  color: var(--oh-gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
}
.dest-cta-title {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 0.85rem;
  letter-spacing: -0.01em;
}
.dest-cta-sub {
  color: rgba(255,255,255,0.75);
  font-size: 0.98rem;
  line-height: 1.65;
  margin-bottom: 1.5rem;
  max-width: 520px;
}
.dest-cta-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1.75rem;
}
.dest-cta-features span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.85);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.5rem 0.85rem;
  border-radius: 50px;
}
.dest-cta-features i { color: var(--oh-gold); font-size: 0.85rem; }

.dest-cta-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.dest-cta-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 1.75rem;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.dest-cta-btn--primary {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 10px 24px rgba(244,163,0,0.35);
}
.dest-cta-btn--primary:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.25);
}
.dest-cta-btn--wa {
  background: #25d366;
  color: #fff;
  box-shadow: 0 10px 24px rgba(37,211,102,0.3);
}
.dest-cta-btn--wa:hover {
  background: #1ea956;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(37,211,102,0.4);
}

/* Visual */
.dest-cta-visual {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 2rem 1rem;
}
.dest-cta-visual-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  backdrop-filter: blur(8px);
}
.dest-cta-visual-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.dest-cta-visual-text { display: flex; flex-direction: column; }
.dest-cta-visual-eyebrow {
  font-size: 0.66rem;
  color: rgba(255,255,255,0.55);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 0.15rem;
}
.dest-cta-visual-num {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}
.dest-cta-visual-label {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.6);
  margin-top: 0.2rem;
}
.dest-cta-visual-rating {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: rgba(255,255,255,0.8);
  font-size: 0.8rem;
  font-weight: 600;
}
.dest-cta-visual-stars { color: #f59e0b; font-size: 0.85rem; letter-spacing: 0.05em; }

@media (max-width: 991.98px) {
  .dest-cta-card { grid-template-columns: 1fr; padding: 2.5rem 2rem; gap: 2rem; }
}
@media (max-width: 575.98px) {
  .dest-cta { padding: 3rem 0; }
  .dest-cta-card { padding: 2rem 1.25rem; border-radius: 1.25rem; }
  .dest-cta-actions { width: 100%; }
  .dest-cta-btn { flex: 1; justify-content: center; }
}

/* ========== PACKAGES PROMO (Get Closer with us) ========== */
.pkg-promo {
  position: relative;
  padding: 5rem 0;
  background: linear-gradient(135deg, #1a1f3a 0%, #0b4f9c 50%, #0a2744 100%);
  overflow: hidden;
}
.pkg-promo-bg-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.pkg-promo-bg-blob--a {
  top: -120px;
  right: 10%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(244,163,0,0.25) 0%, transparent 70%);
}
.pkg-promo-bg-blob--b {
  bottom: -120px;
  left: 5%;
  width: 360px;
  height: 360px;
  background: radial-gradient(circle, rgba(242,101,34,0.2) 0%, transparent 70%);
}

.pkg-promo-card {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 3rem;
  align-items: center;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1.75rem;
  padding: 3.5rem 3rem;
  backdrop-filter: blur(12px);
}

/* Left */
.pkg-promo-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
  box-shadow: 0 8px 20px rgba(244,163,0,0.3);
}
.pkg-promo-title {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 1rem;
  letter-spacing: -0.01em;
}
.pkg-promo-sub {
  color: rgba(255,255,255,0.72);
  font-size: 0.98rem;
  line-height: 1.65;
  margin-bottom: 1.75rem;
  max-width: 520px;
}

.pkg-promo-perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
.pkg-promo-perk {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 0.85rem;
  padding: 0.85rem;
}
.pkg-promo-perk-icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}
.pkg-promo-perk strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.1rem;
}
.pkg-promo-perk span {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.6);
}

.pkg-promo-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.pkg-promo-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 1.75rem;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.pkg-promo-btn--primary {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 10px 24px rgba(244,163,0,0.35);
}
.pkg-promo-btn--primary:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.25);
}
.pkg-promo-btn--ghost {
  background: rgba(255,255,255,0.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.2);
}
.pkg-promo-btn--ghost:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-color: rgba(255,255,255,0.4);
}

/* Right — discount circle */
.pkg-promo-right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
}
.pkg-promo-discount-circle {
  position: relative;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--booking-accent) 0%, #c9470f 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 30px 60px rgba(242,101,34,0.4);
  animation: pkgPromoPulse 3s ease-in-out infinite;
}
.pkg-promo-discount-circle::before {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 2px dashed rgba(244,163,0,0.4);
  animation: pkgPromoSpin 18s linear infinite;
}
@keyframes pkgPromoPulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.03); }
}
@keyframes pkgPromoSpin {
  to { transform: rotate(360deg); }
}
.pkg-promo-discount-num {
  font-family: var(--font-serif);
  font-size: 5rem;
  font-weight: 800;
  line-height: 0.85;
  letter-spacing: -0.04em;
}
.pkg-promo-discount-num small {
  font-size: 2rem;
  font-weight: 700;
  margin-left: 0.1rem;
  vertical-align: super;
}
.pkg-promo-discount-label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  margin-top: 0.5rem;
  line-height: 1.3;
  opacity: 0.95;
}
.pkg-promo-sticker {
  position: absolute;
  top: 10px;
  right: -10px;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--oh-gold);
  color: #1a1510;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.2;
  box-shadow: 0 10px 24px rgba(244,163,0,0.4);
  transform: rotate(12deg);
  animation: pkgPromoWiggle 4s ease-in-out infinite;
}
.pkg-promo-sticker i {
  font-size: 1rem;
  margin-bottom: 0.2rem;
  color: #1a1510;
}
@keyframes pkgPromoWiggle {
  0%, 100% { transform: rotate(12deg); }
  50%      { transform: rotate(-4deg); }
}

@media (max-width: 991.98px) {
  .pkg-promo-card { grid-template-columns: 1fr; padding: 2.5rem 2rem; gap: 2.5rem; }
  .pkg-promo-right { order: -1; min-height: 220px; }
  .pkg-promo-discount-circle { width: 200px; height: 200px; }
  .pkg-promo-discount-num { font-size: 4rem; }
}
@media (max-width: 575.98px) {
  .pkg-promo { padding: 3rem 0; }
  .pkg-promo-card { padding: 2rem 1.25rem; }
  .pkg-promo-perks { grid-template-columns: 1fr; }
  .pkg-promo-actions { width: 100%; }
  .pkg-promo-btn { flex: 1; justify-content: center; }
  .pkg-promo-discount-circle { width: 170px; height: 170px; }
  .pkg-promo-discount-num { font-size: 3.2rem; }
  .pkg-promo-discount-num small { font-size: 1.4rem; }
  .pkg-promo-sticker { width: 62px; height: 62px; font-size: 0.58rem; top: 0; right: -5px; }
}

/* ========== BLOG PAGE ========== */

/* Hero */
.blog2-hero {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
}
.blog2-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: blog2HeroZoom 18s ease-out infinite alternate;
}
@keyframes blog2HeroZoom {
  0% { transform: scale(1.05); }
  100% { transform: scale(1.12); }
}
.blog2-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(10,39,68,0.85) 0%, rgba(11,79,156,0.75) 50%, rgba(0,0,0,0.7) 100%);
}
.blog2-hero-pattern {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(244,163,0,0.2) 0%, transparent 40%),
    radial-gradient(circle at 10% 85%, rgba(242,101,34,0.18) 0%, transparent 45%);
  pointer-events: none;
}
.blog2-hero-inner {
  position: relative;
  z-index: 2;
  padding: 6.5rem 0 5rem;
}
.blog2-hero-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.78rem;
  font-weight: 500;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  padding: 0.55rem 1.1rem;
  border-radius: 50px;
  margin-bottom: 1.75rem;
}
.blog2-hero-crumb a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s; }
.blog2-hero-crumb a:hover { color: #fff; }
.blog2-hero-crumb span { color: #fff; font-weight: 600; }
.blog2-hero-crumb-sep { font-size: 0.6rem; color: rgba(255,255,255,0.35); }

.blog2-hero-title-wrap {
  max-width: 720px;
  margin-bottom: 2.25rem;
}
.blog2-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(244,163,0,0.15);
  border: 1px solid rgba(244,163,0,0.35);
  color: var(--oh-gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
  backdrop-filter: blur(6px);
}
.blog2-hero-title {
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 1rem;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.blog2-hero-lead {
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  color: rgba(255,255,255,0.82);
  line-height: 1.6;
  max-width: 560px;
  margin: 0;
}
.blog2-hero-stats {
  display: inline-flex;
  align-items: center;
  gap: 1.75rem;
  flex-wrap: wrap;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 1rem;
  padding: 1.1rem 1.75rem;
}
.blog2-hero-stat-num {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}
.blog2-hero-stat-label {
  display: block;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
  margin-top: 0.25rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.blog2-hero-stat-div {
  width: 1px;
  height: 32px;
  background: rgba(255,255,255,0.15);
}

/* Featured post */
.blog2-featured-section {
  padding: 5rem 0 0;
  background: #fff;
}
.blog2-section-head {
  margin-bottom: 2rem;
}
.blog2-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.blog2-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.blog2-section-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}

.blog2-featured {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 0;
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 20px 50px rgba(15,23,42,0.1);
  border: 1px solid #eef1f6;
  transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}
.blog2-featured:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 70px rgba(15,23,42,0.14);
  color: inherit;
}
.blog2-featured-img {
  position: relative;
  overflow: hidden;
  min-height: 380px;
}
.blog2-featured-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  transition: transform 0.6s ease;
}
.blog2-featured:hover .blog2-featured-img img { transform: scale(1.06); }
.blog2-featured-tag {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.4rem 0.9rem;
  border-radius: 50px;
  box-shadow: 0 6px 16px rgba(242,101,34,0.35);
}
.blog2-featured-body {
  padding: 2.5rem 2.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.blog2-featured-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.78rem;
  color: #94a3b8;
  font-weight: 500;
  margin-bottom: 1rem;
}
.blog2-featured-meta i { margin-right: 0.35rem; color: var(--booking-accent); }
.blog2-featured-meta-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #cbd5e1;
}
.blog2-featured-title {
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
  margin-bottom: 0.85rem;
  letter-spacing: -0.01em;
}
.blog2-featured-excerpt {
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.blog2-featured-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--booking-accent);
  transition: gap 0.3s;
}
.blog2-featured:hover .blog2-featured-cta { gap: 0.85rem; }

/* Main section */
.blog2-main {
  padding: 5rem 0;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

/* Toolbar */
.blog2-toolbar {
  background: #fff;
  border-radius: 1.25rem;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 10px 30px rgba(15,23,42,0.06);
  border: 1px solid #eef1f6;
  margin-bottom: 2.5rem;
}
.blog2-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.blog2-search-icon {
  position: absolute;
  left: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
  font-size: 1rem;
  pointer-events: none;
}
.blog2-search input {
  flex: 1;
  border: 1.5px solid #e2e8f0;
  background: #f8fafc;
  padding: 0.85rem 1rem 0.85rem 2.75rem;
  border-radius: 50px;
  font-size: 0.9rem;
  transition: all 0.3s;
}
.blog2-search input:focus {
  outline: none;
  border-color: var(--booking-accent);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(242,101,34,0.08);
}
.blog2-search-btn {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  border: none;
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.85rem 1.75rem;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 8px 20px rgba(242,101,34,0.22);
}
.blog2-search-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(242,101,34,0.32);
}

.blog2-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px dashed #e2e8f0;
}
.blog2-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.25s;
}
.blog2-chip:hover {
  background: #fff;
  color: var(--booking-accent);
  border-color: var(--booking-accent);
  transform: translateY(-1px);
}
.blog2-chip.is-active {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 6px 16px rgba(242,101,34,0.25);
}

/* Layout */
.blog2-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  align-items: start;
}

/* Results info */
.blog2-results-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  padding: 0.75rem 1rem;
  background: rgba(242,101,34,0.06);
  border-radius: 0.75rem;
  font-size: 0.85rem;
  color: #475569;
}
.blog2-results-info strong { color: var(--booking-accent); font-weight: 800; }
.blog2-results-clear {
  color: var(--booking-accent);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.82rem;
}
.blog2-results-clear:hover { text-decoration: underline; }

/* Post grid */
.blog2-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.blog2-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.blog2-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}
.blog2-card-img {
  position: relative;
  height: 210px;
  overflow: hidden;
}
.blog2-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.55s ease;
}
.blog2-card:hover .blog2-card-img img { transform: scale(1.07); }
.blog2-card-tag {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: 50px;
}
.blog2-card-body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog2-card-meta {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  color: #94a3b8;
  font-weight: 500;
  margin-bottom: 0.6rem;
}
.blog2-card-meta i { margin-right: 0.3rem; color: var(--booking-accent); }
.blog2-card-meta-dot {
  width: 3px; height: 3px;
  background: #cbd5e1;
  border-radius: 50%;
}
.blog2-card-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.35;
  margin-bottom: 0.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog2-card-excerpt {
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog2-card-link {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--booking-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  transition: gap 0.3s;
}
.blog2-card:hover .blog2-card-link { gap: 0.4rem; }

/* Empty state */
.blog2-empty {
  text-align: center;
  padding: 4rem 2rem;
  background: #fff;
  border: 1px dashed #e2e8f0;
  border-radius: 1.25rem;
}
.blog2-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: #cbd5e1;
}
.blog2-empty h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.5rem;
}
.blog2-empty p {
  font-size: 0.9rem;
  color: #94a3b8;
  margin-bottom: 1.25rem;
}
.blog2-empty-btn {
  display: inline-flex;
  align-items: center;
  background: var(--booking-accent);
  color: #fff;
  padding: 0.65rem 1.4rem;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.blog2-empty-btn:hover {
  background: #ff8a50;
  color: #fff;
  transform: translateY(-2px);
}

/* Pagination */
.blog2-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2.5rem;
  flex-wrap: wrap;
}
.blog2-page {
  min-width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.85rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  color: #475569;
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
  transition: all 0.25s;
}
.blog2-page:hover {
  background: #f8fafc;
  border-color: var(--booking-accent);
  color: var(--booking-accent);
  transform: translateY(-2px);
}
.blog2-page.is-active {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 20px rgba(242,101,34,0.28);
}
.blog2-page--nav { font-size: 0.95rem; }

/* ===== Sidebar ===== */
.blog2-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: sticky;
  top: 90px;
}
.blog2-widget {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  padding: 1.5rem 1.35rem;
  box-shadow: 0 10px 30px rgba(15,23,42,0.04);
}
.blog2-widget-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 1.25rem;
}
.blog2-widget-title i { color: var(--booking-accent); font-size: 1rem; }

/* Top posts */
.blog2-top-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.blog2-top-item {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.75rem;
  margin: -0.75rem;
  border-radius: 0.75rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s;
}
.blog2-top-item:hover {
  background: #f8fafc;
  color: inherit;
}
.blog2-top-rank {
  flex-shrink: 0;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 800;
  color: #cbd5e1;
  line-height: 1;
  transition: color 0.3s;
}
.blog2-top-item:hover .blog2-top-rank { color: var(--booking-accent); }
.blog2-top-info { min-width: 0; }
.blog2-top-info h4 {
  font-size: 0.83rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 0.3rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog2-top-date {
  display: flex;
  align-items: center;
  font-size: 0.7rem;
  color: #94a3b8;
}
.blog2-top-date i { margin-right: 0.3rem; font-size: 0.7rem; }

/* Newsletter widget */
.blog2-widget--newsletter {
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 100%);
  border-color: transparent;
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.blog2-widget--newsletter::before {
  content: '';
  position: absolute;
  top: -50px; right: -50px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244,163,0,0.25) 0%, transparent 70%);
  pointer-events: none;
}
.blog2-nl-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 0.85rem;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  position: relative;
}
.blog2-nl-title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 0.5rem;
  position: relative;
}
.blog2-nl-sub {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.75);
  margin-bottom: 1.1rem;
  line-height: 1.5;
  position: relative;
}
.blog2-nl-form {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 50px;
  padding: 0.3rem 0.3rem 0.3rem 1rem;
  margin-bottom: 0.85rem;
  position: relative;
  backdrop-filter: blur(6px);
}
.blog2-nl-form input {
  flex: 1;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 0.82rem;
  padding: 0.45rem 0;
  outline: none;
}
.blog2-nl-form input::placeholder { color: rgba(255,255,255,0.55); }
.blog2-nl-form button {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--oh-gold);
  color: #1a1510;
  border: none;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.blog2-nl-form button:hover {
  background: #fff;
  transform: scale(1.05);
}
.blog2-nl-note {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.55);
  position: relative;
}

/* Instagram grid */
.blog2-insta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
}
.blog2-insta-tile {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  display: block;
}
.blog2-insta-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.blog2-insta-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(242,101,34,0.85), rgba(244,163,0,0.85));
  color: #fff;
  font-size: 1.3rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.blog2-insta-tile:hover img { transform: scale(1.1); }
.blog2-insta-tile:hover .blog2-insta-overlay { opacity: 1; }

/* CTA band */
.blog2-cta {
  position: relative;
  padding: 4.5rem 0;
  background: linear-gradient(135deg, #1a1f3a 0%, #0b4f9c 60%, #0a2744 100%);
  overflow: hidden;
}
.blog2-cta-bg-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
}
.blog2-cta-bg-blob--a {
  top: -100px; left: -80px;
  width: 340px; height: 340px;
  background: radial-gradient(circle, rgba(244,163,0,0.22) 0%, transparent 70%);
}
.blog2-cta-bg-blob--b {
  bottom: -100px; right: -60px;
  width: 340px; height: 340px;
  background: radial-gradient(circle, rgba(242,101,34,0.2) 0%, transparent 70%);
}
.blog2-cta-card {
  position: relative;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 2.5rem;
  align-items: center;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1.5rem;
  padding: 2.75rem 2.5rem;
  backdrop-filter: blur(12px);
}
.blog2-cta-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(244,163,0,0.3);
}
.blog2-cta-title {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.25;
  margin: 0 0 0.75rem;
}
.blog2-cta-sub {
  color: rgba(255,255,255,0.72);
  font-size: 0.95rem;
  line-height: 1.65;
  margin: 0;
  max-width: 480px;
}
.blog2-cta-right {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.blog2-cta-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.85rem 1.75rem;
  border-radius: 50px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.blog2-cta-btn--primary {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 10px 24px rgba(244,163,0,0.35);
}
.blog2-cta-btn--primary:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
}
.blog2-cta-btn--ghost {
  background: rgba(255,255,255,0.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.2);
}
.blog2-cta-btn--ghost:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-color: rgba(255,255,255,0.4);
  transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 1199.98px) {
  .blog2-layout { grid-template-columns: 1fr 280px; }
}
@media (max-width: 991.98px) {
  .blog2-hero { min-height: 60vh; }
  .blog2-hero-inner { padding: 5rem 0 4rem; }
  .blog2-hero-stats { padding: 0.85rem 1.25rem; gap: 1.25rem; }
  .blog2-featured { grid-template-columns: 1fr; }
  .blog2-featured-img { min-height: 280px; }
  .blog2-featured-body { padding: 2rem 1.75rem; }
  .blog2-layout { grid-template-columns: 1fr; }
  .blog2-sidebar { position: static; }
  .blog2-cta-card { grid-template-columns: 1fr; text-align: center; padding: 2.25rem 1.75rem; }
  .blog2-cta-sub { margin-left: auto; margin-right: auto; }
  .blog2-cta-right { justify-content: center; }
}
@media (max-width: 575.98px) {
  .blog2-featured-section { padding: 3rem 0 0; }
  .blog2-main { padding: 3rem 0; }
  .blog2-grid { grid-template-columns: 1fr; }
  .blog2-toolbar { padding: 1rem; }
  .blog2-search { flex-direction: column; }
  .blog2-search input { width: 100%; padding-left: 2.75rem; }
  .blog2-search-btn { width: 100%; }
  .blog2-hero-stats { width: 100%; justify-content: space-between; padding: 0.85rem; }
  .blog2-hero-stat-div { display: none; }
  .blog2-hero-stat-num { font-size: 1rem; }
  .blog2-hero-stat-label { font-size: 0.62rem; }
  .blog2-cta { padding: 3rem 0; }
  .blog2-cta-btn { flex: 1; justify-content: center; }
}

/* ========== HOTEL PAGE — RELATED STAYS ========== */
.hbc-related {
  padding: 5rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  border-top: 1px solid #eef1f6;
}
.hbc-related-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.hbc-related-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.hbc-related-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.hbc-related-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
}
.hbc-related-sub {
  color: #64748b;
  font-size: 0.9rem;
  margin: 0;
  max-width: 520px;
}
.hbc-related-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
  padding-bottom: 0.5rem;
}
.hbc-related-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }

/* Card grid */
.hbc-related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.hbc-related-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.hbc-related-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}
.hbc-related-img-wrap {
  position: relative;
  height: 210px;
  overflow: hidden;
}
.hbc-related-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.55s ease;
}
.hbc-related-card:hover .hbc-related-img-wrap img { transform: scale(1.07); }
.hbc-related-badge {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  display: inline-flex;
  align-items: center;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.3rem 0.65rem;
  border-radius: 50px;
}
.hbc-related-score {
  position: absolute;
  top: 0.8rem;
  right: 0.8rem;
  display: inline-flex;
  align-items: center;
  background: var(--oh-forest);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.3rem 0.55rem;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(11,79,156,0.3);
}
.hbc-related-score i { color: #f59e0b; font-size: 0.65rem; }
.hbc-related-body {
  padding: 1.1rem 1.15rem 1.15rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.hbc-related-name {
  font-size: 1.02rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.3rem;
  line-height: 1.3;
}
.hbc-related-loc {
  font-size: 0.77rem;
  color: #94a3b8;
  margin: 0 0 1rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.hbc-related-loc i { color: var(--booking-accent); font-size: 0.72rem; }
.hbc-related-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 0.85rem;
  border-top: 1px dashed #e2e8f0;
}
.hbc-related-feats {
  display: flex;
  gap: 0.4rem;
}
.hbc-related-feats span {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #64748b;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  transition: all 0.25s;
}
.hbc-related-card:hover .hbc-related-feats span {
  background: #fff;
  color: var(--booking-accent);
}
.hbc-related-cta {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--booking-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  transition: gap 0.3s;
}
.hbc-related-card:hover .hbc-related-cta { gap: 0.4rem; }

@media (max-width: 1199.98px) {
  .hbc-related-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
  .hbc-related { padding: 3rem 0; }
  .hbc-related-grid { grid-template-columns: 1fr; }
  .hbc-related-img-wrap { height: 200px; }
}

/* ========== DESTINATION DETAILS HERO v2 ========== */
.dest2-hero {
  position: relative;
  padding: 2.25rem 0 2rem;
  background: linear-gradient(180deg, #fafbfc 0%, #f1f5f9 100%);
  overflow: hidden;
}
.dest2-hero-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(11,79,156,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,79,156,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  pointer-events: none;
}
.dest2-hero-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.dest2-hero-blob--a {
  top: -120px; left: -100px;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(242,101,34,0.14) 0%, transparent 70%);
}
.dest2-hero-blob--b {
  bottom: -120px; right: -80px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(11,79,156,0.15) 0%, transparent 70%);
}
.dest2-hero-inner { position: relative; z-index: 1; }

.dest2-hero-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2.5rem;
  align-items: center;
}

/* ----- Content side ----- */
.dest2-hero-content { min-width: 0; }
.dest2-hero-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #64748b;
  background: #fff;
  border: 1px solid #eef1f6;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(15,23,42,0.05);
}
.dest2-hero-crumb a {
  color: #64748b;
  text-decoration: none;
  transition: color 0.2s;
}
.dest2-hero-crumb a:hover { color: var(--booking-accent); }
.dest2-hero-crumb span { color: var(--booking-accent); font-weight: 700; }
.dest2-hero-crumb-sep { font-size: 0.6rem; color: #cbd5e1; }

.dest2-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(242,101,34,0.08);
  border: 1px solid rgba(242,101,34,0.18);
  color: var(--booking-accent);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
}
.dest2-hero-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--booking-accent);
  box-shadow: 0 0 0 4px rgba(242,101,34,0.15);
  animation: dest2HeroDotPulse 1.8s ease-in-out infinite;
}
@keyframes dest2HeroDotPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(242,101,34,0.15); }
  50%      { box-shadow: 0 0 0 8px rgba(242,101,34,0.05); }
}

.dest2-hero-title {
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 800;
  color: #0a1628;
  line-height: 1;
  letter-spacing: -0.025em;
  margin: 0 0 0.35rem;
}
.dest2-hero-title-accent { color: var(--booking-accent); }
.dest2-hero-subtitle {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--oh-forest);
  margin: 0 0 0.85rem;
  letter-spacing: 0.02em;
}
.dest2-hero-lead {
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.6;
  margin: 0 0 1.25rem;
  max-width: 540px;
}

/* Buttons */
.dest2-hero-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}
.dest2-hero-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 1.4rem;
  border-radius: 50px;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.dest2-hero-btn--primary {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  box-shadow: 0 12px 28px rgba(242,101,34,0.32);
}
.dest2-hero-btn--primary:hover {
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(242,101,34,0.42);
}
.dest2-hero-btn-dot {
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
  margin-left: 0.65rem;
  opacity: 0.7;
}
.dest2-hero-btn--ghost {
  background: #fff;
  color: var(--oh-forest);
  border: 1.5px solid #e2e8f0;
}
.dest2-hero-btn--ghost:hover {
  background: var(--oh-forest);
  color: #fff;
  border-color: var(--oh-forest);
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(11,79,156,0.22);
}

/* Metrics */
.dest2-hero-metrics {
  display: flex;
  gap: 1.75rem;
  padding-top: 0.85rem;
  border-top: 1px dashed #e2e8f0;
}
.dest2-hero-metric { display: flex; flex-direction: column; }
.dest2-hero-metric-num {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.dest2-hero-metric-num i {
  color: #f59e0b;
  font-size: 0.85rem;
  margin-left: 0.2rem;
}
.dest2-hero-metric-label {
  font-size: 0.72rem;
  color: #94a3b8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ----- Visual side ----- */
.dest2-hero-visual {
  position: relative;
  min-width: 0;
}
.dest2-hero-img-frame {
  position: relative;
  aspect-ratio: 16 / 10;
  max-height: 320px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(11,79,156,0.15);
  background: #f1f5f9;
  transform: rotate(-1deg);
}
.dest2-hero-img-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.dest2-hero-img-frame:hover img { transform: scale(1.05); }
.dest2-hero-img-chip {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0.45rem 0.9rem;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.15);
}
.dest2-hero-img-chip i { color: var(--oh-gold); }

/* Floating cards */
.dest2-hero-float {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 0.9rem 1.15rem;
  box-shadow: 0 16px 36px rgba(15,23,42,0.12);
  z-index: 2;
  animation: dest2HeroFloat 5s ease-in-out infinite;
}
.dest2-hero-float--rating {
  top: 8%;
  right: -1.5rem;
}
.dest2-hero-float--guests {
  bottom: 10%;
  left: -2rem;
  animation-delay: -2.5s;
}
@keyframes dest2HeroFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}
.dest2-hero-float-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  color: #fff;
  flex-shrink: 0;
}
.dest2-hero-float-icon--gold {
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  box-shadow: 0 6px 14px rgba(244,163,0,0.32);
}
.dest2-hero-float-num {
  display: block;
  font-size: 0.92rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.dest2-hero-float-label {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 600;
}

/* Avatar stack */
.dest2-hero-float-avatars {
  display: flex;
  flex-shrink: 0;
}
.dest2-hero-float-avatars img {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px solid #fff;
  object-fit: cover;
  box-shadow: 0 3px 8px rgba(15,23,42,0.1);
}
.dest2-hero-float-avatars img + img { margin-left: -12px; }

/* Decorative rings */
.dest2-hero-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px dashed rgba(242,101,34,0.35);
  pointer-events: none;
}
.dest2-hero-ring--a {
  width: 90px;
  height: 90px;
  top: -30px;
  right: 10%;
  animation: dest2HeroSpin 22s linear infinite;
}
.dest2-hero-ring--b {
  width: 130px;
  height: 130px;
  bottom: -40px;
  right: -40px;
  border-color: rgba(11,79,156,0.3);
  animation: dest2HeroSpin 30s linear infinite reverse;
}
@keyframes dest2HeroSpin {
  to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 1199.98px) {
  .dest2-hero-grid { gap: 2.5rem; }
}
@media (max-width: 991.98px) {
  .dest2-hero { padding: 5rem 0 3.5rem; }
  .dest2-hero-grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .dest2-hero-visual { max-width: 440px; margin: 0 auto; }
  .dest2-hero-img-frame { aspect-ratio: 4 / 3; transform: rotate(-1deg); }
}
@media (max-width: 575.98px) {
  .dest2-hero { padding: 4rem 0 3rem; }
  .dest2-hero-metrics { gap: 1.5rem; }
  .dest2-hero-metric-num { font-size: 1.3rem; }
  .dest2-hero-float { padding: 0.65rem 0.85rem; }
  .dest2-hero-float-icon { width: 36px; height: 36px; font-size: 0.95rem; }
  .dest2-hero-float-num { font-size: 0.82rem; }
  .dest2-hero-float-label { font-size: 0.65rem; }
  .dest2-hero-float--rating { right: -0.5rem; top: 4%; }
  .dest2-hero-float--guests { left: -0.5rem; bottom: 6%; }
  .dest2-hero-float-avatars img { width: 28px; height: 28px; }
  .dest2-hero-actions { width: 100%; }
  .dest2-hero-btn { flex: 1; justify-content: center; }
}

/* ========== DESTINATION DETAILS MAIN ========== */
.dest2-main {
  padding: 2.5rem 0 4rem;
  background: #fff;
}

/* 2x2 photo grid — each cell ~380x150 */
.dest2-photo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0.65rem;
  max-width: 780px;
  margin-bottom: 1.25rem;
}
.dest2-photo-cell {
  position: relative;
  height: 150px;
  border-radius: 0.85rem;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15,23,42,0.08);
  background: #f1f5f9;
}
.dest2-photo-cell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.dest2-photo-cell:hover img { transform: scale(1.05); }
.dest2-photo-cell::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.45) 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}
.dest2-photo-cell:hover::after { opacity: 1; }

/* Only the first cell gets the chip, so keep its gradient always on */
.dest2-photo-cell:first-child::after { opacity: 1; }
.dest2-photo-chip {
  position: absolute;
  bottom: 0.7rem;
  left: 0.7rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,0.14);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.38rem 0.8rem;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.2);
}

/* Content card */
.dest2-content-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1rem;
  padding: 1.4rem 1.35rem;
  box-shadow: 0 6px 22px rgba(15,23,42,0.04);
  margin-bottom: 1.25rem;
}

/* Panel content helpers */
.dest2-panel-lead {
  font-size: 0.92rem;
  color: #475569;
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.dest2-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}
.dest2-info-card {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  border-radius: 0.85rem;
  transition: all 0.3s;
}
.dest2-info-card:hover {
  background: #fff;
  box-shadow: 0 8px 20px rgba(15,23,42,0.06);
  transform: translateY(-2px);
}
.dest2-info-icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #fff;
}
.dest2-info-card--blue .dest2-info-icon { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); }
.dest2-info-card--accent .dest2-info-icon { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); }
.dest2-info-card--gold .dest2-info-icon { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); color: #1a1510; }
.dest2-info-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--booking-accent);
  margin-bottom: 0.3rem;
}
.dest2-info-text {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0;
  line-height: 1.55;
}

/* Tag row */
.dest2-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px dashed #e2e8f0;
}
.dest2-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(11,79,156,0.06);
  color: var(--oh-forest);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.4rem 0.75rem;
  border-radius: 50px;
}
.dest2-tag i { color: var(--booking-accent); font-size: 0.72rem; }

/* Tabs */
.dest2-tabs {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding-top: 0.5rem;
  padding-bottom: 1rem;
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid #f1f5f9;
  overflow-x: auto;
}
.dest2-tab {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  color: #475569;
  font-size: 0.74rem;
  font-weight: 600;
  padding: 0.45rem 0.85rem;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.25s;
  font-family: inherit;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}
.dest2-tab i { font-size: 0.78rem; color: #94a3b8; transition: color 0.25s; }
.dest2-tab:hover {
  background: #fff;
  color: var(--booking-accent);
  border-color: var(--booking-accent);
  transform: translateY(-1px);
}
.dest2-tab:hover i { color: var(--booking-accent); }
.dest2-tab.is-active {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 6px 16px rgba(242,101,34,0.28);
}
.dest2-tab.is-active i { color: #fff; }

/* ========== Sidebar ========== */
.dest2-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: 90px;
}
.dest2-side-card {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1rem;
  padding: 1.25rem 1.15rem;
  box-shadow: 0 6px 22px rgba(15,23,42,0.04);
}

/* Concierge card */
.dest2-side-concierge {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #0a2744 0%, #0b4f9c 60%, #0a63c9 100%);
  border-color: transparent;
  color: #fff;
  padding: 1.4rem 1.25rem;
}
.dest2-side-concierge-bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(244,163,0,0.25) 0%, transparent 40%),
    radial-gradient(circle at 15% 85%, rgba(242,101,34,0.18) 0%, transparent 45%);
  pointer-events: none;
}
.dest2-side-concierge > * { position: relative; }
.dest2-side-concierge-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--oh-gold), #fbbf24);
  color: #1a1510;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  margin-bottom: 0.75rem;
  box-shadow: 0 6px 14px rgba(244,163,0,0.32);
}
.dest2-side-kicker {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--oh-gold);
  margin-bottom: 0.35rem;
}
.dest2-side-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 0.4rem;
}
.dest2-side-text {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.75);
  line-height: 1.55;
  margin-bottom: 0.9rem;
}
.dest2-side-actions {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.dest2-side-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1rem;
  border-radius: 50px;
  font-size: 0.76rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.dest2-side-btn--primary {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 8px 20px rgba(244,163,0,0.35);
}
.dest2-side-btn--primary:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
}
.dest2-side-btn--line {
  background: rgba(255,255,255,0.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.2);
}
.dest2-side-btn--line:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-color: rgba(255,255,255,0.4);
}
.dest2-side-btn--wa {
  background: #25d366;
  color: #fff;
  box-shadow: 0 8px 18px rgba(37,211,102,0.3);
}
.dest2-side-btn--wa:hover {
  background: #1ea956;
  color: #fff;
  transform: translateY(-2px);
}

/* Card title (for secondary sidebar cards) */
.dest2-side-card-title {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.85rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.85rem;
}
.dest2-side-card-title i { color: var(--booking-accent); }

/* You may also like items */
.dest2-side-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.dest2-side-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem;
  margin: -0.25rem;
  background: #f8fafc;
  border: 1px solid transparent;
  border-radius: 0.85rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s;
}
.dest2-side-item:hover {
  background: #fff;
  border-color: #eef1f6;
  box-shadow: 0 8px 20px rgba(15,23,42,0.06);
  color: inherit;
  transform: translateX(2px);
}
.dest2-side-item img {
  width: 56px;
  height: 48px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.dest2-side-item-info {
  min-width: 0;
  flex: 1;
}
.dest2-side-item-info h6 {
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.2rem;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dest2-side-item-loc {
  display: flex;
  align-items: center;
  font-size: 0.7rem;
  color: #94a3b8;
  margin-bottom: 0.2rem;
}
.dest2-side-item-loc i { margin-right: 0.25rem; font-size: 0.65rem; color: var(--booking-accent); }
.dest2-side-item-price {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--oh-forest);
}
.dest2-side-item-price small {
  font-weight: 500;
  color: #94a3b8;
}
.dest2-side-item-arrow {
  color: #cbd5e1;
  font-size: 1rem;
  transition: all 0.3s;
}
.dest2-side-item:hover .dest2-side-item-arrow {
  color: var(--booking-accent);
  transform: translateX(3px);
}

/* Nearby grid */
.dest2-side-nearby-grid {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.dest2-side-nearby-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.85rem;
  background: #f8fafc;
  border: 1px solid #eef1f6;
  border-radius: 0.75rem;
  transition: all 0.3s;
}
.dest2-side-nearby-item:hover {
  background: #fff;
  border-color: transparent;
  box-shadow: 0 6px 16px rgba(15,23,42,0.06);
}
.dest2-side-nearby-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(244,163,0,0.12), rgba(244,163,0,0.05));
  color: #d97706;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.dest2-side-nearby-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e293b;
}
.dest2-side-nearby-dist {
  display: block;
  font-size: 0.72rem;
  color: #94a3b8;
}

/* Responsive */
@media (max-width: 991.98px) {
  .dest2-main { padding: 2rem 0 3rem; }
  .dest2-photo-grid { max-width: 100%; }
  .dest2-photo-cell { height: 170px; }
  .dest2-sidebar { position: static; }
  .dest2-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .dest2-photo-cell { height: 130px; }
  .dest2-content-card { padding: 1.1rem; }
  .dest2-tab { font-size: 0.7rem; padding: 0.4rem 0.75rem; }
}

/* ========== DESTINATIONS PAGE — POPULAR ========== */
.destpage-pop {
  padding: 5rem 0;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}
.destpage-pop-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.destpage-pop-kicker {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.5rem;
}
.destpage-pop-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.destpage-pop-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
}
.destpage-pop-sub {
  color: #64748b;
  font-size: 0.92rem;
  margin: 0;
  max-width: 520px;
}
.destpage-pop-viewall {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--oh-forest);
  text-decoration: none;
  padding-bottom: 0.35rem;
}
.destpage-pop-viewall:hover { text-decoration: underline; color: var(--oh-forest-2); }

/* Adaptive card grid — fills available space without gaps */
.destpage-pop-grid2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}
.destpage-pop-card2 {
  position: relative;
  display: block;
  border-radius: 1.25rem;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  height: 360px;
  box-shadow: 0 14px 38px rgba(15,23,42,0.1);
  transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}
.destpage-pop-card2:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 56px rgba(15,23,42,0.18);
  color: #fff;
}
.destpage-pop-card2-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
  z-index: 0;
}
.destpage-pop-card2:hover .destpage-pop-card2-img {
  transform: scale(1.08);
}
.destpage-pop-card2::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 60%, rgba(0,0,0,0.85) 100%);
  z-index: 1;
}
.destpage-pop-card2-num {
  position: absolute;
  top: 1.1rem;
  right: 1.1rem;
  z-index: 2;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  padding: 0.35rem 0.75rem;
  border-radius: 10px;
  line-height: 1;
}
.destpage-pop-card2-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 1.5rem 1.35rem 1.35rem;
  display: flex;
  flex-direction: column;
}
.destpage-pop-card2-chip {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  background: rgba(244,163,0,0.2);
  border: 1px solid rgba(244,163,0,0.45);
  color: var(--oh-gold);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  border-radius: 50px;
  margin-bottom: 0.75rem;
  backdrop-filter: blur(6px);
}
.destpage-pop-card2-name {
  font-size: 1.55rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 0.35rem;
  line-height: 1.1;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.destpage-pop-card2-sub {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.55;
  margin: 0 0 1rem;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.4s ease;
}
.destpage-pop-card2:hover .destpage-pop-card2-sub {
  max-height: 80px;
  opacity: 1;
}
.destpage-pop-card2-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--oh-gold);
  padding-top: 0.5rem;
  border-top: 1px solid rgba(255,255,255,0.15);
  transition: gap 0.3s;
}
.destpage-pop-card2:hover .destpage-pop-card2-cta { gap: 0.5rem; }

@media (max-width: 767.98px) {
  .destpage-pop { padding: 3rem 0; }
  .destpage-pop-grid2 {
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
  }
  .destpage-pop-card2 { height: 260px; }
  .destpage-pop-card2-name { font-size: 1.15rem; }
  .destpage-pop-card2-sub { display: none; }
  .destpage-pop-card2-num { font-size: 1.15rem; padding: 0.25rem 0.6rem; }
}

/* ========== ROOM DETAILS HERO v2 ========== */
.roomd2-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  min-height: 70vh;
  display: flex;
  align-items: center;
}
.roomd2-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: roomd2HeroZoom 18s ease-out infinite alternate;
}
@keyframes roomd2HeroZoom {
  0%   { transform: scale(1.05); }
  100% { transform: scale(1.12); }
}
.roomd2-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(10,22,40,0.85) 0%, rgba(10,39,68,0.7) 40%, rgba(11,79,156,0.55) 70%, rgba(0,0,0,0.8) 100%);
}
.roomd2-hero-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 85% 15%, rgba(244,163,0,0.2) 0%, transparent 45%),
    radial-gradient(circle at 10% 85%, rgba(242,101,34,0.16) 0%, transparent 45%);
  pointer-events: none;
}
.roomd2-hero-inner {
  position: relative;
  z-index: 2;
  padding: 6.5rem 0 4.5rem;
}

/* Breadcrumb */
.roomd2-hero-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  padding: 0.5rem 1.1rem;
  border-radius: 50px;
  margin-bottom: 2rem;
  max-width: 100%;
  overflow-x: auto;
  white-space: nowrap;
}
.roomd2-hero-crumb a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s; }
.roomd2-hero-crumb a:hover { color: #fff; }
.roomd2-hero-crumb span { color: #fff; font-weight: 600; }
.roomd2-hero-crumb-sep { font-size: 0.55rem; color: rgba(255,255,255,0.3); }

/* Hero grid */
.roomd2-hero-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 2.5rem;
  align-items: end;
}

/* Left content */
.roomd2-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(244,163,0,0.15);
  border: 1px solid rgba(244,163,0,0.35);
  color: var(--oh-gold);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.45rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.1rem;
  backdrop-filter: blur(6px);
}
.roomd2-hero-title {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 0.6rem;
  text-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.roomd2-hero-hotel {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255,255,255,0.82);
  font-size: 0.95rem;
  margin: 0 0 1.5rem;
}
.roomd2-hero-hotel i { color: var(--oh-gold); }

/* Feature chips */
.roomd2-hero-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.roomd2-hero-features span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.9);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.45rem 0.85rem;
  border-radius: 50px;
  backdrop-filter: blur(6px);
}
.roomd2-hero-features i { color: var(--oh-gold); }

/* Action buttons */
.roomd2-hero-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.roomd2-hero-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.5rem;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.roomd2-hero-btn--primary {
  background: var(--oh-gold);
  color: #1a1510;
  box-shadow: 0 10px 24px rgba(244,163,0,0.35);
}
.roomd2-hero-btn--primary:hover {
  background: #fff;
  color: #1a1510;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,0.25);
}
.roomd2-hero-btn--wa {
  background: #25d366;
  color: #fff;
  box-shadow: 0 10px 24px rgba(37,211,102,0.3);
}
.roomd2-hero-btn--wa:hover {
  background: #1ea956;
  color: #fff;
  transform: translateY(-2px);
}

/* ----- Right: Price card ----- */
.roomd2-hero-price-card {
  position: relative;
  background: linear-gradient(145deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04));
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 1.25rem;
  padding: 1.75rem 1.5rem;
  backdrop-filter: blur(20px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.35);
  overflow: hidden;
}
.roomd2-hero-price-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--oh-gold), var(--booking-accent));
}
.roomd2-hero-price-card::after {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244,163,0,0.2) 0%, transparent 70%);
  pointer-events: none;
}
.roomd2-hero-price-card > * { position: relative; z-index: 1; }
.roomd2-hero-price-label {
  display: block;
  font-size: 0.68rem;
  color: rgba(255,255,255,0.6);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 0.35rem;
}
.roomd2-hero-price-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.15rem;
}
.roomd2-hero-price-was {
  color: rgba(255,255,255,0.5);
  font-size: 0.95rem;
  text-decoration: line-through;
}
.roomd2-hero-discount {
  display: inline-block;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  padding: 0.25rem 0.6rem;
  border-radius: 6px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.roomd2-hero-price-now {
  font-family: var(--font-serif);
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--oh-gold);
  line-height: 1;
  margin-bottom: 0.4rem;
}
.roomd2-hero-price-unit {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255,255,255,0.6);
  margin-left: 0.25rem;
}
.roomd2-hero-price-tax {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.55);
  margin-bottom: 1.1rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px dashed rgba(255,255,255,0.15);
}
.roomd2-hero-price-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.85rem 1.5rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
  margin-bottom: 1rem;
  box-shadow: 0 10px 24px rgba(242,101,34,0.32);
}
.roomd2-hero-price-btn:hover {
  transform: translateY(-2px);
  color: #fff;
  box-shadow: 0 14px 30px rgba(242,101,34,0.42);
}
.roomd2-hero-price-trust {
  display: flex;
  justify-content: center;
  gap: 1rem;
  font-size: 0.72rem;
  color: rgba(255,255,255,0.55);
  font-weight: 600;
}
.roomd2-hero-price-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.roomd2-hero-price-trust i { color: var(--oh-gold); font-size: 0.8rem; }

/* Responsive */
@media (max-width: 991.98px) {
  .roomd2-hero { min-height: auto; }
  .roomd2-hero-inner { padding: 5.5rem 0 3rem; }
  .roomd2-hero-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .roomd2-hero-price-card { max-width: 420px; }
}
@media (max-width: 575.98px) {
  .roomd2-hero-inner { padding: 5rem 0 2.5rem; }
  .roomd2-hero-price-now { font-size: 1.8rem; }
  .roomd2-hero-actions { width: 100%; }
  .roomd2-hero-btn { flex: 1; justify-content: center; }
}

/* ========== ROOM DETAILS HERO v3 ========== */
.rmh {
  position: relative;
  padding: 2.5rem 0 3rem;
  background:
    linear-gradient(135deg, #eef3fb 0%, #f5ecff 50%, #fff4e6 100%);
  overflow: hidden;
}
.rmh-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(11,79,156,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,79,156,0.04) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  pointer-events: none;
}
.rmh-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.rmh-blob--a {
  top: -120px; left: -100px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(242,101,34,0.22) 0%, transparent 70%);
}
.rmh-blob--b {
  bottom: -140px; right: -80px;
  width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(11,79,156,0.22) 0%, transparent 70%);
}
.rmh-inner { position: relative; z-index: 1; }

/* Breadcrumb */
.rmh-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.76rem;
  font-weight: 500;
  color: #64748b;
  background: #fff;
  border: 1px solid #eef1f6;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.5rem;
  max-width: 100%;
  overflow-x: auto;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(15,23,42,0.05);
}
.rmh-crumb a { color: #64748b; text-decoration: none; transition: color 0.2s; }
.rmh-crumb a:hover { color: var(--booking-accent); }
.rmh-crumb span { color: var(--booking-accent); font-weight: 700; }
.rmh-crumb-sep { font-size: 0.55rem; color: #cbd5e1; }

/* Layout */
.rmh-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2.5rem;
  align-items: center;
}

/* ----- Left content ----- */
.rmh-badges {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.rmh-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.4rem 0.85rem;
  border-radius: 50px;
}
.rmh-badge--verified {
  background: rgba(16,185,129,0.1);
  color: #059669;
  border: 1px solid rgba(16,185,129,0.25);
}
.rmh-badge--rating {
  background: rgba(244,163,0,0.1);
  color: #d97706;
  border: 1px solid rgba(244,163,0,0.25);
}
.rmh-badge i { font-size: 0.75rem; }

.rmh-title {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800;
  color: #0a1628;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
}
.rmh-hotel {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: #475569;
  font-size: 0.9rem;
  margin: 0 0 1rem;
}
.rmh-hotel i { color: var(--booking-accent); }
.rmh-hotel strong { color: #0f172a; font-weight: 700; }

.rmh-lead {
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.65;
  margin: 0 0 1.5rem;
  max-width: 520px;
}

/* Feature grid */
.rmh-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.75rem;
}
.rmh-feat {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 0.75rem;
  padding: 0.7rem 0.85rem;
  transition: all 0.3s;
}
.rmh-feat:hover {
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(15,23,42,0.08);
  transform: translateY(-2px);
}
.rmh-feat-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  color: #fff;
  flex-shrink: 0;
}
.rmh-feat-icon--blue   { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); }
.rmh-feat-icon--accent { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); }
.rmh-feat-icon--gold   { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); color: #1a1510; }
.rmh-feat-icon--green  { background: linear-gradient(135deg, #10b981, #34d399); }
.rmh-feat-label {
  display: block;
  font-size: 0.66rem;
  color: #94a3b8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.1rem;
}
.rmh-feat-value {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: #1e293b;
}

/* CTAs */
.rmh-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.rmh-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.5rem;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s;
}
.rmh-btn--primary {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  box-shadow: 0 10px 24px rgba(242,101,34,0.28);
}
.rmh-btn--primary:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(242,101,34,0.38);
}
.rmh-btn--ghost {
  background: #fff;
  color: var(--oh-forest);
  border: 1.5px solid #e2e8f0;
}
.rmh-btn--ghost:hover {
  background: #25d366;
  color: #fff;
  border-color: #25d366;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(37,211,102,0.3);
}

/* ----- Right visual: mosaic ----- */
.rmh-visual {
  position: relative;
  min-width: 0;
  padding: 0.5rem 0 2rem;
}
.rmh-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0.6rem;
  height: 340px;
}

/* Main large image */
.rmh-mosaic-main {
  position: relative;
  grid-row: span 2;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(11,79,156,0.18);
}
.rmh-mosaic-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}
.rmh-mosaic-main:hover img { transform: scale(1.06); }
.rmh-mosaic-tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  display: inline-flex;
  align-items: center;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.4rem 0.85rem;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.18);
}

/* Side thumbnails */
.rmh-mosaic-thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(15,23,42,0.12);
  cursor: pointer;
}
.rmh-mosaic-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.rmh-mosaic-thumb:hover img { transform: scale(1.08); }
.rmh-mosaic-thumb-label {
  position: absolute;
  bottom: 0.55rem;
  left: 0.55rem;
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  padding: 0.25rem 0.55rem;
  border-radius: 50px;
  letter-spacing: 0.02em;
}

/* "+N more" overlay thumb */
.rmh-mosaic-thumb--more::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(11,79,156,0.75), rgba(242,101,34,0.55));
  backdrop-filter: blur(2px);
  z-index: 1;
  transition: opacity 0.3s;
}
.rmh-mosaic-thumb--more:hover::before { opacity: 0.85; }
.rmh-mosaic-thumb-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.rmh-mosaic-thumb-overlay i {
  font-size: 1.25rem;
  margin-bottom: 0.1rem;
}

/* Floating feature tags */
.rmh-float-tag {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #fff;
  border: 1px solid #eef1f6;
  color: #1e293b;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 0.5rem 0.9rem;
  border-radius: 50px;
  box-shadow: 0 10px 24px rgba(15,23,42,0.12);
  animation: rmhTagFloat 5s ease-in-out infinite;
}
.rmh-float-tag i { color: var(--booking-accent); font-size: 0.82rem; }
.rmh-float-tag--a {
  top: -0.5rem;
  right: 2rem;
}
.rmh-float-tag--b {
  bottom: 4.5rem;
  left: -0.85rem;
  animation-delay: -2.5s;
}
.rmh-float-tag--b i { color: #d97706; }
@keyframes rmhTagFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}

/* Floating price card — overlaps bottom of mosaic */
.rmh-price-card {
  position: absolute;
  left: -1.25rem;
  bottom: 0;
  width: 240px;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 0.95rem 1.1rem;
  box-shadow: 0 20px 48px rgba(15,23,42,0.14);
  z-index: 3;
  animation: rmhFloat 4.5s ease-in-out infinite;
}
@keyframes rmhFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.rmh-price-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.35rem;
}
.rmh-price-label {
  font-size: 0.66rem;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.rmh-price-discount {
  background: linear-gradient(135deg, var(--booking-accent), #ff8a50);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 800;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.rmh-price-row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.rmh-price-was {
  color: #cbd5e1;
  font-size: 0.85rem;
  text-decoration: line-through;
}
.rmh-price-now {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--booking-accent);
  line-height: 1;
}
.rmh-price-unit {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  color: #94a3b8;
  margin-left: 0.2rem;
}
.rmh-price-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2));
  color: #fff;
  font-weight: 700;
  font-size: 0.78rem;
  padding: 0.6rem 1rem;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s;
  box-shadow: 0 8px 18px rgba(11,79,156,0.28);
}
.rmh-price-btn:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(11,79,156,0.38);
}

/* Responsive */
@media (max-width: 1199.98px) {
  .rmh-grid { gap: 1.75rem; }
  .rmh-mosaic { height: 300px; }
  .rmh-price-card { width: 220px; }
}
@media (max-width: 991.98px) {
  .rmh { padding: 2rem 0 2.5rem; }
  .rmh-grid {
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }
  .rmh-visual { max-width: 560px; margin: 0 auto; width: 100%; }
  .rmh-mosaic { height: 280px; }
  .rmh-float-tag--a { right: 1rem; }
  .rmh-float-tag--b { left: 1rem; bottom: 5rem; }
}
@media (max-width: 575.98px) {
  .rmh-features { grid-template-columns: 1fr; }
  .rmh-actions { width: 100%; }
  .rmh-btn { flex: 1; justify-content: center; font-size: 0.78rem; padding: 0.65rem 1rem; }
  .rmh-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 180px 80px;
    height: auto;
    gap: 0.45rem;
  }
  .rmh-mosaic-main { grid-column: span 2; grid-row: auto; }
  .rmh-float-tag { display: none; }
  .rmh-price-card {
    position: static;
    width: 100%;
    margin-top: 1rem;
    animation: none;
  }
}

/* ========== CONTACT HERO v3 ========== */
.ctch {
  position: relative;
  padding: 3rem 0 3.5rem;
  background:
    linear-gradient(135deg, #eef3fb 0%, #f5ecff 45%, #fff4e6 100%);
  overflow: hidden;
}
.ctch-grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(11,79,156,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,79,156,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 70%);
  pointer-events: none;
}
.ctch-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(95px);
  pointer-events: none;
}
.ctch-blob--a {
  top: -120px; left: -80px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(242,101,34,0.24) 0%, transparent 70%);
}
.ctch-blob--b {
  bottom: -140px; right: -80px;
  width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(11,79,156,0.24) 0%, transparent 70%);
}
.ctch-inner { position: relative; z-index: 1; }

/* Breadcrumb */
.ctch-crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #64748b;
  background: #fff;
  border: 1px solid #eef1f6;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.75rem;
  box-shadow: 0 4px 12px rgba(15,23,42,0.05);
}
.ctch-crumb a { color: #64748b; text-decoration: none; transition: color 0.2s; }
.ctch-crumb a:hover { color: var(--booking-accent); }
.ctch-crumb span { color: var(--booking-accent); font-weight: 700; }
.ctch-crumb-sep { font-size: 0.55rem; color: #cbd5e1; }

.ctch-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 3.5rem;
  align-items: center;
}

/* ----- Left content ----- */
.ctch-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(242,101,34,0.08);
  border: 1px solid rgba(242,101,34,0.2);
  color: var(--booking-accent);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  margin-bottom: 1.25rem;
}
.ctch-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--booking-accent);
  box-shadow: 0 0 0 4px rgba(242,101,34,0.15);
  animation: ctchDotPulse 1.8s ease-in-out infinite;
}
@keyframes ctchDotPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(242,101,34,0.15); }
  50%      { box-shadow: 0 0 0 8px rgba(242,101,34,0.05); }
}

.ctch-title {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 800;
  color: #0a1628;
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 0 0 1rem;
}
.ctch-title-accent { color: var(--booking-accent); }

.ctch-lead {
  font-size: 0.95rem;
  color: #475569;
  line-height: 1.7;
  margin: 0 0 1.75rem;
  max-width: 560px;
}

/* Contact tiles */
.ctch-tiles {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1.5rem;
  max-width: 520px;
}
.ctch-tile {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.9rem 1.1rem;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 0.85rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s;
  box-shadow: 0 4px 14px rgba(15,23,42,0.04);
}
.ctch-tile:hover {
  transform: translateX(4px);
  box-shadow: 0 10px 28px rgba(15,23,42,0.1);
  border-color: transparent;
  color: inherit;
}
.ctch-tile-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  color: #fff;
}
.ctch-tile-icon--blue   { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); box-shadow: 0 6px 14px rgba(11,79,156,0.25); }
.ctch-tile-icon--accent { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); box-shadow: 0 6px 14px rgba(242,101,34,0.25); }
.ctch-tile-icon--green  { background: linear-gradient(135deg, #16a34a, #22c55e); box-shadow: 0 6px 14px rgba(22,163,74,0.25); }
.ctch-tile-text {
  flex: 1;
  min-width: 0;
}
.ctch-tile-label {
  display: block;
  font-size: 0.68rem;
  color: #94a3b8;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.15rem;
}
.ctch-tile-value {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #0f172a;
  word-break: break-word;
}
.ctch-tile-arrow {
  color: #cbd5e1;
  font-size: 1rem;
  transition: all 0.3s;
}
.ctch-tile:hover .ctch-tile-arrow {
  color: var(--booking-accent);
  transform: translate(2px, -2px);
}

/* Trust strip */
.ctch-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px dashed #cbd5e1;
}
.ctch-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
}
.ctch-trust i {
  color: var(--booking-accent);
  font-size: 0.88rem;
}

/* ----- Right visual ----- */
.ctch-visual {
  position: relative;
  min-width: 0;
}
.ctch-image {
  position: relative;
  aspect-ratio: 4 / 5;
  max-height: 460px;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 25px 60px rgba(11,79,156,0.2);
  transform: rotate(-1.5deg);
}
.ctch-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.ctch-image:hover img { transform: scale(1.05); }
.ctch-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(11,79,156,0.3) 100%);
  pointer-events: none;
}
.ctch-image-chip {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  display: inline-flex;
  align-items: center;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.4rem 0.85rem;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.18);
  z-index: 1;
}

/* Floating cards */
.ctch-float {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 0.9rem 1.15rem;
  box-shadow: 0 16px 36px rgba(15,23,42,0.12);
  z-index: 2;
  animation: ctchFloat 5s ease-in-out infinite;
}
.ctch-float--rating {
  top: 8%;
  right: -1.5rem;
}
.ctch-float--response {
  bottom: 10%;
  left: -2rem;
  animation-delay: -2.5s;
}
@keyframes ctchFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}
.ctch-float-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  color: #fff;
}
.ctch-float-icon--gold { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); color: #1a1510; box-shadow: 0 6px 14px rgba(244,163,0,0.35); }
.ctch-float-icon--blue { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); box-shadow: 0 6px 14px rgba(11,79,156,0.3); }
.ctch-float-num {
  display: block;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ctch-float-num small {
  font-weight: 500;
  color: #94a3b8;
  font-size: 0.72rem;
}
.ctch-float-label {
  display: block;
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 600;
}

/* Decorative rings */
.ctch-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px dashed rgba(242,101,34,0.35);
  pointer-events: none;
}
.ctch-ring--a {
  width: 100px; height: 100px;
  top: -35px;
  right: 12%;
  animation: ctchSpin 22s linear infinite;
}
.ctch-ring--b {
  width: 140px; height: 140px;
  bottom: -50px;
  right: -50px;
  border-color: rgba(11,79,156,0.3);
  animation: ctchSpin 30s linear infinite reverse;
}
@keyframes ctchSpin {
  to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 1199.98px) {
  .ctch-grid { gap: 2.5rem; }
}
@media (max-width: 991.98px) {
  .ctch { padding: 2.5rem 0 3rem; }
  .ctch-grid { grid-template-columns: 1fr; gap: 3rem; }
  .ctch-visual { max-width: 440px; margin: 0 auto; }
  .ctch-image { aspect-ratio: 16 / 11; transform: rotate(-1deg); }
  .ctch-tiles { max-width: 100%; }
}
@media (max-width: 575.98px) {
  .ctch { padding: 2rem 0 2.5rem; }
  .ctch-trust { gap: 0.75rem; }
  .ctch-trust span { font-size: 0.72rem; }
  .ctch-float { padding: 0.6rem 0.85rem; }
  .ctch-float-icon { width: 36px; height: 36px; font-size: 0.95rem; }
  .ctch-float-num { font-size: 0.82rem; }
  .ctch-float-label { font-size: 0.65rem; }
  .ctch-float--rating { right: -0.5rem; top: 4%; }
  .ctch-float--response { left: -0.5rem; bottom: 6%; }
}

/* ========== HOME STATS (Our Reach) ========== */
.home-stats {
  position: relative;
  padding: 5rem 0;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  overflow: hidden;
}
.home-stats-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}
.home-stats-blob--a {
  top: -120px; left: -100px;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(11,79,156,0.1) 0%, transparent 70%);
}
.home-stats-blob--b {
  bottom: -120px; right: -100px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(242,101,34,0.1) 0%, transparent 70%);
}
.home-stats .container { position: relative; z-index: 1; }

/* Header */
.home-stats-head {
  text-align: center;
  margin-bottom: 3rem;
}
.home-stats-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--booking-accent);
  margin-bottom: 0.75rem;
}
.home-stats-kicker-line {
  width: 28px; height: 3px; border-radius: 3px;
  background: var(--booking-accent);
}
.home-stats-title {
  font-size: clamp(1.6rem, 3.2vw, 2.25rem);
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.6rem;
  line-height: 1.2;
}
.home-stats-sub {
  color: #64748b;
  font-size: 0.95rem;
  margin: 0 auto;
  max-width: 500px;
}

/* Grid */
.home-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

/* Stat card */
.home-stat2 {
  position: relative;
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 1.25rem;
  padding: 2rem 1.75rem 1.75rem;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  text-align: left;
}
.home-stat2::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 1.25rem 1.25rem 0 0;
}
.home-stat2--blue::before   { background: linear-gradient(90deg, var(--oh-forest), var(--oh-forest-2)); }
.home-stat2--accent::before { background: linear-gradient(90deg, var(--booking-accent), #ff8a50); }
.home-stat2--gold::before   { background: linear-gradient(90deg, var(--oh-gold), #fbbf24); }
.home-stat2--green::before  { background: linear-gradient(90deg, #10b981, #34d399); }

.home-stat2:hover {
  transform: translateY(-6px);
  box-shadow: 0 25px 55px rgba(15,23,42,0.1);
  border-color: transparent;
}

/* Featured card gets a stronger initial lift */
.home-stat2--featured {
  background: linear-gradient(180deg, #fff 0%, #fff8f3 100%);
  box-shadow: 0 16px 40px rgba(242,101,34,0.1);
}

/* Icon */
.home-stat2-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #fff;
  margin-bottom: 1.25rem;
  transition: transform 0.4s ease;
}
.home-stat2:hover .home-stat2-icon {
  transform: rotate(-6deg) scale(1.05);
}
.home-stat2--blue .home-stat2-icon   { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); box-shadow: 0 10px 24px rgba(11,79,156,0.32); }
.home-stat2--accent .home-stat2-icon { background: linear-gradient(135deg, var(--booking-accent), #ff8a50); box-shadow: 0 10px 24px rgba(242,101,34,0.32); }
.home-stat2--gold .home-stat2-icon   { background: linear-gradient(135deg, var(--oh-gold), #fbbf24); color: #1a1510; box-shadow: 0 10px 24px rgba(244,163,0,0.32); }
.home-stat2--green .home-stat2-icon  { background: linear-gradient(135deg, #10b981, #34d399); box-shadow: 0 10px 24px rgba(16,185,129,0.32); }

/* Body */
.home-stat2-body { position: relative; }
.home-stat2-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #94a3b8;
  margin-bottom: 0.45rem;
}
.home-stat2-num {
  font-family: var(--font-serif);
  font-size: 2.8rem;
  font-weight: 800;
  color: #0a1628;
  line-height: 1;
  margin: 0 0 0.55rem;
  letter-spacing: -0.02em;
}
.home-stat2--blue .home-stat2-num   { color: var(--oh-forest); }
.home-stat2--accent .home-stat2-num { color: var(--booking-accent); }
.home-stat2--gold .home-stat2-num   { color: #d97706; }
.home-stat2--green .home-stat2-num  { color: #059669; }
.home-stat2-desc {
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.55;
  margin: 0;
}

/* Animated bottom line */
.home-stat2-line {
  width: 32px;
  height: 3px;
  border-radius: 3px;
  background: #e2e8f0;
  margin-top: 1.1rem;
  transition: width 0.4s ease, background 0.4s ease;
}
.home-stat2:hover .home-stat2-line {
  width: 60px;
}
.home-stat2--blue:hover .home-stat2-line   { background: var(--oh-forest); }
.home-stat2--accent:hover .home-stat2-line { background: var(--booking-accent); }
.home-stat2--gold:hover .home-stat2-line   { background: var(--oh-gold); }
.home-stat2--green:hover .home-stat2-line  { background: #10b981; }

/* Responsive */
@media (max-width: 991.98px) {
  .home-stats-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575.98px) {
  .home-stats { padding: 3rem 0; }
  .home-stats-grid { grid-template-columns: 1fr; gap: 1rem; }
  .home-stat2 { padding: 1.5rem 1.35rem 1.35rem; }
  .home-stat2-num { font-size: 2.2rem; }
  .home-stat2-icon { width: 48px; height: 48px; font-size: 1.2rem; }
}

/* Home: consistent top spacing for all sections below hero */
body.home main > section:not(.home-hero-wrap) {
  padding-top: 50px !important;
}

/* Home navbar: transparent until scroll */
.navbar-home {
  background: transparent !important;
  box-shadow: none !important;
  transition: background-color 0.25s ease, box-shadow 0.25s ease,
    backdrop-filter 0.25s ease;
}

.navbar-home .nav-link,
.navbar-home .navbar-brand,
.navbar-home .navbar-toggler {
  color: #0b4f9c !important;
}

.navbar-home .nav-link {
  text-shadow: none;
}

.navbar-home:not(.navbar-scrolled) {
  background: transparent !important;
  backdrop-filter: none;
}

.navbar-home.navbar-scrolled {
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 100%) !important;
  box-shadow: 0 10px 30px rgba(11, 79, 156, 0.18) !important;
}

.navbar-home.navbar-scrolled .nav-link,
.navbar-home.navbar-scrolled .navbar-brand,
.navbar-home.navbar-scrolled .navbar-toggler {
  color: #fff !important;
}

.about-hero {
  background: linear-gradient(rgba(8, 26, 25, 0.58), rgba(8, 26, 25, 0.58)),
    url("https://images.unsplash.com/photo-1571896349842-33c89424de2d?w=1600&q=80")
      center/cover no-repeat;
  padding: 4.5rem 0;
}

.about-avatar {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 50%;
}

.about-highlight-card {
  background: #f9f9f8;
  border-radius: 1.25rem;
  padding: 1rem;
  position: relative;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.about-highlight-card img {
  border-radius: 1rem;
  max-height: 380px;
  width: 100%;
  object-fit: cover;
}

.about-rating {
  position: absolute;
  top: 1.3rem;
  right: 1.3rem;
  background: #fff;
  border-radius: 0.8rem;
  padding: 0.45rem 0.65rem;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

.about-rating small {
  display: block;
  font-weight: 500;
  font-size: 0.72rem;
  color: #6b7280;
}

.about-grid-img {
  height: 165px;
  object-fit: cover;
  width: 100%;
}

.reveal-up {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.about-hover-card {
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.about-hover-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 38px rgba(15, 61, 58, 0.16) !important;
  border-color: rgba(15, 61, 58, 0.18);
}

.about-hover-media {
  transition: transform 0.45s ease, filter 0.45s ease;
}

.about-hover-media:hover {
  transform: scale(1.04);
  filter: saturate(1.1) contrast(1.03);
}

.about-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}

.about-feature-item {
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 0.6rem;
  padding: 0.85rem 0.5rem;
  text-align: center;
  font-size: 0.85rem;
  font-weight: 500;
}

.about-side-image {
  max-height: 320px;
  object-fit: cover;
  width: 100%;
}

.about-article-img {
  height: 170px;
  object-fit: cover;
}

/* Premium About page refresh */
.about-pro-hero {
  position: relative;
  z-index: 1;
  min-height: 52vh;
  display: flex;
  align-items: center;
  background: url("https://images.unsplash.com/photo-1542314831-068cd1dbfeeb?w=1800&q=80")
    center/cover no-repeat;
}

body.about-page .about-pro-hero .container {
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

.about-pro-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(8, 34, 66, 0.7),
    rgba(10, 89, 176, 0.45)
  );
}

body.about-page .about-stats-overlap {
  position: relative;
  z-index: 2;
  /* ~50% of the stat strip overlaps the hero */
  margin-top: clamp(-3.1rem, -11vw, -5.85rem);
  padding-top: 0;
  padding-bottom: 0.65rem;
  background: transparent;
  border: none;
}

body.about-page .about-stats-row {
  max-width: 62rem;
  margin-left: auto;
  margin-right: auto;
}

.about-stat-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  padding: 0.95rem;
  box-shadow: 0 8px 20px rgba(15, 61, 58, 0.05);
}

body.about-page .about-stat-card {
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0;
  border-radius: 0.75rem;
  border: 1px solid rgba(226, 232, 240, 0.95);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

body.about-page .about-stat-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 44px rgba(11, 96, 193, 0.2);
}

body.about-page .about-stat-value {
  font-size: clamp(1.2rem, 2.8vw, 1.75rem);
  line-height: 1.15;
  color: #0f172a;
  letter-spacing: -0.02em;
}

body.about-page .about-stat-label {
  font-size: 0.74rem;
  font-weight: 500;
  line-height: 1.35;
  margin-top: 0.4rem;
  max-width: 9rem;
}

@media (max-width: 575.98px) {
  body.about-page .about-stats-overlap {
    margin-top: -2.45rem;
    padding-bottom: 0.5rem;
  }

  body.about-page .about-stat-card {
    padding: 0;
  }

  body.about-page .about-stat-label {
    font-size: 0.7rem;
    max-width: 100%;
  }
}

.about-pro-media-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.about-pro-media-grid img {
  width: 100%;
  height: 165px;
  object-fit: cover;
  border-radius: 0.75rem;
  transition: transform 0.3s ease;
}

.about-pro-media-grid img:hover {
  transform: scale(1.03);
}

.about-pro-feature {
  height: 100%;
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.about-pro-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 30px rgba(11, 79, 156, 0.12);
}

.about-pro-feature i {
  font-size: 1.1rem;
  color: var(--oh-forest);
}

.about-pro-feature h3 {
  font-size: 1rem;
  margin: 0.55rem 0 0.3rem;
}

.about-pro-feature p {
  color: #6b7280;
  font-size: 0.86rem;
  margin: 0;
}

.about-why-media {
  border-radius: 0.95rem;
  overflow: hidden;
  border: 1px solid #e7ebf1;
  box-shadow: 0 12px 26px rgba(15, 61, 58, 0.08);
}

.about-why-media img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
}

.about-pro-feature--row {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
}

.about-pro-feature--row i {
  width: 2.05rem;
  height: 2.05rem;
  border-radius: 0.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(11, 96, 193, 0.1);
  color: #0b60c1;
  font-size: 1rem;
  flex: 0 0 auto;
}

.about-pro-feature--row h3 {
  margin-top: 0;
  margin-bottom: 0.2rem;
}

@media (max-width: 991.98px) {
  .about-why-media img {
    min-height: 250px;
  }
}

.about-pro-testimonial {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.9rem;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
}

.about-pro-article {
  border-radius: 0.85rem;
  border: 1px solid #e7ebf1;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.about-pro-article:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 30px rgba(11, 79, 156, 0.12);
}

.about-pro-article img {
  width: 100%;
  height: 195px;
  object-fit: cover;
}

.about-pro-cta {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 2rem 1.25rem;
  box-shadow: 0 12px 28px rgba(15, 61, 58, 0.08);
}

body.about-page .about-testimonials-section,
body.about-page .about-latest-destinations-section {
  padding-top: clamp(4rem, 7vw, 5.5rem) !important;
  padding-bottom: clamp(4rem, 7vw, 5.5rem) !important;
}

body.about-page .about-testimonials-section {
  padding-top: clamp(4.5rem, 8vw, 6.25rem) !important;
  padding-bottom: clamp(4.5rem, 8vw, 6.25rem) !important;
}

body.about-page .about-latest-destinations-section .about-pro-article {
  min-height: 330px;
}

body.about-page .about-latest-destinations-section .about-pro-article img {
  height: 225px;
}

.hotel-detail-facts {
  padding-left: 1rem;
}

.hotel-detail-facts li {
  margin-bottom: 0.35rem;
}

.hotel-detail-room-card {
  border-radius: 0.9rem;
  overflow: hidden;
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.hotel-detail-room-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(11, 79, 156, 0.12) !important;
}

.hotel-room-media {
  width: 100%;
  height: 210px;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.hotel-detail-room-card:hover .hotel-room-media {
  transform: scale(1.05);
}

.hotel-room-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  color: #334155;
  background: #f6f8fb;
  border: 1px solid #e8edf4;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
}

.hotel-room-badge {
  font-weight: 600;
  color: #1f2937;
  border: 1px solid #e5e9ef;
}

.hotel-detail-facility-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.hotel-detail-facility-item {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.75rem;
  padding: 0.68rem 0.75rem;
  font-size: 0.84rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  box-shadow: 0 6px 16px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.hotel-detail-facility-item:hover {
  transform: translateY(-2px);
  border-color: rgba(242, 101, 34, 0.35);
  box-shadow: 0 12px 26px rgba(242, 101, 34, 0.1);
}

.hotel-facility-badge {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(242, 101, 34, 0.12);
  color: var(--booking-accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  flex: 0 0 24px;
}

.hotel-dining-card {
  background: linear-gradient(140deg, #ffffff, #fbfcff);
  border: 1px solid #e6ebf2;
  border-radius: 1rem;
  padding: 1.25rem 1.25rem;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.hotel-dining-subtext {
  font-size: 1rem;
  font-weight: 700;
  color: var(--booking-accent);
}

.hotel-dining-highlights-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.hotel-dining-mini-card {
  background: #fff;
  border: 1px solid #e7edf5;
  border-radius: 0.85rem;
  padding: 0.8rem 0.82rem;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.hotel-dining-mini-card:hover {
  transform: translateY(-4px);
  border-color: rgba(242, 101, 34, 0.34);
  box-shadow: 0 14px 28px rgba(242, 101, 34, 0.12);
}

.hotel-dining-mini-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: inline-grid;
  place-items: center;
  margin-bottom: 0.45rem;
  background: rgba(242, 101, 34, 0.12);
  color: var(--booking-accent);
}

.hotel-dining-mini-card h3 {
  font-size: 0.9rem;
  font-weight: 700;
  margin: 0 0 0.18rem;
  color: #0f172a;
}

.hotel-dining-mini-card p {
  margin: 0;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.35;
}

.hotel-dining-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
}

.hotel-dining-gallery-item {
  display: block;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e6ebf2;
}

.hotel-dining-gallery-item.is-large {
  grid-column: span 2;
  grid-row: span 2;
}

.hotel-dining-gallery-item img {
  width: 100%;
  height: 100%;
  min-height: 118px;
  object-fit: cover;
  transition: transform 0.3s ease;
  display: block;
}

.hotel-dining-gallery-item:hover img {
  transform: scale(1.04);
}

.hotel-feature-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.85rem;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.hotel-feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(11, 79, 156, 0.2);
  box-shadow: 0 16px 32px rgba(11, 79, 156, 0.12);
}

.hotel-feature-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #edf4ff;
  color: #0b4f9c;
  display: grid;
  place-items: center;
  font-size: 1rem;
  margin-bottom: 0.65rem;
}

.hotel-subnav-wrap {
  top: 72px;
  z-index: 1010;
}

.hotel-subnav {
  display: flex;
  gap: 1.1rem;
  align-items: center;
  overflow-x: auto;
  white-space: nowrap;
  padding: 0.7rem 0;
}

.hotel-subnav a {
  text-decoration: none;
  color: #1f2937;
  font-size: 0.84rem;
  font-weight: 600;
}

.hotel-subnav a:hover {
  color: var(--booking-accent);
}

.hotel-subnav a.is-active {
  color: var(--booking-accent);
  box-shadow: inset 0 -2px 0 var(--booking-accent);
}

.hotel-gallery-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
}

.hotel-gallery-thumb {
  width: 100%;
  height: 170px;
  object-fit: cover;
}

.hotel-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.hotel-gallery-card {
  position: relative;
  display: block;
  border-radius: 0.85rem;
  overflow: hidden;
  min-height: 170px;
}

.hotel-gallery-card.is-large {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 350px;
}

.hotel-gallery-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.hotel-gallery-overlay {
  position: absolute;
  left: 0.6rem;
  bottom: 0.6rem;
  background: rgba(242, 101, 34, 0.92);
  color: #fff;
  font-size: 0.74rem;
  border-radius: 999px;
  padding: 0.3rem 0.65rem;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.hotel-gallery-card:hover img {
  transform: scale(1.06);
}

.hotel-gallery-card:hover .hotel-gallery-overlay {
  opacity: 1;
  transform: translateY(0);
}

.hotel-attraction-wrap {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 1rem;
  padding: 1.1rem 1.2rem;
  box-shadow: 0 10px 26px rgba(15, 61, 58, 0.06);
}

.hotel-attraction-points {
  display: grid;
  gap: 0.55rem;
}

.hotel-attraction-points div {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid #e8edf4;
  border-radius: 0.7rem;
  padding: 0.55rem 0.7rem;
  font-size: 0.84rem;
  color: #334155;
  background: #f8fafd;
}

.hotel-attraction-points i {
  color: #0b4f9c;
}

.hotel-reach-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.9rem;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.hotel-reach-card:hover {
  transform: translateY(-4px);
  border-color: rgba(242, 101, 34, 0.28);
  box-shadow: 0 16px 32px rgba(242, 101, 34, 0.1);
}

.hotel-reach-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(242, 101, 34, 0.12);
  color: var(--booking-accent);
  font-size: 1rem;
  margin-bottom: 0.65rem;
}

.hotel-reach-panel {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.95rem;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
}

.hotel-reach-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.52rem;
  font-size: 0.86rem;
  color: #475569;
  margin-bottom: 0.55rem;
}

.hotel-reach-list li:last-child {
  margin-bottom: 0;
}

.hotel-reach-list i {
  color: var(--booking-accent);
  font-size: 0.94rem;
  margin-top: 0.12rem;
}

.hotel-transfer-note {
  background: rgba(242, 101, 34, 0.1);
  border: 1px solid rgba(242, 101, 34, 0.2);
  border-radius: 0.6rem;
  padding: 0.5rem 0.65rem;
  color: #9a3412;
  font-size: 0.83rem;
  font-weight: 600;
}

.hotel-related-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.95rem;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.hotel-related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(242, 101, 34, 0.28);
  box-shadow: 0 16px 34px rgba(242, 101, 34, 0.12);
}

.hotel-related-img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
}

.hotel-final-cta {
  background: #eef2f7;
}

.hotel-final-cta-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.2rem;
  background: linear-gradient(125deg, #0f3a6f, #0a63c9);
  border-radius: 1rem;
  padding: 1.25rem 1.2rem;
  box-shadow: 0 12px 28px rgba(11, 79, 156, 0.25);
}

.hotel-final-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

/* Room detail page — professional compact layout */
/* Room detail picker tabs */
.roomd-picker-sticky-wrap {
  position: sticky;
  top: 74px;
  z-index: 1020;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}

body.admin-bar .roomd-picker-sticky-wrap {
  top: 104px;
}

.roomd-picker-tabs {
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

.roomd-picker-tab {
  color: #64748b;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.82rem;
  padding: 0.55rem 0.15rem;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.15s ease, border-color 0.15s ease;
}

a.roomd-picker-tab:hover {
  color: var(--booking-accent);
}

.roomd-picker-tab.is-active {
  color: var(--booking-accent);
  border-bottom-color: var(--booking-accent);
  cursor: default;
}

.roomd-hero {
  min-height: 38vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.roomd-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.roomd-hero .container {
  z-index: 1;
  padding-top: 5rem;
  padding-bottom: 2rem;
}

.roomd-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

/* Gallery */
.roomd-gallery {
  display: grid;
  grid-template-columns: 1fr 100px;
  gap: 0.5rem;
}

.roomd-gallery-main {
  border-radius: 1rem;
  overflow: hidden;
}

.roomd-gallery-main img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
  transition: opacity 0.3s ease;
}

.roomd-gallery-thumbs {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.roomd-thumb {
  width: 100%;
  height: 70px;
  object-fit: cover;
  border-radius: 0.55rem;
  cursor: pointer;
  border: 2px solid transparent;
  opacity: 0.7;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.roomd-thumb:hover,
.roomd-thumb.active {
  opacity: 1;
  border-color: var(--oh-forest-2);
}

/* Meta strip */
.roomd-meta-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.roomd-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 999px;
  padding: 0.4rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--oh-slate);
}

.roomd-meta-item i {
  color: var(--oh-forest-2);
  font-size: 0.9rem;
}

/* Sections */
.roomd-section {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.roomd-section-title {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.85rem;
  padding-bottom: 0.55rem;
  border-bottom: 2px solid var(--oh-gold);
  display: inline-block;
}

/* Highlights */
.roomd-highlight-card {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.75rem;
  border: 1px solid #e7ebf1;
  border-radius: 0.75rem;
  background: #f8fafc;
  transition: border-color 0.2s ease;
}

.roomd-highlight-card:hover {
  border-color: var(--oh-forest-2);
}

.roomd-highlight-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(11, 79, 156, 0.1);
  color: var(--oh-forest);
  display: grid;
  place-items: center;
  font-size: 1rem;
  flex-shrink: 0;
}

/* Amenities */
.roomd-amenity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}

.roomd-amenity-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--oh-slate);
  background: #f8fafc;
  border: 1px solid #e7ebf1;
  border-radius: 0.6rem;
  padding: 0.5rem 0.65rem;
}

.roomd-amenity-item i {
  color: var(--oh-forest-2);
  font-size: 0.95rem;
}

/* Policies */
.roomd-policy-card {
  background: #f8fafc;
  border: 1px solid #e7ebf1;
  border-radius: 0.75rem;
  padding: 0.85rem;
  height: 100%;
}

/* Other rooms */
.roomd-other-card {
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.roomd-other-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(11, 79, 156, 0.1);
}

.roomd-other-media {
  height: 140px;
  overflow: hidden;
}

.roomd-other-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.roomd-other-card:hover .roomd-other-media img {
  transform: scale(1.05);
}

/* Map */
.roomd-map-box {
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e4e7eb;
}

.roomd-map-box iframe {
  width: 100%;
  min-height: 200px;
  border: 0;
  display: block;
}

/* Sidebar */
.roomd-sidebar-sticky {
  position: sticky;
  top: 130px;
  align-self: flex-start;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
  padding-right: 4px;
}
.roomd-sidebar-sticky::-webkit-scrollbar {
  width: 6px;
}
.roomd-sidebar-sticky::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
.roomd-sidebar-sticky::-webkit-scrollbar-track {
  background: transparent;
}

.roomd-book-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  padding: 0.9rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.roomd-book-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid #e9edf4;
}

.roomd-book-price {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--oh-forest);
}

/* Compact form inside sticky sidebar */
.roomd-book-card form {
  gap: 0.85rem !important;
  margin-top: 0.9rem !important;
}
.roomd-book-card .form-label {
  font-size: 0.72rem !important;
  font-weight: 600;
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 0.35rem !important;
}
.roomd-book-card .form-control,
.roomd-book-card .form-select {
  font-size: 0.8rem;
  padding: 0.5rem 0.75rem;
  height: auto;
  min-height: 38px;
  line-height: 1.6;
  border-radius: 8px;
  border-color: #e2e8f0;
}
.roomd-book-card .form-control:focus,
.roomd-book-card .form-select:focus {
  border-color: var(--booking-accent);
  box-shadow: 0 0 0 3px rgba(242,101,34,0.08);
}
.roomd-book-card .row.g-2 { --bs-gutter-y: 0.65rem; --bs-gutter-x: 0.5rem; }
.roomd-book-card button[type="submit"] {
  font-size: 0.85rem;
  padding: 0.7rem 1rem;
  line-height: 1.5;
  font-weight: 700;
  margin-top: 0.5rem !important;
}
.roomd-book-card .small.text-secondary.text-center {
  font-size: 0.72rem !important;
  line-height: 1.55;
  margin-top: 0.35rem;
}

.roomd-contact-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 1rem;
}

.roomd-hotel-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  padding: 0.75rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease;
}

.roomd-hotel-link:hover {
  border-color: var(--oh-forest-2);
  color: inherit;
}

.roomd-hotel-link img {
  width: 56px;
  height: 44px;
  object-fit: cover;
  border-radius: 0.5rem;
  flex-shrink: 0;
}

@media (max-width: 991.98px) {
  .roomd-sidebar-sticky {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .roomd-hero {
    min-height: 32vh;
  }

  .roomd-gallery {
    grid-template-columns: 1fr;
  }

  .roomd-gallery-main img {
    height: 240px;
  }

  .roomd-gallery-thumbs {
    flex-direction: row;
  }

  .roomd-thumb {
    height: 56px;
    flex: 1;
  }

  .roomd-amenity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Legacy room classes */
.room-detail-hero { background: linear-gradient(135deg, var(--oh-forest), var(--oh-forest-2)); }
.room-thumb-stack { display: grid; gap: 0.55rem; }
.room-thumb { width: 100%; height: 84px; object-fit: cover; }
.room-main-img { width: 100%; height: 360px; object-fit: cover; }
.room-overview-card, .room-book-card { border-radius: 1rem; }
.room-meta { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0.5rem; }
.room-meta span { font-size: 0.8rem; color: #6b7280; background: #f7f7f7; border-radius: 0.5rem; padding: 0.4rem 0.45rem; text-align: center; }
.room-amenity-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0.55rem; }
.room-amenity-grid div { background: #fff; border: 1px solid #e7eaee; border-radius: 0.55rem; padding: 0.55rem 0.6rem; font-size: 0.85rem; }
.room-map-placeholder { min-height: 220px; background: linear-gradient(120deg, #f2f4f7, #eceff4); border: 1px solid #e4e7eb; display: grid; place-items: center; }

.blog-hero {
  background: linear-gradient(rgba(10, 30, 29, 0.62), rgba(10, 30, 29, 0.62)),
    url("https://images.unsplash.com/photo-1542314831-068cd1dbfeeb?w=1600&q=80")
      center/cover no-repeat;
}

.blog-card {
  border-radius: 1.1rem;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.blog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 48px rgba(15, 61, 58, 0.14) !important;
}

.blog-card-img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

.blog-cat-link {
  padding: 0.55rem 0.7rem;
  border-radius: 0.7rem;
  background: #fff;
  border: 1px solid #eef1f4;
  color: #111827;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.blog-cat-link:hover {
  border-color: rgba(15, 61, 58, 0.2);
  transform: translateY(-1px);
}

.blog-cat-link.active {
  border-color: rgba(15, 61, 58, 0.28);
  box-shadow: 0 10px 22px rgba(15, 61, 58, 0.08);
}

.blog-recent-img {
  width: 64px;
  height: 64px;
  object-fit: cover;
}

.blog-promo {
  border-radius: 1.1rem;
  background: linear-gradient(180deg, rgba(200, 230, 193, 0.28) 0%, rgba(255, 255, 255, 1) 55%);
}

.blog-promo-badge {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(15, 61, 58, 0.08);
  color: var(--oh-forest);
  font-weight: 700;
  font-size: 0.8rem;
}

.blog-detail-img {
  max-height: 420px;
  object-fit: cover;
  width: 100%;
}

.blog-content {
  line-height: 1.75;
}

.blog-clean-hero {
  background: #f4f5f7;
}

.blog-meta-line {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.blog-meta-chip {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 600;
  background: rgba(104, 196, 108, 0.16);
  color: #2f7a33;
}

.blog-feature-card {
  border-radius: 1.1rem;
  overflow: hidden;
  background: #f5f6f8;
  border: 1px solid #eceef2;
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.blog-feature-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(15, 61, 58, 0.1);
}

.blog-feature-image {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}

.blog-story-card,
.blog-next-card {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid #eceef2;
  background: #fff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.blog-story-card:hover,
.blog-next-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(15, 61, 58, 0.08);
}

.blog-story-img,
.blog-next-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.blog-detail-shell {
  background: #f5f6f8;
  border: 1px solid #eceef2;
  border-radius: 1.1rem;
  padding: 2rem;
}

.blog-mag-hero {
  position: relative;
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.blog-mag-hero .container {
  padding-top: 5rem;
  padding-bottom: 2.5rem;
}

.blog-mag-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

.blog-mag-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.65) 100%),
    url("https://images.unsplash.com/photo-1488085061387-422e29b40080?w=1800&q=80")
      center/cover no-repeat;
}

.blog-mag-widget {
  border: 1px solid #e9edf4;
  border-radius: 0.65rem;
  background: #fff;
  padding: 1rem;
}

.blog-mag-search {
  padding-right: 2.2rem;
}

.blog-mag-search-btn {
  position: absolute;
  right: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: #6b7280;
}

.blog-mag-cat {
  display: block;
  font-size: 0.9rem;
  color: #111827;
  text-decoration: none;
  border-bottom: 1px solid #eef1f5;
  padding-bottom: 0.45rem;
}

.blog-mag-cat:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.blog-mag-cat.active {
  color: #0b4f9c;
  font-weight: 600;
}

.blog-mag-rank {
  width: 1.35rem;
  flex: 0 0 1.35rem;
  text-align: center;
  font-weight: 700;
  color: #111827;
}

.blog-mag-instagrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
}

.blog-mag-instagrid img {
  width: 100%;
  height: 66px;
  object-fit: cover;
  border-radius: 0.35rem;
}

.blog-mag-card {
  border: 1px solid #e9edf4;
  border-radius: 0.7rem;
  overflow: hidden;
  background: #fff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.blog-mag-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(15, 61, 58, 0.1);
}

.blog-mag-card-img {
  width: 100%;
  height: 205px;
  object-fit: cover;
}

.blog-mag-read {
  font-size: 0.8rem;
  font-weight: 700;
  color: #0b4f9c;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.blog-mag-pagination .page-link {
  color: #111827;
  border: 1px solid #e5e7eb;
}

.blog-mag-pagination .page-item.active .page-link {
  background: #f5c94a;
  border-color: #f5c94a;
  color: #111827;
}

/* Blog detail — professional compact layout */
.blogd-hero {
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.blogd-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.blogd-hero .container {
  z-index: 1;
  padding-top: 5rem;
  padding-bottom: 2.5rem;
}

.blogd-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

.blogd-cat-badge {
  display: inline-block;
  background: rgba(244, 163, 0, 0.18);
  color: var(--oh-gold);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(244, 163, 0, 0.25);
}

.blogd-article {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(15, 61, 58, 0.06);
}

.blogd-cover-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
}

.blogd-body {
  padding: 1.75rem;
}

.blogd-excerpt {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--oh-slate);
  font-weight: 500;
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid #e9edf4;
}

.blogd-content h4 {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--oh-slate);
  margin: 1.5rem 0 0.6rem;
}

.blogd-content p {
  font-size: 0.92rem;
  line-height: 1.72;
  color: #4b5563;
  margin-bottom: 0.85rem;
}

.blogd-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding-top: 1.25rem;
  margin-top: 1.25rem;
  border-top: 1px solid #e9edf4;
}

.blogd-tag {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--oh-forest);
  background: rgba(200, 230, 193, 0.25);
  border: 1px solid rgba(200, 230, 193, 0.5);
  border-radius: 999px;
  padding: 0.22rem 0.6rem;
}

.blogd-share {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 1px solid #e9edf4;
}

.blogd-share-btn {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f3f5f8;
  color: var(--oh-slate);
  text-decoration: none;
  font-size: 0.95rem;
  transition: background 0.2s ease, color 0.2s ease;
}

.blogd-share-btn:hover {
  background: var(--oh-forest);
  color: #fff;
}

/* Related cards */
.blogd-related-card {
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.blogd-related-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(11, 79, 156, 0.08);
}

.blogd-related-card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
}

/* Sidebar */
.blogd-sidebar-sticky {
  position: sticky;
  top: 90px;
}

.blogd-widget {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  padding: 1rem;
  margin-bottom: 1rem;
}

.blogd-widget-title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--oh-gold);
  display: inline-block;
}

.blogd-thumb {
  width: 68px;
  height: 52px;
  object-fit: cover;
  border-radius: 0.45rem;
  flex-shrink: 0;
}

.blogd-thumb-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blogd-cat-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  color: var(--oh-slate);
  font-size: 0.85rem;
  font-weight: 500;
  padding: 0.4rem 0.5rem;
  border-radius: 0.4rem;
  transition: background 0.15s ease, color 0.15s ease;
}

.blogd-cat-link:hover {
  background: rgba(200, 230, 193, 0.2);
  color: var(--oh-forest);
}

.blogd-cat-link i {
  font-size: 0.65rem;
  opacity: 0.4;
}

.blogd-cta-widget {
  background: linear-gradient(135deg, #f0f4ff 0%, #fff 100%);
  border-color: #d8e2f4;
  text-align: center;
}

.blogd-cta-icon {
  font-size: 1.6rem;
  color: var(--oh-forest-2);
  margin-bottom: 0.35rem;
  display: block;
}

@media (max-width: 767.98px) {
  .blogd-hero {
    min-height: 36vh;
  }

  .blogd-cover-img {
    height: 220px;
  }

  .blogd-body {
    padding: 1.15rem;
  }

  .blogd-sidebar-sticky {
    position: static;
  }

  .blogd-related-card img {
    height: 120px;
  }
}

/* Legacy blog-instinct classes kept for any remaining references */
.blog-instinct-hero { padding: 1.2rem 0 0.8rem; background: #f5f6f8; }
.blog-instinct-hero .container { position: relative; }
.blog-instinct-hero-img { width: 100%; height: 280px; object-fit: cover; border-radius: 0.55rem; filter: brightness(0.72); }
.blog-instinct-hero-caption { position: absolute; inset: 0; display: grid; place-content: center; padding: 1rem; }
.blog-instinct-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem; }
.blog-instinct-cats a { text-decoration: none; color: #fff; font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; border-radius: 0.45rem; padding: 1rem 0.75rem; text-align: center; background: linear-gradient(120deg, rgba(2,10,24,.55), rgba(2,10,24,.22)); }
.blog-instinct-article { border: 1px solid #e7ebf1; border-radius: 0.75rem; background: #fff; padding: 1rem; }
.blog-instinct-mini { border: 1px solid #e7ebf1; border-radius: 0.65rem; background: #fff; padding: 0.65rem; display: grid; grid-template-columns: 140px 1fr; gap: 0.8rem; align-items: center; }
.blog-instinct-mini img { width: 100%; height: 90px; object-fit: cover; border-radius: 0.45rem; }
.blog-instinct-widget { border: 1px solid #e9edf4; border-radius: 0.65rem; background: #fff; padding: 0.95rem; }
.blog-instinct-thumb { width: 72px; height: 52px; object-fit: cover; border-radius: 0.35rem; }
.blog-instinct-tag { font-size: 0.72rem; color: #111827; border: 1px solid #dbe1ea; border-radius: 999px; padding: 0.2rem 0.55rem; }

.package-gallery-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 128px;
  gap: 0.75rem;
}

.destination-detail-wrap {
  background: #f6f8fb;
}

.destination-panel {
  background: #fff;
  border: 1px solid #e7ebf0;
  border-radius: 1rem;
  box-shadow: 0 12px 30px rgba(15, 61, 58, 0.06);
}

.destination-main-img {
  width: 100%;
  height: 310px;
  border-radius: 0.8rem;
  object-fit: cover;
}

.destination-thumb-stack {
  display: grid;
  gap: 0.5rem;
}

.destination-thumb-stack img {
  width: 100%;
  height: 98px;
  border-radius: 0.7rem;
  object-fit: cover;
}

.destination-tabs .nav-link {
  border-radius: 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
  background: #f4f7fb;
  margin-right: 0.35rem;
}

.destination-tabs .nav-link.active {
  background: var(--oh-forest);
  color: #fff;
}

.destination-mini-card {
  border: 1px solid #e8edf4;
  border-radius: 0.75rem;
  padding: 0.8rem;
  background: #f8fafc;
}

.destination-info-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.destination-overview-rich {
  display: grid;
  gap: 0.65rem;
}

.destination-overview-card {
  border: 1px solid #e6edf6;
  border-radius: 0.8rem;
  background: #f9fbff;
  padding: 0.85rem;
}

.destination-info-strip span {
  font-size: 0.78rem;
  color: #0f172a;
  border: 1px solid #dbe5f0;
  background: #f8fbff;
  border-radius: 999px;
  padding: 0.34rem 0.65rem;
  font-weight: 600;
}

.destination-attraction-card {
  border: 1px solid #e7edf5;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.destination-attraction-card img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  display: block;
}

.destination-attraction-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(11, 96, 193, 0.14);
}

.destination-count-badge {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0b60c1;
  border-radius: 999px;
  border: 1px solid rgba(11, 96, 193, 0.24);
  background: rgba(11, 96, 193, 0.08);
  padding: 0.25rem 0.6rem;
}

.destination-activity-card {
  border: 1px solid #e7edf5;
  border-radius: 0.85rem;
  background: #fff;
  padding: 0.95rem;
  display: flex;
  gap: 0.75rem;
}

.destination-activity-icon {
  width: 38px;
  height: 38px;
  border-radius: 0.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(11, 96, 193, 0.12);
  color: #0b60c1;
  font-size: 1rem;
  flex: 0 0 auto;
}

.destination-tip-card {
  border: 1px solid #e6edf6;
  border-radius: 0.85rem;
  background: #fff;
  padding: 0.9rem;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

.destination-tip-icon {
  width: 38px;
  height: 38px;
  border-radius: 0.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.55rem;
  background: rgba(11, 96, 193, 0.12);
  color: #0b60c1;
}

.destination-tip-list {
  padding-left: 1rem;
  margin: 0;
}

.destination-tip-list li {
  font-size: 0.82rem;
  color: #475569;
  margin-bottom: 0.28rem;
}

.destination-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.destination-gallery-item {
  border-radius: 0.8rem;
  overflow: hidden;
  border: 1px solid #e6edf6;
  display: block;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

.destination-gallery-item.is-large {
  grid-column: span 2;
}

.destination-gallery-item img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
  transition: transform 0.25s ease;
}

.destination-gallery-item.is-large img {
  height: 265px;
}

.destination-gallery-item:hover img {
  transform: scale(1.03);
}

.destination-faq-accordion .accordion-item {
  border: 1px solid #e4ebf4;
  border-radius: 0.7rem !important;
  overflow: hidden;
  margin-bottom: 0.55rem;
}

.destination-faq-accordion .accordion-button {
  font-size: 0.9rem;
  font-weight: 600;
  box-shadow: none !important;
}

.destination-faq-accordion .accordion-button:not(.collapsed) {
  background: #f4f8fd;
  color: #0f172a;
}

.destination-final-cta {
  border: 1px solid #dce7f5;
  border-radius: 0.95rem;
  background: linear-gradient(135deg, #f8fbff, #eef5ff);
  padding: 1rem;
}

.destination-final-cta-strip {
  background: #f7f9fc;
  border-top: 1px solid #e6edf6;
}

.destination-final-kicker {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.72rem;
  font-weight: 700;
  color: #0b60c1;
}

.destination-gallery-modal-content {
  border: 0;
  background: transparent;
  position: relative;
}

.destination-gallery-modal-content img {
  width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 0.7rem;
}

.destination-gallery-close {
  position: absolute;
  top: -12px;
  right: -12px;
  z-index: 4;
  background-color: rgba(15, 23, 42, 0.75);
  border-radius: 999px;
  opacity: 1;
}

.destination-season-table th {
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
  background: #eef4fb;
  border-bottom: 1px solid #d8e3f1;
}

.destination-season-table td {
  font-size: 0.84rem;
  vertical-align: middle;
  color: #334155;
}

.destination-crowd-tag {
  display: inline-flex;
  border-radius: 999px;
  padding: 0.18rem 0.52rem;
  border: 1px solid #d7e4f2;
  background: #f4f8fd;
  font-size: 0.74rem;
  font-weight: 600;
  color: #1e3a5f;
}

.destination-hotel-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 0.75rem;
  border-radius: 0.65rem;
  border: 1px solid #e8edf4;
  text-decoration: none;
  color: #1f2937;
  background: #f8fafc;
}

.destination-map-box {
  min-height: 170px;
  border: 1px dashed #cad4e2;
  border-radius: 0.75rem;
  display: grid;
  place-items: center;
  color: #5b6778;
  background: linear-gradient(120deg, #f7f9fc, #edf3fa);
  text-align: center;
  padding: 1rem;
}

.destination-suggest-card {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 0.6rem;
  text-decoration: none;
  color: #111827;
  border: 1px solid #e8edf4;
  border-radius: 0.7rem;
  padding: 0.45rem;
  background: #f9fbfe;
}

.destination-suggest-card img {
  width: 100%;
  height: 64px;
  object-fit: cover;
  border-radius: 0.5rem;
}

/* —— Booking page (premium) —— */
body.booking-page {
  background: linear-gradient(180deg, #eef1f7 0%, #e6eaf2 40%, #f4f6fa 100%);
}

.booking-hero-wrap {
  position: relative;
  min-height: 380px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding-bottom: 4.5rem;
}

@media (min-width: 992px) {
  .booking-hero-wrap {
    min-height: 420px;
    padding-bottom: 5rem;
  }
}

.booking-hero-bg {
  position: absolute;
  inset: 0;
  background: url("https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1?w=1900&q=80") center/cover no-repeat;
}

.booking-hero-overlay--dark {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.75) 100%);
  pointer-events: none;
}

.booking-hero-inner {
  z-index: 2;
  padding-bottom: 0.5rem;
}

.booking-hero-kicker {
  letter-spacing: 0.14em;
}

.booking-hero-title {
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.booking-hero-lead {
  font-size: 0.98rem;
  line-height: 1.55;
}

.booking-hero-trust-item {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.88);
  font-weight: 500;
}

.booking-form-shell {
  margin-top: -72px;
  position: relative;
  z-index: 3;
  padding-bottom: 2rem;
}

.booking-form-card--premium {
  background: #fff;
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 1.15rem;
  padding: 0;
  box-shadow: 0 24px 56px rgba(15, 23, 42, 0.1);
  overflow: hidden;
}

.booking-form-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  padding: 1.35rem 1.5rem 1rem;
  border-bottom: 1px solid #eef2f7;
  background: linear-gradient(180deg, #fbfcfe 0%, #fff 100%);
}

.booking-form-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--booking-accent);
}

.booking-form-title {
  font-size: clamp(1.15rem, 2vw, 1.35rem);
}

.booking-form-sub {
  max-width: 22rem;
  line-height: 1.45;
}

.booking-form-card--premium .booking-wizard-form {
  padding: 1.25rem 1.25rem 1.5rem;
}

@media (min-width: 992px) {
  .booking-form-card--premium .booking-wizard-form {
    padding: 1.5rem 1.75rem 1.75rem;
  }
}

.booking-field-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  margin-bottom: 0.35rem;
}

.booking-field-label i {
  color: #0b60c1;
  font-size: 0.95rem;
}

.booking-input {
  border-radius: 0.65rem !important;
  border: 1px solid #dbe4f0 !important;
  min-height: 44px;
  font-size: 0.9rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.booking-input:focus {
  border-color: rgba(11, 96, 193, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(11, 96, 193, 0.12) !important;
}

.booking-type-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.booking-type-choice {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1px solid #d8e3f0;
  background: #f8fafc;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.booking-type-choice i {
  font-size: 1rem;
  color: #64748b;
}

.booking-type-choice.active {
  border-color: rgba(11, 96, 193, 0.45);
  background: linear-gradient(135deg, rgba(11, 96, 193, 0.1), rgba(11, 96, 193, 0.04));
  color: #0f172a;
  box-shadow: 0 6px 18px rgba(11, 96, 193, 0.12);
}

.booking-type-choice.active i {
  color: #0b60c1;
}

.booking-panel-head {
  margin-bottom: 0.25rem;
}

.booking-panel-title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.25rem;
}

.booking-panel-lead {
  max-width: 36rem;
}

.booking-stepper-wrap {
  margin-bottom: 0.25rem;
}

.booking-stepper {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  position: relative;
}

.booking-step-pill {
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 0.75rem;
  background: #f1f5f9;
  color: #64748b;
  padding: 0.55rem 0.45rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  text-align: center;
  line-height: 1.2;
  border: 1px solid transparent;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.booking-step-pill > span:first-child {
  width: 2rem;
  height: 2rem;
  border-radius: 0.55rem;
  background: #e2e8f0;
  color: #475569;
  display: grid;
  place-items: center;
  font-size: 0.95rem;
}

.booking-step-pill .booking-step-pill-text {
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.booking-step-pill.done {
  background: #ecfdf5;
  color: #047857;
  border-color: rgba(16, 185, 129, 0.35);
}

.booking-step-pill.done > span:first-child {
  background: #10b981;
  color: #fff;
}

.booking-step-pill.active {
  background: #fff;
  color: #0b60c1;
  border-color: rgba(11, 96, 193, 0.45);
  box-shadow: 0 8px 22px rgba(11, 96, 193, 0.12);
  transform: translateY(-1px);
}

.booking-step-pill.active > span:first-child {
  background: #0b60c1;
  color: #fff;
}

.booking-step-panel {
  display: none;
  animation: bookingPanelIn 0.35s ease;
}

.booking-step-panel.active {
  display: block;
}

@keyframes bookingPanelIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.booking-extra-list {
  display: grid;
  gap: 0.6rem;
}

.booking-extra-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  border: 1px solid #e4e9f1;
  border-radius: 0.75rem;
  background: #fbfcfe;
  padding: 0.65rem 0.85rem;
  margin: 0;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.booking-extra-item:hover {
  border-color: rgba(11, 96, 193, 0.28);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
}

.booking-extra-item input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: #0b60c1;
  flex-shrink: 0;
  margin: 0;
}

.booking-extra-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: rgba(11, 96, 193, 0.1);
  color: #0b60c1;
  display: grid;
  place-items: center;
  font-size: 0.95rem;
  flex-shrink: 0;
}

.booking-extra-item span:not(.booking-extra-icon) {
  flex: 1;
  min-width: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1f2937;
}

.booking-extra-item small {
  font-weight: 700;
  color: #0b60c1;
  font-size: 0.78rem;
  flex-shrink: 0;
}

.booking-step-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  justify-content: flex-end;
  padding-top: 0.25rem;
  border-top: 1px solid #eef2f7;
  margin-top: 0.5rem;
}

.booking-nav-btn {
  min-width: 8.5rem;
}

.booking-final-box {
  border: 1px solid #dbe6f5;
  background: linear-gradient(135deg, #f7fbff 0%, #f0f6fd 100%);
  border-radius: 0.85rem;
  padding: 1rem 1.1rem;
}

.booking-final-icon {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.65rem;
  background: rgba(11, 96, 193, 0.12);
  color: #0b60c1;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}

.booking-summary-card {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, 0.95);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.12);
  position: sticky;
  top: 100px;
  z-index: 4;
}

.booking-summary-card--premium {
  background: #fff;
}

.booking-summary-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1.1rem 1.15rem 1rem;
  background: linear-gradient(125deg, #0f2847 0%, #0b60c1 55%, #0a4d9c 100%);
  color: #fff;
}

.booking-summary-eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
}

.booking-summary-pill {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  border-radius: 999px;
  padding: 0.28rem 0.55rem;
  white-space: nowrap;
}

.booking-summary-card-body {
  padding: 1rem 1.15rem 1.15rem;
  background: #fff;
}

.booking-summary-hr {
  border: 0;
  border-top: 1px dashed #d5dee9;
  margin: 0.65rem 0;
  opacity: 1;
}

.booking-summary-line {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.86rem;
  margin-bottom: 0.42rem;
}

.booking-summary-line span {
  color: #64748b;
}

.booking-summary-line strong {
  text-align: right;
  color: #0f172a;
  font-weight: 600;
}

.booking-summary-total {
  margin-top: 0.65rem;
  padding: 0.85rem 0.9rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #fff7f2 0%, #fff 50%);
  border: 1px solid rgba(242, 101, 34, 0.28);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.booking-summary-total span {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9a3412;
}

.booking-summary-total strong {
  font-size: 1.35rem;
  font-weight: 800;
  color: #c2410c;
  letter-spacing: -0.02em;
}

.booking-deals-section--premium {
  margin-top: 0.5rem;
}

.booking-deals-eyebrow {
  letter-spacing: 0.12em;
  color: var(--booking-accent);
}

.booking-promo-link {
  display: block;
  height: 100%;
}

.booking-promo-card--premium {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid #e6ebf2;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
  height: 100%;
}

.booking-promo-card--premium:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(11, 96, 193, 0.14);
}

.booking-promo-media {
  position: relative;
  overflow: hidden;
}

.booking-promo-card--premium img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}

.booking-promo-card--premium:hover img {
  transform: scale(1.05);
}

.booking-promo-badge {
  position: absolute;
  left: 0.75rem;
  top: 0.75rem;
  background: rgba(8, 20, 44, 0.72);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.3rem 0.6rem;
  border-radius: 999px;
  backdrop-filter: blur(6px);
}

.booking-promo-price-tag {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  background: #fff;
  color: #0f172a;
  font-weight: 800;
  font-size: 0.88rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.55rem;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.booking-promo-price-tag small {
  font-weight: 600;
  font-size: 0.72rem;
  color: #64748b;
}

.booking-promo-body {
  padding: 0.95rem 1rem 1.05rem;
}

.booking-promo-title {
  font-family: var(--font-serif);
  font-weight: 700;
  color: #0f172a;
}

.booking-promo-meta {
  font-size: 0.82rem;
}

.booking-promo-meta i {
  color: #0b60c1;
  margin-right: 0.2rem;
}

.booking-promo-cta {
  display: inline-flex;
  align-items: center;
  margin-top: 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b60c1;
}

.booking-cta-section--premium {
  background: transparent;
}

.booking-cta-section--premium .booking-cta-card {
  border-radius: 1.25rem;
  background: linear-gradient(135deg, var(--oh-forest) 0%, var(--oh-forest-2) 50%, #0d4a8a 100%);
  box-shadow: 0 24px 48px rgba(11, 79, 156, 0.22);
  overflow: hidden;
  position: relative;
}

.booking-cta-section--premium .booking-cta-card::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(244, 163, 0, 0.08);
  pointer-events: none;
}

.booking-cta-section--premium .booking-cta-card::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -8%;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  pointer-events: none;
}

.booking-cta-card-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 2.25rem 2.5rem;
}

.booking-cta-content {
  flex: 1;
  min-width: 0;
}

.booking-cta-badge-row {
  margin-bottom: 0.75rem;
}

.booking-cta-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(244, 163, 0, 0.18);
  color: var(--oh-gold);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(244, 163, 0, 0.25);
}

.booking-cta-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.booking-cta-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
}

.booking-cta-trust i {
  color: var(--oh-gold);
  font-size: 0.85rem;
}

.booking-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  flex-shrink: 0;
}

.booking-cta-btn-primary {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.booking-cta-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

@media (max-width: 991.98px) {
  .booking-cta-card-inner {
    flex-direction: column;
    text-align: center;
    padding: 1.75rem 1.5rem;
    gap: 1.5rem;
  }

  .booking-cta-trust {
    justify-content: center;
  }

  .booking-cta-actions {
    width: 100%;
  }

  .booking-cta-actions .btn {
    width: 100%;
  }
}

@media (max-width: 991.98px) {
  body.booking-page .booking-wizard-side {
    order: -1;
    margin-bottom: 1rem;
  }

  body.booking-page .booking-wizard-main {
    order: 1;
  }
}

.invoice-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.invoice-step {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
  background: #eef2f7;
  border-radius: 0.7rem;
  padding: 0.55rem 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.invoice-step span {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  font-size: 0.7rem;
  background: #cbd5e1;
  color: #fff;
}

.invoice-step.is-done {
  background: #e7f8ef;
  color: #0d7a4d;
}

.invoice-step.is-done span {
  background: #16a34a;
}

.invoice-step.is-active {
  background: #e8eafb;
  color: #3038c8;
}

.invoice-step.is-active span {
  background: #4f46e5;
}

.invoice-confirm {
  border: 1px solid #caefd9;
  background: #eefbf4;
  border-radius: 0.9rem;
  padding: 0.95rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.invoice-check {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.7rem;
  display: grid;
  place-items: center;
  background: #16a34a;
  color: #fff;
  font-size: 1.2rem;
  flex: 0 0 auto;
}

.invoice-detail-grid strong {
  font-size: 0.94rem;
}

.invoice-note {
  border: 1px dashed #d4dbe6;
  border-radius: 0.8rem;
  padding: 0.75rem 0.85rem;
  background: #fafbfd;
}

.invoice-price-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.9rem;
  color: #374151;
  margin-bottom: 0.45rem;
}

.invoice-price-row.total {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px dashed #d7dce7;
  font-weight: 700;
  color: #0b4f9c;
}

.package-main-image {
  width: 100%;
  min-height: 430px;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
}

.package-thumb-grid {
  display: grid;
  gap: 0.65rem;
}

.package-thumb-image {
  width: 100%;
  height: 100px;
  border-radius: 0.8rem;
  object-fit: cover;
}

.package-price-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.package-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.package-meta-grid div {
  border: 1px solid #e8ebf0;
  border-radius: 0.75rem;
  padding: 0.7rem 0.8rem;
  font-size: 0.9rem;
  background: #fff;
}

.package-content-card,
.package-side-card {
  background: #fff;
  border: 1px solid #e8ebf0;
  border-radius: 0.95rem;
  padding: 1rem;
  box-shadow: 0 8px 24px rgba(15, 61, 58, 0.05);
}

.package-hotel-link {
  display: block;
  text-decoration: none;
  color: #111827;
  background: #f7f8fa;
  border: 1px solid #e8ebf0;
  border-radius: 0.65rem;
  padding: 0.55rem 0.65rem;
}

.package-hotel-link:hover {
  border-color: rgba(11, 79, 156, 0.25);
}

.package-tab-chip {
  display: inline-block;
  border-radius: 999px;
  background: #eef3fa;
  color: #456;
  padding: 0.3rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 600;
}

.package-tab-chip.active {
  background: var(--oh-forest);
  color: #fff;
}

.package-map-placeholder {
  min-height: 220px;
  border: 1px dashed #ced5df;
  border-radius: 0.75rem;
  background: linear-gradient(120deg, #f7f9fc, #edf2f8);
  display: grid;
  place-items: center;
  color: #556070;
  text-align: center;
  padding: 1rem;
}

.package-enquiry-sticky {
  position: sticky;
  top: 128px;
  z-index: 2;
}

body.package-detail-modern {
  background: #f3f5f8;
}

.pkgd-gallery {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: repeat(2, minmax(110px, 1fr));
  gap: 0.6rem;
  border-radius: 1rem;
  overflow: hidden;
}

.pkgd-main {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
}

.pkgd-tile {
  width: 100%;
  height: 100%;
  min-height: 120px;
  object-fit: cover;
}

.pkgd-title {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  font-weight: 700;
  line-height: 1.16;
}

.pkgd-link-muted {
  color: #4b5563;
}

.pkgd-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 0.55rem;
  margin-bottom: 1rem;
}

.pkgd-tabs a {
  color: #4b5563;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  padding-bottom: 0.35rem;
  border-bottom: 2px solid transparent;
}

.pkgd-tabs a:hover,
.pkgd-tabs a.is-active {
  color: var(--booking-accent);
  border-bottom-color: var(--booking-accent);
}

.pkgd-pill {
  display: inline-grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  margin-left: 0.2rem;
  background: #eef2f7;
  color: #475569;
  font-size: 0.68rem;
}

.pkgd-section {
  margin-bottom: 1.25rem;
}

.pkgd-section:last-child {
  margin-bottom: 0;
}

.pkgd-head {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.55rem;
}

.pkgd-list {
  margin: 0;
  padding-left: 1.05rem;
  color: #4b5563;
  font-size: 0.92rem;
}

.pkgd-list li {
  margin-bottom: 0.35rem;
}

.pkgd-itinerary-list {
  display: grid;
  gap: 0.55rem;
}

.pkgd-itinerary-item {
  border: 1px solid #e7ecf4;
  border-radius: 0.75rem;
  padding: 0.65rem 0.75rem;
  background: #fff;
}

.pkgd-day-badge {
  display: inline-block;
  border-radius: 999px;
  background: rgba(10, 99, 201, 0.12);
  color: #0a63c9;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.22rem 0.52rem;
  margin-bottom: 0.35rem;
}

.pkgd-itinerary-accordion {
  --bs-accordion-border-color: #e7ecf4;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(10, 99, 201, 0.18);
}

.pkgd-itinerary-accordion .accordion-item {
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 0.55rem;
  border: 1px solid #e7ecf4;
}

.pkgd-itinerary-accordion .accordion-item:last-child {
  margin-bottom: 0;
}

.pkgd-itinerary-accordion .accordion-button {
  font-size: 0.95rem;
  padding: 0.65rem 0.85rem;
  background: #fff;
  box-shadow: none;
}

.pkgd-itinerary-accordion .accordion-button .pkgd-day-badge {
  margin-bottom: 0;
}

.pkgd-itinerary-accordion .accordion-button:not(.collapsed) {
  background: rgba(10, 99, 201, 0.06);
  color: inherit;
}

.pkgd-itinerary-accordion .accordion-body {
  padding: 0.75rem 0.85rem 0.9rem;
  border-top: 1px solid #eef2f8;
}

.pkgd-highlight-wrap {
  border-top: 1px solid #ebeff6;
  padding-top: 0.8rem;
}

.pkgd-highlight-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pkgd-highlight-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
  background: #f3f7ff;
  border: 1px solid #e2eaf9;
  color: #1f3b63;
  font-size: 0.76rem;
  font-weight: 600;
}

.pkgd-highlight-chip i {
  color: #0a63c9;
}

.pkgd-policy-note {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 0.7rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.82rem;
  color: #9a3412;
}

.pkgd-policy-note i {
  margin-top: 0.08rem;
}

.pkgd-review-quick {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.pkgd-review-quick div {
  border: 1px solid #e8edf5;
  border-radius: 0.7rem;
  padding: 0.55rem 0.6rem;
  background: #fff;
}

.pkgd-review-quick strong {
  display: block;
  color: #0f172a;
  font-size: 1rem;
}

.pkgd-review-quick span {
  font-size: 0.74rem;
  color: #64748b;
}

.pkgd-safety-wrap {
  border-top: 1px solid #ebeff6;
  padding-top: 0.8rem;
}

.pkgd-help-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  border: 1px solid #e6ebf2;
  border-radius: 0.9rem;
  padding: 0.8rem 0.9rem;
  background: #fff;
}

.pkgd-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem 1rem;
}

.pkgd-offer-grid div {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  color: #4b5563;
}

.pkgd-offer-grid i {
  color: var(--booking-accent);
}

.pkgd-side {
  background: #fff;
  border: 1px solid #e6eaf0;
  border-radius: 0.95rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  padding: 1rem;
}

.pkgd-price {
  font-size: 1.4rem;
  font-weight: 700;
  color: #111827;
}

.pkgd-price span {
  font-size: 0.82rem;
  font-weight: 500;
  color: #6b7280;
  margin-left: 0.12rem;
}

.pkgd-date-grid {
  margin-top: 0.85rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #e5e7eb;
  border-radius: 0.65rem;
  overflow: hidden;
}

.pkgd-date-grid div {
  padding: 0.55rem 0.65rem;
}

.pkgd-date-grid div + div {
  border-left: 1px solid #e5e7eb;
}

.pkgd-date-grid span,
.pkgd-guests span {
  font-size: 0.83rem;
  font-weight: 600;
  color: #111827;
}

.pkgd-guests {
  margin-top: 0.6rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.65rem;
  padding: 0.55rem 0.65rem;
}

.pkgd-break {
  border-top: 1px solid #eef2f7;
  padding-top: 0.65rem;
}

.pkgd-break div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.86rem;
  color: #374151;
  margin-bottom: 0.4rem;
}

.pkgd-break .is-total {
  margin-top: 0.3rem;
  padding-top: 0.55rem;
  border-top: 1px dashed #d9dee7;
  font-weight: 700;
  color: #111827;
}

.pkgd-agent {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  border: 1px solid #eceff4;
  border-radius: 0.75rem;
  padding: 0.55rem 0.65rem;
  background: #f8fafc;
}

.pkgd-agent-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(242, 101, 34, 0.12);
  color: var(--booking-accent);
  font-size: 1rem;
}

.pkgd-side .enquiry-compact-form .form-control,
.pkgd-side .enquiry-compact-form .form-select {
  min-height: 40px;
  border-radius: 0.6rem;
}

.pkgd-side .enquiry-compact-form textarea.form-control {
  min-height: 90px;
}

.pkgd-side .enquiry-compact-form .btn.btn-accent {
  border-radius: 0.65rem !important;
}

.pkgd-related-wrap {
  border-top: 1px solid #e9edf4;
}

.pkgd-related-nav .btn {
  width: 42px;
  height: 42px;
  padding: 0;
}

.pkgd-related-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.pkgd-related-card {
  background: #fff;
  border: 1px solid #e7ecf4;
  border-radius: 0.9rem;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.pkgd-related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(242, 101, 34, 0.3);
  box-shadow: 0 14px 28px rgba(242, 101, 34, 0.12);
}

.pkgd-related-card img {
  width: 100%;
  height: 165px;
  object-fit: cover;
  display: block;
}

.pkgd-related-body {
  padding: 0.8rem 0.85rem;
}

.pkgd-related-price {
  color: #16a34a;
  font-weight: 800;
}

.pkgd-newsletter-wrap {
  background: #f5f7fb;
}

.pkgd-newsletter-card {
  background: #eaf3ef;
  border: 1px solid #dce8e2;
  border-radius: 0.85rem;
  padding: 0.8rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.pkgd-newsletter-form {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  width: min(100%, 460px);
}

.pkgd-newsletter-form .form-control {
  min-height: 42px;
  border-radius: 999px;
  flex: 1;
}

.pkgd-expert-line {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}

.pkgd-expert-line a {
  color: #22c55e;
  text-decoration: none;
}

.package-agent-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(145deg, #e9eff8, #dce7f5);
  color: var(--oh-forest);
  display: grid;
  place-items: center;
  font-size: 1.3rem;
}

.packages-hero-wrap {
  position: relative;
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.packages-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.65) 100%),
    url("https://images.unsplash.com/photo-1488085061387-422e29b40080?w=1800&q=80")
      center/cover no-repeat;
}

.packages-hero-content {
  position: relative;
  z-index: 2;
  padding-top: 5rem;
  padding-bottom: 2.5rem;
}

.packages-hero-content .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

.packages-grid-section {
  background: #fff;
}

.package-list-card {
  border: 1px solid #e5ebf3;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 61, 58, 0.08);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.package-list-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(15, 61, 58, 0.12);
}

.package-list-media img {
  width: 100%;
  height: 210px;
  object-fit: cover;
}

.package-list-body {
  padding: 1rem 1rem 1.05rem;
}

.package-read-link {
  font-size: 0.82rem;
  font-weight: 700;
  color: #0b4f9c;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.package-read-link:hover {
  color: #083a72;
}

.packages-promo-strip {
  position: relative;
  overflow: hidden;
  padding: 3.4rem 0;
}

.packages-promo-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(2, 10, 24, 0.62), rgba(2, 10, 24, 0.5)),
    url("https://images.unsplash.com/photo-1528127269322-539801943592?w=1800&q=80")
      center/cover no-repeat;
}

/* legacy contact-hero bg removed — now defined in contact hero section above */

.contact-info-panel {
  background: #fff;
  border-radius: 1rem;
  padding: 1.7rem;
  box-shadow: 0 12px 34px rgba(15, 61, 58, 0.08);
}

.contact-line-item {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
}

.contact-line-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(18, 159, 153, 0.12);
  color: #129f99;
  display: grid;
  place-items: center;
}

.contact-profile-card {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  min-height: 360px;
  box-shadow: 0 12px 30px rgba(15, 61, 58, 0.12);
}

.contact-profile-image {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.contact-profile-quote {
  position: absolute;
  left: 1.1rem;
  bottom: 1.1rem;
  max-width: 320px;
  background: rgba(16, 58, 86, 0.9);
  color: #fff;
  border-radius: 0.9rem;
  padding: 0.95rem 1rem;
  font-size: 0.9rem;
}

.contact-map-form-wrap {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 34px rgba(15, 61, 58, 0.08);
}

.contact-map-box iframe {
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
}

.contact-form-box {
  padding: 1.5rem;
}

.contact-newsletter {
  background: #fff;
  border-radius: 0.95rem;
  padding: 1.25rem 1.35rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 8px 24px rgba(15, 61, 58, 0.06);
}

.contact-newsletter form {
  flex: 1;
  min-width: 250px;
  justify-content: flex-end;
}

.contact-compact-panel {
  background: #f5f7fb;
  border: 1px solid #e5e9f0;
  border-radius: 1.1rem;
  padding: 2rem;
}

.contact-compact-form-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 1rem;
  padding: 1rem;
  box-shadow: 0 12px 28px rgba(15, 61, 58, 0.08);
}

.contact-pro-hero {
  position: relative;
  padding: 2.5rem 0 2.2rem;
  background: #eef2f7;
}

.contact-pro-hero-bg {
  position: absolute;
  inset: 0 0 auto 0;
  height: 330px;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.6) 100%),
    url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=1800&q=80")
      center/cover no-repeat;
}

/* Contact page — new hero */
.contact-hero {
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.contact-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.contact-hero .container {
  z-index: 1;
  padding-top: 5rem;
  padding-bottom: 2.5rem;
}

.contact-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

.contact-cards-section {
  background: #f6f8fb;
}

.contact-pro-shell {
  position: relative;
  z-index: 2;
  margin-top: 0.35rem;
}

.contact-pro-nav {
  position: relative;
  z-index: 2;
  margin-bottom: 0.9rem;
  align-items: center;
  gap: 1.2rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.contact-pro-info-card,
.contact-pro-form-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 1rem;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12);
}

.contact-pro-office-image {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.contact-pro-line {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  color: #475569;
  font-size: 0.88rem;
}

.contact-pro-line i {
  color: var(--booking-accent);
  margin-top: 0.1rem;
}

.contact-pro-form-card {
  padding: 1.15rem;
}

.contact-pro-form-card .enquiry-compact-form .form-control,
.contact-pro-form-card .enquiry-compact-form .form-select {
  border-radius: 0.6rem;
  min-height: 42px;
}

.contact-pro-form-card .enquiry-compact-form textarea.form-control {
  min-height: 120px;
}

.contact-pro-mid {
  background: #f6f3ec;
}

.contact-pro-news-map {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 0.9rem;
  align-items: stretch;
}

.contact-pro-newsletter {
  background: #21242a;
  color: #fff;
  border-radius: 0.9rem;
  padding: 1rem;
}

.contact-pro-newsletter .text-secondary {
  color: rgba(255, 255, 255, 0.65) !important;
}

.contact-pro-newsletter .form-control {
  border-radius: 999px;
}

.contact-pro-map {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.9rem;
  overflow: hidden;
}

.contact-pro-map iframe {
  width: 100%;
  min-height: 220px;
  border: 0;
  display: block;
}

.contact-pro-support-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 0.8rem;
  padding: 0.95rem;
}

.enquiry-compact-form .form-label,
.enquiry-standard-form .form-label {
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 0.3rem;
  letter-spacing: 0.01em;
}

.enquiry-compact-form .form-control,
.enquiry-compact-form .form-select,
.enquiry-standard-form .form-control,
.enquiry-standard-form .form-select {
  min-height: 42px;
  border-radius: 0.65rem;
  border: 1px solid #dbe3ef;
  background: #fff;
  font-size: 0.9rem;
  box-shadow: none;
}

.enquiry-compact-form textarea.form-control,
.enquiry-standard-form textarea.form-control {
  min-height: 120px;
  border-radius: 0.75rem;
}

.enquiry-compact-form .form-control:focus,
.enquiry-compact-form .form-select:focus,
.enquiry-standard-form .form-control:focus,
.enquiry-standard-form .form-select:focus {
  border-color: rgba(10, 99, 201, 0.45);
  box-shadow: 0 0 0 3px rgba(10, 99, 201, 0.12);
}

.enquiry-compact-form .btn.btn-accent,
.enquiry-standard-form .btn.btn-accent {
  border-radius: 0.75rem !important;
  min-height: 44px;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.hotel-filter-panel {
  background: #fff;
  border-radius: 1rem;
  padding: 1rem;
  box-shadow: 0 12px 30px rgba(15, 61, 58, 0.08);
}

.hotel-filter-sticky {
  top: 132px;
  z-index: auto;
}

.hotel-list-card {
  border-radius: 1rem;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hotel-list-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(15, 61, 58, 0.12) !important;
}

/* Destinations page — premium redesign */
.destpage-hero-wrap {
  position: relative;
}

.destpage-hero-slide {
  min-height: 580px;
  background-size: cover;
  background-position: center;
}

.destpage-hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 5rem;
  z-index: 3;
}

.destpage-hero-wrap .carousel-control-prev,
.destpage-hero-wrap .carousel-control-next {
  width: 56px;
  z-index: 4;
}

/* Featured strip — overlapping cards */
.destpage-featured-strip {
  margin-top: -3.5rem;
  position: relative;
  z-index: 6;
  padding-bottom: 0.5rem;
}

.destpage-feat-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid #e7ebf1;
  box-shadow: 0 16px 40px rgba(11, 79, 156, 0.1);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.destpage-feat-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 50px rgba(11, 79, 156, 0.14);
}

.destpage-feat-media {
  position: relative;
  height: 200px;
  overflow: hidden;
}

.destpage-feat-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.destpage-feat-card:hover .destpage-feat-media img {
  transform: scale(1.06);
}

.destpage-feat-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(6, 21, 38, 0.15));
  pointer-events: none;
}

.destpage-feat-body {
  padding: 1rem 1.1rem 1.15rem;
}

.destpage-feat-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Why us points */
.destpage-why-point {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.75rem;
  border: 1px solid #e7ebf1;
  border-radius: 0.75rem;
  background: #f8fafc;
  font-size: 0.88rem;
  font-weight: 500;
  color: #1f2937;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.destpage-why-point:hover {
  border-color: var(--oh-forest-2);
  box-shadow: 0 4px 12px rgba(11, 79, 156, 0.08);
}

.destpage-why-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(11, 79, 156, 0.1);
  color: var(--oh-forest);
  display: grid;
  place-items: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.destpage-why-image {
  position: relative;
}

.destpage-why-image img {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: cover;
}

/* Popular destinations grid */
.destpage-pop-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 200px;
  gap: 0.75rem;
}

.destpage-pop-card {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  display: block;
}

.destpage-pop-card--tall {
  grid-row: span 2;
}

.destpage-pop-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.destpage-pop-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(6, 21, 38, 0.7));
  pointer-events: none;
}

.destpage-pop-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1rem 1.1rem;
}

.destpage-pop-link {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--oh-gold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.destpage-pop-card:hover img {
  transform: scale(1.06);
}

/* Mood / stay cards */
.destpage-mood-card {
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 61, 58, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.destpage-mood-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(11, 79, 156, 0.1);
}

.destpage-mood-media {
  height: 180px;
  overflow: hidden;
}

.destpage-mood-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.destpage-mood-card:hover .destpage-mood-media img {
  transform: scale(1.05);
}

.destpage-mood-body {
  padding: 1rem 1.1rem 1.15rem;
}

.destpage-mood-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--oh-forest-2);
}

.destpage-mood-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.destpage-mood-cta {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--oh-forest);
}

.destpage-mood-cta i {
  transition: transform 0.2s ease;
}

.destpage-mood-card:hover .destpage-mood-cta i {
  transform: translateX(3px);
}

/* Legacy classes kept for any remaining references */
.destinations-hero-wrap { position: relative; }
.destinations-hero-slide { min-height: 520px; background-size: cover; background-position: center; }
.destinations-hero-content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; z-index: 3; }
.destinations-hero-wrap .carousel-control-prev, .destinations-hero-wrap .carousel-control-next { width: 56px; }
.destinations-featured-wrap { margin-top: -98px; position: relative; z-index: 6; }
.destinations-feature-card { background: #fff; border: 1px solid #e5ebf3; border-radius: 1rem; overflow: hidden; box-shadow: 0 14px 36px rgba(15,61,58,.12); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.destinations-feature-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(15,61,58,.14); }
.destinations-feature-media img { width: 100%; height: 190px; object-fit: cover; }
.destinations-feature-body { padding: 0.95rem 1rem 1rem; }
.destinations-why-wrap { background: #fff; }
.destination-why-point { border: 1px solid #e6ebf2; border-radius: 0.55rem; background: #f8fafc; padding: 0.52rem 0.62rem; display: flex; align-items: center; gap: 0.45rem; font-size: 0.86rem; color: #1f2937; }
.destination-why-point i { color: #0b4f9c; font-size: 0.9rem; }
.destination-video-box { border-radius: 0.6rem; overflow: hidden; box-shadow: 0 12px 28px rgba(15,61,58,.12); }
.destination-video-box iframe, .destination-video-box img { width: 100%; min-height: 290px; border: 0; display: block; object-fit: cover; }
.destinations-popular-wrap { background: #fff; }
.destinations-pop-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0.65rem; }
.destinations-pop-card { position: relative; border-radius: 1rem; overflow: hidden; height: 170px; min-height: 170px; display: block; }
.destinations-pop-card img { width: 100%; height: 100%; min-height: 170px; object-fit: cover; transition: transform 0.35s ease; }
.destinations-pop-overlay { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(2,10,24,.06), rgba(2,10,24,.58)); height: 50%; }
.destinations-pop-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 0.5rem 0.65rem; }
.destinations-pop-card:hover img { transform: scale(1.06); }
.destinations-mood-wrap { background: #fff; }
.destination-mood-card { border: 1px solid #e6ebf2; border-radius: 1rem; background: #fff; overflow: hidden; box-shadow: 0 8px 20px rgba(15,61,58,.06); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.destination-mood-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(15,61,58,.1); }
.destination-mood-card img { width: 100%; height: 138px; object-fit: cover; }
.destination-mood-body { padding: 0.65rem 0.7rem 0.75rem; }
.destination-mood-link { font-size: 0.78rem; font-weight: 600; color: #0b4f9c; text-decoration: underline; text-underline-offset: 2px; }

.hotels-city-hero {
  position: relative;
  min-height: 42vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.hotels-city-hero .container {
  padding-top: 5rem;
  padding-bottom: 2.5rem;
}

.hotels-city-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.65) 100%),
    url("https://images.unsplash.com/photo-1513326738677-b964603b136d?w=1800&q=80")
      center/cover no-repeat;
}

.hotels-search-strip-wrap {
  margin-top: -30px;
  position: relative;
  z-index: 5;
}

.hotels-search-strip {
  background: #fff;
  border: 1px solid #e4e9f2;
  border-radius: 0.9rem;
  box-shadow: 0 14px 32px rgba(15, 61, 58, 0.1);
  padding: 0.85rem;
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 1fr 0.7fr;
  gap: 0.65rem;
  align-items: end;
}

.hotels-search-btn-wrap {
  display: flex;
  align-items: end;
}

.hotels-filter-card {
  border: 1px solid #e4e9f2;
  box-shadow: 0 12px 32px rgba(15, 61, 58, 0.08);
}

.hotels-results-head {
  border-bottom: 1px solid #e9edf4;
  padding-bottom: 0.55rem;
}

.hotels-result-card {
  border: 1px solid #e6ebf2;
}

.hotels-showcase-wrap {
  border-top: 1px solid #e5e7eb;
}

@media (min-width: 992px) {
  .hotels-showcase-wrap {
    margin-top: 2.75rem;
    margin-bottom: 2.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .hotels-showcase-wrap .hotels-showcase-row + .hotels-showcase-row {
    margin-top: 2.5rem;
  }
}

.hotels-showcase-row {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 0.95rem;
  align-items: stretch;
}

.hotels-showcase-intro {
  padding: 0.8rem 0.2rem 0.2rem;
}

.hotels-showcase-nav {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 0.2rem;
  border: 1px solid #cfd6e3;
  color: #64748b;
  display: inline-grid;
  place-items: center;
  font-size: 0.72rem;
  background: #fff;
}

.hotels-showcase-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.hotels-showcase-card {
  border: 1px solid #e6ebf2;
  border-radius: 0.35rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 18px rgba(15, 61, 58, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hotels-showcase-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(15, 61, 58, 0.1);
}

.hotels-showcase-card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
}

.hotels-showcase-card-body {
  padding: 0.55rem 0.65rem 0.6rem;
}

.hotel-list-image {
  width: 100%;
  height: 100%;
  min-height: 200px;
  object-fit: cover;
}

.hotel-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: #f4f7f7;
  color: #394555;
  font-size: 0.76rem;
}

.stats-animated-row .counter-number {
  font-size: 2.1rem;
  letter-spacing: -0.02em;
  transition: transform 0.25s ease;
}

.home-stat-card {
  background: #fff;
  border: 1px solid #e8edf5;
  border-radius: 1rem;
  padding: 1rem 0.9rem;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-stat-card:hover {
  transform: translateY(-4px);
  border-color: rgba(10, 99, 201, 0.25);
  box-shadow: 0 14px 30px rgba(10, 99, 201, 0.12);
}

.home-stat-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-grid;
  place-items: center;
  background: #edf5ff;
  color: var(--oh-forest-2);
  margin-bottom: 0.4rem;
}

.stats-animated-row .home-stat-card:hover .counter-number {
  transform: translateY(-2px) scale(1.04);
}

.home-testimonials-section {
  background: #f6f5f1;
}

.home-testimonials-section .container {
  position: relative;
}

.testimonial-animated-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.home-testimonial-card {
  border: 1px solid #e8edf5;
  padding: 1rem 0.95rem;
}

.home-testimonial-quote {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: inline-grid;
  place-items: center;
  background: rgba(10, 99, 201, 0.1);
  color: var(--oh-forest-2);
}

.home-testimonial-stars {
  color: #f59e0b;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
}

.home-testimonial-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.testimonial-animated-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(11, 79, 156, 0.12) !important;
}

.carousel-item.active .home-testimonial-card {
  animation: testimonialFadeUp 420ms ease both;
}

@keyframes testimonialFadeUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.home-testimonial-nav {
  width: 34px;
  height: 34px;
  top: calc(50% - 17px);
  border-radius: 999px;
  border: 1px solid #dce4f1;
  background: #fff;
  color: #1f2937;
  opacity: 1;
}

.home-testimonial-nav.carousel-control-prev {
  left: -10px;
}

.home-testimonial-nav.carousel-control-next {
  right: -10px;
}

.home-testimonial-nav:hover {
  background: #f8fafc;
  color: var(--oh-forest-2);
}

.carousel-dot-btn {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 0;
  background: #c7cfdd;
  transition: width 0.2s ease, background-color 0.2s ease;
}

.carousel-dot-btn.active {
  width: 24px;
  background: var(--oh-forest);
}

@media (max-width: 768px) {
  .contact-pro-hero {
    padding: 1.8rem 0 1.6rem;
  }

  .contact-hero {
    min-height: 34vh;
  }

  .contact-pro-hero-bg {
    height: 240px;
  }

  .contact-pro-news-map {
    grid-template-columns: 1fr;
  }

  .contact-pro-office-image {
    height: 240px;
  }

  .pkgd-related-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0.75rem;
    padding-bottom: 0.2rem;
  }

  .pkgd-related-card {
    min-width: 78%;
    scroll-snap-align: start;
  }

  .pkgd-newsletter-form {
    width: 100%;
  }

  .pkgd-review-quick {
    grid-template-columns: 1fr;
  }

  .pkgd-help-strip {
    flex-direction: column;
    align-items: flex-start;
  }

  .home-testimonial-nav {
    display: none;
  }

  .booking-hero-wrap {
    min-height: 300px;
  }

  .booking-form-shell {
    margin-top: -40px;
  }

  .booking-form-card--premium .booking-wizard-form {
    padding: 1rem 0.95rem 1.15rem;
  }

  .booking-promo-card--premium img {
    height: 200px;
  }

  .booking-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-summary-card {
    position: sticky;
    top: 76px;
    margin-top: 0;
    margin-bottom: 0.5rem;
  }

  .booking-step-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .booking-nav-btn {
    width: 100%;
    min-width: 0;
  }

  .invoice-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .about-pro-hero {
    min-height: 44vh;
  }

  .about-pro-media-grid img {
    height: 130px;
  }

  .about-pro-article img {
    height: 165px;
  }

  .about-pro-cta {
    padding: 1.3rem 0.9rem;
  }

  .about-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .about-hero {
    padding: 3.25rem 0;
  }

  .about-grid-img {
    height: 130px;
  }

  .hotel-detail-facility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotel-dining-card {
    padding: 0.95rem;
  }

  .hotel-dining-highlights-grid {
    grid-template-columns: 1fr;
  }

  .hotel-dining-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotel-dining-gallery-item.is-large {
    grid-column: span 2;
    grid-row: auto;
  }

  .hotel-feature-card {
    padding: 0.85rem;
  }

  .hotel-subnav-wrap {
    top: 64px;
  }

  .hotel-gallery-img {
    height: 260px;
  }

  .hotel-gallery-thumb {
    height: 120px;
  }

  .hotel-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotel-gallery-card.is-large {
    grid-column: span 2;
    min-height: 240px;
  }

  .hotel-room-media {
    height: 190px;
  }

  .room-main-img {
    height: 250px;
  }

  .room-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .room-amenity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blog-card-img {
    min-height: 180px;
  }

  .blog-feature-image,
  .blog-story-img,
  .blog-next-img {
    min-height: 180px;
    height: 180px;
  }

  .blog-mag-hero {
    min-height: 34vh;
  }

  .blog-mag-card-img {
    height: 180px;
  }

  .blog-instinct-hero-img {
    height: 220px;
  }

  .blog-instinct-cats {
    grid-template-columns: 1fr;
  }

  .blog-instinct-mini {
    grid-template-columns: 1fr;
  }

  .blog-detail-shell {
    padding: 1.25rem;
  }

  .package-gallery-wrap {
    grid-template-columns: 1fr;
  }

  .destination-main-img {
    height: 240px;
  }

  .destination-thumb-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .destination-thumb-stack img {
    height: 76px;
  }

  .package-main-image {
    min-height: 260px;
  }

  .packages-hero-wrap {
    min-height: 34vh;
  }

  .package-list-media img {
    height: 180px;
  }

  .package-thumb-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .package-thumb-image {
    height: 80px;
  }

  .package-price-row {
    flex-direction: column;
  }

  .package-meta-grid {
    grid-template-columns: 1fr;
  }

  .package-enquiry-sticky {
    position: static;
  }

  .pkgd-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .pkgd-main {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 220px;
  }

  .pkgd-tile {
    min-height: 90px;
  }

  .pkgd-offer-grid {
    grid-template-columns: 1fr;
  }

  .contact-profile-card,
  .contact-profile-image {
    min-height: 280px;
  }

  .contact-compact-panel {
    padding: 1.1rem;
  }

  .contact-map-box iframe {
    min-height: 280px;
  }

  .hotel-list-image {
    min-height: 180px;
  }

  .hotels-city-hero {
    min-height: 34vh;
  }

  .hotels-search-strip-wrap {
    margin-top: -18px;
  }

  .hotels-search-strip {
    grid-template-columns: 1fr;
  }

  .hotels-showcase-row {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .hotels-showcase-intro {
    padding: 0.2rem 0;
  }

  .hotels-showcase-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hotels-showcase-card img {
    height: 130px;
  }

  .destpage-hero-slide {
    min-height: 400px;
  }

  .destpage-hero-content {
    padding-bottom: 4rem;
  }

  .destpage-featured-strip {
    margin-top: -2rem;
  }

  .destpage-feat-media {
    height: 150px;
  }

  .destpage-pop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 150px;
  }

  .destpage-pop-card--tall {
    grid-row: span 1;
  }

  .destpage-mood-media {
    height: 150px;
  }

  .destinations-hero-slide {
    min-height: 360px;
  }

  .destinations-featured-wrap {
    margin-top: -34px;
  }

  .destinations-feature-media img {
    height: 170px;
  }

  .destination-video-box iframe,
  .destination-video-box img {
    min-height: 220px;
  }

  .destinations-pop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .destinations-pop-card,
  .destinations-pop-card img {
    height: 120px;
    min-height: 120px;
  }

  .destination-mood-card img {
    height: 126px;
  }

  .hotel-filter-sticky {
    position: static;
  }

  .stats-animated-row .counter-number {
    font-size: 1.8rem;
  }

  .home-hero-min {
    min-height: 72vh;
  }

  .home-handpicked-img-wrap {
    height: 190px;
  }

  .home-handpicked-img-wrap--tall {
    height: 220px;
  }

}

.sticky-cta-rail {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1040;
  flex-direction: column;
  gap: 0;
  pointer-events: none;
  border-radius: 10px 0 0 10px;
  overflow: hidden;
  box-shadow: -4px 6px 18px rgba(0, 0, 0, 0.18);
}

.sticky-cta {
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  transition: filter 0.2s ease, transform 0.2s ease;
  min-width: 44px;
  padding: 0.85rem 0.5rem;
}

.sticky-cta:hover {
  color: #fff;
  filter: brightness(1.06);
}

.sticky-cta--wa {
  background: #25d366;
}

.sticky-cta--quote {
  background: #0b60c1;
  color: #fff;
}

.sticky-cta-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
}

.sticky-cta-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .sticky-cta {
    min-width: 36px;
    padding: 0.62rem 0.38rem;
  }

  .sticky-cta-label {
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }
}

/* About page hero */
.about-hero-section {
  min-height: 72vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.about-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.about-hero-section .container {
  z-index: 1;
  padding-top: 6rem;
  padding-bottom: 3rem;
}

.about-stats-strip {
  margin-top: -2rem;
  position: relative;
  z-index: 2;
  padding: 0 1rem;
}

/* Destination detail hero */
.dest-detail-hero {
  min-height: 52vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.dest-detail-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.dest-detail-hero .container {
  z-index: 1;
  padding-top: 6rem;
  padding-bottom: 2.5rem;
}

.dest-detail-hero .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.35);
  content: "/";
}

.dest-detail-tabs {
  overflow-x: auto;
  flex-wrap: nowrap;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.25rem;
}

@media (max-width: 767.98px) {
  .about-hero-section {
    min-height: 60vh;
  }

  .dest-detail-hero {
    min-height: 40vh;
  }
}

/* Destination detail — hotel cards section */
.dest-hotel-card {
  border: 1px solid #e7ebf1;
  border-radius: 1rem;
  background: #fff;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.dest-hotel-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 48px rgba(11, 79, 156, 0.12);
}

.dest-hotel-card-media {
  position: relative;
  height: 210px;
  background: #edf1f6;
  overflow: hidden;
}

.dest-hotel-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.dest-hotel-card:hover .dest-hotel-card-media img {
  transform: scale(1.05);
}

.dest-hotel-card-rating {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
}

.dest-hotel-card-rating i {
  color: #fbbf24;
}

.dest-hotel-card-body {
  padding: 1.1rem 1.15rem 1.25rem;
}

.dest-hotel-card-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dest-hotel-card-price {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--oh-forest);
}

.dest-hotel-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: #4b5563;
  background: #f3f5f8;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  border: 1px solid #e5e9ef;
}

.dest-hotel-chip i {
  font-size: 0.78rem;
  color: var(--oh-forest-2);
}

/* Destination detail — mini hotel card inside tab */
.dest-hotel-mini-card {
  background: #fff;
  border: 1px solid #e7ebf1;
  border-radius: 0.85rem;
  padding: 0.75rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dest-hotel-mini-card:hover {
  border-color: var(--oh-forest-2);
  box-shadow: 0 6px 20px rgba(11, 79, 156, 0.08);
}

.dest-hotel-mini-card img {
  width: 80px;
  height: 64px;
  border-radius: 0.6rem;
  object-fit: cover;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  .dest-hotel-card-media {
    height: 180px;
  }

  .contact-pro-form-card {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    padding: 0.9rem;
  }

  .contact-pro-form-card .enquiry-compact-form .form-control,
  .contact-pro-form-card .enquiry-compact-form .form-select {
    min-height: 38px;
    font-size: 0.85rem;
  }

  .contact-pro-form-card .enquiry-compact-form textarea.form-control {
    min-height: 90px;
  }

  .contact-pro-form-card h2 {
    font-size: 1.25rem;
  }

  .contact-pro-form-card p,
  .contact-pro-form-card .form-label {
    font-size: 0.8rem;
  }
}

@media print {
  nav,
  footer,
  .btn,
  .sticky-cta-rail {
    display: none !important;
  }

  .invoice-page {
    padding-top: 0 !important;
  }
}
