/* ============================================================
   SapTravel KLKTech Product Page — Legacy SapTravel Style
   Matches the older WooCommerce/Kadence SapTravel product look.
   ============================================================ */

:root {
    --klktech-primary: #ff5b00;
    --klktech-primary-hover: #e95000;
    --klktech-primary-soft: #fff4ed;
    --klktech-primary-border: #ffd7bf;
    --klktech-bg: #f7f8fa;
    --klktech-card: #ffffff;
    --klktech-muted-card: #fafbfc;
    --klktech-text: #111827;
    --klktech-body: #374151;
    --klktech-muted: #6b7280;
    --klktech-border: #e3e7ed;
    --klktech-border-light: #edf0f3;
    --klktech-success: #10b981;
    --klktech-success-bg: #ecfdf5;
    --klktech-warning: #f59e0b;
    --klktech-warning-bg: #fffbeb;
    --klktech-error: #ef4444;
    --klktech-error-bg: #fef2f2;
    --klktech-info: #2563eb;
    --klktech-info-bg: #eff6ff;
    --klktech-radius: 8px;
    --klktech-radius-lg: 14px;
    --klktech-shadow: 0 6px 18px rgba(31,41,51,.05);
    --klktech-shadow-strong: 0 14px 36px rgba(31,41,51,.08);
    --klktech-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body.single-product,
.klktech-product-page,
.klktech-product-page .site-main {
    background: var(--klktech-bg);
}

.klktech-product,
.klktech-product * {
    box-sizing: border-box;
}

.klktech-product {
    color: var(--klktech-body);
    font-family: var(--klktech-font);
}

.klktech-product .entry-content-wrap {
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.klktech-legacy-product-shell {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto 48px;
    padding: 0 16px;
}

/* ---------- Top legacy two-column area ---------- */
.klktech-legacy-topgrid {
    display: grid;
    grid-template-columns: 390px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    margin: 0 auto 18px;
}

.klktech-legacy-gallery-col,
.klktech-legacy-summary-col {
    min-width: 0;
}

.klktech-legacy-gallery {
    width: 100%;
    overflow: hidden;
    border-radius: 18px;
    background: #eef1f4;
    box-shadow: var(--klktech-shadow-strong);
}

.klktech-legacy-gallery-main {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #eef1f4;
    overflow: hidden;
}

.klktech-legacy-main-img,
#klktech-gallery-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.klktech-gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: rgba(17,24,39,.62);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s ease, transform .2s ease;
}

.klktech-gallery-arrow:hover {
    background: rgba(17,24,39,.82);
    transform: translateY(-50%) scale(1.04);
}

.klktech-gallery-prev { left: 10px; }
.klktech-gallery-next { right: 10px; }

.klktech-gallery-counter {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 4;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(17,24,39,.66);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.klktech-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    padding: 8px;
    background: #fff;
}

.klktech-gallery-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 8px;
    background: #eef1f4;
    cursor: pointer;
    opacity: .72;
    transition: border-color .2s ease, opacity .2s ease;
}

.klktech-gallery-thumb.active,
.klktech-gallery-thumb:hover {
    border-color: var(--klktech-primary);
    opacity: 1;
}

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

/* ---------- Left calendar price selector ---------- */
.klktech-price-calendar {
    margin-top: 18px;
    border: 1px solid var(--klktech-primary-border);
    border-radius: 0 0 20px 20px;
    background: #fff;
    overflow: hidden;
    box-shadow: var(--klktech-shadow-strong);
}

.klktech-calendar-toolbar {
    display: grid;
    grid-template-columns: 1fr 1.6fr 1fr 1.15fr;
    align-items: stretch;
    min-height: 52px;
    background: var(--klktech-primary);
}

.klktech-calendar-nav,
.klktech-calendar-month {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    border: 0;
    border-right: 1px solid rgba(255,255,255,.16);
    background: var(--klktech-primary);
    color: #fff;
    font-family: var(--klktech-font);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
}

.klktech-calendar-month {
    background: var(--klktech-primary-hover);
    font-size: 17px;
}

.klktech-calendar-nav {
    cursor: pointer;
    transition: background .18s ease;
}

.klktech-calendar-nav:hover {
    background: #d94a00;
}

.klktech-calendar-year {
    border-right: 0;
}

.klktech-calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    background: #fff;
    border-bottom: 1px solid var(--klktech-border-light);
}

.klktech-calendar-weekdays span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    color: #7b8088;
    font-size: 13px;
    font-weight: 500;
}

.klktech-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    background: #fff;
}

.klktech-calendar-day {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 8px 4px 7px;
    border: 0;
    border-right: 1px solid var(--klktech-border-light);
    border-bottom: 1px solid var(--klktech-border-light);
    background: #fff;
    color: var(--klktech-text);
    font-family: var(--klktech-font);
    cursor: pointer;
    transition: background .16s ease, box-shadow .16s ease, color .16s ease;
}

.klktech-calendar-day:nth-child(7n) {
    border-right: 0;
}

.klktech-calendar-day:hover:not(:disabled) {
    background: var(--klktech-primary-soft);
}

.klktech-calendar-day-empty {
    min-height: 64px;
    border-right: 1px solid var(--klktech-border-light);
    border-bottom: 1px solid var(--klktech-border-light);
    background: #fbfbfc;
}

.klktech-calendar-date-num {
    display: block;
    color: #000;
    font-size: 22px;
    line-height: 1;
    font-weight: 900;
}

.klktech-calendar-price {
    display: block;
    margin-top: 12px;
    color: var(--klktech-primary);
    font-size: 14px;
    line-height: 1;
    font-weight: 900;
    white-space: nowrap;
}

.klktech-calendar-price-varies {
    font-size: 10px;
    white-space: normal;
}

.klktech-calendar-day.is-disabled {
    cursor: not-allowed;
    background: #f8f8f9;
}

.klktech-calendar-day.is-disabled .klktech-calendar-date-num,
.klktech-calendar-day.is-disabled .klktech-calendar-price {
    color: #c5cbd3;
}

.klktech-calendar-day.is-selected {
    z-index: 2;
    background: #fff;
    box-shadow: inset 0 0 0 3px var(--klktech-primary);
}

.klktech-calendar-day.is-selected .klktech-calendar-date-num {
    color: #000;
}

.klktech-calendar-day.is-selected .klktech-calendar-price {
    color: var(--klktech-primary);
}

.klktech-calendar-empty {
    margin: 0;
    padding: 12px 14px;
    border-top: 1px solid var(--klktech-border-light);
    color: var(--klktech-muted);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.klktech-date-input-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.klktech-selected-date-label {
    display: flex;
    align-items: center;
    min-height: 42px;
    margin: 0;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: var(--klktech-muted);
    font-size: 14px;
    font-weight: 700;
}

.klktech-selected-date-label.has-date {
    border-color: var(--klktech-primary-border);
    background: var(--klktech-primary-soft);
    color: var(--klktech-primary-hover);
}

.klktech-legacy-summary {
    width: 100%;
    min-height: 100%;
    padding: 0;
    background: #fff;
}

.klktech-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 8px;
    color: var(--klktech-muted);
    font-size: 13px;
    font-weight: 700;
}

.klktech-breadcrumb a {
    color: var(--klktech-muted);
    text-decoration: none;
}

.klktech-breadcrumb a:hover {
    color: var(--klktech-primary);
}

.klktech-breadcrumb-sep {
    color: #c6cad2;
}

.klktech-legacy-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.klktech-product-title {
    margin: 0 0 10px !important;
    color: var(--klktech-text) !important;
    font-size: 20px !important;
    line-height: 1.35 !important;
    font-weight: 900 !important;
}

.klktech-favorite-wrap {
    flex: 0 0 auto;
}

.klktech-legacy-short-desc {
    margin: 0 0 14px;
    padding: 10px 18px;
    background: #f7f7f7;
    color: #4b5563;
    font-size: 14px;
    line-height: 1.7;
}

.klktech-language-switcher {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
}

.klktech-language-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 5px 12px;
    border: 1px solid var(--klktech-border);
    border-radius: 999px;
    background: #fff;
    color: var(--klktech-body);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.klktech-language-link.is-current,
.klktech-language-link:hover {
    border-color: var(--klktech-primary);
    background: var(--klktech-primary-soft);
    color: #d64b00;
}

.klktech-summary-card {
    margin: 0 0 18px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff8f3;
}

.klktech-summary-card span {
    display: block;
    color: var(--klktech-muted);
    font-size: 13px;
    font-weight: 800;
}

.klktech-summary-card strong {
    display: block;
    margin: 6px 0;
    color: var(--klktech-primary);
    font-size: 28px;
    line-height: 1;
    font-weight: 900;
}

.klktech-summary-card em {
    display: block;
    margin-bottom: 10px;
    color: var(--klktech-muted);
    font-style: normal;
    font-size: 12px;
}

.klktech-summary-card p {
    margin: 10px 0 0;
    color: var(--klktech-muted);
    font-size: 12px;
    line-height: 1.6;
}

/* ---------- Booking panel, legacy visual treatment ---------- */
.klktech-booking-panel {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(31,41,51,.12);
    overflow: hidden;
}

.klktech-booking-header {
    padding: 16px 18px;
    border-bottom: 1px solid #eef0f3;
    background: #fff;
}

.klktech-booking-header-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.klktech-booking-header h3 {
    margin: 0;
    color: var(--klktech-text);
    font-size: 22px;
    line-height: 1.2;
    font-weight: 900;
}

.klktech-booking-header-price {
    text-align: right;
    white-space: nowrap;
}

.klktech-header-price-label {
    display: block;
    color: var(--klktech-muted);
    font-size: 12px;
    font-weight: 800;
}

.klktech-header-price-value {
    display: block;
    color: var(--klktech-primary);
    font-size: 22px;
    line-height: 1.05;
    font-weight: 900;
}

.klktech-booking-body {
    padding: 18px;
}

.klktech-booking-field,
.klktech-contact-field {
    margin: 0 0 14px;
}

.klktech-booking-field > label,
.klktech-contact-field > label {
    display: block;
    margin: 0 0 7px;
    color: var(--klktech-text);
    font-size: 13px;
    font-weight: 900;
}

.klktech-date-input,
.klktech-select,
.klktech-contact-input,
.klktech-extra-info-input,
.klktech-extra-input,
.klktech-extra-select {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: var(--klktech-text);
    font-size: 14px;
    font-family: var(--klktech-font);
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.klktech-select,
.klktech-extra-select {
    cursor: pointer;
    appearance: none;
    padding-right: 34px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
}

.klktech-date-input:focus,
.klktech-select:focus,
.klktech-contact-input:focus,
.klktech-extra-info-input:focus,
.klktech-extra-input:focus,
.klktech-extra-select:focus {
    border-color: var(--klktech-primary);
    box-shadow: 0 0 0 3px rgba(255,91,0,.12);
}

.klktech-no-dates {
    margin: 7px 0 0;
    color: var(--klktech-error);
    font-size: 12px;
    font-weight: 700;
}

.klktech-quantity-control {
    display: flex;
    align-items: center;
    width: fit-content;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.klktech-qty-btn {
    width: 34px;
    height: 34px;
    border: 0;
    background: #fff;
    color: var(--klktech-text);
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.klktech-qty-btn:hover {
    background: var(--klktech-primary-soft);
    color: #d64b00;
}

.klktech-qty-input {
    width: 52px;
    height: 34px;
    border: 0;
    border-left: 1px solid #e5e7eb;
    border-right: 1px solid #e5e7eb;
    background: #fff;
    color: var(--klktech-text);
    text-align: center;
    font-size: 15px;
    font-weight: 900;
    outline: none;
    -moz-appearance: textfield;
}

.klktech-qty-input::-webkit-inner-spin-button,
.klktech-qty-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.klktech-booking-price,
.klktech-booking-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid #eef0f3;
    color: var(--klktech-muted);
    font-size: 13px;
    font-weight: 800;
}

.klktech-booking-total {
    margin-bottom: 14px;
    border-top-width: 2px;
}

.klktech-price-value,
.klktech-total-value {
    color: var(--klktech-primary);
    font-weight: 900;
}

.klktech-total-value {
    font-size: 20px;
}

/* ── Button row: Book Now + Add to Cart side by side ── */
.klktech-btn-row {
    display: flex;
    gap: 12px;
    width: 100%;
    margin: 0;
}

.klktech-book-btn,
.klktech-confirm-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48%;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid var(--klktech-primary);
    border-radius: 10px;
    background: var(--klktech-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 12px 24px rgba(255,91,0,.22);
    transition: background .2s ease, opacity .2s ease, transform .2s ease;
}

.klktech-add-to-cart-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 48%;
    min-height: 48px;
    padding: 0 16px;
    border: 2px solid var(--klktech-primary);
    border-radius: 10px;
    background: #fff;
    color: var(--klktech-primary);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(255,91,0,.12);
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.klktech-add-to-cart-btn:hover {
    background: var(--klktech-primary-soft);
    transform: translateY(-1px);
}

.klktech-add-to-cart-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
    transform: none;
}

@keyframes klktech-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.klktech-add-to-cart-btn .klktech-cart-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.klktech-book-btn:hover,
.klktech-confirm-btn:hover {
    background: var(--klktech-primary-hover);
    transform: translateY(-1px);
}

.klktech-book-btn:disabled,
.klktech-confirm-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
    transform: none;
}

.klktech-back-btn {
    width: 100%;
    min-height: 42px;
    margin-top: 10px;
    border: 1px solid var(--klktech-primary);
    border-radius: 10px;
    background: var(--klktech-primary-soft);
    color: #d64b00;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.klktech-booking-status {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
}

.klktech-status-loading { background: var(--klktech-info-bg); color: var(--klktech-info); border: 1px solid rgba(37,99,235,.18); }
.klktech-status-success { background: var(--klktech-success-bg); color: #047857; border: 1px solid rgba(16,185,129,.2); }
.klktech-status-warning { background: var(--klktech-warning-bg); color: #b45309; border: 1px solid rgba(245,158,11,.25); }
.klktech-status-error { background: var(--klktech-error-bg); color: var(--klktech-error); border: 1px solid rgba(239,68,68,.2); }

.klktech-contact-form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eef0f3;
}

.klktech-contact-title,
.klktech-extra-info-title {
    margin: 0 0 12px;
    color: var(--klktech-text);
    font-size: 15px;
    font-weight: 900;
}

.klktech-contact-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.klktech-required { color: var(--klktech-error); }
.klktech-input-error { border-color: var(--klktech-error) !important; box-shadow: 0 0 0 3px rgba(239,68,68,.12) !important; }

.klktech-extra-info-help {
    margin-top: 5px;
    color: var(--klktech-muted);
    font-size: 12px;
}

.klktech-booking-success {
    margin-top: 16px;
    padding: 18px;
    border: 1px solid rgba(16,185,129,.2);
    border-radius: 14px;
    background: var(--klktech-success-bg);
    text-align: center;
}

.klktech-success-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 8px;
}

.klktech-success-title {
    margin: 0 0 6px;
    color: var(--klktech-text);
    font-size: 17px;
    font-weight: 900;
}

.klktech-success-msg {
    margin: 0 0 8px;
    color: var(--klktech-muted);
    font-size: 13px;
}

.klktech-success-order {
    color: var(--klktech-primary);
    font-size: 13px;
    font-weight: 900;
}

.klktech-booking-meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid #eef0f3;
}

.klktech-meta-item {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--klktech-muted);
    font-size: 12px;
    line-height: 1.5;
    font-weight: 800;
}

.klktech-inventory-indicator {
    margin-top: 7px;
    font-size: 12px;
    font-weight: 800;
}

.klktech-inventory-none { color: var(--klktech-error); }
.klktech-inventory-low { color: var(--klktech-warning); }
.klktech-inventory-ok { color: var(--klktech-success); }

/* ---------- Legacy lower content ---------- */
.klktech-product-jumpnav {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    gap: 4px;
    overflow: auto;
    margin: 0 0 18px;
    padding: 10px;
    border: 1px solid var(--klktech-border);
    border-radius: var(--klktech-radius);
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 22px rgba(31,41,51,.06);
}

.klktech-product-jumpnav a {
    white-space: nowrap;
    padding: 8px 14px;
    border-radius: 6px;
    color: var(--klktech-body);
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
}

.klktech-product-jumpnav a:hover {
    background: var(--klktech-primary-soft);
    color: #d64b00;
}

.klktech-product-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 8px 0 18px;
}

.klktech-product-badges span,
.klktech-badge,
.klktech-cancellation-tag {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--klktech-primary-border);
    background: var(--klktech-primary-soft);
    color: #a23b00;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.klktech-badge-success {
    border-color: rgba(16,185,129,.25);
    background: var(--klktech-success-bg);
    color: #047857;
}

.klktech-product-facts {
    margin: 18px 0 22px;
    padding: 22px;
    border: 1px solid var(--klktech-border);
    border-radius: var(--klktech-radius);
    background: #fff;
    box-shadow: var(--klktech-shadow);
}

.klktech-product-facts h2,
.klktech-product-detail-section h2 {
    margin: 0 0 16px;
    color: var(--klktech-text);
    font-size: 20px;
    line-height: 1.35;
    font-weight: 900;
}

.klktech-product-facts h2::before,
.klktech-product-detail-section h2::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 18px;
    margin-right: 9px;
    vertical-align: -3px;
    border-radius: 2px;
    background: var(--klktech-primary);
}

.klktech-product-facts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.klktech-product-fact {
    min-height: 74px;
    padding: 13px 14px;
    border: 1px solid var(--klktech-border-light);
    border-radius: var(--klktech-radius);
    background: var(--klktech-muted-card);
}

.klktech-product-fact strong {
    display: block;
    margin-bottom: 6px;
    color: var(--klktech-muted);
    font-size: 13px;
    font-weight: 700;
}

.klktech-product-fact span {
    color: #202938;
    font-size: 15px;
    font-weight: 700;
}

.klktech-product-details {
    clear: both;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 24px 0;
}

.klktech-product-detail-section {
    margin: 0;
    padding: 22px 24px;
    border: 1px solid var(--klktech-border);
    border-radius: var(--klktech-radius);
    background: #fff;
    box-shadow: var(--klktech-shadow);
}

.klktech-product-detail-section ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.klktech-product-detail-section li {
    position: relative;
    margin: 0;
    padding-left: 22px;
    color: var(--klktech-body);
    line-height: 1.7;
}

.klktech-product-detail-section li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .75em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--klktech-primary);
}

.klktech-richtext p,
.klktech-product-detail-section p {
    margin: 0 0 10px;
    color: var(--klktech-body);
    line-height: 1.75;
}

.klktech-richtext p:last-child,
.klktech-product-detail-section p:last-child {
    margin-bottom: 0;
}

/* ---------- Package cards ---------- */
.klktech-package-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.klktech-package-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.klktech-package-card-header {
    padding: 14px 16px;
    border-bottom: 1px solid #eef0f3;
    background: #fff;
}

.klktech-package-card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.klktech-package-card-title {
    margin: 0;
    color: var(--klktech-text);
    font-size: 16px;
    font-weight: 900;
    line-height: 1.4;
}

.klktech-package-card-badges {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}

.klktech-package-skus {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
}

.klktech-sku-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease;
}

.klktech-sku-row:hover,
.klktech-sku-row.klktech-selected {
    border-color: var(--klktech-primary);
    background: var(--klktech-primary-soft);
}

.klktech-sku-info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.klktech-sku-name {
    color: var(--klktech-text);
    font-size: 14px;
    font-weight: 800;
}

.klktech-sku-type,
.klktech-sku-age {
    color: var(--klktech-muted);
    font-size: 12px;
    font-weight: 700;
}

.klktech-sku-price {
    flex: 0 0 auto;
    color: var(--klktech-primary);
    font-size: 15px;
    font-weight: 900;
    white-space: nowrap;
}

.klktech-sku-price-varies {
    color: var(--klktech-muted);
    font-size: 13px;
}

/* ---------- Accordion ---------- */
.klktech-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}

.klktech-accordion-item + .klktech-accordion-item {
    border-top: 1px solid #eef0f3;
}

.klktech-accordion-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 15px;
    border: 0;
    background: #fff;
    color: var(--klktech-text);
    font-size: 14px;
    font-weight: 900;
    text-align: left;
    cursor: pointer;
}

.klktech-accordion-trigger:hover {
    background: #fafbfc;
}

.klktech-accordion-arrow {
    transition: transform .2s ease;
}

.klktech-accordion-item.open .klktech-accordion-arrow {
    transform: rotate(180deg);
}

.klktech-accordion-content {
    display: none;
    padding: 0 15px 15px;
    color: var(--klktech-body);
    line-height: 1.75;
}

.klktech-accordion-item.open .klktech-accordion-content {
    display: block;
}

/* ---------- Lightbox ---------- */
.klktech-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.9);
}

.klktech-lightbox.active {
    display: flex;
}

.klktech-lightbox-backdrop {
    position: absolute;
    inset: 0;
}

.klktech-lightbox-img-wrap {
    position: relative;
    z-index: 2;
    max-width: 88vw;
    max-height: 82vh;
}

#klktech-lightbox-img {
    max-width: 88vw;
    max-height: 82vh;
    object-fit: contain;
}

.klktech-lightbox-close,
.klktech-lightbox-arrow {
    position: absolute;
    z-index: 3;
    border: 0;
    background: rgba(255,255,255,.16);
    color: #fff;
    cursor: pointer;
}

.klktech-lightbox-close {
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    font-size: 30px;
    line-height: 1;
}

.klktech-lightbox-arrow {
    top: 50%;
    width: 48px;
    height: 48px;
    transform: translateY(-50%);
    border-radius: 999px;
    font-size: 42px;
    line-height: 1;
}

.klktech-lightbox-prev { left: 24px; }
.klktech-lightbox-next { right: 24px; }

.klktech-lightbox-counter {
    position: absolute;
    left: 50%;
    bottom: 24px;
    z-index: 3;
    transform: translateX(-50%);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

/* ---------- Video modal ---------- */
.klktech-video-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.86);
}

.klktech-video-modal.active { display: flex; }
.klktech-video-container { position: relative; z-index: 2; width: min(900px, 90vw); }
.klktech-video-container video { width: 100%; height: auto; display: block; }
.klktech-video-close { position: absolute; top: 18px; right: 18px; z-index: 3; width: 42px; height: 42px; border: 0; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; font-size: 30px; cursor: pointer; }

/* ---------- Responsive ---------- */
@media (min-width: 1024px) {
    .klktech-product-details {
        grid-template-columns: 1fr 1fr;
    }

    .klktech-product-detail-section:first-child,
    .klktech-product-detail-section:nth-child(3),
    .klktech-product-detail-section:nth-child(4),
    .klktech-product-detail-section:nth-child(5) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .klktech-legacy-topgrid {
        display: block;
    }

    .klktech-legacy-gallery {
        margin-bottom: 18px;
    }

    .klktech-price-calendar {
        margin: 0 0 18px;
    }

    .klktech-product-facts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .klktech-legacy-product-shell {
        padding: 0 12px;
    }

    .klktech-product-jumpnav {
        margin-left: -12px;
        margin-right: -12px;
        border-radius: 0;
    }

    .klktech-product-facts-grid {
        grid-template-columns: 1fr;
    }

    .klktech-product-detail-section,
    .klktech-product-facts {
        padding: 18px;
    }

    .klktech-calendar-toolbar {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        min-height: 46px;
    }

    .klktech-calendar-nav,
    .klktech-calendar-month {
        font-size: 12px;
    }

    .klktech-calendar-month {
        font-size: 13px;
    }

    .klktech-calendar-weekdays span {
        min-height: 34px;
        font-size: 12px;
    }

    .klktech-calendar-day,
    .klktech-calendar-day-empty {
        min-height: 56px;
    }

    .klktech-calendar-date-num {
        font-size: 18px;
    }

    .klktech-calendar-price {
        margin-top: 9px;
        font-size: 11px;
    }

    .klktech-contact-row,
    .klktech-package-card-title-row {
        grid-template-columns: 1fr;
        display: block;
    }

    .klktech-package-card-badges {
        justify-content: flex-start;
        margin-top: 8px;
    }
}

@media print {
    .klktech-booking-panel,
    .klktech-gallery-arrow,
    .klktech-gallery-counter,
    .klktech-gallery-thumbs,
    .klktech-lightbox,
    .klktech-video-modal,
    .klktech-product-jumpnav {
        display: none !important;
    }
}
