        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        :root {
            --primary: #0a0f1f;
            --accent: #f59e0b;
            --accent-dark: #d97706;
            --secondary: #1e293b;
            --text: #0f172a;
            --text-light: #64748b;
            --white: #ffffff;
            --light-bg: #f8fafc;
            --card-shadow: 0 4px 24px rgba(0,0,0,0.07);
            --card-shadow-hover: 0 12px 40px rgba(0,0,0,0.14);
            --radius: 16px;
            --radius-sm: 10px;
        }
        html { scroll-behavior: smooth; overflow-x: hidden; }
        body { font-family: 'Poppins', sans-serif; color: var(--text); background: var(--white); line-height: 1.6; overflow-x: hidden; }

        /* ── NAV ── */
        nav {
            position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
            padding: 18px 32px;
            display: flex; align-items: center; justify-content: space-between;
            transition: all 0.35s ease;
            background: transparent;
        }
        nav.scrolled { background: var(--primary); box-shadow: 0 2px 24px rgba(0,0,0,0.35); padding: 12px 32px; }
        .nav-logo { font-size: 1.45rem; font-weight: 800; color: var(--white); text-decoration: none; letter-spacing: -0.5px; }
        .nav-logo span { color: var(--accent); }
        .nav-links { display: flex; gap: 28px; list-style: none; align-items: center; }
        .nav-links a { color: rgba(255,255,255,0.88); text-decoration: none; font-weight: 500; font-size: 0.88rem; transition: color 0.2s; }
        .nav-links a:hover { color: var(--accent); }
        .lang-dropdown { position: relative; }
        .lang-btn {
            display: flex; align-items: center; gap: 7px;
            background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.28);
            color: white; padding: 6px 12px; border-radius: 8px; cursor: pointer;
            font-family: 'Poppins', sans-serif; font-size: 0.82rem; font-weight: 500;
            transition: background 0.2s; white-space: nowrap;
        }
        .lang-btn:hover { background: rgba(255,255,255,0.2); }
        .lang-btn img { border-radius: 2px; vertical-align: middle; }
        .lang-btn-arrow { font-size: 0.65rem; opacity: 0.7; }
        .lang-menu {
            display: none; position: absolute; top: calc(100% + 8px); right: 0;
            background: #1e293b; border: 1px solid rgba(255,255,255,0.12);
            border-radius: 10px; overflow: hidden; min-width: 140px;
            box-shadow: 0 8px 28px rgba(0,0,0,0.5); z-index: 2000;
        }
        .lang-menu.open { display: block; }
        .lang-option {
            display: flex; align-items: center; gap: 10px;
            padding: 10px 16px; cursor: pointer; color: rgba(255,255,255,0.8);
            font-family: 'Poppins', sans-serif; font-size: 0.85rem; font-weight: 500;
            transition: background 0.15s; border: none; background: none; width: 100%; text-align: left;
        }
        .lang-option:hover { background: rgba(255,255,255,0.08); color: white; }
        .lang-option.active { color: var(--accent); }
        .lang-option img { border-radius: 2px; flex-shrink: 0; }
        .lang-mobile-btns { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
        .lang-mobile-btn {
            display: flex; align-items: center; gap: 8px;
            background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
            color: white; padding: 10px 18px; border-radius: 8px;
            font-family: 'Poppins', sans-serif; font-size: 0.95rem; font-weight: 500; cursor: pointer;
        }
        .lang-mobile-btn.active { background: rgba(245,158,11,0.2); color: var(--accent); border-color: var(--accent); }
        .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; }
        .hamburger span { width: 26px; height: 2px; background: white; border-radius: 2px; transition: all 0.3s; display: block; }
        .mobile-menu {
            display: none; position: fixed; inset: 0; background: var(--primary); z-index: 999;
            flex-direction: column; align-items: center; justify-content: center; gap: 36px;
        }
        .mobile-menu.open { display: flex; }
        .mobile-menu a { color: white; text-decoration: none; font-size: 1.6rem; font-weight: 700; transition: color 0.2s; }
        .mobile-menu a:hover { color: var(--accent); }
        .mobile-close { position: absolute; top: 24px; right: 28px; font-size: 2rem; color: white; cursor: pointer; background: none; border: none; font-family: inherit; line-height: 1; }

        /* ── HERO ── */
        .tour-hero {
            height: 55vh; min-height: 380px;
            position: relative; display: flex; align-items: flex-end;
            overflow: hidden;
        }
        .tour-hero-bg {
            position: absolute; inset: 0;
            background-size: cover; background-position: center;
        }
        .tour-hero-overlay {
            position: absolute; inset: 0;
            background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.72) 100%);
        }
        .tour-hero-content {
            position: relative; z-index: 1;
            width: 100%; padding: 0 40px 44px;
            max-width: 1200px; margin: 0 auto;
        }
        .breadcrumb {
            display: flex; align-items: center; gap: 6px;
            font-size: 0.78rem; color: rgba(255,255,255,0.65);
            margin-bottom: 14px;
        }
        .breadcrumb a { color: rgba(255,255,255,0.65); text-decoration: none; }
        .breadcrumb a:hover { color: var(--accent); }
        .breadcrumb span { color: rgba(255,255,255,0.35); }
        .tour-hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 900; color: white; line-height: 1.1; margin-bottom: 10px; letter-spacing: -0.5px; }
        .tour-hero-tagline { font-size: 1rem; color: rgba(255,255,255,0.78); margin-bottom: 20px; }
        .hero-stats-row { display: flex; gap: 20px; flex-wrap: wrap; }
        .hero-stat {
            display: flex; align-items: center; gap: 6px;
            background: rgba(255,255,255,0.12); backdrop-filter: blur(6px);
            border: 1px solid rgba(255,255,255,0.2);
            padding: 6px 14px; border-radius: 100px;
            font-size: 0.8rem; color: white; font-weight: 500;
        }

        /* ── LAYOUT ── */
        .tour-layout {
            display: grid; grid-template-columns: 2fr 1fr; gap: 36px;
            max-width: 1200px; margin: 0 auto; padding: 44px 24px 80px;
            align-items: start;
        }

        /* ── GALLERY ── */
        /* 📸 Replace with real photos - swap gradient divs for <img> tags */
        .gallery-grid {
            display: grid;
            grid-template-columns: 2fr 1fr;
            grid-template-rows: repeat(3, 127px);
            gap: 10px;
            margin-bottom: 36px;
            border-radius: var(--radius);
            overflow: hidden;
        }
        .gallery-panel {
            position: relative; cursor: pointer; overflow: hidden;
            display: flex; align-items: center; justify-content: center;
            transition: filter 0.3s;
        }
        .gallery-panel:hover { filter: brightness(1.1); }
        .gallery-panel:first-child { grid-column: 1; grid-row: 1 / 4; }
        .gallery-panel-icon { font-size: 2.2rem; opacity: 0.4; pointer-events: none; }
        .gallery-see-all {
            position: absolute; inset: 0; background: rgba(0,0,0,0.45);
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            color: white; font-weight: 700; font-size: 0.88rem; gap: 6px;
        }
        .gallery-see-all span { font-size: 1.5rem; }

        /* ── TABS ── */
        .tabs-nav {
            display: flex; gap: 4px; border-bottom: 2px solid #e2e8f0;
            margin-bottom: 28px; overflow-x: auto;
            scrollbar-width: none; -ms-overflow-style: none;
        }
        .tabs-nav::-webkit-scrollbar { display: none; }
        .tab-btn {
            padding: 10px 20px; border: none; background: none;
            font-family: 'Poppins', sans-serif; font-size: 0.88rem; font-weight: 600;
            color: var(--text-light); cursor: pointer; border-bottom: 3px solid transparent;
            margin-bottom: -2px; white-space: nowrap; transition: all 0.2s;
        }
        .tab-btn:hover { color: var(--text); }
        .tab-btn.active { color: var(--accent-dark); border-bottom-color: var(--accent); }
        .tab-panel { display: none; }
        .tab-panel.active { display: block; }

        /* Overview tab */
        .tour-description p { font-size: 0.95rem; color: var(--text-light); line-height: 1.8; margin-bottom: 16px; }
        .highlights-list { list-style: none; margin: 24px 0; }
        .highlights-list li {
            display: flex; align-items: flex-start; gap: 10px;
            font-size: 0.92rem; padding: 8px 0; border-bottom: 1px solid #f1f5f9;
        }
        .highlights-list li:last-child { border-bottom: none; }
        .highlights-list li::before { content: '★'; color: var(--accent); font-size: 0.9rem; margin-top: 2px; flex-shrink: 0; }
        .badges-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
        .badge {
            padding: 6px 16px; border-radius: 100px; font-size: 0.78rem; font-weight: 600;
            display: flex; align-items: center; gap: 6px;
        }
        .badge-difficulty-easy { background: #dcfce7; color: #16a34a; }
        .badge-difficulty-moderate { background: #fef9c3; color: #a16207; }
        .badge-difficulty-challenging { background: #fee2e2; color: #dc2626; }
        .badge-group { background: #eff6ff; color: #1d4ed8; }

        /* Included tab */
        .included-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
        .included-col h4 { font-size: 0.9rem; font-weight: 700; margin-bottom: 14px; display: flex; align-items: center; gap: 6px; }
        .included-list { list-style: none; }
        .included-list li {
            font-size: 0.88rem; color: var(--text-light); padding: 7px 0;
            border-bottom: 1px solid #f1f5f9; display: flex; align-items: flex-start; gap: 8px;
        }
        .included-list li:last-child { border-bottom: none; }

        /* Info tab */
        .info-card {
            background: var(--light-bg); border-radius: var(--radius-sm); padding: 20px;
            margin-bottom: 18px; border-left: 4px solid var(--accent);
        }
        .info-card h4 { font-size: 0.9rem; font-weight: 700; margin-bottom: 10px; }
        .info-card p, .info-card li { font-size: 0.88rem; color: var(--text-light); line-height: 1.7; }
        .info-card ul { list-style: none; padding: 0; }
        .info-card ul li { padding: 4px 0; }
        .info-card ul li::before { content: '→ '; color: var(--accent); font-weight: 700; }
        .cancel-card { border-left-color: #22c55e; background: #f0fdf4; }
        .cancel-card h4 { color: #16a34a; }

        /* Reviews tab */
        .rating-summary {
            display: flex; align-items: center; gap: 24px;
            padding: 24px; background: var(--light-bg); border-radius: var(--radius); margin-bottom: 24px;
        }
        .rating-big { font-size: 3.5rem; font-weight: 900; color: var(--primary); line-height: 1; }
        .rating-stars { color: var(--accent); font-size: 1.3rem; letter-spacing: 2px; margin-bottom: 4px; }
        .rating-count { font-size: 0.82rem; color: var(--text-light); }
        .review-card {
            background: var(--light-bg); border-radius: var(--radius); padding: 20px; margin-bottom: 16px;
        }
        .review-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
        .review-avatar {
            width: 42px; height: 42px; border-radius: 50%; background: var(--primary);
            display: flex; align-items: center; justify-content: center;
            color: white; font-weight: 700; font-size: 0.9rem; flex-shrink: 0;
        }
        .review-name { font-weight: 700; font-size: 0.9rem; }
        .review-meta { font-size: 0.78rem; color: var(--text-light); }
        .review-stars { color: var(--accent); font-size: 0.85rem; margin-left: auto; }
        .review-text { font-size: 0.88rem; color: var(--text-light); line-height: 1.7; }
        .review-date { font-size: 0.75rem; color: var(--text-light); margin-top: 10px; }

        /* ── FAQ ── */
        .faq-section { margin-top: 44px; }
        .faq-section h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: 20px; }
        .faq-item {
            border: 1px solid #e2e8f0; border-radius: var(--radius-sm);
            margin-bottom: 10px; overflow: hidden;
        }
        .faq-question {
            width: 100%; display: flex; justify-content: space-between; align-items: center;
            padding: 16px 20px; background: white; border: none; cursor: pointer;
            font-family: 'Poppins', sans-serif; font-size: 0.92rem; font-weight: 600; text-align: left;
            transition: background 0.2s; gap: 12px;
        }
        .faq-question:hover { background: var(--light-bg); }
        .faq-chevron { font-size: 1rem; transition: transform 0.3s; flex-shrink: 0; color: var(--text-light); }
        .faq-item.open .faq-chevron { transform: rotate(180deg); }
        .faq-answer {
            max-height: 0; overflow: hidden;
            transition: max-height 0.35s ease, padding 0.35s ease;
            background: var(--light-bg);
        }
        .faq-item.open .faq-answer { max-height: 300px; }
        .faq-answer-inner { padding: 16px 20px; font-size: 0.88rem; color: var(--text-light); line-height: 1.7; }

        /* ── BOOKING WIDGET ── */
        .booking-widget {
            position: sticky; top: 100px;
            background: white; border-radius: var(--radius);
            box-shadow: 0 8px 40px rgba(0,0,0,0.12);
            padding: 28px; border: 1px solid #e2e8f0;
        }
        .widget-price { font-size: 2rem; font-weight: 900; color: var(--primary); line-height: 1; }
        .widget-price small { font-size: 0.8rem; font-weight: 400; color: var(--text-light); }
        .urgency-badge {
            display: inline-flex; align-items: center; gap: 6px;
            background: #fef3c7; color: #92400e;
            padding: 6px 14px; border-radius: 100px;
            font-size: 0.75rem; font-weight: 700; margin: 14px 0;
        }
        .widget-divider { height: 1px; background: #e2e8f0; margin: 16px 0; }

        /* Flatpickr overrides - light theme */
        .flatpickr-calendar {
            box-shadow: none !important;
            border: none !important;
            width: 100% !important;
            font-family: 'Poppins', sans-serif !important;
            background: #ffffff !important;
        }
        .flatpickr-calendar.inline { display: block !important; }
        .flatpickr-innerContainer { border: none !important; }
        .flatpickr-rContainer { border: none !important; }

        /* Month header */
        .flatpickr-months { background: #0f172a !important; border-radius: 10px 10px 0 0; padding: 4px 0; }
        .flatpickr-month { color: white !important; }
        .flatpickr-current-month .cur-month,
        .flatpickr-current-month input.cur-year {
            color: white !important; font-weight: 700; font-family: 'Poppins', sans-serif;
            background: transparent !important;
        }
        .flatpickr-prev-month svg, .flatpickr-next-month svg { fill: rgba(255,255,255,0.8) !important; }
        .flatpickr-prev-month:hover svg, .flatpickr-next-month:hover svg { fill: var(--accent) !important; }
        /* hide native select, show custom label */
        .flatpickr-current-month select.flatpickr-monthDropdown-months { display: none !important; }
        .fp-month-label {
            color: white; font-weight: 700; font-size: 14px;
            font-family: 'Poppins', sans-serif; cursor: default;
            display: inline-block; margin-right: 4px;
        }

        /* Weekday labels */
        .flatpickr-weekdays { background: #f8fafc !important; }
        span.flatpickr-weekday {
            color: #94a3b8 !important;
            font-size: 0.72rem; font-weight: 600; font-family: 'Poppins', sans-serif;
        }

        /* Day cells */
        .flatpickr-days { background: #ffffff !important; border: none !important; }
        .dayContainer { background: #ffffff !important; }
        .flatpickr-day {
            font-family: 'Poppins', sans-serif; font-size: 0.82rem;
            border-radius: 8px !important;
            color: #0f172a !important;
            border: 1px solid transparent !important;
        }
        .flatpickr-day:hover {
            background: #fef3c7 !important;
            border-color: #fde68a !important;
            color: #92400e !important;
        }
        .flatpickr-day.today {
            border-color: var(--accent) !important;
            color: #d97706 !important;
            font-weight: 700;
            background: #fffbeb !important;
        }
        .flatpickr-day.selected, .flatpickr-day.selected:hover {
            background: var(--accent) !important;
            border-color: var(--accent) !important;
            color: #0f172a !important;
            font-weight: 700;
        }
        .flatpickr-day.flatpickr-disabled,
        .flatpickr-day.prevMonthDay,
        .flatpickr-day.nextMonthDay {
            color: #cbd5e1 !important;
        }

        #inlineCalendar {
            margin-bottom: 16px;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            overflow: hidden;
        }

        /* Guest counter */
        .guest-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
        .guest-label { font-size: 0.88rem; font-weight: 600; }
        .guest-controls { display: flex; align-items: center; gap: 12px; }
        .guest-btn {
            width: 34px; height: 34px; border-radius: 50%; border: 2px solid #e2e8f0;
            background: white; font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
            transition: all 0.2s; font-weight: 700; color: var(--text);
        }
        .guest-btn:hover { border-color: var(--accent); color: var(--accent-dark); }
        .guest-count { font-size: 1.1rem; font-weight: 700; min-width: 24px; text-align: center; }
        .live-price { font-size: 0.95rem; font-weight: 700; color: var(--text-light); margin-bottom: 18px; }
        .live-price strong { color: var(--accent-dark); font-size: 1.1rem; }
        .btn-book-now {
            width: 100%; background: var(--accent); color: var(--primary);
            padding: 16px; border-radius: var(--radius-sm); border: none;
            font-family: 'Poppins', sans-serif; font-weight: 800; font-size: 1rem;
            cursor: pointer; transition: all 0.3s; margin-bottom: 14px;
        }
        .btn-book-now:hover { background: #fbbf24; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(245,158,11,0.4); }
        .share-row { display: flex; gap: 8px; }
        .share-btn {
            flex: 1; padding: 9px; border-radius: var(--radius-sm); border: 1px solid #e2e8f0;
            background: white; font-family: 'Poppins', sans-serif; font-size: 0.78rem; font-weight: 600;
            cursor: pointer; transition: all 0.2s; color: var(--text);
        }
        .share-btn:hover { border-color: var(--accent); background: #fef3c7; }

        /* ── RELATED TOURS ── */
        .related-section {
            padding: 60px 24px 80px;
            background: var(--light-bg);
        }
        .related-inner { max-width: 1200px; margin: 0 auto; }
        .related-inner h2 { font-size: 1.6rem; font-weight: 800; margin-bottom: 32px; }
        .related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
        .tour-card {
            background: white; border-radius: var(--radius); overflow: hidden;
            box-shadow: var(--card-shadow); transition: all 0.3s ease;
            cursor: pointer; border: 2px solid transparent;
            text-decoration: none; display: block; color: inherit;
        }
        .tour-card:hover { transform: translateY(-6px); box-shadow: var(--card-shadow-hover); border-color: rgba(245,158,11,0.3); }
        .tour-img {
            height: 160px; display: flex; align-items: center; justify-content: center;
            font-size: 3.5rem; position: relative; overflow: hidden;
        }
        .tour-img::after {
            content: ''; position: absolute; inset: 0;
            background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,0.18) 50%, transparent 80%);
            background-size: 200% 100%; background-position: -200% 0; transition: background-position 0s;
        }
        .tour-card:hover .tour-img::after { background-position: 200% 0; transition: background-position 0.7s ease; }
        .tour-img-tatra       { background: linear-gradient(145deg, #1a3a5c 0%, #2563a0 45%, #3b82c4 70%, #1e4d80 100%); }
        .tour-img-zakopane    { background: linear-gradient(145deg, #1c3b5a 0%, #1e6091 40%, #2980b9 65%, #16405c 100%); }
        .tour-img-auschwitz   { background: linear-gradient(145deg, #2c2c2c 0%, #4a4a4a 40%, #3d3d3d 65%, #1a1a1a 100%); }
        .tour-img-saltmine    { background: linear-gradient(145deg, #1e0a4a 0%, #3b1578 45%, #5b2d9e 70%, #2a0f5e 100%); }
        .tour-img-memory      { background: linear-gradient(145deg, #1a1a2e 0%, #16213e 40%, #0f3460 65%, #1a1a2e 100%); }
        .tour-img-nowahuta    { background: linear-gradient(145deg, #1c2333 0%, #2d3748 40%, #4a5568 65%, #1a2030 100%); }
        .tour-img-wadowice    { background: linear-gradient(145deg, #3d0a0a 0%, #6b1515 40%, #8b2020 65%, #4a0f0f 100%); }
        .tour-img-czestochowa { background: linear-gradient(145deg, #2a1a0a 0%, #5c3a10 40%, #8b5a1a 65%, #3d2508 100%); }
        .tour-icon-wrap {
            position: relative; z-index: 1; width: 64px; height: 64px;
            background: rgba(255,255,255,0.12); border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,0.2);
        }
        .badge-tickets {
            position: absolute; top: 12px; right: 12px; background: #22c55e;
            color: white; font-size: 0.65rem; font-weight: 700; padding: 3px 10px;
            border-radius: 100px; text-transform: uppercase; letter-spacing: 0.5px; z-index: 1;
        }
        .tour-body { padding: 18px; }
        .tour-body h3 { font-size: 0.98rem; font-weight: 700; margin-bottom: 8px; }
        .tour-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #f1f5f9; padding-top: 12px; margin-top: 10px; }
        .tour-duration { font-size: 0.78rem; color: var(--text-light); }
        .tour-price { font-size: 1rem; font-weight: 800; }
        .tour-price small { font-size: 0.7rem; font-weight: 400; color: var(--text-light); }

        /* ── REVEAL ── */
        .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.6s ease, transform 0.6s ease; }
        .reveal.visible { opacity: 1; transform: translateY(0); }

        /* ── MOBILE STICKY BAR ── */
        .mobile-sticky-bar {
            display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 900;
            background: white; border-top: 1px solid #e2e8f0;
            padding: 12px 20px; align-items: center; justify-content: space-between; gap: 16px;
            box-shadow: 0 -4px 24px rgba(0,0,0,0.1);
        }
        .mobile-sticky-price { font-size: 1.2rem; font-weight: 900; }
        .mobile-sticky-price small { display: block; font-size: 0.72rem; font-weight: 400; color: var(--text-light); }
        .mobile-book-btn {
            background: var(--accent); color: var(--primary); padding: 13px 28px;
            border-radius: var(--radius-sm); border: none; font-family: 'Poppins', sans-serif;
            font-weight: 800; font-size: 0.95rem; cursor: pointer; transition: all 0.3s; white-space: nowrap;
        }
        .mobile-book-btn:hover { background: #fbbf24; }

        /* ── BOOKING MODAL ── */
        .modal-overlay {
            display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.72);
            z-index: 2000; align-items: center; justify-content: center; padding: 24px;
        }
        .modal-overlay.open { display: flex; }
        .modal {
            background: white; border-radius: var(--radius); padding: 36px;
            max-width: 480px; width: 100%; max-height: 90vh; overflow-y: auto; position: relative;
        }
        .modal-close {
            position: absolute; top: 16px; right: 18px; background: none; border: none;
            font-size: 1.6rem; cursor: pointer; color: var(--text-light); line-height: 1; font-family: inherit;
        }
        .modal h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 4px; }
        .modal-price { font-size: 1.3rem; font-weight: 800; color: var(--accent-dark); margin-bottom: 20px; }
        .form-group { margin-bottom: 14px; }
        .form-group label { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 5px; }
        .form-group input, .form-group select, .form-group textarea {
            width: 100%; padding: 11px 14px; border: 2px solid #e2e8f0; border-radius: var(--radius-sm);
            font-family: 'Poppins', sans-serif; font-size: 0.88rem; transition: border-color 0.2s;
            outline: none; color: var(--text); background: white;
        }
        .form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--accent); }
        .form-group textarea { resize: vertical; min-height: 80px; }
        .btn-submit {
            width: 100%; background: var(--accent); color: var(--primary); padding: 14px;
            border-radius: var(--radius-sm); border: none; font-family: 'Poppins', sans-serif;
            font-weight: 700; font-size: 1rem; cursor: pointer; transition: all 0.3s;
        }
        .btn-submit:hover { background: var(--accent-dark); transform: translateY(-2px); }
        .modal-success { display: none; text-align: center; padding: 24px 0; }
        .modal-success.show { display: block; }
        .modal-form.hide { display: none; }
        .success-icon { font-size: 3.5rem; margin-bottom: 16px; display: block; }
        .success-title { font-size: 1.3rem; font-weight: 700; margin-bottom: 8px; color: #16a34a; }
        .success-sub { font-size: 0.9rem; color: var(--text-light); }

        /* ── FOOTER ── */
        footer {
            background: var(--primary); color: rgba(255,255,255,0.55);
            padding: 52px 24px 28px; text-align: center;
        }
        .footer-logo { font-size: 1.9rem; font-weight: 800; color: white; margin-bottom: 6px; }
        .footer-logo span { color: var(--accent); }
        footer > p { margin-bottom: 28px; font-size: 0.88rem; }
        .footer-links { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
        .footer-links a { color: rgba(255,255,255,0.55); text-decoration: none; font-size: 0.84rem; transition: color 0.2s; }
        .footer-links a:hover { color: var(--accent); }
        .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 24px; font-size: 0.78rem; }

        /* ── WHATSAPP ── */
        .wa-float {
            position: fixed; bottom: 28px; right: 28px; width: 62px; height: 62px;
            background: #25D366; border-radius: 50%; display: flex; align-items: center; justify-content: center;
            line-height: 0; text-decoration: none; z-index: 998;
            box-shadow: 0 6px 24px rgba(37,211,102,0.45); animation: waPulse 2.5s infinite; transition: transform 0.2s;
        }
        .wa-float:hover { transform: scale(1.12); }
        @keyframes waPulse {
            0%, 100% { box-shadow: 0 6px 24px rgba(37,211,102,0.45); }
            50%       { box-shadow: 0 6px 36px rgba(37,211,102,0.75); }
        }

        /* ── LIGHTBOX ── */
        .lightbox {
            display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.92);
            z-index: 3000; align-items: center; justify-content: center; cursor: pointer;
        }
        .lightbox.open { display: flex; }
        .lightbox-inner {
            width: 90vw; max-width: 900px; height: 60vh;
            border-radius: var(--radius); position: relative;
            display: flex; align-items: center; justify-content: center;
        }
        .lightbox-close {
            position: absolute; top: -44px; right: 0; color: white; font-size: 1.8rem;
            cursor: pointer; background: none; border: none; font-family: inherit; line-height: 1;
        }
        .lightbox-prev, .lightbox-next {
            position: absolute; top: 50%; transform: translateY(-50%);
            background: rgba(255,255,255,0.15); border: none; color: white;
            font-size: 1.5rem; width: 44px; height: 44px; border-radius: 50%;
            cursor: pointer; display: flex; align-items: center; justify-content: center;
            transition: background 0.2s;
        }
        .lightbox-prev { left: -56px; }
        .lightbox-next { right: -56px; }
        .lightbox-prev:hover, .lightbox-next:hover { background: rgba(255,255,255,0.3); }
        .lightbox-panel { width: 100%; height: 100%; border-radius: var(--radius); }
        .lightbox-counter { position: absolute; bottom: -36px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,0.6); font-size: 0.82rem; }

        /* ── RESPONSIVE ── */
        @media (max-width: 960px) {
            .nav-links { display: none; }
            .hamburger { display: flex; }
            .tour-layout { grid-template-columns: 1fr; padding: 24px 16px 80px; }
            .tour-left, .tour-right { min-width: 0; }
            .booking-widget { display: none; }
            .mobile-sticky-bar { display: flex; }
            .related-grid { grid-template-columns: 1fr; }
            .included-grid { grid-template-columns: 1fr; }
            body { padding-bottom: 80px; }
            .wa-float { bottom: 90px; }
            .tour-hero { height: 44vh; min-height: 280px; }
            .tour-hero-content { padding: 0 16px 28px; }
            .tour-hero h1 { font-size: clamp(1.5rem, 7vw, 2.2rem); }
            /* Gallery: main image full width, thumbnails as a row below */
            .gallery-grid {
                grid-template-columns: 1fr 1fr 1fr;
                grid-template-rows: 220px 90px;
                gap: 6px;
            }
            .gallery-panel:first-child { grid-column: 1 / 4; grid-row: 1; }
            .gallery-panel:not(:first-child) { grid-column: auto; grid-row: 2; }
            /* tabs */
            .tabs-nav { gap: 0; }
            .tab-btn { padding: 10px 14px; font-size: 0.8rem; }
            /* rating */
            .rating-summary { flex-direction: column; gap: 12px; align-items: flex-start; padding: 16px; }
            /* badges */
            .badges-row { gap: 8px; }
            .lightbox-prev { left: 4px; }
            .lightbox-next { right: 4px; }
        }
        @media (max-width: 480px) {
            .hero-stats-row { gap: 6px; }
            .hero-stat { font-size: 0.7rem; padding: 4px 9px; }
            .gallery-grid { grid-template-rows: 190px 75px; }
            .tab-btn { padding: 8px 10px; font-size: 0.75rem; }
            .tour-layout { padding: 16px 12px 80px; }
        }

        /* Mobile booking sheet */
        .sheet-overlay {
            display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1800;
        }
        .sheet-overlay.open { display: block; }
        .booking-sheet {
            position: fixed; bottom: 0; left: 0; right: 0; z-index: 1900;
            background: white; border-radius: 20px 20px 0 0;
            padding: 28px 24px 40px;
            transform: translateY(100%); transition: transform 0.4s ease;
            max-height: 92vh; overflow-y: auto;
        }
        .booking-sheet.open { transform: translateY(0); }
        .sheet-handle {
            width: 44px; height: 5px; background: #e2e8f0; border-radius: 3px;
            margin: 0 auto 24px;
        }
        .sheet-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
        .sheet-header h3 { font-size: 1.15rem; font-weight: 700; }
        .sheet-close {
            background: none; border: none; font-size: 1.5rem; cursor: pointer;
            color: var(--text-light); font-family: inherit; line-height: 1;
        }

        /* ═══════════════════════════════════════════════════════
           MOBILE UX FIXES — tour page
           ═══════════════════════════════════════════════════════ */
        @media (max-width: 768px) {
            /* iOS zoom prevention for booking modal inputs */
            .form-group input,
            .form-group select,
            .form-group textarea { font-size: 16px; }
        }
        @media (max-width: 480px) {
            /* Hero h1 — slightly larger on small phones */
            #hero h1 { font-size: clamp(1.4rem, 6.5vw, 2.2rem); }
        }
