/* ===================================================================
   UmrahQuest — Design Tokens & Base
   =================================================================== */

:root {
    /* Brand Palette */
    --uq-navy: #132D3A;
    --uq-navy-light: #1c3f50;
    --uq-navy-dark: #0c1e27;
    --uq-teal: #28716C;
    --uq-teal-light: #34918a;
    --uq-teal-dark: #1e5551;
    --uq-teal-subtle: rgba(40, 113, 108, 0.08);
    --uq-bronze: #B99462;
    --uq-bronze-light: #d4b07e;
    --uq-porcelain: #FAF8F4;
    --uq-sage: #E8EFEC;
    --uq-graphite: #273238;
    --uq-white: #FFFFFF;
    --uq-stone: #D8D5CE;
    --uq-stone-light: #EDEAE5;

    /* Functional */
    --uq-text: var(--uq-graphite);
    --uq-text-secondary: #5a6670;
    --uq-text-tertiary: #8a9199;
    --uq-border: var(--uq-stone);
    --uq-bg: var(--uq-porcelain);
    --uq-surface: var(--uq-white);
    --uq-success: #2d8a4e;
    --uq-warning: #c2790a;
    --uq-error: #c53030;

    /* Typography */
    --uq-serif: 'Lora', Georgia, 'Times New Roman', serif;
    --uq-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --uq-fs-xs: 0.75rem;
    --uq-fs-sm: 0.875rem;
    --uq-fs-base: 1rem;
    --uq-fs-md: 1.125rem;
    --uq-fs-lg: 1.25rem;
    --uq-fs-xl: 1.5rem;
    --uq-fs-2xl: 2rem;
    --uq-fs-3xl: 2.5rem;
    --uq-fs-4xl: 3.25rem;
    --uq-fs-5xl: 4rem;

    /* Spacing */
    --uq-gap: 1.5rem;
    --uq-section-py: 6rem;
    --uq-container: 1280px;
    --uq-container-wide: 1440px;

    /* Radius */
    --uq-radius-sm: 4px;
    --uq-radius: 8px;
    --uq-radius-lg: 12px;
    --uq-radius-xl: 16px;

    /* Shadows */
    --uq-shadow-sm: 0 1px 3px rgba(19,45,58,0.06);
    --uq-shadow: 0 4px 16px rgba(19,45,58,0.08);
    --uq-shadow-lg: 0 8px 32px rgba(19,45,58,0.1);

    /* Transitions */
    --uq-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* ===================================================================
   Reset & Base
   =================================================================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-base);
    line-height: 1.6;
    color: var(--uq-text);
    background-color: var(--uq-bg);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--uq-teal);
    text-decoration: none;
    transition: color var(--uq-transition);
}
a:hover { color: var(--uq-teal-dark); }
a:focus-visible {
    outline: 2px solid var(--uq-teal);
    outline-offset: 2px;
    border-radius: var(--uq-radius-sm);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--uq-sans);
    font-weight: 700;
    line-height: 1.2;
    color: var(--uq-navy);
}

.editorial-heading {
    font-family: var(--uq-serif);
    font-weight: 500;
}

/* ===================================================================
   Layout
   =================================================================== */

.container {
    max-width: var(--uq-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}
.container--wide {
    max-width: var(--uq-container-wide);
}
.container--narrow {
    max-width: 800px;
}

.section {
    padding: var(--uq-section-py) 0;
}
.section--sage { background: var(--uq-sage); }
.section--white { background: var(--uq-white); }
.section--navy {
    background: var(--uq-navy);
    color: var(--uq-porcelain);
}
.section--navy h1,
.section--navy h2,
.section--navy h3,
.section--navy h4 {
    color: var(--uq-white);
}

.section__label {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--uq-teal);
    margin-bottom: 1rem;
}
.section--navy .section__label {
    color: var(--uq-bronze);
}

.section__heading {
    font-size: var(--uq-fs-3xl);
    margin-bottom: 1.25rem;
}
.section__heading--serif {
    font-family: var(--uq-serif);
    font-weight: 500;
    font-style: italic;
}

.section__intro {
    font-size: var(--uq-fs-md);
    color: var(--uq-text-secondary);
    max-width: 640px;
    line-height: 1.7;
}

@media (max-width: 768px) {
    .section { padding: 3.5rem 0; }
    .section__heading { font-size: var(--uq-fs-2xl); }
    :root { --uq-fs-4xl: 2.25rem; --uq-fs-5xl: 2.75rem; }
}

/* ===================================================================
   Buttons
   =================================================================== */

.btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-sm);
    font-weight: 600;
    padding: 0.8rem 1.75rem;
    border-radius: var(--uq-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--uq-transition);
    text-decoration: none;
    line-height: 1.2;
    white-space: nowrap;
}

.btn--primary {
    background: var(--uq-teal);
    color: var(--uq-white);
    border-color: var(--uq-teal);
}
.btn--primary:hover {
    background: var(--uq-teal-dark);
    border-color: var(--uq-teal-dark);
    color: var(--uq-white);
}

.btn--secondary {
    background: transparent;
    color: var(--uq-navy);
    border-color: var(--uq-navy);
}
.btn--secondary:hover {
    background: var(--uq-navy);
    color: var(--uq-white);
}

.btn--outline {
    background: transparent;
    color: var(--uq-teal);
    border-color: var(--uq-teal);
}
.btn--outline:hover {
    background: var(--uq-teal);
    color: var(--uq-white);
}

.btn--white {
    background: var(--uq-white);
    color: var(--uq-navy);
    border-color: var(--uq-white);
}
.btn--white:hover {
    background: var(--uq-porcelain);
    border-color: var(--uq-porcelain);
}

.btn--sm {
    padding: 0.5rem 1.25rem;
    font-size: var(--uq-fs-xs);
}

.btn--lg {
    padding: 1rem 2.25rem;
    font-size: var(--uq-fs-base);
}

.btn:focus-visible {
    outline: 2px solid var(--uq-bronze);
    outline-offset: 2px;
}

/* ===================================================================
   Topbar
   =================================================================== */
.topbar {
    background: var(--uq-navy);
    color: var(--uq-porcelain);
    font-size: var(--uq-fs-xs);
}
.topbar__inner {
    max-width: var(--uq-container-wide);
    margin: 0 auto;
    padding: 0.4rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}
.topbar__announcement { font-weight: 500; }
.topbar__right { display: flex; gap: 1.25rem; }
.topbar__link {
    display: flex; align-items: center; gap: 0.375rem;
    color: rgba(250,248,244,0.75); font-weight: 500;
    transition: color var(--uq-transition);
}
.topbar__link:hover { color: var(--uq-porcelain); }
.topbar__link .uq-icon { opacity: 0.7; }
@media (max-width: 768px) {
    .topbar__left { display: none; }
    .topbar__right { width: 100%; justify-content: center; }
    .topbar__link span, .topbar__link .uq-icon--mail + * { display: none; }
}

/* ===================================================================
   Header
   =================================================================== */
.site-header {
    position: sticky; top: 0; z-index: 1000;
    background: var(--uq-white);
    border-bottom: 1px solid var(--uq-stone-light);
    transition: box-shadow var(--uq-transition), height var(--uq-transition);
}
.site-header.scrolled { box-shadow: var(--uq-shadow); }

.header__inner {
    display: flex; align-items: center; justify-content: space-between;
    max-width: var(--uq-container-wide); margin: 0 auto;
    padding: 0 1.5rem; height: 64px;
}

.header__logo { display: flex; align-items: center; flex-shrink: 0; }
.header__logo img { max-height: 36px; width: auto; }
.header__logo-text {
    font-family: var(--uq-sans); font-size: var(--uq-fs-lg);
    font-weight: 800; color: var(--uq-navy);
    letter-spacing: -0.02em; text-decoration: none;
}
.header__logo-text:hover { color: var(--uq-navy); }

/* Nav menu container */
.nav-menu {
    display: flex; align-items: center; gap: 0;
    list-style: none; margin: 0; padding: 0;
}
.nav-item { position: relative; }
.nav-item > a, .nav-item__trigger {
    display: flex; align-items: center; gap: 0.2rem;
    font-size: 0.8125rem; font-weight: 500; color: var(--uq-text);
    padding: 0.4rem 0.55rem; border-radius: var(--uq-radius-sm);
    transition: color var(--uq-transition), background var(--uq-transition);
    background: none; border: none; cursor: pointer; font-family: inherit;
    white-space: nowrap; line-height: 1.2;
}
.nav-item > a:hover, .nav-item__trigger:hover,
.nav-item.open > .nav-item__trigger {
    color: var(--uq-teal); background: var(--uq-teal-subtle);
}
.nav-item__trigger .uq-icon {
    transition: transform 0.2s; opacity: 0.5;
}
.nav-item.open > .nav-item__trigger .uq-icon {
    transform: rotate(180deg);
}

/* Dropdown panel — uses ::before bridge to prevent hover-gap closing */
.nav-dropdown {
    position: absolute; top: 100%; left: 50%;
    transform: translateX(-50%);
    min-width: 220px; padding: 0.5rem;
    padding-top: calc(0.5rem + 6px); /* extra top padding for hover bridge */
    background: var(--uq-white); border: 1px solid var(--uq-stone-light);
    border-radius: var(--uq-radius-lg);
    box-shadow: 0 12px 40px rgba(19,45,58,0.12);
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
    margin-top: 2px;
    z-index: 100;
}
/* Invisible hover bridge between trigger and dropdown */
.nav-dropdown::before {
    content: ''; position: absolute; top: -12px; left: 0; right: 0; height: 14px;
}
.nav-item.open > .nav-dropdown {
    opacity: 1; visibility: visible; pointer-events: auto;
}
.nav-dropdown__link {
    display: block; padding: 0.55rem 0.875rem;
    font-size: 0.8125rem; font-weight: 500; color: var(--uq-text);
    border-radius: var(--uq-radius); transition: all var(--uq-transition);
    line-height: 1.4;
}
.nav-dropdown__link:hover {
    color: var(--uq-teal); background: var(--uq-teal-subtle);
}

/* Mega menu dropdown */
.nav-dropdown--mega {
    min-width: auto; width: auto; left: 50%;
    transform: translateX(-50%);
    padding: 1rem;
    padding-top: calc(1rem + 6px);
}
.mega-menu {
    display: flex; gap: 0;
}
.mega-col {
    min-width: 180px; padding: 0 0.75rem;
    border-right: 1px solid var(--uq-stone-light);
}
.mega-col:last-child { border-right: none; }
.mega-col:first-child { padding-left: 0; }
.mega-col:last-child { padding-right: 0; }
.mega-col__heading {
    display: block; font-size: 0.6875rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--uq-text-tertiary); padding: 0.375rem 0.875rem;
    margin-bottom: 0.25rem;
}

.header__actions {
    display: flex; align-items: center; gap: 0.75rem;
}
.header__cta { white-space: nowrap; }

.mobile-toggle {
    display: none; background: none; border: none;
    cursor: pointer; color: var(--uq-navy); padding: 0.5rem;
}

@media (max-width: 1280px) {
    .nav-menu { display: none; }
    .header__cta { display: none; }
    .mobile-toggle { display: flex; }
}
@media (min-width: 1281px) and (max-width: 1440px) {
    .nav-item > a, .nav-item__trigger { font-size: 0.75rem; padding: 0.375rem 0.45rem; }
    .header__inner { max-width: 100%; }
}

/* Mobile Menu */
.mobile-menu {
    position: fixed; top: 0; right: -100%;
    width: 100%; max-width: 420px; height: 100vh;
    background: var(--uq-white); z-index: 10000;
    transition: right 0.3s ease; overflow-y: auto;
    padding: 1.5rem; -webkit-overflow-scrolling: touch;
}
.mobile-menu.open { right: 0; }

.mobile-menu__overlay {
    position: fixed; inset: 0;
    background: rgba(19,45,58,0.5); z-index: 9999;
    opacity: 0; pointer-events: none;
    transition: opacity 0.3s;
}
.mobile-menu__overlay.open { opacity: 1; pointer-events: auto; }

.mobile-menu__header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 1.5rem; padding-bottom: 1rem;
    border-bottom: 1px solid var(--uq-stone-light);
}
.mobile-menu__close {
    background: none; border: none; cursor: pointer;
    color: var(--uq-navy); padding: 0.75rem;
    min-width: 44px; min-height: 44px;
    display: flex; align-items: center; justify-content: center;
}

/* Mobile nav links */
.mobile-nav__link {
    display: block; padding: 1rem 0;
    font-size: var(--uq-fs-md); font-weight: 500; color: var(--uq-text);
    border-bottom: 1px solid var(--uq-stone-light);
}
.mobile-nav__link:hover { color: var(--uq-teal); }

/* Mobile accordion groups */
.mobile-nav__group { border-bottom: 1px solid var(--uq-stone-light); }
.mobile-nav__trigger {
    display: flex; justify-content: space-between; align-items: center;
    width: 100%; padding: 1rem 0;
    font-size: var(--uq-fs-md); font-weight: 500; color: var(--uq-text);
    background: none; border: none; cursor: pointer; font-family: inherit;
    min-height: 44px;
}
.mobile-nav__trigger .uq-icon {
    transition: transform 0.2s; opacity: 0.4;
}
.mobile-nav__group.open .mobile-nav__trigger .uq-icon {
    transform: rotate(180deg);
}
.mobile-nav__sub {
    max-height: 0; overflow: hidden; transition: max-height 0.3s ease;
    padding-left: 1rem;
}
.mobile-nav__sub a {
    display: block; padding: 0.6rem 0;
    font-size: var(--uq-fs-sm); color: var(--uq-text-secondary);
    font-weight: 500;
}
.mobile-nav__sub a:hover { color: var(--uq-teal); }

.mobile-menu__actions {
    margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem;
}
.mobile-menu__actions .btn { width: 100%; justify-content: center; }

.mobile-menu__contact {
    margin-top: 1.5rem; padding-top: 1.25rem;
    border-top: 1px solid var(--uq-stone-light);
    display: flex; flex-direction: column; gap: 0.75rem;
}
.mobile-menu__contact a {
    display: flex; align-items: center; gap: 0.5rem;
    font-weight: 500; color: var(--uq-navy);
    min-height: 44px;
}

/* ===================================================================
   Hero
   =================================================================== */

.hero {
    background: var(--uq-navy);
    overflow: hidden;
}

.hero__inner {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    min-height: 600px;
    max-width: var(--uq-container-wide);
    margin: 0 auto;
}

.hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem 3rem 4rem 3rem;
    color: var(--uq-porcelain);
}

.hero__eyebrow {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--uq-bronze);
    margin-bottom: 1.5rem;
}

.hero__title {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-4xl);
    font-weight: 500;
    font-style: italic;
    color: var(--uq-white);
    line-height: 1.15;
    margin-bottom: 1.5rem;
}

.hero__subtitle {
    font-size: var(--uq-fs-md);
    color: rgba(250, 248, 244, 0.75);
    line-height: 1.7;
    max-width: 480px;
    margin-bottom: 2.5rem;
}

.hero__ctas {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.hero__media {
    position: relative;
    overflow: hidden;
}
.hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero__media-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--uq-navy) 0%, transparent 30%);
}

@media (max-width: 768px) {
    .hero__inner {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .hero__content {
        padding: 3rem 1.5rem;
        order: 2;
    }
    .hero__media {
        height: 280px;
        order: 1;
    }
    .hero__media-overlay {
        background: linear-gradient(to top, var(--uq-navy) 0%, transparent 60%);
    }
    .hero__title { font-size: var(--uq-fs-3xl); }
}

/* ===================================================================
   Journey Finder
   =================================================================== */

.journey-finder {
    background: var(--uq-white);
    margin-top: -2rem;
    position: relative;
    z-index: 10;
    border-radius: var(--uq-radius-lg);
    box-shadow: var(--uq-shadow-lg);
    padding: 2rem;
    max-width: var(--uq-container);
    margin-left: auto;
    margin-right: auto;
}

.journey-finder__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr) auto;
    gap: 1rem;
    align-items: end;
}

.journey-finder__field label {
    display: block;
    font-size: var(--uq-fs-xs);
    font-weight: 600;
    color: var(--uq-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.375rem;
}

.journey-finder__field select,
.journey-finder__field input {
    width: 100%;
    padding: 0.7rem 0.875rem;
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius);
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-sm);
    color: var(--uq-text);
    background: var(--uq-porcelain);
    transition: border-color var(--uq-transition);
    appearance: auto;
}
.journey-finder__field select:focus,
.journey-finder__field input:focus {
    border-color: var(--uq-teal);
    outline: none;
    box-shadow: 0 0 0 3px var(--uq-teal-subtle);
}

@media (max-width: 1024px) {
    .journey-finder { margin: -1rem 1.5rem 0; }
    .journey-finder__grid {
        grid-template-columns: 1fr 1fr;
    }
    .journey-finder__grid .btn { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
    .journey-finder__grid { grid-template-columns: 1fr; }
}

/* ===================================================================
   Journey Cards
   =================================================================== */

.journey-card {
    background: var(--uq-white);
    border-radius: var(--uq-radius-lg);
    overflow: hidden;
    box-shadow: var(--uq-shadow-sm);
    transition: box-shadow var(--uq-transition), transform var(--uq-transition);
}
.journey-card:hover {
    box-shadow: var(--uq-shadow);
    transform: translateY(-2px);
}

.journey-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.journey-card__media {
    position: relative;
    aspect-ratio: 3/2;
    overflow: hidden;
    background: var(--uq-sage);
}
.journey-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--uq-transition);
}
.journey-card:hover .journey-card__media img {
    transform: scale(1.03);
}

.journey-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--uq-navy) 0%, var(--uq-teal-dark) 100%);
    color: rgba(255,255,255,0.4);
    font-size: var(--uq-fs-xl);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.journey-card__badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--uq-white);
    color: var(--uq-navy);
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    padding: 0.3rem 0.75rem;
    border-radius: 100px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.journey-card__demo {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--uq-warning);
    color: var(--uq-white);
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 100px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.journey-card__body {
    padding: 1.25rem 1.5rem 1.5rem;
}

.journey-card__title {
    font-size: var(--uq-fs-md);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 0.5rem;
    line-height: 1.3;
}

.journey-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
    margin-bottom: 0.75rem;
}

.journey-card__details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.journey-card__details span {
    font-size: var(--uq-fs-xs);
    color: var(--uq-teal);
    background: var(--uq-teal-subtle);
    padding: 0.2rem 0.6rem;
    border-radius: 100px;
    font-weight: 500;
}

.journey-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-top: 0.75rem;
    border-top: 1px solid var(--uq-stone-light);
}

.journey-card__price-label {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
    display: block;
}
.journey-card__price-amount {
    font-size: var(--uq-fs-xl);
    font-weight: 800;
    color: var(--uq-navy);
}
.journey-card__price-note {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

.journey-card__avail {
    font-size: var(--uq-fs-xs);
    font-weight: 600;
    padding: 0.25rem 0.6rem;
    border-radius: 100px;
}
.journey-card__avail--available { background: #e6f5ec; color: var(--uq-success); }
.journey-card__avail--limited { background: #fff3e0; color: var(--uq-warning); }
.journey-card__avail--sold_out { background: #fef2f2; color: var(--uq-error); }
.journey-card__avail--coming_soon { background: var(--uq-sage); color: var(--uq-text-secondary); }

/* Featured Journeys Grid */
.journeys-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
@media (max-width: 1024px) {
    .journeys-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .journeys-grid { grid-template-columns: 1fr; }
}

/* ===================================================================
   Departures Table
   =================================================================== */

.departures-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.departure-row {
    display: grid;
    grid-template-columns: 80px 1fr 120px 110px 140px;
    gap: 1.5rem;
    align-items: center;
    padding: 1.25rem 1.5rem;
    background: var(--uq-white);
    border-bottom: 1px solid var(--uq-stone-light);
    transition: background var(--uq-transition);
}
.departure-row:first-child { border-radius: var(--uq-radius-lg) var(--uq-radius-lg) 0 0; }
.departure-row:last-child { border-bottom: none; border-radius: 0 0 var(--uq-radius-lg) var(--uq-radius-lg); }
.departure-row:hover { background: var(--uq-porcelain); }

.departure-row__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--uq-sage);
    padding: 0.5rem;
    border-radius: var(--uq-radius);
    line-height: 1.2;
}
.departure-row__month {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--uq-teal);
}
.departure-row__day {
    font-size: var(--uq-fs-xl);
    font-weight: 800;
    color: var(--uq-navy);
}
.departure-row__year {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

.departure-row__journey {
    font-size: var(--uq-fs-base);
    font-weight: 600;
    color: var(--uq-navy);
    margin-bottom: 0.25rem;
}
.departure-row__meta {
    display: flex;
    gap: 1rem;
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
}

.departure-row__price-label {
    display: block;
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}
.departure-row__price-amount {
    font-size: var(--uq-fs-lg);
    font-weight: 800;
    color: var(--uq-navy);
}

.status-badge {
    font-size: var(--uq-fs-xs);
    font-weight: 600;
    padding: 0.3rem 0.75rem;
    border-radius: 100px;
}
.status-badge--open { background: #e6f5ec; color: var(--uq-success); }
.status-badge--filling { background: #fff3e0; color: var(--uq-warning); }
.status-badge--closed { background: #fef2f2; color: var(--uq-error); }

@media (max-width: 768px) {
    .departure-row {
        grid-template-columns: 70px 1fr;
        gap: 1rem;
    }
    .departure-row__price,
    .departure-row__status { display: none; }
    .departure-row__action { grid-column: 1 / -1; }
}

/* ===================================================================
   Clarity Section (Inclusions)
   =================================================================== */

.clarity-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius-lg);
    overflow: hidden;
    background: var(--uq-white);
}

.clarity-col {
    padding: 2rem 1.5rem;
    border-right: 1px solid var(--uq-stone-light);
}
.clarity-col:last-child { border-right: none; }

.clarity-col__header {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid;
}
.clarity-col--included .clarity-col__header { color: var(--uq-success); border-color: var(--uq-success); }
.clarity-col--excluded .clarity-col__header { color: var(--uq-text-tertiary); border-color: var(--uq-stone); }
.clarity-col--optional .clarity-col__header { color: var(--uq-teal); border-color: var(--uq-teal); }
.clarity-col--confirm .clarity-col__header { color: var(--uq-bronze); border-color: var(--uq-bronze); }

.clarity-col__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.clarity-col__list li {
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.clarity-col__list li svg {
    flex-shrink: 0;
    margin-top: 2px;
}

@media (max-width: 768px) {
    .clarity-grid {
        grid-template-columns: 1fr 1fr;
    }
    .clarity-col {
        border-bottom: 1px solid var(--uq-stone-light);
    }
    .clarity-col:nth-child(2) { border-right: none; }
}
@media (max-width: 480px) {
    .clarity-grid { grid-template-columns: 1fr; }
    .clarity-col { border-right: none; }
}

/* ===================================================================
   Makkah / Madinah Editorial
   =================================================================== */

.destinations {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    min-height: 500px;
}

.destination {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    padding: 3rem;
}
.destination__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.destination:hover .destination__bg {
    transform: scale(1.04);
}
.destination__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(19,45,58,0.85) 0%, rgba(19,45,58,0.2) 60%);
}
.destination__content {
    position: relative;
    z-index: 2;
    color: var(--uq-white);
}
.destination__title {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-3xl);
    font-weight: 500;
    font-style: italic;
    color: var(--uq-white);
    margin-bottom: 0.5rem;
}
.destination__tagline {
    font-size: var(--uq-fs-md);
    color: rgba(255,255,255,0.7);
    margin-bottom: 1.5rem;
}

@media (max-width: 768px) {
    .destinations { grid-template-columns: 1fr; }
    .destination { min-height: 350px; padding: 2rem 1.5rem; }
}

/* ===================================================================
   How It Works (Journey Path)
   =================================================================== */

.journey-path {
    display: flex;
    gap: 0;
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
}

.journey-path__step {
    flex: 1;
    text-align: center;
    padding: 0 1rem;
    position: relative;
}

.journey-path__number {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--uq-teal);
    color: var(--uq-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: var(--uq-fs-sm);
    margin-bottom: 1rem;
    position: relative;
    z-index: 2;
}

.journey-path__step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 24px;
    left: calc(50% + 24px);
    width: calc(100% - 48px);
    height: 2px;
    background: var(--uq-stone);
}

.journey-path__title {
    font-size: var(--uq-fs-sm);
    font-weight: 600;
    color: var(--uq-navy);
}

@media (max-width: 768px) {
    .journey-path { flex-direction: column; gap: 0; align-items: flex-start; }
    .journey-path__step {
        display: flex;
        align-items: center;
        gap: 1rem;
        text-align: left;
        padding: 0.75rem 0;
    }
    .journey-path__step:not(:last-child)::after {
        top: auto;
        left: 23px;
        width: 2px;
        height: calc(100%);
        top: 48px;
    }
}

/* ===================================================================
   Multi-Step Form (Custom Journey)
   =================================================================== */

.uqc-multistep {
    max-width: 680px;
    margin: 0 auto;
    background: var(--uq-white);
    border-radius: var(--uq-radius-lg);
    padding: 2.5rem;
    box-shadow: var(--uq-shadow);
}

.uqc-step { display: none; }
.uqc-step.active { display: block; }

.uqc-step-progress {
    margin-bottom: 2rem;
}
.uqc-step-progress__bar {
    height: 4px;
    background: var(--uq-stone-light);
    border-radius: 100px;
    overflow: hidden;
    margin-bottom: 0.75rem;
}
.uqc-step-progress__fill {
    height: 100%;
    background: var(--uq-teal);
    border-radius: 100px;
    transition: width var(--uq-transition);
}
.uqc-step-progress__text {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

.uqc-step__heading {
    font-size: var(--uq-fs-xl);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 1.5rem;
}

.form-group {
    margin-bottom: 1.25rem;
}
.form-group label {
    display: block;
    font-size: var(--uq-fs-sm);
    font-weight: 600;
    color: var(--uq-text);
    margin-bottom: 0.375rem;
}
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.7rem 0.875rem;
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius);
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-base);
    color: var(--uq-text);
    background: var(--uq-porcelain);
    transition: border-color var(--uq-transition);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--uq-teal);
    box-shadow: 0 0 0 3px var(--uq-teal-subtle);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
@media (max-width: 480px) {
    .form-row { grid-template-columns: 1fr; }
}

.uqc-step__actions {
    display: flex;
    justify-content: space-between;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--uq-stone-light);
}

/* Option Pills */
.option-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.option-pill {
    display: inline-block;
    padding: 0.5rem 1rem;
    border: 1px solid var(--uq-border);
    border-radius: 100px;
    font-size: var(--uq-fs-sm);
    font-weight: 500;
    cursor: pointer;
    transition: all var(--uq-transition);
    color: var(--uq-text);
    background: var(--uq-white);
}
.option-pill input { display: none; }
.option-pill:has(input:checked),
.option-pill.selected {
    background: var(--uq-teal);
    color: var(--uq-white);
    border-color: var(--uq-teal);
}

/* ===================================================================
   Guides / First Umrah Hub
   =================================================================== */

.guides-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--uq-stone-light);
    border-radius: var(--uq-radius-lg);
    overflow: hidden;
}

.guide-item {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.5rem 2rem;
    background: var(--uq-white);
    transition: background var(--uq-transition);
    color: var(--uq-text);
    text-decoration: none;
}
.guide-item:hover {
    background: var(--uq-porcelain);
    color: var(--uq-teal);
}
.guide-item__number {
    font-size: var(--uq-fs-sm);
    font-weight: 800;
    color: var(--uq-stone);
    min-width: 28px;
}
.guide-item__title {
    font-size: var(--uq-fs-base);
    font-weight: 600;
}

@media (max-width: 640px) {
    .guides-grid { grid-template-columns: 1fr; }
}

/* ===================================================================
   Testimonials
   =================================================================== */

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.testimonial-card {
    background: var(--uq-white);
    border-radius: var(--uq-radius-lg);
    padding: 2rem;
    box-shadow: var(--uq-shadow-sm);
}
.testimonial-card__text {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-md);
    font-style: italic;
    line-height: 1.7;
    color: var(--uq-text);
    margin-bottom: 1.5rem;
}
.testimonial-card__author {
    font-size: var(--uq-fs-sm);
    font-weight: 600;
    color: var(--uq-navy);
}
.testimonial-card__journey {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

@media (max-width: 768px) {
    .testimonials-grid { grid-template-columns: 1fr; }
}

/* ===================================================================
   Final CTA
   =================================================================== */

.final-cta {
    background: var(--uq-navy);
    color: var(--uq-porcelain);
    text-align: center;
    padding: 6rem 1.5rem;
}
.final-cta__title {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-3xl);
    font-weight: 500;
    font-style: italic;
    color: var(--uq-white);
    margin-bottom: 1rem;
}
.final-cta__text {
    font-size: var(--uq-fs-md);
    color: rgba(250,248,244,0.65);
    max-width: 480px;
    margin: 0 auto 2.5rem;
}
.final-cta__buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ===================================================================
   Footer
   =================================================================== */

.site-footer {
    background: var(--uq-navy);
    color: rgba(250, 248, 244, 0.7);
}

.footer__main {
    display: grid;
    grid-template-columns: 1.5fr repeat(4, 1fr);
    gap: 3rem;
    max-width: var(--uq-container-wide);
    margin: 0 auto;
    padding: 5rem 1.5rem 3rem;
}

.footer__brand-text {
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-lg);
    font-weight: 800;
    color: var(--uq-white);
    margin-bottom: 1rem;
    display: block;
}
.footer__brand p {
    font-size: var(--uq-fs-sm);
    line-height: 1.7;
    max-width: 300px;
}

.footer__heading {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--uq-white);
    margin-bottom: 1.25rem;
}

.footer__links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.footer__links a {
    font-size: var(--uq-fs-sm);
    color: rgba(250,248,244,0.6);
    transition: color var(--uq-transition);
}
.footer__links a:hover {
    color: var(--uq-white);
}

.footer__bottom {
    border-top: 1px solid rgba(250,248,244,0.1);
    max-width: var(--uq-container-wide);
    margin: 0 auto;
    padding: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}
.footer__copy {
    font-size: var(--uq-fs-xs);
    color: rgba(250,248,244,0.4);
}
.footer__legal {
    display: flex;
    gap: 1.5rem;
}
.footer__legal a {
    font-size: var(--uq-fs-xs);
    color: rgba(250,248,244,0.4);
}
.footer__legal a:hover { color: var(--uq-white); }

.footer__social {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}
.footer__social a {
    color: rgba(250,248,244,0.5);
    transition: color var(--uq-transition);
}
.footer__social a:hover { color: var(--uq-white); }

@media (max-width: 1024px) {
    .footer__main { grid-template-columns: 1fr 1fr; }
    .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .footer__main { grid-template-columns: 1fr; gap: 2rem; padding: 3rem 1.5rem 2rem; }
}

/* ===================================================================
   Breadcrumbs
   =================================================================== */

.breadcrumbs {
    padding: 1rem 0;
    font-size: var(--uq-fs-sm);
}
.breadcrumbs ol {
    list-style: none;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.breadcrumbs li:not(:last-child)::after {
    content: '/';
    margin-left: 0.5rem;
    color: var(--uq-text-tertiary);
}
.breadcrumbs a { color: var(--uq-text-secondary); }
.breadcrumbs [aria-current] { color: var(--uq-text); font-weight: 500; }

/* ===================================================================
   Page Hero (Inner Pages)
   =================================================================== */

.page-hero {
    background: var(--uq-navy);
    padding: 4rem 0 3rem;
    color: var(--uq-white);
}
.page-hero__title {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-3xl);
    font-weight: 500;
    font-style: italic;
    color: var(--uq-white);
}
.page-hero__subtitle {
    font-size: var(--uq-fs-md);
    color: rgba(250,248,244,0.65);
    margin-top: 0.75rem;
    max-width: 560px;
}

/* ===================================================================
   Itinerary Timeline
   =================================================================== */

.itinerary-timeline {
    position: relative;
    padding-left: 3rem;
}
.itinerary-timeline::before {
    content: '';
    position: absolute;
    left: 0.9rem;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--uq-stone);
}
.itinerary-day {
    position: relative;
    padding-bottom: 2.5rem;
}
.itinerary-day:last-child { padding-bottom: 0; }
.itinerary-day__marker {
    position: absolute;
    left: -3rem;
    top: 0;
    width: 1.875rem;
    height: 1.875rem;
    background: var(--uq-teal);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--uq-white);
    font-size: var(--uq-fs-xs);
    font-weight: 800;
    z-index: 2;
    border: 3px solid var(--uq-white);
}
.itinerary-day__label {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--uq-teal);
    margin-bottom: 0.25rem;
}
.itinerary-day__title {
    font-size: var(--uq-fs-lg);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 0.5rem;
}
.itinerary-day__desc {
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
    line-height: 1.7;
}
.itinerary-day__meta {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

/* ===================================================================
   Room Pricing Table
   =================================================================== */

.pricing-table {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    max-width: 800px;
}
.pricing-card {
    background: var(--uq-white);
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius-lg);
    padding: 2rem 1.5rem;
    text-align: center;
}
.pricing-card__type {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--uq-teal);
    margin-bottom: 0.25rem;
}
.pricing-card__occupancy {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
    margin-bottom: 1rem;
}
.pricing-card__price {
    font-size: var(--uq-fs-2xl);
    font-weight: 800;
    color: var(--uq-navy);
}
.pricing-card__note {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
    margin-top: 0.25rem;
}

@media (max-width: 640px) {
    .pricing-table { grid-template-columns: 1fr 1fr; }
}

/* ===================================================================
   FAQ
   =================================================================== */

.faq-list {
    max-width: 800px;
}
.faq-item {
    border-bottom: 1px solid var(--uq-stone-light);
}
.faq-item__question {
    width: 100%;
    background: none;
    border: none;
    padding: 1.25rem 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-base);
    font-weight: 600;
    color: var(--uq-navy);
    text-align: left;
}
.faq-item__question svg {
    flex-shrink: 0;
    transition: transform var(--uq-transition);
}
.faq-item.open .faq-item__question svg {
    transform: rotate(180deg);
}
.faq-item__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--uq-transition);
}
.faq-item__answer-inner {
    padding-bottom: 1.25rem;
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
    line-height: 1.7;
}

/* ===================================================================
   Contact
   =================================================================== */

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}
@media (max-width: 768px) {
    .contact-grid { grid-template-columns: 1fr; }
}

.contact-info-item {
    margin-bottom: 1.5rem;
}
.contact-info-item__label {
    font-size: var(--uq-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--uq-text-tertiary);
    margin-bottom: 0.25rem;
}
.contact-info-item__value {
    font-size: var(--uq-fs-base);
    color: var(--uq-navy);
    font-weight: 500;
}
.contact-info-item__value a {
    color: var(--uq-teal);
}

/* ===================================================================
   Package Detail Page
   =================================================================== */

.package-header {
    background: var(--uq-navy);
    padding: 2rem 0 3rem;
}
.package-header__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: end;
}
.package-header__title {
    font-family: var(--uq-serif);
    font-size: var(--uq-fs-3xl);
    font-weight: 500;
    font-style: italic;
    color: var(--uq-white);
    margin-bottom: 0.75rem;
}
.package-header__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: var(--uq-fs-sm);
    color: rgba(250,248,244,0.65);
}
.package-header__price {
    text-align: right;
    color: var(--uq-white);
}
.package-header__price-label {
    font-size: var(--uq-fs-xs);
    color: rgba(250,248,244,0.5);
}
.package-header__price-amount {
    font-size: var(--uq-fs-3xl);
    font-weight: 800;
}
.package-header__price-note {
    font-size: var(--uq-fs-xs);
    color: rgba(250,248,244,0.5);
}

@media (max-width: 768px) {
    .package-header__inner {
        grid-template-columns: 1fr;
    }
    .package-header__price { text-align: left; }
}

.package-content {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 3rem;
    padding: 3rem 0;
}
@media (max-width: 1024px) {
    .package-content { grid-template-columns: 1fr; }
}

.package-sidebar {
    position: sticky;
    top: 90px;
    align-self: start;
}
.package-sidebar__card {
    background: var(--uq-white);
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius-lg);
    padding: 2rem;
}

.package-section {
    margin-bottom: 3rem;
}
.package-section__title {
    font-size: var(--uq-fs-lg);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--uq-stone-light);
}

.inclusions-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.inclusions-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
}
.inclusions-list--included li svg { color: var(--uq-success); }
.inclusions-list--excluded li svg { color: var(--uq-error); }

/* Mobile Sticky CTA */
.mobile-sticky-cta {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--uq-white);
    border-top: 1px solid var(--uq-stone-light);
    padding: 0.75rem 1.5rem;
    z-index: 100;
    box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
}
.mobile-sticky-cta__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.mobile-sticky-cta__price {
    font-size: var(--uq-fs-lg);
    font-weight: 800;
    color: var(--uq-navy);
}
.mobile-sticky-cta__label {
    font-size: var(--uq-fs-xs);
    color: var(--uq-text-tertiary);
}

@media (max-width: 1024px) {
    .mobile-sticky-cta { display: block; }
    .package-sidebar { display: none; }
}

/* ===================================================================
   Filters Bar
   =================================================================== */

.filters-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--uq-stone-light);
    margin-bottom: 2rem;
}

.filter-select {
    padding: 0.5rem 1rem;
    border: 1px solid var(--uq-border);
    border-radius: var(--uq-radius);
    font-family: var(--uq-sans);
    font-size: var(--uq-fs-sm);
    color: var(--uq-text);
    background: var(--uq-white);
    cursor: pointer;
}
.filter-select:focus {
    border-color: var(--uq-teal);
    outline: none;
}

/* ===================================================================
   About Page
   =================================================================== */

.about-section {
    max-width: 740px;
    margin-bottom: 3rem;
}
.about-section__title {
    font-size: var(--uq-fs-xl);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 1rem;
}
.about-section__text {
    font-size: var(--uq-fs-base);
    color: var(--uq-text-secondary);
    line-height: 1.8;
}

/* ===================================================================
   Hotel Card
   =================================================================== */

.hotel-card {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--uq-white);
    border-radius: var(--uq-radius-lg);
    overflow: hidden;
    box-shadow: var(--uq-shadow-sm);
    transition: box-shadow var(--uq-transition);
}
.hotel-card:hover { box-shadow: var(--uq-shadow); }

.hotel-card__media {
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--uq-sage);
}
.hotel-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hotel-card__body { padding: 1.5rem 2rem; }
.hotel-card__title {
    font-size: var(--uq-fs-lg);
    font-weight: 700;
    color: var(--uq-navy);
    margin-bottom: 0.375rem;
}
.hotel-card__city {
    font-size: var(--uq-fs-sm);
    color: var(--uq-teal);
    font-weight: 600;
    margin-bottom: 0.75rem;
}
.hotel-card__details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
}

@media (max-width: 640px) {
    .hotel-card { grid-template-columns: 1fr; }
    .hotel-card__media { aspect-ratio: 16/9; }
}

/* ===================================================================
   Utility Classes
   =================================================================== */

.text-center { text-align: center; }
.text-right { text-align: right; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border-width: 0;
}

/* ===================================================================
   404
   =================================================================== */

.page-404 {
    text-align: center;
    padding: 6rem 1.5rem;
}
.page-404__title {
    font-size: var(--uq-fs-5xl);
    font-weight: 800;
    color: var(--uq-navy);
    margin-bottom: 1rem;
}
.page-404__text {
    font-size: var(--uq-fs-md);
    color: var(--uq-text-secondary);
    margin-bottom: 2rem;
}

/* ===================================================================
   Search Results
   =================================================================== */

.search-results__item {
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--uq-stone-light);
}
.search-results__item h3 {
    margin-bottom: 0.375rem;
}
.search-results__item h3 a {
    color: var(--uq-navy);
    font-weight: 600;
}
.search-results__item p {
    font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
}

/* ===================================================================
   Empty States
   =================================================================== */
.empty-state {
    text-align: center; padding: 4rem 2rem;
    background: var(--uq-white); border-radius: var(--uq-radius-lg);
    border: 1px dashed var(--uq-stone);
}
.empty-state__title {
    font-size: var(--uq-fs-lg); font-weight: 700;
    color: var(--uq-navy); margin-bottom: 0.5rem;
}
.empty-state__text {
    font-size: var(--uq-fs-sm); color: var(--uq-text-secondary);
    max-width: 480px; margin: 0 auto 1.5rem;
}

/* ===================================================================
   Guide Page Content
   =================================================================== */
.guide-content h2 {
    font-family: var(--uq-serif); font-size: var(--uq-fs-xl);
    font-weight: 700; color: var(--uq-navy);
    margin: 2.5rem 0 1rem; padding-top: 1rem;
    border-top: 1px solid var(--uq-stone-light);
}
.guide-content h2:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.guide-content h3 {
    font-size: var(--uq-fs-lg); font-weight: 700;
    color: var(--uq-navy); margin: 2rem 0 0.75rem;
}
.guide-content p {
    font-size: var(--uq-fs-base); color: var(--uq-text-secondary);
    line-height: 1.8; margin-bottom: 1rem;
}
.guide-content em {
    display: block; margin-top: 2rem; padding: 1.25rem;
    background: var(--uq-sage); border-radius: var(--uq-radius);
    font-style: normal; font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary); line-height: 1.6;
}

/* Legal page content */
.legal-content h2 {
    font-size: var(--uq-fs-lg); font-weight: 700;
    color: var(--uq-navy); margin: 2rem 0 0.75rem;
}
.legal-content p {
    font-size: var(--uq-fs-sm); color: var(--uq-text-secondary);
    line-height: 1.8; margin-bottom: 1rem;
}
.legal-content em {
    display: block; margin-top: 2rem; padding: 1rem;
    background: rgba(185,148,98,0.08);
    border-left: 3px solid var(--uq-bronze);
    border-radius: 0 var(--uq-radius) var(--uq-radius) 0;
    font-style: normal; font-size: var(--uq-fs-sm);
    color: var(--uq-text-secondary);
}

/* Footer contact info */
.footer__contact-info {
    display: flex; flex-direction: column; gap: 0.5rem;
    margin: 1rem 0;
}
.footer__contact-info a {
    display: flex; align-items: center; gap: 0.375rem;
    font-size: var(--uq-fs-sm); color: rgba(250,248,244,0.7);
}
.footer__contact-info a:hover { color: var(--uq-porcelain); }
.footer__address {
    font-size: var(--uq-fs-xs); color: rgba(250,248,244,0.5);
    line-height: 1.6; margin-top: 0.75rem;
}
.footer__brand-desc {
    font-size: var(--uq-fs-sm); color: rgba(250,248,244,0.6);
    line-height: 1.6; margin: 0.75rem 0;
}

/* Hero media img */
.hero__media-img {
    width: 100%; height: 100%; object-fit: cover;
}

/* ===================================================================
   Search Results
   =================================================================== */
.search-form-inline {
    display: flex; gap: 0.75rem; align-items: stretch;
}
.search-result {
    padding: 1.5rem 0; border-bottom: 1px solid var(--uq-stone-light);
}
.search-result__type {
    display: inline-block; font-size: var(--uq-fs-xs); font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em;
    color: var(--uq-teal); margin-bottom: 0.25rem;
}
.search-result__title { font-size: var(--uq-fs-lg); font-weight: 700; margin-bottom: 0.375rem; }
.search-result__title a { color: var(--uq-navy); }
.search-result__title a:hover { color: var(--uq-teal); }
.search-result__excerpt { font-size: var(--uq-fs-sm); color: var(--uq-text-secondary); line-height: 1.7; }

/* Journey Finder (homepage) */
.journey-finder {
    margin-top: -2rem; position: relative; z-index: 10;
    background: var(--uq-white); border-radius: var(--uq-radius-lg);
    box-shadow: 0 8px 32px rgba(19,45,58,0.1);
    padding: 1.5rem;
}
.journey-finder__grid {
    display: flex; gap: 1rem; align-items: end;
}
.journey-finder__field { flex: 1; }
.journey-finder__field label {
    display: block; font-size: var(--uq-fs-xs); font-weight: 600;
    color: var(--uq-text-secondary); margin-bottom: 0.375rem;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.journey-finder__field select {
    width: 100%; padding: 0.75rem; border: 1px solid var(--uq-stone);
    border-radius: var(--uq-radius); font-family: var(--uq-sans);
    font-size: var(--uq-fs-sm); background: var(--uq-white);
    color: var(--uq-text); appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235a6670' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 0.75rem center;
}
@media (max-width: 768px) {
    .journey-finder__grid { flex-direction: column; }
}

/* Contact layout */
.contact-layout {
    display: grid; grid-template-columns: 1fr 380px; gap: 4rem;
}
.contact-info__item {
    display: flex; gap: 0.75rem; padding: 1rem 0;
    border-bottom: 1px solid var(--uq-stone-light);
    font-size: var(--uq-fs-sm); color: var(--uq-text-secondary);
}
.contact-info__item strong { color: var(--uq-navy); display: block; margin-bottom: 0.25rem; }
.contact-info__item a { color: var(--uq-teal); }
@media (max-width: 768px) {
    .contact-layout { grid-template-columns: 1fr; gap: 2rem; }
}

/* Clarity grid */
.clarity-grid {
    display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 1.5rem;
    margin-top: 1.5rem;
}
.clarity-col {
    padding: 1.5rem; border-radius: var(--uq-radius-lg);
    background: var(--uq-white);
}
.clarity-col__header {
    font-size: var(--uq-fs-sm); font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; margin-bottom: 1rem; padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--uq-stone-light);
}
.clarity-col--included .clarity-col__header { color: var(--uq-success); border-color: var(--uq-success); }
.clarity-col--excluded .clarity-col__header { color: var(--uq-error); border-color: var(--uq-error); }
.clarity-col--optional .clarity-col__header { color: var(--uq-bronze); border-color: var(--uq-bronze); }
.clarity-col--confirm .clarity-col__header { color: var(--uq-teal); border-color: var(--uq-teal); }
.clarity-col__list { list-style: none; padding: 0; margin: 0; }
.clarity-col__list li {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: var(--uq-fs-sm); color: var(--uq-text-secondary);
    padding: 0.375rem 0;
}
.clarity-col--included .uq-icon { color: var(--uq-success); }
.clarity-col--excluded .uq-icon { color: var(--uq-error); }

/* Journey path steps */
.journey-path {
    display: flex; gap: 0; justify-content: center; flex-wrap: wrap;
}
.journey-path__step {
    padding: 1.5rem 2rem; text-align: center; position: relative;
}
.journey-path__number {
    font-size: var(--uq-fs-2xl); font-weight: 800;
    color: var(--uq-stone); margin-bottom: 0.5rem;
}
.journey-path__title {
    font-size: var(--uq-fs-sm); font-weight: 600; color: var(--uq-navy);
}

/* Guides grid */
.guides-grid {
    display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr));
    gap: 0.75rem;
}
.guide-item {
    display: flex; align-items: center; gap: 0.875rem;
    padding: 1rem 1.25rem; background: var(--uq-white);
    border: 1px solid var(--uq-stone-light); border-radius: var(--uq-radius);
    transition: all var(--uq-transition);
}
.guide-item:hover {
    border-color: var(--uq-teal); box-shadow: 0 2px 8px rgba(40,113,108,0.1);
}
.guide-item__number {
    font-size: var(--uq-fs-sm); font-weight: 800; color: var(--uq-stone);
    min-width: 1.5rem;
}
.guide-item__title {
    font-size: var(--uq-fs-sm); font-weight: 600; color: var(--uq-navy);
    display: flex; align-items: center; gap: 0.375rem;
}

/* Guide card hover */
.guide-card:hover {
    border-color: var(--uq-teal); box-shadow: 0 4px 16px rgba(40,113,108,0.08);
    transform: translateY(-2px);
}

/* Honeypot spam field */
.hp-field {
    position: absolute; left: -9999px; opacity: 0; height: 0; width: 0;
    pointer-events: none; tab-index: -1;
}

/* Form status message */
.form-status { margin-top: 1rem; }
.form-status.success {
    padding: 1rem; background: rgba(45,138,78,0.08);
    border: 1px solid rgba(45,138,78,0.2); border-radius: var(--uq-radius);
    color: var(--uq-success); font-weight: 500;
}
.form-status.error {
    padding: 1rem; background: rgba(197,48,48,0.08);
    border: 1px solid rgba(197,48,48,0.2); border-radius: var(--uq-radius);
    color: var(--uq-error); font-weight: 500;
}

/* Form validation */
.form-field input:invalid:not(:placeholder-shown),
.form-field textarea:invalid:not(:placeholder-shown) {
    border-color: var(--uq-error);
}
.req { color: var(--uq-error); }

/* Social footer */
.footer__social {
    display: flex; gap: 0.75rem; margin-top: 1rem; flex-wrap: wrap;
}
.footer__social a {
    font-size: var(--uq-fs-xs); font-weight: 600;
    color: rgba(250,248,244,0.6); text-transform: uppercase;
    letter-spacing: 0.04em;
}
.footer__social a:hover { color: var(--uq-porcelain); }

/* Filter tags */
.filter-tag {
    display: inline-flex; align-items: center;
    padding: 0.25rem 0.75rem; font-size: var(--uq-fs-xs);
    font-weight: 600; color: var(--uq-teal);
    background: var(--uq-teal-subtle); border-radius: 999px;
}

/* Footer subheadings */
.footer__subhead {
    display: block; font-size: var(--uq-fs-xs); font-weight: 700;
    color: rgba(250,248,244,0.4); text-transform: uppercase;
    letter-spacing: 0.05em; margin-top: 0.75rem; margin-bottom: 0.25rem;
}

/* Filter bar improvements */
.filters-bar {
    display: flex; gap: 0.75rem; flex-wrap: wrap;
    margin-bottom: 2rem; padding: 1rem;
    background: var(--uq-white); border: 1px solid var(--uq-stone-light);
    border-radius: var(--uq-radius-lg);
}
.filter-select {
    flex: 1; min-width: 160px; padding: 0.625rem 0.875rem;
    border: 1px solid var(--uq-stone); border-radius: var(--uq-radius);
    font-family: var(--uq-sans); font-size: var(--uq-fs-sm);
    background: var(--uq-white); color: var(--uq-text); appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235a6670' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 0.75rem center;
    cursor: pointer;
}
.filter-select:focus {
    outline: none; border-color: var(--uq-teal);
    box-shadow: 0 0 0 3px rgba(40,113,108,0.1);
}
@media (max-width: 640px) {
    .filters-bar { flex-direction: column; }
    .filter-select { min-width: 100%; }
}

/* Hotel detail layout */
.hotel-detail-layout {
    display: grid; grid-template-columns: 1fr 340px; gap: 3rem;
}
@media (max-width: 900px) {
    .hotel-detail-layout { grid-template-columns: 1fr; }
    .hotel-detail__sidebar { order: -1; }
}
