/* ESPAGLOBAL - TOUR DETAIL */

.espa-tour-detail {
    --td-primary: var(--espa-primary, #ef233c);
    --td-heading: var(--espa-heading, #102a43);
    --td-text: var(--espa-text, #334155);
    --td-muted: var(--espa-text-muted, #64748b);
    --td-border: var(--espa-border, #e5e7eb);
    --td-bg: var(--espa-body-bg, #f5f7fa);
    background: var(--td-bg);
    color: var(--td-text);
}

.espa-tour-detail__top {
    padding: 28px 0 22px;
    background: #fff;
    border-bottom: 1px solid #eef2f5;
}

.espa-tour-detail__breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 20px;
    color: #8795a8;
    font-size: 11px;
}

.espa-tour-detail__breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #718096;
    text-decoration: none;
}

.espa-tour-detail__breadcrumb a:hover { color: var(--td-primary); }
.espa-tour-detail__breadcrumb iconify-icon { width: 13px; height: 13px; }

.espa-tour-detail__headline {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.espa-tour-detail__headline-main { min-width: 0; max-width: 950px; }

.espa-tour-detail__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 11px;
}

.espa-tour-detail__badge {
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid #e4eaf0;
    border-radius: 999px;
    background: #f8fafc;
    color: #59677a;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.espa-tour-detail__badge iconify-icon { width: 14px; height: 14px; }

.espa-tour-detail__badge--visa {
    border-color: transparent;
    background: var(--td-primary);
    color: #fff;
}

.espa-tour-detail__headline h1 {
    max-width: 980px;
    margin: 0;
    color: var(--td-heading);
    font-size: clamp(29px, 3.4vw, 30px);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.045em;
}

.espa-tour-detail__headline-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin-top: 17px;
    color: #68778a;
    font-size: 11px;
    font-weight: 650;
}

.espa-tour-detail__headline-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.espa-tour-detail__headline-meta iconify-icon {
    width: 15px;
    height: 15px;
    color: var(--td-primary);
}

.espa-tour-detail__headline-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 9px;
}

.espa-tour-detail__icon-action {
    min-height: 40px;
    padding: 0 13px;
    border: 1px solid #e0e7ee;
    border-radius: 11px;
    background: #fff;
    color: var(--td-heading);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 750;
}

.espa-tour-detail__icon-action:hover {
    border-color: color-mix(in srgb, var(--td-primary) 25%, #e0e7ee);
    color: var(--td-primary);
}

.espa-tour-detail__icon-action iconify-icon { width: 17px; height: 17px; }
#favorite-icon.is-favorite { color: var(--td-primary); }

.espa-tour-detail__share-menu {
    min-width: 190px;
    padding: 7px;
    border: 1px solid #e8edf2;
    border-radius: 14px;
    box-shadow: 0 20px 45px rgba(15,23,42,.14);
}

.espa-tour-detail__share-menu a,
.espa-tour-detail__share-menu button {
    width: 100%;
    min-height: 39px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #415064;
    display: flex;
    align-items: center;
    gap: 9px;
    text-decoration: none;
    font-size: 11px;
    font-weight: 650;
}

.espa-tour-detail__share-menu a:hover,
.espa-tour-detail__share-menu button:hover {
    background: #f7f9fb;
    color: var(--td-heading);
}

.espa-tour-detail__share-menu iconify-icon { width: 17px; height: 17px; }

/* Gallery */
.espa-tour-detail__gallery-section { padding: 0 0 22px; background: #fff; }

.espa-tour-detail__gallery {
    display: grid;
    grid-template-columns: minmax(0, 1.72fr) minmax(330px, .78fr);
    gap: 8px;
    height: 490px;
    overflow: hidden;
    border-radius: 22px;
}

.espa-tour-detail__gallery.is-single { grid-template-columns: 1fr; }

.espa-tour-detail__gallery-main,
.espa-tour-detail__gallery-thumb {
    position: relative;
    overflow: hidden;
    display: block;
    background: #edf2f6;
}

.espa-tour-detail__gallery-main { border-radius: 22px 0 0 22px; }
.espa-tour-detail__gallery.is-single .espa-tour-detail__gallery-main { border-radius: 22px; }

.espa-tour-detail__gallery-main img,
.espa-tour-detail__gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.espa-tour-detail__gallery-main:hover img,
.espa-tour-detail__gallery-thumb:hover img { transform: scale(1.025); }

.espa-tour-detail__gallery-main::after {
    content: "";
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(to bottom, transparent, rgba(5,19,31,.34));
    pointer-events: none;
}

.espa-tour-detail__gallery-hint {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 2;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    background: rgba(255,255,255,.91);
    color: var(--td-heading);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    backdrop-filter: blur(10px);
    font-size: 10px;
    font-weight: 750;
}

.espa-tour-detail__gallery-hint iconify-icon { width: 17px; height: 17px; }

.espa-tour-detail__gallery-side {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
}

.espa-tour-detail__gallery-thumb:nth-child(2) { border-radius: 0 22px 0 0; }
.espa-tour-detail__gallery-thumb:nth-child(4) { border-radius: 0 0 22px 0; }

.espa-tour-detail__gallery-more {
    position: absolute;
    inset: 0;
    background: rgba(8,28,44,.55);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(3px);
}

.espa-tour-detail__gallery-more strong { font-size: 27px; font-weight: 850; }
.espa-tour-detail__gallery-more small { margin-top: 2px; font-size: 10px; font-weight: 650; }

/* Quick facts */
.espa-tour-detail__quick-facts {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.espa-tour-detail__quick-fact {
    min-width: 0;
    min-height: 72px;
    padding: 12px 13px;
    border: 1px solid #e8edf2;
    border-radius: 15px;
    background: #fff;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
}

button.espa-tour-detail__quick-fact { cursor: pointer; }
button.espa-tour-detail__quick-fact:hover {
    border-color: color-mix(in srgb, var(--td-primary) 28%, #e8edf2);
    box-shadow: 0 8px 20px rgba(15,23,42,.05);
}

.espa-tour-detail__quick-icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: color-mix(in srgb, var(--td-primary) 7%, #fff);
    color: var(--td-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__quick-icon iconify-icon { width: 18px; height: 18px; }

.espa-tour-detail__quick-fact > span:nth-child(2) {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.espa-tour-detail__quick-fact small {
    color: #8a98a9;
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.espa-tour-detail__quick-fact strong {
    overflow: hidden;
    margin-top: 2px;
    color: var(--td-heading);
    font-size: 11px;
    font-weight: 750;
    text-overflow: ellipsis;
}

.espa-tour-detail__quick-arrow {
    width: 15px;
    height: 15px;
    margin-left: auto;
    color: var(--td-primary);
}

/* Layout */
.espa-tour-detail__content-section { padding: 28px 0 80px; }

.espa-tour-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.espa-tour-detail__main,
.espa-tour-detail__aside { min-width: 0; }

.espa-tour-detail__section-nav {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    margin-bottom: 16px;
    padding: 6px;
    border: 1px solid #e4eaf0;
    border-radius: 15px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
    backdrop-filter: blur(12px);
    scrollbar-width: none;
}

.espa-tour-detail__section-nav::-webkit-scrollbar { display: none; }

.espa-tour-detail__section-nav a {
    flex: 1 0 auto;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    color: #69778a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    font-size: 10px;
    font-weight: 750;
    white-space: nowrap;
}

.espa-tour-detail__section-nav a:hover { background: #f7f9fb; color: var(--td-heading); }
.espa-tour-detail__section-nav a.is-active { background: var(--td-heading); color: #fff; }
.espa-tour-detail__section-nav iconify-icon { width: 15px; height: 15px; }

.espa-tour-detail__section {
    scroll-margin-top: 75px;
    margin-bottom: 16px;
    padding: 26px;
    border: 1px solid #e4eaf0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15,23,42,.035);
}

.espa-tour-detail__section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid #edf1f5;
}

.espa-tour-detail__section-head > div > span {
    display: block;
    margin-bottom: 4px;
    color: var(--td-primary);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.espa-tour-detail__section-head h2 {
    margin: 0;
    color: var(--td-heading);
    font-size: 24px;
    font-weight: 850;
    letter-spacing: -.035em;
}

.espa-tour-detail__section-head p {
    max-width: 620px;
    margin: 6px 0 0;
    color: var(--td-muted);
    font-size: 11px;
    line-height: 1.55;
}

.espa-tour-detail__outline-btn,
.espa-tour-detail__primary-outline {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid #dde5ec;
    border-radius: 10px;
    background: #fff;
    color: var(--td-heading);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    font-size: 10px;
    font-weight: 750;
}

.espa-tour-detail__outline-btn:hover,
.espa-tour-detail__primary-outline:hover {
    border-color: var(--td-primary);
    color: var(--td-primary);
}

.espa-tour-detail__outline-btn iconify-icon,
.espa-tour-detail__primary-outline iconify-icon { width: 15px; height: 15px; }

/* Typography / intro */
.espa-tour-detail__intro-box {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 24px;
    padding: 16px;
    border: 1px solid #dfeaf2;
    border-radius: 14px;
    background: #f8fbfd;
}

.espa-tour-detail__intro-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #fff;
    color: var(--td-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 15px rgba(15,23,42,.05);
}

.espa-tour-detail__intro-icon iconify-icon { width: 20px; height: 20px; }

.espa-tour-detail .description-content {
    color: #475569;
    font-size: 12px;
    line-height: 1.8;
}

.espa-tour-detail .description-content > :first-child { margin-top: 0; }
.espa-tour-detail .description-content > :last-child { margin-bottom: 0; }
.espa-tour-detail .description-content h2,
.espa-tour-detail .description-content h3,
.espa-tour-detail .description-content h4 { color: var(--td-heading); font-weight: 800; }

/* Timeline */
.espa-tour-detail__timeline { position: relative; }

.espa-tour-detail__timeline::before {
    content: "";
    position: absolute;
    top: 24px;
    bottom: 24px;
    left: 31px;
    width: 1px;
    background: #e3eaf0;
}

.espa-tour-detail__day {
    position: relative;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 16px;
}

.espa-tour-detail__day + .espa-tour-detail__day { margin-top: 24px; }

.espa-tour-detail__day-marker {
    position: relative;
    z-index: 2;
    width: 62px;
    height: 62px;
    border: 5px solid #fff;
    border-radius: 50%;
    background: var(--td-heading);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 1px #e3eaf0;
}

.espa-tour-detail__day-marker span { font-size: 17px; font-weight: 850; line-height: 1; }
.espa-tour-detail__day-marker small { margin-top: 2px; color: rgba(255,255,255,.7); font-size: 8px; text-transform: uppercase; }

.espa-tour-detail__day-content { min-width: 0; padding: 4px 0 10px; }
.espa-tour-detail__day-content h3 { margin: 0 0 10px; color: var(--td-heading); font-size: 16px; font-weight: 800; line-height: 1.35; }

/* Pricing + rules */
.espa-tour-detail__price-accordion,
.espa-tour-detail__rules {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.espa-tour-detail__price-accordion .accordion-item,
.espa-tour-detail__rules .accordion-item {
    overflow: hidden;
    border: 1px solid #e3e9ef;
    border-radius: 14px;
}

.espa-tour-detail__price-accordion .accordion-button,
.espa-tour-detail__rules .accordion-button {
    min-height: 66px;
    padding: 12px 15px;
    background: #fff;
    color: var(--td-heading);
    box-shadow: none;
}

.espa-tour-detail__price-accordion .accordion-button:not(.collapsed),
.espa-tour-detail__rules .accordion-button:not(.collapsed) {
    background: #f8fafc;
    color: var(--td-heading);
}

.espa-tour-detail__price-accordion .accordion-button::after,
.espa-tour-detail__rules .accordion-button::after { background-size: 14px; }

.espa-tour-detail__date-icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin-right: 10px;
    border-radius: 11px;
    background: color-mix(in srgb, var(--td-primary) 8%, #fff);
    color: var(--td-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__date-icon iconify-icon { width: 18px; height: 18px; }

.espa-tour-detail__price-accordion .accordion-button > span:last-of-type { display: flex; flex-direction: column; }
.espa-tour-detail__price-accordion .accordion-button small { color: #8b99aa; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.espa-tour-detail__price-accordion .accordion-button strong { margin-top: 2px; color: var(--td-heading); font-size: 12px; font-weight: 800; }
.espa-tour-detail__price-accordion .accordion-body { padding: 12px; background: #fbfcfd; }

.espa-tour-detail__price-table-wrap {
    overflow-x: auto;
    border: 1px solid #e5eaf0;
    border-radius: 11px;
    background: #fff;
}

.espa-tour-detail__price-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--td-text);
    font-size: 10px;
}

.espa-tour-detail__price-table th {
    padding: 11px 10px;
    border-bottom: 1px solid #e7edf2;
    background: #f7f9fb;
    color: #66758a;
    font-size: 8px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .03em;
    white-space: nowrap;
}

.espa-tour-detail__price-table th:first-child,
.espa-tour-detail__price-table td:first-child { text-align: left; }

.espa-tour-detail__price-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #eef2f5;
    text-align: center;
    vertical-align: middle;
}

.espa-tour-detail__price-table tbody tr:last-child td { border-bottom: 0; }
.espa-tour-detail__price-table tbody tr:hover { background: #fbfcfd; }
.espa-tour-detail__price-table tr.is-sold-out { opacity: .65; background: #fff8f8; }

.espa-tour-detail__price-table td:first-child strong { display: block; color: var(--td-heading); font-size: 10px; }
.espa-tour-detail__price-table td:first-child small { display: block; margin-top: 3px; color: #8b99a9; font-size: 8px; }

.espa-tour-detail__price-table td del,
.espa-tour-detail__mobile-package-prices del {
    display: block;
    margin-bottom: 2px;
    color: #9aa6b5;
    font-size: 8px;
}

.espa-tour-detail__price-table td strong,
.espa-tour-detail__mobile-package-prices strong {
    color: var(--td-heading);
    font-size: 10px;
    font-weight: 850;
}

.espa-tour-detail__price-table td strong.is-discounted,
.espa-tour-detail__mobile-package-prices strong.is-discounted { color: var(--td-primary); }

.espa-tour-detail__select-package,
.espa-tour-detail__mobile-package-btn {
    min-height: 31px;
    padding: 0 10px;
    border: 1px solid var(--td-primary);
    border-radius: 8px;
    background: #fff;
    color: var(--td-primary);
    font-size: 9px;
    font-weight: 800;
}

.espa-tour-detail__select-package:hover,
.espa-tour-detail__mobile-package-btn:hover { background: var(--td-primary); color: #fff; }

.espa-tour-detail__sold-out {
    min-height: 27px;
    padding: 0 8px;
    border-radius: 7px;
    background: #fff0f2;
    color: #d62b40;
    display: inline-flex;
    align-items: center;
    font-size: 8px;
    font-weight: 800;
}

.espa-tour-detail__mobile-packages { display: flex; flex-direction: column; gap: 9px; }
.espa-tour-detail__mobile-package { padding: 13px; border: 1px solid #e4eaf0; border-radius: 12px; background: #fff; }
.espa-tour-detail__mobile-package.is-sold-out { opacity: .62; }

.espa-tour-detail__mobile-package-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.espa-tour-detail__mobile-package-head strong { color: var(--td-heading); font-size: 11px; }
.espa-tour-detail__mobile-package-head span { padding: 4px 7px; border-radius: 7px; background: #fff0f2; color: #d62b40; font-size: 8px; font-weight: 800; }

.espa-tour-detail__mobile-package-prices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.espa-tour-detail__mobile-package-prices > div { padding: 10px; border-radius: 9px; background: #f8fafc; }
.espa-tour-detail__mobile-package-prices small { display: block; margin-bottom: 5px; color: #8794a6; font-size: 8px; }
.espa-tour-detail__mobile-package-prices strong { display: block; }

.espa-tour-detail__mobile-package-btn {
    width: 100%;
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.espa-tour-detail__mobile-package-btn iconify-icon { width: 13px; height: 13px; }

/* Services */
.espa-tour-detail__service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.espa-tour-detail__service-card {
    padding: 18px;
    border: 1px solid #e4eaf0;
    border-radius: 15px;
}

.espa-tour-detail__service-card.is-included { background: #f7fcf9; border-color: #dcefe4; }
.espa-tour-detail__service-card.is-excluded { background: #fff9f9; border-color: #f2dfdf; }

.espa-tour-detail__service-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.espa-tour-detail__service-head > span {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.is-included .espa-tour-detail__service-head > span { background: #e7f7ed; color: #178145; }
.is-excluded .espa-tour-detail__service-head > span { background: #ffebee; color: #dc3545; }

.espa-tour-detail__service-head iconify-icon { width: 20px; height: 20px; }
.espa-tour-detail__service-head small { display: block; color: #8794a6; font-size: 8px; text-transform: uppercase; letter-spacing: .04em; }
.espa-tour-detail__service-head h3 { margin: 2px 0 0; color: var(--td-heading); font-size: 14px; font-weight: 800; }

.espa-tour-detail__service-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.espa-tour-detail__service-card li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #475569;
    font-size: 10.5px;
    line-height: 1.5;
}

.espa-tour-detail__service-card li iconify-icon { flex: 0 0 auto; width: 14px; height: 14px; margin-top: 1px; }
.is-included li iconify-icon { color: #178145; }
.is-excluded li iconify-icon { color: #dc3545; }

/* Photos */
.espa-tour-detail__photo-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 145px;
    gap: 8px;
}

.espa-tour-detail__photo-grid a {
    overflow: hidden;
    border-radius: 11px;
    background: #edf2f6;
}

.espa-tour-detail__photo-grid a.is-featured { grid-column: span 2; grid-row: span 2; }

.espa-tour-detail__photo-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.espa-tour-detail__photo-grid a:hover img { transform: scale(1.04); }

/* Rules */
.espa-tour-detail__rules .accordion-button {
    min-height: 54px;
    padding: 0 15px;
    color: var(--td-heading);
    font-size: 11px;
    font-weight: 800;
}

.espa-tour-detail__rules .accordion-body { padding: 16px; border-top: 1px solid #edf1f5; }

/* Reviews */
.espa-tour-detail__reviews { display: flex; flex-direction: column; gap: 10px; }
.espa-tour-detail__review { padding: 17px; border: 1px solid #e5ebf0; border-radius: 14px; background: #fff; }

.espa-tour-detail__review-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.espa-tour-detail__review-person { display: flex; align-items: center; gap: 10px; }

.espa-tour-detail__avatar {
    flex: 0 0 39px;
    width: 39px;
    height: 39px;
    border-radius: 50%;
    background: var(--td-heading);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
}

.espa-tour-detail__review-person > div { display: flex; flex-direction: column; }
.espa-tour-detail__review-person strong { color: var(--td-heading); font-size: 11px; }
.espa-tour-detail__review-person small { margin-top: 2px; color: #8b98a8; font-size: 8px; }

.espa-tour-detail__rating {
    min-height: 31px;
    padding: 0 9px;
    border-radius: 999px;
    background: #fff7df;
    color: #8b6710;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    font-weight: 850;
}

.espa-tour-detail__rating iconify-icon { width: 14px; height: 14px; color: #f5b301; }
.espa-tour-detail__review h3 { margin: 14px 0 5px; color: var(--td-heading); font-size: 12px; font-weight: 800; }
.espa-tour-detail__review > p { margin: 10px 0 0; color: #536174; font-size: 10.5px; line-height: 1.65; }

.espa-tour-detail__admin-reply {
    margin: 13px 0 0 30px;
    padding: 11px 12px;
    border-left: 3px solid var(--td-primary);
    border-radius: 0 9px 9px 0;
    background: #f8fafc;
}

.espa-tour-detail__admin-reply strong { color: var(--td-heading); display: flex; align-items: center; gap: 6px; font-size: 9px; }
.espa-tour-detail__admin-reply p { margin: 5px 0 0; color: #68768a; font-size: 9.5px; }

/* Empty state */
.espa-tour-detail__empty-state {
    min-height: 160px;
    padding: 24px;
    border: 1px dashed #dce4eb;
    border-radius: 14px;
    background: #fafbfd;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #8996a6;
    text-align: center;
}

.espa-tour-detail__empty-state iconify-icon { width: 30px; height: 30px; margin-bottom: 10px; color: var(--td-primary); }
.espa-tour-detail__empty-state strong { color: var(--td-heading); font-size: 12px; }
.espa-tour-detail__empty-state span { margin-top: 4px; font-size: 10px; }

/* Booking */
.espa-tour-detail__aside { position: sticky; top: 18px; }

.espa-tour-detail__booking {
    overflow: visible;
    border: 1px solid #dde5ec;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(15,23,42,.075);
}

.espa-tour-detail__booking-top {
    padding: 20px 20px 16px;
    border-bottom: 1px solid #e9eef3;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.espa-tour-detail__booking-top > div:first-child > span {
    display: block;
    margin-bottom: 3px;
    color: var(--td-primary);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.espa-tour-detail__booking-top h2 { margin: 0; color: var(--td-heading); font-size: 18px; font-weight: 850; letter-spacing: -.025em; }

.espa-tour-detail__starting-price { flex: 0 0 auto; text-align: right; }
.espa-tour-detail__starting-price small { display: block; color: #8996a6; font-size: 7px; }
.espa-tour-detail__starting-price strong { display: block; margin-top: 2px; color: var(--td-primary); font-size: 20px; font-weight: 850; line-height: 1; }
.espa-tour-detail__starting-price strong span { font-size: 9px; font-weight: 700; }

.espa-tour-detail__booking-body { padding: 17px 20px 20px; }

.espa-tour-detail__booking-step {
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 9px;
}

.espa-tour-detail__booking-step + .espa-tour-detail__booking-step { margin-top: 14px; }

.espa-tour-detail__step-number {
    width: 25px;
    height: 25px;
    margin-top: 21px;
    border-radius: 8px;
    background: var(--td-heading);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 800;
}

.espa-tour-detail__booking-step > div { min-width: 0; }
.espa-tour-detail__booking-step label { display: block; margin-bottom: 6px; color: var(--td-heading); font-size: 9px; font-weight: 800; }

.espa-tour-detail__select-wrap { position: relative; height: 46px; }

.espa-tour-detail__select-wrap > iconify-icon:first-child {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    width: 17px;
    height: 17px;
    color: var(--td-primary);
    transform: translateY(-50%);
    pointer-events: none;
}

.espa-tour-detail__select-wrap .is-chevron {
    position: absolute;
    top: 50%;
    right: 12px;
    width: 13px;
    height: 13px;
    color: #8996a6;
    transform: translateY(-50%);
    pointer-events: none;
}

.espa-tour-detail__select-wrap select {
    width: 100%;
    height: 46px;
    padding: 0 34px 0 40px;
    border: 1px solid #dce4eb;
    border-radius: 11px;
    outline: 0;
    appearance: none;
    background: #fff;
    color: var(--td-heading);
    font-size: 10px;
    font-weight: 650;
}

.espa-tour-detail__select-wrap select:focus {
    border-color: color-mix(in srgb, var(--td-primary) 45%, #dce4eb);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--td-primary) 8%, transparent);
}

.espa-tour-detail__pax-btn {
    width: 100%;
    height: 46px;
    padding: 0 12px;
    border: 1px solid #dce4eb;
    border-radius: 11px;
    background: #fff;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 10px;
    font-weight: 650;
}

.espa-tour-detail__pax-btn > span { display: inline-flex; align-items: center; gap: 8px; }
.espa-tour-detail__pax-btn iconify-icon { width: 16px; height: 16px; color: var(--td-primary); }

.espa-tour-detail__pax-menu {
    width: 100%;
    min-width: 310px;
    padding: 0;
    border: 1px solid #e1e7ed;
    border-radius: 14px;
    box-shadow: 0 20px 45px rgba(15,23,42,.15);
}

.espa-tour-detail__pax-menu-head { padding: 13px 14px; border-bottom: 1px solid #e9eef2; }
.espa-tour-detail__pax-menu-head strong { display: block; color: var(--td-heading); font-size: 11px; }
.espa-tour-detail__pax-menu-head span { display: block; margin-top: 2px; color: #8996a6; font-size: 8px; }

.espa-tour-detail__rooms { max-height: 330px; overflow-y: auto; padding: 12px; }

.espa-tour-detail__pax-menu-foot {
    padding: 11px 12px;
    border-top: 1px solid #e9eef2;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.espa-tour-detail__pax-menu-foot button {
    min-height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    font-size: 9px;
    font-weight: 800;
}

#add_room_btn { background: transparent; color: var(--td-primary); display: inline-flex; align-items: center; gap: 5px; }
#applyPax { background: var(--td-primary); color: #fff; }

.espa-tour-detail__calculated-packages { margin-top: 15px; }

.espa-tour-detail__booking-primary {
    width: 100%;
    min-height: 46px;
    margin-top: 16px;
    padding: 0 14px;
    border: 0;
    border-radius: 11px;
    background: var(--td-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 850;
    box-shadow: 0 10px 20px color-mix(in srgb, var(--td-primary) 23%, transparent);
}

.espa-tour-detail__booking-primary iconify-icon { width: 15px; height: 15px; }

.espa-tour-detail__booking-trust {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 17px;
    padding-top: 15px;
    border-top: 1px solid #edf1f5;
}

.espa-tour-detail__booking-trust span { display: flex; align-items: center; gap: 7px; color: #68768a; font-size: 9px; }
.espa-tour-detail__booking-trust iconify-icon { width: 15px; height: 15px; color: #178145; }

/* Contact */
.espa-tour-detail__contact-card {
    margin-top: 12px;
    padding: 17px;
    border: 1px solid #e3e9ef;
    border-radius: 17px;
    background: #fff;
}

.espa-tour-detail__contact-icon {
    width: 39px;
    height: 39px;
    margin-bottom: 12px;
    border-radius: 11px;
    background: color-mix(in srgb, var(--td-primary) 7%, #fff);
    color: var(--td-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__contact-icon iconify-icon { width: 19px; height: 19px; }
.espa-tour-detail__contact-card small { color: #8b98a8; font-size: 8px; text-transform: uppercase; letter-spacing: .05em; }
.espa-tour-detail__contact-card h3 { margin: 4px 0 14px; color: var(--td-heading); font-size: 13px; font-weight: 800; line-height: 1.4; }

.espa-tour-detail__contact-card a {
    min-height: 39px;
    padding: 0 10px;
    border: 1px solid #e3e9ef;
    border-radius: 10px;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
    font-size: 9px;
    font-weight: 750;
}

.espa-tour-detail__contact-card a + a { margin-top: 7px; }
.espa-tour-detail__contact-card a.is-whatsapp { color: #167c45; background: #f5fcf8; border-color: #dcefe4; }
.espa-tour-detail__contact-card a iconify-icon { width: 16px; height: 16px; }

/* Mobile sticky booking */
.espa-tour-detail__mobile-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    min-height: 68px;
    padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid #e0e7ed;
    background: rgba(255,255,255,.97);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-shadow: 0 -10px 30px rgba(15,23,42,.09);
    backdrop-filter: blur(14px);
}

.espa-tour-detail__mobile-price { min-width: 0; display: flex; flex-direction: column; }
.espa-tour-detail__mobile-price small { color: #8794a5; font-size: 8px; }
.espa-tour-detail__mobile-price strong { margin-top: 2px; color: var(--td-heading); font-size: 19px; font-weight: 850; line-height: 1; }
.espa-tour-detail__mobile-price strong span { font-size: 9px; }

.espa-tour-detail__mobile-book {
    min-width: 140px;
    min-height: 44px;
    padding: 0 15px;
    border: 0;
    border-radius: 11px;
    background: var(--td-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 850;
}

.espa-tour-detail__mobile-book iconify-icon { width: 15px; height: 15px; }

.espa-tour-detail__booking-offcanvas {
    max-height: 88vh;
    border: 0;
    border-radius: 22px 22px 0 0;
}

.espa-tour-detail__booking-offcanvas .offcanvas-header { padding: 17px 18px; border-bottom: 1px solid #e8edf2; }
.espa-tour-detail__booking-offcanvas .offcanvas-header small { display: block; margin-bottom: 2px; color: var(--td-primary); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.espa-tour-detail__booking-offcanvas .offcanvas-header h2 { margin: 0; color: var(--td-heading); font-size: 18px; font-weight: 850; }

.espa-tour-detail__booking-offcanvas .offcanvas-header button {
    width: 42px;
    height: 42px;
    border: 1px solid #dfe6ed;
    border-radius: 12px;
    background: #f8fafc;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__booking-offcanvas .offcanvas-header button iconify-icon { width: 23px; height: 23px; }
.espa-tour-detail__booking-offcanvas .offcanvas-body { padding: 15px; }

/* Modals */
.espa-tour-detail__map-modal .modal-content,
.espa-tour-detail__review-modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(15,23,42,.22);
}

.espa-tour-detail__map-modal .modal-header,
.espa-tour-detail__review-modal .modal-header {
    padding: 17px 20px;
    border-bottom: 1px solid #e7edf2;
    background: #fff;
}

.espa-tour-detail__map-modal .modal-header > div > span,
.espa-tour-detail__review-modal .modal-header > div > span {
    display: block;
    margin-bottom: 3px;
    color: var(--td-primary);
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.espa-tour-detail__map-modal .modal-header h2,
.espa-tour-detail__review-modal .modal-header h2 {
    margin: 0;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 18px;
    font-weight: 850;
}

.espa-tour-detail__map-modal .modal-header > button,
.espa-tour-detail__review-modal .modal-header > button {
    width: 40px;
    height: 40px;
    border: 1px solid #e0e7ed;
    border-radius: 11px;
    background: #f8fafc;
    color: var(--td-heading);
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__map-modal .modal-header > button iconify-icon,
.espa-tour-detail__review-modal .modal-header > button iconify-icon { width: 22px; height: 22px; }

.espa-tour-detail__map-modal .modal-body { padding: 0; }
#map { width: 100%; height: 66vh; min-height: 440px; }

.espa-tour-detail__map-modal .modal-footer {
    justify-content: flex-start;
    padding: 12px 18px;
    border-top: 1px solid #e9eef2;
    background: #f8fafc;
}

.espa-tour-detail__map-modal .modal-footer p {
    margin: 0;
    color: #6d7b8d;
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 9px;
    line-height: 1.45;
}

.espa-tour-detail__map-pin {
    width: 34px;
    height: 34px;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 0;
    background: var(--td-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(-45deg);
    box-shadow: 0 5px 14px rgba(15,23,42,.22);
}

.espa-tour-detail__map-pin iconify-icon { width: 16px; height: 16px; transform: rotate(45deg); }

/* Review modal */
.espa-tour-detail__review-modal .modal-body { padding: 20px; }

.espa-tour-detail__review-rating {
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid #e5ebf0;
    border-radius: 13px;
    background: #f8fafc;
    text-align: center;
}

.espa-tour-detail__review-rating > span { display: block; margin-bottom: 8px; color: #778599; font-size: 9px; font-weight: 750; }

#star-rating-selector { display: inline-flex; align-items: center; gap: 5px; }

#star-rating-selector .star-btn {
    padding: 0;
    border: 0;
    background: transparent;
    color: #f5b301;
    font-size: 31px;
    line-height: 1;
    transition: transform .15s ease, opacity .15s ease, color .15s ease;
}

#star-rating-selector .star-btn:hover { transform: scale(1.08); }
#star-rating-selector .star-btn.is-empty { color: #d7dde4; }

.espa-tour-detail__form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.espa-tour-detail__form-grid label { display: block; }
.espa-tour-detail__form-grid label.is-full { grid-column: 1 / -1; }
.espa-tour-detail__form-grid label > span { display: block; margin-bottom: 5px; color: var(--td-heading); font-size: 9px; font-weight: 750; }

.espa-tour-detail__form-grid input,
.espa-tour-detail__form-grid textarea {
    width: 100%;
    border: 1px solid #dfe6ed;
    border-radius: 10px;
    outline: none;
    background: #fff;
    color: var(--td-heading);
    font-size: 10px;
}

.espa-tour-detail__form-grid input { height: 43px; padding: 0 12px; }
.espa-tour-detail__form-grid textarea { min-height: 120px; padding: 11px 12px; resize: vertical; }

.espa-tour-detail__review-modal .modal-footer { padding: 13px 20px; border-top: 1px solid #e9eef2; background: #f8fafc; }
.espa-tour-detail__review-modal .modal-footer button { min-height: 39px; padding: 0 14px; border-radius: 9px; font-size: 10px; font-weight: 800; }
.espa-tour-detail__review-modal .is-cancel { border: 1px solid #dde5ec; background: #fff; color: var(--td-heading); }
.espa-tour-detail__review-modal .is-submit { border: 0; background: var(--td-primary); color: #fff; display: inline-flex; align-items: center; gap: 6px; }

/* Responsive */
@media (max-width: 1199.98px) {
    .espa-tour-detail__gallery { grid-template-columns: minmax(0, 1.5fr) minmax(290px, .8fr); height: 440px; }
    .espa-tour-detail__quick-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .espa-tour-detail__layout { grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }
}

@media (max-width: 991.98px) {
    .espa-tour-detail { padding-bottom: 74px; }
    .espa-tour-detail__headline { align-items: flex-start; flex-direction: column; }
    .espa-tour-detail__headline-actions { width: 100%; }
    .espa-tour-detail__gallery { grid-template-columns: 1fr; height: 380px; }
    .espa-tour-detail__gallery-main { border-radius: 20px; }
    .espa-tour-detail__gallery-side { display: none; }
    .espa-tour-detail__layout { grid-template-columns: 1fr; }
    .espa-tour-detail__aside { display: none; }
}

@media (max-width: 767.98px) {
    .espa-tour-detail__top { padding: 18px 0 16px; }
    .espa-tour-detail__breadcrumb { margin-bottom: 14px; font-size: 9px; }
    .espa-tour-detail__breadcrumb span:last-child { display: none; }

    .espa-tour-detail__headline h1 {
        font-size: 25px;
        line-height: 1.15;
        letter-spacing: -.035em;
    }

    .espa-tour-detail__headline-meta { gap: 8px 12px; margin-top: 13px; font-size: 10px; }
    .espa-tour-detail__headline-actions { gap: 7px; }
    .espa-tour-detail__icon-action { min-height: 38px; padding: 0 10px; font-size: 9px; }

    .espa-tour-detail__gallery-section { padding-bottom: 14px; }
    .espa-tour-detail__gallery { height: 265px; border-radius: 16px; }
    .espa-tour-detail__gallery-main { border-radius: 16px; }

    .espa-tour-detail__gallery-hint {
        left: 12px;
        bottom: 12px;
        min-height: 34px;
        padding: 0 10px;
        font-size: 9px;
    }

    .espa-tour-detail__quick-facts {
        display: flex;
        overflow-x: auto;
        gap: 8px;
        margin: 10px -12px 0;
        padding: 0 12px 2px;
        scrollbar-width: none;
    }

    .espa-tour-detail__quick-facts::-webkit-scrollbar { display: none; }
    .espa-tour-detail__quick-fact { flex: 0 0 180px; min-height: 65px; padding: 10px; }
    .espa-tour-detail__quick-icon { flex-basis: 35px; width: 35px; height: 35px; }

    .espa-tour-detail__content-section { padding: 14px 0 32px; }

    .espa-tour-detail__section-nav {
        margin: 0 -12px 12px;
        padding: 6px 12px;
        border-width: 1px 0;
        border-radius: 0;
        box-shadow: 0 6px 18px rgba(15,23,42,.04);
    }

    .espa-tour-detail__section-nav a {
        flex: 0 0 auto;
        min-height: 35px;
        padding: 0 10px;
        font-size: 9px;
    }

    .espa-tour-detail__section {
        margin-bottom: 12px;
        padding: 18px 15px;
        border-radius: 15px;
        box-shadow: none;
    }

    .espa-tour-detail__section-head {
        align-items: flex-start;
        margin-bottom: 17px;
        padding-bottom: 14px;
    }

    .espa-tour-detail__section-head h2 { font-size: 20px; }
    .espa-tour-detail__section-head p { font-size: 10px; }
    .espa-tour-detail__outline-btn { min-height: 34px; padding: 0 9px; font-size: 8px; }

    .espa-tour-detail__intro-box { grid-template-columns: 36px minmax(0, 1fr); padding: 13px; }
    .espa-tour-detail__intro-icon { width: 36px; height: 36px; }
    .espa-tour-detail .description-content { font-size: 11px; line-height: 1.7; }

    .espa-tour-detail__timeline::before { left: 24px; }
    .espa-tour-detail__day { grid-template-columns: 50px minmax(0, 1fr); gap: 12px; }
    .espa-tour-detail__day-marker { width: 50px; height: 50px; border-width: 4px; }
    .espa-tour-detail__day-marker span { font-size: 14px; }
    .espa-tour-detail__day-content h3 { font-size: 14px; }

    .espa-tour-detail__service-grid { grid-template-columns: 1fr; }

    .espa-tour-detail__photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 130px;
    }

    .espa-tour-detail__section-head--reviews { align-items: flex-start; flex-direction: column; }
    .espa-tour-detail__admin-reply { margin-left: 12px; }

    .espa-tour-detail__form-grid { grid-template-columns: 1fr; }
    .espa-tour-detail__form-grid label.is-full { grid-column: auto; }

    .espa-tour-detail__map-modal .modal-dialog,
    .espa-tour-detail__review-modal .modal-dialog { margin: 10px; }

    #map { height: 65vh; min-height: 380px; }
}

@media (max-width: 389.98px) {
    .espa-tour-detail__headline h1 { font-size: 22px; }
    .espa-tour-detail__gallery { height: 235px; }
    .espa-tour-detail__mobile-book { min-width: 128px; padding: 0 12px; }
    .espa-tour-detail__mobile-price strong { font-size: 17px; }
}


/* =========================================================
   BOOKING ENGINE - DYNAMIC CONTENT
========================================================= */

.espa-tour-detail__room + .espa-tour-detail__room {
    margin-top: 10px;
}

.espa-tour-detail__room {
    padding: 12px;
    border: 1px solid #e5ebf0;
    border-radius: 12px;
    background: #fbfcfd;
}

.espa-tour-detail__room-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.espa-tour-detail__room-head .room-label {
    color: var(--td-heading);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .06em;
}

.espa-tour-detail__room-head .remove-room-btn {
    padding: 0;
    border: 0;
    background: transparent;
    color: #dc3545;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 8px;
    font-weight: 750;
}

.espa-tour-detail__room-head .remove-room-btn iconify-icon {
    width: 13px;
    height: 13px;
}

.espa-tour-detail__pax-row {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.espa-tour-detail__pax-row + .espa-tour-detail__pax-row {
    border-top: 1px solid #edf1f5;
}

.espa-tour-detail__pax-row > div:first-child {
    display: flex;
    flex-direction: column;
}

.espa-tour-detail__pax-row strong {
    color: var(--td-heading);
    font-size: 10px;
    font-weight: 750;
}

.espa-tour-detail__pax-row small {
    margin-top: 1px;
    color: #8b98a8;
    font-size: 7.5px;
}

.espa-tour-detail__counter {
    min-width: 98px;
    height: 32px;
    padding: 0 4px;
    border: 1px solid #dde5ec;
    border-radius: 999px;
    background: #fff;
    display: grid;
    grid-template-columns: 28px 30px 28px;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__counter button {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--td-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__counter button iconify-icon {
    width: 18px;
    height: 18px;
}

.espa-tour-detail__counter input {
    width: 30px;
    height: 28px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--td-heading);
    font-size: 10px;
    font-weight: 850;
    text-align: center;
}

.espa-tour-detail__child-age-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid #edf1f5;
}

.espa-tour-detail__child-age {
    display: block;
}

.espa-tour-detail__child-age span {
    display: block;
    margin-bottom: 4px;
    color: #7c8999;
    font-size: 7.5px;
    font-weight: 700;
}

.espa-tour-detail__child-age select {
    width: 100%;
    height: 34px;
    padding: 0 9px;
    border: 1px solid #dce4eb;
    border-radius: 8px;
    background: #fff;
    color: var(--td-heading);
    font-size: 9px;
}

.espa-tour-detail__booking-loading {
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #758397;
    font-size: 9px;
}

.espa-tour-detail__booking-loading .spinner-border {
    width: 16px;
    height: 16px;
    color: var(--td-primary);
}

.espa-tour-detail__booking-message {
    margin-top: 14px;
    padding: 12px;
    border: 1px solid #e7edf2;
    border-radius: 11px;
    background: #f8fafc;
    display: flex;
    align-items: flex-start;
    gap: 9px;
}

.espa-tour-detail__booking-message > iconify-icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 1px;
}

.espa-tour-detail__booking-message div {
    display: flex;
    flex-direction: column;
}

.espa-tour-detail__booking-message strong {
    color: var(--td-heading);
    font-size: 9.5px;
}

.espa-tour-detail__booking-message span {
    margin-top: 2px;
    color: #7d8a9b;
    font-size: 8px;
    line-height: 1.45;
}

.espa-tour-detail__booking-message.is-warning > iconify-icon {
    color: #d59600;
}

.espa-tour-detail__booking-message.is-danger > iconify-icon {
    color: #dc3545;
}

.espa-tour-detail__package-step {
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 9px;
    margin-top: 15px;
}

.espa-tour-detail__package-step > div > label {
    display: block;
    margin-bottom: 7px;
    color: var(--td-heading);
    font-size: 9px;
    font-weight: 800;
}

.espa-tour-detail__package-list {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.espa-tour-detail__package-option {
    position: relative;
    width: 100%;
    min-height: 82px;
    padding: 11px 10px;
    border: 1px solid #e0e7ed;
    border-radius: 11px;
    background: #fff;
    color: inherit;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: center;
    text-align: left;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.espa-tour-detail__package-option:hover:not(.is-disabled) {
    border-color: color-mix(in srgb, var(--td-primary) 30%, #e0e7ed);
}

.espa-tour-detail__package-option.active {
    border-color: var(--td-primary);
    background: color-mix(in srgb, var(--td-primary) 4%, #fff);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--td-primary) 8%, transparent);
}

.espa-tour-detail__package-option.is-disabled {
    cursor: not-allowed;
    opacity: .55;
    background: #f7f8fa;
}

.espa-tour-detail__package-radio {
    width: 16px;
    height: 16px;
    border: 1.5px solid #cbd5df;
    border-radius: 50%;
    background: #fff;
    box-shadow: inset 0 0 0 4px #fff;
}

.espa-tour-detail__package-option.active .espa-tour-detail__package-radio {
    border-color: var(--td-primary);
    background: var(--td-primary);
}

.espa-tour-detail__package-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.espa-tour-detail__package-date {
    color: #728094;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
}

.espa-tour-detail__package-date iconify-icon {
    width: 12px;
    height: 12px;
    color: var(--td-primary);
}

.espa-tour-detail__package-copy > strong {
    overflow: hidden;
    margin-top: 3px;
    color: var(--td-heading);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    text-overflow: ellipsis;
}

.espa-tour-detail__package-copy > small {
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
}

.espa-tour-detail__package-copy > small iconify-icon {
    width: 11px;
    height: 11px;
}

.espa-tour-detail__package-copy > small.is-available {
    color: #18824a;
}

.espa-tour-detail__package-copy > small.is-unavailable {
    color: #dc3545;
}

.espa-tour-detail__package-price {
    min-width: 78px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.espa-tour-detail__package-price strong {
    color: var(--td-primary);
    font-size: 14px;
    font-weight: 850;
    white-space: nowrap;
}

.espa-tour-detail__package-price small {
    margin-top: 2px;
    color: #8b98a8;
    font-size: 11px;
    white-space: nowrap;
}

.espa-tour-detail__package-price em {
    margin-top: 4px;
    padding: 3px 6px;
    border-radius: 6px;
    background: #fff0f2;
    color: #dc3545;
    font-size: 7px;
    font-style: normal;
    font-weight: 800;
}

.espa-tour-detail__checkout-btn {
    width: 100%;
    min-height: 46px;
    margin-top: 10px;
    padding: 0 14px;
    border: 0;
    border-radius: 11px;
    background: var(--td-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 850;
    box-shadow: 0 10px 20px color-mix(in srgb, var(--td-primary) 22%, transparent);
}

.espa-tour-detail__checkout-btn:disabled {
    cursor: not-allowed;
    opacity: .48;
    box-shadow: none;
}

.espa-tour-detail__checkout-btn iconify-icon {
    width: 15px;
    height: 15px;
}

.espa-tour-detail__availability-empty {
    padding: 12px 3px 3px;
    text-align: center;
}

.espa-tour-detail__availability-icon {
    width: 54px;
    height: 54px;
    margin: 0 auto 12px;
    border-radius: 15px;
    background: #fff7df;
    color: #b57d00;
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__availability-icon iconify-icon {
    width: 27px;
    height: 27px;
}

.espa-tour-detail__availability-kicker {
    color: var(--td-primary);
    font-size: 7.5px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.espa-tour-detail__availability-empty h3 {
    margin: 5px 0 6px;
    color: var(--td-heading);
    font-size: 15px;
    font-weight: 850;
}

.espa-tour-detail__availability-empty p {
    margin: 0 auto 14px;
    max-width: 280px;
    color: #758397;
    font-size: 9px;
    line-height: 1.55;
}

.espa-tour-detail__availability-actions {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.espa-tour-detail__availability-actions a,
.espa-tour-detail__availability-actions button {
    width: 100%;
    min-height: 41px;
    padding: 0 11px;
    border: 1px solid var(--td-primary);
    border-radius: 10px;
    background: var(--td-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}

.espa-tour-detail__availability-actions .is-secondary {
    border-color: #dfe6ed;
    background: #fff;
    color: var(--td-heading);
}

.espa-tour-detail__availability-actions iconify-icon {
    width: 15px;
    height: 15px;
}

@media (max-width: 767.98px) {
    .espa-tour-detail__booking-offcanvas .espa-tour-detail__booking-body {
        padding: 0;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu {
        min-width: min(330px, calc(100vw - 30px));
    }

    .espa-tour-detail__package-option {
        min-height: 78px;
        grid-template-columns: 17px minmax(0, 1fr) auto;
        padding: 10px 9px;
    }

    .espa-tour-detail__package-price strong {
        font-size: 13px;
    }
}

/* =========================================================
   DETAIL EMPHASIS - QUICK FACTS + SECTION NAV
========================================================= */

.espa-tour-detail__quick-facts {
    gap: 12px;
    margin-top: 18px;
}

.espa-tour-detail__quick-fact {
    min-height: 80px;
    padding: 14px 16px;
    border: 1px solid #d9e3ec;
    background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
    box-shadow: 0 7px 20px rgba(15, 23, 42, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.espa-tour-detail__quick-fact:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--td-primary) 28%, #d9e3ec);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.espa-tour-detail__quick-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    border: 1px solid color-mix(in srgb, var(--td-primary) 16%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--td-primary) 10%, #fff);
}

.espa-tour-detail__quick-icon iconify-icon {
    width: 21px;
    height: 21px;
}

.espa-tour-detail__quick-fact small {
    margin-bottom: 3px;
    color: #8290a2;
    font-size: 8.5px;
    font-weight: 850;
    letter-spacing: .07em;
}

.espa-tour-detail__quick-fact strong {
    color: var(--td-heading);
    font-size: 12px;
    font-weight: 850;
}

/* Strong segmented navigation */
.espa-tour-detail__section-nav {
    gap: 8px;
    padding: 8px;
    border: 1px solid #d6e0e9;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .065);
}

.espa-tour-detail__section-nav a {
    position: relative;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #e1e8ef;
    border-radius: 11px;
    background: #f8fafc;
    color: #405168;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: -.01em;
    transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.espa-tour-detail__section-nav a iconify-icon {
    width: 18px;
    height: 18px;
    color: var(--td-primary);
}

.espa-tour-detail__section-nav a:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--td-primary) 22%, #d9e2ea);
    background: color-mix(in srgb, var(--td-primary) 5%, #fff);
    color: var(--td-heading);
    box-shadow: 0 6px 14px rgba(15, 23, 42, .055);
}

.espa-tour-detail__section-nav a.is-active {
    border-color: var(--td-heading);
    background: var(--td-heading);
    color: #fff;
    box-shadow: 0 9px 20px rgba(16, 42, 67, .20);
}

.espa-tour-detail__section-nav a.is-active iconify-icon {
    color: #fff;
}

.espa-tour-detail__section-nav a.is-active::after {
    content: "";
    position: absolute;
    right: 12px;
    bottom: 6px;
    left: 12px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,255,255,.68);
}

@media (max-width: 767.98px) {
    .espa-tour-detail__quick-fact {
        flex-basis: 188px;
        min-height: 72px;
        padding: 11px 12px;
        box-shadow: none;
    }

    .espa-tour-detail__quick-icon {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
    }

    .espa-tour-detail__quick-icon iconify-icon {
        width: 18px;
        height: 18px;
    }

    .espa-tour-detail__section-nav {
        gap: 7px;
        padding: 7px 12px;
    }

    .espa-tour-detail__section-nav a {
        flex: 0 0 auto;
        min-height: 42px;
        padding: 0 12px;
        font-size: 10px;
    }

    .espa-tour-detail__section-nav a iconify-icon {
        width: 17px;
        height: 17px;
    }
}


/* =========================================================
   V5 - READABILITY + MOBILE PROGRAM ACCORDION
========================================================= */

/* Desktop/tablet: one step larger for readability */
@media (min-width: 768px) {
    .espa-tour-detail__section-nav a {
        font-size: 11px;
    }

    .espa-tour-detail__quick-fact small {
        font-size: 8.5px;
    }

    .espa-tour-detail__quick-fact strong {
        font-size: 12px;
    }

    .espa-tour-detail__section-head p {
        font-size: 12px;
    }

    .espa-tour-detail .description-content {
        font-size: 13px;
        line-height: 1.82;
    }

    .espa-tour-detail__day-content h3 {
        font-size: 17px;
    }

    .espa-tour-detail__booking-step label {
        font-size: 10px;
    }

    .espa-tour-detail__select-wrap select,
    .espa-tour-detail__pax-btn {
        font-size: 11px;
    }

    .espa-tour-detail__booking-trust span,
    .espa-tour-detail__contact-card a {
        font-size: 10px;
    }
}

@media (max-width: 767.98px) {

    /*
     * Program section uses every available horizontal pixel.
     * The rest of the detail page keeps its current spacing.
     */
    .espa-tour-detail__section#program {
        margin-left: -12px;
        margin-right: -12px;
        padding-left: 12px;
        padding-right: 12px;
        border-left: 0;
        border-right: 0;
        border-radius: 0;
    }

    .espa-tour-detail__section#program .espa-tour-detail__section-head {
        margin-bottom: 14px;
    }

    .espa-tour-detail__section#program .espa-tour-detail__section-head h2 {
        font-size: 22px;
    }

    .espa-tour-detail__section#program .espa-tour-detail__section-head p {
        font-size: 11px;
    }

    /* Mobile itinerary accordion */
    .espa-tour-detail__mobile-program {
        display: flex;
        flex-direction: column;
        gap: 9px;
        margin: 0;
        padding: 0;
    }

    .espa-tour-detail__mobile-day {
        overflow: hidden;
        margin: 0;
        border: 1px solid #dfe7ee;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 4px 14px rgba(15, 23, 42, .035);
    }

    .espa-tour-detail__mobile-day summary {
        min-height: 64px;
        padding: 10px 12px 10px 10px;
        list-style: none;
        cursor: pointer;
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr) 30px;
        gap: 10px;
        align-items: center;
        -webkit-tap-highlight-color: transparent;
    }

    .espa-tour-detail__mobile-day summary::-webkit-details-marker {
        display: none;
    }

    .espa-tour-detail__mobile-day-number {
        width: 38px;
        height: 38px;
        border-radius: 11px;
        background: var(--td-heading);
        color: #fff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
        font-weight: 850;
        line-height: 1;
    }

    .espa-tour-detail__mobile-day-title {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .espa-tour-detail__mobile-day-title small {
        margin-bottom: 3px;
        color: var(--td-primary);
        font-size: 8px;
        font-weight: 850;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .espa-tour-detail__mobile-day-title strong {
        overflow: hidden;
        color: var(--td-heading);
        font-size: 13px;
        font-weight: 800;
        line-height: 1.3;
        text-overflow: ellipsis;
    }

    .espa-tour-detail__mobile-day-toggle {
        width: 30px;
        height: 30px;
        border: 1px solid #e1e8ef;
        border-radius: 9px;
        background: #f8fafc;
        color: #718096;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform .18s ease, background .18s ease, color .18s ease;
    }

    .espa-tour-detail__mobile-day-toggle iconify-icon {
        width: 16px;
        height: 16px;
        transition: transform .2s ease;
    }

    .espa-tour-detail__mobile-day[open] {
        border-color: color-mix(in srgb, var(--td-primary) 18%, #dfe7ee);
    }

    .espa-tour-detail__mobile-day[open] summary {
        background: #fbfcfd;
        border-bottom: 1px solid #edf1f5;
    }

    .espa-tour-detail__mobile-day[open] .espa-tour-detail__mobile-day-number {
        background: var(--td-primary);
    }

    .espa-tour-detail__mobile-day[open] .espa-tour-detail__mobile-day-toggle {
        background: color-mix(in srgb, var(--td-primary) 8%, #fff);
        border-color: color-mix(in srgb, var(--td-primary) 15%, #e1e8ef);
        color: var(--td-primary);
    }

    .espa-tour-detail__mobile-day[open] .espa-tour-detail__mobile-day-toggle iconify-icon {
        transform: rotate(180deg);
    }

    .espa-tour-detail__mobile-day-body {
        padding: 14px 12px 16px;
        color: #4b5b6f;
        font-size: 12px !important;
        line-height: 1.72 !important;
    }

    .espa-tour-detail__mobile-day-body p {
        margin-bottom: 11px;
    }

    .espa-tour-detail__mobile-day-body p:last-child {
        margin-bottom: 0;
    }

    .espa-tour-detail__mobile-day-body ul,
    .espa-tour-detail__mobile-day-body ol {
        padding-left: 18px;
    }

    /*
     * Slight mobile readability bump across the page.
     * Kept deliberately small so cards/forms don't become oversized.
     */
    .espa-tour-detail__section-nav a {
        font-size: 10px;
    }

    .espa-tour-detail__quick-fact small {
        font-size: 8.5px;
    }

    .espa-tour-detail__quick-fact strong {
        font-size: 11.5px;
    }

    .espa-tour-detail__section-head p {
        font-size: 11px;
    }

    .espa-tour-detail__service-card li {
        font-size: 11px;
    }

    .espa-tour-detail__booking-offcanvas .espa-tour-detail__booking-step label,
    #mobile-booking-container .espa-tour-detail__booking-step label {
        font-size: 10px;
    }

    #mobile-booking-container .espa-tour-detail__select-wrap select,
    #mobile-booking-container .espa-tour-detail__pax-btn {
        font-size: 11px;
    }
}


/* =========================================================
   V6 - PREMIUM FULL-SCREEN MOBILE BOOKING
   One scroll surface, inline date/pax controls, fixed close.
========================================================= */

@media (max-width: 991.98px) {

    /* Always stay above floating social/contact buttons. */
    #mobileBookingOffcanvas.espa-tour-detail__booking-offcanvas {
        --bs-offcanvas-height: 100dvh;
        z-index: 2060 !important;
        width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #f5f7fa;
        overflow: hidden !important;
    }

    /* Only the booking offcanvas needs an elevated backdrop.
       Do NOT raise every Bootstrap offcanvas backdrop: doing so blocks the site mobile menu. */
    html.espa-mobile-booking-open .offcanvas-backdrop.show {
        z-index: 2050 !important;
    }

    #mobileBookingOffcanvas .offcanvas-header {
        position: relative;
        z-index: 30;
        flex: 0 0 auto;
        min-height: 82px;
        padding: 17px 72px 15px 18px !important;
        border-bottom: 1px solid #e4eaf0;
        background: rgba(255,255,255,.98);
        box-shadow: 0 4px 16px rgba(15,23,42,.04);
    }

    #mobileBookingOffcanvas .offcanvas-header > div {
        min-width: 0;
    }

    #mobileBookingOffcanvas .offcanvas-header small {
        margin-bottom: 4px;
        font-size: 9px;
        letter-spacing: .08em;
    }

    #mobileBookingOffcanvas .offcanvas-header h2 {
        overflow: hidden;
        margin: 0;
        max-width: 100%;
        color: var(--td-heading);
        font-size: 21px;
        font-weight: 850;
        line-height: 1.1;
        letter-spacing: -.035em;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    #mobileBookingOffcanvas .offcanvas-header > button {
        position: absolute !important;
        top: 16px !important;
        right: 16px !important;
        left: auto !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid #dce4eb !important;
        border-radius: 14px !important;
        background: #f8fafc !important;
        color: var(--td-heading) !important;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: none !important;
    }

    #mobileBookingOffcanvas .offcanvas-header > button iconify-icon {
        width: 27px !important;
        height: 27px !important;
    }

    #mobileBookingOffcanvas .offcanvas-body {
        flex: 1 1 auto;
        min-height: 0;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        background: #f5f7fa;
    }

    #mobile-booking-container {
        min-height: 100%;
        padding: 16px 14px calc(34px + env(safe-area-inset-bottom));
    }

    /* One clear card-like flow instead of a cloned desktop widget. */
    #mobile-booking-container .espa-tour-detail__booking-step,
    #mobile-booking-container .espa-tour-detail__package-step {
        position: relative;
        display: block !important;
        margin: 0 0 12px !important;
        padding: 15px !important;
        border: 1px solid #e1e8ef;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 5px 16px rgba(15,23,42,.035);
    }

    #mobile-booking-container .espa-tour-detail__booking-step > .espa-tour-detail__step-number,
    #mobile-booking-container .espa-tour-detail__package-step > .espa-tour-detail__step-number {
        position: static;
        width: auto;
        height: auto;
        min-width: 0;
        margin: 0 0 9px !important;
        padding: 4px 8px;
        border-radius: 999px;
        background: color-mix(in srgb, var(--td-primary) 8%, #fff);
        color: var(--td-primary);
        display: inline-flex;
        font-size: 8px;
        font-weight: 850;
    }

    #mobile-booking-container .espa-tour-detail__booking-step > .espa-tour-detail__step-number::before,
    #mobile-booking-container .espa-tour-detail__package-step > .espa-tour-detail__step-number::before {
        content: "ADIM ";
    }

    #mobile-booking-container .espa-tour-detail__booking-step > div,
    #mobile-booking-container .espa-tour-detail__package-step > div {
        width: 100%;
        min-width: 0;
    }

    #mobile-booking-container .espa-tour-detail__booking-step label,
    #mobile-booking-container .espa-tour-detail__package-step label {
        margin-bottom: 8px;
        font-size: 11px;
        font-weight: 800;
    }

    /*
     * Hide the native select on mobile. It stays in DOM as the state source,
     * so the existing calculation logic remains untouched.
     */
    #mobile-booking-container .espa-tour-detail__select-wrap {
        height: auto !important;
    }

    #mobile-booking-container .espa-tour-detail__select-wrap > iconify-icon,
    #mobile-booking-container .espa-tour-detail__native-mobile-select {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0) !important;
        clip-path: inset(50%) !important;
        white-space: nowrap !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .espa-tour-detail__mobile-date-picker {
        width: 100%;
    }

    .espa-tour-detail__mobile-date-trigger {
        width: 100%;
        min-height: 58px;
        padding: 9px 12px;
        border: 1px solid #dce5ed;
        border-radius: 13px;
        background: #fff;
        color: var(--td-heading);
        display: grid;
        grid-template-columns: 36px minmax(0,1fr) 18px;
        gap: 10px;
        align-items: center;
        text-align: left;
    }

    .espa-tour-detail__mobile-date-trigger.is-open {
        border-color: color-mix(in srgb, var(--td-primary) 38%, #dce5ed);
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--td-primary) 7%, transparent);
    }

    .espa-tour-detail__mobile-date-trigger-icon {
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: color-mix(in srgb, var(--td-primary) 7%, #fff);
        color: var(--td-primary);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .espa-tour-detail__mobile-date-trigger-icon iconify-icon {
        width: 18px;
        height: 18px;
    }

    .espa-tour-detail__mobile-date-trigger-copy {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .espa-tour-detail__mobile-date-trigger-copy small {
        margin-bottom: 2px;
        color: #8a97a8;
        font-size: 8px;
        font-weight: 750;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .espa-tour-detail__mobile-date-trigger-copy strong {
        overflow: hidden;
        color: var(--td-heading);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.25;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .espa-tour-detail__mobile-date-trigger-chevron {
        width: 17px;
        height: 17px;
        color: #7d8b9e;
        transition: transform .18s ease;
    }

    .espa-tour-detail__mobile-date-trigger.is-open .espa-tour-detail__mobile-date-trigger-chevron {
        transform: rotate(180deg);
    }

    .espa-tour-detail__mobile-date-list {
        margin-top: 9px;
        padding: 6px;
        border: 1px solid #e0e7ed;
        border-radius: 13px;
        background: #f8fafc;
    }

    .espa-tour-detail__mobile-date-list[hidden] {
        display: none !important;
    }

    .espa-tour-detail__mobile-date-option {
        width: 100%;
        min-height: 46px;
        padding: 8px 9px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: #425166;
        display: grid;
        grid-template-columns: 20px minmax(0,1fr);
        gap: 8px;
        align-items: center;
        text-align: left;
        font-size: 10.5px;
        line-height: 1.35;
    }

    .espa-tour-detail__mobile-date-option + .espa-tour-detail__mobile-date-option {
        border-top: 1px solid #e9eef3;
        border-radius: 0;
    }

    .espa-tour-detail__mobile-date-option.is-selected {
        background: #fff;
        color: var(--td-heading);
        font-weight: 750;
    }

    .espa-tour-detail__mobile-date-option-check {
        color: #c3ccd7;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .espa-tour-detail__mobile-date-option-check iconify-icon {
        width: 15px;
        height: 15px;
    }

    .espa-tour-detail__mobile-date-option.is-selected .espa-tour-detail__mobile-date-option-check {
        color: var(--td-primary);
    }

    /* Mobile pax is inline: no floating dropdown, no nested scrollbar. */
    #mobile-booking-container #tourPaxDropdown {
        position: static !important;
    }

    #mobile-booking-container .espa-tour-detail__pax-btn {
        min-height: 56px;
        height: auto !important;
        padding: 0 12px;
        border-radius: 13px;
        font-size: 11px;
    }

    #mobile-booking-container .espa-tour-detail__pax-btn.is-open {
        border-color: color-mix(in srgb, var(--td-primary) 32%, #dce4eb);
    }

    #mobile-booking-container .espa-tour-detail__mobile-pax-panel {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        float: none !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: none !important;
        margin: 9px 0 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 1px solid #e2e8ef !important;
        border-radius: 13px !important;
        background: #f8fafc !important;
        box-shadow: none !important;
        display: none !important;
    }

    #mobile-booking-container .espa-tour-detail__mobile-pax-panel.is-open {
        display: block !important;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu-head {
        padding: 12px;
        background: #fff;
        border-radius: 13px 13px 0 0;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu-head strong {
        font-size: 12px;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu-head span {
        margin-top: 3px;
        font-size: 9px;
    }

    #mobile-booking-container .espa-tour-detail__rooms {
        max-height: none !important;
        overflow: visible !important;
        padding: 10px !important;
    }

    #mobile-booking-container .espa-tour-detail__room {
        padding: 12px !important;
        background: #fff;
    }

    #mobile-booking-container .espa-tour-detail__pax-row {
        min-height: 50px;
    }

    #mobile-booking-container .espa-tour-detail__pax-row strong {
        font-size: 11px;
    }

    #mobile-booking-container .espa-tour-detail__pax-row small {
        font-size: 8.5px;
    }

    #mobile-booking-container .espa-tour-detail__counter {
        min-width: 108px;
        height: 36px;
        grid-template-columns: 32px 32px 32px;
    }

    #mobile-booking-container .espa-tour-detail__counter button {
        width: 32px;
        height: 32px;
    }

    #mobile-booking-container .espa-tour-detail__counter button iconify-icon {
        width: 20px;
        height: 20px;
    }

    #mobile-booking-container .espa-tour-detail__counter input {
        width: 32px;
        font-size: 11px;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu-foot {
        position: static;
        padding: 10px;
        border-radius: 0 0 13px 13px;
    }

    #mobile-booking-container .espa-tour-detail__pax-menu-foot button {
        min-height: 38px;
        padding: 0 12px;
        font-size: 10px;
    }

    /* Dynamic package area remains in the same single scroll flow. */
    #mobile-booking-container .espa-tour-detail__calculated-packages {
        margin: 0;
    }

    #mobile-booking-container .espa-tour-detail__package-list,
    #mobile-booking-container .espa-tour-detail__rooms {
        overflow: visible !important;
    }

    #mobile-booking-container .espa-tour-detail__package-option {
        min-height: 88px;
        grid-template-columns: 18px minmax(0,1fr) auto;
        padding: 11px 10px;
    }

    #mobile-booking-container .espa-tour-detail__checkout-btn {
        position: sticky;
        bottom: 10px;
        z-index: 10;
        min-height: 52px;
        margin-top: 12px;
        border-radius: 13px;
        font-size: 11px;
        box-shadow: 0 12px 28px color-mix(in srgb, var(--td-primary) 25%, transparent);
    }

    #mobile-booking-container #initial-action-area .espa-tour-detail__booking-primary {
        min-height: 50px;
        border-radius: 13px;
        font-size: 12px;
    }

    /* Booking trust content is not useful enough to consume scarce mobile space. */
    #mobile-booking-container .espa-tour-detail__booking-trust {
        margin-top: 10px;
        padding: 12px;
        border: 1px solid #e4eaf0;
        border-radius: 13px;
        background: #fff;
    }

    html.espa-mobile-booking-open,
    html.espa-mobile-booking-open body {
        overscroll-behavior: none;
    }
}


/* =========================================================
   V7 - MOBILE DETAIL MENU / FULL-SCREEN SECTION MODALS / GALLERY
   Desktop rules are intentionally untouched.
========================================================= */

@media (max-width: 767.98px) {

    /* The old horizontal tabs are desktop-only. */
    .espa-tour-detail__section-nav {
        display: none !important;
    }

    /* On mobile sections live behind the menu and are moved into the modal on demand. */
    .espa-tour-detail__main > .espa-tour-detail__section {
        display: none !important;
    }

    .espa-tour-detail__section-modal .espa-tour-detail__section,
    .espa-tour-detail__section.is-in-mobile-modal {
        display: block !important;
    }

    .espa-tour-detail__mobile-section-menu {
        display: flex;
        flex-direction: column;
        gap: 9px;
        margin: 0;
        padding: 0;
    }

    .espa-tour-detail__mobile-section-menu > button {
        width: 100%;
        min-height: 70px;
        padding: 10px 12px;
        border: 1px solid #dde6ee;
        border-radius: 14px;
        background: #fff;
        color: var(--td-heading);
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr) 28px;
        gap: 11px;
        align-items: center;
        text-align: left;
        box-shadow: 0 5px 16px rgba(15,23,42,.035);
    }

    .espa-tour-detail__mobile-section-menu > button:active {
        transform: scale(.995);
        background: #f8fafc;
    }

    .espa-tour-detail__mobile-section-icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: color-mix(in srgb, var(--td-primary) 7%, #fff);
        color: var(--td-primary);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .espa-tour-detail__mobile-section-icon iconify-icon {
        width: 20px;
        height: 20px;
    }

    .espa-tour-detail__mobile-section-copy {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .espa-tour-detail__mobile-section-copy small {
        margin-bottom: 2px;
        color: #8996a6;
        font-size: 8px;
        font-weight: 750;
        letter-spacing: .05em;
        text-transform: uppercase;
    }

    .espa-tour-detail__mobile-section-copy strong {
        color: var(--td-heading);
        font-size: 13px;
        font-weight: 850;
        line-height: 1.25;
    }

    .espa-tour-detail__mobile-section-arrow {
        width: 21px;
        height: 21px;
        color: #738297;
        justify-self: end;
    }

    /* Full-screen mobile content modal. */
    #tourSectionModal.espa-tour-detail__section-modal {
        z-index: 2650 !important;
    }

    #tourSectionModal .modal-dialog {
        width: 100%;
        max-width: none;
        height: 100dvh;
        margin: 0;
    }

    #tourSectionModal .modal-content {
        height: 100dvh;
        border: 0;
        border-radius: 0;
        background: #f5f7fa;
    }

    #tourSectionModal .modal-header {
        position: sticky;
        top: 0;
        z-index: 20;
        min-height: 78px;
        padding: 15px 72px 14px 16px;
        border-bottom: 1px solid #e2e8ef;
        background: rgba(255,255,255,.98);
        box-shadow: 0 4px 16px rgba(15,23,42,.04);
    }

    #tourSectionModal .modal-header > div > small {
        display: block;
        margin-bottom: 3px;
        color: var(--td-primary);
        font-size: 8px;
        font-weight: 850;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    #tourSectionModal .modal-header h2 {
        margin: 0;
        color: var(--td-heading);
        font-size: 20px;
        font-weight: 850;
        letter-spacing: -.03em;
    }

    #tourSectionModal .espa-tour-detail__modal-close {
        position: absolute;
        top: 14px;
        right: 14px;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 1px solid #dce4eb;
        border-radius: 14px;
        background: #f8fafc;
        color: var(--td-heading);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #tourSectionModal .espa-tour-detail__modal-close iconify-icon {
        width: 27px;
        height: 27px;
    }

    #tourSectionModal .modal-body {
        padding: 12px 0 calc(28px + env(safe-area-inset-bottom));
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    #tourSectionModal .espa-tour-detail__section {
        width: 100%;
        margin: 0 !important;
        padding: 16px 14px 24px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff;
        box-shadow: none !important;
    }

    #tourSectionModal .espa-tour-detail__section-head {
        margin-bottom: 15px;
        padding-bottom: 14px;
    }

    #tourSectionModal .espa-tour-detail__section-head h2 {
        font-size: 21px;
    }

    #tourSectionModal .description-content {
        font-size: 12.5px !important;
        line-height: 1.72 !important;
    }

    /* Keep Bootstrap's native mobile-menu/backdrop layering intact.
       We only hide the persistent detail booking bar while the site menu is open. */
    body.espa-site-offcanvas-open .espa-tour-detail__mobile-bar {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(120%) !important;
    }
}

/* In-page image gallery viewer - desktop and mobile. */
#tourGalleryModal.espa-tour-detail__gallery-modal {
    z-index: 2800 !important;
}

#tourGalleryModal .modal-content {
    border: 0;
    border-radius: 0;
    background: #07111c;
    color: #fff;
}

.espa-tour-detail__gallery-modal-top {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
    min-height: 74px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: linear-gradient(to bottom, rgba(0,0,0,.72), transparent);
}

.espa-tour-detail__gallery-modal-top > div {
    display: flex;
    flex-direction: column;
}

.espa-tour-detail__gallery-modal-top small {
    color: rgba(255,255,255,.68);
    font-size: 10px;
}

.espa-tour-detail__gallery-modal-top strong {
    margin-top: 2px;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
}

.espa-tour-detail__gallery-modal-top > button {
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 14px;
    background: rgba(255,255,255,.1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(10px);
}

.espa-tour-detail__gallery-modal-top > button iconify-icon {
    width: 28px;
    height: 28px;
}

.espa-tour-detail__gallery-stage {
    position: relative;
    width: 100%;
    height: 100dvh;
    padding: 72px 82px 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__gallery-stage figure {
    width: 100%;
    height: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.espa-tour-detail__gallery-stage img {
    display: block;
    max-width: 100%;
    max-height: calc(100dvh - 150px);
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.espa-tour-detail__gallery-stage figcaption {
    min-height: 22px;
    margin-top: 10px;
    color: rgba(255,255,255,.7);
    font-size: 11px;
    text-align: center;
}

.espa-tour-detail__gallery-nav {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    backdrop-filter: blur(10px);
}

.espa-tour-detail__gallery-nav.is-prev { left: 18px; }
.espa-tour-detail__gallery-nav.is-next { right: 18px; }
.espa-tour-detail__gallery-nav iconify-icon { width: 26px; height: 26px; }
.espa-tour-detail__gallery-nav:disabled { display: none; }

@media (max-width: 767.98px) {
    .espa-tour-detail__gallery-stage {
        padding: 74px 10px 34px;
    }

    .espa-tour-detail__gallery-stage img {
        max-height: calc(100dvh - 140px);
    }

    .espa-tour-detail__gallery-nav {
        width: 44px;
        height: 44px;
        background: rgba(7,17,28,.68);
    }

    .espa-tour-detail__gallery-nav.is-prev { left: 10px; }
    .espa-tour-detail__gallery-nav.is-next { right: 10px; }
    .espa-tour-detail__gallery-nav iconify-icon { width: 22px; height: 22px; }
}


/* =========================================================
   V9 - SITE MOBILE MENU LAYERING FIX
========================================================= */
@media (max-width: 991.98px) {
    /* Never globally override Bootstrap's .offcanvas-backdrop z-index. */
    body.espa-site-offcanvas-open .espa-tour-detail__mobile-bar,
    body.espa-site-offcanvas-open .floating-socials,
    body.espa-site-offcanvas-open .floating-buttons,
    body.espa-site-offcanvas-open .social-fixed,
    body.espa-site-offcanvas-open .fixed-socials {
        pointer-events: none !important;
    }

    /* The booking backdrop is elevated only while the booking panel itself is active. */
    html.espa-mobile-booking-open .offcanvas-backdrop.show {
        z-index: 2050 !important;
    }
}

/* =========================================================
   V10 - MODAL CLOSE CONTROLS + USER MOBILE GALLERY SIZING
========================================================= */

/* Review modal close button: always fixed to the visual top-right corner. */
.espa-tour-detail__review-modal .modal-header {
    position: relative;
    min-height: 82px;
    padding-right: 82px !important;
}

.espa-tour-detail__review-modal .espa-tour-detail__review-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #dce4eb !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    color: var(--td-heading) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    z-index: 5;
}

.espa-tour-detail__review-modal .espa-tour-detail__review-close iconify-icon {
    width: 31px !important;
    height: 31px !important;
    font-size: 31px !important;
}

/* All other detail modal/offcanvas close icons keep the same visual weight. */
#mobileBookingOffcanvas .offcanvas-header > button iconify-icon,
#tourSectionModal .espa-tour-detail__modal-close iconify-icon,
.espa-tour-detail__map-modal .modal-header > button iconify-icon {
    width: 31px !important;
    height: 31px !important;
    font-size: 31px !important;
}

@media (max-width: 767.98px) {
    .espa-tour-detail__review-modal .modal-dialog {
        margin: 0 !important;
        min-height: 100dvh;
    }

    .espa-tour-detail__review-modal .modal-content {
        min-height: 100dvh;
        border-radius: 0 !important;
    }

    .espa-tour-detail__review-modal .modal-header {
        min-height: 86px;
        padding: 18px 78px 16px 18px !important;
    }

    .espa-tour-detail__review-modal .modal-header h2 {
        font-size: 22px;
        line-height: 1.15;
    }

    .espa-tour-detail__review-modal .espa-tour-detail__review-close {
        top: 16px !important;
        right: 16px !important;
    }
}

/* User-requested mobile list/gallery control sizing - keep at end of file. */
@media (max-width: 767.98px) {

    .espa-tour-card__slider-btn {
        width: 34px !important;
        height: 34px !important;
    }

    .espa-tour-card__slider-btn iconify-icon {
        width: 15px !important;
        height: 15px !important;
    }

    .espa-tour-card__gallery-dot {
        width: 5px !important;
        height: 5px !important;
        min-width: 5px !important;
        min-height: 5px !important;
        max-width: 5px !important;
        max-height: 5px !important;
        padding: 0 !important;
    }

    .espa-tour-card__gallery-dot.is-active {
        width: 14px !important;
        min-width: 14px !important;
        max-width: 14px !important;
        height: 5px !important;
    }
}


/* =========================================================
   TOUR DETAIL - GALLERY STYLE: SLIDER
   Added for Theme Builder galleryStyle="slider".
   Existing tour-detail rules above are intentionally untouched.
========================================================= */

.espa-tour-detail__gallery-slider {
    position: relative;
    width: 100%;
}

.espa-tour-detail__gallery-slider-viewport {
    position: relative;
    width: 100%;
    height: 490px;
    overflow: hidden;
    border-radius: 22px;
    background: #edf2f6;
}

.espa-tour-detail__gallery-slide {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .28s ease, visibility .28s ease;
}

.espa-tour-detail__gallery-slide.is-active {
    z-index: 2;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.espa-tour-detail__gallery-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.espa-tour-detail__gallery-slide:hover img {
    transform: scale(1.015);
}

.espa-tour-detail__gallery-slide::after {
    content: "";
    position: absolute;
    inset: 55% 0 0;
    background: linear-gradient(to bottom, transparent, rgba(5,19,31,.34));
    pointer-events: none;
}

.espa-tour-detail__gallery-slider-arrow {
    position: absolute;
    top: 50%;
    z-index: 6;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: var(--td-heading);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    box-shadow: 0 10px 28px rgba(15,23,42,.16);
    backdrop-filter: blur(10px);
    transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.espa-tour-detail__gallery-slider-arrow:hover {
    border-color: var(--td-primary);
    background: var(--td-primary);
    color: #fff;
    transform: translateY(-50%) scale(1.04);
}

.espa-tour-detail__gallery-slider-arrow.is-prev {
    left: 18px;
}

.espa-tour-detail__gallery-slider-arrow.is-next {
    right: 18px;
}

.espa-tour-detail__gallery-slider-arrow iconify-icon {
    width: 22px;
    height: 22px;
}

.espa-tour-detail__gallery-slider-counter {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 6;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(7,17,28,.66);
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    backdrop-filter: blur(10px);
}

.espa-tour-detail__gallery-slider-thumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 2px 1px 4px;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: #cbd5df transparent;
}

.espa-tour-detail__gallery-slider-thumbs::-webkit-scrollbar {
    height: 5px;
}

.espa-tour-detail__gallery-slider-thumbs::-webkit-scrollbar-track {
    background: transparent;
}

.espa-tour-detail__gallery-slider-thumbs::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5df;
}

.espa-tour-detail__gallery-slider-thumb {
    position: relative;
    flex: 0 0 92px;
    width: 92px;
    height: 62px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 11px;
    background: #edf2f6;
    opacity: .62;
    transition: opacity .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.espa-tour-detail__gallery-slider-thumb:hover {
    opacity: .9;
    transform: translateY(-1px);
}

.espa-tour-detail__gallery-slider-thumb.is-active {
    border-color: var(--td-primary);
    opacity: 1;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--td-primary) 10%, transparent);
}

.espa-tour-detail__gallery-slider-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.espa-tour-detail__gallery-slider.is-single .espa-tour-detail__gallery-slider-arrow,
.espa-tour-detail__gallery-slider.is-single .espa-tour-detail__gallery-slider-counter,
.espa-tour-detail__gallery-slider.is-single .espa-tour-detail__gallery-slider-thumbs {
    display: none;
}

@media (max-width: 1199.98px) {
    .espa-tour-detail__gallery-slider-viewport {
        height: 440px;
    }
}

@media (max-width: 991.98px) {
    .espa-tour-detail__gallery-slider-viewport {
        height: 380px;
        border-radius: 20px;
    }
}

@media (max-width: 767.98px) {
    .espa-tour-detail__gallery-slider-viewport {
        height: 265px;
        border-radius: 16px;
    }

    .espa-tour-detail__gallery-slider-arrow {
        width: 38px;
        height: 38px;
        background: rgba(255,255,255,.94);
    }

    .espa-tour-detail__gallery-slider-arrow.is-prev {
        left: 10px;
    }

    .espa-tour-detail__gallery-slider-arrow.is-next {
        right: 10px;
    }

    .espa-tour-detail__gallery-slider-arrow iconify-icon {
        width: 19px;
        height: 19px;
    }

    .espa-tour-detail__gallery-slider-counter {
        right: 10px;
        bottom: 10px;
        min-height: 32px;
        padding: 0 10px;
    }

    .espa-tour-detail__gallery-slider-thumbs {
        gap: 7px;
        margin-top: 8px;
        padding-bottom: 2px;
    }

    .espa-tour-detail__gallery-slider-thumb {
        flex-basis: 72px;
        width: 72px;
        height: 50px;
        border-radius: 9px;
    }
}

@media (max-width: 389.98px) {
    .espa-tour-detail__gallery-slider-viewport {
        height: 235px;
    }
}


/* =========================================================
   TOUR DETAIL - GALLERY STYLE: SHOWCASE
   Theme Builder galleryStyle="showcase".
   Existing rules above are intentionally untouched.
========================================================= */

.espa-tour-detail__gallery-showcase {
    position: relative;
    display: grid;
    grid-template-columns: 1.32fr 1fr 1fr .72fr;
    grid-template-rows: repeat(2, 245px);
    gap: 4px;
    width: 100%;
    height: 494px;
    overflow: hidden;
    background: #edf2f6;
}

.espa-tour-detail__gallery-showcase-item {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #e8edf2;
}

.espa-tour-detail__gallery-showcase-item::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(5,19,31,.02) 42%, rgba(5,19,31,.34) 100%);
    opacity: .45;
    pointer-events: none;
    transition: opacity .28s ease;
}

.espa-tour-detail__gallery-showcase-item:hover::after {
    opacity: .68;
}

.espa-tour-detail__gallery-showcase-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.espa-tour-detail__gallery-showcase-item:hover img {
    transform: scale(1.025);
}

.espa-tour-detail__gallery-showcase-item.is-item-1 {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.espa-tour-detail__gallery-showcase-item.is-item-2 {
    grid-column: 2;
    grid-row: 1;
}

.espa-tour-detail__gallery-showcase-item.is-item-3 {
    grid-column: 2;
    grid-row: 2;
}

.espa-tour-detail__gallery-showcase-item.is-item-4 {
    grid-column: 3;
    grid-row: 1;
}

.espa-tour-detail__gallery-showcase-item.is-item-5 {
    grid-column: 3;
    grid-row: 2;
}

.espa-tour-detail__gallery-showcase-item.is-item-6 {
    grid-column: 4;
    grid-row: 1 / span 2;
}

.espa-tour-detail__gallery-showcase.is-single {
    display: block;
    height: 490px;
}

.espa-tour-detail__gallery-showcase.is-single .espa-tour-detail__gallery-showcase-item {
    width: 100%;
    height: 100%;
}

.espa-tour-detail__gallery-showcase--count-2 {
    grid-template-columns: 1.3fr 1fr;
}

.espa-tour-detail__gallery-showcase--count-2 .is-item-1 {
    grid-column: 1;
}

.espa-tour-detail__gallery-showcase--count-2 .is-item-2 {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.espa-tour-detail__gallery-showcase--count-3 {
    grid-template-columns: 1.35fr 1fr;
}

.espa-tour-detail__gallery-showcase--count-3 .is-item-1 {
    grid-column: 1;
}

.espa-tour-detail__gallery-showcase--count-3 .is-item-2,
.espa-tour-detail__gallery-showcase--count-3 .is-item-3 {
    grid-column: 2;
}

.espa-tour-detail__gallery-showcase--count-4,
.espa-tour-detail__gallery-showcase--count-5 {
    grid-template-columns: 1.25fr 1fr 1fr;
}

.espa-tour-detail__gallery-showcase--count-4 .is-item-4 {
    grid-column: 3;
    grid-row: 1 / span 2;
}

.espa-tour-detail__gallery-showcase--count-5 .is-item-4 {
    grid-column: 3;
    grid-row: 1;
}

.espa-tour-detail__gallery-showcase--count-5 .is-item-5 {
    grid-column: 3;
    grid-row: 2;
}

.espa-tour-detail__gallery-showcase-title {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    z-index: 3;
    color: #fff;
    pointer-events: none;
}

.espa-tour-detail__gallery-showcase-title > strong {
    display: block;
    max-width: 580px;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
    text-shadow: 0 2px 18px rgba(0,0,0,.32);
}

.espa-tour-detail__gallery-showcase-title > span {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 11px;
}

.espa-tour-detail__gallery-showcase-title > span > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 650;
    text-shadow: 0 2px 12px rgba(0,0,0,.35);
}

.espa-tour-detail__gallery-showcase-title iconify-icon {
    width: 16px;
    height: 16px;
    color: var(--td-primary);
}

.espa-tour-detail__gallery-showcase-more {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(5,19,31,.48);
    color: #fff;
    backdrop-filter: blur(2px);
}

.espa-tour-detail__gallery-showcase-more strong {
    font-size: 27px;
    font-weight: 850;
}

.espa-tour-detail__gallery-showcase-more small {
    margin-top: 2px;
    font-size: 10px;
    font-weight: 650;
}

.espa-tour-detail__gallery-showcase-all {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 8;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--td-heading);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    box-shadow: 0 8px 22px rgba(15,23,42,.12);
    backdrop-filter: blur(10px);
    font-size: 10px;
    font-weight: 750;
}

.espa-tour-detail__gallery-showcase-all:hover {
    background: var(--td-primary);
    border-color: var(--td-primary);
    color: #fff;
}

.espa-tour-detail__gallery-showcase-all iconify-icon {
    width: 17px;
    height: 17px;
}

@media (max-width: 1199.98px) {
    .espa-tour-detail__gallery-showcase {
        grid-template-columns: 1.3fr 1fr 1fr;
        grid-template-rows: repeat(2, 220px);
        height: 444px;
    }

    .espa-tour-detail__gallery-showcase .is-item-6 {
        display: none;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-4 {
        grid-column: 3;
        grid-row: 1;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-5 {
        grid-column: 3;
        grid-row: 2;
    }
}

@media (max-width: 991.98px) {
    .espa-tour-detail__gallery-showcase {
        grid-template-columns: 1.35fr 1fr;
        grid-template-rows: repeat(2, 205px);
        height: 414px;
    }

    .espa-tour-detail__gallery-showcase .is-item-4,
    .espa-tour-detail__gallery-showcase .is-item-5,
    .espa-tour-detail__gallery-showcase .is-item-6 {
        display: none;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-1 {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-2 {
        grid-column: 2;
        grid-row: 1;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-3 {
        grid-column: 2;
        grid-row: 2;
    }
}

@media (max-width: 767.98px) {
    .espa-tour-detail__gallery-showcase {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 250px 120px;
        gap: 4px;
        height: 374px;
        border-radius: 0;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-1 {
        grid-column: 1 / span 2;
        grid-row: 1;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-2 {
        grid-column: 1;
        grid-row: 2;
    }

    .espa-tour-detail__gallery-showcase-item.is-item-3 {
        grid-column: 2;
        grid-row: 2;
    }

    .espa-tour-detail__gallery-showcase .is-item-4,
    .espa-tour-detail__gallery-showcase .is-item-5,
    .espa-tour-detail__gallery-showcase .is-item-6 {
        display: none;
    }

    .espa-tour-detail__gallery-showcase-title {
        left: 16px;
        right: 16px;
        bottom: 16px;
    }

    .espa-tour-detail__gallery-showcase-title > strong {
        font-size: 20px;
    }

    .espa-tour-detail__gallery-showcase-title > span {
        gap: 7px 10px;
        margin-top: 8px;
    }

    .espa-tour-detail__gallery-showcase-title > span > span {
        font-size: 10px;
    }

    .espa-tour-detail__gallery-showcase-all {
        right: 12px;
        bottom: 12px;
        min-height: 34px;
        padding: 0 11px;
        font-size: 9px;
    }
}
/* =========================================================
   DESKTOP BOOKING - PACKAGE LIST SCROLL
   Paketler scroll olur, rezervasyon butonu daima görünür kalır.
========================================================= */

@media (min-width: 992px) {

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__aside {
        position: sticky;
        top: 18px;
        align-self: start;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__booking {
        display: flex;
        flex-direction: column;
        max-height: calc(100vh - 36px);
        overflow: hidden;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__booking-top {
        flex: 0 0 auto;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__booking-body {
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }

    .espa-tour-detail.is-booking-sticky #calculated-packages-area {
        display: flex;
        flex-direction: column;
        min-height: 0;
        margin-top: 15px;
        overflow: hidden;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-step {
        display: grid;
        grid-template-columns: 25px minmax(0, 1fr);
        gap: 9px;
        min-height: 0;
        margin-top: 0;
        overflow: hidden;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-step > div {
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
        overflow: hidden;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-step > div > label {
        flex: 0 0 auto;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-list {
        flex: 1 1 auto;
        min-height: 0;
        max-height: calc(100vh - 455px);
        padding-right: 5px;
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(15, 42, 67, .22) transparent;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-list::-webkit-scrollbar {
        width: 5px;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-list::-webkit-scrollbar-track {
        background: transparent;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__package-list::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(15, 42, 67, .22);
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__checkout-btn {
        flex: 0 0 auto;
        margin-top: 10px;
    }

    .espa-tour-detail.is-booking-sticky #initial-action-area {
        flex: 0 0 auto;
    }

    .espa-tour-detail.is-booking-sticky .espa-tour-detail__booking-trust {
        flex: 0 0 auto;
    }
}