/* ═══════════════════════════════════════════════════════════════════════════
   PDP moderna — hoja compartida por las páginas de detalle de servicio
   (tours, autos, alojamientos, botes).

   Vivía repetida dentro de un <style> en cada detail.blade.php: 2.100 líneas en
   tours y 1.500 en autos, con los mismos selectores y valores divergiendo de a
   poco. Acá está una sola vez; cada servicio la enlaza desde
   Layout::parts.pdp.assets y agrega arriba lo suyo si hace falta.

   La galería de fotos no está acá: vive en service-gallery.css, porque el
   estilo lo elige el tema.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════
           BOOKICAL PDP — Chisfis Template Replica
           Structure: listingSection__wrap sections
           Palette: Indigo primary, Cool Grey neutrals
           Font: Poppins (loaded by layout)
        ══════════════════════════════════════════════════ */

        /* ── CSS Variables — dynamic from vendor colors ── */
        :root {
            /* Primary: vendor brand color */
            --cf-primary: var(--vendor-brand-color, rgb(99, 102, 241));
            --cf-primary-hover: color-mix(in srgb, var(--cf-primary) 85%, black);
            --cf-primary-dark: color-mix(in srgb, var(--cf-primary) 75%, black);
            --cf-primary-light: color-mix(in srgb, var(--cf-primary) 12%, white);

            /* Secondary: vendor secondary color (injected below) */
            --cf-secondary: var(--vendor-secondary-color, var(--cf-primary));
            --cf-secondary-hover: color-mix(in srgb, var(--cf-secondary) 85%, black);
            --cf-secondary-light: color-mix(in srgb, var(--cf-secondary) 12%, white);

            /* Background & text from vendor */
            --cf-bg: var(--vendor-bg-color, #ffffff);
            --cf-text: var(--vendor-text-color, rgb(55, 65, 81));

            /* Neutrals — derived from the vendor's text colour, not fixed greys.
               Every heading, paragraph and label on this page reads a
               --cf-neutral-* tone (900 alone is used 30+ times), so while these
               were hardcoded the theme's "Text color" changed almost nothing
               here. The ramp fades the text colour into the page background,
               which keeps the same contrast steps and stays neutral when the
               chosen colour is a grey. */
            --cf-neutral-900: var(--cf-text);
            --cf-neutral-800: color-mix(in srgb, var(--cf-text) 88%, var(--cf-bg));
            --cf-neutral-700: color-mix(in srgb, var(--cf-text) 78%, var(--cf-bg));
            --cf-neutral-600: color-mix(in srgb, var(--cf-text) 68%, var(--cf-bg));
            --cf-neutral-500: color-mix(in srgb, var(--cf-text) 58%, var(--cf-bg));
            --cf-neutral-400: color-mix(in srgb, var(--cf-text) 42%, var(--cf-bg));
            --cf-neutral-300: color-mix(in srgb, var(--cf-text) 28%, var(--cf-bg));
            --cf-neutral-200: color-mix(in srgb, var(--cf-text) 16%, var(--cf-bg));
            --cf-neutral-100: color-mix(in srgb, var(--cf-text) 9%, var(--cf-bg));
            --cf-neutral-50: color-mix(in srgb, var(--cf-text) 5%, var(--cf-bg));
        }

        /* ── Hide breadcrumb, topbar and global footer on PDP ── */
        .blog-breadcrumb { display: none !important; }
        .bc_topbar { display: none !important; }
        .bc_footer { display: none !important; }

        /* Header: styled globally by minisite-cards.css (homogeneous across
           home / listings / PDP / checkout) — no PDP-specific overrides */
        .nc-ListingExperiencesDetailPage { padding-top: 8px; }

        /* ── Bottom bar ── */
        .bc-bottombar {
            background: var(--bc-footer-bg, linear-gradient(90deg, #111827 0%, #1e2f4a 100%));
            border-top: 1px solid rgba(255,255,255,.07);
            color: var(--bc-footer-text, #8a9dc0);
            font-size: 11.5px;
            padding: 11px 0;
            position: relative;
            z-index: 10;
        }
        .bc-bottombar-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
        .bc-bottombar-left { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
        .bc-bottombar-text { color: var(--bc-footer-text, #8a9dc0); }
        .bc-bottombar-text a { color: #6ec6e6; text-decoration: none; }
        .bc-bottombar-text a:hover { color: #fff; }
        .bc-bottombar-sep { width: 1px; height: 12px; background: rgba(255,255,255,.18); display: inline-block; flex-shrink: 0; }
        .bc-bottombar-copy { color: #596a85; white-space: nowrap; }
        .bc-bottombar-copy a { color: var(--bc-footer-text, #8a9dc0); text-decoration: none; }
        .bc-bottombar-copy a:hover { color: #fff; }
        .bc-bb-items { display: inline-flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
        .bc-bb-items li { padding: 0 10px; display: inline-block; border-left: 1px solid rgba(255,255,255,.1); }
        .bc-bb-items li:first-child { border-left: none; }
        .bc-bb-items li a { color: var(--bc-footer-text, #8a9dc0); font-size: 11.5px; text-decoration: none; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
        .bc-bb-items li a:hover { color: #fff; }
        @media (max-width: 600px) {
            .bc-bottombar-inner { flex-direction: column; align-items: flex-start; }
            .bc-bottombar-right { width: 100%; }
            .bc-bb-items li:first-child { border-left: none; padding-left: 0; }
        }

        /* ── Base ── */
        .nc-ListingExperiencesDetailPage {
            font-family: Poppins, system-ui, -apple-system, sans-serif;
            color: var(--cf-text);
            background: var(--cf-bg);
        }
        .nc-ListingExperiencesDetailPage *,
        .nc-ListingExperiencesDetailPage *::before,
        .nc-ListingExperiencesDetailPage *::after {
            box-sizing: border-box;
        }
        .nc-ListingExperiencesDetailPage .container {
            max-width: 1120px;
        }

        /* ── listingSection__wrap — Chisfis sections ── */
        .listingSection__wrap {
            width: 100%;
            display: flex;
            flex-direction: column;
            border-bottom: 1px solid var(--cf-neutral-200);
            gap: 24px;
            padding: 0 0 40px;
        }
        @media (min-width: 640px) {
            .listingSection__wrap {
                border-radius: 16px;
                border: 1px solid var(--cf-neutral-200);
                padding: 16px;
                gap: 32px;
            }
        }
        @media (min-width: 1280px) {
            .listingSection__wrap {
                padding: 32px;
            }
        }

        /* ── listingSectionSidebar__wrap ── */
        .listingSectionSidebar__wrap {
            width: 100%;
            display: flex;
            flex-direction: column;
            border-radius: 16px;
            border: 1px solid var(--cf-neutral-200);
            gap: 24px;
            padding: 8px;
        }
        @media (min-width: 640px) {
            .listingSectionSidebar__wrap { padding: 16px; }
        }
        .bc-shadow-xl {
            box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
        }

        /* ── Gallery — 4 col grid ── */
        .bc-gallery-header {
            padding: 0 24px;
            max-width: 1120px;
            margin: 0 auto;
        }
        .bc-photo-grid {
            position: relative;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(3, 1fr);
            gap: 8px;
            border-radius: 12px;
            overflow: hidden;
            max-height: 500px;
        }
        .bc-photo-grid .photo-main {
            grid-column: 1 / 4;
            grid-row: 1 / 4;
        }
        .bc-photo-grid .photo-item {
            position: relative;
            overflow: hidden;
            border-radius: 6px;
            cursor: pointer;
            background: var(--cf-neutral-100);
        }
        .bc-photo-grid .photo-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        .bc-photo-grid .photo-overlay {
            position: absolute;
            inset: 0;
            background: rgba(17,24,39,0.2);
            opacity: 0;
            transition: opacity 0.3s;
            cursor: pointer;
        }
        .bc-photo-grid .photo-item:hover .photo-overlay {
            opacity: 1;
        }
        .bc-show-all-btn {
            position: absolute;
            left: 12px;
            bottom: 12px;
            display: none;
            align-items: center;
            gap: 8px;
            padding: 8px 16px;
            border-radius: 12px;
            background: var(--cf-neutral-100);
            color: var(--cf-neutral-500);
            font-size: 14px;
            font-weight: 500;
            border: none;
            cursor: pointer;
            z-index: 5;
        }
        .bc-show-all-btn:hover {
            background: var(--cf-neutral-200);
        }
        .bc-show-all-btn .btn-text {
            color: var(--cf-neutral-800);
        }
        @media (min-width: 768px) {
            .bc-show-all-btn { display: flex; }
        }

        /* Single banner fallback */
        .bc-banner-single {
            max-width: 1120px;
            margin: 0 auto;
            padding: 0 24px;
        }
        .bc-banner-single .banner-img {
            width: 100%;
            height: 460px;
            object-fit: cover;
            border-radius: 12px;
            display: block;
        }

        /* Video button */
        .bc-video-btn {
            position: absolute;
            top: 16px;
            left: 16px;
            z-index: 5;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: rgba(17,24,39,0.6);
            color: #fff;
            border: none;
            border-radius: 12px;
            padding: 8px 14px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            text-decoration: none;
            transition: background 0.2s;
        }
        .bc-video-btn:hover { background: rgba(17,24,39,0.8); color: #fff; text-decoration: none; }

        /* ── Main Layout — Chisfis flex ── */
        .bc-detail-main {
            position: relative;
            z-index: 10;
            margin-top: 44px;
            display: flex;
            flex-direction: column;
        }
        @media (min-width: 1024px) {
            .bc-detail-main {
                flex-direction: row;
            }
            .bc-detail-content {
                width: 60%;
                padding-right: 40px;
            }
            .bc-detail-sidebar {
                flex-grow: 1;
            }
        }
        @media (min-width: 1280px) {
            .bc-detail-content {
                width: 66.6%;
            }
        }
        .bc-detail-content > * + * {
            margin-top: 32px;
        }
        @media (min-width: 1024px) {
            .bc-detail-content > * + * {
                margin-top: 40px;
            }
        }
        .bc-sidebar-sticky {
            position: sticky;
            top: 112px;
        }

        /* ── Section 1: Badge + Title + Rating + Host ── */
        .bc-badge-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .bc-badge {
            display: inline-flex;
            align-items: center;
            padding: 4px 12px;
            border-radius: 9999px;
            font-size: 13px;
            font-weight: 500;
            background: var(--cf-secondary-light);
            color: var(--cf-secondary-hover);
        }
        .bc-like-save-btns {
            display: flex;
            gap: 8px;
        }
        .bc-like-save-btns button {
            display: flex;
            align-items: center;
            gap: 4px;
            padding: 6px 12px;
            border-radius: 8px;
            border: none;
            background: transparent;
            font-size: 13px;
            font-weight: 500;
            color: var(--cf-neutral-700);
            cursor: pointer;
            transition: background 0.2s;
        }
        .bc-like-save-btns button:hover {
            background: var(--cf-neutral-100);
        }
        .bc-title {
            font-size: 24px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            letter-spacing: -0.02em;
            line-height: 1.2;
            margin: 0;
        }
        @media (min-width: 640px) { .bc-title { font-size: 30px; } }
        @media (min-width: 1024px) { .bc-title { font-size: 36px; } }

        .bc-meta {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 4px;
            font-size: 14px;
            color: var(--cf-neutral-500);
        }
        .bc-meta .meta-star {
            color: rgb(249, 115, 22);
            font-size: 16px;
        }
        .bc-meta .meta-score {
            font-weight: 500;
            color: var(--cf-neutral-900);
        }
        .bc-meta .meta-sep {
            margin: 0 4px;
        }
        .bc-meta a {
            color: var(--cf-neutral-500);
            text-decoration: underline;
        }
        .bc-meta a:hover {
            color: var(--cf-neutral-900);
        }

        .bc-host-inline {
            display: flex;
            align-items: center;
        }
        .bc-host-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-size: cover;
            background-position: center;
            flex-shrink: 0;
            position: relative;
        }
        .bc-host-avatar .verified-check {
            position: absolute;
            top: -2px;
            right: -2px;
            width: 16px;
            height: 16px;
        }
        .bc-host-text {
            margin-left: 10px;
            font-size: 14px;
            color: var(--cf-neutral-500);
        }
        .bc-host-text a {
            color: var(--cf-neutral-900);
            font-weight: 500;
            text-decoration: none;
        }
        .bc-host-text a:hover {
            text-decoration: underline;
        }

        .bc-separator-full {
            width: 100%;
            border-bottom: 1px solid var(--cf-neutral-200);
        }

        .bc-features-inline {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 32px;
            font-size: 14px;
            color: var(--cf-neutral-700);
        }
        @media (min-width: 1280px) {
            .bc-features-inline { gap: 48px; justify-content: flex-start; }
        }
        .bc-feature-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
            text-align: center;
        }
        @media (min-width: 640px) {
            .bc-feature-item {
                flex-direction: row;
                gap: 12px;
                text-align: left;
            }
        }
        .bc-feature-item i {
            font-size: 24px;
        }

        /* ── Separator short — Chisfis signature ── */
        .bc-sep-short {
            width: 56px;
            border-bottom: 2px solid var(--cf-neutral-200);
        }

        /* ── Description / Read more ── */
        .bc-description {
            font-size: 16px;
            line-height: 1.75;
            color: var(--cf-neutral-600);
        }
        .bc-description p {
            margin-bottom: 16px;
        }
        .bc-read-more-wrap {
            position: relative;
        }
        .bc-read-more-wrap.is-truncated .bc-read-more-content {
            max-height: 180px;
            overflow: hidden;
            position: relative;
        }
        .bc-read-more-wrap.is-truncated .bc-read-more-content::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 48px;
            background: linear-gradient(transparent, var(--bc-background));
            pointer-events: none;
        }
        .bc-read-more-btn {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-size: 16px;
            font-weight: 500;
            color: var(--cf-neutral-900);
            background: none;
            border: none;
            cursor: pointer;
            padding: 0;
            text-decoration: underline;
        }
        .bc-read-more-btn:hover {
            color: var(--cf-primary);
        }

        /* ── Include/Exclude grid ── */
        .bc-include-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 12px;
            font-size: 14px;
            color: var(--cf-neutral-700);
        }
        @media (min-width: 1024px) {
            .bc-include-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
        }
        .bc-include-item {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .bc-include-item .icon-include {
            color: rgb(20, 184, 166);
            font-size: 20px;
            flex-shrink: 0;
        }
        .bc-include-item .icon-exclude {
            color: var(--cf-neutral-400);
            font-size: 20px;
            flex-shrink: 0;
        }

        /* ── Itinerary ── */
        /* ── Itinerary — Premium collapsible steps ── */
        .bc-itinerary-list {
            display: flex;
            flex-direction: column;
            gap: 0;
            position: relative;
        }
        /* Vertical connector line */
        .bc-itinerary-list::before {
            content: '';
            position: absolute;
            left: 19px;
            top: 20px;
            bottom: 20px;
            width: 2px;
            background: var(--cf-neutral-200);
        }
        .bc-itinerary-item {
            display: flex;
            gap: 16px;
            position: relative;
            cursor: pointer;
        }
        /* Step number indicator */
        .bc-itinerary-step {
            flex-shrink: 0;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--cf-neutral-50);
            border: 2px solid var(--cf-neutral-200);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            font-weight: 700;
            color: var(--cf-neutral-500);
            position: relative;
            z-index: 2;
            transition: all 0.3s ease;
        }
        .bc-itinerary-item.open .bc-itinerary-step,
        .bc-itinerary-item:hover .bc-itinerary-step {
            background: var(--cf-primary);
            border-color: var(--cf-primary);
            color: #fff;
            box-shadow: 0 2px 12px color-mix(in srgb, var(--cf-primary) 30%, transparent);
        }
        /* Header row */
        .bc-itinerary-header {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: space-between;
            min-height: 40px;
            padding: 12px 0;
        }
        .bc-itinerary-header h4 {
            font-size: 16px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            margin: 0;
            flex: 1;
            transition: color 0.2s;
        }
        .bc-itinerary-item:hover .bc-itinerary-header h4 {
            color: var(--cf-primary);
        }
        .bc-itinerary-header .desc-inline {
            font-size: 13px;
            color: var(--cf-neutral-400);
            margin-left: 12px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 160px;
        }
        .bc-itinerary-item.open .bc-itinerary-header .desc-inline {
            display: none;
        }
        .bc-itinerary-chevron {
            flex-shrink: 0;
            width: 20px;
            height: 20px;
            color: var(--cf-neutral-400);
            transition: transform 0.3s ease, color 0.2s;
            margin-left: 8px;
        }
        .bc-itinerary-item.open .bc-itinerary-chevron {
            transform: rotate(180deg);
            color: var(--cf-primary);
        }
        /* Collapsible content */
        .bc-itinerary-detail {
            display: none;
            padding: 0 0 8px 56px;
            animation: itinerarySlideIn 0.25s ease-out;
        }
        .bc-itinerary-item.open .bc-itinerary-detail {
            display: block;
        }
        @keyframes itinerarySlideIn {
            from { opacity: 0; transform: translateY(-6px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .bc-itinerary-detail .desc {
            font-size: 14px;
            color: var(--cf-neutral-500);
            margin: 0 0 8px;
            font-weight: 500;
        }
        .bc-itinerary-detail .content {
            font-size: 14px;
            line-height: 1.7;
            color: var(--cf-neutral-600);
        }
        .bc-itinerary-detail .content p {
            margin-bottom: 8px;
        }
        .bc-itinerary-detail .itinerary-img {
            width: 100%;
            max-width: 320px;
            border-radius: 12px;
            margin-top: 12px;
            object-fit: cover;
            box-shadow: 0 2px 12px rgba(0,0,0,0.08);
        }
        /* Separator between items */
        .bc-itinerary-item + .bc-itinerary-item {
            border-top: 1px solid var(--cf-neutral-100);
        }
        @media (min-width: 1024px) {
            .bc-itinerary-list::before {
                left: 19px;
            }
            .bc-itinerary-header .desc-inline {
                max-width: 280px;
            }
            .bc-itinerary-detail {
                padding-right: 32px;
            }
            .bc-itinerary-detail .itinerary-img {
                max-width: 400px;
            }
        }

        /* ── Attributes (tags) ── */
        .bc-attributes-group + .bc-attributes-group {
            margin-top: 24px;
        }
        .bc-attributes-group h4 {
            font-size: 16px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            margin: 0 0 12px;
        }
        .bc-tag-list {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        .bc-tag {
            background: var(--cf-neutral-100);
            border-radius: 12px;
            padding: 8px 16px;
            font-size: 14px;
            color: var(--cf-neutral-900);
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }
        .bc-tag img {
            width: 16px;
            height: 16px;
        }

        /* ── FAQ — Premium accordion ── */
        .bc-faq-list {
            display: flex;
            flex-direction: column;
            gap: 0;
        }
        .bc-faq-item {
            cursor: pointer;
            border-bottom: 1px solid var(--cf-neutral-100);
            transition: background 0.2s;
        }
        .bc-faq-item:last-child {
            border-bottom: none;
        }
        .bc-faq-item:hover {
            background: var(--cf-neutral-50);
        }
        .bc-faq-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            padding: 18px 4px;
            cursor: pointer;
            user-select: none;
        }
        .bc-faq-header h4 {
            font-size: 16px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            margin: 0;
            flex: 1;
            transition: color 0.2s;
        }
        .bc-faq-item:hover .bc-faq-header h4 {
            color: var(--cf-primary);
        }
        .bc-faq-chevron {
            flex-shrink: 0;
            width: 20px;
            height: 20px;
            color: var(--cf-neutral-400);
            transition: transform 0.3s ease, color 0.2s;
        }
        .bc-faq-item.open .bc-faq-chevron {
            transform: rotate(180deg);
            color: var(--cf-primary);
        }
        .bc-faq-body {
            display: none;
            padding: 0 4px 20px;
            font-size: 14px;
            line-height: 1.8;
            color: var(--cf-neutral-600);
            animation: faqSlideIn 0.25s ease-out;
        }
        .bc-faq-body p {
            margin-bottom: 8px;
        }
        .bc-faq-body p:last-child {
            margin-bottom: 0;
        }
        .bc-faq-item.open .bc-faq-body {
            display: block;
        }
        @keyframes faqSlideIn {
            from { opacity: 0; transform: translateY(-4px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @media (min-width: 1024px) {
            .bc-faq-header { padding: 20px 8px; }
            .bc-faq-body { padding: 0 8px 24px; font-size: 15px; }
        }

        /* ── Host Info Section ── */
        .bc-host-section-avatar {
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background-size: cover;
            background-position: center;
            flex-shrink: 0;
            position: relative;
        }
        .bc-host-section-avatar .verified-badge {
            position: absolute;
            top: -2px;
            right: -2px;
            width: 16px;
            height: 16px;
        }
        .bc-host-section-info {
            display: flex;
            align-items: center;
            gap: 16px;
        }
        .bc-host-section-info .host-name {
            font-size: 20px;
            font-weight: 500;
            color: var(--cf-neutral-900);
            text-decoration: none;
            display: block;
        }
        .bc-host-section-info .host-name:hover {
            text-decoration: underline;
        }
        .bc-host-section-info .host-meta {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 14px;
            color: var(--cf-neutral-500);
            margin-top: 2px;
        }
        .bc-host-detail-list {
            display: flex;
            flex-direction: column;
            gap: 10px;
            font-size: 14px;
            color: var(--cf-neutral-500);
        }
        .bc-host-detail-list .detail-item {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .bc-host-detail-list .detail-item svg,
        .bc-host-detail-list .detail-item i {
            width: 24px;
            height: 24px;
            flex-shrink: 0;
            font-size: 20px;
            color: var(--cf-neutral-500);
        }
        .bc-btn-secondary {
            display: inline-flex;
            align-items: center;
            padding: 10px 20px;
            border-radius: 12px;
            border: 1px solid var(--cf-neutral-700);
            background: transparent;
            color: var(--cf-neutral-700);
            font-size: 14px;
            font-weight: 600;
            text-decoration: none;
            cursor: pointer;
            transition: background 0.2s;
        }
        .bc-btn-secondary:hover {
            background: var(--cf-neutral-50);
            color: var(--cf-neutral-900);
            text-decoration: none;
        }

        /* ── Location map ── */
        .bc-map-wrap {
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
        }
        .bc-map-wrap #map_content {
            height: 320px;
            width: 100%;
        }
        .bc-location-address {
            display: flex;
            align-items: center;
            gap: 4px;
            margin-top: 8px;
            font-size: 14px;
            color: var(--cf-neutral-500);
        }

        /* ── Button primary ── */
        .bc-btn-primary {
            background: var(--cf-primary-hover);
            color: #fff;
            border: none;
            border-radius: 16px;
            padding: 12px 24px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            width: 100%;
            display: block;
            text-align: center;
            text-decoration: none;
        }
        .bc-btn-primary:hover {
            background: var(--cf-primary-dark);
            transform: translateY(-1px);
            color: #fff;
            text-decoration: none;
        }

        /* ── Sidebar booking overrides ── */
        .bc_single_book_wrap {
            /* sticky is handled by bc-sidebar-sticky parent */
        }
        .bc_single_book {
            border: none;
            border-radius: 0;
            box-shadow: none;
            padding: 0;
            background: transparent;
        }
        .bc_single_book .form-head {
            padding-bottom: 16px;
            margin-bottom: 0;
            border-bottom: none;
        }
        .bc_single_book .price .label {
            display: block;
            font-size: 13px;
            color: var(--cf-neutral-500);
            margin-bottom: 2px;
        }
        .bc_single_book .price .text-lg {
            font-size: 28px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            letter-spacing: -0.02em;
        }
        .bc_single_book .price .onsale {
            color: var(--cf-neutral-400);
            text-decoration: line-through;
            margin-right: 8px;
            font-size: 16px;
        }
        .bc_single_book .form-group {
            border: 1px solid var(--cf-neutral-200);
            border-radius: 24px;
            padding: 14px 16px;
            margin-bottom: 12px;
            background: transparent !important;
            transition: border-color 0.2s;
        }
        .bc_single_book .form-group:hover,
        .bc_single_book .form-group:focus-within {
            border-color: var(--cf-neutral-700);
        }
        .bc_single_book .form-section-total {
            border-top: 1px solid var(--cf-neutral-200);
            margin-top: 16px;
            padding-top: 16px;
        }
        .bc_single_book .form-section-total li {
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 15px;
            color: var(--cf-neutral-600);
            margin-bottom: 8px;
        }
        .bc_single_book .form-section-total .price {
            font-weight: 600;
            color: var(--cf-neutral-900);
        }
        .bc_single_book .submit-group {
            margin-top: 16px;
        }
        .bc_single_book .submit-group .btn {
            width: 100%;
            min-height: 48px;
            border-radius: 16px;
            font-size: 16px;
            font-weight: 600;
            color: #fff;
            background: var(--cf-primary-hover);
            border: none;
            box-shadow: none;
            transition: background 0.2s, transform 0.15s;
            cursor: pointer;
        }
        .bc_single_book .submit-group .btn:hover {
            background: var(--cf-primary-dark);
            transform: translateY(-1px);
        }
        .bc_single_book .nav-enquiry {
            display: flex;
            gap: 0;
            margin-bottom: 16px;
            border: 1px solid var(--cf-neutral-200);
            border-radius: 24px;
            overflow: hidden;
        }
        .bc_single_book .nav-enquiry .enquiry-item {
            flex: 1;
            text-align: center;
            padding: 10px;
            font-size: 14px;
            font-weight: 600;
            color: var(--cf-neutral-500);
            cursor: pointer;
            transition: background 0.2s, color 0.2s;
        }
        .bc_single_book .nav-enquiry .enquiry-item.active {
            background: var(--cf-primary);
            color: #fff;
        }
        .bc_single_book .form-send-enquiry .btn {
            width: 100%;
            min-height: 48px;
            border-radius: 16px;
            font-size: 16px;
            font-weight: 600;
            color: #fff;
            background: var(--cf-primary-hover);
            border: none;
        }
        .bc_single_book .form-send-enquiry .btn:hover {
            background: var(--cf-primary-dark);
        }
        .bc_single_book .tour-sale-box {
            margin-bottom: 12px;
        }
        .bc_single_book .form-group.form-section-group,
        .bc_single_book .form-group.form-group-padding {
            padding: 18px 16px;
        }

        /* ── Booking form mobile refinements ── */
        @media (max-width: 767px) {
            .bc_single_book .form-head {
                padding-bottom: 12px;
                margin-bottom: 4px;
            }
            .bc_single_book .price .text-lg {
                font-size: 24px;
            }
            .bc_single_book .price .onsale {
                font-size: 14px;
            }
            .bc_single_book .form-group {
                padding: 12px 14px;
                margin-bottom: 10px;
                border-radius: 16px;
            }
            .bc_single_book .nav-enquiry {
                margin-bottom: 12px;
                border-radius: 16px;
            }
            .bc_single_book .nav-enquiry .enquiry-item {
                padding: 8px;
                font-size: 13px;
            }
            .bc_single_book .form-section-total {
                margin-top: 12px;
                padding-top: 12px;
            }
            .bc_single_book .form-section-total li {
                font-size: 14px;
                margin-bottom: 6px;
            }
            .bc_single_book .submit-group {
                margin-top: 12px;
            }
            .bc_single_book .submit-group .btn {
                min-height: 44px;
                font-size: 15px;
                border-radius: 14px;
            }
            .bc_single_book .tour-sale-box {
                margin-bottom: 8px;
            }
        }

        .bc-no-charge {
            text-align: center;
            font-size: 14px;
            color: var(--cf-neutral-500);
            margin-top: 12px;
        }

        /* ── Vendor box sidebar ── */
        .bc-vendor-box {
            border: 1px solid var(--cf-neutral-200);
            border-radius: 16px;
            padding: 20px;
            margin-top: 20px;
            background: #fff;
        }
        .bc-vendor-box .media { display: flex; align-items: center; gap: 12px; }
        .bc-vendor-box .avatar-cover {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            display: block;
            background-size: cover;
            background-position: center;
            flex-shrink: 0;
        }
        .bc-vendor-box .media-heading {
            font-size: 16px;
            font-weight: 600;
            margin-bottom: 2px;
            color: var(--cf-neutral-900);
        }
        .bc-vendor-box .media-heading a { color: var(--cf-neutral-900); text-decoration: none; }
        .bc-vendor-box .media-heading a:hover { text-decoration: underline; }
        .bc-vendor-box .media-heading img { width: 16px; height: 16px; vertical-align: middle; margin-left: 4px; }
        .bc-vendor-box p { font-size: 13px; color: var(--cf-neutral-500); margin: 0; }
        .bc-vendor-box .bc_start_chat {
            width: 100%;
            min-height: 40px;
            border-radius: 12px;
            font-weight: 600;
            font-size: 14px;
            border: 1px solid var(--cf-neutral-700);
            background: #fff;
            color: var(--cf-neutral-700);
            margin-top: 12px;
            cursor: pointer;
            transition: background 0.2s;
            display: block;
            text-align: center;
            line-height: 40px;
            text-decoration: none;
        }
        .bc-vendor-box .bc_start_chat:hover { background: var(--cf-neutral-50); text-decoration: none; color: var(--cf-neutral-900); }

        /* Open hours sidebar */
        .bc-open-hours {
            border: 1px solid var(--cf-neutral-200);
            border-radius: 16px;
            padding: 20px;
            margin-top: 16px;
        }
        .bc-open-hours .open-hour-item {
            display: flex;
            justify-content: space-between;
            padding: 6px 0;
            font-size: 14px;
            color: var(--cf-neutral-600);
        }
        .bc-open-hours .open-hour-item.current {
            font-weight: 600;
            color: var(--cf-neutral-900);
        }

        /* ── Reviews overrides ── */
        /* ── Reviews — Premium redesign ── */

        /* Summary: score + bars side by side */
        .bc-review-summary {
            display: flex;
            align-items: flex-start;
            gap: 32px;
            background: var(--cf-neutral-50);
            border-radius: 16px;
            padding: 24px;
            border: 1px solid var(--cf-neutral-100);
        }
        .bc-review-score-compact {
            display: flex;
            align-items: center;
            gap: 16px;
            flex-shrink: 0;
        }
        .bc-score-number {
            line-height: 1;
        }
        .bc-score-number .score {
            font-size: 44px;
            font-weight: 700;
            color: var(--cf-neutral-900);
            letter-spacing: -0.03em;
        }
        .bc-score-number .max {
            font-size: 18px;
            font-weight: 400;
            color: var(--cf-neutral-400);
        }
        .bc-score-meta .bc-score-label {
            font-size: 15px;
            font-weight: 600;
            color: var(--cf-primary);
        }
        .bc-score-meta .bc-score-count {
            font-size: 12px;
            color: var(--cf-neutral-500);
            margin-top: 2px;
        }
        .bc-review-bars {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;
            min-width: 0;
        }
        .bc-bar-item {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .bc-bar-label {
            font-size: 13px;
            color: var(--cf-neutral-600);
            min-width: 72px;
            flex-shrink: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .bc-bar-track {
            flex: 1;
            height: 5px;
            background: var(--cf-neutral-200);
            border-radius: 999px;
            overflow: hidden;
        }
        .bc-bar-fill {
            height: 100%;
            border-radius: 999px;
            background: var(--cf-primary);
            transition: width 0.6s ease;
        }
        .bc-bar-value {
            font-size: 13px;
            font-weight: 600;
            color: var(--cf-neutral-700);
            min-width: 20px;
            text-align: right;
        }

        /* Review list */
        .bc-review-list {
            display: flex;
            flex-direction: column;
            gap: 0;
        }
        .bc-review-card {
            padding: 20px 0;
            border-bottom: 1px solid var(--cf-neutral-100);
        }
        .bc-review-card:last-child {
            border-bottom: none;
        }
        .bc-review-card-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }
        .bc-reviewer {
            display: flex;
            align-items: center;
            gap: 10px;
            min-width: 0;
        }
        .bc-reviewer-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            object-fit: cover;
            flex-shrink: 0;
        }
        .bc-reviewer-initial {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--cf-primary);
            color: #fff;
            font-size: 16px;
            font-weight: 600;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }
        .bc-reviewer-info {
            display: flex;
            flex-direction: column;
            min-width: 0;
        }
        .bc-reviewer-name {
            font-size: 14px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            line-height: 1.3;
        }
        .bc-reviewer-date {
            font-size: 12px;
            color: var(--cf-neutral-400);
        }
        .bc-review-stars {
            display: flex;
            gap: 1px;
            flex-shrink: 0;
        }
        .bc-star {
            font-size: 13px;
            color: var(--cf-neutral-300);
        }
        .bc-star.filled {
            color: rgb(249, 115, 22);
        }
        .bc-review-title {
            font-size: 15px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            margin: 10px 0 4px;
        }
        .bc-review-text {
            font-size: 14px;
            line-height: 1.65;
            color: var(--cf-neutral-600);
            margin: 0;
        }
        .bc-review-actions {
            margin-top: 8px;
            display: flex;
            justify-content: flex-end;
        }
        .bc-review-edit-btn {
            font-size: 13px;
            color: var(--cf-neutral-500);
            background: var(--cf-neutral-100);
            border: none;
            border-radius: 8px;
            padding: 4px 12px;
            cursor: pointer;
            transition: background 0.2s;
        }
        .bc-review-edit-btn:hover {
            background: var(--cf-neutral-200);
        }
        .bc-review-photos {
            display: flex;
            gap: 8px;
            margin-top: 10px;
            flex-wrap: wrap;
        }
        .bc-review-photo {
            width: 64px;
            height: 64px;
            border-radius: 8px;
            background-size: cover;
            background-position: center;
            cursor: pointer;
            transition: opacity 0.2s;
        }
        .bc-review-photo:hover { opacity: 0.8; }

        /* Pagination */
        .bc-review-pag {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
            margin-top: 16px;
        }
        .bc-review-pag .bc-pagination {
            display: flex;
            gap: 4px;
        }
        .bc-review-pag .bc-pagination .page-link {
            border-radius: 8px;
            border: 1px solid var(--cf-neutral-200);
            padding: 6px 12px;
            font-size: 13px;
            color: var(--cf-neutral-700);
            transition: all 0.2s;
        }
        .bc-review-pag .bc-pagination .page-item.active .page-link {
            background: var(--cf-primary);
            border-color: var(--cf-primary);
            color: #fff;
        }
        .bc-review-pag-text {
            font-size: 12px;
            color: var(--cf-neutral-500);
        }

        /* Write review form */
        .bc-review-form {
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid var(--cf-neutral-200);
        }
        .bc-review-form-title {
            font-size: 17px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            margin: 0 0 14px;
        }
        .bc-review-input {
            width: 100%;
            border: 1px solid var(--cf-neutral-200);
            border-radius: 14px;
            padding: 11px 16px;
            font-size: 14px;
            font-family: inherit;
            color: var(--cf-neutral-700);
            background: #fff;
            transition: border-color 0.2s;
            margin-bottom: 10px;
            outline: none;
        }
        .bc-review-input:focus {
            border-color: var(--cf-primary);
            box-shadow: 0 0 0 2px color-mix(in srgb, var(--cf-primary) 12%, transparent);
        }
        .bc-review-textarea {
            min-height: 88px;
            resize: vertical;
        }
        .bc-review-form-row {
            display: flex;
            gap: 16px;
        }
        .bc-review-form-textarea {
            flex: 1;
            min-width: 0;
        }
        .bc-review-form-ratings {
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding-top: 4px;
        }
        .bc-rate-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
        }
        .bc-rate-row label {
            font-size: 13px;
            color: var(--cf-neutral-600);
            margin: 0;
            white-space: nowrap;
        }
        .bc-rate-row .rates {
            display: flex;
            gap: 3px;
        }
        .bc-rate-row .rates i {
            font-size: 16px;
            cursor: pointer;
            color: var(--cf-neutral-300);
            transition: color 0.15s;
        }
        .bc-rate-row .rates i.fa-star {
            color: rgb(249, 115, 22);
        }
        .bc-review-submit {
            background: var(--cf-primary-hover);
            color: #fff;
            border: none;
            border-radius: 14px;
            padding: 11px 28px;
            font-size: 15px;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.2s, transform 0.15s;
            margin-top: 4px;
        }
        .bc-review-submit:hover {
            background: var(--cf-primary-dark);
            transform: translateY(-1px);
        }
        .bc-review-upload {
            margin: 12px 0;
            font-size: 13px;
            color: var(--cf-neutral-600);
        }
        .bc-review-upload-area {
            display: flex;
            gap: 12px;
            align-items: flex-start;
            margin-top: 8px;
        }
        .bc-review-upload .review_upload_btn {
            border: 2px dashed var(--cf-neutral-200);
            border-radius: 10px;
            padding: 16px;
            text-align: center;
            cursor: pointer;
            transition: border-color 0.2s;
            flex-shrink: 0;
        }
        .bc-review-upload .review_upload_btn:hover {
            border-color: var(--cf-primary);
        }
        .bc-review-login {
            text-align: center;
            padding: 16px;
            font-size: 14px;
            color: var(--cf-neutral-500);
            background: var(--cf-neutral-50);
            border-radius: 12px;
            margin-top: 12px;
        }
        .bc-review-login a {
            color: var(--cf-primary);
            font-weight: 600;
        }

        /* Responsive: stack summary on mobile */
        @media (max-width: 767px) {
            .bc-review-summary {
                flex-direction: column;
                gap: 20px;
                padding: 20px 16px;
                border-radius: 12px;
            }
            .bc-score-number .score { font-size: 36px; }
            .bc-review-card { padding: 16px 0; }
            .bc-reviewer-avatar, .bc-reviewer-initial { width: 36px; height: 36px; }
            .bc-reviewer-initial { font-size: 14px; }
            .bc-reviewer-name { font-size: 13px; }
            .bc-review-title { font-size: 14px; margin: 8px 0 4px; }
            .bc-review-text { font-size: 14px; }
            .bc-review-photo { width: 56px; height: 56px; }
            .bc-review-form-row { flex-direction: column; gap: 10px; }
            .bc-review-form-title { font-size: 16px; }
        }
        @media (min-width: 768px) and (max-width: 1023px) {
            .bc-review-summary { gap: 24px; }
            .bc-bar-label { min-width: 64px; }
        }

        /* ── Related tours ── */
        /* ── Related tours section ── */
        .bc-list-tour-related {
            padding-top: 48px;
            border-top: 1px solid var(--cf-neutral-200);
            margin-top: 48px;
        }
        .bc-list-tour-related h2 {
            font-size: 24px;
            font-weight: 600;
            letter-spacing: -0.02em;
            color: var(--cf-neutral-900);
            margin-bottom: 24px;
        }
        .bc-list-tour-related .row { row-gap: 24px; }

        /* ── Tour card overrides — premium style ── */
        .nc-ListingExperiencesDetailPage .item-tour {
            border: none;
            border-radius: 16px;
            overflow: hidden;
            background: var(--cf-bg, #fff);
            box-shadow: none;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .nc-ListingExperiencesDetailPage .item-tour:hover {
            transform: translateY(-4px);
        }

        /* Thumbnail */
        .nc-ListingExperiencesDetailPage .item-tour .thumb-image {
            position: relative;
            border-radius: 16px;
            overflow: hidden;
            aspect-ratio: 4 / 3;
        }
        .nc-ListingExperiencesDetailPage .item-tour .thumb-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform 0.3s ease;
        }
        .nc-ListingExperiencesDetailPage .item-tour:hover .thumb-image img {
            transform: scale(1.04);
        }

        /* Sale badge — override rotated ribbon style */
        .nc-ListingExperiencesDetailPage .item-tour .sale_info {
            position: absolute !important;
            top: 12px !important;
            left: 12px !important;
            right: auto !important;
            background: var(--cf-primary) !important;
            color: #fff !important;
            font-size: 12px !important;
            font-weight: 700 !important;
            padding: 4px 10px !important;
            border-radius: 8px !important;
            z-index: 3 !important;
            line-height: 1.3 !important;
            width: auto !important;
            height: auto !important;
            transform: none !important;
            text-align: center !important;
        }

        /* Featured badge */
        .nc-ListingExperiencesDetailPage .item-tour .featured {
            position: absolute !important;
            top: 12px !important;
            right: 12px !important;
            left: auto !important;
            background: var(--cf-secondary, var(--cf-primary)) !important;
            color: #fff !important;
            font-size: 11px !important;
            font-weight: 600 !important;
            padding: 4px 10px !important;
            border-radius: 8px !important;
            z-index: 4 !important;
            text-transform: uppercase !important;
            letter-spacing: 0.03em !important;
            width: auto !important;
            height: auto !important;
            line-height: 1.3 !important;
        }

        /* Wishlist heart */
        .nc-ListingExperiencesDetailPage .item-tour .service-wishlist {
            position: absolute;
            top: 12px;
            right: 12px;
            z-index: 3;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: rgba(255,255,255,0.85);
            backdrop-filter: blur(4px);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: background 0.2s;
            border: none;
            box-shadow: 0 1px 4px rgba(0,0,0,0.1);
        }
        .nc-ListingExperiencesDetailPage .item-tour .service-wishlist:hover {
            background: #fff;
        }
        .nc-ListingExperiencesDetailPage .item-tour .service-wishlist i {
            font-size: 14px;
            color: var(--cf-neutral-500);
            transition: color 0.2s;
        }
        .nc-ListingExperiencesDetailPage .item-tour .service-wishlist.active i,
        .nc-ListingExperiencesDetailPage .item-tour .service-wishlist:hover i {
            color: #ef4444;
        }
        /* When featured badge exists, move wishlist to bottom-right */
        .nc-ListingExperiencesDetailPage .item-tour .featured ~ .thumb-image .service-wishlist {
            top: auto !important;
            bottom: 12px !important;
            right: 12px !important;
            left: auto !important;
        }

        /* Location */
        .nc-ListingExperiencesDetailPage .item-tour .location {
            font-size: 12px;
            color: var(--cf-neutral-500);
            margin-top: 12px;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .location i {
            font-size: 13px;
            color: var(--cf-neutral-400);
        }

        /* Title */
        .nc-ListingExperiencesDetailPage .item-tour .item-title {
            margin-top: 4px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .item-title a {
            font-size: 15px;
            font-weight: 600;
            color: var(--cf-neutral-900);
            text-decoration: none;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            line-height: 1.35;
        }
        .nc-ListingExperiencesDetailPage .item-tour .item-title a:hover {
            color: var(--cf-primary);
        }

        /* Stars / Review */
        .nc-ListingExperiencesDetailPage .item-tour .service-review {
            display: flex;
            align-items: center;
            gap: 6px;
            margin-top: 6px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .list-star {
            position: relative;
            display: inline-flex;
        }
        .nc-ListingExperiencesDetailPage .item-tour .booking-item-rating-stars {
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            gap: 1px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .booking-item-rating-stars li i {
            font-size: 12px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .booking-item-rating-stars li i.fa-star {
            color: rgb(249, 115, 22);
        }
        .nc-ListingExperiencesDetailPage .item-tour .booking-item-rating-stars li i.fa-star-o {
            color: var(--cf-neutral-300);
        }
        .nc-ListingExperiencesDetailPage .item-tour .service-review .review {
            font-size: 12px;
            color: var(--cf-neutral-500);
        }

        /* Info row: duration + price */
        .nc-ListingExperiencesDetailPage .item-tour .info {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px solid var(--cf-neutral-100);
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .duration {
            font-size: 13px;
            color: var(--cf-neutral-500);
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .duration i {
            font-size: 15px;
            color: var(--cf-neutral-400);
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .g-price {
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .prefix {
            display: flex;
            align-items: center;
            gap: 3px;
            font-size: 12px;
            color: var(--cf-neutral-400);
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .prefix i {
            font-size: 13px;
            color: var(--cf-primary);
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .price {
            display: flex;
            align-items: baseline;
            gap: 6px;
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .price .onsale {
            font-size: 13px;
            color: var(--cf-neutral-400);
            text-decoration: line-through;
        }
        .nc-ListingExperiencesDetailPage .item-tour .info .price .text-price {
            font-size: 18px;
            font-weight: 700;
            color: var(--cf-neutral-900);
        }

        /* ── Mobile Footer Sticky — Chisfis ── */
        .bc-mobile-footer {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 8px 0;
            background: #fff;
            border-top: 1px solid var(--cf-neutral-200);
            z-index: 40;
            display: none;
        }
        .bc-mobile-footer .container {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .bc-mobile-footer .footer-price {
            display: flex;
            flex-direction: column;
        }
        .bc-mobile-footer .footer-price .price-main {
            font-size: 20px;
            font-weight: 600;
            color: var(--cf-neutral-900);
        }
        .bc-mobile-footer .footer-price .price-main .per-unit {
            font-size: 14px;
            font-weight: 400;
            color: var(--cf-neutral-500);
            margin-left: 4px;
        }
        .bc-mobile-footer .footer-price .price-old {
            font-size: 14px;
            color: var(--cf-neutral-400);
            text-decoration: line-through;
        }
        .bc-mobile-footer .footer-price .footer-rating {
            font-size: 13px;
            color: var(--cf-neutral-500);
        }
        .bc-mobile-footer .footer-price .footer-rating .star {
            color: rgb(249, 115, 22);
        }
        .bc-mobile-footer .btn-reserve-mobile {
            padding: 12px 28px;
            border-radius: 16px;
            background: var(--cf-primary-hover);
            color: #fff;
            border: none;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.2s;
            white-space: nowrap;
            text-decoration: none;
        }
        .bc-mobile-footer .btn-reserve-mobile:hover {
            background: var(--cf-primary-dark);
            color: #fff;
            text-decoration: none;
        }

        /* ── Mobile sidebar as modal ── */
        /* ── Mobile sidebar as modal — two real layers ── */
        .bc-sidebar-backdrop,
        .bc-sidebar-panel {
            display: none;
        }
        @media (max-width: 767px) {
            .bc-detail-sidebar {
                position: fixed !important;
                inset: 0 !important;
                z-index: 99999 !important;
                display: none;
                overflow: hidden;
            }
            .bc-detail-sidebar.show {
                display: block !important;
            }

            /* Break parent stacking context so fixed children escape */
            body.bc-modal-open .bc-detail-main {
                z-index: auto !important;
            }

            /* Hide mobile sticky footer when modal is open */
            body.bc-modal-open .bc-mobile-footer {
                display: none !important;
                visibility: hidden !important;
                pointer-events: none !important;
            }

            /* Layer 1: backdrop — full screen, behind everything */
            .bc-detail-sidebar.show .bc-sidebar-backdrop {
                display: block;
                position: fixed;
                inset: 0;
                background: rgba(17, 24, 39, 0.5);
                z-index: 100000;
                cursor: pointer;
            }

            /* Layer 2: panel — always above backdrop */
            .bc-detail-sidebar.show .bc-sidebar-panel {
                display: flex;
                position: fixed;
                inset: 0;
                z-index: 100001;
                align-items: flex-end;
                justify-content: center;
                padding: 24px 0 0;
                pointer-events: none;
                overflow: hidden;
            }

            /* The actual visible card */
            .bc-detail-sidebar.show .bc-sidebar-sticky {
                position: relative;
                top: auto;
                width: 100%;
                max-width: 500px;
                max-height: calc(100vh - 24px);
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                padding: 16px 16px 100px;
                background: #fff;
                border-radius: 24px 24px 0 0;
                box-shadow: 0 -4px 40px rgba(17,24,39,0.18);
                pointer-events: auto;
                isolation: isolate;
            }

            .bc-detail-sidebar.show .listingSectionSidebar__wrap {
                max-width: none;
                margin: 0;
                background: #fff;
                border: 0;
                border-radius: 0;
                box-shadow: none;
                padding: 0;
                gap: 16px;
            }

            .bc-detail-sidebar.show .bc_single_book_wrap {
                display: block !important;
                position: relative !important;
                top: 0 !important;
                margin: 0 !important;
                padding: 0 !important;
                height: auto !important;
                width: 100% !important;
            }

            .bc-detail-sidebar.show .bc_single_book {
                display: block !important;
                position: relative !important;
                border: none !important;
                box-shadow: none !important;
                border-radius: 0 !important;
                background: #fff !important;
                opacity: 1 !important;
            }

            .bc-detail-sidebar.show #bc_tour_book_app {
                display: block !important;
            }

            /* Close button — pinned top-right of the panel */
            .bc-sidebar-close {
                display: flex;
                align-items: center;
                justify-content: center;
                position: sticky;
                top: 0;
                margin-left: auto;
                margin-bottom: 8px;
                width: 36px;
                height: 36px;
                border-radius: 999px;
                background: #fff;
                border: 1px solid var(--cf-neutral-200);
                font-size: 20px;
                color: var(--cf-neutral-700);
                cursor: pointer;
                z-index: 20;
                line-height: 1;
                box-shadow: 0 2px 8px rgba(0,0,0,0.08);
            }

            .bc-detail-sidebar .bc-vendor-box,
            .bc-detail-sidebar .bc-no-charge,
            .bc-detail-sidebar .open-hours-wrapper { display: none !important; }
        }
        @media (min-width: 768px) {
            .bc-detail-sidebar {
                display: block !important;
            }
            .bc-sidebar-backdrop {
                display: none !important;
            }
            .bc-sidebar-panel {
                display: block !important;
            }
            .bc-sidebar-close { display: none !important; }
            .bc-detail-sidebar .bc-vendor-box,
            .bc-detail-sidebar .bc-no-charge,
            .bc-detail-sidebar .open-hours-wrapper { display: block !important; }
        }

        /* ── Responsive — Mobile ── */
        @media (max-width: 767px) {
            /* Gallery */
            .bc-gallery-header { padding: 0; }
            .bc-photo-grid {
                grid-template-columns: 1fr;
                grid-template-rows: auto;
                border-radius: 0;
                max-height: none;
            }
            .bc-photo-grid .photo-main { grid-column: auto; grid-row: auto; }
            .bc-photo-grid .photo-item:nth-child(n+2) { display: none; }
            .bc-photo-grid .photo-item img { height: 60vw; max-height: 320px; }
            .bc-banner-single { padding: 0; }
            .bc-banner-single .banner-img { border-radius: 0; height: 55vw; max-height: 280px; }

            /* Main layout — breathing room */
            .bc-detail-main { margin-top: 32px; }
            .nc-ListingExperiencesDetailPage .container {
                padding-left: 16px;
                padding-right: 16px;
            }

            /* Clear sticky footer — prevent content overlap */
            .nc-ListingExperiencesDetailPage {
                padding-bottom: 100px;
            }
            .bc-list-tour-related {
                margin-bottom: 24px;
            }

            /* Section spacing — consistent vertical rhythm */
            .bc-detail-content > * + * {
                margin-top: 0;
            }
            .listingSection__wrap {
                border-left: 0;
                border-right: 0;
                border-top: 0;
                border-radius: 0;
                padding: 28px 0 28px;
                gap: 20px;
            }
            .listingSection__wrap:first-child {
                padding-top: 0;
            }

            /* Section 1: tighter internal gaps on mobile */
            .listingSection__wrap[style*="gap: 24px"] {
                gap: 16px !important;
            }

            /* Title */
            .nc-ListingExperiencesDetailPage h1,
            .bc-title { font-size: 22px; line-height: 1.25; }

            /* Badge row */
            .bc-badge-row {
                margin-bottom: 4px;
            }
            .bc-badge { font-size: 12px; padding: 3px 10px; }
            .bc-like-save-btns button { padding: 4px 8px; font-size: 12px; }

            /* Meta / rating row */
            .bc-meta { font-size: 13px; gap: 3px; }

            /* Host inline — more breathing room */
            .bc-host-inline { gap: 10px; padding: 6px 0 2px; }
            .bc-host-avatar { width: 36px; height: 36px; }
            .bc-host-text { font-size: 13px; }

            /* Separator */
            .bc-separator-full { margin: 8px 0; }

            /* Features row — breathing room above/below */
            .bc-features-inline {
                gap: 16px;
                flex-wrap: nowrap;
                overflow-x: auto;
                scrollbar-width: none;
                justify-content: flex-start;
                padding: 8px 0 4px;
            }
            .bc-features-inline::-webkit-scrollbar { display: none; }
            .bc-feature-item { flex-shrink: 0; font-size: 13px; }
            .bc-feature-item i { font-size: 20px; }

            /* Section headings */
            .listingSection__wrap h2 {
                font-size: 20px !important;
            }

            /* Sep short */
            .bc-sep-short {
                width: 40px;
            }

            /* Description */
            .bc-description { font-size: 15px; line-height: 1.7; }

            /* Include/Exclude — slightly more air between items */
            .bc-include-grid { gap: 14px; }

            /* Itinerary */
            .bc-itinerary-list::before { left: 15px; }
            .bc-itinerary-step { width: 32px; height: 32px; font-size: 12px; }
            .bc-itinerary-item { gap: 12px; }
            .bc-itinerary-header { padding: 10px 0; }
            .bc-itinerary-header h4 { font-size: 15px; }
            .bc-itinerary-header .desc-inline { display: none; }
            .bc-itinerary-detail { padding-left: 44px; }
            .bc-itinerary-detail .itinerary-img { max-width: 100%; }

            /* FAQ */
            .bc-faq-header { padding: 14px 2px; }
            .bc-faq-header h4 { font-size: 15px; }
            .bc-faq-body { font-size: 14px; line-height: 1.7; padding: 0 2px 16px; }

            /* Map */
            .bc-map-wrap #map_content { height: 240px; }

            /* Related — tighter top to match other section gaps */
            .bc-list-tour-related {
                padding-top: 28px;
                margin-top: 28px;
            }
            .bc-list-tour-related h2 { font-size: 20px; margin-bottom: 16px; }
            .bc-list-tour-related .row {
                flex-wrap: nowrap;
                overflow-x: auto;
                scrollbar-width: none;
                gap: 12px;
                padding-bottom: 8px;
            }
            .bc-list-tour-related .row::-webkit-scrollbar { display: none; }
            .bc-list-tour-related .row > [class*="col"] {
                flex: 0 0 75vw;
                max-width: 75vw;
            }

            /* Footer */
            .bc-mobile-footer { display: flex !important; }
        }
        @media (min-width: 768px) {
            .bc-mobile-footer { display: none !important; }
        }
        @media (min-width: 768px) and (max-width: 991px) {
            .bc-detail-content { width: 55%; padding-right: 24px; }
            .bc-photo-grid { max-height: 380px; }
        }

        /* ── Gallery fotorama hidden ── */
        .bc-fotorama-hidden { display: none; }

        /* ── Global component overrides ── */
        .nc-ListingExperiencesDetailPage .g-overview,
        .nc-ListingExperiencesDetailPage .g-include-exclude,
        .nc-ListingExperiencesDetailPage .g-itinerary,
        .nc-ListingExperiencesDetailPage .g-tour-attributes,
        .nc-ListingExperiencesDetailPage .g-attributes,
        .nc-ListingExperiencesDetailPage .g-faq,
        .nc-ListingExperiencesDetailPage .g-location,
        .nc-ListingExperiencesDetailPage .owner-info.widget-box,
        .nc-ListingExperiencesDetailPage .service-gallery {
            border: none;
            box-shadow: none;
            border-radius: 0;
            padding: 0;
            margin-bottom: 0;
            background: none;
        }

        /* Smooth scroll */
        html { scroll-behavior: smooth; }

/* ── Mapa de la ficha ─────────────────────────────────────────────────────
   Se oculta el crédito de Leaflet/OpenStreetMap que la librería inyecta en la
   esquina. Ojo: los datos de OSM son ODbL y piden atribución visible en algún
   lado del sitio, así que conviene dejarla en el pie o en la página legal. */
.nc-ListingExperiencesDetailPage .leaflet-control-attribution,
.bc-map-wrap .leaflet-control-attribution {
    display: none !important;
}
