/* Currency choices are tickers only; input currency and amount occupy separate space. */
.dispo-currency-switcher nav { width: 100px; }
.dispo-currency-switcher nav a { justify-content: center; }
.dispo-currency-switcher nav a > span:first-child { width: auto; font-size: 15px; }
/* Price controls share the shop's rounded fields; labels stay visible when editing. */
.range-input--price { padding: .4rem 0 1.8rem; }
.range-input--price .range-input__results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; margin-bottom: 2.4rem; }
.range-input--price .range-input__results span { width: auto; min-width: 0; height: auto; background: none; }
.range-input--price .range-input__results-field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; padding: 1.1rem 1.2rem; border: 1px solid var(--color-border-gray-1); border-radius: 1.4rem; background: var(--color-bg-surface); cursor: text; transition: border-color .18s, box-shadow .18s; }
.range-input--price .range-input__results-field::before { display: none; }
.range-input--price .range-input__results-field:focus-within { border-color: var(--color-bg-inverted); box-shadow: 0 0 0 2px var(--color-border-gray-1); }
.range-input--price .range-input__results .range-input__caption { color: var(--color-text-muted); font-size: 1.2rem; line-height: 1.3; }
.range-input--price .range-input__value { display: flex; align-items: center; gap: .6rem; }
.range-input--price .range-input__results-field .input-ranges { width: 100%; min-width: 0; height: 2.6rem; padding: 0; border: 0; border-radius: 0; outline: none; background: transparent; color: var(--color-text-strong); font: inherit; font-size: 1.8rem; font-weight: 600; line-height: 1.4; font-variant-numeric: tabular-nums; appearance: textfield; -moz-appearance: textfield; }
.range-input--price .range-input__results .range-input__currency { flex: 0 0 auto; color: var(--color-text-muted); font-size: 1.3rem; line-height: 1.3; }
.range-input--price input::-webkit-inner-spin-button, .range-input--price input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.range-input--price .range-input__slider { margin-inline: 1.2rem; height: .4rem; border-radius: 1rem; background: var(--color-gray-300); }
.range-input--price .range-input__inputs { margin-inline: 1.2rem; height: 2rem; }
.range-input--price .range-input__inputs input { top: -2.4rem; left: -2.2rem; width: calc(100% + 4.4rem); height: 4.4rem; margin: 0; transform: none; }
.range-input--price .range-input__inputs input::-webkit-slider-thumb { width: 4.4rem; height: 4.4rem; border: 0; border-radius: 50%; background: radial-gradient(circle, var(--color-bg-surface) 0 9px, var(--color-bg-inverted) 9px 12px, transparent 12px); }
.range-input--price .range-input__inputs input::-moz-range-thumb { width: 4.4rem; height: 4.4rem; border: 0; border-radius: 50%; background: radial-gradient(circle, var(--color-bg-surface) 0 9px, var(--color-bg-inverted) 9px 12px, transparent 12px); pointer-events: auto; }
.range-input--price .range-input__inputs input:focus-visible { outline: 2px solid var(--color-bg-inverted); outline-offset: 3px; border-radius: 1rem; }
@media (prefers-reduced-motion: reduce) { .range-input--price .range-input__results-field { transition: none; } }
.catalog__no-products .button { letter-spacing: .035em; line-height: 1.15; white-space: normal; padding-inline: 2.4rem; }
.about-block__text { white-space: pre-line; }
.dispo-cart-errors { width: min(72rem, calc(100% - 3.2rem)); margin: 10rem auto 6rem; padding: clamp(2rem, 4vw, 4rem); border: 1px solid var(--color-bg-divider); border-radius: 2.4rem; background: var(--color-bg-surface); }
.dispo-cart-errors h1 { font-size: clamp(2.8rem, 4vw, 4.8rem); line-height: 1.15; margin-bottom: 2rem; }
.dispo-cart-errors p { margin-bottom: 2rem; line-height: 1.5; }
.dispo-cart-errors__notices { margin: 2rem 0; overflow-wrap: anywhere; }
.dispo-cart-errors__notices :is(.woocommerce-error,.woocommerce-message,.woocommerce-info) { position: static; width: auto; max-width: 100%; margin: 0; padding: 2rem; border: 1px solid #ad4242; border-radius: 1.6rem; background: #fff2ee; list-style: none; }
.dispo-cart-errors__notices :is(.woocommerce-error,.woocommerce-message,.woocommerce-info)::before { display: none; }
.dispo-cart-errors__actions { display: flex; flex-wrap: wrap; gap: 2rem; align-items: center; }
.dispo-cart-errors__actions .button { min-height: 4.4rem; }
.product-card__stock { font-size: 1.5rem; line-height: 1.4; margin-top: .8rem; }
.product-card .button:disabled { opacity: .55; cursor: not-allowed; }
.dispo-address-validation { clear: both; width: 100%; margin: 1rem 0 2rem; padding: 1.6rem; border: 1px solid #ad4242; border-radius: 1.2rem; background: #fff2ee; color: #7d2424; font-size: 1.5rem; line-height: 1.4; }
/* The payment action follows the consent controls instead of covering the basket. */
body .checkout #place_order { position: static; inset: auto; width: 100%; margin-top: 2.4rem; min-height: 4.8rem; z-index: auto; }
@media (max-width: 1023px) {
    body form.checkout > .checkout__aside { order: 1; }
    body .checkout #payment .place-order { padding-bottom: max(7rem, calc(env(safe-area-inset-bottom) + 2.4rem)); }
}
/* Product photos are supplied on transparent canvases; show the complete object. */
.product-card__image img { object-fit: contain; padding: 1.5rem; box-sizing: border-box; }
.product-single__gallery-images .swiper-slide img { object-fit: contain; }
.product-single__gallery-images { overflow: hidden; }
.checkout__product-img img { object-fit: contain; object-position: center; padding: 1rem; box-sizing: border-box; }
/* Reserve the checkout action's own row instead of covering the order summary. */
.cart-modal { height: 100dvh; }
.cart-modal .checkout__aside { display: flex; flex-direction: column; height: 100%; max-height: 100%; }
.cart-modal .checkout__title { flex: 0 0 auto; }
.cart-modal .checkout__body { flex: 1 1 auto; min-height: 0; height: auto; padding-bottom: 2.4rem; }
.cart-modal__foot { position: static; flex: 0 0 auto; padding: 1.6rem 2.4rem 2.4rem; background: var(--color-bg-surface); }
/* On phones the entire basket, including its action, is one scrollable column. */
@media (max-width: 640px) {
    body .cart-modal .checkout__aside {
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        /* Leave room for the existing cookie-preferences control as well. */
        padding-bottom: max(7rem, calc(env(safe-area-inset-bottom) + 2.4rem));
    }
    body .cart-modal .checkout__body {
        flex: 0 0 auto;
        height: auto;
        overflow: visible;
        padding-bottom: 0;
    }
    body .cart-modal .cart-modal__foot {
        position: static;
        margin-top: 2.4rem;
        padding: 0;
        border-radius: 0;
        box-shadow: none;
    }
    body .cart-modal .cart-modal__foot .button { min-height: 4.4rem; }
}
.dispo-language-switcher:not(.dispo-currency-switcher) nav { width: 100px; }
.dispo-language-switcher:not(.dispo-currency-switcher) nav a { justify-content: center; }
.dispo-language-switcher:not(.dispo-currency-switcher) nav a > span:first-child { width: auto; font-size: 15px; }
.dispo-language-switcher:not(.dispo-currency-switcher) .dispo-language-switcher__check { display: none; }
/* A persistent pink selection shared by product weights and catalog pagination. */
body .product-card__weight label input:checked ~ span,
body .product-single .product-card__weight label input:checked ~ span,
body .pagination__list li.active > :is(a, span),
body .pagination__list [aria-current="page"] {
    background-color: var(--color-blush);
    border-color: var(--color-text-strong);
    color: var(--color-text-strong);
    box-shadow: inset 0 0 0 1px var(--color-text-strong);
}
/* Keep the native radio keyboard-accessible while its visible label carries focus. */
body .product-card__weight label input {
    visibility: visible;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    z-index: 0;
}
body .product-card__weight label input:focus-visible ~ span,
body .pagination__list a:focus-visible {
    outline: 2px solid var(--color-text-strong);
    outline-offset: 3px;
}
@media (hover: hover) {
    body .product-card__weight label input:not(:checked):not(:disabled) ~ span:hover {
        border-color: var(--color-text-strong);
    }
}
/* Keep the price and weight selector on one row; the action owns the next row. */
@media (min-width: 640px) {
    .product-card__bottom {
        display: grid;
        grid-template-columns: minmax(0, 1fr) max-content;
        gap: 1rem .8rem;
    }
    .product-card__bottom > .product-card__price {
        min-width: 0;
        white-space: nowrap;
        font-size: clamp(2rem, 2.5vw, 3.2rem);
    }
    .product-card__bottom > .product-card__weight {
        gap: .6rem;
        flex-wrap: nowrap;
    }
    .product-card__bottom > .product-card__weight label span {
        white-space: nowrap;
        padding-inline: clamp(.6rem, .6vw, 1rem);
        font-size: clamp(1.6rem, 1.4vw, 2rem);
    }
    .product-card__bottom > .button { grid-column: 1 / -1; }
}

/* Germany uses one editable city field; its optional state selector is redundant. */
.checkout .dispo-checkout-state-hidden { display: none !important; }
/* Checkout country lists use the same compact type as their fields. */
body.woocommerce-checkout .select2-dropdown { padding: .8rem; }
body.woocommerce-checkout .select2-results__option {
    max-width: 100%;
    font-size: 1.6rem;
    line-height: 1.4;
    padding: .7rem 1rem;
}
/* PayU has one visible brand mark, centred against the payment radio. */
body .checkout #payment .dispo-payment-payu > label {
    display: inline-flex;
    align-items: center;
    min-height: 3.2rem;
}
body .checkout #payment .dispo-payment-payu > label::before {
    top: 50%;
    transform: translateY(-50%);
}
body .checkout #payment .dispo-payment-payu > label img {
    display: block;
    float: none;
    width: auto;
    height: 2.8rem;
    max-height: none;
    margin: 0;
}
