/* TacPay single-page checkout (`html-onepage-checkout`): hide top menu entirely (logo / search / cart unchanged). */
html.html-onepage-checkout .desktop-nav-wrapper .header-menu,
html.html-onepage-checkout .desktop-nav-wrapper .header-menu-parent {
    display: none !important;
}

html.html-onepage-checkout .responsive-nav-wrapper-parent {
    display: none !important;
}

.checkout-steps                                     { float: left; padding-right: 20px; box-sizing: border-box; }
.checkout-steps + .checkout-order-summary           { float: right; width: 40%; box-sizing: border-box; }
.osc-clearfix                                       { clear: both; }

@media (max-width: 768px) {
    .checkout-steps,
    .checkout-steps + .checkout-order-summary       { float: none; width: 100%; padding-right: 0; }
}

.osc-hidden                                         { display: none; }
.osc-opc-form                                       { display: none; }

#osc-cart-section                                    { margin-bottom: 24px; }
#osc-cart-section .cart-footer                       { display: none; }
#osc-cart-section .checkout-order-summary            { float: none; width: auto; }
#opc-voucher_box                                     { margin-bottom: 24px; }
.osc-section-title                                   { font-size: 1em; font-weight: 600; margin-bottom: 12px; border-bottom: 1px solid #eee; padding-bottom: 8px; }
#osc-payment-section                                 { margin-top: 8px; }

html.html-onepage-checkout .fastlane-reservation-page #osc-payment-section {
    margin-top: 4px;
}
#osc-payment-section .adyen-checkout__button--pay    { display: none !important; }
#osc-payment-section .payment-info                   { max-width: none !important; }

html.html-onepage-checkout #osc-payment-section .osc-section-title {
    border-bottom: none;
    padding-bottom: 0;
}

html.html-onepage-checkout #osc-payment-section .checkout-data {
    background: transparent;
}

html.html-onepage-checkout #osc-payment-section .payment-info {
    background: transparent !important;
    padding: 0 !important;
}

html.html-onepage-checkout #osc-payment-section .payment-info .info {
    border-bottom: none;
    margin: 0;
    padding: 0;
}

.osc-sidebar-section                                 { background: #fff; border: 1px solid #eee; border-radius: 4px; padding: 16px 20px; margin-bottom: 16px; }
.osc-card-header                                     { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.osc-card-header strong                              { font-size: 20px; line-height: 1.2; font-weight: 700; }
.osc-card-header a,
.osc-card-header button                              { background: none; border: none; cursor: pointer; font-size: .85em; padding: 0; text-decoration: none; }
.osc-card-header a:hover,
.osc-card-header button:hover                        { text-decoration: underline; }
.osc-card-header .edit-button span                   { display: block; width: 40px; height: 40px; background-position: center; background-size: 60px; background-repeat: no-repeat; font-size: 0; }
.osc-address-lines                                   { font-size: .9em; line-height: 1.7; color: #333; }
.osc-ship-same-row                                   { margin-top: 10px; display: flex; align-items: center; gap: 6px; font-size: .9em; }
.osc-edit-btn                                        { background: none; border: none; cursor: pointer; padding: 0; }

.osc-ship-header                                     { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.osc-ship-header strong                              { font-size: .95em; font-weight: 600; }
.osc-ship-cost                                       { font-weight: 600; font-size: .95em; }
#osc-shipping-select                                 { width: 100%; }
.osc-sidebar-section .select-wrap,
.address-edit-page .checkout-data .select-wrap       { display: inline-block; width: 100%; }
.osc-ship-single                                     { font-size: .9em; color: #555; margin-top: 4px; }

html.html-onepage-checkout .checkout-order-summary .osc-sidebar-section .data-protection-terms {
    margin-bottom: 10px;
    font-size: .9em;
}

#osc-place-order                                     { width: 100%; text-transform: uppercase; letter-spacing: 1px; padding: 14px; font-size: 1em; }
#confirm-order-please-wait                           { margin-top: 10px; text-align: center; }
#osc-checkout-error                                  { margin-top: 8px; }

#osc-totals .order-subtotal,
#osc-totals .shipping-cost,
#osc-totals .tax-rate                                { display: none; }

/* OPC sidebar: hide cart-page-only chrome that the editable OrderSummary renders.
   !important needed where mobile-table.js sets inline display styles. */
#osc-cart-section .cart-options                      { display: none; }
#osc-cart-section .cart .remove-from-cart,
#osc-cart-section .cart th.remove-from-cart,
#osc-cart-section .cart .mobile-table-row-detail,
#osc-cart-section .cart .mobile-table-toggle         { display: none !important; }

/* TacPay Drop-in: neutralise the selected payment-method grey background (#F7F8F9). */
#tacpay-dropin .adyen-checkout__payment-method       { background-color: transparent !important; }
#osc-totals .order-total                             { font-size: 20px; font-weight: 700; }
#osc-totals .order-total .cart-total-left,
#osc-totals .order-total .cart-total-right           { padding: 8px 0; }
#osc-totals .order-total .value-summary strong       { font-weight: 700; }

.billing-address-page  .new-address-next-step-button,
.shipping-address-page .new-address-next-step-button { min-width: 200px; }

.premium .checkout-page.address-edit-page.registration-page .fieldset .edit-address {
    display: contents;
}

.premium .checkout-page.address-edit-page.registration-page .fieldset .edit-address::after {
    display: none;
    clear: none;
    content: none;
}

.premium .checkout-page.address-edit-page.registration-page .fieldset .form-fields {
    gap: 16px 24px;
}

/* Fastlane billing: beat registration-page form-fields padding + .inputs { margin-bottom: 43px } */
html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields {
    gap: 16px 20px;
    padding: 20px !important;
}

html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.registration-page .inputs {
    margin: 0 !important;
    flex: 0 0 calc((100% - 40px) / 3);
    width: calc((100% - 40px) / 3);
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Remove zero-width flex items so they don't consume gap space (causing right-side asymmetry).
   Selectors use descendant (not >) because intervening wrappers are display:contents. */
html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.registration-page .fieldset .form-fields style,
html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.registration-page .fieldset .form-fields input[type="hidden"],
html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.registration-page .fieldset .form-fields .section.select-billing-address:empty {
    display: none !important;
}

/* Mobile: stack inputs vertically with equal full width */
@media (max-width: 600px) {
    html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel.registration-page .inputs {
        flex: 0 0 100%;
        width: 100%;
    }
}

/* Fastlane TacPay: flatten OpcBillingAddress wrappers (.inputs → .form-fields like edit-billing) */
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields > form,
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields > form > #checkout-billing-load,
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields form .checkout-data,
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields form #billing-new-address-form,
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields form .enter-address,
.premium .checkout-page.fastlane-reservation-page .fastlane-billing-panel.address-edit-page.registration-page .fieldset .form-fields form .edit-address {
    display: contents !important;
}

.premium .checkout-page.address-edit-page.registration-page .fieldset .form-fields .ship-to-same-address {
    flex-basis: 100%;
    width: 100%;
}

.premium .checkout-page.address-edit-page.registration-page .fieldset .form-fields .buttons {
    flex-basis: 100%;
    width: 100%;
    margin-top: 32px;
}

/* TacPay single-page: one outer panel — same colors/radius as `.osc-sidebar-section`, inner strips unboxed */
html.html-onepage-checkout .checkout-order-summary {
    background-color: #F9F9F9; /* same value as .cart th / .opc .step-title */
    border-radius: 4px;
    padding: 0;
    margin-bottom: 16px;
    box-sizing: border-box;
    overflow: hidden;
}

html.html-onepage-checkout .checkout-order-summary > *,
html.html-onepage-checkout .vouchers-box {
    border-bottom: 1px solid #eee;
}

html.html-onepage-checkout .vouchers-box {
    padding-bottom: 20px;
}

html.html-onepage-checkout .checkout-order-summary > *:last-child {
    border-bottom: none;
}

html.html-onepage-checkout .checkout-order-summary > .osc-sidebar-section,
html.html-onepage-checkout .checkout-order-summary > #osc-totals.osc-sidebar-section {
    background: transparent;
    border: none;
    border-radius: 0;
    margin-bottom: 0;
    padding: 16px 20px;
    box-shadow: none;
}

html.html-onepage-checkout .checkout-order-summary > #opc-confirm_order {
    padding: 16px 20px;
    margin: 0;
    background: transparent;
    border: none;
}

/* One-step (TacPay): hide AGB / Datenschutz in #opc-confirm_order (copy lives next to #osc-place-order via _DataProtection); terms still auto-accepted in script */
html.html-onepage-checkout #opc-confirm_order .terms-of-service,
html.html-onepage-checkout #opc-confirm_order .data-protection-terms {
    display: none !important;
}

html.html-onepage-checkout .checkout-order-summary #opc-confirm_order .checkout-data {
    padding: 0;
}

.fastlane-reservation-page #co-billing-form .select-billing-address {
    display: none !important;
}

.fastlane-reservation-page {
    --panelColor: #f9f9f9;
}

.fastlane-reservation-page .fastlane-billing-panel {
    margin-bottom: 4px;
}

html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel .step-title {
    background-color: var(--panelColor);
    font-size: 15px;
    line-height: 1.25;
    padding: 16px 20px;
    text-align: left;
}

html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel .step-title .title {
    display: inline-block;
    vertical-align: middle;
    font-weight: 600;
    color: #333;
    font-size: 1em;
    text-transform: uppercase;
}

html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel .step-title h2.title {
    margin: 0;
}

html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel .fieldset,
html.html-onepage-checkout .fastlane-reservation-page .fastlane-billing-panel .form-fields {
    background-color: var(--panelColor);
}

/* Defensive: duplicate `.edit-address` from widget zones */
.fastlane-reservation-page #billing-new-address-form .edit-address ~ .edit-address {
    display: none !important;
}

/* Fastlane right column: hide empty OPC confirm / broken OrderTotals fragment */
.fastlane-reservation-page #opc-confirm_order,
.fastlane-reservation-page .total-info {
    display: none !important;
}

/* Right-column calculated Total card on the Fastlane page. */
.fastlane-reservation-page #osc-totals .fastlane-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 1.1em;
}

.fastlane-reservation-page #osc-totals .fastlane-total-label {
    font-weight: 700;
}

.fastlane-reservation-page #osc-totals .fastlane-total-value {
    font-weight: 700;
}

/* Fastlane: separate cards in checkout-order-summary */
html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary {
    border: none;
    background: transparent;
    border-radius: 0;
    padding: 0;
    overflow: visible;
}

html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary > * {
    border: 1px solid #eee !important;
    background: #fff;
    border-radius: 4px;
    margin-bottom: 12px;
    padding: 20px !important;
}

html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary > *:last-child {
    margin-bottom: 0;
}

html.html-onepage-checkout .fastlane-reservation-page .category-fastlane-checkout {
    margin-top: 48px;
}

html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary #osc-totals {
    margin-bottom: 0 !important;
    border-bottom: none !important;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary .osc-sidebar-section:has(#osc-place-order) {
    border-top: none !important;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: 0;
    padding-top: 12px;
}

/* ---------------------------------------------------------------------------
   Shipping dropdown (#osc-shipping-select) — shared by the Fastlane
   reservation page and the TacPay one-step-checkout sidebar.
   The Premium theme uses the "transparent select + styled .select-box overlay"
   pattern (see styles.css §.select-wrap select { opacity: 0 } and §.select-box).
   So the visible UI is `.select-box`, not the native <select>. Style the
   `.select-box` to match the surrounding card look and add a chevron on the right.
   --------------------------------------------------------------------------- */
#osc-shipping-ui {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

#osc-shipping-ui .osc-ship-header {
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

#osc-shipping-ui .osc-ship-header strong {
    font-weight: 600;
    font-size: 0.95em;
}

#osc-shipping-ui .osc-ship-cost {
    font-weight: 600;
    font-size: 0.95em;
}

/* `.inputs` wrapper (same pattern as _CreateOrUpdateAddress fields) — keep it
   block-level and remove the default `margin-bottom` so it fits inside the
   sidebar card without adding vertical whitespace. Force full width: the
   Premium base `.inputs { width: 440px; max-width: 100% }` rule from styles.css
   §4 caps it to 440px otherwise. */
#osc-shipping-ui .inputs {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#osc-shipping-ui .inputs .select-wrap {
    position: relative;
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 40px;
    margin: 0;
    box-sizing: border-box;
}

#osc-shipping-ui .inputs .select-wrap select#osc-shipping-select {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0;
    padding: 0;
    border: 0;
    z-index: 2;
    cursor: pointer;
}

#osc-shipping-ui .inputs .select-wrap .select-box {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    height: 40px !important;
    padding: 0 32px 0 12px !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    background-image: none !important;
    display: block !important;
    line-height: 38px !important;
    pointer-events: none;
}

#osc-shipping-ui .inputs .select-wrap .select-box:after {
    top: 50% !important;
    transform: translateY(-50%);
    right: 10px !important;
}

#osc-shipping-ui .inputs .select-wrap .select-box .select-inner {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#osc-shipping-ui .inputs .select-wrap:hover .select-box,
#osc-shipping-ui .inputs .select-wrap select:focus + .select-box {
    border-color: #bbb !important;
    box-shadow: 0 0 0 2px rgba(20, 130, 130, 0.08);
}

/* Allow the cost cell to wrap below the label on very narrow widths. */
@media (max-width: 480px) {
    #osc-shipping-ui .osc-ship-header {
        flex-wrap: wrap;
    }
}

/* Mobile: scale down the 20px section headers + total (ship-header stays small). */
@media (max-width: 720px) {
    .osc-card-header strong,
    #osc-totals .order-total,
    #osc-totals .order-total .value-summary strong { font-size: 18px; }
    .osc-card-header { margin-bottom: 8px; }
    .osc-card-header .edit-button span { width: 32px; height: 32px; background-size: 48px; }
    #osc-totals .order-total .cart-total-left,
    #osc-totals .order-total .cart-total-right { padding: 6px 0; }
}

@media (max-width: 480px) {
    .osc-card-header strong,
    #osc-totals .order-total,
    #osc-totals .order-total .value-summary strong { font-size: 16px; }
    .osc-card-header .edit-button span { width: 28px; height: 28px; background-size: 42px; }
}

/* Voucher row: group input + action icons in one tight row instead of
   floating the icons to the container's right edge (global styles.css
   pins the .btn-wrapper position:absolute right:0, leaving a wide gap). */
html.html-onepage-checkout .vouchers-box .shoppingcart-register-voucher-wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
}
html.html-onepage-checkout .vouchers-box .shoppingcart-register-voucher-text-wrapper {
    width: auto;
    flex: 0 1 280px;
}
html.html-onepage-checkout .vouchers-box .shoppingcart-register-voucher-btn-wrapper {
    position: static;
    flex: 0 0 auto;
    width: auto;                  /* override global width: 30% that stretched btn-wrapper */
    justify-content: flex-start;  /* override global flex-end that pushed icons to right edge */
    gap: 5px;
}

html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary .osc-sidebar-section,
html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary #osc-totals,
html.html-onepage-checkout .fastlane-reservation-page .checkout-order-summary .checkout-sidebar-card {
    background-color: var(--panelColor);
}
