:root{
  /* ── Surface ── */
  --surface:#fff;
  --surface-2:#f8f9fa;
  --surface-3:#f1f3f4;
  --surface-inv:#202124;

  /* ── Text ── */
  --ink:#202124;
  --ink-2:#5f6368;
  --ink-3:#80868b;
  --ink-inv:#fff;
  --ink-inv-2:rgba(255,255,255,.7);

  /* ── Line ── */
  --line:#dadce0;
  --line-2:#e8eaed;

  /* ── Action (high-emphasis buttons — deliberately NOT gold) ── */
  --action:#202124;
  --action-hover:#000;
  --action-ink:#fff;

  /* ── Accent (brand gold — chips, links, eyebrows ONLY) ── */
  --gold:#c9a96e;
  --gold-hover:#b8975a;
  --gold-ink:#8a6a2f;      /* AA on white */
  --gold-wash:#faf7f0;
  --gold-line:#e8dcc4;

  /* ── State ── */
  --ok:#1e8e3e;  --ok-wash:#e6f4ea;
  --warn:#b06000; --warn-wash:#fef7e0;
  --err:#d93025;  --err-wash:#fce8e6;

  /* ── Radius ── */
  --r-s:8px; --r-m:12px; --r-l:16px; --r-xl:24px; --r-pill:100px;

  /* ── Type ── */
  --f:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;

  /* ── Elevation (used sparingly) ── */
  --e1:0 1px 2px rgba(60,64,67,.1),0 1px 3px 1px rgba(60,64,67,.06);
  --e2:0 1px 3px rgba(60,64,67,.12),0 4px 8px 3px rgba(60,64,67,.08);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--f);background:var(--surface);color:var(--ink);
  font-size:14px;line-height:1.5;letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden
}
img{max-width:100%;display:block}
a{color:var(--gold-ink);text-decoration:none}
a:hover{text-decoration:underline}

/* ══ Type scale ══ */
.a-display{font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1.15;letter-spacing:-.02em;margin:0}
.a-h1{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;line-height:1.2;letter-spacing:-.015em;margin:0}
.a-h2{font-size:clamp(1.375rem,3vw,1.75rem);font-weight:400;line-height:1.25;letter-spacing:-.01em;margin:0}
.a-h3{font-size:1.125rem;font-weight:500;line-height:1.3;margin:0}
.a-h4{font-size:1rem;font-weight:500;line-height:1.35;margin:0}
.a-body{font-size:.875rem;color:var(--ink-2);line-height:1.6;margin:0}
.a-sm{font-size:.8125rem;color:var(--ink-2);line-height:1.5;margin:0}
.a-xs{font-size:.75rem;color:var(--ink-3);line-height:1.45;margin:0}
.a-label{
  display:block;font-size:.75rem;font-weight:500;color:var(--ink-2);
  margin-bottom:6px;letter-spacing:.01em
}
.a-eyebrow{
  font-size:.75rem;font-weight:500;color:var(--gold-ink);
  letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px
}

/* ══ Layout ══ */
.a-wrap{max-width:1440px;margin-inline:auto;padding-inline:40px}
.a-wrap-w{max-width:1680px;margin-inline:auto;padding-inline:40px}
.a-bleed{width:100%}
.a-wrap-n{max-width:840px;margin-inline:auto;padding-inline:24px}
.a-sec{padding-block:64px}
.a-sec-s{padding-block:40px}
@media(max-width:1024px){ .a-wrap,.a-wrap-w{padding-inline:24px} }
@media(max-width:640px){
  .a-wrap,.a-wrap-n,.a-wrap-w{padding-inline:16px}
  .a-sec{padding-block:40px}
  .a-sec-s{padding-block:28px}
}

/* ══ Card ══ */
.a-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-l);overflow:hidden
}
.a-card-i{
  background:var(--surface-inv);border:none;
  border-radius:var(--r-l);overflow:hidden;color:var(--ink-inv)
}
.a-card-h{
  display:flex;align-items:center;gap:8px;
  padding:14px 20px;border-bottom:1px solid var(--line-2);
  font-size:.8125rem;font-weight:500;color:var(--ink)
}
.a-card-h .fa,.a-card-h .fas{color:var(--gold-ink);font-size:.75rem}
.a-card-b{padding:20px}
@media(max-width:640px){.a-card-b{padding:16px}}

/* interactive card — border tint only, NO lift */
.a-card-int{transition:border-color .15s,background .15s}
.a-card-int:hover{border-color:var(--ink-3);background:var(--surface-2)}

/* ══ Buttons ══ */
.a-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:40px;padding:0 24px;border:none;border-radius:var(--r-pill);
  font-family:var(--f);font-size:.875rem;font-weight:500;letter-spacing:.01em;
  cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s
}
.a-btn:hover{text-decoration:none}
.a-btn-p{background:var(--action);color:var(--action-ink)}
.a-btn-p:hover{background:var(--action-hover)}
.a-btn-o{background:transparent;color:var(--ink);border:1px solid var(--line)}
.a-btn-o:hover{background:var(--surface-2);border-color:var(--ink-3)}
.a-btn-t{background:transparent;color:var(--ink-2);padding:0 12px}
.a-btn-t:hover{background:var(--surface-2);color:var(--ink)}
.a-btn-lg{height:48px;padding:0 32px;font-size:.9375rem}
.a-btn-sm{height:32px;padding:0 16px;font-size:.8125rem}
.a-btn-w{width:100%}
/* on dark surfaces */
.a-card-i .a-btn-o,.a-on-dark .a-btn-o{color:var(--ink-inv);border-color:rgba(255,255,255,.24)}
.a-card-i .a-btn-o:hover,.a-on-dark .a-btn-o:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}

/* ══ Fields ══ */
.a-field{
  width:100%;height:44px;padding:0 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);
  font-family:var(--f);font-size:.875rem;color:var(--ink);
  transition:border-color .15s,box-shadow .15s
}
.a-field:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.a-field::placeholder{color:var(--ink-3)}
textarea.a-field{height:auto;min-height:88px;padding:12px 14px;resize:vertical;line-height:1.5}
select.a-field{
  cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6368' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px
}
/* fields on dark */
.a-on-dark .a-field{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:var(--ink-inv)}
.a-on-dark .a-field::placeholder{color:rgba(255,255,255,.4)}
.a-on-dark .a-field:focus{border-color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.5);background:rgba(255,255,255,.14)}
.a-on-dark .a-label{color:rgba(255,255,255,.7)}

/* ══ Stepper (± controls) ══ */
.a-step{
  display:flex;align-items:center;height:44px;
  border:1px solid var(--line);border-radius:var(--r-s);
  background:var(--surface);overflow:hidden
}
.a-step-b{
  width:40px;height:100%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  color:var(--ink-2);font-size:1rem;cursor:pointer;user-select:none;
  background:transparent;border:none;transition:background .15s
}
.a-step-b:hover{background:var(--surface-3)}
.a-step-v{
  flex:1;min-width:0;height:100%;border:none;background:transparent;
  text-align:center;font-family:var(--f);font-size:.875rem;color:var(--ink)
}
.a-step-v:focus{outline:none}
.a-on-dark .a-step{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.a-on-dark .a-step-b{color:var(--gold)}
.a-on-dark .a-step-b:hover{background:rgba(255,255,255,.1)}
.a-on-dark .a-step-v{color:var(--ink-inv)}

/* ══ Chips / badges ══ */
.a-chip{
  display:inline-flex;align-items:center;gap:4px;
  height:24px;padding:0 10px;border-radius:var(--r-pill);
  font-size:.75rem;font-weight:500;letter-spacing:.01em
}
.a-chip-n{background:var(--surface-3);color:var(--ink-2)}
.a-chip-g{background:var(--gold-wash);color:var(--gold-ink)}
.a-chip-ok{background:var(--ok-wash);color:var(--ok)}
.a-chip-warn{background:var(--warn-wash);color:var(--warn)}
.a-chip-err{background:var(--err-wash);color:var(--err)}

/* ══ Divider ══ */
.a-hr{height:1px;background:var(--line-2);border:none;margin:0}

/* ══ Media ══ */
.a-media{background:var(--surface-3);overflow:hidden;position:relative}
.a-media img{width:100%;height:100%;object-fit:cover}
.a-ratio-16-9{aspect-ratio:16/9}
.a-ratio-4-3{aspect-ratio:4/3}
.a-ratio-1{aspect-ratio:1}

/* ══ Grid ══ */
.a-grid{display:grid;gap:24px}
.a-g2{grid-template-columns:repeat(2,1fr)}
.a-g3{grid-template-columns:repeat(3,1fr)}
.a-g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.a-g4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.a-g3,.a-g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.a-g2,.a-g3,.a-g4{grid-template-columns:1fr}.a-grid{gap:16px}}

/* ══ Utils ══ */
.a-stack>*+*{margin-top:16px}
.a-stack-s>*+*{margin-top:8px}
.a-row{display:flex;align-items:center;gap:12px}
.a-between{display:flex;align-items:center;justify-content:space-between;gap:12px}
.a-center{text-align:center}
.a-mt-s{margin-top:8px}.a-mt{margin-top:16px}.a-mt-l{margin-top:32px}
.a-mb-s{margin-bottom:8px}.a-mb{margin-bottom:16px}.a-mb-l{margin-bottom:32px}
.a-hide{display:none!important}
@media(max-width:1024px){.a-lg-only{display:none!important}}
@media(min-width:1025px){.a-sm-only{display:none!important}}
.a-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.a-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.a-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ══ Breadcrumb ══ */
.a-crumb{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0;font-size:.75rem}
.a-crumb a{color:var(--ink-3);text-decoration:none}
.a-crumb a:hover{color:var(--ink-2)}
.a-crumb .sep{color:var(--line)}
.a-crumb .cur{color:var(--ink-2);font-weight:500}

/* ══ Loader ══ */
#loader-wrapper{position:fixed;inset:0;z-index:99999999;background:rgba(255,255,255,.92);display:none}
#loader{
  position:absolute;top:50%;left:50%;margin:-16px 0 0 -16px;width:32px;height:32px;
  border:3px solid var(--line);border-top-color:var(--gold);border-radius:50%;
  animation:a-spin .8s linear infinite
}
#loader-logo{
  position:absolute;top:calc(50% + 32px);left:50%;transform:translateX(-50%);
  color:var(--ink-3);font-size:.75rem;letter-spacing:.04em
}
@keyframes a-spin{to{transform:rotate(360deg)}}

/* ══ Modal ══ */
#v2-modal{position:fixed;inset:0;z-index:99999999;background:rgba(32,33,36,.6);display:none;align-items:center;justify-content:center;padding:16px}
#v2-modal.is-open{display:flex}
#v2-modal-box{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--e2)}
#v2-modal-close{
  position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:50%;
  background:transparent;color:var(--ink-2);cursor:pointer;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s
}
#v2-modal-close:hover{background:var(--surface-3)}
#v2-modal-body{padding:32px;color:var(--ink)}

/* ══ Flash ══ */
.a-flash{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);
  z-index:9999998;width:100%;max-width:560px;padding-inline:16px;pointer-events:none
}
.a-flash-in{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 18px;border-radius:var(--r-s);box-shadow:var(--e2);
  pointer-events:auto;font-size:.8125rem
}
.a-flash-ok{background:var(--ok-wash);color:var(--ok)}
.a-flash-err{background:var(--err-wash);color:var(--err)}
.a-flash-n{background:var(--surface-inv);color:var(--ink-inv)}
.a-flash-x{width:24px;height:24px;flex-shrink:0;border:none;border-radius:50%;background:rgba(0,0,0,.06);cursor:pointer;font-size:.7rem;line-height:1}

/* ══ Scrollbar ══ */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}

/* ══ Prose (CMS content) ══ */
.a-prose{color:var(--ink-2);font-size:.9375rem;line-height:1.7}
.a-prose>*+*{margin-top:16px}
.a-prose h1,.a-prose h2,.a-prose h3,.a-prose h4{color:var(--ink);font-weight:500;line-height:1.3;margin:32px 0 12px}
.a-prose h1{font-size:1.75rem;font-weight:400}
.a-prose h2{font-size:1.375rem;font-weight:400}
.a-prose h3{font-size:1.125rem}
.a-prose h4{font-size:1rem}
.a-prose p{margin:0 0 16px}
.a-prose ul,.a-prose ol{margin:0 0 16px;padding-left:24px}
.a-prose li{margin-bottom:6px}
.a-prose a{color:var(--gold-ink);text-decoration:underline}
.a-prose strong,.a-prose b{color:var(--ink);font-weight:500}
.a-prose img{border-radius:var(--r-m);margin-block:24px}
.a-prose hr{border:none;border-top:1px solid var(--line-2);margin:32px 0}
.a-prose table{width:100%;border-collapse:collapse;font-size:.8125rem;display:block;overflow-x:auto}
.a-prose td,.a-prose th{border:1px solid var(--line);padding:10px 12px;vertical-align:top;text-align:left}
.a-prose th{background:var(--surface-2);font-weight:500;color:var(--ink)}

/* ══ Third-party overrides ══ */
.select2-container--default .select2-selection--single{background:transparent!important;border:none!important;height:100%!important}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:inherit!important;line-height:44px!important;padding-left:0!important}
.select2-container--default .select2-selection--single .select2-selection__arrow{display:none!important}
.select2-dropdown{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-s)!important;box-shadow:var(--e2)!important;overflow:hidden}
.select2-results__option{color:var(--ink-2)!important;padding:10px 14px!important;font-size:.875rem}
.select2-results__option--highlighted{background:var(--surface-2)!important;color:var(--ink)!important}
.select2-container{z-index:99999!important}
.calentim-container{z-index:999999!important}

div.autocomplete-suggestions,.awesomplete>ul{
  background:var(--surface)!important;border:1px solid var(--line)!important;
  border-radius:var(--r-s)!important;box-shadow:var(--e2)!important;z-index:999999!important;padding:4px!important
}
.awesomplete>ul:before{display:none!important}
div.autocomplete-suggestion,.awesomplete>ul>li{
  color:var(--ink-2)!important;padding:10px 12px!important;border-radius:var(--r-s)!important;font-size:.875rem
}
div.autocomplete-suggestion.selected,div.autocomplete-suggestion:hover,
.awesomplete>ul>li:hover,.awesomplete>ul>li[aria-selected="true"]{
  background:var(--surface-2)!important;color:var(--ink)!important
}
div.autocomplete-suggestions strong,.awesomplete mark{background:transparent!important;color:var(--gold-ink)!important;font-weight:600}

#oc-flash-message{display:none}
[v-cloak]{display:none!important}

/* ══════════════════════════════════════════════════════════════
   Package / tour card  —  used by:
     home honeymoon + generic partials, FeauturedTours,
     OrganisedToursList (default + ajax), ManualPackages listing_v2
   Lives here so every list of packages looks identical everywhere.
   ══════════════════════════════════════════════════════════════ */
.pk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.pk-grid{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:560px){.pk-grid{grid-template-columns:1fr}}

.pk{
  display:flex;flex-direction:column;height:100%;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);
  overflow:hidden;text-decoration:none;transition:border-color .15s,box-shadow .15s
}
.pk:hover{border-color:var(--ink-3);box-shadow:var(--e1);text-decoration:none}
.pk-img{aspect-ratio:3/2;background:var(--surface-3);overflow:hidden;flex-shrink:0}
.pk-img img{width:100%;height:100%;object-fit:cover;display:block}
.pk-b{padding:16px;display:flex;flex-direction:column;flex:1;gap:8px;align-items:flex-start}
.pk-t{
  margin:0;font-size:.9375rem;font-weight:500;color:var(--ink);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.pk:hover .pk-t{color:var(--gold-ink)}
.pk-f{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  width:100%;margin-top:auto;padding-top:4px
}
.pk-go{font-size:.8125rem;font-weight:500;color:var(--gold-ink);display:inline-flex;align-items:center;gap:5px;text-decoration:none}
.pk-go i{font-size:.65rem;transition:transform .15s}
.pk:hover .pk-go i{transform:translateX(3px)}
.pk-all{margin-top:32px;text-align:center}
@media(min-width:1101px){.pk-all{display:none}}

/* ══════════════════════════════════════════════════════════════
   Hotel list item  —  used by:
     ListAllHotels (default + ajax)  ·  hotel/list-for-package (booking step 2)
   ══════════════════════════════════════════════════════════════ */
.hl-list{display:flex;flex-direction:column;gap:16px}
.hl{
  display:grid;grid-template-columns:280px 1fr;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);
  overflow:hidden;transition:border-color .15s,box-shadow .15s
}
.hl:hover{border-color:var(--ink-3);box-shadow:var(--e1)}
@media(max-width:720px){.hl{grid-template-columns:1fr}}

.hl-img{display:block;position:relative;background:var(--surface-3);overflow:hidden;min-height:200px}
.hl-img img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:720px){.hl-img{aspect-ratio:16/9;min-height:0}}

.hl-b{padding:20px;display:flex;flex-direction:column;gap:8px;min-width:0}
.hl-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hl-loc{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--ink-3)}
.hl-loc i{color:var(--gold-ink);font-size:.65rem}
.hl-stars{display:inline-flex;gap:1px;flex-shrink:0}
.hl-stars i{color:var(--gold);font-size:.65rem}

.hl-t{margin:0}
.hl-t a{text-decoration:none}
.hl-t .hotel-title{font-size:1.125rem;font-weight:500;color:var(--ink);line-height:1.3}
.hl:hover .hl-t .hotel-title{color:var(--gold-ink)}

.hl-meta{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid var(--line-2)}
.hl-meta span{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--ink-3)}
.hl-meta i{color:var(--ink-3)}
.hl-f{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  margin-top:auto;padding-top:12px;flex-wrap:wrap
}
.hl-price b{display:block;font-size:.7rem;font-weight:500;color:var(--ink-3);margin-bottom:2px}
.hl-price .amt{font-size:1.375rem;font-weight:500;color:var(--ink);line-height:1}
.hl-empty{text-align:center;padding:64px 0}
.hl-empty i{font-size:2rem;color:var(--line);margin-bottom:12px}

/* ══════════════════════════════════════════════════════════════
   Page hero  —  full-bleed image + scrim + overlaid copy.
   Same treatment as the homepage, on every page.
     <section class="page-hero">
       <div class="ph-media"><img …><div class="ph-scrim"></div></div>
       <div class="ph-in"><div class="a-wrap"> crumb / eyebrow / h1 / sub </div></div>
     </section>
   Add .is-tall for the homepage-sized hero.
   ══════════════════════════════════════════════════════════════ */
.page-hero{position:relative}
.ph-media{position:relative;width:100%;height:clamp(260px,30vw,380px);overflow:hidden;background:var(--surface-3)}
.page-hero.is-tall .ph-media{height:clamp(360px,46vw,560px)}
.ph-media img{width:100%;height:100%;object-fit:cover;display:block}
.ph-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.28) 45%,rgba(0,0,0,.5) 100%)
}
.ph-in{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;z-index:2}
.ph-in .a-crumb{margin-bottom:14px;justify-content:center}
.ph-in .a-crumb a{color:rgba(255,255,255,.7)}
.ph-in .a-crumb a:hover{color:#fff}
.ph-in .a-crumb .sep{color:rgba(255,255,255,.35)}
.ph-in .a-crumb .cur{color:#fff}
.ph-eb{color:#fff;opacity:.85;margin-bottom:10px}
.ph-t{color:#fff;max-width:20ch;margin-inline:auto;text-shadow:0 1px 24px rgba(0,0,0,.3)}
.page-hero.is-tall .ph-t{max-width:18ch}
.ph-s{
  margin:16px auto 0;max-width:60ch;
  font-size:1rem;line-height:1.6;color:rgba(255,255,255,.9);text-shadow:0 1px 12px rgba(0,0,0,.3)
}
.ph-body{text-align:center}

/* Card that overlaps the hero's bottom edge (search bars, filters) */
.ph-overlap{margin-top:-56px;position:relative;z-index:3}
@media(max-width:900px){.ph-overlap{margin-top:-40px}}
@media(max-width:640px){
  .ph-media{height:220px}
  .page-hero.is-tall .ph-media{height:280px}
  .ph-s{font-size:.9375rem;margin-top:12px}
  .ph-overlap{margin-top:-32px}
}



/* ══════════════════════════════════════════════════════════════
   Gallery  —  one big image + a "view all photos" overlay button.
   The thumb strip stays in the DOM (it carries the full-size hrefs the
   lightbox reads) but is hidden; #a-lightbox does the browsing.
   NOTE: never name a thumb container .ad-images / .imgBoxInfoThumbnails /
   .packageGalleryThumbnails — app.js runs .slick() on those.
   ══════════════════════════════════════════════════════════════ */
.a-gal{margin-bottom:24px}
.a-gal-main{
  position:relative;aspect-ratio:16/9;background:var(--surface-3);
  border-radius:var(--r-l);overflow:hidden
}
.a-gal-main a,.a-gal-main img{display:block;width:100%;height:100%;object-fit:cover}
.a-gal-main img{transition:transform .5s ease}
.a-gal-main:hover img{transform:scale(1.02)}

.a-gal-cta{
  position:absolute;right:16px;bottom:16px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  height:38px;padding:0 16px;border:none;border-radius:var(--r-pill);
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  color:var(--ink);font-family:var(--f);font-size:.8125rem;font-weight:500;
  cursor:pointer;box-shadow:var(--e2);transition:background .15s,transform .15s
}
.a-gal-cta:hover{background:#fff;transform:translateY(-1px)}
.a-gal-cta i{font-size:.8rem;color:var(--ink-2)}
@media(max-width:560px){
  .a-gal-cta{right:10px;bottom:10px;height:34px;padding:0 12px;font-size:.75rem}
}

/* thumbs = lightbox data source, not shown */
.a-gal-thumbs{display:none!important}

/* ══ Lightbox (shared, vanilla) ══ */
#a-lightbox{
  position:fixed;inset:0;z-index:99999999;background:rgba(20,21,23,.96);
  display:none;align-items:center;justify-content:center;padding:64px 16px
}
#a-lightbox.is-open{display:flex}
#a-lb-img{
  max-width:min(1280px,94vw);max-height:82vh;object-fit:contain;
  border-radius:var(--r-m);animation:lbIn .2s ease
}
@keyframes lbIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
#a-lb-close,#a-lb-prev,#a-lb-next{
  position:absolute;background:rgba(255,255,255,.1);border:none;color:#fff;
  cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:background .15s;z-index:2
}
#a-lb-close:hover,#a-lb-prev:hover,#a-lb-next:hover{background:rgba(255,255,255,.22)}
#a-lb-close{top:16px;right:16px;width:44px;height:44px;font-size:1.4rem;line-height:1}
#a-lb-prev,#a-lb-next{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:1rem}
#a-lb-prev{left:20px}
#a-lb-next{right:20px}
#a-lb-counter{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.65);font-size:.8125rem;letter-spacing:.04em
}
@media(max-width:640px){
  #a-lightbox{padding:56px 8px}
  #a-lb-prev{left:6px}#a-lb-next{right:6px}
  #a-lb-prev,#a-lb-next{width:40px;height:40px}
  #a-lb-close{top:8px;right:8px;width:38px;height:38px}
}
