/* Holiday Guru Travel — floating support widget + cookie consent.
   Colours measured from the supplied logo (Logo_HGT.png, 2026-09-29):
   navy lettering #0A163D, orange "Guru" #FE7F16. */
.hg-i { display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -0.125em; }

:root {
    --hg-navy: #0A163D;
    --hg-navy-dark: #060E28;
    --hg-orange: #FE7F16;
    --hg-orange-hover: #E36A08;
    --hg-blue: #1689D8;      /* secondary brand blue: decorative use only (3.6:1 on white) */
    --hg-yellow: #FFC20A;    /* highlight: decorative / on navy only */
    --hg-surface: #F5F8FC;
    --hg-border: #E3E8F0;
    --hg-text: #1A1F36;
    --hg-muted: #5B6478;
    --hg-consent-h: 0px; /* set by hg-site.js while the cookie banner is visible */
}

/* ---------- Floating support widget ---------- */
.hg-support {
    position: fixed;
    right: 20px;
    bottom: calc(20px + var(--hg-consent-h));
    z-index: 1030;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    font-family: inherit;
    transition: bottom .25s ease-out;
}
.hg-support__toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 0 22px 0 18px;
    border: 0;
    border-radius: 999px;
    background: var(--hg-navy);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(10, 22, 61, .25);
    cursor: pointer;
}
.hg-support__toggle .hg-i { width: 22px; height: 22px; color: var(--hg-orange); }
.hg-support__toggle:hover { background: var(--hg-navy-dark); }
.hg-support__toggle-close,
.hg-support.is-open .hg-support__toggle-open { display: none; }
.hg-support.is-open .hg-support__toggle-close { display: inline-block; }

.hg-support__panel {
    width: 320px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px - var(--hg-consent-h));
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--hg-border);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(10, 22, 61, .18);
}
.hg-support__panel[hidden] { display: none; }
.hg-support__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 18px 14px;
    background: var(--hg-navy);
    color: #fff;
    border-radius: 16px 16px 0 0;
}
.hg-support__title { margin: 0; font-size: 17px; font-weight: 700; color: #fff; line-height: 1.3; }
.hg-support__sub { margin: 2px 0 0; font-size: 13px; color: rgba(255, 255, 255, .8); line-height: 1.4; }
.hg-support__close {
    flex: none;
    width: 44px;
    height: 44px;
    margin: -10px -10px 0 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
}
.hg-support__close:hover { background: rgba(255, 255, 255, .12); }
.hg-support__view { padding: 10px; }
.hg-support__view[hidden] { display: none; }
.hg-support__action {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 56px;
    padding: 8px 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--hg-text);
    text-align: left;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}
.hg-support__action:hover { background: var(--hg-surface); color: var(--hg-text); }
.hg-support__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #FEF0E3;
    color: var(--hg-orange-hover);
    font-size: 18px;
}
.hg-support__icon--wa { background: #E7F7EE; color: #128C4B; }
.hg-support__label { display: flex; flex-direction: column; line-height: 1.3; }
.hg-support__label small { font-size: 13px; font-weight: 400; color: var(--hg-muted); }
.hg-support__notice { margin: 6px 6px 12px; font-size: 14px; line-height: 1.5; color: var(--hg-text); }
.hg-support__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    margin: 0 6px 8px;
    border: 1px solid var(--hg-navy);
    border-radius: 8px;
    color: var(--hg-navy);
    font-weight: 600;
    text-decoration: none;
}
.hg-support__btn:hover { background: var(--hg-surface); color: var(--hg-navy); }
.hg-support__btn--primary { background: var(--hg-orange); border-color: var(--hg-orange); color: var(--hg-navy-dark); }
.hg-support__btn--primary:hover { background: var(--hg-orange-hover); color: var(--hg-navy-dark); }
.hg-support__back {
    min-height: 44px;
    margin: 0 6px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--hg-navy);
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
}

/* The template's scroll-to-top button sits bottom-right; lift it above the widget. */
.scroll-top { bottom: calc(96px + var(--hg-consent-h)) !important; right: 26px !important; }

/* ---------- Cookie consent ---------- */
.hg-consent {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 1035;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    max-width: 1140px;
    margin: 0 auto;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid var(--hg-border);
    border-top: 3px solid var(--hg-orange);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(10, 22, 61, .18);
    color: var(--hg-text);
}
.hg-consent[hidden] { display: none; }
.hg-consent__text { flex: 1 1 380px; margin: 0; font-size: 14px; line-height: 1.5; color: var(--hg-text); }
.hg-consent__text a { color: var(--hg-navy); text-decoration: underline; }
.hg-consent__buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.hg-consent__btn {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--hg-navy);
    border-radius: 8px;
    background: #fff;
    color: var(--hg-navy);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.hg-consent__btn:hover { background: var(--hg-surface); }
.hg-consent__btn--primary { background: var(--hg-orange); border-color: var(--hg-orange); color: var(--hg-navy-dark); }
.hg-consent__btn--primary:hover { background: var(--hg-orange-hover); }
.hg-consent__btn--link { border-color: transparent; background: none; text-decoration: underline; }

.hg-consent-modal {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(10, 22, 61, .55);
}
.hg-consent-modal[hidden] { display: none; }
.hg-consent-modal__box {
    width: 100%;
    max-width: 480px;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    color: var(--hg-text);
}
.hg-consent-modal__title { margin: 0 0 16px; font-size: 20px; color: var(--hg-navy); }
.hg-consent-modal__row { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--hg-border); }
.hg-consent-modal__row input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--hg-orange); }
.hg-consent-modal__row label { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.45; cursor: pointer; }
.hg-consent-modal__row label span { color: var(--hg-muted); }
.hg-consent-modal__link { margin: 4px 0 12px; font-size: 14px; }
.hg-consent-modal .hg-consent__buttons { margin-top: 12px; }

.hg-footer-link {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

/* Visible keyboard focus on all new controls. Navy ring (17.6:1 on white) with a white
   inner ring so it also shows on dark backgrounds; orange alone is only 2.5:1 on white. */
.hg-support button:focus-visible,
.hg-support a:focus-visible,
.hg-consent button:focus-visible,
.hg-consent a:focus-visible,
.hg-consent-modal button:focus-visible,
.hg-consent-modal input:focus-visible,
.hg-footer-link:focus-visible {
    outline: 3px solid var(--hg-navy);
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff;
}

/* ---------- Footer ---------- */
.hg-footer .widget-area { background: #fff; padding-bottom: 0; }
.hg-footer .newsletter-top { margin-bottom: 0; }

.hg-footer__top {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    padding: 48px 0 40px;
}
.hg-footer__logo img { display: block; width: 180px; height: auto; margin: 0 auto; }
.hg-footer__tagline { margin: 16px 0 6px; font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--hg-navy); }
.hg-footer__intro { max-width: 520px; margin: 0 0 24px; font-size: 15px; line-height: 1.6; color: #4A5163; }
.hg-footer__quick {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
    margin: 0 0 20px; padding: 0; list-style: none;
}
.hg-qlink {
    display: inline-flex; align-items: center; gap: 10px;
    min-height: 48px; padding: 8px 18px;
    border: 1px solid var(--hg-border); border-radius: 999px;
    background: var(--hg-surface); color: var(--hg-navy);
    font-size: 14px; text-decoration: none;
    transition: border-color .15s ease-out, background-color .15s ease-out;
}
.hg-qlink:hover { border-color: var(--hg-navy); background: #fff; color: var(--hg-navy); }
.hg-qlink .hg-i { width: 17px; height: 17px; color: var(--hg-navy); }
.hg-qlink .hg-qlink__wa { color: #128C4B; }
.hg-qlink__label { font-weight: 700; }
.hg-qlink__value { color: #4A5163; }
.hg-qlink__value::before { content: "\00B7"; margin-right: 10px; color: #7F89A3; }
.hg-qlink--primary { background: var(--hg-orange); border-color: var(--hg-orange); color: var(--hg-navy-dark); }
.hg-qlink--primary .hg-i, .hg-qlink--primary .hg-qlink__value { color: var(--hg-navy-dark); }
.hg-qlink--primary .hg-qlink__value::before { color: var(--hg-navy-dark); }
.hg-qlink--primary:hover { background: var(--hg-orange-hover); border-color: var(--hg-orange-hover); color: var(--hg-navy-dark); }
.hg-footer__social { display: flex; justify-content: center; gap: 10px; }
.hg-footer__social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border: 1px solid var(--hg-border); border-radius: 50%;
    color: var(--hg-navy); background: #fff; font-size: 16px;
    transition: background-color .15s ease-out, color .15s ease-out, border-color .15s ease-out;
}
.hg-footer__social a:hover { background: var(--hg-navy); border-color: var(--hg-navy); color: #fff; }

.hg-footer__nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 32px;
    padding: 40px 0 48px;
    border-top: 1px solid var(--hg-border);
}
.hg-fnav__summary { display: block; list-style: none; cursor: default; }
.hg-fnav__summary::-webkit-details-marker { display: none; }
.hg-fnav__title {
    position: relative;
    margin: 0 0 20px;
    padding-bottom: 10px;
    font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--hg-navy);
}
.hg-fnav__title::after {
    content: ""; position: absolute; left: 0; bottom: 0;
    width: 28px; height: 3px; border-radius: 2px; background: var(--hg-orange);
}
.hg-fnav__icon { display: none; }
.hg-fnav__list { margin: 0; padding: 0; list-style: none; }
.hg-fnav__list li { margin: 0 0 10px; }
.hg-fnav__link {
    font-size: 15px; line-height: 1.45; color: var(--hg-text); text-decoration: none;
    transition: color .15s ease-out;
}
.hg-fnav__link:hover {
    color: var(--hg-navy);
    text-decoration: underline; text-decoration-color: var(--hg-orange); text-decoration-thickness: 2px; text-underline-offset: 4px;
}
.hg-fnav__arrow {
    display: inline-block; margin-left: 6px; color: var(--hg-orange-hover);
    transition: transform .15s ease-out;
}
.hg-fnav__link:hover .hg-fnav__arrow { transform: translateX(3px); }
.hg-fnav__badge--info { background: #E6F2FB; color: #0B4F82; }
.hg-fnav__soon { font-size: 15px; line-height: 1.45; color: #5B6478; cursor: default; }
.hg-fnav__badge {
    display: inline-block; margin-left: 6px; padding: 1px 8px;
    border-radius: 999px; background: #FFF4D1;
    font-size: 11px; font-weight: 600; letter-spacing: .02em; line-height: 18px; color: #6B4E00;
    white-space: nowrap; vertical-align: 1px;
}

.hg-footer__bottom {
    background: var(--hg-navy);
    color: #D6DBE7;
    border-top: 4px solid var(--hg-orange);
    border-image: linear-gradient(90deg, var(--hg-navy) 0 25%, var(--hg-blue) 25% 50%, var(--hg-orange) 50% 75%, var(--hg-yellow) 75% 100%) 1;
}
.hg-footer__bottom .container {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
    gap: 12px 32px; padding-top: 22px; padding-bottom: 22px;
}
.hg-footer__legal p { margin: 0; font-size: 13px; line-height: 1.6; color: #D6DBE7; }
.hg-footer__entity-label { color: #AEB6C9; }
.hg-footer__sep { margin: 0 10px; color: #7F89A3; }
.hg-footer__copy { margin-top: 2px !important; color: #fff !important; font-weight: 600; }
.hg-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; font-size: 13px; }
.hg-footer__meta .hg-footer-link { min-height: 44px; color: #fff; }
.hg-footer__credit, .hg-footer__credit a { color: #AEB6C9; }
.hg-footer__meta .hg-footer-link:hover, .hg-footer__credit a:hover { color: var(--hg-yellow); }

.hg-footer a:focus-visible, .hg-footer summary:focus-visible, .hg-footer button:focus-visible {
    outline: 3px solid var(--hg-navy); outline-offset: 2px; box-shadow: 0 0 0 2px #fff;
}
.hg-footer__bottom a:focus-visible, .hg-footer__bottom button:focus-visible { outline-color: var(--hg-yellow); box-shadow: none; }

@media (max-width: 1199px) {
    .hg-footer__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 8px; }
}
@media (max-width: 991px) {
    .hg-footer__top { padding: 36px 0 28px; }
    /* Accordion on tablet and mobile */
    .hg-footer__nav { display: block; padding: 8px 0 32px; }
    .hg-fnav { border-bottom: 1px solid var(--hg-border); }
    .hg-fnav__summary {
        display: flex; align-items: center; justify-content: space-between;
        min-height: 56px; cursor: pointer;
    }
    .hg-fnav__title { margin: 0; padding: 0; font-size: 15px; }
    .hg-fnav__title::after { display: none; }
    .hg-fnav__icon { display: block; position: relative; width: 16px; height: 16px; flex: none; }
    .hg-fnav__icon::before, .hg-fnav__icon::after {
        content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; border-radius: 1px; background: var(--hg-navy);
        transition: transform .2s ease-out;
    }
    .hg-fnav__icon::after { transform: rotate(90deg); }
    .hg-fnav[open] .hg-fnav__icon::after { transform: rotate(0deg); }
    .hg-fnav__list { padding: 0 0 12px; }
    .hg-fnav__list li { margin: 0; }
    .hg-fnav__link, .hg-fnav__soon { display: flex; align-items: center; flex-wrap: wrap; min-height: 44px; }
    .hg-footer__bottom .container { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 575px) {
    .hg-footer__quick { flex-direction: column; align-items: stretch; width: 100%; }
    .hg-qlink { justify-content: center; flex-wrap: wrap; border-radius: 12px; }
    .hg-footer__sep { display: block; height: 0; margin: 0; overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
    .hg-fnav__icon::before, .hg-fnav__icon::after, .hg-qlink, .hg-fnav__arrow, .hg-footer__social a { transition: none; }
}

@media (max-width: 575px) {
    .hg-support { right: 16px; bottom: calc(16px + var(--hg-consent-h)); }
    .hg-support__toggle { width: 56px; padding: 0; justify-content: center; }
    .hg-support__toggle-text {
        position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
    }
    .hg-consent { left: 0; right: 0; bottom: 0; border-radius: 12px 12px 0 0; padding: 14px 16px; }
    .hg-consent__buttons { width: 100%; }
    .hg-consent__btn { flex: 1 1 auto; }
    .scroll-top { right: 20px !important; bottom: calc(84px + var(--hg-consent-h)) !important; }
}

@media (prefers-reduced-motion: reduce) {
    .hg-support { transition: none; }
}
