.paymentLogo, .carrierLogo{
    height: 20px;
    padding-right: 15px;
}

#cart .productImage{
    width: 60px;
    margin-right: 5px;
}

#cart .text-primary{
    font-size: 0.8em;
    color: black !important;
    font-weight: normal;
    line-height: 1.2em;
}

#cart ul li{
    background-color: #F0F0F0;
}

#cart li .price{
    min-width: 72px;
    text-align: right;
    white-space: nowrap;
    flex-shrink: 0;
}

.promo{
    justify-content: left !important;
}
.promo a{
    line-height: 1.1em;
    padding-left: 8px;
}

a {
    color: black !important;
    text-decoration: underline !important;
}

.headerLink {
    line-height: 65px;
}

.login{
    padding: 12px;
    background-color: #F0F0F0;
    border-radius: 4px;
    margin-bottom: 10px;
}

.form-check-input:checked {
    background-color: #0890BE;
    border-color: #0890BE;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #0890BE !important;
    --bs-btn-border-color: #0890BE !important;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #0890BE !important;
    --bs-btn-hover-border-color: #0a58ca;
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0890BE !important;
    --bs-btn-active-border-color: #0890BE !important;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #0890BE !important;
    --bs-btn-disabled-border-color: #0890BE !important;
}

.carrier-price {
    float: right;
    font-weight: bold;
    color: #555;
    margin-left: auto;
    margin-right: 0;
    position: absolute;
    right: 15px;
    top: 0;
    background: transparent;
    padding-left: 8px;
    white-space: nowrap;
}

.carrier-price-original {
    color: #999;
    font-weight: normal;
    text-decoration: line-through;
    margin-right: 4px;
}

/* Reserve enough space on the right so long labels (e.g. selected pickup point
   address + "vybrat jiné místo" link) never slide under the price. */
.cart-item-row .form-check-label {
    display: inline-block;
    padding-right: 90px;
    word-break: break-word;
    line-height: 1.3;
}

/* Optional carrier description shown only when the carrier is selected. */
.carrier-description {
    display: none;
    font-size: 0.85em;
    color: #666;
    margin-top: 4px;
    padding-left: 0;
    line-height: 1.35;
}
.cart-item-row input.carrier:checked ~ .carrier-description {
    display: block;
}

.shipping-login-hint {
    font-size: 0.85em;
    color: #666;
    margin-bottom: 10px;
    line-height: 1.35;
}

.btn-half-height {
    line-height: 1 !important; /* Adjust line height to reduce spacing */
    padding-top: 0.375rem !important;
    padding-bottom: 0.375rem !important;
}

.topmargin{
    margin-top: 5px !important;
}

.hasDefault{
    padding-bottom: 11px;
    display: block;
}

.addresses #form{
    display: none;
}

.was-validated .exclude-validation .form-check-input:invalid ~ .form-check-label,
.was-validated .exclude-validation .form-check-input:valid ~ .form-check-label,
.was-validated .exclude-validation .form-check-input.is-invalid ~ .form-check-label
{
    color: initial; /* Or set your desired color */
}

.was-validated .exclude-validation .form-check-input:valid {
    border-color: initial;
}

.exclude-validation .form-check-input.is-valid:checked,
.was-validated  .exclude-validation .form-check-input:valid:checked{
    background-color: #0d6efd;
}

.form-check-label{
    padding-right: 50px;
}

.form-check {
    position: relative;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Hide the up/down spinner arrows in Firefox as well (webkit handled above). */
input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* Required-field asterisk: defaults to the shop's button colour (set via the
   --checkout-required-color variable in the inline <style> in index.php) so the
   "*" visually matches the primary action button, falling back to red. */
.required-mark {
    color: var(--checkout-required-color, #d6001c);
}

/* Legend explaining the asterisk, shown under the first form heading. */
.required-fields-note {
    font-size: 0.85em;
    color: #666;
    margin-bottom: 12px;
}

/* Optional page heading (e.g. "NÁKUPNÍ KOŠÍK"), driven by the page_heading
   setting. It lives inside the header so it can be centred between the logo
   (left) and the "continue shopping" link (right). */
.page-heading {
    margin: 0;
    text-align: center;
    font-weight: 700;
    font-size: 1.6em;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.checkout-header {
    position: relative;
}

/* Desktop: logo stays left (me-md-auto), link stays right (ms-auto) and the
   heading is absolutely centred over the header so it is truly between them,
   regardless of the logo / link widths. */
@media (min-width: 768px) {
    .checkout-header.has-page-heading .page-heading {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        white-space: nowrap;
        pointer-events: none;
    }
}

/* Mobile: stack the heading full-width under the logo. */
@media (max-width: 767.98px) {
    .checkout-header .page-heading {
        flex: 0 0 100%;
        order: 3;
        margin-top: 6px;
    }
}

/* Sub-headings when carriers are split into pickup-point / to-address groups
   (group_carriers setting). */
.shipping-group-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 10px 0 6px;
}
.shipping-group + .shipping-group {
    margin-top: 12px;
}

/* Compact layout (shipping_first setting): reorder the form sections to
   1. Doprava → 2. Platba → 3. Dodací údaje without changing the DOM order, so
   the JS (which keys off element ids/classes, not position) keeps working. */
form.checkout-shipping-first {
    display: flex;
    flex-direction: column;
}
form.checkout-shipping-first .checkout-section-shipping { order: 1; }
form.checkout-shipping-first .checkout-section-payment  { order: 2; }
form.checkout-shipping-first .checkout-section-delivery { order: 3; }
form.checkout-shipping-first .checkout-section-extra    { order: 4; }
form.checkout-shipping-first .checkout-section-custom   { order: 5; }
form.checkout-shipping-first #submit                    { order: 6; }
.section-number {
    white-space: nowrap;
}

#deliveryAddressTitle,
#deliveryAddressForm{
    display: none;
}

#submit{
    margin-bottom: 40px;
}

.cart-item-row{
    padding-bottom: 10px;
}

#psGlsName{
    display: none;
}

.google-address-suggestions {
    display: none;
    position: absolute;
    z-index: 2000;
    width: 100%;
    margin-top: 2px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.google-address-suggestion {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    color: #212529;
    text-align: left;
    background: #fff;
    border: 0;
}

.google-address-suggestion:hover,
.google-address-suggestion:focus {
    background: #f8f9fa;
}

.pickup-map-overlay {
    position: fixed;
    inset: 0;
    z-index: 1055;
    padding: 24px;
    background: rgba(0, 0, 0, 0.55);
}

.pickup-map-modal {
    position: relative;
    width: min(1100px, 100%);
    height: min(760px, 100%);
    margin: 0 auto;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

.pickup-map-close {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    width: 36px;
    height: 36px;
    font-size: 28px;
    line-height: 30px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 50%;
}

#ppl-parcelshop-map {
    width: 100%;
    height: 100%;
}

@media (max-width: 575.98px) {
    .cart-item-row .form-check-label {
        display: block;
        padding-right: 0;
    }
    .carrier-price {
        position: static;
        float: none;
        display: block;
        text-align: right;
        padding-left: 0;
        margin-top: 4px;
    }
    /* On narrow screens hide the crossed-out original price so only the final
       free/discounted price is shown — avoids it crowding/overlapping the
       carrier label (e.g. "zvolit pobočku") when space is tight. */
    .carrier-price-original {
        display: none;
    }
}

/* Editable order summary (cart_editable setting): per-line quantity stepper
   and a remove (trash) button, shown under each item name. */
.qty-stepper {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}
.qty-stepper .qty-btn {
    width: 26px;
    height: 26px;
    line-height: 1;
    padding: 0;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 4px;
    font-size: 16px;
    color: #333;
    cursor: pointer;
}
.qty-stepper .qty-btn:hover {
    background: #f0f0f0;
}
.qty-stepper .qty-value {
    min-width: 24px;
    text-align: center;
    font-size: 0.95em;
}
.qty-stepper .qty-remove {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    padding: 2px;
    border: 0;
    background: transparent;
    color: #999;
    cursor: pointer;
}
.qty-stepper .qty-remove:hover {
    color: #d6001c;
}
/* Line total sits at the top-right next to the first line of the item. */
#cart .cart-line .line-price {
    align-self: flex-start;
}
/* Removed line must actually disappear: the cart line carries Bootstrap's
   .d-flex (display:flex !important), which would otherwise win over jQuery's
   inline display:none from .hide(). */
#cart .cart-line.cart-line-removed {
    display: none !important;
}

