/* ── Design tokens (shared system) ── */
   :root {
     --cream:        #faf8f4;
     --warm-white:   #ffffff;
     --ink:          #1a1a2e;
     --ink-light:    #4a4a6a;
     --gold:         #c9963b;
     --gold-light:   #f0d9b0;
     --gold-pale:    #fdf6ea;
     --teal:         #1a6b72;
     --teal-light:   #e6f3f4;
     --teal-dark:    #115a61;
     --border:       #e8e2d8;
     --shadow-sm:    0 2px 8px rgba(26,26,46,.06);
     --shadow-md:    0 6px 24px rgba(26,26,46,.10);
     --shadow-lg:    0 16px 48px rgba(26,26,46,.14);
     --radius:       12px;
     --radius-sm:    7px;
     --font-display: 'Playfair Display', Georgia, serif;
     --font-body:    'DM Sans', sans-serif;
     --t:            .2s cubic-bezier(.4,0,.2,1);
   }

   *, *::before, *::after { box-sizing: border-box; }
   .pkg-page { background: var(--cream); font-family: var(--font-body); color: var(--ink); }

   /* ── Breadcrumb ── */
   .pkg-breadcrumb {
     display: flex; align-items: center; gap: .35rem;
     font-size: .8rem; color: var(--ink-light); padding: .7rem 0 .4rem; flex-wrap: wrap;
   }
   .pkg-breadcrumb a { color: var(--teal); text-decoration: none; }
   .pkg-breadcrumb a:hover { text-decoration: underline; }
   .pkg-breadcrumb .sep { color: var(--border); }

   /* ── Search bar card ── */
   .pkg-search-bar {
     background: linear-gradient(135deg, var(--teal), var(--teal-dark));
     border-radius: var(--radius);
     padding: 1rem 1.4rem;
     box-shadow: var(--shadow-md);
     margin-bottom: .75rem;
   }
   .pkg-search-bar .form-label {
     font-size: .7rem; font-weight: 600; text-transform: uppercase;
     letter-spacing: .06em; color: rgba(255,255,255,.75); margin-bottom: .25rem;
   }
   .pkg-search-bar .form-control {
     background: rgba(255,255,255,.15); border: 1.5px solid rgba(255,255,255,.25);
     border-radius: var(--radius-sm); color: #fff; font-family: var(--font-body);
     font-size: .88rem; padding: .42rem .7rem; transition: all var(--t);
   }
   .pkg-search-bar .form-control::placeholder { color: rgba(255,255,255,.55); }
   .pkg-search-bar .form-control:focus {
     outline: none; background: rgba(255,255,255,.22);
     border-color: rgba(255,255,255,.6); box-shadow: 0 0 0 3px rgba(255,255,255,.15);
   }
   .pkg-search-bar .form-control option { color: var(--ink); background: #fff; }
   .pkg-search-icon { width: 16px; height: 16px; opacity: .7; flex-shrink: 0; }
   .pkg-search-input-wrap { display: flex; align-items: center; gap: .4rem; }
   .btn-pkg-search {
     background: var(--gold); color: #fff; border: none;
     border-radius: var(--radius-sm); padding: .52rem 1.4rem;
     font-family: var(--font-body); font-size: .88rem; font-weight: 600;
     cursor: pointer; transition: all var(--t); white-space: nowrap;
     box-shadow: 0 3px 10px rgba(201,150,59,.35);
     display: flex; align-items: center; gap: .4rem;
   }
   .btn-pkg-search:hover { background: #b5832e; transform: translateY(-1px); }

   /* ── Sort bar ── */
   .pkg-sort-bar {
     background: var(--warm-white); border: 1px solid var(--border);
     border-radius: var(--radius-sm); padding: .55rem 1rem;
     display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
     font-size: .82rem; margin-bottom: .75rem; box-shadow: var(--shadow-sm);
   }
   .pkg-sort-bar__label { font-weight: 700; color: var(--ink-light); white-space: nowrap; }
   .pkg-sort-bar a {
     color: var(--teal); text-decoration: none; font-weight: 500;
     display: inline-flex; align-items: center; gap: .2rem;
     padding: .2rem .5rem; border-radius: 4px; transition: background var(--t);
   }
   .pkg-sort-bar a:hover { background: var(--teal-light); }
   .pkg-sort-bar .sep { color: var(--border); }
   .pkg-sort-bar .sortorderimg { width: 10px; height: 10px; opacity: .6; }

   /* ── Left sidebar ── */
   .pkg-sidebar { position: sticky; top: 1rem; }
   .pkg-filter-card {
     background: var(--warm-white); border: 1px solid var(--border);
     border-radius: var(--radius); box-shadow: var(--shadow-sm);
     padding: 1rem 1.1rem; margin-bottom: .75rem;
   }
   .pkg-filter-card__title {
     font-size: .7rem; font-weight: 700; text-transform: uppercase;
     letter-spacing: .08em; color: var(--gold); margin-bottom: .7rem;
     display: flex; align-items: center; gap: .5rem;
   }
   .pkg-filter-card__title::after { content: ''; flex: 1; height: 1px; background: var(--gold-light); }

   /* Map iframe */
   .pkg-map { width: 100%; border-radius: var(--radius-sm); border: 0; height: 140px; }

   /* Clear filter btn */
   .btn-clear-filter {
     display: block; width: 100%; background: var(--teal-light); color: var(--teal);
     border: 1.5px solid var(--teal); border-radius: var(--radius-sm);
     padding: .42rem .8rem; font-family: var(--font-body); font-size: .8rem;
     font-weight: 600; cursor: pointer; transition: all var(--t);
     text-align: center; text-decoration: none;
   }
   .btn-clear-filter:hover { background: var(--teal); color: #fff; }

   /* Star rating rows */
   .rating-row {
     display: flex; align-items: center; gap: .5rem;
     padding: .28rem 0; border-bottom: 1px solid var(--cream);
   }
   .rating-row:last-child { border-bottom: none; }
   .rating-row input[type="checkbox"] { accent-color: var(--teal); width: 14px; height: 14px; flex-shrink: 0; }
   .rating-row .stars { display: flex; gap: 1px; }
   .rating-row .stars img { width: 12px; height: 12px; }
   .rating-row p { margin: 0; font-size: .78rem; color: var(--ink-light); }

   /* Price slider */
   #amount {
     border: 0; background: transparent;
     font-weight: 700; color: var(--gold); font-size: .82rem; width: 100%;
     margin-bottom: .4rem;
   }
   #slider-range { margin: 0 .2rem; }

   /* Filter options */
   .filter-option {
     display: flex; align-items: center; gap: .5rem;
     padding: .25rem 0; font-size: .82rem; color: var(--ink-light);
   }
   .filter-option input[type="checkbox"] { accent-color: var(--teal); width: 14px; height: 14px; flex-shrink: 0; }
   .filter-option label { margin: 0; cursor: pointer; }

   /* ── Package result card ── */
   .pkg-card {
     background: var(--warm-white); border: 1px solid var(--border);
     border-radius: var(--radius); box-shadow: var(--shadow-sm);
     margin-bottom: .85rem; overflow: hidden;
     transition: box-shadow var(--t), transform var(--t);
     display: flex; flex-direction: column;
   }
   .pkg-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

   .pkg-card__header {
     padding: .6rem 1rem .3rem;
     border-bottom: 1px solid var(--cream);
     display: flex; align-items: center; justify-content: space-between; gap: .5rem;
   }
   .pkg-card__name {
     font-family: var(--font-display); font-size: 1rem; font-weight: 700;
     color: var(--ink); margin: 0; flex: 1; min-width: 0;
     white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
   }
   .pkg-card__code {
     font-size: .72rem; font-weight: 600; color: var(--teal);
     background: var(--teal-light); border-radius: 4px; padding: .15rem .45rem; white-space: nowrap;
   }

   .pkg-card__body { display: flex; gap: 0; flex: 1; }

   /* Image col */
   .pkg-card__img-wrap { width: 165px; flex-shrink: 0; position: relative; overflow: hidden; }
   .pkg-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
   .pkg-card:hover .pkg-card__img-wrap img { transform: scale(1.04); }

   /* Details col */
   .pkg-card__details {
     flex: 1; padding: .7rem .9rem; min-width: 0;
     display: flex; flex-direction: column; gap: .35rem;
   }

   /* Inclusions icons */
   .pkg-inclusions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
   .pkg-inclusions img { width: 20px; height: 20px; }
   .pkg-inclusions-label { font-size: .75rem; color: var(--ink-light); font-weight: 500; }

   /* Tags */
   .pkg-tags { display: flex; gap: .4rem; flex-wrap: wrap; }
   .pkg-tag {
     display: inline-flex; align-items: center; gap: .25rem;
     background: var(--gold-pale); color: var(--gold);
     border: 1px solid var(--gold-light); border-radius: 4px;
     font-size: .72rem; font-weight: 600; padding: .18rem .5rem;
   }
   .pkg-tag--teal { background: var(--teal-light); color: var(--teal); border-color: #a8dfd3; }

   /* Short description */
   .pkg-card__desc {
     font-size: .8rem; color: var(--ink-light); line-height: 1.45;
     display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
   }

   /* Rating stars */
   .pkg-rating { display: flex; align-items: center; gap: .3rem; }
   .pkg-rating .stars img { width: 12px; height: 12px; }
   .pkg-rating__score { font-size: .75rem; color: var(--ink-light); }

   /* Tax / promo notes */
   .pkg-tax-note { font-size: .72rem; color: #92400e; background: #fffbeb; border-radius: 4px; padding: .2rem .5rem; display: inline-block; }
   .pkg-promo-note { font-size: .75rem; color: var(--teal); font-style: italic; }

   /* Price col */
   .pkg-card__price-col {
     width: 145px; flex-shrink: 0; padding: .7rem .9rem;
     border-left: 1px solid var(--cream);
     display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between;
   }
   .pkg-price-block { text-align: right; }
   .pkg-price { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; color: var(--teal); }
   .pkg-price-label { font-size: .68rem; color: var(--ink-light); }
   .pkg-price-original { font-size: .75rem; color: #aaa; text-decoration: line-through; }

   .pkg-card__actions { display: flex; flex-direction: column; gap: .45rem; width: 100%; }
   .btn-pkg-details {
     background: var(--teal); color: #fff; border: none;
     border-radius: var(--radius-sm); padding: .42rem .7rem;
     font-family: var(--font-body); font-size: .78rem; font-weight: 600;
     cursor: pointer; transition: all var(--t); text-align: center;
   }
   .btn-pkg-details:hover { background: var(--teal-dark); }
   .btn-pkg-book {
     background: var(--warm-white); color: var(--teal);
     border: 1.5px solid var(--teal); border-radius: var(--radius-sm);
     padding: .38rem .7rem; font-family: var(--font-body); font-size: .78rem;
     font-weight: 600; cursor: pointer; transition: all var(--t); text-align: center;
   }
   .btn-pkg-book:hover { background: var(--teal-light); }

   /* ── Loading / no more results ── */
   #loading { display: none; text-align: center; padding: 1.5rem 0; }
   #nomoreresults {
     display: none; text-align: center; padding: 1rem;
     color: var(--ink-light); font-size: .84rem; font-style: italic;
     background: var(--warm-white); border: 1px solid var(--border);
     border-radius: var(--radius-sm); margin-top: .5rem;
   }

   /* ── Modal enhancements ── */
   .modal-content { border-radius: var(--radius); overflow: hidden; border: 0; box-shadow: var(--shadow-lg); }
   .modal-header  { background: linear-gradient(135deg, var(--teal), var(--teal-dark)); padding: .85rem 1.2rem; border-bottom: 0; }
   .modal-title   { font-family: var(--font-display); font-size: 1.05rem; color: #fff; }
   .modal-body    { padding: 1.2rem 1.4rem; }
   .modal-body .nav-pills .nav-link {
     font-size: .8rem; font-weight: 600; color: var(--ink-light);
     border-radius: var(--radius-sm); padding: .38rem .85rem;
   }
   .modal-body .nav-pills .nav-link.active { background: var(--teal); color: #fff; }

   .modal-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .8rem; margin-top: .75rem; }
   .modal-info-item { display: flex; flex-direction: column; }
   .modal-info-item__label {
     font-size: .67rem; font-weight: 700; text-transform: uppercase;
     letter-spacing: .05em; color: var(--ink-light); margin-bottom: .15rem;
   }
   .modal-info-item__value { font-size: .86rem; color: var(--ink); font-weight: 500; }

   .modal-section-title {
     font-family: var(--font-display); font-size: .95rem; color: var(--teal);
     margin: 1rem 0 .5rem; border-bottom: 1px solid var(--gold-light); padding-bottom: .3rem;
   }
   .modal-list { list-style: none; padding: 0; margin: 0; }
   .modal-list li {
     font-size: .84rem; color: var(--ink); padding: .28rem 0;
     border-bottom: 1px solid var(--cream); display: flex; gap: .5rem; line-height: 1.45;
   }
   .modal-list li::before { content: '\00BB'; color: var(--gold); font-weight: 700; flex-shrink: 0; }
   .modal-list li:last-child { border-bottom: none; }

   .modal-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
   .modal-table th {
     background: var(--teal); color: #fff; font-size: .7rem;
     text-transform: uppercase; letter-spacing: .05em; padding: .4rem .6rem;
     border-bottom: 2px solid var(--teal-dark); text-align: left; font-weight: 700;
   }
   .modal-table td { padding: .4rem .6rem; border-bottom: 1px solid var(--cream); color: var(--ink); }
   .modal-table tr:nth-child(odd) td  { background: var(--cream); }
   .modal-table tr:nth-child(even) td { background: var(--warm-white); }
   .modal-table tr:last-child td { border-bottom: none; }

   /* ── Responsive ── */
   @media (max-width: 768px) {
     .pkg-card__body { flex-direction: column; }
     .pkg-card__img-wrap { width: 100%; height: 160px; }
     .pkg-card__price-col { width: 100%; flex-direction: row; border-left: none; border-top: 1px solid var(--cream); align-items: center; }
     .modal-info-grid { grid-template-columns: 1fr; }
   }
