/* Canonical Yatriwala design tokens — the single source of truth for color,
   shadow and surface values across the whole site. themes/bc/dist/frontend/css/yatriwala.css
   aliases its own (older) variable names to these same values; see that file's :root. */
:root {
    --yw-bg: #f6f9fc;
    --yw-surface: #ffffff;
    --yw-ink: #172033;
    --yw-muted: #667085;
    --yw-line: #e2e8f0;
    --yw-primary: #0b5fc7;
    --yw-primary-dark: #062b73;
    --yw-accent: #ff7a00;
    --yw-accent-dark: #d9701a;
    --yw-accent-light: #ff9f4d;
    --yw-sun: #ffb648;
    --yw-navy: #062b73;
    --yw-soft: #eaf1ff;
    --yw-shadow: 0 18px 44px rgba(6, 43, 99, 0.12);
    --yw-shadow-soft: 0 10px 28px rgba(6, 43, 99, 0.08);
}

/* Site-wide theme switching removed 2026-08-08: the 11 named variants here
   never matched their same-named counterparts in themes/bc/dist/frontend/css/yatriwala.css
   (different variable vocabulary, independently authored per-theme values), so picking a
   theme in admin produced a different look on the homepage than on the rest of the site.
   Yatriwala now ships one unified, cross-file-consistent palette everywhere instead. */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html,
body {
    width: 100%;
    max-width: 100%;
}
body.yw-figma {
    min-width: 0;
    margin: 0;
    overflow-x: hidden;
    color: var(--yw-ink);
    background: var(--yw-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-rendering: optimizeLegibility;
}

/* Plain `a` (not `body.yw-figma a`) is deliberate: bootstrap.css was added later this session
   (for the login modal/dropdowns) and ships its own `a { color: #007bff }` at the same (0,0,1)
   specificity — this still wins that tie via source order (figma.css loads after bootstrap.css)
   without out-specificing any single-class component rule like `.yw-destination-card { color:
   #fff }`. The previous `body.yw-figma a` form was one specificity tier higher and was silently
   winning over those component colors instead of losing to them as intended. */
a { color: inherit; text-decoration: none; }
body.yw-figma img { display: block; max-width: 100%; }
body.yw-figma button,
body.yw-figma input,
body.yw-figma summary { font: inherit; }
body.yw-figma button { cursor: pointer; }
body.yw-figma main { overflow: hidden; }

.yw-container {
    width: min(1320px, calc(100% - 48px));
    margin: 0 auto;
}

.yw-skip,
.yw-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.yw-skip:focus {
    z-index: 1000;
    width: auto;
    height: auto;
    clip: auto;
    top: 14px;
    left: 14px;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow);
}

.yw-topbar {
    background: var(--yw-primary-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.yw-topbar .yw-container {
    display: flex;
    min-height: 30px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.yw-topbar a {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    color: var(--yw-sun);
    font-weight: 850;
}

.yw-topbar__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}

.yw-topbar__contacts,
.yw-topbar__socials {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.yw-topbar__contacts a,
.yw-topbar__contacts span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, .92);
    font-weight: 750;
    white-space: nowrap;
}

.yw-topbar__contacts a:hover {
    color: var(--yw-sun);
}

.yw-topbar__socials {
    color: rgba(255, 255, 255, .8);
    font-weight: 700;
}

.yw-topbar__socials a {
    width: 26px;
    height: 26px;
    min-height: 0;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.yw-topbar__socials a:hover {
    background: var(--yw-accent);
}

@media (max-width: 1023px) {
    /* Keep phone + WhatsApp (the two contact methods someone actually taps on a smaller screen)
       and drop email + the full office address, which just crowd this thin strip without adding
       anything a tablet visitor needs in the moment. */
    .yw-topbar__contacts a[href^="mailto:"],
    .yw-topbar__contacts span {
        display: none;
    }
}

.yw-header {
    position: sticky;
    top: 0;
    z-index: 80;
    border-bottom: 1px solid rgba(223, 232, 228, .86);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(16px);
    transition: box-shadow .2s ease, transform .2s ease;
}

body[data-yw-theme="night"] .yw-header { background: rgba(16, 24, 39, .9); }
.yw-header.is-shrunk { box-shadow: var(--yw-shadow-soft); }

.yw-nav {
    display: grid;
    min-height: 76px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
}

.yw-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    min-width: max-content;
}

.yw-brand__logo {
    display: block;
    width: clamp(176px, 14vw, 238px);
    height: 64px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 8px 18px rgba(6, 31, 103, .12));
}

.yw-brand__mark {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--yw-primary), var(--yw-primary-dark));
    color: #fff;
    box-shadow: 0 12px 26px rgba(7, 91, 81, .22);
    font-size: 22px;
    font-weight: 950;
}

.yw-brand strong {
    display: block;
    color: var(--yw-ink);
    font-size: 21px;
    line-height: 1;
    font-weight: 950;
}

.yw-brand small {
    display: block;
    margin-top: 3px;
    color: var(--yw-muted);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
}

.yw-nav__links,
.yw-nav__actions {
    display: flex;
    align-items: center;
}

.yw-nav__links {
    justify-content: center;
    gap: 8px;
}

.yw-nav__links a,
.yw-nav__dropdown-toggle {
    position: relative;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--yw-navy);
    font-size: 14.5px;
    font-weight: 850;
    white-space: nowrap;
    cursor: pointer;
}

.yw-nav__links a.is-active {
    color: var(--yw-accent);
}

.yw-nav__links a.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -8px;
    height: 2px;
    background: var(--yw-accent);
    border-radius: 999px;
}

.yw-nav__dropdown-toggle svg {
    width: 10px;
    height: 10px;
    transition: transform .15s ease;
}

.yw-nav__dropdown {
    position: relative;
}

.yw-nav__dropdown-panel {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 90;
    display: none;
    min-width: 200px;
    padding: 8px;
    border: 1px solid var(--yw-line);
    border-radius: 16px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow);
}

.yw-nav__dropdown:hover .yw-nav__dropdown-panel,
.yw-nav__dropdown:focus-within .yw-nav__dropdown-panel {
    display: block;
}

.yw-nav__dropdown:hover .yw-nav__dropdown-toggle svg,
.yw-nav__dropdown:focus-within .yw-nav__dropdown-toggle svg {
    transform: rotate(180deg);
}

.yw-nav__dropdown-panel a {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    color: var(--yw-ink);
    font-size: 13.5px;
    font-weight: 750;
    white-space: nowrap;
}

.yw-nav__dropdown-panel a:hover {
    background: var(--yw-soft);
    color: var(--yw-primary);
}

.yw-nav__dropdown-panel--mega {
    left: 0;
    transform: none;
    display: none;
    min-width: 780px;
    padding: 22px;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px 22px;
}

.yw-nav__dropdown:hover .yw-nav__dropdown-panel--mega,
.yw-nav__dropdown:focus-within .yw-nav__dropdown-panel--mega {
    display: grid;
}

.yw-mega__col {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.yw-mega__heading {
    margin: 0 0 6px;
    padding: 0 12px;
    color: var(--yw-navy);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.yw-mega__col .yw-nav__dropdown-panel a,
.yw-mega__col a {
    white-space: normal;
    line-height: 1.3;
}

.yw-mega__callout {
    padding: 14px;
    border-radius: 14px;
    background: var(--yw-soft, #eaf1ff);
}

.yw-mega__callout .yw-mega__heading {
    padding: 0;
}

.yw-mega__callout-text {
    margin: 0 0 10px;
    padding: 0;
    color: var(--yw-muted, #5b6b82);
    font-size: 12.5px;
    line-height: 1.4;
}

.yw-mega__callout-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 12px;
    margin-bottom: 6px;
    border-radius: 10px;
    background: var(--yw-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 750;
}

.yw-mega__callout-btn:hover {
    opacity: .92;
    color: #fff;
}

.yw-mega__callout-btn--whatsapp {
    margin-bottom: 0;
    background: #25d366;
}

@media (max-width: 1200px) {
    .yw-nav__dropdown-panel--mega {
        min-width: 640px;
        grid-template-columns: repeat(3, 1fr);
    }

    .yw-mega__callout {
        grid-column: span 3;
    }
}

.yw-nav__links small {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 3px;
    border-radius: 999px;
    padding: 2px 8px;
    color: var(--yw-primary);
    background: var(--yw-soft);
    font-size: 8.5px;
    line-height: 1.7;
    font-weight: 900;
    white-space: nowrap;
}

.yw-mobile-drawer small {
    border-radius: 999px;
    padding: 3px 7px;
    color: var(--yw-primary);
    background: var(--yw-soft);
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    white-space: nowrap;
}

.yw-nav__contact-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--yw-ink);
    font-size: 12.5px;
    font-weight: 800;
    white-space: nowrap;
}

.yw-nav__contact-link i {
    font-size: 13px;
    color: var(--yw-primary);
}

.yw-nav__contact-link--whatsapp {
    color: #1fa855;
}

.yw-nav__contact-link--whatsapp i {
    color: #25d366;
}

.yw-nav__auth-btn {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 20px;
    border-radius: 999px;
    background: var(--yw-primary);
    color: #fff !important;
    font-size: 13px;
    font-weight: 850;
    white-space: nowrap;
    box-shadow: 0 12px 24px rgba(7, 87, 165, .22);
}

.yw-nav__auth-btn:hover {
    background: var(--yw-primary-dark);
}

.yw-account--guest .yw-nav__auth-btn svg {
    width: 10px;
    height: 10px;
    margin-left: 6px;
    stroke: #fff;
    transition: transform .15s ease;
}

.yw-account--guest:hover .yw-nav__auth-btn svg,
.yw-account--guest:focus-within .yw-nav__auth-btn svg {
    transform: rotate(180deg);
}

.yw-account--guest .yw-nav__dropdown-panel {
    left: auto;
    right: 0;
    transform: none;
    min-width: 220px;
}

.yw-account__divider {
    height: 1px;
    margin: 6px 8px;
    background: var(--yw-line);
}

.yw-account__cta {
    justify-content: center;
    margin-top: 2px;
    background: var(--yw-soft);
    color: var(--yw-primary) !important;
    font-weight: 850;
}

.yw-nav__search-btn {
    min-width: 38px;
    min-height: 38px;
}

.yw-nav__search-btn:hover {
    background: var(--yw-soft);
}

.yw-nav__search-btn svg {
    width: 17px;
    height: 17px;
}

.yw-currency-badge {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    color: var(--yw-navy);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .02em;
    white-space: nowrap;
}

.yw-nav__actions {
    justify-content: flex-end;
    gap: 10px;
}

.yw-nav__utility {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 2px 0 4px;
    padding: 0 10px 0 0;
    border-right: 1px solid var(--yw-line);
    list-style: none;
}

.yw-nav__utility > li {
    position: relative;
    list-style: none;
}

.yw-nav__utility .is_login {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 12px;
    border-radius: 999px;
    color: var(--yw-ink);
    background: transparent;
    font-size: 12.5px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .02em;
    transition: background .15s;
}

.yw-nav__utility .is_login:hover,
.yw-nav__utility .dropdown.show .is_login {
    background: var(--yw-soft);
}

.yw-nav__utility .is_login .fa {
    font-size: 10px;
    opacity: .7;
}

.yw-nav__utility .dropdown-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 116px;
    margin: 0;
    padding: 6px;
    border: 1px solid var(--yw-line);
    border-radius: 14px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow);
    list-style: none;
}

.yw-nav__utility .dropdown-menu li {
    list-style: none;
}

.yw-nav__utility .dropdown-menu a {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    border-radius: 9px;
    color: var(--yw-ink);
    font-size: 13px;
    font-weight: 750;
}

.yw-nav__utility .dropdown-menu a:hover {
    background: var(--yw-soft);
    color: var(--yw-primary);
}

.yw-ghost-link,
.yw-primary-link,
.yw-profile-link,
.yw-icon-btn {
    min-width: 44px;
    min-height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.yw-ghost-link {
    gap: 8px;
    padding: 0 15px;
    border: 1px solid var(--yw-line);
    color: var(--yw-ink);
    background: var(--yw-surface);
    font-size: 13px;
    font-weight: 850;
}

.yw-primary-link {
    padding: 0 18px;
    color: #fff;
    background: var(--yw-accent);
    box-shadow: 0 14px 30px rgba(245, 130, 32, .24);
    font-size: 14px;
    font-weight: 950;
}

.yw-profile-link {
    border: 1px solid var(--yw-line);
    background: var(--yw-surface);
}

.yw-ghost-link svg,
.yw-profile-link svg,
.yw-icon-btn svg,
.yw-mobile-tabbar svg {
    width: 20px;
    height: 20px;
}

.yw-menu-toggle,
.yw-mobile-sticky-search {
    display: none;
}

.yw-icon-btn {
    border: 0;
    color: var(--yw-ink);
    background: var(--yw-surface);
}

.yw-mobile-drawer,
.yw-menu-scrim {
    display: none;
}

.yw-hero {
    position: relative;
    min-height: 624px;
    overflow: hidden;
    background: var(--yw-primary-dark);
}

.yw-hero__media {
    position: absolute;
    inset: 0;
}

.yw-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.yw-hero__media:after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(90deg, rgba(5, 31, 29, .84), rgba(5, 31, 29, .48) 48%, rgba(5, 31, 29, .16)),
        linear-gradient(180deg, rgba(5, 31, 29, .04), rgba(5, 31, 29, .5));
}

.yw-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 624px;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: center;
    gap: 54px;
    padding: 86px 0 128px;
}

.yw-hero__copy {
    max-width: 760px;
}

.yw-hero h1 {
    margin: 0;
    color: #fff;
    font-size: 56px;
    line-height: 1.02;
    letter-spacing: 0;
    font-weight: 950;
}

.yw-hero h1 .yw-hero__accent {
    display: block;
    color: var(--yw-accent);
}

.yw-hero p {
    max-width: 660px;
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: 18px;
    line-height: 1.62;
    font-weight: 650;
}

.yw-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.yw-hero__eyebrow {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--yw-accent);
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.yw-btn--outline:hover {
    background: var(--yw-soft);
}

.yw-hero__collage-wrap {
    position: relative;
    flex: 0 0 auto;
    width: min(420px, 100%);
}

.yw-hero__offer-card {
    position: absolute;
    top: -8px;
    right: 12px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 154px;
    padding: 14px 16px;
    border-radius: 16px;
    background: var(--yw-surface);
    box-shadow: 0 16px 34px rgba(6, 31, 103, .22);
    color: var(--yw-ink);
}

.yw-hero__offer-label {
    color: var(--yw-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.yw-hero__offer-place {
    font-size: 16px;
    font-weight: 950;
    line-height: 1.15;
}

.yw-hero__offer-price {
    margin-top: 2px;
    color: var(--yw-muted);
    font-size: 10.5px;
    font-weight: 700;
}

.yw-hero__offer-price b {
    display: block;
    color: var(--yw-primary);
    font-size: 15px;
    font-weight: 950;
}

.yw-hero__offer-cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    color: var(--yw-accent);
    font-size: 11px;
    font-weight: 900;
    font-style: normal;
}

@media (max-width: 1023px) {
    .yw-hero__offer-card {
        display: none;
    }
}

.yw-hero__collage-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    grid-template-rows: repeat(2, 1fr);
    gap: 0;
    height: 400px;
}

.yw-hero__collage-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 0 18px 40px rgba(6, 31, 103, .16);
}

/* Large left photo: angled right edge, sits above its two right-column neighbours (z-index +
   negative margin) so the diagonal cut reads as one continuous seam instead of leaving a gap. */
.yw-hero__slider {
    grid-row: 1 / 3;
    position: relative;
    z-index: 2;
    margin-right: -28px;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);
    border-radius: 22px 0 0 22px;
}

.yw-hero__slide-img {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity .7s ease;
}

.yw-hero__slide-img.is-active {
    z-index: 2;
    opacity: 1;
}

.yw-hero__slider-dots {
    position: absolute;
    left: 50%;
    bottom: 16px;
    z-index: 4;
    display: flex;
    gap: 7px;
    transform: translateX(-50%);
}

.yw-hero__slider-dots button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    cursor: pointer;
    transition: width .2s ease, background .2s ease;
}

.yw-hero__slider-dots button.is-active {
    width: 20px;
    background: #fff;
}

.yw-hero__collage-grid img:nth-child(2) {
    border-radius: 0 22px 0 0;
    margin-bottom: 6px;
}

.yw-hero__collage-grid img:nth-child(3) {
    border-radius: 0 0 22px 0;
    margin-top: 6px;
}

.yw-hero__collage-peek {
    position: absolute;
    left: 46px;
    bottom: -16px;
    z-index: 1;
    width: 116px;
    height: 80px;
    border-radius: 18px;
    object-fit: cover;
    box-shadow: 0 14px 30px rgba(6, 31, 103, .2);
    border: 4px solid var(--yw-surface);
}

.yw-hero__token-badge {
    position: absolute;
    left: -14px;
    bottom: -8px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 104px;
    height: 104px;
    border-radius: 50%;
    border: 4px solid var(--yw-surface);
    background: conic-gradient(from 180deg, var(--yw-primary), var(--yw-accent), var(--yw-primary));
    box-shadow: 0 18px 40px rgba(6, 31, 103, .28);
    text-align: center;
    color: #fff;
}

.yw-hero__token-badge span {
    display: block;
    font-size: 8.5px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .9;
}

.yw-hero__token-badge strong {
    display: block;
    max-width: 76px;
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.15;
    font-weight: 950;
}

.yw-hero__token-badge em {
    display: block;
    margin-top: 3px;
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
    opacity: .85;
}


.yw-btn {
    min-height: 48px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 950;
}

.yw-btn--primary {
    color: #fff;
    background: var(--yw-accent);
    box-shadow: 0 18px 34px rgba(245, 130, 32, .25);
}

.yw-btn--light {
    color: #fff !important;
    border-color: rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(10px);
}

.yw-btn--dark {
    width: max-content;
    color: #fff;
    background: var(--yw-navy);
}

.yw-btn--outline {
    color: var(--yw-primary-dark) !important;
    border-color: var(--yw-primary-dark);
    background: transparent;
}

.yw-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.yw-trust-row span {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    padding: 0 13px;
    color: var(--yw-primary-dark);
    background: var(--yw-surface);
    font-size: 12px;
    font-weight: 850;
}

.yw-hero-card {
    overflow: hidden;
    align-self: end;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 26px;
    background: rgba(255, 255, 255, .18);
    box-shadow: 0 26px 60px rgba(0, 0, 0, .22);
    backdrop-filter: blur(18px);
}

.yw-hero-card img {
    width: 100%;
    aspect-ratio: 1.35;
    object-fit: cover;
}

.yw-hero-card div {
    display: grid;
    gap: 8px;
    padding: 18px;
}

.yw-hero-card span {
    color: var(--yw-sun);
    font-size: 12px;
    font-weight: 900;
}

.yw-hero-card strong {
    color: #fff;
    font-size: 22px;
    line-height: 1.16;
}

.yw-hero-card small {
    color: rgba(255, 255, 255, .78);
    font-size: 13px;
    font-weight: 700;
}

.yw-hero-card a {
    min-height: 42px;
    margin-top: 6px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--yw-ink);
    background: var(--yw-sun);
    font-size: 13px;
    font-weight: 950;
}

.yw-page-sections {
    display: flex;
    flex-direction: column;
}

.yw-search-panel {
    position: relative;
    z-index: 4;
    margin-top: -82px;
    border: 1px solid rgba(255, 255, 255, .62);
    border-radius: 26px;
    padding: 18px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow);
}

.yw-search-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.yw-search-panel__head a,
.yw-link-arrow {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: var(--yw-primary);
    font-size: 14px;
    font-weight: 950;
}

.yw-search-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.yw-search-steps span {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 12px;
    color: var(--yw-primary-dark);
    background: var(--yw-soft);
    font-size: 12px;
    font-weight: 900;
}

.yw-service-tabs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    padding: 3px 0 14px;
}

.yw-package-rail::-webkit-scrollbar {
    display: none;
}

.yw-service-tabs button {
    min-height: 80px;
    border: 1px solid var(--yw-line);
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 14px;
    color: var(--yw-ink);
    background: #fff;
    font-size: 16px;
    font-weight: 900;
    position: relative;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.yw-service-tabs button:hover {
    border-color: var(--yw-primary);
    box-shadow: 0 6px 16px rgba(6, 43, 115, .1);
    transform: translateY(-1px);
}

.yw-service-tabs button .yw-service-tab-icon {
    color: var(--yw-primary);
}

.yw-service-tabs button.is-active {
    color: #fff;
    border-color: var(--yw-primary);
    background: var(--yw-primary);
}

.yw-service-tabs button.is-active:hover {
    transform: none;
    box-shadow: none;
}

.yw-service-tabs button.is-active .yw-service-tab-icon {
    color: #fff;
}

.yw-service-tab-icon {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.yw-service-tab-icon svg {
    width: 24px;
    height: 24px;
}

.yw-service-tab-label {
    min-width: 0;
}

.yw-service-tabs button small {
    margin-left: 2px;
    border-radius: 999px;
    padding: 4px 7px;
    color: var(--yw-primary);
    background: var(--yw-soft);
    font-size: 9px;
    line-height: 1;
    font-weight: 950;
    white-space: nowrap;
}

.yw-search-form {
    display: grid;
    grid-template-columns: 1.15fr .8fr .75fr minmax(110px, auto);
    gap: 0;
    align-items: stretch;
    border: 1px solid var(--yw-line);
    border-radius: 18px;
    background: #fbfdfc;
    overflow: hidden;
}

/* One continuous bar with dividers between fields, not each field as its own boxed card —
   reads as a single confident search instrument (matches established travel-search patterns)
   rather than a stack of separate form controls. */
.yw-search-form label,
.yw-search-form details {
    min-width: 0;
    padding: 12px 16px;
}

.yw-search-form label:not(:first-of-type),
.yw-search-form details:not(:first-of-type) {
    border-left: 1px solid var(--yw-line);
}

.yw-search-form span,
.yw-search-form summary {
    display: block;
    color: var(--yw-muted);
    font-size: 12px;
    font-weight: 900;
}

.yw-search-form span.yw-search-form__label-row {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--yw-navy);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.yw-search-form__label-row i {
    color: var(--yw-accent);
    font-size: 14px;
}

.yw-search-form__label-row span {
    display: inline;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.yw-search-form__chevron {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    color: var(--yw-muted);
    font-size: 16px;
    pointer-events: none;
}

.yw-search-form label {
    position: relative;
    padding-right: 34px;
}

.yw-search-form input {
    width: 100%;
    min-height: 32px;
    border: 0;
    outline: 0;
    color: var(--yw-ink);
    background: transparent;
    font-size: 16px;
    font-weight: 850;
}

.yw-search-form input:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--yw-accent) 72%, #fff);
    outline-offset: 2px;
    border-radius: 6px;
}

.yw-search-form input::placeholder { color: #96a39f; }
.yw-search-form input:disabled {
    color: var(--yw-muted);
    cursor: not-allowed;
}
.yw-search-form details { grid-column: span 3; }
.yw-search-form details > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.yw-search-form summary {
    min-height: 32px;
    cursor: pointer;
}

.yw-search-form > button {
    min-height: 62px;
    margin: 8px;
    border: 0;
    border-radius: 14px;
    color: #fff;
    background: var(--yw-accent);
    box-shadow: 0 16px 32px rgba(245, 130, 32, .2);
    font-size: 15px;
    font-weight: 950;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.yw-search-form > button:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
    box-shadow: 0 20px 40px rgba(255, 122, 0, .3);
}

.yw-search-form__notice {
    display: none;
    grid-column: 1 / -1;
    margin: 0 0 2px;
    color: var(--yw-muted);
    font-size: 13px;
    font-weight: 700;
}

.yw-search-form label[data-yw-dropdown-field] input[data-search-input] {
    cursor: pointer;
}

.yw-search-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: max-content;
    min-width: 260px;
    padding: 16px;
    border: 1px solid var(--yw-line);
    border-radius: 16px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow);
}

.yw-search-dropdown__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.yw-search-dropdown__row strong {
    display: block;
    color: var(--yw-ink);
    font-size: 14px;
    font-weight: 850;
}

.yw-search-dropdown__row small {
    display: block;
    color: var(--yw-muted);
    font-size: 11.5px;
    font-weight: 650;
}

.yw-search-dropdown__stepper {
    display: flex;
    align-items: center;
    gap: 12px;
}

.yw-search-dropdown__stepper button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--yw-primary);
    background: var(--yw-soft);
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
}

.yw-search-dropdown__stepper button:hover {
    background: var(--yw-primary);
    color: #fff;
}

.yw-search-dropdown__stepper span {
    display: block;
    min-width: 18px;
    color: var(--yw-ink);
    font-size: 14px;
    font-weight: 850;
    text-align: center;
}

.yw-search-dropdown__apply {
    min-height: 42px;
    border: 0;
    border-radius: 12px;
    background: var(--yw-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 850;
}

.yw-search-dropdown--budget {
    min-width: 220px;
}

.yw-search-dropdown__preset {
    min-height: 42px;
    border: 1px solid var(--yw-line);
    border-radius: 12px;
    padding: 0 14px;
    color: var(--yw-ink);
    background: #fff;
    font-size: 13.5px;
    font-weight: 800;
    text-align: left;
}

.yw-search-dropdown__preset:hover {
    border-color: var(--yw-primary);
}

.yw-search-dropdown__preset.is-active {
    border-color: var(--yw-primary);
    background: var(--yw-soft);
    color: var(--yw-primary);
}

.yw-search-dropdown__preset--any {
    color: var(--yw-muted);
}

.yw-search-form--notify {
    grid-template-columns: 1fr minmax(150px, auto);
}

.yw-search-form--notify .yw-search-form__notice {
    display: block;
}

.yw-search-form--notify > button {
    background: var(--yw-primary);
    box-shadow: 0 16px 32px rgba(7, 87, 165, .18);
}

.yw-search-form label[hidden],
.yw-search-form details[hidden] {
    display: none;
}

.yw-search-form__redirect {
    display: none;
    grid-column: 1 / -1;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.yw-search-form--redirect .yw-search-form__redirect {
    display: flex;
}

.yw-search-form__redirect p {
    margin: 0;
    color: var(--yw-muted);
    font-size: 13px;
    font-weight: 700;
    max-width: 460px;
}

.yw-search-form__redirect .yw-btn {
    flex-shrink: 0;
}

.yw-smart-row {
    order: 15;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding-top: 28px;
}

.yw-app-banners {
    order: 16;
    padding-top: 24px;
}

.yw-section-head--compact {
    margin-bottom: 14px;
}

.yw-section-head--compact h2 {
    font-size: clamp(24px, 2.4vw, 34px);
}

.yw-app-banners__rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(340px, 1fr);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-padding-inline: 2px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.yw-app-banners__rail::-webkit-scrollbar {
    display: none;
}

.yw-offer-banner {
    position: relative;
    min-width: 0;
    min-height: 206px;
    overflow: hidden;
    border-radius: 28px;
    display: grid;
    align-content: end;
    gap: 7px;
    padding: 24px;
    color: #fff;
    background-image:
        linear-gradient(180deg, rgba(5, 31, 29, .08), rgba(5, 31, 29, .78)),
        var(--offer-image);
    background-position: center;
    background-size: cover;
    box-shadow: var(--yw-shadow-soft);
    isolation: isolate;
    scroll-snap-align: start;
}

.yw-offer-banner--blue {
    background-image:
        linear-gradient(135deg, rgba(6, 43, 99, .9), rgba(7, 87, 165, .56), rgba(5, 31, 29, .18)),
        var(--offer-image);
}

.yw-offer-banner--orange {
    background-image:
        linear-gradient(135deg, rgba(245, 130, 32, .92), rgba(255, 209, 102, .5), rgba(5, 31, 29, .24)),
        var(--offer-image);
}

.yw-offer-banner--green {
    background-image:
        linear-gradient(135deg, rgba(7, 91, 81, .92), rgba(11, 122, 108, .56), rgba(5, 31, 29, .16)),
        var(--offer-image);
}

.yw-offer-banner--dark {
    background-image:
        linear-gradient(135deg, rgba(8, 27, 47, .95), rgba(6, 43, 99, .64), rgba(5, 31, 29, .24)),
        var(--offer-image);
}

.yw-offer-banner span,
.yw-offer-banner em {
    width: max-content;
    max-width: 100%;
    min-height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    padding: 0 11px;
    color: var(--yw-ink);
    background: var(--yw-sun);
    font-size: 12px;
    font-style: normal;
    font-weight: 950;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-offer-banner strong {
    max-width: 390px;
    color: #fff;
    font-size: 24px;
    line-height: 1.06;
    font-weight: 950;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .28);
    overflow-wrap: anywhere;
}

.yw-offer-banner small {
    display: block;
    max-width: 100%;
    color: rgba(255, 255, 255, .84);
    font-size: 13px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-offer-banner em {
    margin-top: 6px;
    color: #fff;
    background: var(--yw-accent);
}

.yw-service-dock {
    order: 14;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    padding-top: 28px;
}

.yw-service-dock a {
    min-height: 96px;
    border: 1px solid var(--yw-line);
    border-radius: 22px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 8px;
    padding: 12px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
    position: relative;
}

.yw-service-dock span {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-primary);
    font-size: 18px;
    font-weight: 950;
}

.yw-service-dock span svg {
    width: 22px;
    height: 22px;
    stroke-width: 2.1;
}

.yw-service-dock strong {
    color: var(--yw-ink);
    font-size: 13px;
    line-height: 1.1;
    text-align: center;
    font-weight: 950;
}

.yw-service-dock small {
    border-radius: 999px;
    padding: 4px 8px;
    color: #fff;
    background: var(--yw-accent);
    font-size: 9px;
    line-height: 1;
    font-weight: 950;
}

.yw-smart-row a {
    min-height: 96px;
    border: 1px solid var(--yw-line);
    border-radius: 20px;
    display: grid;
    align-content: center;
    gap: 6px;
    padding: 18px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-smart-row span {
    color: var(--yw-muted);
    font-size: 12px;
    font-weight: 900;
}

.yw-smart-row strong {
    font-size: 18px;
    line-height: 1.22;
}

.yw-section {
    padding-top: 72px;
    padding-bottom: 18px;
}

.yw-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
}

.yw-section-head__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.yw-rail-controls {
    display: inline-flex;
    gap: 8px;
}

.yw-rail-controls button {
    width: 44px;
    height: 44px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--yw-ink);
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-rail-controls svg {
    width: 20px;
    height: 20px;
}

.yw-snap-rail {
    scroll-behavior: smooth;
}

.yw-section-head h2,
.yw-split-section__intro h2,
.yw-newsletter h2 {
    margin: 0;
    color: var(--yw-ink);
    font-size: 40px;
    line-height: 1.08;
    letter-spacing: 0;
    font-weight: 950;
}

.yw-section-head p,
.yw-split-section__intro p,
.yw-newsletter p {
    max-width: 620px;
    margin: 10px 0 0;
    color: var(--yw-muted);
    font-size: 16px;
    line-height: 1.55;
    font-weight: 650;
}

.yw-package-grid {
    display: grid;
    gap: 20px;
}

.yw-package-card,
.yw-package-card * {
    min-width: 0;
}

.yw-package-card {
    overflow: hidden;
}

.yw-package-card__topline {
    grid-template-columns: auto minmax(0, 1fr) minmax(88px, auto);
}

.yw-package-card__topline strong,
.yw-package-card__topline small,
.yw-package-card__location span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card h3 a {
    display: -webkit-box;
    min-height: 2.35em;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow-wrap: anywhere;
}

.yw-package-card__includes {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.yw-package-card__includes span {
    overflow: hidden;
}

.yw-package-card__includes span svg {
    flex: 0 0 auto;
}

.yw-package-card__includes span {
    white-space: nowrap;
    text-overflow: ellipsis;
}

.yw-package-card__details {
    color: #fff !important;
}

.yw-package-grid--featured {
    display: flex;
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.yw-package-grid--featured::-webkit-scrollbar,
.yw-package-rail::-webkit-scrollbar {
    display: none;
}

.yw-package-grid--featured .yw-package-card,
.yw-package-rail .yw-package-card {
    flex: 0 0 clamp(280px, calc((100% - 60px) / 4), 318px);
    scroll-snap-align: start;
}

/* yatriwala-production.css has an unconditional `.yw-package-card { width: 100% !important;
   flex: initial !important; max-width: none !important; }` meant for grid-context cards.
   It also matches these rail/featured-carousel cards and was blowing them up to ~385px
   (vs ~282px everywhere else). Higher specificity + !important wins regardless of file order. */
.yw-package-grid--featured .yw-package-card,
.yw-package-rail .yw-package-card {
    width: auto !important;
    flex: 0 0 clamp(280px, calc((100% - 60px) / 4), 318px) !important;
    min-width: 0 !important;
    max-width: 318px !important;
}

.yw-package-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--yw-line);
    border-radius: 22px;
    background: var(--yw-surface);
    box-shadow: 0 18px 42px rgba(10, 31, 28, .1);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.yw-package-card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--yw-primary) 28%, var(--yw-line));
    box-shadow: 0 26px 56px rgba(10, 31, 28, .14);
}

.yw-package-card__topline {
    min-height: 52px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) minmax(76px, auto);
    align-items: center;
    gap: 10px;
    padding: 10px 13px;
    background: linear-gradient(135deg, #ffd84d, #fff06b);
}

.yw-package-card__avatar {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-primary);
    font-size: 15px;
    font-weight: 950;
}

.yw-package-card__topline div {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.yw-package-card__topline strong,
.yw-package-card__topline small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card__topline strong {
    color: var(--yw-ink);
    font-size: 12px;
    font-weight: 950;
}

.yw-package-card__topline small {
    color: color-mix(in srgb, var(--yw-ink) 72%, var(--yw-muted));
    font-size: 11px;
    font-weight: 800;
}

.yw-package-card__media {
    position: relative;
    display: block;
    overflow: hidden;
}

.yw-package-card__ribbon {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 3;
    padding: 5px 12px;
    border-radius: 999px;
    color: #fff;
    background: var(--yw-primary);
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .02em;
    box-shadow: 0 8px 18px rgba(6, 31, 103, .22);
}

.yw-package-card__ribbon--red { background: #e0403a; }
.yw-package-card__ribbon--orange { background: var(--yw-accent); }
.yw-package-card__ribbon--purple { background: #7b3ff2; }
.yw-package-card__ribbon--teal { background: #0e8275; }
.yw-package-card__ribbon--blue { background: var(--yw-primary); }
.yw-package-card__ribbon--brown { background: #9d6b2f; }

/* !important required: this file has multiple pre-existing rules targeting a bare
   `.yw-package-card__media span` (e.g. `.yw-package-card:not(.yw-package-card--dense)
   .yw-package-card__media span`) with higher specificity than any reasonable class-based
   selector can reach without matching chaos — .yw-package-card__fixed-badge is still a <span>,
   so it inherits their bottom-left positioning unless forced back to top-right here. */
.yw-package-card__media .yw-package-card__fixed-badge {
    position: absolute !important;
    top: 12px !important;
    bottom: auto !important;
    left: auto !important;
    right: 52px !important;
    max-width: none !important;
    width: auto !important;
    min-width: fit-content !important;
    white-space: nowrap !important;
    flex: none !important;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #fff;
    color: var(--yw-navy, #062b73);
    font-size: 10.5px;
    font-weight: 850;
    box-shadow: 0 8px 18px rgba(6, 31, 103, .18);
}

.yw-package-card__fixed-badge i {
    color: var(--yw-accent);
    font-size: 10px;
}

/* Icon-only everywhere: card image-overlay space is tight and shared with the ribbon + save
   button across every card width this component renders at, and the departure date / spots-left
   info is already shown as text in the card's meta row below — this badge is a supplementary
   flag, not the only place the information lives. Full label stays available to assistive tech
   via aria-label and sighted users via the native title tooltip. */
.yw-package-card__fixed-badge-label {
    display: none;
}

.yw-package-card__fixed-badge {
    padding: 7px !important;
}

.yw-package-card--dense .yw-package-card__fixed-badge {
    padding: 5px !important;
}

.yw-package-card--dense .yw-package-card__fixed-badge {
    top: 10px !important;
    right: 44px !important;
    padding: 3px 9px;
    font-size: 9px;
}

.yw-package-card__meta span.is-urgent,
.yw-package-card__category-chip.is-urgent {
    color: #ef4444;
}

.yw-package-card__meta span.is-urgent i,
.yw-package-card__category-chip.is-urgent i {
    color: #ef4444;
}

.yw-package-card__location-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.yw-package-card__rating {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--yw-ink);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.yw-package-card__rating i {
    color: #f5a623;
    font-size: 12px;
}

.yw-package-card__rating em {
    color: var(--yw-muted);
    font-style: normal;
    font-weight: 700;
}

.yw-package-card__media img {
    width: 100%;
    aspect-ratio: 1.48;
    object-fit: cover;
    transition: transform .35s ease;
}

.yw-package-card:hover .yw-package-card__media img { transform: scale(1.04); }

.yw-package-card__media span,
.yw-package-card__media em,
.yw-package-card__media b {
    position: absolute;
    z-index: 2;
    min-height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    padding: 0 11px;
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    font-style: normal;
}

.yw-package-card__media span {
    left: 12px;
    bottom: 12px;
    min-height: 32px;
    color: var(--yw-ink);
    background: var(--yw-sun);
}

.yw-package-card__media em {
    top: 12px;
    right: 12px;
    color: #fff;
    background: #ef233c;
}

.yw-package-card__media b {
    top: 12px;
    left: 12px;
    color: #fff;
    background: var(--yw-primary);
}

.yw-package-card__body {
    display: grid;
    gap: 10px;
    padding: 14px 15px 15px;
}

.yw-package-card__location {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    color: var(--yw-muted);
    font-size: 12px;
    font-weight: 850;
}

.yw-package-card__location svg {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    color: var(--yw-ink);
}

.yw-package-card__location span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--yw-muted);
    font-size: 12px;
    font-weight: 850;
}

.yw-package-card h3 {
    margin: 0;
    color: var(--yw-ink);
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: 0;
    font-weight: 950;
}

.yw-package-card p {
    margin: 0;
    color: var(--yw-muted);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
}

.yw-package-card__seats {
    display: grid;
    gap: 7px;
    padding-top: 4px;
}

.yw-package-card__seats div {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 12px;
}

.yw-package-card__seats strong {
    color: #ef233c;
    font-weight: 950;
}

.yw-package-card__seats span {
    color: var(--yw-muted);
    font-weight: 800;
}

.yw-package-card__seats i {
    position: relative;
    display: block;
    height: 4px;
    border-radius: 999px;
    overflow: hidden;
    background: color-mix(in srgb, var(--yw-line) 70%, #fff);
}

.yw-package-card__seats i:before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--seat-progress, 52%);
    border-radius: inherit;
    background: #ef4444;
}

.yw-package-card__bottom {
    display: grid;
    gap: 12px;
    padding-top: 11px;
    border-top: 1px solid var(--yw-line);
}

.yw-package-card__bottom > strong,
.yw-horizontal-card strong {
    color: var(--yw-primary-dark);
    font-size: 18px;
    font-weight: 950;
}

.yw-package-card__bottom > strong small {
    display: inline-block;
    margin-right: 6px;
    color: var(--yw-muted);
    font-size: 12px;
    text-decoration: line-through;
    font-weight: 800;
}

.yw-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.yw-card-actions button,
.yw-card-actions a {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}

.yw-card-actions button {
    color: var(--yw-muted);
}

.yw-card-actions button svg {
    width: 18px;
    height: 18px;
}

.yw-card-actions button.is-active {
    color: #fff;
    border-color: var(--yw-primary);
    background: var(--yw-primary);
}

.yw-card-actions a {
    margin-left: auto;
    min-width: 108px;
    padding: 0 16px;
    color: #fff;
    border-color: var(--yw-primary);
    background: var(--yw-primary-dark);
    font-size: 12px;
    font-weight: 950;
}

.yw-band {
    margin-top: 64px;
    padding: 0 0 58px;
}

.yw-band--mint {
    background: linear-gradient(180deg, transparent 0, transparent 64px, var(--yw-soft) 64px, var(--yw-soft) 100%);
}

.yw-package-rail {
    display: flex;
    overflow-x: auto;
    gap: 18px;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.yw-package-card--compact .yw-package-card__media img { aspect-ratio: 1.1; }

/* App-like travel commerce cards for Yatriwala package rails */
.yw-package-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: 24px;
}

.yw-package-card__topline {
    min-height: 58px;
    padding: 12px 16px;
    background: linear-gradient(135deg, rgba(0, 117, 98, .08), rgba(255, 212, 79, .18));
}

.yw-package-card__avatar {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    background: var(--yw-primary-dark);
}

.yw-package-card__avatar svg {
    width: 18px;
    height: 18px;
}

.yw-package-card__topline > strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--yw-ink);
    font-size: 13px;
    font-weight: 950;
}

.yw-package-card__topline > small {
    justify-self: end;
    max-width: 100%;
    color: var(--yw-primary-dark);
    font-size: 11px;
    font-weight: 900;
}

.yw-package-card__media a {
    display: block;
}

.yw-package-card__media img,
.yw-package-card--compact .yw-package-card__media img {
    display: block;
    aspect-ratio: 1.16;
}

.yw-package-card__media span {
    top: 12px;
    bottom: auto;
    left: 12px;
    min-height: 32px;
    gap: 6px;
    color: var(--yw-ink);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 18px rgba(10, 31, 28, .13);
}

.yw-package-card__media span i,
.yw-package-card__includes svg,
.yw-package-card__meta svg {
    display: inline-flex;
    width: 14px;
    height: 14px;
}

.yw-package-card__media b {
    top: 12px;
    left: 154px;
    min-width: 42px;
    justify-content: center;
    color: #fff;
    background: #6758f3;
}

.yw-package-card__media em {
    top: 14px;
    right: -27px;
    width: 96px;
    min-width: 96px;
    height: 30px;
    min-height: 30px;
    justify-content: center;
    border-radius: 0;
    padding: 0;
    transform: rotate(45deg);
    background: #d80f3e;
    box-shadow: 0 10px 22px rgba(216, 15, 62, .24);
}

.yw-package-card__save {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 3;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(18, 58, 50, .9);
    box-shadow: 0 12px 28px rgba(10, 31, 28, .24);
}

.yw-package-card__save svg {
    width: 20px;
    height: 20px;
}

.yw-package-card__save.is-active,
.yw-package-card__save[aria-pressed="true"] {
    background: var(--yw-accent);
}

/* The core wishlist AJAX handler (public_html/js/home.js) replaces this button's
   whole class attribute after a click, dropping .yw-package-card__save — so the
   positioning also has to hold via the ancestor-scoped .service-wishlist selector. */
.yw-package-card__media .service-wishlist {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 3;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(18, 58, 50, .9);
    box-shadow: 0 12px 28px rgba(10, 31, 28, .24);
}

.yw-package-card__media .service-wishlist.active,
.yw-package-card__media .service-wishlist.is-active {
    background: var(--yw-accent);
}

.yw-package-card__body {
    flex: 1;
    gap: 14px;
    padding: 18px 20px 20px;
}

.yw-package-card__location {
    font-size: 13px;
}

.yw-package-card h3 {
    font-size: 21px;
    line-height: 1.2;
}

.yw-package-card__includes {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
}

.yw-package-card__includes span {
    min-width: 0;
    min-height: 56px;
    border: 1px solid var(--yw-line);
    border-radius: 8px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--yw-primary-dark);
    background: color-mix(in srgb, var(--yw-soft) 68%, #fff);
    font-size: 10px;
    font-weight: 950;
}

.yw-package-card__meta {
    gap: 8px;
}

.yw-package-card__meta span {
    min-height: 32px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 11px;
    background: #fbfcf8;
}

.yw-package-card__price {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.yw-package-card__price--quote {
    justify-content: flex-start;
}

.yw-package-card__price--quote > span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--yw-soft);
    color: var(--yw-primary-dark);
    font-size: 13px;
    font-weight: 800;
}

.yw-package-card__price > span {
    color: var(--yw-muted);
    font-size: 15px;
    font-weight: 750;
}

.yw-package-card__price strong {
    display: grid;
    justify-items: end;
    min-width: 0;
    max-width: 100%;
    color: #172040;
    font-size: 25px;
    line-height: 1.04;
    font-weight: 950;
}

.yw-package-card__price small {
    color: #e63b4f;
    font-size: 14px;
    text-decoration: line-through;
}

.yw-package-card__details {
    min-height: 48px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-primary-dark);
    font-size: 13px;
    font-weight: 950;
}

.yw-package-card__mobile-actions {
    display: none;
}

.yw-package-card__quick-actions {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 3;
    display: flex;
    gap: 8px;
}

.yw-package-card__quick-actions button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(18, 58, 50, .78);
    box-shadow: 0 12px 28px rgba(10, 31, 28, .2);
}

.yw-package-card__desktop-actions {
    display: flex;
    gap: 10px;
}

.yw-package-card__desktop-actions a {
    flex: 1;
    min-height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 800;
}

.yw-package-card__desktop-actions a:first-child {
    color: var(--yw-primary-dark);
    background: var(--yw-soft);
}

.yw-package-card__desktop-actions a:last-child {
    color: #fff;
    background: var(--yw-accent);
}

@media (max-width: 767px) {
    .yw-package-card__desktop-actions {
        display: none;
    }
}

.yw-split-section {
    display: grid;
    grid-template-columns: .74fr 1.26fr;
    gap: 32px;
    align-items: start;
}

.yw-split-section__intro {
    position: sticky;
    top: 116px;
    display: grid;
    gap: 20px;
}

.yw-horizontal-list {
    display: grid;
    gap: 16px;
}

.yw-horizontal-card {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 18px;
    overflow: hidden;
    border: 1px solid var(--yw-line);
    border-radius: 24px;
    padding: 12px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-horizontal-card img {
    width: 100%;
    height: 176px;
    border-radius: 18px;
    object-fit: cover;
}

.yw-horizontal-card div {
    min-width: 0;
    display: grid;
    align-content: center;
    gap: 8px;
}

.yw-horizontal-card span {
    color: var(--yw-accent);
    font-size: 12px;
    font-weight: 950;
}

.yw-horizontal-card h3 {
    margin: 0;
    color: var(--yw-ink);
    font-size: 24px;
    line-height: 1.15;
    font-weight: 950;
}

.yw-horizontal-card p {
    margin: 0;
    color: var(--yw-muted);
    font-size: 14px;
    font-weight: 700;
}

.yw-horizontal-card a {
    width: max-content;
    min-height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    padding: 0 15px;
    color: #fff;
    background: var(--yw-primary);
    font-size: 13px;
    font-weight: 950;
}

.yw-destination-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.yw-destination-card {
    position: relative;
    min-height: 220px;
    overflow: hidden;
    border-radius: 24px;
    display: grid;
    align-content: end;
    padding: 16px;
    color: #fff;
    isolation: isolate;
}

.yw-destination-card img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.yw-destination-card:after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.72));
}

.yw-destination-card span {
    font-size: 12px;
    line-height: 1.35;
    font-weight: 800;
}

.yw-destination-card strong {
    margin-top: 6px;
    font-size: 22px;
    line-height: 1.05;
    font-weight: 950;
}

.yw-why-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.yw-why-grid article {
    border: 1px solid var(--yw-line);
    border-radius: 22px;
    padding: 22px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-why-grid article span {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-primary);
    font-weight: 950;
}

.yw-why-grid article strong {
    display: block;
    margin-top: 18px;
    font-size: 20px;
    line-height: 1.18;
    font-weight: 950;
}

.yw-why-grid article p {
    margin: 10px 0 0;
    color: var(--yw-muted);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 650;
}

.yw-proof-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.yw-proof-strip div {
    min-height: 96px;
    border: 1px solid var(--yw-line);
    border-radius: 22px;
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 18px;
    background: var(--yw-surface);
}

.yw-proof-strip strong {
    color: var(--yw-primary-dark);
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
}

.yw-proof-strip span {
    color: var(--yw-muted);
    font-size: 13px;
    font-weight: 800;
}

.yw-band--dark {
    color: #fff;
    background: var(--yw-navy);
}

.yw-band--dark .yw-section-head h2,
.yw-band--dark .yw-section-head p {
    color: #fff;
}

.yw-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.yw-review-grid article {
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 24px;
    padding: 24px;
    background: rgba(255, 255, 255, .06);
}

.yw-review-grid__stars {
    display: flex;
    gap: 3px;
    margin-bottom: 12px;
    color: var(--yw-sun);
    font-size: 13px;
}

.yw-review-grid p {
    margin: 0 0 20px;
    color: rgba(255, 255, 255, .88);
    font-size: 16px;
    line-height: 1.62;
}

.yw-review-grid__author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.yw-review-grid__author img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.yw-review-grid strong,
.yw-review-grid span {
    display: block;
}

.yw-review-grid strong {
    font-size: 16px;
    font-weight: 950;
}

.yw-review-grid span {
    margin-top: 4px;
    color: var(--yw-sun);
    font-size: 13px;
    font-weight: 850;
}

.yw-faq-list {
    display: grid;
    gap: 12px;
}

.yw-faq-list details {
    overflow: hidden;
    border: 1px solid var(--yw-line);
    border-radius: 20px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-faq-list summary {
    min-height: 66px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 20px;
    color: var(--yw-ink);
    cursor: pointer;
    font-size: 17px;
    font-weight: 950;
    list-style: none;
}

.yw-faq-list summary::-webkit-details-marker { display: none; }

.yw-faq-list summary span {
    color: var(--yw-primary);
    font-size: 13px;
    font-weight: 950;
}

.yw-faq-list p {
    margin: 0;
    padding: 0 20px 20px 52px;
    color: var(--yw-muted);
    font-size: 15px;
    line-height: 1.6;
    font-weight: 650;
}

.yw-newsletter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    gap: 24px;
    align-items: center;
    margin-top: 70px;
    margin-bottom: 70px;
    border-radius: 28px;
    padding: 34px;
    color: #fff;
    background: linear-gradient(135deg, var(--yw-primary-dark), var(--yw-primary));
    box-shadow: var(--yw-shadow);
}

.yw-newsletter h2,
.yw-newsletter p {
    color: #fff;
}

.yw-newsletter form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
}

.yw-newsletter input {
    min-width: 0;
    min-height: 48px;
    border: 0;
    outline: 0;
    border-radius: 999px;
    padding: 0 16px;
    color: var(--yw-ink);
    background: #fff;
    font-size: 16px;
    font-weight: 750;
}

.yw-newsletter input:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--yw-accent) 72%, #fff);
    outline-offset: 2px;
}

.yw-newsletter button {
    min-height: 48px;
    border: 0;
    border-radius: 999px;
    padding: 0 18px;
    color: #fff;
    background: var(--yw-accent);
    font-size: 14px;
    font-weight: 950;
}

.yw-newsletter__message {
    grid-column: 1 / -1;
    padding: 0 16px 4px;
    color: rgba(255, 255, 255, .82);
    font-size: 13px;
    font-weight: 800;
}

.yw-newsletter__message[data-type="success"] { color: #d7fff1; }
.yw-newsletter__message[data-type="error"] { color: #ffe2dc; }

.yw-footer {
    /* background lives on the second .yw-footer rule further down this file (search for
       "winning" ) — this file redeclares .yw-footer twice and the later one wins the cascade,
       so that's the one that actually needs to change if the color looks wrong. */
    position: relative;
    padding: 72px 0 calc(32px + env(safe-area-inset-bottom));
    color: #c3cddf;
    overflow: hidden;
}

.yw-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(90deg, var(--yw-accent), var(--yw-primary) 55%, var(--yw-accent));
}

.yw-footer::after {
    content: "";
    position: absolute;
    top: -140px;
    right: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(245, 130, 32, .16), transparent 70%);
    pointer-events: none;
}

.yw-footer .yw-brand {
    filter: brightness(0) invert(1);
    opacity: .96;
}

.yw-footer .yw-brand strong,
.yw-footer .yw-brand small {
    color: #fff;
}

.yw-footer__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr));
    gap: 32px;
}

.yw-footer p {
    max-width: 300px;
    margin: 20px 0 0;
    color: #9aa8c4;
    font-size: 14px;
    line-height: 1.65;
    font-weight: 600;
}

.yw-footer h3 {
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.yw-footer a,
.yw-footer span {
    min-height: 34px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #9aa8c4;
    font-size: 14px;
    font-weight: 600;
    transition: color .15s, transform .15s;
}

.yw-footer a {
    width: max-content;
}

.yw-footer a::before {
    content: "";
    flex: 0 0 4px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--yw-accent);
    opacity: 0;
    transition: opacity .15s, transform .15s;
    transform: translateX(-4px);
}

.yw-footer a:hover {
    color: #fff;
    transform: translateX(2px);
}

.yw-footer a:hover::before {
    opacity: 1;
    transform: translateX(0);
}

.yw-footer__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.yw-footer__trust span {
    min-height: 32px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    padding: 0 14px;
    background: rgba(255, 255, 255, .04);
    color: #dfe6f4;
    font-size: 12px;
    font-weight: 700;
}

.yw-footer__bottom {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: #7c8bab;
    font-size: 13px;
    font-weight: 600;
}

@media (min-width: 1024px) {
    /* .yw-contact-bar is a sticky (not fixed) 72px bottom CTA bar shown only at this breakpoint —
       guarantees the last footer row (copyright/legal links) never ends up settled underneath it
       once the user has scrolled all the way down, regardless of exactly where its sticky range
       is bounded by the surrounding markup. */
    .yw-footer__bottom {
        padding-bottom: 88px;
    }
}

.yw-footer__newsletter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.yw-footer__newsletter strong {
    display: block;
    color: #fff;
    font-size: 17px;
    font-weight: 950;
}

.yw-footer__newsletter > div > span {
    display: block;
    margin-top: 4px;
    color: #9aa8c4;
    font-size: 13px;
    font-weight: 600;
}

.yw-footer__newsletter-form {
    position: relative;
    display: flex;
    gap: 8px;
}

.yw-footer__newsletter-form input {
    min-width: 240px;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font-size: 13.5px;
    font-weight: 650;
}

.yw-footer__newsletter-form input::placeholder {
    color: #7c8bab;
}

.yw-footer__newsletter-form button {
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 999px;
    background: var(--yw-accent);
    color: #fff;
    font-size: 13.5px;
    font-weight: 900;
    white-space: nowrap;
}

.yw-footer__newsletter-msg {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    margin: 0;
    color: #9aa8c4;
    font-size: 12px;
    font-weight: 650;
}

.yw-footer__newsletter-msg[data-type="success"] {
    color: #7ee2a8;
}

.yw-footer__newsletter-msg[data-type="error"] {
    color: #ff8a80;
}

.yw-footer__social {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.yw-footer__social a {
    width: 36px;
    height: 36px;
    min-height: auto;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 14px;
}

.yw-footer__social a::before {
    display: none;
}

.yw-footer__social a:hover {
    background: var(--yw-accent);
    transform: none;
}

@media (max-width: 767px) {
    .yw-footer__newsletter {
        grid-template-columns: 1fr;
        margin-bottom: 28px;
        padding-bottom: 24px;
    }

    .yw-footer__newsletter-form {
        flex-direction: column;
    }

    .yw-footer__newsletter-form input {
        min-width: 0;
        width: 100%;
    }
}

.yw-footer__bottom div {
    display: flex;
    gap: 18px;
}

.yw-footer__bottom a {
    min-height: auto;
    color: #9aa8c4;
    font-size: 13px;
    font-weight: 700;
}

.yw-footer__bottom a::before {
    display: none;
}

.yw-footer__bottom a:hover {
    color: #fff;
    transform: none;
}

.yw-mobile-tabbar,
.yw-mobile-fab {
    display: none;
}

.yw-toast {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 80;
    transform: translate(-50%, 20px);
    max-width: min(92vw, 420px);
    padding: 12px 18px;
    border-radius: 999px;
    color: #fff;
    background: var(--yw-primary-dark);
    box-shadow: var(--yw-shadow);
    font-size: 14px;
    font-weight: 850;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}

.yw-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

@media (max-width: 1199px) {
    .yw-nav {
        grid-template-columns: auto auto 1fr;
    }

    .yw-nav__links {
        gap: 15px;
        justify-content: end;
    }

    .yw-ghost-link span {
        display: none;
    }

    .yw-nav__utility {
        display: none;
    }

    .yw-hero__inner {
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 34px;
    }

    .yw-package-grid--featured,
    .yw-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-package-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-destination-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .yw-why-grid,
    .yw-proof-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-footer__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .yw-hero h1 {
        font-size: 42px;
    }

    .yw-hero p {
        font-size: 16px;
    }

    .yw-section-head h2,
    .yw-split-section__intro h2,
    .yw-newsletter h2 {
        font-size: 32px;
    }

    .yw-search-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        border: 0;
        background: none;
        overflow: visible;
    }

    /* The continuous-bar/divider treatment only reads correctly in a single row (desktop). At
       2 columns, fields wrap onto new rows, so a left-border divider would land as a stray
       vertical line rather than a meaningful separator — fall back to individually-boxed
       fields instead. */
    .yw-search-form label,
    .yw-search-form details {
        border: 1px solid var(--yw-line);
        border-radius: 18px;
        background: #fbfdfc;
    }

    .yw-search-form label:not(:first-of-type),
    .yw-search-form details:not(:first-of-type) {
        border-left: 1px solid var(--yw-line);
    }

    .yw-search-form details {
        grid-column: span 2;
    }

    .yw-search-form > button {
        grid-column: span 2;
    }

    .yw-split-section,
    .yw-newsletter {
        grid-template-columns: 1fr;
    }

    .yw-split-section__intro {
        position: static;
    }
}

@media (max-width: 767px) {
    html,
    body.yw-figma {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    body.yw-figma {
        padding-bottom: calc(82px + env(safe-area-inset-bottom));
    }

    body.yw-figma main,
    .yw-page-sections,
    .yw-header {
        width: 100%;
        max-width: 100vw;
        overflow-x: clip;
    }

    .yw-container {
        width: calc(100% - 20px);
        max-width: 410px;
        min-width: 0;
        margin-right: auto;
        margin-left: auto;
    }

    .yw-topbar {
        display: none;
    }

    .yw-header {
        border-bottom: 1px solid var(--yw-line);
    }

    .yw-nav {
        min-height: 64px;
        grid-template-columns: 44px minmax(0, 1fr) 48px;
        gap: 10px;
    }

    .yw-menu-toggle {
        display: inline-flex;
    }

    .yw-brand__mark {
        flex: 0 0 38px;
        width: 38px;
        height: 38px;
        border-radius: 13px;
        font-size: 20px;
    }

    .yw-brand {
        min-width: 0;
        gap: 9px;
    }

    .yw-brand__logo {
        width: min(168px, calc(100vw - 142px));
        min-width: 136px;
        height: 46px;
    }

    .yw-brand strong {
        font-size: 18px;
    }

    .yw-brand small,
    .yw-nav__links,
    .yw-primary-link,
    .yw-ghost-link span {
        display: none;
    }

    .yw-nav__actions {
        width: 48px;
        flex-shrink: 0;
        justify-content: flex-end;
    }

    .yw-ghost-link {
        display: none;
    }

    .yw-profile-link {
        border: 0;
        background: transparent;
    }

    .yw-mobile-sticky-search {
        display: flex;
        width: calc(100% - 20px);
        max-width: 410px;
        min-width: 0;
        margin: 0 auto 10px;
        align-items: center;
        gap: 8px;
        border: 1px solid var(--yw-line);
        border-radius: 999px;
        padding: 6px 6px 6px 14px;
        background: var(--yw-surface);
        box-shadow: var(--yw-shadow-soft);
    }

    .yw-mobile-sticky-search input {
        flex: 1 1 auto;
        min-width: 0;
        width: 100%;
        min-height: 36px;
        border: 0;
        outline: 0;
        background: transparent;
        color: var(--yw-ink);
        font-size: 16px;
        font-weight: 800;
    }

    .yw-mobile-sticky-search input:focus-visible {
        outline: 3px solid color-mix(in srgb, var(--yw-accent) 72%, #fff);
        outline-offset: 2px;
    }

    .yw-mobile-sticky-search button {
        flex: 0 0 40px;
        width: 40px;
        min-width: 40px;
        height: 40px;
        margin-left: auto;
        border: 0;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        background: var(--yw-primary);
    }

    .yw-mobile-sticky-search svg {
        width: 18px;
        height: 18px;
    }

    .yw-mobile-drawer {
        position: fixed;
        inset: 0;
        z-index: 110;
        display: flex;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        background: var(--yw-surface);
        box-shadow: 0 20px 60px rgba(0, 0, 0, .22);
        transform: translateX(-105%);
        transition: transform .22s ease;
    }

    .yw-mobile-drawer__topbar {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        gap: 14px;
        padding: calc(14px + env(safe-area-inset-top)) 18px 12px;
        border-bottom: 1px solid var(--yw-line);
    }

    .yw-mobile-drawer__topbar .yw-brand__logo {
        width: 150px;
        height: 42px;
    }

    .yw-mobile-drawer__tabs {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 10px 14px;
        border-bottom: 1px solid var(--yw-line);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .yw-mobile-drawer__tabs::-webkit-scrollbar {
        display: none;
    }

    .yw-mobile-drawer__tabs a {
        position: relative;
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        min-height: 36px;
        padding: 0 12px;
        border-radius: 999px;
        color: var(--yw-ink);
        font-size: 13px;
        font-weight: 800;
        white-space: nowrap;
    }

    .yw-mobile-drawer__tabs a.is-active {
        color: var(--yw-accent);
    }

    .yw-mobile-drawer__tabs a svg {
        width: 10px;
        height: 10px;
    }

    .yw-mobile-drawer__tabs a small {
        position: static;
        transform: none;
        margin: 0 0 0 2px;
    }

    .yw-mobile-drawer__tabs-auth {
        flex: 0 0 auto;
        margin-left: 4px;
        min-height: 36px;
        padding: 0 16px;
        border-radius: 999px;
        background: var(--yw-primary);
        color: #fff !important;
        font-size: 12.5px;
        font-weight: 850;
    }

    .yw-mobile-drawer__panel {
        flex: 1 1 auto;
        overflow-y: auto;
        padding: 8px 18px calc(18px + env(safe-area-inset-bottom));
    }

    .yw-mobile-drawer__col {
        padding: 14px 0;
        border-bottom: 1px solid var(--yw-line);
    }

    .yw-mobile-drawer__col:last-of-type {
        border-bottom: 0;
    }

    .yw-mobile-drawer__col a {
        min-height: 42px;
        border-radius: 12px;
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0 8px;
        color: var(--yw-ink);
        font-weight: 800;
        font-size: 14px;
    }

    .yw-mobile-drawer__col a i {
        width: 18px;
        color: var(--yw-primary);
        font-size: 15px;
        text-align: center;
    }

    .yw-mobile-drawer__view-all {
        margin-top: 4px;
        color: var(--yw-accent) !important;
        font-size: 13px;
        font-weight: 850;
    }

    .yw-mobile-drawer__col--callout {
        border-radius: 16px;
        padding: 14px;
        background: var(--yw-soft);
    }

    .yw-mobile-drawer__cta {
        margin-top: 6px;
        border-radius: 12px;
        background: var(--yw-primary);
        color: #fff !important;
        justify-content: center;
    }

    .yw-mobile-drawer__cta i {
        color: #fff !important;
    }

    .yw-mobile-drawer__cta--whatsapp {
        background: #25d366;
    }

    .yw-mobile-drawer__utility-row {
        padding-top: 10px;
    }

    .yw-mobile-drawer a {
        min-height: 48px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 0 14px;
        color: var(--yw-ink);
        font-weight: 900;
    }

    .yw-mobile-drawer__group summary {
        min-height: 48px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 0 14px;
        color: var(--yw-ink);
        font-weight: 900;
        font-size: 15px;
        cursor: pointer;
        list-style: none;
    }

    .yw-mobile-drawer__group summary::-webkit-details-marker {
        display: none;
    }

    .yw-mobile-drawer__group summary svg {
        width: 14px;
        height: 14px;
        transition: transform .15s ease;
    }

    .yw-mobile-drawer__group[open] summary svg {
        transform: rotate(180deg);
    }

    .yw-mobile-drawer__group a {
        min-height: 42px;
        padding-left: 30px;
        color: var(--yw-muted);
        font-size: 13.5px;
        font-weight: 700;
    }

    .yw-mobile-drawer__group-heading {
        margin: 0 0 6px;
        padding-left: 8px;
        color: var(--yw-navy);
        font-size: 11px;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .yw-mobile-drawer__group-heading:first-child {
        margin-top: 0;
    }

    .yw-menu-close {
        flex: 0 0 auto;
        background: var(--yw-soft);
    }

    .yw-mobile-drawer__divider {
        height: 1px;
        margin: 6px 2px;
        background: var(--yw-line);
    }

    .yw-mobile-drawer__utility {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding: 0 2px;
        list-style: none;
    }

    .yw-mobile-drawer__utility > li {
        list-style: none;
    }

    .yw-mobile-drawer__utility .is_login {
        min-height: 38px;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 0 14px;
        border: 1px solid var(--yw-line);
        border-radius: 999px;
        color: var(--yw-ink);
        font-size: 12.5px;
        font-weight: 850;
        text-transform: uppercase;
    }

    .yw-mobile-drawer__utility .dropdown-menu {
        position: static;
        width: max-content;
        margin: 6px 0 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        list-style: none;
    }

    .yw-mobile-drawer__contact {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .yw-mobile-drawer__contact a {
        min-height: 42px;
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 0 14px;
        color: var(--yw-ink);
        font-size: 13.5px;
        font-weight: 800;
    }

    .yw-mobile-drawer__contact a i {
        color: var(--yw-primary);
        font-size: 14px;
    }

    .yw-mobile-drawer__utility .dropdown-menu a {
        min-height: 38px;
        padding: 0 14px;
        color: var(--yw-muted);
        font-size: 13px;
        font-weight: 750;
    }

    .yw-menu-scrim {
        position: fixed;
        inset: 0;
        z-index: 100;
        display: none;
        background: rgba(0, 0, 0, .34);
    }

    body.is-menu-open {
        overflow: hidden;
    }

    body.is-menu-open .yw-mobile-drawer {
        transform: translateX(0);
    }

    body.is-menu-open .yw-menu-scrim {
        display: block;
    }

    .yw-hero {
        min-height: 348px;
        width: 100%;
        max-width: none;
        margin-right: auto;
        margin-left: auto;
        border-radius: 0 0 26px 26px;
        box-shadow: var(--yw-shadow-soft);
    }

    .yw-hero__media:after {
        background: linear-gradient(180deg, rgba(5, 31, 29, .18), rgba(5, 31, 29, .82));
    }

    .yw-hero__inner {
        min-height: 348px;
        width: calc(100% - 36px);
        max-width: none;
        grid-template-columns: 1fr;
        align-items: end;
        gap: 18px;
        padding: 46px 0 48px;
    }

    .yw-hero__copy {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .yw-hero h1 {
        max-width: 330px;
        font-size: 24px;
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    .yw-hero p {
        max-width: 330px;
        margin-top: 10px;
        font-size: 13px;
        line-height: 1.5;
        font-weight: 750;
    }

    .yw-hero__actions {
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 16px;
    }

    .yw-btn {
        min-height: 44px;
        padding: 0 14px;
        font-size: 12px;
    }

    .yw-trust-row {
        display: none;
    }

    .yw-hero-card {
        display: none;
    }

    .yw-search-panel {
        width: calc(100% - 20px);
        max-width: 410px;
        min-width: 0;
        margin-top: -34px;
        margin-right: auto;
        margin-left: auto;
        border-radius: 22px;
        padding: 12px;
        overflow: hidden;
    }

    .yw-search-panel__head {
        align-items: start;
        flex-direction: column;
        gap: 8px;
    }

    .yw-search-panel__head a {
        display: none;
    }

    .yw-search-steps {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .yw-search-steps span {
        justify-content: center;
        min-height: 30px;
        padding: 0 8px;
        font-size: 11px;
    }

    .yw-service-tabs {
        display: flex;
        width: 100%;
        gap: 9px;
        overflow-x: auto;
        margin-right: 0;
        margin-left: 0;
        padding: 2px 2px 12px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-service-tabs button {
        flex: 0 0 74px;
        width: 74px;
        min-width: 0;
        min-height: 82px;
        border-radius: 20px;
        flex-direction: column;
        gap: 5px;
        padding: 8px 5px;
        font-size: 11px;
        white-space: normal;
        scroll-snap-align: start;
        box-shadow: 0 8px 20px rgba(10, 31, 28, .06);
    }

    .yw-service-tab-icon {
        width: 34px;
        height: 34px;
        border-radius: 13px;
        color: var(--yw-primary);
        background: var(--yw-soft);
    }

    .yw-service-tabs button.is-active .yw-service-tab-icon {
        color: var(--yw-primary);
        background: #fff;
    }

    .yw-service-tab-icon svg {
        width: 19px;
        height: 19px;
    }

    .yw-service-tab-label {
        display: block;
        width: 100%;
        overflow: hidden;
        text-align: center;
        text-overflow: ellipsis;
    }

    .yw-service-tabs button small {
        margin-left: 0;
        padding: 3px 6px;
        font-size: 8px;
    }

    .yw-search-form {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .yw-search-form label,
    .yw-search-form details {
        border-radius: 18px;
        padding: 10px 12px;
    }

    .yw-search-form span,
    .yw-search-form summary {
        font-size: 11px;
    }

    .yw-search-form input {
        min-height: 28px;
        /* Must stay >= 16px — iOS Safari auto-zooms the whole page on focus for any input
           font-size below 16px, which feels jarring and web-like rather than app-like. */
        font-size: 16px;
        font-weight: 750;
    }

    .yw-search-form summary {
        min-height: 28px;
    }

    .yw-search-form details,
    .yw-search-form > button {
        grid-column: auto;
    }

    .yw-search-form details > div {
        grid-template-columns: 1fr;
    }

    .yw-search-form > button {
        min-height: 50px;
    }

    .yw-smart-row {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        max-width: 100%;
        padding-top: 18px;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-smart-row::-webkit-scrollbar,
    .yw-app-banners__rail::-webkit-scrollbar,
    .yw-snap-rail::-webkit-scrollbar {
        display: none;
    }

    .yw-service-dock {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        padding-top: 18px;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-service-dock::-webkit-scrollbar {
        display: none;
    }

    .yw-service-dock a {
        flex: 0 0 86px;
        min-height: 98px;
        border-radius: 20px;
        padding: 10px 6px;
        scroll-snap-align: start;
    }

    .yw-service-dock span {
        width: 38px;
        height: 38px;
        border-radius: 14px;
    }

    .yw-service-dock span svg {
        width: 20px;
        height: 20px;
    }

    .yw-service-dock strong {
        font-size: 12px;
    }

    .yw-service-dock small {
        padding: 3px 6px;
        font-size: 8px;
    }

    .yw-smart-row a {
        flex: 0 0 272px;
        min-height: 88px;
        scroll-snap-align: start;
    }

    .yw-app-banners {
        padding-top: 14px;
    }

    .yw-app-banners__rail {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-offer-banner {
        flex: 0 0 88%;
        min-height: 172px;
        border-radius: 24px;
        padding: 18px;
        scroll-snap-align: start;
    }

    .yw-offer-banner strong {
        font-size: 21px;
    }

    .yw-section {
        padding-top: 44px;
    }

    .yw-section-head {
        align-items: start;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 18px;
    }

    .yw-section-head__actions {
        width: 100%;
        justify-content: space-between;
    }

    .yw-rail-controls button {
        width: 40px;
        height: 40px;
    }

    .yw-section-head h2,
    .yw-split-section__intro h2,
    .yw-newsletter h2 {
        font-size: 24px;
        line-height: 1.16;
    }

    .yw-section-head p,
    .yw-split-section__intro p,
    .yw-newsletter p {
        font-size: 14px;
    }

    .yw-package-grid--featured,
    .yw-package-rail {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        margin-right: 0;
        margin-left: 0;
        padding-right: 8px;
        padding-bottom: 6px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-package-card {
        flex: 0 0 82%;
        width: auto;
        max-width: 330px;
        min-width: 264px;
        border-radius: 22px;
        scroll-snap-align: start;
    }

    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card {
        flex: 0 0 82%;
        max-width: 330px;
        min-width: 264px;
    }

    .yw-package-card h3 {
        font-size: 18px;
    }

    .yw-package-card__topline {
        min-height: 58px;
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
        padding: 12px 14px;
    }

    .yw-package-card__topline > small {
        grid-column: 2;
        justify-self: start;
        width: 100%;
    }

    .yw-package-card__media img,
    .yw-package-card--compact .yw-package-card__media img {
        aspect-ratio: 1.12;
    }

    .yw-package-card__media b {
        left: 144px;
    }

    .yw-package-card__body {
        gap: 13px;
        padding: 17px 18px 18px;
    }

    .yw-package-card h3 {
        font-size: 20px;
        line-height: 1.18;
    }

    .yw-package-card p,
    .yw-package-card__seats,
    .yw-package-card__bottom,
    .yw-card-actions {
        display: none;
    }

    .yw-package-card__includes {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(62px, 1fr);
        gap: 6px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .yw-package-card__includes span {
        min-height: 54px;
        padding: 6px 3px;
        font-size: 8.5px;
    }

    .yw-package-card__price strong {
        max-width: 170px;
        overflow: hidden;
        text-align: right;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 24px;
    }

    .yw-package-card__details {
        min-height: 46px;
    }

    .yw-package-card__mobile-actions {
        min-height: 64px;
        border: 1px solid color-mix(in srgb, var(--yw-primary) 18%, var(--yw-line));
        border-radius: 20px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(68px, auto) minmax(54px, auto);
        align-items: center;
        gap: 6px;
        padding: 8px;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 12px 30px rgba(10, 31, 28, .12);
    }

    .yw-package-card__mobile-actions div {
        display: grid;
        gap: 2px;
    }

    .yw-package-card__mobile-actions div span {
        color: var(--yw-muted);
        font-size: 10px;
        font-weight: 950;
    }

    .yw-package-card__mobile-actions div strong {
        color: var(--yw-primary-dark);
        font-size: 18px;
        line-height: 1;
        font-weight: 950;
        white-space: nowrap;
    }

    .yw-package-card__enquire,
    .yw-package-card__book {
        min-height: 42px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 10px;
        font-size: 11.5px;
        font-weight: 950;
    }

    .yw-package-card__enquire {
        color: var(--yw-primary-dark);
        background: color-mix(in srgb, var(--yw-soft) 70%, #fff);
    }

    .yw-package-card__book {
        color: #fff;
        background: var(--yw-primary-dark);
    }

    .yw-band {
        margin-top: 40px;
        padding-bottom: 36px;
    }

    .yw-band--mint {
        background: linear-gradient(180deg, transparent 0, transparent 44px, var(--yw-soft) 44px, var(--yw-soft) 100%);
    }

    .yw-split-section {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .yw-horizontal-card {
        grid-template-columns: 116px minmax(0, 1fr);
        border-radius: 20px;
        padding: 10px;
    }

    .yw-horizontal-card img {
        height: 140px;
        border-radius: 16px;
    }

    .yw-horizontal-card h3 {
        font-size: 18px;
    }

    .yw-horizontal-card a {
        min-height: 40px;
        padding: 0 12px;
    }

    .yw-destination-grid {
        display: flex;
        overflow-x: auto;
        gap: 12px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-destination-grid::-webkit-scrollbar {
        display: none;
    }

    .yw-destination-card {
        flex: 0 0 72%;
        min-height: 170px;
        border-radius: 20px;
        padding: 13px;
        scroll-snap-align: start;
    }

    .yw-destination-card strong {
        font-size: 19px;
    }

    .yw-why-grid,
    .yw-proof-strip,
    .yw-review-grid {
        grid-template-columns: 1fr;
    }

    .yw-why-grid article {
        border-radius: 20px;
        padding: 18px;
    }

    .yw-proof-strip {
        gap: 10px;
    }

    .yw-proof-strip div {
        min-height: 84px;
    }

    .yw-faq-list summary {
        min-height: 58px;
        padding: 0 16px;
        font-size: 15px;
    }

    .yw-faq-list p {
        padding: 0 16px 16px 44px;
        font-size: 14px;
    }

    .yw-newsletter {
        margin-top: 46px;
        margin-bottom: 46px;
        border-radius: 24px;
        padding: 22px;
    }

    .yw-newsletter form {
        grid-template-columns: 1fr;
        border-radius: 20px;
    }

    .yw-newsletter button {
        width: 100%;
    }

    .yw-footer {
        padding-top: 42px;
    }

    .yw-footer__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .yw-footer__bottom {
        align-items: start;
        flex-direction: column;
    }

    .yw-mobile-fab {
        position: fixed;
        right: 16px;
        bottom: calc(90px + env(safe-area-inset-bottom));
        left: auto;
        z-index: 72;
        min-height: 48px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 18px;
        color: #fff;
        background: var(--yw-accent);
        box-shadow: 0 18px 34px rgba(245, 130, 32, .34);
        opacity: 0;
        pointer-events: none;
        transform: translateY(12px);
        transition: opacity .2s ease, transform .2s ease;
        font-size: 14px;
        font-weight: 950;
    }

    body.is-fab-visible .yw-mobile-fab {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }

    .yw-mobile-tabbar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 70;
        display: grid;
        width: 100%;
        max-width: 430px;
        margin: 0 auto;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 2px;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--yw-line);
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(18px);
    }

    body[data-yw-theme="night"] .yw-mobile-tabbar {
        background: rgba(16, 24, 39, .96);
    }

    .yw-mobile-tabbar a {
        min-width: 0;
        min-height: 58px;
        border-radius: 18px;
        display: grid;
        align-content: center;
        justify-items: center;
        gap: 4px;
        color: var(--yw-muted);
        font-size: 11px;
        font-weight: 850;
    }

    .yw-mobile-tabbar a.is-active {
        color: var(--yw-primary);
        background: var(--yw-soft);
    }
}

@media (max-width: 430px) {
    .yw-container {
        width: calc(100% - 20px);
        max-width: none;
        margin-right: auto;
        margin-left: auto;
    }

    .yw-mobile-sticky-search {
        width: calc(100% - 20px);
        max-width: none;
        margin-right: auto;
        margin-left: auto;
    }

    .yw-hero,
    .yw-search-panel {
        max-width: none;
        margin-right: auto;
        margin-left: auto;
    }

    .yw-search-panel {
        width: calc(100% - 20px);
    }

    .yw-smart-row a {
        flex-basis: 78%;
    }
}

@media (max-width: 360px) {
    .yw-hero h1 {
        font-size: 25px;
    }

    .yw-hero p {
        font-size: 14px;
    }

    .yw-brand strong {
        font-size: 16px;
    }

    .yw-nav {
        gap: 6px;
    }

    .yw-service-tabs button {
        flex-basis: 70px;
        width: 70px;
        min-height: 72px;
        font-size: 10px;
    }

    .yw-service-dock {
        gap: 8px;
    }

    .yw-service-dock a {
        flex-basis: 80px;
    }

    .yw-package-card {
        flex-basis: 84%;
        min-width: 260px;
    }

    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card {
        flex-basis: 84%;
        min-width: 260px;
    }

    .yw-horizontal-card {
        grid-template-columns: 1fr;
    }

    .yw-horizontal-card img {
        height: 160px;
    }

    .yw-mobile-tabbar span {
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *:before,
    *:after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Final Yatriwala app-shell hardening for admin content with long text. */
.yw-brand,
.yw-brand__logo,
.yw-package-card,
.yw-package-card *,
.yw-offer-banner,
.yw-offer-banner * {
    min-width: 0;
}

.yw-package-card__topline {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(72px, auto);
    gap: 10px;
    align-items: center;
}

.yw-package-card__topline strong,
.yw-package-card__topline small,
.yw-package-card__location span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card h3 a {
    display: -webkit-box;
    min-height: 2.36em;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow-wrap: anywhere;
}

.yw-package-card__includes {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.yw-package-card__includes span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.yw-package-card__details {
    color: #fff !important;
}

.yw-offer-banner strong,
.yw-offer-banner small {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
}

.yw-offer-banner strong {
    -webkit-line-clamp: 2;
}

.yw-offer-banner small {
    -webkit-line-clamp: 2;
}

@media (max-width: 767px) {
    .yw-brand__logo {
        width: clamp(128px, 38vw, 166px);
        height: 42px;
    }

    .yw-app-banners__rail {
        grid-template-columns: none;
        grid-auto-columns: minmax(280px, 86vw);
        margin-inline: -8px;
        padding-inline: 8px;
    }

    .yw-offer-banner {
        min-height: 150px;
        border-radius: 22px;
    }

    .yw-package-card__topline {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .yw-package-card__topline small {
        grid-column: 2;
        justify-self: start;
        width: 100%;
    }

    .yw-package-card__includes {
        grid-template-columns: repeat(5, minmax(62px, 1fr));
        overflow-x: auto;
        scrollbar-width: none;
    }

    .yw-package-card__includes::-webkit-scrollbar {
        display: none;
    }
}

/* "Discovery-led Yatriwala refresh": a second, later, higher-specificity (body.yw-figma vs
   :root) redeclaration of the entire token set that quietly won the cascade over the canonical
   :root block at the top of this file for this whole file's lifetime — the actual source of
   most of the "why doesn't my token edit show up" confusion in this redesign pass. Token values
   removed 2026-08-09 so body.yw-figma falls through to the one canonical :root block; the
   background gradient is genuinely unique to this selector so it stays. */
body.yw-figma {
    background:
        radial-gradient(circle at 15% 12%, rgba(245, 130, 32, .08), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f5f8ff 42%, #eef6ff 100%);
}

.yw-topbar {
    background: linear-gradient(90deg, var(--yw-primary-dark), var(--yw-primary));
}

.yw-header {
    border-bottom: 1px solid rgba(6, 31, 103, .08);
    background: rgba(255, 255, 255, .94);
}

.yw-nav {
    min-height: 104px;
}

.yw-brand__logo {
    width: clamp(210px, 15vw, 256px);
    height: 76px;
    object-position: left center;
}

.yw-nav__links a {
    color: var(--yw-ink);
    position: relative;
}

.yw-nav__links a:after {
    position: absolute;
    right: 0;
    bottom: 10px;
    left: 0;
    height: 2px;
    border-radius: 999px;
    content: "";
    background: var(--yw-accent);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
}

.yw-nav__links a:hover:after,
.yw-nav__links a:focus-visible:after {
    transform: scaleX(1);
}

.yw-primary-link,
.yw-btn--primary,
.yw-search-form > button,
.yw-mobile-fab,
.yw-newsletter button {
    background: linear-gradient(135deg, var(--yw-accent-light), var(--yw-accent));
    color: #fff;
    box-shadow: 0 16px 34px rgba(245, 130, 32, .28);
}

.yw-hero {
    min-height: 602px;
    background:
        radial-gradient(circle at 76% 24%, rgba(245, 130, 32, .18), transparent 28%),
        var(--yw-primary-dark);
}

.yw-hero__media:after {
    background:
        linear-gradient(90deg, rgba(6, 21, 51, .92), rgba(6, 31, 103, .62) 48%, rgba(245, 130, 32, .16)),
        linear-gradient(180deg, rgba(6, 21, 51, .1), rgba(6, 21, 51, .72));
}

.yw-hero__inner {
    min-height: 602px;
    padding-top: 76px;
    padding-bottom: 118px;
}

.yw-hero h1 {
    max-width: 820px;
    font-size: clamp(44px, 5.1vw, 72px);
    line-height: .98;
}

.yw-hero p {
    max-width: 690px;
    color: rgba(255, 255, 255, .9);
    font-size: 18px;
}

.yw-hero__quick {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.yw-hero__quick span,
.yw-hero__quick a {
    min-height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    padding: 0 13px;
    font-size: 12px;
    font-weight: 950;
}

.yw-hero__quick span {
    color: var(--yw-sun);
    padding-left: 0;
}

.yw-hero__quick a {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(10px);
}

.yw-hero-card {
    border-color: rgba(255, 255, 255, .24);
    border-radius: 34px;
    background: rgba(6, 21, 51, .38);
}

.yw-hero-card a {
    color: var(--yw-primary-dark);
    background: var(--yw-sun);
}

.yw-search-panel {
    margin-top: -76px;
    border: 1px solid rgba(6, 31, 103, .08);
    border-radius: 34px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(18px);
}

.yw-search-steps span {
    color: var(--yw-primary-dark);
    background: #edf4ff;
}

.yw-service-tabs button {
    border-color: #dbe5f1;
    color: #596a75;
    background: #fff;
}

.yw-service-tabs button.is-active {
    border-color: var(--yw-primary);
    background: linear-gradient(135deg, var(--yw-primary), var(--yw-primary-dark));
}

.yw-service-tab-icon,
.yw-service-dock span {
    background: #eef5ff;
    color: var(--yw-primary);
}

.yw-service-tabs button.is-active .yw-service-tab-icon {
    color: var(--yw-primary);
    background: #fff;
}

.yw-search-form label,
.yw-search-form details {
    border-color: #dbe5f1;
    background: #fbfdff;
}

.yw-search-form > button {
    border-radius: 14px;
}

.yw-discovery-strip {
    display: grid;
    grid-template-columns: minmax(250px, .68fr) minmax(0, 1.32fr);
    gap: 16px;
    align-items: stretch;
    padding-top: 28px;
}

.yw-discovery-strip__copy,
.yw-discovery-strip__rail a {
    border: 1px solid rgba(6, 31, 103, .08);
    border-radius: 26px;
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--yw-shadow-soft);
}

.yw-discovery-strip__copy {
    display: grid;
    align-content: center;
    gap: 9px;
    padding: 22px;
}

.yw-discovery-strip__copy strong {
    color: var(--yw-ink);
    font-size: clamp(22px, 2.5vw, 34px);
    line-height: 1.06;
    font-weight: 950;
}

.yw-discovery-strip__copy span {
    color: var(--yw-muted);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 750;
}

.yw-discovery-strip__rail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.yw-discovery-strip__rail a {
    min-width: 0;
    overflow: hidden;
    display: grid;
    align-content: start;
}

.yw-discovery-strip__rail img {
    width: 100%;
    aspect-ratio: 1.24;
    object-fit: cover;
}

.yw-discovery-strip__rail span,
.yw-discovery-strip__rail small {
    display: block;
    min-width: 0;
    overflow: hidden;
    padding-inline: 12px;
    text-overflow: ellipsis;
}

.yw-discovery-strip__rail span {
    margin-top: 12px;
    color: var(--yw-ink);
    font-size: 14px;
    font-weight: 950;
    white-space: nowrap;
}

.yw-discovery-strip__rail small {
    margin: 4px 0 13px;
    color: var(--yw-muted);
    font-size: 11px;
    line-height: 1.3;
    font-weight: 800;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.yw-service-dock a {
    border-color: rgba(6, 31, 103, .08);
    box-shadow: 0 16px 36px rgba(6, 31, 103, .08);
}

.yw-service-dock span {
    background: linear-gradient(135deg, var(--yw-primary), var(--yw-primary-dark));
    color: #fff;
}

.yw-smart-row a {
    border-color: rgba(6, 31, 103, .08);
}

.yw-app-banners__rail {
    grid-auto-columns: minmax(360px, 1fr);
}

.yw-offer-banner {
    min-height: 238px;
    border-radius: 34px;
}

.yw-offer-banner strong {
    font-size: clamp(23px, 2.3vw, 34px);
}

.yw-section-head h2,
.yw-split-section__intro h2,
.yw-newsletter h2 {
    color: var(--yw-ink);
    font-size: clamp(32px, 3.6vw, 52px);
}

.yw-section-head p,
.yw-split-section__intro p,
.yw-newsletter p {
    color: var(--yw-muted);
}

.yw-package-grid--featured,
.yw-package-rail {
    gap: 22px;
}

.yw-package-grid--featured .yw-package-card,
.yw-package-rail .yw-package-card {
    flex-basis: clamp(304px, calc((100% - 66px) / 4), 352px);
}

.yw-package-card {
    border-color: rgba(6, 31, 103, .09);
    border-radius: 28px;
    box-shadow: 0 20px 52px rgba(6, 31, 103, .1);
}

.yw-package-card__topline {
    background: linear-gradient(135deg, #fff7d9, #eef5ff);
}

.yw-package-card__avatar {
    background: linear-gradient(135deg, var(--yw-primary), var(--yw-primary-dark));
}

.yw-package-card__media img,
.yw-package-card--compact .yw-package-card__media img {
    aspect-ratio: 1.08;
}

.yw-package-card__media b {
    background: var(--yw-primary);
}

.yw-package-card__media em {
    background: #e40046;
}

.yw-package-card__save {
    border-radius: 16px;
    background: rgba(6, 31, 103, .84);
}

.yw-package-card__includes span {
    border-radius: 12px;
    color: var(--yw-primary-dark);
    background: #f7fbff;
}

.yw-package-card__price strong {
    color: var(--yw-primary-dark);
}

.yw-package-card__details,
.yw-package-card__book {
    background: linear-gradient(135deg, var(--yw-primary), var(--yw-primary-dark));
}

.yw-package-card__enquire {
    color: var(--yw-primary-dark);
    background: #edf4ff;
}

.yw-band--mint {
    background:
        linear-gradient(180deg, transparent 0, transparent 64px, #edf6ff 64px, #edf6ff 100%);
}

.yw-destination-card {
    border-radius: 30px;
    box-shadow: var(--yw-shadow-soft);
}

.yw-why-grid article,
.yw-proof-strip div,
.yw-faq-list details {
    border-color: rgba(6, 31, 103, .08);
}

.yw-band--dark,
/* This is the second, later (winning) .yw-footer rule in this file — see the note above
   the first one for why the background lives here instead of there. */
.yw-footer {
    background: linear-gradient(180deg, var(--yw-primary-dark) 0%, #0a1730 100%);
}

@media (max-width: 1024px) {
    .yw-discovery-strip {
        grid-template-columns: 1fr;
    }

    .yw-discovery-strip__rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    body.yw-figma {
        background: linear-gradient(180deg, #fff 0, #f6f8ff 46%, #edf6ff 100%);
    }

    .yw-nav {
        min-height: 62px;
    }

    .yw-brand__logo {
        width: clamp(142px, 45vw, 176px);
        height: 44px;
    }

    .yw-hero {
        min-height: 330px;
        border-radius: 0 0 30px 30px;
    }

    .yw-hero__inner {
        min-height: 330px;
        width: calc(100% - 30px);
        padding: 38px 0 50px;
    }

    .yw-hero h1 {
        max-width: 360px;
        font-size: clamp(27px, 7.2vw, 33px);
        line-height: 1.02;
    }

    .yw-hero p {
        max-width: 350px;
        font-size: 13px;
        line-height: 1.42;
    }

    .yw-hero__quick {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-right: -15px;
        padding-right: 15px;
        scrollbar-width: none;
    }

    .yw-hero__quick::-webkit-scrollbar {
        display: none;
    }

    .yw-hero__quick span,
    .yw-hero__quick a {
        flex: 0 0 auto;
        min-height: 32px;
        font-size: 11px;
    }

    .yw-search-panel {
        margin-top: -30px;
        border-radius: 26px;
        padding: 12px;
    }

    .yw-service-tabs button {
        flex-basis: 82px;
        width: 82px;
        min-height: 78px;
        border-radius: 22px;
        font-size: 10.5px;
    }

    .yw-search-form > button {
        border-radius: 18px;
    }

    .yw-discovery-strip {
        padding-top: 18px;
    }

    .yw-discovery-strip__copy {
        border-radius: 22px;
        padding: 18px;
    }

    .yw-discovery-strip__rail {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        margin-inline: -2px;
        padding-inline: 2px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-discovery-strip__rail::-webkit-scrollbar {
        display: none;
    }

    .yw-discovery-strip__rail a {
        flex: 0 0 68%;
        border-radius: 22px;
        scroll-snap-align: start;
    }

    .yw-service-dock a {
        flex-basis: 92px;
    }

    .yw-app-banners__rail {
        margin-inline: -4px;
        padding-inline: 4px;
    }

    .yw-offer-banner {
        flex-basis: 86%;
        min-height: 178px;
        border-radius: 26px;
    }

    .yw-offer-banner strong {
        font-size: 22px;
    }

    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card {
        flex-basis: min(86%, 344px);
        min-width: 276px;
    }

    .yw-package-card {
        border-radius: 26px;
    }

    .yw-package-card__topline {
        min-height: 56px;
    }

    .yw-package-card__media b {
        left: 142px;
    }

    .yw-package-card__media img,
    .yw-package-card--compact .yw-package-card__media img {
        aspect-ratio: 1.05;
    }

    .yw-package-card__body {
        padding: 16px;
    }

    .yw-package-card h3 {
        font-size: 19px;
    }

    .yw-package-card__mobile-actions {
        grid-template-columns: minmax(0, 1fr) minmax(78px, auto) minmax(58px, auto);
        border-radius: 18px;
    }

    .yw-destination-card {
        flex-basis: 76%;
    }
}

@media (max-width: 360px) {
    .yw-brand__logo {
        width: 136px;
    }

    .yw-service-tabs button {
        flex-basis: 76px;
        width: 76px;
    }

    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card,
    .yw-package-card {
        flex-basis: 88%;
        min-width: 264px;
    }
}

/* V1 app marketplace hardening: inspired by modern travel apps, driven by Yatriwala data. */
.yw-figma {
    --yw-app-blue: var(--yw-primary);
    --yw-app-blue-dark: var(--yw-primary-dark);
    --yw-app-orange: var(--yw-accent);
    --yw-app-cream: #fff8e6;
}

.yw-app-launcher {
    display: grid;
    gap: 14px;
}

.yw-service-dock,
.yw-smart-row {
    min-width: 0;
}

.yw-service-dock a,
.yw-smart-row a,
.yw-package-card,
.yw-offer-banner,
.yw-hero-card {
    transform: translateZ(0);
}

.yw-service-dock a:focus-visible,
.yw-smart-row a:focus-visible,
.yw-package-card a:focus-visible,
.yw-package-card button:focus-visible,
.yw-offer-banner:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--yw-accent) 72%, #fff);
    outline-offset: 3px;
}

.yw-hero-card {
    max-width: 380px;
}

.yw-hero-card a {
    color: var(--yw-app-blue-dark);
}

.yw-trust-row span {
    color: var(--yw-primary-dark);
    background: var(--yw-surface);
    border: 1px solid var(--yw-line);
    text-shadow: none;
}

.yw-package-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(7, 87, 165, .1);
    background: #fff;
}

.yw-package-card__topline {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) minmax(68px, auto);
    align-items: center;
    gap: 10px;
}

.yw-package-card__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.yw-package-card__avatar i {
    font-size: 16px;
}

.yw-package-card__topline > strong,
.yw-package-card__topline > small,
.yw-package-card h3,
.yw-package-card h3 a,
.yw-package-card__location {
    min-width: 0;
}

.yw-package-card__topline > small {
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card__media {
    position: relative;
    overflow: hidden;
    background: #eef4ff;
}

.yw-package-card__media img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.yw-package-card__media span,
.yw-package-card__media b,
.yw-package-card__media em {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    font-style: normal;
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
}

.yw-package-card__media b {
    min-height: 32px;
}

.yw-package-card__media em {
    letter-spacing: .02em;
}

.yw-package-card__save i {
    font-size: 18px;
}

.yw-package-card__body {
    display: grid;
    min-width: 0;
}

.yw-package-card__location {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    overflow: hidden;
    color: #667773;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card h3 {
    margin: 0;
}

.yw-package-card h3 a {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.yw-package-card__includes {
    min-width: 0;
}

.yw-package-card__includes span {
    overflow: hidden;
    text-align: center;
}

.yw-package-card__includes span i {
    display: block;
    font-size: 15px;
}

.yw-package-card__meta {
    display: flex;
    flex-wrap: wrap;
    min-width: 0;
}

.yw-package-card__meta span {
    min-width: 0;
    color: #60736f;
    font-size: 12px;
    font-weight: 900;
}

.yw-package-card__price strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-package-card__token {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2px 12px;
    border: 1px solid rgba(245, 130, 32, .2);
    border-radius: 16px;
    padding: 10px 12px;
    background: linear-gradient(135deg, #fff7ed, #fff);
}

.yw-package-card__token span,
.yw-package-card__token small {
    color: #667773;
    font-size: 11px;
    font-weight: 850;
}

.yw-package-card__token strong {
    color: var(--yw-app-orange);
    font-size: 17px;
    line-height: 1;
    font-weight: 950;
}

.yw-package-card__token small {
    grid-column: 1 / -1;
}

.yw-service-dock a {
    overflow: hidden;
}

.yw-service-dock strong,
.yw-smart-row strong {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (min-width: 768px) {
    .yw-app-launcher {
        margin-top: -6px;
    }

    .yw-smart-row {
        padding-top: 14px;
    }
}

@media (max-width: 767px) {
    .yw-app-launcher {
        width: calc(100% - 20px);
        max-width: 410px;
        margin: 0 auto;
        overflow: hidden;
    }

    .yw-service-dock,
    .yw-smart-row {
        margin-inline: -2px;
        padding-inline: 2px;
    }

    .yw-smart-row a {
        border-radius: 22px;
    }

    .yw-package-card__topline {
        grid-template-columns: 40px minmax(0, 1fr) minmax(58px, auto);
        gap: 8px;
        padding: 11px 13px;
    }

    .yw-package-card__topline > strong {
        font-size: 12px;
    }

    .yw-package-card__topline > small {
        font-size: 10px;
    }

    .yw-package-card__media span {
        max-width: calc(100% - 112px);
        white-space: nowrap;
    }

    .yw-package-card__media b {
        left: auto !important;
        right: 54px;
        top: 12px;
    }

    .yw-package-card__media em {
        font-size: 10px;
    }

    .yw-package-card__includes {
        padding-bottom: 2px;
    }

    .yw-package-card__meta span {
        min-height: 30px;
        font-size: 11px;
    }

    .yw-package-card__price {
        align-items: center;
    }

    .yw-package-card__token {
        display: none;
    }
}

/* V1 travel-commerce path: explain booking without making the page feel like a brochure. */
.yw-commerce-path {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
    gap: 18px;
    align-items: stretch;
    margin-top: 18px;
}

.yw-commerce-path__copy,
.yw-commerce-path__steps article {
    border: 1px solid rgba(7, 87, 165, .11);
    border-radius: 26px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 44px rgba(6, 31, 103, .08);
}

.yw-commerce-path__copy {
    display: grid;
    align-content: center;
    gap: 12px;
    padding: clamp(22px, 3vw, 36px);
    background:
        radial-gradient(circle at 0% 0%, rgba(245, 130, 32, .16), transparent 38%),
        linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(242, 249, 255, .94));
}

.yw-commerce-path__copy span {
    width: max-content;
    max-width: 100%;
    border-radius: 999px;
    padding: 8px 12px;
    color: var(--yw-coral);
    background: rgba(245, 130, 32, .1);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.yw-commerce-path__copy h2 {
    margin: 0;
    color: var(--yw-blue);
    font-size: clamp(28px, 3vw, 44px);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: 0;
}

.yw-commerce-path__copy p {
    max-width: 58ch;
    margin: 0;
    color: var(--yw-muted);
    font-size: 15px;
    line-height: 1.65;
    font-weight: 750;
}

.yw-commerce-path__copy a {
    width: max-content;
    min-height: 48px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    color: #fff;
    background: linear-gradient(135deg, var(--yw-blue), var(--yw-coral));
    font-weight: 950;
    text-decoration: none;
    box-shadow: 0 16px 32px rgba(245, 130, 32, .22);
}

.yw-commerce-path__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.yw-commerce-path__steps article {
    min-width: 0;
    min-height: 190px;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 20px;
}

.yw-commerce-path__steps i {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-forest);
    font-size: 18px;
    box-shadow: 0 16px 26px rgba(0, 111, 98, .16);
}

.yw-commerce-path__steps article:nth-child(2) i,
.yw-commerce-path__steps article:nth-child(4) i {
    background: var(--yw-blue);
}

.yw-commerce-path__steps article:nth-child(3) i {
    background: var(--yw-coral);
}

.yw-commerce-path__steps strong {
    color: var(--yw-ink);
    font-size: 18px;
    line-height: 1.1;
    font-weight: 950;
}

.yw-commerce-path__steps span {
    color: var(--yw-muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 780;
}

@media (max-width: 1024px) {
    .yw-commerce-path {
        grid-template-columns: 1fr;
    }

    .yw-commerce-path__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .yw-commerce-path {
        margin-top: 12px;
        gap: 12px;
    }

    .yw-commerce-path__copy {
        border-radius: 24px;
        padding: 20px;
    }

    .yw-commerce-path__copy h2 {
        font-size: 26px;
    }

    .yw-commerce-path__copy p {
        font-size: 14px;
    }

    .yw-commerce-path__steps {
        display: flex;
        overflow-x: auto;
        padding: 2px 0 4px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .yw-commerce-path__steps::-webkit-scrollbar {
        display: none;
    }

    .yw-commerce-path__steps article {
        flex: 0 0 72%;
        min-height: 168px;
        border-radius: 22px;
        scroll-snap-align: start;
    }
}

/* Yatriwala V1 experience layer: app-like, logo-led and commerce-first. */
:root {
    --yw-blue: var(--yw-primary);
    --yw-blue-deep: var(--yw-primary-dark);
    --yw-coral: var(--yw-accent);
    --yw-coral-soft: #fff0e9;
    --yw-forest: #006f62;
    --yw-shell: #f4f8fb;
}

body.yw-figma {
    background:
        radial-gradient(circle at 8% 6%, rgba(245, 130, 32, .08), transparent 22%),
        radial-gradient(circle at 92% 12%, rgba(7, 87, 165, .08), transparent 28%),
        var(--yw-shell);
}

.yw-hero__copy {
    max-width: 740px;
}

.yw-hero__copy h1 {
    text-wrap: balance;
}

.yw-hero-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 16px;
}

.yw-hero-quick span,
.yw-hero-quick a {
    min-height: 38px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    padding: 0 13px;
    font-size: 12px;
    font-weight: 950;
}

.yw-hero-quick span {
    color: var(--yw-muted);
    background: transparent;
}

.yw-hero-quick a {
    color: var(--yw-primary-dark);
    border: 1px solid var(--yw-line);
    background: var(--yw-surface);
}

.yw-hero-quick a:hover {
    border-color: var(--yw-primary);
    color: var(--yw-primary);
}

.yw-search-panel {
    border-color: rgba(7, 87, 165, .1);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
        radial-gradient(circle at 12% 0%, rgba(245, 130, 32, .08), transparent 30%);
}

.yw-service-tabs button {
    min-height: 52px;
    border-radius: 18px;
    padding: 0 18px;
}

.yw-service-tabs button.is-active {
    background: linear-gradient(135deg, var(--yw-blue), var(--yw-forest));
    box-shadow: 0 15px 28px rgba(7, 87, 165, .18);
}

.yw-app-launcher {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.yw-service-dock {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.yw-service-dock a {
    min-height: 112px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    border: 1px solid rgba(7, 87, 165, .1);
    border-radius: 24px;
    color: var(--yw-ink);
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 42px rgba(6, 39, 101, .08);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.yw-service-dock a:hover {
    transform: translateY(-3px);
    border-color: rgba(245, 130, 32, .34);
    box-shadow: 0 24px 54px rgba(6, 39, 101, .12);
}

.yw-service-dock a > span {
    width: 50px;
    height: 50px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--yw-blue), var(--yw-forest));
}

.yw-service-dock svg {
    width: 24px;
    height: 24px;
}

.yw-marketplace-shelf {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.yw-marketplace-shelf article {
    min-width: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 4px 12px;
    align-items: center;
    border: 1px solid rgba(7, 87, 165, .1);
    border-radius: 24px;
    padding: 16px;
    background: linear-gradient(135deg, #fff, #f8fbff);
    box-shadow: 0 14px 34px rgba(6, 39, 101, .07);
}

.yw-marketplace-shelf span {
    grid-row: span 2;
    width: 48px;
    height: 48px;
    border-radius: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--yw-coral);
}

.yw-marketplace-shelf strong {
    color: var(--yw-blue-deep);
    font-size: 15px;
    font-weight: 950;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yw-marketplace-shelf p {
    margin: 0;
    color: var(--yw-muted);
    font-size: 12px;
    line-height: 1.45;
    font-weight: 750;
}

.yw-contact-bar {
    position: sticky;
    bottom: 0;
    z-index: 70;
    border-top: 1px solid var(--yw-line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(12px);
    box-shadow: 0 -10px 30px rgba(6, 31, 103, .08);
}

.yw-contact-bar__inner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    align-items: center;
    gap: 4px;
    padding: 10px 0;
}

.yw-contact-bar__inner > a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 8px 12px;
    border-radius: 12px;
    color: var(--yw-ink);
}

.yw-contact-bar__inner > a:hover {
    background: var(--yw-soft);
}

.yw-contact-bar__inner > a > i {
    flex: 0 0 auto;
    color: var(--yw-primary);
    font-size: 18px;
}

.yw-contact-bar__inner > a span {
    display: block;
    min-width: 0;
}

.yw-contact-bar__inner > a strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
    font-weight: 900;
}

.yw-contact-bar__inner > a small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--yw-muted);
    font-size: 11px;
    font-weight: 650;
}

.yw-contact-bar__cta {
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 0 18px !important;
    min-height: 44px;
    border-radius: 999px;
    background: var(--yw-accent);
    color: #fff !important;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.yw-contact-bar__cta:hover {
    background: var(--yw-accent) !important;
    filter: brightness(.94);
}

@media (max-width: 1023px) {
    .yw-contact-bar {
        display: none;
    }
}

.yw-split-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.yw-split-cards__card {
    border-radius: 26px;
    padding: clamp(24px, 3vw, 34px);
}

.yw-split-cards__card--plan {
    background: linear-gradient(150deg, var(--yw-primary) 0%, var(--yw-primary-dark) 100%);
    color: #fff;
}

.yw-split-cards__card--b2b {
    border: 1px solid var(--yw-line);
    background: var(--yw-soft);
    color: var(--yw-ink);
}

.yw-split-cards__card > span {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--yw-sun);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.yw-split-cards__card--b2b > span {
    color: var(--yw-primary);
}

.yw-split-cards__card > span em {
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--yw-accent);
    color: #fff;
    font-size: 10px;
    font-style: normal;
    font-weight: 950;
}

.yw-split-cards__card h3 {
    margin: 12px 0 16px;
    font-size: clamp(19px, 2.2vw, 23px);
    font-weight: 950;
    line-height: 1.2;
}

.yw-split-cards__card--plan h3 {
    color: #fff;
}

.yw-split-cards__card--b2b h3 {
    color: var(--yw-ink);
}

.yw-split-cards__card ul {
    display: grid;
    gap: 10px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.yw-split-cards__card li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 700;
}

.yw-split-cards__card--plan li {
    color: rgba(255, 255, 255, .9);
}

.yw-split-cards__card--plan li i {
    color: var(--yw-sun);
}

.yw-split-cards__card--b2b li {
    color: var(--yw-ink);
}

.yw-split-cards__card--b2b li i {
    color: var(--yw-primary);
}

.yw-split-cards__card--b2b .yw-btn--outline {
    color: var(--yw-primary) !important;
    border-color: var(--yw-primary);
}

.yw-stat-band {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}

.yw-stat-band__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 26px 18px;
    border: 1px solid var(--yw-line);
    border-radius: 18px;
    background: var(--yw-surface);
    text-align: center;
}

.yw-stat-band__card span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--yw-soft);
    color: var(--yw-primary);
    font-size: 20px;
}

.yw-stat-band__card strong {
    color: var(--yw-ink);
    font-size: 26px;
    font-weight: 950;
    line-height: 1.1;
}

.yw-stat-band__card small {
    color: var(--yw-muted);
    font-size: 12.5px;
    font-weight: 800;
}

@media (max-width: 767px) {
    .yw-split-cards {
        grid-template-columns: 1fr;
    }
}

.yw-payment-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.yw-payment-badges span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--yw-line);
    border-radius: 999px;
    background: var(--yw-surface);
    color: var(--yw-ink);
    font-size: 13px;
    font-weight: 800;
}

.yw-payment-badges span i {
    color: var(--yw-primary);
    font-size: 15px;
}

.yw-mini-trust-strip {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
    margin-top: 22px;
    padding: 20px 24px;
    border: 1px solid var(--yw-line);
    border-radius: 16px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
}

.yw-mini-trust-strip span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding-right: 18px;
    color: var(--yw-ink);
}

.yw-mini-trust-strip span:not(:last-child) {
    border-right: 1px solid var(--yw-line);
}

.yw-mini-trust-strip span i {
    flex: 0 0 auto;
    color: var(--yw-primary);
    font-size: 22px;
}

.yw-mini-trust-strip__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.yw-mini-trust-strip__text strong {
    color: var(--yw-ink);
    font-size: 13.5px;
    font-weight: 850;
    line-height: 1.2;
}

.yw-mini-trust-strip__text small {
    color: var(--yw-muted);
    font-size: 11.5px;
    font-weight: 650;
    line-height: 1.2;
}

@media (max-width: 900px) {
    .yw-mini-trust-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .yw-mini-trust-strip span:nth-child(3n) {
        border-right: 0;
        padding-right: 0;
    }
}

@media (max-width: 560px) {
    .yw-mini-trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-mini-trust-strip span:nth-child(3n) {
        border-right: 1px solid var(--yw-line);
        padding-right: 18px;
    }

    .yw-mini-trust-strip span:nth-child(2n) {
        border-right: 0;
        padding-right: 0;
    }
}

.yw-dmc-banner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    overflow: hidden;
    margin-top: 8px;
    margin-bottom: 8px;
    border-radius: 28px;
    padding: clamp(28px, 4vw, 44px);
    background: linear-gradient(120deg, var(--yw-primary-dark) 0%, var(--yw-primary) 100%);
    box-shadow: 0 24px 60px rgba(6, 31, 103, .22);
}

.yw-dmc-banner__copy span {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--yw-sun);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.yw-dmc-banner__copy h2 {
    margin: 0;
    max-width: 460px;
    color: #fff;
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 950;
    line-height: 1.15;
}

.yw-dmc-banner__copy p {
    max-width: 460px;
    margin: 12px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 600;
}

.yw-dmc-banner__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin: 18px 0 24px;
}

.yw-dmc-banner__meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, .9);
    font-size: 12.5px;
    font-weight: 700;
}

.yw-dmc-banner__seal {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    border: 2px dashed rgba(255, 209, 102, .6);
    background: rgba(255, 255, 255, .06);
    color: var(--yw-sun);
    text-align: center;
}

.yw-dmc-banner__seal i {
    font-size: 20px;
}

.yw-dmc-banner__seal span {
    margin-top: 4px;
    font-size: 11px;
    font-weight: 800;
}

.yw-dmc-banner__seal strong {
    font-size: 12px;
    font-weight: 950;
}

@media (max-width: 767px) {
    .yw-dmc-banner {
        grid-template-columns: 1fr;
        border-radius: 22px;
        padding: 22px;
        text-align: center;
    }

    .yw-dmc-banner__copy h2,
    .yw-dmc-banner__copy p {
        max-width: none;
    }

    .yw-dmc-banner__meta {
        justify-content: center;
    }

    .yw-dmc-banner__seal {
        justify-self: center;
    }
}

.yw-section-head--kashmir {
    align-items: start;
}

.yw-kashmir-eyebrow {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--yw-accent);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.yw-kashmir-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 14px;
}

.yw-kashmir-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--yw-ink);
    font-size: 12.5px;
    font-weight: 750;
}

.yw-kashmir-meta span i {
    color: var(--yw-primary);
    font-size: 13px;
}

.yw-section-head--kashmir .yw-section-head__actions {
    flex-direction: column;
    align-items: end;
    gap: 12px;
}

@media (max-width: 767px) {
    .yw-section-head--kashmir .yw-section-head__actions {
        align-items: stretch;
    }

    .yw-kashmir-meta {
        justify-content: center;
    }
}

.yw-our-services__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.yw-our-services__grid a {
    display: grid;
    justify-items: start;
    gap: 4px;
    border: 1px solid var(--yw-line);
    border-radius: 22px;
    padding: 22px 20px;
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.yw-our-services__grid a:hover {
    transform: translateY(-3px);
    border-color: rgba(245, 130, 32, .34);
    box-shadow: var(--yw-shadow);
}

.yw-our-services__grid span {
    width: 46px;
    height: 46px;
    margin-bottom: 8px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--yw-primary), var(--yw-primary-dark));
    color: #fff;
    font-size: 19px;
}

.yw-our-services__grid strong {
    color: var(--yw-ink);
    font-size: 15px;
    font-weight: 900;
}

.yw-our-services__grid small {
    color: var(--yw-muted);
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
}

.yw-our-services__grid em {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--yw-accent);
    font-size: 12.5px;
    font-style: normal;
    font-weight: 900;
}

@media (max-width: 1024px) {
    .yw-our-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .yw-our-services__grid {
        grid-template-columns: 1fr;
    }
}

.yw-feature-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.yw-feature-strip article {
    min-width: 0;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    border: 1px solid var(--yw-line);
    border-radius: 18px;
    padding: 14px 16px;
    background: var(--yw-surface);
}

.yw-feature-strip span {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--yw-primary);
    background: var(--yw-soft);
    font-size: 18px;
}

.yw-feature-strip strong {
    display: block;
    color: var(--yw-ink);
    font-size: 13.5px;
    font-weight: 900;
}

.yw-feature-strip small {
    display: block;
    margin-top: 2px;
    color: var(--yw-muted);
    font-size: 11.5px;
    font-weight: 700;
}

.yw-token-process {
    margin-top: 40px;
    text-align: center;
}

.yw-token-process__head {
    display: grid;
    justify-items: center;
    gap: 8px;
    margin-bottom: 28px;
}

.yw-token-process__head span {
    color: var(--yw-accent);
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.yw-token-process__head h2 {
    margin: 0;
    max-width: 640px;
    color: var(--yw-ink);
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 950;
}

.yw-token-process__steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.yw-token-process__steps::before {
    content: "";
    position: absolute;
    top: 44px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--yw-line) 0 8px, transparent 8px 14px);
    z-index: 0;
}

.yw-token-process__steps article {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 8px;
    padding: 0 8px;
}

.yw-token-process__steps i {
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--yw-line);
    background: var(--yw-surface);
    box-shadow: var(--yw-shadow-soft);
    color: var(--yw-accent);
    font-size: 22px;
    font-style: normal;
}

.yw-token-process__steps b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-top: -18px;
    border-radius: 50%;
    border: 2px solid var(--yw-surface);
    background: var(--yw-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 950;
}

.yw-token-process__steps strong {
    color: var(--yw-ink);
    font-size: 14.5px;
    font-weight: 900;
}

.yw-token-process__steps span {
    color: var(--yw-muted);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 650;
}

@media (max-width: 1024px) {
    .yw-feature-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-token-process__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 26px;
    }

    .yw-token-process__steps::before {
        display: none;
    }
}

@media (max-width: 767px) {
    .yw-feature-strip {
        grid-template-columns: 1fr;
    }

    .yw-token-process__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.yw-app-banners__rail,
.yw-package-grid--featured,
.yw-package-rail {
    mask-image: linear-gradient(90deg, #000 calc(100% - 42px), transparent);
}

.yw-package-card {
    border-radius: 26px;
    border-color: rgba(7, 87, 165, .12);
    box-shadow: 0 18px 46px rgba(6, 39, 101, .1);
}

.yw-package-card__topline {
    background:
        linear-gradient(135deg, rgba(7, 87, 165, .08), rgba(245, 130, 32, .08)),
        #fff;
}

.yw-package-card__topline > strong {
    color: var(--yw-blue-deep);
}

.yw-package-card__topline > small {
    color: var(--yw-forest);
}

.yw-package-card__avatar {
    background: linear-gradient(135deg, var(--yw-blue), var(--yw-coral));
    box-shadow: 0 10px 22px rgba(7, 87, 165, .16);
}

.yw-package-card__media span {
    color: var(--yw-blue-deep);
    background: #fff;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .13);
}

.yw-package-card__media b {
    background: linear-gradient(135deg, #6258ff, #7b61ff);
}

.yw-package-card__media em {
    border-radius: 0;
    top: 0;
    right: 0;
    min-height: 76px;
    min-width: 76px;
    transform: rotate(45deg) translate(22px, -36px);
    justify-content: center;
    background: #e6003c;
    box-shadow: none;
}

.yw-package-card h3 {
    font-size: 20px;
}

.yw-package-card__includes span {
    border: 1px solid rgba(7, 87, 165, .1);
    border-radius: 13px;
    background: #f8fbff;
}

.yw-package-card__includes span:nth-child(odd) {
    background: rgba(0, 111, 98, .08);
}

.yw-package-card__price strong {
    color: var(--yw-blue-deep);
}

.yw-package-card__details,
.yw-package-card__book {
    background: linear-gradient(135deg, var(--yw-blue), var(--yw-forest)) !important;
}

.yw-package-card__enquire {
    color: var(--yw-forest) !important;
    background: rgba(0, 111, 98, .1) !important;
}

@media (min-width: 1180px) {
    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card {
        flex-basis: clamp(300px, calc((100% - 66px) / 4), 342px);
    }
}

@media (max-width: 1024px) {
    .yw-service-dock {
        grid-template-columns: repeat(5, minmax(112px, 1fr));
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
    }

    .yw-service-dock a {
        scroll-snap-align: start;
    }

    .yw-marketplace-shelf {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .yw-hero-quick {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .yw-hero-quick::-webkit-scrollbar,
    .yw-service-dock::-webkit-scrollbar {
        display: none;
    }

    .yw-search-panel {
        margin-top: -44px;
        border-radius: 28px 28px 22px 22px;
        padding: 14px;
    }

    .yw-service-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        overflow: visible;
    }

    .yw-service-tabs button {
        width: 100%;
        min-width: 0;
        min-height: 58px;
        justify-content: flex-start;
        border-radius: 22px;
        padding: 0 14px;
        font-size: 16px;
    }

    .yw-service-tabs button small {
        margin-left: auto;
    }

    .yw-service-dock {
        grid-template-columns: repeat(5, 92px);
        gap: 10px;
        margin-inline: -10px;
        padding: 0 10px 6px;
    }

    .yw-service-dock a {
        min-height: 98px;
        border-radius: 22px;
    }

    .yw-service-dock a > span {
        width: 46px;
        height: 46px;
    }

    .yw-marketplace-shelf {
        display: flex;
        overflow-x: auto;
        margin-inline: -10px;
        padding: 0 10px 6px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .yw-marketplace-shelf::-webkit-scrollbar {
        display: none;
    }

    .yw-marketplace-shelf article {
        flex: 0 0 82%;
        scroll-snap-align: start;
    }

    .yw-app-banners__rail,
    .yw-package-grid--featured,
    .yw-package-rail {
        mask-image: none;
    }

    .yw-package-grid--featured .yw-package-card,
    .yw-package-rail .yw-package-card {
        flex-basis: min(86vw, 380px);
    }

    .yw-package-card {
        border-radius: 24px;
    }

    .yw-package-card h3 {
        font-size: 19px;
    }

    .yw-package-card__includes {
        grid-template-columns: repeat(5, minmax(64px, 1fr));
        overflow-x: auto;
        scrollbar-width: none;
    }

    .yw-package-card__includes::-webkit-scrollbar {
        display: none;
    }
}

/* Dense package card — homepage "Top Holiday Packages" rail only, matching the reference
   design's dense 7-across card row. Named "--dense" (not "--compact") to avoid collision with
   the pre-existing unrelated .yw-package-card--compact rules above. Layout-affecting selectors
   are prefixed body.yw-figma to outrank yatriwala-production.css's `body.yw-figma .yw-package-grid`
   rule (an element+2-class selector) which otherwise wins the display:grid/flex-basis tiebreak
   over a same-file, later-declared but lower-specificity class-only selector. */
body.yw-figma .yw-package-grid--dense.yw-package-grid--featured {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    mask-image: none;
    /* Break out of the 1200px .yw-container so ~3 full 470px cards + a peek of the next one
       fit on wide desktop viewports. Standard full-bleed idiom: margin pulls both edges out to
       the viewport, padding-left pushes content back to align with the heading above — only the
       right side ends up freed to extend past the container. */
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);
    width: 100vw;
    max-width: 100vw;
}

.yw-package-grid--dense.yw-package-grid--featured::-webkit-scrollbar {
    display: none;
}

body.yw-figma .yw-package-grid--dense.yw-package-grid--featured .yw-package-card.yw-package-card--dense {
    /* !important is required here: yatriwala-production.css has a pre-existing
       `.yw-package-card { flex: initial !important; width: 100% !important; }` reset for the
       /tour search grid that would otherwise always win regardless of selector specificity.
       Medium-sized card (bigger than the old 168px mini-card, smaller than a full-size hero
       card) so more of the row is visible and it stays comfortable on smaller screens. */
    flex: 0 0 clamp(260px, 22vw, 320px) !important;
    width: auto !important;
    scroll-snap-align: start;
}

.yw-package-card--dense {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--yw-line);
    border-radius: 16px;
    background: var(--yw-surface);
    box-shadow: 0 12px 28px rgba(10, 31, 28, .09);
    overflow: hidden;
}

.yw-package-card--dense .yw-package-card__media {
    position: relative;
    flex: 0 0 160px;
    height: 160px;
}

.yw-package-card--dense .yw-package-card__media a {
    display: block;
    height: 100%;
}

.yw-package-card--dense .yw-package-card__media img {
    display: block;
    width: 100%;
    height: 160px;
    aspect-ratio: auto;
    object-fit: cover;
}

.yw-package-card--dense .yw-package-card__ribbon {
    position: absolute;
    top: 10px;
    left: 10px;
    min-height: 20px;
    padding: 0 9px;
    font-size: 9.5px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.yw-package-card--dense .yw-package-card__save {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    min-height: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 6px 16px rgba(6, 31, 103, .18);
}

.yw-package-card--dense .yw-package-card__save i {
    font-size: 12px;
}

.yw-package-card--dense .yw-package-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 13px 14px 13px;
}

.yw-package-card--dense h3 {
    margin: 0 0 6px;
    font-size: 16px;
    line-height: 1.25;
    font-weight: 800;
}

.yw-package-card--dense h3 a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--yw-ink);
}

.yw-package-card__dense-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.yw-package-card__dense-pills {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.yw-package-card__dense-meta .yw-package-card__rating {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--yw-ink);
    font-size: 11.5px;
    font-weight: 800;
}

.yw-package-card__dense-meta .yw-package-card__rating i {
    color: var(--yw-sun);
    font-size: 11px;
}

.yw-package-card__dense-meta .yw-package-card__rating em {
    color: var(--yw-muted);
    font-style: normal;
    font-weight: 700;
}

.yw-package-card__duration-chip,
.yw-package-card__category-chip {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--yw-soft);
    color: var(--yw-primary-dark);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.yw-package-card__places {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 8px;
    color: var(--yw-muted);
    font-size: 11.5px;
    font-weight: 650;
}

.yw-package-card__places span {
    margin: 0 5px;
    color: var(--yw-line);
}

.yw-package-card__dense-includes {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--yw-line);
}

.yw-package-card__dense-includes span {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    min-width: 0;
}

.yw-package-card__dense-includes i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    color: var(--yw-primary);
    font-size: 15px;
    font-style: normal;
}

.yw-package-card__dense-includes small {
    color: var(--yw-muted);
    font-size: 9px;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.yw-package-card__dense-price-box {
    margin-top: auto;
    padding: 10px 12px;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    background: #f5f5f5;
}

.yw-package-card__dense-price-top {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 16px;
    margin-bottom: 3px;
}

.yw-package-card__dense-price-top s {
    color: var(--yw-muted);
    font-size: 11px;
    font-weight: 700;
}

.yw-package-card__dense-discount {
    display: inline-flex;
    align-items: center;
    min-height: 17px;
    padding: 0 6px;
    border-radius: 999px;
    background: #e5484d;
    color: #fff;
    font-size: 9.5px;
    font-weight: 850;
    font-style: normal;
}

.yw-package-card__dense-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.yw-package-card__dense-price-row strong {
    color: var(--yw-navy);
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
}

.yw-package-card__dense-price-row strong small {
    color: var(--yw-muted);
    font-size: 11px;
    font-weight: 700;
}

.yw-package-card__dense-cta,
.yw-package-card__dense-price-quote .yw-package-card__dense-cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    background: var(--yw-accent);
    color: #fff !important;
    font-size: 11.5px;
    font-weight: 850;
    white-space: nowrap;
    transition: filter .15s ease, transform .15s ease;
}

.yw-package-card__dense-cta:hover {
    filter: brightness(.94);
    transform: translateY(-1px);
}

.yw-package-card__dense-price-quote {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.yw-package-card__dense-price-quote > span {
    color: var(--yw-ink);
    font-size: 13px;
    font-weight: 800;
}

.yw-package-card__dense-price-note {
    margin: 6px 0 0;
    color: var(--yw-muted);
    font-size: 9.5px;
    font-weight: 650;
}

.yw-package-card__dense-token {
    margin: 8px 0 0;
    color: var(--yw-primary);
    font-size: 10.5px;
    font-weight: 750;
}

.yw-package-card__dense-occupancy {
    margin: 6px 0 0;
    color: var(--yw-muted);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.35;
}

@media (max-width: 767px) {
    /* Base clamp(260px, 22vw, 320px) already shrinks naturally on tablets; on phones pin a
       comfortable fixed width (most of the screen, with a peek of the next card) instead of a
       vague percentage that could go too small or too large. */
    body.yw-figma .yw-package-grid--dense.yw-package-grid--featured .yw-package-card.yw-package-card--dense {
        flex: 0 0 78%;
    }
}

@media (max-width: 360px) {
    body.yw-figma .yw-package-grid--dense.yw-package-grid--featured .yw-package-card.yw-package-card--dense {
        flex: 0 0 84%;
    }
}

/* Fix: an earlier redesign pass repositioned the "Flights included" service badge to
   top:12px/left:12px — the exact same spot as .yw-package-card__ribbon (Featured/DMC Special/
   etc). Since nearly every package includes a flight by default, this made the ribbon and the
   service badge overlap on almost every full-size (non-dense) package card. Ribbon stays
   top-left; the service badge and duration badge move to the bottom corners, clear of both the
   ribbon and the top-right wishlist button. */
.yw-package-card:not(.yw-package-card--dense) .yw-package-card__media span {
    top: auto;
    bottom: 12px;
    left: 12px;
    right: auto;
}

.yw-package-card:not(.yw-package-card--dense) .yw-package-card__media b {
    top: auto;
    bottom: 12px;
    left: auto;
    right: 12px;
}

/* FAQ as a two-column accordion grid (reference design). Column-flow keeps the
   two columns balanced without needing per-item JS. */
.yw-faq-list--duo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    align-content: start;
}

.yw-faq-list--duo details {
    height: fit-content;
    border: 1px solid var(--yw-line, rgba(6, 31, 103, .1));
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.yw-faq-list--duo summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    color: var(--yw-ink, #061f67);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
}

.yw-faq-list--duo summary::-webkit-details-marker {
    display: none;
}

.yw-faq-list--duo summary i {
    flex: 0 0 auto;
    color: var(--yw-muted, #5e6d77);
    font-size: 12px;
    transition: transform .2s ease;
}

.yw-faq-list--duo details[open] summary i {
    transform: rotate(45deg);
}

.yw-faq-list--duo details > p {
    margin: 0;
    padding: 0 16px 14px;
    color: var(--yw-muted, #5e6d77);
    font-size: 14px !important;
    line-height: 1.55;
}

@media (max-width: 767px) {
    .yw-faq-list--duo {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Paired two-column content row (International Escapes + Hotel Collection,
   Explore by Destination + Why Yatriwala) from the reference design. */
.yw-duo-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.yw-duo-row__col {
    min-width: 0;
}

.yw-duo-row__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.yw-duo-row__cards > * {
    min-width: 0;
}

/* Package cards inside a paired column are narrower than the full-width rails, so the
   rail-sizing flex-basis rules must not apply here. */
.yw-duo-row__cards .yw-package-card {
    width: auto !important;
    max-width: none !important;
    flex: initial !important;
}

@media (max-width: 1023px) {
    .yw-duo-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }
}

@media (max-width: 640px) {
    .yw-duo-row__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Destinations row is weighted toward the destination tiles, with the trust panel
   as a narrower sidebar (matches the reference proportions). */
.yw-duo-row--destinations {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
}

.yw-duo-row--destinations .yw-destination-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.yw-why-panel {
    padding: 24px;
    border-radius: 18px;
    background: var(--yw-soft, #eaf1ff);
}

.yw-why-panel h2 {
    margin: 0 0 18px;
    font-size: clamp(20px, 1.7vw, 24px) !important;
    line-height: 1.2 !important;
}

.yw-why-panel__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
}

.yw-why-panel__item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.yw-why-panel__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--yw-primary, #0757a5);
    background: #fff;
    font-size: 14px;
}

.yw-why-panel__item strong {
    display: block;
    color: var(--yw-ink, #061f67);
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
}

.yw-why-panel__item small {
    display: block;
    margin-top: 2px;
    color: var(--yw-muted, #5e6d77);
    font-size: 12px;
    line-height: 1.35;
    font-weight: 600;
}

@media (max-width: 1023px) {
    .yw-duo-row--destinations {
        grid-template-columns: minmax(0, 1fr);
    }

    .yw-duo-row--destinations .yw-destination-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .yw-duo-row--destinations .yw-destination-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .yw-why-panel__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Hotel cards get their own visual language, distinct from package cards:
   image, name, location, star rating and a per-night price — no package-style
   inclusion chips, ribbons or duration badges. */
.yw-hotel-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--yw-line, rgba(6, 31, 103, .1));
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(11, 43, 107, .07);
    transition: transform .2s ease, box-shadow .2s ease;
}

@media (hover: hover) {
    .yw-hotel-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 18px 34px rgba(11, 43, 107, .13);
    }
}

.yw-hotel-card__media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--yw-soft, #eaf1ff);
}

.yw-hotel-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

@media (hover: hover) {
    .yw-hotel-card:hover .yw-hotel-card__media img {
        transform: scale(1.04);
    }
}

.yw-hotel-card__media-fallback {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--yw-primary, #0757a5);
    font-size: 26px;
}

.yw-hotel-card__body {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 12px 14px 14px;
}

.yw-hotel-card__body h3 {
    margin: 0;
    font-size: 15px !important;
    line-height: 1.3 !important;
    font-weight: 800;
}

.yw-hotel-card__body h3 a {
    color: var(--yw-ink, #061f67);
    text-decoration: none;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.yw-hotel-card__place {
    color: var(--yw-muted, #5e6d77);
    font-size: 12px;
    font-weight: 600;
}

.yw-hotel-card__stars {
    display: inline-flex;
    gap: 2px;
    color: #f5a623;
    font-size: 11px;
}

.yw-hotel-card__foot {
    margin-top: 4px;
}

.yw-hotel-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px;
    color: var(--yw-ink, #061f67);
    font-size: 15px;
    font-weight: 900;
}

.yw-hotel-card__price small {
    color: var(--yw-muted, #5e6d77);
    font-size: 11px;
    font-weight: 600;
}

/* "Your Trip. Your Way." personalised-trip banner (reference design). Full-bleed
   destination photo with a navy scrim so the copy stays legible over any image. */
.yw-plan-banner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    min-height: 260px;
    padding: 40px;
    border-radius: 18px;
    overflow: hidden;
    background-image: linear-gradient(90deg, rgba(6, 31, 103, .88) 0%, rgba(6, 31, 103, .72) 45%, rgba(6, 31, 103, .35) 100%), var(--plan-image);
    background-size: cover;
    background-position: center;
    color: #fff;
}

.yw-plan-banner__copy {
    flex: 1 1 460px;
    min-width: 0;
}

.yw-plan-banner__copy h2 {
    margin: 0 0 10px;
    color: #fff !important;
}

.yw-plan-banner__copy p {
    max-width: 520px;
    margin: 0 0 18px;
    color: rgba(255, 255, 255, .92) !important;
}

.yw-plan-banner__checks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.yw-plan-banner__checks li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.yw-plan-banner__checks i {
    color: var(--yw-accent, #f58220);
}

.yw-plan-banner__actions {
    flex: 0 0 auto;
    display: grid;
    gap: 12px;
    min-width: 220px;
}

.yw-plan-banner__actions .yw-btn {
    justify-content: center;
    min-height: 48px;
}

.yw-btn--white {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 999px;
    padding: 0 22px;
    color: var(--yw-ink, #061f67);
    background: #fff;
    font-weight: 800;
    text-decoration: none;
}

.yw-btn--white i {
    color: #25d366;
    font-size: 17px;
}

@media (max-width: 767px) {
    .yw-plan-banner {
        padding: 28px 20px;
        background-image: linear-gradient(180deg, rgba(6, 31, 103, .9), rgba(6, 31, 103, .78)), var(--plan-image);
    }

    .yw-plan-banner__actions {
        width: 100%;
        min-width: 0;
    }
}

/* ==========================================================================
   Homepage typography scale — H1/H2/body-copy font-size has been overridden
   piecemeal at four separate breakpoints across this file's history, and on
   mobile it compounded down to 24-33px for H1 and 14px for body text (well
   below a readable size). This block is the single source of truth for
   homepage heading/body sizes; !important guarantees it wins over the older
   scattered declarations regardless of source order.
   ========================================================================== */
:root {
    --yw-h1-desktop: clamp(48px, 4.2vw, 64px);
    --yw-h2-desktop: clamp(32px, 2.6vw, 40px);
    --yw-h3-desktop: clamp(20px, 1.6vw, 24px);
    --yw-body-desktop: clamp(15px, 1vw, 17px);
    --yw-small-desktop: 14px;
    --yw-h1-mobile: clamp(34px, 8vw, 42px);
    --yw-h2-mobile: clamp(26px, 6vw, 32px);
    --yw-body-mobile: 16px;
}

.yw-hero h1,
.yw-hero__copy h1 {
    font-size: var(--yw-h1-desktop) !important;
    line-height: 1.05 !important;
}

.yw-section-head h2,
.yw-split-section__intro h2,
.yw-newsletter h2 {
    font-size: var(--yw-h2-desktop) !important;
    line-height: 1.12 !important;
}

.yw-section-head p,
.yw-split-section__intro p,
.yw-newsletter p,
.yw-hero p {
    font-size: var(--yw-body-desktop) !important;
    line-height: 1.5 !important;
}

.yw-package-card h3,
.yw-tour-card--commerce h3 {
    font-size: var(--yw-h3-desktop) !important;
    line-height: 1.3 !important;
}

@media (max-width: 767px) {
    .yw-hero h1,
    .yw-hero__copy h1 {
        max-width: none !important;
        font-size: var(--yw-h1-mobile) !important;
        line-height: 1.08 !important;
        overflow-wrap: normal !important;
    }

    .yw-hero p {
        font-size: var(--yw-body-mobile) !important;
    }

    .yw-section-head h2,
    .yw-split-section__intro h2,
    .yw-newsletter h2 {
        font-size: var(--yw-h2-mobile) !important;
        line-height: 1.14 !important;
    }

    .yw-section-head p,
    .yw-split-section__intro p,
    .yw-newsletter p {
        font-size: var(--yw-body-mobile) !important;
    }
}
