/* ================================================================
       INFO BAR — Tour key stats (prominent card-style)
       ================================================================ */
    .kn-info-bar {
        background: var(--kn-white);
        position: relative;
    }
    .kn-info-bar-inner {
        max-width: 1100px; margin: 0 auto;
        padding: 0 40px;
    }
    .kn-info-stats {
        display: grid; grid-template-columns: repeat(4, 1fr);
        margin-top: -36px; /* overlap hero */
        position: relative; z-index: 10;
        background: var(--kn-white);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-lg);
        overflow: hidden;
    }
    .kn-stat {
        display: flex; flex-direction: column; align-items: center; justify-content: center;
        padding: 28px 16px 24px;
        text-align: center;
        position: relative;
        transition: background var(--duration-fast);
    }
    .kn-stat:not(:last-child)::after {
        content: ''; position: absolute; right: 0; top: 20%; height: 60%;
        width: 1px; background: var(--kn-sand-100);
    }
    .kn-stat:hover { background: var(--kn-amber-50); }
    .kn-stat-icon {
        width: 44px; height: 44px; border-radius: 50%;
        background: var(--kn-amber-50);
        display: flex; align-items: center; justify-content: center;
        margin-bottom: 12px;
        transition: all var(--duration-base) var(--ease-out);
    }
    .kn-stat:hover .kn-stat-icon {
        background: var(--kn-amber);
        transform: scale(1.08);
    }
    .kn-stat-icon i { width: 20px; height: 20px; color: var(--kn-amber); transition: color var(--duration-fast); }
    .kn-stat:hover .kn-stat-icon i { color: var(--kn-white); }
    .kn-stat-value {
        font-family: var(--font-display); font-size: 22px; color: var(--kn-sand-900);
        line-height: 1.2; margin-bottom: 4px;
    }
    .kn-stat-label {
        font-family: var(--font-kr); font-size: 12px; font-weight: 500;
        color: var(--kn-sand-400); letter-spacing: 0.04em; text-transform: uppercase;
    }
    /* Route visual strip — airline-style with region codes */
    .kn-info-route {
        display: flex; align-items: center; justify-content: center; gap: 0;
        padding: 20px 16px 24px;
        font-family: var(--font-kr);
    }
    .kn-route-stop {
        display: flex; flex-direction: column; align-items: center; gap: 4px;
        position: relative; z-index: 2;
    }
    .kn-route-code {
        font-family: var(--font-kr); font-size: 13px; font-weight: 600;
        letter-spacing: 0.02em; color: var(--kn-sand-800);
        background: var(--kn-sand-50); border: 1px solid var(--kn-sand-200);
        padding: 6px 14px; border-radius: 8px;
        transition: all var(--duration-fast);
        white-space: nowrap;
    }
    .kn-route-stop.endpoint .kn-route-code {
        background: var(--kn-navy); color: var(--kn-white);
        border-color: var(--kn-navy); font-weight: 700;
        box-shadow: 0 2px 8px rgba(27,45,79,0.2);
    }
    .kn-route-name {
        font-size: 10px; font-weight: 400; color: var(--kn-sand-400);
        white-space: nowrap; letter-spacing: 0.02em;
    }
    .kn-route-stop.endpoint .kn-route-name { color: var(--kn-navy-light); font-weight: 500; }
    .kn-route-line {
        flex: 1; height: 1.5px; min-width: 20px; max-width: 56px;
        background: var(--kn-sand-300);
        position: relative; top: -8px; z-index: 1;
    }
    .kn-route-line::after {
        content: ''; position: absolute; right: -2px; top: -2.5px;
        border: solid var(--kn-sand-400); border-width: 0 1.5px 1.5px 0;
        padding: 2px; transform: rotate(-45deg); opacity: 0.5;
    }

    
/* ================================================================
       STICKY TABS + DAY NAVIGATION
       ================================================================ */
    .kn-tabs-wrap {
        position: sticky; top: 100px; z-index: 100;
        background: var(--kn-white);
        border-bottom: 1px solid var(--kn-sand-100);
        box-shadow: 0 2px 12px rgba(26,22,18,0.05);
        transition: top var(--duration-base) var(--ease-out);
    }
    .kn-tabs-wrap.nav-expanded { top: 68px; }
    .kn-tabs-inner {
        max-width: 1200px; margin: 0 auto;
        padding: 0 40px;
        display: flex; align-items: center; gap: 0;
        overflow-x: auto; -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .kn-tabs-inner::-webkit-scrollbar { display: none; }
    .kn-tab {
        font-family: var(--font-kr); font-size: 15px; font-weight: 500;
        color: var(--kn-sand-500); padding: 18px 24px 10px;
        border-bottom: 2.5px solid transparent;
        transition: all var(--duration-fast); white-space: nowrap;
        flex-shrink: 0;
    }
    .kn-tab:hover { color: var(--kn-sand-800); }
    .kn-tab.active { color: var(--kn-amber); border-bottom-color: var(--kn-amber); font-weight: 600; }

    /* Day navigation */
    .kn-sidebar-day-nav, .kn-story-day-nav {
        display: flex; flex-wrap: wrap; gap: 5px;
        padding-bottom: 4px;
        flex-shrink: 0;
    }
    .kn-day-nav-label {
        font-family: var(--font-kr); font-size: 10px; font-weight: 600;
        color: var(--kn-sand-400); letter-spacing: 0.06em; text-transform: uppercase;
        width: 100%; margin-bottom: 2px;
    }
    .kn-day-btn {
        font-family: var(--font-kr); font-size: 11px; font-weight: 600;
        color: var(--kn-sand-500); background: var(--kn-sand-50);
        border: 1px solid var(--kn-sand-100);
        padding: 4px 10px; border-radius: var(--radius-full);
        white-space: nowrap; transition: all var(--duration-fast);
        cursor: pointer;
    }
    .kn-day-btn:hover { background: var(--kn-amber-50); color: var(--kn-amber); border-color: var(--kn-amber-100); }
    .kn-day-btn.active {
        background: var(--kn-amber); color: var(--kn-white);
        border-color: var(--kn-amber); box-shadow: 0 2px 6px rgba(184,112,42,0.25);
    }
    .kn-day-btn .kn-day-location {
        font-weight: 400; color: var(--kn-sand-400);
        margin-left: 2px; font-size: 10px;
    }
    .kn-day-btn.active .kn-day-location { color: rgba(255,255,255,0.75); }

    
/* ================================================================
       TIMELINE ITINERARY
       ================================================================ */
    #itinerary { padding: 40px 0 40px; }
    .kn-timeline {
        max-width: 1200px; margin: 0 auto; padding: 0 40px;
        position: relative;
    }

    /* Timeline line */
    .kn-timeline::before {
        content: '';
        position: absolute; left: 67px; top: 0; bottom: 0;
        width: 2px;
        background: var(--kn-sand-100);
    }
    .kn-timeline::after {
        content: '';
        position: absolute; left: 67px; top: 0;
        width: 2px; height: var(--tl-progress, 0%);
        background: linear-gradient(to bottom, var(--kn-amber), var(--kn-amber-light));
        transition: height 0.15s linear;
    }

    /* --- Day Block --- */
    .kn-day {
        position: relative;
        padding-left: 100px;
        padding-bottom: 48px;
        opacity: 0; transform: translateY(24px);
        transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
    }
    .kn-day.visible { opacity: 1; transform: translateY(0); }
    .kn-day:last-child { padding-bottom: 0; }

    /* Timeline dot */
    .kn-day-dot {
        position: absolute; left: 50px; top: 4px;
        width: 36px; height: 36px;
        background: var(--kn-sand-200);
        border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        font-family: var(--font-kr); font-size: 12px; font-weight: 700;
        color: var(--kn-white);
        z-index: 2;
        box-shadow: 0 0 0 4px var(--kn-white);
        transition: background 0.4s 0.2s var(--ease-out),
                    box-shadow 0.4s 0.2s var(--ease-out);
    }
    .kn-day.visible .kn-day-dot {
        background: var(--kn-amber);
        box-shadow: 0 0 0 4px var(--kn-white), 0 2px 8px rgba(184,112,42,0.25);
    }

    /* Day header row */
    .kn-day-header {
        display: flex; align-items: baseline; gap: 12px;
        margin-bottom: 14px; flex-wrap: wrap;
    }
    .kn-day-title {
        font-family: var(--font-display); font-size: 22px;
        color: var(--kn-sand-900); line-height: 1.3;
    }
    .kn-day-route {
        font-family: var(--font-kr); font-size: 12px; font-weight: 400;
        color: var(--kn-sand-400);
        display: flex; align-items: center; gap: 4px;
    }
    .kn-day-route i { width: 12px; height: 12px; }

    /* Meta row: hotel + meals */
    .kn-day-meta {
        display: flex; align-items: center; gap: 10px;
        margin-bottom: 16px; flex-wrap: wrap;
    }
    .kn-day-hotel {
        display: flex; align-items: center; gap: 6px;
        font-family: var(--font-kr); font-size: 13px; font-weight: 500;
        color: var(--kn-sand-800);
        background: linear-gradient(135deg, var(--kn-amber-50) 0%, #FDF8F2 100%);
        border: 1px solid var(--kn-amber-100);
        border-left: 3px solid var(--kn-amber);
        padding: 7px 12px; border-radius: var(--radius-sm);
        transition: box-shadow 0.2s ease;
    }
    .kn-day-hotel:hover { box-shadow: var(--shadow-sm); }
    .kn-day-hotel i { width: 13px; height: 13px; color: var(--kn-amber); flex-shrink: 0; }

    /* Meal pills */
    .kn-meals { display: flex; gap: 3px; flex-wrap: wrap; }
    .kn-meal-pill {
        font-family: var(--font-kr); font-size: 10px; font-weight: 600;
        padding: 2px 7px; border-radius: var(--radius-full);
        letter-spacing: 0.02em;
    }
    .kn-meal-pill.breakfast { background: #FEF3E2; color: #B8702A; }
    .kn-meal-pill.lunch { background: #E8F5EC; color: #3D7A54; }
    .kn-meal-pill.dinner { background: #EAE8F5; color: #5B4FA0; }

    /* Featured image */
    .kn-day-image {
        width: 100%; aspect-ratio: 16/7;
        border-radius: var(--radius-md);
        overflow: hidden; margin-bottom: 16px;
        cursor: pointer; position: relative;
    }
    .kn-day-image img {
        width: 100%; height: 100%; object-fit: cover;
        transition: transform 0.5s var(--ease-out);
    }
    .kn-day-image:hover img { transform: scale(1.03); }
    .kn-day-image::after {
        content: ''; position: absolute; inset: 0;
        background: linear-gradient(to top, rgba(0,0,0,0.1) 0%, transparent 40%);
        pointer-events: none;
    }

    /* Description */
    .kn-day-desc {
        font-family: var(--font-kr); font-size: 15px; line-height: 1.85;
        color: var(--kn-sand-700); margin-bottom: 16px;
    }

    /* Highlights — stagger in */
    .kn-day-highlights {
        display: flex; flex-wrap: wrap; gap: 6px;
        margin-bottom: 16px;
    }
    .kn-day-hl {
        display: inline-flex; align-items: center; gap: 4px;
        font-family: var(--font-kr); font-size: 11px; font-weight: 500;
        color: var(--kn-sand-600);
        padding: 3px 10px;
        background: var(--kn-sand-50);
        border: 1px solid var(--kn-sand-100);
        border-radius: var(--radius-full);
        opacity: 0; transform: translateY(6px);
        transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out),
                    background 0.15s ease, border-color 0.15s ease;
    }
    .kn-day.visible .kn-day-hl { opacity: 1; transform: translateY(0); }
    .kn-day.visible .kn-day-hl:nth-child(1) { transition-delay: 0.25s; }
    .kn-day.visible .kn-day-hl:nth-child(2) { transition-delay: 0.32s; }
    .kn-day.visible .kn-day-hl:nth-child(3) { transition-delay: 0.39s; }
    .kn-day.visible .kn-day-hl:nth-child(4) { transition-delay: 0.46s; }
    .kn-day.visible .kn-day-hl:nth-child(5) { transition-delay: 0.53s; }
    .kn-day-hl:hover { background: var(--kn-amber-50); border-color: var(--kn-amber-100); }
    .kn-day-hl i { width: 10px; height: 10px; color: var(--kn-sand-400); }
    .kn-day-hl.included {
        background: #EFF8F2; border-color: #C2E0CB; color: #2D6B42;
    }
    .kn-day-hl.included i { color: #3D7A54; }
    .kn-day-hl.included:hover { background: #DCEEE1; }

    /* 3-column gallery grid */
    .kn-day-gallery {
        display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
    }
    .kn-day-gallery-item {
        aspect-ratio: 4/3; border-radius: var(--radius-sm);
        overflow: hidden; cursor: pointer; position: relative;
        opacity: 0; transform: scale(0.95);
        transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
    }
    .kn-day.visible .kn-day-gallery-item { opacity: 1; transform: scale(1); }
    .kn-day.visible .kn-day-gallery-item:nth-child(1) { transition-delay: 0.3s; }
    .kn-day.visible .kn-day-gallery-item:nth-child(2) { transition-delay: 0.38s; }
    .kn-day.visible .kn-day-gallery-item:nth-child(3) { transition-delay: 0.46s; }
    .kn-day-gallery-item img {
        width: 100%; height: 100%; object-fit: cover;
        transition: transform 0.5s var(--ease-out);
    }
    .kn-day-gallery-item:hover img { transform: scale(1.06); }

    /* Scroll reveal */
    .reveal {
        opacity: 0; transform: translateY(24px);
        transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
    }
    .reveal.visible { opacity: 1; transform: translateY(0); }

    @media (prefers-reduced-motion: reduce) {
        .kn-day, .reveal, .kn-day-hl, .kn-day-gallery-item {
            opacity: 1 !important; transform: none !important; transition: none !important;
        }
        .kn-day-dot { transition: none !important; background: var(--kn-amber) !important; }
        .kn-timeline::after { height: 100% !important; transition: none !important; }
    }

    /* Map fixed height — prevent layout shift */
    .kn-sidebar-map, .kn-story-map { flex-shrink: 0; }

    /* 10+ pax group button */
    .kn-pax-group {
        background: var(--kn-sand-50) !important;
        color: var(--kn-sand-500) !important;
        border: 1px dashed var(--kn-sand-300) !important;
        font-size: 11px !important;
        text-decoration: none;
    }
    .kn-pax-group:hover {
        border-color: var(--kn-amber) !important;
        color: var(--kn-amber) !important;
        background: var(--kn-amber-50) !important;
    }

    
/* ================================================================
       2-COLUMN LAYOUT — Main + Sidebar
       ================================================================ */
    .kn-itinerary-layout {
        max-width: 1200px; margin: 0 auto; padding: 0 40px;
        display: grid; grid-template-columns: 1fr 340px; gap: 48px;
        align-items: start;
    }
    .kn-itinerary-main { min-width: 0; }
    .kn-itinerary-layout .kn-timeline { max-width: none; padding: 0; }

    /* Sidebar — sticky, inner scrolls independently */
    .kn-sidebar {
        position: sticky; top: 110px;
        align-self: start;
        height: calc(100vh - 120px);
    }
    .kn-sidebar-inner {
        overscroll-behavior: contain;
        display: flex; flex-direction: column; gap: 16px;
        height: 100%;
        overflow-y: auto;
        scrollbar-width: thin;
        scrollbar-color: var(--kn-sand-200) transparent;
        padding-right: 4px;
        padding-bottom: 20px;
    }
    .kn-sidebar-inner::-webkit-scrollbar { width: 4px; }
    .kn-sidebar-inner::-webkit-scrollbar-thumb { background: var(--kn-sand-200); border-radius: 4px; }
    .kn-sidebar-inner::-webkit-scrollbar-track { background: transparent; }

    /* Map container */
    .kn-sidebar-map {
        width: 100%; height: 400px;
        border-radius: var(--radius-lg);
        overflow: hidden;
        box-shadow: 0 8px 32px rgba(26,22,18,0.12);
        border: 2px solid var(--kn-sand-200);
        background: linear-gradient(135deg, #F5F0EB 0%, #EDE5DA 100%);
        flex-shrink: 0;
    }

    /* Sidebar mini stats */
    .kn-sidebar-stats {
        background: var(--kn-white);
        border: 1px solid var(--kn-sand-100);
        border-radius: var(--radius-md);
        padding: 20px;
    }
    .kn-sidebar-stat-row {
        display: flex; align-items: center; gap: 12px;
        padding: 10px 0;
    }
    .kn-sidebar-stat-row:not(:last-child) {
        border-bottom: 1px solid var(--kn-sand-50);
    }
    .kn-sidebar-stat-icon {
        width: 32px; height: 32px; border-radius: 8px;
        background: var(--kn-amber-50);
        display: flex; align-items: center; justify-content: center;
        flex-shrink: 0;
    }
    .kn-sidebar-stat-icon i { width: 16px; height: 16px; color: var(--kn-amber); }
    .kn-sidebar-stat-text {
        display: flex; flex-direction: column;
    }
    .kn-sidebar-stat-label {
        font-family: var(--font-kr); font-size: 11px; font-weight: 500;
        color: var(--kn-sand-400); letter-spacing: 0.03em;
    }
    .kn-sidebar-stat-value {
        font-family: var(--font-kr); font-size: 14px; font-weight: 600;
        color: var(--kn-sand-800);
    }

    /* Sidebar CTA button */
    .kn-sidebar-cta {
        display: flex; align-items: center; justify-content: center; gap: 8px;
        font-family: var(--font-kr); font-size: 14px; font-weight: 600;
        padding: 14px 20px; border-radius: var(--radius-md);
        background: var(--kn-amber); color: var(--kn-white);
        transition: all var(--duration-fast);
        box-shadow: 0 4px 16px rgba(184,112,42,0.3);
    }
    .kn-sidebar-cta:hover {
        background: var(--kn-amber-dark);
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(184,112,42,0.35);
    }
    .kn-sidebar-cta i { width: 18px; height: 18px; }

    /* SVG Route Map — Accurate Namibia base + tour overlay */
    .kn-route-map-wrap {
        position: relative; width: 100%; height: 100%;
        display: flex; align-items: center; justify-content: center;
        overflow: hidden;
    }
    .kn-route-map-wrap svg { width: 100%; height: 100%; }
    .kn-route-map-wrap .map-region { transition: opacity 0.3s ease; }
    .kn-route-map-wrap .map-region:hover { opacity: 0.85; }

    /* Illustrated map (v2) — day markers */
    .map-day-dot {
        transition: fill 0.3s var(--ease-out);
        cursor: pointer;
    }
    .map-day-num {
        font-family: var(--font-kr); font-weight: 700;
        fill: var(--kn-white); pointer-events: none; text-anchor: middle;
    }
    .map-day-label {
        font-family: var(--font-kr); font-weight: 700;
        fill: var(--kn-sand-800); transition: fill 0.3s; pointer-events: none;
        paint-order: stroke; stroke: rgba(251,244,233,0.85); stroke-width: 3px;
        stroke-linejoin: round;
    }
    .map-day-label.active { fill: var(--kn-amber-dark); }
    .map-day-sublabel {
        font-family: var(--font-kr); font-weight: 500;
        fill: var(--kn-sand-500); pointer-events: none;
        paint-order: stroke; stroke: rgba(251,244,233,0.85); stroke-width: 3px;
        stroke-linejoin: round;
    }
    .map-city-label {
        font-family: var(--font-kr); font-size: 13px; font-weight: 400;
        fill: var(--kn-sand-500); opacity: 0.55; pointer-events: none;
    }
    .map-ocean-label {
        font-family: var(--font-body); font-size: 19px; font-weight: 600;
        letter-spacing: 0.5em; fill: #7FA3B5; opacity: 0.75;
        pointer-events: none; text-transform: uppercase;
    }
    .map-country-label {
        font-family: var(--font-body); font-size: 21px; font-weight: 600;
        letter-spacing: 0.35em; fill: #9A8F78; opacity: 0.85;
        text-anchor: middle; pointer-events: none; text-transform: uppercase;
    }
    .map-watermark {
        font-family: var(--font-display); font-size: 74px;
        letter-spacing: 0.18em; fill: #A98F6E; opacity: 0.13;
        text-anchor: middle; pointer-events: none;
    }

    /* Scroll offset for sticky header + tabs */
    #itinerary, #inclusions, #notices, #contact {
        scroll-margin-top: 155px;
    }

    
/* ================================================================
       INCLUSIONS / EXCLUSIONS
       ================================================================ */
    #options { padding: 48px 0 0; }

    #inclusions {
        padding: 48px 0 40px;
        background: var(--kn-sand-50);
    }
    .kn-section-inner {
        max-width: 1100px; margin: 0 auto; padding: 0 40px;
    }
    .kn-section-title {
        font-size: clamp(24px, 3vw, 34px);
        text-align: center; margin-bottom: 40px;
    }

    .kn-inc-grid {
        display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
        margin-bottom: 24px;
    }
    .kn-inc-card {
        background: var(--kn-white); border-radius: var(--radius-md);
        padding: 24px 16px; text-align: center;
        border: 1px solid var(--kn-sand-100);
        transition: all var(--duration-fast);
    }
    .kn-inc-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
    .kn-inc-icon {
        width: 40px; height: 40px; margin: 0 auto 12px;
        background: var(--kn-amber-50); border-radius: var(--radius-md);
        display: flex; align-items: center; justify-content: center;
    }
    .kn-inc-icon i { width: 18px; height: 18px; color: var(--kn-amber); }
    .kn-inc-card h4 { font-family: var(--font-kr); font-size: 13px; font-weight: 600; color: var(--kn-sand-900); margin-bottom: 4px; }
    .kn-inc-card p { font-family: var(--font-kr); font-size: 12px; color: var(--kn-sand-500); line-height: 1.5; }

    .kn-exc-block {
        margin-top: 0;
        border-top: 1px solid var(--kn-sand-100);
        padding-top: 20px;
    }
    .kn-exc-title {
        font-family: var(--font-kr); font-size: 15px; font-weight: 600;
        color: var(--kn-sand-700); margin-bottom: 14px;
        display: flex; align-items: center; gap: 6px;
    }
    .kn-exc-title i { width: 16px; height: 16px; color: var(--kn-sand-400); }
    .kn-exc-list {
        display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px;
        list-style: none;
    }
    .kn-exc-list li {
        font-family: var(--font-kr); font-size: 14px; color: var(--kn-sand-600);
        padding-left: 16px; position: relative; line-height: 1.6;
    }
    .kn-exc-list li::before {
        content: ''; position: absolute; left: 0; top: 9px;
        width: 5px; height: 5px; border-radius: 50%;
        background: var(--kn-sand-300);
    }

    
/* ================================================================
       NOTICES ACCORDION
       ================================================================ */
    #notices { padding: 64px 0; }
    .kn-accordion { border-top: 1px solid var(--kn-sand-100); }
    .kn-accordion-item { border-bottom: 1px solid var(--kn-sand-100); }
    .kn-accordion-trigger {
        width: 100%; padding: 18px 0;
        display: flex; align-items: center; justify-content: space-between;
        font-family: var(--font-kr); font-size: 15px; font-weight: 600;
        color: var(--kn-sand-800); text-align: left;
        transition: color var(--duration-fast);
    }
    .kn-accordion-trigger:hover { color: var(--kn-amber); }
    .kn-accordion-trigger i { width: 18px; height: 18px; color: var(--kn-sand-400); transition: transform 0.3s; flex-shrink: 0; }
    .kn-accordion-item.open .kn-accordion-trigger i { transform: rotate(180deg); color: var(--kn-amber); }
    .kn-accordion-body { max-height: 0; overflow: hidden; transition: max-height 0.4s var(--ease-out); }
    .kn-accordion-item.open .kn-accordion-body { max-height: 600px; }
    .kn-accordion-content {
        padding: 0 0 20px;
        font-family: var(--font-kr); font-size: 14px; line-height: 1.85; color: var(--kn-sand-600);
    }
    .kn-accordion-content ul { margin: 6px 0; padding-left: 18px; }
    .kn-accordion-content li { margin-bottom: 3px; }

    
/* ================================================================
       CTA
       ================================================================ */
    .kn-cta {
        position: relative; padding: 80px 40px; text-align: center;
        background: var(--kn-navy); overflow: hidden;
    }
    .kn-cta::before {
        content: ''; position: absolute; inset: 0;
        background: radial-gradient(ellipse at 30% 50%, rgba(184,112,42,0.12) 0%, transparent 60%);
    }
    .kn-cta-inner { position: relative; z-index: 1; max-width: 540px; margin: 0 auto; }
    .kn-cta h2 { font-size: clamp(26px, 3.5vw, 38px); color: var(--kn-white); margin-bottom: 14px; }
    .kn-cta p { font-family: var(--font-kr); font-size: 15px; color: rgba(255,255,255,0.6); margin-bottom: 32px; line-height: 1.8; }
    .kn-cta-buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
    .kn-btn-primary {
        font-family: var(--font-kr); font-size: 14px; font-weight: 600;
        padding: 14px 32px; border-radius: var(--radius-full);
        background: var(--kn-amber); color: var(--kn-white);
        transition: all var(--duration-fast);
    }
    .kn-btn-primary:hover { background: var(--kn-amber-light); transform: translateY(-2px); }
    .kn-btn-outline {
        font-family: var(--font-kr); font-size: 14px; font-weight: 600;
        padding: 14px 32px; border-radius: var(--radius-full);
        border: 1px solid rgba(255,255,255,0.25); color: var(--kn-white);
        transition: all var(--duration-fast);
    }
    .kn-btn-outline:hover { border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.05); }


/* ================================================================
       SIDEBAR PRICING WIDGET
       ================================================================ */
    .kn-sidebar-pricing {
        background: var(--kn-white);
        border: 2px solid var(--kn-amber);
        border-radius: var(--radius-md);
        padding: 20px;
        text-align: center;
    }
    .kn-pricing-header { margin-bottom: 14px; }
    .kn-pricing-from {
        font-family: var(--font-kr); font-size: 11px; font-weight: 500;
        color: var(--kn-sand-400); letter-spacing: 0.04em; text-transform: uppercase;
    }
    .kn-pricing-amount {
        font-family: var(--font-display); font-size: 28px; font-weight: 700;
        color: var(--kn-amber); line-height: 1.3;
    }
    .kn-pricing-note {
        font-family: var(--font-kr); font-size: 11px; color: var(--kn-sand-400);
        display: block; margin-top: 2px;
    }
    .kn-pricing-pax {
        display: flex; gap: 6px; justify-content: center;
    }
    .kn-pax-btn {
        font-family: var(--font-kr); font-size: 12px; font-weight: 600;
        padding: 6px 14px; border-radius: var(--radius-full);
        border: 1px solid var(--kn-sand-200); color: var(--kn-sand-600);
        background: var(--kn-white);
        cursor: pointer; transition: all var(--duration-fast);
    }
    .kn-pax-btn:hover { border-color: var(--kn-amber); color: var(--kn-amber); }
    .kn-pax-btn.active {
        background: var(--kn-amber); color: var(--kn-white);
        border-color: var(--kn-amber);
    }


/* ================================================================
       VEHICLE & ACCOMMODATION OPTIONS
       ================================================================ */
    .kn-options-group { margin-bottom: 40px; }
    .kn-options-title {
        font-family: var(--font-kr); font-size: 18px; font-weight: 600;
        color: var(--kn-sand-900); margin-bottom: 16px;
        display: flex; align-items: center; gap: 8px;
    }
    .kn-options-title i { width: 20px; height: 20px; color: var(--kn-amber); }

    /* Vehicle cards */
    .kn-vehicle-grid {
        display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px;
    }
    .kn-vehicle-card {
        display: flex; gap: 14px; align-items: center;
        background: var(--kn-white); border: 1px solid var(--kn-sand-100);
        border-radius: var(--radius-md); padding: 14px;
        transition: all var(--duration-fast);
    }
    .kn-vehicle-card:hover { box-shadow: var(--shadow-md); }
    .kn-vehicle-card.standard { border-color: var(--kn-amber-100); }
    .kn-vehicle-img {
        width: 100px; height: 68px; border-radius: 8px; overflow: hidden; flex-shrink: 0;
    }
    .kn-vehicle-img img { width: 100%; height: 100%; object-fit: cover; }
    .kn-vehicle-info { flex: 1; }
    .kn-vehicle-info h4 {
        font-family: var(--font-kr); font-size: 14px; font-weight: 600;
        color: var(--kn-sand-900); margin-bottom: 2px;
    }
    .kn-vehicle-info p {
        font-family: var(--font-kr); font-size: 12px; color: var(--kn-sand-500);
        margin-bottom: 4px;
    }
    .kn-badge-standard {
        display: inline-block; font-family: var(--font-kr); font-size: 10px; font-weight: 600;
        padding: 2px 8px; border-radius: var(--radius-full);
        background: var(--kn-amber-50); color: var(--kn-amber); margin-bottom: 4px;
    }
    .kn-badge-upgrade {
        display: inline-block; font-family: var(--font-kr); font-size: 10px; font-weight: 600;
        padding: 2px 8px; border-radius: var(--radius-full);
        background: #EAE8F5; color: #5B4FA0; margin-bottom: 4px;
    }
    .kn-vehicle-diff {
        font-family: var(--font-kr); font-size: 12px; font-weight: 600; color: #5B4FA0;
    }
    .kn-vehicle-included {
        font-family: var(--font-kr); font-size: 12px; font-weight: 600; color: var(--kn-amber);
    }

    /* Accommodation cards */
    .kn-accom-grid {
        display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
    }
    .kn-accom-card {
        background: var(--kn-white); border: 1px solid var(--kn-sand-100);
        border-radius: var(--radius-md); padding: 20px 16px;
        text-align: center; position: relative;
        transition: all var(--duration-fast);
    }
    .kn-accom-card:hover { box-shadow: var(--shadow-md); }
    .kn-accom-card.featured {
        border-color: var(--kn-amber); border-width: 2px;
        box-shadow: 0 0 0 3px rgba(184,112,42,0.08);
    }
    .kn-accom-badge {
        position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
        font-family: var(--font-kr); font-size: 10px; font-weight: 700;
        padding: 3px 12px; border-radius: var(--radius-full);
        background: var(--kn-amber); color: var(--kn-white);
        letter-spacing: 0.05em;
    }
    .kn-accom-card h4 {
        font-family: var(--font-kr); font-size: 15px; font-weight: 700;
        color: var(--kn-sand-900); margin-bottom: 4px; margin-top: 4px;
    }
    .kn-accom-desc {
        font-family: var(--font-kr); font-size: 12px; color: var(--kn-sand-500);
        margin-bottom: 12px;
    }
    .kn-accom-examples {
        list-style: none; text-align: left; margin-bottom: 12px;
    }
    .kn-accom-examples li {
        font-family: var(--font-kr); font-size: 12px; color: var(--kn-sand-600);
        padding: 2px 0 2px 14px; position: relative;
    }
    .kn-accom-examples li::before {
        content: ''; position: absolute; left: 0; top: 8px;
        width: 4px; height: 4px; border-radius: 50%;
        background: var(--kn-sand-300);
    }
    .kn-accom-diff {
        font-family: var(--font-kr); font-size: 13px; font-weight: 700;
    }
    .kn-accom-diff.up { color: #5B4FA0; }
    .kn-accom-diff.down { color: #3D7A54; }
    .kn-accom-diff.included { color: var(--kn-amber); }


/* ================================================================
       ASTRO SECTION — Moon Calendar + Milky Way
       ================================================================ */
    #astro { padding: 48px 0; background: var(--kn-sand-50); }
    .kn-astro-row {
        display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
    }
    .kn-astro-section {
        display: contents;
    }
    .kn-astro-block {
        background: linear-gradient(135deg, #1B2D4F 0%, #0F1B33 100%);
        border: 1px solid rgba(255,255,255,0.08);
        border-radius: var(--radius-md);
        padding: 16px;
        position: relative;
        overflow: hidden;
    }
    .kn-astro-block::before {
        content: ''; position: absolute; inset: 0;
        background: radial-gradient(ellipse at 70% 20%, rgba(184,112,42,0.08) 0%, transparent 60%);
        pointer-events: none;
    }
    .kn-astro-title {
        font-family: var(--font-kr); font-size: 12px; font-weight: 600;
        color: rgba(255,255,255,0.85); margin-bottom: 10px;
        display: flex; align-items: center; gap: 6px;
        position: relative;
    }
    .kn-astro-title i { width: 14px; height: 14px; color: var(--kn-amber); }

    /* Moon calendar — dark sky theme */
    .kn-moon-cal-header {
        display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
        margin-bottom: 4px; text-align: center;
    }
    .kn-moon-cal-header span {
        font-family: var(--font-kr); font-size: 9px; font-weight: 600;
        color: rgba(255,255,255,0.35); padding: 2px 0;
    }
    .kn-moon-cal-grid {
        display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
        position: relative;
    }
    .kn-moon-day {
        display: flex; flex-direction: column; align-items: center;
        padding: 4px 0; border-radius: 6px;
        cursor: default;
        transition: background var(--duration-fast);
    }
    .kn-moon-day:hover { background: rgba(255,255,255,0.06); }
    .kn-moon-day.empty { visibility: hidden; }
    .kn-moon-icon { font-size: 16px; line-height: 1; filter: drop-shadow(0 0 3px rgba(255,220,150,0.3)); }
    .kn-moon-date {
        font-family: var(--font-kr); font-size: 8px; color: rgba(255,255,255,0.4);
        line-height: 1; margin-top: 2px;
    }

    /* Milky Way — dark theme */
    .kn-mw-current {
        display: flex; align-items: center; gap: 8px;
        margin-bottom: 10px;
    }
    .kn-mw-badge {
        font-family: var(--font-kr); font-size: 11px; font-weight: 700;
        padding: 3px 10px; border-radius: var(--radius-full);
    }
    .kn-mw-badge.best { background: rgba(61,122,84,0.3); color: #7BDA9E; }
    .kn-mw-badge.good { background: rgba(184,112,42,0.25); color: #E8A854; }
    .kn-mw-badge.fair { background: rgba(222,184,135,0.2); color: #DEB887; }
    .kn-mw-badge.limited { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.35); }
    .kn-mw-desc {
        font-family: var(--font-kr); font-size: 11px; color: rgba(255,255,255,0.5);
    }
    .kn-mw-bar {
        display: flex; gap: 3px; height: 28px;
    }
    .kn-mw-bar-seg {
        flex: 1; border-radius: 4px;
        transition: all var(--duration-fast);
    }
    .kn-mw-bar-seg.best { background: linear-gradient(to top, #2D6B42, #4ADE80); }
    .kn-mw-bar-seg.good { background: linear-gradient(to top, #92400E, #E8A854); }
    .kn-mw-bar-seg.fair { background: linear-gradient(to top, #78716C, #DEB887); }
    .kn-mw-bar-seg.limited { background: rgba(255,255,255,0.08); }
    .kn-mw-bar-seg.current {
        box-shadow: 0 0 0 2px var(--kn-amber), 0 0 8px rgba(184,112,42,0.4);
        border-radius: 4px; position: relative; z-index: 1;
    }
    .kn-mw-legend {
        display: flex; justify-content: space-between;
        font-family: var(--font-kr); font-size: 9px; color: rgba(255,255,255,0.3);
        margin-top: 4px;
    }

    /* Pricing — secondary currency + single supplement */
    .kn-pricing-secondary {
        font-family: var(--font-kr); font-size: 13px; color: var(--kn-sand-500);
        margin-top: 2px;
    }
    .kn-pricing-supp {
        display: flex; align-items: center; gap: 8px;
        margin-top: 12px; padding-top: 12px;
        border-top: 1px solid var(--kn-sand-100);
        font-family: var(--font-kr); font-size: 12px;
    }
    .kn-supp-label { color: var(--kn-sand-500); flex-shrink: 0; }
    .kn-supp-amount { font-weight: 600; color: var(--kn-sand-800); }
    .kn-supp-secondary { color: var(--kn-sand-400); font-size: 11px; }
    .kn-pricing-note {
        font-family: var(--font-kr); font-size: 11px; color: var(--kn-sand-400);
        text-align: center; margin-top: 8px;
    }
    .kn-pricing-vehicle {
        display: flex; align-items: center; justify-content: center; gap: 4px;
        font-family: var(--font-kr); font-size: 11px; font-weight: 500;
        color: var(--kn-sand-500); margin-top: 8px;
    }
    .kn-pricing-vehicle i { width: 12px; height: 12px; }

    /* Sidebar compact options */
    .kn-sidebar-options {
        background: var(--kn-white);
        border: 1px solid var(--kn-sand-100);
        border-radius: var(--radius-md);
        padding: 14px;
    }
    .kn-sb-opt-title {
        font-family: var(--font-kr); font-size: 11px; font-weight: 600;
        color: var(--kn-sand-500); letter-spacing: 0.03em;
        display: flex; align-items: center; gap: 5px;
        margin-bottom: 6px;
    }
    .kn-sb-opt-title i { width: 13px; height: 13px; color: var(--kn-amber); }
    .kn-sb-opt-item {
        display: flex; justify-content: space-between; align-items: center;
        padding: 6px 8px; border-radius: 6px;
        font-family: var(--font-kr); font-size: 12px;
        transition: background var(--duration-fast);
    }
    .kn-sb-opt-item:hover { background: var(--kn-sand-50); }
    .kn-sb-opt-item.standard { background: var(--kn-amber-50); }
    .kn-sb-opt-name { color: var(--kn-sand-700); font-weight: 500; }
    .kn-sb-opt-seats { color: var(--kn-sand-400); font-weight: 400; font-size: 11px; }
    .kn-sb-opt-desc { color: var(--kn-sand-400); font-weight: 400; font-size: 10px; }
    .kn-sb-opt-price { color: var(--kn-sand-500); font-weight: 600; font-size: 11px; white-space: nowrap; }
