body.klh3-trip-page,
body.klh3-cart-page,
body.klh3-checkout-page,
body.klh3-thankyou-page,
body.woocommerce-cart,
body.woocommerce-checkout {
    background: var(--klh3-page-bg);
    font-family: var(--klh3-font-family);
    color: var(--klh3-text-color);
}

body.klh3-trip-page .site-header,
body.klh3-trip-page .site-footer,
body.klh3-cart-page .site-header,
body.klh3-cart-page .site-footer,
body.klh3-checkout-page .site-header,
body.klh3-checkout-page .site-footer,
body.klh3-thankyou-page .site-header,
body.klh3-thankyou-page .site-footer,
body.woocommerce-cart .site-header,
body.woocommerce-cart .site-footer,
body.woocommerce-checkout .site-header,
body.woocommerce-checkout .site-footer {
    display: none !important;
}

body.klh3-trip-page #colophon,
body.klh3-cart-page #colophon,
body.klh3-checkout-page #colophon,
body.klh3-thankyou-page #colophon,
body.woocommerce-cart #colophon,
body.woocommerce-checkout #colophon {
    display: none !important;
}

body.klh3-trip-page .site,
body.klh3-cart-page .site,
body.klh3-checkout-page .site,
body.klh3-thankyou-page .site,
body.woocommerce-cart .site,
body.woocommerce-checkout .site {
    margin: 0;
    padding: 0;
}

body.klh3-trip-page .widget-area,
body.klh3-trip-page .sidebar,
body.klh3-cart-page .widget-area,
body.klh3-cart-page .sidebar,
body.klh3-checkout-page .widget-area,
body.klh3-checkout-page .sidebar,
body.klh3-thankyou-page .widget-area,
body.klh3-thankyou-page .sidebar,
body.woocommerce-cart .widget-area,
body.woocommerce-cart .sidebar,
body.woocommerce-checkout .widget-area,
body.woocommerce-checkout .sidebar {
    display: none !important;
}

body.klh3-trip-page .site-content,
body.klh3-cart-page .site-content,
body.klh3-checkout-page .site-content,
body.klh3-thankyou-page .site-content,
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content {
    margin: 0;
    padding: 0;
}

body.klh3-trip-page footer,
body.klh3-cart-page footer,
body.klh3-checkout-page footer,
body.klh3-thankyou-page footer,
body.woocommerce-cart footer,
body.woocommerce-checkout footer,
body.klh3-trip-page .wp-site-blocks > footer,
body.klh3-cart-page .wp-site-blocks > footer,
body.klh3-checkout-page .wp-site-blocks > footer,
body.klh3-thankyou-page .wp-site-blocks > footer,
body.woocommerce-cart .wp-site-blocks > footer,
body.woocommerce-checkout .wp-site-blocks > footer,
body.klh3-trip-page .wp-site-blocks > .wp-block-template-part:last-of-type,
body.klh3-cart-page .wp-site-blocks > .wp-block-template-part:last-of-type,
body.klh3-checkout-page .wp-site-blocks > .wp-block-template-part:last-of-type,
body.klh3-thankyou-page .wp-site-blocks > .wp-block-template-part:last-of-type,
body.woocommerce-cart .wp-site-blocks > .wp-block-template-part:last-of-type,
body.woocommerce-checkout .wp-site-blocks > .wp-block-template-part:last-of-type,
body.klh3-trip-page .wp-site-blocks > .wp-block-template-part[class*="footer"],
body.klh3-cart-page .wp-site-blocks > .wp-block-template-part[class*="footer"],
body.klh3-checkout-page .wp-site-blocks > .wp-block-template-part[class*="footer"],
body.klh3-thankyou-page .wp-site-blocks > .wp-block-template-part[class*="footer"],
body.woocommerce-cart .wp-site-blocks > .wp-block-template-part[class*="footer"],
body.woocommerce-checkout .wp-site-blocks > .wp-block-template-part[class*="footer"] {
    display: none !important;
}

body.klh3-trip-page .klh3-app,
body.klh3-cart-page .klh3-app,
body.klh3-checkout-page .klh3-app,
body.klh3-thankyou-page .klh3-app,
body.woocommerce-cart .klh3-app,
body.woocommerce-checkout .klh3-app,
body.klh3-trip-page .klh3-app *,
body.klh3-cart-page .klh3-app *,
body.klh3-checkout-page .klh3-app *,
body.klh3-thankyou-page .klh3-app *,
body.woocommerce-cart .klh3-app *,
body.woocommerce-checkout .klh3-app * {
    font-family: var(--klh3-font-family);
}

.klh3-page {
    padding: var(--klh3-page-padding-y, 32px) var(--klh3-page-padding-x, 16px);
}

.klh3-page-inner {
    max-width: var(--klh3-layout-max-width, 1080px);
    margin: 0 auto;
    width: 100%;
}

@media (min-width: 900px) {
    .klh3-page-inner {
        min-width: 720px;
    }
}

.klh3-card {
    background: var(--klh3-surface);
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-lg);
    padding: var(--klh3-card-padding, 24px);
    color: var(--klh3-text-color);
}

.klh3-card-main {
    box-shadow: var(--klh3-card-shadow, none);
}

.klh3-card-title,
.klh3-heading {
    color: var(--klh3-heading-color);
}

.klh3-card-main h1,
.klh3-card-main h2,
.klh3-card-main h3 {
    color: var(--klh3-heading-color);
}

.klh3-card-main,
.klh3-card-main p,
.klh3-card-main li {
    color: var(--klh3-text-color);
}

.klh3-card__content--stacked {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.klh3-section-title {
    margin: 0 0 12px;
    font-size: var(--klh3-font-subtitle);
    font-weight: 700;
    color: var(--klh3-heading-color);
}

.klh3-section-subtitle {
    margin: 12px 0 8px;
    font-size: var(--klh3-font-base);
    font-weight: 700;
    color: var(--klh3-heading-color);
}

.klh3-notices {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.klh3-alert {
    border: 1px solid var(--klh3-border-color);
    background: var(--klh3-surface-strong);
    border-radius: var(--klh3-radius-md);
    padding: 12px 14px;
    color: var(--klh3-text-color);
    font-size: var(--klh3-font-base);
}

.klh3-alert-error {
    border-color: var(--klh3-btn-warning-border, var(--klh3-border-color));
}

.klh3-alert-success {
    border-color: var(--klh3-btn-primary-border, var(--klh3-border-color));
}

.klh3-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
}

.klh3-empty-state__title {
    margin: 0;
    font-size: var(--klh3-font-subtitle);
    color: var(--klh3-heading-color);
}

/* Checkout & cart wrapper layout to match KLH3 cards */
body.klh3-theme.woocommerce-checkout .woocommerce,
body.klh3-theme.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-cart .woocommerce {
    max-width: var(--klh3-layout-max-width, 1080px);
    margin: 0 auto;
    padding: var(--klh3-page-padding-y, 32px) var(--klh3-page-padding-x, 16px);
    color: var(--klh3-text-color);
    font-family: var(--klh3-font-family);
}

body.klh3-theme.woocommerce-checkout .woocommerce form .form-row label,
body.klh3-theme.woocommerce-checkout .woocommerce .woocommerce-billing-fields h3,
body.klh3-theme.woocommerce-checkout .woocommerce h3,
body.klh3-theme.woocommerce-checkout .woocommerce h2,
body.klh3-theme.woocommerce-checkout .woocommerce label,
body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-checkout .woocommerce .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce label {
    color: var(--klh3-text-color);
    font-family: var(--klh3-font-family);
}

body.klh3-theme.woocommerce-checkout .woocommerce .woocommerce-billing-fields,
body.klh3-theme.woocommerce-checkout .woocommerce .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce .woocommerce-shipping-fields {
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0;
}

body.klh3-theme.woocommerce-checkout .woocommerce #customer_details,
body.woocommerce-checkout .woocommerce #customer_details {
    display: grid;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}

body.klh3-theme.woocommerce-checkout .woocommerce .klh3-checkout-column,
body.woocommerce-checkout .woocommerce .klh3-checkout-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

body.klh3-theme.woocommerce-checkout .woocommerce .klh3-checkout-column--details,
body.woocommerce-checkout .woocommerce .klh3-checkout-column--details {
    background: var(--klh3-surface);
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-lg);
    padding: 16px;
}

body.klh3-theme.woocommerce-checkout .woocommerce .klh3-checkout-column--order,
body.woocommerce-checkout .woocommerce .klh3-checkout-column--order {
    background: transparent;
    padding: 0;
}

body.klh3-theme.woocommerce-checkout .woocommerce #order_review_heading,
body.woocommerce-checkout .woocommerce #order_review_heading {
    margin: 0 0 12px;
    padding: 0;
    border: 0 !important;
    background: transparent;
    box-shadow: none;
    color: var(--klh3-heading-color);
    font-size: var(--klh3-font-subtitle);
    font-weight: 700;
    line-height: 1.3;
}

body.klh3-theme.woocommerce-checkout .woocommerce #order_review,
body.woocommerce-checkout .woocommerce #order_review {
    margin: 0;
    background: var(--klh3-surface-strong, var(--klh3-surface));
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-lg);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.klh3-theme.woocommerce-checkout .woocommerce table.shop_table,
body.woocommerce-checkout .woocommerce table.shop_table {
    border-color: var(--klh3-border-color);
    color: var(--klh3-text-color);
    font-family: var(--klh3-font-family);
}

body.klh3-theme.woocommerce-checkout .woocommerce table.shop_table th,
body.klh3-theme.woocommerce-checkout .woocommerce table.shop_table td,
body.woocommerce-checkout .woocommerce table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table td {
    border-color: var(--klh3-border-color);
    color: var(--klh3-text-color);
    font-family: var(--klh3-font-family);
}

body.klh3-theme.woocommerce-checkout .woocommerce .order-total .amount,
body.klh3-theme.woocommerce-checkout .woocommerce .cart-subtotal .amount,
body.woocommerce-checkout .woocommerce .order-total .amount,
body.woocommerce-checkout .woocommerce .cart-subtotal .amount {
    color: var(--klh3-text-color);
    font-weight: 700;
    font-family: var(--klh3-font-family);
}

body.klh3-theme.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.klh3-theme.woocommerce-checkout .woocommerce-checkout-review-order-table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    color: var(--klh3-text-color);
    font-family: var(--klh3-font-family);
    border-color: var(--klh3-border-color);
}

.klh3-text-muted {
    color: var(--klh3-muted-text);
}

.klh3-thankyou-wrapper {
    max-width: 760px;
    margin: 0 auto;
}

.klh3-thankyou-title {
    font-size: var(--klh3-font-title);
    color: var(--klh3-heading-color);
    text-align: center;
    margin-bottom: 12px;
}

.klh3-thankyou-subtitle {
    font-size: var(--klh3-font-subtitle);
    color: var(--klh3-text-color);
    text-align: center;
    margin-bottom: 32px;
}

.klh3-card-title {
    font-size: var(--klh3-font-subtitle);
    color: var(--klh3-heading-color);
    margin-bottom: 10px;
}

.klh3-summary-row,
.klh3-product-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: var(--klh3-font-base);
    border-bottom: 1px solid var(--klh3-border-muted);
}

.klh3-summary-row:last-child,
.klh3-product-row:last-child {
    border-bottom: none;
}

.klh3-address {
    font-size: var(--klh3-font-base);
    color: var(--klh3-text-color);
    line-height: 1.6;
}

.klh3-product-row--stacked {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.klh3-product-name {
    font-weight: 700;
}

.klh3-product-line {
    display: flex;
    justify-content: space-between;
    width: 100%;
    gap: 10px;
}

.klh3-product-line__label {
    color: var(--klh3-text-color);
}

.klh3-product-line__price {
    font-weight: 600;
}

.klh3-product-total {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid var(--klh3-border-muted);
    font-weight: 700;
}

.klh3-product-total__price {
    color: var(--klh3-text-color);
}

.klh3-vat-note {
    padding-top: 6px;
    font-size: var(--klh3-font-base);
    color: var(--klh3-text-color);
    width: 100%;
    text-align: right;
}

.klh3-thankyou-actions {
    margin-top: 24px;
    text-align: center;
}

.klh3-cart-form .button,
.klh3-checkout .button,
.klh3-thankyou-actions .klh3-btn {
    border-radius: var(--klh3-radius-md);
    padding: 10px 20px;
    font-weight: 600;
}

.klh3-cart-table th,
.klh3-cart-table td {
    border-bottom: 1px solid var(--klh3-border-muted);
    padding: 10px 8px;
}

.klh3-cart-collaterals {
    margin-top: 0;
}

.klh3-checkout-columns {
    display: grid;
    grid-template-columns: 2fr 1.2fr;
    gap: 24px;
    align-items: start;
}

.klh3-checkout-column--order {
    background: transparent;
    border: 0;
    padding: 0;
    border-radius: 0;
}

.klh3-form-field {
    margin-bottom: 16px;
}

.klh3-form-field .klh3-helper-text {
    display: block;
    margin-top: 4px;
    font-size: var(--klh3-font-base);
    color: var(--klh3-muted-text);
}

.klh3-form-field .klh3-field-error {
    display: block;
    margin-top: 6px;
    font-size: var(--klh3-font-base);
    color: var(--klh3-action-warning, var(--klh3-color-orange));
}

.klh3-form-field.has-error .klh3-input,
.klh3-form-field.has-error .klh3-select,
.klh3-form-field.has-error .klh3-textarea {
    border-color: var(--klh3-action-warning, var(--klh3-color-orange));
}

.klh3-passenger-form .klh3-form-field input,
.klh3-passenger-form .klh3-form-field select,
.klh3-passenger-form .klh3-form-field textarea,
.klh3-checkout-form .klh3-form-field input,
.klh3-checkout-form .klh3-form-field select,
.klh3-checkout-form .klh3-form-field textarea {
    width: 100%;
    box-sizing: border-box;
}

.klh3-passenger-form .klh3-form-grid,
.klh3-checkout-form .klh3-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.klh3-label,
.klh3-form-field label,
body.klh3-cart-page .woocommerce form .form-row label,
body.klh3-checkout-page .woocommerce form .form-row label,
body.klh3-trip-page label {
    display: block;
    margin-bottom: 6px;
    color: var(--klh3-heading-color);
    font-weight: 600;
}

.klh3-input,
.klh3-select,
.klh3-textarea,
body.klh3-cart-page .woocommerce form .input-text,
body.klh3-cart-page .woocommerce form select,
body.klh3-cart-page .woocommerce form textarea,
body.klh3-checkout-page .woocommerce form .input-text,
body.klh3-checkout-page .woocommerce form select,
body.klh3-checkout-page .woocommerce form textarea,
body.klh3-trip-page input[type="text"],
body.klh3-trip-page select,
body.klh3-trip-page textarea {
    box-sizing: border-box;
    margin: 0;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--klh3-border-muted);
    border-radius: var(--klh3-radius-md);
    background: var(--klh3-surface-strong);
    color: var(--klh3-text-color);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.klh3-input:focus,
.klh3-select:focus,
.klh3-textarea:focus,
body.klh3-cart-page .woocommerce form .input-text:focus,
body.klh3-cart-page .woocommerce form select:focus,
body.klh3-cart-page .woocommerce form textarea:focus,
body.klh3-checkout-page .woocommerce form .input-text:focus,
body.klh3-checkout-page .woocommerce form select:focus,
body.klh3-checkout-page .woocommerce form textarea:focus,
body.klh3-trip-page input[type="text"]:focus,
body.klh3-trip-page select:focus,
body.klh3-trip-page textarea:focus {
    outline: none;
    border-color: var(--klh3-heading-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--klh3-heading-color) 20%, transparent);
}

.klh3-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.klh3-checkbox-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: flex-start;
    color: var(--klh3-text-color);
}

.klh3-required {
    color: var(--klh3-heading-color);
    margin-left: 4px;
}

.klh3-checkbox {
    accent-color: var(--klh3-heading-color);
}

.klh3-thankyou-page .klh3-card {
    margin-bottom: 24px;
}

@media (max-width: 900px) {
    .klh3-checkout-columns {
        grid-template-columns: 1fr;
    }
}

body.klh3-trip-page #footer,
body.klh3-cart-page #footer,
body.klh3-checkout-page #footer,
body.klh3-thankyou-page #footer {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.klh3-trip-page hr:last-of-type,
body.klh3-cart-page hr:last-of-type,
body.klh3-checkout-page hr:last-of-type,
body.klh3-thankyou-page hr:last-of-type,
body.woocommerce-cart hr:last-of-type,
body.woocommerce-checkout hr:last-of-type {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Hide Astra scroll-to-top inside KLH3 app-shell views only (teema override fix) */
body.klh3-app-shell #ast-scroll-top,
body.klh3-app-shell .ast-scroll-top-icon {
    display: none !important;
}

/* Hide Query Monitor UI on KLH3 app mode pages to prevent overlay artifacts */
body.klh3-app-mode:not(.klh3-debug-visible) #query-monitor,
body.klh3-app-mode:not(.klh3-debug-visible) #query-monitor-main,
body.klh3-app-mode:not(.klh3-debug-visible) .qm,
body.klh3-app-mode:not(.klh3-debug-visible) .qm-no-js,
body.klh3-app-mode:not(.klh3-debug-visible) .query-monitor-position {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Hide Astra / ZipWP stray elements inside KLH3 app mode */
.klh3-app #ast-scroll-top,
.klh3-app .ast-scroll-top-icon,
.klh3-app #zip-ai-sidebar,
.klh3-app #zip-ai-sidebar-admin-trigger,
.klh3-app .ast-icon-arrow,
.klh3-app svg.ast-arrow-svg {
    display: none !important;
}

/* Form controls (KLH3 app) */
.klh3-app input.klh3-input,
.klh3-app select.klh3-input,
.klh3-app textarea.klh3-input,
.klh3-app .klh3-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    font: inherit;
    padding: 10px 12px;
    border-radius: var(--klh3-radius-md);
    border: 1px solid var(--klh3-border-muted);
    background: var(--klh3-surface);
    color: var(--klh3-text-color);
    line-height: 1.4;
    min-height: 36px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.klh3-app .klh3-input:focus,
.klh3-app input.klh3-input:focus,
.klh3-app select.klh3-input:focus,
.klh3-app textarea.klh3-input:focus,
.klh3-app select.klh3-select:focus,
.klh3-app textarea.klh3-textarea:focus {
    outline: 2px solid var(--klh3-heading-color, var(--klh3-color-gold));
    outline-offset: 1px;
    border-color: var(--klh3-heading-color, var(--klh3-color-gold));
    background: var(--klh3-surface-strong, var(--klh3-surface));
    box-shadow: none;
}

.klh3-app .klh3-form-field {
    width: 100%;
}

.klh3-app .klh3-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.klh3-app .klh3-form-field.klh3-has-error .klh3-input,
.klh3-app .klh3-form-field.klh3-has-error .klh3-select,
.klh3-app .klh3-form-field.klh3-has-error .klh3-textarea {
    border-color: var(--klh3-color-remove-text, var(--klh3-action-warning, var(--klh3-border-color)));
}

/* Checkout & cart form styles (KLH3 app-shell) — enforce DS visuals over theme */
body.klh3-app-shell.klh3-app-shell--checkout .klh3-input,
body.klh3-app-shell.klh3-app-shell--checkout .klh3-select,
body.klh3-app-shell.klh3-app-shell--checkout .klh3-textarea,
body.klh3-app-shell.klh3-app-shell--cart .klh3-input,
body.klh3-app-shell.klh3-app-shell--cart .klh3-select,
body.klh3-app-shell.klh3-app-shell--cart .klh3-textarea {
    appearance: none;
    background: var(--klh3-surface, #fff) !important;
    border: 1px solid var(--klh3-border-muted) !important;
    border-radius: var(--klh3-radius-md);
    padding: 10px 12px;
    font-family: var(--klh3-font-family);
    font-size: var(--klh3-font-base);
    line-height: var(--klh3-line-height, 1.5);
    color: var(--klh3-text-color);
    box-shadow: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.klh3-app-shell.klh3-app-shell--checkout .klh3-input:focus,
body.klh3-app-shell.klh3-app-shell--checkout .klh3-select:focus,
body.klh3-app-shell.klh3-app-shell--checkout .klh3-textarea:focus,
body.klh3-app-shell.klh3-app-shell--cart .klh3-input:focus,
body.klh3-app-shell.klh3-app-shell--cart .klh3-select:focus,
body.klh3-app-shell.klh3-app-shell--cart .klh3-textarea:focus {
    border-color: var(--klh3-heading-color, var(--klh3-color-gold)) !important;
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--klh3-heading-color, var(--klh3-color-gold)) 20%, transparent) !important;
}
