/* Holiday Guru Travel — Phase 1 design system.
   Colour tokens come from the logo (see hg-site.css :root). No framework. */

@font-face { font-family: "Plus Jakarta Sans"; font-weight: 600; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/plus-jakarta-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Plus Jakarta Sans"; font-weight: 700; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/plus-jakarta-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Plus Jakarta Sans"; font-weight: 800; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/plus-jakarta-sans-latin-800-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 400; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/inter-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 500; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/inter-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 600; font-style: normal; font-display: optional; src: url("/assets/fonts/hg/inter-latin-600-normal.woff2") format("woff2"); }

:root {
    --hg-font-head: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
    --hg-font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
    --hg-navy-700: #1A2A66;
    --hg-blue-50: #E8F3FC;
    --hg-orange-50: #FFF1E5;
    --hg-orange-text: #A84B00; /* orange for text on light backgrounds (>= 4.5:1) */
    --hg-yellow-50: #FFF6DB;
    --hg-muted-2: #4A5163;
    --hg-r-sm: 8px; --hg-r-md: 12px; --hg-r-lg: 16px; --hg-r-xl: 24px;
    --hg-sh-sm: 0 1px 2px rgba(10, 22, 61, .06);
    --hg-sh-md: 0 8px 24px rgba(10, 22, 61, .08);
    --hg-sh-lg: 0 18px 44px rgba(10, 22, 61, .14);
    --hg-container: 1240px;
    --hg-gutter: 24px;
    --hg-header-h: 76px;
    --hg-sticky: 128px; /* full sticky header height (header row + nav) */
}

/* ---------- Base (new pages only) ---------- */
.hg-body { margin: 0; background: #fff; color: var(--hg-text); font-family: var(--hg-font-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.hg-body *, .hg-body *::before, .hg-body *::after { box-sizing: border-box; }
.hg-body img, .hg-body svg { max-width: 100%; }
.hg-body img { height: auto; display: block; }
.hg-body a { color: var(--hg-navy); text-underline-offset: 3px; }
.hg-body h1, .hg-body h2, .hg-body h3, .hg-body h4 { font-family: var(--hg-font-head); color: var(--hg-navy); line-height: 1.2; margin: 0 0 .5em; letter-spacing: -0.01em; }
.hg-body p { margin: 0 0 1em; }
.hg-body ul, .hg-body ol { margin: 0 0 1em; padding-left: 1.25em; }
.hg-body button, .hg-body input, .hg-body select, .hg-body textarea { font: inherit; color: inherit; }
.hg-body :focus-visible { outline: 3px solid var(--hg-navy); outline-offset: 2px; box-shadow: 0 0 0 2px #fff; border-radius: 4px; }
.hg-main { display: block; }
.hg-main:focus { outline: none; }
.hg-container { width: 100%; max-width: var(--hg-container); margin: 0 auto; padding-left: var(--hg-gutter); padding-right: var(--hg-gutter); }
.hg-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hg-skip { position: absolute; left: 12px; top: -60px; z-index: 2000; padding: 10px 16px; background: var(--hg-navy); color: #fff !important; border-radius: var(--hg-r-sm); font-weight: 600; text-decoration: none; }
.hg-skip:focus { top: 12px; }

/* ---------- Type ---------- */
.hg-h1 { font-size: clamp(32px, 4.4vw, 52px); font-weight: 800; letter-spacing: -0.02em; }
.hg-h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; }
.hg-h2--light { color: #fff !important; }
.hg-h3 { font-size: 20px; font-weight: 700; }
.hg-eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--hg-orange-text); }
.hg-lead { font-size: 18px; line-height: 1.6; color: var(--hg-muted-2); max-width: 760px; }
.hg-muted { color: var(--hg-muted-2); }
.hg-link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--hg-navy); text-decoration: none; }
.hg-link-arrow:hover { text-decoration: underline; text-decoration-color: var(--hg-orange); text-decoration-thickness: 2px; }

/* ---------- Buttons ---------- */
.hg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border: 1px solid transparent; border-radius: var(--hg-r-sm); font-family: var(--hg-font-body); font-size: 15px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color .15s ease-out, border-color .15s ease-out, color .15s ease-out; }
.hg-btn .hg-i { width: 18px; height: 18px; }
.hg-btn--primary { background: var(--hg-orange); color: var(--hg-navy-dark) !important; }
.hg-btn--primary:hover { background: var(--hg-orange-hover); }
.hg-btn--navy { background: var(--hg-navy); color: #fff !important; }
.hg-btn--navy:hover { background: var(--hg-navy-700); }
.hg-btn--outline { background: #fff; border-color: var(--hg-navy); color: var(--hg-navy) !important; }
.hg-btn--outline:hover { background: var(--hg-surface); }
.hg-btn--ghost { background: transparent; color: var(--hg-navy) !important; }
.hg-btn--ghost:hover { background: var(--hg-surface); }
.hg-btn--light { background: #fff; color: var(--hg-navy) !important; }
.hg-btn--light:hover { background: var(--hg-surface); }
.hg-btn--sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.hg-btn--block { display: flex; width: 100%; }
.hg-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--hg-navy); cursor: pointer; text-decoration: none; }
.hg-iconbtn:hover { background: var(--hg-surface); }
.hg-iconbtn .hg-i { width: 22px; height: 22px; }
.hg-iconbtn--wa { color: #128C4B; }

/* ---------- Utility bar ---------- */
.hg-utility { background: var(--hg-navy); color: #D6DBE7; font-size: 13px; }
.hg-utility__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.hg-utility ul { display: flex; align-items: center; gap: 22px; margin: 0; padding: 0; list-style: none; }
.hg-utility a, .hg-login-btn { display: inline-flex; align-items: center; gap: 7px; color: #fff; text-decoration: none; }
.hg-utility a:hover { color: var(--hg-yellow); }
.hg-utility .hg-i { width: 15px; height: 15px; }
.hg-utility__tagline { margin: 0; color: #fff; font-weight: 600; letter-spacing: .04em; }
.hg-login-btn { min-height: 30px; padding: 0 16px; border: 0; border-radius: 6px; background: var(--hg-orange); color: var(--hg-navy-dark) !important; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.hg-login-btn:hover { background: var(--hg-yellow); }
.hg-soon { display: inline-flex; align-items: center; gap: 6px; color: inherit; opacity: .85; cursor: default; }
.hg-soon__tag { padding: 0 6px; border-radius: 999px; background: #FFF4D1; color: #6B4E00; font-size: 10.5px; font-weight: 600; line-height: 17px; letter-spacing: .02em; }
.hg-utility .hg-soon { color: #C4CAD9; opacity: 1; }

/* ---------- Header ---------- */
.hg-header { position: sticky; top: 0; z-index: 1020; background: #fff; box-shadow: 0 1px 0 var(--hg-border); }
.hg-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--hg-header-h); }
.hg-header__logo { flex: none; display: block; }
.hg-header__logo img { width: 122px; height: auto; }
.hg-header__menu, .hg-header__searchbtn, .hg-header__login { display: none; }
.hg-hsearch { position: relative; flex: 1 1 auto; display: flex; align-items: stretch; max-width: 760px; margin: 0 auto; border: 1px solid #C9D2E0; border-radius: var(--hg-r-md); background: #fff; box-shadow: var(--hg-sh-sm); }
.hg-hsearch__sheethead { display: none; }
.hg-hsearch__field { position: relative; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 6px 12px 6px 40px; border-right: 1px solid var(--hg-border); }
.hg-hsearch__field--dest { flex: 1.5 1 0; }
.hg-hsearch__field:not(.hg-hsearch__field--dest) { flex: 1 1 0; }
.hg-hsearch__field--extra { display: none; }
.hg-hsearch__field > .hg-i { position: absolute; left: 13px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--hg-navy); }
.hg-hsearch__field label { font-size: 11.5px; font-weight: 600; color: var(--hg-muted-2); line-height: 1.2; }
.hg-hsearch__field input, .hg-hsearch__field select { width: 100%; min-width: 0; height: 26px; padding: 0; border: 0; background: transparent; font-size: 15px; font-weight: 600; color: var(--hg-navy); }
.hg-hsearch__field input:focus, .hg-hsearch__field select:focus { outline: none; }
.hg-hsearch__field:focus-within { background: var(--hg-surface); }
.hg-hsearch__submit { flex: none; margin: 4px; min-height: 48px; padding: 0 18px; font-size: 15px; }
.hg-hsearch__field--date { min-width: 150px; }
.hg-body .hg-support__toggle { color: #fff; }
.hg-header__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.hg-hcontact { display: inline-flex; align-items: center; gap: 10px; padding: 0 6px; color: var(--hg-navy); text-decoration: none; font-weight: 600; font-size: 13.5px; white-space: nowrap; }
.hg-hcontact span { display: flex; flex-direction: column; line-height: 1.2; }
.hg-hcontact strong { font-size: 14px; font-weight: 700; }
.hg-hcontact--wa .hg-i { background: #E7F7EE !important; color: #128C4B !important; }
.hg-hcontact .hg-i { width: 20px; height: 20px; padding: 10px; box-sizing: content-box; border-radius: 50%; background: var(--hg-orange-50); color: var(--hg-orange-text); }

/* Autocomplete */
.hg-ac { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 1100; max-height: 420px; overflow-y: auto; margin: 0; padding: 8px; list-style: none; background: #fff; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); box-shadow: var(--hg-sh-lg); }
.hg-ac__group { padding: 8px 10px 4px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hg-muted-2); }
.hg-ac__opt { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--hg-r-sm); cursor: pointer; font-size: 15px; }
.hg-ac__opt small { color: var(--hg-muted-2); font-size: 13px; white-space: nowrap; }
.hg-ac__opt[aria-selected="true"], .hg-ac__opt:hover { background: var(--hg-blue-50); }
.hg-ac__opt mark { background: none; color: var(--hg-navy); font-weight: 700; }
.hg-ac__empty { padding: 12px; font-size: 14px; color: var(--hg-muted-2); }

/* ---------- Primary navigation ---------- */
.hg-nav { border-top: 1px solid var(--hg-border); background: #fff; }
.hg-nav__drawerhead, .hg-nav__drawerfoot, .hg-nav__scrim { display: none; }
.hg-nav__list { display: flex; align-items: center; gap: 4px; margin-top: 0; margin-bottom: 0; list-style: none; }
.hg-nav__item { position: static; }
.hg-nav__link, .hg-nav__trigger { display: inline-flex; align-items: center; gap: 6px; min-height: 50px; padding: 0 12px; border: 0; background: none; color: var(--hg-navy); font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; }
.hg-nav__trigger .hg-i { width: 16px; height: 16px; transition: transform .2s ease-out; }
.hg-nav__trigger[aria-expanded="true"] .hg-i { transform: rotate(180deg); }
.hg-nav__link:hover, .hg-nav__trigger:hover, .hg-nav__trigger[aria-expanded="true"] { color: var(--hg-orange-text); }
.hg-nav__item > .hg-soon { min-height: 50px; padding: 0 10px; font-size: 15px; font-weight: 600; color: #6A7287; opacity: 1; }
.hg-mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 1010; display: none; background: #fff; border-top: 1px solid var(--hg-border); box-shadow: var(--hg-sh-lg); }
.hg-nav__item--mega.is-open .hg-mega { display: block; }
.hg-mega__head { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hg-orange-text); }
.hg-mega ul { margin: 0; padding: 0; list-style: none; }
.hg-mega li { margin: 0 0 4px; }
.hg-mega .hg-soon { padding: 7px 0; font-size: 15px; color: #6A7287; opacity: 1; }

/* ---------- Breadcrumbs / section nav ---------- */
.hg-crumbs { border-bottom: 1px solid var(--hg-border); background: #fff; font-size: 14px; }
.hg-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 12px 0; list-style: none; }
.hg-crumbs li { display: inline-flex; align-items: center; color: var(--hg-muted-2); }
.hg-crumbs li + li::before { content: "/"; margin: 0 10px; color: #9AA3B8; }
.hg-crumbs a { color: var(--hg-navy); text-decoration: none; }
.hg-crumbs a:hover { text-decoration: underline; }
.hg-secnav { position: sticky; top: var(--hg-sticky); z-index: 900; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--hg-border); backdrop-filter: saturate(1.2) blur(6px); }
.hg-secnav ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.hg-secnav ul::-webkit-scrollbar { display: none; }
.hg-secnav a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 14px; border-bottom: 3px solid transparent; color: var(--hg-muted-2); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.hg-secnav a:hover, .hg-secnav a[aria-current="true"] { color: var(--hg-navy); border-bottom-color: var(--hg-orange); }

/* ---------- Sections / grids ---------- */
.hg-section { padding: 72px 0; }
.hg-section--tint { background: var(--hg-surface); }
.hg-section--tight { padding: 48px 0; }
.hg-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.hg-section__head .hg-lead { margin-bottom: 0; }
.hg-grid { display: grid; gap: 24px; }
.hg-grid--cards { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.hg-grid--dest { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.hg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hg-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hg-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; }
.hg-layout__side { position: sticky; top: calc(var(--hg-sticky) + 64px); display: grid; gap: 20px; }

/* ---------- Media placeholder ---------- */
.hg-media { width: 100%; height: auto; object-fit: cover; background: var(--hg-surface); }
.hg-ph { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; background: linear-gradient(160deg, #EEF3FA, #E1E9F5); color: #7F8FB0; overflow: hidden; }
.hg-ph__icon { width: 56px; height: 56px; }
.hg-ph__label { position: absolute; left: 10px; bottom: 8px; right: 10px; overflow: hidden; font-size: 11px; font-weight: 600; color: #5B6A8C; white-space: nowrap; text-overflow: ellipsis; }

/* ---------- Hero ---------- */
.hg-hero { position: relative; color: #fff; background: var(--hg-navy); overflow: hidden; }
.hg-hero::before { content: ""; position: absolute; inset: 0; background:
    radial-gradient(1200px 500px at 85% -10%, rgba(22, 137, 216, .35), transparent 60%),
    radial-gradient(700px 400px at 10% 110%, rgba(254, 127, 22, .22), transparent 60%); }
.hg-hero__art { position: absolute; right: -40px; bottom: -10px; width: min(640px, 55%); opacity: .14; color: #fff; }
.hg-hero__inner { position: relative; padding: 72px 0 150px; }
.hg-hero .hg-eyebrow { color: var(--hg-yellow); }
.hg-hero h1 { color: #fff; max-width: 720px; }
.hg-hero h1 span { color: var(--hg-orange); }
.hg-hero__sub { max-width: 640px; font-size: 19px; color: #D6DBE7; }
.hg-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 32px; }
.hg-hero__benefits { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 0; padding: 0; list-style: none; font-size: 15px; color: #fff; }
.hg-hero__benefits li { display: inline-flex; align-items: center; gap: 8px; }
.hg-hero__benefits .hg-i { width: 18px; height: 18px; color: var(--hg-yellow); }

/* Holiday package search widget */
.hg-searchwidget { position: relative; z-index: 5; margin-top: -96px; }
.hg-searchwidget__card { padding: 28px; background: #fff; border-radius: var(--hg-r-lg); box-shadow: var(--hg-sh-lg); border: 1px solid var(--hg-border); }
.hg-searchwidget__title { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 18px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; color: var(--hg-navy); }
.hg-searchwidget__title .hg-i { color: var(--hg-orange-text); }
.hg-searchwidget__grid { display: grid; grid-template-columns: 1.6fr 1.1fr .9fr .9fr 1.1fr auto; gap: 14px; align-items: end; }
.hg-searchwidget .hg-field { position: relative; }
.hg-searchwidget .hg-btn { min-height: 52px; white-space: nowrap; }
.hg-searchwidget__hint { margin: 12px 0 0; font-size: 13px; color: var(--hg-muted-2); }

/* ---------- Forms ---------- */
.hg-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hg-field label { font-size: 13px; font-weight: 600; color: var(--hg-navy); }
.hg-field input, .hg-field select, .hg-field textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #C9D2E0; border-radius: var(--hg-r-sm); background: #fff; font-size: 16px; color: var(--hg-text); }
.hg-field textarea { min-height: 88px; resize: vertical; }
.hg-field input:focus, .hg-field select:focus, .hg-field textarea:focus { border-color: var(--hg-navy); outline: 2px solid rgba(10, 22, 61, .15); outline-offset: 0; box-shadow: none; }
.hg-field [aria-invalid="true"] { border-color: #C62828; }
.hg-field--full { grid-column: 1 / -1; }
.hg-optional { font-weight: 400; color: var(--hg-muted-2); }
.hg-form__title { margin-bottom: 16px; font-size: 22px; }
.hg-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.hg-form--compact .hg-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hg-form__status { min-height: 0; margin: 0 0 12px; font-size: 14px; font-weight: 600; }
.hg-form__status:empty { display: none; }
.hg-form__status.is-ok { color: #1E7A4E; }
.hg-form__status.is-error { color: #B3261E; }
.hg-form__note { margin: 10px 0 0; font-size: 13px; color: var(--hg-muted-2); }
.hg-form fieldset { margin: 0; padding: 0; border: 0; display: grid; gap: 14px; }
.hg-form fieldset:disabled { opacity: .6; }

/* ---------- Cards ---------- */
.hg-dcard { display: block; overflow: hidden; border-radius: var(--hg-r-md); background: #fff; border: 1px solid var(--hg-border); text-decoration: none; color: inherit; transition: box-shadow .2s ease-out, transform .2s ease-out; }
.hg-dcard:hover { box-shadow: var(--hg-sh-md); transform: translateY(-2px); }
.hg-dcard__img { aspect-ratio: 4 / 3; }
.hg-dcard__body { display: block; padding: 16px 18px 18px; }
.hg-dcard__title { margin: 0 0 4px; font-size: 18px; }
.hg-dcard__meta { display: block; font-size: 14px; color: var(--hg-muted-2); }
.hg-dcard__cta { display: inline-flex; gap: 6px; margin-top: 12px; font-size: 14px; font-weight: 600; color: var(--hg-orange-text); }

.hg-pcard { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--hg-r-md); background: #fff; border: 1px solid var(--hg-border); transition: box-shadow .2s ease-out; }
.hg-pcard:hover { box-shadow: var(--hg-sh-md); }
.hg-pcard__media { display: block; }
.hg-pcard__img { aspect-ratio: 3 / 2; }
.hg-pcard__body { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.hg-pcard__kicker { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hg-orange-text); }
.hg-pcard__title { margin: 0 0 8px; font-size: 18px; line-height: 1.3; }
.hg-pcard__title a { color: var(--hg-navy); text-decoration: none; }
.hg-pcard__title a:hover { text-decoration: underline; text-decoration-color: var(--hg-orange); }
.hg-pcard__duration { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--hg-text); }
.hg-pcard__duration svg { width: 16px; height: 16px; color: var(--hg-muted-2); }
.hg-pcard__cities { margin: 0 0 12px; font-size: 14px; color: var(--hg-muted-2); }
.hg-pcard__flags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; }
.hg-pcard__flags li { padding: 3px 9px; border-radius: 6px; background: var(--hg-blue-50); color: #0B4F82; font-size: 12px; font-weight: 600; }
.hg-pcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--hg-border); }
.hg-pcard__price { font-size: 13px; font-weight: 600; color: var(--hg-muted-2); }

.hg-card { padding: 26px; border-radius: var(--hg-r-md); background: #fff; border: 1px solid var(--hg-border); }
.hg-card h3 { font-size: 18px; margin-bottom: 8px; }
.hg-card p:last-child { margin-bottom: 0; }
.hg-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 16px; border-radius: 12px; background: var(--hg-orange-50); color: var(--hg-orange-text); }
.hg-card__icon .hg-i { width: 24px; height: 24px; }
.hg-card--link { display: block; text-decoration: none; color: inherit; transition: box-shadow .2s ease-out; }
.hg-card--link:hover { box-shadow: var(--hg-sh-md); }

.hg-speciality { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: stretch; }
.hg-feature { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: var(--hg-r-lg); background: var(--hg-navy); color: #D6DBE7; }
.hg-feature__body { padding: 32px; }
.hg-feature__body h3 { color: #fff; font-size: 24px; }
.hg-feature__body ul { padding-left: 1.1em; }
.hg-feature .hg-media { height: 100%; }
.hg-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hg-tags li { padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--hg-border); font-size: 14px; color: var(--hg-muted-2); }
.hg-tags li .hg-soon__tag { margin-left: 6px; }

/* Stats / trust */
.hg-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border-radius: var(--hg-r-lg); background: var(--hg-border); border: 1px solid var(--hg-border); }
.hg-stat { padding: 26px 24px; background: #fff; }
.hg-stat__value { display: block; font-family: var(--hg-font-head); font-size: 30px; font-weight: 800; color: var(--hg-navy); line-height: 1.1; }
.hg-stat__label { display: block; margin-top: 6px; font-size: 14px; color: var(--hg-muted-2); }
.hg-stat__src { display: block; margin-top: 4px; font-size: 12px; color: #6A7287; }

/* Steps */
.hg-steps { counter-reset: step; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.hg-steps li { position: relative; padding: 22px; border-radius: var(--hg-r-md); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); color: #D6DBE7; font-size: 15px; }
.hg-steps li::before { counter-increment: step; content: counter(step); display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-bottom: 12px; border-radius: 50%; background: var(--hg-orange); color: var(--hg-navy-dark); font-weight: 800; }
.hg-steps strong { display: block; margin-bottom: 4px; color: #fff; font-size: 16px; }
.hg-band { background: var(--hg-navy); color: #D6DBE7; }
.hg-band h2, .hg-band h3 { color: #fff; }
.hg-band .hg-lead { color: #D6DBE7; }
.hg-band .hg-eyebrow { color: var(--hg-yellow); }

/* CTA band */
.hg-ctaband { background: var(--hg-navy); color: #D6DBE7; }
.hg-ctaband__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-top: 48px; padding-bottom: 48px; }
.hg-ctaband p { margin: 0; max-width: 640px; }
.hg-ctaband__actions { display: flex; flex-wrap: wrap; gap: 12px; flex: none; }

/* ---------- Rich content ---------- */
.hg-pagehead { padding: 48px 0 40px; background: linear-gradient(180deg, var(--hg-surface), #fff); }
.hg-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.hg-pagehead .hg-lead { margin-bottom: 20px; }
.hg-pagehead__media { overflow: hidden; border-radius: var(--hg-r-lg); box-shadow: var(--hg-sh-md); }
.hg-pagehead__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hg-summary { margin: 0 0 24px; padding: 20px 22px; border-left: 4px solid var(--hg-orange); border-radius: 0 var(--hg-r-md) var(--hg-r-md) 0; background: var(--hg-orange-50); color: var(--hg-text); font-size: 17px; }
.hg-summary strong { color: var(--hg-navy); }
.hg-prose { font-size: 16.5px; line-height: 1.7; color: var(--hg-text); }
.hg-prose h3 { margin-top: 1.4em; font-size: 20px; }
.hg-prose ul li, .hg-prose ol li { margin-bottom: .4em; }
.hg-prose a { font-weight: 600; }
.hg-block { padding: 40px 0; border-top: 1px solid var(--hg-border); scroll-margin-top: calc(var(--hg-sticky) + 64px); }
.hg-block:first-child { border-top: 0; padding-top: 8px; }
.hg-answer { padding: 40px 0; border-top: 1px solid var(--hg-border); scroll-margin-top: calc(var(--hg-sticky) + 64px); }
.hg-answer__direct { margin: 0 0 16px; padding: 16px 20px; border-radius: var(--hg-r-md); background: var(--hg-blue-50); color: var(--hg-navy); font-size: 17px; font-weight: 500; line-height: 1.6; }
.hg-facts { padding: 24px; border-radius: var(--hg-r-lg); background: #fff; border: 1px solid var(--hg-border); box-shadow: var(--hg-sh-sm); }
.hg-facts__title { margin: 0 0 14px; font-size: 16px; text-transform: uppercase; letter-spacing: .08em; color: var(--hg-orange-text) !important; }
.hg-facts dl { display: grid; gap: 12px; margin: 0; }
.hg-facts dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--hg-border); }
.hg-facts dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.hg-facts dt { font-size: 13px; font-weight: 600; color: var(--hg-muted-2); }
.hg-facts dd { margin: 0; font-size: 15px; font-weight: 600; color: var(--hg-navy); }
.hg-tip { margin: 24px 0; padding: 20px 22px; border-radius: var(--hg-r-md); background: var(--hg-yellow-50); border: 1px solid #F3DE9E; }
.hg-tip__title { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-weight: 700; color: #5C4300; }
.hg-tip__title svg { width: 20px; height: 20px; }
.hg-tip__body { color: #3E3520; }
.hg-tip__body p:last-child { margin-bottom: 0; }
.hg-table { width: 100%; border-collapse: collapse; margin: 8px 0 16px; font-size: 15px; }
.hg-table th, .hg-table td { padding: 12px 14px; border-bottom: 1px solid var(--hg-border); text-align: left; vertical-align: top; }
.hg-table th { background: var(--hg-surface); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--hg-muted-2); }
.hg-table td:first-child { font-weight: 600; color: var(--hg-navy); white-space: nowrap; }
.hg-tablewrap { overflow-x: auto; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); }
.hg-tablewrap .hg-table { margin: 0; }
.hg-places { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hg-place { padding: 20px; border-radius: var(--hg-r-md); border: 1px solid var(--hg-border); background: #fff; }
.hg-place h3 { margin: 0 0 6px; font-size: 18px; }
.hg-place p { margin: 0; font-size: 15px; color: var(--hg-muted-2); }
.hg-checks { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.hg-checks li { position: relative; padding-left: 30px; }
.hg-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #E3F4EA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E7A4E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.hg-checks--no li::before { background: #FBE9E7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3261E' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / 11px no-repeat; }
.hg-checks--info li::before { background: var(--hg-blue-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B4F82' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 8v.01M12 12v5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.hg-incl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.hg-incl > div { padding: 22px; border-radius: var(--hg-r-md); border: 1px solid var(--hg-border); background: #fff; }
.hg-incl h3 { font-size: 18px; }

/* Itinerary timeline */
.hg-timeline { position: relative; margin: 0; padding: 0; list-style: none; }
.hg-timeline::before { content: ""; position: absolute; left: 19px; top: 8px; bottom: 8px; width: 2px; background: var(--hg-border); }
.hg-timeline > li { position: relative; padding: 0 0 28px 60px; }
.hg-timeline__day { position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--hg-navy); color: #fff; font-family: var(--hg-font-head); font-weight: 800; font-size: 15px; }
.hg-timeline h3 { margin: 6px 0 8px; font-size: 18px; }
.hg-timeline p { margin: 0; color: var(--hg-muted-2); font-size: 15.5px; }

/* FAQ */
.hg-faq { display: grid; gap: 12px; }
.hg-faq__item { border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 14px 20px; cursor: pointer; list-style: none; }
.hg-faq__q::-webkit-details-marker { display: none; }
.hg-faq__q h3 { margin: 0; font-size: 17px; font-family: var(--hg-font-head); }
.hg-faq__icon { position: relative; width: 16px; height: 16px; flex: none; }
.hg-faq__icon::before, .hg-faq__icon::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--hg-navy); transition: transform .2s ease-out; }
.hg-faq__icon::after { transform: rotate(90deg); }
.hg-faq__item[open] .hg-faq__icon::after { transform: rotate(0); }
.hg-faq__a { padding: 0 20px 18px; color: var(--hg-muted-2); }
.hg-faq__a p:last-child { margin-bottom: 0; }

/* Enquiry side card */
.hg-sidecard { padding: 24px; border-radius: var(--hg-r-lg); background: #fff; border: 1px solid var(--hg-border); box-shadow: var(--hg-sh-md); }
.hg-sidecard .hg-form__grid, .hg-sidecard .hg-form--compact .hg-form__grid { grid-template-columns: 1fr 1fr; }
.hg-sidecard .hg-field:nth-child(-n+3) { grid-column: 1 / -1; }
.hg-sidecard__alt { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.hg-price-note { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--hg-r-sm); background: var(--hg-surface); font-size: 14px; color: var(--hg-muted-2); }
.hg-price-note strong { display: block; font-size: 18px; color: var(--hg-navy); }

/* Listing / filters */
.hg-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 14px; align-items: end; padding: 20px; border-radius: var(--hg-r-lg); background: var(--hg-surface); border: 1px solid var(--hg-border); margin-bottom: 24px; }
.hg-resultsbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; font-size: 15px; color: var(--hg-muted-2); }
.hg-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hg-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--hg-border); border-radius: 999px; background: #fff; color: var(--hg-navy); font-size: 14px; font-weight: 600; text-decoration: none; }
.hg-chips a:hover, .hg-chips a[aria-current="true"] { border-color: var(--hg-navy); background: var(--hg-navy); color: #fff; }
.hg-empty { padding: 40px; border-radius: var(--hg-r-lg); border: 1px dashed #B8C2D6; text-align: center; }

/* Region blocks on listing pages */
.hg-region { margin-bottom: 48px; }
.hg-region__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.hg-region__head h3 { margin: 0; font-size: 22px; }

/* Notice / dev note / dialog */
.hg-notice { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 18px; padding: 14px 16px; border-radius: var(--hg-r-md); background: var(--hg-blue-50); color: #0B3C66; font-size: 14.5px; }
.hg-notice .hg-i { width: 20px; height: 20px; margin-top: 2px; }
.hg-notice p { margin: 0; }
.hg-devnote { margin: 16px 0; padding: 14px 16px; border: 2px dashed #C77C00; border-radius: var(--hg-r-md); background: #FFF8E6; color: #5C4300; font-size: 14px; }
.hg-dialog { width: min(460px, calc(100vw - 32px)); padding: 28px; border: 0; border-radius: var(--hg-r-lg); box-shadow: var(--hg-sh-lg); color: var(--hg-text); }
.hg-dialog::backdrop { background: rgba(10, 22, 61, .55); }
.hg-dialog__close-form { position: absolute; right: 12px; top: 12px; margin: 0; }
.hg-dialog__title { font-size: 24px; margin-bottom: 16px; }
.hg-dialog__alt { display: grid; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--hg-border); }

/* Reviews placeholder / guide cards */
.hg-guide { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--hg-r-md); border: 1px solid var(--hg-border); background: #fff; text-decoration: none; color: inherit; transition: box-shadow .2s ease-out; }
.hg-guide:hover { box-shadow: var(--hg-sh-md); }
.hg-guide .hg-media { aspect-ratio: 16 / 9; }
.hg-guide__body { padding: 18px 20px 20px; }
.hg-guide__kicker { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hg-orange-text); }
.hg-guide h3 { font-size: 18px; margin-bottom: 6px; }
.hg-guide p { margin: 0; font-size: 15px; color: var(--hg-muted-2); }

/* ---------- Responsive ---------- */
@media (max-width: 1365px) {
    .hg-hcontact--wa span { display: none; }
}
@media (max-width: 1199px) {
    .hg-hcontact span { display: none; }
    .hg-hsearch__submit > span:not(.hg-sr) { display: none; }
    .hg-hsearch__submit { padding: 0 14px; }
    .hg-nav__link, .hg-nav__trigger { padding: 0 9px; font-size: 14.5px; }
    .hg-nav__item > .hg-soon { padding: 0 7px; font-size: 14.5px; }
    .hg-searchwidget__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hg-searchwidget__grid .hg-field:first-child { grid-column: 1 / 3; }
    .hg-searchwidget__grid .hg-btn { grid-column: 3 / -1; }
    .hg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hg-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
}

@media (max-width: 1023px) {
    :root { --hg-header-h: 64px; --hg-sticky: 64px; }
    
    .hg-header__inner { gap: 8px; }
    .hg-header__menu, .hg-header__searchbtn, .hg-header__login { display: inline-flex; }
    .hg-header__logo img { width: 104px; }
    .hg-header__logo { margin-right: auto; }
    .hg-hcontact { display: none; }
    /* Mobile search editor: the same form as a full-screen sheet */
    .hg-hsearch { position: fixed; inset: 0; z-index: 1400; display: none; flex-direction: column; max-width: none; margin: 0; padding: 0 16px 24px; border: 0; border-radius: 0; background: #fff; overflow-y: auto; }
    .hg-hsearch.is-open { display: flex; }
    .hg-hsearch__sheethead { display: flex; align-items: center; justify-content: space-between; min-height: 60px; margin: 0 -4px 8px 0; border-bottom: 1px solid var(--hg-border); }
    .hg-hsearch__sheettitle { font-family: var(--hg-font-head); font-weight: 800; color: var(--hg-navy); }
    .hg-hsearch__field, .hg-hsearch__field--extra { display: flex; flex: none !important; margin-top: 12px; padding: 10px 14px 10px 44px; border: 1px solid #C9D2E0; border-radius: var(--hg-r-sm); }
    .hg-hsearch__field input, .hg-hsearch__field select { height: 30px; font-size: 16px; }
    .hg-hsearch__submit { margin: 20px 0 0; min-height: 52px; font-size: 15px !important; }
    .hg-hsearch__submit > span:not(.hg-sr) { display: inline; }
    .hg-hsearch .hg-ac { position: static; margin-top: 8px; box-shadow: none; }
    /* Drawer: the same nav element, restyled (no duplicated markup) */
    .hg-nav { position: fixed; top: 0; bottom: 0; left: 0; z-index: 1300; width: min(360px, 88vw); overflow-y: auto; border: 0; box-shadow: var(--hg-sh-lg); transform: translateX(-102%); transition: transform .25s ease-out; visibility: hidden; }
    .hg-nav.is-open { transform: none; visibility: visible; }
    .hg-nav__scrim:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 1250; background: rgba(10, 22, 61, .5); }
    .hg-nav__drawerhead { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px 10px 20px; border-bottom: 1px solid var(--hg-border); }
    .hg-nav__drawertitle { font-family: var(--hg-font-head); font-weight: 800; color: var(--hg-navy); }
    .hg-nav__list { display: block; padding: 8px 0; }
    .hg-nav__item { border-bottom: 1px solid var(--hg-border); }
    .hg-nav__link, .hg-nav__trigger { display: flex; width: 100%; justify-content: space-between; min-height: 52px; padding: 0 20px; font-size: 16px; }
    .hg-nav__item > .hg-soon { display: flex; justify-content: space-between; min-height: 52px; padding: 0 20px; font-size: 16px; }
    .hg-mega { position: static; box-shadow: none; border: 0; background: var(--hg-surface); }
    .hg-mega__col { padding: 8px 0; }
    .hg-mega a:not(.hg-btn) { min-height: 44px; align-items: center; }
    .hg-nav__drawerfoot { display: block; padding: 20px; }
    .hg-nav__quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0; }
    .hg-nav__quick a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-sm); font-size: 13px; font-weight: 600; text-decoration: none; }
    .hg-nav__quick .hg-i { width: 20px; height: 20px; }
    .hg-nav__secondary { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
    .hg-nav__secondary a { display: inline-flex; min-height: 44px; align-items: center; }
    .hg-layout, .hg-pagehead__grid, .hg-speciality, .hg-feature { grid-template-columns: 1fr; }
    .hg-layout__side { position: static; }
    .hg-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hg-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hg-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hg-ctaband__inner { flex-direction: column; align-items: flex-start; }
    .hg-section { padding: 56px 0; }
}

@media (max-width: 767px) {
    :root { --hg-gutter: 16px; }
    .hg-hero__inner { padding: 48px 0 120px; }
    .hg-hero__sub { font-size: 17px; }
    .hg-searchwidget { margin-top: -88px; }
    .hg-searchwidget__card { padding: 20px; }
    .hg-searchwidget__grid { grid-template-columns: 1fr 1fr; }
    .hg-searchwidget__grid .hg-field:first-child, .hg-searchwidget__grid .hg-field:nth-child(2), .hg-searchwidget__grid .hg-btn { grid-column: 1 / -1; }
    .hg-section__head { flex-direction: column; align-items: flex-start; }
    .hg-grid--3, .hg-grid--2, .hg-grid--4, .hg-places, .hg-incl { grid-template-columns: 1fr; }
    .hg-form__grid, .hg-form--compact .hg-form__grid { grid-template-columns: 1fr; }
    .hg-sidecard .hg-form__grid { grid-template-columns: 1fr 1fr; }
    .hg-facts dl > div { grid-template-columns: 1fr; gap: 2px; }
    .hg-filters { grid-template-columns: 1fr; }
    .hg-steps { grid-template-columns: 1fr; }
    .hg-grid--dest { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .hg-dcard__body { padding: 12px 14px 14px; }
    .hg-dcard__title { font-size: 16px; }
    .hg-dcard__cta { display: none; }
    .hg-table { font-size: 14px; }
    .hg-timeline > li { padding-left: 52px; }
}

@media (prefers-reduced-motion: reduce) {
    .hg-body *, .hg-body *::before, .hg-body *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Footer newsletter on Phase 1 pages (template CSS not loaded) ---------- */
.hg-body .newsletter-area { padding: 40px 0; border-bottom: 1px solid var(--hg-border); }
.hg-body .newsletter-top .row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; align-items: center; }
.hg-body .newsletter-title { margin: 0; font-size: clamp(22px, 2.4vw, 28px); font-weight: 800; }
.hg-body .newsletter-title.text-capitalize::first-letter { text-transform: uppercase; }
.hg-body .newsletter-form { display: flex; gap: 10px; }
.hg-body .newsletter-form .form-control { flex: 1; min-width: 0; min-height: 52px; padding: 0 16px; border: 1px solid #C9D2E0; border-radius: var(--hg-r-sm); font-size: 16px; }
.hg-body .newsletter-form .th-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 22px; border: 0; border-radius: var(--hg-r-sm); background: var(--hg-navy); color: #fff; font-weight: 600; cursor: pointer; }
.hg-body .newsletter-form .th-btn img { width: 18px; height: 18px; filter: invert(1); }
.hg-body .newsletter-form .th-btn:hover { background: var(--hg-navy-700); }
.hg-body .hg-footer .widget-area { padding-top: 0; }
@media (max-width: 767px) {
    .hg-body .newsletter-top .row { grid-template-columns: 1fr; }
    .hg-body .newsletter-form { flex-direction: column; }
}

/* ================================================================== */
/* Search results / destination page (tours.php)                      */
/* ================================================================== */
.hg-dhero { position: relative; overflow: hidden; background: var(--hg-navy); color: #fff; }
.hg-dhero__bg { position: absolute; inset: 0; }
.hg-dhero__bg .hg-media { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; }
.hg-dhero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6, 14, 40, .92) 0%, rgba(6, 14, 40, .75) 55%, rgba(6, 14, 40, .45) 100%); }
.hg-dhero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 40px; align-items: end; padding-top: 48px; padding-bottom: 44px; }
.hg-body .hg-dhero h1 { color: #fff; font-size: clamp(30px, 3.6vw, 44px); margin-bottom: 14px; }
.hg-dhero__intro { max-width: 720px; margin: 0; font-size: 17px; line-height: 1.65; color: #E2E7F2; }
.hg-dhero__intro a { color: #fff !important; }
.hg-dhero__values { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.hg-dhero__values li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid rgba(255, 255, 255, .18); border-radius: var(--hg-r-md); background: rgba(255, 255, 255, .06); font-size: 14px; font-weight: 600; }
.hg-dhero__values .hg-i { flex: none; width: 20px; height: 20px; color: var(--hg-yellow); }
.hg-dhero--plain { background: var(--hg-surface); color: var(--hg-text); }
.hg-body .hg-dhero--plain h1 { color: var(--hg-navy); }
.hg-dhero--plain .hg-dhero__intro { color: var(--hg-muted-2); }
.hg-dhero--plain .hg-dhero__intro a { color: var(--hg-navy) !important; }
.hg-dhero--plain .hg-dhero__values li { border-color: var(--hg-border); background: #fff; }
.hg-dhero--plain .hg-dhero__values .hg-i { color: var(--hg-orange-text); }

.hg-mbar { display: none; }

.hg-results { padding: 32px 0 64px; background: var(--hg-surface); }
.hg-results__grid { display: grid; grid-template-columns: 272px minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.hg-results__main { min-width: 0; }
.hg-results__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.hg-results__count { margin: 0 !important; font-size: 16px; color: var(--hg-muted-2); }
.hg-results__count strong { font-family: var(--hg-font-head); font-size: 20px; color: var(--hg-navy); }
.hg-results__tools { display: flex; align-items: center; gap: 10px; }
.hg-results__filterbtn { display: none; }
.hg-results__rail { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(var(--hg-sticky) + 16px); }
.hg-results.is-loading .hg-results__main { opacity: .55; pointer-events: none; transition: opacity .15s; }

.hg-sortform { display: flex; align-items: center; gap: 8px; margin: 0; }
.hg-sortform label { font-size: 14px; font-weight: 600; color: var(--hg-muted-2); white-space: nowrap; }
.hg-sortform select { min-height: 40px; padding: 0 34px 0 12px; border: 1px solid #C9D2E0; border-radius: var(--hg-r-sm); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A163D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; font-size: 14px; font-weight: 600; color: var(--hg-navy); appearance: none; -webkit-appearance: none; cursor: pointer; }

/* Filters */
.hg-filters-panel { position: sticky; top: calc(var(--hg-sticky) + 16px); display: flex; flex-direction: column; gap: 16px; }
.hg-filterform { margin: 0; padding: 20px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-filterform__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.hg-body .hg-filterform__head h2 { margin: 0; font-size: 17px; }
.hg-sheet-close { display: none !important; }
.hg-facet { margin: 0; padding: 16px 0; border: 0; border-bottom: 1px solid var(--hg-border); min-width: 0; }
.hg-facet legend { float: left; width: 100%; margin: 0 0 10px; padding: 0; font-family: var(--hg-font-head); font-size: 14.5px; font-weight: 700; color: var(--hg-navy); }
.hg-facet ul { clear: both; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.hg-facet li { display: flex; align-items: center; gap: 10px; min-height: 34px; }
.hg-facet input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--hg-orange-hover); cursor: pointer; }
.hg-facet label { flex: 1; font-size: 14.5px; color: var(--hg-text); cursor: pointer; }
.hg-facet input:disabled + label { color: #8C94A8; cursor: default; }
.hg-count { color: var(--hg-muted-2); font-size: 13px; }
.hg-facet__note { margin: 14px 0 0 !important; font-size: 13px; line-height: 1.5; color: var(--hg-muted-2); }
.hg-filterform__actions { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.hg-filterform.is-live .hg-filterform__actions .hg-btn--primary { display: none; }
.hg-helpcard { padding: 18px 20px; border-radius: var(--hg-r-md); background: var(--hg-navy); color: #fff; }
.hg-helpcard p { margin: 0 0 8px !important; font-size: 14px; color: #D6DBE7; }
.hg-helpcard strong { display: block; color: #fff; font-family: var(--hg-font-head); font-size: 16px; }
.hg-body .hg-helpcard a { display: inline-flex; align-items: center; gap: 8px; color: var(--hg-yellow); font-weight: 700; font-size: 17px; text-decoration: none; }
.hg-helpcard .hg-i { width: 18px; height: 18px; }

/* Active filter chips */
.hg-activechips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px !important; padding: 0 !important; list-style: none; }
.hg-activechips a { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px; border: 1px solid #B9D8F2; border-radius: 999px; background: var(--hg-blue-50); color: #0B4F82 !important; font-size: 13.5px; font-weight: 600; text-decoration: none; }
.hg-activechips a:hover { border-color: #0B4F82; }
.hg-activechips a span { font-size: 17px; line-height: 1; }
.hg-body .hg-activechips .hg-activechips__clear { border-color: transparent; background: transparent; color: var(--hg-navy) !important; text-decoration: underline; }

/* Result cards */
.hg-rlist { display: flex; flex-direction: column; gap: 16px; }
.hg-rcard { display: grid; grid-template-columns: 220px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; transition: box-shadow .2s ease-out; }
.hg-rcard:hover { box-shadow: var(--hg-sh-md); }
.hg-rcard__media { position: relative; min-height: 190px; }
.hg-rcard__media > a { display: block; height: 100%; }
.hg-rcard__img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; }
.hg-rcard__badge { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 6px; background: var(--hg-navy); color: #fff; font-size: 12px; font-weight: 700; }
.hg-save { position: absolute; right: 10px; top: 10px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .95); box-shadow: var(--hg-sh-sm); cursor: pointer; color: var(--hg-navy); }
.hg-save svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.hg-save[aria-pressed="true"] { color: #D93A2B; }
.hg-save[aria-pressed="true"] svg { fill: currentColor; }
.hg-save:hover { background: #fff; }
.hg-rcard__body { padding: 18px 20px; min-width: 0; }
.hg-rcard__title { margin: 0 0 6px !important; font-size: 18px !important; line-height: 1.3; }
.hg-rcard__title a { color: var(--hg-navy); text-decoration: none; }
.hg-rcard__title a:hover { text-decoration: underline; text-decoration-color: var(--hg-orange); }
.hg-rcard__meta { margin: 0 0 12px !important; font-size: 14px; color: var(--hg-muted-2); }
.hg-rcard__meta strong { color: var(--hg-text); }
.hg-rcard__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; margin: 0 !important; padding: 0 !important; list-style: none; }
.hg-rcard__facts li { display: flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--hg-text); min-width: 0; }
.hg-rcard__facts .hg-i { flex: none; width: 16px; height: 16px; color: #0B6E4F; }
.hg-rcard__media { grid-row: span 2; }
.hg-rcard__aside { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid var(--hg-border); margin: 0 20px; padding-left: 0; padding-right: 0; }
.hg-rcard__price { margin: 0 auto 0 0 !important; line-height: 1.3; }
.hg-rcard__price span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--hg-muted-2); }
.hg-rcard__price strong { display: block; font-family: var(--hg-font-head); font-size: 19px; color: var(--hg-navy); }
.hg-rcard__price small { display: block; font-size: 12px; color: var(--hg-muted-2); }

.hg-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 24px; }
.hg-pager a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-sm); background: #fff; font-weight: 600; text-decoration: none; }
.hg-pager a[aria-current="page"] { background: var(--hg-navy); border-color: var(--hg-navy); color: #fff; }

/* Right rail */
.hg-railcard { padding: 20px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-body .hg-railcard__title { margin: 0 0 12px; font-size: 16.5px; }
.hg-railcard p { font-size: 14px; color: var(--hg-muted-2); }
.hg-railcard--navy { border: 0; background: linear-gradient(135deg, var(--hg-navy), var(--hg-navy-700)); }
.hg-body .hg-railcard--navy .hg-railcard__title { color: #fff; }
.hg-railcard--navy p { color: #D6DBE7; }
.hg-routelist { position: relative; margin: 0 0 16px !important; padding: 0 !important; list-style: none; }
.hg-routelist li { position: relative; display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 14.5px; font-weight: 600; color: var(--hg-navy); }
.hg-routelist li + li::before { content: ""; position: absolute; left: 8px; top: -8px; height: 16px; border-left: 2px dashed #B8C2D6; }
.hg-routelist .hg-i { flex: none; width: 18px; height: 18px; color: var(--hg-orange-text); }
.hg-whylist { margin: 0 !important; padding: 0 !important; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.hg-whylist li { padding-left: 14px; border-left: 3px solid var(--hg-orange); }
.hg-whylist strong { display: block; font-size: 14px; color: var(--hg-navy); }
.hg-whylist span { display: block; font-size: 13.5px; line-height: 1.5; color: var(--hg-muted-2); }
.hg-linklist { margin: 0 !important; padding: 0 !important; list-style: none; }
.hg-linklist li + li { border-top: 1px solid var(--hg-border); }
.hg-linklist a { display: flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 600; text-decoration: none; }
.hg-linklist a::after { content: "›"; margin-left: auto; padding-left: 8px; color: var(--hg-orange-text); font-size: 20px; }
.hg-linklist a:hover { text-decoration: underline; }
.hg-narrow { max-width: 920px; }

/* Mobile sticky contact bar */
.hg-bottombar { display: none; }

@media (max-width: 1365px) {
    .hg-results__grid { grid-template-columns: 256px minmax(0, 1fr) 272px; gap: 20px; }
}
@media (max-width: 1199px) {
    .hg-results__grid { grid-template-columns: 256px minmax(0, 1fr); }
    .hg-results__rail { grid-column: 1 / -1; position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
    .hg-dhero__inner { grid-template-columns: 1fr; gap: 24px; padding-top: 32px; padding-bottom: 32px; }
    .hg-mbar { display: block; position: sticky; top: var(--hg-sticky); z-index: 1010; padding: 10px 0; background: #fff; border-bottom: 1px solid var(--hg-border); }
    .hg-mbar__search { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 6px 14px; border: 1px solid #C9D2E0; border-radius: var(--hg-r-md); background: #fff; text-align: left; cursor: pointer; }
    .hg-mbar__search > .hg-i { flex: none; width: 20px; height: 20px; color: var(--hg-navy); }
    .hg-mbar__search > span:not(.hg-mbar__edit) { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
    .hg-mbar__search strong { color: var(--hg-navy); font-size: 15px; }
    .hg-mbar__search small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; color: var(--hg-muted-2); }
    .hg-mbar__edit { font-size: 14px; font-weight: 700; color: var(--hg-orange-text); }
    .hg-results { padding-top: 20px; }
    .hg-results__grid { grid-template-columns: minmax(0, 1fr); }
    .hg-results__filterbtn { display: inline-flex; }
    .hg-results__bar { flex-wrap: wrap; }
    /* Filters become a bottom sheet */
    .hg-filters-panel { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 1400; max-height: 88vh; display: block; overflow-y: auto; border-radius: 20px 20px 0 0; background: #fff; box-shadow: var(--hg-sh-lg); transform: translateY(105%); visibility: hidden; transition: transform .25s ease-out, visibility 0s linear .25s; }
    .hg-filters-panel.is-open { transform: none; visibility: visible; transition: transform .25s ease-out; }
    .hg-filterform { border: 0; border-radius: 0; padding: 0 20px 20px; }
    .hg-filterform__head { position: sticky; top: 0; z-index: 1; min-height: 60px; margin: 0 -20px; padding: 0 12px 0 20px; background: #fff; border-bottom: 1px solid var(--hg-border); }
    .hg-sheet-close { display: inline-flex !important; }
    .hg-filterform__actions { position: sticky; bottom: 0; flex-direction: row; margin: 16px -20px -20px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--hg-border); }
    .hg-filterform__actions .hg-btn { flex: 1; }
    .hg-filterform.is-live .hg-filterform__actions .hg-btn--primary { display: inline-flex; }
    .hg-filters-panel .hg-helpcard { display: none; }
    .hg-sheet-scrim { position: fixed; inset: 0; z-index: 1390; background: rgba(10, 22, 61, .5); }
    .hg-bottombar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1025; display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 8px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--hg-border); box-shadow: 0 -4px 16px rgba(10, 22, 61, .08); }
    .hg-bottombar a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; border: 1px solid var(--hg-navy); border-radius: var(--hg-r-sm); font-size: 15px; font-weight: 700; text-decoration: none; color: var(--hg-navy); }
    .hg-bottombar a .hg-i { width: 18px; height: 18px; }
    .hg-bottombar a.is-primary { border-color: var(--hg-orange); background: var(--hg-orange); color: var(--hg-navy-dark); }
    .hg-body:has(.hg-bottombar) { padding-bottom: 72px; }
    .hg-body:has(.hg-bottombar) .hg-support { bottom: calc(80px + var(--hg-consent-h)); }
}
@media (max-width: 767px) {
    .hg-dhero__values { grid-template-columns: 1fr 1fr; gap: 8px; }
    .hg-dhero__values li { padding: 10px; font-size: 13px; }
    .hg-dhero__intro { font-size: 16px; }
    .hg-results__rail { grid-template-columns: 1fr; }
    .hg-sortform label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .hg-results__count { width: 100%; }
    .hg-results__tools { width: 100%; }
    .hg-results__tools > * { flex: 1; }
    .hg-sortform select { width: 100%; }
    .hg-rcard { grid-template-columns: 1fr; }
    .hg-rcard__media { min-height: 0; aspect-ratio: 16 / 9; grid-row: auto; }
    .hg-rcard__body { padding: 16px 16px 8px; }
    .hg-rcard__facts { grid-template-columns: 1fr; }
    .hg-rcard__aside { grid-column: auto; margin: 0 16px; padding: 12px 0 16px; }
    .hg-rcard__aside .hg-btn { flex: 1 1 40%; }
    .hg-rcard__price { flex-basis: 100%; }
}

/* ================================================================== */
/* Package detail (include/templates/package-detail.php)              */
/* ================================================================== */
.hg-pkghead { padding: 28px 0 32px; background: linear-gradient(180deg, var(--hg-surface), #fff); }
.hg-pkghead__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.hg-pkghead__media { overflow: hidden; border-radius: var(--hg-r-lg); box-shadow: var(--hg-sh-md); }
.hg-pkghead__img { width: 100%; aspect-ratio: 19 / 12; object-fit: cover; }
.hg-pkghead__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px !important; }
.hg-pkghead__badges span { padding: 4px 10px; border-radius: 6px; background: var(--hg-orange-50); color: #9A4505; font-size: 12.5px; font-weight: 700; }
.hg-body .hg-pkghead__title { margin: 0 0 8px; font-size: clamp(26px, 3vw, 36px); font-weight: 800; }
.hg-pkghead__meta { margin: 0 0 16px !important; font-size: 16px; color: var(--hg-muted-2); }
.hg-pkghead__meta strong { color: var(--hg-text); }
.hg-pkghead__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 0 0 16px !important; padding: 0 !important; list-style: none; }
.hg-pkghead__facts li { display: flex; align-items: center; gap: 9px; font-size: 14.5px; }
.hg-pkghead__facts .hg-i { flex: none; width: 20px; height: 20px; color: var(--hg-navy); }
.hg-pkghead__desc { color: var(--hg-muted-2); }
.hg-pkghead__ctx { padding: 10px 14px; border-radius: var(--hg-r-sm); background: var(--hg-blue-50); font-size: 14px; color: #0B4F82; }
.hg-pkghead__ctx span { font-weight: 700; }
.hg-pkghead__ctx a { margin-left: 6px; font-weight: 700; }
.hg-pkghead__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hg-pkghead__actions .hg-btn--ghost { padding: 0 10px; }
.hg-body .hg-save--inline { position: static; width: auto; height: auto; min-height: 40px; padding: 0 16px; border: 1px solid var(--hg-navy); border-radius: var(--hg-r-sm); background: #fff; box-shadow: none; color: var(--hg-navy); }
.hg-body .hg-save--inline[aria-pressed="true"] { color: #B3261E; border-color: #B3261E; }
.hg-save--inline .hg-i { width: 18px; height: 18px; }
.hg-save--inline[aria-pressed="true"] .hg-i { fill: currentColor; }

.hg-pkg { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; padding-top: 32px; padding-bottom: 56px; }
.hg-pkg__main { min-width: 0; }
.hg-pkg__side { display: flex; flex-direction: column; gap: 16px; scroll-margin-top: calc(var(--hg-sticky) + 60px); }
.hg-pkgsec { padding: 0 0 40px; scroll-margin-top: calc(var(--hg-sticky) + 60px); }
.hg-pkgsec + .hg-pkgsec { padding-top: 40px; border-top: 1px solid var(--hg-border); }
.hg-hl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; margin: 0 !important; padding: 0 !important; list-style: none; }
.hg-hl li { display: flex; align-items: flex-start; gap: 10px; font-size: 15.5px; }
.hg-hl .hg-i { flex: none; width: 20px; height: 20px; margin-top: 2px; color: var(--hg-orange-text); }
.hg-qf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: var(--hg-border); }
.hg-qf > div { padding: 14px 18px; background: #fff; }
.hg-qf dt { font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--hg-muted-2); }
.hg-qf dd { margin: 2px 0 0; font-weight: 600; color: var(--hg-text); }
.hg-timeline--pkg > li { padding-bottom: 0; margin-bottom: 16px; }
.hg-timeline--pkg > li > h3, .hg-timeline--pkg > li > p { margin-left: 0; }
.hg-timeline--pkg > li { padding: 18px 20px 18px 72px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-timeline--pkg::before { left: 19px; }
.hg-timeline--pkg .hg-timeline__day { left: 16px; top: 18px; background: var(--hg-orange); color: var(--hg-navy-dark); }
.hg-timeline--pkg h3 { margin-top: 4px !important; }
.hg-timeline__stay { display: flex; align-items: center; gap: 7px; margin-top: 10px !important; font-size: 14px !important; font-weight: 600; color: var(--hg-navy) !important; }
.hg-timeline__stay .hg-i { width: 17px; height: 17px; }
.hg-routebox { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding: 16px 18px; border-radius: var(--hg-r-md); background: var(--hg-surface); }
.hg-routebox p { margin: 0 !important; }
.hg-incl h3 { display: flex; align-items: center; gap: 8px; }
.hg-incl h3 .hg-i { width: 22px; height: 22px; }
.hg-incl > div:first-child h3 .hg-i { color: #0B6E4F; }
.hg-incl > div:last-child h3 .hg-i { color: #C0392B; }
.hg-travelnote { display: flex; gap: 12px; align-items: flex-start; margin-top: 20px; padding: 16px 18px; border: 1px solid #F5C58F; border-radius: var(--hg-r-md); background: var(--hg-orange-50); }
.hg-travelnote .hg-i { flex: none; width: 22px; height: 22px; color: #9A4505; }
.hg-travelnote p { margin: 0 !important; font-size: 15px; }
.hg-important { margin-top: 16px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-important summary { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px; font-weight: 700; color: var(--hg-navy); cursor: pointer; }
.hg-important summary .hg-i { width: 20px; height: 20px; }
.hg-important ul { margin: 0 !important; padding: 0 18px 18px 38px !important; font-size: 14.5px; color: var(--hg-muted-2); }
.hg-important li + li { margin-top: 6px; }
.hg-pricebox { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; padding: 22px 24px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-pricebox p { margin: 0 !important; }
.hg-pricebox__label, .hg-bookcard__label { font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--hg-muted-2); }
.hg-pricebox__value { font-family: var(--hg-font-head); font-size: 26px; font-weight: 800; color: var(--hg-navy); }
.hg-custom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 24px; border-radius: var(--hg-r-md); background: var(--hg-blue-50); }
.hg-custom p { margin: 0 !important; color: var(--hg-muted-2); }

.hg-bookcard { padding: 22px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-lg); background: #fff; box-shadow: var(--hg-sh-md); }
.hg-bookcard p { margin: 0; }
.hg-bookcard__price { font-family: var(--hg-font-head); font-size: 28px; font-weight: 800; line-height: 1.2; color: var(--hg-navy); }
.hg-bookcard__sub { margin-top: 2px !important; font-size: 13.5px; color: var(--hg-muted-2); }
.hg-bookcard__excl { display: flex; align-items: center; gap: 8px; margin: 12px 0 0 !important; padding: 8px 12px; border-radius: var(--hg-r-sm); background: var(--hg-surface); font-size: 13.5px; font-weight: 600; }
.hg-bookcard__excl .hg-i { flex: none; width: 18px; height: 18px; color: #9A4505; }
.hg-bookcard__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.hg-bookcard__actions .hg-btn { padding: 0 12px; }
.hg-btn[disabled] { background: #E4E8EF !important; border-color: #E4E8EF !important; color: #5B6478 !important; cursor: not-allowed; }
.hg-bookcard__note { margin: 8px 0 16px !important; font-size: 12.5px; line-height: 1.5; color: var(--hg-muted-2); }
.hg-bookcard .hg-form { padding: 16px 0 0; border-top: 1px solid var(--hg-border); }
.hg-bookcard .hg-form__title { font-size: 18px; }
.hg-btn--wa { margin-top: 12px; border-color: #1B8F4A; background: #fff; color: #146C38 !important; }
.hg-btn--wa:hover { background: #EAF7EF; }
.hg-trustlist { display: flex; flex-direction: column; gap: 12px; margin: 0 !important; padding: 18px 20px !important; list-style: none; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-trustlist li { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; color: var(--hg-muted-2); }
.hg-trustlist strong { display: block; font-size: 14px; color: var(--hg-navy); }
.hg-trustlist .hg-i { flex: none; width: 22px; height: 22px; margin-top: 2px; color: var(--hg-navy); }

@media (max-width: 1199px) {
    .hg-pkg { grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; }
}
@media (max-width: 1023px) {
    .hg-pkghead__grid, .hg-pkg { grid-template-columns: 1fr; }
    .hg-pkg__side { position: static; }
}
@media (max-width: 767px) {
    .hg-pkghead { padding-top: 16px; }
    .hg-pkghead__grid { gap: 20px; }
    .hg-pkghead__facts, .hg-hl, .hg-qf { grid-template-columns: 1fr; }
    .hg-timeline--pkg > li { padding: 16px 16px 16px 60px; }
    .hg-timeline--pkg .hg-timeline__day { left: 12px; width: 36px; height: 36px; }
    .hg-pkgsec { padding-bottom: 32px; }
    .hg-pkgsec + .hg-pkgsec { padding-top: 32px; }
    .hg-bookcard__actions { grid-template-columns: 1fr; }
}

/* Section tabs with a page CTA (package page) */
.hg-secnav__inner { display: flex; align-items: center; gap: 16px; }
.hg-secnav__inner ul { flex: 1; min-width: 0; }
.hg-secnav__cta { flex: none; }
.hg-secnav a.hg-secnav__cta { min-height: 40px; padding: 0 16px; border-bottom: 0; color: var(--hg-navy-dark); }
@media (max-width: 1023px) { .hg-secnav a.hg-secnav__cta { display: none; } }
.hg-bookcard .hg-form__grid { grid-template-columns: 1fr 1fr !important; }
.hg-bookcard .hg-field:nth-child(-n+3), .hg-bookcard .hg-field--full { grid-column: 1 / -1; }

/* Customized holidays form */
.hg-form--card { padding: 28px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-lg); background: #fff; box-shadow: var(--hg-sh-sm); }
.hg-fieldset { margin: 0 0 20px; padding: 0; border: 0; min-width: 0; }
.hg-fieldset legend { margin-bottom: 12px; padding: 0; font-family: var(--hg-font-head); font-size: 16px; font-weight: 700; color: var(--hg-navy); }
.hg-steps--list { display: flex !important; flex-direction: column; gap: 14px; margin: 0; padding: 0 0 0 4px; list-style: none; counter-reset: step; }
.hg-steps--list li { position: relative; padding-left: 40px; font-size: 14.5px; }
.hg-steps--list li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--hg-orange-50); color: #9A4505; font-weight: 800; text-align: center; line-height: 28px; }
.hg-steps--list strong { display: block; color: var(--hg-navy); }
.hg-steps--list span { color: var(--hg-muted-2); }
@media (max-width: 767px) { .hg-form--card { padding: 20px; } }
/* Footer/newsletter markup uses the legacy .container class on Phase 1 pages */
.hg-body .container { width: 100%; max-width: var(--hg-container); margin: 0 auto; padding-left: var(--hg-gutter); padding-right: var(--hg-gutter); }
.hg-body .hg-fnav__list, .hg-body .hg-footer__quick { padding-left: 0; }
.hg-body .hg-footer__credit a { color: #fff; }

/* Contact */
.hg-contactcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 !important; padding: 0 !important; list-style: none; }
.hg-contactcards li { display: flex; gap: 14px; padding: 20px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; }
.hg-contactcards li > .hg-i { flex: none; width: 40px; height: 40px; padding: 9px; border-radius: 10px; background: var(--hg-orange-50); color: #9A4505; }
.hg-body .hg-contactcards h2 { margin: 0 0 4px; font-size: 15px; }
.hg-contactcards a { font-weight: 600; }
.hg-contactcards address { margin: 0 0 6px; font-style: normal; font-size: 14.5px; color: var(--hg-muted-2); }
.hg-contactgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.hg-contactmap iframe { display: block; width: 100%; height: 520px; border-radius: var(--hg-r-lg); box-shadow: var(--hg-sh-md); background: var(--hg-surface); }
.hg-contactmap p { margin-top: 12px; font-size: 14px; }
@media (max-width: 1199px) { .hg-contactcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023px) { .hg-contactgrid { grid-template-columns: 1fr; } .hg-contactmap iframe { height: 380px; } }
@media (max-width: 767px) { .hg-contactcards { grid-template-columns: 1fr; } }
.hg-qf--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) { .hg-qf--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .hg-qf--3 { grid-template-columns: 1fr; } }

/* Travel guide article */
.hg-toc { margin: 8px 0 8px; padding: 18px 22px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: var(--hg-surface); }
.hg-toc p { margin: 0 0 8px !important; font-weight: 700; color: var(--hg-navy); }
.hg-toc ol { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0 !important; padding-left: 1.2em !important; }
.hg-toc a { font-weight: 600; }
.hg-guidepage .hg-answer { scroll-margin-top: calc(var(--hg-sticky) + 16px); }
.hg-daylist { margin: 0 0 16px !important; padding-left: 0 !important; list-style: none; display: grid; gap: 8px; }
.hg-daylist li { padding: 12px 16px; border-left: 3px solid var(--hg-orange); background: var(--hg-surface); border-radius: 0 var(--hg-r-sm) var(--hg-r-sm) 0; }
.hg-feature .hg-eyebrow, .hg-dhero .hg-eyebrow, .hg-ctaband .hg-eyebrow { color: var(--hg-yellow); }

/* Full-screen sheets live inside the sticky header's stacking context:
   hide the floating layers while one is open. */
html.hg-sheet-open .hg-bottombar, html.hg-sheet-open .hg-support { display: none !important; }
/* Header: keep labels on one line with either the brand or fallback font; wider suggestions */
.hg-nav__link, .hg-nav__trigger, .hg-nav__item > .hg-soon { white-space: nowrap; }
.hg-hsearch .hg-ac { min-width: 360px; }
@media (max-width: 1023px) { .hg-hsearch .hg-ac { min-width: 0; } }
@media (min-width: 1024px) {
    .hg-nav__list { gap: 0; }
    .hg-nav__link, .hg-nav__trigger { padding: 0 10px; }
    .hg-nav__item > .hg-soon { padding: 0 8px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
    .hg-nav__item:has(> .hg-soon) { display: none; } /* "Soon" items return from 1280px; all remain in the mobile drawer */
}

/* ---------- Header alignment (owner review 2026-09-30) ---------- */
/* The nav list is a <ul>; the generic ".hg-body ul" margin reset was cancelling
   the container's auto margins, pinning the menu to the left edge. */
.hg-body .hg-nav__list { margin: 0 auto; } /* no generic list margins: they leaked a 16px gap under the header */
@media (min-width: 1024px) { .hg-body .hg-nav__list { padding-left: var(--hg-gutter); padding-right: var(--hg-gutter); } }
@media (min-width: 1024px) {
    /* first menu label lines up with the logo and the breadcrumb */
    .hg-nav__list > .hg-nav__item:first-child > .hg-nav__trigger { padding-left: 0; }
}
/* Call and WhatsApp shown the same way: both labelled from 1280px, both icons below */
@media (min-width: 1200px) and (max-width: 1279px) { .hg-hcontact span { display: none; } }
@media (min-width: 1280px) {
    .hg-header__inner { gap: 20px; }
    .hg-hsearch__field { padding-right: 10px; }
    .hg-hsearch__field:not(.hg-hsearch__field--dest) { flex: 0 1 150px; }
    .hg-hsearch__field.hg-hsearch__field--date { flex: 0 1 184px; } /* room for dd/mm/yyyy + picker icon */
    .hg-hcontact span { display: flex; }
}
.hg-login-btn { min-height: 28px; padding-top: 0; padding-bottom: 0; }

/* ---------- Mega menus: destination columns + feature card ---------- */
.hg-mega { border-top: 1px solid var(--hg-border); }
.hg-mega__grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; max-width: var(--hg-container); margin: 0 auto; padding: 28px var(--hg-gutter) 32px; }
.hg-mega__cols { columns: 3 200px; column-gap: 40px; }
.hg-mega__col { break-inside: avoid; padding-bottom: 20px; }
.hg-mega__head { padding-bottom: 8px; border-bottom: 1px solid var(--hg-border); }
.hg-mega li { margin: 0; }
.hg-mega a:not(.hg-btn) { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 -10px; padding: 8px 10px; border-radius: var(--hg-r-sm); color: var(--hg-text); font-size: 15px; font-weight: 500; text-decoration: none; transition: background-color .15s ease-out, color .15s ease-out; }
.hg-mega a:not(.hg-btn):hover, .hg-mega a:not(.hg-btn):focus-visible { background: var(--hg-surface); color: var(--hg-navy); }
.hg-mega a small { display: block; margin-top: 1px; font-size: 12.5px; font-weight: 400; color: var(--hg-muted-2); }
.hg-mega__count { flex: none; padding: 2px 8px; border-radius: 999px; background: var(--hg-blue-50); color: #0B4F82; font-size: 12px; font-weight: 600; line-height: 18px; white-space: nowrap; }
.hg-mega .hg-soon { display: flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 15px; color: #6A7287; }
.hg-mega__feature { align-self: start; padding: 24px; border-radius: var(--hg-r-lg); background: linear-gradient(145deg, var(--hg-navy), var(--hg-navy-700)); color: #D6DBE7; }
.hg-mega__ftitle { margin: 0 0 8px !important; font-family: var(--hg-font-head); font-size: 18px; font-weight: 800; color: #fff; }
.hg-mega__feature p { font-size: 14px; line-height: 1.55; }
.hg-mega__factions { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.hg-mega__factions .hg-btn { width: 100%; }
@media (max-width: 1199px) and (min-width: 1024px) { .hg-mega__grid { grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; } .hg-mega__cols { column-gap: 28px; } }
@media (max-width: 1023px) {
    .hg-mega__grid { display: block; padding: 8px 20px 16px; }
    .hg-mega__cols { columns: auto; }
    .hg-mega__col { padding-bottom: 12px; }
    .hg-mega__head { border-bottom: 0; padding-bottom: 0; }
    .hg-mega a:not(.hg-btn) { margin: 0; padding: 0 4px; min-height: 44px; }
    .hg-mega__feature { margin-top: 8px; padding: 18px; }
}

/* ---------- Header search: single pill (owner reference, 2026-09-30) ---------- */
@media (min-width: 1024px) {
    .hg-hsearch { max-width: 640px; min-height: 52px; align-items: center; border: 1px solid #C9D2E0; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(10, 22, 61, .06); }
    .hg-hsearch:focus-within { border-color: var(--hg-navy); box-shadow: 0 0 0 3px rgba(10, 22, 61, .10); }
    .hg-hsearch__field.hg-hsearch__field--dest { flex: 1 1 auto; align-self: stretch; padding: 0 8px 0 50px; border-right: 0; border-radius: 999px 0 0 999px; background: transparent !important; }
    .hg-hsearch__field--dest > .hg-i { left: 20px; width: 20px; height: 20px; color: var(--hg-muted-2); }
    .hg-hsearch__field--dest label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .hg-hsearch__field--dest input { height: 50px; font-size: 15.5px; font-weight: 500; color: var(--hg-text); }
    .hg-hsearch__field--dest input::placeholder { color: #6A7287; font-weight: 400; opacity: 1; }
    .hg-hsearch__submit { flex: none; width: 42px; min-height: 42px; height: 42px; margin: 0 5px 0 0; padding: 0; border-radius: 50%; }
    .hg-hsearch__submit > span:not(.hg-sr) { display: none; }
    .hg-hsearch__submit .hg-i { width: 19px; height: 19px; }
    .hg-hsearch .hg-ac { left: 16px; right: auto; top: calc(100% + 6px); width: min(520px, 100%); min-width: 360px; }
}
@media (min-width: 1024px) {
    .hg-mega__cols--4 { columns: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; align-items: start; }
}
@media (min-width: 1024px) and (max-width: 1199px) { .hg-mega__cols--4 { column-gap: 20px; } }
/* Mega links: name on one line, tour count as a quiet second line */
@media (min-width: 1024px) {
    .hg-mega a:not(.hg-btn) { flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; padding: 7px 10px; }
    .hg-mega a:not(.hg-btn) > span:first-child { font-weight: 600; color: var(--hg-navy); line-height: 1.3; }
    .hg-mega__count { padding: 0; background: none; color: var(--hg-muted-2); font-size: 12.5px; font-weight: 500; line-height: 1.3; }
    .hg-mega a:not(.hg-btn):hover > span:first-child { color: var(--hg-orange-text); }
    .hg-mega__cols--4 .hg-mega__col { padding-bottom: 0; }
}
.hg-hsearch:focus-within { box-shadow: 0 0 0 3px rgba(254, 127, 22, .18); border-color: var(--hg-orange); }

/* Menu tabs: one weight for all seven tabs */
@media (min-width: 1024px) { .hg-nav__link, .hg-nav__trigger { font-weight: 600; } }
/* Image placeholders: blank until photos are added, with a soft hover */
.hg-ph .hg-ph__icon { opacity: .35; transition: opacity .2s ease-out, transform .3s ease-out; }
.hg-ph { transition: filter .2s ease-out; }
a:hover .hg-ph, .hg-pcard:hover .hg-ph, .hg-rcard:hover .hg-ph, .hg-dcard:hover .hg-ph { filter: brightness(.97); }
a:hover .hg-ph .hg-ph__icon, .hg-pcard:hover .hg-ph__icon, .hg-rcard:hover .hg-ph__icon, .hg-dcard:hover .hg-ph__icon { opacity: .5; transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .hg-ph, .hg-ph .hg-ph__icon { transition: none; } }

/* Keep the footer's last row clear of the fixed "Need help?" button (bottom-right) */
@media (min-width: 576px) { .hg-body .hg-footer__bottom .container { padding-right: calc(var(--hg-gutter) + 190px); } }
@media (max-width: 575px) { .hg-body .hg-footer__bottom { padding-bottom: 84px; } }
.hg-sitemap__list { margin: 0 0 24px !important; padding-left: 1.1em !important; font-size: 14.5px; }
.hg-sitemap__list li { margin-bottom: 6px; }
.hg-policy h2 { margin-top: 28px; }

/* Leadership / team cards (photos blank until supplied) */
.hg-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.hg-people--lead { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hg-person { overflow: hidden; border: 1px solid var(--hg-border); border-radius: var(--hg-r-lg); background: #fff; }
.hg-person__photo { aspect-ratio: 5 / 6; }
.hg-person__body { padding: 16px 18px 20px; }
.hg-body .hg-person__name { margin: 0 0 2px; font-size: 18px; }
.hg-person__role { margin: 0 !important; font-size: 14px; font-weight: 600; color: var(--hg-orange-text); }
.hg-person__bio { margin: 10px 0 0 !important; font-size: 14.5px; color: var(--hg-muted-2); }
@media (max-width: 1023px) { .hg-people, .hg-people--lead { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { .hg-people, .hg-people--lead { grid-template-columns: 1fr; } }
/* Steps on a light background */
.hg-steps--light li { background: #fff; border-color: var(--hg-border); color: var(--hg-muted-2); }
.hg-steps--light strong { color: var(--hg-navy); }

/* ---------- Search results: premium two-column layout (owner review 2026-09-30) ---------- */
/* Results get the width; rail cards (map, why, customize, frequently searched) sit in a row below. */
@media (min-width: 1024px) {
    .hg-results__grid { grid-template-columns: 272px minmax(0, 1fr); column-gap: 28px; row-gap: 32px; }
    .hg-results__rail { grid-column: 2; position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; align-items: start; }
    /* Sticky filters never slide under the header: they scroll inside their own column */
    .hg-filters-panel { position: sticky; top: calc(var(--hg-sticky) + 16px); max-height: calc(100vh - var(--hg-sticky) - 32px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
    .hg-filters-panel .hg-filterform__actions { position: sticky; bottom: -1px; margin: 16px -20px -20px; padding: 12px 20px 16px; background: #fff; border-top: 1px solid var(--hg-border); }
}
@media (min-width: 1280px) {
    /* Wide cards: photo | details | price & actions */
    .hg-rcard { grid-template-columns: 260px minmax(0, 1fr) 210px; }
    .hg-rcard__media { grid-row: auto; min-height: 210px; }
    .hg-rcard__body { padding: 20px 22px; }
    .hg-rcard__aside { grid-column: auto; flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: center; gap: 10px; margin: 0; padding: 20px; border-top: 0; border-left: 1px solid var(--hg-border); }
    .hg-rcard__price { margin: 0 0 6px !important; }
    .hg-rcard__aside .hg-btn { width: 100%; }
}

/* ---------- Package itinerary: day badges on a connecting line, cards aligned ---------- */
.hg-body .hg-timeline--pkg { position: relative; padding-left: 56px !important; }
.hg-timeline--pkg::before { left: 19px; top: 24px; bottom: 24px; width: 2px; background: repeating-linear-gradient(to bottom, #F5B77A 0 6px, transparent 6px 12px); }
.hg-timeline--pkg > li { margin: 0 0 14px; padding: 18px 22px; border: 1px solid var(--hg-border); border-radius: var(--hg-r-md); background: #fff; box-shadow: var(--hg-sh-sm); transition: box-shadow .2s ease-out; }
.hg-timeline--pkg > li:hover { box-shadow: var(--hg-sh-md); }
.hg-timeline--pkg .hg-timeline__day { left: -56px; top: 16px; width: 40px; height: 40px; box-shadow: 0 0 0 4px #fff; }
.hg-timeline--pkg > li > p:not(.hg-timeline__stay) { line-height: 1.7; }
@media (max-width: 767px) {
    .hg-body .hg-timeline--pkg { padding-left: 44px !important; }
    .hg-timeline--pkg::before { left: 15px; }
    .hg-timeline--pkg > li { padding: 16px; }
    .hg-timeline--pkg .hg-timeline__day { left: -44px; width: 32px; height: 32px; font-size: 14px; }
}

/* Footer copyright line: copyright left, legal links right (owner reference 2026-09-30) */
.hg-body .hg-footer__bottom .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; }
.hg-footer__copyline { margin: 0 !important; font-size: 14px; line-height: 1.6; color: #C4CAD9; }
.hg-footer__cin { margin-left: 12px; padding-left: 12px; border-left: 1px solid rgba(255, 255, 255, .25); color: #AEB6C9; }
.hg-footer__bottomlinks { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; margin: 0 !important; padding: 0 !important; list-style: none; }
.hg-body .hg-footer__bottomlinks a, .hg-footer__bottomlinks .hg-footer-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: #E4E8F0; font-size: 14px; text-decoration: none; cursor: pointer; }
.hg-body .hg-footer__bottomlinks a:hover, .hg-footer__bottomlinks .hg-footer-link:hover { color: var(--hg-yellow); text-decoration: underline; }
@media (max-width: 767px) {
    .hg-body .hg-footer__bottom .container { flex-direction: column; align-items: flex-start; }
    .hg-footer__cin { display: block; margin: 2px 0 0; padding: 0; border: 0; }
}
