/**
 * Orola Child Theme — theme.css  v3.1.0  · Direzione F
 * ─────────────────────────────────────────────────────────────────────────────
 * Direzione: MODERN MINIMAL · bianco-first · oro come accento funzionale
 *
 * Brand     Gold  #caa133  ·  Navy  #1c3464
 * Fonts     Inter (single sans, no Cormorant)
 * Icons     Bootstrap Icons 1.11 (CDN, caricate da head.tpl)
 * Parent    Hummingbird 2.0.x  ·  Bootstrap 5.3.3  ·  PrestaShop 9.1.1
 *
 * REGOLE D'ORO
 *  - Niente box-shadow decorativi, niente gradient, niente backdrop-filter.
 *  - Bordi sottili (0.5–1px) come unico elemento di separazione.
 *  - White space generoso. Spaziatura in rem, gap interni in px.
 *  - Tabular numerals per i prezzi.
 *  - Hummingbird usa @layer: questo file è unlayered → vince il cascade
 *    senza !important (salvo override !important del parent).
 *  - Le utility Bootstrap (d-flex, container-md, row, col-*…) sono già
 *    compilate nel parent: NON ridefinirle qui.
 *
 * INDICE
 *   1. Design tokens
 *   2. Reset & tipografia globale
 *   3. Topbar (.header-top)
 *   4. Header sticky (.header-bottom)
 *   5. Logo
 *   6. Search bar
 *   7. Account / Cart icons
 *   8. Desktop navigation (ps-mainmenu)
 *   9. Mobile menu offcanvas
 *  10. Reassurance strip
 *  11. Bottoni
 *  12. Form & input
 *  13. Product miniature
 *  14. Listing / category
 *  15. Pagina prodotto
 *  16. Breadcrumb
 *  17. Checkout / cart
 *  18. Footer
 *  19. Bottom mobile nav
 *  20. Utility & override mirati
 * ─────────────────────────────────────────────────────────────────────────────
 */


/* ═══════════════════════════════════════════════════════════════════════════
   1. DESIGN TOKENS
═══════════════════════════════════════════════════════════════════════════ */
:root {
  /* ── Palette ── */
  --orola-gold:           #caa133;
  --orola-gold-dark:      #a0801f;
  --orola-gold-light:     #e8d28a;
  --orola-gold-pale:      #faf4e3;
  --orola-navy:           #1c3464;
  --orola-navy-dark:      #14233c;
  --orola-navy-soft:      #4a5b85;

  /* ── Surfaces / neutri ── */
  --orola-white:          #ffffff;
  --orola-bg:             #ffffff;
  --orola-surface:        #f7f7f5;          /* hero panels, soft cards */
  --orola-surface-2:      #fafafa;          /* product image bg */
  --orola-border:         #ececec;          /* default 1px */
  --orola-border-strong:  #d9d9d6;          /* hover / emphasis */
  --orola-text:           #1c3464;          /* corpo testo = navy */
  --orola-text-muted:     #6b7280;
  --orola-text-faint:     #9aa0a6;

  /* ── Semantic ── */
  --orola-success:        #1d9e75;
  --orola-danger:         #c0392b;

  /* ── Typography ── */
  --font-ui:              'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* ── Radii ── */
  --radius-sm:            4px;
  --radius-md:            8px;
  --radius-lg:            12px;
  --radius-pill:          999px;

  /* ── Spacing ── */
  --space-1:              4px;
  --space-2:              8px;
  --space-3:              12px;
  --space-4:              16px;
  --space-5:              24px;
  --space-6:              32px;
  --space-7:              48px;

  /* ── Layout ── */
  --header-h:             64px;
  --topbar-h:             34px;
  --container-max:        1600px;

  /* ── Motion ── */
  --t-fast:               120ms ease;
  --t-med:                200ms ease;
}

/* Override variabili Bootstrap (limitato all'essenziale) */
:root {
  --bs-body-font-family:  var(--font-ui);
  --bs-body-color:        var(--orola-text);
  --bs-body-bg:           var(--orola-bg);
  --bs-primary:           var(--orola-gold);
  --bs-link-color:        var(--orola-navy);
  --bs-link-hover-color:  var(--orola-gold-dark);
  --bs-border-color:      var(--orola-border);
  --bs-border-radius:     var(--radius-md);
}


/* ═══════════════════════════════════════════════════════════════════════════
   2. RESET & TIPOGRAFIA GLOBALE
═══════════════════════════════════════════════════════════════════════════ */
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-ui);
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--orola-text);
  background: var(--orola-bg);
  line-height: 1.55;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-ui);
  font-weight: 500;
  color: var(--orola-navy-dark);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
h1, .h1 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); font-weight: 600; }
h2, .h2 { font-size: clamp(1.35rem, 2vw, 1.65rem); }
h3, .h3 { font-size: 1.15rem; }

a { color: var(--orola-navy); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--orola-gold-dark); }

::selection { background: var(--orola-gold); color: var(--orola-navy-dark); }


/* ═══════════════════════════════════════════════════════════════════════════
   3. TOPBAR  (.header-top)
═══════════════════════════════════════════════════════════════════════════ */
.header-top {
  background: var(--orola-navy-dark);
  color: var(--orola-white);
  min-height: var(--topbar-h);
  font-size: 12px;
  letter-spacing: 0.01em;
}
.header-top a,
.header-top .nav-link,
.header-top .dropdown-toggle {
  color: var(--orola-white);
  opacity: 0.9;
}
.header-top a:hover { color: var(--orola-gold); opacity: 1; }
.header-top .container-md { min-height: var(--topbar-h); }

@media (max-width: 767.98px) {
  .header-top { display: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   4. HEADER STICKY  (.header-bottom)
═══════════════════════════════════════════════════════════════════════════ */
.header {
  background: var(--orola-white);
  border-bottom: 1px solid var(--orola-border);
  position: sticky; top: 0; z-index: 1020;
}
.header-bottom {
  min-height: var(--header-h);
  background: var(--orola-white);
}
.header-bottom__row {
  min-height: var(--header-h);
  padding-block: 8px;
}

.header-bottom + .ps-mainmenu--desktop,
.header .ps-mainmenu--desktop {
  border-top: 1px solid var(--orola-border);
  background: var(--orola-white);
}


/* ═══════════════════════════════════════════════════════════════════════════
   5. LOGO
═══════════════════════════════════════════════════════════════════════════ */
.header-bottom__logo img,
.header .logo img {
  max-height: 42px;
  width: auto;
  display: block;
}
.header-bottom__h1 { line-height: 1; margin: 0; }


/* ═══════════════════════════════════════════════════════════════════════════
   6. SEARCH BAR  (#search_widget)
═══════════════════════════════════════════════════════════════════════════ */
#search_widget,
.search-widget {
  max-width: 480px;
  flex: 1 1 auto;
}
#search_widget form,
.search-widget form { position: relative; }
#search_widget input[type="text"],
.search-widget input[type="text"] {
  width: 100%;
  height: 40px;
  padding: 0 44px 0 16px;
  background: var(--orola-surface);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-size: 14px;
  color: var(--orola-text);
  transition: border-color var(--t-fast), background var(--t-fast);
}
#search_widget input[type="text"]:hover,
.search-widget input[type="text"]:hover {
  background: var(--orola-white);
  border-color: var(--orola-border-strong);
}
#search_widget input[type="text"]:focus,
.search-widget input[type="text"]:focus {
  outline: none;
  background: var(--orola-white);
  border-color: var(--orola-gold);
  box-shadow: 0 0 0 3px var(--orola-gold-pale);
}
#search_widget input::placeholder { color: var(--orola-text-faint); }
#search_widget button[type="submit"],
.search-widget button[type="submit"] {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px;
  background: transparent; color: var(--orola-navy); border: 0;
  border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
}
#search_widget button[type="submit"]:hover { color: var(--orola-gold-dark); }


/* ═══════════════════════════════════════════════════════════════════════════
   7. ACCOUNT / CART ICONS  (header right)
═══════════════════════════════════════════════════════════════════════════ */
.orola-account-btn,
.header-block__action-btn,
.blockcart .header__action {
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--orola-navy);
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  transition: background var(--t-fast), color var(--t-fast);
  text-decoration: none;
}
.orola-account-btn:hover,
.header-block__action-btn:hover,
.blockcart .header__action:hover {
  background: var(--orola-surface);
  color: var(--orola-gold-dark);
}
.blockcart .header__action { position: relative; }
.blockcart .header__action .cart-products-count,
.blockcart__count {
  position: absolute; top: -2px; right: -2px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--orola-gold); color: var(--orola-navy-dark);
  font-size: 11px; font-weight: 600;
  border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
  font-variant-numeric: tabular-nums;
}


/* ═══════════════════════════════════════════════════════════════════════════
   8. DESKTOP NAVIGATION  (ps-mainmenu)
═══════════════════════════════════════════════════════════════════════════ */
.ps-mainmenu--desktop .ps-mainmenu__desktop { padding: 0; }
.ps-mainmenu__desktop .top-menu {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 4px;
}
.ps-mainmenu__desktop .top-menu > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 14px;
  font-size: 14px; font-weight: 500;
  color: var(--orola-navy);
  border-radius: 0;
  position: relative;
  transition: color var(--t-fast);
}
.ps-mainmenu__desktop .top-menu > li > a::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px;
  height: 2px; background: var(--orola-gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--t-med);
}
.ps-mainmenu__desktop .top-menu > li:hover > a,
.ps-mainmenu__desktop .top-menu > li.current > a,
.ps-mainmenu__desktop .top-menu > li > a:focus-visible {
  color: var(--orola-navy-dark);
}
.ps-mainmenu__desktop .top-menu > li:hover > a::after,
.ps-mainmenu__desktop .top-menu > li.current > a::after {
  transform: scaleX(1);
}

.ps-mainmenu__desktop .sub-menu,
.ps-mainmenu__desktop .top-menu .submenu {
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 12px;
  margin-top: 4px;
}
.ps-mainmenu__desktop .sub-menu a {
  font-size: 13px;
  color: var(--orola-text);
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  display: block;
}
.ps-mainmenu__desktop .sub-menu a:hover {
  background: var(--orola-gold-pale);
  color: var(--orola-navy-dark);
}


/* ═══════════════════════════════════════════════════════════════════════════
   9. MOBILE MENU OFFCANVAS  (#mobileMenu)
═══════════════════════════════════════════════════════════════════════════ */
.ps-mainmenu__mobile-toggle button,
.navbar-toggler {
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--orola-navy);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-pill);
}
.ps-mainmenu__mobile-toggle button:hover { background: var(--orola-surface); }

#mobileMenu.offcanvas {
  background: var(--orola-white);
  border-right: 1px solid var(--orola-border);
}
#mobileMenu .offcanvas-header {
  border-bottom: 1px solid var(--orola-border);
  padding: 16px 20px;
}
#mobileMenu .offcanvas-body { padding: 8px 12px; }
#mobileMenu .top-menu,
#mobileMenu .submenu { list-style: none; margin: 0; padding: 0; }
#mobileMenu .top-menu > li > a,
#mobileMenu .submenu > li > a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 12px;
  font-size: 15px; font-weight: 500;
  color: var(--orola-navy);
  border-bottom: 1px solid var(--orola-border);
}
#mobileMenu .top-menu > li > a:hover,
#mobileMenu .submenu > li > a:hover { color: var(--orola-gold-dark); }


/* ═══════════════════════════════════════════════════════════════════════════
   10. REASSURANCE STRIP  (.header-nav-full-width / blockreassurance)
═══════════════════════════════════════════════════════════════════════════ */
.header-nav-full-width,
#block-reassurance {
  background: var(--orola-surface);
  border-bottom: 1px solid var(--orola-border);
}
#block-reassurance ul {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 24px;
  list-style: none; margin: 0; padding: 14px 16px;
}
#block-reassurance ul li {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--orola-navy-dark);
}
#block-reassurance ul li img,
#block-reassurance ul li svg { width: 22px; height: 22px; }
@media (max-width: 575.98px) {
  #block-reassurance ul { gap: 12px; padding: 10px 12px; font-size: 12px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   11. BOTTONI
═══════════════════════════════════════════════════════════════════════════ */
.btn {
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.01em;
  border-radius: var(--radius-md);
  padding: 10px 18px;
  border: 1px solid transparent;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  text-transform: none;
}
.btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--orola-gold-pale);
}

/* Primary: oro pieno (CTA conversione, ATC) */
.btn-primary,
.btn-add-to-cart,
button[name="add-to-cart"],
.btn[data-button-action="add-to-cart"] {
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  border-color: var(--orola-gold);
}
.btn-primary:hover,
.btn-add-to-cart:hover,
button[name="add-to-cart"]:hover,
.btn[data-button-action="add-to-cart"]:hover {
  background: var(--orola-gold-dark);
  color: var(--orola-white);
  border-color: var(--orola-gold-dark);
}

/* Secondary: navy outline */
.btn-secondary,
.btn-outline-secondary,
.btn-outline {
  background: var(--orola-white);
  color: var(--orola-navy);
  border-color: var(--orola-border-strong);
}
.btn-secondary:hover,
.btn-outline-secondary:hover,
.btn-outline:hover {
  background: var(--orola-navy);
  color: var(--orola-white);
  border-color: var(--orola-navy);
}

/* Ghost / link */
.btn-link {
  color: var(--orola-navy);
  text-decoration: none;
  padding: 8px 12px;
}
.btn-link:hover { color: var(--orola-gold-dark); }


/* ═══════════════════════════════════════════════════════════════════════════
   12. FORM & INPUT
═══════════════════════════════════════════════════════════════════════════ */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
textarea,
select {
  font-family: var(--font-ui);
  font-size: 14px;
  color: var(--orola-text);
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  min-height: 40px;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.form-control:focus,
.form-select:focus,
input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--orola-gold);
  box-shadow: 0 0 0 3px var(--orola-gold-pale);
}
.form-label,
label {
  font-size: 13px;
  font-weight: 500;
  color: var(--orola-navy-dark);
  margin-bottom: 6px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   13. PRODUCT MINIATURE
═══════════════════════════════════════════════════════════════════════════ */
.product-miniature,
.js-product-miniature {
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color var(--t-med);
  height: 100%;
  display: flex; flex-direction: column;
}
.product-miniature:hover { border-color: var(--orola-navy); }

.product-miniature .thumbnail-container,
.product-miniature .product-thumbnail {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--orola-surface-2);
  overflow: hidden;
}
.product-miniature .thumbnail-container img,
.product-miniature .product-thumbnail img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 8px;
  transition: transform var(--t-med);
}
.product-miniature:hover .thumbnail-container img,
.product-miniature:hover .product-thumbnail img {
  transform: scale(1.03);
}

.product-miniature .product-description,
.product-miniature .product-info {
  padding: 12px 14px 14px;
  display: flex; flex-direction: column; gap: 4px;
  flex: 1 1 auto;
}
.product-miniature .product-manufacturer,
.product-miniature .product-brand {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orola-gold-dark);
  font-weight: 600;
}
.product-miniature .product-title,
.product-miniature h2,
.product-miniature h3 {
  font-size: 13px;
  font-weight: 500;
  color: var(--orola-navy-dark);
  margin: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-miniature .product-title a { color: inherit; }
.product-miniature .product-title a:hover { color: var(--orola-gold-dark); }

.product-miniature .product-price-and-shipping,
.product-miniature .price {
  display: inline-flex; align-items: baseline; gap: 8px;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}
.product-miniature .price {
  font-size: 14px; font-weight: 600;
  color: var(--orola-navy-dark);
}
.product-miniature .regular-price {
  font-size: 12px;
  color: var(--orola-text-faint);
  text-decoration: line-through;
  font-weight: 400;
}
.product-miniature .discount,
.product-miniature .discount-percentage {
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  font-size: 11px; font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}

.product-miniature .product-flags {
  position: absolute; top: 8px; left: 8px;
  display: flex; flex-direction: column; gap: 4px;
  list-style: none; margin: 0; padding: 0;
}
.product-miniature .product-flag {
  display: inline-block;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 3px 8px;
  background: var(--orola-navy-dark); color: var(--orola-white);
  border-radius: var(--radius-sm);
}
.product-miniature .product-flag.discount,
.product-miniature .product-flag.on-sale {
  background: var(--orola-gold); color: var(--orola-navy-dark);
}
.product-miniature .product-flag.new {
  background: var(--orola-white); color: var(--orola-navy-dark);
  border: 1px solid var(--orola-border-strong);
}


/* ═══════════════════════════════════════════════════════════════════════════
   14. LISTING / CATEGORY
═══════════════════════════════════════════════════════════════════════════ */
.page-category .page-title,
.page-header .h1 {
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  font-weight: 600;
  color: var(--orola-navy-dark);
  margin-bottom: 8px;
}
#category-description,
.category-description {
  color: var(--orola-text-muted);
  font-size: 14px;
  max-width: 720px;
}

.products,
#products .products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}

#search_filters,
.search-filters {
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 16px;
}
#search_filters .facet-title,
.search-filters .facet-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--orola-navy-dark);
  margin: 0 0 8px;
}

#js-product-list-top,
.products-selection {
  border-bottom: 1px solid var(--orola-border);
  padding-bottom: 12px;
  margin-bottom: 16px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   15. PAGINA PRODOTTO
═══════════════════════════════════════════════════════════════════════════ */
.product-detail .product-name,
.product-detail h1 {
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  font-weight: 600;
  color: var(--orola-navy-dark);
  margin-bottom: 4px;
}
.product-detail .product-manufacturer,
.product-detail .product-brand {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--orola-gold-dark);
  font-weight: 600;
  margin-bottom: 8px;
}
.product-detail .product-reference {
  font-size: 12px;
  color: var(--orola-text-muted);
}

.product-prices .current-price,
.product-detail .current-price {
  font-size: 28px;
  font-weight: 600;
  color: var(--orola-navy-dark);
  font-variant-numeric: tabular-nums;
}
.product-prices .regular-price,
.product-detail .regular-price {
  font-size: 16px;
  color: var(--orola-text-faint);
  text-decoration: line-through;
}
.product-prices .discount,
.product-detail .discount {
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  font-size: 12px; font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
}

.product-images .product-thumbs .thumb,
.product-images img.thumb {
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color var(--t-fast);
}
.product-images img.thumb.selected,
.product-images img.thumb:hover {
  border-color: var(--orola-gold);
}

.product-add-to-cart {
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 16px;
  background: var(--orola-white);
  margin-top: 16px;
}
.product-quantity,
.qty { display: inline-flex; align-items: center; gap: 8px; }
.product-quantity .qty input,
.qty input { width: 64px; text-align: center; }


/* ═══════════════════════════════════════════════════════════════════════════
   16. BREADCRUMB
═══════════════════════════════════════════════════════════════════════════ */
.breadcrumb,
nav.breadcrumb {
  background: transparent;
  padding: 12px 0;
  font-size: 12px;
  color: var(--orola-text-muted);
}
.breadcrumb a { color: var(--orola-text-muted); }
.breadcrumb a:hover { color: var(--orola-gold-dark); }
.breadcrumb .active,
.breadcrumb [aria-current="page"] {
  color: var(--orola-navy-dark);
  font-weight: 500;
}
.breadcrumb-item + .breadcrumb-item::before {
  content: "›"; color: var(--orola-text-faint); padding: 0 6px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   17. CHECKOUT / CART
═══════════════════════════════════════════════════════════════════════════ */
.cart-grid,
#main .cart-summary,
#main .cart-detailed {
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
}
.cart-summary { padding: 16px; }
.cart-summary .cart-summary-line { font-size: 14px; }
.cart-summary .cart-total {
  font-size: 18px;
  color: var(--orola-navy-dark);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

#checkout #header,
body#checkout .header { box-shadow: none; }
.checkout-step {
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 16px;
  margin-bottom: 12px;
}
.checkout-step.-current { border-color: var(--orola-gold); }


/* ═══════════════════════════════════════════════════════════════════════════
   18. FOOTER
═══════════════════════════════════════════════════════════════════════════ */
.page-footer,
#footer,
footer.page-footer {
  background: var(--orola-white);
  border-top: 1px solid var(--orola-border);
  color: var(--orola-text);
  font-size: 13px;
  padding-block: 40px 16px;
}
.page-footer h3,
#footer h3,
#footer .h3 {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orola-navy-dark);
  margin-bottom: 12px;
}
.page-footer a,
#footer a { color: var(--orola-text-muted); }
.page-footer a:hover,
#footer a:hover { color: var(--orola-gold-dark); }
.page-footer ul,
#footer ul { list-style: none; padding: 0; margin: 0; }
.page-footer ul li,
#footer ul li { padding: 4px 0; }

.footer-copyright,
.copyright {
  background: var(--orola-navy-dark);
  color: var(--orola-white);
  font-size: 12px;
  padding: 14px 0;
  margin-top: 32px;
  text-align: center;
}
.footer-copyright a,
.copyright a { color: var(--orola-gold-light); }


/* ═══════════════════════════════════════════════════════════════════════════
   19. BOTTOM MOBILE NAV  (custom orola)
═══════════════════════════════════════════════════════════════════════════ */
.orola-bottom-nav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
  display: none;
  background: var(--orola-white);
  border-top: 1px solid var(--orola-border);
  padding: 6px 4px env(safe-area-inset-bottom);
}
.orola-bottom-nav__item {
  flex: 1 1 0;
  display: inline-flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 6px 4px;
  font-size: 10px; color: var(--orola-navy);
  text-decoration: none;
  border-radius: var(--radius-sm);
}
.orola-bottom-nav__item i { font-size: 20px; }
.orola-bottom-nav__item.is-active { color: var(--orola-gold-dark); }
@media (max-width: 767.98px) {
  .orola-bottom-nav { display: flex; }
  body { padding-bottom: 62px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   20. UTILITY & OVERRIDE MIRATI
═══════════════════════════════════════════════════════════════════════════ */
.tabular { font-variant-numeric: tabular-nums; }
.text-gold { color: var(--orola-gold-dark); }
.text-navy { color: var(--orola-navy-dark); }
.bg-soft   { background: var(--orola-surface); }
.divider-gold {
  height: 1px; background: var(--orola-gold); opacity: 0.4; border: 0;
}

:focus-visible {
  outline: 2px solid var(--orola-gold);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   21. OROLA MEGAMENU  (custom orola — categorie + brand reali, sempre visibile)
═══════════════════════════════════════════════════════════════════════════ */
.orola-megamenu {
  background: var(--orola-white);
  border-bottom: 1px solid var(--orola-border);
}
.orola-megamenu__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 16px;
  display: flex; align-items: center; justify-content: center;
  gap: 4px;
}
.orola-megamenu__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 0;
  flex-wrap: wrap;
}
.orola-megamenu__list > li { position: relative; }
.orola-megamenu__list > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 14px 16px;
  font-size: 13px; font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--orola-navy);
  position: relative;
  white-space: nowrap;
}
.orola-megamenu__list > li > a::after {
  content: ""; position: absolute; left: 16px; right: 16px; bottom: 8px;
  height: 2px; background: var(--orola-gold);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--t-med);
}
.orola-megamenu__list > li:hover > a,
.orola-megamenu__list > li.is-active > a { color: var(--orola-navy-dark); }
.orola-megamenu__list > li:hover > a::after,
.orola-megamenu__list > li.is-active > a::after { transform: scaleX(1); }
.orola-megamenu__list > li > a .bi { font-size: 10px; opacity: .6; }

/* dropdown panel */
.orola-megamenu__panel {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(4px);
  min-width: 560px; max-width: 90vw;
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  display: none;
  z-index: 1019;
}
.orola-megamenu__panel.is-wide { min-width: 720px; }
.orola-megamenu__list > li:hover > .orola-megamenu__panel,
.orola-megamenu__list > li:focus-within > .orola-megamenu__panel { display: grid; }
.orola-megamenu__panel { grid-template-columns: 1fr 1fr; gap: 18px 28px; }
.orola-megamenu__col h4 {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--orola-gold-dark);
  margin: 0 0 8px;
}
.orola-megamenu__col ul { list-style: none; margin: 0; padding: 0; }
.orola-megamenu__col li a {
  display: block;
  padding: 6px 0;
  font-size: 13px;
  color: var(--orola-text);
}
.orola-megamenu__col li a:hover { color: var(--orola-gold-dark); }

.orola-megamenu__cta {
  font-size: 12px; font-weight: 600;
  color: var(--orola-navy-dark);
  border-left: 1px solid var(--orola-border);
  padding-left: 16px;
  margin-left: 8px;
}

/* nasconde su mobile (sostituito da #mobileMenu) */
@media (max-width: 991.98px) {
  .orola-megamenu { display: none; }
}


/* ── Nascondi i moduli home placeholder di Hummingbird (sample slider,
      banner generico "20% OFF clothes", custom text spedizione 24h) ── */
.page-content--home > .ps-imageslider,
.page-content--home > .ps-customtext,
.page-content--home > .ps-banner,
.page-content--home > .ps-featuredproducts,
.page-content--home > .ps-bestsellers,
#imageslider, .imageslider,
.page-content--home > #ps_imageslider { display: none !important; }

/* ── Sezioni prodotto home (Novità, Top sconti) — stile Orola Modern ── */
.page-content--home > .ps-newproducts,
.page-content--home > .ps-specials {
  max-width: var(--container-max) !important;
  margin: 24px auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.ps-newproducts > .h2,
.ps-newproducts > h2,
.ps-newproducts__title,
.ps-specials > .h2,
.ps-specials > h2,
.ps-specials__title {
  font-family: var(--font-editorial) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: clamp(1.6rem, 2.2vw, 2rem) !important;
  color: var(--orola-navy-dark) !important;
  letter-spacing: 0 !important;
  margin: 0 0 18px !important;
  position: relative;
  padding-left: 16px;
}
.ps-newproducts > h2::before,
.ps-newproducts > .h2::before,
.ps-specials > h2::before,
.ps-specials > .h2::before {
  content: "";
  position: absolute; left: 0; top: 8px; bottom: 8px;
  width: 4px;
  background: var(--orola-gold);
  border-radius: 2px;
}
/* sostituiamo il titolo della sezione con la nostra dicitura Orola */
.page-content--home > .ps-newproducts > h2,
.page-content--home > .ps-newproducts > .h2 { visibility: hidden; position: relative; }
.page-content--home > .ps-newproducts > h2::after,
.page-content--home > .ps-newproducts > .h2::after {
  content: "Novità";
  visibility: visible;
  position: absolute; left: 16px; top: 0;
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: inherit;
  color: var(--orola-navy-dark);
  white-space: nowrap;
}
.page-content--home > .ps-specials > h2,
.page-content--home > .ps-specials > .h2 { visibility: hidden; position: relative; }
.page-content--home > .ps-specials > h2::after,
.page-content--home > .ps-specials > .h2::after {
  content: "Top sconti";
  visibility: visible;
  position: absolute; left: 16px; top: 0;
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: inherit;
  color: var(--orola-navy-dark);
  white-space: nowrap;
}

/* product list dentro questi moduli: 4 colonne desktop, responsive */
.ps-newproducts .products,
.ps-specials .products,
.ps-newproducts__products,
.ps-specials__products,
.ps-newproducts ul,
.ps-specials ul {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
@media (max-width: 767.98px) {
  .ps-newproducts .products,
  .ps-specials .products,
  .ps-newproducts ul,
  .ps-specials ul {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}

/* CTA "Vedi tutti" via pseudo-element */
.page-content--home > .ps-newproducts::after,
.page-content--home > .ps-specials::after {
  content: "";
  display: block;
  margin-top: 18px;
  text-align: center;
}


/* page-content--home è un grid auto-fit nel parent Hummingbird: le nostre
   section + TUTTI i moduli PS (ps_imageslider, ps_customtext, ps_banner,
   ps_featuredproducts, ps_newproducts, ps_bestsellers, ps_specials…)
   devono occupare tutta la riga per non finire in colonna stretta. */
.page-content--home > .orola-hero,
.page-content--home > .orola-brand-strip,
.page-content--home > .orola-occasions,
.page-content--home > .orola-services,
.page-content--home > .orola-editorial,
.page-content--home > .orola-reviews,
.page-content--home > .orola-blog,
.page-content--home > .orola-cats,
.page-content--home > [class*="ps-"],
.page-content--home > .ps-imageslider,
.page-content--home > .ps-customtext,
.page-content--home > .ps-banner,
.page-content--home > .ps-featuredproducts,
.page-content--home > .ps-newproducts,
.page-content--home > .ps-bestsellers,
.page-content--home > .ps-specials,
.page-content--home > .ps-brandlist,
.page-content--home > .ps-supplierlist,
.page-content--home > section,
.page-content--home > div {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* il page-content stesso non deve limitare l'asse trasversale */
.page-content--home {
  grid-template-columns: 1fr !important;
  gap: 24px !important;
  max-width: 100% !important;
  padding-inline: 24px !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   22. HOMEPAGE — HERO  (Modern Minimal, bozza C)
═══════════════════════════════════════════════════════════════════════════ */
.orola-hero {
  max-width: var(--container-max);
  margin: 18px auto 0;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 14px;
}
@media (max-width: 767.98px) { .orola-hero { grid-template-columns: 1fr; } }

.orola-hero__main {
  background: var(--orola-surface);
  border-radius: var(--radius-lg);
  padding: 36px 36px 28px;
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 280px;
}
.orola-hero__kicker {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--orola-gold-dark);
  margin-bottom: 14px;
}
.orola-hero__title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 600;
  color: var(--orola-navy-dark);
  line-height: 1.1;
  margin: 0 0 8px;
  max-width: 380px;
}
.orola-hero__title em { color: var(--orola-gold-dark); font-style: normal; }
.orola-hero__sub {
  font-size: 14px;
  color: var(--orola-text-muted);
  max-width: 380px;
  margin: 0 0 16px;
}
.orola-hero__cta-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
  margin-top: auto;
}
.orola-hero__cta-row .meta { font-size: 12px; color: var(--orola-text-muted); }

.orola-hero__side { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.orola-hero__tile {
  border-radius: var(--radius-lg);
  padding: 22px;
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 132px;
  transition: transform var(--t-med);
}
.orola-hero__tile:hover { transform: translateY(-2px); }
.orola-hero__tile--navy { background: var(--orola-navy-dark); color: var(--orola-white); }
.orola-hero__tile--gold { background: var(--orola-gold); color: var(--orola-navy-dark); }
.orola-hero__tile .ki {
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  opacity: .9;
}
.orola-hero__tile--navy .ki { color: var(--orola-gold); }
.orola-hero__tile h3 {
  font-size: 17px; font-weight: 600;
  margin: 0;
  color: inherit;
}


/* ═══════════════════════════════════════════════════════════════════════════
   23. HOMEPAGE — BRAND STRIP  (17 marchi reali)
═══════════════════════════════════════════════════════════════════════════ */
.orola-brand-strip {
  max-width: var(--container-max);
  margin: 40px auto 0;
  padding: 0 24px;
}
.orola-brand-strip__title {
  font-family: var(--font-editorial) !important;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  color: var(--orola-navy-dark) !important;
  text-align: left;
  margin: 0 0 18px;
  padding-left: 14px;
  border-left: 4px solid var(--orola-gold);
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.orola-brand-strip__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);   /* 7 colonne fisse su desktop */
  gap: 12px;
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-lg);
  background: var(--orola-white);
  padding: 16px;
  box-shadow: 0 2px 12px rgba(28,52,100,0.05);
}
.orola-brand-strip__item {
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 16 / 9;
  padding: 4px;                                /* da 14 → 4 (zoom logo) */
  border-radius: var(--radius-md);
  transition: background var(--t-fast), transform var(--t-fast);
  background: transparent;
  overflow: hidden;
}
.orola-brand-strip__item:hover {
  background: var(--orola-surface-cool);
  transform: scale(1.04);
}
.orola-brand-strip__item img {
  width: 100%; height: 100%;                   /* riempie tutto il box */
  max-width: none; max-height: none;
  object-fit: contain;                          /* mantieni proporzioni logo */
  filter: grayscale(15%);
  transition: filter var(--t-fast), transform var(--t-fast);
  transform: scale(1.35);                       /* zoom in interno ×1.35 */
}
.orola-brand-strip__item:hover img {
  filter: grayscale(0%);
  transform: scale(1.45);                       /* zoom extra al hover */
}
@media (max-width: 1199.98px) {
  .orola-brand-strip__grid { grid-template-columns: repeat(5, 1fr); gap: 10px; }
}
@media (max-width: 991.98px) {
  .orola-brand-strip__grid { grid-template-columns: repeat(4, 1fr); gap: 10px; }
}
@media (max-width: 767.98px) {
  .orola-brand-strip__grid { grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 10px; }
}
@media (max-width: 480px) {
  .orola-brand-strip__grid { grid-template-columns: repeat(2, 1fr); }
}


/* ═══════════════════════════════════════════════════════════════════════════
   24. HOMEPAGE — GENDER CARDS  (Uomo / Donna / Bambino)
═══════════════════════════════════════════════════════════════════════════ */
.orola-gender {
  max-width: var(--container-max);
  margin: 32px auto 0;
  padding: 0 16px;
}
.orola-gender__title {
  font-size: clamp(1.2rem, 1.8vw, 1.4rem);
  font-weight: 600;
  color: var(--orola-navy-dark);
  margin: 0 0 14px;
}
.orola-gender__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 767.98px) { .orola-gender__grid { grid-template-columns: 1fr; } }
.orola-gender__card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--orola-surface);
  display: flex; align-items: flex-end;
  padding: 18px 20px;
  text-decoration: none;
  border: 1px solid var(--orola-border);
}
.orola-gender__card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  transition: transform var(--t-med);
}
.orola-gender__card:hover img { transform: scale(1.03); }
.orola-gender__card::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20, 35, 60, 0.55), rgba(20, 35, 60, 0) 60%);
  z-index: 1;
}
.orola-gender__card-text {
  position: relative; z-index: 2;
  color: var(--orola-white);
  font-size: 16px; font-weight: 600;
  letter-spacing: 0.02em;
}


/* ═══════════════════════════════════════════════════════════════════════════
   25. HOMEPAGE — CATEGORY GRID (12 macro categorie)
═══════════════════════════════════════════════════════════════════════════ */
.orola-cats {
  max-width: var(--container-max);
  margin: 40px auto 16px;
  padding: 0 16px;
}
.orola-cats__title {
  font-size: clamp(1.2rem, 1.8vw, 1.4rem);
  font-weight: 600;
  color: var(--orola-navy-dark);
  margin: 0 0 16px;
}
.orola-cats__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}
@media (max-width: 1199.98px) { .orola-cats__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767.98px)  { .orola-cats__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)     { .orola-cats__grid { grid-template-columns: repeat(2, 1fr); } }
.orola-cats__item {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 18px 10px;
  background: var(--orola-white);
  border: 1px solid var(--orola-border);
  border-radius: var(--radius-md);
  color: var(--orola-navy-dark);
  text-decoration: none;
  text-align: center;
  font-size: 12px; font-weight: 500;
  transition: border-color var(--t-fast), color var(--t-fast);
}
.orola-cats__item:hover {
  border-color: var(--orola-gold);
  color: var(--orola-gold-dark);
}
.orola-cats__item .bi { font-size: 24px; color: var(--orola-gold-dark); }


/* ═══════════════════════════════════════════════════════════════════════════
   26. HEADER FIX  (v3.0.1) — cleanup ps_mainmenu inline, cart pill, search,
                   bandiere rotte, hairline residue.
═══════════════════════════════════════════════════════════════════════════ */

/* ── 26.1 nascondi ps_mainmenu desktop dentro l'header (sostituito dal
        nostro orola-megamenu sotto). Il blocco mobile (offcanvas) resta. ── */
.header .ps-mainmenu--desktop,
.header-bottom .ps-mainmenu--desktop,
.header-bottom__row > .ps-mainmenu--desktop,
.header-bottom #menu-mobile,
.header-bottom .menu--current,
.header-bottom .ps-mainmenu__desktop {
  display: none !important;
}
/* il mobile-toggle hamburger deve restare per <lg */
.header .ps-mainmenu__mobile-toggle { display: inline-flex; }
@media (min-width: 992px) {
  .header .ps-mainmenu__mobile-toggle { display: none !important; }
}

/* ── 26.2 cart: stop al pill oro gigante del parent, ridurre a icona pulita ── */
.blockcart,
.blockcart .header,
#_desktop_ps_shoppingcart,
#_mobile_ps_shoppingcart,
#_desktop_ps_shoppingcart .header-block,
#_mobile_ps_shoppingcart .header-block {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.blockcart .header__action,
.blockcart a.header__action,
.blockcart-link,
#_desktop_ps_shoppingcart a,
#_mobile_ps_shoppingcart a {
  width: 40px; height: 40px;
  min-width: 40px;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  color: var(--orola-navy) !important;
  border: 1px solid transparent !important;
  border-radius: var(--radius-pill) !important;
  position: relative;
  font-size: 0; /* nasconde la label inline "Carrello" del parent */
}
.blockcart .header__action:hover,
.blockcart a.header__action:hover,
#_desktop_ps_shoppingcart a:hover,
#_mobile_ps_shoppingcart a:hover {
  background: var(--orola-surface) !important;
  color: var(--orola-gold-dark) !important;
}
.blockcart .header__action i,
.blockcart .header__icon,
.blockcart svg,
#_desktop_ps_shoppingcart .bi,
#_mobile_ps_shoppingcart .bi {
  font-size: 20px !important;
  line-height: 1;
}
/* etichette testuali nascoste (icona-only) */
.blockcart .header__title,
.blockcart .header-block__title,
.blockcart .header__label {
  display: none !important;
}
/* badge contatore: pill oro piccola in alto a destra */
.blockcart .cart-products-count,
.blockcart__count,
.blockcart .header__badge,
.header-block__badge {
  position: absolute !important;
  top: -4px !important; right: -4px !important;
  min-width: 18px !important; height: 18px !important;
  padding: 0 5px !important;
  background: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  font-size: 11px !important; font-weight: 600 !important;
  border-radius: var(--radius-pill) !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* ── 26.3 account icon: stessa dimensione del cart per uniformità ── */
#_desktop_ps_customersignin .header-block__action-btn,
#_mobile_ps_customersignin .header-block__action-btn,
.orola-account-btn {
  width: 40px; height: 40px;
  min-width: 40px;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--orola-navy) !important;
  border-radius: var(--radius-pill) !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  padding: 0 !important;
}
#_desktop_ps_customersignin .header-block__action-btn:hover,
.orola-account-btn:hover {
  background: var(--orola-surface) !important;
  color: var(--orola-gold-dark) !important;
}
.orola-account-btn .bi,
.header-block__action-btn .bi { font-size: 20px; line-height: 1; }

/* ── 26.4 search: input pill chiara, padding corretto, no overlap icona ── */
.ps-searchbar,
#_desktop_ps_searchbar form,
#search_widget {
  position: relative;
  max-width: 480px;
  flex: 1 1 auto;
}
.ps-searchbar input,
.ps-searchbar__input,
#search_widget input,
#search_widget input[type="text"],
#search_widget input[type="search"] {
  width: 100% !important;
  height: 40px !important;
  padding: 0 44px 0 18px !important;
  background: var(--orola-surface) !important;
  border: 1px solid transparent !important;
  border-radius: var(--radius-pill) !important;
  font-size: 14px !important;
  color: var(--orola-text) !important;
  box-shadow: none !important;
}
.ps-searchbar input:hover,
#search_widget input:hover {
  background: var(--orola-white) !important;
  border-color: var(--orola-border-strong) !important;
}
.ps-searchbar input:focus,
#search_widget input:focus {
  background: var(--orola-white) !important;
  border-color: var(--orola-gold) !important;
  box-shadow: 0 0 0 3px var(--orola-gold-pale) !important;
  outline: none !important;
}
.ps-searchbar button[type="submit"],
#search_widget button[type="submit"] {
  position: absolute !important;
  right: 6px !important; top: 50% !important; transform: translateY(-50%) !important;
  width: 32px !important; height: 32px !important;
  background: transparent !important;
  color: var(--orola-navy) !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
}

/* ── 26.5 nascondi le immagini bandiera rotte nella topbar ── */
.header-top img[src=""],
.header-top img:not([src]),
.header-top img[src*="undefined"],
.header-top .ps-languageselector img,
.ps-currencyselector img { display: none; }
/* il select lingua/valuta ha già aspetto pill bianca, ok */

/* ── 26.6 elimina hairline gold residua / box-shadow del parent header ── */
.header,
.header-bottom,
.header > .header-bottom {
  box-shadow: none !important;
}
.header::after,
.header-bottom::after { content: none !important; }
.header-bottom { border-bottom: 0 !important; }

/* ── 26.7 padding header-bottom uniforme, no gap inutile a destra ── */
.header-bottom__row { padding-block: 8px !important; }
.header-bottom__row > .col-auto { padding-inline: 6px; }


/* ═══════════════════════════════════════════════════════════════════════════
   27. DIREZIONE F — palette estesa + tipografia editoriale + decorativa
═══════════════════════════════════════════════════════════════════════════ */
:root {
  --orola-navy-grad-1:  #1c3464;
  --orola-navy-grad-2:  #0f1e3d;
  --orola-navy-grad-3:  #162a50;
  --orola-navy-soft:    #8aaad4;        /* testi topbar e sub hero */
  --orola-surface-cool: #f4f6fb;        /* pill search, reassurance, hero side */
  --orola-border-cool:  rgba(28,52,100,.12);
  --orola-border-cool2: rgba(28,52,100,.18);
  --orola-shadow-gold:  0 4px 14px rgba(202,161,51,.35);
  --orola-shadow-card:  0 4px 18px rgba(28,52,100,.08), 0 1px 4px rgba(0,0,0,.04);
  --orola-shadow-pill:  0 3px 10px rgba(28,52,100,.07);
  --font-editorial:     Georgia, "Times New Roman", Times, serif;
}


/* ═══════════════════════════════════════════════════════════════════════════
   28. DIREZIONE F — TOPBAR  (indirizzo + WhatsApp + spedizione gratis)
═══════════════════════════════════════════════════════════════════════════ */
.header-top {
  background: var(--orola-navy) !important;
  color: var(--orola-navy-soft) !important;
  min-height: 28px !important;
  padding: 0 !important;
  font-size: 11px !important;
}
.header-top a,
.header-top .nav-link { color: var(--orola-navy-soft) !important; opacity: 1 !important; }
.header-top a:hover { color: var(--orola-gold) !important; }
.header-top .container-md { padding: 5px 16px !important; }
.header-top__row,
.header-top .row { row-gap: 0 !important; }

/* contenuto statico Orola della topbar (renderizzato da header.tpl) */
.orola-topbar {
  background: var(--orola-navy);
  color: var(--orola-navy-soft);
  font-size: 11px;
  letter-spacing: 0.01em;
}
.orola-topbar__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 6px 16px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px;
}
.orola-topbar__left,
.orola-topbar__right {
  display: flex; align-items: center; gap: 16px;
  flex-wrap: wrap;
}
.orola-topbar__item { display: inline-flex; align-items: center; gap: 5px; }
.orola-topbar__item .bi { font-size: 12px; }
.orola-topbar__shipping {
  color: var(--orola-gold) !important;
  font-weight: 500;
}
.orola-topbar__shipping .bi { color: var(--orola-gold); font-size: 13px; }

/* WhatsApp = solo logo cerchio compatto */
.orola-topbar__wa {
  width: 22px; height: 22px;
  border-radius: var(--radius-pill);
  background: transparent;
  display: inline-flex !important; align-items: center; justify-content: center;
  color: #25d366 !important;
  transition: background var(--t-fast), color var(--t-fast);
  padding: 0 !important;
  gap: 0 !important;
}
.orola-topbar__wa .bi { font-size: 15px !important; color: #25d366 !important; }
.orola-topbar__wa:hover {
  background: #25d366 !important;
  color: var(--orola-navy-dark) !important;
}
.orola-topbar__wa:hover .bi { color: var(--orola-navy-dark) !important; }

/* hide any language/currency selector that PS may still inject into topbar */
.orola-topbar .ps-languageselector,
.orola-topbar #_desktop_ps_languageselector,
.orola-topbar #_mobile_ps_languageselector,
.orola-topbar .ps-currencyselector,
.orola-topbar #_desktop_ps_currencyselector,
.orola-topbar #_mobile_ps_currencyselector,
.orola-topbar .js-language-selector,
.orola-topbar .js-currency-selector,
.orola-topbar select,
.orola-topbar .form-select { display: none !important; }
@media (max-width: 767.98px) {
  .orola-topbar__inner { padding: 5px 12px; gap: 8px; font-size: 10px; }
  .orola-topbar__left { gap: 10px; }
  .orola-topbar__item { gap: 4px; }
  /* lasciamo solo i pezzi essenziali su mobile */
  .orola-topbar__addr { display: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   29. DIREZIONE F — HEADER  (account/wishlist cerchi + cart pill gold)
═══════════════════════════════════════════════════════════════════════════ */
.header,
.header-bottom { border-bottom: 0 !important; box-shadow: none !important; }

/* search pill chiara con border cool */
#search_widget input[type="text"],
#search_widget input[type="search"],
.ps-searchbar input,
.search-widget input {
  background: var(--orola-surface-cool) !important;
  border: 1px solid var(--orola-border-cool2) !important;
  border-radius: var(--radius-pill) !important;
  height: 40px !important;
  padding: 0 44px 0 18px !important;
  font-size: 13px !important;
}
#search_widget input::placeholder { color: #aaa !important; }

/* Account + Wishlist: stacked icon-on-circle + label sotto */
.orola-header-actions {
  display: flex; align-items: center; gap: 10px;
}
.orola-header-action {
  display: inline-flex; flex-direction: column; align-items: center; gap: 3px;
  text-decoration: none !important;
  cursor: pointer;
}
.orola-header-action__circle {
  width: 34px; height: 34px;
  background: var(--orola-surface-cool);
  border: 1px solid var(--orola-border-cool);
  border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--orola-navy);
  font-size: 16px;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  position: relative;
}
.orola-header-action:hover .orola-header-action__circle {
  background: var(--orola-white);
  border-color: var(--orola-gold);
  color: var(--orola-gold-dark);
}
.orola-header-action__label {
  font-size: 9px; color: var(--orola-navy-soft);
  letter-spacing: 0.02em;
  line-height: 1;
}

/* CARRELLO: pill GOLD pieno con icona + testo + counter (Direzione F) */
.orola-header-cart-pill,
.blockcart .orola-cart-btn,
#_desktop_ps_shoppingcart .orola-cart-btn,
#_desktop_ps_shoppingcart .header-block__action-btn,
.orola-cart-btn.is-pill {
  background: var(--orola-gold) !important;
  background-color: var(--orola-gold) !important;
  background-image: none !important;
  color: var(--orola-navy-dark) !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  padding: 8px 16px !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(202,161,51,.4) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  font-family: var(--font-ui);
}
.orola-header-cart-pill:hover,
.blockcart .orola-cart-btn:hover,
#_desktop_ps_shoppingcart .orola-cart-btn:hover,
#_desktop_ps_shoppingcart .header-block__action-btn:hover {
  background: var(--orola-gold-dark) !important;
  color: var(--orola-white) !important;
  box-shadow: 0 6px 18px rgba(202,161,51,.5) !important;
}
.orola-header-cart-pill .bi,
.orola-cart-btn .bi { font-size: 16px !important; }

/* dentro la pill mostriamo la label "Carrello (N)" */
.orola-header-cart-pill__label { display: inline; font-weight: 700; }


/* ═══════════════════════════════════════════════════════════════════════════
   30. DIREZIONE F — NAV STRIPE  (bordo 2px navy sopra+sotto, no dropdown,
                                  "Offerte ✦" oro a destra)
═══════════════════════════════════════════════════════════════════════════ */
.orola-megamenu {
  background: var(--orola-white) !important;
  border-top: 2px solid var(--orola-navy) !important;
  border-bottom: 2px solid var(--orola-navy) !important;
}
.orola-megamenu__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 16px;
  display: flex; align-items: stretch; justify-content: flex-start;
  gap: 0;
}
.orola-megamenu__list {
  display: flex; align-items: stretch; flex: 1 1 auto;
  list-style: none; margin: 0; padding: 0;
  flex-wrap: nowrap;
}
.orola-megamenu__list > li { position: static; }
.orola-megamenu__list > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px !important;
  font-size: 12px !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--orola-navy) !important;
  white-space: nowrap;
  position: relative;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
}
.orola-megamenu__list > li > a::after { display: none !important; }
.orola-megamenu__list > li:hover > a,
.orola-megamenu__list > li.is-active > a,
.orola-megamenu__list > li.current > a,
.orola-megamenu__list > li > a:focus-visible {
  border-bottom-color: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  font-weight: 600;
}
.orola-megamenu__list > li > a .bi { display: none; }   /* niente icone nel nav F */

/* sub-panel: lo riduco a uno mini-dropdown leggero (Direzione F è "flat",
   ma per non perdere brand/sottocategorie tengo un panel discreto) */
.orola-megamenu__panel {
  position: absolute !important;
  top: auto !important; left: 0 !important; right: 0 !important;
  transform: none !important;
  width: 100vw !important; max-width: 100vw !important; min-width: 0 !important;
  margin-left: 0 !important;
  background: var(--orola-white) !important;
  border: 0 !important;
  border-top: 1px solid var(--orola-border) !important;
  border-bottom: 1px solid var(--orola-border) !important;
  border-radius: 0 !important;
  padding: 18px 24px !important;
  z-index: 1015 !important;
  display: none !important;
}
.orola-megamenu__list > li { position: relative !important; }
.orola-megamenu__list > li > .orola-megamenu__panel {
  left: 50% !important; transform: translateX(-50%) !important;
  width: 720px !important; max-width: 90vw !important;
  border: 1px solid var(--orola-border) !important;
  margin-top: 2px !important;
  box-shadow: var(--orola-shadow-card) !important;
}
.orola-megamenu__list > li:hover > .orola-megamenu__panel,
.orola-megamenu__list > li:focus-within > .orola-megamenu__panel { display: grid !important; }

/* Voce speciale "Offerte ✦" / "Nuovi arrivi" — gold, a destra */
.orola-megamenu__cta {
  margin-left: auto !important;
  color: var(--orola-gold-dark) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  border-left: 0 !important;
  padding-left: 14px !important;
}
.orola-megamenu__cta:hover {
  color: var(--orola-gold) !important;
  border-bottom-color: var(--orola-gold) !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   31. DIREZIONE F — REASSURANCE  (4 voci icone gold + testo navy)
═══════════════════════════════════════════════════════════════════════════ */
.header-nav-full-width,
#block-reassurance {
  background: var(--orola-surface-cool) !important;
  border-bottom: 1px solid rgba(28,52,100,.07) !important;
  border-top: 0 !important;
}
#block-reassurance ul {
  display: flex; justify-content: space-around; flex-wrap: wrap; gap: 16px;
  padding: 9px 16px !important;
  list-style: none; margin: 0;
}
#block-reassurance ul li {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--orola-navy-dark);
  font-weight: 500;
}
#block-reassurance ul li img,
#block-reassurance ul li svg,
#block-reassurance ul li i { color: var(--orola-gold); width: 16px; height: 16px; }


/* ═══════════════════════════════════════════════════════════════════════════
   32. DIREZIONE F — HOMEPAGE HERO  (gradient navy + Georgia italic + CTA pill)
═══════════════════════════════════════════════════════════════════════════ */
.orola-hero {
  display: grid !important;
  grid-template-columns: 1.45fr 1fr !important;   /* 1 grande sx + 2 piccoli dx */
  gap: 14px !important;
  padding: 0 !important;
  margin: 16px auto 0 !important;
  max-width: var(--container-max) !important;
  min-height: 420px !important;
}
@media (max-width: 767.98px) { .orola-hero { grid-template-columns: 1fr !important; min-height: auto !important; } }

.orola-hero__main {
  background: linear-gradient(135deg,
              var(--orola-navy-grad-1) 0%,
              var(--orola-navy-grad-2) 55%,
              var(--orola-navy-grad-3) 100%) !important;
  border-radius: var(--radius-lg) !important;
  padding: 40px 36px !important;
  min-height: 420px !important;
  color: var(--orola-white) !important;
  position: relative;
  overflow: hidden;
  display: flex !important; flex-direction: column !important;
  justify-content: space-between !important;
}
.orola-hero__kicker {
  display: inline-flex !important; align-items: center; gap: 6px;
  background: rgba(202,161,51,.15) !important;
  border: 1px solid rgba(202,161,51,.4) !important;
  color: var(--orola-gold) !important;
  border-radius: var(--radius-pill) !important;
  padding: 5px 14px !important;
  font-size: 11px !important; font-weight: 600 !important;
  letter-spacing: 0.15em !important; text-transform: uppercase;
  width: auto !important;
  margin-bottom: 14px !important;
}
.orola-hero__title {
  font-family: var(--font-editorial) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: clamp(1.8rem, 3.4vw, 2.4rem) !important;
  color: var(--orola-white) !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  margin: 0 0 10px !important;
  max-width: 600px;
}
.orola-hero__title em {
  color: var(--orola-gold) !important;
  font-style: italic !important;
}
.orola-hero__sub {
  color: var(--orola-navy-soft) !important;
  font-size: 13px !important;
  max-width: 540px;
  margin: 0 0 22px !important;
  line-height: 1.6;
}
.orola-hero__cta-row { gap: 12px !important; }
.orola-hero__cta-row .btn.btn-primary,
.orola-hero__cta-row .btn-primary {
  background: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  padding: 10px 22px !important;
  font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: 0.05em !important; text-transform: uppercase;
  box-shadow: 0 5px 18px rgba(202,161,51,.4) !important;
}
.orola-hero__cta-row .meta {
  color: var(--orola-navy-soft) !important;
  font-size: 11px !important;
}
/* 2 tile laterali sovrapposti a destra (stesso ingombro del tile sx) */
.orola-hero__side {
  display: grid !important;
  grid-template-rows: 1fr 1fr !important;
  gap: 14px !important;
  min-height: 420px !important;
}
.orola-hero__tile {
  border-radius: var(--radius-lg) !important;
  padding: 26px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 0 !important;
  position: relative;
  overflow: hidden;
  transition: transform var(--t-med), box-shadow var(--t-med) !important;
}
.orola-hero__tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(28,52,100,.18);
}
.orola-hero__tile--navy {
  background: linear-gradient(135deg, var(--orola-navy-grad-1), var(--orola-navy-grad-3)) !important;
  color: var(--orola-white) !important;
}
.orola-hero__tile--gold {
  background: linear-gradient(135deg, var(--orola-gold) 0%, #b08a25 100%) !important;
  color: var(--orola-navy-dark) !important;
}
.orola-hero__tile .ki {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: 0.18em !important; text-transform: uppercase;
  opacity: 0.9;
}
.orola-hero__tile--navy .ki { color: var(--orola-gold) !important; }
.orola-hero__tile h3 {
  font-family: var(--font-editorial) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: 22px !important;
  margin: 0 !important;
  color: inherit !important;
  line-height: 1.2 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   33. PRODUCT MINIATURE  v3.3 · Direzione C "Split asimmetrica"
        - immagine in alto · ATC cerchio gold top-right
        - footer NAVY con brand kicker oro + nome italic
        - niente prezzo · niente wishlist · niente qty · niente quickview
═══════════════════════════════════════════════════════════════════════════ */

.product-miniature,
.js-product-miniature,
.product-miniature--split {
  border-radius: 14px !important;
  border: 0 !important;
  /* Background del wrapper = stesso navy della topbar #1c3464 (orola-navy),
     così card footer e topbar sono coerenti. */
  background: #1c3464 !important;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(28,52,100,.1) !important;
  transition: transform var(--t-med), box-shadow var(--t-med);
  display: flex !important;
  flex-direction: column !important;
}
.product-miniature:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(28,52,100,.18) !important;
}

/* ── Cover (immagine prodotto a tutto-box, niente cornice grigia) ──
   Sfondo BIANCO così le foto PNG/senza-bg appaiono su bianco e non sul
   navy del footer (la card eredita background navy dal contenitore). */
.product-miniature__cover,
.product-miniature .thumbnail-container,
.product-miniature .product-thumbnail,
.product-miniature__image-container {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  background: #ffffff !important;
  overflow: hidden;
  text-decoration: none !important;
  flex: 0 0 auto;
  padding: 0 !important;
  margin: 0 !important;
}
.product-miniature__cover-link,
.product-miniature__image-container,
.product-miniature .thumb,
.product-miniature__cover > a,
.product-miniature__cover > div {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  position: relative;
  overflow: hidden;
}
.product-miniature__cover img,
.product-miniature .thumbnail-container img,
.product-miniature .product-thumbnail img,
.product-miniature__image-container img,
.product-miniature picture img,
.product-miniature .thumb img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  transition: transform var(--t-med);
}
/* PICTURE wrapper di PrestaShop: forza riempire il parent positioned */
.product-miniature picture {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
}
.product-miniature__image-link {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
}
.product-miniature:hover .product-miniature__cover img,
.product-miniature:hover .thumbnail-container img,
.product-miniature:hover .product-thumbnail img,
.product-miniature:hover .product-miniature__image-container img {
  transform: scale(1.05);
}

/* ── ATC cerchio gold top-right dell'immagine ── */
.product-miniature__atc-form {
  position: absolute !important;
  top: 10px; right: 10px;
  margin: 0;
  z-index: 3;
}
.product-miniature__atc,
.product-miniature button[data-button-action="add-to-cart"] {
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  background: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(202,161,51,.45) !important;
  cursor: pointer;
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.product-miniature__atc:hover,
.product-miniature button[data-button-action="add-to-cart"]:hover {
  background: var(--orola-gold-dark) !important;
  color: var(--orola-white) !important;
  box-shadow: 0 6px 20px rgba(202,161,51,.55) !important;
  transform: scale(1.06);
}
.product-miniature__atc .bi,
.product-miniature__atc i {
  font-size: 15px !important;
  line-height: 1 !important;
}
.product-miniature__atc-text,
.product-miniature__add-text { display: none !important; }

/* ── Footer NAVY coerente con la topbar header (#1c3464 = orola-navy) ── */
.product-miniature__info,
.product-miniature .product-description,
.product-miniature__bottom {
  background: #1c3464 !important;
  padding: 14px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px;
  flex: 1 1 auto;
}
.product-miniature__brand,
.product-miniature .product-manufacturer,
.product-miniature .product-brand {
  font-family: var(--font-ui) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--orola-gold) !important;
  font-weight: 700 !important;
  line-height: 1.2;
}
.product-miniature__title,
.product-miniature .product-title,
.product-miniature h2,
.product-miniature h3 {
  font-family: var(--font-editorial) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: 17px !important;
  color: var(--orola-white) !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  margin: 4px 0 0 !important;
  text-decoration: none !important;
  /* Titolo SEMPRE su una riga sola — overflow tronca con ellissi */
  display: block !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  -webkit-line-clamp: unset !important;
}
.product-miniature__title:hover,
.product-miniature .product-title:hover {
  color: var(--orola-gold) !important;
}

/* ── Badge ribbon diagonale (stile A — "bandierina cucita" all'angolo) ──
      Container .product-flags = riempie il cover (per posizionamento).
      Singolo badge = ruotato −45°, lieve "sbordare" a sinistra
      (il cover ha overflow:hidden → effetto cucito sull'angolo).

      IMPORTANTE: Hummingbird parent ha la regola
        .product-flags .badge:not(.discount) {
          background-color: RGBA(var(--bs-primary-rgb), ...) !important;
        }
      con specificità (0,0,3,0). Per batterla:
       1) sovrascriviamo --bs-primary-rgb sul container .product-flags
          → tutte le regole var-based risolvono a navy
       2) aggiungiamo regole con specificità ≥ (0,0,4,0) e !important
          → forziamo background-color esplicito in cascata.            */
.product-miniature .product-flags,
.product-miniature ul.product-flags {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3;
  list-style: none !important;
  margin: 0 !important; padding: 0 !important;
  pointer-events: none;
  overflow: hidden;
  /* Override CSS variables Bootstrap nel solo scope dei badge prodotto.
     Cosi anche il rule parent `RGBA(var(--bs-primary-rgb), ...)` di Hummingbird
     risolve al nostro navy. */
  --bs-primary: #14233c;
  --bs-primary-rgb: 20, 35, 60;
  --bs-bg-opacity: 1;
}

/* Ribbon NOVITÀ (default · navy scuro #14233c + oro #e9c75c brillante)
   Specificità ≥ (0,0,4,0) per battere `.product-flags .badge:not(.discount)`
   di Hummingbird (0,0,3,0). Colori espliciti, no var.
   Uso flex per centrare perfettamente il testo nella striscia. */
.product-miniature .product-flags .badge,
.product-miniature .product-flags li.badge,
.product-miniature .product-flags .badge:not(.discount),
.product-miniature .product-flags .product-flag,
.product-miniature .product-flags .product-flag.new {
  position: absolute !important;
  /* Geometria del corner-ribbon: con rotate(-45°) e transform-origin:center,
     un box 160×28 posizionato a left:-40 top:22 cade dentro un quadrato
     128×128 in alto a sinistra → niente troncatura su card da 220px+ */
  top: 22px;
  left: -40px;
  transform: rotate(-45deg);
  transform-origin: center;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 160px !important;
  height: 28px !important;
  background: #14233c !important;
  background-color: #14233c !important;
  background-image: none !important;
  color: #e9c75c !important;
  font-family: var(--font-ui) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.5) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.3) !important;
  pointer-events: auto;
  white-space: nowrap !important;
  overflow: hidden !important;
}

/* Sostituisce "Nuovo" (PS default) con "✧ Novità" via pseudo-element.
   Specificità ≥ (0,0,4,0) per battere `.product-flags .badge:not(.discount)`
   di Hummingbird (0,0,3,0) che ha `color:#fff !important` e azzera la nostra
   regola color:transparent. Senza questa specificità, il testo originale
   "Nuovo" resta visibile in bianco accanto a "Novità".                  */
.product-miniature .product-flags .badge.new,
.product-miniature .product-flags li.badge.new,
.product-miniature .product-flags .product-flag.new {
  font-size: 0 !important;
  color: transparent !important;
  line-height: 0 !important;
}
.product-miniature .product-flags .badge.new::before,
.product-miniature .product-flags li.badge.new::before,
.product-miniature .product-flags .product-flag.new::before {
  content: "✧ Novità";
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: #e9c75c !important;
  text-transform: uppercase;
  line-height: 1;
  display: inline-block;
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}

/* ── Ribbon SCONTO (rosso fisso #dc3545) ──────────────────────────────
   Stesso layout diagonale del ribbon Novità. Eredita display:flex/
   align-center/justify-center/width/height/transform/position dalla base.
   Specificità (0,0,4,0) per battere Hummingbird. */
.product-miniature .product-flags .badge.discount,
.product-miniature .product-flags .badge.on-sale,
.product-miniature .product-flags li.badge.discount,
.product-miniature .product-flags .product-flag.discount,
.product-miniature .product-flags .product-flag.on-sale,
.product-miniature .product-flags .discount-percentage {
  background: #dc3545 !important;
  background-color: #dc3545 !important;
  background-image: none !important;
  color: #ffffff !important;
  letter-spacing: 0.05em !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  text-align: center !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35) !important;
  box-shadow: 0 3px 12px rgba(220,53,69,.42) !important;
}

/* ── DOPPIO BADGE: novità + sconto UNITI come blocco continuo ────────
   Lo sconto resta un ribbon sottile (160×28) in alto.
   Il NOVITÀ diventa un ribbon ALTO (160×130) che:
     - ha il bordo SUPERIORE perfettamente combaciante con il bordo
       INFERIORE dello sconto (top edge intercept = 95.8 sulla linea
       y = -x + c, uguale per i due ribbon)
     - ha il bordo INFERIORE che esce in basso-sinistra del cover
       (bottom edge intercept ≈ 278, vicino all'angolo (0,278) del
       cover quadrato)
   Risultato: i due flag formano un unico blocco diagonale rosso+navy
   che riempie l'intera fascia diagonale dell'angolo top-left, senza
   spazi bianchi tra i due colori, e lo sfondo navy continua fino al
   bordo basso del cover.
   Il testo ✦ NOVITÀ è ancorato al TOP del ribbon (align-items:
   flex-start + padding-top) così resta vicino al confine con lo
   sconto, non scivola al centro del ribbon allungato. */
/* Quando c'è ANCHE lo sconto, il novità (2° figlio) si sposta sotto
   col MEDESIMO formato sottile: stessa fascia diagonale come lo sconto,
   solo traslata in basso lungo il bordo laterale sinistro del cover.
   Geometria: top:60 dà perpendicular-distance ~27px tra le due
   centerlines, ovvero ribbon che si TOCCANO sul bordo (uniti, "back
   to back") senza gap visibile né overlap percepibile a 28px di
   altezza ciascuno. */
/* Quando c'è anche lo sconto, il novità è una striscia PIÙ LUNGA
   (200px invece di 160) così la fascia navy si estende più verso
   l'interno del cover, allungandosi sul lato sinistro. Resta
   sottile (28px) e accostata sotto allo sconto. */
/* Quando c'è anche lo sconto, il novità è una striscia da 220px
   appiccicata SOTTO allo sconto (top:54 dà ~7px di overlap visivo
   in modo che le due fasce sembrino una sola banda continua, senza
   gap percepibile). */
.product-miniature .product-flags:has(> :nth-child(2)) > .badge.new,
.product-miniature .product-flags:has(> :nth-child(2)) > li.badge.new,
.product-miniature .product-flags:has(> :nth-child(2)) > .product-flag.new,
.product-miniature .product-flags > :nth-child(2).badge.new,
.product-miniature .product-flags > :nth-child(2).product-flag.new {
  top: 54px !important;
  left: -40px !important;
  width: 220px !important;
  height: 28px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* ── Badge "Edizione Limitata" — top-right del cover ─────────────────
   Visivamente DISTINTO da Novità/Sconto (che stanno top-left): qui
   pill verticale gold-oro con icona gem, font Inter uppercase letter-
   spacing. Comunica "esclusivo" senza essere gridato. */
.product-miniature .product-miniature__cover .product-badge--limited,
.product-miniature .product-badge--limited {
  position: absolute !important;
  top: 12px;
  right: 12px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  background: linear-gradient(135deg, #e9c75c 0%, #caa133 60%, #a0801f 100%);
  color: #14233c;
  font-family: var(--font-ui, system-ui), sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 800;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(202,161,51,.35), inset 0 1px 0 rgba(255,255,255,.4);
  white-space: nowrap;
  line-height: 1;
}
.product-miniature .product-badge--limited .bi {
  font-size: 11px;
  color: #14233c;
  line-height: 1;
}

/* Fallback: novità come 1° figlio ma con un sibling sconto */
.product-miniature .product-flags:has(> :nth-child(2)) > :nth-child(1).badge.new,
.product-miniature .product-flags:has(> :nth-child(2)) > :nth-child(1).product-flag.new {
  top: 54px !important;
  left: -40px !important;
  width: 220px !important;
  height: 28px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* ── Nascondi tutto ciò che non vogliamo nella card ── */
.product-miniature .product-miniature__variants,
.product-miniature .product-miniature__prices,
.product-miniature .product-price-and-shipping,
.product-miniature .product-miniature__discount-price,
.product-miniature .quantity-button,
.product-miniature .js-quantity-button,
.product-miniature .product-miniature__actions form .quantity-button,
.product-miniature .product-miniature__actions:not(:has(form)),
.product-miniature .quickview,
.product-miniature .product-miniature__quickview,
.product-miniature [data-link-action="quickview"],
.product-miniature__details,
.product-miniature .product-miniature__form,
.product-miniature .product-flags + .quickview,
.product-miniature .btn-outline-primary,
.product-miniature__add-text { display: none !important; }

/* Il form ATC dentro al footer (struttura Hummingbird default) lo nascondiamo
   perché abbiamo il nostro ATC sopra l'immagine */
.product-miniature__bottom .product-miniature__actions,
.product-miniature .product-description ~ .product-miniature__actions { display: none !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   35. CONTAINER MAX 1600 — override container-md di Bootstrap usato da Hummingbird
═══════════════════════════════════════════════════════════════════════════ */
.container-md,
.container,
.container-lg,
.container-xl,
.container-xxl {
  max-width: var(--container-max) !important;
}
@media (min-width: 1200px) {
  .container-md,
  .container,
  .container-lg,
  .container-xl,
  .container-xxl {
    max-width: var(--container-max) !important;
    padding-inline: 24px;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   36. HEADER LAYOUT  (Direzione F) — [logo · search center · azioni right]
═══════════════════════════════════════════════════════════════════════════ */
.header-bottom__container { max-width: var(--container-max) !important; padding-inline: 24px; }
.header-bottom__row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  margin: 0 !important;
  min-height: var(--header-h) !important;
}

/* logo: dimensioni naturali, mai stirato */
.header-bottom__logo,
.header .logo {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex; align-items: center;
}
.header-bottom__logo img,
.header .logo img,
.header img.logo {
  height: 48px !important;
  width: auto !important;
  max-width: 220px !important;
  object-fit: contain !important;
  display: block !important;
}
@media (max-width: 575.98px) {
  .header-bottom__logo img,
  .header .logo img { height: 36px !important; max-width: 160px !important; }
}

/* search: CENTRALE, flex 1, larghezza limitata */
.header .ps-searchbar,
.header-bottom #_desktop_ps_searchbar,
.header-bottom #search_widget,
.header-bottom .search-widget {
  flex: 1 1 auto !important;
  max-width: 480px !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  order: 2 !important;
  padding: 0 !important;
}
#_desktop_ps_searchbar.col-auto { width: auto !important; }

/* azioni: a destra, flex-shrink 0 */
.orola-header-actions {
  flex: 0 0 auto !important;
  order: 3 !important;
  display: flex; align-items: center; gap: 10px !important;
}

/* il logo passa a order 1 per sicurezza in caso di flex reorder */
.header-bottom__logo { order: 1 !important; }

/* nascondi gli slot mobile-only quando siamo desktop, e rimuovi col-* legacy */
@media (min-width: 768px) {
  #_mobile_ps_customersignin,
  #_mobile_ps_shoppingcart { display: none !important; }
}

/* su mobile: stack logo+icone in alto, search sotto */
@media (max-width: 767.98px) {
  .header-bottom__row { flex-wrap: wrap !important; gap: 10px !important; }
  .header .ps-searchbar,
  .header-bottom #_desktop_ps_searchbar,
  .header-bottom #search_widget,
  .header-bottom .search-widget {
    order: 4 !important;
    flex: 1 1 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   37. CLEANUP TOPBAR — solo lingua/valuta a destra, niente "Accedi" duplicato
═══════════════════════════════════════════════════════════════════════════ */
.orola-topbar #_desktop_ps_customersignin,
.orola-topbar #ps_customersignin,
.orola-topbar .ps-customersignin,
.orola-topbar .header-block,
.orola-topbar .blockcart,
.orola-topbar #_desktop_ps_shoppingcart,
.orola-topbar #_mobile_ps_shoppingcart,
.orola-topbar .blockwishlist,
.orola-topbar #blockwishlist,
.orola-topbar .ps-contactinfo,
.orola-topbar #ps_contactinfo {
  display: none !important;
}
.orola-topbar select,
.orola-topbar .form-select {
  background: var(--orola-white) !important;
  color: var(--orola-navy-dark) !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  font-size: 11px !important;
  padding: 3px 22px 3px 10px !important;
  min-height: 0 !important;
  height: auto !important;
  line-height: 1 !important;
  width: auto !important;
}
.orola-topbar__right > span { display: inline-flex; align-items: center; gap: 6px; }


/* ═══════════════════════════════════════════════════════════════════════════
   39. MOBILE HEADER  (hamburger sx · logo center · cart compact dx)
═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 991.98px) {
  /* desktop nav stripe + topbar nascosti su mobile */
  .orola-megamenu { display: none !important; }
  .orola-topbar   { display: none !important; }

  /* layout della riga logo: hamburger | logo center | spacer */
  .header-bottom__row {
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding-block: 8px !important;
  }
  .header-bottom__container { padding-inline: 12px !important; }

  /* logo PROPRIAMENTE centrato (bilanciato dallo spacer a destra) */
  .header-bottom__logo {
    order: 2 !important;
    flex: 1 1 auto !important;
    justify-content: center !important;
    margin: 0 !important;
  }
  .header-bottom__logo img,
  .header .logo img { height: 44px !important; max-width: 180px !important; }

  /* spacer invisibile a destra, stessa larghezza dell'hamburger (40px) */
  .orola-header-spacer {
    order: 3 !important;
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 40px !important;
  }

  /* nascondo TUTTE le search di Hummingbird/PS dentro l'header (cerca è
     nella bottom-nav che apre il drawer) — specificità tripla per battere
     il .d-flex di Bootstrap e il cache aggregato vecchio. */
  body .header-bottom__row .ps-searchbar,
  body .header-bottom__row #_desktop_ps_searchbar,
  body .header-bottom__row #search_widget,
  body .header-bottom__row .ps-searchbar--mobile,
  body .header-bottom__row .ps-searchbar--mobile.d-flex,
  body .header-bottom__row #_mobile_ps_searchbar,
  body .header-bottom__row .js-search-template,
  body .ps-searchbar--mobile,
  body .ps-searchbar--mobile.d-flex { display: none !important; }

  /* logo davvero centrato — specificità maggiorata per battere il cache */
  body .header-bottom__logo {
    margin-inline: auto !important;
    text-align: center !important;
  }
  body .header-bottom__logo img,
  body .header .logo img,
  body .header img.logo {
    height: 44px !important;
    max-height: 44px !important;
    max-width: 200px !important;
    width: auto !important;
    margin: 0 auto !important;
  }
}

/* hamburger */
.orola-hamburger {
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent;
  border: 1.5px solid var(--orola-border-cool2);
  border-radius: var(--radius-pill);
  color: var(--orola-navy);
  padding: 0;
  font-size: 22px;
  /* v4.10.7 — order 0 così l'hamburger viene PRIMA della search mobile.
     La search (.ps-searchbar--mobile) resta order 0 default ma viene
     dopo l'hamburger per via del DOM order (hamburger index 0). */
  order: 0;
  flex: 0 0 auto;
}
/* v4.10.7 — Search mobile dopo hamburger, prima del logo */
.ps-searchbar--mobile {
  order: 0;
}

/* v4.10.8 — Bottone cerca header mobile, stile uguale all'hamburger */
.orola-header-search {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1.5px solid var(--orola-border-cool2);
  border-radius: var(--radius-pill);
  color: var(--orola-navy);
  padding: 0;
  font-size: 18px;
  order: 0;
  flex: 0 0 auto;
  margin-left: 8px;
}
.orola-header-search:hover {
  background: var(--orola-surface-cool);
  border-color: var(--orola-navy);
}
.orola-hamburger:hover {
  background: var(--orola-surface-cool);
  border-color: var(--orola-navy);
}

/* cart pill in versione compatta (icona + badge) su mobile */
.orola-header-pill--mobile {
  height: 40px !important;
  padding: 0 12px !important;
  gap: 6px !important;
  order: 3 !important;
  flex: 0 0 auto !important;
}
.orola-header-pill--mobile .orola-header-pill__label { display: none !important; }
.orola-header-pill--mobile .bi { font-size: 18px !important; }

/* su desktop hamburger e spacer mobile non vanno mostrati */
@media (min-width: 992px) {
  .orola-hamburger,
  .orola-header-spacer { display: none !important; }
}

/* search bar dentro al drawer (in cima al body) */
.orola-drawer__search {
  position: relative;
  display: flex; align-items: center;
  padding: 14px 16px;
  background: var(--orola-surface-cool);
  border-bottom: 1px solid var(--orola-border);
}
.orola-drawer__search .bi {
  position: absolute; left: 28px; top: 50%; transform: translateY(-50%);
  font-size: 16px; color: var(--orola-navy-soft);
  pointer-events: none;
  z-index: 2;
}
.orola-drawer__search input {
  width: 100%;
  height: 42px;
  padding: 0 16px 0 44px;
  background: var(--orola-white);
  border: 1px solid var(--orola-border-cool2);
  border-radius: var(--radius-pill);
  font-size: 14px;
  color: var(--orola-text);
}
.orola-drawer__search input:focus {
  border-color: var(--orola-gold);
  box-shadow: 0 0 0 3px var(--orola-gold-pale);
  outline: none;
}


/* ═══════════════════════════════════════════════════════════════════════════
   40. DRAWER MOBILE  (offcanvas-start, full menu accordion)
═══════════════════════════════════════════════════════════════════════════ */
.orola-drawer.offcanvas {
  width: min(86vw, 360px) !important;
  background: var(--orola-white) !important;
  border-right: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
}
.orola-drawer__head {
  background: var(--orola-navy);
  padding: 14px 18px;
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: 2px solid var(--orola-gold);
  flex: 0 0 auto;
}
.orola-drawer__body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}
.orola-drawer__foot {
  flex: 0 0 auto;
}
.orola-drawer__logo img,
.orola-drawer__logo .logo {
  height: 36px !important;
  max-width: 160px !important;
  /* il logo Orola è gold su sfondo trasparente; sul navy resta brillante */
  filter: brightness(1.05);
}
.orola-drawer__close {
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.1);
  border: 0;
  border-radius: var(--radius-pill);
  color: var(--orola-white);
  font-size: 14px;
}

.orola-drawer__body { padding: 8px 0 0; overflow-y: auto; flex: 1 1 auto; }
.orola-drawer__nav { display: flex; flex-direction: column; }

.orola-drawer__item,
.orola-drawer__group > summary.orola-drawer__item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 500;
  color: var(--orola-navy) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--orola-border);
  cursor: pointer;
  list-style: none;
}
.orola-drawer__item:hover,
.orola-drawer__group > summary.orola-drawer__item:hover {
  background: var(--orola-surface-cool);
  color: var(--orola-navy-dark) !important;
}
.orola-drawer__item .bi { color: var(--orola-gold-dark); font-size: 13px; }

.orola-drawer__group { border-bottom: 1px solid var(--orola-border); }
.orola-drawer__group > summary { border-bottom: 0 !important; }
.orola-drawer__group > summary::-webkit-details-marker { display: none; }
.orola-drawer__group[open] > summary {
  background: var(--orola-surface-cool);
  font-weight: 600;
}
.orola-drawer__group[open] > summary .bi { transform: rotate(180deg); }
.orola-drawer__group > summary .bi { transition: transform var(--t-fast); }

.orola-drawer__sub {
  display: block;
  padding: 11px 20px 11px 36px;
  font-size: 14px;
  color: var(--orola-text) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--orola-border);
  border-left: 2px solid transparent;
  background: var(--orola-white);
}
.orola-drawer__sub:hover {
  background: var(--orola-gold-pale);
  color: var(--orola-navy-dark) !important;
  border-left-color: var(--orola-gold);
}

.orola-drawer__item--cta {
  color: var(--orola-gold-dark) !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
}

.orola-drawer__divider { height: 12px; background: var(--orola-surface-cool); }

.orola-drawer__row {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 20px;
  font-size: 14px;
  color: var(--orola-navy) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--orola-border);
}
.orola-drawer__row .bi { font-size: 18px; flex: 0 0 auto; }
.orola-drawer__row:hover { background: var(--orola-surface-cool); }
.orola-drawer__row > span { display: flex; flex-direction: column; line-height: 1.25; font-weight: 500; }
.orola-drawer__row-sub {
  font-size: 11px;
  font-weight: 400;
  color: var(--orola-navy-soft);
  margin-top: 2px;
}

.orola-drawer__foot {
  padding: 14px 20px;
  background: var(--orola-surface-cool);
  display: flex; flex-direction: column; gap: 6px;
  font-size: 12px;
  color: var(--orola-navy-soft);
}
.orola-drawer__foot-item .bi { color: var(--orola-gold-dark); margin-right: 4px; }


/* ═══════════════════════════════════════════════════════════════════════════
   41. BOTTOM NAV  (rifatta v3.2 — 4 icone fisse in basso su <lg)
═══════════════════════════════════════════════════════════════════════════ */
.orola-bottom-nav {
  display: none;
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 1030;
  background: var(--orola-white);
  border-top: 1px solid var(--orola-border);
  padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
  box-shadow: 0 -2px 12px rgba(28,52,100,.06);
}
@media (max-width: 991.98px) {
  .orola-bottom-nav { display: flex !important; }
  body { padding-bottom: 76px; }
}
.orola-bottom-nav__item {
  flex: 1 1 0;
  display: inline-flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 4px 4px;
  font-size: 10px;
  font-weight: 500;
  color: var(--orola-navy) !important;
  text-decoration: none !important;
  background: transparent;
  border: 0;
  cursor: pointer;
  position: relative;
}
.orola-bottom-nav__item .bi { font-size: 20px; line-height: 1; }
.orola-bottom-nav__item:hover,
.orola-bottom-nav__item.is-active { color: var(--orola-gold-dark) !important; }
.orola-bottom-nav__item--cart .bi { font-size: 22px; }
.orola-bottom-nav__badge {
  position: absolute;
  top: -2px; right: calc(50% - 22px);
  min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  border-radius: var(--radius-pill);
  font-size: 10px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}


/* ═══════════════════════════════════════════════════════════════════════════
   42. HERO MOBILE  (1 grande sopra + 2 piccoli sotto affiancati 50/50)
═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 767.98px) {
  .orola-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 10px !important;
    min-height: auto !important;
    padding: 0 12px !important;
  }
  .orola-hero__main {
    min-height: 280px !important;
    padding: 28px 24px !important;
  }
  .orola-hero__title { font-size: 26px !important; }
  .orola-hero__side {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 1fr !important;
    min-height: 120px !important;
    gap: 10px !important;
  }
  .orola-hero__tile { padding: 16px 18px !important; min-height: 120px !important; }
  .orola-hero__tile h3 { font-size: 16px !important; }

  /* page-content tighter padding on small screens */
  .page-content--home { padding-inline: 12px !important; gap: 14px !important; }
  /* gender card più piccola su mobile */
  .orola-gender__grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  /* brand strip stretto: 3 colonne */
  .orola-brand-strip__grid { grid-template-columns: repeat(3, 1fr) !important; gap: 4px !important; padding: 6px !important; }
  /* category grid 3 colonne su mobile */
  .orola-cats__grid { grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; }
  .orola-cats__item { font-size: 11px !important; padding: 12px 6px !important; }
  .orola-cats__item .bi { font-size: 20px !important; }
}

@media (max-width: 480px) {
  .orola-brand-strip__grid { grid-template-columns: repeat(2, 1fr) !important; }
  .orola-cats__grid { grid-template-columns: repeat(2, 1fr) !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   43. SECTION HEADERS COMUNI  (kicker + titolo Georgia italic)
═══════════════════════════════════════════════════════════════════════════ */
.orola-section-head {
  margin: 0 0 18px;
  padding-left: 14px;
  border-left: 4px solid var(--orola-gold);
}
.orola-section-head--center {
  text-align: center;
  padding-left: 0;
  border-left: 0;
}
.orola-section-head--with-link {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px;
}
.orola-section-kicker {
  display: inline-block;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--orola-gold-dark);
  margin-bottom: 6px;
}
.orola-section-title {
  font-family: var(--font-editorial) !important;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  color: var(--orola-navy-dark);
  margin: 0;
  letter-spacing: 0;
  line-height: 1.2;
}
.orola-section-title em { color: var(--orola-gold-dark); font-style: italic; }
.orola-section-link {
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--orola-gold-dark) !important;
  text-decoration: none !important;
  display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap;
}
.orola-section-link .bi { font-size: 11px; }
.orola-section-link:hover { color: var(--orola-gold) !important; }


/* ═══════════════════════════════════════════════════════════════════════════
   44. OCCASIONI  (4 card foto con overlay)
═══════════════════════════════════════════════════════════════════════════ */
.orola-occasions {
  max-width: var(--container-max);
  margin: 32px auto 0;
  padding: 0 24px;
}
.orola-occasions__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.orola-occasion__card {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none !important;
  transition: transform var(--t-med);
}
.orola-occasion__card:hover { transform: translateY(-3px); }

/* Texture geometriche: 3 varianti (navy-a · navy-b · gold) */
.orola-occasion__card--navy-a {
  background: repeating-linear-gradient(135deg,
              var(--orola-navy-grad-1) 0, var(--orola-navy-grad-1) 14px,
              var(--orola-navy-grad-2) 14px, var(--orola-navy-grad-2) 28px);
}
.orola-occasion__card--navy-b {
  background: repeating-linear-gradient(45deg,
              #243d70 0, #243d70 14px,
              var(--orola-navy-grad-1) 14px, var(--orola-navy-grad-1) 28px);
}
.orola-occasion__card--gold {
  background: repeating-linear-gradient(135deg,
              var(--orola-gold) 0, var(--orola-gold) 14px,
              var(--orola-gold-dark) 14px, var(--orola-gold-dark) 28px);
}

/* Icona simbolica grande al centro */
.orola-occasion__icon {
  position: absolute;
  left: 50%; top: 40%;
  transform: translate(-50%, -50%);
  font-size: clamp(48px, 5vw, 72px) !important;
  color: var(--orola-gold);
  text-shadow: 0 4px 14px rgba(0,0,0,0.35);
  z-index: 1;
  transition: transform var(--t-med);
}
.orola-occasion__card--gold .orola-occasion__icon {
  color: var(--orola-navy-dark);
  text-shadow: 0 4px 14px rgba(255,255,255,0.25);
}
.orola-occasion__card:hover .orola-occasion__icon {
  transform: translate(-50%, -50%) scale(1.08);
}

.orola-occasion__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,35,60,0) 35%, rgba(20,35,60,0.85) 100%);
  z-index: 1;
  transition: background var(--t-med);
}
.orola-occasion__card--gold .orola-occasion__overlay {
  background: linear-gradient(180deg, rgba(20,35,60,0) 35%, rgba(20,35,60,0.55) 100%);
}
.orola-occasion__card:hover .orola-occasion__overlay {
  background: linear-gradient(180deg, rgba(20,35,60,0.15) 0%, rgba(20,35,60,0.9) 100%);
}
.orola-occasion__card--gold:hover .orola-occasion__overlay {
  background: linear-gradient(180deg, rgba(20,35,60,0) 0%, rgba(20,35,60,0.65) 100%);
}
.orola-occasion__text {
  position: absolute; left: 20px; right: 20px; bottom: 20px;
  z-index: 2; display: flex; flex-direction: column;
  color: var(--orola-white);
}
.orola-occasion__label {
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.05;
  letter-spacing: 0.005em;
  /* breve hairline gold tra label e sub */
  padding-bottom: 10px;
  position: relative;
}
.orola-occasion__label::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 28px; height: 2px;
  background: var(--orola-gold);
  border-radius: 1px;
}
.orola-occasion__sub {
  font-size: 12px;
  font-weight: 400;
  color: rgba(255,255,255,.82);
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin-top: 12px;
}
/* Card oro: testo navy, hairline navy, sub navy soft */
.orola-occasion__card--gold .orola-occasion__text { color: var(--orola-navy-dark); }
.orola-occasion__card--gold .orola-occasion__label { color: var(--orola-navy-dark); }
.orola-occasion__card--gold .orola-occasion__label::after { background: var(--orola-navy-dark); }
.orola-occasion__card--gold .orola-occasion__sub { color: rgba(20,35,60,.82); }
@media (max-width: 991.98px) { .orola-occasions__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)    { .orola-occasions__grid { grid-template-columns: 1fr; } }


/* ═══════════════════════════════════════════════════════════════════════════
   45. SERVIZI  (4 cerchi icona oro)
═══════════════════════════════════════════════════════════════════════════ */
.orola-services {
  max-width: var(--container-max);
  margin: 40px auto 0;
  padding: 32px 24px;
  background: var(--orola-surface-cool);
  border-radius: var(--radius-lg);
}
.orola-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 8px;
}
.orola-service {
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  text-decoration: none !important;
  padding: 14px 8px;
  border-radius: var(--radius-md);
  transition: transform var(--t-fast), background var(--t-fast);
}
.orola-service:hover { transform: translateY(-3px); background: var(--orola-white); }
.orola-service__circle {
  width: 72px; height: 72px;
  border-radius: 50%;
  background: var(--orola-white);
  border: 1px solid rgba(202,161,51,0.3);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
  color: var(--orola-gold-dark);
  box-shadow: 0 4px 14px rgba(202,161,51,0.18);
  transition: transform var(--t-med), box-shadow var(--t-med);
}
.orola-service:hover .orola-service__circle {
  transform: scale(1.06);
  box-shadow: 0 6px 22px rgba(202,161,51,0.28);
}
.orola-service__circle .bi { font-size: 28px; color: var(--orola-gold-dark); }
.orola-service__label {
  font-size: 14px; font-weight: 600;
  color: var(--orola-navy-dark);
  margin-bottom: 3px;
}
.orola-service__sub {
  font-size: 12px;
  color: var(--orola-text-muted);
  line-height: 1.4;
}
@media (max-width: 767.98px) { .orola-services__grid { grid-template-columns: repeat(2, 1fr); } }


/* ═══════════════════════════════════════════════════════════════════════════
   46. EDITORIALE "DAL 1985"  (gradient navy + visual a destra)
═══════════════════════════════════════════════════════════════════════════ */
.orola-editorial {
  max-width: var(--container-max);
  margin: 40px auto 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  background: linear-gradient(135deg, var(--orola-navy-grad-1) 0%, var(--orola-navy-grad-2) 60%, var(--orola-navy-grad-3) 100%);
  min-height: 260px;
}
.orola-editorial__text {
  padding: 36px 36px;
  color: var(--orola-white);
  display: flex; flex-direction: column; justify-content: center;
}
.orola-editorial__kicker {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(202,161,51,.15);
  border: 1px solid rgba(202,161,51,.4);
  color: var(--orola-gold);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  width: fit-content;
  margin-bottom: 14px;
}
.orola-editorial__kicker .bi { font-size: 11px; }
.orola-editorial__title {
  font-family: var(--font-editorial) !important;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.8rem, 2.6vw, 2.2rem);
  color: var(--orola-white);
  margin: 0 0 12px;
  line-height: 1.2;
}
.orola-editorial__title em { color: var(--orola-gold); font-style: italic; }
.orola-editorial__body {
  font-size: 14px;
  color: var(--orola-navy-soft);
  line-height: 1.65;
  margin: 0 0 22px;
  max-width: 480px;
}
.orola-editorial__cta {
  background: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  border-radius: var(--radius-pill);
  padding: 11px 22px;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase;
  text-decoration: none !important;
  display: inline-flex; align-items: center; gap: 8px;
  width: fit-content;
  box-shadow: 0 6px 18px rgba(202,161,51,.4);
  transition: background var(--t-fast), transform var(--t-fast);
}
.orola-editorial__cta:hover {
  background: var(--orola-gold-dark) !important;
  color: var(--orola-white) !important;
  transform: translateY(-1px);
}
.orola-editorial__visual {
  background: linear-gradient(135deg, rgba(202,161,51,.18) 0%, rgba(28,52,100,.4) 100%);
  border-left: 1px solid rgba(202,161,51,.2);
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.orola-editorial__visual .bi { font-size: 90px; color: rgba(202,161,51,.32); }
.orola-editorial__visual-label {
  position: absolute; bottom: 18px; right: 22px;
  font-size: 10px; letter-spacing: 0.32em;
  color: rgba(202,161,51,.6);
}
@media (max-width: 767.98px) {
  .orola-editorial { grid-template-columns: 1fr; }
  .orola-editorial__visual { display: none; }
  .orola-editorial__text { padding: 28px 24px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   47. RECENSIONI  (Trustindex placeholder + 3 card fallback)
═══════════════════════════════════════════════════════════════════════════ */
.orola-reviews {
  max-width: var(--container-max);
  margin: 40px auto 0;
  padding: 32px 24px;
  background: var(--orola-surface-cool);
  border-radius: var(--radius-lg);
}
.orola-reviews__stars {
  display: inline-flex; gap: 2px;
  color: var(--orola-gold-dark);
  font-size: 16px;
}
.orola-reviews__avg {
  display: block;
  margin-top: 6px;
  font-size: 13px; font-weight: 600;
  color: var(--orola-navy-dark);
}
.orola-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}
.orola-review {
  background: var(--orola-white);
  border: 1px solid rgba(202,161,51,.12);
  border-radius: var(--radius-md);
  padding: 20px 18px;
  box-shadow: 0 2px 10px rgba(28,52,100,.05);
  transition: transform var(--t-fast), box-shadow var(--t-fast);
}
.orola-review:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(28,52,100,.10);
}
.orola-review__stars {
  display: inline-flex; gap: 2px;
  color: var(--orola-gold-dark);
  font-size: 13px;
  margin-bottom: 10px;
}
.orola-review__text {
  font-family: var(--font-editorial);
  font-style: italic;
  font-size: 14px;
  color: var(--orola-navy-dark);
  line-height: 1.55;
  margin: 0 0 12px;
}
.orola-review__who {
  font-size: 11px; font-weight: 600;
  color: var(--orola-text-muted);
}
@media (max-width: 767.98px) {
  .orola-reviews__grid { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   48. BLOG TEASER  (3 card con gradient cover)
═══════════════════════════════════════════════════════════════════════════ */
.orola-blog {
  max-width: var(--container-max);
  margin: 40px auto 0;
  padding: 0 24px;
}
.orola-blog__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.orola-blog__card {
  display: block;
  text-decoration: none !important;
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: transform var(--t-fast);
}
.orola-blog__card:hover { transform: translateY(-3px); }
.orola-blog__cover {
  aspect-ratio: 3 / 2;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
}
.orola-blog__card--navy .orola-blog__cover {
  background: linear-gradient(135deg, var(--orola-navy-grad-1), var(--orola-navy-grad-2));
}
.orola-blog__card--gold .orola-blog__cover {
  background: linear-gradient(135deg, var(--orola-gold), var(--orola-gold-dark));
}
.orola-blog__cover .bi {
  font-size: 42px;
  color: rgba(255,255,255,.35);
}
.orola-blog__card--gold .orola-blog__cover .bi {
  color: rgba(20,35,60,.35);
}
.orola-blog__tag {
  position: absolute; top: 12px; left: 12px;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--orola-gold);
  background: rgba(20,35,60,.72);
  padding: 3px 9px;
  border-radius: var(--radius-pill);
}
.orola-blog__card--gold .orola-blog__tag {
  color: var(--orola-navy-dark);
  background: rgba(255,255,255,.82);
}
.orola-blog__body { padding: 12px 4px 0; }
.orola-blog__date {
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--orola-text-muted);
}
.orola-blog__title {
  font-family: var(--font-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: 15px;
  color: var(--orola-navy-dark);
  margin: 5px 0 0;
  line-height: 1.3;
}
@media (max-width: 767.98px) {
  .orola-blog__grid { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   49. ORDINE VISIVO DELLE SEZIONI HOMEPAGE  (grid order)
        Il page-content--home è display:grid: l'order CSS riassetta le
        sezioni indipendentemente da come PS le inserisce nel DOM.
═══════════════════════════════════════════════════════════════════════════ */
.page-content--home > .orola-hero        { order: 1 !important; }
.page-content--home > .ps-newproducts    { order: 2 !important; }
.page-content--home > .orola-occasions   { order: 3 !important; }
.page-content--home > .ps-specials       { order: 4 !important; }
.page-content--home > .orola-brand-strip { order: 5 !important; }
.page-content--home > .orola-services    { order: 6 !important; }
.page-content--home > .orola-editorial   { order: 7 !important; }
.page-content--home > .orola-reviews     { order: 8 !important; }
.page-content--home > .orola-cats        { order: 9 !important; }
.page-content--home > .orola-blog        { order: 10 !important; }



/* ═══════════════════════════════════════════════════════════════════════════
   38. REFINEMENTS — search overlap, menu/logo/account bigger, cart navy,
        slider 1600, page-content vincolato al container
═══════════════════════════════════════════════════════════════════════════ */

/* ── 38.1 search: icona magnifier a SINISTRA dentro il pill (no overlap) ── */
.ps-searchbar {
  position: relative !important;
}
.ps-searchbar__magnifier,
#search_widget .ps-searchbar__magnifier,
.ps-searchbar .js-search-icon {
  position: absolute !important;
  left: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 16px !important;
  height: 16px !important;
  font-size: 16px !important;
  color: var(--orola-navy-soft) !important;
  pointer-events: none;
  z-index: 2;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  background: transparent !important;
}
/* sostituisco l'icona Material Icons con un glyph generico/bi-search */
.ps-searchbar__magnifier::before,
.ps-searchbar .js-search-icon::before {
  content: "" !important;
  display: block;
  width: 16px; height: 16px;
  /* SVG inline magnifier (no dep esterna) */
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='currentColor' d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='currentColor' d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/></svg>") center/contain no-repeat;
  font-family: inherit;
}
/* il padding-left deve LASCIARE SPAZIO all'icona */
.ps-searchbar input,
.ps-searchbar__input,
#search_widget input[type="text"],
#search_widget input[type="search"] {
  padding-left: 44px !important;
  padding-right: 16px !important;
}
/* il submit button a destra può sparire — la magnifier left + Enter bastano */
.ps-searchbar button[type="submit"],
#search_widget button[type="submit"] {
  position: absolute !important;
  right: 0; top: 0;
  width: 1px; height: 1px;
  opacity: 0; pointer-events: none;
  overflow: hidden;
}


/* ── 38.2 LOGO — dimensioni responsive ── */
.header-bottom__logo img,
.header .logo img,
.header img.logo {
  height: 72px !important;
  max-height: 72px !important;
  max-width: 340px !important;
}
/* Fascia tablet larga / desktop piccolo (992-1199): logo + search + pill
   non entrano insieme a 340px logo. Riduco logo per evitare collisione. */
@media (max-width: 1199.98px) and (min-width: 992px) {
  .header-bottom__logo img,
  .header .logo img,
  .header img.logo {
    height: 52px !important;
    max-height: 52px !important;
    max-width: 220px !important;
  }
  /* search più stretta nello stesso range */
  .header .ps-searchbar,
  .header-bottom #_desktop_ps_searchbar,
  .header-bottom #search_widget,
  .header-bottom .search-widget {
    max-width: 340px !important;
  }
  /* azioni un pelo più compatte */
  .orola-header-pill { padding: 0 14px !important; font-size: 12px !important; }
}
/* mobile (gestito da sezione 39) usa max-width: 200, height: 44 */


/* ── 38.3 NAV STRIPE — sottile ma con font più grande ── */

/* Blog si stacca a destra: margin-left auto spinge tutto ciò che viene dopo */
.orola-megamenu__list > li.orola-megamenu__right-start {
  margin-left: auto !important;
}

/* chevron icon a destra di voci con sottomenu (eccezione: nel nav F le altre icone sono nascoste) */
.orola-megamenu__list > li.has-submenu > a[href="#"] { cursor: default; }
.orola-megamenu__list > li.has-submenu > a .orola-megamenu__chev,
.orola-megamenu__list > li.has-submenu > a .bi-chevron-down {
  display: inline-block !important;
  font-size: 11px !important;
  opacity: 0.55;
  margin-left: 4px;
  transition: transform var(--t-fast), opacity var(--t-fast);
}
.orola-megamenu__list > li.has-submenu:hover > a .orola-megamenu__chev,
.orola-megamenu__list > li.has-submenu:hover > a .bi-chevron-down {
  transform: rotate(180deg);
  opacity: 1;
}

/* Dropdown leggero per "Gioielli" — colonna singola, niente grid 2-col */
.orola-megamenu__list > li.has-submenu > .orola-megamenu__panel {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: auto !important;
  transform: none !important;
  width: max-content !important;
  min-width: 220px !important;
  max-width: 380px !important;
  margin-top: 1px !important;
  padding: 8px 0 !important;
  background: var(--orola-white) !important;
  border: 1px solid var(--orola-border) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 8px 24px rgba(28,52,100,.12) !important;
  z-index: 1018 !important;
}
.orola-megamenu__list > li.has-submenu:hover > .orola-megamenu__panel,
.orola-megamenu__list > li.has-submenu:focus-within > .orola-megamenu__panel {
  display: block !important;
}
.orola-megamenu__sub {
  display: block;
  padding: 10px 18px !important;
  font-size: 14px !important;
  color: var(--orola-navy) !important;
  text-decoration: none !important;
  border-left: 2px solid transparent;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.orola-megamenu__sub:hover {
  background: var(--orola-surface-cool) !important;
  color: var(--orola-navy-dark) !important;
  border-left-color: var(--orola-gold);
  font-weight: 500;
}

.orola-megamenu__list > li > a {
  padding: 7px 14px !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}
.orola-megamenu__list > li:hover > a,
.orola-megamenu__list > li.is-active > a,
.orola-megamenu__list > li.current > a {
  font-weight: 600 !important;
}
.orola-megamenu__cta {
  padding: 7px 14px !important;
  font-size: 18px !important;
}
@media (min-width: 1280px) {
  .orola-megamenu__list > li > a { font-size: 19px !important; padding: 8px 16px !important; }
  .orola-megamenu__cta { font-size: 19px !important; padding: 8px 16px !important; }
}


/* ── 38.4 ACCOUNT cerchio più grande + label leggibile ── */
.orola-header-action__circle {
  width: 44px !important;
  height: 44px !important;
  font-size: 20px !important;
}
.orola-header-action__circle .bi { font-size: 20px !important; }
.orola-header-action__label {
  font-size: 11px !important;
  color: var(--orola-navy) !important;
  font-weight: 500 !important;
  margin-top: 2px;
}


/* ── 38.5 CART pill NAVY pieno (più sofisticato del gold) ── */
.orola-header-cart-pill,
.blockcart .orola-cart-btn,
#_desktop_ps_shoppingcart .orola-cart-btn,
#_desktop_ps_shoppingcart .header-block__action-btn,
.orola-cart-btn.is-pill {
  background: var(--orola-navy) !important;
  background-color: var(--orola-navy) !important;
  background-image: none !important;
  color: var(--orola-white) !important;
  border: 0 !important;
  border-radius: var(--radius-pill) !important;
  padding: 11px 20px !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  box-shadow: 0 6px 18px rgba(28,52,100,.22), inset 0 0 0 1px rgba(202,161,51,.0) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  font-family: var(--font-ui);
  position: relative;
  transition: background var(--t-med), transform var(--t-fast), box-shadow var(--t-med) !important;
}
.orola-header-cart-pill:hover,
.blockcart .orola-cart-btn:hover,
#_desktop_ps_shoppingcart .header-block__action-btn:hover {
  background: var(--orola-navy-dark) !important;
  color: var(--orola-white) !important;
  box-shadow: 0 8px 24px rgba(28,52,100,.32), inset 0 0 0 1px rgba(202,161,51,.35) !important;
  transform: translateY(-1px);
}
.orola-header-cart-pill .bi,
.orola-cart-btn .bi { font-size: 18px !important; color: var(--orola-gold) !important; }
.orola-header-cart-pill__label { color: var(--orola-white) !important; font-weight: 600 !important; }

/* ── 38.5b PILL COERENTI Account / Carrello — stessa altezza, stesso stile,
        ghost (outline) vs solid (filled). Sostituisce il vecchio cerchio. ── */
.orola-header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.orola-header-pill {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 18px !important;
  border-radius: var(--radius-pill) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  font-family: var(--font-ui);
  text-decoration: none !important;
  white-space: nowrap;
  position: relative;
  line-height: 1;
  transition: background var(--t-med), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-med), transform var(--t-fast) !important;
}
.orola-header-pill .bi { font-size: 18px !important; line-height: 1 !important; }
.orola-header-pill__label { font-weight: 600; line-height: 1; }

/* GHOST (Account): bordo navy chiaro, hover navy filled inverted */
.orola-header-pill--ghost {
  background: transparent !important;
  border: 1.5px solid var(--orola-border-cool2) !important;
  color: var(--orola-navy) !important;
}
.orola-header-pill--ghost:hover {
  border-color: var(--orola-navy) !important;
  background: var(--orola-surface-cool) !important;
  color: var(--orola-navy-dark) !important;
}

/* SOLID (Carrello): navy pieno con icona gold + testo bianco + count gold */
.orola-header-pill--solid {
  background: var(--orola-navy) !important;
  border: 1.5px solid var(--orola-navy) !important;
  color: var(--orola-white) !important;
  box-shadow: 0 6px 18px rgba(28,52,100,.22) !important;
}
.orola-header-pill--solid:hover {
  background: var(--orola-navy-dark) !important;
  border-color: var(--orola-navy-dark) !important;
  color: var(--orola-white) !important;
  box-shadow: 0 8px 24px rgba(28,52,100,.32), inset 0 0 0 1px rgba(202,161,51,.35) !important;
  transform: translateY(-1px);
}
.orola-header-pill--solid .bi { color: var(--orola-gold) !important; }

/* count "0" pill oro accanto al testo (carrello) */
.orola-header-pill__count {
  display: inline-flex;
  align-items: center; justify-content: center;
  min-width: 22px; height: 22px;
  padding: 0 7px;
  margin-left: 2px;
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  border-radius: var(--radius-pill);
  font-size: 11px; font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* mobile: shrink le pill */
@media (max-width: 575.98px) {
  .orola-header-pill { height: 38px; padding: 0 12px !important; font-size: 12px !important; }
  .orola-header-pill__label { display: none; }
  .orola-header-pill .bi { font-size: 16px !important; }
}

/* count "0" come piccola pill oro a fianco del testo */
.orola-header-cart-pill .orola-header-cart-pill__count {
  display: inline-flex;
  align-items: center; justify-content: center;
  min-width: 22px; height: 22px;
  padding: 0 7px;
  margin-left: 4px;
  background: var(--orola-gold);
  color: var(--orola-navy-dark);
  border-radius: var(--radius-pill);
  font-size: 11px; font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}


/* ── 38.6 PAGE-CONTENT vincolato a 1600px (slider, banner, custom html) ── */
#main, #wrapper, #content { max-width: 100% !important; }

.page-content--home,
.page-content--home > .row,
.page-content--home > section,
.page-content--home > div,
.page-content--home > .ps-imageslider,
.page-content--home > .imageslider,
.page-content--home > .swiper,
.page-content--home > .slick-list {
  max-width: var(--container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* il modulo slider Hummingbird ha class .ps-imageslider o .imageslider */
.ps-imageslider,
.imageslider,
#imageslider,
.swiper, .swiper-container, .slick-slider {
  max-width: var(--container-max) !important;
  margin: 0 auto !important;
}
.ps-imageslider img,
.imageslider img,
.swiper img {
  max-width: 100% !important;
  height: auto !important;
}

/* hero a 3 tile (1 grande sx + 2 sovrapposti dx) — controllato dalla sezione 32 + 38 */
.orola-hero { max-width: var(--container-max) !important; margin: 16px auto 0 !important; padding: 0 !important; }





/* ── 26.8 OVERRIDE FINALE: il pulsante cerchio oro pieno del parent
        ha classe .header-block__action-btn (NON .header__action).
        Resetto qui in modo aggressivo per avere un'icona pulita 40x40.
        Nota: il cache aggregato vecchio v2 ha
              `#_desktop_ps_shoppingcart .header-block__action-btn`
        come selettore (1 ID + 1 class). Pareggio la specificità qui +
        ordine cascade (questo file carica dopo) per vincere. ── */
#_desktop_ps_shoppingcart .header-block__action-btn,
#_mobile_ps_shoppingcart .header-block__action-btn,
#_desktop_ps_customersignin .header-block__action-btn,
#_mobile_ps_customersignin .header-block__action-btn,
.header-block,
.header-block .header-block__action-btn,
a.header-block__action-btn,
.orola-account-btn,
.orola-cart-btn,
.orola-cart-btn:hover,
.orola-account-btn:hover,
#_desktop_ps_shoppingcart .header-block__action-btn:hover,
#_mobile_ps_shoppingcart .header-block__action-btn:hover {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 1px solid transparent !important;
  border-radius: var(--radius-pill) !important;
  box-shadow: none !important;
  padding: 0 !important;
  color: var(--orola-navy) !important;
}
/* hover dedicato (sopra siamo neutri, qui ridefinisco l'hover utile) */
#_desktop_ps_shoppingcart .header-block__action-btn:hover,
#_mobile_ps_shoppingcart .header-block__action-btn:hover,
#_desktop_ps_customersignin .header-block__action-btn:hover,
#_mobile_ps_customersignin .header-block__action-btn:hover {
  background: var(--orola-surface) !important;
  color: var(--orola-gold-dark) !important;
}
a.header-block__action-btn,
.header-block__action-btn {
  width: 40px !important; height: 40px !important;
  min-width: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative;
}
a.header-block__action-btn:hover,
.header-block__action-btn:hover {
  background: var(--orola-surface) !important;
  color: var(--orola-gold-dark) !important;
}
.header-block__action-btn .bi,
.header-block__action-btn .header-block__icon,
.header-block__action-btn i {
  font-size: 20px !important;
  line-height: 1 !important;
}
/* la label "Cart"/"Carrello" inline va nascosta — solo icona */
.header-block__title,
.header-block__label,
.header-block__name {
  display: none !important;
}
/* badge contatore (numero articoli nel cart) */
.header-block__badge,
.header-block__count,
.cart-products-count {
  position: absolute !important;
  top: -3px !important; right: -3px !important;
  min-width: 18px !important; height: 18px !important;
  padding: 0 5px !important;
  background: var(--orola-gold) !important;
  color: var(--orola-navy-dark) !important;
  font-size: 11px !important; font-weight: 600 !important;
  line-height: 1 !important;
  border-radius: var(--radius-pill) !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  font-variant-numeric: tabular-nums;
}


/* ═══════════════════════════════════════════════════════════════════════════
   50. FACETED SEARCH · Pattern G "Due bottoni minimalisti" + Drawer
   ═══════════════════════════════════════════════════════════════════════════
   Sostituisce la sidebar PS standard con:
     · 2 bottoni minimalisti "Filtra (N)" + "Ordina" in alto a destra
     · Click "Filtra" → drawer laterale (desktop ≥992px) o fullscreen (mobile)
       con TUTTI i facet organizzati editorialmente
     · Filtri attivi come pill subtle sotto i bottoni
   JS: assets/js/orola-facets-chip.js
   Template: catalog/_partials/products-top.tpl
═══════════════════════════════════════════════════════════════════════════ */

/* ── 50.1 Nascondi elementi PS nativi che non servono ── */
#js-product-list-top .products__count,
#category-description,
.category__description,
.category__cover,
#js-active-search-filters,
#search_filters,
.search-filters,
#left-column .block.product-categories,
#offcanvas-faceted {
  display: none !important;
}

/* Sorgente facets (hidden — letta dal JS) */
#js-orola-facets-source {
  display: none !important;
}

/* ── 50.2 Toolbar in alto: 2 bottoni allineati a destra ── */
#js-product-list-top {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}

.orola-listing-toolbar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.orola-listing-toolbar__actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  align-items: center;
}

/* Bottoni "Filtra" e "Ordina" · pill coerenti con resto del tema */
.orola-toolbar-btn,
.orola-toolbar-btn--sort .products__sort-dropdown-button,
.orola-toolbar-btn--sort > .dropdown > .btn {
  background: transparent !important;
  border: 1px solid var(--orola-navy-dark, #14233c) !important;
  color: var(--orola-navy-dark, #14233c) !important;
  padding: 10px 22px !important;
  font-family: var(--font-ui), system-ui, sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-radius: 999px !important;       /* pill — coerente con account/cart */
  cursor: pointer;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px;
  transition: background var(--t-fast), color var(--t-fast);
  line-height: 1;
}
.orola-toolbar-btn:hover,
.orola-toolbar-btn--sort .products__sort-dropdown-button:hover {
  background: var(--orola-navy-dark, #14233c) !important;
  color: var(--orola-gold, #caa133) !important;
}
.orola-toolbar-btn .ti { font-size: 14px; }

.orola-toolbar-btn__count {
  color: var(--orola-gold, #caa133);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0;
}
.orola-toolbar-btn__count::before { content: '·'; margin-right: 4px; }

.orola-toolbar-btn.has-active {
  background: var(--orola-navy-dark, #14233c) !important;
  color: var(--orola-gold, #caa133) !important;
}
.orola-toolbar-btn.has-active .orola-toolbar-btn__count { color: var(--orola-gold, #caa133); }

/* Sort dropdown wrapper — il parent deve essere relative per il menu absolute */
.orola-toolbar-btn--sort,
.orola-toolbar-btn--sort .products__sort-dropdown {
  position: relative;
}

/* Dropdown menu "Ordina" — toggle gestito da JS custom (no Bootstrap JS) */
.orola-toolbar-btn--sort .dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: auto;
  z-index: 2000;
  background: #fff;
  border-radius: 0;
  border: 1px solid #14233c;
  margin: 0;
  padding: 6px 0;
  min-width: 240px;
  box-shadow: 0 8px 24px rgba(20,35,60,.12);
  list-style: none;
}
.orola-toolbar-btn--sort .dropdown-menu.show {
  display: block;
}
.orola-toolbar-btn--sort .dropdown-item,
.orola-toolbar-btn--sort .dropdown-menu a {
  display: block;
  font-family: var(--font-ui), sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #14233c;
  padding: 10px 18px;
  text-decoration: none;
  transition: background var(--t-fast), color var(--t-fast);
}
.orola-toolbar-btn--sort .dropdown-item:hover,
.orola-toolbar-btn--sort .dropdown-menu a:hover {
  background: #fafafa;
  color: #caa133;
}
.orola-toolbar-btn--sort .dropdown-item.current,
.orola-toolbar-btn--sort .dropdown-menu a.current {
  background: #fafbfd;
  color: #caa133;
  font-weight: 600;
}

/* ── 50.3 Strip "Attivi —" sotto i bottoni ────────────────────────── */
.orola-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 6px 0 2px;
}
.orola-active-filters[hidden] { display: none; }
.orola-active-filters__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #9aa0a6;
  font-weight: 500;
}
.orola-active-filters__pill {
  background: transparent;
  border: 0;
  padding: 4px 0;
  color: var(--orola-navy-dark, #14233c);
  font-size: 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-bottom: 1px dotted #d9d9d6;
  transition: color var(--t-fast);
}
.orola-active-filters__pill:hover {
  color: var(--orola-gold, #caa133);
}
.orola-active-filters__pill .ti {
  font-size: 12px;
  color: var(--orola-gold, #caa133);
}
.orola-active-filters__clear {
  margin-left: auto;
  background: none;
  border: 0;
  color: var(--orola-gold, #caa133);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  padding: 4px 0;
}
.orola-active-filters__clear:hover { color: var(--orola-gold-dark, #a0801f); }

/* ── 50.4 Drawer (Filtri) ──────────────────────────────────────────── */
/* v4.10.7 — Scope :not(.offcanvas) per non collidere con il drawer mobile
   Bootstrap offcanvas che usa la STESSA classe .orola-drawer.
   Senza :not(), opacity:0 + pointer-events:none bloccavano il menu mobile. */
.orola-drawer:not(.offcanvas) {
  position: fixed;
  inset: 0;
  z-index: 9000;
  pointer-events: none;
  opacity: 0;
  transition: opacity .26s ease;
}
.orola-drawer:not(.offcanvas).is-open { pointer-events: auto; opacity: 1; }

.orola-drawer:not(.offcanvas) .orola-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20,35,60,.32);
}

.orola-drawer:not(.offcanvas) .orola-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(440px, 100vw);
  background: #ffffff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(.22,.61,.36,1);
  box-shadow: -12px 0 32px rgba(20,35,60,.18);
}
.orola-drawer:not(.offcanvas).is-open .orola-drawer__panel { transform: translateX(0); }

.orola-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 28px 18px;
  border-bottom: 1px solid #ececec;
}
.orola-drawer__title {
  font-family: var(--font-editorial), Georgia, serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 400;
  color: var(--orola-navy-dark, #14233c);
}
.orola-drawer__close {
  width: 36px; height: 36px;
  background: none;
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 50%;
  color: var(--orola-navy-dark, #14233c);
  transition: background var(--t-fast);
}
.orola-drawer__close:hover { background: #fafafa; color: var(--orola-gold, #caa133); }
.orola-drawer__close .ti { font-size: 22px; }

.orola-drawer__body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 28px;
  -webkit-overflow-scrolling: touch;
}

/* Sezione facet (accordion editoriale) */
.orola-drawer__facet {
  padding: 16px 0;
  border-bottom: 1px solid #ececec;
}
.orola-drawer__facet:last-child { border-bottom: 0; }

.orola-drawer__facet-header {
  background: none;
  border: 0;
  padding: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-ui), sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--orola-gold, #caa133);
}
.orola-drawer__facet-header:hover { color: var(--orola-gold-dark, #a0801f); }
.orola-drawer__facet-header .ti {
  font-size: 16px;
  color: var(--orola-navy-dark, #14233c);
  transition: transform var(--t-fast);
}
.orola-drawer__facet[data-open="1"] .orola-drawer__facet-header .ti {
  transform: rotate(180deg);
}
.orola-drawer__facet-badge {
  background: var(--orola-gold, #caa133);
  color: var(--orola-navy-dark, #14233c);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: 0;
  margin-left: 8px;
  margin-right: auto;
}

.orola-drawer__facet-content {
  display: none;
  margin-top: 14px;
}
.orola-drawer__facet[data-open="1"] .orola-drawer__facet-content {
  display: block;
}

/* ─── Bubble buttons (item facet · stile pill toggle) ────────────── */
.orola-drawer__bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.orola-drawer__bubble {
  background: #ffffff;
  border: 1px solid #d9d9d6;
  color: var(--orola-navy-dark, #14233c);
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font-ui), system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  user-select: none;
}
.orola-drawer__bubble:hover {
  border-color: var(--orola-navy-dark, #14233c);
}
.orola-drawer__bubble.is-active {
  background: var(--orola-navy-dark, #14233c);
  border-color: var(--orola-navy-dark, #14233c);
  color: var(--orola-gold, #caa133);
  font-weight: 600;
}
.orola-drawer__bubble.is-active .orola-drawer__bubble-mag {
  color: var(--orola-gold, #caa133);
  opacity: 0.75;
}
.orola-drawer__bubble-mag {
  font-size: 10px;
  color: #9aa0a6;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}
.orola-drawer__bubble-swatch {
  width: 14px; height: 14px;
  border-radius: 50%;
  border: 1px solid #d9d9d6;
  display: inline-block;
  flex-shrink: 0;
  margin-right: 2px;
}
.orola-drawer__empty {
  padding: 12px 0;
  color: #9aa0a6;
  font-size: 12px;
}

/* Footer drawer · 2 bottoni Azzera / Mostra risultati */
.orola-drawer__footer {
  padding: 16px 28px;
  border-top: 1px solid #ececec;
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 10px;
  background: #ffffff;
}
.orola-drawer__clear,
.orola-drawer__apply {
  border: 0;
  cursor: pointer;
  padding: 14px;
  font-family: var(--font-ui), sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  transition: background var(--t-fast), color var(--t-fast);
}
.orola-drawer__clear {
  background: #ffffff;
  border: 1px solid #14233c;
  color: var(--orola-navy-dark, #14233c);
}
.orola-drawer__clear:hover { background: #fafafa; }
.orola-drawer__apply {
  background: var(--orola-navy-dark, #14233c);
  color: var(--orola-gold, #caa133);
}
.orola-drawer__apply:hover { background: var(--orola-navy, #1c3464); }

/* Body lock quando drawer aperto */
body.orola-drawer-open { overflow: hidden; }

/* ── 50.5 Mobile/Tablet (≤768px) ────────────────────────────────── */
@media (max-width: 768px) {
  /* Drawer fullscreen mobile */
  .orola-drawer__panel {
    width: 100vw;
    box-shadow: none;
  }
  .orola-drawer__header {
    padding: 16px 18px 14px;
    border-bottom: 1px solid #ececec;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 5;
  }
  .orola-drawer__body { padding: 0 18px; }
  .orola-drawer__footer { padding: 12px 18px; }

  /* X close BIGGER e più prominente su mobile */
  .orola-drawer__close {
    width: 44px;
    height: 44px;
    background: #fafafa;
    border: 1px solid #ececec;
  }
  .orola-drawer__close .ti {
    font-size: 26px;
    color: var(--orola-navy-dark, #14233c);
  }
  .orola-drawer__close:hover {
    background: var(--orola-navy-dark, #14233c);
    color: var(--orola-gold, #caa133);
  }
  .orola-drawer__close:hover .ti { color: var(--orola-gold, #caa133); }
  .orola-drawer__title { font-size: 20px; }

  /* Toolbar mobile: Filtra a SINISTRA + Ordina a DESTRA, stessa riga.
     Override aggressivo perché parent Hummingbird ha:
       .products__sort                { order:-1; display:flex }
       .products__sort-dropdown       { flex-grow:1 }
       .products__sort-dropdown-button { width:100% }
     che farebbero esplodere il layout o nascondere Filtra. */
  .orola-listing-toolbar__actions {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 10px;
    width: 100%;
  }
  .orola-toolbar-btn--filter {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    visibility: visible !important;
    order: 0 !important;                   /* batte order:-1 del parent */
    width: auto !important;
  }
  .orola-toolbar-btn--sort {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    visibility: visible !important;
    order: 1 !important;                   /* dopo Filtra */
    margin-left: auto;
    width: auto !important;
    flex-grow: 0 !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }
  .orola-toolbar-btn--sort .products__sort-dropdown {
    flex-grow: 0 !important;               /* batte flex-grow:1 parent */
    width: auto !important;
    position: relative;
  }
  .orola-toolbar-btn--sort .products__sort-label { display: none !important; }
  .orola-toolbar-btn,
  .orola-toolbar-btn--sort .products__sort-dropdown-button {
    padding: 9px 14px !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
    width: auto !important;                /* batte width:100% parent */
  }
}

/* Mobile stretto ≤480 — bottoni più compatti, solo icona+count su Filtra */
@media (max-width: 480px) {
  .orola-toolbar-btn--filter,
  .orola-toolbar-btn--sort .products__sort-dropdown-button {
    padding: 8px 14px !important;
    font-size: 10px !important;
    letter-spacing: 0.08em !important;
  }
  .orola-listing-toolbar__actions { gap: 8px; }
}

/* ── 50.6 Griglia prodotti · 4 colonne su desktop full-width ───── */
@media (min-width: 1200px) {
  .products,
  #products .products {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 18px !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .products,
  #products .products {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .products,
  #products .products {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 767px) {
  .products,
  #products .products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}

/* ── 50.7 Slider facet (Prezzo, Peso) – widget PS nativo embedded ─── */
.orola-drawer__facet-content .accordion-collapse {
  display: block !important;
  height: auto !important;
}
.orola-drawer__facet-content .accordion-body {
  padding: 4px 0 0;
  border: 0;
}
.orola-drawer__facet-content .ui-slider {
  margin: 14px 0 10px;
}


/* ═══════════════════════════════════════════════════════════════════════════
   51. FOOTER · Restyling moduli stock Hummingbird/PrestaShop
   ═══════════════════════════════════════════════════════════════════════════
   Il footer ora usa moduli ufficiali PS via hook `displayFooter`:
     · ps_linklist (link list) → output `.linklist`
     · ps_contactinfo (contact info) → output `.block-contact`
     · ps_socialfollow (social) → output `.block-social` / `.ps-socialfollow`
     · ps_emailsubscription (newsletter, opzionale) → output `.block_newsletter`

   Qui restila l'output di questi moduli con palette navy + gold del brand.
   Template wrapper: templates/_partials/footer.tpl (pass-through agli hook).
   Accordion mobile: gestito da orola-mobile.js (vedere quel file).
*/

/* ── Wrapper esterno del footer (sostituisce padding/bg parent bianco) ─── */
.orola-footer-wrapper {
  background: #1c3464;
  color: #f3eadc;
  font-family: var(--font-ui, 'Inter'), system-ui, sans-serif;
  margin-top: 80px;
  padding: 60px 0 24px;
}
.orola-footer__container {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ── Layout colonne moduli (Bootstrap row + col-md-6 col-lg-3) ────────── */
/* PS9 stock moduli usano `col-md-6 col-lg-3`. Rispettiamo il grid Bootstrap.
   Aggiungiamo gap verticale + un po' di gap orizzontale extra via padding. */
.orola-footer__main-top {
  padding-bottom: 36px;
  --bs-gutter-y: 36px;
  --bs-gutter-x: 44px;
}
.orola-footer__main-bottom {
  --bs-gutter-y: 24px;
  --bs-gutter-x: 24px;
}

/* ── Stile blocco generico modulo ──────────────────────────────────────── */
.orola-footer-wrapper .block,
.orola-footer-wrapper .footer-block,
.orola-footer-wrapper .ps-linklist,
.orola-footer-wrapper .ps-customeraccountlinks,
.orola-footer-wrapper .ps-socialfollow,
.orola-footer-wrapper .block-contact {
  color: #f3eadc;
  /* Override eventuali bg/border dal parent Hummingbird */
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

/* ── Titoli blocchi (qualunque modulo) ──────────────────────────────────
   PS9 + Hummingbird usano <h3 class="block-title"> o <p class="h3">,
   ma dopo il wrap accordion JS diventano <summary>. Miro tutti. */
.orola-footer-wrapper .block-title,
.orola-footer-wrapper .h3,
.orola-footer-wrapper h3,
.orola-footer-wrapper h4,
.orola-footer-wrapper .footer-block__title,
.orola-footer-wrapper summary {
  font-size: 12px !important;
  font-family: var(--font-ui, 'Inter'), system-ui, sans-serif !important;
  letter-spacing: 0.2em !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  margin: 0 0 22px !important;
  color: #d6b04a !important;
  position: relative;
  padding-bottom: 12px !important;
  line-height: 1.4 !important;
  white-space: normal;
}
.orola-footer-wrapper .block-title::after,
.orola-footer-wrapper .h3::after,
.orola-footer-wrapper h3::after,
.orola-footer-wrapper h4::after,
.orola-footer-wrapper .footer-block__title::after,
.orola-footer-wrapper summary::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 32px;
  height: 1.5px;
  background: #d6b04a;
}

/* ── Hide sr-only text dentro i titoli dei moduli PS9 ───────────────────
   ps_linklist + altri moduli mettono "Mostra/nascondi link X" dentro h3
   per il toggle accessibility. Non serve visivamente nel nostro footer. */
.orola-footer-wrapper .sr-only,
.orola-footer-wrapper .visually-hidden,
.orola-footer-wrapper .show-link-toggle {
  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;
}

/* ── Lista link (ps_linklist + altri) ──────────────────────────────────── */
.orola-footer-wrapper ul,
.orola-footer-wrapper .linklist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.orola-footer-wrapper li {
  font-size: 14.5px;
  line-height: 2.05;
}
.orola-footer-wrapper a {
  display: inline-flex;
  align-items: baseline;
  gap: 9px;
  color: #f3eadc;
  text-decoration: none;
  transition: color .18s ease;
}
.orola-footer-wrapper ul li > a::before,
.orola-footer-wrapper .linklist li > a::before {
  content: '›';
  color: #d6b04a;
  font-size: 17px;
  line-height: 1;
  font-weight: 400;
  transition: transform .18s ease, color .18s ease;
  opacity: 0.9;
}
.orola-footer-wrapper a:hover {
  color: #ffffff;
}
.orola-footer-wrapper a:hover::before {
  transform: translateX(4px);
  color: #ffffff;
  opacity: 1;
}

/* ── ps_contactinfo: indirizzo, telefono, email ────────────────────────── */
.orola-footer-wrapper .block-contact,
.orola-footer-wrapper .block_contact {
  font-size: 14.5px;
  line-height: 1.85;
  color: #f3eadc;
}
.orola-footer-wrapper .block-contact a {
  color: #f3eadc;
}
.orola-footer-wrapper .block-contact a:hover {
  color: #d6b04a;
}
.orola-footer-wrapper .block-contact a::before {
  content: none;  /* contact info non ha la chevron */
}
.orola-footer-wrapper .block-contact .data {
  margin-bottom: 6px;
}
/* Icone ps_contactinfo: indirizzo, telefono, email — mira font-icons */
.orola-footer-wrapper .block-contact i,
.orola-footer-wrapper .block-contact .material-icons,
.orola-footer-wrapper .block-contact [class^="bi-"] {
  color: #d6b04a;
  margin-right: 10px;
  font-size: 16px;
  vertical-align: middle;
}

/* ── ps_socialfollow: icone Facebook/Instagram/ecc. ───────────────────── */
.orola-footer-wrapper .block-social ul,
.orola-footer-wrapper .ps-socialfollow ul,
.orola-footer-wrapper ul.social-icons {
  display: flex;
  gap: 12px;
  margin: 0;
  padding: 0;
}
.orola-footer-wrapper .block-social li,
.orola-footer-wrapper .ps-socialfollow li {
  line-height: 1;
}
.orola-footer-wrapper .block-social a,
.orola-footer-wrapper .ps-socialfollow a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(202, 161, 51, 0.15);
  color: #d6b04a;
  font-size: 18px;
  text-indent: 0;
  overflow: hidden;
  transition: background .15s ease, color .15s ease, transform .15s ease;
  padding: 0;
  gap: 0;
}
.orola-footer-wrapper .block-social a:hover,
.orola-footer-wrapper .ps-socialfollow a:hover {
  background: #d6b04a;
  color: #1c3464;
  transform: translateY(-2px);
}
.orola-footer-wrapper .block-social a::before,
.orola-footer-wrapper .ps-socialfollow a::before {
  content: none;  /* niente chevron sui social */
}

/* ── ps_emailsubscription (newsletter, se installato) ──────────────────── */
.orola-footer-wrapper .block_newsletter form {
  display: flex;
  gap: 0;
  margin-top: 12px;
  border-bottom: 1px solid rgba(214, 176, 74, 0.5);
}
.orola-footer-wrapper .block_newsletter input[type="email"] {
  flex: 1;
  background: transparent;
  border: 0;
  color: #f3eadc;
  font-size: 14px;
  padding: 10px 0;
  outline: none;
}
.orola-footer-wrapper .block_newsletter input[type="email"]::placeholder {
  color: rgba(243, 234, 220, 0.55);
}
.orola-footer-wrapper .block_newsletter button {
  background: #d6b04a;
  color: #1c3464;
  border: 0;
  padding: 10px 18px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ── Copyright partial (parent: _partials/copyright.tpl) ───────────────── */
.orola-footer-wrapper #footer_copyrights,
.orola-footer-wrapper .footer__copyright,
.orola-footer-wrapper ._footer-copyrights-1 {
  background: #14233c !important;
  padding: 18px 0 !important;
  border-top: 1px solid rgba(202, 161, 51, 0.18);
  color: #c9c1aa;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  margin-top: 0;
  text-align: center;
}
.orola-footer-wrapper #footer_copyrights a {
  color: #c9c1aa;
}
.orola-footer-wrapper #footer_copyrights a::before { content: none; }
.orola-footer-wrapper #footer_copyrights a:hover { color: #d6b04a; }

/* ── Responsive: accordion mobile compatto (≤767px) ────────────────────── */
@media (max-width: 767px) {
  .orola-footer-wrapper {
    padding: 16px 0 0;       /* da 28px 0 12px → molto più compatto */
    margin-top: 40px;        /* da 80px → metà */
  }
  .orola-footer__container { padding: 0 20px; }
  .orola-footer__main-top {
    display: block;
    padding-bottom: 0;       /* da 8px → 0 */
    --bs-gutter-y: 0;        /* niente gap Bootstrap su mobile */
  }

  /* Borders sottili oro tra le accordion rows */
  .orola-footer-wrapper details.footer-block,
  .orola-footer-wrapper details.block,
  .orola-footer-wrapper details.ps-linklist,
  .orola-footer-wrapper details.ps-customeraccountlinks,
  .orola-footer-wrapper details.ps-socialfollow,
  .orola-footer-wrapper details.block-contact {
    border-top: 1px solid rgba(214, 176, 74, 0.18);
    margin: 0 !important;
    padding: 0 !important;
  }
  .orola-footer-wrapper details:last-of-type {
    border-bottom: 1px solid rgba(214, 176, 74, 0.18);
  }

  /* Summary compatta: 13px padding verticale invece di 18 */
  .orola-footer-wrapper details summary {
    padding: 13px 4px !important;
    margin: 0 !important;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    list-style: none;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    font-size: 11.5px !important;
    line-height: 1.3 !important;
    padding-bottom: 13px !important;  /* override del padding-bottom 12 desktop */
  }
  /* Niente sottolineatura oro sul summary mobile (è la riga clickabile) */
  .orola-footer-wrapper details summary::-webkit-details-marker { display: none; }
  .orola-footer-wrapper details summary::marker { content: ''; }
  .orola-footer-wrapper details > summary::after {
    content: '+' !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    font-size: 18px;
    font-weight: 300;
    line-height: 1;
    color: #d6b04a !important;
    transition: transform .2s ease;
  }
  .orola-footer-wrapper details[open] > summary::after {
    content: '−' !important;
  }

  /* Content quando aperto: padding ridotto */
  .orola-footer-wrapper details[open] > *:not(summary) {
    padding: 0 4px 12px !important;   /* da 16 → 12 */
    margin: 0 !important;
    animation: orolaFooterFadeIn .25s ease;
  }
  @keyframes orolaFooterFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* Liste link più compatte: 13.5px e line-height ridotta */
  .orola-footer-wrapper li {
    font-size: 13.5px !important;
    line-height: 1.85 !important;
  }
  .orola-footer-wrapper .block-contact {
    font-size: 13.5px !important;
    line-height: 1.75 !important;
  }

  /* Social icons più piccoli */
  .orola-footer-wrapper .block-social a,
  .orola-footer-wrapper .ps-socialfollow a {
    width: 34px !important;
    height: 34px !important;
    font-size: 15px !important;
  }

  /* Copyright bottom: padding dimezzato + font ridotto */
  .orola-footer-wrapper #footer_copyrights,
  .orola-footer-wrapper .footer__copyright,
  .orola-footer-wrapper ._footer-copyrights-1 {
    padding: 12px 16px !important;     /* da 18px → 12px */
    font-size: 11px !important;
    line-height: 1.45 !important;
    margin-top: 8px !important;
  }
  .orola-footer-wrapper li { line-height: 1.9; }
}

/* ── Neutralizza wrapper <footer class="footer"> parent (era bianco) ───── */
body > .page-wrap > footer.footer,
body > footer.footer,
.page-footer.footer,
footer.js-footer {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   52. MEGA-MENU · Restyling output di ps_mainmenu stock
   ═══════════════════════════════════════════════════════════════════════════
   Sostituisce il vecchio mega-menu hardcoded in header.tpl. Adesso il merchant
   gestisce le voci da BO → Moduli → ps_mainmenu → Configura.

   Output tipico ps_mainmenu PS9:
     <div class="js-top-menu top-menu" id="top-menu">
       <ul class="top-menu" data-depth="0">
         <li class="category"><a>Cat 1</a></li>
         <li class="category">
           <a>Cat 2</a>
           <ul class="sub-menu" data-depth="1">
             <li><a>Sub 1</a></li>
           </ul>
         </li>
       </ul>
     </div>

   Stile: stripe navy full-width, link bianchi uppercase tracking 0.14em,
   hover oro, dropdown mega panel navy scuro con elenco verticale.
*/

/* Disattivato: il mega-menu desktop è hardcoded in header.tpl per il caso
   delle "voci umbrella" (Gioielli, Oggettistica, Pelletteria) che non
   esistono come categorie PS senza romper SEO/URL. Vedi NOTA in
   templates/_partials/header.tpl per dettagli.
   Lasciamo il selettore disabilitato per riferimento futuro: se in qualche
   momento si decide di ristrutturare l'albero catalogo e usare ps_mainmenu
   nativo, basta rimuovere `display:none` da qui. */
.orola-mainmenu-wrap {
  display: none !important;   /* ←  hardcoded prevale */
  background: #1c3464;
  border-top: 1px solid rgba(202, 161, 51, 0.18);
  border-bottom: 2px solid #caa133;
}

.orola-mainmenu-wrap .top-menu,
.orola-mainmenu-wrap > .js-top-menu {
  max-width: 1600px;
  margin: 0 auto;
}

.orola-mainmenu-wrap ul.top-menu[data-depth="0"] {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0 24px;
}

.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li {
  position: relative;
  list-style: none;
}

.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 14px 16px;
  color: #f3eadc;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .15s ease;
  line-height: 1;
}

.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li > a:hover,
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li.active > a,
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:hover > a {
  color: #caa133;
}

/* Chevron arrow per categorie con sub-menu */
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li.dropdown > a::after,
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:has(ul) > a::after {
  content: '\F282';   /* Bootstrap Icons "chevron-down" */
  font-family: "bootstrap-icons";
  font-size: 11px;
  margin-left: 4px;
  transition: transform .2s ease;
}
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:hover.dropdown > a::after,
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:hover:has(ul) > a::after {
  transform: rotate(180deg);
}

/* ── Dropdown panel sub-menu ───────────────────────────────────────────── */
.orola-mainmenu-wrap ul.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  background: #14233c;
  border: 1px solid rgba(202, 161, 51, 0.25);
  border-radius: 4px;
  padding: 10px 0;
  margin: 0;
  list-style: none;
  z-index: 1010;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
}
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:hover > ul.sub-menu,
.orola-mainmenu-wrap ul.top-menu[data-depth="0"] > li:focus-within > ul.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}

.orola-mainmenu-wrap ul.sub-menu li {
  list-style: none;
}
.orola-mainmenu-wrap ul.sub-menu a {
  display: block;
  padding: 9px 22px;
  color: #f3eadc;
  font-size: 13.5px;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: color .14s ease, background .14s ease, padding-left .14s ease;
}
.orola-mainmenu-wrap ul.sub-menu a:hover {
  color: #1c3464;
  background: #caa133;
  padding-left: 26px;
}

/* ── Responsive mobile (≤991px): nascondi mainmenu wrap, usa offcanvas ── */
@media (max-width: 991px) {
  .orola-mainmenu-wrap {
    display: none;   /* su mobile usa l'offcanvas mobile stock di Hummingbird */
  }
}

/* ── Nasconde i moduli legacy (ps_mainmenu inline che leak nell'header) ── */
.header-bottom .js-top-menu:not(.orola-mainmenu-wrap .js-top-menu) {
  display: none !important;
}

/* ── Offcanvas mobile stock di Hummingbird (#mobile_top_menu) ─────────── */
/* Hummingbird renderizza l'offcanvas mobile usando Bootstrap. Lo restila. */
#mobile_top_menu.offcanvas {
  background: #1c3464;
  color: #f3eadc;
  width: 320px;
  max-width: 90vw;
}
#mobile_top_menu.offcanvas .offcanvas-header {
  background: #14233c;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(202, 161, 51, 0.25);
}
#mobile_top_menu.offcanvas .offcanvas-title {
  color: #caa133;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  font-family: var(--font-ui, 'Inter'), system-ui, sans-serif;
}
#mobile_top_menu.offcanvas .btn-close {
  filter: invert(1) sepia(0.5) saturate(2);
  opacity: 0.85;
}
#mobile_top_menu.offcanvas .offcanvas-body {
  padding: 0;
}
#mobile_top_menu .top-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
#mobile_top_menu .top-menu li {
  list-style: none;
  border-bottom: 1px solid rgba(202, 161, 51, 0.12);
}
#mobile_top_menu .top-menu li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  color: #f3eadc;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-decoration: none;
}
#mobile_top_menu .top-menu li > a:hover {
  color: #caa133;
  background: rgba(202, 161, 51, 0.08);
}
#mobile_top_menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #14233c;
}
#mobile_top_menu .sub-menu li {
  border-bottom: 1px solid rgba(202, 161, 51, 0.08);
}
#mobile_top_menu .sub-menu a {
  padding: 12px 22px 12px 38px;
  font-size: 13.5px;
  color: #d8cfb6;
}


/* ═══════════════════════════════════════════════════════════════════════════
   53. HERO · Restyling output di ps_imageslider stock
   ═══════════════════════════════════════════════════════════════════════════
   La hero hardcoded è stata rimossa da index.tpl. Ora viene da ps_imageslider
   via hook (`displayHomeTabContent`/`displayTopColumn`).

   Output tipico ps_imageslider PS9:
     <section id="imageslider" class="ps-image-slider ...">
       <div class="ps-image-slider__container">
         <div class="ps-image-slider__inner slick-slider">
           <div class="ps-image-slider__item">
             <img src="..." alt="...">
             <div class="caption">titolo + descrizione + link</div>
           </div>
         </div>
       </div>
     </section>

   Configurazione: BO → Moduli → ps_imageslider → Configura (slide).
*/

.orola-hero-wrap {
  margin: 0 auto 40px;
  max-width: 1600px;
  padding: 0 24px;
}
.orola-hero-wrap:empty {
  display: none;        /* niente padding se ps_imageslider non configurato */
}

/* Modulo ps_imageslider container */
.orola-hero-wrap #imageslider,
.orola-hero-wrap .ps-image-slider,
.orola-hero-wrap .imageslider {
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  background: #1c3464;
  box-shadow: 0 4px 16px rgba(20, 35, 60, 0.08);
}

/* Slide singola */
.orola-hero-wrap .ps-image-slider__item,
.orola-hero-wrap .slide,
.orola-hero-wrap .item {
  position: relative;
  min-height: 380px;
  display: flex !important;
  align-items: flex-end;
}
.orola-hero-wrap .ps-image-slider__item img,
.orola-hero-wrap .slide img,
.orola-hero-wrap .item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  z-index: 0;
}

/* Caption overlay con kicker oro + titolo Georgia italic */
.orola-hero-wrap .caption,
.orola-hero-wrap .ps-image-slider__item .caption {
  position: relative;
  z-index: 2;
  padding: 32px 40px;
  color: #f3eadc;
  background: linear-gradient(to top, rgba(20,35,60,0.85) 0%, rgba(20,35,60,0.55) 60%, rgba(20,35,60,0) 100%);
  width: 100%;
  font-family: var(--font-ui, 'Inter'), system-ui, sans-serif;
}
.orola-hero-wrap .caption .title,
.orola-hero-wrap .caption h2 {
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  color: #ffffff;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.orola-hero-wrap .caption .description,
.orola-hero-wrap .caption p {
  font-size: 14px;
  color: #f3eadc;
  margin: 0 0 14px;
  max-width: 560px;
  line-height: 1.55;
}
.orola-hero-wrap .caption a,
.orola-hero-wrap .caption .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: #d6b04a;
  color: #1c3464;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px;
  transition: background .15s ease, transform .15s ease;
}
.orola-hero-wrap .caption a:hover {
  background: #caa133;
  transform: translateY(-1px);
}

/* Dots / arrows slider (slick) */
.orola-hero-wrap .slick-dots {
  position: absolute;
  bottom: 14px;
  right: 28px;
  display: flex;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
  z-index: 3;
}
.orola-hero-wrap .slick-dots li button {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(243, 234, 220, 0.4);
  border: 0;
  font-size: 0;
  padding: 0;
  cursor: pointer;
  transition: background .2s ease;
}
.orola-hero-wrap .slick-dots li.slick-active button {
  background: #d6b04a;
}
.orola-hero-wrap .slick-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(20, 35, 60, 0.5);
  color: #f3eadc;
  border: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 0;
  cursor: pointer;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.orola-hero-wrap .slick-arrow:hover { background: #1c3464; }
.orola-hero-wrap .slick-arrow.slick-prev { left: 14px; }
.orola-hero-wrap .slick-arrow.slick-next { right: 14px; }
.orola-hero-wrap .slick-arrow::before {
  content: '';
  width: 10px;
  height: 10px;
  border-top: 2px solid #f3eadc;
  border-right: 2px solid #f3eadc;
}
.orola-hero-wrap .slick-prev::before { transform: rotate(-135deg); margin-left: 4px; }
.orola-hero-wrap .slick-next::before { transform: rotate(45deg); margin-right: 4px; }

@media (max-width: 767px) {
  .orola-hero-wrap { padding: 0 16px; margin-bottom: 28px; }
  .orola-hero-wrap .ps-image-slider__item,
  .orola-hero-wrap .slide,
  .orola-hero-wrap .item { min-height: 260px; }
  .orola-hero-wrap .caption { padding: 22px 22px 26px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   54. BRAND STRIP · Restyling output di ps_brandlist stock
   ═══════════════════════════════════════════════════════════════════════════
   Mostra la lista brand dal catalogo BO. Configurazione brand: BO → Catalogo
   → Marchi. Configurazione visualizzazione: BO → Moduli → ps_brandlist → Configura.

   Output tipico ps_brandlist PS9:
     <div class="brandlist">
       <ul>
         <li class="brand-item"><a href="..."><img src="..."></a></li>
       </ul>
     </div>
   o equivalente.
*/

.orola-brandstrip-wrap {
  max-width: 1600px;
  margin: 64px auto;
  padding: 0 24px;
}
.orola-brandstrip-wrap > .orola-section-head {
  margin-bottom: 28px;
}

/* Brand list grid */
.orola-brandstrip-wrap .brandlist,
.orola-brandstrip-wrap .ps-brand-list,
.orola-brandstrip-wrap .block_brand {
  background: transparent;
}
.orola-brandstrip-wrap .brandlist ul,
.orola-brandstrip-wrap .ps-brand-list ul,
.orola-brandstrip-wrap .block_brand ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: center;
}
.orola-brandstrip-wrap .brandlist li,
.orola-brandstrip-wrap .ps-brand-list li,
.orola-brandstrip-wrap .block_brand li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.orola-brandstrip-wrap .brandlist a,
.orola-brandstrip-wrap .ps-brand-list a,
.orola-brandstrip-wrap .block_brand a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 14px;
  background: #ffffff;
  border: 1px solid #e6dfcd;
  border-radius: 6px;
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  min-height: 88px;
}
.orola-brandstrip-wrap .brandlist a:hover,
.orola-brandstrip-wrap .ps-brand-list a:hover,
.orola-brandstrip-wrap .block_brand a:hover {
  border-color: #caa133;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(202, 161, 51, 0.18);
}
.orola-brandstrip-wrap .brandlist img,
.orola-brandstrip-wrap .ps-brand-list img,
.orola-brandstrip-wrap .block_brand img {
  max-width: 100%;
  max-height: 56px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.85;
  transition: filter .18s ease, opacity .18s ease;
}
.orola-brandstrip-wrap a:hover img {
  filter: grayscale(0);
  opacity: 1;
}

/* Nasconde caption testuali eventualmente generate da ps_brandlist
   (vogliamo solo i loghi). */
.orola-brandstrip-wrap .brandlist .brand_name,
.orola-brandstrip-wrap .brandlist .brand-name,
.orola-brandstrip-wrap .ps-brand-list .brand-name {
  display: none;
}

@media (max-width: 767px) {
  .orola-brandstrip-wrap { margin: 40px auto; padding: 0 16px; }
  .orola-brandstrip-wrap .brandlist ul,
  .orola-brandstrip-wrap .ps-brand-list ul {
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    gap: 12px;
  }
  .orola-brandstrip-wrap a { min-height: 70px; padding: 12px 10px; }
  .orola-brandstrip-wrap img { max-height: 42px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   55. [RIMOSSO] Il display:none su .orola-hero / .orola-brand-strip è stato
   rimosso perché abbiamo ripristinato l'hardcoded come ECCEZIONE design.
   Il CSS originale (sezioni 23-25) continua a stilare queste sezioni. */


/* ═══════════════════════════════════════════════════════════════════════════
   56. FOOTER COPYRIGHT BAR · custom partial copyright.tpl
   ═══════════════════════════════════════════════════════════════════════════
   Override del partial `_partials/copyright.tpl` parent. Mostra:
     - "2014 - YYYY All Rights Reserved · G. Merola · P.IVA IT01556670618"
     - "Tutti i marchi sono di proprietà delle rispettive aziende"
     - "Graphics and development by S. Merola" (S. Merola in italic)
   Tutti separati da puntini su desktop, stack verticale su mobile.
*/

.orola-footer-wrapper .copyright,
.orola-footer-wrapper .orola-footer__copyright {
  background: #14233c !important;
  padding: 16px 24px !important;
  margin: 0 !important;
  border-top: 1px solid rgba(202, 161, 51, 0.18);
  color: #c9c1aa;
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: 0.02em;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 10px;
}

.orola-footer__copyright-main {
  color: #e8dfc6;       /* leggermente più chiaro: contenuto legale principale */
}
.orola-footer__copyright-marks {
  color: #c9c1aa;
  font-style: italic;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 12.5px;
}
.orola-footer__copyright-credit {
  color: #c9c1aa;
}
.orola-footer__copyright-credit em {
  color: #d6b04a;
  font-style: italic;
  font-family: Georgia, 'Times New Roman', serif;
  letter-spacing: 0.04em;
}
.orola-footer__copyright-sep {
  color: rgba(202, 161, 51, 0.45);
  font-weight: 700;
  padding: 0 4px;
}

@media (max-width: 767px) {
  .orola-footer-wrapper .copyright,
  .orola-footer-wrapper .orola-footer__copyright {
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px !important;
    font-size: 11.5px;
  }
  .orola-footer__copyright-sep { display: none; }
  .orola-footer__copyright-marks { font-size: 11px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   57. PRODUCT PAGE · Redesign v4.7.0 — ispirato al live orola.it
   ═══════════════════════════════════════════════════════════════════════════
   Obiettivi:
   - Layout 50/50 desktop (gallery sticky a sx, info editoriale a dx)
   - Tipografia editoriale: brand kicker gold + nome navy + prezzo prominente
   - Nasconde input quantità (.product__quantity / .product-actions__quantity)
   - Bottone "Aggiungi al carrello" full-width navy con hover gold
   - Accordion tabs (descrizione, dettagli, allegati) piatto, gold accent
   - Gallery con thumbs orizzontali scroll, immagine 1:1, zoom button discreto
   - Reassurance griglia 2 col, icone gold
   - Mobile: stack, thumbs scroll orizzontale, ATC sticky-bottom (opzionale, già coperto da Bootstrap container)
   - Tutte le classi sono quelle stock Hummingbird → 0 override di template
*/

/* ── 57.1 Container & layout 2 colonne ─────────────────────────────────── */
#wrapper .product__container.product-container {
  display: grid;
  /* Gallery 60% / info 40% — v4.7.7
     1.5fr / 1fr esatto. A 1500px viewport totale ≈ 880px gallery · 580px info,
     quindi l'info column resta comoda per il bottone ACQUISTA e i badge. */
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 48px;
  margin-top: 24px;
  margin-bottom: 64px;
}
@media (max-width: 991px) {
  #wrapper .product__container.product-container {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

#wrapper .product__container > .product__left {
  position: sticky;
  top: 96px;
  align-self: start;
}
@media (max-width: 991px) {
  #wrapper .product__container > .product__left {
    position: static;
    top: auto;
  }
}

/* ── 57.2 Gallery (cover carousel + thumbs strip) · v4.7.8
   Foto più grande: niente padding del wrapper né dell'immagine interna,
   l'immagine occupa l'intero box. Frecce nav-prev/next nascoste (navighi
   con le thumbnails, le frecce sono ridondanti e visivamente disturbanti). */
.product__images.js-images-container {
  background: #fff;
  border: 1px solid var(--orola-border, #e8e2d6);
  border-radius: var(--radius-md, 8px);
  padding: 0;
  overflow: hidden;
}

.product__carousel.js-product-carousel {
  border-radius: var(--radius-md, 8px) var(--radius-md, 8px) 0 0;
  overflow: hidden;
  background: #fff;
}

.product__carousel .carousel-inner .carousel-item img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: contain;
  background: #fff;
  padding: 0;
}

/* Lente .product__zoom — stile lasciato a stock Hummingbird */

/* Frecce prev/next NASCOSTE — la navigazione gallery avviene tramite
   click sulle thumbnails (stock Bootstrap carousel data-bs-slide-to). */
.product__carousel .carousel-control-prev,
.product__carousel .carousel-control-next {
  display: none !important;
}

/* Thumbnails container con padding interno discreto (separa visivamente
   dalla cover) — il bordo è del wrapper esterno. */
.product__thumbnails {
  padding: 14px 16px 16px 16px;
  background: #fff;
  border-top: 1px solid var(--orola-border, #e8e2d6);
}

/* Thumbnails: strip orizzontale scrollabile · v4.7.3 scrollbar nascosta
   v4.7.8 — margin-top rimosso (lo gestisce il padding interno del wrapper). */
.product__thumbnails {
  margin-top: 0;
}
.product__thumbnails-list {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 2px;
  list-style: none;
  margin: 0;
  /* Scrollbar invisibile (l'utente non vuole la barra dorata sotto le thumb) */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.product__thumbnails-list::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}

.product__thumbnail.js-thumb-container {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  padding: 0;
  border: 1px solid var(--orola-border, #e8e2d6);
  background: #fff;
  border-radius: var(--radius-sm, 4px);
  overflow: hidden;
  cursor: pointer;
  scroll-snap-align: start;
  transition: border-color 180ms ease, transform 180ms ease;
}
.product__thumbnail.js-thumb-container:hover {
  border-color: var(--orola-gold, #caa133);
  transform: translateY(-1px);
}
.product__thumbnail.js-thumb-container.active,
.product__thumbnail.js-thumb-container[aria-current="true"] {
  border-color: var(--orola-navy-dark, #14233c);
  border-width: 2px;
}
.product__thumbnail-image.js-thumb {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 6px;
}
@media (max-width: 575px) {
  .product__thumbnail.js-thumb-container {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
  }
}

/* ── 57.3 Info column (right): kicker brand, name, ref, price ─────────── */
.product__container .product__right {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 4px;
}

/* v4.9.1 — Brand "CASIO" rimosso (richiesta utente).
   Conserviamo il blocco nel DOM per a11y/SEO ma lo nascondiamo visivamente. */
.product__container .product__right .product__manufacturer {
  display: none !important;
}

.product__container .product__right .product__name.h2 {
  order: 2;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  font-weight: 500;
  font-style: italic;
  line-height: 1.18;
  color: var(--orola-navy-dark, #14233c);
  margin: 0;
  letter-spacing: 0;
}

/* Reference: badge sotto al brand, sopra all'availability — v4.7.2 */
.product__container .product__right .product__reference,
.product__container .product__right .orola-product-ref {
  order: 3;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin: -2px 0 4px 0;
  font-size: 12px;
  color: var(--orola-text-muted, #6f6a5e);
  letter-spacing: 0.04em;
  align-self: flex-start;
  padding: 4px 10px;
  background: #fafaf7;
  border: 1px solid var(--orola-border, #e8e2d6);
  border-radius: 999px;
}
.orola-product-ref__label {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 11px;
  color: var(--orola-text-muted, #6f6a5e);
}
.orola-product-ref__value {
  font-family: var(--orola-font-mono, ui-monospace, 'SF Mono', Menlo, monospace);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--orola-navy-dark, #14233c);
  letter-spacing: 0.02em;
}

/* Sample E · Bullet editoriale · v4.8.2
   Availability + arrivo timer come righe minimal con pallino colorato per
   stato. La var --orola-status-color è propagata dal :has() su .product__right
   così l'arrival module (.pa-card) eredita la stessa tinta. */
.product__container .product__right:has(.product__availability-status.text-success) {
  --orola-status-color: #3d8b4e;
  --orola-status-rgb: 61, 139, 78;
}
.product__container .product__right:has(.product__availability-status.text-warning) {
  --orola-status-color: #d97706;
  --orola-status-rgb: 217, 119, 6;
}
.product__container .product__right:has(.product__availability-status.text-danger) {
  --orola-status-color: #a8392f;
  --orola-status-rgb: 168, 57, 47;
}
.product__container .product__right .orola-availability-top {
  order: 4;
  margin: 8px 0 6px 0;
  padding: 14px 18px 14px 20px;
  background: rgba(var(--orola-status-rgb, 184, 148, 39), 0.06);
  border: 1px solid rgba(var(--orola-status-rgb, 184, 148, 39), 0.22);
  border-left: 4px solid var(--orola-status-color, #b89427);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Sposta il blocco prezzo a order 5 (subito sotto availability) */
.product__container .product__right .product__prices {
  order: 5;
}

/* Prices block · v4.9.1 "Sample E4 ribbon + framed card"
   La cornice è SOLO sul .orola-price-block (ribbon + prezzo) → il timer
   arrivo (.orola-price-aftertype) resta come blocco indipendente sotto. */
.product__container .product__right .product__prices {
  order: 5;
  margin: 10px 0 6px 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}
.product__container .product__right .product__prices-block.orola-price-block {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  padding: 16px 18px 16px 22px;
  background: linear-gradient(180deg, #fefcf6 0%, #faf6e7 100%);
  border: 1px solid #e8d8a8;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
}
/* Filo oro accent a sinistra come "marker" promo */
.product__container .product__right .product__prices-block.orola-price-block::before {
  content: "";
  position: absolute;
  left: 0; top: 12%; bottom: 12%;
  width: 3px;
  background: linear-gradient(180deg, #caa133 0%, #b89427 100%);
  border-radius: 0 2px 2px 0;
}
/* Quando non c'è sconto (no ribbon a sinistra) il filo oro resta lo stesso */

/* Ribbon navy con coda triangolare a destra */
.product__container .product__right .orola-price-ribbon {
  background: var(--orola-navy-dark, #14233c);
  color: #ffffff;
  padding: 10px 22px 10px 14px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 86px;
  flex-shrink: 0;
  clip-path: polygon(0 0, 100% 0, 88% 50%, 100% 100%, 0 100%);
  position: relative;
  line-height: 1;
}
.product__container .product__right .orola-price-ribbon__kicker {
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orola-gold, #caa133);
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1;
}
.product__container .product__right .orola-price-ribbon__value {
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-size: 24px;
  font-weight: 800;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

/* Stack a destra: prezzo + listino */
.product__container .product__right .orola-price-stack {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  flex: 1 1 auto;
}
.product__container .product__right .orola-price-current {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.product__container .product__right .product__price {
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-size: clamp(2rem, 3.4vw, 2.4rem);
  font-weight: 600;
  color: var(--orola-navy-dark, #14233c);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  line-height: 1.05;
}
.product__container .product__right .orola-price-unit {
  font-size: 13px;
  color: var(--orola-text-muted, #6f6a5e);
  font-weight: 400;
}

/* Meta (listino + iva + ecotax) sotto al prezzo, su una riga */
.product__container .product__right .orola-price-meta {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-size: 13px;
  color: var(--orola-text-muted, #6f6a5e);
  letter-spacing: 0;
}
.product__container .product__right .orola-price-regular {
  color: var(--orola-text-faint, #9b9685);
  text-decoration: line-through;
  font-weight: 400;
  font-size: 14px;
}
.product__container .product__right .orola-price-meta-sep {
  color: var(--orola-text-faint, #b3ad9d);
  font-weight: 400;
}
.product__container .product__right .orola-price-tax-label {
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--orola-text-muted, #6f6a5e);
}

/* "After-price" hook wrap (timer arrivo modulo) — full width sotto al block prezzo */
.product__container .product__right .orola-price-aftertype {
  width: 100%;
  margin-top: 10px;
}

/* v4.9.2 — Wrapper riposizionato tra prezzo e timer per il modulo relatedthumbnails.
   Reset margini per integrazione pulita nel flow del .product__right. */
.product__container .product__right .orola-additional-mid {
  width: 100%;
  margin: 12px 0 0 0;
}
.product__container .product__right .orola-additional-mid:empty {
  display: none;
}

/* Responsive: mobile/tablet stretto → ribbon meno largo */
@media (max-width: 575px) {
  .product__container .product__right .product__prices-block.orola-price-block {
    gap: 10px;
  }
  .product__container .product__right .orola-price-ribbon {
    padding: 8px 16px 8px 10px;
    min-width: 70px;
  }
  .product__container .product__right .orola-price-ribbon__value {
    font-size: 20px;
  }
  .product__container .product__right .product__price {
    font-size: 1.8rem;
  }
}
/* Tax-infos: "Tasse incluse" piccolo, NO uppercase (no ereditarietà sul timer) */
.product__container .product__right .product__tax-infos {
  font-size: 12px;
  color: var(--orola-text-muted, #6f6a5e);
  letter-spacing: 0;
  text-transform: none;
}
.product__container .product__right .product__tax-label {
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
}


/* Short description — NASCOSTA su richiesta utente (v4.7.1)
   La descrizione completa resta visibile nell'accordion sotto.
   Mantenuta nel template per compatibilità con altri hook/SEO. */
.product__container .product__right .product__description-short {
  display: none !important;
}

/* Variants pack discounts — order 6 (default order) */

/* Actions wrapper — order 7 */
.product__container .product__right .product__actions.js-product-actions {
  order: 7;
  margin-top: 8px;
}

/* ── 57.4 Add-to-cart block: hide quantity, full-width button ────────── */
.product__add-to-cart-container.product-add-to-cart.js-product-add-to-cart {
  border: 1px solid var(--orola-border, #e8e2d6);
  border-radius: var(--radius-md, 8px);
  padding: 18px;
  background: #fafaf7;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 0;
}

/* Availability badge (status) — v4.7.1 ENFATIZZATO come live
   Riquadro grande, bordo colorato spesso, font più grande, icona prominente.
   I tre stati (success / warning / danger) usano colorazione coerente. */
.product__add-to-cart-container .product__availability {
  margin: 0;
  padding: 16px 18px;
  background: #fff;
  border: 1.5px solid var(--orola-border, #e8e2d6);
  border-radius: var(--radius-md, 8px);
  border-left-width: 5px;
  transition: border-color 180ms ease, background 180ms ease;
}
/* Colore bordo sinistro + sfondo leggero in base allo stato dell'unico .product__availability-status presente */
.product__add-to-cart-container .product__availability:has(.product__availability-status.text-success) {
  border-left-color: #2f6f3a;
  background: #f0f7f1;
}
.product__add-to-cart-container .product__availability:has(.product__availability-status.text-warning) {
  border-left-color: #b8721b;
  background: #fdf6ec;
}
.product__add-to-cart-container .product__availability:has(.product__availability-status.text-danger) {
  border-left-color: #a8392f;
  background: #fbf0ee;
}
/* Bullet line (availability + delivery) · v4.8.3 — più grande, leggibile.
   Il dot è ora dimensionato per accompagnare il titolo grande, sub su nuova riga. */
.orola-status-line {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 12px;
  padding: 1px 0;
}
.orola-status-line__dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--orola-status-color, #b89427);
  margin-top: 9px;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(var(--orola-status-rgb, 184, 148, 39), 0.18);
}
.orola-status-line__text {
  display: block;
}
.orola-status-line__primary {
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 22px;
  color: var(--orola-status-color, #14233c);
  line-height: 1.2;
  display: block;
}
.orola-status-line__sub {
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-style: normal;
  font-size: 13px;
  color: var(--orola-text-muted, #6f6a5e);
  letter-spacing: 0;
  font-weight: 400;
  display: block;
  margin-top: 3px;
}
/* Delivery line (se presente): più piccola, secondaria */
.orola-status-line--delivery .orola-status-line__primary {
  font-size: 14px;
  font-style: normal;
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-weight: 500;
  color: var(--orola-text, #3d3a33);
}
.orola-status-line--delivery .orola-status-line__dot {
  width: 8px;
  height: 8px;
  margin-top: 6px;
  box-shadow: none;
}
/* Delivery info compatto sotto al badge */
.product__delivery-infos {
  margin-top: 8px;
  font-size: 12.5px;
  color: var(--orola-text-muted, #6f6a5e);
  font-style: italic;
}

/* CRITICAL: nascondi input quantità + bottoni +/- ma mantieni il submit */
.product__add-to-cart-container .product-actions__quantity,
.product__add-to-cart-container .product__quantity,
.product__add-to-cart-container .quantity-button.js-quantity-button {
  display: none !important;
}
/* Anche minimal quantity message lo nascondiamo (il negozio vende sempre 1) */
.product__minimal-quantity.product-minimal-quantity {
  display: none !important;
}

/* Lo wrapper qty+atc diventa solo atc */
.product__actions-qty-add.product-quantity {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  margin: 0;
}

/* Bottone ATC · v4.7.9 — stile live orola.it: verde Bootstrap success,
   pill, bianco bold uppercase con icona lucchetto. Più riconoscibile come
   conversion CTA "acquista in sicurezza". */
.product__add-to-cart.add {
  width: 100%;
}
.product__add-to-cart-button.btn-primary {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #28a745 !important;
  border: 1.5px solid #28a745 !important;
  color: #ffffff !important;
  padding: 16px 22px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 10px;
  box-shadow: 0 2px 12px rgba(40, 167, 69, 0.22);
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 220ms ease;
}
.product__add-to-cart-button.btn-primary:hover:not([disabled]):not([aria-disabled="true"]) {
  background: #218838 !important;
  border-color: #218838 !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(33, 136, 56, 0.32);
}
.product__add-to-cart-button.btn-primary[disabled],
.product__add-to-cart-button.btn-primary[aria-disabled="true"] {
  background: #b3ad9d !important;
  border-color: #b3ad9d !important;
  cursor: not-allowed;
  opacity: 0.7;
  box-shadow: none;
}
/* Sostituisce l'icona carrello (E547) con un lucchetto (E897) come nel live */
.product__add-to-cart-button .material-icons {
  font-size: 0 !important;
  width: 18px;
  height: 18px;
  display: inline-block;
  position: relative;
}
.product__add-to-cart-button .material-icons::before {
  content: "\E897"; /* lock material icon */
  font-size: 18px;
  line-height: 18px;
}

/* ── 57.5 Bottom section · v4.8.0 — reassurance SOPRA la descrizione,
   in stile "L'ESPERIENZA OROLA" con circoli icona gold. */
.product__bottom {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 24px;
  margin-bottom: 64px;
}
.product__bottom-left {
  width: 100%;
  order: 2;
}
.product__bottom-right {
  width: 100%;
  order: 1; /* sopra all'accordion */
}

/* Accordion tabs flat editorial */
.product__accordion.accordion.accordion-flush {
  background: transparent;
  border: 1px solid var(--orola-border, #e8e2d6);
  border-radius: var(--radius-md, 8px);
  overflow: hidden;
  background: #fff;
}
.product__accordion .accordion-item {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--orola-border, #e8e2d6);
}
.product__accordion .accordion-item:last-child { border-bottom: none; }

.product__accordion .accordion-button {
  background: #fff;
  color: var(--orola-navy-dark, #14233c);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 16px;
  font-weight: 500;
  font-style: italic;
  padding: 18px 22px;
  border: none;
  box-shadow: none;
  letter-spacing: 0.01em;
  transition: background 180ms ease, color 180ms ease;
}
.product__accordion .accordion-button:not(.collapsed) {
  background: #fafaf7;
  color: var(--orola-gold-dark, #b89427);
  box-shadow: inset 3px 0 0 var(--orola-gold, #caa133);
}
.product__accordion .accordion-button:focus {
  outline: 2px solid var(--orola-gold, #caa133);
  outline-offset: -2px;
}
.product__accordion .accordion-button::after {
  filter: invert(13%) sepia(57%) saturate(820%) hue-rotate(190deg) brightness(60%);
}
.product__accordion .accordion-button:not(.collapsed)::after {
  filter: invert(54%) sepia(78%) saturate(411%) hue-rotate(15deg) brightness(86%);
}
.product__accordion .accordion-body {
  padding: 20px 22px 24px;
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--orola-text, #3d3a33);
  background: #fff;
}
.product__accordion .product__description {
  font-size: 14.5px;
  line-height: 1.75;
}
.product__accordion .product__description p { margin-bottom: 1em; }
.product__accordion .product__description p:last-child { margin-bottom: 0; }

/* Product details (Marca, Riferimento, etc.) inside accordion */
.product__accordion .product-features,
.product__accordion .data-sheet,
.product__accordion .product__details {
  list-style: none;
  margin: 0;
  padding: 0;
}
.product__accordion .data-sheet {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 0;
  border-radius: var(--radius-sm, 4px);
  overflow: hidden;
}
.product__accordion .data-sheet > * {
  padding: 10px 14px;
  border-bottom: 1px solid var(--orola-border, #e8e2d6);
  font-size: 13.5px;
  background: #fff;
}
.product__accordion .data-sheet > .name,
.product__accordion .data-sheet > dt {
  background: #fafaf7;
  font-weight: 600;
  color: var(--orola-navy-dark, #14233c);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
}
.product__accordion .data-sheet > .value,
.product__accordion .data-sheet > dd {
  color: var(--orola-text, #3d3a33);
  margin: 0;
}

/* Reassurance "L'esperienza Orola" · v4.8.0 — showcase card cream con
   kicker oro + titolo italic + items in circoli con icona gold.
   Stile ispirato al promo "Più di un negozio, una guida". */
.product__bottom-right .blockreassurance,
.product__bottom-right .blockreassurance--product {
  background: linear-gradient(180deg, #faf8f3 0%, #f6f1e6 100%);
  border: 1px solid #e8d8a8;
  border-radius: 14px;
  padding: 40px 28px 32px;
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
}

/* Kicker pertinente al contenuto reassurance (assistenza · garanzia · reso) */
.product__bottom-right .blockreassurance::before {
  content: "IL NOSTRO IMPEGNO";
  display: block;
  position: absolute;
  top: 28px;
  left: 0; right: 0;
  text-align: center;
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--orola-gold-dark, #b89427);
  font-weight: 700;
}

/* Title editorial italic — frase coerente con le 3 voci sotto
   (assistenza, garanzia produttore, reso 15 giorni) */
.product__bottom-right .blockreassurance::after {
  content: "Al tuo fianco, prima e dopo l'acquisto";
  display: block;
  position: absolute;
  top: 50px;
  left: 0; right: 0;
  text-align: center;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.4rem, 2vw, 1.7rem);
  color: var(--orola-navy-dark, #14233c);
  line-height: 1.2;
}

/* Riga items: il primo item si stacca da subito sotto il titolo (spacer) */
.product__bottom-right .blockreassurance > .reassurance:first-child {
  margin-top: 64px;
}
.product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
  margin-top: 64px;
}

/* Singolo item: colonna verticale [circolo · titolo] centrata */
.product__bottom-right .blockreassurance .reassurance,
.product__bottom-right .blockreassurance--product .reassurance {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  text-decoration: none;
  color: inherit;
  flex: 1 1 0;
  min-width: 180px;
  padding: 0 16px;
  gap: 14px;
}

/* Circolo bianco con bordo gold sottile + leggero shadow */
.product__bottom-right .blockreassurance .reassurance__image {
  width: 110px;
  height: 110px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  border: 1px solid #efe2bd;
  border-radius: 50%;
  box-shadow:
    0 4px 14px rgba(184, 148, 39, 0.10),
    inset 0 0 0 6px #faf6e7;
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.product__bottom-right .blockreassurance .reassurance:hover .reassurance__image {
  transform: translateY(-3px);
  box-shadow:
    0 8px 20px rgba(184, 148, 39, 0.18),
    inset 0 0 0 6px #faf6e7;
}

/* SVG icon GOLD — sovrascrive il fill di default del modulo */
.product__bottom-right .blockreassurance .reassurance__image svg {
  width: 48px;
  height: 48px;
}
.product__bottom-right .blockreassurance .reassurance__image svg path,
.product__bottom-right .blockreassurance .reassurance__image svg circle,
.product__bottom-right .blockreassurance .reassurance__image svg rect,
.product__bottom-right .blockreassurance .reassurance__image svg polygon,
.product__bottom-right .blockreassurance .reassurance__image svg ellipse {
  fill: var(--orola-gold-dark, #b89427);
}

/* Titolo navy bold */
.product__bottom-right .blockreassurance .reassurance__content,
.product__bottom-right .blockreassurance .reassurance__title {
  color: var(--orola-navy-dark, #14233c);
  font-family: var(--orola-font-sans, 'Inter', system-ui, sans-serif);
  font-weight: 700;
  font-size: 14.5px;
  letter-spacing: 0.02em;
  line-height: 1.35;
  display: block;
}

/* Hover stato per voci linkabili: solo nel circolo */
.product__bottom-right .blockreassurance .reassurance--link {
  border-radius: 8px;
}

@media (max-width: 767px) {
  .product__bottom-right .blockreassurance,
  .product__bottom-right .blockreassurance--product {
    padding: 36px 16px 24px;
    gap: 22px;
  }
  .product__bottom-right .blockreassurance > .reassurance:first-child,
  .product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
    margin-top: 50px;
  }
  .product__bottom-right .blockreassurance .reassurance {
    min-width: 0;
    flex: 1 1 45%;
  }
  .product__bottom-right .blockreassurance .reassurance__image {
    width: 84px;
    height: 84px;
  }
  .product__bottom-right .blockreassurance .reassurance__image svg {
    width: 36px;
    height: 36px;
  }
  .product__bottom-right .blockreassurance::after {
    font-size: 1.2rem;
  }
}

/* ── 57.6 Product flags · v4.7.3 — STESSO ribbon diagonale della miniature
   Replica Sezione 33/34 (.product-miniature .product-flags) per coerenza
   visiva tra listing categoria e pagina prodotto. Container = wrapper
   immagine in alto-sinistra del cover, badge ruotato -45° in cucitura. */
.product__images .product__carousel,
.product__images.js-images-container {
  position: relative;
}
.product__images .product__carousel .carousel-inner {
  position: relative;
  overflow: hidden;
}

/* Container ribbon: copre l'angolo top-left del cover */
.product__images .product-flags,
.product__images ul.product-flags {
  position: absolute !important;
  inset: 0 !important;
  z-index: 4;
  list-style: none !important;
  margin: 0 !important; padding: 0 !important;
  pointer-events: none;
  overflow: hidden;
  --bs-primary: #14233c;
  --bs-primary-rgb: 20, 35, 60;
  --bs-bg-opacity: 1;
}

/* Base ribbon (singolo Novità) — navy + oro */
.product__images .product-flags .badge,
.product__images .product-flags li.badge,
.product__images .product-flags .badge:not(.discount),
.product__images .product-flags .product-flag,
.product__images .product-flags .product-flag.new {
  position: absolute !important;
  top: 22px;
  left: -40px;
  transform: rotate(-45deg);
  transform-origin: center;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 160px !important;
  height: 28px !important;
  background: #14233c !important;
  background-color: #14233c !important;
  background-image: none !important;
  color: #e9c75c !important;
  font-family: var(--font-ui, system-ui, sans-serif) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.5) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.3) !important;
  pointer-events: auto;
  white-space: nowrap !important;
  overflow: hidden !important;
}

/* Replace label "Nuovo" → "✧ Novità" */
.product__images .product-flags .badge.new,
.product__images .product-flags li.badge.new,
.product__images .product-flags .product-flag.new {
  font-size: 0 !important;
  color: transparent !important;
  line-height: 0 !important;
}
.product__images .product-flags .badge.new::before,
.product__images .product-flags li.badge.new::before,
.product__images .product-flags .product-flag.new::before {
  content: "✧ Novità";
  font-family: var(--font-ui, system-ui, sans-serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: #e9c75c !important;
  text-transform: uppercase;
  line-height: 1;
  display: inline-block;
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
}

/* Ribbon SCONTO (rosso) — sostituisce la nostra vecchia pill */
.product__images .product-flags .badge.discount,
.product__images .product-flags .badge.on-sale,
.product__images .product-flags li.badge.discount,
.product__images .product-flags .product-flag.discount,
.product__images .product-flags .product-flag.on-sale,
.product__images .product-flags .product-flag.discount-percentage,
.product__images .product-flags .discount-percentage {
  background: #dc3545 !important;
  background-color: #dc3545 !important;
  background-image: none !important;
  color: #ffffff !important;
  letter-spacing: 0.05em !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  text-align: center !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35) !important;
  box-shadow: 0 3px 12px rgba(220,53,69,.42) !important;
}

/* Doppio badge: novità + sconto come blocco continuo (stessa logica miniature) */
.product__images .product-flags:has(> :nth-child(2)) > .badge.new,
.product__images .product-flags:has(> :nth-child(2)) > li.badge.new,
.product__images .product-flags:has(> :nth-child(2)) > .product-flag.new,
.product__images .product-flags > :nth-child(2).badge.new,
.product__images .product-flags > :nth-child(2).product-flag.new,
.product__images .product-flags:has(> :nth-child(2)) > :nth-child(1).badge.new,
.product__images .product-flags:has(> :nth-child(2)) > :nth-child(1).product-flag.new {
  top: 54px !important;
  left: -40px !important;
  width: 220px !important;
  height: 28px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* Edizione limitata (top-right) — stesso pill gold della miniature */
.product__images .product-badge--limited {
  position: absolute !important;
  top: 12px;
  right: 12px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  background: linear-gradient(135deg, #e9c75c 0%, #caa133 60%, #a0801f 100%);
  color: #14233c;
  font-family: var(--font-ui, system-ui), sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 800;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(202,161,51,.35), inset 0 1px 0 rgba(255,255,255,.4);
  white-space: nowrap;
  line-height: 1;
}
.product__images .product-badge--limited .bi {
  font-size: 11px;
  color: #14233c;
  line-height: 1;
}

/* ── 57.7 Mobile refinements ──────────────────────────────────────────── */
@media (max-width: 575px) {
  .product__container .product__right .product__name.h2 {
    font-size: 1.5rem;
  }
  .product__container .product__right .product__price {
    font-size: 1.85rem;
  }
  .product__add-to-cart-container.product-add-to-cart.js-product-add-to-cart {
    padding: 14px;
  }
  .product__add-to-cart-button.btn-primary {
    padding: 14px 18px;
    font-size: 13px;
    letter-spacing: 0.12em;
  }
  .product__accordion .accordion-button {
    padding: 14px 16px;
    font-size: 15px;
  }
  .product__accordion .accordion-body {
    padding: 16px 16px 20px;
  }
  .product__carousel .carousel-inner .carousel-item img {
    max-height: 480px;
    padding: 8px;
  }
}

/* ── 57.8 Override anti-conflitto con sezione 15 (legacy product styles) */
/* La sezione 15 usa selettori vecchi tipo .product-detail .product-name che PS9
   non emette più: nessun conflitto reale, ma forziamo l'ordine per sicurezza. */
.product__container .product__price *,
.product__container .product__regular-price * {
  font-family: inherit;
}

/* ════════════════════════════════════════════════════════════════════════
   Sezione 59 — LIGHTBOX MODAL ZOOM PRODOTTO (stile Amazon)
   Full-viewport sfondo nero, immagine centrata, X+frecce bianche.
   Scoped a .product-images-modal (no impatto su altri modal del sito).
   ════════════════════════════════════════════════════════════════════════ */

/* Z-index alto per stare sopra header sticky (1020) e altri sticky */
.product-images-modal {
  z-index: 9990 !important;
  padding: 0 !important;
}
body:has(.product-images-modal.show) .modal-backdrop {
  z-index: 9989 !important;
}

/* Dialog full-viewport */
.product-images-modal .modal-dialog {
  max-width: none;
  width: 100vw;
  height: 100vh;
  margin: 0;
}

/* Content nero che copre tutto */
.product-images-modal .modal-content {
  min-height: 100vh;
  background: #000;
  border: 0;
  border-radius: 0;
  color: #fff;
}

/* Header trasparente, X visibile in alto a destra */
.product-images-modal .modal-header {
  background: transparent;
  border: 0;
  padding: 16px 20px;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 5;
}
.product-images-modal .modal-title {
  color: #fff;
}
.product-images-modal .btn-close {
  width: 44px;
  height: 44px;
  background-color: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  opacity: 1;
  background-size: 14px;
  filter: invert(1) brightness(2);
  transition: background-color 180ms ease;
}
.product-images-modal .btn-close:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

/* Body: immagine centrata, no padding superfluo */
.product-images-modal .modal-body {
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}
.product-images-modal .product-images-modal__carousel {
  width: 100%;
  height: 100vh;
}
.product-images-modal .product-images-modal__carousel .carousel-inner,
.product-images-modal .product-images-modal__carousel .carousel-item {
  height: 100%;
}
.product-images-modal .product-images-modal__carousel .carousel-item {
  text-align: center;
}
.product-images-modal .carousel-item picture {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.product-images-modal .carousel-item img {
  max-width: min(94vw, 1400px);
  max-height: calc(100vh - 40px);
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}

/* Frecce prev/next bianche e ben visibili */
.product-images-modal .carousel-control-prev,
.product-images-modal .carousel-control-next {
  width: 72px;
  opacity: 1;
  z-index: 4;
}
.product-images-modal .carousel-control-prev-icon,
.product-images-modal .carousel-control-next-icon {
  background-color: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  padding: 22px;
  background-size: 50% 50%;
  filter: invert(1) brightness(2);
  width: 24px;
  height: 24px;
  transition: background-color 180ms ease;
}
.product-images-modal .carousel-control-prev:hover .carousel-control-prev-icon,
.product-images-modal .carousel-control-next:hover .carousel-control-next-icon {
  background-color: rgba(255, 255, 255, 0.3);
}

/* Mobile: padding ridotto, immagine occupa massima area */
@media (max-width: 768px) {
  .product-images-modal .carousel-item img {
    max-width: 100vw;
    max-height: calc(100vh - 80px);
  }
  .product-images-modal .carousel-control-prev,
  .product-images-modal .carousel-control-next {
    width: 56px;
  }
  .product-images-modal .carousel-control-prev-icon,
  .product-images-modal .carousel-control-next-icon {
    padding: 16px;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   60. STRIPE PAYMENT WIDGETS · v4.10.10
   ───────────────────────────────────────────────────────────────────────────
   Stripe inietta via iframe i suoi widget di pagamento sotto/sopra il bottone
   Acquista (Apple Pay, Google Pay, Klarna messaging, ecc.). Di default sono
   renderizzati con stili Stripe (radius 0, larghezze fisse, color blu link)
   che cozzano con il tema Orola. Questa sezione:

     - Lascia INTATTO il Klarna messaging sopra Acquista (richiesta utente:
       "non toccare il messaggio che appare sopra di klarna")
     - Allinea i widget al radius 10px del bottone Acquista
     - Mette i metodi di pagamento secondari (Apple Pay + "Vedi tutte") in
       griglia a 2 colonne, full-width
     - Restyle del link "Vedi tutte" in gold editoriale
═══════════════════════════════════════════════════════════════════════════ */

/* Acquista + Stripe Express Checkout stack verticale full-width.
   NOTA: si era tentata una grid 2-col per affiancare metodi extra, ma il
   modulo stripe_official emette di default un solo bottone Apple Pay e i
   metodi aggiuntivi vivono dentro l'iframe (clic "Vedi tutte"). Senza
   modificare il JS Stripe (vincolo: solo CSS), la col 2 resterebbe vuota
   → preferiamo stack pulito full-width. */
.product__add-to-cart-container .product__actions-qty-add.product-quantity {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px !important;
}

/* Stripe Express Checkout — lasciamo che Stripe gestisca interamente l'iframe.
   Avere overflow:hidden + border-radius forzati può tagliare il widget quando
   espande per mostrare metodi multipli. Manteniamo solo width 100% del wrapper. */
#stripe-express-checkout-element {
  width: 100% !important;
  min-width: 0;
}

/* Link "Vedi tutte ⌄" — coerente col tema gold editoriale */
.product__add-to-cart-container a[class*="show-more"],
.product__add-to-cart-container .stripe-checkout-more-toggler,
.product__add-to-cart-container .product__actions-qty-add > a,
.product__add-to-cart-container .product__actions-qty-add > .vedi-tutte {
  color: var(--orola-gold-dark, #a98326) !important;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  text-align: center;
  padding: 10px 14px;
  background: var(--orola-gold-pale, #fbf3dc);
  border: 1px solid var(--orola-gold, #caa133);
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 100%;
  min-height: 56px;
  transition: background 180ms ease;
}
.product__add-to-cart-container a[class*="show-more"]:hover,
.product__add-to-cart-container .stripe-checkout-more-toggler:hover,
.product__add-to-cart-container .product__actions-qty-add > a:hover {
  background: var(--orola-gold, #caa133) !important;
  color: var(--orola-navy, #1c3464) !important;
}

/* Mobile: 1 colonna sotto i 576px (Apple Pay full + Vedi tutte sotto) */
@media (max-width: 576px) {
  .product__add-to-cart-container .product__actions-qty-add.product-quantity {
    grid-template-columns: 1fr;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   61. SEARCH SCROLL-ANCHOR FIX · v4.10.10
   ───────────────────────────────────────────────────────────────────────────
   Bug riportato: scrollando in basso, ad ogni lettera digitata nel campo
   "cerca" la pagina scrolla verso l'alto. Causa più probabile: il dropdown
   della search (Hummingbird ps_searchbar) inietta risultati nel DOM ad ogni
   debounce 250ms; in parallelo l'iframe Klarna `payment-method-messaging`
   re-renderizza alcuni elementi → Chrome attiva scroll-anchor per "tenere
   in vista" l'elemento ancorato → la viewport salta.

   Fix CSS-only: disabilita scroll-anchor sulla pagina e sui container
   dinamici. Il browser smette di "compensare" lo scroll quando il layout
   cambia, e la pagina resta dove l'utente l'ha lasciata.
═══════════════════════════════════════════════════════════════════════════ */

html,
body,
.product__add-to-cart-container,
.ps-searchbar,
.js-search-widget,
.js-search-dropdown,
.orola-drawer__search,
#orolaDrawerSearch {
  overflow-anchor: none;
}

/* Search dropdown: garantito position absolute (out-of-flow) così non
   spinge il content sotto durante render dei risultati */
.js-search-dropdown,
.ps-searchbar__dropdown {
  position: absolute !important;
  z-index: 1050;
}

/* ── VERO FIX dello scroll-jump ────────────────────────────────────────
   CAUSA: Hummingbird mette `scroll-padding-top: 194px` su html (per
   ancore hash sotto header sticky) + `scroll-behavior: smooth`. Ad
   ogni keystroke il browser ri-valuta la posizione del focused input
   e fa smooth-scroll per "portarlo sotto" il scroll-padding. Visibile
   come scroll che sale ad ogni lettera.

   Fix: quando un input/textarea ha focus, azzera il scroll-padding
   E scroll-behavior così il browser smette di chiamare scroll-into-
   view ad ogni keystroke. Le ancore funzionano comunque (caso d'uso
   diverso, click su anchor link). */
html:has(input:focus),
html:has(textarea:focus) {
  scroll-padding: 0 !important;
  scroll-behavior: auto !important;
}

/* Doppio safety: anche scroll-margin a zero sul focused element così
   il browser non considera offset di "scroll into view". */
input:focus,
textarea:focus {
  scroll-margin: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   62. LOGIN PAGE · v4.10.10 (boutique editoriale card)
   ───────────────────────────────────────────────────────────────────────────
   Layout card centrata su sfondo carta caldo, titolo serif italic con
   kicker ✦ gold, due CTA bilanciati e ben visibili:
     • Accedi  → NAVY filled, bianco bold, full-width
     • Crea il tuo account → GOLD filled, navy bold, full-width
═══════════════════════════════════════════════════════════════════════════ */

/* Wrapper esterno: sfondo carta caldo che riempie l'area sotto l'header */
.orola-auth-container {
  background: var(--orola-surface-cool, #fbf8f3);
  padding: 60px 20px 80px;
  min-height: calc(100vh - 200px);
}

/* Page title PS di default → nascondiamo (lo riscriviamo in card head).
   PS9 lo renderizza come <h1 class="page-title-section"> dentro
   <div class="page-header"> dentro .center-column. */
.orola-auth-container .page-header,
.orola-auth-container > .breadcrumb,
.orola-auth-container .breadcrumb {
  display: none !important;
}

/* Nascondiamo il footer della pagina di Hummingbird (la barra bianca
   inutile sotto la card). Non confondere con il footer globale del sito. */
.orola-auth-container .page-footer,
.orola-auth-container footer.page-footer {
  display: none !important;
}

/* Card centrata */
.orola-auth {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.orola-auth__card {
  background: #ffffff;
  border: 0.5px solid var(--orola-border, #e6dec9);
  border-radius: 16px;
  padding: 40px 36px 36px;
  width: 100%;
  max-width: 460px;
  box-shadow: 0 4px 24px rgba(28, 52, 100, 0.04);
}

/* Header card · kicker + titolo + subtitle */
.orola-auth__head {
  text-align: center;
  margin-bottom: 28px;
}
.orola-auth__kicker {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orola-gold-dark, #a98326);
  font-weight: 500;
  margin-bottom: 10px;
}
.orola-auth__title {
  font-family: Georgia, "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 30px;
  font-weight: 400;
  color: var(--orola-navy, #1c3464);
  line-height: 1.2;
  margin: 0 0 8px;
}
.orola-auth__title em {
  color: var(--orola-gold-dark, #caa133);
  font-style: italic;
}
.orola-auth__sub {
  font-size: 13px;
  color: var(--orola-text-soft, #5a6478);
  margin: 0;
}

/* Form fields override · padding più ampio, bordo gold-pale */
.orola-auth__card .form-control,
.orola-auth__card input[type="text"],
.orola-auth__card input[type="email"],
.orola-auth__card input[type="password"] {
  height: 46px;
  padding: 12px 16px;
  font-size: 14px;
  border: 1px solid var(--orola-border-cool2, #e0d4b4);
  border-radius: 10px;
  background: #fbfaf6;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.orola-auth__card .form-control:focus {
  border-color: var(--orola-gold, #caa133);
  background: #ffffff;
  box-shadow: 0 0 0 3px var(--orola-gold-pale, #fbf3dc);
  outline: 0;
}
.orola-auth__card .form-group {
  margin-bottom: 16px;
}
.orola-auth__card label,
.orola-auth__card .form-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--orola-navy, #1c3464);
  letter-spacing: 0.02em;
  margin-bottom: 6px;
  display: inline-block;
}

/* Buttons wrapper · forgot password sopra l'Accedi, allineati */
.orola-auth__card .buttons-wrapper {
  display: flex;
  flex-direction: column-reverse;
  gap: 12px;
  margin-top: 6px;
}
.orola-auth__card .buttons-wrapper a.btn-basic,
.orola-auth__card .buttons-wrapper a[href*="password"] {
  align-self: flex-end;
  font-size: 12px;
  color: var(--orola-gold-dark, #a98326) !important;
  text-decoration: none !important;
  padding: 4px 0;
  font-weight: 500;
}
.orola-auth__card .buttons-wrapper a.btn-basic:hover {
  text-decoration: underline !important;
}

/* CTA primario · ACCEDI / CREA ACCOUNT · navy filled, full-width, bold, alto.
   NOTA: targeting #submit-login (login form) e .form-control-submit
   (register form) per coerenza, evitando il toggle-password che è
   posizionato assolutamente. */
.orola-auth__card #submit-login,
.orola-auth__card .register-form .form-control-submit,
.orola-auth__card form[name="register"] .btn-primary[type="submit"],
.orola-auth__card .register-form button[type="submit"].btn-primary {
  display: block;
  width: 100%;
  padding: 15px 22px;
  background: var(--orola-navy, #1c3464) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--orola-navy, #1c3464) !important;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  box-shadow: 0 2px 12px rgba(28, 52, 100, 0.18);
  transition: background 180ms ease, transform 180ms ease, box-shadow 220ms ease;
}
.orola-auth__card #submit-login:hover,
.orola-auth__card .register-form .form-control-submit:hover,
.orola-auth__card .register-form button[type="submit"].btn-primary:hover {
  background: var(--orola-navy-dark, #122448) !important;
  border-color: var(--orola-navy-dark, #122448) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(28, 52, 100, 0.28);
}

/* Toggle password (mostra/nascondi) · piccolo, inline col campo password.
   PrestaShop usa .input-group .password-field con <button class="btn btn-primary">
   accanto all'input. Lo riportiamo a icona piccola gold a destra dentro l'input. */
.orola-auth__card .input-group.password-field {
  position: relative;
}
.orola-auth__card .input-group.password-field input[type="password"],
.orola-auth__card .input-group.password-field input[type="text"] {
  padding-right: 44px;
}
.orola-auth__card .input-group.password-field button[data-ps-action="toggle-password"],
.orola-auth__card .password-field .btn-primary {
  position: absolute !important;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 4px 8px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: var(--orola-gold-dark, #a98326) !important;
  z-index: 2;
  font-size: 0 !important; /* nasconde eventuali testi "Mostra password" */
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.orola-auth__card .input-group.password-field button[data-ps-action="toggle-password"]:hover,
.orola-auth__card .password-field .btn-primary:hover {
  background: var(--orola-gold-pale, #fbf3dc) !important;
  color: var(--orola-gold, #caa133) !important;
  transform: translateY(-50%) !important;
  box-shadow: none !important;
}
.orola-auth__card .password-field .material-icons {
  font-size: 18px !important;
  line-height: 1 !important;
}

/* Divider editoriale */
.orola-auth__divider {
  position: relative;
  text-align: center;
  margin: 28px 0 20px;
  font-size: 12px;
  color: var(--orola-text-soft, #5a6478);
}
.orola-auth__divider::before,
.orola-auth__divider::after {
  content: '';
  position: absolute;
  top: 50%;
  width: calc(50% - 100px);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--orola-gold-pale, #e0d4b4));
}
.orola-auth__divider::before { left: 0; }
.orola-auth__divider::after  {
  right: 0;
  background: linear-gradient(90deg, var(--orola-gold-pale, #e0d4b4), transparent);
}
.orola-auth__divider span {
  background: #ffffff;
  padding: 0 12px;
  position: relative;
}

/* CTA secondario · CREA IL TUO ACCOUNT · gold filled, full-width, bold */
.orola-auth__btn-register {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 15px 22px;
  background: var(--orola-gold, #caa133) !important;
  color: var(--orola-navy, #1c3464) !important;
  border: 1.5px solid var(--orola-gold, #caa133) !important;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none !important;
  box-shadow: 0 2px 12px rgba(202, 161, 51, 0.22);
  transition: background 180ms ease, transform 180ms ease, box-shadow 220ms ease;
}
.orola-auth__btn-register:hover {
  background: var(--orola-gold-dark, #a98326) !important;
  border-color: var(--orola-gold-dark, #a98326) !important;
  color: var(--orola-navy, #1c3464) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(202, 161, 51, 0.32);
}
.orola-auth__btn-register .bi {
  font-size: 16px;
  transition: transform 180ms ease;
}
.orola-auth__btn-register:hover .bi {
  transform: translateX(3px);
}

/* Nascondiamo l'hr nativo + register-prompt nativo (riusato il nostro layout) */
.orola-auth .login + hr,
.orola-auth .login__register-prompt {
  display: none !important;
}

/* Mobile */
@media (max-width: 576px) {
  .orola-auth-container { padding: 30px 14px 60px; }
  .orola-auth__card { padding: 28px 22px 24px; border-radius: 12px; }
  .orola-auth__title { font-size: 24px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   63. RADIO / CHECKBOX nei form auth (login/registration) · v4.10.11
   ───────────────────────────────────────────────────────────────────────────
   Hummingbird usa `appearance:none` con bordo #ececec (quasi invisibile sul
   nostro sfondo cream). Restituiamo identità: bordo 1.5px navy, fill gold
   al checked, hover gold-pale.
═══════════════════════════════════════════════════════════════════════════ */

.orola-auth__card input[type="radio"],
.orola-auth__card input[type="checkbox"] {
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  border: 1.5px solid var(--orola-navy, #1c3464) !important;
  background: #fff !important;
  margin-right: 8px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}
.orola-auth__card input[type="radio"] {
  border-radius: 50% !important;
}
.orola-auth__card input[type="checkbox"] {
  border-radius: 4px !important;
}

/* Hover · alone bordo gold + bg gold-pale */
.orola-auth__card input[type="radio"]:hover,
.orola-auth__card input[type="checkbox"]:hover {
  border-color: var(--orola-gold, #caa133) !important;
  background: var(--orola-gold-pale, #fbf3dc) !important;
}

/* Checked · radio: dot gold dentro / checkbox: spunta gold */
.orola-auth__card input[type="radio"]:checked {
  background: var(--orola-navy, #1c3464) !important;
  border-color: var(--orola-navy, #1c3464) !important;
}
.orola-auth__card input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 7px; height: 7px;
  background: var(--orola-gold, #caa133);
  border-radius: 50%;
}
.orola-auth__card input[type="checkbox"]:checked {
  background: var(--orola-navy, #1c3464) !important;
  border-color: var(--orola-navy, #1c3464) !important;
}
.orola-auth__card input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -55%) rotate(45deg);
  width: 5px; height: 9px;
  border-right: 2px solid var(--orola-gold, #caa133);
  border-bottom: 2px solid var(--orola-gold, #caa133);
}

/* Focus visibile · ring gold */
.orola-auth__card input[type="radio"]:focus,
.orola-auth__card input[type="checkbox"]:focus {
  outline: 0 !important;
  box-shadow: 0 0 0 3px var(--orola-gold-pale, #fbf3dc) !important;
}

/* Form-check container · spazio fra radio e label */
.orola-auth__card .form-check,
.orola-auth__card .form-check-inline {
  display: inline-flex;
  align-items: center;
  margin-right: 18px;
  margin-bottom: 4px;
  cursor: pointer;
}
.orola-auth__card .form-check-label,
.orola-auth__card label[class*="form-check-label"] {
  font-size: 14px;
  color: var(--orola-navy, #1c3464);
  font-weight: 400;
  cursor: pointer;
}


/* ═══════════════════════════════════════════════════════════════════════════
   64. CART PAGE · v4.10.11 (restyle boutique + fix scroll overlap)
   ───────────────────────────────────────────────────────────────────────────
   Bug fix: .cart-grid__aside-wrapper ha position:sticky con top:194px e
   z-index:1020 (uguale al header). Quando si scrolla, il summary box
   sale e si sovrappone al logo nel header. Soluzione: abbassiamo lo
   z-index a 5 (sotto al header che è 1020), e su mobile rimuoviamo
   sticky (non utile su schermi stretti).

   Restyle: card con bordo gold-pale + radius coerente con login.
═══════════════════════════════════════════════════════════════════════════ */

/* FIX OVERLAP · summary box sotto al header */
.cart-grid__aside-wrapper {
  z-index: 5 !important;
  /* Mantieni sticky ma offset più generoso per evitare collisione */
  top: 200px !important;
}

/* Su mobile/tablet (sotto 992) rimuoviamo lo sticky: occupa schermo e
   crea overlap con il bottom nav fisso */
@media (max-width: 991.98px) {
  .cart-grid__aside-wrapper {
    position: static !important;
    z-index: auto !important;
  }
}

/* === Restyle generale carrello === */

/* Page title "Carrello" · serif italic editoriale (coerente con altre pagine) */
.cart-grid h1,
.cart-grid .h1,
.cart-grid__main h1 {
  font-family: Georgia, "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 32px;
  font-weight: 400;
  color: var(--orola-navy, #1c3464);
  margin-bottom: 24px;
}

/* Cart container · sfondo carta caldo */
body.page-cart .wrapper,
body[class*="cart"] .wrapper {
  background: var(--orola-surface-cool, #fbf8f3);
  padding-top: 30px;
  padding-bottom: 60px;
}

/* Cart cards · style boutique con bordo gold-pale */
.cart-grid__main .card,
.cart-grid__main .cart-overview,
.cart-summary,
.cart-grid__right > div {
  background: #fff;
  border: 0.5px solid var(--orola-border, #e6dec9) !important;
  border-radius: 14px !important;
  box-shadow: 0 2px 12px rgba(28, 52, 100, 0.04);
  padding: 24px 26px;
  margin-bottom: 20px;
}

/* Summary box title "Riepilogo dell'ordine" */
.cart-summary h2,
.cart-summary .h2,
.cart-summary .h3,
.cart-summary__title {
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 20px;
  color: var(--orola-navy, #1c3464);
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--orola-border, #e6dec9);
}

/* Totale rows · spacing pulito */
.cart-summary__line,
.cart-summary-totals .cart-total,
.cart-summary-items .cart-summary-product {
  padding: 8px 0;
  font-size: 14px;
}
.cart-summary__line--total,
.cart-summary-totals .cart-total {
  font-weight: 600;
  font-size: 16px;
  color: var(--orola-navy, #1c3464);
  border-top: 1px solid var(--orola-border, #e6dec9);
  margin-top: 10px;
  padding-top: 14px;
}

/* "Conferma e paga" / Proceed to checkout button · navy filled coerente */
.cart-detailed-actions .btn-primary,
.cart-grid__aside .btn-primary,
a.btn-primary[href*="checkout"],
button.btn-primary[name*="checkout"] {
  display: block;
  width: 100%;
  padding: 15px 22px;
  background: var(--orola-navy, #1c3464) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--orola-navy, #1c3464) !important;
  border-radius: 10px !important;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  box-shadow: 0 2px 12px rgba(28, 52, 100, 0.18);
  transition: background 180ms ease, transform 180ms ease, box-shadow 220ms ease;
  margin-top: 14px;
}
.cart-detailed-actions .btn-primary:hover,
.cart-grid__aside .btn-primary:hover {
  background: var(--orola-navy-dark, #122448) !important;
  border-color: var(--orola-navy-dark, #122448) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(28, 52, 100, 0.28);
}

/* "Continua lo shopping" link · gold */
.cart-grid a[href*="content"],
.cart-grid .cart-detailed-actions a:not(.btn),
.cart-detailed-actions a[href*="index"] {
  color: var(--orola-gold-dark, #a98326) !important;
  font-weight: 500;
  text-decoration: none !important;
}
.cart-grid a:not(.btn):hover {
  text-decoration: underline !important;
}

/* Empty cart message · centrato */
.cart-empty,
.cart-overview:has(.alert-warning),
.cart-grid__main:has(.alert-info) {
  text-align: center;
  padding: 40px 20px;
}
.cart-grid .alert-warning,
.cart-grid .alert-info {
  background: var(--orola-gold-pale, #fbf3dc);
  border: 1px solid var(--orola-gold, #caa133);
  color: var(--orola-navy, #1c3464);
  border-radius: 10px;
}

/* Mobile · padding ridotto */
@media (max-width: 576px) {
  body.page-cart .wrapper { padding-top: 16px; padding-bottom: 30px; }
  .cart-grid__main .card,
  .cart-summary,
  .cart-grid__right > div {
    padding: 18px 16px;
    border-radius: 12px !important;
  }
  .cart-grid h1 { font-size: 26px; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   65. FOOTER · v4.10.11 — niente bianco sotto il footer wrapper
   ───────────────────────────────────────────────────────────────────────────
   Se la pagina è più corta del viewport, dopo il footer si vedeva il bg
   bianco di html/body. Diamo a html il navy del footer così la zona sotto
   il footer appare uniforme.

   Rimuoviamo anche il margin-top:80px del wrapper footer (era pensato per
   distanziare dalla fascia social, non più necessaria ora che il modulo
   ps_socialfollow è disattivato).
═══════════════════════════════════════════════════════════════════════════ */

html {
  background-color: var(--orola-navy, #1c3464);
}

.orola-footer-wrapper {
  margin-top: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   66. CART PILL ISOLATION · v4.10.13
   ───────────────────────────────────────────────────────────────────────────
   La pill carrello nell'header (.orola-header-pill--solid.orola-cart-pill)
   NON deve più avere le classi .blockcart/.cart-preview/.cart-products-count
   perché ps_shoppingcart sostituiva l'intero nodo al click di Acquista,
   facendo SPARIRE la pill custom.
   I placeholder #_desktop_ps_shoppingcart / #_mobile_ps_shoppingcart ora hanno
   classe .orola-cart-sink: restano funzionanti per PS (blockcart renderizza
   lì) ma sono visivamente nascosti (off-screen, accessibili al JS).
   Il conteggio viene aggiornato via JS listener (orola-mobile.js · cart sync).

   FIX collaterale: forziamo border-radius 10px sul bottone "Acquista" anche
   da questa sezione (in fondo al file) per vincere sulla cascata se il
   theme.css cached con border-radius:999px viene servito dopo l'aggregato.
═══════════════════════════════════════════════════════════════════════════ */

/* Sink off-screen per ps_shoppingcart (mantiene il modulo funzionante) */
.orola-cart-sink {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* Forza la pill desktop a NON sparire mai (display sempre flex su lg+) */
.orola-header-pill.orola-cart-pill {
  display: inline-flex !important;
}

/* Re-assicurazione: il bottone Acquista deve essere 10px, non pill 999px.
   Il theme.css raw cached sul CDN ha ancora 999px; questa regola in
   sezione 66 vive nell'aggregato fresco e vince per ordine + specificità. */
.product__add-to-cart-button.btn-primary,
.product__add-to-cart-button.btn.btn-primary {
  border-radius: 10px !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   67. PRODUCT PAGE · COMPACT EMPTY BLOCKS · v4.10.17 (rev. SAFE)
   ───────────────────────────────────────────────────────────────────────────
   ⚠ REVERT della v4.10.16 che aveva regole troppo aggressive interferenti con
   productarrival (renderizzato in .product__tax-infos.orola-price-aftertype)
   e con lo Stripe Express (rendering iframe nel .product__actions).

   Approccio MINIMALE: nasconde SOLO i due blocchi nativi Hummingbird che
   PrestaShop renderizza sempre vuoti quando il prodotto non ha brand /
   short description. Nessuna interferenza con .orola-* o module CSS.
═══════════════════════════════════════════════════════════════════════════ */

.product__right .product__manufacturer:empty,
.product__right .product__description-short:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   68. CART PAGE · v4.10.19 — bugfix qty wrap + restyle compatto
   ───────────────────────────────────────────────────────────────────────────
   Bug grafico stock Hummingbird: nel .product-line del carrello, il gruppo
   [-/INPUT/+] della quantità è w=144px ma i 3 elementi richiedono 206px
   (61+84+61) → l'INCREMENT [+] wrappa a riga 2.

   Fix: shrink-fit dei bottoni (36px), input compatto (50px), no-wrap del
   gruppo, totale ~122px che entra nel container.

   Inoltre:
     · Nasconde la breadcrumb "Home" che PS9 renderizza inutilmente su
       cart/order/checkout (pagine di flusso, non navigazione).
     · Compatta padding del .cart__item.
     · Allinea visivamente prezzo/qty al brand (navy/gold).

   100% CSS, zero override template.
═══════════════════════════════════════════════════════════════════════════ */

/* ── Breadcrumb "Home" inutile su pagine di flusso ── */
body.page-cart .breadcrumb__wrapper,
body.page-order .breadcrumb__wrapper,
body.page-order-confirmation .breadcrumb__wrapper,
body.page-checkout .breadcrumb__wrapper {
  display: none !important;
}

/* ── Fix qty group: forzato single-row, dimensioni compatte ── */
.cart__item .quantity-button__group,
.cart__item .product-line__quantity-button {
  width: auto !important;
  min-width: 0 !important;
  max-width: 130px !important;
  flex-wrap: nowrap !important;
  display: inline-flex !important;
  align-items: stretch !important;
  height: 42px !important;
}

.cart__item .quantity-button__group .btn-square-icon.decrement,
.cart__item .quantity-button__group .btn-square-icon.increment,
.cart__item .product-line__quantity-button .decrement,
.cart__item .product-line__quantity-button .increment {
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 42px !important;
  padding: 0 !important;
  border-radius: 6px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.cart__item .quantity-button__group input.js-cart-line-product-quantity,
.cart__item .product-line__quantity-button input.js-cart-line-product-quantity {
  flex: 0 0 50px !important;
  width: 50px !important;
  min-width: 50px !important;
  max-width: 50px !important;
  height: 42px !important;
  padding: 0 4px !important;
  text-align: center !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  font-weight: 600 !important;
  font-size: 15px !important;
}

/* ── Restyle visivo della cart line ── */
.cart__item {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e9eaed;
  margin-bottom: 16px;
  padding: 16px 20px;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.cart__item:hover {
  border-color: var(--orola-gold, #caa133);
  box-shadow: 0 4px 16px rgba(28, 52, 100, 0.06);
}

.cart__item .product-line__title {
  font-family: 'Georgia', serif !important;
  font-size: 17px !important;
  color: var(--orola-navy, #1c3464) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.cart__item .product-line__title:hover {
  color: var(--orola-gold, #caa133) !important;
}

.cart__item .product-line__price,
.cart__item .product-price {
  color: var(--orola-navy, #1c3464) !important;
  font-weight: 700 !important;
  font-size: 17px !important;
}

/* ── Heading H1 "Carrello" con stile boutique ── */
body.page-cart .page-header h1,
body.page-cart h1.h1,
body.page-cart .l-header__top h1 {
  font-family: 'Georgia', serif !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: var(--orola-navy, #1c3464) !important;
  letter-spacing: -0.01em !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   69+70. CHECKOUT TABS + STRIPE WRAPPER · RIMOSSI
   ───────────────────────────────────────────────────────────────────────────
   Niente CSS su #stripe-express-checkout-element (Stripe gestisce iframe).
   Niente restyle .checkout-steps finché non c'è debug visivo preciso.
═══════════════════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════════════════
   71. iOS / TOUCH HARDENING · v4.10.23
   ───────────────────────────────────────────────────────────────────────────
   5 fix preventivi per i bug più comuni di Safari iOS / device touch.
   Tutte le regole sono ADDITIVE: non modificano regole esistenti, aggiungono
   solo override per casi specifici (media query, font-size minimo su input,
   touch-action, ecc.). Sicure per desktop, attive per i casi target.

   1) :hover stuck dopo tap → reset su device touch
   2) Input auto-zoom iOS → forza font-size 16px su tutti i form field
   3) 100vh URL bar bug → usa 100dvh con fallback
   4) position:fixed jitter → translateZ(0) su sticky/fixed esistenti
   5) Tap delay + tap highlight → touch-action:manipulation + no highlight
═══════════════════════════════════════════════════════════════════════════ */

/* ── 71.1 :hover stuck dopo tap su iOS/Android ────────────────────────────
   Su device che NON hanno hover reale (`@media (hover: none)`), annulliamo
   i cambiamenti più visibili che le regole :hover applicano normalmente.
   Lasciamo solo gli effetti già attivi via :focus / :active, che funzionano
   correttamente anche al touch. */
@media (hover: none), (pointer: coarse) {
  a:hover,
  button:hover,
  .btn:hover,
  .orola-header-pill:hover,
  .orola-bottom-nav__item:hover,
  .product-miniature:hover,
  .product__card:hover,
  .navbar-nav .nav-link:hover,
  .footer-block a:hover,
  .orola-cart-pill:hover,
  .product__add-to-cart-button:hover {
    /* Annulla transform e box-shadow tipici di hover (più visibili) */
    transform: none !important;
    box-shadow: revert !important;
    /* Background / color li lasciamo: spesso sono OK anche stuck */
  }
}

/* ── 71.2 iOS form auto-zoom — font-size minimo 16px sugli input ───────────
   iOS Safari fa zoom automatico al focus se il font-size è < 16px. Forziamo
   16px sui campi del form per evitarlo, mantenendo i 14px solo su desktop. */
@media (max-width: 767px) {
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="number"],
  input[type="search"],
  input[type="url"],
  input[type="date"],
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* ── 71.3 100vh → 100dvh per evitare overflow URL bar iOS ─────────────────
   Override mirato delle regole esistenti che usano 100vh. Le dvh sono
   supportate iOS 15.4+, Safari Mac 15.4+, Chrome 108+. */
@supports (height: 100dvh) {
  /* Drawer/offcanvas mobile (tipicamente full-height) */
  .orola-drawer,
  .orola-drawer__panel,
  [class*="offcanvas"][class*="full"],
  .orola-modal-fullscreen {
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
  }
}

/* ── 71.4 Stabilità position:fixed su iOS ─────────────────────────────────
   translateZ(0) forza la GPU composition layer, riduce jitter su scroll.
   ⚠ NON applicare al .header.js-sticky-header: contiene la bottom-nav e
   creerebbe un containing block che intrappola il position:fixed dei figli
   (bottom-nav appariva attaccata all'header invece che a fondo viewport). */
.orola-drawer,
.orola-drawer__panel {
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ── 71.5 Tap-delay 300ms + flash blu tap iOS ─────────────────────────────
   - touch-action: manipulation rimuove il 300ms di tap-delay sui controlli
   - -webkit-tap-highlight-color: transparent rimuove il flash blu al tocco */
a, button, .btn, label, input[type="submit"],
input[type="checkbox"], input[type="radio"],
.orola-header-pill, .orola-bottom-nav__item,
.product-miniature, .add-to-cart, .nav-link,
.checkout-steps__btn, .quantity-button__group .btn {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* ── 71.6 Smooth momentum scroll su contenitori scrollabili ───────────────
   iOS-only ma inerte su altri browser. */
.cart-grid__items,
.cart-summary,
.faceted-search-drawer,
.orola-drawer__panel {
  -webkit-overflow-scrolling: touch;
}

/* ── 71.7 Safe-area bottom nav (notch handling) — già parzialmente presente */
.orola-bottom-nav {
  padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   72. MOBILE iPhone FIX SUITE · v4.10.24 (basato su screenshot reali)
   ───────────────────────────────────────────────────────────────────────────
   72.1 — Header iPhone: search a DESTRA del logo (era a sinistra accanto al
         hamburger). Layout finale: [☰] [LOGO al centro] [🔍]
   72.2 — Badge prodotto (NOVITÀ + sconto diagonali) ridotti su mobile —
         coprivano l'intera immagine
   72.3 — Reassurance product page: circoli 60px (era 110), padding stretto,
         titoli compatti, layout 3-col horizontal anche su mobile
   72.4 — Bottom nav nascosta default, bottone flottante che la apre/chiude
═══════════════════════════════════════════════════════════════════════════ */

/* ── 72.1 Header iPhone: search → right side ────────────────────────────── */
@media (max-width: 991.98px) {
  .header-bottom__row {
    align-items: center !important;
  }
  .header-bottom__row .orola-hamburger {
    order: 1 !important;
  }
  .header-bottom__row .header-bottom__logo {
    order: 2 !important;
    flex: 1 1 auto !important;
    text-align: center !important;
    justify-content: center !important;
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
  .header-bottom__row .orola-header-search {
    order: 3 !important;
    margin-left: auto !important;
  }
  /* Altre col mobile (placeholders nascosti) restano sopra: order alto per andare in fondo */
  .header-bottom__row .ps-searchbar--mobile,
  .header-bottom__row > .d-none {
    order: 99 !important;
  }
}

/* ── 72.2 Product flags / ribbon ridotti su mobile ──────────────────────── */
@media (max-width: 767px) {
  .product-miniature .product-flags,
  .product-miniature ul.product-flags {
    /* Container occupa meno spazio sul cover */
    font-size: 11px !important;
  }
  .product-miniature .product-flags .badge,
  .product-miniature .product-flags li.badge,
  .product-miniature .product-flags .badge:not(.discount),
  .product-miniature .product-flags .product-flag,
  .product-miniature .product-flags .product-flag.new {
    font-size: 10px !important;
    padding: 2px 16px !important;
    letter-spacing: 0.04em !important;
    /* Ribbon più stretto/corto */
  }
  /* Anche il discount diagonale corto */
  .product-miniature .product-flags .badge.discount,
  .product-miniature .product-flags .discount {
    font-size: 10px !important;
    padding: 2px 14px !important;
  }
  /* Se sono ribbon angolari (transform rotate), riduciamo l'offset/spessore */
  .product-miniature .product-flags .badge[style*="rotate"],
  .product-miniature .product-flags .product-flag[style*="rotate"] {
    transform: rotate(-45deg) translateY(-50%) scale(0.85) !important;
  }
}

/* ── 72.3 Reassurance product page: layout compatto su mobile ───────────── */
@media (max-width: 767px) {
  /* Riduci il titolo IL NOSTRO IMPEGNO e "Al tuo fianco..." */
  .product__bottom-right .blockreassurance::before {
    font-size: 9px !important;
    letter-spacing: 0.22em !important;
    top: 16px !important;
  }
  .product__bottom-right .blockreassurance::after {
    font-size: 16px !important;
    top: 30px !important;
    padding: 0 12px !important;
  }
  /* Push items meno giù */
  .product__bottom-right .blockreassurance > .reassurance:first-child,
  .product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
    margin-top: 70px !important;
  }
  /* Layout: 3 colonne (anche su mobile) in row */
  .product__bottom-right .blockreassurance {
    flex-wrap: nowrap !important;
    gap: 4px !important;
    padding: 16px 8px 20px !important;
  }
  .product__bottom-right .blockreassurance .reassurance,
  .product__bottom-right .blockreassurance--product .reassurance {
    min-width: 0 !important;
    flex: 1 1 0 !important;
    padding: 0 4px !important;
    gap: 8px !important;
  }
  /* Circoli compatti */
  .product__bottom-right .blockreassurance .reassurance__image {
    width: 56px !important;
    height: 56px !important;
    box-shadow:
      0 2px 6px rgba(184, 148, 39, 0.08),
      inset 0 0 0 3px #faf6e7 !important;
  }
  .product__bottom-right .blockreassurance .reassurance__image svg {
    width: 24px !important;
    height: 24px !important;
  }
  /* Titoli più piccoli, line-height stretto, max 2 righe */
  .product__bottom-right .blockreassurance .reassurance__content,
  .product__bottom-right .blockreassurance .reassurance__title {
    font-size: 11px !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    font-weight: 600 !important;
  }
}

/* ── 72.4 Bottom nav + FAB toggle (v2 — class su .orola-bottom-nav) ────── */
/* Phone <=767.98: bottom-nav nascosta default, mostra con .is-open */
@media (max-width: 767.98px) {
  .orola-bottom-nav {
    display: none !important;
  }
  .orola-bottom-nav.is-open {
    display: flex !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;  /* sicurezza: niente top:0 ereditato */
    z-index: 1030 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Body padding solo quando bar visibile */
  body { padding-bottom: 0 !important; }
  body:has(.orola-bottom-nav.is-open) { padding-bottom: 72px !important; }
}

/* FAB toggle button (iniettato via orola-mobile.js) — visibile <992px */
@media (max-width: 991.98px) {
  .orola-botnav-toggle {
    position: fixed !important;
    bottom: max(20px, env(safe-area-inset-bottom)) !important;
    right: 18px !important;
    z-index: 1040 !important;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--orola-navy, #1c3464);
    color: #fff;
    border: 2px solid var(--orola-gold, #caa133);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(28, 52, 100, 0.32);
    cursor: pointer;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
  }
  .orola-botnav-toggle:active { transform: scale(0.94); }
  .orola-botnav-toggle .bi {
    font-size: 22px;
    line-height: 1;
    transition: transform 260ms ease;
  }
  .orola-botnav-toggle.is-active .bi {
    transform: rotate(45deg);
  }
  .orola-botnav-toggle.is-active {
    background: var(--orola-gold, #caa133);
    border-color: var(--orola-navy, #1c3464);
  }
}
@media (min-width: 992px) {
  .orola-botnav-toggle { display: none !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   74. HEADER MOBILE FULL-WIDTH · v4.10.27 — niente container constraints
   ───────────────────────────────────────────────────────────────────────────
   Su mobile l'utente vedeva l'header "in un contenitore più piccolo dello
   schermo". Causa: .header-bottom__container ha max-width 1600px + padding
   24px. Anche se a 390px non costringe il width, può dare margini visivi
   se ci sono background non edge-to-edge.
   Fix: edge-to-edge totale del background dell'header, padding minimo, il
   contenuto interno (.header-bottom__row) può respirare con padding 12px.
═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
  .header,
  .l-header,
  .header-top,
  .header-bottom {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .header-bottom__container,
  .l-header__container,
  .l-header .container,
  .l-header .container-fluid,
  .header .container,
  .header .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .header-bottom__row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   73. MOBILE iPhone FIX v2 · v4.10.25 — per-punti dei feedback utente
   ───────────────────────────────────────────────────────────────────────────
   73.1 — Header logo CENTRATO perfetto (hamburger e search equal width 44px)
   73.2 — Badge ribbon ANCORA più piccoli (override width/top/left geometry)
   73.3 — Reassurance product page: gap ridotto a 28px (era 64px margin-top)
   73.4 — Carrello mobile: padding card, qty compatte, immagine 100px
   73.5 — Ordine mobile: radio/checkbox grandi 22px + label readable
═══════════════════════════════════════════════════════════════════════════ */

/* ── 73.1 Header iPhone logo centrato + nascondi residui dopo search ───── */
@media (max-width: 991.98px) {
  .header-bottom__row .orola-hamburger,
  .header-bottom__row .orola-header-search {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    flex: 0 0 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .header-bottom__row .header-bottom__logo {
    flex: 1 1 0 !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 8px !important;
  }
  .header-bottom__row .header-bottom__logo img,
  .header-bottom__row .header-bottom__logo a {
    margin: 0 auto !important;
    display: block !important;
  }
  /* Nasconde elementi residui che creano vuoto dopo il search button:
     ps-searchbar--mobile (mobile hook PS, ridondante - abbiamo il nostro),
     orola-header-spacer (era per equilibrare il vecchio layout),
     desktop-only blocks accidentalmente visibili */
  .header-bottom__row .ps-searchbar--mobile,
  .header-bottom__row .orola-header-spacer,
  .header-bottom__row > .d-none {
    display: none !important;
    width: 0 !important;
    flex: 0 0 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}

/* ── 73.2 Badge ribbon su mobile: ANCORA più piccoli ────────────────────── */
@media (max-width: 767px) {
  /* Geometria base ribbon: ridotto da 160×28 a 110×20 */
  .product-miniature .product-flags .badge,
  .product-miniature .product-flags li.badge,
  .product-miniature .product-flags .badge:not(.discount),
  .product-miniature .product-flags .product-flag,
  .product-miniature .product-flags .product-flag.new {
    width: 110px !important;
    height: 20px !important;
    top: 12px !important;
    left: -30px !important;
    font-size: 9px !important;
    letter-spacing: 0.06em !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.25) !important;
  }
  /* Discount ribbon */
  .product-miniature .product-flags .badge.discount,
  .product-miniature .product-flags .badge.on-sale,
  .product-miniature .product-flags li.badge.discount,
  .product-miniature .product-flags .product-flag.discount {
    font-size: 9px !important;
  }
  /* Pseudo "✧ Novità" più piccolo */
  .product-miniature .product-flags .badge.new::before,
  .product-miniature .product-flags li.badge.new::before,
  .product-miniature .product-flags .product-flag.new::before {
    font-size: 9px !important;
    letter-spacing: 0.06em !important;
  }
  /* Doppio badge (novità sotto discount) — ridotto */
  .product-miniature .product-flags:has(> :nth-child(2)) > .badge.new,
  .product-miniature .product-flags:has(> :nth-child(2)) > li.badge.new,
  .product-miniature .product-flags:has(> :nth-child(2)) > .product-flag.new {
    top: 30px !important;
    left: -30px !important;
    width: 130px !important;
    height: 20px !important;
  }
  /* Badge Limited Edition — riduce padding */
  .product-miniature .product-badge--limited {
    font-size: 8px !important;
    padding: 4px 8px !important;
    top: 8px !important;
    right: 8px !important;
    letter-spacing: 0.1em !important;
  }
}

/* ── 73.3 Reassurance: GAP ridotto su mobile ─────────────────────────────── */
@media (max-width: 767px) {
  /* Sopra-titolo IL NOSTRO IMPEGNO + frase italic stessa posizione */
  .product__bottom-right .blockreassurance::before {
    top: 10px !important;
    font-size: 9px !important;
  }
  .product__bottom-right .blockreassurance::after {
    top: 22px !important;
    font-size: 15px !important;
  }
  /* Items: drasticamente meno spazio sopra */
  .product__bottom-right .blockreassurance > .reassurance:first-child,
  .product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
    margin-top: 50px !important;
  }
  /* Tutto il container compatto */
  .product__bottom-right .blockreassurance {
    padding: 10px 6px 14px !important;
    min-height: 0 !important;
  }
  /* Eventuale spazio fra .product__actions e .product__bottom */
  .product__bottom,
  .product__bottom-right {
    margin-top: 12px !important;
    padding-top: 8px !important;
  }
}

/* ── 73.4 Carrello mobile — estetica più boutique ───────────────────────── */
@media (max-width: 767px) {
  /* Card prodotto carrello */
  body.page-cart .cart__item {
    padding: 12px !important;
    margin-bottom: 10px !important;
    border-radius: 10px !important;
  }
  /* Immagine prodotto più compatta */
  body.page-cart .product-line__image,
  body.page-cart .product-line__image img,
  body.page-cart .product-line__image picture {
    width: 84px !important;
    height: 84px !important;
    min-width: 84px !important;
  }
  body.page-cart .product-line__content,
  body.page-cart .product-line__content-left {
    width: auto !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
  /* Titolo prodotto serif italic, line-height stretto */
  body.page-cart .product-line__title {
    font-size: 14px !important;
    line-height: 1.3 !important;
    margin-bottom: 4px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  /* Prezzo navy bold piccolo */
  body.page-cart .product-line__price,
  body.page-cart .product-price {
    font-size: 15px !important;
  }
  /* Qty buttons compatti su mobile */
  body.page-cart .quantity-button__group .btn-square-icon,
  body.page-cart .product-line__quantity-button .btn-square-icon {
    flex: 0 0 32px !important;
    width: 32px !important;
    height: 36px !important;
  }
  body.page-cart .quantity-button__group input.js-cart-line-product-quantity,
  body.page-cart .product-line__quantity-button input.js-cart-line-product-quantity {
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 36px !important;
    font-size: 14px !important;
  }
  /* Bottone CONFERMA E PAGA full width navy boutique */
  body.page-cart .cart-detailed-actions .btn,
  body.page-cart .checkout .btn {
    width: 100% !important;
    padding: 16px !important;
    font-size: 14px !important;
    letter-spacing: 0.12em !important;
  }
  /* Cart summary spaziosa */
  body.page-cart .cart-summary,
  body.page-cart .checkout__summary-accordion-wrapper {
    padding: 16px !important;
    border-radius: 10px !important;
  }
}

/* ── 73.6 PRODUCT PAGE DESKTOP — compacting gap tra reassurance e descrizione */
.product__bottom {
  margin-top: 16px !important;
  gap: 20px !important;
  margin-bottom: 32px !important;
}
.product__bottom-right,
.product__bottom-left {
  margin-bottom: 0 !important;  /* era ereditato 48px da Hummingbird */
}
/* Compacting reassurance container vertical space */
.product__bottom-right .blockreassurance,
.product__bottom-right .blockreassurance--product {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  min-height: 0 !important;
}
.product__bottom-right .blockreassurance::before {
  top: 14px !important;
}
.product__bottom-right .blockreassurance::after {
  top: 30px !important;
}
.product__bottom-right .blockreassurance > .reassurance:first-child,
.product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
  margin-top: 40px !important;  /* era 64 */
}
/* Reassurance circles ridotti anche su desktop per compacting */
@media (min-width: 768px) {
  .product__bottom-right .blockreassurance .reassurance__image {
    width: 88px !important;
    height: 88px !important;
  }
  .product__bottom-right .blockreassurance .reassurance__image svg {
    width: 38px !important;
    height: 38px !important;
  }
}


/* ── 73.5 Ordine mobile — radio/checkbox VISIBILI ──────────────────────── */
body.page-order input[type="radio"],
body.page-order input[type="checkbox"],
body.page-checkout input[type="radio"],
body.page-checkout input[type="checkbox"] {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  margin-right: 10px !important;
  border: 2px solid var(--orola-navy, #1c3464) !important;
  background: #fff !important;
  cursor: pointer;
  vertical-align: middle;
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex-shrink: 0;
}

/* Radio rotondo */
body.page-order input[type="radio"],
body.page-checkout input[type="radio"] {
  border-radius: 50% !important;
}
body.page-order input[type="radio"]:checked,
body.page-checkout input[type="radio"]:checked {
  border-color: var(--orola-navy, #1c3464) !important;
}
body.page-order input[type="radio"]:checked::after,
body.page-checkout input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 3px; left: 3px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--orola-gold, #caa133);
}

/* Checkbox quadrato con check */
body.page-order input[type="checkbox"],
body.page-checkout input[type="checkbox"] {
  border-radius: 4px !important;
}
body.page-order input[type="checkbox"]:checked,
body.page-checkout input[type="checkbox"]:checked {
  background: var(--orola-navy, #1c3464) !important;
  border-color: var(--orola-navy, #1c3464) !important;
}
body.page-order input[type="checkbox"]:checked::after,
body.page-checkout input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 6px; top: 1px;
  width: 6px; height: 12px;
  border: solid #caa133;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

/* Focus visibile */
body.page-order input[type="radio"]:focus,
body.page-order input[type="checkbox"]:focus,
body.page-checkout input[type="radio"]:focus,
body.page-checkout input[type="checkbox"]:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(202, 161, 51, 0.25) !important;
}

/* Label associata: padding + cursor pointer + spacing */
body.page-order label,
body.page-checkout label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  padding: 8px 4px;
  min-height: 44px;
}

/* Spacing fra gruppi di campi */
@media (max-width: 767px) {
  body.page-order .form-group,
  body.page-checkout .form-group {
    margin-bottom: 16px !important;
  }
  /* Bottoni primari del checkout full width */
  body.page-order .form-footer .btn,
  body.page-order button[type="submit"]:not(.btn-link),
  body.page-checkout .form-footer .btn {
    width: 100% !important;
    padding: 14px !important;
    font-size: 14px !important;
    letter-spacing: 0.1em !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   75. FIX TRIPLO RESIDUO · v4.10.32
   ───────────────────────────────────────────────────────────────────────────
   75.1 — Doppi bordi miniature gallery prodotto (button border + img outline)
   75.2 — Header mobile full-width edge-to-edge davvero
   75.3 — Gap mobile tra Acquista/Stripe e Reassurance ridotto drasticamente
═══════════════════════════════════════════════════════════════════════════ */

/* ── 75.1 Doppi bordi miniature gallery prodotto ──────────────────────────
   Stock Hummingbird: button.product__thumbnail ha border navy 1.67px +
   img.product__thumbnail-image ha OUTLINE gold 1.67px + padding 6px.
   Risultato visivo: doppia cornice (navy esterna + gold interna spostata di
   6px). User: "è orribile". Fix: rimuovo outline gold + padding dall'img,
   resta solo il bordo navy esterno (active state gold via CSS sotto). */
.product__thumbnail-image,
.product__thumbnails-list .product__thumbnail img,
.product__thumbnail .outline {
  outline: none !important;
  padding: 0 !important;
  border-radius: 4px !important;
}
.product__thumbnail {
  padding: 2px !important;
  border-radius: 6px !important;
}
.product__thumbnail.active {
  border-color: var(--orola-gold, #caa133) !important;
  border-width: 2px !important;
}
.product__thumbnail:hover {
  border-color: var(--orola-gold, #caa133) !important;
}


/* ── 75.2 Header mobile FULL-WIDTH definitivo ────────────────────────────
   v4.10.27 Section 74 aveva max-width:100% e padding:12px, ma sull'iPhone
   user vede ancora "in scatola". Forzo edge-to-edge AGGRESSIVO con
   100vw + overflow-x:hidden sul body per evitare scroll orizzontale. */
@media (max-width: 991.98px) {
  html, body {
    overflow-x: hidden !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
  }
  /* Stripe header: l-header + tutti i suoi children al 100vw */
  .header,
  .l-header,
  .header-top,
  .l-header__top,
  .header-bottom,
  .l-header__bottom {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
  .header-bottom__container,
  .l-header__container,
  .header .container,
  .header .container-fluid,
  .l-header .container,
  .l-header .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }
  .header-bottom__row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    --bs-gutter-x: 0 !important;
  }
}


/* ── 75.3 Gap mobile Acquista/Stripe → Reassurance ridotto ──────────────
   Su mobile l'utente vede ~280px di gap tra fine Acquista+Stripe e inizio
   "Il nostro impegno". Eliminiamo i margin generosi su mobile. */
@media (max-width: 767px) {
  .product__right > .product__actions,
  .product__right > .js-product-actions {
    margin-bottom: 8px !important;
  }
  .product__add-to-cart-container.product-add-to-cart {
    margin-bottom: 4px !important;
    padding-bottom: 4px !important;
  }
  .product__bottom {
    margin-top: 4px !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
  }
  .product__bottom-right,
  .product__bottom-left {
    margin: 0 !important;
    padding: 0 !important;
  }
  .product__bottom-right .blockreassurance,
  .product__bottom-right .blockreassurance--product {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    min-height: 0 !important;
  }
  .product__bottom-right .blockreassurance > .reassurance:first-child,
  .product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
    margin-top: 24px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   76. RAFFINAMENTI MOBILE v4.10.33 — 3 residui post-Section 75
   ───────────────────────────────────────────────────────────────────────────
   76.1 — Overlap titolo reassurance sopra le icone (margin-top items 60px)
   76.2 — Overflow orizzontale: clip + Bootstrap row gutter zero su mobile
   76.3 — Gap Stripe→Reassurance: zero margin tra actions e bottom
═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {
  /* 76.1 — Reassurance items SOTTO il titolo (no overlap) */
  .product__bottom-right .blockreassurance > .reassurance:first-child,
  .product__bottom-right .blockreassurance > .reassurance:nth-child(n+2) {
    margin-top: 60px !important;
  }
  /* Titolo + kicker posizionati con più aria sopra le icone */
  .product__bottom-right .blockreassurance::before {
    top: 8px !important;
    font-size: 8px !important;
    letter-spacing: 0.18em !important;
  }
  .product__bottom-right .blockreassurance::after {
    top: 18px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  /* 76.2 — Overflow orizzontale TOTALE clip + Bootstrap row gutter zero */
  html {
    overflow-x: clip !important;
    max-width: 100vw !important;
  }
  body {
    overflow-x: clip !important;
    max-width: 100vw !important;
    width: 100% !important;
  }
  /* Bootstrap row con gx-* aggiunge margin negative che esce del viewport.
     Su mobile lo annulla globalmente. */
  .row {
    --bs-gutter-x: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* Qualsiasi container/wrapper di prodotto/carrello evita overflow */
  .product__container,
  .cart-grid,
  main > * {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* 76.3 — Gap Stripe→Reassurance ridotto a ~zero */
  .product__right > .product__actions,
  .product__right > .js-product-actions {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  .product__add-to-cart-container.product-add-to-cart,
  .product__add-to-cart.add {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  .product__bottom {
    margin-top: 4px !important;
    padding-top: 0 !important;
    gap: 4px !important;
  }
  .product__bottom-right {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   78. BLOG TEASER DINAMICO · v4.11.0
   ───────────────────────────────────────────────────────────────────────────
   Sezione "Dal nostro blog" in home ora alimentata via hook
   displayOrolaBlogTeaser del modulo ph_simpleblog. Nuovo markup card con
   IMMAGINI REALI (cover dei post) invece di icone-gradient placeholder.
═══════════════════════════════════════════════════════════════════════════ */

.orola-blog__head {
  margin-bottom: 18px;
  text-align: center;
}
.orola-blog__kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--orola-gold-dark, #b89427);
  margin-bottom: 8px;
}

/* Card → ora <article> con cover separato da body link */
.orola-blog .orola-blog__card {
  display: flex !important;
  flex-direction: column;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: var(--radius-md, 12px);
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.orola-blog .orola-blog__card:hover {
  transform: translateY(-3px);
  border-color: var(--orola-gold, #caa133);
  box-shadow: 0 8px 24px rgba(28, 52, 100, 0.10);
}

/* Cover ora è un <a> con <img> reale */
.orola-blog .orola-blog__cover {
  display: block;
  aspect-ratio: 3 / 2;
  position: relative;
  overflow: hidden;
  text-decoration: none !important;
  background: linear-gradient(135deg, var(--orola-navy-grad-1, #1c3464), var(--orola-navy-grad-2, #14233c));
}
.orola-blog__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 320ms ease;
}
.orola-blog .orola-blog__card:hover .orola-blog__img {
  transform: scale(1.04);
}
.orola-blog__img--placeholder {
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.orola-blog__img--placeholder .bi {
  font-size: 42px;
  color: rgba(255, 255, 255, 0.35);
}

/* Body */
.orola-blog .orola-blog__body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.orola-blog__cat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--orola-gold-dark, #b89427);
}
.orola-blog .orola-blog__title {
  font-family: var(--font-editorial, 'Georgia', serif);
  font-style: italic;
  font-weight: 400;
  font-size: 17px;
  color: var(--orola-navy-dark, #14233c);
  margin: 0;
  line-height: 1.3;
}
.orola-blog__title a {
  color: inherit;
  text-decoration: none !important;
}
.orola-blog__title a:hover {
  color: var(--orola-gold-dark, #b89427);
}
.orola-blog__excerpt {
  font-size: 13px;
  line-height: 1.5;
  color: var(--orola-text-muted, #6b7280);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.orola-blog .orola-blog__date {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--orola-text-muted, #6b7280);
  margin-top: 4px;
}

/* Foot con CTA "Vai al blog" */
.orola-blog__foot {
  margin-top: 24px;
  text-align: center;
}
.orola-blog__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1.5px solid var(--orola-navy, #1c3464);
  color: var(--orola-navy, #1c3464);
  border-radius: var(--radius-pill, 999px);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background 200ms ease, color 200ms ease;
}
.orola-blog__cta:hover {
  background: var(--orola-navy, #1c3464);
  color: #fff;
}

@media (max-width: 767.98px) {
  .orola-blog__grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .orola-blog .orola-blog__body { padding: 14px 14px 16px; }
  .orola-blog .orola-blog__title { font-size: 16px; }
  .orola-blog__excerpt { -webkit-line-clamp: 2; }
}

