.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ======================================
   GLOBAL KEYBOARD FOCUS STYLES
   WCAG 2.4.7 / 1.4.11 / 2.4.13
   Brand two-tone indicator: blue outline separated from the element by a light ring.
   - light backgrounds (white, #e6ebf2, grey, yellow, salmon #f4a08b): the blue outline gives
     >= 5.4:1 against the background
   - dark / brand-blue areas (footer, marquee, budget box, cart summary, menu): colours are
     swapped (white outline + dark ring), see .a11y-focus-dark below
   - any dark area not listed still passes thanks to the white inner ring (> 9:1 on dark blue)
   !important is required to beat theme/3rd-party "outline: none" rules.
====================================== */
:root {
    --a11y-focus-color: #083988;
    --a11y-focus-ring: #ffffff;
}
:focus-visible {
    outline: 2px solid var(--a11y-focus-color) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 2px var(--a11y-focus-ring) !important;
}

/* Dark / brand-blue areas: white outline, dark blue ring */
.page-footer,
.marquee-container,
.utentebudget .budget,
.porto-popup-menu.opened,
.cart-summary,
.content.personalcare[role="listitem"],
.content.beauty[role="listitem"],
.content.feedback[role="listitem"],
.a11y-focus-dark {
    --a11y-focus-color: #ffffff;
    --a11y-focus-ring: #001f4d;
}
/* ...and light panels inside those areas go back to the default */
.a11y-focus-light {
    --a11y-focus-color: #083988;
    --a11y-focus-ring: #ffffff;
}

/* No indicator for mouse users */
:focus:not(:focus-visible) {
    outline: none;
}

/* ======================================
   SKIP LINK (WCAG 2.4.1)
====================================== */
.a11y-skip-link {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 100000;
    padding: 12px 20px;
    background: #083988;
    color: #fff !important;
    font-weight: 600;
    text-decoration: underline;
    transform: translateY(-120%);
}
.a11y-skip-link:focus {
    transform: none;
}
#contentarea:focus {
    outline: none;
}

/* ======================================
   HEADER MENU: "Il nostro store" submenu toggle (WCAG 4.1.2)
   Same look as the former <a> element
====================================== */
.menu-item > .submenu-toggle {
    display: block;
    position: relative;
    width: 100%;
    margin: 0;
    padding: 10px 40px 10px 10px;
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    box-shadow: none;
    color: #fff;
    font-family: inherit;
    font-size: 2rem;
    font-weight: inherit;
    line-height: 1.2;
    text-align: left;
    text-transform: none;
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    transition: border-color .2s ease-in-out, background-color .2s ease-in-out;
}
/* Theme menu links animate "all" properties, including the focus outline: limit it */
.menu-item > a,
.submenu li a {
    transition: border-color .2s ease-in-out, background-color .2s ease-in-out, color .2s ease-in-out !important;
}
.menu-item > .submenu-toggle:hover {
    background: transparent;
    border-bottom: 1px solid #ddd;
}
.menu-item > .submenu-toggle:after {
    font-family: 'porto-icons';
    content: "\e81a";
    font-size: 1.5rem;
    position: absolute;
    right: 10px;
    transition: .2s ease-in-out;
}
.menu-item > .submenu-toggle[aria-expanded="true"]:after {
    transform: rotate(90deg);
}
@media (min-width: 769px) {
    .menu-item > .submenu-toggle {
        width: auto;
        padding: 10px 20px;
    }
    .menu-item > .submenu-toggle:after {
        position: relative;
        right: auto;
        left: 2rem;
    }
    .menu-item > .submenu-toggle[aria-expanded="true"]:after {
        transform: none;
    }
}

/* ======================================
   MARQUEE pause/play button (WCAG 2.2.2)
====================================== */
.marquee-container {
    padding-right: 56px;
}
.marquee-container .marquee-toggle {
    position: absolute;
    top: 50%;
    right: 10px;
    z-index: 2;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #003a78;
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
}
.marquee-container .marquee-toggle:hover {
    background: #fff;
    color: #003a78;
}
/* Pause icon (two bars) */
.marquee-toggle-icon {
    display: block;
    width: 10px;
    height: 12px;
    border-left: 3px solid currentColor;
    border-right: 3px solid currentColor;
}
/* Play icon (triangle) */
.marquee-toggle.is-paused .marquee-toggle-icon {
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 11px solid currentColor;
    border-right: 0;
}
.message.success a {
    text-decoration: underline;
}
.product-item-name a {
    white-space: normal;
    text-overflow: unset;
    display: -webkit-box;
    -webkit-line-clamp: 2;   /* limit to 2 lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

a:hover {
    text-decoration: underline;
}

.field.privacy.required a {
    text-decoration: underline;
}

.cms-page-view.page-layout-cms-full-width .page-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.product-addto-links .action span, .moved-add-to-links .action span, .product-social-links .action span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    display: inline;
}

.block-related-products .block-title h2 {
    color: #fff;
    text-align: center;
    background: #094197;
    padding-top: 1rem;
    padding-bottom: 1rem;
    -webkit-font-smoothing: antialiased;
}

.qty.field .qty-changer > a.qty-inc:after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    height: 9px;
    border-left: 1px solid;
    margin-top: -4.5px;
    margin-left: -.5px;
    color: #094197 !important;
}
.block.items-in-cart .title h3 {
    font-size: 16px;
    font-weight: normal;
}


/* ======================================
   PRICES: announce the struck-through price as "Prezzo originale" (WCAG 1.3.1)
   The theme hides the label with display:none, which also hides it from screen readers.
====================================== */
.price-box .old-price .price-label,
.price-box .special-price .price-label {
    display: block !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ======================================
   COLOUR CONTRAST (WCAG 1.4.3) - min 4.5:1 for normal text
====================================== */

/* Placeholders: #777 on #fff is 4.48:1 -> #666 (5.7:1) */
input::placeholder,
textarea::placeholder {
    color: #666 !important;
    opacity: 1;
}

/* Links inside feedback messages: #0088cc on #e5efe5 */
.message a,
.messages .message a,
.page.messages a {
    color: #083988 !important;
    text-decoration: underline;
}

/* Old (struck-through) prices: #a7a7a7 on white/#f9f9f9 */
.old-price .price,
.old-price del,
.price-box .old-price,
.ui-menu-item .product .info span.old-price,
.ui-menu-item .product .info span.discount-percentage {
    color: #666 !important;
}

/* ...except inside the blue product page price box (#0b4396): light text (7.5:1) */
.catalog-product-view .box-tocart .product-price .old-price,
.catalog-product-view .box-tocart .product-price .old-price .price,
.catalog-product-view .box-tocart .product-price .old-price del {
    color: #e1e8f5 !important;
}

/* Cart summary (blue box): "Checkout con indirizzi multipli" link was #083988 on #083a88 (invisible) */
.cart-summary .action.multicheckout,
.cart-summary .action.multicheckout span {
    color: #fff !important;
    text-decoration: underline;
}

/* Quantity +/- controls: #777 on white */
.quantity-control .qty-decrease,
.quantity-control .qty-increase,
.block-related-products .carousel-toggle {
    color: #555 !important;
}

/* Fieldset legends: #0088cc on white */
.fieldset > .legend,
.fieldset > .legend span {
    color: #083988 !important;
}

/* Required notes "* Campi obbligatori": #ff0000 on white -> #c40000 (6.3:1) */
.required-note {
    color: #c40000 !important;
}

/* Minicart counter badge: white on #ff5b5b -> darker red */
.minicart-wrapper .action.showcart .counter.qty {
    background-color: #d42020 !important;
}

/* Checkout progress bar inactive step "Riepilogo Pagamento": #7cb8f3 on white */
li.opc-progress-bar-item > span {
    color: #2f6aa8 !important;
}
li.opc-progress-bar-item._active > span {
    color: #003a78 !important;
}

/* Checkout secondary address actions ("Spedisci qui", "Nuovo Indirizzo"): #777 on white */
.checkout-shipping-address .action-select-shipping-item,
.checkout-shipping-address .action-show-popup,
.checkout-shipping-address .action-show-popup span {
    color: #083988 !important;
}
/* ...the theme turns them blue on hover/focus: keep the label readable */
.checkout-shipping-address .action-select-shipping-item:hover,
.checkout-shipping-address .action-select-shipping-item:focus,
.checkout-shipping-address .action-select-shipping-item:hover span,
.checkout-shipping-address .action-select-shipping-item:focus span,
.checkout-shipping-address .action-show-popup:hover,
.checkout-shipping-address .action-show-popup:focus,
.checkout-shipping-address .action-show-popup:hover span,
.checkout-shipping-address .action-show-popup:focus span {
    color: #fff !important;
}

/* Checkout payment step: shipping method name in totals (#999) and "Spedisci a:" / "Metodo di Spedizione:"
   titles (#777) on white */
.opc-block-summary .totals.shipping .mark .value,
.opc-block-shipping-information .shipping-information-title,
.opc-block-shipping-information .shipping-information-title > span {
    color: #555 !important;
}
/* "modifica" buttons next to those titles: brand link colour (theme #0088cc is 3.6:1) */
.opc-block-shipping-information .shipping-information-title .action-edit,
.opc-block-shipping-information .shipping-information-title .action-edit span {
    color: #083988 !important;
}
/* Same text in the blue cart summary (#083a88): light instead */
.cart-summary .totals.shipping .mark .value {
    color: #e1e8f5 !important;
}

/* Sticky bar category tabs: #083988 on green / purple / blue / orange backgrounds */
.altreunits a[data-category="food"],
.altreunits a[data-category="homecare"],
.altreunits a[data-category="personalcare"],
.altreunits a[data-category="adhesives"] {
    color: #000 !important;
}
.altreunits a[data-category="beauty"] {
    color: #fff !important;
}
.altreunits a:hover,
.altreunits a.active {
    color: #083988 !important;
}
/* The theme animates "all" properties on these tabs, which also animates (and can freeze) the
   focus outline; only animate the hover colours */
.altreunits a {
    transition: background-color .2s ease-in-out, color .2s ease-in-out !important;
}
/* Tabs sit on a brand-blue bar on some pages: white outline + dark ring */
.footexp {
    --a11y-focus-color: #ffffff;
    --a11y-focus-ring: #001f4d;
}

/* Homepage category tiles: #1a1a1a text fails on Beauty (#7c5695, 3:1) and Condividi (#0b4396, 1.9:1)
   -> white text (5.8:1 / 9.3:1) */
.content.beauty[role="listitem"] .title,
.content.beauty[role="listitem"] .cta,
.content.feedback[role="listitem"] .title,
.content.feedback[role="listitem"] .cta {
    color: #fff !important;
}

/* Rio Mare salmon (#f4a08b) boxes: white text is 2:1 -> dark navy (7.8:1) */
body.cms-rio-mare .category-grid .category-box:nth-child(even) .category-product-count,
body.cms-rio-mare .category-grid .category-box:nth-child(even) span.price,
.category-grid .category-box:nth-child(even) .old-price .price,
.category-filetti-di-salmone .category-grid .category-box:nth-child(even) span.price,
.category-tonno-sottolio .category-grid .category-box:nth-child(even) span.price,
.category-tonno-pescato-a-canna .category-grid .category-box:nth-child(even) span.price,
.category-naturale .category-grid .category-box:nth-child(even) span.price,
.category-pesti .category-grid .category-box:nth-child(even) span.price,
.category-pate .category-grid .category-box:nth-child(even) span.price,
.category-spalmabili-salati .category-grid .category-box:nth-child(even) span.price,
.category-sgombri .category-grid .category-box:nth-child(even) span.price,
.category-sgombri-grigliati .category-grid .category-box:nth-child(even) span.price,
.category-insalatissime .category-grid .category-box:nth-child(even) span.price,
.category-tonno-filo-dolio .category-grid .category-box:nth-child(even) span.price {
    color: #071E5F !important;
}

/* Visible required marker (WCAG 3.3.2). Hide the theme's ::after asterisk where we add our own. */
.required-mark {
    color: #c40000;
    margin-left: 2px;
}
.field.required > .label:has(.required-mark):after {
    content: none !important;
}

/* ======================================
   LINKS IN RUNNING TEXT must not rely on colour only (WCAG 1.4.1)
====================================== */
.customer-care-contact-message a,
.cms-page-view .column.main p a:not(.btn):not(.action):not(.button),
.cms-page-view .column.main li a:not(.btn):not(.action):not(.button),
.cms-page-view .column.main td a:not(.btn):not(.action):not(.button),
.category-description p a:not(.btn):not(.action),
.contact-index-index .column.main p a {
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* ======================================
   PRODUCT PAGE: previous / next product preview (WCAG 2.1.1, 1.4.13)
====================================== */
.prev-next-products .product-nav:focus-within .product-pop {
    opacity: 1;
    visibility: visible;
}
.prev-next-products .product-nav.pop-dismissed .product-pop {
    opacity: 0 !important;
    visibility: hidden !important;
}
.prev-next-products .product-nav .product-pop .product-name {
    color: #555;
}

/* ======================================
   PRODUCT PAGE ACCORDION: <h2><button> headers (WCAG 4.1.2 / 1.3.1)
   Same look as the previous <a class="data switch"> headers
====================================== */
.product.info.detailed .a11y-accordion > .item.title .accordion-heading {
    margin: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}
.product.info.detailed .a11y-accordion > .item.title .switch {
    display: block;
    position: relative;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 1rem 0 1rem 10px;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: #094197;
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 24px;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    -webkit-font-smoothing: antialiased;
    transition: background-color .3s ease;
}
.product.info.detailed .a11y-accordion > .item.title .switch:hover {
    background: #a8a8a842;
}
.product.info.detailed .a11y-accordion > .item.title .switch span {
    display: flex;
    align-items: center;
}
.product.info.detailed .a11y-accordion > .item.title .switch span:after {
    content: "+";
    display: inline;
    margin-left: 1rem;
    color: #094197;
    font-size: 23px;
    font-weight: normal;
}
.product.info.detailed .a11y-accordion > .item.title .switch[aria-expanded="true"] span:after {
    content: "\2212";
}
.product.info.detailed .a11y-accordion > .item.content {
    display: block;
    padding-top: 0;
    padding-left: 10px;
}
.product.info.detailed .a11y-accordion > .item.content[hidden] {
    display: none !important;
}

/* ======================================
   CATEGORY HERO inside <main> (WCAG 1.3.1): keep it full width
====================================== */
.page-main > .category-description.no-margin {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}
body {
    overflow-x: clip;
}

/* Inline links wrapping block content (brand tiles in category CMS blocks, sticky bar image grid):
   the focus outline of an inline box around a block child is not visible (WCAG 2.4.7) */
a:has(> .image-item),
.category-cms .bloccoincat a,
.image-grid a {
    display: block;
}

/* ======================================
   HERO CAROUSEL controls injected by js/a11y-slick (WCAG 2.2.2, 2.5.7, 4.1.2)
====================================== */
.homeslider {
    position: relative;
}
.a11y-carousel-controls {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: rgba(255, 255, 255, .9);
    border-radius: 24px;
}
.a11y-carousel-controls .a11y-carousel-prev,
.a11y-carousel-controls .a11y-carousel-next,
.a11y-carousel-controls .a11y-carousel-pause {
    position: relative;
    width: 36px;
    height: 36px;
    min-width: 36px;
    margin: 0;
    padding: 0;
    background: #003a78;
    border: 2px solid #003a78;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
}
.a11y-carousel-controls .a11y-carousel-prev:hover,
.a11y-carousel-controls .a11y-carousel-next:hover,
.a11y-carousel-controls .a11y-carousel-pause:hover {
    background: #fff;
    color: #003a78;
}
/* Chevron icons */
.a11y-carousel-prev:before,
.a11y-carousel-next:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
}
.a11y-carousel-prev:before {
    transform: translate(-30%, -50%) rotate(-135deg);
}
.a11y-carousel-next:before {
    transform: translate(-70%, -50%) rotate(45deg);
}
/* Pause (two bars) / play (triangle) icon */
.a11y-carousel-pause:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 12px;
    transform: translate(-50%, -50%);
    border-left: 3px solid currentColor;
    border-right: 3px solid currentColor;
}
.a11y-carousel-pause.is-paused:before {
    width: 0;
    height: 0;
    transform: translate(-35%, -50%);
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 11px solid currentColor;
    border-right: 0;
}
.a11y-carousel-dots {
    display: flex;
    gap: 2px;
    margin-left: 4px;
}
.a11y-carousel-controls .a11y-carousel-dot {
    position: relative;
    width: 24px;
    height: 24px;
    min-width: 24px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
}
.a11y-carousel-dot:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    transform: translate(-50%, -50%);
    border: 2px solid #003a78;
    border-radius: 50%;
    background: #fff;
}
.a11y-carousel-dot[aria-current="true"]:before {
    background: #003a78;
}

/* ======================================
   BUDGET TOOLTIP trigger (header) is a real <button> (WCAG 4.1.2 / 1.4.13)
====================================== */
.budget .tooltip-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    min-height: 24px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 50%;
    box-shadow: none;
    color: inherit;
    font-size: inherit;
    line-height: 1;
}
.budget .tooltip-icon.is-dismissed + .tooltip-text {
    visibility: hidden !important;
    opacity: 0 !important;
}

/* ======================================
   WISHLIST: visible labels for "Qtà" and "Commento" (WCAG 3.3.2)
====================================== */
.products-grid.wishlist .product-item .field.qty > .label,
.products-grid.wishlist .product-item .comment-box > .label {
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 4px !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    font-size: 13px;
    font-weight: 600;
    color: #1b1b1b;
}

/* ======================================
   CART quantity stepper: native <button>s (WCAG 4.1.2), same look as the previous links
====================================== */
.qty.field .qty-changer > button.qty-inc-cart,
.qty.field .qty-changer > button.qty-dec-cart {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    min-width: 0;
    height: 3rem;
    margin: 0;
    padding: 0;
    line-height: 3rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: #222529;
    cursor: pointer;
}
.qty.field .qty-changer > button.qty-inc-cart {
    right: 0;
    left: auto;
}
.qty.field .qty-changer > button.qty-inc-cart:hover,
.qty.field .qty-changer > button.qty-dec-cart:hover {
    color: #083988;
}
.qty.field .qty-changer > button.qty-inc-cart:before,
.qty.field .qty-changer > button.qty-dec-cart:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 9px;
    margin-top: -.5px;
    margin-left: -4.5px;
    border-top: 1px solid #094197;
}
.qty.field .qty-changer > button.qty-inc-cart:after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    height: 9px;
    margin-top: -4.5px;
    margin-left: -.5px;
    border-left: 1px solid #094197;
}

/* ======================================
   CART "Stima spedizione e tasse": <h2><button> toggle (WCAG 4.1.2), same look as before
====================================== */
.cart-summary #block-shipping > .title {
    padding: 0;
}
.cart-summary #block-shipping .block-shipping-heading {
    margin: 0;
    font: inherit;
    color: inherit;
}
/* !important: custom_bolton.css forces ".checkout-cart-index .cart-summary button" to white */
.cart-summary #block-shipping .block-shipping-toggle {
    display: block;
    width: 100%;
    margin: 0;
    padding: 7px 28px 7px 10px;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
    color: #fff !important;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.5;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}
.cart-summary #block-shipping > .content[hidden] {
    display: none !important;
}
.cart-summary #block-shipping > .content:not([hidden]) {
    display: block;
}

/* ======================================
   CHECKOUT (WCAG 1.3.1 / 4.1.2 / 3.3.1)
====================================== */
/* Address cards: native radio + label */
.shipping-address-items .shipping-address-item {
    position: relative;
    padding-left: 44px;
}
.shipping-address-items .shipping-address-radio {
    position: absolute;
    top: 22px;
    left: 16px;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #083988;
    cursor: pointer;
}
.shipping-address-items .shipping-address-label {
    display: block;
    margin: 0;
    font-weight: normal;
    cursor: pointer;
}
.shipping-address-items .shipping-address-phone {
    display: inline-block;
    margin: 2px 0 8px;
    text-decoration: underline;
}
.shipping-address-items .shipping-address-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Shipping methods: radio rows instead of a layout table */
.checkout-shipping-methods {
    margin-bottom: 20px;
}
.checkout-shipping-methods .shipping-method-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 8px;
    border-top: 1px solid #e7e7e7;
}
.checkout-shipping-methods .shipping-method-row:last-child {
    border-bottom: 1px solid #e7e7e7;
}
.checkout-shipping-methods .shipping-method-row .radio {
    flex: 0 0 auto;
    margin: 0;
    accent-color: #083988;
}
.checkout-shipping-methods .shipping-method-label {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 24px;
    margin: 0;
    font-weight: normal;
    cursor: pointer;
}
.checkout-shipping-methods .shipping-method-label .col-price {
    min-width: 70px;
    font-weight: 600;
}

/* Order summary "Articoli nel carrello" disclosure button */
.opc-block-summary .items-in-cart .items-in-cart-heading {
    margin: 0;
    font: inherit;
    color: inherit;
}
.opc-block-summary .items-in-cart .items-in-cart-toggle {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
    color: #1b1b1b !important;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

/* New address modal: error summary */
.a11y-error-summary {
    margin-bottom: 16px;
}

/* Programmatic focus target ("Metodi di spedizione" heading): only the global :focus-visible style */
#shipping-methods-title:focus:not(:focus-visible) {
    outline: none;
}

/* ======================================
   REFLOW (WCAG 1.4.10) - 320x256 CSS px / 400% zoom / 200% text
====================================== */
/* Full screen menu: centred when it fits, scrollable from the top when it does not */
.porto-popup-menu.opened {
    align-items: flex-start !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}
.porto-popup-menu.opened .custom-menu {
    margin-top: auto;
    margin-bottom: auto;
}
.porto-popup-menu.opened .custom-menu,
.porto-popup-menu.opened .menu-list {
    height: auto !important;
}
/* Desktop: keep the original design (items spread over the full viewport height, space-evenly);
   the list can still grow and scroll when the viewport is too short */
@media (min-width: 769px) {
    .porto-popup-menu.opened .custom-menu,
    .porto-popup-menu.opened .menu-list {
        min-height: 100vh;
    }
}

/* When the viewport is too short (see js/a11y-global), sticky/fixed bars would hide the content:
   put them back in the normal flow */
body.a11y-no-sticky .page-header.sticky-header .header-main,
body.a11y-no-sticky .page-header .header-main {
    position: relative !important;
    top: auto !important;
    box-shadow: none !important;
}
body.a11y-no-sticky .page-header.sticky-header {
    padding-top: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}
body.a11y-no-sticky .footercta {
    position: static !important;
    display: block !important;
    opacity: 1 !important;
}

/* The fixed bottom bar must not cover the end of the page */
body:not(.a11y-no-sticky) .page-footer {
    padding-bottom: 60px;
}

/* ======================================
   STICKY BAR (js/sticky-bar.js): arrow is a real <button>, brand groups per category
====================================== */
.footexp .toggle-arrow-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none;
    color: #fff;
    cursor: pointer;
}
.footexp .toggle-arrow-btn .toggle-arrow {
    float: none;
}
.footexp .toggle-arrow-btn[hidden] {
    display: none !important;
}
.expandable-content .image-grid[hidden] {
    display: none !important;
}
