:root {
    --klh3-classic-control-height: 44px;
}

/* Minimal, non-invasive WooCommerce skin using KLH3 brand tokens. */
.klh3-trip-page .woocommerce-breadcrumb,
.klh3-trip-page .ast-breadcrumbs,
.klh3-trip-page .ast-breadcrumbs-wrapper {
    display: none !important;
}

.klh3-trip-page .woocommerce-product-details__short-description,
.klh3-trip-page .woocommerce-product-details__short-description h1,
.klh3-trip-page .woocommerce-product-details__short-description h2,
.klh3-trip-page .woocommerce-product-details__short-description h3,
.klh3-trip-page .woocommerce-product-details__short-description h4,
.klh3-trip-page .woocommerce-product-details__short-description h5,
.klh3-trip-page .woocommerce-product-details__short-description h6 {
    color: var(--klh3-text-color);
}

.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    border-radius: var(--klh3-radius-md);
    font-family: var(--klh3-font-family);
}

.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt {
    background: var(--klh3-action-primary, var(--klh3-color-orange));
    border-color: var(--klh3-action-primary, var(--klh3-color-orange));
    color: var(--klh3-action-on-primary, #fff);
}

.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: var(--klh3-action-primary-hover, #fff3e0);
    border-color: var(--klh3-action-primary, var(--klh3-color-orange));
    color: var(--klh3-action-primary, var(--klh3-color-orange));
}

/* Passenger form primitives */
.klh3-trip-booking {
    margin: 16px 0;
    padding: 16px;
    border: 1px solid var(--klh3-border-muted);
    border-radius: var(--klh3-radius-lg);
    background: var(--klh3-surface);
}

.klh3-trip-description-under-image {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid var(--klh3-border-muted);
    border-radius: var(--klh3-radius-md);
    background: var(--klh3-surface);
    color: var(--klh3-text-color);
}

.klh3-trip-description-under-image p:first-child {
    margin-top: 0;
}

.klh3-trip-description-under-image p:last-child {
    margin-bottom: 0;
}

.klh3-trip-content {
    margin: 18px 0 0;
    padding: 0;
}

.klh3-trip-section {
    margin: 0 0 18px;
}

.klh3-trip-section-title {
    margin: 0 0 10px;
    color: var(--klh3-heading-color);
}

.klh3-trip-content h1,
.klh3-trip-content h2,
.klh3-trip-content h3,
.klh3-trip-content h4,
.klh3-trip-content h5,
.klh3-trip-content h6 {
    color: var(--klh3-text-color) !important;
    opacity: 1 !important;
}

.klh3-trip-stop-list {
    margin: 0;
    padding-left: 18px;
}

.klh3-trip-route-note {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid var(--klh3-border-muted);
    border-radius: var(--klh3-radius-md);
    background: var(--klh3-surface-strong);
    color: var(--klh3-muted-text);
}

.klh3-field {
    margin: 0 0 12px;
}

.klh3-label {
    display: block;
    margin: 0 0 6px;
    font-weight: 700;
    color: var(--klh3-heading-color);
}

.klh3-input,
.klh3-select,
.klh3-textarea {
    width: 100%;
    box-sizing: border-box;
    font-family: var(--klh3-font-family);
    font-size: var(--klh3-font-base);
    line-height: 1.3;
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-md);
    padding: 10px 12px;
    background: var(--klh3-surface-strong);
    color: var(--klh3-text-color);
}

.klh3-select {
    min-height: var(--klh3-classic-control-height);
}

.klh3-textarea {
    min-height: 110px;
}

.klh3-input:focus,
.klh3-select:focus,
.klh3-textarea:focus {
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--klh3-action-primary, var(--klh3-color-orange)) 25%, transparent);
    border-color: var(--klh3-action-primary, var(--klh3-color-orange));
}

.klh3-passenger-form h3 {
    margin: 0 0 12px;
    color: var(--klh3-heading-color);
}

.klh3-passenger-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

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

.klh3-addon-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    border: 1px solid var(--klh3-border-muted);
    border-radius: var(--klh3-radius-md);
    padding: 10px 12px;
    background: var(--klh3-surface-strong);
}

.klh3-addon-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.klh3-addon-checkbox {
    margin-right: 8px;
}

.klh3-addon-name {
    font-weight: 700;
    color: var(--klh3-text-color);
    flex: 1;
}

.klh3-addon-price {
    font-weight: 600;
    color: inherit;
    white-space: nowrap;
    margin-left: 6px;
}

.klh3-addon-description {
    color: var(--klh3-muted-text);
    font-size: 13px;
}

/* WooCommerce cart/checkout form controls (classic frontend). */
.klh3-theme .woocommerce form .form-row input.input-text,
.klh3-theme .woocommerce form .form-row textarea,
.klh3-theme .woocommerce form .form-row select {
    width: 100%;
    box-sizing: border-box;
    font-family: var(--klh3-font-family);
    font-size: var(--klh3-font-base);
    line-height: 1.3;
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-md);
    padding: 10px 12px;
    background: var(--klh3-surface-strong);
    color: var(--klh3-text-color);
}

.klh3-theme .woocommerce form .form-row select {
    min-height: var(--klh3-classic-control-height);
}

.klh3-theme .woocommerce form .form-row input.input-text:focus,
.klh3-theme .woocommerce form .form-row textarea:focus,
.klh3-theme .woocommerce form .form-row select:focus {
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--klh3-action-primary, var(--klh3-color-orange)) 25%, transparent);
    border-color: var(--klh3-action-primary, var(--klh3-color-orange));
}

.klh3-theme .select2-container--default .select2-selection--single,
.klh3-theme .select2-container--default .select2-selection--multiple {
    border: 1px solid var(--klh3-border-color);
    border-radius: var(--klh3-radius-md);
    background: var(--klh3-surface-strong);
    min-height: var(--klh3-classic-control-height);
}

.klh3-theme .select2-container--default.select2-container--focus .select2-selection--single,
.klh3-theme .select2-container--default.select2-container--focus .select2-selection--multiple,
.klh3-theme .select2-container--default.select2-container--open .select2-selection--single,
.klh3-theme .select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--klh3-action-primary, var(--klh3-color-orange));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--klh3-action-primary, var(--klh3-color-orange)) 25%, transparent);
}

.klh3-theme .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--klh3-text-color);
    line-height: calc(var(--klh3-classic-control-height) - 2px);
    padding-left: 12px;
    padding-right: 40px;
}

.klh3-theme .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: calc(var(--klh3-classic-control-height) - 2px);
    top: 0;
    right: 8px;
}

/* WooPayments / Payment Request: hide the "OR" separator (English). */
.klh3-checkout-page #wcpay-express-checkout-button-separator,
.klh3-checkout-page p#wcpay-express-checkout-button-separator,
.klh3-checkout-page .wcpay-payment-request-button__separator,
.klh3-checkout-page .wcpay-payment-request-button__or,
.klh3-checkout-page .wc-block-components-payment-request-button__separator,
.klh3-checkout-page .wc-block-components-payment-request-button__or,
.klh3-checkout-page .payment-request-button-separator {
    display: none !important;
}

/* Checkout: add breathing room between express checkout (GPay) and order review panel. */
.klh3-checkout-page .wcpay-express-checkout-wrapper {
    margin-bottom: 12px;
}

/* WooCommerce pages: prevent extra spacing between Elementor footer headings and text. */
.woocommerce-js footer#colophon h2.elementor-heading-title {
    margin-bottom: 0 !important;
    margin-block-end: 0 !important;
}

/* Trip product title: ensure it shows between breadcrumb and passenger form. */
.single-product .klh3-trip-title {
    display: block;
    margin: 0 0 16px;
    color: var(--klh3-color-text);
    font-size: var(--klh3-font-xxl, 28px);
    font-weight: 700;
    line-height: 1.2;
}
