/**
 * Conversion components (2026-10): spam honeypot, multi-step trip builder,
 * hero proof line, Licensed & accredited block, price lines, rating links.
 * Loaded on every page (see inc/conversion.php); token fallbacks keep it
 * working on templates that don't load poa-tokens.css.
 */

/* ── Honeypot: off-screen, not display:none (some bots skip hidden fields) ── */
.c-form__hp {
    position: absolute !important;
    left: -10000px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ── Form status messages ── */
.c-form__success,
.c-form__error {
    margin: var(--space-3, 1rem) 0;
    padding: .75rem 1rem;
    border-radius: var(--radius-sm, .375rem);
    font-weight: 500;
}
.c-form__success { background: #e8f5e9; color: #0b5d1e; border-left: 4px solid var(--color-primary, #008500); }
.c-form__error   { background: #fdecea; color: #8a1c13; border-left: 4px solid #c62828; }
.c-form__error a { color: inherit; font-weight: 700; text-decoration: underline; }
.c-form__success:focus,
.c-form__error:focus { outline: 2px solid currentColor; outline-offset: 2px; }

/* ── Trip builder (homepage Dream Trip) ── */
.c-trip-builder__progress {
    display: flex;
    gap: var(--space-2, .5rem);
    margin: 0 0 var(--space-4, 1.5rem);
    padding: 0;
    list-style: none;
    counter-reset: step;
}
.c-trip-builder__progress li {
    flex: 1;
    padding-top: .5rem;
    border-top: 4px solid rgba(255, 255, 255, .25);
    font-size: .8125rem;
    color: rgba(255, 255, 255, .7);
    counter-increment: step;
}
.c-trip-builder__progress li::before { content: counter(step) ". "; }
.c-trip-builder__progress li.is-done,
.c-trip-builder__progress li.is-active { border-color: var(--color-primary, #008500); color: #fff; }
.c-trip-builder__progress li.is-active { font-weight: 700; }
.c-trip-builder:not(.is-stepped) .c-trip-builder__progress { display: none; }

.c-trip-builder__step {
    margin: 0 0 var(--space-4, 1.5rem);
    padding: 0;
    border: 0;
    min-width: 0;
}
.c-trip-builder__question {
    margin-bottom: var(--space-3, 1rem);
    font-size: 1.25rem;
    font-weight: 600;
    color: #fff;
}
.c-trip-builder__choices {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: var(--space-2, .5rem);
}
.c-trip-builder__choices--wide { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.c-trip-builder__choice { position: relative; margin: 0; cursor: pointer; }
.c-trip-builder__choice input {
    position: absolute;
    opacity: 0;
    inset: 0;
    cursor: pointer;
}
.c-trip-builder__choice span {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 48px; /* touch target */
    height: 100%;
    padding: .75rem 1rem;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: var(--radius-sm, .375rem);
    color: #fff;
    background: rgba(255, 255, 255, .06);
    transition: background-color .15s, border-color .15s;
}
.c-trip-builder__choice small { opacity: .8; font-size: .8125rem; }
.c-trip-builder__choice:hover span { border-color: #fff; }
.c-trip-builder__choice input:checked + span {
    border-color: var(--color-primary, #008500);
    background: var(--color-primary, #008500);
}
.c-trip-builder__choice input:focus-visible + span { outline: 3px solid #fff; outline-offset: 2px; }
.c-trip-builder__nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2, .5rem);
    justify-content: space-between;
}
.c-trip-builder__nav [hidden] { display: none !important; }
.c-trip-builder__nav .c-dream-trip__submit,
.c-trip-builder__nav [data-step-next] { margin-left: auto; }

/* ── Hero: static, proof line ── */
.c-hero--static .c-hero__cta-group .c-button--whatsapp { display: inline-flex; align-items: center; gap: .5rem; }
.c-hero__proof {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    margin: var(--space-4, 1.5rem) 0 0;
    padding: 0;
    list-style: none;
}
.c-hero__proof a { color: #fff; text-decoration: none; font-size: .9375rem; }
.c-hero__proof a:hover { text-decoration: underline; }
.c-hero__proof .bi-star-fill { color: #ffc107; margin-right: .25rem; }

/* ── Licensed & accredited ── */
.c-accredited { background: #f6f8f6; border-block: 1px solid var(--poa-color-border, #e5e5e5); }
.c-accredited__title { font-size: 1.25rem; margin: 0 0 var(--space-3, 1rem); text-align: center; }
.c-accredited__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-3, 1rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.c-accredited__facts li { display: flex; gap: .75rem; align-items: flex-start; font-size: .9375rem; }
.c-accredited__facts .bi { color: var(--color-primary, #008500); font-size: 1.25rem; line-height: 1.2; }
.c-accredited__facts strong { display: block; }
.c-accredited__facts a { color: var(--color-primary-dark, #06402b); }

/* ── Itinerary cards: price + quote link ── */
.c-itinerary-card__price { margin: var(--space-3, 1rem) 0 var(--space-2, .5rem); font-size: .9375rem; }
.c-itinerary-card__price strong { font-size: 1.125rem; color: var(--color-primary-dark, #06402b); }
.c-itinerary-card__quote-link { display: inline-block; margin-top: .75rem; font-size: .875rem; }
/* "Request a Bespoke Safari" callout: solid brand green, white text. */
.c-itineraries__callout-cta {
    background: var(--color-primary, #008500);
    border-color: var(--color-primary, #008500);
    color: #fff;
}
.c-itineraries__callout-cta:hover,
.c-itineraries__callout-cta:focus-visible {
    background: var(--color-primary-dark, #06402b);
    border-color: var(--color-primary-dark, #06402b);
    color: #fff;
}
/* Orange-red CTA colour (--color-cta in style.css) for the quote prompts. */
.c-itinerary-card__price-request,
.c-itinerary-card__quote-link { color: var(--color-cta, #FF4500); font-weight: 600; }
.c-itinerary-card__quote-link:hover,
.c-itinerary-card__quote-link:focus-visible { color: var(--color-cta, #FF4500); text-decoration: underline; }

/* ── Testimonials: rating links / empty state ── */
.c-testimonials__ratings a { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .35rem; color: inherit; text-decoration: none; }
.c-testimonials__rating-logo {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: contain;
    background: #fff; /* SafariBookings mark is on transparent — keep it legible in dark mode */
}
.c-testimonials__ratings a:hover { text-decoration: underline; }
.c-testimonials__ratings .bi-star-fill { color: #f5a623; }
/* Top bar: icon + number as one link; WhatsApp icon in WhatsApp green */
.topbar-link--whatsapp,
.topbar-link--call { display: inline-flex; align-items: center; gap: .4rem; }
.topbar-link--whatsapp .bi-whatsapp { color: #25D366; font-size: 1.05em; }

/* "Happy Customer?" review badge: the emoji itself fills the 5.5rem circle
   the other platform badges use (was a guest photo with a small emoji). */
.c-review-hub__badge--emoji {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    font-size: 5.5rem;
    line-height: 1;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    overflow: visible;
}
.c-review-hub__item:hover .c-review-hub__badge--emoji,
.c-review-hub__item:focus-visible .c-review-hub__badge--emoji {
    border-color: transparent;
    box-shadow: none;
    transform: scale(1.06);
}

/* Intro: left-aligned text, circular guest-photo callout on the right */
.c-testimonials__intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-5, 2rem);
    margin-bottom: var(--space-5, 2rem);
}
.c-testimonials__intro-text { min-width: 0; text-align: left; }
.c-testimonials__intro .c-section-header { margin-bottom: 0; text-align: left; }
.c-testimonials__ratings li { font-size: .9375rem; }
.c-testimonials__ratings a { background: none; }
.c-testimonials__empty { text-align: left; margin: var(--space-4, 1.5rem) 0 0; max-width: 60ch; }
.c-testimonials__intro .c-testimonials__more { justify-content: flex-start; }

.c-testimonials__photo {
    position: relative;
    margin: 0 1.25rem 1.25rem 0;
    width: clamp(260px, 32vw, 400px);
    aspect-ratio: 1;
}
.c-testimonials__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    border: 6px solid #fff;
    box-shadow: 0 0 0 4px var(--color-primary, #008500), var(--poa-shadow-md, 0 8px 24px rgba(0, 0, 0, .12));
}
/* Callout tail: a small green bubble pointing back towards the reviews. */
.c-testimonials__photo::before,
.c-testimonials__photo::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: var(--color-primary, #008500);
    box-shadow: 0 0 0 4px #fff;
}
.c-testimonials__photo::before { width: 34px; height: 34px; left: -6px;  bottom: 18%; }
.c-testimonials__photo::after  { width: 18px; height: 18px; left: -34px; bottom: 8%; }

@media (max-width: 767.98px) {
    .c-testimonials__intro { grid-template-columns: 1fr; }
    .c-testimonials__photo { justify-self: start; margin-left: 2.25rem; width: min(260px, 70vw); }
}
a.c-testimonial-card__platform { text-decoration: none; }
a.c-testimonial-card__platform:hover { text-decoration: underline; }

@media (max-width: 575.98px) {
    .c-trip-builder__choices { grid-template-columns: 1fr 1fr; }
    .c-trip-builder__choices--wide { grid-template-columns: 1fr; }
    .c-trip-builder__nav .c-button { flex: 1 1 100%; justify-content: center; }
}

/* ── /tours/ product lines ── */
.c-product-lines {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--space-4, 1.5rem);
    margin: 0 0 var(--space-5, 2rem);
}
.c-product-line {
    display: flex;
    flex-direction: column;
    padding: var(--space-4, 1.5rem);
    border: 1px solid var(--poa-color-border, #e5e5e5);
    border-top: 4px solid var(--color-primary, #008500);
    border-radius: var(--radius-sm, .375rem);
    background: #fff;
}
.c-product-line__band { margin: 0; font-weight: 700; color: var(--color-primary, #008500); }
.c-product-line__name { margin: .25rem 0; font-size: 1.25rem; }
.c-product-line__tagline { margin: 0 0 .5rem; font-style: italic; }
.c-product-line__intro { flex: 1; font-size: .9375rem; }
.c-product-line .c-button { align-self: flex-start; }

/* Footer: one icon per number, icon + number form one link */
.footer-contact-link { display: inline-flex; align-items: center; gap: .45rem; }
.footer-contact-link .bi { color: var(--color-primary, #008500); }
.footer-contact-link--whatsapp .bi-whatsapp { color: #25D366; }

/* ── Context-aware WhatsApp CTAs on cards, estimator and trip builder ── */
.c-wa-cta {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 44px; /* touch target */
    margin-top: .75rem;
    padding: .5rem 1rem;
    border: 1px solid #25D366;
    border-radius: 999px;
    color: #0b7a3b;
    background: #fff;
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
    transition: background-color .15s, color .15s;
}
.c-wa-cta .bi-whatsapp { color: #25D366; font-size: 1.1em; }
.c-wa-cta:hover,
.c-wa-cta:focus-visible { background: #25D366; color: #fff; }
.c-wa-cta:hover .bi-whatsapp,
.c-wa-cta:focus-visible .bi-whatsapp { color: #fff; }
.c-wa-cta--light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.c-wa-cta--light .bi-whatsapp { color: #fff; }
.c-destination-card__wa { margin: 0 1.25rem 1.25rem; align-self: flex-start; }
.c-tour-quote__or { margin: var(--space-3, 1rem) 0 0; font-size: .875rem; opacity: .85; }
.c-dest-cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-3, 1rem); justify-content: center; }
.c-dest-cta__actions .c-button--whatsapp { display: inline-flex; align-items: center; gap: .5rem; }
.c-trip-builder__wa { margin: var(--space-3, 1rem) 0 0; text-align: center; }
.c-estimator__wa { text-align: center; margin: var(--space-3, 1rem) 0 0; }

/* Footer destinations: country flag before each name */
.footer-destination { display: inline-flex; align-items: center; gap: .55rem; }
.footer-destination__flag {
    width: 20px;
    height: 15px;
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .25); /* keeps light flags visible on the dark footer */
}

/* ── Review slider (real SafariBookings 5-star reviews) ── */
.c-review-slider { margin: var(--space-5, 2rem) 0; min-width: 0; }
.c-review-slider__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-3, 1rem);
    margin-bottom: var(--space-3, 1rem);
}
.c-review-slider__title { margin: 0; font-size: clamp(1.25rem, 2.5vw, 1.6rem); }
.c-review-slider__sub { margin: .35rem 0 0; color: #5b6660; font-size: .95rem; }
.c-review-slider__sub a { color: var(--color-primary-dark, #06402b); font-weight: 600; white-space: nowrap; }
.c-review-slider__nav { display: flex; gap: .5rem; }
.c-review-slider__btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--color-primary, #008500);
    background: #fff;
    color: var(--color-primary, #008500);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}
.c-review-slider__btn:hover:not(:disabled),
.c-review-slider__btn:focus-visible { background: var(--color-primary, #008500); color: #fff; }
.c-review-slider__btn:disabled { opacity: .35; cursor: default; }
.c-review-slider__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 2 * var(--space-4, 1.5rem)) / 3);
    column-gap: var(--space-4, 1.5rem);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0;
    padding: .25rem .25rem 1rem;
    scrollbar-width: thin;
}
.c-review-slider__track:focus-visible { outline: 2px solid var(--color-primary, #008500); outline-offset: 4px; border-radius: 6px; }
.c-review-slider__slide { scroll-snap-align: start; min-width: 0; display: flex; }
.c-review-slider__slide .c-testimonial-card { width: 100%; height: 100%; }
.c-review-slider__count { margin: .25rem 0 0; text-align: center; font-size: .85rem; color: #5b6660; font-variant-numeric: tabular-nums; }
.c-testimonial-card__headline { margin: 0; font-weight: 700; color: var(--color-primary-dark, #06402b); line-height: 1.35; }
.c-testimonial-card__more { font-size: .875rem; font-weight: 600; color: var(--color-primary-dark, #06402b); align-self: flex-start; }
@media (max-width: 991.98px) {
    .c-review-slider__track { grid-auto-columns: calc((100% - var(--space-4, 1.5rem)) / 2); }
}
@media (max-width: 575.98px) {
    .c-review-slider__track { grid-auto-columns: 86%; } /* next card peeks in: shows it swipes */
}

/* Ratings freshness note — deliberately quiet */
.c-review-freshness { margin: .4rem 0 0; font-size: .8rem; color: #6b746f; }
.c-review-freshness--light { color: inherit; opacity: .75; }

/* Review slider: line up the bottom rows across cards (link, stars,
   name block, platform badge). Cards are already equal height; the review
   text now takes the spare space so everything below it sits at the same
   level, and the name block reserves room for name + 3 detail lines. */
.c-review-slider .c-testimonial-card__quote { flex: 1 1 auto; }
.c-review-slider .c-testimonial-card__footer { align-items: flex-start; min-height: 5.75rem; }

/* Review slider: every row of every card (quote mark, headline, review
   text, link, stars, name block, badge) shares one set of row lines, so
   each row lines up horizontally across all cards, while each card still
   stacks its own content vertically. Each row is as tall as its tallest
   version among the cards. CSS subgrid; browsers without it keep the
   flex fallback above. */
@supports (grid-template-rows: subgrid) {
    .c-review-slider__track {
        grid-template-rows: repeat(7, auto);
        row-gap: 0;
    }
    .c-review-slider__slide {
        display: grid;
        grid-row: span 7;
        grid-template-rows: subgrid;
    }
    .c-review-slider .c-testimonial-card {
        display: grid;
        grid-row: span 7;
        grid-template-rows: subgrid;
        row-gap: 1rem;
        align-content: start;
    }
    .c-review-slider .c-testimonial-card > * { align-self: start; min-width: 0; }
    .c-review-slider .c-testimonial-card__footer { align-self: stretch; min-height: 0; }
    .c-review-slider .c-testimonial-card__platform { justify-self: start; }
}

/* Keep the slider's pause button hidden when autoplay is off (its button style sets display). */
.c-review-slider__btn[hidden] { display: none; }

/* /testimonials/ dark hero: bigger, readable ratings line and freshness note
   (the note inherited a dark colour and was nearly invisible on #2e2e2e). */
.c-contact-hero .c-testimonials-summary {
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem 1.25rem;
    font-size: 1.15rem;
    color: #ffffff;
}
.c-contact-hero .c-testimonials-summary a { color: #ffffff; text-decoration: none; }
.c-contact-hero .c-testimonials-summary a:hover,
.c-contact-hero .c-testimonials-summary a:focus-visible { text-decoration: underline; }
.c-contact-hero .c-testimonials-summary strong { font-size: 1.4rem; }
.c-contact-hero .c-testimonials-summary .bi-star-fill { color: #F5A623; }
.c-contact-hero .c-review-freshness {
    color: rgba(255, 255, 255, .85); /* ≥ 4.5:1 on the dark hero */
    opacity: 1;
    font-size: .95rem;
    margin: .6rem 0 var(--space-4, 1.5rem);
}
@media (max-width: 575.98px) {
    .c-contact-hero .c-testimonials-summary { font-size: 1.05rem; flex-direction: column; gap: .35rem; }
    .c-contact-hero .c-testimonials-summary strong { font-size: 1.25rem; }
}

/* Footer brand: logo with the company name beside it */
.footer-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; }
.footer-brand .footer-logo-img { max-height: 50px; width: auto; flex-shrink: 0; }
.footer-brand__name { display: flex; flex-direction: column; line-height: 1.15; text-transform: uppercase; }
.footer-brand__line1 { font-weight: 800; font-size: 1.05rem; letter-spacing: .02em; color: #ffffff; }
.footer-brand__line2 { font-weight: 600; font-size: .72rem; letter-spacing: .06em; color: rgba(255, 255, 255, .8); }
.footer-brand:hover .footer-brand__line1,
.footer-brand:focus-visible .footer-brand__line1 { color: var(--color-primary, #008500); }

/* Footer email offer: full-width email box, full-width button below it */
.footer-newsletter__row--stacked { flex-direction: column; gap: .6rem; }
.footer-newsletter__row--stacked .footer-newsletter__input { width: 100%; flex: none; }
.footer-newsletter__row--stacked .footer-newsletter__submit {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
}
.footer-newsletter__submit .bi-envelope-fill { color: #ffffff; font-size: 1rem; }

/* Footer (desktop): equal spacing between all five columns. Each column is
   sized to its content (text columns capped so they wrap), and the leftover
   width is shared equally between the columns via space-between. */
@media (min-width: 992px) {
    .footer-main .row.row-cols-lg-5 {
        display: grid;
        grid-template-columns:
            fit-content(300px)   /* brand + newsletter */
            max-content          /* quick links */
            max-content          /* destinations */
            fit-content(300px)   /* contact */
            minmax(220px, 300px);/* map */
        justify-content: space-between;
        column-gap: 2.5rem;
        row-gap: 0;
        margin-inline: 0;
    }
    .footer-main .row.row-cols-lg-5 > * {
        width: auto;
        max-width: none;
        padding-inline: 0;
        min-width: 0;
    }
    .footer-main .footer-map { width: 100%; }
}

/* Footer contact numbers: bolder, bigger, white */
.footer-contact-link {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: .01em;
}
.footer-contact-link:hover,
.footer-contact-link:focus-visible { color: #ffffff; text-decoration: underline; }
.footer-contact-link .bi { font-size: 1.15rem; }

/* Trip builder answer cards: white card, green text; selected = dark green
   card with white text (dark green so it stands out on the green section). */
.c-trip-builder__choice span {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--color-primary, #008500);
}
.c-trip-builder__choice span strong { color: var(--color-primary, #008500); }
.c-trip-builder__choice small { color: #4a5550; opacity: 1; }
.c-trip-builder__choice:hover span { border-color: var(--color-primary-dark, #06402b); box-shadow: 0 2px 10px rgba(0, 0, 0, .15); }
.c-trip-builder__choice input:checked + span {
    background: var(--color-primary-dark, #06402b);
    border-color: #ffffff;
    box-shadow: 0 0 0 2px #ffffff;
    color: #ffffff;
}
.c-trip-builder__choice input:checked + span strong,
.c-trip-builder__choice input:checked + span small { color: #ffffff; }
.c-trip-builder__choice input:focus-visible + span { outline: 3px solid #ffffff; outline-offset: 3px; }

/* ═══ WhatsApp buttons site-wide: darker WhatsApp green, white text ═══
   #0F7A38 keeps the WhatsApp look but passes WCAG AA with white text
   (5.4:1; the bright #25D366 is only 2:1). Small WhatsApp ICONS on dark
   backgrounds (top bar, footer) keep the bright #25D366. */
:root { --wa-green: #0F7A38; --wa-green-hover: #0E6B32; }
.c-button--whatsapp,
.btn-whatsapp,
.c-wa-cta,
.c-contact-card__whatsapp,
.c-mobile-contact-bar__btn--whatsapp,
.c-mobile-nav__cta-btn--whatsapp,
.c-welcome-chat__action--whatsapp {
    background: var(--wa-green) !important;
    border-color: var(--wa-green) !important;
    color: #ffffff !important;
}
.c-button--whatsapp .bi, .btn-whatsapp .bi, .c-wa-cta .bi,
.c-contact-card__whatsapp .bi, .c-mobile-contact-bar__btn--whatsapp .bi,
.c-mobile-nav__cta-btn--whatsapp .bi, .c-welcome-chat__action--whatsapp .bi { color: #ffffff !important; }
.c-button--whatsapp:hover, .c-button--whatsapp:focus-visible,
.btn-whatsapp:hover, .c-wa-cta:hover, .c-wa-cta:focus-visible,
.c-contact-card__whatsapp:hover, .c-mobile-contact-bar__btn--whatsapp:hover,
.c-mobile-nav__cta-btn--whatsapp:hover, .c-welcome-chat__action--whatsapp:hover {
    background: var(--wa-green-hover) !important;
    border-color: var(--wa-green-hover) !important;
    color: #ffffff !important;
}
.c-button--whatsapp { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
/* On the green trip-builder section: white outline so it stands out. */
.c-wa-cta--light { box-shadow: 0 0 0 2px #ffffff; }

/* Trip builder Back button: solid dark brand green instead of a faint outline. */
.c-trip-builder__nav [data-step-back] {
    background: var(--color-primary-dark, #06402b);
    border-color: var(--color-primary-dark, #06402b);
    color: #ffffff;
}
.c-trip-builder__nav [data-step-back]:hover,
.c-trip-builder__nav [data-step-back]:focus-visible { background: #04301f; border-color: #ffffff; color: #ffffff; }

/* Trip-builder answer cards — same rules as above, more specific so no
   other style can override them: white card, green text. */
.c-dream-trip .c-trip-builder__choice span { background: #ffffff; border-color: #ffffff; color: var(--color-primary, #008500); }
.c-dream-trip .c-trip-builder__choice span strong { color: var(--color-primary, #008500); }
.c-dream-trip .c-trip-builder__choice input:checked + span { background: var(--color-primary-dark, #06402b); border-color: #ffffff; color: #ffffff; }
.c-dream-trip .c-trip-builder__choice input:checked + span strong,
.c-dream-trip .c-trip-builder__choice input:checked + span small { color: #ffffff; }

/* Trip-builder answer cards: hover animation — gentle lift, shadow and a
   green underline that grows in; respects reduced-motion. */
.c-dream-trip .c-trip-builder__choice span {
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.c-dream-trip .c-trip-builder__choice span::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: var(--color-primary, #008500);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .25s ease;
}
.c-dream-trip .c-trip-builder__choice:hover span {
    transform: translateY(-3px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
}
.c-dream-trip .c-trip-builder__choice:hover span::after { transform: scaleX(1); }
.c-dream-trip .c-trip-builder__choice:active span { transform: translateY(-1px); }
.c-dream-trip .c-trip-builder__choice input:checked + span::after { background: #ffffff; transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
    .c-dream-trip .c-trip-builder__choice span,
    .c-dream-trip .c-trip-builder__choice span::after { transition: none; }
    .c-dream-trip .c-trip-builder__choice:hover span { transform: none; }
}
