@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,600;1,700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

:root {
    /* ── Brand colours from logo ─────────────────────────────
       Amber  #FFBC59  →  climber-icon colour  →  --primary
       Steel  #5481A2  →  "EXPEDITION" text   →  --theme-color
       ─────────────────────────────────────────────────────── */
    --primary:        #FFBC59;
    --primary-dark:   #e8a530;
    --theme-color:    #5481A2;
    --theme-dark:     #3d6484;
    --dark:           #111111;
    --light-bg:       #f6f1ee;
    --light-bg-2:     #eef4f8;
    --success:        #198754;
    --danger:         #dc3545;
    --text-muted:     #6c757d;

    /* ── Typography ──────────────────────────────────────────
       Montserrat  → world's #1 Google Font · all headings & UI
                    Black 900 for hero/display, Bold 700 for h2/h3
       DM Sans     → Google's top modern body font · warm, readable
                    replaces Inter — used by top global brands
       ─────────────────────────────────────────────────────── */
    --display-font:   'Montserrat', sans-serif;
    --title-font:     'Montserrat', sans-serif;
    --text-font:      'DM Sans', sans-serif;
    --secondary-font: 'Montserrat', sans-serif;

    /* ── Spacing ─────────────────────────────────────────────*/
    --radius-sm:  8px;
    --radius-md:  14px;
    --radius-lg:  20px;
    --radius-xl:  28px;

    /* ── Shadows ─────────────────────────────────────────────*/
    --shadow-sm:  0 2px 10px rgba(0,0,0,0.06);
    --shadow-md:  0 8px 28px rgba(0,0,0,0.10);
    --shadow-lg:  0 18px 50px rgba(0,0,0,0.14);
}
    
a{
    color: var(--theme-color);
    text-decoration: none;
    transition: color 0.3s ease;
}

img {
    max-width: 100%;
}

a:hover{
    color: var(--theme-color);
    opacity: 0.8;
}

.container-fluid {
    max-width: 1500px;
    width: 95%;
}

h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6, .text-title {
    font-family: var(--title-font);
    font-weight: 600;
}

.section-top-text {
    font-family: var(--secondary-font);
}

    body {
      margin: 0;
      color: #222;
      background: #fff;
      font-family: var(--text-font);
    }

    /* Top bar */
    .topbar {
      background: #0f0f0f;
      color: #fff;
      font-size: 14px;
      padding: 10px 0;
    }

    .topbar .social a {
      color: #fff;
      margin-left: 14px;
      text-decoration: none;
      transition: 0.3s;
    }

    .topbar .social a:hover {
      color: var(--primary);
    }

    /* Header */
    .main-header {
      background: #fff;
      padding: 5px 0;
      border-bottom: 1px solid #eee;
    }
    
    /* old custom-nav-wrap removed — replaced by .site-nav */

    .logo {
      font-size: 42px;
      font-weight: 700;
      color: #111;
      display: flex;
      align-items: center;
      gap: 10px;
      
    }
    
    .logo img {
        max-width: 100px;
    }

    .logo i {
      color: var(--primary);
      font-size: 42px;
    }

    .contact-info {
      display: flex;
      align-items: center;
      gap: 28px;
      flex-wrap: wrap;
      justify-content: end;
    }

    .contact-info .item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 16px;
    }

    .contact-info i {
      color: #fff;
      font-size: 18px;
    }

    .search-box {
      position: relative;
      min-width: 320px;
    }

    .search-box input {
      border-radius: 0;
      padding-right: 55px;
      height: 48px;
    }

    .search-box button {
      position: absolute;
      right: 0;
      top: 0;
      height: 48px;
      width: 50px;
      border: none;
      background: var(--primary);
      color: #fff;
    }

    /* old navbar block removed — replaced by .site-nav */

    /* Slider */
    .hero-slider .carousel-item {
      height: 78vh;
      min-height: 620px;
      position: relative;
      overflow: hidden;
    }

    .hero-slider .carousel-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: scale(1);
      transition: transform 6s ease;
    }

    .hero-slider .carousel-item.active img {
      transform: scale(1.08);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.35),
        rgba(0, 0, 0, 0.15)
      );
    }

    .hero-content {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: #fff;
      z-index: 2;
      padding: 20px;
    }

    .hero-content .subtitle {
      font-size: 42px;
      color: #ffc13d;
      margin-bottom: 15px;
      opacity: 0;
      transform: translateY(30px);
    }

    .hero-content .subtitle-2 {
      font-size: clamp(38px, 6vw, 82px);
      font-weight: 700;
      margin-bottom: 18px;
      opacity: 0;
      transform: translateY(35px);
    }

    .hero-content p {
      font-size: 24px;
      max-width: 900px;
      margin: 0 auto;
      opacity: 0;
      transform: translateY(35px);
    }

    /* Animate current active slide text */
    .carousel-item.active .subtitle {
      animation: fadeUp 1s ease forwards;
      animation-delay: 0.3s;
    }

    .carousel-item.active .subtitle-2 {
      animation: fadeUp 1s ease forwards;
      animation-delay: 0.7s;
    }

    .carousel-item.active p {
      animation: fadeUp 1s ease forwards;
      animation-delay: 1.1s;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(35px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Booking form */
    .booking-box {
      position: relative;
      margin-top: -45px;
      z-index: 5;
    }

    .booking-inner {
      border-radius: 14px;
      overflow: hidden;
    }

    .booking-field {
      min-height: 86px;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 18px 22px;
      border-right: 1px solid #eee;
    }

    .booking-field i {
      color: var(--primary);
      font-size: 22px;
    }

    .booking-field select,
    .booking-field input {
      border: 0;
      box-shadow: none !important;
      padding-left: 0;
      font-weight: 500;
      color: #333;
      background: transparent;
    }

    .find-btn {
      height: 100%;
      width: 100%;
      min-height: 86px;
      border: none;
      background: var(--primary);
      color: #fff;
      font-size: 22px;
      font-weight: 600;
      transition: 0.3s;
    }

    .find-btn:hover {
      background: #e45e00;
    }

    /* Responsive */
    @media (max-width: 991.98px) {
      .contact-info {
        justify-content: start;
        margin-top: 20px;
      }

      .hero-slider .carousel-item {
        min-height: 540px;
        height: 70vh;
      }

      .hero-content .subtitle {
        font-size: 30px;
      }

      .hero-content p {
        font-size: 18px;
      }

      .booking-field {
        border-right: 0;
        border-bottom: 1px solid #eee;
      }
    }

    @media (max-width: 575.98px) {
      .logo {
        font-size: 34px;
      }

      .hero-content .subtitle-2 {
        font-size: 34px;
      }

      .hero-content .subtitle {
        font-size: 24px;
      }

      .hero-content p {
        font-size: 16px;
      }
    }
    
.booking-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
}

.booking-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.booking-logo {
    max-height: 55px;
    object-fit: contain;
}

.booking-stars {
    font-size: 14px;
    color: #ffc107;
    letter-spacing: 1px;
}

.booking-text {
    font-size: 14px;
    color: #495057;
    line-height: 1.5;
    font-weight: 500;
}

.package-card-link {
    text-decoration: none;
    display: block;
}

.package-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    transition: all 0.35s ease;
    height: 100%;
}

.package-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.package-card-image-wrap {
    position: relative;
    overflow: hidden;
    height: 300px;
}

.package-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.package-card:hover .package-card-image {
    transform: scale(1.06);
}

.package-card-rating {
    position: absolute;
    top: 22px;
    right: 22px;
    background: #fff;
    border-radius: 40px;
    padding: 8px 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 600;
    color: #222;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.package-card-rating i {
    color: #f4b400;
    font-size: 16px;
}

.package-card-body {
    padding: 34px 34px 30px;
}

.package-card-country {
    font-size: 14px;
    font-weight: 700;
    color: #a9a9a9;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.package-card-title {
    font-size: 24px;
    line-height: 1.3;
    font-weight: 700;
    color: #111;
    margin-bottom: 22px;
}

.package-card-price {
    font-size: 22px;
    margin-bottom: 26px;
    color: #111;
}

.package-card-price .price-label {
    color: #222;
    font-weight: 400;
}

.package-card-price .product-price {
    color: var(--primary);
    font-weight: 700;
    font-size: 24px;
}

.package-card-duration {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    color: #222;
    margin-bottom: 34px;
}

.package-card-duration i {
    font-size: 22px;
}

.package-card-link-text {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 500;
    color: #111;
    transition: all 0.3s ease;
}

.package-card-link-text i {
    transition: transform 0.3s ease;
}

.package-card:hover .package-card-link-text {
    color: var(--theme-color, #111);
}

.package-card:hover .package-card-link-text i {
    transform: translateX(6px);
}

.text-strike {
    text-decoration: line-through;
}

.home-trending-items {
    margin: 0 -20px;
}

@media (max-width: 991.98px) {
    .package-card-image-wrap {
        height: 260px;
    }

    .package-card-body {
        padding: 24px;
    }

    .package-card-title {
        font-size: 21px;
    }

    .package-card-price {
        font-size: 20px;
    }

    .package-card-link-text {
        font-size: 18px;
    }
}

.owl-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.section-header-content {
    max-width: 650px;
}

.section-heading {
    font-size: 32px;
    line-height: 1.2;
    font-weight: 700;
    color: #111;
    margin-bottom: 8px;
}

.section-subtitle {
    font-size: 16px;
    line-height: 1.7;
    color: #6c757d;
}

.package-carousel-nav {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.package-carousel-nav .owl-carousel__prev,
.package-carousel-nav .owl-carousel__next {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #e9ecef;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #111;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.package-carousel-nav .owl-carousel__prev:hover,
.package-carousel-nav .owl-carousel__next:hover {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    transform: translateY(-2px);
}

.package-carousel-nav .owl-carousel__prev:active,
.package-carousel-nav .owl-carousel__next:active {
    transform: scale(0.96);
}

@media (max-width: 991.98px) {
    .section-heading {
        font-size: 30px;
    }
}

@media (max-width: 767.98px) {
    .section-header {
        align-items: flex-start;
    }

    .section-heading {
        font-size: 26px;
    }

    .section-subtitle {
        font-size: 14px;
    }

    .package-carousel-nav .owl-carousel__prev,
    .package-carousel-nav .owl-carousel__next {
        width: 44px;
        height: 44px;
        font-size: 14px;
    }
}

.section-activity {
    background: #f6f6f6;
}

.activity-heading {
    font-size: 32px;
    font-weight: 700;
    color: #111;
    line-height: 1.15;
    margin-bottom: 12px;
}

.activity-subtitle {
    max-width: 760px;
    margin: 0 auto;
    font-size: 16px;
    color: #6c757d;
    line-height: 1.8;
}

.activity-card-link {
    text-decoration: none;
    display: block;
}

.activity-card {
    text-align: center;
    transition: all 0.35s ease;
}

.activity-image-wrap {
    border-radius: 10px;
    overflow: hidden;
}

.activity-image {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.activity-card:hover .activity-image {
    transform: scale(1.06);
}

.activity-title {
    margin-top: 20px;
    font-size: 20px;
    font-weight: 600;
    color: #111;
    line-height: 1.4;
}

/* Owl spacing */
.activity-slider .item {
    padding: 0 10px;
}

/* Dots exactly centered */
.activity-slider.owl-theme .owl-dots {
    text-align: center;
    margin-top: 34px;
}

.activity-slider.owl-theme .owl-dots .owl-dot {
    margin: 0 6px;
    vertical-align: middle;
}

.activity-slider.owl-theme .owl-dots .owl-dot span {
    width: 16px;
    height: 16px;
    margin: 0;
    background: transparent;
    border: 2px solid #444;
    border-radius: 50%;
    display: block;
    transition: all 0.3s ease;
    position: relative;
}

.activity-slider.owl-theme .owl-dots .owl-dot.active span {
    border-color: var(--primary);
}

.activity-slider.owl-theme .owl-dots .owl-dot.active span::after {
    content: "";
    width: 8px;
    height: 8px;
    background: var(--primary);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.activity-slider.owl-theme .owl-nav {
    display: none;
}

@media (max-width: 991.98px) {
    .activity-heading {
        font-size: 40px;
    }

    .activity-image {
        height: 220px;
    }

    .activity-title {
        font-size: 18px;
    }
}

@media (max-width: 767.98px) {
    .activity-heading {
        font-size: 30px;
    }

    .activity-image {
        height: 180px;
    }

    .activity-title {
        font-size: 16px;
        margin-top: 14px;
    }

    .activity-slider.owl-theme .owl-dots {
        margin-top: 24px;
    }
}

.why-choose-section {
    background: #f6f6f6;
    padding-top: 90px !important;
    padding-bottom: 90px !important;
}

.section-head {
    margin-bottom: 70px !important;
}

.section-top-text {
    font-size: 24px;
    color: #f4b223;
    line-height: 1;
    margin-bottom: 18px;
}

.section-title {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 700;
    color: #111;
    margin-bottom: 0;
}

.choose-card {
    padding: 10px 18px;
}

.choose-icon {
    position: relative;
    font-size: 48px;
    color: var(--primary);
    line-height: 1;
    margin-bottom: 28px;
    min-height: 58px;
}

.choose-icon .icon-lock {
    position: absolute;
    right: 38%;
    bottom: -4px;
    font-size: 16px;
}

.choose-title {
    font-size: 24px;
    line-height: 1.3;
    font-weight: 700;
    color: #111;
    margin-bottom: 18px;
}

.choose-text {
    font-size: 16px;
    line-height: 2;
    color: #6f6f6f;
    max-width: 320px;
    margin: 0 auto;
}

@media (max-width: 1199.98px) {
    .section-title {
        font-size: 48px;
    }

    .choose-title {
        font-size: 21px;
    }
}

@media (max-width: 767.98px) {
    .why-choose-section {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }

    .section-head {
        margin-bottom: 40px !important;
    }

    .section-top-text {
        font-size: 20px;
    }

    .section-title {
        font-size: 34px;
    }

    .choose-icon {
        font-size: 40px;
        margin-bottom: 20px;
    }

    .choose-title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .choose-text {
        font-size: 15px;
        line-height: 1.8;
    }
}

.about-section {
    background: #fff;
    position: relative;
    overflow: hidden;
    padding-top: 90px !important;
    padding-bottom: 90px !important;
}

.about-top-title {
    font-size: 24px;
    color: #f4b223;
    line-height: 1;
    margin-bottom: 18px;
}

.about-title {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 700;
    color: #111;
    max-width: 700px;
    margin-bottom: 28px;
}

.about-description {
    font-size: 16px;
    line-height: 1.9;
    color: #6f6f6f;
    max-width: 650px;
    margin-bottom: 34px;
}

.about-description p {
    margin-bottom: 8px;
}

.about-feature-list {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.about-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 22px;
}

.about-feature-icon {
    width: 66px;
    height: 66px;
    min-width: 66px;
    border-radius: 50%;
    background: #f8e9e1;
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}

.about-feature-text h4 {
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    color: #111;
    margin-bottom: 10px;
}

.about-feature-text p {
    font-size: 16px;
    line-height: 1.8;
    color: #6f6f6f;
    margin-bottom: 0;
    max-width: 500px;
}

.about-gallery {
    display: grid;
    grid-template-columns: 1fr 0.95fr;
    gap: 16px;
    align-items: center;
}

.about-gallery-left img,
.about-gallery-right img {
    width: 100%;
    object-fit: cover;
    border-radius: 14px;
    display: block;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.about-gallery-left img {
    height: 390px;
}

.about-gallery-right img:first-child {
    height: 250px;
}

.about-gallery-right img:last-child {
    height: 240px;
}

@media (max-width: 1199.98px) {
    .about-title {
        font-size: 46px;
    }
}

@media (max-width: 991.98px) {
    .about-section {
        padding-top: 70px !important;
        padding-bottom: 70px !important;
    }

    .about-title {
        font-size: 38px;
    }

    .about-gallery {
        grid-template-columns: 1fr 1fr;
        margin-top: 20px;
    }

    .about-gallery-left img {
        height: 320px;
    }

    .about-gallery-right img:first-child {
        height: 200px;
    }

    .about-gallery-right img:last-child {
        height: 200px;
    }
}

@media (max-width: 767.98px) {
    .about-top-title {
        font-size: 20px;
    }

    .about-title {
        font-size: 30px;
    }

    .about-description,
    .about-feature-text p {
        font-size: 15px;
    }

    .about-feature-item {
        gap: 16px;
    }

    .about-feature-icon {
        width: 56px;
        height: 56px;
        min-width: 56px;
        font-size: 22px;
    }

    .about-feature-text h4 {
        font-size: 19px;
    }

    .about-gallery {
        grid-template-columns: 1fr;
    }

    .about-gallery-left img,
    .about-gallery-right img:first-child,
    .about-gallery-right img:last-child {
        height: 240px;
    }

    .about-gallery-right img.mb-4 {
        margin-bottom: 16px !important;
    }
}

.blog-section {
    background: #f7f7f7;
    padding-top: 90px !important;
    padding-bottom: 90px !important;
}

.section-subtitle-script {
    font-size: 24px;
    color: #f4b223;
    line-height: 1;
    margin-bottom: 18px;
}

.blog-section .section-heading {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 700;
    color: #111;
    margin-bottom: 0;
}

.blog-card {
    background: transparent;
}

.blog-card-image-link {
    display: block;
    text-decoration: none;
}

.blog-card-image-wrap {
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 24px;
}

.blog-card-image {
    width: 100%;
    height: 290px;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.blog-card:hover .blog-card-image {
    transform: scale(1.05);
}

.blog-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 18px;
    margin-bottom: 18px;
}

.blog-tag {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 16px;
    border: 1px solid #f2d6c7;
    border-radius: 8px;
    color: var(--primary);
    font-size: 15px;
    font-weight: 500;
    background: #fff7f2;
}

.blog-date {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #6f6f6f;
    font-size: 16px;
    font-weight: 500;
}

.blog-date i {
    font-size: 18px;
}

.blog-title {
    font-size: 20px;
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 0;
}

.blog-title a {
    color: #111;
    text-decoration: none;
    transition: color 0.3s ease;
}

.blog-title a:hover {
    color: var(--theme-color, var(--primary));
}

@media (max-width: 1199.98px) {
    .blog-section .section-heading {
        font-size: 48px;
    }

    .blog-title {
        font-size: 23px;
    }
}

@media (max-width: 991.98px) {
    .blog-section {
        padding-top: 70px !important;
        padding-bottom: 70px !important;
    }

    .blog-section .section-heading {
        font-size: 38px;
    }

    .blog-card-image {
        height: 250px;
    }
}

@media (max-width: 767.98px) {
    .section-subtitle-script {
        font-size: 20px;
    }

    .blog-section .section-heading {
        font-size: 30px;
    }

    .blog-card-image {
        height: 220px;
    }

    .blog-title {
        font-size: 22px;
    }

    .blog-date {
        font-size: 15px;
    }
}

.testimonial-section {
    background: #eef4f8;
    padding: 90px 0;
    position: relative;
    overflow: hidden;
}

.testimonial-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 10% 20%, rgba(255,255,255,0.35) 0, rgba(255,255,255,0.35) 1px, transparent 1px),
        linear-gradient(120deg, rgba(255,255,255,0.16) 1px, transparent 1px);
    background-size: 120px 120px, 180px 180px;
    opacity: 0.35;
    pointer-events: none;
}

.section-script-title {
    font-size: 24px;
    color: #f4b223;
    line-height: 1;
    margin-bottom: 16px;
    position: relative;
    z-index: 2;
}

.testimonial-section .section-heading {
    font-size: 32px;
    line-height: 1.15;
    font-weight: 700;
    color: #111;
    margin-bottom: 0;
    position: relative;
    z-index: 2;
}

.home-review-items {
    position: relative;
    z-index: 2;
}

/* ── Review card — new design ───────────────────────────────── */
.testimonial-card {
    background: #fff;
    border-radius: 20px;
    padding: 32px 32px 28px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
    border: 1px solid #eef2f6;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px rgba(0,0,0,0.11);
}

/* amber left accent bar */
.testimonial-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, var(--primary), var(--theme-color));
    border-radius: 4px 0 0 4px;
}

/* large decorative quote mark */
.testimonial-card::after {
    content: "\201C";
    position: absolute;
    top: 16px;
    right: 22px;
    font-size: 80px;
    line-height: 1;
    color: rgba(255,188,89,0.15);
    font-family: Georgia, serif;
    pointer-events: none;
}

/* stars row at top */
.testimonial-rating {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-bottom: 14px;
    color: #f4b223;
    font-size: 14px;
}

/* review text */
.testimonial-content,
.testimonial-content p {
    font-family: var(--text-font);
    font-size: 14.5px;
    line-height: 1.8;
    color: #475467;
    margin-bottom: 0;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* reviewer row */
.testimonial-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.testimonial-user {
    display: flex;
    align-items: center;
    gap: 12px;
}

.testimonial-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--light-bg);
    flex-shrink: 0;
    border: 2px solid rgba(255,188,89,0.35);
}
.testimonial-avatar img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

.testimonial-user-info h4 {
    font-family: var(--display-font);
    font-size: 15px;
    font-weight: 700 !important;
    color: #101828;
    margin-bottom: 2px;
    line-height: 1.2;
}
.testimonial-user-info span {
    font-size: 12px;
    color: #aaa;
    font-weight: 500;
    letter-spacing: 0.3px;
}

/* divider between content and reviewer */
.testimonial-divider {
    height: 1px;
    background: #f0ebe4;
    margin: 16px 0;
}

/* nav buttons */
.testimonial-nav-wrap {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 28px;
    position: relative;
    z-index: 3;
    pointer-events: none;
}
.testimonial-nav-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid #e0d8d0;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    cursor: pointer;
    pointer-events: auto;
    transition: all 0.25s ease;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.testimonial-nav-btn:hover {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    transform: scale(1.08);
}
.testimonial-nav-wrap .owl-carousel__prev,
.testimonial-nav-wrap .owl-carousel__next {
    position: static;
}

/* owl dots */
.home-review-items.owl-theme .owl-nav { display: none; }
.home-review-items.owl-theme .owl-dots {
    text-align: center;
    margin-top: 24px !important;
}
.home-review-items.owl-theme .owl-dots .owl-dot { margin: 0 4px; }
.home-review-items.owl-theme .owl-dots .owl-dot span {
    width: 8px; height: 8px; margin: 0;
    background: #d0c8c0;
    border: none;
    border-radius: 50%;
    display: block;
    transition: all 0.3s ease;
}
.home-review-items.owl-theme .owl-dots .owl-dot.active span {
    background: var(--primary);
    width: 24px;
    border-radius: 4px;
}

/* section background */
.testimonial-section {
    background: var(--light-bg);
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}
.testimonial-section::before { display: none; }

.testimonial-section .section-heading {
    font-size: 32px;
    font-weight: 800;
    color: #111;
    margin-bottom: 0;
    position: relative;
    z-index: 2;
}

@media (max-width: 991.98px) {
    .testimonial-section { padding: 60px 0; }
    .testimonial-card { padding: 24px 24px 20px; }
    .testimonial-nav-wrap { display: flex; }
}

@media (max-width: 767.98px) {
    .testimonial-section .section-heading { font-size: 26px; }
    .testimonial-content, .testimonial-content p { font-size: 14px; }
    .home-review-items.owl-theme .owl-dots {
        margin-top: 24px;
    }
}

.site-footer {
    
    position: relative;
    background: transparent;
    color: #fff;
}

.footer-newsletter-wrap {
    position: relative;
    z-index: 3;
    top: -95px;
}

.footer-newsletter {
    background: var(--primary);
    border-radius: 18px;
    padding: 42px 60px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16);
}

.footer-newsletter-title {
    font-size: 34px;
    line-height: 1.3;
    font-weight: 700;
    color: #fff;
    margin-bottom: 0;
}

.footer-newsletter-form {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: flex-end;
}

.footer-newsletter-form .form-control {
    height: 60px;
    border: 0;
    border-radius: 8px;
    padding: 0 22px;
    font-size: 17px;
    box-shadow: none !important;
}

.footer-subscribe-btn {
    min-width: 170px;
    height: 60px;
    border-radius: 8px;
    border: 0;
    background: #111315;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.footer-subscribe-btn:hover {
    background: #000;
    color: #fff;
}

.footer-newsletter-shape {
    position: absolute;
    color: rgba(0, 0, 0, 0.12);
    pointer-events: none;
}

.footer-shape-plane {
    top: 18px;
    left: 58%;
    font-size: 38px;
}

.footer-shape-pin {
    bottom: -8px;
    left: 35%;
    font-size: 44px;
}

.footer-main {
    position: relative;
    padding: 50px 0 30px;
    background: #111315;
    overflow: hidden;
}

.footer-main::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 140px 140px;
    opacity: 0.2;
    pointer-events: none;
}

.footer-brand,
.footer-widget,
.footer-bottom {
    position: relative;
    z-index: 2;
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.footer-logo-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--theme-color, var(--primary));
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    transform: rotate(-15deg);
}

.footer-logo-text {
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
}

.footer-about-text p {
    font-size: 16px;
    line-height: 1.9;
    color: rgba(255, 255, 255, 0.78);
    margin-bottom: 0;
    max-width: 340px;
}

.footer-contact-list {
    margin-top: 26px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-contact-list a {
    color: #fff;
    text-decoration: none;
    font-size: 18px;
    line-height: 1.6;
    transition: color 0.3s ease;
}

.footer-contact-list a:hover {
    color: var(--primary);
}

.footer-title {
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 28px;
}

.footer-links li {
    margin-bottom: 14px;
}

.footer-links li:last-child {
    margin-bottom: 0;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    font-size: 17px;
    transition: all 0.3s ease;
}

.footer-links a:hover {
    color: var(--primary);
    padding-left: 6px;
}

.footer-association-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.footer-association-list li {
    background: rgba(255, 255, 255, 1);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 10px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 74px;
}

.footer-association-list img {
    max-width: 100%;
    max-height: 46px;
    object-fit: contain;
    filter: grayscale(0);
}

.footer-social {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.footer-social li {
    margin: 0;
}

.footer-social a {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 16px;
    transition: all 0.3s ease;
}

.footer-social a:hover {
    background: var(--primary);
    color: #fff;
    transform: translateY(-2px);
}

.footer-bottom {
    margin-top: 50px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.footer-copyright,
.footer-credit {
    color: rgba(255, 255, 255, 0.78);
    font-size: 17px;
}

.footer-copyright span,
.footer-credit a {
    color: var(--theme-color, var(--primary));
    text-decoration: none;
    font-weight: 600;
}

.footer-credit a:hover {
    color: var(--primary);
}

@media (max-width: 1199.98px) {
    .footer-logo-text {
        font-size: 36px;
    }

    .footer-newsletter-title {
        font-size: 30px;
    }
}

@media (max-width: 991.98px) {
    .footer-newsletter-wrap {
        margin-bottom: -70px;
    }

    .footer-newsletter {
        padding: 30px;
    }

    .footer-newsletter-title {
        font-size: 28px;
    }

    .footer-newsletter-form {
        justify-content: flex-start;
    }

    .footer-main {
        padding-top: 150px;
    }

    .footer-logo-text {
        font-size: 32px;
    }
}

@media (max-width: 767.98px) {
    .footer-newsletter-wrap {
        margin-bottom: -40px;
    }

    .footer-newsletter {
        padding: 24px 20px;
        border-radius: 14px;
    }

    .footer-newsletter-title {
        font-size: 24px;
    }

    .footer-newsletter-form {
        flex-direction: column;
        align-items: stretch;
    }

    .footer-subscribe-btn {
        width: 100%;
        min-width: 100%;
    }

    .footer-main {
        padding: 120px 0 24px;
    }

    .footer-logo-text {
        font-size: 30px;
    }

    .footer-title {
        margin-bottom: 18px;
    }

    .footer-association-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-bottom {
        margin-top: 34px;
        text-align: center;
    }
}

.whatsapp-float {
    position: fixed;
    width: 62px;
    height: 62px;
    bottom: 24px;
    right: 24px;
    background: #25D366;
    color: #fff;
    border-radius: 50%;
    text-align: center;
    font-size: 30px;
    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;

    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.35);
    transition: all 0.3s ease;
    animation: whatsappPulse 1.8s infinite;
}

.whatsapp-float:hover {
    color: #fff;
    transform: scale(1.08);
    box-shadow: 0 10px 30px rgba(37, 211, 102, 0.5);
}

.whatsapp-float-i {
    line-height: 1;
}

.package-page-wrap {
    background: #f8fafc;
}

.pkg-card {
    background: #fff;
    border: 1px solid #e9eef5;
    border-radius: 20px;
    padding: 28px;
    margin-bottom: 28px;
}

.fixed-iti {
    position: sticky;
    top: 0;
    z-index: 99999;
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 4px 18px rgba(0,0,0,0.04);
}

.package-navbar {
    display: flex;
    align-items: center;
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    white-space: nowrap;
}

.package-navbar .nav-link {
    display: inline-block;
    padding: 22px 0;
    color: #667085;
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
}

.package-navbar .nav-link:hover,
.package-navbar .nav-link.active {
    color: var(--theme-color);
    border-bottom-color: var(--theme-color);
}

.package-page h1 {
    font-size: 42px;
    line-height: 1.18;
    font-weight: 800;
    color: #101828;
    margin-bottom: 18px;
}

.package-page h2 {
    font-size: 30px;
    line-height: 1.25;
    font-weight: 750;
    color: #101828;
    margin-bottom: 18px;
}

.package-page p,
.package-page li {
    color: #475467;
    font-size: 16px;
    line-height: 1.9;
}

.trip-fact {
    background: #fff !important;
    border: 1px solid #e9eef5;
    border-radius: 20px;
    padding: 18px 22px;
}

.travel-icons {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #f1f5f9;
}

.travel-icons:last-child {
    border-bottom: 0;
}

.travel-left {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.travel-left img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.travel-right strong {
    color: #101828;
}

.travel-right span {
    color: #667085;
    display: block;
}

.itinerary-heading {
    background: #fff !important;
    color: #101828 !important;
    font-size: 19px;
    font-weight: 700;
    padding: 22px 24px;
}

.accordion-body {
    padding-top: 15px;
}

.itinerary-icon {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #eef2f6;
}

.itinerary-icon > div {
    margin-bottom: 16px;
}

.itinerary-icon .text-main {
    color: var(--theme-color) !important;
    font-weight: 700;
    margin-bottom: 4px;
}

.pinBox {
    position: sticky;
    top: 96px;
}

.package-sidebar {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 10px 30px rgba(16,24,40,0.06) !important;
}

.package-sidebar .text-success {
    color: #16a34a !important;
    font-size: 16px;
    font-weight: 700;
}

.package-sidebar .product-price {
    font-size: 24px;
    line-height: 1.1;
    font-weight: 800;
    color: #15803d;
}

.package-sidebar .btn-warning {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    border-radius: 14px;
    font-weight: 700;
    font-size: 17px;
    padding: 14px 18px;
}

.package-sidebar .btn-warning:hover {
    filter: brightness(0.95);
}

.package-sidebar .btn-outline-secondary {
    border-radius: 14px;
    font-weight: 600;
    padding: 12px 14px;
}

.custom-list-check li {
    position: relative;
    padding-left: 26px;
    margin-bottom: 10px;
    color: #344054;
}

.custom-list-check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #22c55e;
    font-weight: 800;
}

.review-wrap {
    background: #fff;
    border: 1px solid #e9eef5;
    border-radius: 18px;
    padding: 22px 24px;
    box-shadow: none !important;
}

.review-title .h3 {
    font-size: 22px;
    font-weight: 700;
    color: #101828;
}

.review-wrap .h5 {
    font-weight: 700;
    color: #101828;
}

.faq-heading {
    font-weight: 700;
    color: #101828 !important;
    background: #fff !important;
    padding: 20px 22px;
}

#tripOverview,
#detailItinerary,
#costDetails,
#essentials,
#packing,
#addons,
#departures,
#faqs,
#videos,
#gallery,
#reviews {
    scroll-margin-top: 110px;
    margin-bottom: 38px;
}

@media (max-width: 991.98px) {
    .pinBox {
        position: static;
        margin-top: 24px;
    }

    .package-page h1 {
        font-size: 30px;
    }

    .package-page h2 {
        font-size: 24px;
    }

    .package-sidebar .product-price {
        font-size: 34px;
    }

    .package-navbar {
        gap: 22px;
    }

    .package-navbar .nav-link {
        font-size: 14px;
        padding: 15px 0;
    }
}

.custom-list li {
    position: relative;
    padding-left: 30px;
    list-style: none;
    margin-left: 10px;
}

.custom-list li:before{
    position: absolute;
    left: 0;
    content: '\f35a';
    font-family: "Font Awesome 6 Free";
    color: #FFBC59;
    font-weight: 900;
}

.custom-list .custom-list-check li:before{
    content: '\f00c';
    font-weight: 900;
}

.include-package ul, .excludes-package ul, .custom-list ul {
    padding: 0;
}
    
.include-package li {
    position: relative;
    padding-left: 30px;
    list-style: none;
}

.include-package li:before{
    position: absolute;
    left: 0;
    content: '\f14a';
    font-family: "Font Awesome 6 Free";
    color: #28a745;
}

.excludes-package li {
    position: relative;
    padding-left: 30px;
    list-style: none;
}

.excludes-package li:before{
    position: absolute;
    left: 0;
    content: '\f410';
    font-family: "Font Awesome 6 Free";
    color: rgb(220, 53, 69);
}

.dynamic-content h2 {
    position: relative;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--theme-color);
    margin: 40px 0 22px;
    padding-left: 18px;
}

.dynamic-content h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 5px;
    border-radius: 10px;
    background: var(--primary); 
}

.dynamic-content h3 {
    position: relative;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    color: #1f2937;
    margin: 0;
}

.page-detail-wrap {
    background: #f8fafc;
}

.page-banner {
    position: relative;
    height: 500px;
    overflow: hidden;
}

.page-banner-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.page-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.52), rgba(0,0,0,0.22));
}

.page-banner-content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    z-index: 2;
}

.page-banner-inner {
    max-width: 760px;
}

.page-banner-subtitle {
    display: inline-block;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255,255,255,0.16);
    border: 1px solid rgba(255,255,255,0.18);
    padding: 8px 14px;
    border-radius: 30px;
    margin-bottom: 18px;
    backdrop-filter: blur(6px);
}

.page-banner h1, .page-banner .h1, .banner-title {
    font-size: 52px;
    line-height: 1.15;
    font-weight: 800;
    color: #fff;
    margin: 0;
}

.form-group {
    margin-bottom: 15px;
}

.page-content-section {
    margin-top: -70px;
    position: relative;
    z-index: 3;
    padding-bottom: 60px;
}

.page-content-card {
    background: #fff;
    border: 1px solid #e9eef5;
    border-radius: 24px;
    padding: 36px 40px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}

/* Page content styling */
.page-content h2 {
    position: relative;
    font-size: 32px;
    font-weight: 800;
    color: #101828;
    margin: 38px 0 20px;
    padding-left: 18px;
}

.page-content h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 5px;
    border-radius: 20px;
    background: var(--theme-color);
}

.page-content h3 {
    position: relative;
    font-size: 24px;
    font-weight: 700;
    color: #1f2937;
    margin: 28px 0 16px;
    padding-left: 14px;
}

.page-content h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 4px;
    border-radius: 10px;
    background: var(--theme-color);
    opacity: 0.75;
}

.page-content p,
.page-content li {
    font-size: 16px;
    line-height: 1.9;
    color: #475467;
}

.page-content p {
    margin-bottom: 16px;
}

.page-content ul,
.page-content ol {
    padding-left: 20px;
    margin-bottom: 18px;
}

.page-content img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
    margin: 16px 0;
}

.page-content a {
    color: var(--theme-color);
    text-decoration: none;
}

.page-content a:hover {
    text-decoration: underline;
}

.page-content blockquote {
    margin: 24px 0;
    padding: 18px 20px;
    border-left: 4px solid var(--theme-color);
    background: #f8fafc;
    border-radius: 12px;
    color: #344054;
}

/* Responsive */
@media (max-width: 991.98px) {
    .page-banner {
        height: 340px;
    }

    .page-banner h1, .page-banner .h1 {
        font-size: 40px;
    }

    .page-content-card {
        padding: 28px 24px;
        border-radius: 20px;
    }

    .page-content h2 {
        font-size: 28px;
    }

    .page-content h3 {
        font-size: 22px;
    }
}

@media (max-width: 767.98px) {
    .page-banner {
        height: 280px;
    }

    .page-banner-subtitle {
        font-size: 13px;
        padding: 7px 12px;
        margin-bottom: 14px;
    }

    .page-banner h1, .page-banner .h1 {
        font-size: 30px;
    }

    .page-content-section {
        margin-top: -40px;
        padding-bottom: 40px;
    }

    .page-content-card {
        padding: 10px;
        border-radius: 18px;
    }

    .page-content h2 {
        font-size: 24px;
        padding-left: 14px;
    }

    .page-content h3 {
        font-size: 20px;
        padding-left: 12px;
    }

    .page-content p,
    .page-content li {
        font-size: 15px;
        line-height: 1.8;
    }
}

.guide-departures {
    background: #fff;
    border: 1px solid #e9eef5;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06) !important;
}

.guide-departures-heading {
    background: #f8fafc;
    padding: 18px 24px;
    border-bottom: 1px solid #e9eef5;
}

.guide-departures-heading strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--theme-color) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.guide-departure-row {
    padding: 18px 24px;
    border-bottom: 1px solid #edf2f7;
    transition: all 0.3s ease;
}

.guide-departure-row:last-child {
    border-bottom: none;
}

.guide-departure-row:hover {
    background: #fcfcfd;
}

.guide-departure-row span {
    display: block;
    font-size: 15px;
    color: #475467;
    line-height: 1.7;
}

.guide-departure-row .badge {
    font-size: 13px;
    font-weight: 600;
    border-radius: 30px;
    padding: 7px 12px;
    margin-top: 6px;
}

.badge.bg-success {
    background: #ecfdf3 !important;
    color: #027a48 !important;
}

.badge.bg-warning {
    background: #fffaeb !important;
    color: #b54708 !important;
}

.badge.bg-danger {
    background: #fef3f2 !important;
    color: #b42318 !important;
}

.departure-date {
    background: #f0f9ff !important;
    color: #0369a1 !important;
    font-size: 13px;
    font-weight: 600;
    border-radius: 30px;
    padding: 7px 12px;
    margin-top: 8px;
}

.page-guide {
    background: #fff;
    border-radius: 20px !important;
    border: 1px solid #e9eef5;
    overflow: hidden;
    transition: all 0.35s ease;
    position: relative;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06) !important;
}

.page-guide:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12) !important;
}

.page-guide img {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
    border-radius: 18px 0 0 18px;
    transition: transform 0.5s ease;
}

.page-guide:hover img {
    transform: scale(1.06);
}

.guide-sidebar {
    padding: 0;
}

.guide-sidebar h4 {
    font-size: 24px;
    font-weight: 800;
    color: #101828;
    margin-bottom: 14px;
}

.guide-sidebar div {
    font-size: 15px;
    color: #475467;
    line-height: 1.8;
    margin-bottom: 6px;
}

.guide-sidebar span {
    font-weight: 700;
    color: #1f2937;
}

.badge-theme {
    display: inline-block;
    background: #ecfdf3;
    color: #027a48 !important;
    padding: 8px 14px;
    border-radius: 30px;
    font-size: 13px;
    font-weight: 700;
    margin-top: 8px;
}

.page-guide .btn-warning {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    border-radius: 10px;
    padding: 8px 16px;
    font-weight: 700;
    transition: all 0.3s ease;
}

.page-guide:hover .btn-warning {
    transform: translateX(4px);
}

.page-guide::before {
    content: "";
    position: absolute;
    top: 0;
    left: -80%;
    width: 50%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,0.4),
        transparent
    );
    transition: all 0.7s ease;
    z-index: 2;
}

.page-guide:hover::before {
    left: 130%;
}

@media (max-width: 768px) {
    .page-guide img {
        border-radius: 18px 18px 0 0;
        min-height: 220px;
    }

    .guide-sidebar {
        padding: 16px;
    }

    .guide-sidebar h4 {
        font-size: 20px;
    }
    
    .container-fluid {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .navbar-nav .dropdown-toggle {
        position: relative;
        padding-right: 30px;
    }

    .navbar-nav .dropdown-toggle::after {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        margin-left: 0;
    }
}

@media (max-width: 575.98px) {
    .navbar .dropdown-menu {
       visibility: hidden;
    }
}

@media (max-width: 991.98px) {
    
}

@media (max-width: 1199.98px) {
    
}

@media (max-width: 1399.98px) {
    
}



/* ── includes / excludes / highlights lists ─────────────────── */
.custum-list {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.custum-list li {
    padding: 7px 0 7px 28px;
    border-bottom: 1px solid rgba(0,0,0,.06);
    font-size: .95rem;
    line-height: 1.5;
    position: relative;
}
.custum-list li:last-child { border-bottom: none; }

/* green tick for includes */
.includes-list li::before {
    content: "\2713";
    position: absolute;
    left: 4px;
    top: 7px;
    color: #198754;
    font-weight: 700;
    font-size: 1rem;
}

/* red times for excludes */
.excludes-list li::before {
    content: "\00D7";
    position: absolute;
    left: 4px;
    top: 6px;
    color: #dc3545;
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.4;
}

/* star bullet for highlights */
.highlights-list li::before {
    content: "\2605";
    position: absolute;
    left: 4px;
    top: 7px;
    color: #f0a500;
    font-size: .85rem;
}

.highlights-box { padding: 20px 24px; border-radius: 8px; }


/* ═══════════════════════════════════════════════════════════
   CATALOG PAGE  —  A–Z Package Directory
   Brand palette: --primary #FFBC59 (amber) · --theme-color #5481A2 (steel blue)
   ═══════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────── */
.catalog-hero {
    position: relative;
    height: 420px;
    overflow: hidden;
}

.catalog-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    display: block;
    transform: scale(1.04);
    transition: transform 8s ease;
}

.catalog-hero:hover .catalog-hero-img {
    transform: scale(1);
}

.catalog-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(17, 17, 17, 0.72) 0%,
        rgba(84, 129, 162, 0.45) 60%,
        rgba(255, 188, 89, 0.22) 100%
    );
}

.catalog-hero-content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    z-index: 2;
}

.catalog-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 8px 18px;
    border-radius: 30px;
    margin-bottom: 20px;
}

.catalog-hero-title {
    font-family: var(--title-font);
    font-size: clamp(42px, 6vw, 72px);
    font-weight: 900;
    color: #fff;
    line-height: 1.1;
    margin-bottom: 14px;
    letter-spacing: -1px;
}

.catalog-hero-az {
    color: var(--primary);
    -webkit-text-stroke: 0;
}

.catalog-hero-sub {
    font-size: 18px;
    color: rgba(255,255,255,0.82);
    margin: 0;
    font-weight: 400;
}

/* ── Body shell ────────────────────────────────────────── */
.catalog-body {
    background: #f6f1ee;
    padding: 50px 0 70px;
    position: relative;
}

.catalog-body::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--primary), var(--theme-color));
}

/* ── Jump bar ──────────────────────────────────────────── */
.catalog-jumpbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid #e8e0d8;
    border-radius: 16px;
    padding: 18px 24px;
    margin-bottom: 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.catalog-jumpbar-label {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #999;
    white-space: nowrap;
    flex-shrink: 0;
}

.catalog-jumpbar-letters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.catalog-jump-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f6f1ee;
    border: 2px solid transparent;
    color: #444;
    font-weight: 800;
    font-size: 15px;
    font-family: var(--title-font);
    text-decoration: none;
    transition: all 0.2s ease;
}

.catalog-jump-btn:hover,
.catalog-jump-btn.active {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(84, 129, 162, 0.35);
}

/* ── Summary strip ─────────────────────────────────────── */
.catalog-summary {
    font-size: 15px;
    color: #777;
    margin-bottom: 40px;
    padding-left: 4px;
}

.catalog-summary strong {
    color: #111;
}

/* ── Letter group ──────────────────────────────────────── */
.catalog-group {
    margin-bottom: 60px;
    scroll-margin-top: 100px;
}

.catalog-group-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 28px;
}

.catalog-group-letter {
    width: 68px;
    height: 68px;
    min-width: 68px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--primary) 0%, #e8a83a 100%);
    color: #fff;
    font-family: var(--title-font);
    font-size: 34px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(255,188,89,0.38);
    flex-shrink: 0;
    letter-spacing: -1px;
}

.catalog-group-info {
    flex: 1;
}

.catalog-group-title {
    font-size: 22px;
    font-weight: 800;
    color: #111;
    margin: 0;
    line-height: 1.2;
    font-family: var(--title-font);
}

.catalog-back-top {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e0d8d0;
    color: #aaa;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.2s ease;
    flex-shrink: 0;
    margin-left: auto;
}

.catalog-back-top:hover {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    transform: translateY(-2px);
}

/* ── Package card ──────────────────────────────────────── */
.clog-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(0,0,0,0.07);
    text-decoration: none;
    color: inherit;
    transition: transform 0.28s ease, box-shadow 0.28s ease;
    height: 100%;
    border: 1px solid rgba(0,0,0,0.04);
}

.clog-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.14);
    color: inherit;
    text-decoration: none;
}

/* Image */
.clog-img-wrap {
    position: relative;
    overflow: hidden;
    height: 200px;
    flex-shrink: 0;
}

.clog-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.clog-card:hover .clog-img {
    transform: scale(1.07);
}

.clog-img-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 18, 30, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.28s ease;
}

.clog-card:hover .clog-img-overlay {
    opacity: 1;
}

.clog-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--primary);
    color: #111;
    font-family: var(--display-font);
    font-size: 13px;
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 30px;
    letter-spacing: 0.3px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    transform: translateY(6px);
    transition: transform 0.28s ease;
}
.clog-card:hover .clog-view-btn {
    transform: translateY(0);
}
    letter-spacing: 0.3px;
}

.clog-diff {
    position: absolute;
    top: 14px;
    left: 14px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 5px 12px;
    border-radius: 20px;
    backdrop-filter: blur(4px);
}

.diff-easy       { background: rgba(34,197,94,0.15);  color: #15803d; border: 1px solid rgba(34,197,94,0.3); }
.diff-moderate   { background: rgba(59,130,246,0.15); color: #1d4ed8; border: 1px solid rgba(59,130,246,0.3); }
.diff-challenging{ background: rgba(249,115,22,0.15); color: #c2410c; border: 1px solid rgba(249,115,22,0.3); }
.diff-strenuous  { background: rgba(239,68,68,0.15);  color: #b91c1c; border: 1px solid rgba(239,68,68,0.3); }

/* Body */
.clog-body {
    padding: 20px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.clog-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.clog-meta-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.clog-days {
    background: rgba(255,188,89,0.14);
    color: #b45309;
    border: 1px solid rgba(255,188,89,0.35);
}

.clog-elev {
    background: rgba(84,129,162,0.1);
    color: var(--theme-color);
    border: 1px solid rgba(84,129,162,0.2);
}

.clog-title {
    font-family: var(--title-font);
    font-size: 16px;
    font-weight: 800;
    color: #111;
    line-height: 1.35;
    margin: 0 0 10px;
    flex: 1;
}

.clog-detail {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #888;
    margin-bottom: 6px;
}

.clog-detail i {
    color: var(--theme-color);
    font-size: 13px;
    width: 14px;
    text-align: center;
}

/* Footer row */
.clog-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #f0ebe4;
}

.clog-price-wrap {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.clog-from {
    font-size: 11px;
    color: #aaa;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.clog-price {
    font-size: 20px;
    font-weight: 800;
    color: var(--theme-color) !important;
    font-family: var(--title-font);
}

.clog-arrow {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f6f1ee;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #bbb;
    font-size: 14px;
    transition: all 0.25s ease;
    flex-shrink: 0;
}

.clog-card:hover .clog-arrow {
    background: var(--primary);
    color: #111;
    transform: translateX(3px);
}

/* ── Bottom bar ────────────────────────────────────────── */
.catalog-bottom-bar {
    text-align: center;
    padding-top: 20px;
    margin-top: 20px;
    border-top: 1px solid #e0d8d0;
}

.catalog-top-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 2px solid var(--theme-color);
    color: var(--theme-color);
    font-size: 14px;
    font-weight: 700;
    padding: 12px 28px;
    border-radius: 30px;
    text-decoration: none;
    transition: all 0.25s ease;
    letter-spacing: 0.3px;
}

.catalog-top-btn:hover {
    background: var(--theme-color);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(84,129,162,0.3);
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .catalog-hero { height: 340px; }
    .catalog-hero-sub { font-size: 16px; }
    .catalog-group-letter { width: 56px; height: 56px; min-width: 56px; font-size: 28px; border-radius: 14px; }
    .catalog-group-title { font-size: 18px; }
}

@media (max-width: 767.98px) {
    .catalog-hero { height: 280px; }
    .catalog-body { padding: 32px 0 50px; }
    .catalog-jumpbar { padding: 14px 16px; gap: 10px; }
    .catalog-jump-btn { width: 34px; height: 34px; font-size: 13px; }
    .catalog-group-letter { width: 48px; height: 48px; min-width: 48px; font-size: 24px; border-radius: 12px; }
    .clog-img-wrap { height: 175px; }
}



/* ═══════════════════════════════════════════════════════════════
   GLOBAL BRAND SYSTEM  —  Adventure Peaks Expedition
   Amber #FFBC59  ·  Steel Blue #5481A2  ·  Barlow Condensed display
   ═══════════════════════════════════════════════════════════════ */

/* ── Apply Barlow Condensed to all headings ────────────────── */
h1, .h1, h2, .h2, h3, .h3 {
    font-family: var(--display-font);
    letter-spacing: 0.02em;
    
}
h4, .h4, h5, .h5, h6, .h6 {
    font-family: var(--title-font);
}

/* ── Utility colour classes ────────────────────────────────── */
.text-main,
.color-main  { color: var(--theme-color) !important; }
.text-alt,
.color-alt   { color: var(--primary) !important; }
.text-brand  { color: var(--theme-color) !important; }

.bg-main     { background-color: var(--theme-color) !important; }
.bg-alt      { background-color: var(--primary) !important; }
.bg-light-brand { background-color: var(--light-bg) !important; }

/* ── Spacing utilities (used in blade templates) ───────────── */
.pt-10 { padding-top: 10px !important; }
.pt-20 { padding-top: 20px !important; }
.pt-30 { padding-top: 30px !important; }
.pt-40 { padding-top: 40px !important; }
.pt-50 { padding-top: 50px !important; }
.pb-10 { padding-bottom: 10px !important; }
.pb-15 { padding-bottom: 15px !important; }
.pb-20 { padding-bottom: 20px !important; }
.pb-30 { padding-bottom: 30px !important; }
.pb-40 { padding-bottom: 40px !important; }
.pb-50 { padding-bottom: 50px !important; }
.mt-5  { margin-top: 5px !important; }
.mt-15 { margin-top: 15px !important; }
.mt-20 { margin-top: 20px !important; }
.mb-15 { margin-bottom: 15px !important; }
.mb-20 { margin-bottom: 20px !important; }
.mb-30 { margin-bottom: 30px !important; }
.mb-50 { margin-bottom: 50px !important; }
.ml-10 { margin-left: 10px !important; }
.mr-10 { margin-right: 10px !important; }
.mb-4  { margin-bottom: 1.5rem !important; }

/* ── Section theme box (highlights, includes, etc.) ────────── */
.section-theme {
    background: var(--light-bg);
    border-left: 4px solid var(--primary);
    border-radius: var(--radius-md);
    padding: 24px 28px;
}

/* ── Essentials season tags ────────────────────────────────── */
.tag {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.tag-best  { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.tag-good  { background: #dbeafe; color: #1e40af; border: 1px solid #93c5fd; }
.tag-avoid { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

/* ── Checklist (packing list) ──────────────────────────────── */
ul.checklist {
    list-style: none;
    padding: 0;
}
ul.checklist li {
    padding: 6px 0 6px 28px;
    position: relative;
    font-size: 15px;
    color: #475467;
    border-bottom: 1px solid rgba(0,0,0,.05);
}
ul.checklist li:last-child { border-bottom: none; }
ul.checklist li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 6px;
    color: var(--success);
    font-weight: 800;
    font-size: 14px;
}

/* ── Global button system ──────────────────────────────────── */
.btn-primary-brand {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: #fff;
    font-weight: 700;
    border-radius: var(--radius-md);
    transition: all 0.25s ease;
}
.btn-primary-brand:hover {
    background: var(--theme-dark);
    border-color: var(--theme-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(84,129,162,0.35);
}
.btn-warning {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #111 !important;
    font-weight: 700;
    transition: all 0.25s ease;
}
.btn-warning:hover, .btn-warning:focus {
    background: var(--primary-dark) !important;
    border-color: var(--primary-dark) !important;
    color: #111 !important;
    transform: translateY(-2px);
}

/* ── Topbar brand upgrade ──────────────────────────────────── */
.topbar {
    background: var(--dark) !important;
    border-bottom: 2px solid var(--primary);
}
.topbar .text-warning { color: var(--primary) !important; }
.topbar span { color: rgba(255,255,255,0.85); }

/* ═══════════════════════════════════════════════════════════
   SITE NAV — complete redesign
   ═══════════════════════════════════════════════════════════ */

/* ── Shell ─────────────────────────────────────────────────── */
.site-nav {
    position: relative;
    background: #fff;
    border-bottom: 1px solid rgba(84,129,162,0.12);
    box-shadow: 0 2px 16px rgba(0,0,0,0.05);
    z-index: 1000;
    transition: box-shadow 0.3s ease, background 0.3s ease;
}
.site-nav--sticky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 4px 28px rgba(0,0,0,0.10);
    z-index: 1100;
    animation: snavSlideDown 0.28s ease forwards;
}
@keyframes snavSlideDown {
    from { transform: translateY(-100%); opacity: 0; }
    to   { transform: translateY(0);     opacity: 1; }
}

/* ── Inner row ─────────────────────────────────────────────── */
.site-nav__inner {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0 24px;
    height: 76px;
    max-width: 1600px;
    margin: 0 auto;
}

/* ── Logo ──────────────────────────────────────────────────── */
.site-nav__logo {
    flex-shrink: 0;
    margin-right: 32px;
    display: flex;
    align-items: center;
}
.site-nav__logo img {
    height: 52px;
    width: auto;
    transition: height 0.25s ease;
}
.site-nav--sticky .site-nav__logo img { height: 40px; }

/* ── Desktop menu list ─────────────────────────────────────── */
.site-nav__menu { flex: 1; display: flex; align-items: center; }

.snav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: stretch;
    height: 76px;
    gap: 0;
}
.site-nav--sticky .snav-list { height: 70px; }

/* ── Each nav item ─────────────────────────────────────────── */
.snav-item          { position: static;   display: flex; align-items: center; }
.snav-item--has-drop{ position: relative; display: flex; align-items: center; }
.snav-item--mega    { position: static;   display: flex; align-items: center; }

/* ── Nav link ──────────────────────────────────────────────── */
.snav-link {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 13px;
    height: 100%;
    font-family: var(--title-font);
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    text-decoration: none;
    letter-spacing: 0.15px;
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
    position: relative;
}
.snav-link:hover,
.snav-item--has-drop:hover > .snav-link,
.snav-item--mega:hover > .snav-link {
    color: var(--theme-color);
    border-bottom-color: var(--primary);
}
.snav-caret {
    font-size: 10px;
    margin-top: 1px;
    transition: transform 0.2s ease;
}
.snav-item--has-drop:hover > .snav-link .snav-caret,
.snav-item--mega:hover > .snav-link .snav-caret { transform: rotate(180deg); }

/* ── Mega menu panel ───────────────────────────────────────── */
.snav-mega {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: #fff;
    border-top: 3px solid var(--primary);
    box-shadow: 0 16px 48px rgba(0,0,0,0.13);
    z-index: 1200;
    animation: snavFadeIn 0.22s ease forwards;
}
.snav-item--mega:hover .snav-mega { display: block; }

@keyframes snavFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.snav-mega__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 28px 40px 32px;
    max-width: 1600px;
    margin: 0 auto;
}

.snav-mega__col {
    flex: 1 1 180px;
    min-width: 150px;
    max-width: 220px;
    padding: 0 20px 0 0;
    border-right: 1px solid #f1f3f5;
}
.snav-mega__col:last-child { border-right: none; }
.snav-mega__col--accent { background: var(--light-bg-2); border-radius: 10px; padding: 16px 16px; border: none; }

.snav-mega__heading {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: var(--title-font);
    font-size: 13px;
    font-weight: 700;
    color: var(--theme-color);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 10px;
    text-decoration: none;
    transition: color 0.15s;
}
.snav-mega__heading:hover { color: var(--primary-dark); }
.snav-mega__icon { font-size: 14px; color: var(--primary); }

.snav-mega__link {
    display: block;
    padding: 6px 0 6px 4px;
    font-size: 13.5px;
    color: #333;
    text-decoration: none;
    border-bottom: 1px dashed #eee;
    transition: color 0.15s ease, padding-left 0.15s ease;
    line-height: 1.4;
}
.snav-mega__link:last-child { border-bottom: none; }
.snav-mega__link:hover { color: var(--theme-color); padding-left: 10px; }

/* ── Small dropdown ────────────────────────────────────────── */
.snav-drop {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: #fff;
    border-top: 3px solid var(--primary);
    border-radius: 0 0 10px 10px;
    box-shadow: 0 12px 36px rgba(0,0,0,0.12);
    list-style: none;
    margin: 0;
    padding: 8px 0;
    z-index: 1200;
    animation: snavFadeIn 0.2s ease forwards;
}
.snav-item--has-drop:hover .snav-drop { display: block; }

.snav-drop__link {
    display: block;
    padding: 10px 20px;
    font-size: 14px;
    color: #222;
    text-decoration: none;
    transition: background 0.15s, color 0.15s, padding-left 0.15s;
}
.snav-drop__link:hover {
    background: var(--light-bg);
    color: var(--theme-color);
    padding-left: 26px;
}

/* ── Right actions ─────────────────────────────────────────── */
.site-nav__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 20px;
    flex-shrink: 0;
}

.snav-search-btn {
    background: none;
    border: none;
    padding: 8px 10px;
    font-size: 17px;
    color: #444;
    cursor: pointer;
    border-radius: 8px;
    transition: background 0.2s, color 0.2s;
}
.snav-search-btn:hover { background: var(--light-bg); color: var(--theme-color); }

.snav-enquire {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--primary);
    color: #111 !important;
    font-family: var(--title-font);
    font-size: 13px;
    font-weight: 700;
    padding: 9px 18px;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: 0.2px;
    transition: background 0.2s ease, transform 0.15s ease;
    white-space: nowrap;
}
.snav-enquire:hover {
    background: var(--primary-dark);
    transform: translateY(-1px);
}

.snav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: none;
    border: 1.5px solid rgba(84,129,162,0.3);
    border-radius: 8px;
    cursor: pointer;
    padding: 8px;
}
.snav-hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--theme-color);
    border-radius: 2px;
    transition: all 0.25s ease;
}

/* ── Search bar slide-down ─────────────────────────────────── */
.snav-search-bar {
    display: none;
    background: var(--theme-color);
    padding: 12px 24px;
}
.snav-search-bar.is-open { display: block; animation: snavFadeIn 0.2s ease; }
.snav-search-form {
    display: flex;
    align-items: center;
    max-width: 680px;
    margin: 0 auto;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}
.snav-search-form input {
    flex: 1;
    border: none;
    padding: 11px 16px;
    font-size: 15px;
    outline: none;
    background: transparent;
}
.snav-search-form button {
    background: none;
    border: none;
    padding: 11px 14px;
    font-size: 16px;
    color: #555;
    cursor: pointer;
}
.snav-search-form button:hover { color: var(--theme-color); }

/* ══════════════════════════════════════════════════════════════
   MOBILE DRAWER
   ══════════════════════════════════════════════════════════════ */
.snav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1299;
    backdrop-filter: blur(2px);
}
.snav-overlay.is-visible { display: block; animation: snavFadeIn 0.25s ease; }

.snav-drawer {
    position: fixed;
    top: 0;
    right: -320px;
    width: 310px;
    max-width: 90vw;
    height: 100dvh;
    background: #fff;
    z-index: 1300;
    display: flex;
    flex-direction: column;
    box-shadow: -8px 0 40px rgba(0,0,0,0.15);
    transition: right 0.32s cubic-bezier(0.4,0,0.2,1);
    overflow: hidden;
}
.snav-drawer.is-open { right: 0; }

.snav-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
}
.snav-drawer__logo img { height: 48px; width: auto; }
.snav-drawer__close {
    background: none;
    border: none;
    font-size: 20px;
    color: #555;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    transition: background 0.2s;
}
.snav-drawer__close:hover { background: var(--light-bg); }

.snav-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 0 0 24px;
}

.snav-mob-list { list-style: none; margin: 0; padding: 0; }
.snav-mob-item { border-bottom: 1px solid #f0f0f0; }

.snav-mob-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.snav-mob-link {
    flex: 1;
    display: block;
    padding: 14px 20px;
    font-family: var(--title-font);
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    text-decoration: none;
    transition: color 0.15s;
}
.snav-mob-link:hover { color: var(--theme-color); }
.snav-mob-toggle {
    background: none;
    border: none;
    padding: 14px 18px;
    color: #888;
    cursor: pointer;
    font-size: 13px;
    transition: transform 0.2s, color 0.2s;
}
.snav-mob-toggle.is-active { transform: rotate(180deg); color: var(--theme-color); }

.snav-mob-sub {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: var(--light-bg);
}
.snav-mob-sub.is-open { max-height: 600px; }

.snav-mob-sub__heading a {
    display: block;
    padding: 10px 20px 6px 28px;
    font-size: 12px;
    font-weight: 700;
    color: var(--theme-color);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
}
.snav-mob-sub__link {
    display: block;
    padding: 9px 20px 9px 36px;
    font-size: 13.5px;
    color: #444;
    text-decoration: none;
    border-bottom: 1px dashed #e8e8e8;
    transition: color 0.15s, padding-left 0.15s;
}
.snav-mob-sub__link:hover { color: var(--theme-color); padding-left: 42px; }

.snav-drawer__cta {
    padding: 20px 20px 0;
    border-top: 1px solid #eee;
    margin-top: 8px;
}
.snav-drawer__search {
    display: flex;
    background: var(--light-bg);
    border-radius: 8px;
    overflow: hidden;
}
.snav-drawer__search input {
    flex: 1;
    border: none;
    background: none;
    padding: 10px 14px;
    font-size: 14px;
    outline: none;
}
.snav-drawer__search button {
    background: var(--theme-color);
    border: none;
    padding: 10px 14px;
    color: #fff;
    cursor: pointer;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — hide desktop nav on mobile, show hamburger
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 991px) {
    .site-nav__menu { display: none; }
    .snav-hamburger { display: flex; }
    .snav-search-btn { display: none; }
    .site-nav__inner { padding: 0 16px; height: 56px; }
    .site-nav__logo img { height: 42px; }
    .site-nav--sticky .site-nav__logo img { height: 34px; }
    .snav-enquire { padding: 8px 14px; font-size: 12px; }
}
@media (max-width: 480px) {
    .snav-enquire { display: none; }
}

/* ── Hero slider: Barlow Condensed headings ────────────────── */
.hero-content .subtitle   { font-family: var(--display-font); font-size: 32px; letter-spacing: 2px; }
.hero-content .subtitle-2 { font-family: var(--display-font); font-size: clamp(48px,7vw,96px); font-weight: 900; letter-spacing: -0.5px; }
.hero-content p           { font-family: var(--text-font); font-size: 18px; font-weight: 400; }

/* ── Page banner: Barlow Condensed h1 ─────────────────────── */
.page-banner h1,
.page-banner .h1 {
    font-family: var(--display-font);
    font-size: clamp(36px,5vw,60px);
    font-weight: 800;
    letter-spacing: 0.5px;
}
.page-banner-subtitle {
    font-family: var(--title-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: rgba(255,188,89,0.18);
    border: 1px solid rgba(255,188,89,0.45);
    color: var(--primary);
}

/* ── Package page h1 ───────────────────────────────────────── */
.package-page h1 {
    font-family: var(--display-font);
    font-size: clamp(20px,4vw,28px);
    font-weight: 700;
    letter-spacing: 0.3px;
    color: #101828;
}
.package-page h2 {
    font-family: var(--display-font);
    font-size: 28px;
    font-weight:600;
}

/* ── Section headings: display font ───────────────────────── */
.section-heading,
.section-title,
.activity-heading,
.about-title,
.blog-section .section-heading,
.testimonial-section .section-heading,
.choose-title,
.catalog-hero-title {
    font-family: var(--display-font) !important;
    letter-spacing: 0.3px;
}
.section-top-text,
.about-top-title,
.section-subtitle-script,
.section-script-title {
    font-family: var(--display-font);
    font-size: 22px;
    letter-spacing: 1px;
    color: var(--primary) !important;
}

/* ── Footer logo image ─────────────────────────────────────── */
.footer-logo-img {
    height: 60px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.92;
}

/* ── Footer: upgrade brand colours ────────────────────────── */
.footer-main { background: #0e1a26; }
.footer-title {
    font-family: var(--display-font);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--primary) !important;
    margin-bottom: 22px;
}
.footer-links a { font-size: 15px; }
.footer-links a:hover { color: var(--primary) !important; }
.footer-copyright, .footer-credit { font-size: 14px; }
.footer-social a:hover {
    background: var(--primary) !important;
    color: var(--dark) !important;
}
.footer-bottom {
    border-top-color: rgba(255,255,255,0.08) !important;
}

/* ── Breadcrumb ────────────────────────────────────────────── */
.brand-breadcrumb {
    background: var(--light-bg);
    padding: 14px 0;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.brand-breadcrumb .breadcrumb {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
}
.brand-breadcrumb .breadcrumb-item a { color: var(--theme-color); text-decoration: none; }
.brand-breadcrumb .breadcrumb-item.active { color: #888; }
.brand-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: #ccc; }

/* ── Search page ───────────────────────────────────────────── */
.search-page-wrap { background: var(--light-bg); min-height: 60vh; padding: 0 0 60px; }
.search-hero {
    background: linear-gradient(135deg, var(--dark) 0%, var(--theme-dark) 100%);
    padding: 60px 0 80px;
    position: relative;
    overflow: hidden;
}
.search-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.search-hero-title {
    font-family: var(--display-font);
    font-size: clamp(36px,5vw,60px);
    font-weight: 900;
    color: #fff;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}
.search-hero-keyword {
    color: var(--primary);
    font-style: italic;
}
.search-hero-sub { font-size: 16px; color: rgba(255,255,255,0.7); margin: 0; }
.search-results-section { margin-top: -40px; position: relative; z-index: 2; }
.search-results-bar {
    background: #fff;
    border-radius: var(--radius-lg);
    padding: 20px 28px;
    margin-bottom: 32px;
    box-shadow: var(--shadow-md);
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.search-results-count {
    font-family: var(--display-font);
    font-size: 20px;
    font-weight: 700;
    color: #111;
}
.search-results-count span { color: var(--theme-color); }
.search-empty {
    text-align: center;
    padding: 80px 20px;
    background: #fff;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}
.search-empty-icon {
    font-size: 64px;
    color: #ddd;
    margin-bottom: 20px;
}
.search-empty-title {
    font-family: var(--display-font);
    font-size: 30px;
    font-weight: 700;
    color: #333;
    margin-bottom: 10px;
}
.search-empty-text { color: #888; font-size: 16px; }
/* Search bar in hero */
.search-hero-form {
    position: relative;
    max-width: 600px;
    margin-top: 28px;
}
.search-hero-form input {
    height: 56px;
    border-radius: 30px;
    padding: 0 60px 0 24px;
    border: none;
    font-size: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    width: 100%;
}
.search-hero-form input:focus { outline: none; box-shadow: 0 4px 20px rgba(255,188,89,0.4); }
.search-hero-form button {
    position: absolute;
    right: 6px;
    top: 6px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: var(--primary);
    color: var(--dark);
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}
.search-hero-form button:hover { background: var(--primary-dark); transform: scale(1.05); }

/* ── Booking page form ─────────────────────────────────────── */
.page-form label {
    font-weight: 600;
    font-size: 14px;
    color: #344054;
    margin-bottom: 6px;
}
.page-form .form-control,
.page-form .form-select {
    border: 1px solid #d0d5dd;
    border-radius: var(--radius-sm);
    padding: 10px 14px;
    font-size: 15px;
    color: #101828;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.page-form .form-control:focus,
.page-form .form-select:focus {
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(84,129,162,0.15);
    outline: none;
}
.page-form textarea { min-height: 120px; resize: vertical; }

/* ── Package detail: itinerary accordion ──────────────────── */
.itinerary-heading {
    font-family: var(--display-font) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px;
}

/* ── Package sidebar book btn ──────────────────────────────── */
.package-sidebar .btn-warning {
    background: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
    color: #fff !important;
    font-family: var(--display-font);
    font-size: 18px;
    letter-spacing: 0.5px;
}
.package-sidebar .btn-warning:hover {
    background: var(--theme-dark) !important;
    border-color: var(--theme-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(84,129,162,0.3) !important;
}

/* ── Blog card ─────────────────────────────────────────────── */
.blog-title { font-family: var(--display-font); font-size: 22px; font-weight: 700; }

/* ── Testimonial card ──────────────────────────────────────── */
.testimonial-user-info h4 { font-family: var(--display-font); font-size: 18px; font-weight: 700; }

/* ── Package card ──────────────────────────────────────────── */
.package-card-title { font-family: var(--display-font); font-size: 22px; font-weight: 800; }

/* ── Guide detail ──────────────────────────────────────────── */
.guide-sidebar h4 { font-family: var(--display-font); font-size: 22px; font-weight: 800; }

/* ── Activity card ─────────────────────────────────────────── */
.activity-title { font-family: var(--display-font); font-size: 19px; font-weight: 700; }

/* ── Dynamic content headings ──────────────────────────────── */
.dynamic-content h2 {
    font-family: var(--display-font);
    font-size: 26px;
    font-weight: 800;
    color: var(--theme-color);
}
.dynamic-content h3 { font-family: var(--display-font); font-size: 22px; font-weight: 700; }
.page-content h2 { font-family: var(--display-font); font-size: 28px; font-weight: 800; }
.page-content h3 { font-family: var(--display-font); font-size: 22px; font-weight: 700; }

/* ── Category page card grid ───────────────────────────────── */
.page-content-card h2:first-child { margin-top: 0; }

/* ── FAQ heading ───────────────────────────────────────────── */
.faq-heading {
    font-family: var(--display-font) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: 0.2px;
}

/* ── Footer logo img (via class) ───────────────────────────── */
.footer-brand .footer-logo-text {
    display: none;
}

/* ── Departure table ───────────────────────────────────────── */
.guide-departures-heading strong { font-family: var(--display-font); font-size: 13px; }

/* ── Scroll-to-top pulse on mobile ────────────────────────── */
@media (max-width: 767.98px) {
    .page-banner-subtitle { font-size: 11px; padding: 6px 12px; }
    .section-top-text { font-size: 18px; }
    h1, .h1 { font-size: clamp(28px,7vw,42px); }
    h2, .h2 { font-size: clamp(22px,5vw,32px); }
    .navbar-nav .nav-link { padding: 12px 8px !important; }
}



/* ═══════════════════════════════════════════════════════════════
   PACKAGE DETAIL PAGE  —  complete redesign
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────── */
.pkg-hero {
    position: relative;
    height: 360px;
    overflow: hidden;
}
.pkg-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
    transition: transform 8s ease;
}
.pkg-hero:hover .pkg-hero-img { transform: scale(1.04); }
.pkg-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(10,18,30,0.82) 0%,
        rgba(10,18,30,0.38) 55%,
        rgba(10,18,30,0.12) 100%
    );
}
.pkg-hero-content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding-bottom: 40px;
    z-index: 2;
}
.pkg-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,0.70);
    margin-bottom: 14px;
}
.pkg-breadcrumb a { color: rgba(255,255,255,0.70); text-decoration: none; }
.pkg-breadcrumb a:hover { color: var(--primary); }
.pkg-breadcrumb-sep { color: rgba(255,255,255,0.35); }
.pkg-hero-title {
    font-family: var(--display-font);
    font-size: clamp(28px,4vw,52px);
    font-weight: 600;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 18px;
    letter-spacing: 0.3px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.pkg-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.pkg-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.13);
    border: 1px solid rgba(255,255,255,0.25);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 30px;
}
.pkg-pill i { color: var(--primary); }

/* ── Section nav ───────────────────────────────────────────── */
.pkg-section-nav {
    position: sticky;
    top: 0;
    z-index: 999;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(12px);
    border-bottom: 2px solid var(--primary);
    box-shadow: 0 4px 18px rgba(0,0,0,0.06);
}
.pkg-nav-list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
}
.pkg-nav-list::-webkit-scrollbar { display: none; }
.pkg-nav-link {
    display: inline-block;
    padding: 17px 18px;
    font-family: var(--title-font);
    font-size: 14px;
    font-weight: 600;
    color: #555;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    transition: all 0.2s ease;
}
.pkg-nav-link:hover, .pkg-nav-link.active {
    color: var(--theme-color);
    border-bottom-color: var(--theme-color);
}

/* ── Body ──────────────────────────────────────────────────── */
.pkg-body {
    background: #f6f1ee;
    padding: 40px 0 70px;
}
.pkg-section {
    background: #fff;
    border-radius: 16px;
    padding: 32px 36px;
    margin-bottom: 24px;
    box-shadow: 0 2px 14px rgba(0,0,0,0.05);
    scroll-margin-top: 80px;
}
#tripOverview { margin-bottom: 0; border-radius: 16px 16px 0 0; padding-bottom: 24px; }
.pkg-description {
    background: #fff;
    border-radius: 0 0 16px 16px;
    padding: 0 36px 32px;
    margin-bottom: 24px;
    box-shadow: 0 2px 14px rgba(0,0,0,0.05);
}
.pkg-section-title {
    font-family: var(--display-font);
    font-size: 24px;
    font-weight: 800;
    color: #101828;
    margin-bottom: 24px;
    padding-bottom: 14px;
    border-bottom: 2px solid #f0ebe4;
    letter-spacing: 0.3px;
}
.pkg-section-title i { color: var(--primary); }

/* ── Trip fact grid ────────────────────────────────────────── */
.pkg-facts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px,1fr));
    gap: 0;
    border: 1px solid #eef2f6;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 28px;
}
.pkg-fact-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-right: 1px solid #eef2f6;
    border-bottom: 1px solid #eef2f6;
    background: #fff;
    transition: background 0.2s ease;
}
.pkg-fact-item:hover { background: #fafafa; }
.pkg-fact-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(255,188,89,0.15), rgba(84,129,162,0.12));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--theme-color);
}
.pkg-fact-body { display: flex; flex-direction: column; min-width: 0; }
.pkg-fact-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #999;
    margin-bottom: 2px;
}
.pkg-fact-value {
    font-size: 14px;
    font-weight: 600;
    color: #111;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Short description ─────────────────────────────────────── */
.pkg-short-desc {
    font-size: 16px;
    line-height: 1.85;
    color: #475467;
    margin-bottom: 24px;
    padding: 18px 22px;
    background: #f8fafc;
    border-left: 4px solid var(--primary);
    border-radius: 0 10px 10px 0;
}

/* ── Highlights ────────────────────────────────────────────── */
.pkg-highlights {
    background: #fff9ee;
    border: 1px solid rgba(255,188,89,0.3);
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 24px;
}
.pkg-highlights .pkg-section-title {
    border-bottom-color: rgba(255,188,89,0.3);
    color: #111;
    margin-bottom: 16px;
    padding-bottom: 12px;
    font-size: 20px;
}
.pkg-highlights-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 16px;
}
.pkg-highlights-list li {
    position: relative;
    padding-left: 22px;
    font-size: 15px;
    color: #344054;
    line-height: 1.5;
}
.pkg-highlights-list li::before {
    content: "★";
    position: absolute;
    left: 0;
    top: 1px;
    color: var(--primary);
    font-size: 12px;
}

/* ── Guide cards ───────────────────────────────────────────── */
.pkg-guide-card {
    display: block;
    text-decoration: none;
    text-align: center;
    padding: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f6;
    border-radius: 12px;
    transition: all 0.25s ease;
    color: #111;
}
.pkg-guide-card:hover { border-color: var(--theme-color); box-shadow: 0 4px 14px rgba(84,129,162,0.2); color: #111; }
.pkg-guide-card img { width: 100%; height: 100px; object-fit: cover; border-radius: 8px; margin-bottom: 8px; }
.pkg-guide-card span { font-size: 13px; font-weight: 600; }

/* ── Itinerary / FAQ accordion ─────────────────────────────── */
.pkg-itinerary { display: flex; flex-direction: column; gap: 8px; }
.pkg-itin-item {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}
.pkg-itin-item.open { border-color: rgba(84,129,162,0.3); box-shadow: 0 4px 18px rgba(0,0,0,0.07); }
.pkg-itin-header {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: background 0.2s ease;
}
.pkg-itin-header:hover { background: #f8fafc; }
.pkg-itin-item.open .pkg-itin-header { background: #f0f7fe; }
.pkg-itin-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    height: 28px;
    background: var(--theme-color);
    color: #fff;
    font-family: var(--display-font);
    font-size: 12px;
    font-weight: 700;
    border-radius: 20px;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    padding: 0 10px;
}
.pkg-itin-title {
    flex: 1;
    font-family: var(--display-font);
    font-size: 16px;
    font-weight: 700;
    color: #101828;
    line-height: 1.3;
}
.pkg-itin-chevron {
    color: #aaa;
    font-size: 13px;
    transition: transform 0.25s ease;
    flex-shrink: 0;
}
.pkg-itin-item.open .pkg-itin-chevron { transform: rotate(180deg); color: var(--theme-color); }
.pkg-itin-body { display: none; padding: 0 20px 20px; }
.pkg-itin-body.show { display: block; }
.pkg-itin-desc {
    font-size: 15px;
    line-height: 1.85;
    color: #475467;
    margin-bottom: 16px;
}
.pkg-itin-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid #f0ebe4;
}
.pkg-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 20px;
}
.chip-route    { background: #eff6ff; color: #1d4ed8; }
.chip-walk     { background: #f0fdf4; color: #166534; }
.chip-elev     { background: #faf5ff; color: #7e22ce; }
.chip-meal     { background: #fff7ed; color: #c2410c; }
.chip-bed      { background: #f0f9ff; color: #0369a1; }
.chip-activity { background: #fefce8; color: #854d0e; }
.chip-drive    { background: #fdf2f8; color: #9d174d; }

/* ── Includes / Excludes ───────────────────────────────────── */
.pkg-incexc-box {
    border-radius: 12px;
    padding: 24px;
    height: 100%;
}
.pkg-inc-box { background: #f0fdf4; border: 1px solid #bbf7d0; }
.pkg-exc-box { background: #fff1f2; border: 1px solid #fecdd3; }
.pkg-incexc-heading {
    font-family: var(--display-font);
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 16px;
    letter-spacing: 0.3px;
}
.pkg-inc-box .pkg-incexc-heading { color: #166534; }
.pkg-exc-box .pkg-incexc-heading { color: #be123c; }
.pkg-incexc-list { list-style: none; padding: 0; margin: 0; }
.pkg-incexc-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 7px 0;
    font-size: 14px;
    color: #374151;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    line-height: 1.5;
}
.pkg-incexc-list li:last-child { border-bottom: none; }
.pkg-inc-box .pkg-incexc-list li i { color: #16a34a; font-size: 13px; margin-top: 2px; flex-shrink: 0; }
.pkg-exc-box .pkg-incexc-list li i { color: #dc2626; font-size: 13px; margin-top: 2px; flex-shrink: 0; }

/* ── Prose sections (essentials, packing) ──────────────────── */
.pkg-prose h2 {
    font-family: var(--display-font);
    font-size: 22px;
    font-weight: 800;
    color: var(--theme-color);
    margin: 32px 0 14px;
    padding-left: 14px;
    border-left: 4px solid var(--primary);
}
.pkg-prose h2:first-child { margin-top: 0; }
.pkg-prose h3 {
    font-family: var(--display-font);
    font-size: 18px;
    font-weight: 700;
    color: #101828;
    margin: 22px 0 10px;
}
.pkg-prose p, .pkg-prose li { font-size: 15px; line-height: 1.85; color: #475467; }
.pkg-prose ul { padding-left: 20px; margin-bottom: 14px; }

/* ── Departures table ──────────────────────────────────────── */
.pkg-departures {
    border: 1px solid #eef2f6;
    border-radius: 12px;
    overflow: hidden;
}
.pkg-dep-header {
    display: grid;
    grid-template-columns: 1fr 160px 100px;
    gap: 16px;
    padding: 13px 20px;
    background: #f8fafc;
    border-bottom: 1px solid #eef2f6;
    font-family: var(--display-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #888;
}
.pkg-dep-row {
    display: grid;
    grid-template-columns: 1fr 160px 100px;
    gap: 16px;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.2s ease;
}
.pkg-dep-row:last-child { border-bottom: none; }
.pkg-dep-row:hover { background: #fafafa; }
.pkg-dep-dates { font-size: 14px; font-weight: 600; color: #111; }
.pkg-dep-remark { display: block; font-size: 13px; color: #888; margin-bottom: 4px; }
.pkg-dep-badge {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
}
.badge-avail   { background: #dcfce7; color: #166534; }
.badge-limited { background: #fef9c3; color: #854d0e; }
.badge-sold    { background: #fee2e2; color: #991b1b; }

/* ── Sidebar ───────────────────────────────────────────────── */
.pkg-sidebar {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 8px 32px rgba(16,24,40,0.08);
    position: sticky;
    top: 80px;
}
.pkg-sidebar-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0ebe4;
    margin-bottom: 20px;
}
.pkg-price-from {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #aaa;
}
.pkg-price {
    font-family: var(--display-font);
    font-size: 38px !important;
    font-weight: 900 !important;
    color: var(--theme-color) !important;
    line-height: 1.1;
}
.pkg-price-pp {
    font-size: 13px;
    color: #aaa;
    margin-top: 2px;
}
.pkg-group-discount {
    background: #f8f9fa;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 18px;
    font-size: 14px;
}
.pkg-group-title {
    font-family: var(--display-font);
    font-size: 14px;
    font-weight: 700;
    color: var(--theme-color);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.pkg-group-row {
    display: flex;
    justify-content: space-between;
    padding: 5px 0;
    border-bottom: 1px dashed #e5e7eb;
    color: #475467;
}
.pkg-group-row:last-child { border-bottom: none; }
.pkg-group-row strong { color: #111; }
.pkg-book-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 15px;
    background: var(--theme-color);
    color: #fff;
    font-family: var(--display-font);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.5px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.25s ease;
    margin-bottom: 2px;
}
.pkg-book-btn:hover {
    background: var(--theme-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(84,129,162,0.35);
}
.pkg-secondary-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 11px;
    border: 1.5px solid #d1d5db;
    border-radius: 10px;
    color: #444;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}
.pkg-secondary-btn:hover { border-color: var(--theme-color); color: var(--theme-color); }
.pkg-trust-list {
    list-style: none;
    padding: 0;
    margin: 18px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 16px;
    border-top: 1px solid #f0ebe4;
}
.pkg-trust-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #344054;
}
.pkg-trust-list li i { color: var(--theme-color); font-size: 15px; width: 18px; text-align: center; }
.pkg-sidebar-facts {
    border-top: 1px solid #f0ebe4;
    padding-top: 16px;
    margin-top: 4px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pkg-sfact {
    display: flex;
    align-items: center;
    gap: 12px;
}
.pkg-sfact i {
    color: var(--theme-color);
    font-size: 15px;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}
.pkg-sfact-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #aaa;
}
.pkg-sfact-value {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #111;
}

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .pkg-hero { height: 320px; }
    .pkg-section, .pkg-description { padding: 24px 20px; }
    .pkg-facts-grid { grid-template-columns: 1fr 1fr; }
    .pkg-highlights-list { grid-template-columns: 1fr; }
    .pkg-dep-header, .pkg-dep-row { grid-template-columns: 1fr 120px 80px; }
    .pkg-sidebar { position: static; margin-top: 0; }
}
@media (max-width: 767.98px) {
    .pkg-hero { height: 260px; }
    .pkg-hero-content { padding-bottom: 24px; }
    .pkg-hero-title { font-size: 24px; }
    .pkg-hero-pills { gap: 6px; }
    .pkg-pill { font-size: 11px; padding: 5px 10px; }
    .pkg-facts-grid { grid-template-columns: 1fr; }
    .pkg-section { padding: 18px 16px; border-radius: 12px; }
    .pkg-dep-header { display: none; }
    .pkg-dep-row { grid-template-columns: 1fr auto; }
    .pkg-dep-col:last-child { grid-column: 2; }
}



/* ═══════════════════════════════════════════════════════════════
   MONTSERRAT + DM SANS  —  Font refinements
   Montserrat is wider than Barlow Condensed so reduce sizes slightly
   and tighten tracking on heavy headings.
   ═══════════════════════════════════════════════════════════════ */

body {
    font-family: var(--text-font) !important;
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Global headings ────────────────────────────────────── */
h1, .h1 {
    font-family: var(--display-font);
    font-weight: 700;
    letter-spacing: -0.5px;
    line-height: 1.1;
}
h2, .h2 {
    font-family: var(--display-font);
    font-weight: 600;
    letter-spacing: -0.3px;
    line-height: 1.2;
}
h3, .h3 {
    font-family: var(--display-font);
    font-weight: 500;
    letter-spacing: -0.2px;
    line-height: 1.3;
}
h4, .h4, h5, .h5, h6, .h6 {
    font-family: var(--display-font);
    font-weight: 500;
    letter-spacing: 0;
}

/* ── Hero & banner headings ─────────────────────────────── */
.catalog-hero-title,
.search-hero-title,
.page-banner h1,
.page-banner .h1,
.hero-content .subtitle-2 {
    font-family: var(--display-font) !important;
    font-weight: 900 !important;
    letter-spacing: -1px !important;
}
.pkg-hero-title {
    font-weight: 600 !important;
    letter-spacing: 0.3px !important;
}

/* ── Section headings ───────────────────────────────────── */
.section-heading,
.section-title,
.pkg-section-title,
.catalog-group-title,
.about-title,
.activity-heading,
.choose-title,
.blog-section .section-heading,
.testimonial-section .section-heading {
    font-family: var(--display-font) !important;
    font-weight: 800 !important;
    letter-spacing: -0.3px;
}

/* ── Navbar links ───────────────────────────────────────── */
.navbar-nav .nav-link,
.pkg-nav-link,
.mega-title {
    font-family: var(--display-font) !important;
    font-weight: 600 !important;
    letter-spacing: 0.1px;
}

/* ── Buttons ────────────────────────────────────────────── */
.btn,
.pkg-book-btn,
.catalog-top-btn,
.search-hero-form button {
    font-family: var(--display-font) !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px;
}

/* ── Price display ──────────────────────────────────────── */
.pkg-price,
.product-price,
.package-card-price .product-price,
.package-sidebar .product-price {
    font-family: var(--display-font) !important;
    font-weight: 900 !important;
    letter-spacing: -0.5px;
}

/* ── Itinerary accordion ────────────────────────────────── */
.pkg-itin-title  { font-family: var(--display-font) !important; font-weight: 700 !important; }
.pkg-itin-day    { font-family: var(--display-font) !important; font-weight: 800 !important; }

/* ── Package card title ─────────────────────────────────── */
.package-card-title { font-family: var(--display-font) !important; font-weight: 800 !important; letter-spacing: -0.2px; }

/* ── Blog title ─────────────────────────────────────────── */
.blog-title { font-family: var(--display-font) !important; font-weight: 700 !important; }

/* ── Catalog letter badge ───────────────────────────────── */
.catalog-group-letter { font-family: var(--display-font) !important; font-weight: 900 !important; }

/* ── Hero eyebrow / section eyebrow ────────────────────── */
.section-top-text,
.catalog-hero-eyebrow,
.pkg-breadcrumb,
.page-banner-subtitle {
    font-family: var(--display-font) !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

/* ── Footer ─────────────────────────────────────────────── */
.footer-title  { font-family: var(--display-font) !important; font-weight: 800 !important; letter-spacing: 1px; }
.footer-links a { font-family: var(--text-font) !important; }

/* ── Body copy ──────────────────────────────────────────── */
.pkg-itin-desc,
.pkg-short-desc,
.pkg-prose p,
.pkg-prose li,
.page-content p,
.page-content li,
.about-description,
.section-subtitle,
.testimonial-content,
.testimonial-content p {
    font-family: var(--text-font) !important;
    font-size: 15.5px;
    line-height: 1.85;
}

/* ── Size fixes: Montserrat is wider, scale down slightly ─ */
.pkg-hero-title              { font-size: clamp(24px, 3.5vw, 46px) !important; }
.page-banner h1              { font-size: clamp(28px, 4vw, 52px)   !important; }
.section-heading             { font-size: 30px !important; }
.pkg-section-title           { font-size: 22px !important; }
.hero-content .subtitle-2    { font-size: clamp(38px, 5.5vw, 76px) !important; }
.catalog-hero-title          { font-size: clamp(36px, 5vw, 66px)   !important; }
.search-hero-title           { font-size: clamp(30px, 4.5vw, 54px) !important; }
.pkg-price                   { font-size: 34px !important; }

/* ── Responsive tightening ──────────────────────────────── */
@media (max-width: 767.98px) {
    body { font-size: 15px; }
    .pkg-hero-title           { font-size: 22px !important; letter-spacing: -0.3px !important; }
    .section-heading          { font-size: 24px !important; }
    .pkg-section-title        { font-size: 19px !important; }
    h1, .h1                   { font-size: clamp(24px, 7vw, 38px); }
    h2, .h2                   { font-size: clamp(20px, 5vw, 28px); }
}



/* ═══════════════════════════════════════════════════════════════
   HOME PAGE  —  hero banner + search + suggestions
   ═══════════════════════════════════════════════════════════════ */

.py-70 { padding-top: 70px !important; padding-bottom: 70px !important; }
.mb-50 { margin-bottom: 50px !important; }

/* ── Hero ──────────────────────────────────────────────────── */
.home-hero {
    position: relative;
    height: 88vh;
    min-height: 580px;
    max-height: 820px;
    overflow: hidden;
}
.home-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    transform: scale(1.04);
    animation: heroZoom 10s ease forwards;
}
@keyframes heroZoom {
    from { transform: scale(1.04); }
    to   { transform: scale(1.00); }
}
.home-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        160deg,
        rgba(10,18,30,0.72) 0%,
        rgba(10,18,30,0.50) 50%,
        rgba(84,129,162,0.28) 100%
    );
}
.home-hero-content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    padding-top: 60px;
    z-index: 10;          /* high enough to sit above hero overlay */
}
.home-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    background: rgba(255,188,89,0.16);
    border: 1px solid rgba(255,188,89,0.40);
    backdrop-filter: blur(6px);
    color: var(--primary);
    font-family: var(--display-font);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 8px 18px;
    border-radius: 30px;
    margin-bottom: 22px;
}
.home-hero-title {
    font-family: var(--display-font);
    font-size: clamp(38px, 5.5vw, 78px);
    font-weight: 900;
    color: #fff;
    line-height: 1.08;
    margin-bottom: 18px;
    letter-spacing: -1.5px;
}
.home-hero-accent {
    color: var(--primary);
    display: inline-block;
}
.home-hero-sub {
    font-size: 18px;
    color: rgba(255,255,255,0.78);
    margin-bottom: 36px;
    max-width: 560px;
    line-height: 1.65;
}

/* ── Search bar ────────────────────────────────────────────── */
.home-search-wrap {
    position: relative;
    max-width: 680px;
    margin-bottom: 22px;
    z-index: 9999;        /* own stacking context above trust bar & nav */
    isolation: isolate;
}
.home-search-box {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 50px;
    padding: 6px 6px 6px 22px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.22);
    gap: 10px;
}
.home-search-icon {
    color: var(--theme-color);
    font-size: 18px;
    flex-shrink: 0;
}
.home-search-input {
    flex: 1;
    border: none;
    outline: none;
    font-family: var(--text-font);
    font-size: 16px;
    color: #111;
    background: transparent;
    padding: 10px 0;
    min-width: 0;
}
.home-search-input::placeholder { color: #aaa; font-size: 15px; }
.home-search-btn {
    flex-shrink: 0;
    background: var(--theme-color);
    color: #fff;
    border: none;
    border-radius: 40px;
    padding: 12px 28px;
    font-family: var(--display-font);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    transition: all 0.25s ease;
    white-space: nowrap;
}
.home-search-btn:hover {
    background: var(--theme-dark);
    transform: scale(1.02);
}

/* ── Suggestions dropdown ──────────────────────────────────── */
.home-suggestions {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.22);
    overflow: hidden;
    z-index: 9999;
    border: 1px solid rgba(0,0,0,0.06);
    max-height: 480px;
    overflow-y: auto;
}
.home-suggestions::-webkit-scrollbar { width: 4px; }
.home-suggestions::-webkit-scrollbar-track { background: #f1f1f1; }
.home-suggestions::-webkit-scrollbar-thumb { background: #ddd; border-radius: 4px; }

.home-sug-inner { padding: 8px 0; }

.home-sug-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease;
    border-bottom: 1px solid #f5f5f5;
}
.home-sug-item:last-child { border-bottom: none; }
.home-sug-item:hover { background: #f8fafc; color: inherit; text-decoration: none; }

.home-sug-thumb {
    width: 72px;
    height: 52px;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
    display: block;
}
.home-sug-thumb-placeholder {
    width: 72px;
    height: 52px;
    border-radius: 10px;
    flex-shrink: 0;
    background: linear-gradient(135deg, #f6f1ee, #eef4f8);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc;
    font-size: 22px;
}

.home-sug-info { flex: 1; min-width: 0; }
.home-sug-title {
    font-family: var(--display-font);
    font-size: 14px;
    font-weight: 700;
    color: #111;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 6px;
}
.home-sug-meta { display: flex; flex-wrap: wrap; gap: 5px; }
.home-sug-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 20px;
}
.sug-days  { background: rgba(255,188,89,0.14); color: #b45309; }
.sug-diff  { background: rgba(84,129,162,0.12); color: var(--theme-color); }
.sug-price { background: #f0fdf4; color: #166534; font-weight: 700; }

.home-sug-footer {
    padding: 12px 18px;
    border-top: 1px solid #f0f0f0;
    background: #fafafa;
}
.home-sug-all {
    display: flex;
    align-items: center;
    font-family: var(--display-font);
    font-size: 14px;
    font-weight: 700;
    color: var(--theme-color);
    text-decoration: none;
    gap: 6px;
}
.home-sug-all:hover { color: var(--theme-dark); }

.home-sug-empty {
    padding: 28px 18px;
    text-align: center;
    color: #aaa;
    font-size: 14px;
}
.home-sug-empty i { display: block; font-size: 32px; margin-bottom: 10px; color: #ddd; }

/* ── Quick-link tags ───────────────────────────────────────── */
.home-quick-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.home-quick-label {
    font-family: var(--display-font);
    font-size: 13px;
    font-weight: 600;
    color: rgba(255,255,255,0.60);
    letter-spacing: 0.5px;
}
.home-quick-tag {
    display: inline-block;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    color: rgba(255,255,255,0.88);
    font-size: 13px;
    font-weight: 500;
    padding: 5px 14px;
    border-radius: 20px;
    text-decoration: none;
    transition: all 0.2s ease;
    backdrop-filter: blur(4px);
}
.home-quick-tag:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #111;
    text-decoration: none;
}

/* ── Trust bar ─────────────────────────────────────────────── */
.home-trust-bar {
    background: #fff;
    padding: 20px 0;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    position: relative;
    z-index: 1;   /* below .home-search-wrap at 9999 */
}
.trust-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 14px;
    text-decoration: none;
    color: inherit;
    transition: all 0.25s ease;
}
.trust-card:hover {
    border-color: var(--primary);
    box-shadow: 0 6px 20px rgba(255,188,89,0.18);
    color: inherit;
    text-decoration: none;
    transform: translateY(-2px);
}
.trust-logo {
    height: 40px;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}
.trust-body { flex: 1; }
.trust-stars { color: #f4b223; font-size: 13px; letter-spacing: 2px; margin-bottom: 4px; }
.trust-text  { font-size: 13px; font-weight: 600; color: #475467; line-height: 1.4; }

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .home-hero { height: 75vh; min-height: 500px; }
    .home-hero-title { font-size: clamp(32px,7vw,54px); letter-spacing: -0.5px; }
    .home-hero-sub { font-size: 16px; }
    .home-search-box { border-radius: 14px; }
    .home-search-btn { border-radius: 10px; }
    .home-suggestions { border-radius: 14px; }
}
@media (max-width: 767.98px) {
    .home-hero { height: 85vh; min-height: 480px; }
    .home-hero-title { font-size: 32px; letter-spacing: -0.3px; }
    .home-hero-sub { font-size: 15px; margin-bottom: 24px; }
    .home-search-box { padding: 5px 5px 5px 16px; }
    .home-search-input { font-size: 14px; }
    .home-search-btn { padding: 10px 18px; font-size: 14px; }
    .home-quick-links { gap: 6px; }
    .home-quick-tag { font-size: 12px; padding: 4px 11px; }
    .home-trust-bar { padding: 16px 0; }
    .trust-card { padding: 12px 14px; gap: 12px; }
    .trust-logo { height: 32px; }
}



/* ═══════════════════════════════════════════════════════════════
   ALL PAGES  —  comprehensive styles
   ═══════════════════════════════════════════════════════════════ */

/* ── Spacing utils ─────────────────────────────────────────── */
.mb-24 { margin-bottom: 24px !important; }
.mb-32 { margin-bottom: 32px !important; }
.mt-20 { margin-top: 20px !important; }
.mt-32 { margin-top: 32px !important; }
.py-70 { padding-top: 70px !important; padding-bottom: 70px !important; }

/* ── Font weight fix: body content headings should NOT be 900 ─ */
.page-content h2,
.dynamic-content h2,
.pkg-prose h2,
.article-card h2,
.article-card h3,
.guide-detail-card h2,
.guide-detail-card h3,
.page-content h3 {
    font-weight: 700 !important;
}
.page-content h4,
.page-content h5,
.article-card h4,
.article-card h5 {
    font-weight: 600 !important;
}
/* navbar and UI labels remain bold */
.navbar-nav .nav-link { font-weight: 600 !important; }

/* ── page-content-card lift ────────────────────────────────── */
.page-content-card {
    background: #fff;
    border: 1px solid #e9eef5;
    border-radius: 20px;
    padding: 36px 40px;
    box-shadow: 0 8px 32px rgba(15,23,42,0.07);
}
@media (max-width: 767.98px) {
    .page-content-card { padding: 20px 16px; border-radius: 14px; }
}

/* ════════════════════════════════════════════════════════
   ANY / ARTICLE page
   ════════════════════════════════════════════════════════ */
.article-wrap { padding: 0; }

.article-card {
    background: #fff;
    border-radius: 20px;
    padding: 36px 40px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    border: 1px solid #eef2f6;
}
@media (max-width: 767.98px) { .article-card { padding: 20px 16px; } }

.article-meta-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid #f0ebe4;
}
.article-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #888;
}
.article-tag {
    background: rgba(255,188,89,0.14);
    color: #b45309;
    border: 1px solid rgba(255,188,89,0.3);
    padding: 3px 12px;
    border-radius: 20px;
}
.article-hero-img-wrap {
    margin-bottom: 28px;
    border-radius: 14px;
    overflow: hidden;
}
.article-hero-img {
    width: 100%;
    max-height: 440px;
    object-fit: cover;
    display: block;
}

/* sidebar */
.article-sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 88px; }

.article-sidebar-card {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 16px;
    padding: 22px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.05);
}
.article-sidebar-title {
    font-family: var(--display-font);
    font-size: 16px;
    font-weight: 800 !important;
    color: #101828;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #f0ebe4;
    letter-spacing: 0.3px;
}
.article-sidebar-pkg {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
    border-bottom: 1px solid #f5f5f5;
    text-decoration: none;
    color: inherit;
    transition: color 0.2s;
}
.article-sidebar-pkg:last-child { border-bottom: none; }
.article-sidebar-pkg:hover { color: var(--theme-color); }
.article-sidebar-pkg-title { font-size: 14px; font-weight: 600; color: #111; }
.article-sidebar-pkg-meta { font-size: 12px; color: #888; margin-top: 3px; }

.article-recent-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #f5f5f5;
    text-decoration: none;
    color: inherit;
    transition: color 0.2s;
}
.article-recent-item:last-child { border-bottom: none; }
.article-recent-item:hover { color: var(--theme-color); }
.article-recent-thumb {
    width: 60px;
    height: 44px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
}
.article-recent-title { font-size: 13px; font-weight: 600; color: #111; line-height: 1.4; }
.article-recent-date  { font-size: 11px; color: #aaa; margin-top: 3px; }

/* ════════════════════════════════════════════════════════
   BLOG page — featured card
   ════════════════════════════════════════════════════════ */
.blog-featured-card {
    display: block;
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    text-decoration: none;
    color: inherit;
    height: 400px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.14);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.blog-featured-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.18); color: inherit; }
.blog-featured-img-wrap { position: absolute; inset: 0; }
.blog-featured-img { width: 100%; height: 100%; object-fit: cover; transition: transform 6s ease; }
.blog-featured-card:hover .blog-featured-img { transform: scale(1.04); }
.blog-featured-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,18,30,0.85) 0%, rgba(10,18,30,0.2) 60%, transparent 100%);
}
.blog-featured-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 32px;
    z-index: 2;
}
.blog-featured-tag {
    display: inline-flex;
    align-items: center;
    background: var(--primary);
    color: #111;
    font-size: 12px;
    font-weight: 700;
    padding: 5px 14px;
    border-radius: 20px;
    margin-bottom: 14px;
    letter-spacing: 0.3px;
}
.blog-featured-title {
    font-family: var(--display-font);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 800 !important;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 14px;
    letter-spacing: -0.3px;
}
.blog-featured-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    color: rgba(255,255,255,0.72);
}
.blog-read-more { color: var(--primary); font-weight: 700; }
.blog-grid-header { margin: 36px 0 20px; }
.blog-grid-title {
    font-family: var(--display-font);
    font-size: 24px;
    font-weight: 800 !important;
    color: #111;
}
@media (max-width: 767.98px) {
    .blog-featured-card { height: 280px; }
    .blog-featured-body { padding: 20px; }
}

/* ════════════════════════════════════════════════════════
   CATEGORY page
   ════════════════════════════════════════════════════════ */
.cat-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 14px;
    padding: 16px 22px;
    margin-bottom: 28px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.cat-count { font-size: 15px; font-weight: 600; color: #344054; }
.cat-count strong { color: var(--theme-color); font-size: 18px; }
.cat-browse-all {
    font-size: 14px;
    font-weight: 700;
    color: var(--theme-color);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.2s;
}
.cat-browse-all:hover { gap: 10px; color: var(--theme-dark); }
.cat-empty {
    text-align: center;
    padding: 80px 20px;
    background: #fff;
    border-radius: 20px;
    border: 1px dashed #e0d8d0;
}
.cat-empty-icon { font-size: 56px; color: #ddd; display: block; margin-bottom: 16px; }
.cat-empty p { color: #888; font-size: 16px; margin-bottom: 20px; }

/* ════════════════════════════════════════════════════════
   BOOKING page
   ════════════════════════════════════════════════════════ */
.booking-form-card {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 20px;
    padding: 36px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
@media (max-width: 767.98px) { .booking-form-card { padding: 20px 16px; } }
.booking-form-heading {
    font-family: var(--display-font);
    font-size: 22px;
    font-weight: 800 !important;
    color: #101828;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid #f0ebe4;
}
.booking-form-heading i { color: var(--primary); }
.booking-form-subheading {
    font-family: var(--display-font);
    font-size: 17px;
    font-weight: 700 !important;
    color: #101828;
    margin-bottom: 14px;
}
.bk-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #344054;
    margin-bottom: 6px;
}
.bk-label em { color: var(--danger); font-style: normal; margin-left: 2px; }
.bk-input {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid #d1d5dd;
    border-radius: 10px;
    font-family: var(--text-font);
    font-size: 15px;
    color: #101828;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
}
.bk-input:focus {
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(84,129,162,0.14);
}
.bk-addon-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    background: #f8fafc;
    border: 1px solid #eef2f6;
    border-radius: 10px;
    margin-bottom: 10px;
}
.bk-addon-name  { font-size: 14px; font-weight: 600; color: #101828; }
.bk-addon-price { font-size: 12px; color: #888; margin-top: 2px; }
.bk-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 15px;
    background: var(--theme-color);
    color: #fff;
    font-family: var(--display-font);
    font-size: 17px;
    font-weight: 800;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    letter-spacing: 0.3px;
    transition: all 0.25s ease;
}
.bk-submit-btn:hover { background: var(--theme-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(84,129,162,0.3); }

/* booking summary */
.booking-summary {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
    position: sticky;
    top: 88px;
}
.bk-sum-img-wrap { height: 200px; overflow: hidden; }
.bk-sum-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bk-sum-body { padding: 24px; }
.bk-sum-pkg-title {
    font-family: var(--display-font);
    font-size: 18px;
    font-weight: 800;
    color: #101828;
    margin-bottom: 12px;
    line-height: 1.3;
}
.bk-sum-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    background: rgba(255,188,89,0.14);
    color: #b45309;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 16px;
}
.bk-sum-price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-top: 1px solid #f0ebe4;
    border-bottom: 1px solid #f0ebe4;
    margin-bottom: 8px;
}
.bk-sum-price-label { font-size: 13px; color: #888; font-weight: 600; }
.bk-sum-price { font-family: var(--display-font); font-size: 18px; font-weight: 800; color: var(--theme-color); }
.bk-sum-addon-row {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #666;
    padding: 4px 0;
}
.bk-sum-grand-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0 0;
    margin-top: 8px;
    border-top: 2px solid #f0ebe4;
    font-weight: 700;
    font-size: 15px;
    color: #111;
}
.bk-sum-grand-price {
    font-family: var(--display-font);
    font-size: 22px;
    font-weight: 900;
    color: var(--theme-color);
}
.bk-sum-trust {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #f0ebe4;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.bk-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    color: #344054;
}
.bk-trust-item i { color: var(--theme-color); width: 16px; text-align: center; }

/* ════════════════════════════════════════════════════════
   GUIDE CARD (shared _guide-card partial)
   ════════════════════════════════════════════════════════ */
.gcard {
    display: block;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.07);
    border: 1px solid #eef2f6;
    text-decoration: none;
    color: inherit;
    transition: transform 0.28s ease, box-shadow 0.28s ease;
    height: 100%;
}
.gcard:hover { transform: translateY(-6px); box-shadow: 0 14px 40px rgba(0,0,0,0.13); color: inherit; }
.gcard-img-wrap { position: relative; overflow: hidden; height: 220px; }
.gcard-img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; transition: transform 0.4s ease; }
.gcard:hover .gcard-img { transform: scale(1.05); }
.gcard-type-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--theme-color);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.gcard-body { padding: 20px 22px 22px; }
.gcard-name {
    font-family: var(--display-font);
    font-size: 19px;
    font-weight: 800 !important;
    color: #101828;
    margin-bottom: 10px;
    line-height: 1.2;
}
.gcard-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.gcard-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 500;
    background: #f6f1ee;
    color: #555;
    padding: 4px 10px;
    border-radius: 20px;
}
.gcard-chip i { color: var(--theme-color); font-size: 11px; }
.gcard-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 12px 0;
    border-top: 1px solid #f0ebe4;
    margin-bottom: 12px;
}
.gcard-price-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.8px; color: #aaa; font-weight: 700; }
.gcard-price-value { font-family: var(--display-font); font-size: 17px; font-weight: 800; color: var(--theme-color); }
.gcard-cta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--theme-color);
    font-family: var(--display-font);
    transition: gap 0.2s;
}
.gcard:hover .gcard-cta { gap: 10px; }

/* ════════════════════════════════════════════════════════
   GUIDE DETAIL page
   ════════════════════════════════════════════════════════ */
.guide-detail-card {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 18px;
    padding: 30px 34px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.05);
    margin-bottom: 24px;
}
@media (max-width: 767.98px) { .guide-detail-card { padding: 20px 16px; } }
.guide-detail-section-title {
    font-family: var(--display-font);
    font-size: 22px;
    font-weight: 800 !important;
    color: #101828;
    margin-bottom: 22px;
    padding-bottom: 14px;
    border-bottom: 2px solid #f0ebe4;
    letter-spacing: 0.2px;
}
.guide-detail-section-title i { color: var(--primary); }
.guide-history-item {
    padding: 20px 0;
    border-bottom: 1px solid #f0ebe4;
}
.guide-history-item:last-child { border-bottom: none; padding-bottom: 0; }
.guide-history-title {
    font-family: var(--display-font);
    font-size: 17px;
    font-weight: 700;
    color: var(--theme-color);
    margin-bottom: 8px;
}

/* guide profile sidebar */
.guide-profile-sidebar {
    background: #fff;
    border: 1px solid #eef2f6;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
    position: sticky;
    top: 88px;
}
.guide-profile-img-wrap { height: 260px; overflow: hidden; }
.guide-profile-img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.guide-profile-body { padding: 24px; }
.guide-profile-name {
    font-family: var(--display-font);
    font-size: 22px;
    font-weight: 900;
    color: #101828;
    margin-bottom: 8px;
}
.guide-profile-badge {
    display: inline-block;
    background: var(--theme-color);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 14px;
    border-radius: 20px;
    margin-bottom: 18px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.guide-profile-facts { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.guide-profile-fact {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #475467;
}
.guide-profile-fact i { color: var(--theme-color); width: 16px; text-align: center; flex-shrink: 0; }
.guide-profile-fact strong { color: #101828; }
.guide-profile-price {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
    border: 1px solid #eef2f6;
}
.guide-price-label { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #aaa; font-weight: 700; margin-bottom: 4px; }
.guide-price-value { font-family: var(--display-font); font-size: 26px; font-weight: 900; color: var(--theme-color); line-height: 1.1; }
.guide-price-sub  { font-size: 12px; color: #aaa; margin-top: 2px; }
.guide-wa-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 12px;
    background: #25D366;
    color: #fff;
    font-family: var(--display-font);
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px;
    text-decoration: none;
    margin-bottom: 10px;
    transition: all 0.25s ease;
}
.guide-wa-btn:hover { background: #1db855; color: #fff; transform: translateY(-2px); }
.guide-enquire-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 13px;
    background: var(--theme-color);
    color: #fff;
    font-family: var(--display-font);
    font-size: 15px;
    font-weight: 700;
    border-radius: 10px;
    text-decoration: none;
    transition: all 0.25s ease;
}
.guide-enquire-btn:hover { background: var(--theme-dark); color: #fff; transform: translateY(-2px); }

/* ════════════════════════════════════════════════════════
   PAGE BANNER  — tighter & smarter
   ════════════════════════════════════════════════════════ */
.page-banner { height: 320px; }
.page-banner h1 {
    font-size: clamp(26px, 4vw, 44px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.3px !important;
}
.page-banner-subtitle {
    font-size: 12px !important;
    letter-spacing: 1.5px !important;
}
@media (max-width: 767.98px) {
    .page-banner { height: 220px; }
    .page-banner h1 { font-size: 22px !important; }
}



/* ── Package grid image placeholder ───────────────────────── */
.clog-img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--light-bg), var(--light-bg-2));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc;
    font-size: 40px;
}

/* ── Home owl carousel: make clog-card fill item ──────────── */
.home-trending-item .clog-card,
.home-trending-items .clog-card { height: 100%; }
.owl-carousel .clog-img-wrap { height: 220px; }

/* ── Guide card without image fallback ────────────────────── */
.gcard-img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--light-bg), var(--light-bg-2));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc;
    font-size: 48px;
}

