/* ==========================================================================
   Travivu — theme stylesheet (loads AFTER bootstrap.min.css)
   Bootstrap 5.3 handles: grid, utilities, offcanvas, collapse, accordion,
   carousel, modal, form validation. This file only adds the Travivu look.

   1 Tokens & Bootstrap variables · 2 Base · 3 Bootstrap component theming ·
   4 Shared UI · 5 Header · 6 Footer · 7 Home sections · 8 Tours ·
   9 Tour detail · 10 Contact · 11 Gallery modal · 12 Responsive
   ========================================================================== */

/* 1. Tokens & Bootstrap variables */
:root {
  --c-primary: #FF9D3D;
  --c-secondary: #015FC9;
  --c-dark: #16243D;
  --c-text: #5D6B80;
  --c-muted: #93A0B4;
  --c-line: #E6EAF0;
  --c-light: #F2F5F9;
  --c-cream: #FDF8F4;
  --c-white: #fff;
  --c-error: #D93A3A;
  --c-success: #1F9254;

  --f-base: "Plus Jakarta Sans", system-ui, sans-serif;
  --f-script: "Caveat", cursive;

  --r-sm: 10px;
  --r-md: 20px;
  --r-lg: 30px;
  --r-pill: 999px;

  --shadow: 0 10px 40px rgba(22, 36, 61, .08);
  --shadow-lg: 0 20px 60px rgba(22, 36, 61, .14);

  --section-y: 110px;

  /* Bootstrap overrides */
  --bs-body-font-family: var(--f-base);
  --bs-body-font-size: 16px;
  --bs-body-line-height: 1.7;
  --bs-body-color: var(--c-text);
  --bs-heading-color: var(--c-dark);
  --bs-primary: #FF9D3D;
  --bs-primary-rgb: 255, 157, 61;
  --bs-secondary: #015FC9;
  --bs-secondary-rgb: 1, 95, 201;
  --bs-dark: #16243D;
  --bs-dark-rgb: 22, 36, 61;
  --bs-light: #F2F5F9;
  --bs-light-rgb: 242, 245, 249;
  --bs-link-color: #015FC9;
  --bs-link-color-rgb: 1, 95, 201;
  --bs-link-hover-color: #FF9D3D;
  --bs-link-hover-color-rgb: 255, 157, 61;
  --bs-border-color: #E6EAF0;
  --bs-border-radius: 10px;
  --bs-form-invalid-color: #D93A3A;
  --bs-form-invalid-border-color: #D93A3A;
}

/* 2. Base */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-secondary); text-decoration: none; transition: color .2s; }
a:hover { color: var(--c-primary); }
h1, h2, h3, h4, h5 { color: var(--c-dark); font-weight: 700; line-height: 1.2; margin: 0 0 .5em; }
h1 { font-size: clamp(40px, 5.5vw, 74px); font-weight: 800; }
h2 { font-size: clamp(30px, 3.6vw, 48px); }
h3 { font-size: 22px; }
p { text-wrap: pretty; }
ul { margin: 0; padding: 0; list-style: none; }
figure, blockquote { margin: 0; }

/* Container: fluid up to 1290px with 20px side padding */
.container { max-width: 1290px; padding-left: 20px; padding-right: 20px; }

/* Gutter helpers (Bootstrap's scale stops at 48px) */
.g-20 { --bs-gutter-x: 20px; --bs-gutter-y: 20px; }
.g-30 { --bs-gutter-x: 30px; --bs-gutter-y: 30px; }
.g-40 { --bs-gutter-x: 40px; --bs-gutter-y: 40px; }
.g-50 { --bs-gutter-x: 50px; --bs-gutter-y: 50px; }
.g-60 { --bs-gutter-x: 60px; --bs-gutter-y: 60px; }

.section { padding: var(--section-y) 0; }
.section--cream { background: var(--c-cream); }
.section--light { background: var(--c-light); }

/* 3. Bootstrap component theming */

/* Buttons — .btn + .btn-theme / .btn-theme-blue / .btn-theme-white, sizes via .btn-lg */
.btn {
  --bs-btn-padding-x: 34px;
  --bs-btn-padding-y: 16px;
  --bs-btn-font-size: 16px;
  --bs-btn-font-weight: 700;
  --bs-btn-line-height: 1.2;
  --bs-btn-border-width: 0;
  --bs-btn-border-radius: var(--r-pill);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  transition: background-color .25s, color .25s;
}
.btn-lg { --bs-btn-padding-x: 46px; --bs-btn-padding-y: 22px; --bs-btn-font-size: 17px; --bs-btn-border-radius: var(--r-pill); }
.btn-theme {
  --bs-btn-color: #fff; --bs-btn-bg: var(--c-primary);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--c-secondary);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--c-secondary);
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--c-primary);
  --bs-btn-focus-shadow-rgb: 255, 157, 61;
}
.btn-theme-blue {
  --bs-btn-color: #fff; --bs-btn-bg: var(--c-secondary);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--c-primary);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--c-primary);
  --bs-btn-focus-shadow-rgb: 1, 95, 201;
}
.btn-theme-white {
  --bs-btn-color: var(--c-dark); --bs-btn-bg: #fff;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--c-primary);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--c-primary);
  --bs-btn-focus-shadow-rgb: 255, 255, 255;
}

/* Form controls (.form-control / .form-select + .field__input) */
.field { display: block; margin-bottom: 24px; }
.field__input,
.field__input:focus {
  height: 68px; padding: 0 28px;
  background-color: var(--c-light); border: 1px solid transparent; border-radius: var(--r-sm);
  color: var(--c-dark); font-size: 16px; box-shadow: none;
}
.field__input::placeholder { color: var(--c-muted); }
.field__input:focus { border-color: var(--c-secondary); background-color: #fff; }
textarea.field__input { height: auto; min-height: 225px; padding: 22px 28px; resize: vertical; }
.form-select.field__input { padding-right: 52px; background-position: right 24px center; }
.was-validated .field__input:valid { border-color: transparent; background-image: none; box-shadow: none; }
.was-validated .form-select.field__input:valid { --bs-form-select-bg-icon: none; padding-right: 52px; }
.was-validated .field__input:valid:focus { border-color: var(--c-secondary); background-color: #fff; box-shadow: none; }
.was-validated .field__input:invalid { border-color: var(--c-error); background-image: none; padding-right: 28px; }
.was-validated .field__input:invalid:focus { box-shadow: none; }
.invalid-feedback { font-size: 14px; margin-top: 6px; }
.form-check-input:checked { background-color: var(--c-primary); border-color: var(--c-primary); }
.form-check-input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 .2rem rgba(255, 157, 61, .25); }
.form-range::-webkit-slider-thumb { background: var(--c-primary); }
.form-range::-moz-range-thumb { background: var(--c-primary); }
.form-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 .2rem rgba(255, 157, 61, .25); }
.form-note { margin-top: 16px; font-weight: 600; color: var(--c-success); }

/* Accordion (FAQ + itinerary) */
.faq {
  --bs-accordion-bg: #fff;
  --bs-accordion-border-color: var(--c-line);
  --bs-accordion-border-radius: var(--r-md);
  --bs-accordion-inner-border-radius: var(--r-md);
  --bs-accordion-btn-padding-x: 30px;
  --bs-accordion-btn-padding-y: 24px;
  --bs-accordion-btn-color: var(--c-dark);
  --bs-accordion-btn-bg: #fff;
  --bs-accordion-active-bg: #fff;
  --bs-accordion-active-color: var(--c-dark);
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-body-padding-x: 30px;
  --bs-accordion-body-padding-y: 0;
  display: grid; gap: 16px;
}
.faq .accordion-item,
.faq .accordion-item:not(:first-of-type) { border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.faq .accordion-item:has(.show) { border-color: transparent; box-shadow: var(--shadow); }
.faq .accordion-button { gap: 20px; font-size: 19px; font-weight: 700; border-radius: var(--r-md) !important; }
.faq .accordion-button:not(.collapsed) { box-shadow: none; }
.faq .accordion-button::after {
  content: "+"; flex: 0 0 36px; width: 36px; height: 36px; margin-left: auto;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--c-light); color: var(--c-dark); font-size: 22px; font-weight: 500; line-height: 1;
  transform: none; transition: background-color .25s, color .25s;
}
.faq .accordion-button:not(.collapsed)::after { content: "–"; background: var(--c-primary); color: #fff; transform: none; }
.faq .accordion-body { padding-bottom: 26px; }
.faq .accordion-body p { margin: 0; }
.faq--itinerary { gap: 14px; }
.faq--itinerary .accordion-button { font-size: 17px; }
.itinerary__day { flex: 0 0 auto; padding: 4px 14px; border-radius: var(--r-pill); background: var(--c-secondary); color: #fff; font-size: 13px; }

/* Breadcrumb */
.page-banner .breadcrumb {
  --bs-breadcrumb-margin-bottom: 0;
  --bs-breadcrumb-item-padding-x: 10px;
  --bs-breadcrumb-divider-color: #fff;
  --bs-breadcrumb-item-active-color: var(--c-primary);
  justify-content: center; font-family: var(--f-script); font-size: 24px; color: #fff;
}
.page-banner .breadcrumb a { color: #fff; }
.page-banner .breadcrumb a:hover { color: var(--c-primary); }

/* Pagination */
.tours-pagination { gap: 10px; margin: 50px 0 0; }
.tours-pagination .page-item .page-link {
  width: 50px; height: 50px; padding: 0; margin: 0; display: grid; place-items: center;
  border: 0; border-radius: 50%; background: var(--c-light); color: var(--c-dark); font-weight: 700; box-shadow: none;
}
.tours-pagination .page-item .page-link:hover,
.tours-pagination .page-item.active .page-link { background: var(--c-primary); color: #fff; }

/* Offcanvas (mobile menu) */
.mobile-menu { --bs-offcanvas-width: min(380px, 88vw); --bs-offcanvas-padding-x: 24px; --bs-offcanvas-padding-y: 28px; }
.offcanvas-backdrop { --bs-backdrop-bg: #16243D; --bs-backdrop-opacity: .6; }

/* Carousel (testimonials) */
.testimonial-carousel .carousel-item > .row { padding: 10px 2px 30px; }
.testimonial-carousel .carousel-indicators { position: static; margin: 10px 0 0; gap: 10px; }
.testimonial-carousel .carousel-indicators [data-bs-target] {
  width: 12px; height: 12px; margin: 0; border: 0; border-radius: 50%;
  background: var(--c-line); opacity: 1; transition: width .25s, background-color .25s;
}
.testimonial-carousel .carousel-indicators .active { width: 32px; border-radius: 6px; background: var(--c-primary); }
.carousel-nav { display: flex; gap: 12px; }
.carousel-nav__btn { width: 54px; height: 54px; border: 1px solid var(--c-line); border-radius: 50%; background: #fff; color: var(--c-dark); cursor: pointer; transition: .25s; }
.carousel-nav__btn:hover { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }

/* 4. Shared UI */
.tagline {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 20px; margin-bottom: 18px;
  background: var(--c-light); border-radius: var(--r-pill);
  color: var(--c-dark); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.tagline i { color: var(--c-secondary); font-size: 16px; }
.tagline--white { background: #fff; }
.section-head { max-width: 640px; margin-bottom: 55px; }
.section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head__title { margin-bottom: 16px; }
.section-head__desc { margin: 0; }
.section-head--row { max-width: none; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.section-head--row > div { max-width: 640px; }
.script { font-family: var(--f-script); color: var(--c-primary); font-weight: 700; }
.checklist { display: grid; gap: 10px; }
.checklist li { display: flex; gap: 12px; align-items: flex-start; color: var(--c-dark); font-weight: 500; }
.checklist i { color: var(--c-primary); margin-top: 5px; }
.stars { color: var(--c-primary); font-size: 13px; display: inline-flex; gap: 2px; }
.offer-badge { display: inline-block; padding: 4px 14px; border-radius: var(--r-pill); background: var(--c-primary); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.7; }

/* 5. Header */
.site-header { position: relative; z-index: 50; background: var(--c-secondary); }
.topbar { align-items: center; justify-content: space-between; gap: 20px; padding: 8px 34px 8px 340px; color: #fff; font-size: 15px; font-weight: 500; }
.topbar__info, .topbar__social { display: flex; align-items: center; gap: 28px; }
.topbar__info span { display: inline-flex; align-items: center; gap: 10px; }
.topbar__info i { color: var(--c-primary); }
.topbar__social { gap: 18px; }
.topbar__social a { color: #fff; }
.topbar__social a:hover { color: var(--c-primary); }

.header { display: flex; align-items: stretch; }
.header__logo { flex: 0 0 auto; display: flex; align-items: center; padding: 0 40px 18px 70px; margin-top: -40px; }
.header__logo img { width: 240px; }
.header__bar {
  flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  background: #fff; border-radius: 50px 0 0 0; padding: 0 34px; min-height: 100px;
  box-shadow: 0 10px 30px rgba(0,0,0,.04);
}
.main-nav__list { display: flex; gap: 36px; }
.main-nav__item { position: relative; }
.main-nav__link { display: inline-flex; align-items: center; gap: 6px; padding: 36px 0; color: var(--c-text); font-size: 17px; font-weight: 500; }
.main-nav__link:hover, .main-nav__link.active { color: var(--c-primary); }
.main-nav__link i { font-size: 10px; }
.main-nav .dropdown-menu {
  --bs-dropdown-min-width: 230px;
  --bs-dropdown-padding-y: 14px;
  --bs-dropdown-border-width: 0;
  --bs-dropdown-border-radius: var(--r-sm);
  --bs-dropdown-box-shadow: var(--shadow-lg);
  --bs-dropdown-font-size: 15px;
  --bs-dropdown-link-color: var(--c-dark);
  --bs-dropdown-link-hover-color: var(--c-primary);
  --bs-dropdown-link-hover-bg: transparent;
  --bs-dropdown-link-active-color: var(--c-primary);
  --bs-dropdown-link-active-bg: transparent;
  --bs-dropdown-item-padding-x: 24px;
  --bs-dropdown-item-padding-y: 8px;
  display: block; top: 100%; left: -20px; margin: 0;
  box-shadow: var(--bs-dropdown-box-shadow);
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s;
}
.main-nav .dropdown-item { font-weight: 500; }
.main-nav__item:hover > .dropdown-menu,
.main-nav__item:focus-within > .dropdown-menu { opacity: 1; visibility: visible; transform: none; }

.header__actions { display: flex; align-items: center; gap: 22px; }
.header__call { align-items: center; gap: 12px; padding-right: 22px; border-right: 1px solid var(--c-line); }
.header__call-icon { width: 50px; height: 50px; border-radius: 50%; background: var(--c-primary); color: #fff; display: grid; place-items: center; font-size: 18px; }
.header__call small { display: block; font-size: 14px; line-height: 1.2; color: var(--c-text); }
.header__call strong { display: block; color: var(--c-dark); font-size: 18px; line-height: 1.3; }
.header__burger { width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--c-light); color: var(--c-dark); font-size: 18px; place-items: center; }

.mobile-menu__top { margin-bottom: 2px; }
.mobile-menu__top img { width: 190px; }
.mobile-menu__close { border: 0; background: none; color: var(--c-primary); font-size: 30px; line-height: 1; }
.mobile-menu .offcanvas-body { padding-top: 0; }
.mobile-menu__list > li { border-bottom: 1px solid var(--c-line); }
.mobile-menu__list a,
.mobile-menu__toggle { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 16px 0; border: 0; background: none; color: var(--c-dark); font-weight: 500; font-size: 17px; text-align: left; }
.mobile-menu__toggle::after { content: "–"; font-size: 22px; font-weight: 600; }
.mobile-menu__toggle.collapsed::after { content: "+"; }
.mobile-menu__sub { padding-bottom: 10px; }
.mobile-menu__sub a { padding: 8px 0 8px 16px; font-size: 15px; color: var(--c-text); }

/* Page banner */
.page-banner { position: relative; padding: 170px 0 140px; background: var(--c-dark) url("../images/breadcrumb.jpg") center / cover no-repeat; text-align: center; }
.page-banner::before { content: ""; position: absolute; inset: 0; background: rgba(6,17,33,.45); }
.page-banner .container { position: relative; }
.page-banner__title { color: #fff; font-size: clamp(40px, 5vw, 60px); font-weight: 800; margin-bottom: 14px; }

/* 6. Footer */
.site-footer { background: var(--c-dark) url("../images/bg-footer.png") center bottom / cover no-repeat; color: #B4BFCF; }
.footer__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 60px 0 40px; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer__top img { width: 190px; }
.social { display: flex; gap: 12px; }
.social a { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #fff; }
.social a:hover { background: var(--c-primary); color: #fff; }
.footer__main { padding: 60px 0; }
.footer__title { color: #fff; font-size: 22px; margin-bottom: 24px; }
.footer__links { display: grid; gap: 12px; }
.footer__links a, .footer__contact a { color: #B4BFCF; }
.footer__links a:hover, .footer__contact a:hover { color: var(--c-primary); }
.footer__contact li { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
.footer__contact i { color: var(--c-primary); }
.footer__newsletter { background: rgba(255,255,255,.06); border-radius: var(--r-md); padding: 34px; }
.footer__newsletter p { color: #fff; font-size: 20px; font-weight: 700; line-height: 1.4; }
.newsletter { display: flex; background: #fff; border-radius: var(--r-pill); padding: 6px; }
.newsletter input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 0 18px; background: transparent; color: var(--c-dark); }
.newsletter .btn { --bs-btn-padding-x: 22px; --bs-btn-padding-y: 12px; flex: 0 0 auto; }
.footer__agree { display: flex; gap: 10px; align-items: center; margin: 16px 0 0; padding: 0; font-size: 14px; }
.footer__agree .form-check-input { float: none; margin: 0; }
.footer__bottom { padding: 24px 0; text-align: center; border-top: 1px solid rgba(255,255,255,.1); font-size: 15px; }

/* 7. Home sections */

/* Hero */
.hero { position: relative; overflow: hidden; min-height: 820px; display: flex; align-items: center; background: #fff; }
.hero__layer { position: absolute; pointer-events: none; }
.hero__clouds { top: 120px; left: 16%; width: 220px; opacity: .7; }
.hero__plane { top: 110px; left: 4%; width: 200px; animation: float 7s ease-in-out infinite; }
.hero__luggage { bottom: 0; left: 0; width: 420px; max-width: 30vw; z-index: 3; }
.hero__art { position: absolute; top: 0; right: 0; bottom: 0; width: 56%; }
.hero__splash-blue { right: -120px; top: 4%; height: 96%; max-width: none; width: auto; }
.hero__splash-white { right: -60px; top: 6%; height: 92%; max-width: none; width: auto; }
.hero__camera { right: 6%; bottom: 30%; width: 120px; z-index: 4; }
.hero__circle { right: 20%; top: 9%; width: 300px; border-radius: 50%; z-index: 2; }
.hero__man { right: 26%; bottom: 10%; width: 600px; max-width: 80%; z-index: 3; animation: float 6s ease-in-out infinite; }
.hero__birds { left: -2%; top: 14%; width: 150px; }
.hero__wave { right: 0; bottom: 0; width: 34%; }
.hero__content { position: relative; z-index: 5; max-width: 620px; padding: 120px 0 200px; }
.hero__subtitle { font-size: 34px; margin-bottom: 14px; }
.hero__title { margin-bottom: 36px; line-height: 1.08; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }

/* Search bar */
.search-bar {
  position: relative; z-index: 6; margin-top: -90px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow-lg); overflow: hidden;
}
.search-bar__field { position: relative; display: block; padding: 24px 60px 22px 30px; margin: 0; border-right: 1px solid var(--c-line); cursor: pointer; }
.search-bar__label { display: block; font-size: 14px; font-weight: 500; color: var(--c-muted); }
.search-bar__select { width: 100%; border: 0; outline: 0; background: transparent; padding: 0; appearance: none; color: var(--c-dark); font-size: 18px; font-weight: 700; cursor: pointer; }
.search-bar__field > i { position: absolute; right: 26px; top: 50%; transform: translateY(-50%); color: var(--c-primary); font-size: 22px; }
.search-bar__submit { border: 0; background: var(--c-primary); color: #fff; padding: 0 54px; font-size: 18px; font-weight: 700; transition: background .25s; }
.search-bar__submit:hover { background: var(--c-secondary); }

/* Destinations */
.dest-card { position: relative; display: block; border-radius: 200px 200px var(--r-md) var(--r-md); overflow: hidden; aspect-ratio: 9 / 14; color: #fff; }
.dest-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.dest-card:hover img { transform: scale(1.08); }
.dest-card::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(22,36,61,.85)); }
.dest-card__body { position: absolute; left: 0; right: 0; bottom: 22px; z-index: 2; text-align: center; }
.dest-card__sub { display: block; font-family: var(--f-script); font-size: 22px; color: var(--c-primary); line-height: 1; }
.dest-card__title { display: block; color: #fff; font-size: 26px; font-weight: 700; margin-top: 4px; }
.dest-card:hover { color: #fff; }

/* About / experience */
.about__media { position: relative; padding: 0 80px 80px 0; }
.about__media-main { border-radius: 200px 200px var(--r-md) var(--r-md); width: 100%; aspect-ratio: 5 / 6; object-fit: cover; }
.about__media-second { position: absolute; right: 0; bottom: 0; width: 46%; border-radius: 50%; border: 10px solid #fff; aspect-ratio: 1; object-fit: cover; }
.about__features { margin: 30px 0; padding-bottom: 30px; border-bottom: 1px solid var(--c-line); }
.feature { display: flex; gap: 18px; align-items: flex-start; }
.feature__icon { flex: 0 0 64px; height: 64px; border-radius: 50%; background: var(--c-cream); color: var(--c-primary); display: grid; place-items: center; font-size: 26px; }
.feature__title { font-size: 20px; margin-bottom: 6px; }
.feature p { margin: 0; font-size: 15px; }
.award { display: flex; align-items: center; gap: 16px; padding: 24px; background: var(--c-secondary); border-radius: var(--r-md); color: #fff; }
.award i { font-size: 40px; color: var(--c-primary); }
.award strong { font-size: 20px; line-height: 1.3; color: #fff; }

/* Tour cards */
.tour-card { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); overflow: hidden; transition: transform .3s, box-shadow .3s; }
.tour-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.tour-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tour-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.tour-card:hover .tour-card__media img { transform: scale(1.06); }
.tour-card__media .offer-badge { position: absolute; top: 20px; left: 20px; }
.tour-card__body { flex: 1; display: flex; flex-direction: column; padding: 26px 26px 28px; }
.tour-card__title { font-size: 22px; margin-bottom: 10px; }
.tour-card__title a { color: var(--c-dark); }
.tour-card__title a:hover { color: var(--c-primary); }
.tour-card__meta { display: grid; gap: 8px; margin: 10px 0 22px; padding: 16px 20px; border: 1px solid var(--c-line); border-radius: var(--r-sm); font-size: 15px; }
.tour-card__meta li { display: flex; align-items: center; gap: 10px; }
.tour-card__meta i { color: var(--c-primary); width: 16px; text-align: center; }
.tour-card__footer { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.tour-card__footer .btn { --bs-btn-padding-x: 26px; --bs-btn-padding-y: 13px; }
.price { color: var(--c-dark); font-size: 26px; font-weight: 800; line-height: 1; }
.price del { font-size: 17px; font-weight: 500; color: var(--c-muted); margin-left: 6px; }
.price small { display: block; font-size: 13px; font-weight: 500; color: var(--c-text); margin-bottom: 6px; }

/* Tour types */
.types { background: url("../images/bg-10.jpg") center / cover no-repeat; padding: 120px 0; }
.types__card { background: var(--c-light); border-radius: var(--r-md); padding: 60px 50px; }
.type-card { position: relative; display: block; height: 100%; padding: 30px 24px; background: #fff; border-radius: var(--r-md); text-align: center; color: var(--c-text); transition: background .3s, transform .3s; }
.type-card:hover { background: var(--c-secondary); transform: translateY(-4px); color: rgba(255,255,255,.8); }
.type-card__num { position: absolute; top: 16px; right: 20px; font-size: 14px; font-weight: 700; color: var(--c-muted); }
.type-card__icon { width: 74px; height: 74px; margin: 0 auto 16px; border-radius: 50%; background: var(--c-cream); color: var(--c-primary); display: grid; place-items: center; font-size: 30px; }
.type-card__title { font-size: 20px; margin-bottom: 6px; transition: color .3s; }
.type-card:hover .type-card__title, .type-card:hover .type-card__num { color: #fff; }
.type-card p { margin: 0; font-size: 15px; }

/* Testimonials */
.testimonial { height: 100%; background: #fff; border-radius: var(--r-md); padding: 36px; box-shadow: var(--shadow); }
.testimonial__head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.testimonial__head img { width: 66px; height: 66px; border-radius: 50%; object-fit: cover; }
.testimonial__name { font-size: 20px; margin: 0; }
.testimonial__job { font-size: 14px; }
.testimonial__quote { margin-left: auto; font-size: 36px; color: var(--c-primary); }
.testimonial__text { color: var(--c-dark); font-size: 17px; margin-bottom: 1em; }
.testimonial__foot { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid var(--c-line); font-size: 14px; }

/* CTA */
.cta { background: var(--c-secondary); border-radius: var(--r-lg); padding: 70px 60px; }
.cta__title { color: #fff; margin-bottom: 12px; }
.cta p { color: rgba(255,255,255,.85); margin: 0; max-width: 560px; }
.cta .script { font-size: 26px; display: block; margin-bottom: 6px; }

/* Stats */
.stat { display: flex; align-items: center; gap: 18px; }
.stat__icon { flex: 0 0 76px; height: 76px; border-radius: 50%; background: #fff; color: var(--c-primary); display: grid; place-items: center; font-size: 30px; box-shadow: var(--shadow); }
.stat__num { display: block; color: var(--c-dark); font-size: 40px; font-weight: 800; line-height: 1.1; }
.stat__label { font-weight: 500; }

/* Gallery strip */
.gallery__item { position: relative; display: block; aspect-ratio: 1; overflow: hidden; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.gallery__item::after { content: "\f00e"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; inset: 0; display: grid; place-items: center; background: rgba(1,95,201,.55); color: #fff; font-size: 28px; opacity: 0; transition: opacity .3s; }
.gallery__item:hover::after { opacity: 1; }
.gallery__item:hover img { transform: scale(1.08); }

/* Why choose */
.why__boxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); margin: 10px 0 36px; overflow: hidden; }
.why__box { display: flex; align-items: center; gap: 20px; padding: 36px 30px; }
.why__box:nth-child(odd) { border-right: 1px solid var(--c-line); }
.why__box:nth-child(-n+2) { border-bottom: 1px solid var(--c-line); }
.why__box i { flex: 0 0 76px; height: 76px; border-radius: 50%; background: var(--c-cream); color: var(--c-dark); display: grid; place-items: center; font-size: 30px; }
.why__box h3 { font-size: 20px; margin: 0; }
.why__media { position: relative; padding: 0 0 80px 80px; }
.why__media-main { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 14px solid #fff; box-shadow: var(--shadow); }
.why__media-second { position: absolute; left: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 10px solid #fff; }

/* Posts */
.post-card { height: 100%; background: #fff; border-radius: var(--r-md); overflow: hidden; box-shadow: var(--shadow); }
.post-card__media { display: block; aspect-ratio: 16 / 11; overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.post-card:hover .post-card__media img { transform: scale(1.06); }
.post-card__body { padding: 26px; }
.post-card__meta { display: flex; gap: 18px; font-size: 14px; margin-bottom: 10px; }
.post-card__meta i { color: var(--c-primary); margin-right: 6px; }
.post-card__title { font-size: 21px; margin-bottom: 16px; }
.post-card__title a { color: var(--c-dark); }
.post-card__title a:hover { color: var(--c-primary); }
.post-card__more { font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }

/* Brands */
.brands { padding: 60px 0; border-top: 1px solid var(--c-line); }
.brands__title { display: flex; align-items: center; gap: 24px; justify-content: center; font-size: 20px; margin-bottom: 36px; }
.brands__title::before, .brands__title::after { content: ""; flex: 1; max-width: 300px; height: 1px; background: var(--c-line); }
.brands img { margin: 0 auto; max-height: 50px; width: auto; opacity: .6; transition: opacity .3s; }
.brands img:hover { opacity: 1; }

/* Promo cards */
.promo { position: relative; display: flex; flex-direction: column; justify-content: center; height: 100%; min-height: 380px; padding: 50px; border-radius: var(--r-lg); overflow: hidden; background-size: cover; background-position: center; }
.promo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,36,61,.85), rgba(22,36,61,.1)); }
.promo > * { position: relative; max-width: 380px; }
.promo .script { font-size: 26px; }
.promo__title { color: #fff; font-size: clamp(28px, 3vw, 40px); }
.promo p { color: rgba(255,255,255,.85); }
.promo .btn { align-self: flex-start; }

/* 8. Tours listing */
.filters { position: sticky; top: 30px; display: grid; gap: 24px; }
.filter { background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); padding: 28px; }
.filter__title { font-size: 19px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--c-line); }
.filter__options { display: grid; gap: 12px; }
.filter__check { display: flex; align-items: center; gap: 12px; min-height: 0; margin: 0; padding: 0; }
.filter__check .form-check-input { float: none; width: 18px; height: 18px; margin: 0; }
.filter__check .form-check-label { color: var(--c-dark); font-weight: 500; cursor: pointer; }
.filter__check span { margin-left: auto; color: var(--c-muted); font-size: 14px; }
.filter__search { position: relative; }
.filter__search .field__input { height: 54px; padding-right: 50px; }
.filter__search i { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: var(--c-primary); }
.filter__range-values { display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; color: var(--c-dark); }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 30px; padding: 16px 24px; background: var(--c-light); border-radius: var(--r-sm); }
.toolbar strong { color: var(--c-dark); }
.toolbar .form-select { height: 46px; width: auto; padding: 0 44px 0 18px; background-color: #fff; border: 0; border-radius: var(--r-sm); background-position: right 16px center; box-shadow: none; }

/* 9. Tour detail */
.tour-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 30px; }
.tour-head__title { font-size: clamp(32px, 4vw, 52px); margin-bottom: 12px; }
.tour-head__meta { display: flex; flex-wrap: wrap; gap: 22px; font-weight: 500; }
.tour-head__meta i { color: var(--c-primary); margin-right: 6px; }
.tour-head__meta .stars i { margin: 0; }
.tour-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, 230px); gap: 16px; margin-bottom: 50px; }
.tour-gallery a { position: relative; display: block; border-radius: var(--r-md); overflow: hidden; }
.tour-gallery a:first-child { grid-row: span 2; }
.tour-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.tour-gallery a:hover img { transform: scale(1.05); }
.tour-gallery__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(22,36,61,.55); color: #fff; font-weight: 700; font-size: 18px; }
.tour-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 26px; margin-bottom: 40px; background: var(--c-light); border-radius: var(--r-md); }
.tour-facts li { display: flex; align-items: center; gap: 12px; }
.tour-facts i { flex: 0 0 48px; height: 48px; border-radius: 50%; background: #fff; color: var(--c-primary); display: grid; place-items: center; }
.tour-facts small { display: block; font-size: 13px; line-height: 1.2; }
.tour-facts strong { color: var(--c-dark); font-size: 15px; }
.tour-block { padding-bottom: 36px; margin-bottom: 36px; border-bottom: 1px solid var(--c-line); }
.tour-block:last-child { border-bottom: 0; }
.tour-block__title { font-size: 28px; margin-bottom: 18px; }
.inc-exc li { display: flex; gap: 10px; margin-bottom: 10px; color: var(--c-dark); }
.inc-exc .fa-check { color: var(--c-success); margin-top: 5px; }
.inc-exc .fa-xmark { color: var(--c-error); margin-top: 5px; }
.booking { position: sticky; top: 30px; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow-lg); overflow: hidden; }
.booking__head { padding: 26px 30px; background: var(--c-secondary); color: rgba(255,255,255,.85); }
.booking__head .price { color: #fff; font-size: 34px; }
.booking__head .price del { color: rgba(255,255,255,.6); }
.booking__body { padding: 30px; }
.booking .field { margin-bottom: 16px; }
.booking .field__input { height: 56px; padding-left: 20px; }
.booking__label { display: block; margin-bottom: 6px; color: var(--c-dark); font-weight: 600; font-size: 14px; }
.booking__total { display: flex; justify-content: space-between; padding: 16px 0; margin-bottom: 16px; border-top: 1px solid var(--c-line); color: var(--c-dark); font-weight: 700; }

/* 10. Contact */
.contact-card { background: var(--c-dark); border-radius: var(--r-md); overflow: hidden; }
.contact-card__media { position: relative; }
.contact-card__media img { width: 100%; border-radius: var(--r-md); }
.contact-card__label { position: absolute; left: 48px; bottom: 0; padding: 14px 40px; background: var(--c-primary); color: #fff; border-radius: 8px 8px 0 0; font-family: var(--f-script); font-size: 28px; font-weight: 700; line-height: 1; }
.contact-card__list { padding: 10px 45px 16px; }
.contact-card__item { display: flex; align-items: center; gap: 24px; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.contact-card__item:last-child { border-bottom: 0; }
.contact-card__icon { flex: 0 0 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--c-primary); display: grid; place-items: center; font-size: 22px; }
.contact-card__item small { display: block; color: var(--c-muted); font-size: 17px; font-weight: 500; }
.contact-card__item strong, .contact-card__item a { color: #fff; font-size: 21px; font-weight: 700; }
.contact-card__item a:hover { color: var(--c-primary); }

/* 11. Gallery modal (Bootstrap modal + carousel) */
.gallery-modal { --bs-backdrop-bg: #0A1220; }
.modal-backdrop.show { --bs-backdrop-bg: #0A1220; --bs-backdrop-opacity: .92; }
.gallery-modal .modal-content { background: transparent; border: 0; }
.gallery-modal .carousel-item img { max-width: 100%; max-height: 85vh; width: auto; margin: 0 auto; border-radius: var(--r-sm); }
.gallery-modal__btn { position: absolute; z-index: 5; width: 54px; height: 54px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 20px; transition: background .2s; }
.gallery-modal__btn:hover { background: var(--c-primary); }
.gallery-modal__close { top: 24px; right: 24px; }
.gallery-modal__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.gallery-modal__next { right: 20px; top: 50%; transform: translateY(-50%); }
.gallery-modal__count { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: #fff; font-weight: 600; }

/* 12. Quick view modal */
.tour-card__quick {
  position: absolute; top: 16px; right: 16px; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%;
  background: #fff; color: var(--c-dark); font-size: 16px; box-shadow: var(--shadow);
  opacity: 0; transform: translateY(-6px); transition: opacity .25s, transform .25s, background .25s, color .25s;
}
.tour-card:hover .tour-card__quick, .tour-card__quick:focus-visible { opacity: 1; transform: none; }
.tour-card__quick:hover { background: var(--c-primary); color: #fff; }
@media (hover: none) { .tour-card__quick { opacity: 1; transform: none; } }
.quick-view .modal-content { border: 0; border-radius: var(--r-md); overflow: hidden; }
.modal-backdrop { --bs-backdrop-bg: #16243D; --bs-backdrop-opacity: .6; }
.quick-view__close { position: absolute; top: 16px; right: 16px; z-index: 3; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: var(--c-dark); font-size: 18px; box-shadow: var(--shadow); transition: background .2s, color .2s; }
.quick-view__close:hover { background: var(--c-primary); color: #fff; }
.quick-view__media { position: relative; height: 100%; min-height: 320px; }
.quick-view__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.quick-view__media .offer-badge { position: absolute; top: 20px; left: 20px; }
.quick-view__body { padding: 40px; }
.quick-view__loc { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-weight: 500; }
.quick-view__loc i { color: var(--c-primary); }
.quick-view__title { font-size: clamp(26px, 3vw, 34px); margin-bottom: 10px; padding-right: 40px; }
.quick-view__rating { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.quick-view__rating strong { color: var(--c-dark); }
.quick-view__price { display: flex; align-items: flex-end; gap: 10px; padding: 18px 0; margin-bottom: 18px; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.quick-view__price .price { font-size: 34px; }
.quick-view__per { font-size: 14px; padding-bottom: 2px; }
.quick-view__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.quick-view__facts li { display: flex; align-items: center; gap: 12px; }
.quick-view__facts i { flex: 0 0 44px; height: 44px; border-radius: 50%; background: var(--c-cream); color: var(--c-primary); display: grid; place-items: center; }
.quick-view__facts small { display: block; font-size: 13px; line-height: 1.2; }
.quick-view__facts strong { color: var(--c-dark); font-size: 15px; }
.quick-view__subtitle { font-size: 19px; margin-bottom: 14px; }
.quick-view__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.quick-view__details { box-shadow: inset 0 0 0 1px var(--c-line); }
.info-box { padding: 22px 24px; margin-bottom: 26px; background: var(--c-cream); border-radius: var(--r-sm); }
.info-box__title { display: flex; align-items: center; gap: 10px; font-size: 17px; margin-bottom: 10px; }
.info-box__title i { color: var(--c-primary); }
.info-box ul { display: grid; gap: 6px; padding-left: 18px; list-style: disc; font-size: 15px; }
.info-box li::marker { color: var(--c-primary); }
.mini-reviews { display: grid; gap: 14px; }
.mini-review { display: flex; gap: 14px; padding: 16px; border: 1px solid var(--c-line); border-radius: var(--r-sm); }
.mini-review img { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.mini-review__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 4px; }
.mini-review__head strong { color: var(--c-dark); }
.mini-review blockquote { font-size: 15px; }

/* 13. Checkout steps, booking form, summary */
.steps { display: flex; justify-content: center; gap: 0; margin: 0 auto 50px; padding: 0; max-width: 760px; list-style: none; counter-reset: none; }
.steps__item { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--c-muted); font-weight: 600; font-size: 15px; text-align: center; }
.steps__item:not(:last-child)::after { content: ""; position: absolute; top: 22px; left: calc(50% + 30px); right: calc(-50% + 30px); height: 2px; background: var(--c-line); }
.steps__item.is-done:not(:last-child)::after { background: var(--c-primary); }
.steps__num { position: relative; z-index: 1; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--c-light); color: var(--c-muted); font-weight: 700; }
.steps__item.is-current { color: var(--c-dark); }
.steps__item.is-current .steps__num { background: var(--c-secondary); color: #fff; box-shadow: 0 0 0 6px rgba(1,95,201,.12); }
.steps__item.is-done { color: var(--c-dark); }
.steps__item.is-done .steps__num { background: var(--c-primary); color: #fff; }

.form-card { background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); padding: 36px; margin-bottom: 30px; }
.form-card:last-child { margin-bottom: 0; }
.form-card__head { display: flex; align-items: center; gap: 18px; padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid var(--c-line); }
.form-card__icon { flex: 0 0 56px; height: 56px; border-radius: 50%; background: var(--c-cream); color: var(--c-primary); display: grid; place-items: center; font-size: 22px; }
.form-card__title { font-size: 24px; margin-bottom: 2px; }
.form-card__head p { margin: 0; font-size: 15px; }
.booking-form__label { color: var(--c-dark); font-weight: 600; font-size: 15px; margin-bottom: 8px; }
.booking-form__optional { color: var(--c-muted); font-weight: 500; }
.booking-form .field__input { height: 58px; padding-left: 22px; }
.booking-form textarea.field__input { height: auto; min-height: 120px; padding: 16px 22px; }
.input-icon { position: relative; }
.input-icon .field__input { padding-right: 130px; }
.input-icon__brands { position: absolute; right: 20px; top: 29px; transform: translateY(-50%); display: flex; gap: 8px; font-size: 24px; color: var(--c-muted); pointer-events: none; }
.input-icon .invalid-feedback { display: none; }
.was-validated .input-icon:has(:invalid) + .invalid-feedback { display: block; }

.pay-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
.pay-option { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 64px; padding: 12px; border: 2px solid var(--c-line); border-radius: var(--r-sm); background: #fff; color: var(--c-dark); font-weight: 700; transition: border-color .2s, background .2s; }
.pay-option i { font-size: 22px; }
.pay-option:hover { border-color: var(--c-muted); }
.pay-option.active { border-color: var(--c-secondary); background: rgba(1,95,201,.05); color: var(--c-secondary); }
.wallet { padding: 30px; text-align: center; background: var(--c-light); border-radius: var(--r-sm); }
.wallet p { max-width: 420px; margin: 0 auto 18px; }
.wallet__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 260px; height: 54px; padding: 0 30px; border: 0; border-radius: var(--r-sm); background: #000; color: #fff; font-size: 19px; font-weight: 600; transition: opacity .2s; }
.wallet__btn:hover { opacity: .85; }
.wallet__btn i { font-size: 22px; }
.booking-form__terms { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-start; margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid var(--c-line); }
.booking-form__terms .form-check-input { float: none; flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; }
.booking-form__terms .form-check-label { flex: 1; color: var(--c-dark); }
.booking-form__terms .invalid-feedback { flex-basis: 100%; margin: 0 0 0 32px; }

.summary { position: sticky; top: 30px; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow-lg); overflow: hidden; }
.summary__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.summary__body { padding: 28px; }
.summary__title { font-size: 22px; margin-bottom: 6px; }
.summary__loc { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.summary__loc i { color: var(--c-primary); }
.summary__rows { display: grid; gap: 12px; padding: 18px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.summary__rows li { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.summary__rows strong { color: var(--c-dark); }
.summary__promo { display: flex; gap: 10px; padding: 18px 0; }
.summary__promo .form-control { height: 48px; border: 0; background: var(--c-light); border-radius: var(--r-pill); padding: 0 20px; box-shadow: none; }
.summary__promo .btn { --bs-btn-padding-y: 12px; --bs-btn-padding-x: 22px; }
.summary__total { display: flex; justify-content: space-between; align-items: center; padding: 18px 0 22px; border-top: 1px solid var(--c-line); color: var(--c-dark); font-weight: 700; font-size: 18px; }
.summary__total strong { font-size: 30px; font-weight: 800; }
.summary__secure { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; font-size: 14px; text-align: center; }
.summary__secure i { color: var(--c-success); }

/* 14. Confirmation */
.confirm { max-width: 880px; margin: 0 auto; background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.confirm__head { padding: 56px 40px 44px; text-align: center; background: var(--c-cream); }
.confirm__icon { width: 92px; height: 92px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; background: var(--c-success); color: #fff; font-size: 40px; box-shadow: 0 0 0 12px rgba(31,146,84,.12); }
.confirm__script { display: block; font-size: 30px; line-height: 1; margin-bottom: 8px; }
.confirm__title { font-size: clamp(26px, 3vw, 36px); max-width: 620px; margin: 0 auto 10px; }
.confirm__ref { display: inline-flex; gap: 10px; margin-top: 10px; padding: 10px 22px; border-radius: var(--r-pill); background: #fff; font-size: 15px; }
.confirm__ref strong { color: var(--c-secondary); letter-spacing: .04em; }
.confirm__body { padding: 40px; }
.confirm__tour { display: flex; align-items: center; gap: 20px; margin-bottom: 26px; }
.confirm__tour img { flex: 0 0 120px; width: 120px; height: 90px; border-radius: var(--r-sm); object-fit: cover; }
.confirm__tour h3 { font-size: 22px; margin-bottom: 4px; }
.confirm__tour p { margin: 0; }
.confirm__tour i { color: var(--c-primary); margin-right: 6px; }
.confirm__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 0 36px; background: var(--c-line); border: 1px solid var(--c-line); border-radius: var(--r-sm); overflow: hidden; }
.confirm__grid > div { padding: 18px 20px; background: #fff; }
.confirm__grid dt { font-size: 13px; font-weight: 500; color: var(--c-muted); text-transform: uppercase; letter-spacing: .06em; }
.confirm__grid dd { margin: 4px 0 0; color: var(--c-dark); font-weight: 700; }
.confirm__paid { color: var(--c-primary) !important; font-size: 22px; }
.confirm__subtitle { font-size: 22px; margin-bottom: 18px; }
.confirm__next { display: grid; gap: 18px; margin: 0 0 36px; padding: 0; list-style: none; }
.confirm__next li { display: flex; gap: 16px; }
.confirm__next li > span { flex: 0 0 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--c-secondary); color: #fff; font-weight: 700; font-size: 15px; }
.confirm__next strong { color: var(--c-dark); }
.confirm__next p { margin: 0; }
.confirm__actions { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 28px; border-top: 1px solid var(--c-line); }
.confirm__outline { box-shadow: inset 0 0 0 1px var(--c-line); }

/* 15. Terms */
.terms-toc { position: sticky; top: 30px; padding: 30px; background: var(--c-light); border-radius: var(--r-md); }
.terms-toc__title { font-size: 19px; margin-bottom: 14px; }
.terms-toc__link { display: flex; gap: 12px; padding: 10px 14px; border-radius: var(--r-sm); color: var(--c-text); font-weight: 500; }
.terms-toc__link span { color: var(--c-muted); font-weight: 700; font-size: 14px; }
.terms-toc__link:hover { color: var(--c-primary); }
.terms-toc__link.active { background: #fff; color: var(--c-dark); box-shadow: var(--shadow); }
.terms-toc__link.active span { color: var(--c-primary); }
.terms__updated { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; margin-bottom: 30px; border-radius: var(--r-pill); background: var(--c-cream); font-size: 14px; font-weight: 600; color: var(--c-dark); }
.terms__updated i { color: var(--c-primary); }
.terms__section { padding-bottom: 30px; margin-bottom: 30px; border-bottom: 1px solid var(--c-line); scroll-margin-top: 30px; }
.terms__section:last-child { border-bottom: 0; }
.terms__title { display: flex; align-items: baseline; gap: 14px; font-size: 26px; margin-bottom: 14px; }
.terms__title span { color: var(--c-primary); font-size: 18px; }
.footer__bottom a { color: #B4BFCF; }
.footer__bottom a:hover { color: var(--c-primary); }
.footer__sep { margin: 0 6px; }

/* 16. Blog listing (post-one card from the WP theme) */
.post-one { height: 100%; display: flex; flex-direction: column; }
.post-one__thumb { display: block; border-radius: var(--r-md) var(--r-md) 0 0; overflow: hidden; aspect-ratio: 16 / 11; }
.post-one__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.post-one:hover .post-one__thumb img { transform: scale(1.1); }
.post-one__content { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; margin-top: -36px; }
.post-one__date { padding-left: 30px; line-height: 1; }
.post-one__date-inner { display: inline-flex; align-items: center; gap: 5px; padding: 8px 20px; border-radius: var(--r-sm) var(--r-sm) 0 0; background: var(--c-secondary); color: #fff; transition: background .35s; }
.post-one:hover .post-one__date-inner { background: var(--c-primary); }
.post-one__day { font-size: 20px; font-weight: 700; }
.post-one__month { font-size: 13px; font-weight: 500; }
.post-one__inner { flex: 1; padding: 30px; background: var(--c-light); border-radius: var(--r-sm) var(--r-sm) 0 0; }
.post-one__meta { display: flex; flex-wrap: wrap; gap: 8px 30px; margin-bottom: 15px; font-size: 14px; font-weight: 500; line-height: 1; }
.post-one__meta i { color: var(--c-secondary); margin-right: 6px; transition: color .35s; }
.post-one:hover .post-one__meta i { color: var(--c-primary); }
.post-one__title { font-size: 22px; line-height: 30px; margin: 5px 0 0; }
.post-one__title a { color: var(--c-dark); }
.post-one__title a:hover { color: var(--c-primary); }
.post-one__more { display: flex; justify-content: space-between; align-items: center; padding: 12px 30px; background: var(--c-light); border-top: 1px solid #fff; border-radius: 0 0 var(--r-sm) var(--r-sm); color: #666; font-size: 14px; font-weight: 600; }
.post-one__more:hover { color: var(--c-primary); }

/* Sidebar widgets */
.blog-sidebar { position: sticky; top: 30px; }
.widget { margin-bottom: 30px; padding: 30px; border: 1px solid #DFDFDF; border-radius: 6px; }
.widget__title { position: relative; margin: 0 0 15px; padding-bottom: 15px; font-size: 18px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.widget__title::before, .widget__title::after { content: ""; position: absolute; bottom: -2px; width: 13px; height: 2px; background: var(--c-primary); }
.widget__title::before { left: 0; }
.widget__title::after { left: 18px; }
.widget-search { position: relative; }
.widget-search .form-control { height: 56px; padding: 0 56px 0 20px; border: 0; border-radius: var(--r-sm); background: var(--c-light); color: var(--c-dark); box-shadow: none; }
.widget-search button { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; border: 0; border-radius: var(--r-sm); background: var(--c-primary); color: #fff; transition: background .2s; }
.widget-search button:hover { background: var(--c-secondary); }
.widget-cats a { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; color: var(--c-text); font-weight: 500; }
.widget-cats a:hover { color: var(--c-primary); }
.widget-cats__count { min-width: 30px; height: 30px; padding: 0 8px; border-radius: var(--r-pill); display: grid; place-items: center; background: var(--c-light); color: var(--c-dark); font-size: 13px; font-weight: 700; }
.widget-posts { display: grid; gap: 18px; padding-top: 6px; }
.widget-posts li { display: flex; gap: 16px; align-items: center; }
.widget-posts__thumb { flex: 0 0 80px; width: 80px; height: 80px; border-radius: var(--r-sm); overflow: hidden; }
.widget-posts__thumb img { width: 100%; height: 100%; object-fit: cover; }
.widget-posts__date { display: block; margin-bottom: 2px; color: var(--c-primary); font-size: 14px; font-weight: 500; }
.widget-posts__date i { margin-right: 6px; }
.widget-posts__title { display: block; color: var(--c-dark); font-weight: 700; line-height: 1.4; }
.widget-posts__title:hover { color: var(--c-primary); }
.tag-cloud { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 6px; }
.tag-cloud a { padding: 6px 16px; border-radius: var(--r-pill); background: var(--c-light); color: var(--c-dark); font-size: 14px; font-weight: 500; transition: background .2s, color .2s; }
.tag-cloud a:hover { background: var(--c-primary); color: #fff; }
.widget-cta { position: relative; padding: 40px 30px; border-radius: var(--r-md); overflow: hidden; background-size: cover; background-position: center; }
.widget-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,36,61,.3), rgba(22,36,61,.9)); }
.widget-cta > * { position: relative; }
.widget-cta .script { font-size: 24px; display: block; }
.widget-cta__title { color: #fff; font-size: 26px; margin-bottom: 20px; }

/* 17. Single post */
.post__thumb img { width: 100%; border-radius: var(--r-md); }
.post__meta { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 28px 0 14px; font-size: 15px; font-weight: 500; }
.post__meta i { color: var(--c-secondary); margin-right: 8px; }
.post__title { font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; margin-bottom: 22px; }
.post__content { font-size: 17px; }
.post__content h2 { font-size: 28px; margin: 36px 0 16px; }
.post__content h3 { font-size: 22px; margin: 30px 0 14px; }
.post__lead { color: var(--c-dark); font-size: 19px; font-weight: 500; }
.post__places { display: grid; gap: 16px; margin: 0 0 10px; padding: 0; list-style: none; }
.post__places li { display: flex; gap: 18px; padding: 20px 24px; background: var(--c-light); border-radius: var(--r-sm); }
.post__places li > span { flex: 0 0 auto; color: var(--c-primary); font-size: 22px; font-weight: 800; line-height: 1.3; }
.post__places strong { display: block; color: var(--c-dark); font-size: 18px; }
.post__places p { margin: 2px 0 0; font-size: 16px; }
.post__quote { margin: 36px 0; padding: 36px 40px; background: var(--c-secondary); border-radius: var(--r-md); color: #fff; }
.post__quote i { font-size: 34px; color: var(--c-primary); margin-bottom: 10px; }
.post__quote p { color: #fff; font-size: 22px; font-weight: 600; line-height: 1.5; }
.post__quote cite { font-family: var(--f-script); color: var(--c-primary); font-size: 24px; font-style: normal; font-weight: 700; }
.post__gallery { margin: 10px 0 26px; }
.post__gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); }
.post__footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; margin-top: 36px; padding: 24px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.post__tags, .post__share { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.post__tags strong, .post__share strong { color: var(--c-dark); }
.post__tags .tag-cloud { padding: 0; }
.social--light a { width: 40px; height: 40px; background: var(--c-light); color: var(--c-dark); }
.author-box { display: flex; gap: 24px; align-items: center; margin: 40px 0; padding: 30px; background: var(--c-cream); border-radius: var(--r-md); }
.author-box img { flex: 0 0 100px; width: 100px; height: 100px; border-radius: 50%; object-fit: cover; }
.author-box__label { font-family: var(--f-script); color: var(--c-primary); font-size: 22px; font-weight: 700; line-height: 1; }
.author-box__name { font-size: 22px; margin: 4px 0 6px; }
.author-box p { margin: 0; }
.post-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 50px; }
.post-nav__link { display: block; padding: 24px; border: 1px solid var(--c-line); border-radius: var(--r-md); transition: border-color .2s, box-shadow .2s; }
.post-nav__link:hover { border-color: transparent; box-shadow: var(--shadow); }
.post-nav__link--next { text-align: right; }
.post-nav__dir { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 6px; color: var(--c-primary); font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.post-nav__title { display: block; color: var(--c-dark); font-weight: 700; line-height: 1.4; }
.comments__title { font-size: 28px; margin-bottom: 24px; }
.comments__list { display: grid; gap: 20px; margin-bottom: 50px; }
.comment { display: flex; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--c-line); }
.comment--reply { margin-left: 60px; }
.comment img { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.comment__head { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin-bottom: 6px; }
.comment__head strong { color: var(--c-dark); font-size: 18px; }
.comment__head span { font-size: 14px; color: var(--c-muted); }
.comment__body p { margin-bottom: 8px; }
.comment__reply { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; }
.comment-form { padding: 40px; background: var(--c-light); border-radius: var(--r-md); }
.comment-form .field__input { background-color: #fff; }

/* 18. Responsive (Bootstrap breakpoints) */
@media (max-width: 1399.98px) {
  .topbar { padding-left: 300px; }
  .header__logo { padding: 0 30px 18px 30px; }
  .header__logo img { width: 200px; }
  .main-nav__list { gap: 26px; }
  .hero__man { width: 480px; right: 14%; }
  .hero__circle { width: 240px; right: 12%; }
}
@media (max-width: 1199.98px) {
  :root { --section-y: 90px; }
  .header__logo { margin-top: 0; padding: 18px 20px; }
  .header__bar { border-radius: 40px 0 0 40px; min-height: 80px; justify-content: flex-end; }
  .hero__man { width: 400px; right: 6%; }
  .hero__circle { width: 200px; right: 6%; }
  .hero__content { max-width: 520px; }
  .search-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-bar__submit { grid-column: 1 / -1; min-height: 64px; }
  .filters { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking, .summary, .terms-toc, .blog-sidebar { position: static; }
}
@media (max-width: 991.98px) {
  .hero__art, .hero__luggage, .hero__plane, .hero__clouds, .hero__wave { display: none; }
  .hero { min-height: 0; }
  .hero__content { padding: 90px 0 150px; }
  .tour-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why__media, .about__media { max-width: 520px; }
}
@media (max-width: 767.98px) {
  :root { --section-y: 70px; }
  .header__logo img { width: 160px; }
  .header__bar { padding: 0 16px; min-height: 70px; }
  .why__boxes, .filters { grid-template-columns: 1fr; }
  .why__box:nth-child(odd) { border-right: 0; }
  .why__box:not(:last-child) { border-bottom: 1px solid var(--c-line); }
  .search-bar { grid-template-columns: 1fr; }
  .search-bar__field { border-right: 0; border-bottom: 1px solid var(--c-line); }
  .types { padding: 70px 0; }
  .types__card { padding: 40px 22px; }
  .cta { padding: 46px 28px; }
  .promo { padding: 36px 28px; min-height: 320px; }
  .tour-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 140px; }
  .tour-gallery a:first-child { grid-column: span 2; grid-row: auto; }
  .tour-gallery a:nth-child(n+4) { display: none; }
  .contact-card__list { padding: 6px 24px 10px; }
  .contact-card__label { left: 24px; font-size: 22px; padding: 12px 26px; }
  .contact-card__item strong, .contact-card__item a { font-size: 17px; }
  .contact-card__icon { flex-basis: 56px; height: 56px; }
  .quick-view__body { padding: 28px 22px; }
  .quick-view__media { min-height: 240px; }
  .form-card { padding: 26px 20px; }
  .pay-options { grid-template-columns: 1fr; }
  .confirm__head, .confirm__body { padding-left: 22px; padding-right: 22px; }
  .confirm__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps__item { font-size: 13px; }
  .post-nav { grid-template-columns: 1fr; }
  .post-nav__link--next { text-align: left; }
  .comment--reply { margin-left: 24px; }
  .comment-form, .post__quote { padding: 28px 22px; }
  .author-box { flex-direction: column; text-align: center; }
}
@media (max-width: 575.98px) {
  .tour-facts, .quick-view__facts { grid-template-columns: 1fr; }
  .wallet__btn { min-width: 0; width: 100%; }
}
@media print {
  .site-header, .site-footer, .page-banner, .steps, .confirm__actions { display: none !important; }
  .confirm { box-shadow: none; }
}
