/* Lankan Travel V11 — final audit corrections. Loaded after every theme file. */
:root {
    --lt-audit-navy: #061b3d;
    --lt-audit-blue: #075dcc;
    --lt-audit-gold: #d8a73f;
    --lt-audit-ivory: #fffdf8;
}

/* Guaranteed hero readability on desktop and mobile. */
.page-destinations .destinations-hero__content h1,
.page-destinations .destinations-hero__content > p:last-child,
.page-destinations .destinations-hero__content nav,
.page-destinations .destinations-hero__content nav a,
.page-explore-map .explore-hero h1,
.page-explore-map .explore-hero .lead,
.page-about .about-hero h1,
.page-about .about-text-link { color: #fff !important; }
.page-destinations .destinations-hero__shade {
    background: linear-gradient(90deg,rgba(2,18,43,.86),rgba(4,34,77,.52) 58%,rgba(4,34,77,.18));
}
.page-explore-map .explore-hero {
    background: linear-gradient(118deg,#041733 0%,#073a78 58%,#0870cf 100%);
}
.page-explore-map .explore-hero .lead { opacity: .93; }

/* The supplied blue logo is displayed as a clean light mark on dark panels. */
.premium-footer__logo-wrap,
.page-about .about-hero__brand-card {
    border-color: rgba(255,255,255,.16) !important;
    background: transparent !important;
    box-shadow: none !important;
}
.premium-footer__logo,
.page-about .about-hero__brand-card img {
    filter: brightness(0) invert(1);
    mix-blend-mode: screen;
    opacity: .98;
}
.premium-footer__logo-wrap { padding: 0 !important; }
.premium-footer__logo { height: 76px !important; }

/* Five reviews are loaded, but they stay compact instead of extending the page. */
.page-home .home-reviews {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    padding: 6px 4px 20px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--lt-audit-gold) #edf3fa;
}
.page-home .home-reviews .lux-review {
    flex: 0 0 calc((100% - 36px)/3);
    min-width: 0;
    scroll-snap-align: start;
}
.page-home .home-reviews::-webkit-scrollbar { height: 7px; }
.page-home .home-reviews::-webkit-scrollbar-track { background: #edf3fa; border-radius: 99px; }
.page-home .home-reviews::-webkit-scrollbar-thumb { background: var(--lt-audit-gold); border-radius: 99px; }
.page-home .home-review-dots {
    display: flex;
    justify-content: center;
    gap: .55rem;
    min-height: 28px;
    padding-top: .7rem;
}
.page-home .home-review-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 1px solid var(--lt-audit-blue);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: transform .2s ease, background-color .2s ease;
}
.page-home .home-review-dot.is-active {
    background: var(--lt-audit-blue);
    transform: scale(1.22);
}

/* Suppress visually empty space and upgrade the public fleet detail layout. */
.page-fleet-detail > .container { padding-top: clamp(2rem,5vw,4rem) !important; padding-bottom: 4rem !important; }
.page-fleet-detail > .container > h1 { color: var(--lt-audit-navy); line-height: 1.04; }
.page-fleet-detail .lead { color: #52647c; font-size: 1.08rem; }
.page-fleet-detail .card {
    border: 1px solid #d8e3f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(7,31,73,.08);
}
.page-fleet-detail .card h2 { color: var(--lt-audit-navy); }

/* Tour planner: every progress label remains legible. */
.page-plan-tour .builder-progress__step { color: #314a6e; }
.page-plan-tour .builder-progress__step strong,
.page-plan-tour .builder-progress__step span { color: inherit; }
.page-plan-tour .builder-progress__step.is-active,
.page-plan-tour .builder-progress__step[aria-current="step"] { color: #fff; background: var(--lt-audit-blue); }
.page-plan-tour .builder-summary:empty { display: none; }

/* Legal pages receive a readable premium article treatment even before custom copy is added. */
body.site #main-content > .container > article,
body.site #main-content > article.container {
    color: #263b58;
    line-height: 1.75;
}

@media (max-width: 760px) {
    .page-home .home-reviews {
        margin-inline: calc(var(--mobile-edge,16px) * -1);
        padding-inline: var(--mobile-edge,16px);
        scroll-padding-inline: var(--mobile-edge,16px);
    }
    .page-home .home-reviews .lux-review {
        flex-basis: min(86vw,340px);
        min-height: 250px;
        padding: 1.15rem;
    }
    .page-home .lux-review-actions { margin-top: .6rem; }
    .page-home .home-review-dots { padding-top: .35rem; }
    .premium-footer__logo { height: 68px !important; }
    .page-about .about-hero__brand-card { min-height: 145px !important; }
    .page-about .about-hero__brand-card img { max-height: 112px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .home-reviews { scroll-behavior: auto; }
}

/* V12 — site-wide readability, keeping photography open and box-free. */
body.site {
    color: #263b58;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.site p,
body.site li { line-height: 1.72; }
body.site :where(.content-card__body,.destination-card__body,.activity-card > div,.card,.home-comfort__card > div) p {
    color: #4d6079;
}
body.site :where(.content-card__body,.destination-card__body,.activity-card > div,.card,.home-comfort__card > div) h2,
body.site :where(.content-card__body,.destination-card__body,.activity-card > div,.card,.home-comfort__card > div) h3 {
    color: var(--lt-audit-navy);
}

/* Home hero: no text box. A soft image-wide gradient and text shadow keep the
   supplied photograph visible while protecting the first message. */
.page-home .lux-hero__media::after {
    inset: 0 !important;
    background: linear-gradient(90deg,
        rgba(1,16,39,.78) 0%,
        rgba(1,18,43,.60) 34%,
        rgba(1,20,45,.20) 66%,
        rgba(1,20,45,.03) 100%) !important;
}
.page-home .lux-hero__panel {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}
.page-home .lux-hero__panel h1 {
    color: #fff !important;
    font-weight: 800;
    letter-spacing: -.025em;
    text-shadow: 0 4px 5px rgba(0,0,0,.82), 0 12px 32px rgba(0,10,30,.7) !important;
}
.page-home .lux-eyebrow {
    color: #ffd36e !important;
    font-weight: 900;
    text-shadow: 0 2px 7px rgba(0,0,0,.9);
}
.page-home .lux-hero__supporting,
.page-home .lux-hero__actions .lux-text-link,
.page-home .lux-hero__trust {
    color: #fff !important;
    font-weight: 700;
    text-shadow: 0 2px 5px rgba(0,0,0,.92), 0 7px 20px rgba(0,10,30,.76) !important;
}

/* Photograph-led directory heroes use the same clear, box-free treatment. */
.destinations-hero__shade,
.destination-detail-hero__shade {
    background: linear-gradient(90deg,rgba(1,15,37,.86),rgba(2,24,54,.55) 48%,rgba(2,24,54,.10) 82%) !important;
}
.tours-hero::after,
.activities-hero::after {
    background: linear-gradient(90deg,rgba(1,15,37,.86),rgba(2,24,54,.55) 48%,rgba(2,24,54,.10) 82%) !important;
}
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) :where(h1,p,span,nav,nav a) {
    text-shadow: 0 3px 5px rgba(0,0,0,.86), 0 10px 28px rgba(0,10,30,.72);
}
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) h1 {
    color: #fff !important;
    font-weight: 800;
}
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) > :where(span,p),
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) nav,
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) nav a {
    color: #fff !important;
    font-weight: 650;
}
:where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) > p:not(.lead) {
    color: #ffd36e !important;
    font-weight: 900;
}

/* Captions placed on photographs remain readable on both dark and light images. */
.page-home .lux-destination-card::after,
.page-home .lux-experience::after {
    inset: 34% 0 0 !important;
    background: linear-gradient(transparent,rgba(1,14,34,.60) 35%,rgba(1,13,32,.96) 100%) !important;
}
.page-home .lux-card-overlay :where(strong,small),
.page-home .lux-experience > span:last-child :where(strong,small),
.gallery-full-grid__caption {
    color: #fff !important;
    text-shadow: 0 2px 5px rgba(0,0,0,.92),0 7px 18px rgba(0,0,0,.72);
}
.page-home .lux-card-overlay strong,
.page-home .lux-experience strong { font-weight: 800; }
.page-gallery .gallery-full-grid__caption {
    background: linear-gradient(transparent,rgba(1,17,40,.92));
    font-weight: 700;
}

/* Long-form and detail pages: darker body copy and clearer links. */
.page-about :where(.about-section,.about-story,.about-values,.about-reviews),
.page-contact :where(.contact-main,.contact-details,.contact-form),
.page-tour-detail,
.page-activity-detail,
.page-destination-detail,
.page-fleet-detail,
.page-chauffeur {
    color: #263b58;
}
body.site #main-content :where(article,.card,.content-card) a:not(.btn) {
    color: #075dcc;
    font-weight: 750;
}

@media (max-width: 1000px) {
    /* The mobile home layout intentionally moves copy below the photo. */
    .page-home .lux-hero__panel h1 {
        color: var(--lt-audit-navy) !important;
        text-shadow: none !important;
    }
    .page-home .lux-hero__supporting {
        color: #4d6079 !important;
        font-weight: 600;
        text-shadow: none !important;
    }
    .page-home .lux-hero__actions .lux-text-link,
    .page-home .lux-hero__trust {
        color: #075dcc !important;
        text-shadow: none !important;
    }
    .page-home .lux-eyebrow {
        color: #9a6e17 !important;
        text-shadow: none !important;
    }
}

@media (max-width: 640px) {
    :where(.destinations-hero__content,.destination-detail-hero__content,.tours-hero__content,.activities-hero .container) :where(h1,p,span,nav,nav a) {
        text-shadow: 0 2px 4px rgba(0,0,0,.9),0 8px 22px rgba(0,10,30,.78);
    }
    .tours-hero::after,
    .activities-hero::after,
    .destinations-hero__shade,
    .destination-detail-hero__shade {
        background: linear-gradient(0deg,rgba(1,15,37,.92),rgba(2,24,54,.36) 75%,rgba(2,24,54,.08)) !important;
    }
    body.site p { font-size: max(1rem,16px); }
}

/* V13 — larger footer identity, disciplined luxury cards and premium CTAs. */
.premium-footer__brand { min-width: 0; }
.premium-footer__logo-wrap {
    width: min(100%,420px);
    min-height: 164px;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 1.15rem !important;
}
.premium-footer__logo {
    width: auto !important;
    max-width: 100% !important;
    height: 152px !important;
    object-fit: contain;
    object-position: left center;
}

/* Home collection cards use one consistent framed visual language. */
.page-home .lux-carousel .home-feature-carousel__slide,
.page-home .home-reviews .lux-review {
    border: 1px solid rgba(197,145,39,.52) !important;
    border-radius: 17px !important;
    box-shadow: 0 18px 42px rgba(5,29,69,.15) !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.page-home .lux-carousel .home-feature-carousel__slide:hover,
.page-home .home-reviews .lux-review:hover {
    border-color: #d8a73f !important;
    box-shadow: 0 24px 52px rgba(5,29,69,.22) !important;
    transform: translateY(-5px);
}
.page-home .lux-destination-card,
.page-home .lux-experience {
    isolation: isolate;
    min-height: 410px;
    background: #061b3d;
}
.page-home .lux-destination-card::before,
.page-home .lux-experience::before {
    position: absolute;
    z-index: 3;
    inset: 10px;
    border: 1px solid rgba(255,255,255,.30);
    border-radius: 11px;
    content: '';
    pointer-events: none;
}
.page-home .lux-card-overlay,
.page-home .lux-experience > span:last-child {
    right: 1.45rem !important;
    bottom: 1.4rem !important;
    left: 1.45rem !important;
}
.page-home .lux-card-overlay strong,
.page-home .lux-experience strong {
    font-size: clamp(1.35rem,2vw,1.7rem) !important;
    line-height: 1.12 !important;
}
.page-home .lux-card-overlay small,
.page-home .lux-experience small {
    margin-top: .6rem !important;
    font-size: .86rem !important;
    line-height: 1.55 !important;
}
.page-home .lux-journey-card > div {
    border-top: 4px solid var(--lt-audit-gold) !important;
    background: linear-gradient(180deg,#fff,#f8fbff);
}
.page-home .lux-journey-card h3 { font-size: 1.55rem; }
.page-home .home-reviews .lux-review {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg,#fff,#f5f9ff);
}
.page-home .home-reviews .lux-review::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 5px;
    background: linear-gradient(90deg,#0a61cc,#d8a73f,#0a61cc);
    content: '';
}

/* Directory cards receive the same framed, professional finish. */
body.site:not(.page-home) :where(.destination-card,.activity-card,.content-card,.review-card) {
    border: 1px solid #d7e1ee !important;
    border-radius: 16px !important;
    box-shadow: 0 15px 38px rgba(5,29,69,.11) !important;
}
body.site:not(.page-home) :where(.destination-card,.activity-card,.content-card,.review-card):hover {
    border-color: rgba(197,145,39,.68) !important;
    box-shadow: 0 22px 46px rgba(5,29,69,.17) !important;
}
.page-activities .activity-card > div,
.page-destinations .destination-card__body {
    border-top: 4px solid var(--lt-audit-gold);
    background: linear-gradient(180deg,#fff,#f8fbff);
}
.page-activities .activity-card > div > a {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 42px;
    margin-top: auto;
    padding: .65rem 1rem;
    border: 1px solid #0a61cc;
    border-radius: 9px;
    background: #edf5ff;
    color: #0752ad;
    text-decoration: none;
}

/* Every collection action now reads as a clear premium button. */
.page-home .lux-section-heading > .lux-outline-link,
.page-home .lux-review-actions .lux-outline-link,
.page-home .home-about__copy > .lux-outline-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: .78rem 1.3rem;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 11px;
    background: linear-gradient(135deg,#0b66d9,#064a9f) !important;
    box-shadow: 0 11px 25px rgba(6,74,159,.24), inset 0 0 0 1px rgba(255,255,255,.13);
    color: #fff !important;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .025em;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.page-home .lux-section-heading > .lux-outline-link:hover,
.page-home .lux-review-actions .lux-outline-link:hover,
.page-home .home-about__copy > .lux-outline-link:hover {
    background: linear-gradient(135deg,#e5bb59,#c99124) !important;
    box-shadow: 0 14px 30px rgba(117,79,13,.25);
    color: #061b3d !important;
    transform: translateY(-2px);
}
.page-home .lux-experiences .lux-section-heading > .lux-outline-link {
    border-color: #f5d887 !important;
    background: linear-gradient(135deg,#f0cb72,#cf9b31) !important;
    color: #061b3d !important;
}
.page-home .lux-review-actions {
    display: flex;
    justify-content: center;
}

@media (max-width: 760px) {
    .premium-footer__brand { text-align: center; }
    .premium-footer__logo-wrap {
        width: 100%;
        min-height: 148px;
        justify-content: center;
        margin-inline: auto;
    }
    .premium-footer__logo {
        width: min(100%,360px) !important;
        height: 136px !important;
        object-position: center;
    }
    .premium-footer__brand > p { margin-inline: auto; }
    .premium-footer__trust { justify-content: center; }
    .page-home .lux-section-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }
    .page-home .lux-section-heading > .lux-outline-link,
    .page-home .lux-review-actions .lux-outline-link,
    .page-home .home-about__copy > .lux-outline-link {
        width: 100%;
        min-height: 54px;
        padding-inline: 1rem;
        font-size: .88rem;
    }
    .page-home .lux-destination-card,
    .page-home .lux-experience { min-height: 385px; }
}

/* V14 — package CTA contrast on every viewport. The general content-link rule
   must never recolour the filled journey button blue-on-blue. */
body.site.page-home #main-content .lux-journey-card .lux-card-actions .lux-mini-btn:not(.lux-mini-btn--outline) {
    border-color: #075dcc !important;
    background: linear-gradient(135deg,#0b66d9,#064a9f) !important;
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
body.site.page-home #main-content .lux-journey-card .lux-card-actions .lux-mini-btn--outline {
    border-color: #0b5dc5 !important;
    background: #fff !important;
    color: #0752ad !important;
    text-shadow: none;
}
body.site.page-home #main-content .lux-journey-card .lux-card-actions .lux-mini-btn:not(.lux-mini-btn--outline):hover,
body.site.page-home #main-content .lux-journey-card .lux-card-actions .lux-mini-btn:not(.lux-mini-btn--outline):focus-visible {
    border-color: #d8a73f !important;
    background: linear-gradient(135deg,#e6bd5d,#c99022) !important;
    color: #061b3d !important;
    text-shadow: none;
}
@media (max-width: 640px) {
    .page-home .lux-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
    body.site.page-home #main-content .lux-journey-card .lux-card-actions .lux-mini-btn {
        min-height: 48px;
        padding: .65rem .55rem;
        font-size: .78rem;
        white-space: nowrap;
    }
}
