/* ==========================================================================
   Travelora — shared theme
   ========================================================================== */

:root{
  --tv-blue: #1a56e8;
  --tv-blue-dark: #123fb0;
  --tv-blue-darker: #0d2f86;
  --tv-orange: #ff7a3d;
  --tv-orange-dark: #f2621f;
  --tv-navy: #0f1b3d;
  --tv-navy-70: rgba(15,27,61,.7);
  --tv-navy-50: rgba(15,27,61,.5);
  --tv-gray-bg: #f5f7fc;
  --tv-gray-line: #e7ebf5;
  --tv-green: #17b978;
  --tv-yellow: #ffb92e;
  --tv-red: #ff4d6d;
  --tv-purple: #8b5cf6;
  --radius-lg: 22px;
  --radius-md: 16px;
  --radius-sm: 10px;
  --shadow-soft: 0 10px 30px rgba(15,27,61,.08);
  --shadow-pop: 0 20px 45px rgba(15,27,61,.14);
  --font-head: "Plus Jakarta Sans", sans-serif;
  --font-body: "Inter", sans-serif;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-body);
  color: var(--tv-navy);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6, .font-head{
  font-family: var(--font-head);
  color: var(--tv-navy);
  font-weight:800;
  letter-spacing:-0.02em;
}

a{ text-decoration:none; }

.text-orange{ color: var(--tv-orange) !important; }
.text-blue{ color: var(--tv-blue) !important; }
.bg-blue{ background: var(--tv-blue) !important; }
.bg-soft{ background: var(--tv-gray-bg) !important; }

.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight:700;
  font-size:1.05rem;
}

/* ---------- Buttons ---------- */
.btn{
  border-radius: 50px;
  font-weight:700;
  padding:.7rem 1.5rem;
  font-family: var(--font-head);
  font-size:.95rem;
  transition:.2s ease;
}
.btn-primary-tv{
  background: var(--tv-blue);
  border:1px solid var(--tv-blue);
  color:#fff;
}
.btn-primary-tv:hover{
  background: var(--tv-blue-dark);
  border-color: var(--tv-blue-dark);
  color:#fff;
  transform:translateY(-2px);
}
.btn-outline-tv{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  color: var(--tv-navy);
}
.btn-outline-tv:hover{
  border-color:var(--tv-blue);
  color:var(--tv-blue);
  transform:translateY(-2px);
}
.btn-orange-tv{
  background: var(--tv-orange);
  border:1px solid var(--tv-orange);
  color:#fff;
}
.btn-orange-tv:hover{
  background: var(--tv-orange-dark);
  color:#fff;
  transform:translateY(-2px);
}
.btn-sm-tv{ padding:.45rem 1rem; font-size:.82rem; }

/* ---------- Top utility bar ---------- */
.topbar{
  background: var(--tv-blue);
  color:#fff;
  font-size:.82rem;
}
.topbar .container{
  padding-top:.45rem;
  padding-bottom:.45rem;
}
.topbar i{ margin-right:.35rem; }
.topbar a{ color:#fff; opacity:.9; }
.topbar a:hover{ opacity:1; }

/* ---------- Navbar ---------- */
.navbar-tv{
  padding:.9rem 0;
  background:#fff;
}
.navbar-tv .navbar-brand{
  font-family: var(--font-head);
  font-weight:800;
  font-size:1.5rem;
  color:var(--tv-navy);
  display:flex;
  align-items:center;
  gap:.55rem;
  line-height:1.1;
}
.navbar-tv .navbar-brand .brand-tag{
  display:block;
  font-family: var(--font-body);
  font-weight:500;
  font-size:.65rem;
  color:var(--tv-navy-50);
}
.navbar-tv .brand-icon{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  background: var(--tv-blue);
  color:#fff;
  border-radius:50%;
  font-size:1.05rem;
}
.navbar-tv .nav-link{
  font-weight:600;
  color: var(--tv-navy-70);
  padding:.5rem 1rem !important;
  position:relative;
}
.navbar-tv .nav-link.active,
.navbar-tv .nav-link:hover{ color:var(--tv-blue); }
.navbar-tv .nav-link.active::after{
  content:"";
  position:absolute;
  left:1rem; right:1rem; bottom:.15rem;
  height:2px;
  background:var(--tv-blue);
  border-radius:2px;
}
.navbar-tv .nav-icon-btn{
  width:40px;height:40px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--tv-navy);
  background:var(--tv-gray-bg);
  border:none;
  transition:.2s;
}
.navbar-tv .nav-icon-btn:hover{ background:#e9edf9; color:var(--tv-blue); }


/* ---------- Hero ---------- */
.hero{
  position:relative;
  background: linear-gradient(180deg,#f7f9ff 0%, #ffffff 65%);
  padding-top:3.5rem;
  padding-bottom:6.5rem;
}
.hero h1{
  font-size:clamp(2.2rem, 4.5vw, 3.4rem);
  line-height:1.08;
}
.hero .lead-p{
  color:var(--tv-navy-70);
  font-size:1.05rem;
  max-width:480px;
}
.hero-img-wrap{
  position:relative;
  border-radius: 30px;
  overflow:hidden;
  box-shadow: var(--shadow-pop);
}
.hero-img-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-badge{
  position:absolute;
  background:#fff;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-pop);
  padding:1rem 1.2rem;
  font-family:var(--font-head);
}
.hero-badge-offer{ top:14%; right:-6%; text-align:left; }
.hero-badge-offer small{ display:block; font-family:var(--font-body); font-weight:600; color:var(--tv-navy-70); font-size:.72rem;}
.hero-badge-offer .off{ font-size:1.55rem; color:var(--tv-blue); font-weight:800; }
.avatars-trust{ display:flex; align-items:center; gap:.75rem; }
.avatars-trust .stack{ display:flex; }
.avatars-trust .stack img{
  width:38px;height:38px;border-radius:50%;
  border:3px solid #fff;
  object-fit:cover;
  margin-left:-12px;
}
.avatars-trust .stack img:first-child{ margin-left:0; }
.floating-pill{
  position:absolute;
  background:#fff;
  border-radius:50px;
  box-shadow:var(--shadow-soft);
  padding:.5rem 1rem;
  display:flex; align-items:center; gap:.4rem;
  font-weight:700; font-size:.82rem;
  animation: float 4s ease-in-out infinite;
}
@keyframes float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-12px); }
}

/* ---------- Search widget ---------- */
.search-widget{
  background:#fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-pop);
  padding: 1.4rem;
  margin-top:-4.5rem;
  position:relative;
  z-index:5;
}
.search-tabs{
  display:flex;
  gap:.5rem;
  margin-bottom:1.1rem;
  flex-wrap:wrap;
}
.search-tabs .stab{
  border:none;
  background:transparent;
  font-family:var(--font-head);
  font-weight:700;
  color:var(--tv-navy-50);
  padding:.4rem .3rem;
  display:flex; align-items:center; gap:.45rem;
  border-bottom:2.5px solid transparent;
  font-size:.92rem;
}
.search-tabs .stab i{ font-size:1.05rem; }
.search-tabs .stab.active{
  color:var(--tv-blue);
  border-color:var(--tv-blue);
}

.search-fields{
  display:grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: 0;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  overflow:visible;
}
.search-field{
  padding:.65rem 1.1rem;
  border-right:1px solid var(--tv-gray-line);
  position:relative;
}
.search-fields .search-field:last-of-type{ border-right:none; }
.search-field label{
  font-size:.72rem;
  font-weight:700;
  color:var(--tv-navy-50);
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:.15rem;
  display:block;
}
.search-field .field-value{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-weight:700;
  cursor:pointer;
  color:var(--tv-navy);
  font-size:.92rem;
}
.search-field .field-value i.leading{ color:var(--tv-blue); }
.search-field .field-value i.chev{ margin-left:auto; color:var(--tv-navy-50); font-size:.75rem; transition:.2s; }
.search-field.open .field-value i.chev{ transform:rotate(180deg); }
.search-field input.field-input{
  border:none; outline:none; font-weight:700; width:100%; padding:0; font-size:.92rem; font-family:var(--font-body); color:var(--tv-navy);
}
.search-submit{
  padding:.5rem;
  display:flex; align-items:center;
}
.search-submit .btn{ height:100%; padding:1rem 1.6rem; white-space:nowrap; }

/* smooth dropdown panel */
.search-field.open{ z-index:1000; }
.tv-dropdown{
  position:absolute;
  top:calc(100% + 12px);
  left:0;
  min-width:280px;
  background:#fff;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-pop);
  padding:1rem;
  z-index:1000;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px) scale(.98);
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.search-field.open .tv-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.tv-dropdown.wide{ min-width:320px; }
.tv-dropdown .dd-title{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.03em;
  font-weight:800; color:var(--tv-navy-50); margin-bottom:.6rem;
}
.tv-dropdown .loc-item{
  display:flex; align-items:center; gap:.7rem;
  padding:.55rem .5rem; border-radius:10px; cursor:pointer; font-weight:600; font-size:.9rem;
}
.tv-dropdown .loc-item:hover{ background:var(--tv-gray-bg); }
.tv-dropdown .loc-item i{ color:var(--tv-blue); background:#eaf0ff; width:34px;height:34px;border-radius:50%; display:flex;align-items:center;justify-content:center; }
.tv-dropdown .loc-item .sub{ display:block; font-weight:500; font-size:.74rem; color:var(--tv-navy-50); }

/* guest stepper */
.guest-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:.6rem 0;
  border-bottom:1px solid var(--tv-gray-line);
}
.guest-row:last-child{ border-bottom:none; }
.guest-row .g-label{ font-weight:700; font-size:.9rem; }
.guest-row .g-sub{ font-weight:500; font-size:.74rem; color:var(--tv-navy-50); }
.stepper{ display:flex; align-items:center; gap:.7rem; }
.stepper button{
  width:30px;height:30px;border-radius:50%;
  border:1px solid var(--tv-gray-line);
  background:#fff; color:var(--tv-blue);
  font-weight:800; display:flex; align-items:center; justify-content:center;
  transition:.15s;
}
.stepper button:hover:not(:disabled){ background:var(--tv-blue); color:#fff; border-color:var(--tv-blue); }
.stepper button:disabled{ opacity:.35; cursor:not-allowed; }
.stepper .g-count{ font-weight:800; min-width:16px; text-align:center; }
.tv-dropdown .dd-apply{ width:100%; margin-top:.85rem; }

/* simple date input styling reuse */
.search-field input[type="date"]{ appearance:none; }

/* ---------- Popular Destinations / cards / carousel ---------- */
.tv-carousel-wrap{ position:relative; }
.tv-carousel{
  display:flex;
  gap:1.25rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:.5rem;
  scrollbar-width:none;
}
.tv-carousel::-webkit-scrollbar{ display:none; }
.tv-carousel .dest-card{
  flex:0 0 auto;
  width:250px;
  scroll-snap-align:start;
}
.carousel-arrow{
  position:absolute; top:40%; transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:#fff; border:1px solid var(--tv-gray-line);
  box-shadow:var(--shadow-soft);
  display:flex; align-items:center; justify-content:center;
  z-index:4;
  color:var(--tv-navy);
}
.carousel-arrow:hover{ color:var(--tv-blue); }
.carousel-arrow.left{ left:-22px; }
.carousel-arrow.right{ right:-22px; }
@media (max-width:767px){
  .carousel-arrow{ display:none; }
}

.dest-card{
  position:relative;
  border-radius: var(--radius-md);
  overflow:hidden;
  height:320px;
  box-shadow: var(--shadow-soft);
}
.dest-card img{ width:100%; height:100%; object-fit:cover; transition:.4s ease; }
.dest-card:hover img{ transform:scale(1.08); }
.dest-card .badge-off{
  position:absolute; top:12px; left:12px;
  background:var(--tv-orange); color:#fff;
  font-weight:800; font-size:.75rem;
  padding:.3rem .6rem; border-radius:50px;
}
.dest-card .badge-rating{
  position:absolute; top:12px; right:12px;
  background:var(--tv-green); color:#fff;
  font-weight:800; font-size:.72rem;
  padding:.3rem .55rem; border-radius:50px;
  display:flex;align-items:center;gap:.25rem;
}
.dest-card .card-info{
  position:absolute; left:0; right:0; bottom:0;
  padding:1rem;
  background:linear-gradient(0deg, rgba(0,0,0,.75), rgba(0,0,0,0));
  color:#fff;
}
.dest-card .card-info h5{ color:#fff; margin-bottom:.15rem; font-size:1.05rem; }
.dest-card .card-info .price{ font-size:.82rem; font-weight:600; opacity:.95; }
.dest-card .card-info .stars{ color:var(--tv-yellow); font-size:.78rem; }

/* ---------- Top deals banner ---------- */
.deal-banner{
  background: linear-gradient(120deg, var(--tv-blue), var(--tv-blue-darker));
  border-radius: var(--radius-lg);
  color:#fff;
  padding:2.2rem;
  position:relative;
  overflow:hidden;
  height:100%;
}
.deal-banner i.plane-deco{
  position:absolute; right:-10px; bottom:-10px; font-size:8rem; opacity:.14; transform:rotate(-20deg);
}
.deal-card{
  border-radius: var(--radius-md);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  height:100%;
  background:#fff;
}
.deal-card img{ width:100%; height:150px; object-fit:cover; }
.deal-card .body{ padding:1rem; }
.deal-card .tag{
  position:absolute; margin:10px; padding:.3rem .6rem; border-radius:50px; font-weight:800; font-size:.7rem; color:#fff;
}
.deal-card .old-price{ text-decoration:line-through; color:var(--tv-navy-50); font-size:.82rem; margin-right:.4rem;}
.deal-card .new-price{ color:var(--tv-orange); font-weight:800; font-size:1.1rem; }

/* ---------- Feature strip ---------- */
.feature-strip{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-lg);
  padding:1.5rem;
  box-shadow:var(--shadow-soft);
}
.feature-item{ display:flex; align-items:center; gap:.85rem; }
.feature-item .ic{
  width:50px;height:50px;min-width:50px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
}
.feature-item h6{ margin-bottom:.1rem; font-size:.9rem; }
.feature-item p{ margin:0; font-size:.76rem; color:var(--tv-navy-50); }

/* ---------- Testimonials ---------- */
.testi-card{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  padding:1.5rem;
  height:100%;
  box-shadow:var(--shadow-soft);
}
.testi-card i.quote{ color:var(--tv-blue); font-size:1.6rem; opacity:.25; }
.testi-card .stars{ color:var(--tv-yellow); font-size:.85rem; }
.testi-user{ display:flex; align-items:center; gap:.7rem; margin-top:1rem; }
.testi-user img{ width:44px; height:44px; border-radius:50%; object-fit:cover; }
.testi-user h6{ margin:0; font-size:.9rem; }
.testi-user span{ font-size:.76rem; color:var(--tv-navy-50); }

/* ---------- Newsletter ---------- */
.newsletter-box{
  border-radius: var(--radius-lg);
  overflow:hidden;
  background: linear-gradient(120deg, var(--tv-blue-darker), var(--tv-blue));
  color:#fff;
  padding:2.2rem;
  position:relative;
}
.newsletter-box input{
  border-radius:50px; border:none; padding:.8rem 1.2rem; width:100%;
}
.newsletter-box .send-btn{
  width:46px;height:46px;border-radius:50%;
  background:var(--tv-orange); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
}

/* ---------- Footer ---------- */
.footer-tv{
  background:#0c1530;
  color:rgba(255,255,255,.7);
  padding-top:3.5rem;
}
.footer-tv h6{ color:#fff; font-family:var(--font-head); margin-bottom:1rem;}
.footer-tv a{ color:rgba(255,255,255,.65); }
.footer-tv a:hover{ color:#fff; }
.footer-tv .flink{ display:block; margin-bottom:.55rem; font-size:.88rem; }
.footer-tv .social-ic{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:2.5rem;
  padding:1.1rem 0;
  font-size:.8rem;
}

/* ==========================================================================
   Search results page
   ========================================================================== */
.filter-card{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  padding:1.4rem;
  box-shadow:var(--shadow-soft);
}
.filter-card h6{ font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; color:var(--tv-navy-50); margin-bottom:.9rem; }
.filter-block{ padding-bottom:1.2rem; margin-bottom:1.2rem; border-bottom:1px solid var(--tv-gray-line); }
.filter-block:last-child{ border-bottom:none; margin-bottom:0; }
.form-check-input:checked{ background-color:var(--tv-blue); border-color:var(--tv-blue); }
.form-check-label{ font-size:.88rem; font-weight:500; }
.price-pill-group{ display:flex; gap:.5rem; flex-wrap:wrap; }
.price-pill{
  border:1px solid var(--tv-gray-line);
  border-radius:50px; padding:.35rem .85rem;
  font-size:.8rem; font-weight:600; cursor:pointer;
}
.price-pill.active, .price-pill:hover{ border-color:var(--tv-blue); color:var(--tv-blue); background:#eef3ff; }
.star-filter{ display:flex; gap:.35rem; color:var(--tv-yellow); font-size:.9rem; cursor:pointer; }

.result-card{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  height:100%;
  display:flex; flex-direction:column;
  transition:.2s;
}
.result-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-pop); }
.result-card .img-wrap{ position:relative; height:190px; }
.result-card .img-wrap img{ width:100%; height:100%; object-fit:cover; }
.result-card .fav-btn{
  position:absolute; top:10px; right:10px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.9);
  display:flex;align-items:center;justify-content:center;
  color:var(--tv-navy);
}
.result-card .body{ padding:1.1rem; display:flex; flex-direction:column; flex:1; }
.result-card .loc{ font-size:.78rem; color:var(--tv-navy-50); font-weight:600; }
.result-card h5{ font-size:1.02rem; margin:.2rem 0 .4rem; }
.result-card .amenities{ display:flex; gap:.7rem; margin:.5rem 0; font-size:.78rem; color:var(--tv-navy-50); }
.result-card .foot{ margin-top:auto; display:flex; align-items:end; justify-content:space-between; padding-top:.7rem; border-top:1px solid var(--tv-gray-line); }
.result-card .price{ font-weight:800; color:var(--tv-blue); font-size:1.15rem; }
.result-card .price small{ color:var(--tv-navy-50); font-weight:500; font-size:.7rem; }

.sort-bar{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  padding:.9rem 1.2rem;
}

/* ---------- Flight result rows ---------- */
.flight-row{
  background:#fff;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
  padding:1.1rem 1.3rem;
  display:flex;
  align-items:center;
  gap:1.5rem;
  margin-bottom:1rem;
  transition:.2s;
}
.flight-row:hover{ box-shadow: var(--shadow-pop); transform:translateY(-2px); }
.flight-row .airline-col{
  display:flex; align-items:center; gap:.6rem;
  width:150px; min-width:150px;
}
.flight-row .airline-col .ic{
  width:42px;height:42px;min-width:42px; border-radius:50%;
  background:#eaf0ff; color:var(--tv-blue);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.flight-row .airline-col span{ font-weight:700; font-size:.88rem; }
.flight-row .route-col{
  display:flex; align-items:center; gap:1.25rem;
  flex:1;
}
.flight-row .route-col .time-block{ text-align:center; min-width:56px; }
.flight-row .route-col .time-block h6{ margin-bottom:0; font-size:1.05rem; }
.flight-row .route-col .time-block span{ font-size:.75rem; color:var(--tv-navy-50); font-weight:600; }
.flight-row .route-col .path{ flex:1; text-align:center; }
.flight-row .route-col .path .dur{ display:block; font-size:.72rem; color:var(--tv-navy-50); font-weight:600; margin-bottom:.25rem; }
.flight-row .route-col .path .line{ position:relative; height:2px; background:var(--tv-gray-line); margin:0 .25rem; }
.flight-row .route-col .path .line i{ position:absolute; right:-2px; top:-8px; font-size:.85rem; color:var(--tv-blue); background:#fff; }
.flight-row .route-col .path .stops{ display:block; font-size:.72rem; color:var(--tv-navy-50); font-weight:600; margin-top:.25rem; }
.flight-row .fare-col{
  text-align:right;
  min-width:130px;
}
.flight-row .fare-col .price{ font-weight:800; color:var(--tv-blue); font-size:1.2rem; line-height:1; }
.flight-row .fare-col .price small{ display:block; font-weight:500; color:var(--tv-navy-50); font-size:.7rem; margin-top:.15rem; }
.flight-row .fare-col .btn{ margin-top:.55rem; }

@media (max-width: 767px){
  .flight-row{ flex-wrap:wrap; }
  .flight-row .airline-col{ width:auto; }
  .flight-row .route-col{ order:3; width:100%; flex-basis:100%; margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--tv-gray-line); }
  .flight-row .fare-col{ text-align:right; margin-left:auto; }
}



.slider-container{
    position:relative;
    width:100%;
    height:45px;
}

.slider-track{
    position:absolute;
    height:5px;
    width:100%;
    background:#ddd;
    top:18px;
    border-radius:10px;
}

.slider-range{
    position:absolute;
    height:5px;
    background:#d97706;
    top:18px;
    border-radius:10px;
}

.slider-container input[type=range]{
    position:absolute;
    width:100%;
    left:0;
    top:10px;

    appearance:none;
    -webkit-appearance:none;

    background:none;
    pointer-events:none;
}

.slider-container input[type=range]::-webkit-slider-thumb{
    appearance:none;
    -webkit-appearance:none;

    width:18px;
    height:18px;
    border-radius:50%;
    background:#d97706;
    cursor:pointer;
    pointer-events:auto;
}

.slider-container input[type=range]::-moz-range-thumb{
    width:18px;
    height:18px;
    border-radius:50%;
    background:#d97706;
    cursor:pointer;
    pointer-events:auto;
}



/* ==========================================================================
   Single Property page
   ========================================================================== */
/* Gallery */
.icon-btn{
  border:1px solid rgba(36,31,28,.15);
  border-radius:2rem;
  padding:.4rem 1rem;
  font-size:.85rem;
  font-weight:500;
  background:#fff;
  color:var(--charcoal);
}
.icon-btn:hover{ background:var(--sand-deep); }

.gallery-grid{
  display:grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: repeat(2, minmax(140px, 200px));
  gap:6px;
  border-radius:1rem;
  overflow:hidden;
  position:relative;
}
.gallery-grid img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery-grid .g-main{ grid-row:1/3; grid-column:1; }
@media (max-width: 991.98px){
  .gallery-grid{ grid-template-columns:1fr; grid-template-rows:260px; border-radius:.8rem; }
  .gallery-grid .g-side{ display:none; }
  .show-all-btn{ bottom:.7rem; right:.7rem; padding:.4rem .85rem; font-size:.8rem; }
}
@media (max-width: 575.98px){
  .gallery-grid{ grid-template-rows:220px; }
}
.show-all-btn{
  position:absolute; bottom:1rem; right:1rem;
  background:#fff; border:1px solid var(--charcoal);
  border-radius:2rem; padding:.45rem 1rem; font-size:.85rem; font-weight:600;
}
.show-all-btn:hover{ background:var(--sand-deep); }


.trust-ic-card{
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  padding:1.1rem;
  text-align:center;
  height:100%;
}
.trust-ic-card .ic{
  width:52px;height:52px;border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto .7rem; font-size:1.3rem;
}

/* Amenity list */
.amenity-pill{ padding:.6rem 0; display:flex; align-items:center; gap:.75rem; }
.amenity-pill i{ font-size:1.2rem; color:var(--terracotta); width:24px; }
 
/* Description show more/less */
.description-wrap{ position:relative; }
.description-text{
  line-height:1.6;
  max-height:6.4em; /* ~4 lines at this line-height, regardless of source formatting */
  overflow:hidden;
  position:relative;
  transition:max-height .25s ease;
}
.description-text::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:2.4em;
  background:linear-gradient(to bottom, rgba(247,240,228,0), var(--sand));
  pointer-events:none;
}
.description-text.expanded{
  max-height:none;
}
.description-text.expanded::after{
  display:none;
}

 
/* Amenities modal */
.amenities-modal-content{
  border-radius:1.2rem;
  border:none;
}
.amenities-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.3rem 1.5rem 1rem;
  border-bottom:1px solid rgba(36,31,28,.08);
}
.amenities-modal-header h5{ margin:0; font-weight:600; color:var(--teal-deep); }
.amenities-close-btn{
  width:36px; height:36px;
  border-radius:50%;
  border:1px solid rgba(36,31,28,.15);
  background:#fff;
  display:flex; align-items:center; justify-content:center;
}
.amenities-close-btn:hover{ background:var(--sand-deep); }
.amenity-category{ margin-bottom:1.6rem; }
.amenity-category:last-child{ margin-bottom:0; }
.amenity-category h6{ font-weight:600; margin-bottom:.6rem; color:var(--charcoal); }

/* .amenity-pill{
  display:flex; align-items:center; gap:.6rem;
  padding:.7rem .9rem;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-sm);
  font-weight:600; font-size:.86rem;
}
.amenity-pill i{ color:var(--tv-blue); font-size:1.05rem; } */

/* Booking card */
.booking-card{
  background:#fff;
  border:1px solid rgba(36,31,28,.1);
  border-radius:1.2rem;
  box-shadow:0 20px 40px rgba(36,31,28,.1);
  padding:1.5rem;
}
@media (min-width: 992px){
  .booking-card{ position:sticky; top:100px; }
}
.booking-price{ font-weight:700; font-size:1.4rem; }
.booking-price span{ font-weight:400; font-size:.9rem; color:#6b6259; }
.date-box{ border:1px solid rgba(36,31,28,.2); border-radius:.7rem; overflow:hidden; }
.date-box .seg{ padding:.55rem .8rem; border-right:1px solid rgba(36,31,28,.2); }
.date-box .seg:last-child{ border-right:none; }
.date-box label{ font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--teal-deep); display:block; }
.date-box input, .date-box select{ border:none; outline:none; width:100%; font-size:.85rem; background:transparent; }
.guest-details{ margin-top:.2rem; }
.form-label-karibu{
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--teal-deep);
  margin-bottom:.25rem;
  display:block;
}
.form-control-tripix{
  border:1px solid rgba(36,31,28,.18);
  border-radius:.6rem;
  padding:.55rem .8rem;
  font-size:.88rem;
  width:100%;
}
.form-control-tripix:focus{
  outline:none;
  border-color:var(--terracotta);
  box-shadow:0 0 0 3px rgba(193,98,45,.15);
}
.form-control-tripix:invalid:not(:placeholder-shown){ border-color:#c0392b; }
.booking-error{ font-size:.8rem; color:#c0392b; margin-top:.4rem; min-height:1.1em; }
.price-row{ display:flex; justify-content:space-between; font-size:.9rem; padding:.4rem 0; color:#4a433d; }
.price-total{ display:flex; justify-content:space-between; font-weight:700; padding-top:.7rem; border-top:1px solid rgba(36,31,28,.12); }

.host-card{
  display:flex; align-items:center; gap:1rem;
  border:1px solid var(--tv-gray-line);
  border-radius: var(--radius-md);
  padding:1.1rem;
}
.host-card img{ width:60px;height:60px;border-radius:50%; object-fit:cover; }

.review-card{ border-bottom:1px solid var(--tv-gray-line); padding:1.2rem 0; }
.review-card:last-child{ border-bottom:none; }

.map-container {
    position: relative;
    width: 100%;
    height: 300px;
    border-radius: 15px;
    overflow: hidden;
}

#hotelMap {
    width: 100%;
    height: 100%;
}

.map-overlay {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
}

.map-overlay a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: #fff;
    color: #000;
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(0,0,0,.2);
    transition: .2s;
}

.map-overlay a:hover {
    background: #0d6efd;
    color: #fff;
}

/* ---------- Gallery modal ---------- */
.gallery-modal-content{
  background:#0d0d0d;
  border:none;
  height:100vh;
}
.gallery-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1rem 1.2rem;
  flex-shrink:0;
}
.gallery-close-btn{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.06);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
}
.gallery-close-btn:hover{ background:rgba(255,255,255,.15); }
.gallery-counter{
  color:#fff;
  font-size:.9rem;
  font-weight:600;
  letter-spacing:.02em;
  background:rgba(255,255,255,.08);
  border-radius:1rem;
  padding:.35rem .9rem;
}
.gallery-carousel{
  flex:1 1 auto;
  min-height:0;
  display:flex;
}
.gallery-carousel .carousel-inner,
.gallery-carousel .carousel-item{ height:100%; }
.gallery-carousel .carousel-item img{
  width:100%; height:100%;
  object-fit:contain;
  background:#0d0d0d;
}
.carousel-control-prev, .carousel-control-next{ width:8%; opacity:1; }
.gallery-arrow{
  width:44px; height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
  margin:0 auto;
}
.gallery-arrow:hover{ background:rgba(255,255,255,.22); }
.gallery-thumb-strip{
  flex-shrink:0;
  gap:.5rem;
  padding:.9rem 1.2rem 1.2rem;
  overflow-x:auto;
  scrollbar-width:none;
}
.gallery-thumb-strip::-webkit-scrollbar{ display:none; }
.gallery-thumb-strip img{
  width:88px; height:64px;
  object-fit:cover;
  border-radius:.5rem;
  opacity:.5;
  cursor:pointer;
  flex-shrink:0;
  border:2px solid transparent;
  transition:opacity .15s ease, border-color .15s ease;
}
.gallery-thumb-strip img:hover{ opacity:.8; }
.gallery-thumb-strip img.active{
  opacity:1;
  border-color:var(--coral);
}
@media (max-width: 991.98px){
  .gallery-carousel .carousel-item img{ object-fit:cover; }
}


/* ==========================================================================
   Auth / Register page
   ========================================================================== */
.auth-wrap{ min-height:100vh; display:flex; }
.auth-visual{
  background: linear-gradient(160deg, var(--tv-blue-darker), var(--tv-blue));
  color:#fff;
  position:relative;
  overflow:hidden;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:3rem;
}
.auth-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.28; }
.auth-form-box{ max-width:440px; margin:0 auto; width:100%; }
.form-control-tv{
  border-radius: var(--radius-sm);
  border:1px solid var(--tv-gray-line);
  padding:.75rem 1rem;
  font-size:.92rem;
}
.form-control-tv:focus{ border-color:var(--tv-blue); box-shadow:0 0 0 3px rgba(26,86,232,.12); }
.input-icon-wrap{ position:relative; }
.input-icon-wrap i{ position:absolute; left:1rem; top:50%; transform:translateY(-50%); color:var(--tv-navy-50); }
.input-icon-wrap .form-control-tv{ padding-left:2.6rem; }
.social-btn{
  border:1px solid var(--tv-gray-line); border-radius: var(--radius-sm);
  padding:.65rem; display:flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; font-size:.85rem; color:var(--tv-navy);
}
.social-btn:hover{ border-color:var(--tv-blue); color:var(--tv-blue); }

/* ==========================================================================
   Page header (inner pages)
   ========================================================================== */
.page-header{
  background: linear-gradient(120deg, var(--tv-blue-darker), var(--tv-blue));
  color:#fff;
  padding:3.2rem 0;
  position:relative;
  overflow:hidden;
}
.page-header .breadcrumb-tv a{ color:rgba(255,255,255,.75); font-weight:600; }
.page-header .breadcrumb-tv span{ color:#fff; font-weight:700; }
.page-header i.deco{ position:absolute; font-size:9rem; opacity:.1; right:-20px; top:-30px; }

/* generic */
.icon-circle{
  width:50px;height:50px; border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.rounded-xl{ border-radius: var(--radius-lg) !important; }
.badge-soft{ background:#eaf0ff; color:var(--tv-blue); font-weight:700; border-radius:50px; padding:.4rem .9rem; font-size:.78rem; }

@media (max-width: 991px){
  .search-fields{ grid-template-columns: 1fr 1fr; }
  .search-field{ border-right:none; border-bottom:1px solid var(--tv-gray-line); }
  .search-submit{ grid-column: 1 / -1; }
  /* .booking-card{ position:static; margin-top:2rem; } */
}
@media (max-width: 575px){
  .search-fields{ grid-template-columns: 1fr; }
  .hero-badge-offer{ right:2%; }
}
