/* StayNets brand UI overrides.
   Loaded after the template CSS to enforce consistent palette + typography. */

:root {
  --brand-blue: #1E4D70;
  --brand-green: #4B9043;
  --brand-green-dark: #3d7536;
  --brand-blue-dark: #163a56;
  --listing-card-image-height: 220px;
}

/* Headings: consistent color + font */
h1, h2, h3, h4, h5, h6,
.sec-title, .box-title, .widget_title,
.title-area .sec-title {
  color: var(--brand-blue);
  font-family: var(--title-font);
}

a, .link, .text-primary {
  color: var(--brand-blue);
}
a:hover, a:focus, .text-primary:hover {
  color: var(--brand-blue-dark);
}

/* Primary buttons (template th-btn + bootstrap btn-primary) */
.th-btn,
.btn.btn-primary,
.btn-primary {
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
  color: #fff !important;
}

/* Hover uses darker navy */
.th-btn:before {
  background-color: var(--brand-blue-dark) !important;
}
.btn.btn-primary:hover,
.btn-primary:hover,
.btn.btn-primary:focus,
.btn-primary:focus,
.th-btn:hover,
.th-btn:focus {
  background-color: var(--brand-blue-dark) !important;
  border-color: var(--brand-blue-dark) !important;
  color: #fff !important;
}

/* Outline primary */
.btn-outline-primary {
  color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
  color: #fff !important;
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}

/* Success accents — aligned to primary navy */
.text-success { color: var(--brand-blue) !important; }
.bg-success { background-color: var(--brand-blue) !important; }
.btn-success {
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}
.btn-success:hover,
.btn-success:focus {
  background-color: var(--brand-blue-dark) !important;
  border-color: var(--brand-blue-dark) !important;
}

/* Hero tagline — readable on photo backgrounds */
.hero-home .hero-tagline {
  font-size: clamp(1.2rem, 3.2vw, 2rem);
  font-weight: 700;
  line-height: 1.4;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.hero-home .hero-style7 {
  text-align: center;
}

.hero-home .btn-group .th-btn {
  min-width: 130px;
}

/* Homepage hero — full viewport width background */
#hero.th-hero-wrapper.hero-7.hero-home {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  left: 0;
  right: 0;
}

.hero-7.hero-home::before {
  display: none !important;
}

#hero .hero-bg-layer,
#hero #homeHeroCarousel.hero-bg-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

#hero .hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.45) 100%);
  pointer-events: none;
}

#hero .hero-content {
  position: relative;
  z-index: 2;
}

#hero #homeHeroCarousel .carousel-item,
#hero #homeHeroCarousel .carousel-inner {
  height: 100%;
}

#hero #homeHeroCarousel .carousel-item .hero-bg-layer {
  position: absolute;
  inset: 0;
}

#hero #homeHeroCarousel .carousel-control-prev,
#hero #homeHeroCarousel .carousel-control-next {
  z-index: 3;
}

/* Section titles — consistent spacing on landing pages */
.title-area.text-center {
  margin-bottom: 0.5rem;
}

.title-area .sec-text {
  color: #5a6570;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* Booking calendar — greenish headers (admin + owner dashboard) */
.staynets-booking-calendar .booking-cal-table thead th {
  background: linear-gradient(135deg, var(--brand-blue-dark) 0%, var(--brand-blue) 100%) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
  font-weight: 600;
}

.staynets-booking-calendar .booking-cal-table thead th.bg-light {
  background: var(--brand-blue) !important;
  color: #fff !important;
}

.staynets-booking-calendar h6.fw-bold {
  color: var(--brand-blue);
}

.staynets-booking-calendar .btn-primary {
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}

.staynets-booking-calendar .btn-primary:hover,
.staynets-booking-calendar .btn-outline-primary:hover {
  background-color: var(--brand-blue-dark) !important;
  border-color: var(--brand-blue-dark) !important;
}

.staynets-booking-calendar .btn-outline-primary {
  color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}

.admin-calendar-panel {
  border-top: 4px solid var(--brand-blue);
}

.admin-calendar-panel > .d-flex h4,
.admin-calendar-panel h5.fw-bold {
  color: var(--brand-blue);
}

#calendar .card-title {
  color: var(--brand-blue);
}

#calendar .card {
  border-top: 4px solid var(--brand-blue) !important;
}

/* Property / listing grid cards: equal cover image height */
.tour-box:not(.style-flex) > .tour-box_img,
.listing-card-img {
  height: var(--listing-card-image-height);
  overflow: hidden;
}

.tour-box:not(.style-flex) > .tour-box_img img,
.listing-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tour-box.style-flex > .tour-box_img {
  height: var(--listing-card-image-height);
  min-height: var(--listing-card-image-height);
  overflow: hidden;
}

.tour-box.style-flex > .tour-box_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Uniform compact buttons on listing, property, and room pages */
.listing-btn,
.tour-box .tour-action .th-btn,
.tour-box .tour-content .th-btn.style3,
.tour-box .tour-content .th-btn.style4,
.tour-box .tour-content > .d-flex .th-btn,
.btn-book-room,
.rooms-table .btn-book-room,
.rooms-table a.listing-btn {
  padding: 6px 16px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  border-radius: 24px;
  gap: 4px;
  font-weight: 600 !important;
  white-space: nowrap;
}

.btn-book-room {
  background: var(--brand-blue) !important;
  color: #fff !important;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}

.btn-book-room:hover:not(:disabled) {
  background: var(--brand-blue-dark) !important;
}

.btn-book-room:disabled {
  background: #ccc !important;
  cursor: not-allowed;
}

.btn-reserve {
  padding: 10px 16px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  border-radius: 8px;
  font-weight: 600 !important;
}

.tour-box .tour-action .th-btn.th-icon:after {
  width: 14px;
  height: 14px;
}
