:root {
    --primary-color: #0b3c69;
    --secondary-color: #fbc972;
    --primary: var(--primary-color);
    --secondary: var(--secondary-color);
    --accent: #b56a3a;
    --accent-soft: #d98a56;
    --sand: #f7f2e8;
    --text: #1f2a35;
    --muted: #5c6975;
    --white: #ffffff;
    --header-height: 84px;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: "Inter", "Segoe UI", Tahoma, sans-serif;
    color: var(--text);
    background: #faf8f3;
    line-height: 1.6;
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

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

.container {
    width: min(1200px, 92%);
    margin: 0 auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.icon {
    display: inline-block;
    flex-shrink: 0;
}

.icon--sm {
    width: 16px;
    height: 16px;
}

.icon--md {
    width: 22px;
    height: 22px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 600;
    transition: all 0.25s ease;
    cursor: pointer;
    border: 1px solid transparent;
    min-height: 46px;
    padding: 0.7rem 1.4rem;
}

.btn-primary {
    background: var(--secondary);
    color: #2b2615;
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background: #f5bb53;
    transform: translateY(-1px);
    outline: none;
}

.btn-outline {
    border-color: rgba(255, 255, 255, 0.65);
    color: var(--white);
    background: transparent;
}

.btn-outline:hover,
.btn-outline:focus-visible {
    border-color: var(--white);
    background: rgba(255, 255, 255, 0.12);
    outline: none;
}

.section {
    padding: 5rem 0;
}

.home-reveal {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition:
        opacity 0.65s ease,
        transform 0.65s cubic-bezier(0.2, 0.75, 0.2, 1);
    will-change: opacity, transform;
}

.home-reveal--visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .home-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.section-title {
    font-size: clamp(1.8rem, 2.7vw, 2.5rem);
    line-height: 1.2;
    margin: 0 0 1rem;
    color: var(--primary);
}

.section-subtitle {
    margin: 0;
    color: var(--muted);
    max-width: 700px;
}

.home-last-minute-packages {
    background: #fff;
    overflow-x: hidden;
}

.home-last-minute-packages__eyebrow {
    margin: 0;
    color: #9a6c17;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 0.8rem;
}

.home-last-minute-packages__grid {
    margin-top: 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.home-last-minute-packages__empty {
    margin: 0;
    color: #5c6975;
}

.grid {
    display: grid;
    gap: 1.25rem;
}

.card {
    border-radius: 20px;
    overflow: hidden;
    background: var(--white);
    box-shadow: 0 12px 30px rgba(11, 60, 105, 0.08);
}

.site-footer {
    background: linear-gradient(160deg, #082640 0%, #0b3c69 65%, #134f86 100%);
    color: rgba(255, 255, 255, 0.9);
    padding: 2.8rem 0 1.15rem;
}

.site-footer__top {
    display: grid;
    grid-template-columns: 1.05fr 1.6fr;
    gap: 1.35rem;
    align-items: start;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    padding-bottom: 1.4rem;
    margin-bottom: 1.4rem;
}

.site-footer__brand-name {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.75rem;
    color: #fff;
    text-decoration: none;
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    letter-spacing: 0.02em;
    font-weight: 700;
}

.site-footer__brand-name:hover,
.site-footer__brand-name:focus-visible {
    color: #dbe8f4;
}

.site-footer__brand p {
    margin: 0 0 1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.8);
    max-width: 340px;
}

.site-footer__brand-cta {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 999px;
    padding: 0.5rem 0.95rem;
    color: #fff;
    font-size: 0.9rem;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.site-footer__brand-cta:hover,
.site-footer__brand-cta:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.72);
    outline: none;
}

.site-footer__newsletter h3,
.site-footer__links h4,
.site-footer__contact h4 {
    margin: 0 0 0.7rem;
    color: #fff;
    font-family: "Times New Roman", Times, serif;
}

.site-footer__newsletter p {
    margin: 0 0 0.7rem;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.95rem;
}

.site-footer__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.site-footer__form input {
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border-radius: 10px;
    padding: 0.62rem 0.72rem;
}

.site-footer__form input::placeholder {
    color: rgba(255, 255, 255, 0.72);
}

.site-footer__form input:focus-visible {
    outline: 2px solid rgba(251, 201, 114, 0.8);
    outline-offset: 1px;
}

.site-footer__form input[name="email"] {
    grid-column: span 2;
}

.site-footer__form .btn {
    width: fit-content;
    min-width: 130px;
}

.site-footer__newsletter small,
.site-footer__copyright,
.site-footer small {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
}

.site-footer__newsletter small a {
    color: #fff;
    text-decoration: underline;
}

.site-footer__main {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.site-footer__links,
.site-footer__contact {
    display: grid;
    gap: 0.45rem;
}

.site-footer__links a,
.site-footer__contact a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
}

.site-footer__links a:hover,
.site-footer__contact a:hover {
    color: var(--secondary-color);
}

.site-footer__links a:focus-visible,
.site-footer__contact a:focus-visible,
.site-footer__backtop:focus-visible {
    outline: 2px solid rgba(251, 201, 114, 0.9);
    outline-offset: 2px;
    border-radius: 6px;
}

.site-footer__socials {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.4rem;
}

.site-footer__socials a {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.26);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    transition: 0.2s ease;
}

.site-footer__socials a:hover {
    background: var(--secondary-color);
    border-color: var(--secondary-color);
    color: #0c304f;
}

.site-footer__contact span {
    color: rgba(255, 255, 255, 0.82);
}

.site-footer__bottom {
    margin-top: 1.2rem;
    padding-top: 0.9rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
}

.site-footer__copyright {
    display: inline-flex;
}

.site-footer__backtop {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-page {
    padding: calc(var(--header-height) + 1.2rem) 0 3rem;
}

.legal-page__container {
    max-width: 900px;
}

.legal-page h1 {
    margin: 0.45rem 0 0.9rem;
    color: var(--primary-color);
    font-size: clamp(1.9rem, 4vw, 2.7rem);
    font-family: "Times New Roman", Times, serif;
}

.legal-page h2 {
    margin: 1.1rem 0 0.45rem;
    color: var(--primary-color);
    font-size: 1.2rem;
}

.legal-page p {
    margin: 0;
    color: #304457;
    line-height: 1.85;
}

.chat-widget {
    position: fixed;
    right: 1.2rem;
    bottom: 1.2rem;
    z-index: 210;
}

.chat-widget__panel {
    width: min(410px, calc(100vw - 2rem));
    background: #fff;
    border: 1px solid #dbe6f0;
    border-radius: 16px;
    box-shadow: 0 16px 34px rgba(10, 33, 55, 0.28);
    margin-bottom: 0.8rem;
    overflow: hidden;
    display: none;
}

.chat-widget__panel.is-open {
    display: block;
}

.chat-widget__panel-head {
    background: linear-gradient(145deg, var(--primary-color) 0%, #14508a 100%);
    color: #fff;
    padding: 0.9rem 1rem;
}

.chat-widget__panel-head h3 {
    margin: 0 0 0.2rem;
    font-size: 1.05rem;
}

.chat-widget__panel-head p {
    margin: 0;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.84);
}

.chat-widget__form {
    padding: 0.95rem;
    display: grid;
    gap: 0.6rem;
}

.chat-widget__grid,
.chat-widget__phone {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}

.chat-widget__form input,
.chat-widget__form select,
.chat-widget__form textarea {
    width: 100%;
    border: 1px solid #d7e2ed;
    border-radius: 10px;
    padding: 0.62rem 0.72rem;
    font: inherit;
    color: #1c3349;
    background: #fff;
}

.chat-widget__form textarea {
    resize: vertical;
    min-height: 95px;
}

.chat-widget__toggle {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    border: 0;
    background: linear-gradient(145deg, var(--primary-color) 0%, #14508a 100%);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 10px 25px rgba(11, 60, 105, 0.35);
}

.chat-widget__icon {
    width: 25px;
    height: 25px;
}

.chat-widget__icon--close {
    display: none;
}

.chat-widget.is-open .chat-widget__icon--open {
    display: none;
}

.chat-widget.is-open .chat-widget__icon--close {
    display: block;
}

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 120;
    backdrop-filter: blur(9px);
    background: rgba(255, 255, 255, 1);
    border-bottom: 1px solid rgba(11, 60, 105, 0.1);
}

.site-header__bar {
    min-height: var(--header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.site-header__logo img {
    height: calc(var(--header-height) - 14px);
    width: auto;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.site-nav__link {
    color: var(--primary-color);
    font-size: 0.96rem;
    letter-spacing: 0.03em;
    padding: 0.4rem 0.25rem;
    transition: color 0.25s ease;
}

.site-nav__link:hover,
.site-nav__link:focus-visible {
    color: var(--secondary);
    outline: none;
}

.site-nav__link--button {
    border: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.auth-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border-radius: 999px;
    padding: 0.45rem 0.8rem;
    border: 1px solid rgba(11, 60, 105, 0.28);
    color: var(--primary-color);
    font-size: 0.88rem;
    transition: all 0.25s ease;
}

.auth-btn--solid {
    background: var(--secondary-color);
    border-color: var(--secondary-color);
    color: #2b2615;
}

.auth-btn--solid:hover,
.auth-btn--solid:focus-visible {
    background: var(--accent-soft);
    border-color: var(--accent-soft);
    outline: none;
}

.auth-btn--ghost:hover,
.auth-btn--ghost:focus-visible {
    border-color: var(--primary-color);
    background: rgba(11, 60, 105, 0.07);
    outline: none;
}

.site-header__mobile-toggle {
    display: none;
    border: 0;
    background: transparent;
    color: var(--primary-color);
    font-size: 1.4rem;
    cursor: pointer;
}

.mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.mega-menu.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.mega-menu__shell {
    background: #fff;
    border-radius: 0 0 18px 18px;
    display: grid;
    grid-template-columns: 0.95fr 1fr 1.15fr;
    box-shadow: 0 26px 56px rgba(16, 26, 39, 0.22);
    overflow: hidden;
    max-height: min(78vh, 700px);
}

.mega-menu__column {
    padding: 1.3rem 1.3rem 1.4rem;
    background: #fff;
}

.mega-menu__column + .mega-menu__column {
    border-left: 1px solid #ece8e3;
}

.mega-menu__close {
    border: 0;
    background: transparent;
    color: var(--primary);
    cursor: pointer;
    line-height: 0;
    padding: 0;
    margin-bottom: 0.75rem;
}

.mega-menu__categories,
.mega-menu__popular-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mega-menu__categories {
    display: grid;
    gap: 0.45rem;
}

.mega-menu__category {
    border: 0;
    width: 100%;
    text-align: left;
    padding: 0.35rem 0.25rem 0.35rem 0.7rem;
    background: transparent;
    color: #334453;
    font-size: 0.98rem;
    border-left: 3px solid transparent;
    cursor: pointer;
}

.mega-menu__category.is-active {
    border-left-color: var(--accent);
    color: var(--accent);
    font-weight: 600;
}

.mega-menu__popular-label {
    margin: 1.2rem 0 0.45rem;
    font-size: 0.76rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #7e8692;
}

.mega-menu__popular-links {
    display: grid;
    gap: 0.4rem;
}

.mega-menu__popular-links a {
    color: #3f4a57;
    font-size: 0.92rem;
}

.mega-menu__featured-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.featured-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    min-height: 110px;
}

.featured-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(11, 17, 25, 0.72), rgba(11, 17, 25, 0.05));
}

.featured-card img {
    width: 100%;
    height: 110px;
    object-fit: cover;
}

.featured-card span {
    position: absolute;
    left: 0.65rem;
    bottom: 0.5rem;
    color: #fff;
    z-index: 1;
    font-size: 0.9rem;
}

.mega-menu__all-destinations {
    display: inline-flex;
    margin: 1rem 0 0.8rem;
    color: var(--accent);
    font-weight: 600;
    border-bottom: 1px solid rgba(181, 106, 58, 0.4);
}

.mega-menu__regions {
    max-height: 330px;
    overflow: auto;
    display: grid;
}

.mega-menu__region-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.72rem 0.15rem;
    border-bottom: 1px solid #f0ece6;
    color: #223346;
}

.mega-menu__region-row:hover {
    color: var(--accent);
}

.mega-menu__column--preview {
    position: relative;
    min-height: 100%;
    padding: 0;
}

.mega-menu__column--preview img {
    width: 100%;
    height: 100%;
    min-height: 440px;
    object-fit: cover;
}

.mega-menu__preview-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(112deg, rgba(5, 16, 29, 0.84), rgba(22, 48, 73, 0.24));
}

.mega-menu__preview-title {
    position: absolute;
    left: 1.45rem;
    bottom: 1.25rem;
    margin: 0;
    color: #fff;
    font-size: clamp(2.2rem, 4vw, 3.3rem);
    font-family: "Times New Roman", Times, serif;
    letter-spacing: 0.02em;
}

.mobile-drawer {
    display: none;
}

.hero {
    position: relative;
    min-height: 96vh;
    display: flex;
    align-items: center;
    color: #fff;
    overflow: hidden;
    padding-top: calc(var(--header-height) + 1rem);
}

.hero__background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.05);
    animation: hero-zoom 12s ease-out forwards;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, rgba(6, 28, 48, 0.88) 0%, rgba(11, 60, 105, 0.58) 45%, rgba(251, 201, 114, 0.22) 100%);
}

.hero__content {
    position: relative;
    z-index: 2;
    animation: hero-content-up 900ms ease forwards;
}

.hero__logo {
    width: 84px;
    margin-bottom: 1.4rem;
    opacity: 0;
    transform: translateY(16px);
    animation: hero-item-in 700ms 140ms ease forwards;
}

.hero__eyebrow {
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.78rem;
    opacity: 0;
    margin: 0 0 1rem;
    animation: hero-item-in 700ms 220ms ease forwards;
}

.hero__title {
    font-size: clamp(2.2rem, 6vw, 4.9rem);
    line-height: 1.02;
    margin: 0;
    max-width: 15ch;
    opacity: 0;
    transform: translateY(24px);
    animation: hero-item-in 900ms 330ms ease forwards;
}

.hero__subtitle {
    font-size: clamp(1.04rem, 2.2vw, 1.3rem);
    max-width: 620px;
    color: rgba(255, 255, 255, 0.87);
    margin-top: 1.2rem;
    opacity: 0;
    transform: translateY(24px);
    animation: hero-item-in 900ms 430ms ease forwards;
}

.hero-search {
    margin-top: 1.7rem;
    background: #fff;
    border-radius: 14px;
    padding: 0.8rem 0.85rem;
    box-shadow: 0 16px 34px rgba(7, 20, 34, 0.24);
    display: grid;
    grid-template-columns: 1.1fr 1.3fr 0.8fr 0.8fr auto;
    gap: 0.55rem;
    align-items: end;
    margin-bottom: 20px;
    opacity: 0;
    transform: translateY(24px);
    animation: hero-item-in 900ms 540ms ease forwards;
}

.hero-search__field {
    display: grid;
    gap: 0.35rem;
}

.hero-search__field label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6f7782;
}

.hero-search select,
.hero-search input {
    border: 1px solid #dfe3e8;
    background: #fff;
    min-height: 44px;
    border-radius: 9px;
    padding: 0 0.7rem;
    color: #213141;
    font-size: 0.92rem;
    outline: none;
}

.hero-search select:focus-visible,
.hero-search input:focus-visible {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(11, 60, 105, 0.12);
}

.hero-search__submit {
    border: 0;
    min-height: 44px;
    border-radius: 10px;
    background: var(--secondary-color);
    color: #2b2615;
    font-weight: 700;
    padding: 0 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.hero-search__submit:hover,
.hero-search__submit:focus-visible {
    background: #f5bb53;
    transform: translateY(-1px);
    outline: none;
}

@keyframes hero-zoom {
    from { transform: scale(1.12); }
    to { transform: scale(1.03); }
}

@keyframes hero-content-up {
    from { transform: translateY(10px); }
    to { transform: translateY(0); }
}

@keyframes hero-item-in {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.packages-hero {
    position: relative;
    min-height: 54vh;
    padding-top: calc(var(--header-height) + 2rem);
    display: flex;
    align-items: flex-end;
    color: #fff;
}

.packages-hero > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.packages-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, rgba(8, 29, 50, 0.85), rgba(8, 29, 50, 0.35));
}

.packages-hero__content {
    position: relative;
    z-index: 1;
    padding-bottom: 2.1rem;
}

.packages-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.88);
}

.packages-breadcrumb a:hover {
    color: var(--secondary-color);
}

.packages-hero h1 {
    margin: 0.8rem 0 0.5rem;
    font-size: clamp(2rem, 4.6vw, 3.4rem);
    line-height: 1.05;
    font-family: "Times New Roman", Times, serif;
}

.packages-hero p {
    margin: 0;
    max-width: 680px;
    color: rgba(255, 255, 255, 0.9);
}

.packages-gallery {
    padding-bottom: 1rem;
}

.packages-gallery__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.packages-gallery__header h2 {
    margin: 0;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
}

.packages-gallery__link {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d2dae4;
    border-radius: 999px;
    min-height: 40px;
    padding: 0.2rem 0.9rem;
    color: var(--primary-color);
    background: #fff;
    font-weight: 600;
}

.packages-gallery__link:hover {
    border-color: var(--primary-color);
}

.packages-gallery__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 120px;
    gap: 0.8rem;
}

.packages-gallery__item {
    margin: 0;
    border-radius: 12px;
    overflow: hidden;
}

.packages-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.packages-gallery__item--main {
    grid-column: span 2;
    grid-row: span 2;
}

.offers-ticker {
    border-top: 1px solid #ece7df;
    border-bottom: 1px solid #ece7df;
    background: #fff;
    overflow: hidden;
    white-space: nowrap;
}

.offers-ticker__track {
    display: inline-flex;
    gap: 2rem;
    animation: ticker 28s linear infinite;
    padding: 0.8rem 0;
}

.offers-ticker__track span {
    color: var(--primary-color);
    font-weight: 600;
}

@keyframes ticker {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.packages-results__layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    gap: 1.1rem;
}

.packages-filters {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    padding: 1rem;
    position: sticky;
    top: 102px;
    height: fit-content;
}

.packages-filters h2 {
    margin: 0 0 1rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
}

.packages-filters__group {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 0.9rem;
}

.packages-filters__group label,
.packages-filters__group p {
    margin: 0;
    font-size: 0.84rem;
    color: #556270;
}

.packages-filters input,
.packages-filters select {
    min-height: 40px;
    border: 1px solid #d9dfe6;
    border-radius: 8px;
    padding: 0 0.62rem;
}

.packages-filters__checkbox {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.packages-filters__price {
    display: grid;
    gap: 0.5rem;
}

.packages-filters__price input[type="range"] {
    width: 100%;
    accent-color: var(--primary-color);
}

.packages-filters__range-indicator {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.86rem;
    color: #556270;
}

.packages-filters__range-indicator strong {
    color: var(--accent);
}

.packages-filters__submit {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 9px;
    font-weight: 700;
    background: var(--secondary-color);
    color: #2b2615;
    cursor: pointer;
}

.packages-filters__toggle {
    display: none;
}

.packages-results__content {
    display: grid;
    gap: 0.9rem;
}

.packages-results__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.packages-results__toolbar p {
    margin: 0;
    color: #5d6975;
}

.packages-results__view-switch {
    display: inline-flex;
    border: 1px solid #dce2e9;
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.packages-results__view-switch a {
    padding: 0.45rem 0.9rem;
    color: #4f5e70;
}

.packages-results__view-switch a.is-active {
    background: var(--primary-color);
    color: #fff;
}

.packages-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.packages-grid-activity {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.packages-list {
    display: grid;
    gap: 0.9rem;
}

.packages-map-view {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 0.9rem;
}

.packages-map-view__panel,
.packages-map-view__list {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    padding: 0.9rem;
}

.packages-map-view__panel h3 {
    margin: 0 0 0.45rem;
    color: var(--primary-color);
}

.packages-map-view__panel p {
    margin: 0 0 0.8rem;
    color: #5a6876;
}

.packages-map-view__image {
    width: 100%;
    min-height: 330px;
    border-radius: 10px;
    object-fit: cover;
}

.packages-map-view__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.package-card {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    overflow: hidden;
}

.package-card img {
    width: 100%;
    height: 210px;
    object-fit: cover;
}

.package-card__body {
    padding: 0.9rem;
}

.package-card__body h3 {
    margin: 0 0 0.4rem;
    color: var(--primary-color);
    font-size: 1.08rem;
}

.package-card__body p {
    margin: 0 0 0.8rem;
    color: #5e6975;
    font-size: 0.92rem;
}

.package-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem 1rem;
    margin-bottom: 0.8rem;
    color: #455565;
    font-size: 0.86rem;
}

.package-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.package-card__price {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
}

.package-card__price del {
    color: #8f97a1;
}

.package-card__price strong {
    font-size: 1.1rem;
    color: var(--accent);
}

.package-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: #556270;
    font-size: 0.88rem;
}

.package-card__button {
    display: inline-flex;
    margin-top: 0.8rem;
    border-radius: 999px;
    min-height: 38px;
    align-items: center;
    padding: 0.2rem 0.95rem;
    background: var(--primary-color);
    color: #fff;
}

.package-card--list {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 200px;
}

.package-card--list .package-card__side {
    border-left: 1px solid #ece7df;
    padding: 0.9rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.package-card--map {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
}

.package-card--map img {
    height: 100%;
}

.packages-empty {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    padding: 1rem;
    color: #667381;
}

.gallery-page {
    padding-top: calc(var(--header-height) + 1.7rem);
    padding-bottom: 3rem;
}

.gallery-page__head h1 {
    margin: 0.8rem 0 0.5rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(2rem, 4vw, 3rem);
}

.gallery-page__head p {
    margin: 0 0 1.3rem;
    color: #5f6b78;
}

.gallery-swiper {
    background: #fff;
    border: 1px solid #e7e2da;
    border-radius: 14px;
    padding: 1rem;
}

.gallery-swiper__stage {
    position: relative;
    min-height: min(72vh, 640px);
    border-radius: 12px;
    overflow: hidden;
    background: #eef2f7;
}

.gallery-swiper__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.02);
    transition: opacity 0.35s ease, transform 0.35s ease;
    pointer-events: none;
}

.gallery-swiper__slide.is-active {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
}

.gallery-swiper__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-swiper__controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.9rem;
    margin: 0.9rem 0;
}

.gallery-swiper__nav {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 1px solid #d5dde7;
    background: #fff;
    color: #30465e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.gallery-swiper__counter {
    color: #5d6975;
    font-weight: 600;
}

.gallery-swiper__thumbs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
}

.gallery-swiper__thumb {
    border: 2px solid transparent;
    border-radius: 10px;
    padding: 0;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
}

.gallery-swiper__thumb.is-active {
    border-color: var(--secondary-color);
}

.gallery-swiper__thumb img {
    width: 100%;
    height: 74px;
    object-fit: cover;
}

@media (max-width: 1024px) {
    .home-last-minute-packages__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mega-menu__shell {
        grid-template-columns: 0.9fr 1fr;
    }

    .mega-menu__column--preview {
        display: none;
    }

    .packages-gallery__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: 110px;
    }

    .packages-gallery__item--main {
        grid-column: span 2;
        grid-row: span 2;
    }

    .packages-results__layout {
        grid-template-columns: 1fr;
    }

    .packages-filters {
        position: static;
    }

    .packages-grid {
        grid-template-columns: 1fr;
    }
    .packages-grid-activity {
        grid-template-columns: 1fr;
    }

    .package-card--list {
        grid-template-columns: 1fr;
    }

    .package-card--list .package-card__side {
        border-left: 0;
        border-top: 1px solid #ece7df;
    }

    .packages-map-view {
        grid-template-columns: 1fr;
    }

    .gallery-swiper__thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .site-nav,
    .site-header__actions {
        display: none;
    }

    .site-header__mobile-toggle {
        display: inline-flex;
    }

    .mega-menu {
        display: none;
    }

    .mobile-drawer__backdrop {
        position: fixed;
        inset: 0;
        border: 0;
        padding: 0;
        margin: 0;
        background: rgba(8, 20, 33, 0.56);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
        z-index: 2147483645;
    }

    .mobile-drawer__backdrop.is-open {
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-drawer {
        position: fixed;
        inset: 0;
        width: 100vw;
        max-width: 100vw;
        background: #fff;
        z-index: 2147483646;
        transform: translateX(100%);
        transition: transform 0.33s ease;
        padding: 1.2rem 1.1rem 1.4rem;
        display: flex;
        flex-direction: column;
        gap: 1rem;
        border-left: 1px solid #e8e1d7;
        box-shadow: -14px 0 34px rgba(6, 22, 36, 0.22);
        overflow-y: auto;
    }

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

    .mobile-drawer__header {
        display: flex;
        justify-content: flex-end;
    }

    .mobile-drawer__close {
        border: 0;
        background: transparent;
        color: #1d2d3f;
        font-size: 1.8rem;
    }

    .mobile-drawer__links {
        display: grid;
    }

    .mobile-drawer__links a,
    .mobile-drawer__links button {
        border: 0;
        border-bottom: 1px solid #ece7df;
        background: transparent;
        text-align: left;
        color: #24374a;
        padding: 0.8rem 0.2rem;
        font-size: 1rem;
    }

    .mobile-drawer__links button[data-mobile-destination-toggle] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        font-weight: 600;
        cursor: pointer;
    }

    .mobile-drawer__links button[data-mobile-destination-toggle]::after {
        content: "+";
        color: #596979;
        font-size: 1.2rem;
        line-height: 1;
    }

    .mobile-drawer__links button[data-mobile-destination-toggle][aria-expanded="true"]::after {
        content: "-";
    }

    .mobile-drawer__sub-list {
        list-style: none;
        margin: 0;
        padding: 0 0 0.25rem;
        display: none;
        border-bottom: 1px solid #ece7df;
        background: #f9f6f1;
    }

    .mobile-drawer__sub-list.is-open {
        display: block;
    }

    .mobile-drawer__sub-list a {
        display: block;
        padding: 0.62rem 0.85rem;
        color: #44576a;
        font-size: 0.96rem;
    }

    .mobile-drawer__sub-list a:hover,
    .mobile-drawer__sub-list a:focus-visible {
        background: #f0e9dd;
        color: #21394f;
        outline: none;
    }

    body.mobile-menu-open .chat-widget,
    body.mobile-menu-open .expert-floating-bar {
        display: none;
    }

    .hero-search {
        grid-template-columns: 1fr;
        gap: 0.7rem;
        padding: 0.9rem;
    }

    .hero-search__submit {
        width: 100%;
        justify-content: center;
    }

    .packages-gallery__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 95px;
    }

    .packages-gallery__item--main {
        grid-column: span 2;
        grid-row: span 2;
    }

    .packages-results__toolbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .packages-gallery__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .gallery-swiper__stage {
        min-height: 50vh;
    }

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

.package-details-hero {
    position: relative;
    min-height: 58vh;
    padding-top: calc(var(--header-height) + 2rem);
    display: flex;
    align-items: flex-end;
    color: #fff;
}

.package-details-hero > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.package-details-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, rgba(6, 25, 44, 0.84), rgba(6, 25, 44, 0.34));
}

.package-details-hero__content {
    position: relative;
    z-index: 1;
    padding-bottom: 2rem;
}

.package-details-hero__content h1 {
    margin: 0.8rem 0 0;
    font-size: clamp(2rem, 4.8vw, 3.6rem);
    font-family: "Times New Roman", Times, serif;
}

.package-stats {
    padding: 1.4rem 0 1rem;
}

.package-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.8rem 1rem;
}

.package-stat {
    display: grid;
    gap: 0.1rem;
    justify-items: center;
    text-align: center;
    color: #4f6070;
}

.package-stat .label {
    font-size: 0.73rem;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: #7a8794;
}

.package-stat strong {
    color: var(--primary-color);
    font-size: clamp(1.9rem, 4vw, 2.7rem);
    line-height: 1;
    font-family: "Times New Roman", Times, serif;
}

.package-details-nav {
    position: sticky;
    top: var(--header-height);
    z-index: 95;
    background: #fff;
    border-top: 1px solid #e7e1d8;
    border-bottom: 1px solid #e7e1d8;
}

.package-details-nav__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.7rem 1.1rem;
    min-height: 56px;
    align-items: center;
}

.package-details-nav__inner a {
    color: #4f6070;
    font-weight: 600;
    padding: 0.2rem 0;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.package-details-nav__inner a:hover,
.package-details-nav__inner a.is-active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.package-section {
    padding: 3rem 0;
}

.package-overview {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.package-overview__content h2,
.itinerary-days h2,
.dates-prices-info h2,
.journey-details h2,
.package-ship h2 {
    margin: 0 0 0.7rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
}

.package-overview__content p {
    margin: 0 0 1.1rem;
    color: #576676;
    font-size: 1.02rem;
}

.package-overview__lead {
    font-size: clamp(1.12rem, 2vw, 1.35rem);
    line-height: 1.7;
    color: #2e4257;
}

.package-overview__support {
    font-size: 0.96rem;
    line-height: 1.7;
    color: #66788a;
}

.package-overview__highlights {
    margin: 0 0 1.25rem;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.52rem;
    color: #3f556a;
    font-size: 0.94rem;
}

.package-overview__highlights li::marker {
    color: var(--accent);
}

.package-download {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #d5dee9;
    border-radius: 999px;
    min-height: 40px;
    padding: 0.2rem 0.95rem;
    color: var(--primary-color);
    font-weight: 600;
}

.package-overview__gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.package-overview__image {
    border: 0;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
    cursor: zoom-in;
}

.package-overview__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.itinerary-layout {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
    gap: 1rem;
}

.itinerary-map {
    padding: 0;
    height: fit-content;
    position: sticky;
    top: calc(var(--header-height) + 64px);
}

.itinerary-map h2 {
    margin: 0 0 0.6rem;
    padding-inline: 0.2rem;
}

.itinerary-map__viewer {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    min-height: 560px;
    height: min(72vh, 760px);
    background: #dfe8ee;
    border: 1px solid #e0d9d1;
    touch-action: none;
}

.itinerary-map__viewer img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    transform-origin: center;
    user-select: none;
    -webkit-user-drag: none;
}

.itinerary-map__controls {
    display: grid;
    gap: 0.35rem;
}

.itinerary-map__controls button {
    width: 38px;
    height: 38px;
    border: 1px solid #cfd9e5;
    border-radius: 8px;
    background: #fff;
    color: #33485f;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(23, 38, 55, 0.18);
    font-size: 1.2rem;
    line-height: 1;
}

.itinerary-map__controls--floating {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 2;
}

.itinerary-group {
    margin-bottom: 1.1rem;
}

.itinerary-group h3 {
    margin: 0 0 0.7rem;
    color: var(--accent);
    font-size: 1.05rem;
}

.itinerary-day {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0.85rem;
    padding-bottom: 1rem;
}

.itinerary-day h4 {
    margin: 0 0 0.3rem;
    color: var(--primary-color);
}

.itinerary-day p {
    margin: 0 0 0.4rem;
    color: #5a6876;
}

.itinerary-day__hotel {
    border: 1px solid #d5deea;
    background: #fff;
    color: var(--primary-color);
    border-radius: 999px;
    min-height: 32px;
    padding: 0 0.8rem;
    cursor: pointer;
}

.itinerary-day__point {
    position: relative;
    display: flex;
    justify-content: center;
}

.itinerary-day__point::after {
    content: "";
    position: absolute;
    top: 34px;
    bottom: -12px;
    width: 2px;
    background: #e4eaf1;
}

.itinerary-day:last-of-type .itinerary-day__point::after {
    display: none;
}

.itinerary-day__point span {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--primary-color);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    margin-top: 2px;
}

.itinerary-day__content {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
}

.itinerary-hotel-modal {
    position: fixed;
    inset: 0;
    z-index: 185;
    display: none;
}

.itinerary-hotel-modal.is-open {
    display: block;
}

.itinerary-hotel-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 16, 28, 0.76);
}

.itinerary-hotel-modal__dialog {
    position: relative;
    width: min(1120px, 94vw);
    margin: 3rem auto 0;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-height: calc(100vh - 6rem);
}

.itinerary-hotel-modal__close {
    position: absolute;
    top: 0.7rem;
    right: 0.8rem;
    z-index: 2;
    border: 0;
    background: rgba(255, 255, 255, 0.92);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
}

.itinerary-hotel-modal__left {
    padding: 1rem;
    border-right: 1px solid #ece7df;
}

.itinerary-hotel-modal__main-image {
    border: 0;
    padding: 0;
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
    cursor: zoom-in;
    margin-bottom: 0.6rem;
}

.itinerary-hotel-modal__main-image img {
    width: 100%;
    height: min(52vh, 420px);
    object-fit: cover;
}

.itinerary-hotel-modal__thumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.itinerary-hotel-modal__thumb {
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    padding: 0;
    background: #fff;
    cursor: pointer;
}

.itinerary-hotel-modal__thumb.is-active {
    border-color: var(--accent);
}

.itinerary-hotel-modal__thumb img {
    width: 100%;
    height: 82px;
    object-fit: cover;
}

.itinerary-hotel-modal__right {
    padding: 1.2rem 1.1rem;
    overflow-y: auto;
}

.itinerary-hotel-modal__right h3 {
    margin: 0 0 0.6rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: 2rem;
}

.itinerary-hotel-modal__right p {
    margin: 0;
    color: #4f6070;
    line-height: 1.8;
    white-space: pre-line;
}

.itinerary-hotel-gallery {
    position: fixed;
    inset: 0;
    z-index: 195;
    display: none;
    background: rgba(5, 12, 23, 0.94);
    align-items: center;
    justify-content: center;
}

.itinerary-hotel-gallery.is-open {
    display: flex;
}

.itinerary-hotel-gallery img {
    width: min(90vw, 1220px);
    max-height: 86vh;
    object-fit: contain;
}

.itinerary-hotel-gallery__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    border: 0;
    background: rgba(255, 255, 255, 0.9);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1.6rem;
    cursor: pointer;
}

.itinerary-hotel-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: rgba(255, 255, 255, 0.9);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
}

.itinerary-hotel-gallery__nav--prev {
    left: 1rem;
}

.itinerary-hotel-gallery__nav--next {
    right: 1rem;
}

.package-ship {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: center;
}

.package-ship img {
    border-radius: 12px;
    width: 100%;
    height: 280px;
    object-fit: cover;
}

.dates-prices-layout {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 1rem;
}

.dates-prices-info,
.dates-prices-table {
    background: #f8f5ef;
    border: 1px solid #e6dfd4;
    border-radius: 12px;
    padding: 1rem;
}

.dates-prices-info__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
}

.dates-prices-info__columns--single {
    grid-template-columns: 1fr;
}

.dates-prices-info__list {
    margin: 0;
    padding-left: 1rem;
    color: #5a6876;
    display: grid;
    gap: 0.5rem;
}

.dates-prices-table__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.8rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid #e4ddd2;
}

.dates-prices-table__head h3 {
    margin: 0;
    font-family: "Times New Roman", Times, serif;
    color: #1f2f40;
}

.dates-prices-table__head p {
    margin: 0.25rem 0 0;
    color: #677482;
    font-size: 0.9rem;
}

.dates-prices-table__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.dates-prices-table__head select {
    min-height: 38px;
    border: 1px solid #d4ccbf;
    border-radius: 8px;
    padding: 0 0.65rem;
    background: #fff;
}

.dates-prices-deckplan {
    border: 1px solid #d4ccbf;
    border-radius: 8px;
    min-height: 38px;
    padding: 0.48rem 0.75rem;
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #2d3f53;
    background: #fff;
}

.dates-prices-offers {
    display: grid;
    gap: 0.6rem;
    margin-bottom: 1rem;
}

.dates-prices-offer-card {
    background: #fff;
    border-left: 3px solid var(--accent);
    padding: 0.8rem;
}

.dates-prices-offer-card__title {
    margin: 0 0 0.2rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-size: 0.73rem;
    color: #6a7784;
    font-weight: 700;
}

.dates-prices-offer-card__description {
    margin: 0 0 0.3rem;
    color: #2f4357;
    font-size: 0.95rem;
}

.dates-prices-offer-card a {
    color: #243d55;
    text-decoration: underline;
    font-size: 0.88rem;
}

.dates-prices-notes {
    margin-top: 0.8rem;
    display: grid;
    gap: 0.5rem;
}

.dates-prices-note {
    background: #eee4d1;
    border-radius: 8px;
    padding: 0.65rem 0.7rem;
    color: #4a5868;
    font-size: 0.9rem;
}

.dates-prices-accordion {
    margin-top: 0.7rem;
    display: grid;
}

.dates-prices-month {
    border-bottom: 1px solid #e5ddd1;
}

.dates-prices-month__summary {
    width: 100%;
    border: 0;
    background: transparent;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.78rem 0.2rem;
    text-align: left;
    cursor: pointer;
}

.dates-prices-month__name {
    color: #24384d;
    font-size: 1.02rem;
}

.dates-prices-month__name em {
    margin-left: 0.45rem;
    font-style: normal;
    color: var(--accent);
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
}

.dates-prices-month__price {
    color: #485b6f;
}

.dates-prices-month__badge,
.dates-prices-row__availability {
    display: inline-flex;
    border: 1px solid #d3ccbf;
    border-radius: 999px;
    min-height: 30px;
    align-items: center;
    padding: 0 0.6rem;
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    color: #2f4358;
    background: #fff;
}

.dates-prices-month__chevron {
    color: #788492;
    transition: transform 0.2s ease;
}

.dates-prices-month__content {
    display: none;
    padding: 0 0.2rem 0.8rem;
}

.dates-prices-month.is-open .dates-prices-month__content {
    display: grid;
    gap: 0.55rem;
}

.dates-prices-month.is-open .dates-prices-month__chevron {
    transform: rotate(180deg);
}

.dates-prices-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0;
}

.dates-prices-row__radio {
    display: inline-flex;
    align-items: center;
}

.dates-prices-row__radio input {
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
}

.dates-prices-row button {
    border: 0;
    text-decoration: underline;
    background: transparent;
    color: #1f3850;
    min-height: auto;
    padding: 0;
    font-weight: 600;
    cursor: pointer;
}

.dates-prices-row span:first-child {
    color: #2d4055;
    font-size: 0.86rem;
    letter-spacing: 0.02em;
}

.dates-prices-row strong {
    color: #33485e;
    font-size: 0.95rem;
}

.dates-prices-row__availability {
    justify-self: end;
}

.dates-prices-row__availability,
.dates-prices-month__badge {
    border: 1px solid #d4cbc0;
    border-radius: 999px;
    background: #faf8f4;
}

.booking-selection-card {
    margin-top: 1rem;
    background: #fff;
    border: 1px solid #ded6ca;
    border-radius: 10px;
    padding: 0.9rem;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.booking-selection-card__meta h4 {
    margin: 0 0 0.45rem;
    color: var(--primary-color);
    font-size: 1.2rem;
}

.booking-selection-card__meta p {
    margin: 0.2rem 0;
    color: #526476;
    font-size: 0.9rem;
}

.booking-selection-card__cta {
    border-radius: 8px;
    min-height: 42px;
    padding: 0.6rem 0.9rem;
    background: var(--primary-color);
    color: #fff;
    font-weight: 700;
    white-space: nowrap;
}

.journey-details {
    background: #fff;
    border: 1px solid #ece7df;
    border-radius: 12px;
    padding: 1rem;
}

.journey-details ul {
    margin: 0;
    padding-left: 1rem;
    color: #566676;
}

.essential-info {
    background: #f5f6f7;
    border: 1px solid #e2e5e8;
    border-radius: 12px;
    padding: 1rem;
}

.essential-info h2 {
    margin: 0 0 0.8rem;
    color: #223649;
    font-family: "Times New Roman", Times, serif;
}

.essential-info__item {
    border-top: 1px solid #d9dee3;
}

.essential-info__question {
    width: 100%;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    text-align: left;
    padding: 1rem 0;
    color: #24384c;
    font-weight: 700;
    font-size: 1.05rem;
    cursor: pointer;
}

.essential-info__chevron {
    color: #4b5c6d;
    transition: transform 0.2s ease;
}

.essential-info__answer {
    display: none;
    padding: 0 0 1rem;
}

.essential-info__answer p {
    margin: 0;
    color: #4d6073;
    line-height: 1.7;
    max-width: 78ch;
}

.essential-info__item.is-open .essential-info__answer {
    display: block;
}

.essential-info__item.is-open .essential-info__chevron {
    transform: rotate(180deg);
}

.package-reviews__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    margin-bottom: 0.8rem;
}

.package-reviews__head h2 {
    margin: 0;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
}

.package-reviews__head a {
    border: 1px solid #d8e1ec;
    border-radius: 999px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.9rem;
    color: #274058;
    font-weight: 600;
    background: #fff;
}

.package-reviews__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.package-reviews__grid--full {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.review-card {
    background: #fff;
    border: 1px solid #e6e0d7;
    border-radius: 12px;
    padding: 0.9rem;
}

.review-card__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
}

.review-card__top strong {
    color: #23374a;
}

.review-card__top span {
    color: #7a8793;
    font-size: 0.82rem;
}

.review-card__rate {
    margin: 0.5rem 0 0.55rem;
    color: #c8ced6;
}

.review-card__rate .is-filled {
    color: #d58e3f;
}

.review-card p {
    margin: 0;
    color: #546577;
    line-height: 1.65;
}

.related-packages__head {
    margin-bottom: 0.8rem;
}

.related-packages__head h2 {
    margin: 0;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
}

.related-packages__scroll {
    display: flex;
    gap: 0.85rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.35rem;
}

.related-packages__item {
    min-width: min(360px, 86vw);
    max-width: 360px;
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.related-packages__item .package-card {
    height: 100%;
}

.booking-page {
    padding-bottom: 4rem;
}

.booking-layout {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr;
    gap: 1rem;
}

.booking-form__section {
    background: #fff;
    border: 1px solid #e9e2d8;
    border-radius: 12px;
    padding: 1rem;
    margin-bottom: 0.8rem;
}

.booking-form__section h2 {
    margin: 0 0 0.75rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
}

.booking-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.booking-form__grid .booking-form__full {
    grid-column: 1 / -1;
}

.booking-form input,
.booking-form select,
.booking-form textarea {
    width: 100%;
    min-height: 40px;
    border: 1px solid #dce3ec;
    border-radius: 8px;
    padding: 0 0.65rem;
}

.booking-form textarea {
    padding-top: 0.6rem;
    min-height: 90px;
}

.booking-form__section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.booking-form__section-head button {
    border: 1px solid #dce3ec;
    border-radius: 999px;
    min-height: 34px;
    background: #fff;
    color: #2c445b;
    padding: 0 0.8rem;
}

.booking-passenger {
    border-top: 1px solid #ece6dd;
    padding-top: 0.8rem;
    margin-top: 0.8rem;
}

.booking-passenger h4 {
    margin: 0 0 0.6rem;
    color: #34495f;
}

.booking-summary {
    background: #fff;
    border: 1px solid #e9e2d8;
    border-radius: 12px;
    padding: 1rem;
    position: sticky;
    top: calc(var(--header-height) + 1rem);
    height: fit-content;
}

.booking-summary h3 {
    margin: 0 0 0.7rem;
    color: var(--primary-color);
}

.booking-summary p {
    margin: 0.3rem 0;
    color: #516476;
}

.booking-summary__total {
    font-size: 1.1rem;
    color: #1f3347;
}

.booking-summary__payment h4 {
    margin: 0.8rem 0 0.45rem;
    color: #1f3347;
}

.booking-summary__payment label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.6rem;
}

.booking-summary__confirm {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 8px;
    background: #111;
    color: #fff;
    font-weight: 700;
}

.expert-floating-bar {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    z-index: 130;
    display: inline-flex;
    align-items: stretch;
    gap: 0.45rem;
}

.expert-floating-bar__summary {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 10px 20px rgba(8, 18, 30, 0.22);
    display: inline-flex;
    align-items: center;
    padding: 0 0.8rem;
    min-height: 46px;
}

.expert-floating-bar__summary span {
    color: #2d4156;
    font-size: 0.95rem;
    white-space: nowrap;
}

.expert-floating-bar__summary span + span {
    border-left: 1px solid #d8dee7;
    margin-left: 0.55rem;
    padding-left: 0.55rem;
}

.expert-floating-bar__cta {
    border: 0;
    border-radius: 6px;
    background: linear-gradient(145deg, var(--primary-color) 0%, #14508a 100%);
    color: #fff;
    min-height: 46px;
    padding: 0 1rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 700;
    cursor: pointer;
}

.expert-floating-bar__cta:hover {
    background: linear-gradient(145deg, #0a3156 0%, #0f4678 100%);
}

.expert-modal {
    position: fixed;
    inset: 0;
    z-index: 190;
    display: none;
    overflow-y: auto;
    padding: 1.5rem 0;
}

.expert-modal.is-open {
    display: block;
}

.expert-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
}

.expert-modal__dialog {
    position: relative;
    width: min(1100px, 92vw);
    margin: auto;
    max-height: calc(100vh - 6rem);
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 0.88fr 1.55fr;
}

.expert-modal__media {
    position: relative;
    min-height: 600px;
}

.expert-modal__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.expert-modal__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(9, 17, 29, 0.72), rgba(9, 17, 29, 0.15));
}

.expert-modal__media-content {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1;
    color: #fff;
    max-height: calc(100% - 2rem);
    overflow-y: auto;
    padding-right: 0.3rem;
}

.expert-modal__media-content p {
    margin: 0 0 0.45rem;
    font-size: clamp(0.68rem, 1.2vw, 0.76rem);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.expert-modal__media-content h3 {
    margin: 0 0 0.45rem;
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    line-height: 1.15;
}

.expert-modal__media-content span {
    display: block;
    margin-bottom: 0.28rem;
    font-size: clamp(0.82rem, 1.4vw, 0.95rem);
}

.expert-modal__form-side {
    position: relative;
    padding: 1.25rem 1rem 1rem;
    overflow-y: auto;
    min-height: 0;
    max-height: calc(100vh - 6rem);
}

.expert-modal__form-side input[type="checkbox"] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1px solid #d9dfe8;
    background: #fff;
    cursor: pointer;
    /* scrollable y */
    margin-right: 0.4rem;
}
.expert-modal__close {
    position: absolute;
    top: 0.6rem;
    right: 0.7rem;
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    color: #758291;
    cursor: pointer;
}

.expert-modal__form-side h2 {
    margin: 0 0 1rem;
    text-align: center;
    color: #1f3449;
    font-family: "Times New Roman", Times, serif;
}

.expert-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.52rem;
}

.expert-form input,
.expert-form textarea {
    width: 100%;
    border: 1px solid #d9dfe8;
    border-radius: 4px;
    min-height: 42px;
    padding: 0 0.7rem;
    font-size: 0.92rem;
}

.expert-form textarea {
    min-height: 95px;
    padding-top: 0.55rem;
}

.expert-form__radio-group {
    margin: 0.9rem 0 0.7rem;
}

.expert-form__radio-group p {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    text-transform: uppercase;
    color: #5f6f80;
}

.expert-form__radio-group label {
    margin-right: 0.8rem;
    color: #32485d;
}

.expert-form__radio-group input[type="radio"] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1px solid #d9dfe8;
    background: #fff;
    cursor: pointer;
    margin-right: 0.4rem;
}


.expert-form__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.82rem;
    text-transform: uppercase;
    color: #5f6f80;
}

.expert-form__checkbox {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.5rem;
    color: #506073;
    font-size: 0.88rem;
}

.expert-form__submit {
    width: 100%;
    margin-top: 0.9rem;
    border: 0;
    min-height: 44px;
    border-radius: 4px;
    background: #111;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    cursor: pointer;
}

.image-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(12, 22, 34, 0.88);
    z-index: 180;
    display: none;
    align-items: center;
    justify-content: center;
}

.image-lightbox.is-open {
    display: flex;
}

.image-lightbox__stage {
    width: min(78vw, 980px);
    max-height: 80vh;
    overflow: hidden;
}

.image-lightbox__stage img {
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    transform-origin: center;
}

.image-lightbox__close,
.hotel-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    font-size: 1.5rem;
}

.image-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    font-size: 1.6rem;
}

.image-lightbox__nav--prev {
    left: 1rem;
}

.image-lightbox__nav--next {
    right: 1rem;
}

.image-lightbox__controls {
    position: absolute;
    bottom: 1.5rem;
    display: flex;
    gap: 0.5rem;
}

.image-lightbox__controls button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    cursor: pointer;
}

.hotel-modal {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(420px, 90vw);
    z-index: 170;
    transform: translateX(100%);
    transition: transform 0.28s ease;
}

.hotel-modal.is-open {
    transform: translateX(0);
}

.hotel-modal__panel {
    position: relative;
    background: #fff;
    height: 100%;
    padding: 1rem;
    border-left: 1px solid #e7e0d7;
}

.hotel-modal__panel img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 0.8rem;
}

.hotel-modal__panel h3 {
    margin: 0 0 0.45rem;
    color: var(--primary-color);
}

.hotel-modal__panel p {
    margin: 0 0 0.6rem;
    color: #5d6a77;
}

.hotel-modal__panel ul {
    margin: 0;
    padding-left: 1rem;
}

.about-hero {
    padding-top: calc(var(--header-height) + 2.2rem);
    padding-bottom: 2rem;
    background: linear-gradient(140deg, #f5f0e6 0%, #f8f6f1 100%);
}

.about-hero h1 {
    margin: 0.65rem 0 0.5rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(2rem, 4.2vw, 3.2rem);
}

.about-hero p {
    margin: 0;
    color: #5f6d7b;
    max-width: 700px;
}

.about-welcome__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.9fr;
    gap: 1rem;
    
}

.about-welcome__lead {
    color: #405364;
    font-size: 1.04rem;
}

.about-welcome__image img {
    border-radius: 16px;
    width: 100%;
    height: 420px;
    object-fit: cover;
}

.about-services__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.8rem;
}

.about-service-card {
    background: #fff;
    border: 1px solid #ece4d8;
    border-radius: 12px;
    padding: 0.9rem;
    color: #4c5f71;
}

.about-service-card svg {
    color: var(--accent);
}

.about-service-card h3 {
    margin: 0.6rem 0 0.4rem;
    color: var(--primary-color);
    font-size: 1.06rem;
}

.about-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.about-gallery__grid figure {
    margin: 0;
    border-radius: 12px;
    overflow: hidden;
}

.about-gallery__open {
    border: 0;
    width: 100%;
    padding: 0;
    cursor: zoom-in;
    background: transparent;
}

.about-gallery__grid img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.about-reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.about-blogs__list {
    display: grid;
    gap: 0.9rem;
}

.about-blog-card {
    background: #fff;
    border: 1px solid #ebe3d8;
    border-radius: 14px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 2fr;
}

.about-blog-card--reverse {
    grid-template-columns: 2fr 1fr;
}

.about-blog-card--reverse .about-blog-card__image {
    order: 2;
}

.about-blog-card__image img {
    width: 100%;
    height: 230px;
    min-height: 230px;
    object-fit: cover;
}

.about-blog-card__content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-blog-card__content h3 {
    margin: 0 0 0.45rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.2rem, 2.4vw, 1.75rem);
}

.about-blog-card__content p {
    margin: 0;
    color: #5e6e7d;
    line-height: 1.75;
}

.journeys-hero {
    padding: 3rem 0 1rem;
    background: linear-gradient(180deg, #f4f7fb 0%, #fff 100%);
}

.journeys-breadcrumb {
    padding-top: 1rem;
}

.journeys-hero h1 {
    margin: 0;
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(2rem, 4.5vw, 3rem);
    color: var(--primary-color);
}

.journeys-hero p {
    margin-top: 0.65rem;
    color: #5c6b7b;
    max-width: 760px;
}

.journeys-featured {
    padding: 0.75rem 0 1.2rem;
}

.journeys-featured__card {
    background: #fff;
    border: 1px solid #e9e3d9;
    border-radius: 16px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
}

.journeys-featured__image img {
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
}

.journeys-featured__content {
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.7rem;
}

.journeys-featured__content h2 {
    margin: 0;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.4rem, 2.5vw, 2.1rem);
}

.journeys-featured__content p {
    margin: 0;
    color: #5b6a79;
    line-height: 1.75;
}

.journeys-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    border: 1px solid #d9e3ef;
    background: #f6f9fc;
    color: #1f3f62;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.28rem 0.65rem;
}

.journeys-grid {
    padding: 0.6rem 0 3rem;
}

[data-journey-animate] {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
    transition: opacity 0.55s ease, transform 0.55s ease;
    will-change: opacity, transform;
}

[data-journey-animate="card"] {
    transform: translate3d(0, 30px, 0) scale(0.98);
    transition-duration: 0.6s;
}

[data-journey-animate].is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.journeys-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-bottom: 1rem;
}

.journeys-filter__btn {
    border: 1px solid #d7e1ec;
    background: #fff;
    color: #2e4861;
    border-radius: 999px;
    padding: 0.5rem 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s ease;
}

.journeys-filter__btn:hover,
.journeys-filter__btn.is-active {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
}

.journeys-grid__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.journey-card {
    border: 1px solid #e8e1d7;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.journey-card:hover {
    transform: translateY(-6px);
    border-color: #d6c7b2;
    box-shadow: 0 16px 30px rgba(12, 36, 64, 0.08);
}

.journey-card:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(12, 36, 64, 0.1);
}

.journey-card img {
    transition: transform 0.45s ease;
}

.journey-card:hover img,
.journey-card:focus-within img {
    transform: scale(1.045);
}

.journey-card.is-hidden {
    display: none;
}

.journey-card img {
    width: 100%;
    height: 210px;
    object-fit: cover;
}

.journey-card__content {
    padding: 0.9rem;
}

.journey-card__content h3 {
    margin: 0.55rem 0 0.45rem;
    color: var(--primary-color);
    font-size: 1.08rem;
}

.journey-card__content p {
    margin: 0;
    color: #5d6d7d;
    line-height: 1.65;
}

.journey-card__link {
    margin-top: 0.65rem;
    display: inline-flex;
    color: #124472;
    font-weight: 700;
    text-decoration: none;
}

.journey-card__link:hover {
    color: #0a3153;
}

@media (prefers-reduced-motion: reduce) {
    [data-journey-animate],
    [data-journey-animate="card"],
    .journey-card,
    .journey-card img {
        transition: none !important;
        transform: none !important;
        animation: none !important;
        opacity: 1 !important;
    }
}

.journey-details {
    padding: 0.5rem 0 3rem;
}

.journey-details__article {
    max-width: 980px;
    margin: 0 auto;
}

.journey-details__header h1 {
    margin: 0.55rem 0 0.45rem;
    color: var(--primary-color);
    font-size: clamp(1.9rem, 4vw, 2.8rem);
    font-family: "Times New Roman", Times, serif;
}

.journey-details__header p {
    margin: 0 0 1rem;
    color: #5a6978;
    line-height: 1.8;
}

.journey-slider {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #e8e2d8;
    margin-bottom: 1rem;
}

.journey-slider__viewport {
    position: relative;
    min-height: 420px;
}

.journey-slider__slide {
    display: none;
    margin: 0;
}

.journey-slider__slide.is-active {
    display: block;
}

.journey-slider__slide img {
    width: 100%;
    height: 420px;
    object-fit: cover;
}

.journey-slider__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    border: 1px solid #d6e0eb;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    color: #173b5d;
    cursor: pointer;
}

.journey-slider__nav--prev {
    left: 0.7rem;
}

.journey-slider__nav--next {
    right: 0.7rem;
}

.journey-details__content p {
    margin: 0 0 0.85rem;
    color: #2a3a4a;
    line-height: 1.95;
    font-size: 1.03rem;
}

.about-reels .section-title {
    margin-bottom: 0.8rem;
}

.about-reels__viewport {
    position: relative;
}

.about-reels__floating-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid #d8e1ec;
    background: rgba(255, 255, 255, 0.95);
    color: #2c445b;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(11, 28, 45, 0.2);
}

.about-reels__floating-nav--left {
    left: -18px;
}

.about-reels__floating-nav--right {
    right: -18px;
}

.about-reels__track {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.1rem;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.about-reels__track::-webkit-scrollbar {
    display: none;
}

.reel-card {
    position: relative;
    min-width: min(360px, 84vw);
    max-width: 360px;
    height: 430px;
    border-radius: 14px;
    overflow: hidden;
    cursor: pointer;
    scroll-snap-align: start;
}

.reel-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reel-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(7, 15, 25, 0.85), rgba(7, 15, 25, 0.12));
}

.reel-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    color: #24394f;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    line-height: 2;
    padding-left: 0.26rem;
    flex-shrink: 0;
}

.reel-card__play svg {
    width: 30px;
    height: 30px;
    display: block;
}

.reel-card__meta {
    position: absolute;
    left: 0.9rem;
    right: 0.9rem;
    bottom: 0.75rem;
    z-index: 1;
    color: #fff;
}

.reel-card__meta h3 {
    margin: 0 0 0.25rem;
    font-size: 1.15rem;
    font-family: "Times New Roman", Times, serif;
}

.reel-card__meta p {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9rem;
}

.reel-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.reel-modal.is-open {
    display: flex;
}

.reel-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 12, 22, 0.85);
}

.reel-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1000px, 96vw);
    margin: 0;
    max-height: 92vh;
}

.reel-modal__close {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    border: 0;
    background: rgba(255, 255, 255, 0.9);
    color: #1f2f40;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}

.reel-modal__dialog video {
    width: 100%;
    max-height: 90vh;
    background: #000;
    border-radius: 10px;
}

.about-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 210;
    display: none;
    background: rgba(6, 12, 22, 0.93);
    align-items: center;
    justify-content: center;
}

.about-gallery-lightbox.is-open {
    display: flex;
}

.about-gallery-lightbox__stage {
    width: min(90vw, 1300px);
    max-height: 86vh;
    overflow: hidden;
    touch-action: none;
}

.about-gallery-lightbox__stage img {
    width: 100%;
    max-height: 86vh;
    object-fit: contain;
    transform-origin: center;
}

.about-gallery-lightbox__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    border: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    font-size: 1.6rem;
    cursor: pointer;
}

.about-gallery-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    font-size: 1.6rem;
    cursor: pointer;
}

.about-gallery-lightbox__nav--prev {
    left: 1rem;
}

.about-gallery-lightbox__nav--next {
    right: 1rem;
}

.about-gallery-lightbox__zoom {
    position: absolute;
    bottom: 1.2rem;
    display: inline-flex;
    gap: 0.45rem;
}

.about-gallery-lightbox__zoom button {
    border: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    font-size: 1.2rem;
    cursor: pointer;
}

.about-review-card {
    background: #fff;
    border: 1px solid #ebe3d8;
    border-radius: 12px;
    padding: 0.9rem;
}

.about-review-card h3 {
    margin: 0 0 0.35rem;
    color: #23374a;
}

.about-review-card p {
    margin: 0;
    color: #5d6d7d;
}

.activity-hero {
    position: relative;
    min-height: 360px;
    color: #fff;
    display: flex;
    align-items: flex-end;
}

.activity-hero img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.activity-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(5, 20, 36, 0.82), rgba(11, 60, 105, 0.42));
}

.activity-hero__content {
    position: relative;
    z-index: 1;
    padding: 1.25rem 0 2rem;
}

.activity-hero__content .packages-breadcrumb a,
.activity-hero__content .packages-breadcrumb span {
    color: rgba(255, 255, 255, 0.92);
}

.activity-hero__content h1 {
    margin: 0.85rem 0 0;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3rem);
    font-family: "Times New Roman", Times, serif;
}

.activity-intro {
    padding-bottom: 2rem;
}

.activity-seasons {
    padding-bottom: 1.2rem;
}

.activity-seasons__row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.activity-season-card {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    min-height: 170px;
    isolation: isolate;
    transform-origin: center;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.activity-season-card:hover,
.activity-season-card:focus-within {
    transform: translateY(-5px);
    box-shadow: 0 18px 30px rgba(7, 21, 37, 0.22);
}

.activity-season-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.activity-season-card:hover img,
.activity-season-card:focus-within img {
    transform: scale(1.06);
}

.activity-season-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(8, 19, 32, 0.78), rgba(8, 19, 32, 0.16));
    transition: opacity 0.35s ease;
}

.activity-season-card:hover .activity-season-card__overlay,
.activity-season-card:focus-within .activity-season-card__overlay {
    opacity: 0.88;
}

.activity-season-card span {
    position: absolute;
    left: 0.85rem;
    bottom: 0.7rem;
    z-index: 1;
    color: #fff;
    font-weight: 600;
    letter-spacing: 0.03em;
}

.activity-trips {
    padding-top: 1.6rem;
}

.activity-trips .section-title {
    margin-bottom: 1rem;
}

.activity-trips__item {
    height: 100%;
}

.activity-trips__item .package-card {
    height: 100%;
}

.activity-trips__empty {
    margin: 0;
    color: #5a6876;
    font-size: 0.98rem;
}

@media (max-width: 1024px) {
    .package-stats__grid,
    .package-overview,
    .itinerary-layout,
    .package-ship,
    .dates-prices-layout,
    .dates-prices-info__columns {
        grid-template-columns: 1fr;
    }

    .itinerary-map {
        position: static;
    }

    .dates-prices-month__summary {
        grid-template-columns: 1fr auto;
        row-gap: 0.5rem;
    }

    .dates-prices-month__price {
        grid-column: 1 / 2;
    }

    .dates-prices-month__badge {
        grid-column: 2 / 3;
        justify-self: end;
    }

    .dates-prices-row {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .dates-prices-row__availability {
        justify-self: start;
    }

    .booking-selection-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .booking-layout,
    .booking-form__grid {
        grid-template-columns: 1fr;
    }

    .booking-summary {
        position: static;
    }

    .package-reviews__grid,
    .package-reviews__grid--full {
        grid-template-columns: 1fr;
    }

    .expert-modal__dialog {
        grid-template-columns: 1fr;
        margin-top: 2rem;
        max-height: 90vh;
        overflow: auto;
    }

    .expert-modal__media {
        min-height: 260px;
    }

    .expert-form__grid {
        grid-template-columns: 1fr;
    }

    .expert-floating-bar {
        width: calc(100vw - 1rem);
        left: 50%;
    }

    .expert-floating-bar__summary {
        flex: 1;
        min-width: 0;
        overflow-x: auto;
    }

    .itinerary-hotel-modal__dialog {
        grid-template-columns: 1fr;
        margin-top: 1.2rem;
        max-height: calc(100vh - 2.4rem);
    }

    .itinerary-hotel-modal__left {
        border-right: 0;
        border-bottom: 1px solid #ece7df;
    }

    .about-welcome__grid,
    .about-services__grid,
    .about-gallery__grid,
    .about-reviews__grid {
        grid-template-columns: 1fr;
    }

    .about-blog-card,
    .about-blog-card--reverse {
        grid-template-columns: 1fr;
    }

    .about-blog-card--reverse .about-blog-card__image {
        order: initial;
    }

    .activity-seasons__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-season-card {
        min-height: 150px;
    }

    .journeys-featured__card {
        grid-template-columns: 1fr;
    }

    .journeys-grid__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .journey-slider__viewport,
    .journey-slider__slide img {
        min-height: 340px;
        height: 340px;
    }

    .reel-card {
        min-width: 86vw;
    }

    .about-reels__floating-nav {
        width: 36px;
        height: 36px;
    }

    .about-reels__floating-nav--left {
        left: -10px;
    }

    .about-reels__floating-nav--right {
        right: -10px;
    }
}

@media (max-width: 768px) {
    .home-last-minute-packages__grid {
        grid-template-columns: 1fr;
    }

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

    .packages-filters__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 42px;
        border: 1px solid #dce2e9;
        border-radius: 10px;
        background: #fff;
        color: #274058;
        font-weight: 700;
        cursor: pointer;
        margin-bottom: 0.8rem;
    }

    .packages-filters__panel {
        display: none;
    }

    .packages-filters__panel.is-open {
        display: block;
        margin-bottom: 0.8rem;
    }

    .journeys-grid__list {
        grid-template-columns: 1fr;
    }

    .journey-slider__viewport,
    .journey-slider__slide img {
        min-height: 250px;
        height: 250px;
    }

    .site-footer__top,
    .site-footer__main {
        grid-template-columns: 1fr;
    }

    .site-footer__form {
        grid-template-columns: 1fr;
    }

    .site-footer__form input[name="email"] {
        grid-column: span 1;
    }

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

    .chat-widget {
        right: 0.8rem;
        bottom: 0.8rem;
    }

    .chat-widget__grid,
    .chat-widget__phone {
        grid-template-columns: 1fr;
    }
}

.auth-page {
    padding: calc(var(--header-height) + 2.5rem) 0 3rem;
    background: linear-gradient(180deg, #f7f5f0 0%, #faf8f3 100%);
    min-height: 100vh;
}

.auth-page__container {
    display: flex;
    justify-content: center;
}

.auth-card {
    width: min(640px, 100%);
    background: #fff;
    border: 1px solid #e7e2da;
    border-radius: 18px;
    box-shadow: 0 20px 45px rgba(10, 30, 48, 0.1);
    padding: 1.6rem;
}

.auth-card--compact {
    width: min(560px, 100%);
}

.auth-card__header {
    margin-bottom: 1.2rem;
}

.auth-card__eyebrow {
    margin: 0 0 0.45rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.75rem;
    color: #b56a3a;
    font-weight: 700;
}

.auth-card__header h1 {
    margin: 0 0 0.45rem;
    color: var(--primary-color);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.auth-card__header p {
    margin: 0;
    color: #5c6a79;
}

.auth-form {
    display: grid;
    gap: 0.75rem;
}

.auth-form label {
    color: #32465a;
    font-weight: 600;
    font-size: 0.92rem;
}

.auth-form input {
    width: 100%;
    border: 1px solid #d8e0e9;
    border-radius: 10px;
    min-height: 46px;
    padding: 0 0.8rem;
    font: inherit;
    color: #26394b;
    background: #fff;
}

.auth-form input:focus-visible {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(11, 60, 105, 0.12);
}

.auth-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
}

.auth-form__grid > div {
    display: grid;
    gap: 0.5rem;
}

.auth-form__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.35rem;
}

.auth-form__submit {
    min-width: 160px;
}

.auth-form__link {
    color: var(--primary-color);
    text-decoration: underline;
    font-weight: 600;
}

.auth-form__preferences {
    margin: 0.25rem 0 0;
    border: 1px solid #e4ddd2;
    border-radius: 12px;
    padding: 0.9rem;
    display: grid;
    gap: 0.6rem;
}

.auth-form__preferences legend {
    color: #33495e;
    font-size: 0.92rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    padding: 0 0.25rem;
}

.auth-form__check {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #43576b;
}

.auth-form__check input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--primary-color);
}

.auth-card__footer {
    margin: 1rem 0 0;
    color: #5b6a79;
}

.auth-card__footer a {
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .auth-page {
        padding-top: calc(var(--header-height) + 1.6rem);
    }

    .auth-card {
        padding: 1rem;
        border-radius: 14px;
    }

    .auth-form__grid {
        grid-template-columns: 1fr;
    }

    .auth-form__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .auth-form__submit {
        width: 100%;
    }
}
