/* ============================================
   FARMACIA MODERNA - Custom CSS
   Applicato su tema Warehouse nativo
   Primary: #2dc8b8
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --fm: #2dc8b8;
  --fm-d: #22a99b;
  --fm-l: #e8f8f6;
  --fm-rgb: 45, 200, 184;
  --fm-dark: #1a2332;
  --fm-r: 12px;
}

/* ---- FONT ---- */
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important; -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 { font-family: 'Inter', sans-serif !important; }

/* ---- TOP BAR ---- */
/* Match the newsletter footer strip: same diagonal navy→slate gradient
   plus a soft teal halo on the right for visual continuity. */
.header-nav {
  background: linear-gradient(135deg, #1a2332 0%, #2a3849 100%) !important;
  font-size: 0.78rem;
  padding: 4px 0 !important;
  position: relative;
  overflow: hidden;
}
.header-nav::after {
  content: "";
  position: absolute;
  right: -120px;
  top: -120px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(45, 200, 184, .22), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.header-nav > .container { position: relative; z-index: 1; }
.header-nav a:hover { color: var(--fm) !important; }

/* ---- HEADER ---- */
#header { background: #fff !important; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.header-top { border: none !important; }

/* ---- ANIMATED LOGO ---- */
#desktop_logo a, .col-mobile-logo a { display: inline-flex !important; align-items: center !important; gap: 8px !important; text-decoration: none !important; }
#desktop_logo img.logo { width: 44px !important; height: 44px !important; max-height: none !important; }
.fm-animated-text { display: inline-flex; gap: 1px; perspective: 800px; font-size: 1.35rem; font-weight: 700; color: var(--fm-dark); }

/* ---- HEADER LAYOUT ---- */
.fm-header-row { flex-wrap: nowrap !important; }
.fm-header-row .col-header-center { flex: 1 1 0% !important; min-width: 0 !important; padding: 0 20px !important; }
.fm-animated-text span { display: inline-block; animation: fmRotateLetter 2.6s ease-in-out infinite; transform-origin: center; transform-style: preserve-3d; }
.fm-animated-text span:nth-child(1)  { animation-delay: 0.0s; }
.fm-animated-text span:nth-child(2)  { animation-delay: 0.1s; }
.fm-animated-text span:nth-child(3)  { animation-delay: 0.2s; }
.fm-animated-text span:nth-child(4)  { animation-delay: 0.3s; }
.fm-animated-text span:nth-child(5)  { animation-delay: 0.4s; }
.fm-animated-text span:nth-child(6)  { animation-delay: 0.5s; }
.fm-animated-text span:nth-child(7)  { animation-delay: 0.6s; }
.fm-animated-text span:nth-child(8)  { animation-delay: 0.7s; }
.fm-animated-text span:nth-child(9)  { animation-delay: 0.8s; }
.fm-animated-text span:nth-child(10) { animation-delay: 0.9s; }
.fm-animated-text span:nth-child(11) { animation-delay: 1.0s; }
.fm-animated-text span:nth-child(12) { animation-delay: 1.1s; }
.fm-animated-text span:nth-child(13) { animation-delay: 1.2s; }
.fm-animated-text span:nth-child(14) { animation-delay: 1.3s; }
.fm-animated-text span:nth-child(15) { animation-delay: 1.4s; }
@keyframes fmRotateLetter { 0% { transform: rotateX(0deg); } 40% { transform: rotateX(360deg); } 100% { transform: rotateX(360deg); } }

/* Search pill */
#search_widget input { border-radius: 10px !important; border-color: #2dc8b8 !important; }
.iqit-search-widget .iqitsearch-input,
.iqit-search-widget input { border-radius: 50px !important; border: 2px solid #dee2e6 !important; background: #f5f6f8 !important; padding: 10px 50px 10px 20px !important; transition: all .3s ease; }
.iqit-search-widget .iqitsearch-input:focus,
.iqit-search-widget input:focus { border-color: var(--fm) !important; box-shadow: 0 0 0 3px rgba(var(--fm-rgb),.12) !important; background: #fff !important; }
.iqit-search-widget .iqitsearch-submit,
.iqit-search-widget button[type="submit"] { background: var(--fm) !important; border: none !important; border-radius: 50% !important; width: 36px !important; height: 36px !important; min-width: 36px !important; color: #fff !important; position: absolute !important; right: 4px !important; top: 50% !important; transform: translateY(-50%) !important; padding: 0 !important; }
.iqit-search-widget .iqitsearch-submit:hover { background: var(--fm-d) !important; }

/* ---- HEADER BUTTONS (Accedi / Carrello) ---- */
.col-header-right .header-btn-w { padding: 0 4px !important; }
.header-btn { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 4px !important; padding: 6px 12px !important; text-decoration: none !important; position: relative; border-radius: 12px !important; transition: all .3s cubic-bezier(.4,0,.2,1) !important; color: var(--fm-dark) !important; }
.header-btn .icon { width: 44px !important; height: 44px !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 50% !important; background: var(--fm-l) !important; font-size: 1.15rem !important; color: var(--fm) !important; transition: all .3s cubic-bezier(.4,0,.2,1) !important; position: relative; }
.header-btn:hover .icon { background: var(--fm) !important; color: #fff !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(var(--fm-rgb),.3); }
.header-btn .title { font-size: .65rem !important; font-weight: 600 !important; color: #8c939a !important; text-transform: uppercase !important; letter-spacing: .05em !important; transition: color .3s ease; }
.header-btn:hover .title { color: var(--fm) !important; }
.header-btn .cart-toggle-details,
.header-btn .cart-separator { display: none !important; }
.header-btn .info-wrapper { display: flex; flex-direction: column; align-items: center; }

/* Cart badge */
.header-btn .icon .cart-products-count-btn,
.header-cart-trigger .cart-products-count { position: absolute !important; top: -4px !important; right: -4px !important; background: #e74c3c !important; color: #fff !important; font-size: .58rem !important; font-weight: 700 !important; min-width: 18px !important; height: 18px !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; padding: 0 4px !important; border: 2px solid #fff !important; }
.cart-products-count-btn.d-none { display: none !important; }

/* ---- MEGA MENU BAR ---- */
#iqitmegamenu-horizontal { background: #fff !important; border: none !important; border-top: none !important; border-right: none !important; border-bottom: none !important; border-left: none !important; box-shadow: 0 1px 0 rgba(0,0,0,.08) !important; }
.iqitmegamenu-wrapper, .iqitmegamenu { background: #fff !important; border: none !important; }
#cbp-hrmenu, .cbp-hrmenu { border: none !important; }
.cbp-hrmenu > ul { display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; padding: 0 !important; border: none !important; }
.cbp-hrmenu > ul > li, .cbp-horizontal > ul > li { border: none !important; border-left: none !important; border-right: none !important; margin: 0 !important; }
.cbp-hrmenu > ul > li > a,
.cbp-horizontal > ul > li > a { color: var(--fm-dark) !important; font-weight: 600 !important; font-size: .82rem !important; text-transform: uppercase; letter-spacing: .03em; padding: 14px 16px !important; transition: color .2s ease; border: none !important; position: relative; background: transparent !important; }
.cbp-hrmenu > ul > li > a::after { content: ''; position: absolute; bottom: 0; left: 16px; right: 16px; height: 2px; background: var(--fm); transform: scaleX(0); transition: transform .25s ease; border-radius: 2px; }
.cbp-hrmenu > ul > li > a:hover::after,
.cbp-hrmenu > ul > li.cbp-hropen > a::after { transform: scaleX(1); }
.cbp-hrmenu > ul > li > a:hover,
.cbp-hrmenu > ul > li.cbp-hropen > a,
.cbp-horizontal > ul > li.cbp-hropen > a,
.cbp-horizontal > ul > li.cbp-hropen > a:not([href]):not([tabindex]),
.cbp-horizontal > ul > li.cbp-hropen > a:hover { color: var(--fm) !important; background: transparent !important; }
.cbp-hrmenu-tab-toggle { background: var(--fm) !important; border-radius: 8px !important; border: none !important; }
.cbp-submenu-aindicator { font-size: .6rem !important; margin-left: 4px !important; opacity: .5; }

/* ---- MEGA MENU DROPDOWN ---- */
.cbp-hrsub { border: none !important; border-top: 3px solid var(--fm) !important; border-radius: 0 0 12px 12px !important; background: #fff !important; box-shadow: 0 12px 40px rgba(0,0,0,.15) !important; max-height: 70vh !important; overflow-y: auto !important; }
.cbp-hrsub.col-3, .cbp-hrsub.col-4, .cbp-hrsub.col-5 { max-width: 750px !important; min-width: 550px !important; flex: none !important; width: auto !important; }
.cbp-hrmenu .cbp-hrsub-inner,
.cbp-hrmenu ul.cbp-hrsub-level2 { background: #fff !important; border: none !important; box-shadow: none !important; }
.cbp-hrsub-inner { padding: 24px 28px 18px !important; border: none !important; }
.iqitmegamenu-submenu-container { max-width: 100% !important; padding: 0 !important; }
.cbp-hrmenu .cbp-hrsub-inner a,
.cbp-hrmenu .cbp-hrsub-inner a:link { color: #555 !important; }
.cbp-hrmenu .cbp-hrsub-inner a:hover { color: var(--fm) !important; }

/* Force category column to full width */
.cbp-categories-row { margin: 0 !important; display: block !important; }
.cbp-categories-row > div[class*="col-"] { max-width: 100% !important; flex: none !important; width: 100% !important; padding: 0 !important; }

/* Hide redundant parent title in dropdown */
.cbp-column-title.cbp-category-title { display: none !important; }

/* Subcategory list in multi-column */
ul.cbp-links.cbp-category-tree { list-style: none !important; padding: 0 !important; margin: 0 !important; column-count: 3 !important; column-gap: 20px !important; }
ul.cbp-links.cbp-category-tree > li { break-inside: avoid !important; page-break-inside: avoid !important; -webkit-column-break-inside: avoid !important; padding: 0 !important; margin: 0 0 10px !important; }

/* Parent subcategory with teal left accent */
ul.cbp-links.cbp-category-tree > li > .cbp-category-link-w { border-left: 3px solid var(--fm) !important; padding-left: 10px !important; }
ul.cbp-links.cbp-category-tree > li > .cbp-category-link-w > a { color: var(--fm-dark) !important; font-weight: 700 !important; font-size: .8rem !important; padding: 2px 0 !important; display: block; text-decoration: none !important; transition: color .2s ease; }
ul.cbp-links.cbp-category-tree > li > .cbp-category-link-w > a:hover { color: var(--fm) !important; }

/* Items without children — same look as titled entries (no visual demotion) */

/* Hide closed mega menu fully (theme leaves display:block + pointer-events auto after unhover,
   so children stay clickable through our forced visibility — kill it explicitly) */
.cbp-hrmenu > ul > li:not(.cbp-hropen) > .cbp-hrsub {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Sub-subcategories (level 2) — visible only when parent mega menu is OPEN */
.cbp-hrmenu > ul > li.cbp-hropen ul.cbp-hrsub-level2,
.cbp-hrmenu > ul > li.cbp-hropen .cbp-hrsub-haslevel2 > div > ul.cbp-hrsub-level2,
.cbp-hrmenu > ul > li.cbp-hropen .cbp-hrsub-haslevel2 > .cbp-category-link-w > ul.cbp-hrsub-level2 { visibility: visible !important; opacity: 1 !important; position: static !important; left: auto !important; top: auto !important; margin: 4px 0 0 0 !important; border: none !important; white-space: normal !important; box-shadow: none !important; list-style: none !important; padding: 5px 8px !important; z-index: auto !important; min-width: 0 !important; width: auto !important; background: #f5f7f9 !important; border-radius: 6px !important; }
ul.cbp-hrsub-level2 li { padding: 0 !important; }
ul.cbp-hrsub-level2 li + li { border-top: 1px solid rgba(0,0,0,.04) !important; }
ul.cbp-hrsub-level2 a { color: #666 !important; font-size: .72rem !important; font-weight: 400 !important; padding: 3px 6px !important; display: block; text-decoration: none !important; transition: all .15s ease; border: none !important; border-radius: 4px !important; }
ul.cbp-hrsub-level2 a:hover { color: var(--fm) !important; background: rgba(var(--fm-rgb),.08) !important; }

/* Remove ">" arrow on items with sub-levels */
.cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > div > a::after,
.cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > .cbp-category-link-w > a::after,
.cbp-hrmenu .cbp-links li .cbp-hrsub-haslevel3 > div > a::after { display: none !important; }

/* Level 3 — visible only when parent mega menu is OPEN */
.cbp-hrmenu > ul > li.cbp-hropen .cbp-hrsub-haslevel3 > .cbp-category-link-w > ul { visibility: visible !important; opacity: 1 !important; position: static !important; left: auto !important; border: none !important; box-shadow: none !important; background: #eef0f2 !important; border-radius: 4px !important; padding: 3px 6px !important; margin: 2px 0 0 0 !important; }

/* Dropdown scrollbar */
.cbp-hrsub::-webkit-scrollbar { width: 5px; }
.cbp-hrsub::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
.cbp-hrsub::-webkit-scrollbar-thumb:hover { background: var(--fm); }

/* ---- BUTTONS ---- */
.btn-primary, .btn-primary:active, .btn-primary:visited, .btn-primary:not(:disabled):not(.disabled):active,
#content .btn-primary { background: var(--fm) !important; border-color: var(--fm) !important; color: #fff !important; border-radius: 8px; font-weight: 600; transition: all .3s ease; box-shadow: none !important; }
.btn-primary:hover, .btn-primary:focus { background: var(--fm-d) !important; border-color: var(--fm-d) !important; box-shadow: 0 4px 15px rgba(var(--fm-rgb),.35) !important; transform: translateY(-1px); }

/* ---- PRODUCT CARDS ---- */
.product-miniature { background: #fff !important; border-radius: var(--fm-r) !important; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: all .3s cubic-bezier(.4,0,.2,1); border: 1px solid transparent !important; }
.product-miniature:hover { box-shadow: 0 8px 25px rgba(var(--fm-rgb),.18) !important; transform: translateY(-4px); border-color: rgba(var(--fm-rgb),.12) !important; }

/* Swiper/carousel slides equal height - scoped to carousels only */
.swiper-slide .product-miniature { display: flex !important; flex-direction: column !important; height: 100% !important; }
.swiper-slide, .swiper-slide .js-product-miniature-wrapper { height: auto !important; display: flex !important; flex-direction: column !important; }
.swiper-wrapper { align-items: stretch !important; }
.swiper-slide .js-product-miniature-wrapper { flex: 1 !important; }
.swiper-slide .js-product-miniature-wrapper .product-miniature { flex: 1 !important; }

/* Image container */
.product-miniature .thumbnail-container { position: relative !important; overflow: hidden !important; }
.product-miniature .thumbnail-container img { transition: transform .5s cubic-bezier(.4,0,.2,1) !important; }
.product-miniature:hover .thumbnail-container img.product-thumbnail-first { transform: scale(1.05); }

/* Fixed aspect ratio only in carousels */
.swiper-slide .product-miniature .thumbnail-container .product-thumbnail { display: block; aspect-ratio: 1/1; overflow: hidden; background: #fafafa; }
.swiper-slide .product-miniature .thumbnail-container img { width: 100% !important; height: 100% !important; object-fit: contain !important; }

/* Hide vertical menu / Navigation block from sidebar everywhere */
#iqitmegamenu-vertical,
.iqitmegamenu-vertical-wrapper,
#left-column .iqitmegamenu,
#left-column .iqitmegamenu-wrapper,
#left-column #iqitmegamenu-horizontal,
#left-column .cbp-hrmenu,
#left-column [id*="iqitmegamenu"],
.left-column [id*="iqitmegamenu"] { display: none !important; }

/* Functional buttons - horizontal bar at bottom of image */
.product-miniature .product-functional-buttons { position: absolute !important; bottom: 0 !important; left: 0 !important; right: 0 !important; top: auto !important; z-index: 5; pointer-events: none !important; transform: translateY(100%); transition: transform .3s ease !important; background: linear-gradient(transparent, rgba(0,0,0,.5)) !important; padding: 20px 0 8px !important; border-radius: 0 !important; }
.product-miniature:hover .product-functional-buttons { transform: translateY(0); }
.product-miniature .product-functional-buttons-links { display: flex !important; flex-direction: row !important; justify-content: center !important; gap: 8px !important; }
.product-miniature .product-functional-buttons-links a { pointer-events: auto !important; width: 32px !important; height: 32px !important; border-radius: 50% !important; background: rgba(255,255,255,.92) !important; box-shadow: none !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #555 !important; border: none !important; opacity: 1 !important; transform: none !important; transition: all .2s ease; padding: 0 !important; font-size: .75rem !important; }
.product-miniature .product-functional-buttons-links a:nth-child(2) { transition-delay: 0s !important; }
.product-miniature .product-functional-buttons-links a:nth-child(3) { transition-delay: 0s !important; }
.product-miniature .product-functional-buttons-links a:hover { background: var(--fm) !important; color: #fff !important; transform: scale(1.1) !important; }

/* Flags */
.product-miniature .product-flag { border-radius: 6px !important; font-size: .65rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .03em; padding: 3px 8px !important; }
.product-miniature .product-flag.new { background: var(--fm) !important; color: #fff !important; }
.product-miniature .product-flag.discount { background: #e74c3c !important; }

/* Card info */
.product-miniature .product-description { padding: 10px 12px 12px !important; }
.swiper-slide .product-miniature .product-description { flex: 1 !important; display: flex !important; flex-direction: column !important; }

/* Product title - clamp to 3 lines */
.product-miniature .product-title { font-size: .8rem !important; font-weight: 600 !important; line-height: 1.35 !important; display: -webkit-box !important; -webkit-line-clamp: 3 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; text-overflow: ellipsis !important; min-height: 3.24em; }
.product-miniature .product-title a { color: var(--fm-dark) !important; }
.product-miniature .product-title a:hover { color: var(--fm) !important; }
.product-miniature .product-price { font-weight: 700 !important; color: var(--fm-d) !important; }
.product-miniature .regular-price { text-decoration: line-through !important; }
.product-miniature .badge-danger { background: #e74c3c !important; border-radius: 4px !important; font-size: .65rem !important; padding: 2px 6px !important; }
.product-miniature .badge-success { background: #27ae60 !important; }

/* Short description - SEO friendly: visible to bots, clamped visually to 1 line */
.product-miniature .product-description-short { font-size: .7rem !important; color: #999 !important; line-height: 1.3 !important; display: -webkit-box !important; -webkit-line-clamp: 1 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; text-overflow: ellipsis !important; margin: 2px 0 0 !important; padding: 0 !important; max-height: 1.3em !important; }

/* Manufacturer name + reference - single line, subtle */
.product-miniature .product-description .manufacturer-name,
.product-miniature .product-description .product-reference { font-size: .68rem !important; color: #aaa !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Add to cart in card */
.product-miniature .add-to-cart,
.product-miniature .ajax_add_to_cart_button { background: var(--fm) !important; color: #fff !important; border: none !important; border-radius: 8px !important; font-weight: 600 !important; font-size: .75rem !important; text-transform: uppercase; letter-spacing: .03em; transition: all .3s ease; }
.swiper-slide .product-miniature .add-to-cart { margin-top: auto !important; }
.product-miniature .add-to-cart:hover { background: var(--fm-d) !important; }

/* ---- PRODUCT PAGE ---- */
#product .product-container, #main-product-wrapper { background: #fff; border-radius: 16px; padding: 30px; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.product-cover img { border-radius: var(--fm-r); }
#product-images-thumbs img, .product-thumbs img { border-radius: 8px !important; border: 2px solid transparent !important; transition: all .3s ease; }
.thumb-container.selected img, #product-images-thumbs .selected img { border-color: var(--fm) !important; }
.product-prices .current-price-value, .product-prices .product-price { font-size: 1.8rem !important; font-weight: 700 !important; color: var(--fm-d) !important; }
.product-prices .product-discount .discount { background: #e74c3c !important; color: #fff !important; border-radius: 4px !important; }
.product-add-to-cart .add-to-cart, .product-add-to-cart .btn-primary { border-radius: 50px !important; padding: 12px 35px !important; font-size: 1rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .04em; }
.product-quantity .qty input, #quantity_wanted { border-radius: 8px !important; border: 2px solid #dee2e6 !important; }

/* Tabs */
.nav-tabs { border-bottom: 2px solid #dee2e6 !important; }
.nav-tabs .nav-link { font-weight: 600 !important; border: none !important; border-bottom: 2px solid transparent !important; margin-bottom: -2px; transition: all .3s ease; }
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover { color: var(--fm) !important; border-bottom-color: var(--fm) !important; background: transparent !important; }

/* ---- CATEGORY PAGE ---- */
.block-category { background: #fff !important; border-radius: 16px !important; padding: 24px 30px !important; margin-bottom: 20px !important; box-shadow: 0 1px 3px rgba(0,0,0,.06); border: none !important; }
.block-category h1 { font-size: 1.5rem !important; color: var(--fm-dark) !important; }

/* Sidebar */
#left-column .block { background: #fff !important; border-radius: var(--fm-r) !important; padding: 14px !important; margin-bottom: 10px !important; box-shadow: 0 1px 3px rgba(0,0,0,.06); border: none !important; }
.custom-checkbox input:checked + span { background-color: var(--fm) !important; border-color: var(--fm) !important; }

/* Pagination */
.pagination .page-item .page-link { border-radius: 8px !important; border: none !important; font-weight: 600; margin: 0 2px; transition: all .3s ease; }
.pagination .page-item.active .page-link, .pagination .page-item .page-link:hover { background: var(--fm) !important; color: #fff !important; }

/* ---- BREADCRUMB ---- */
.breadcrumb, #wrapper .breadcrumb { background: transparent !important; font-size: .78rem; padding: 10px 0 !important; }
.breadcrumb a:hover { color: var(--fm) !important; }

/* ---- FOOTER ---- */
#footer { background: var(--fm-dark) !important; margin-top: 0; }
#footer .footer-container { background: transparent !important; border: none !important; }
#footer a:hover { color: var(--fm) !important; }
.footer-copyrights { background: transparent !important; border-top: 1px solid rgba(255,255,255,.08) !important; }

/* ---- FORMS ---- */
.form-control:focus, input:focus, select:focus, textarea:focus { border-color: var(--fm) !important; box-shadow: 0 0 0 3px rgba(var(--fm-rgb),.1) !important; }

/* ---- CART ---- */
.cart-grid-body .cart-item { background: #fff; border-radius: var(--fm-r) !important; box-shadow: 0 1px 3px rgba(0,0,0,.06); border: none !important; }
.cart-summary { background: #fff !important; border-radius: 16px !important; box-shadow: 0 2px 12px rgba(0,0,0,.08); border: none !important; }

/* ---- ALERTS ---- */
.alert-success { background: var(--fm-l) !important; border-color: rgba(var(--fm-rgb),.2) !important; color: var(--fm-d) !important; border-radius: 8px !important; }

/* ---- BACK TO TOP ---- */
#back-to-top { background: var(--fm) !important; color: #fff !important; border-radius: 50% !important; border: none !important; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
#back-to-top:hover { background: var(--fm-d) !important; }

/* ---- QUICK VIEW ---- */
.quickview .modal-content { border-radius: 16px !important; border: none !important; box-shadow: 0 8px 30px rgba(0,0,0,.12) !important; }

/* ---- SWIPER ---- */
.swiper-button-next, .swiper-button-prev { color: var(--fm) !important; }
.swiper-pagination-bullet-active { background: var(--fm) !important; }

/* ---- WRAPPER ---- */
#wrapper { background: #f5f6f8 !important; }

/* ---- HOMEPAGE ---- */
body#index #wrapper { background: #fff !important; padding-top: 0 !important; }
body#index #content-wrapper { padding: 0 !important; }
body#index #content { padding: 0 !important; }
body#index .breadcrumb { display: none !important; }

/* OLD HOMEPAGE HERO/SPLIT BANNER rules removed — superseded by new .fm-hero, .fm-cats, .fm-promo blocks below.
   The old .fm-hero { border-radius:16px } was shadowing the new hero and adding rounded corners. */

/* ---- SPLIT BANNER ---- */
/* Old .fm-split block removed — superseded by .fm-promo / .fm-promo-card */

/* ---- FULL BANNER ---- */
.fm-banner-full { position: relative; border-radius: 16px; overflow: hidden; min-height: 200px; display: flex; align-items: center; justify-content: center; text-align: center; background-size: cover; background-position: center; }
.fm-banner-full::before { content: ''; position: absolute; inset: 0; background: rgba(26,35,50,.55); }
.fm-banner-full-content { position: relative; z-index: 1; color: #fff; padding: 40px; }
.fm-banner-full h3 { color: #fff !important; font-size: 1.8rem !important; font-weight: 800 !important; margin: 0 0 8px !important; }
.fm-banner-full p { font-size: 1rem; opacity: .85; margin: 0 0 20px; }

/* ---- HOMEPAGE SECTIONS (TPL) ---- */
.fm-section { padding: 40px 0; }
.fm-section-title { text-align: center; font-size: 1.6rem; font-weight: 800; color: var(--fm-dark); margin: 0 0 25px; }

/* Categories grid (TPL version) */
.fmc { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.fmc a { display: flex; flex-direction: column; align-items: center; text-decoration: none !important; background: #fff; border-radius: 12px; padding: 22px 12px; text-align: center; box-shadow: 0 1px 4px rgba(0,0,0,.06); border: 1px solid transparent; transition: all .3s ease; }
.fmc a:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(var(--fm-rgb),.18); border-color: rgba(var(--fm-rgb),.15); }
.fmc a i { font-size: 2rem; color: var(--fm); margin-bottom: 10px; }
.fmc a span { font-weight: 600; font-size: .82rem; color: var(--fm-dark); }

/* Newsletter section */
.fm-newsletter-section { background: var(--fm-dark); padding: 50px 0; text-align: center; color: #fff; }
.fm-newsletter-section h2 { color: #fff; font-size: 1.6rem; font-weight: 800; margin: 0 0 8px; }
.fm-newsletter-section p { color: rgba(255,255,255,.7); font-size: 1rem; margin: 0 0 25px; }
.fm-newsletter-section .block-newsletter { max-width: 500px; margin: 0 auto; }
.fm-newsletter-section .block-newsletter form { display: flex; gap: 0; }
.fm-newsletter-section .block-newsletter input[type="email"] { flex: 1; border: none; border-radius: 50px 0 0 50px; padding: 14px 20px; font-size: .9rem; }
.fm-newsletter-section .block-newsletter button,
.fm-newsletter-section .block-newsletter .btn { border-radius: 0 50px 50px 0 !important; background: var(--fm) !important; border: none !important; padding: 14px 28px !important; font-weight: 700; }

/* Elementor section spacing */
.elementor-top-section { padding: 40px 0 !important; }
.elementor-top-section:first-child { padding-top: 0 !important; }
.elementor-section-boxed > .elementor-container { max-width: 1200px !important; }

/* Product carousel spacing */
.elementor-top-section .products { margin: 0 -8px; }
.elementor-top-section .product-miniature { margin-bottom: 10px; }
.elementor-top-section .swiper-container { padding: 5px 0 15px; }

/* ---- TRUST BAR CARDS ---- */
.fm-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 1100px; margin: 0 auto; padding: 20px 16px; }
.fm-trust-card { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 12px; padding: 18px 20px; border: 1px solid #eef0f3; box-shadow: 0 1px 4px rgba(0,0,0,.04); transition: all .3s ease; }
.fm-trust-card:hover { border-color: rgba(var(--fm-rgb),.25); box-shadow: 0 4px 16px rgba(var(--fm-rgb),.1); transform: translateY(-2px); }
.fm-trust-icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 12px; background: var(--fm-l); display: flex; align-items: center; justify-content: center; }
.fm-trust-icon i { font-size: 1.2rem; color: var(--fm); }
.fm-trust-text { display: flex; flex-direction: column; gap: 2px; }
.fm-trust-text strong { font-size: .82rem; color: var(--fm-dark); font-weight: 700; line-height: 1.2; }
.fm-trust-text span { font-size: .72rem; color: #8c939a; font-weight: 400; line-height: 1.3; }

/* ---- BRAND CAROUSEL ---- */
.fm-brands-wrap { position: relative; overflow: hidden; padding: 5px 0; }
.fm-brands-wrap::before, .fm-brands-wrap::after { content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none; }
.fm-brands-wrap::before { left: 0; background: linear-gradient(90deg, #f8f9fa 0%, transparent 100%); }
.fm-brands-wrap::after { right: 0; background: linear-gradient(270deg, #f8f9fa 0%, transparent 100%); }
.fm-brands-carousel { overflow: hidden; }
.fm-brands-track { display: flex; width: max-content; animation: fmMarquee 80s linear infinite; }
.fm-brands-carousel:hover .fm-brands-track { animation-play-state: paused; }
.fm-brands-carousel.fm-dragging .fm-brands-track { animation-play-state: paused; transition: none !important; }
@keyframes fmMarquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.fm-brand-item { flex-shrink: 0; width: 150px; height: 75px; display: flex; align-items: center; justify-content: center; padding: 10px 16px; background: #fff; border: 1px solid #eef0f3; border-radius: 10px; margin: 0 8px; text-decoration: none !important; transition: all .3s ease; }
.fm-brand-item:hover { border-color: var(--fm); box-shadow: 0 4px 16px rgba(var(--fm-rgb),.15); transform: scale(1.05); }
.fm-brand-item img { max-height: 45px; max-width: 120px; width: auto; height: auto; object-fit: contain; filter: grayscale(30%) opacity(.85); transition: all .3s ease; }
.fm-brand-item:hover img { filter: grayscale(0%) opacity(1); }

/* ---- SCROLLBAR ---- */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f5f6f8; }
::-webkit-scrollbar-thumb { background: #dee2e6; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--fm); }
::selection { background: rgba(var(--fm-rgb),.2); }

/* ---- REASSURANCE ---- */
.blockreassurance_product .block-reassurance-item, #block-reassurance .block-reassurance-item { border: none !important; }

/* ---- MOBILE SLIDE MENU ---- */
.col-mobile-menu-push #_mobile_iqitmegamenu-mobile { width: 100vw !important; max-width: 100% !important; }
#iqitmegamenu-mobile { background: #fff !important; border: none !important; font-family: 'Inter', sans-serif !important; }

/* Menu header wrapper - brand teal */
.mobile-menu__header-wrapper, .mm-panel__header { background: #2dc8b8 !important; padding: 0 !important; }
.mobile-menu__header { background: transparent !important; padding: 14px 16px !important; }
.mobile-menu__title { color: #fff !important; font-weight: 700 !important; font-size: 1.1rem !important; }
.mobile-menu__close, .js-mobile-menu__close { color: #fff !important; font-size: 1.3rem !important; }
.mobile-menu__back-btn { color: #fff !important; }
.mobile-menu__back-btn i, .mobile-menu__back-btn span { color: #fff !important; }

/* Arrow indicator on items with submenus - NO position:relative */
.mobile-menu__tab--has-submenu .mobile-menu__arrow { display: flex !important; align-items: center !important; padding: 10px 16px !important; color: #2dc8b8 !important; font-size: 1.1rem !important; }
.mobile-menu__tab--has-submenu .mobile-menu__arrow i { color: #2dc8b8 !important; }
.mobile-menu__tab--has-submenu > .mobile-menu__link { font-weight: 600 !important; color: var(--fm-dark) !important; }

/* Menu tabs/links */
#iqitmegamenu-mobile .mobile-menu__tab { min-height: auto !important; border-bottom: 1px solid #f0f1f3 !important; }
#iqitmegamenu-mobile .mobile-menu__link { color: var(--fm-dark) !important; font-weight: 500 !important; font-size: .92rem !important; padding: 13px 16px !important; transition: all .2s ease !important; }
#iqitmegamenu-mobile .mobile-menu__link:hover,
#iqitmegamenu-mobile .mobile-menu__link:active { color: var(--fm) !important; background: var(--fm-l) !important; }

/* Active/expanded category */
#iqitmegamenu-mobile .mobile-menu__tab--active .mobile-menu__link { color: var(--fm) !important; font-weight: 700 !important; }

/* Subcategory accordion - branded card style */
#iqitmegamenu-mobile .mobile-menu__submenu--accordion { padding: 4px 12px 4px 0 !important; margin: 0 12px 8px 12px !important; background: #f5f7f9 !important; border-left: 3px solid #2dc8b8 !important; border-radius: 0 8px 8px 0 !important; }
#iqitmegamenu-mobile .mobile-menu__submenu--accordion .mobile-menu__tab { border-bottom: 1px solid rgba(0,0,0,.04) !important; min-height: auto !important; }
#iqitmegamenu-mobile .mobile-menu__submenu--accordion .mobile-menu__tab:last-child { border-bottom: none !important; }
#iqitmegamenu-mobile .mobile-menu__submenu--accordion .mobile-menu__link { font-size: .85rem !important; padding: 9px 12px 9px 16px !important; font-weight: 400 !important; color: #666 !important; }
#iqitmegamenu-mobile .mobile-menu__submenu--accordion .mobile-menu__link:hover { color: #2dc8b8 !important; background: rgba(45,200,184,.06) !important; border-radius: 6px !important; }

/* Expand arrow */
.mobile-menu__arrow { color: var(--fm) !important; }
.mobile-menu__subcat-expander { color: var(--fm) !important; }

/* Menu footer */
.mobile-menu__footer { background: var(--fm-dark) !important; padding: 12px 16px !important; }
.mobile-menu__footer a { color: rgba(255,255,255,.8) !important; }
.mobile-menu__footer a:hover { color: var(--fm) !important; }

/* Scrollbar */
.mobile-menu__content::-webkit-scrollbar-thumb { background-color: var(--fm) !important; border-radius: 3px; }

/* ---- MOBILE BOTTOM NAV ---- */
.fm-mobile-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: #fff; box-shadow: 0 -2px 15px rgba(0,0,0,.08); z-index: 1060; padding: 0; padding-bottom: env(safe-area-inset-bottom); }
.fm-mobile-nav ul { display: flex; list-style: none; margin: 0; padding: 0; }
.fm-mobile-nav li { flex: 1; }
.fm-mobile-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 8px 4px 6px; color: #8c939a !important; text-decoration: none !important; font-size: .62rem; font-weight: 600; transition: all .3s ease; position: relative; }
.fm-mobile-nav a.active { color: var(--fm) !important; }
.fm-mobile-nav a i { font-size: 1.2rem; margin-bottom: 2px; }
.fm-mobile-nav .fm-nav-badge { position: absolute; top: 2px; right: calc(50% - 18px); background: var(--fm); color: #fff; font-size: .55rem; font-weight: 700; border-radius: 50%; min-width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; }

@media (max-width: 991px) {
  .fm-mobile-nav { display: block; }
  body { padding-bottom: 62px !important; }
  #back-to-top { bottom: 72px !important; }

  /* ---- MOBILE HEADER: solo logo, let theme Waypoint handle sticky ---- */

  /* Hide all header button columns - width:0 + overflow:hidden clips content,
     but position:fixed overlays (menu, search, cart) still render per CSS spec */
  #mobile-header .col-mobile-btn-menu,
  #mobile-header .col-mobile-btn-search,
  #mobile-header .col-mobile-btn-account,
  #mobile-header .col-mobile-btn-cart,
  #mobile-header .ps-shoppingcart { flex: 0 0 0px !important; width: 0 !important; max-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; }

  /* Logo centered, takes full width */
  #mobile-header .col-mobile-logo { flex: 1 1 100% !important; max-width: 100% !important; text-align: center !important; }
  #mobile-header .col-mobile-logo .logo { max-height: 30px; }
  #mobile-header .fm-animated-text,
  .col-mobile-logo .fm-animated-text { font-size: .9rem; }

  /* When stuck: frosted glass */
  #mobile-header-sticky.stuck { background: rgba(255,255,255,.92) !important; backdrop-filter: blur(12px) saturate(180%) !important; -webkit-backdrop-filter: blur(12px) saturate(180%) !important; border-bottom: 1px solid rgba(0,0,0,.06) !important; }
  #mobile-header .mobile-main-bar { padding: 8px 0 !important; min-height: auto !important; }

  /* On mobile: show action bar always */
  .product-miniature .product-functional-buttons { transform: translateY(0) !important; }
  /* Categories grid 4 columns on tablet */
  .fmc { grid-template-columns: repeat(4, 1fr) !important; gap: 10px !important; }
  .fmc a { padding: 14px 8px !important; }
  .fmc a i { font-size: 1.6rem !important; }
  .fmc a span { font-size: .72rem !important; }
  /* Tighter elementor section spacing */
  .elementor-top-section { padding: 25px 0 !important; }
  /* old .fm-hero / .fm-split responsive removed (superseded by new home blocks) */
  /* Trust bar: 2x2 on tablet */
  .fm-trust { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; padding: 16px 12px !important; }
  .fm-trust-card { padding: 14px 16px !important; }
  /* Brand carousel smaller items on tablet */
  .fm-brand-item { width: 130px; height: 65px; }
  .fm-brand-item img { max-height: 38px; max-width: 100px; }
}

@media (max-width: 575px) {
  /* Categories grid 3 columns on small phones */
  .fmc { grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
  .fmc a { padding: 12px 6px !important; }
  .fmc a i { font-size: 1.4rem !important; }
  .fmc a span { font-size: .68rem !important; }
  /* Smaller product card titles on mobile */
  .product-miniature .product-title { font-size: .75rem !important; -webkit-line-clamp: 2 !important; min-height: 2.02em !important; }
  .product-miniature .product-description-short { display: none !important; }
  /* Hero banner small */
  .fm-hero { min-height: 240px; border-radius: 10px; }
  .fm-hero-content { padding: 24px 20px; }
  .fm-hero h2 { font-size: 1.3rem !important; }
  .fm-hero p { font-size: .88rem; }
  .fm-banner-full { min-height: 160px; }
  .fm-banner-full h3 { font-size: 1.3rem !important; }
  /* Trust bar: single column on small phones */
  .fm-trust { grid-template-columns: 1fr !important; gap: 8px !important; }
  .fm-trust-card { padding: 12px 14px !important; gap: 10px !important; }
  .fm-trust-icon { width: 40px; height: 40px; border-radius: 10px; }
  .fm-trust-icon i { font-size: 1rem; }
  /* Brand carousel: smaller on phone */
  .fm-brand-item { width: 120px; height: 58px; padding: 8px 12px; margin: 0 6px; }
  .fm-brand-item img { max-height: 32px; max-width: 90px; }
  .fm-brands-wrap::before, .fm-brands-wrap::after { width: 40px; }
}

/* ============ FOOTER CONTACT (iqitcontactpage) ============ */
.block-iqitcontactpage .contact-rich strong { color: #2dc8b8; font-size: 1.02rem; letter-spacing: .2px; }
.block-iqitcontactpage .contact-rich .part { display: flex; align-items: flex-start; gap: 10px; padding: 6px 0; }
.block-iqitcontactpage .contact-rich .part .icon {
  width: 30px; height: 30px; flex: 0 0 30px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(45,200,184,.12); color: #2dc8b8;
  border-radius: 50%; font-size: .85rem;
}
.block-iqitcontactpage .contact-rich .part .data { line-height: 1.45; font-size: .92rem; }
.block-iqitcontactpage .contact-rich .part .data a { color: inherit; text-decoration: none; }
.block-iqitcontactpage .contact-rich .part .data a:hover { color: #2dc8b8; }
.block-iqitcontactpage hr { border-color: rgba(0,0,0,.08); margin: 8px 0; }

.fm-legal { display: flex; flex-direction: column; gap: 2px; font-size: .86rem; line-height: 1.5; }
.fm-legal > strong { color: #2dc8b8; font-size: .95rem; margin-bottom: 2px; }
.fm-legal span { display: block; }
.fm-legal span strong { font-weight: 600; }

/* ============ CMS LEGAL PAGES (.fm-cms-legal) ============ */
/* Wrapper applied by customtpls/legal-*.tpl files. Page-specific tweaks
   live under .fm-cms-legal-{key} (termini, recesso, pagamenti, privacy, cookie). */

/* Break out of Elementor's default boxed 1200px container — only on legal pages */
body.cms-id-6 .elementor-section.elementor-section-boxed > .elementor-container,
body.cms-id-7 .elementor-section.elementor-section-boxed > .elementor-container,
body.cms-id-8 .elementor-section.elementor-section-boxed > .elementor-container,
body.cms-id-9 .elementor-section.elementor-section-boxed > .elementor-container,
body.cms-id-10 .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 100% !important;
}

.fm-cms-legal { width: 100%; margin: 0; padding: 0 0 40px; color: #2d3338; line-height: 1.65; font-size: .98rem; }
.fm-cms-legal *, .fm-cms-legal *::before, .fm-cms-legal *::after { box-sizing: border-box; }

/* === Generic header/card rules (skip Recesso, which has its own structure) === */
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child {
  text-align: center;
  background: linear-gradient(135deg, #2dc8b8 0%, #1ba89a 100%);
  color: #fff;
  padding: 48px 24px 56px;
  border-radius: 14px;
  margin: 20px 0 28px;
  box-shadow: 0 8px 30px rgba(45, 200, 184, .18);
}
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child > div:first-child {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px;
  background: rgba(255,255,255,.18); border-radius: 50%;
  margin-bottom: 16px;
}
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child i { color: #fff; font-size: 2rem; margin: 0; }
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child h1 {
  color: #fff; font-size: 2.1rem; font-weight: 700; margin: 0 0 8px;
  letter-spacing: -.3px;
}
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child h1 i { font-size: 1.8rem; margin-right: 12px; }
.fm-cms-legal:not(.fm-cms-legal-recesso) > div:first-child p { color: rgba(255,255,255,.92); font-size: 1rem; margin: 0; }

/* sections rendered as cards */
.fm-cms-legal section {
  background: #fff;
  padding: 28px 32px;
  border-radius: 12px;
  margin: 0 0 18px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
  border: 1px solid #eef1f3;
}
/* For pages that wrap sections in a plain <div> (no <section>) — Pagamenti style */
.fm-cms-legal-pagamenti > div:not(:first-child) > div {
  background: #fff;
  padding: 28px 32px;
  border-radius: 12px;
  margin: 0 0 18px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
  border: 1px solid #eef1f3;
}

/* typography */
.fm-cms-legal h2 {
  color: #1b2127; font-size: 1.32rem; font-weight: 700;
  margin: 0 0 16px; padding: 0 0 0 14px;
  border-left: 4px solid #2dc8b8;
  display: flex; align-items: center; gap: 10px;
}
.fm-cms-legal h2 i { color: #2dc8b8; font-size: 1.15rem; margin: 0; }
.fm-cms-legal h3 {
  color: #2d3338; font-size: 1.08rem; font-weight: 600;
  margin: 22px 0 10px;
  display: flex; align-items: center; gap: 10px;
}
.fm-cms-legal h3 i { color: #2dc8b8; font-size: 1rem; margin: 0; }
.fm-cms-legal h4 { color: #2d3338; font-size: 1rem; font-weight: 600; margin: 18px 0 8px; }
.fm-cms-legal p { margin: 0 0 12px; }
.fm-cms-legal a { color: #2dc8b8; text-decoration: none; }
.fm-cms-legal a:hover { text-decoration: underline; }
.fm-cms-legal strong { color: #1b2127; font-weight: 600; }
.fm-cms-legal ul, .fm-cms-legal ol { margin: 8px 0 14px; padding-left: 24px; }
.fm-cms-legal li { margin: 6px 0; }
.fm-cms-legal hr { border: 0; border-top: 1px solid #eef1f3; margin: 18px 0; }

/* tables */
.fm-cms-legal table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: .93rem; }
.fm-cms-legal table th { background: #f0fbf9; color: #1b2127; text-align: left; padding: 10px 14px; border-bottom: 2px solid #2dc8b8; font-weight: 600; }
.fm-cms-legal table td { padding: 10px 14px; border-bottom: 1px solid #eef1f3; vertical-align: top; }
.fm-cms-legal table tr:nth-child(even) td { background: #fafbfc; }

/* generic icon defaults inside text */
.fm-cms-legal i[class*="fa-"]:not(.fa-fw) { color: #2dc8b8; margin-right: .35em; }

/* numbered headings: keep numeric prefix subtle */
.fm-cms-legal section h2:first-child { margin-top: 0; }

/* === Diritto di recesso (semantic classes inherited from source) === */
.fm-cms-legal-recesso .diritto-recesso-container { padding: 0; }
.fm-cms-legal-recesso .diritto-recesso-header {
  background: linear-gradient(135deg, #2dc8b8 0%, #1ba89a 100%);
  color: #fff; padding: 40px 28px; border-radius: 14px;
  text-align: center; margin: 0 0 24px;
  box-shadow: 0 8px 30px rgba(45,200,184,.18);
}
.fm-cms-legal-recesso .diritto-recesso-header h1 { color: #fff; font-size: 2rem; margin: 0 0 8px; }
.fm-cms-legal-recesso .diritto-recesso-header h1 i { color: #fff; margin-right: 10px; }
.fm-cms-legal-recesso .diritto-recesso-header .update-date { color: rgba(255,255,255,.9); font-size: .95rem; margin: 0; }
.fm-cms-legal-recesso .diritto-recesso-content {
  background: #fff; padding: 32px; border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06); border: 1px solid #eef1f3;
  margin: 0 0 22px;
}
.fm-cms-legal-recesso .diritto-recesso-content h2 {
  color: #1b2127; font-size: 1.32rem; padding-left: 14px;
  border-left: 4px solid #2dc8b8; margin: 28px 0 14px;
}
.fm-cms-legal-recesso .diritto-recesso-content h2:first-child { margin-top: 0; }
.fm-cms-legal-recesso .diritto-recesso-content h3 { color: #2d3338; font-size: 1.1rem; margin: 22px 0 10px; }
.fm-cms-legal-recesso .highlight-box {
  background: rgba(45,200,184,.08); border-left: 4px solid #2dc8b8;
  padding: 18px 22px; margin: 16px 0; border-radius: 8px;
}
.fm-cms-legal-recesso .warning-box {
  background: #fff8e1; border-left: 4px solid #f5b400;
  padding: 18px 22px; margin: 16px 0; border-radius: 8px;
}
.fm-cms-legal-recesso .important-box {
  background: #fdecea; border-left: 4px solid #e84a3f;
  padding: 18px 22px; margin: 16px 0; border-radius: 8px;
}
.fm-cms-legal-recesso .company-info {
  background: #f7f9fb; border: 1px solid #e6ebef;
  padding: 22px 24px; margin: 22px 0; border-radius: 10px;
}
.fm-cms-legal-recesso .company-info h2 { border: 0; padding: 0; margin: 0 0 10px; font-size: 1.15rem; color: #2dc8b8; }
.fm-cms-legal-recesso .normativa { font-style: italic; color: #6c7378; font-size: .93rem; }
.fm-cms-legal-recesso .emoji { font-size: 1.15em; margin-right: 6px; }

/* === Pagamenti: badge grid for payment methods === */
.fm-cms-legal-pagamenti section h2 i { font-size: 1.2rem; }
.fm-cms-legal-pagamenti section > div { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.fm-cms-legal-pagamenti section > div > div {
  flex: 1 1 calc(33% - 12px); min-width: 180px;
  background: #f7fbfa; border: 1px solid #d9efeb; color: #1b2127;
  padding: 14px 16px; border-radius: 10px; display: flex; align-items: center; gap: 10px;
  font-weight: 500;
}
.fm-cms-legal-pagamenti section > div > div i { color: #2dc8b8; font-size: 1.25rem; margin: 0; }
.fm-cms-legal-pagamenti section > div > div small { display: block; color: #6c7378; font-weight: 400; }
.fm-cms-legal-pagamenti ul li i { color: #2dc8b8; margin-right: 8px; }

/* === Cookie cards (4 types) === */
.fm-cms-legal-cookie section > div { display: grid; gap: 14px; margin: 14px 0; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.fm-cms-legal-cookie section > div > div {
  background: #f7fbfa; border: 1px solid #d9efeb;
  padding: 18px 20px; border-radius: 10px;
}
.fm-cms-legal-cookie section > div > div > div:first-child { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.fm-cms-legal-cookie section > div > div > div:first-child i { color: #2dc8b8; font-size: 1.4rem; margin: 0; }
.fm-cms-legal-cookie section > div > div h3 { margin: 0; }
.fm-cms-legal-cookie section > div > div > div:not(:first-child) { background: rgba(45,200,184,.08); padding: 8px 12px; border-radius: 6px; margin-top: 10px; }
.fm-cms-legal-cookie section > div > div > div:not(:first-child) p { margin: 0; font-size: .9rem; }

.fm-cms-legal address { font-style: normal; }

/* === responsive === */
@media (max-width: 768px) {
  .fm-cms-legal { padding: 0 12px 40px; }
  .fm-cms-legal > div:first-child { padding: 36px 18px 40px; }
  .fm-cms-legal > div:first-child h1 { font-size: 1.6rem; }
  .fm-cms-legal section,
  .fm-cms-legal > div:not(:first-child) > div { padding: 20px 18px; }
  .fm-cms-legal h2 { font-size: 1.15rem; }
  .fm-cms-legal-pagamenti section > div > div { flex-basis: 100%; }
  .fm-cms-legal-cookie section > div { grid-template-columns: 1fr; }
  .fm-cms-legal-recesso .diritto-recesso-content { padding: 22px 18px; }
}

/* ============================================================
   HOME — new layout (hero + categories + promo + newsletter)
   Sections rendered by CustomTpl widgets home-hero / home-categories
   / home-promo / home-newsletter, intercalated with IQIT
   ProductsListTabs and Brands carousel widgets.
   ============================================================ */

/* full-width breakout for our hero/promo/news sections inside Elementor */
.fm-hero, .fm-cats, .fm-promo, .fm-foot-cta { width: 100%; box-sizing: border-box; font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; }

/* shared button */
.fm-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 999px; font-weight: 600; font-size: .95rem; text-decoration: none; transition: all .25s ease; border: 2px solid transparent; line-height: 1; }
.fm-btn i { font-size: .95em; }
.fm-btn--primary { background: #fff; color: #1a8a7e; border-color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.fm-btn--primary:hover { background: #f7fbfa; color: #157062; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.18); }
/* specificità alta: più sotto un altro `.fm-btn` (modale carrello) azzera il bordo
   e i link del tema impongono il colore scuro */
.fm-hero .fm-hero-ctas .fm-btn--ghost { background: rgba(255,255,255,.12); color: #fff !important; border: 2px solid rgba(255,255,255,.75); }
.fm-hero .fm-hero-ctas .fm-btn--ghost:hover { background: rgba(255,255,255,.22); border-color: #fff; color: #fff !important; transform: translateY(-2px); }

/* ---------- HERO ---------- */
.fm-hero { position: relative; overflow: hidden; padding: 90px 24px 100px; background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 55%, #16766b 100%); color: #fff; }
.fm-hero-bg { position: absolute; inset: 0; pointer-events: none; }
.fm-hero-shape { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .35; }
.fm-hero-shape--a { width: 380px; height: 380px; background: #6df0df; top: -120px; right: -80px; }
.fm-hero-shape--b { width: 280px; height: 280px; background: #fff; bottom: -100px; left: 12%; opacity: .15; }
.fm-hero-shape--c { width: 220px; height: 220px; background: #99f5e8; top: 40%; left: -60px; opacity: .25; }

.fm-hero-inner { position: relative; max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center; }
.fm-hero-copy { max-width: 620px; }
.fm-hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3); border-radius: 999px; font-size: .8rem; font-weight: 600; letter-spacing: .03em; margin-bottom: 22px; backdrop-filter: blur(6px); }
.fm-hero-title { font-size: clamp(2.2rem, 4.2vw, 3.6rem); font-weight: 700; line-height: 1.1; margin: 0 0 20px; letter-spacing: -.02em; }
.fm-hero-title strong { font-weight: 800; background: linear-gradient(120deg, #fff 0%, #d6fff7 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fm-hero-sub { font-size: 1.1rem; line-height: 1.55; opacity: .92; margin: 0 0 32px; max-width: 540px; }
.fm-hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 36px; }
.fm-hero-trust { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 22px; font-size: .9rem; opacity: .95; }
.fm-hero-trust li { display: inline-flex; align-items: center; gap: 8px; }
.fm-hero-trust i { color: #d6fff7; }

.fm-hero-art { position: relative; height: 420px; }
.fm-hero-blob { position: absolute; inset: 20px; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.25) 0%, transparent 65%); border-radius: 50%; }
.fm-hero-card { position: absolute; background: #fff; color: #1a8a7e; border-radius: 0 !important; display: flex; align-items: center; justify-content: center; box-shadow: 0 25px 50px rgba(0,0,0,.18); animation: fmFloat 6s ease-in-out infinite; }
.fm-hero-card i { font-size: 2.6rem; }
.fm-hero-card--1 { width: 130px; height: 130px; top: 20px; right: 80px; animation-delay: 0s; }
.fm-hero-card--2 { width: 170px; height: 170px; bottom: 60px; right: 180px; background: linear-gradient(135deg, #fff 0%, #e8f8f6 100%); animation-delay: 1.2s; }
.fm-hero-card--3 { width: 110px; height: 110px; top: 180px; right: 0; background: linear-gradient(135deg, #d6fff7, #fff); animation-delay: 2.4s; }
@keyframes fmFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

@media (max-width: 992px) {
  .fm-hero { padding: 60px 20px 70px; }
  .fm-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .fm-hero-art { height: 280px; max-width: 360px; margin: 0 auto; }
  .fm-hero-card--1 { width: 100px; height: 100px; top: 0; right: 40px; }
  .fm-hero-card--2 { width: 130px; height: 130px; bottom: 30px; right: 130px; }
  .fm-hero-card--3 { width: 85px; height: 85px; top: 140px; right: 0; }
}
@media (max-width: 600px) {
  .fm-hero { padding: 50px 18px 60px; }
  .fm-hero-trust { gap: 14px; font-size: .82rem; }
  .fm-hero-art { display: none; }
}

/* ---------- CATEGORIES GRID ---------- */
.fm-cats { padding: 80px 24px; background: #fafcfb; }
.fm-cats-head { max-width: 760px; margin: 0 auto 50px; text-align: center; }
.fm-cats-title { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700; color: #1a2332; margin: 0 0 12px; letter-spacing: -.01em; }
.fm-cats-title strong { color: #2dc8b8; font-weight: 700; }
.fm-cats-sub { color: #6c7378; font-size: 1.05rem; line-height: 1.55; margin: 0; }

.fm-cats-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }

.fm-cat-card { position: relative; display: flex; align-items: center; gap: 18px; padding: 26px 24px; background: #fff; border: 1px solid #ebf0f0; border-radius: 18px; text-decoration: none; color: inherit; transition: all .3s cubic-bezier(.4,0,.2,1); overflow: hidden; }
.fm-cat-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(45,200,184,.06) 0%, rgba(45,200,184,0) 60%); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.fm-cat-card:hover { transform: translateY(-6px); border-color: #2dc8b8; box-shadow: 0 18px 40px rgba(45,200,184,.18); }
.fm-cat-card:hover::before { opacity: 1; }

.fm-cat-icon { flex: 0 0 auto; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #e8f8f6 0%, #d0f0ec 100%); color: #1a8a7e; border-radius: 16px; font-size: 1.6rem; transition: all .3s ease; }
.fm-cat-card:hover .fm-cat-icon { background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%); color: #fff; transform: scale(1.08) rotate(-4deg); }

.fm-cat-body { flex: 1; min-width: 0; }
.fm-cat-name { display: block; font-weight: 600; font-size: 1rem; color: #1a2332; margin-bottom: 4px; letter-spacing: -.005em; }
.fm-cat-sub { display: block; font-size: .82rem; color: #8c939a; line-height: 1.35; }

.fm-cat-arrow { flex: 0 0 auto; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: transparent; color: #c5cdd2; border-radius: 50%; transition: all .3s ease; font-size: .8rem; }
.fm-cat-card:hover .fm-cat-arrow { background: #2dc8b8; color: #fff; transform: translateX(4px); }

@media (max-width: 1100px) { .fm-cats-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .fm-cats-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } .fm-cat-card { padding: 20px 16px; gap: 12px; } .fm-cat-icon { width: 50px; height: 50px; font-size: 1.35rem; border-radius: 13px; } .fm-cats { padding: 60px 18px; } }
@media (max-width: 420px)  { .fm-cats-grid { grid-template-columns: 1fr; } }

/* ---------- PROMO SPLIT BANNER (4 cards, full-width, no gaps) ---------- */
.fm-promo { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.fm-promo-4 { grid-template-columns: repeat(2, 1fr); }
.fm-promo-card { position: relative; display: flex; align-items: stretch; min-height: 340px; padding: 50px 36px; color: #fff; text-decoration: none; overflow: hidden; transition: all .35s ease; }
.fm-promo-card--salute   { background: linear-gradient(135deg, #1a8a7e 0%, #0f5e55 100%); }
.fm-promo-card--bellezza { background: linear-gradient(135deg, #ff8aa8 0%, #d65a7e 100%); }
.fm-promo-card--mamma    { background: linear-gradient(135deg, #8b6dd6 0%, #5e3fa8 100%); }
.fm-promo-card--anti     { background: linear-gradient(135deg, #f0a93c 0%, #c97f1a 100%); }
.fm-promo-card::after { content: ""; position: absolute; right: -100px; top: -100px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.16), transparent 70%); transition: transform .5s ease; }
.fm-promo-card:hover { transform: scale(1.01); z-index: 2; }
.fm-promo-card:hover::after { transform: scale(1.2) rotate(45deg); }

.fm-promo-art { position: absolute; right: 24px; bottom: 24px; opacity: .22; font-size: 7.5rem; pointer-events: none; transition: all .4s ease; }
.fm-promo-card:hover .fm-promo-art { opacity: .32; transform: rotate(-8deg) scale(1.05); }

.fm-promo-body { position: relative; z-index: 2; max-width: 100%; color: #fff; }
.fm-promo-tag { display: inline-block; padding: 5px 14px; background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.35); border-radius: 999px; font-size: .72rem; font-weight: 600; letter-spacing: .04em; margin-bottom: 16px; text-transform: uppercase; }
.fm-promo-title { font-size: clamp(1.3rem, 1.6vw, 1.6rem); font-weight: 700; line-height: 1.2; margin: 0 0 12px; letter-spacing: -.01em; }
.fm-promo-sub { font-size: .9rem; line-height: 1.5; opacity: .92; margin: 0 0 20px; }
.fm-promo-cta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; background: #fff; color: #1a8a7e; border-radius: 999px; font-weight: 600; font-size: .85rem; transition: all .25s ease; }
.fm-promo-card--bellezza .fm-promo-cta { color: #d65a7e; }
.fm-promo-card--mamma    .fm-promo-cta { color: #5e3fa8; }
.fm-promo-card--anti     .fm-promo-cta { color: #c97f1a; }
.fm-promo-card:hover .fm-promo-cta { gap: 14px; box-shadow: 0 8px 22px rgba(0,0,0,.2); }

@media (max-width: 700px) {
  .fm-promo, .fm-promo-4 { grid-template-columns: 1fr; }
  .fm-promo-card { padding: 40px 26px; min-height: 240px; }
  .fm-promo-art { right: 18px; bottom: 18px; font-size: 6rem; }
}

/* ---------- USPs strip (white, boxed) ---------- */
.fm-usps-wrap { width: 100%; padding: 60px 24px; background: #fafcfb; }
.fm-usps { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.fm-usp { display: flex; align-items: center; gap: 16px; padding: 22px 24px; background: #fff; border: 1px solid #ebf0f0; border-radius: 16px; transition: all .3s ease; }
.fm-usp:hover { border-color: #2dc8b8; box-shadow: 0 10px 30px rgba(45,200,184,.12); transform: translateY(-3px); }
.fm-usp-icon { flex: 0 0 auto; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%); color: #fff; border-radius: 14px; font-size: 1.3rem; box-shadow: 0 6px 16px rgba(45,200,184,.3); }
.fm-usp-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fm-usp-body strong { font-size: .95rem; color: #1a2332; font-weight: 600; }
.fm-usp-body small { font-size: .8rem; color: #8c939a; line-height: 1.3; }

@media (max-width: 992px) {
  .fm-usps { grid-template-columns: repeat(2, 1fr); }
  .fm-usps-wrap { padding: 50px 18px; }
}
@media (max-width: 540px) {
  .fm-usps { grid-template-columns: 1fr; gap: 12px; }
}

/* ---------- Newsletter dark strip (full-width edge-to-edge with footer) ---------- */
.fm-news-strip { position: relative; padding: 60px 24px 70px; background: linear-gradient(135deg, #1a2332 0%, #2a3849 100%); color: #fff; overflow: hidden; margin: 0; }
.fm-news-strip-bg { position: absolute; inset: 0; pointer-events: none; }
.fm-news-strip-bg::before { content: ""; position: absolute; right: -140px; top: -140px; width: 420px; height: 420px; background: radial-gradient(circle, rgba(45,200,184,.28), transparent 70%); border-radius: 50%; }
.fm-news-strip-bg::after  { content: ""; position: absolute; left: -120px; bottom: -120px; width: 320px; height: 320px; background: radial-gradient(circle, rgba(45,200,184,.18), transparent 70%); border-radius: 50%; }
.fm-news-strip-inner { position: relative; z-index: 2; max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.fm-news-copy { }
.fm-news-tag { display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px; background: rgba(45,200,184,.25); border: 1px solid rgba(45,200,184,.5); border-radius: 999px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; margin-bottom: 14px; color: #6df0df; }
.fm-news-title { font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 700; line-height: 1.2; margin: 0 0 10px; color: #fff; }
.fm-news-title strong { color: #2dc8b8; }
.fm-news-sub { font-size: .95rem; line-height: 1.5; opacity: .8; margin: 0; }

.fm-news-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.fm-news-field { flex: 1 1 220px; position: relative; display: flex; align-items: center; background: #fff; border-radius: 999px; padding: 4px 4px 4px 22px; }
.fm-news-field i { color: #8c939a; margin-right: 10px; font-size: .95rem; }
.fm-news-field input { flex: 1; border: 0; background: transparent; padding: 14px 0; font-size: .95rem; color: #1a2332; outline: none; min-width: 0; }
.fm-news-form .fm-btn { white-space: nowrap; }
.fm-news-privacy { flex: 1 0 100%; font-size: .75rem; opacity: .65; margin-top: 4px; }
.fm-news-privacy a { color: #6df0df; text-decoration: underline; }

@media (max-width: 992px) {
  .fm-news-strip-inner { grid-template-columns: 1fr; gap: 30px; }
  .fm-news-strip { padding: 50px 20px 60px; }
}

/* ---------- Newsletter dentro footer (override container styling) ---------- */
#footer-container-first.fm-news-footer-wrap {
  padding: 0 !important;
  background: transparent !important;
  border-top: none !important;
  color: #fff;
}
#footer-container-first.fm-news-footer-wrap .fm-news-strip { border-radius: 0; margin: 0; }
.container.fm-news-footer-social-wrap { display: none !important; }

/* ---------- IQIT product tabs polish ---------- */
.elementor-products-tabs .nav-tabs { border: 0 !important; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 28px !important; padding: 0 !important; }
.elementor-products-tabs .nav-tabs .nav-link { border: 1px solid #e1e7e7 !important; border-radius: 999px !important; padding: 10px 22px !important; font-weight: 600; font-size: .9rem; color: #6c7378 !important; background: #fff; transition: all .25s ease; margin: 0 !important; }
.elementor-products-tabs .nav-tabs .nav-link:hover { color: #1a8a7e !important; border-color: #2dc8b8 !important; background: #f7fbfa; transform: translateY(-1px); }
.elementor-products-tabs .nav-tabs .nav-link.active { background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%) !important; color: #fff !important; border-color: transparent !important; box-shadow: 0 6px 18px rgba(45,200,184,.35); }

/* product carousel arrows + dots */
.elementor-swiper-button { background: #fff !important; border: 1px solid #ebf0f0 !important; border-radius: 50% !important; width: 44px !important; height: 44px !important; box-shadow: 0 6px 18px rgba(0,0,0,.08) !important; color: #1a8a7e !important; transition: all .25s ease; }
.elementor-swiper-button:hover { background: #2dc8b8 !important; color: #fff !important; border-color: transparent !important; box-shadow: 0 8px 24px rgba(45,200,184,.35) !important; }
.elementor-swiper-button::after { font-size: 14px !important; font-weight: 700; }

/* tab pills compact on mobile (especially for the 8-tab category section) */
@media (max-width: 768px) {
  .elementor-products-tabs .nav-tabs { gap: 6px; }
  .elementor-products-tabs .nav-tabs .nav-link { padding: 8px 14px !important; font-size: .8rem; }
}
@media (max-width: 480px) {
  .elementor-products-tabs .nav-tabs .nav-link { padding: 7px 12px !important; font-size: .75rem; }
}

/* home only: kill bottom padding/margin so the dark newsletter strip touches the footer */
body#index #main,
body.page-index #main { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body#index #wrapper,
body.page-index #wrapper,
body#index #content-wrapper,
body.page-index #content-wrapper { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/* Edge-to-edge section: zero VERTICAL padding/margin only, so Elementor's
   horizontal stretch (negative margin trick) still works full-width.
   Killing horizontal margins here broke .elementor-section-stretched before. */
.elementor-section.fm-edge-to-edge,
.elementor-section.fm-edge-to-edge > .elementor-container,
.elementor-section.fm-edge-to-edge .elementor-row,
.elementor-section.fm-edge-to-edge .elementor-column-wrap,
.elementor-section.fm-edge-to-edge .elementor-widget-wrap,
.elementor-section.fm-edge-to-edge .elementor-widget,
.elementor-section.fm-edge-to-edge .elementor-widget-container {
  padding-top: 0 !important; padding-bottom: 0 !important;
  margin-top: 0 !important; margin-bottom: 0 !important;
}

/* Headings inside Elementor sections — make them look proper for our home */
.elementor-widget-heading h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; letter-spacing: -.01em; }
.elementor-widget-heading h2 strong { color: #2dc8b8; font-weight: 700; }

/* =====================================================================
   LOGIN & REGISTER — full-bleed teal hero background + single white card
   The external .page-header is removed via TPL override; title moves
   inside the card (.auth-card-header).
   ===================================================================== */

/* Body hero gradient (stile hero home) + radiali decorativi */
body#authentication,
body#registration,
body.page-customer-account ,
body.page-my-account ,
body.page-addresses ,
body[id^="module-iqitwishlist"] ,
body[id^="module-ps_emailalerts"] {
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 55%, #16766b 100%) !important;
  background-attachment: fixed !important;
  min-height: 100vh;
  position: relative;
}
body#authentication::before,
body#registration::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 90% 0%, rgba(255,255,255,.18), transparent 38%),
    radial-gradient(circle at 0% 90%, rgba(255,255,255,.12), transparent 40%);
  z-index: 0;
}

/* Main page content on top of decorations */
/* Wrapper reset — neutralize EVERY Warehouse intermediate container so
   the body's teal hero is unobstructed and there's no double-box look. */
body#authentication #wrapper,
body#registration #wrapper,
body.page-customer-account #wrapper,
body.page-my-account #wrapper,
body.page-addresses #wrapper,
body[id^="module-iqitwishlist"] #wrapper,
body[id^="module-ps_emailalerts"] #wrapper,
body#authentication #main-page-content,
body#registration #main-page-content,
body.page-customer-account #main-page-content,
body.page-my-account #main-page-content,
body.page-addresses #main-page-content,
body[id^="module-iqitwishlist"] #main-page-content,
body[id^="module-ps_emailalerts"] #main-page-content,
body#authentication #content,
body#registration #content,
body.page-customer-account #content,
body.page-my-account #content,
body.page-addresses #content,
body[id^="module-iqitwishlist"] #content,
body[id^="module-ps_emailalerts"] #content,
body#authentication .page-content,
body#registration .page-content,
body.page-customer-account .page-content,
body.page-my-account .page-content,
body.page-addresses .page-content,
body[id^="module-iqitwishlist"] .page-content,
body[id^="module-ps_emailalerts"] .page-content,
body#authentication .ns-content,
body#registration .ns-content,
body.page-customer-account .ns-content,
body.page-my-account .ns-content,
body.page-addresses .ns-content,
body[id^="module-iqitwishlist"] .ns-content,
body[id^="module-ps_emailalerts"] .ns-content,
body#authentication .js-content-wrapper,
body#registration .js-content-wrapper,
body.page-customer-account .js-content-wrapper,
body.page-my-account .js-content-wrapper,
body.page-addresses .js-content-wrapper,
body[id^="module-iqitwishlist"] .js-content-wrapper,
body[id^="module-ps_emailalerts"] .js-content-wrapper,
body#authentication .my-account-page-content-wrapper,
body#registration .my-account-page-content-wrapper {
  position: relative;
  z-index: 1;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 auto !important;
}

/* Breadcrumb su sfondo teal: chiaro */
body#authentication .breadcrumb,
body#registration .breadcrumb,
body.page-customer-account .breadcrumb,
body.page-my-account .breadcrumb,
body.page-addresses .breadcrumb,
body[id^="module-iqitwishlist"] .breadcrumb,
body[id^="module-ps_emailalerts"] .breadcrumb,
body#authentication nav.breadcrumb,
body#registration nav.breadcrumb {
  background: transparent !important;
  padding: 18px 0 6px;
  margin: 0;
}
body#authentication .breadcrumb a,
body#registration .breadcrumb a,
body.page-customer-account .breadcrumb a,
body.page-my-account .breadcrumb a,
body.page-addresses .breadcrumb a,
body[id^="module-iqitwishlist"] .breadcrumb a,
body[id^="module-ps_emailalerts"] .breadcrumb a,
body#authentication .breadcrumb li,
body#registration .breadcrumb li,
body.page-customer-account .breadcrumb li,
body.page-my-account .breadcrumb li,
body.page-addresses .breadcrumb li,
body[id^="module-iqitwishlist"] .breadcrumb li,
body[id^="module-ps_emailalerts"] .breadcrumb li,
body#authentication .breadcrumb,
body#registration .breadcrumb { color: rgba(255,255,255,.85) !important; }
body#authentication .breadcrumb a:hover,
body#registration .breadcrumb a:hover { color: #fff !important; }

/* THE CARD — one box, with title + form inside */
body#authentication .login-form,
body#registration .register-form {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 24px 70px rgba(10,30,40,.25);
  padding: 44px 48px 38px !important;
  max-width: 560px;
  margin: 40px auto 60px;
  border: 1px solid rgba(255,255,255,.4);
  position: relative;
  z-index: 2;
}
body#registration .register-form { max-width: 820px; padding: 44px 56px 38px !important; }

/* Title block inside the card */
.auth-card-header {
  text-align: center;
  margin: 0 0 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid #f0f3f3;
}
.auth-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%);
  color: #fff;
  font-size: 1.6rem;
  margin: 0 0 14px;
  box-shadow: 0 10px 26px rgba(45,200,184,.35);
}
.auth-card-title {
  color: #1a2332 !important;
  font-weight: 800;
  font-size: clamp(1.5rem, 2.4vw, 1.9rem);
  margin: 0 0 8px;
  letter-spacing: -.01em;
}
.auth-card-sub {
  color: #6c7378;
  font-size: .94rem;
  line-height: 1.5;
  margin: 0;
}

/* "Hai già un account? Invece accedi!" — inline notice nel registrazione */
body#registration .auth-already-account {
  background: #f7fbfa;
  border: 1px solid #d4eee9;
  border-radius: 12px;
  padding: 12px 16px;
  margin: 0 0 24px;
  font-size: .92rem;
  color: #1a2332;
  text-align: center;
}
body#registration .auth-already-account i { color: #2dc8b8; margin-right: 4px; }
body#registration .auth-already-account a {
  color: #1a8a7e !important;
  font-weight: 700;
  text-decoration: none;
  margin-left: 4px;
}
body#registration .auth-already-account a:hover { color: #2dc8b8 !important; text-decoration: underline; }

/* Labels */
body#authentication .form-control-label,
body#registration .form-control-label,
body.page-customer-account .form-control-label,
body.page-my-account .form-control-label,
body.page-addresses .form-control-label,
body[id^="module-iqitwishlist"] .form-control-label,
body[id^="module-ps_emailalerts"] .form-control-label,
body#authentication label.col,
body#registration label.col {
  font-weight: 600 !important;
  color: #1a2332 !important;
  font-size: .9rem;
  margin-bottom: 6px;
}

/* Inputs / textareas / selects */
body#authentication .form-control,
body#registration .form-control,
body.page-customer-account .form-control,
body.page-my-account .form-control,
body.page-addresses .form-control,
body[id^="module-iqitwishlist"] .form-control,
body[id^="module-ps_emailalerts"] .form-control,
body#authentication input[type="text"],
body#authentication input[type="email"],
body#authentication input[type="password"],
body#registration input[type="text"],
body#registration input[type="email"],
body#registration input[type="password"],
body#registration input[type="date"] {
  border: 2px solid #e1e7e7 !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
  font-size: .95rem !important;
  background: #fff !important;
  color: #1a2332 !important;
  height: auto !important;
  box-shadow: none !important;
  transition: all .2s ease;
}
body#authentication .form-control:focus,
body#registration .form-control:focus,
body.page-customer-account .form-control:focus,
body.page-my-account .form-control:focus,
body.page-addresses .form-control:focus,
body[id^="module-iqitwishlist"] .form-control:focus,
body[id^="module-ps_emailalerts"] .form-control:focus,
body#authentication input:focus,
body#registration input:focus {
  border-color: #2dc8b8 !important;
  box-shadow: 0 0 0 4px rgba(45,200,184,.15) !important;
  outline: none !important;
}

/* Form group spacing */
body#authentication .form-group.row,
body#registration .form-group.row { margin-bottom: 18px; }
body#authentication .form-group small.form-text,
body#registration .form-group small.form-text { font-size: .78rem; color: #8b9298; margin-top: 4px; }

/* Password show/hide toggle */
body#authentication .input-group-btn .btn,
body#registration .input-group-btn .btn,
body.page-customer-account .input-group-btn .btn,
body.page-my-account .input-group-btn .btn,
body.page-addresses .input-group-btn .btn,
body[id^="module-iqitwishlist"] .input-group-btn .btn,
body[id^="module-ps_emailalerts"] .input-group-btn .btn,
body#authentication .input-group-append .btn,
body#registration .input-group-append .btn {
  background: #1a2332 !important;
  border: 0 !important;
  border-radius: 0 12px 12px 0 !important;
  color: #fff !important;
  padding: 0 16px !important;
}
body#authentication .input-group .form-control:not(:last-child),
body#registration .input-group .form-control:not(:last-child) { border-radius: 12px 0 0 12px !important; }

/* Radios */
body#registration input[type="radio"] { accent-color: #2dc8b8; transform: scale(1.1); margin-right: 6px; }

/* Checkboxes */
body#registration input[type="checkbox"],
body#authentication input[type="checkbox"] { accent-color: #2dc8b8; width: 18px; height: 18px; margin-right: 8px; vertical-align: middle; }

/* Primary CTA */
body#authentication .btn-primary,
body#registration .btn-primary,
body.page-customer-account .btn-primary,
body.page-my-account .btn-primary,
body.page-addresses .btn-primary,
body[id^="module-iqitwishlist"] .btn-primary,
body[id^="module-ps_emailalerts"] .btn-primary,
body#authentication button[type="submit"].btn,
body#registration button[type="submit"].btn,
body.page-customer-account button[type="submit"].btn,
body.page-my-account button[type="submit"].btn,
body.page-addresses button[type="submit"].btn,
body[id^="module-iqitwishlist"] button[type="submit"].btn,
body[id^="module-ps_emailalerts"] button[type="submit"].btn,
body#authentication .form-control-submit,
body#registration .form-control-submit {
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%) !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 14px 40px !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(45,200,184,.35) !important;
  transition: all .25s ease !important;
  letter-spacing: .02em;
}
body#authentication .btn-primary:hover,
body#registration .btn-primary:hover,
body.page-customer-account .btn-primary:hover,
body.page-my-account .btn-primary:hover,
body.page-addresses .btn-primary:hover,
body[id^="module-iqitwishlist"] .btn-primary:hover,
body[id^="module-ps_emailalerts"] .btn-primary:hover,
body#authentication button[type="submit"].btn:hover,
body#registration button[type="submit"].btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(45,200,184,.45) !important;
  filter: brightness(1.05);
}

/* Forgot password */
body#authentication .forgot-password { text-align: center; margin: 8px 0 18px; }
body#authentication .forgot-password a,
body#registration .forgot-password a {
  color: #1a8a7e !important;
  font-size: .9rem;
  text-decoration: none;
  font-weight: 600;
  transition: color .2s ease;
}
body#authentication .forgot-password a:hover,
body#registration .forgot-password a:hover { color: #2dc8b8 !important; text-decoration: underline; }

/* No account link */
body#authentication .no-account,
body#registration .no-account {
  text-align: center;
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid #f0f3f3;
}
body#authentication .no-account a,
body#registration .no-account a {
  color: #1a8a7e !important;
  font-weight: 700 !important;
  text-decoration: none;
  font-size: .95rem;
}
body#authentication .no-account a:hover,
body#registration .no-account a:hover { color: #2dc8b8 !important; }

/* Alert */
body#authentication .alert,
body#registration .alert {
  border-radius: 12px;
  border: 1px solid;
  padding: 14px 18px;
  font-size: .92rem;
}
body#authentication .alert-danger,
body#registration .alert-danger {
  background: #fdecec !important;
  border-color: #f5b5b5 !important;
  color: #a02525 !important;
}

/* Opzionale label (registrazione) */
body#registration .form-group .col-form-label-comment { color: #8b9298; font-size: .8rem; font-weight: 500; }

/* Mobile */
@media (max-width: 720px) {
  body#authentication .login-form,
  body#registration .register-form { padding: 28px 22px 24px !important; margin: 18px 14px 40px; border-radius: 16px; }
  .auth-card-header { margin-bottom: 22px; padding-bottom: 18px; }
  .auth-card-icon { width: 52px; height: 52px; font-size: 1.3rem; }
}

/* =====================================================================
   PRODUCT PAGE — generic typographic / spacing polish
   Scoped to body#product so it never leaks into listings or other pages.
   ===================================================================== */

/* Tabs (Descrizione / Dettagli del prodotto) — pill style like home */
body#product .tabs.product-tabs .nav.nav-tabs {
  border: 0 !important;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 22px !important;
  padding: 0 !important;
}
body#product .tabs.product-tabs .nav.nav-tabs .nav-link {
  border: 1px solid #e1e7e7 !important;
  border-radius: 999px !important;
  padding: 9px 22px !important;
  font-weight: 600;
  font-size: .9rem;
  color: #6c7378 !important;
  background: #fff;
  transition: all .25s ease;
  margin: 0 !important;
}
body#product .tabs.product-tabs .nav.nav-tabs .nav-link:hover {
  color: #1a8a7e !important;
  border-color: #2dc8b8 !important;
  background: #f7fbfa;
}
body#product .tabs.product-tabs .nav.nav-tabs .nav-link.active {
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 6px 18px rgba(45,200,184,.35);
}

/* Long description — generic typography over any product's rich-text */
body#product .rte-content,
body#product .rte-content.product-description {
  font-size: 1rem;
  line-height: 1.65;
  color: #3a4147;
}
body#product .rte-content p { margin: 0 0 14px; }
body#product .rte-content p:last-child { margin-bottom: 0; }
body#product .rte-content strong,
body#product .rte-content b { color: #1a2332; font-weight: 700; }

/* Headings inside descriptions: H2/H3 = section title, H4/H5 = subsection */
body#product .rte-content h1,
body#product .rte-content h2,
body#product .rte-content h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a2332;
  line-height: 1.3;
  margin: 28px 0 12px;
  padding-left: 14px;
  border-left: 4px solid #2dc8b8;
}
body#product .rte-content h4,
body#product .rte-content h5,
body#product .rte-content h6 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a2332;
  line-height: 1.35;
  margin: 22px 0 8px;
  padding-left: 12px;
  border-left: 3px solid #2dc8b8;
}
body#product .rte-content h1:first-child,
body#product .rte-content h2:first-child,
body#product .rte-content h3:first-child,
body#product .rte-content h4:first-child,
body#product .rte-content h5:first-child,
body#product .rte-content h6:first-child {
  margin-top: 4px;
}

/* Lists */
body#product .rte-content ul,
body#product .rte-content ol {
  margin: 0 0 16px;
  padding-left: 22px;
}
body#product .rte-content ul li,
body#product .rte-content ol li { margin-bottom: 6px; }

/* Links */
body#product .rte-content a {
  color: #1a8a7e;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body#product .rte-content a:hover { color: #2dc8b8; }

/* Tables (es. composizione INCI o tabelle valori) */
body#product .rte-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 18px;
  font-size: .92rem;
}
body#product .rte-content table th,
body#product .rte-content table td {
  border: 1px solid #ebf0f0;
  padding: 10px 12px;
  text-align: left;
}
body#product .rte-content table th { background: #f7fbfa; color: #1a2332; font-weight: 700; }

/* Tab pane container — soft padding */
body#product .tabs.product-tabs .tab-content { padding-top: 4px; }
body#product .tabs.product-tabs .tab-pane { padding: 0; }

/* Margin between the product card/tabs box and the "10 altri prodotti" section */
body#product .category-products,
body#product section.category-products.block.block-section {
  margin-top: 50px;
}
body#product .category-products .section-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a2332;
  margin: 0 0 22px;
}
body#product .category-products .section-title span { padding: 0; }

/* =====================================================================
   USER DROPDOWN (header) — restyle in home style
   ===================================================================== */
#header-user-btn .dropdown-menu.fm-user-dropdown {
  min-width: 280px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 44px rgba(10,30,40,.18) !important;
  background: #fff !important;
  overflow: hidden;
  font-family: inherit;
  /* Hover-open: positioned manually since Bootstrap toggle is removed */
  display: block !important;
  position: absolute !important;
  inset: auto !important;
  top: calc(100% + 12px) !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
/* Bridge ONLY the 12px gap between trigger and menu — does not overlap trigger */
#header-user-btn .dropdown-menu.fm-user-dropdown::after {
  content: "";
  position: absolute;
  top: -12px; left: 0; right: 0;
  height: 12px;
}
/* Show on hover / focus-within of the wrapper */
#header-user-btn .fm-user-dropdown-wrap:hover > .dropdown-menu.fm-user-dropdown,
#header-user-btn .fm-user-dropdown-wrap:focus-within > .dropdown-menu.fm-user-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Top-edge teal hairline */
#header-user-btn .dropdown-menu.fm-user-dropdown::before {
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%);
}

/* Greeting header */
.fm-user-dropdown-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px 14px;
  background: linear-gradient(135deg, #f7fbfa 0%, #ecf6f4 100%);
  border-bottom: 1px solid #e9eeed;
}
.fm-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2dc8b8 0%, #1a8a7e 100%);
  color: #fff;
  font-size: 1.05rem;
  box-shadow: 0 6px 16px rgba(45,200,184,.30);
  flex-shrink: 0;
}
.fm-user-meta { display: flex; flex-direction: column; min-width: 0; }
.fm-user-hello { color: #1a2332; font-size: .92rem; line-height: 1.2; }
.fm-user-hello strong { font-weight: 700; }
.fm-user-email { color: #6c7378; font-size: .78rem; line-height: 1.2; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Items list */
.fm-user-dropdown-items { padding: 8px 6px; display: flex; flex-direction: column; gap: 2px; }
.fm-user-dropdown-items .dropdown-item {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 10px 14px !important;
  font-size: .9rem !important;
  color: #1a2332 !important;
  font-weight: 500 !important;
  border-radius: 8px !important;
  background: transparent !important;
  border: 0 !important;
  transition: all .15s ease;
  white-space: nowrap;
}
.fm-user-dropdown-items .dropdown-item i {
  color: #1a8a7e;
  font-size: .9rem;
  width: 18px;
  text-align: center;
  transition: color .15s ease;
}
.fm-user-dropdown-items .dropdown-item:hover,
.fm-user-dropdown-items .dropdown-item:focus {
  background: #f0faf8 !important;
  color: #1a8a7e !important;
}
.fm-user-dropdown-items .dropdown-item:hover i { color: #2dc8b8; }

/* Footer with logout button */
.fm-user-dropdown-footer { padding: 10px 14px 14px; border-top: 1px solid #f0f3f3; background: #fafcfb; }
.fm-user-logout-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 10px 16px;
  background: #fff;
  border: 1.5px solid #e8d5d5;
  border-radius: 999px;
  color: #c4404e !important;
  font-size: .88rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: all .2s ease;
}
.fm-user-logout-btn:hover {
  background: #c4404e;
  color: #fff !important;
  border-color: #c4404e;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(196,64,78,.28);
}
.fm-user-logout-btn i { font-size: .9rem; }

/* =====================================================================
   ACCOUNT PAGES — sidebar + main content card on teal hero body
   Body gradient + wrapper reset already applied via shared rules above.
   ===================================================================== */

/* Layout: flex row with real horizontal gap between sidebar and content */
body.page-customer-account .my-account-page-content-wrapper > .row,
body.page-my-account .my-account-page-content-wrapper > .row,
body.page-addresses .my-account-page-content-wrapper > .row,
body[id^="module-iqitwishlist"] .my-account-page-content-wrapper > .row,
body[id^="module-ps_emailalerts"] .my-account-page-content-wrapper > .row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 24px;
  margin: 36px auto 60px !important;
  max-width: 1180px;
  padding: 0 14px;
  align-items: flex-start;
}
/* Fixed sidebar width, content takes the rest */
body.page-customer-account .fm-sidebar-collapse.col-sm-3,
body.page-my-account .fm-sidebar-collapse.col-sm-3,
body.page-addresses .fm-sidebar-collapse.col-sm-3,
body[id^="module-iqitwishlist"] .fm-sidebar-collapse.col-sm-3,
body[id^="module-ps_emailalerts"] .fm-sidebar-collapse.col-sm-3 {
  flex: 0 0 260px;
  max-width: 260px;
  padding: 0;
}
body.page-customer-account .my-account-page-content,
body.page-my-account .my-account-page-content,
body.page-addresses .my-account-page-content,
body[id^="module-iqitwishlist"] .my-account-page-content,
body[id^="module-ps_emailalerts"] .my-account-page-content {
  flex: 1 1 0;
  min-width: 0;
  max-width: none !important;
  padding-left: 0;
  padding-right: 0;
}

/* SIDEBAR COLLAPSE wrapper — defaults to open on desktop */
.fm-sidebar-collapse { display: block; }
.fm-sidebar-toggle {
  display: none; /* hidden on desktop; sidebar is always open */
  list-style: none;
  cursor: pointer;
}
.fm-sidebar-toggle::-webkit-details-marker { display: none; }
.fm-sidebar-toggle::marker { display: none; content: ""; }

/* SIDEBAR — vertical card */
body.page-customer-account .my-account-side-links ,
body.page-my-account .my-account-side-links ,
body.page-addresses .my-account-side-links ,
body[id^="module-iqitwishlist"] .my-account-side-links ,
body[id^="module-ps_emailalerts"] .my-account-side-links {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 16px 50px rgba(10,30,40,.18);
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid rgba(255,255,255,.4);
  align-self: flex-start;
}
body.page-customer-account .my-account-side-links > a ,
body.page-my-account .my-account-side-links > a ,
body.page-addresses .my-account-side-links > a ,
body[id^="module-iqitwishlist"] .my-account-side-links > a ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 11px 16px !important;
  font-size: .92rem;
  font-weight: 600 !important;
  color: #1a2332 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  transition: all .15s ease;
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}
body.page-customer-account .my-account-side-links > a .link-item ,
body.page-my-account .my-account-side-links > a .link-item ,
body.page-addresses .my-account-side-links > a .link-item ,
body[id^="module-iqitwishlist"] .my-account-side-links > a .link-item ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a .link-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}
body.page-customer-account .my-account-side-links > a i ,
body.page-my-account .my-account-side-links > a i ,
body.page-addresses .my-account-side-links > a i ,
body[id^="module-iqitwishlist"] .my-account-side-links > a i ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a i {
  color: #1a8a7e;
  font-size: .95rem;
  width: 18px;
  text-align: center;
  transition: color .15s ease;
}
body.page-customer-account .my-account-side-links > a:hover,
body.page-my-account .my-account-side-links > a:hover,
body.page-addresses .my-account-side-links > a:hover,
body[id^="module-iqitwishlist"] .my-account-side-links > a:hover,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:hover,
body.page-customer-account .my-account-side-links > a:focus ,
body.page-my-account .my-account-side-links > a:focus ,
body.page-addresses .my-account-side-links > a:focus ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:focus ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:focus {
  background: #f0faf8 !important;
  color: #1a8a7e !important;
}
body.page-customer-account .my-account-side-links > a:hover i ,
body.page-my-account .my-account-side-links > a:hover i ,
body.page-addresses .my-account-side-links > a:hover i ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:hover i ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:hover i { color: #2dc8b8; }
/* Logout (last entry) — distinct */
body.page-customer-account .my-account-side-links > a:last-child ,
body.page-my-account .my-account-side-links > a:last-child ,
body.page-addresses .my-account-side-links > a:last-child ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:last-child ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:last-child {
  margin-top: 10px;
  padding-top: 14px !important;
  border-top: 1px solid #f0f3f3 !important;
  color: #c4404e !important;
}
body.page-customer-account .my-account-side-links > a:last-child i ,
body.page-my-account .my-account-side-links > a:last-child i ,
body.page-addresses .my-account-side-links > a:last-child i ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:last-child i ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:last-child i { color: #c4404e; }
body.page-customer-account .my-account-side-links > a:last-child:hover ,
body.page-my-account .my-account-side-links > a:last-child:hover ,
body.page-addresses .my-account-side-links > a:last-child:hover ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:last-child:hover ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:last-child:hover { background: #fbeef0 !important; color: #c4404e !important; }
body.page-customer-account .my-account-side-links > a:last-child:hover i ,
body.page-my-account .my-account-side-links > a:last-child:hover i ,
body.page-addresses .my-account-side-links > a:last-child:hover i ,
body[id^="module-iqitwishlist"] .my-account-side-links > a:last-child:hover i ,
body[id^="module-ps_emailalerts"] .my-account-side-links > a:last-child:hover i { color: #c4404e; }

/* MAIN CONTENT CARD */
body.page-customer-account .my-account-page-content ,
body.page-my-account .my-account-page-content ,
body.page-addresses .my-account-page-content ,
body[id^="module-iqitwishlist"] .my-account-page-content ,
body[id^="module-ps_emailalerts"] .my-account-page-content {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 16px 50px rgba(10,30,40,.18);
  padding: 36px 40px 32px;
  border: 1px solid rgba(255,255,255,.4);
  min-height: 200px;
}

/* Page title (H2 from page_title block) */
body.page-customer-account .account-card-title,
body.page-my-account .account-card-title,
body.page-addresses .account-card-title,
body[id^="module-iqitwishlist"] .account-card-title,
body[id^="module-ps_emailalerts"] .account-card-title,
body.page-customer-account .my-account-page-content > h2:first-of-type,
body.page-my-account .my-account-page-content > h2:first-of-type,
body.page-addresses .my-account-page-content > h2:first-of-type,
body[id^="module-iqitwishlist"] .my-account-page-content > h2:first-of-type,
body[id^="module-ps_emailalerts"] .my-account-page-content > h2:first-of-type,
body.page-customer-account .my-account-page-content > h3:first-of-type ,
body.page-my-account .my-account-page-content > h3:first-of-type ,
body.page-addresses .my-account-page-content > h3:first-of-type ,
body[id^="module-iqitwishlist"] .my-account-page-content > h3:first-of-type ,
body[id^="module-ps_emailalerts"] .my-account-page-content > h3:first-of-type {
  color: #1a2332 !important;
  font-weight: 800 !important;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem) !important;
  margin: 0 0 24px !important;
  padding-bottom: 18px;
  border-bottom: 1px solid #f0f3f3;
  letter-spacing: -.01em;
}

/* My-account dashboard quick-links (homepage /il-mio-account) */
body.page-customer-account #links ,
body.page-my-account #links ,
body.page-addresses #links ,
body[id^="module-iqitwishlist"] #links ,
body[id^="module-ps_emailalerts"] #links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0;
}
body.page-customer-account #links a,
body.page-my-account #links a,
body.page-addresses #links a,
body[id^="module-iqitwishlist"] #links a,
body[id^="module-ps_emailalerts"] #links a,
body.page-customer-account #links .link-item ,
body.page-my-account #links .link-item ,
body.page-addresses #links .link-item ,
body[id^="module-iqitwishlist"] #links .link-item ,
body[id^="module-ps_emailalerts"] #links .link-item {
  flex: 1 1 220px;
  background: #f7fbfa;
  border: 1px solid #e1e7e7;
  border-radius: 14px;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  color: #1a2332 !important;
  font-weight: 600;
  text-decoration: none;
  transition: all .2s ease;
}
body.page-customer-account #links a:hover,
body.page-my-account #links a:hover,
body.page-addresses #links a:hover,
body[id^="module-iqitwishlist"] #links a:hover,
body[id^="module-ps_emailalerts"] #links a:hover,
body.page-customer-account #links .link-item:hover ,
body.page-my-account #links .link-item:hover ,
body.page-addresses #links .link-item:hover ,
body[id^="module-iqitwishlist"] #links .link-item:hover ,
body[id^="module-ps_emailalerts"] #links .link-item:hover {
  border-color: #2dc8b8;
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(45,200,184,.15);
}
body.page-customer-account #links i ,
body.page-my-account #links i ,
body.page-addresses #links i ,
body[id^="module-iqitwishlist"] #links i ,
body[id^="module-ps_emailalerts"] #links i {
  font-size: 1.6rem;
  color: #2dc8b8;
}

/* Address cards (addresses page) */
body.page-customer-account .address ,
body.page-my-account .address ,
body.page-addresses .address ,
body[id^="module-iqitwishlist"] .address ,
body[id^="module-ps_emailalerts"] .address {
  background: #f7fbfa;
  border: 1px solid #e1e7e7;
  border-radius: 14px;
  padding: 22px 22px 18px;
  transition: all .2s ease;
}
body.page-customer-account .address:hover ,
body.page-my-account .address:hover ,
body.page-addresses .address:hover ,
body[id^="module-iqitwishlist"] .address:hover ,
body[id^="module-ps_emailalerts"] .address:hover { border-color: #2dc8b8; box-shadow: 0 10px 28px rgba(45,200,184,.15); }

/* Orders / history table */
body.page-customer-account table.table ,
body.page-my-account table.table ,
body.page-addresses table.table ,
body[id^="module-iqitwishlist"] table.table ,
body[id^="module-ps_emailalerts"] table.table {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e9eeed;
}
body.page-customer-account table.table thead th ,
body.page-my-account table.table thead th ,
body.page-addresses table.table thead th ,
body[id^="module-iqitwishlist"] table.table thead th ,
body[id^="module-ps_emailalerts"] table.table thead th {
  background: #f7fbfa !important;
  color: #1a2332 !important;
  border-bottom: 1px solid #e1e7e7 !important;
  font-weight: 700;
}
body.page-customer-account table.table tbody td ,
body.page-my-account table.table tbody td ,
body.page-addresses table.table tbody td ,
body[id^="module-iqitwishlist"] table.table tbody td ,
body[id^="module-ps_emailalerts"] table.table tbody td { border-color: #f0f3f3 !important; vertical-align: middle; }

/* Mobile */
@media (max-width: 768px) {
  body.page-customer-account .my-account-page-content-wrapper > .row,
  body.page-my-account .my-account-page-content-wrapper > .row,
  body.page-addresses .my-account-page-content-wrapper > .row,
  body[id^="module-iqitwishlist"] .my-account-page-content-wrapper > .row,
  body[id^="module-ps_emailalerts"] .my-account-page-content-wrapper > .row {
    margin: 18px auto 40px !important;
    padding: 0 12px;
    gap: 14px;
  }
  body.page-customer-account .fm-sidebar-collapse.col-sm-3,
  body.page-my-account .fm-sidebar-collapse.col-sm-3,
  body.page-addresses .fm-sidebar-collapse.col-sm-3,
  body[id^="module-iqitwishlist"] .fm-sidebar-collapse.col-sm-3,
  body[id^="module-ps_emailalerts"] .fm-sidebar-collapse.col-sm-3 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  body.page-customer-account .my-account-side-links,
  body.page-my-account .my-account-side-links,
  body.page-addresses .my-account-side-links,
  body[id^="module-iqitwishlist"] .my-account-side-links,
  body[id^="module-ps_emailalerts"] .my-account-side-links,
  body.page-customer-account .my-account-page-content,
  body.page-my-account .my-account-page-content,
  body.page-addresses .my-account-page-content,
  body[id^="module-iqitwishlist"] .my-account-page-content,
  body[id^="module-ps_emailalerts"] .my-account-page-content {
    border-radius: 16px;
    padding: 18px 18px 14px;
  }
  body.page-customer-account .my-account-page-content,
  body.page-my-account .my-account-page-content,
  body.page-addresses .my-account-page-content,
  body[id^="module-iqitwishlist"] .my-account-page-content,
  body[id^="module-ps_emailalerts"] .my-account-page-content {
    padding: 24px 20px 22px;
  }

  /* Sidebar: collapsible on mobile, single card (details has bg + shadow) */
  .fm-sidebar-collapse {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(10,30,40,.16);
    overflow: hidden;
  }
  .fm-sidebar-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 18px;
    font-weight: 700;
    color: #1a2332;
    font-size: .95rem;
    border: 0;
    background: transparent;
    user-select: none;
  }
  .fm-sidebar-toggle > span { display: inline-flex; align-items: center; gap: 10px; }
  .fm-sidebar-toggle > span > i { color: #1a8a7e; }
  .fm-sidebar-toggle-icon { transition: transform .25s ease; color: #1a8a7e; font-size: .85rem; }
  .fm-sidebar-collapse[open] .fm-sidebar-toggle-icon { transform: rotate(180deg); }
  .fm-sidebar-collapse > .my-account-side-links {
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border-top: 1px solid #f0f3f3;
    padding: 8px 10px 12px;
    margin: 0 !important;
  }
  /* Force-hide list when details is closed */
  .fm-sidebar-collapse:not([open]) > .my-account-side-links { display: none !important; }
}

/* ================================================================
   /account dashboard — welcome card + quick-action grid
   ================================================================ */

.fm-dash {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.fm-dash-welcome {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%);
  border-radius: 16px;
  border: 1px solid rgba(45, 200, 184, .18);
}
.fm-dash-welcome-avatar {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  color: #1a8a7e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  box-shadow: 0 4px 14px rgba(26, 138, 126, .22);
}
.fm-dash-welcome-text { min-width: 0; }
.fm-dash-welcome-title {
  margin: 0 0 4px;
  font-size: 1.35rem;
  line-height: 1.25;
  color: #1a2332;
  font-weight: 600;
}
.fm-dash-welcome-title strong { color: #1a8a7e; font-weight: 800; }
.fm-dash-welcome-sub {
  margin: 0;
  color: #4a5663;
  font-size: .95rem;
}

.fm-dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 14px;
}
.fm-dash-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 18px 16px;
  background: #fff;
  border: 1px solid #eef1f3;
  border-radius: 14px;
  text-decoration: none !important;
  color: #1a2332;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position: relative;
  min-height: 120px;
}
.fm-dash-card:hover {
  transform: translateY(-3px);
  border-color: #2dc8b8;
  box-shadow: 0 12px 28px rgba(10, 30, 40, .12);
}
.fm-dash-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, #e8fbf8 0%, #c8efe8 100%);
  color: #1a8a7e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  margin-bottom: 4px;
  transition: background .18s ease, color .18s ease;
}
.fm-dash-card:hover .fm-dash-card-icon {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
}
.fm-dash-card-title {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  color: #1a2332;
}
.fm-dash-card-sub {
  font-size: .82rem;
  color: #6a7480;
  line-height: 1.35;
}

.fm-dash-modules:empty { display: none; }
.fm-dash-modules:not(:empty) {
  padding-top: 6px;
  border-top: 1px dashed #e6eaee;
}

@media (max-width: 540px) {
  .fm-dash-welcome { padding: 18px 18px; gap: 14px; }
  .fm-dash-welcome-avatar { width: 48px; height: 48px; font-size: 1.2rem; }
  .fm-dash-welcome-title { font-size: 1.15rem; }
  .fm-dash-welcome-sub { font-size: .88rem; }
  .fm-dash-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .fm-dash-card { padding: 14px 12px 12px; min-height: 108px; }
  .fm-dash-card-title { font-size: .92rem; }
  .fm-dash-card-sub { font-size: .76rem; }
}

/* ================================================================
   Add-to-cart modal (#blockcart-modal) — brand restyle
   ================================================================ */

.fm-cart-modal .modal-dialog { max-width: 760px; }
.fm-cart-modal .modal-content {
  border: 0 !important;
  border-radius: 18px !important;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(10,30,40,.25) !important;
}

.fm-cart-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 22px !important;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%) !important;
  border-bottom: 0 !important;
}
.fm-cart-modal-header-warn { background: linear-gradient(135deg, #fff4e8 0%, #ffe7d1 100%) !important; }

.fm-cart-modal-title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 !important;
}
.fm-cart-modal-badge {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  box-shadow: 0 6px 16px rgba(45,200,184,.4);
  flex: 0 0 auto;
}
.fm-cart-modal-badge-warn { background: linear-gradient(135deg, #ff9a4a 0%, #f97316 100%); box-shadow: 0 6px 16px rgba(249,115,22,.4); }
.fm-cart-modal-titletext { display: flex; flex-direction: column; gap: 2px; }
.fm-cart-modal-titletext strong { font-size: 1.05rem; color: #1a2332; font-weight: 700; line-height: 1.2; }
.fm-cart-modal-titletext small { color: #4a5663; font-size: .82rem; }

.fm-cart-modal-close {
  background: #fff !important;
  border: 1px solid #eef1f3 !important;
  width: 34px; height: 34px;
  border-radius: 50% !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  line-height: 1;
  color: #4a5663;
  cursor: pointer;
  opacity: 1 !important;
  padding: 0 !important;
  transition: background .18s ease, color .18s ease;
}
.fm-cart-modal-close:hover { background: #1a2332 !important; color: #fff; }

.fm-cart-modal-body { padding: 22px !important; }
.fm-cart-modal-row { margin: 0 !important; gap: 0; }
.fm-cart-modal-product { padding: 0 18px 0 0 !important; border-right: 1px solid #f0f3f3; }
.fm-cart-modal-product-inner {
  display: flex;
  gap: 14px;
  align-items: center;
  height: 100%;
}
.fm-cart-modal-thumb {
  flex: 0 0 96px;
  width: 96px; height: 96px;
  border-radius: 12px;
  background: #f8fbfb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #eef1f3;
}
.fm-cart-modal-thumb img { max-width: 100%; max-height: 100%; }
.fm-cart-modal-info { min-width: 0; flex: 1 1 auto; }
.fm-cart-modal-name {
  display: block;
  color: #1a2332 !important;
  font-weight: 600;
  font-size: .98rem;
  line-height: 1.3;
  margin-bottom: 6px;
  text-decoration: none !important;
}
.fm-cart-modal-name:hover { color: #1a8a7e !important; }
.fm-cart-modal-attrs { font-size: .8rem; color: #6a7480; margin-bottom: 6px; }
.fm-cart-modal-attrs span { display: inline-block; margin-right: 8px; }
.fm-cart-modal-attrs em { font-style: normal; color: #9aa3ad; }
.fm-cart-modal-qtyprice { display: flex; align-items: baseline; gap: 6px; }
.fm-cart-modal-qty { color: #6a7480; font-size: .85rem; }
.fm-cart-modal-price { font-weight: 700; color: #1a2332; font-size: 1rem; }

.fm-cart-modal-summary { padding: 0 0 0 22px !important; }
.fm-cart-modal-count {
  margin: 0 0 14px;
  color: #4a5663;
  font-size: .92rem;
}
.fm-cart-modal-count strong { color: #1a8a7e; }

.fm-cart-modal-totals {
  background: #f8fbfb;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.fm-cart-modal-totals-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .9rem;
  color: #4a5663;
  padding: 4px 0;
}
.fm-cart-modal-totals-row .lbl { font-weight: 500; }
.fm-cart-modal-totals-row .val { font-weight: 600; color: #1a2332; }
.fm-cart-modal-totals-meta { width: 100%; color: #6a7480; }
.fm-cart-modal-totals-meta small { font-size: .78rem; }

.fm-cart-modal-grandtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 10px 0;
  font-size: 1rem;
  border-top: 1px dashed #e6eaee;
}
.fm-cart-modal-grandtotal .lbl { color: #4a5663; font-weight: 600; }
.fm-cart-modal-grandtotal .val { color: #1a2332; font-weight: 800; font-size: 1.18rem; }
.fm-cart-modal-grandtotal-tax .val { color: #1a8a7e; }

.fm-cart-modal-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}
.fm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .95rem;
  border: 0;
  cursor: pointer;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.fm-btn-primary {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(45,200,184,.32);
}
.fm-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(45,200,184,.45);
  color: #fff !important;
}
.fm-btn-ghost {
  background: #fff;
  color: #1a2332 !important;
  border: 1.5px solid #e6eaee;
}
.fm-btn-ghost:hover { border-color: #1a2332; background: #1a2332; color: #fff !important; }

@media (max-width: 640px) {
  .fm-cart-modal .modal-dialog { max-width: 96vw; margin: 8px auto; }
  .fm-cart-modal-product { border-right: 0 !important; border-bottom: 1px solid #f0f3f3; padding: 0 0 16px 0 !important; margin-bottom: 16px; }
  .fm-cart-modal-summary { padding: 0 !important; }
  .fm-cart-modal-titletext small { display: none; }
  .fm-cart-modal-thumb { flex: 0 0 72px; width: 72px; height: 72px; }
}

/* ================================================================
   iqitpopup — home style (overrides module's inline-generated CSS)
   ================================================================ */

#iqitpopup-overlay {
  background: rgba(15, 30, 38, .55) !important;
  backdrop-filter: blur(3px);
}

#iqitpopup {
  width: 460px !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: 92vw;
  background: #fff !important;
  background-image: none !important;
  border-radius: 22px !important;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(10,30,40,.28) !important;
  border: 0 !important;
  font-family: 'Inter', -apple-system, sans-serif !important;
  padding: 0 !important;
}

#iqitpopup::before {
  content: "";
  display: block;
  height: 110px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 60%, #1a8a7e 100%);
  position: relative;
}

#iqitpopup .iqitpopup-close {
  position: static !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  z-index: 5;
}
#iqitpopup .iqit-close-popup {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  background: rgba(255,255,255,.92) !important;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
  transition: background .18s ease, transform .18s ease;
  z-index: 6;
}
#iqitpopup .iqit-close-popup:hover { background: #fff !important; transform: scale(1.06); }
#iqitpopup .iqit-close-popup .cross {
  width: 14px;
  height: 14px;
  position: relative;
  display: inline-block;
}
#iqitpopup .iqit-close-popup .cross::before,
#iqitpopup .iqit-close-popup .cross::after {
  content: "";
  position: absolute;
  inset: 50% 0 auto 0;
  height: 2px;
  background: #1a2332;
  border-radius: 2px;
}
#iqitpopup .iqit-close-popup .cross::before { transform: translateY(-50%) rotate(45deg); }
#iqitpopup .iqit-close-popup .cross::after { transform: translateY(-50%) rotate(-45deg); }

#iqitpopup .iqit-close-checkbox {
  position: absolute !important;
  top: 18px !important;
  left: 14px !important;
  font-size: .72rem;
  color: rgba(255,255,255,.95);
  background: rgba(0,0,0,.18);
  padding: 4px 10px;
  border-radius: 999px;
  backdrop-filter: blur(4px);
  z-index: 6;
  white-space: nowrap;
}
#iqitpopup .iqit-close-checkbox label { color: rgba(255,255,255,.95) !important; cursor: pointer; margin: 0 0 0 4px; }
#iqitpopup .iqit-close-checkbox .custom-checkbox { display: inline-flex; align-items: center; gap: 4px; }
#iqitpopup .iqit-close-checkbox input { accent-color: #fff; }
#iqitpopup .iqit-close-checkbox .checkbox-checked { display: none; }

#iqitpopup .iqitpopup-content {
  padding: 0 32px 8px !important;
  margin-top: -64px;
  position: relative;
  z-index: 2;
  color: #1a2332 !important;
  text-align: center;
  background: transparent !important;
}
#iqitpopup .iqitpopup-content .fm-popup-icon {
  width: 76px; height: 76px;
  border-radius: 50%;
  margin: 0 auto 14px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  color: #1a8a7e;
  box-shadow: 0 12px 28px rgba(10,30,40,.18);
  border: 4px solid #fff;
}
#iqitpopup .iqitpopup-content h2,
#iqitpopup .iqitpopup-content .fm-popup-title {
  font-size: 1.55rem;
  font-weight: 800;
  color: #1a2332;
  margin: 0 0 8px;
  line-height: 1.2;
}
#iqitpopup .iqitpopup-content .fm-popup-title strong { color: #1a8a7e; }
#iqitpopup .iqitpopup-content p,
#iqitpopup .iqitpopup-content .fm-popup-sub {
  color: #4a5663 !important;
  font-size: .95rem;
  line-height: 1.45;
  margin: 0 0 14px;
}
#iqitpopup .iqitpopup-content .fm-popup-discount {
  display: inline-block;
  margin: 6px 0 14px;
  padding: 6px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%);
  color: #1a8a7e;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .8rem;
}

#iqitpopup .iqitpopup-newsletter-form {
  background: transparent !important;
  background-image: none !important;
  padding: 4px 32px 28px !important;
  color: #1a2332 !important;
  position: static !important;
  bottom: auto !important;
  width: 100% !important;
  text-align: center;
}
#iqitpopup .iqitpopup-newsletter-form .row,
#iqitpopup .iqitpopup-newsletter-form .col-12 { margin: 0 !important; padding: 0 !important; }
#iqitpopup .iqitpopup-newsletter-form form {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  align-items: stretch !important;
  justify-content: stretch !important;
}
#iqitpopup .iqitpopup-newsletter-form .newsletter-input,
#iqitpopup .iqitpopup-newsletter-form input[type="text"] {
  background: #fff !important;
  color: #1a2332 !important;
  border: 1.5px solid #e6eaee !important;
  border-radius: 999px !important;
  padding: 12px 18px !important;
  font-size: .95rem !important;
  width: 100% !important;
  margin: 0 !important;
  box-shadow: none !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
#iqitpopup .iqitpopup-newsletter-form .newsletter-input::placeholder,
#iqitpopup .iqitpopup-newsletter-form input[type="text"]::placeholder { color: #9aa3ad !important; }
#iqitpopup .iqitpopup-newsletter-form .newsletter-input:focus,
#iqitpopup .iqitpopup-newsletter-form input[type="text"]:focus {
  border-color: #2dc8b8 !important;
  box-shadow: 0 0 0 4px rgba(45,200,184,.18) !important;
  outline: none !important;
}
#iqitpopup .iqitpopup-newsletter-form button,
#iqitpopup .iqitpopup-newsletter-form .iqit-btn-newsletter {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 12px 22px !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  cursor: pointer;
  width: 100%;
  box-shadow: 0 10px 22px rgba(45,200,184,.32) !important;
  transition: transform .18s ease, box-shadow .18s ease;
}
#iqitpopup .iqitpopup-newsletter-form button:hover,
#iqitpopup .iqitpopup-newsletter-form .iqit-btn-newsletter:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(45,200,184,.45) !important;
}
#iqitpopup .iqitpopup-newsletter-form .text-muted { color: #9aa3ad !important; font-size: .72rem; line-height: 1.3; }

@media (max-width: 540px) {
  #iqitpopup { width: 92vw !important; }
  #iqitpopup::before { height: 90px; }
  #iqitpopup .iqitpopup-content { padding: 0 22px 8px !important; margin-top: -52px; }
  #iqitpopup .iqitpopup-content .fm-popup-icon { width: 64px; height: 64px; font-size: 1.6rem; }
  #iqitpopup .iqitpopup-content h2,
  #iqitpopup .iqitpopup-content .fm-popup-title { font-size: 1.3rem; }
  #iqitpopup .iqitpopup-newsletter-form { padding: 4px 22px 22px !important; }
}

/* =================================================================
   /ordine — Checkout brand restyle
   Body: body#checkout / body.page-order / body.page-checkout
   ================================================================= */

/* Body hero gradient + cancel default decorations */
body#checkout,
body.page-order {
  background: linear-gradient(135deg, #f3fbfa 0%, #e8f8f6 60%, #fff 100%) !important;
  background-attachment: fixed !important;
  min-height: 100vh;
}

/* Wrapper reset — per [[feedback-auth-page-wrappers-reset]] (NB: #main NON
   incluso perché è il container .fm-checkout, il suo padding-top serve come
   margine sopra il hero). */
body#checkout #wrapper,
body#checkout #main-page-content,
body#checkout #content,
body#checkout .page-content,
body#checkout .ns-content,
body#checkout .js-content-wrapper,
body.page-order #wrapper,
body.page-order #main-page-content,
body.page-order #content,
body.page-order .page-content,
body.page-order .ns-content,
body.page-order .js-content-wrapper {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
/* #main keeps its bg/border reset but NOT padding (handled by .fm-checkout) */
body#checkout #main,
body.page-order #main {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Hide native h1.page-title rendered by checkout.tpl (we use our hero) */
body#checkout #main > h1.page-title,
body.page-order #main > h1.page-title { display: none !important; }

/* Simple header overrides */
.fm-checkout-header {
  background: #fff !important;
  border-bottom: 1px solid #eef1f3;
  padding: 14px 0;
}
.fm-checkout-back {
  display: inline-flex; align-items: center; gap: 6px;
  color: #4a5663 !important;
  text-decoration: none !important;
  font-weight: 600; font-size: .9rem;
  transition: color .18s ease;
}
.fm-checkout-back:hover { color: #1a8a7e !important; }
.fm-checkout-secure {
  display: inline-flex; align-items: center; gap: 6px;
  color: #1a8a7e;
  font-size: .85rem;
  font-weight: 600;
}

/* Checkout container */
.fm-checkout {
  max-width: 1180px;
  margin: 0 auto !important;
  padding: 84px 16px 60px !important;
  position: relative; z-index: 1;
}

/* ===== Hero header ===== */
.fm-checkout-hero {
  text-align: center;
  padding: 14px 0 26px;
}
.fm-checkout-title {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 8px !important;
  font-size: 2rem !important;
  font-weight: 800 !important;
  color: #1a2332 !important;
  line-height: 1.1;
}
.fm-checkout-title-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
  box-shadow: 0 10px 22px rgba(45,200,184,.32);
}
.fm-checkout-sub {
  margin: 0 0 22px !important;
  color: #4a5663;
  font-size: .95rem;
}

/* ===== Progress bar ===== */
.fm-checkout-progress {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 auto !important;
  padding: 14px 22px !important;
  max-width: 720px;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 12px 32px rgba(10,30,40,.08);
}
.fm-checkout-progress-item {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}
.fm-progress-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f0f3f3;
  color: #9aa3ad;
  font-weight: 700;
  font-size: .92rem;
  border: 2px solid #f0f3f3;
  transition: all .25s ease;
}
.fm-progress-lbl {
  font-size: .88rem;
  color: #6a7480;
  font-weight: 600;
  transition: color .25s ease;
}
.fm-checkout-progress-sep {
  flex: 1 1 auto;
  height: 2px;
  min-width: 26px;
  max-width: 80px;
  background: #f0f3f3;
  margin: 0 4px;
  border-radius: 2px;
  transition: background .25s ease;
}
.fm-checkout-progress-item.is-current .fm-progress-num {
  background: #fff;
  color: #1a8a7e;
  border-color: #2dc8b8;
  box-shadow: 0 0 0 4px rgba(45,200,184,.18);
}
.fm-checkout-progress-item.is-current .fm-progress-lbl { color: #1a8a7e; }
.fm-checkout-progress-item.is-complete .fm-progress-num {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  border-color: transparent;
  color: #fff;
  font-size: 0;
}
.fm-checkout-progress-item.is-complete .fm-progress-num::before {
  content: "\f00c"; /* fa-check */
  font-family: FontAwesome;
  font-size: .85rem;
}
.fm-checkout-progress-item.is-complete .fm-progress-lbl { color: #1a8a7e; }
.fm-checkout-progress-item.is-complete + .fm-checkout-progress-sep {
  background: linear-gradient(90deg, #2dc8b8, rgba(45,200,184,.25));
}

/* ===== Main row layout ===== */
.fm-checkout-row {
  margin: 24px 0 0 !important;
  gap: 24px;
}
.fm-checkout-row > [class*="col-"] { padding: 0 !important; }
.fm-checkout-main { flex: 1 1 0; min-width: 0; }
.fm-checkout-aside { flex: 0 0 360px; max-width: 360px; }

/* ===== Step cards ===== */
.fm-step.checkout-step {
  background: #fff !important;
  border: 1px solid #eef1f3 !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 28px rgba(10,30,40,.06);
  margin-bottom: 18px !important;
  padding: 0 !important;
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.fm-step.checkout-step.-current {
  border-color: rgba(45,200,184,.4) !important;
  box-shadow: 0 16px 38px rgba(45,200,184,.18);
}
.fm-step.checkout-step.-complete:not(.-current) { opacity: .92; }
.fm-step.checkout-step.-unreachable { opacity: .68; pointer-events: none; }
.fm-step.checkout-step.-unreachable .fm-step-content { display: none !important; }

.fm-step-title {
  display: flex !important;
  align-items: center;
  gap: 14px;
  margin: 0 !important;
  padding: 18px 22px !important;
  cursor: default;
  background: transparent !important;
  border: 0 !important;
  position: relative;
}
.fm-step.-clickable .fm-step-title { cursor: pointer; }
.fm-step.-current .fm-step-title {
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%) !important;
  border-bottom: 1px solid rgba(45,200,184,.18) !important;
}

.fm-step-badge {
  width: 44px; height: 44px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  grid-template-areas: "stack";
  background: #f0f3f3;
  color: #9aa3ad;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1 !important;
  transition: all .25s ease;
  text-align: center;
}
.fm-step-badge > * { grid-area: stack; }
.fm-step.-current .fm-step-badge {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  box-shadow: 0 8px 20px rgba(45,200,184,.36);
}
.fm-step.-complete:not(.-current) .fm-step-badge {
  background: linear-gradient(135deg, #1a8a7e 0%, #166f66 100%);
  color: #fff;
}
/* Badge children — !important needed to beat font-awesome's .fa { display: inline-block } */
.fm-step-badge .fm-step-badge-num,
.fm-step-badge .fm-step-badge-icon,
.fm-step-badge .fm-step-badge-done {
  display: none !important;
  /* When visible, fill the whole circle so flex centering uses the glyph's
     bounding box instead of its baseline — kills FA's top-bias. */
  width: 100%;
  height: 100%;
  line-height: 1;
  font-size: 1.15rem;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.fm-step-badge .fm-step-badge-num { font-size: 1rem; }
.fm-step:not(.-current):not(.-complete) .fm-step-badge .fm-step-badge-num { display: flex !important; }
.fm-step.-current .fm-step-badge .fm-step-badge-icon { display: flex !important; }
.fm-step.-complete:not(.-current) .fm-step-badge .fm-step-badge-done { display: flex !important; }

.fm-step-titletext { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.fm-step-titletext-main {
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a2332;
  line-height: 1.2;
}
.fm-step-titletext-sub {
  font-size: .82rem;
  color: #6a7480;
  font-weight: 400;
}
.fm-step.-unreachable .fm-step-titletext-sub { display: none; }

.fm-step-title .done,
.fm-step-title .step-edit {
  font-size: 0 !important;
}
.fm-step-title .fm-step-edit {
  font-size: .85rem !important;
  color: #1a8a7e !important;
  font-weight: 600;
  margin-left: auto;
  display: none;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.fm-step.-complete:not(.-current) .fm-step-edit { display: inline-flex; }
.fm-step.-current .fm-step-title > .done { display: none !important; }

.fm-step-content {
  padding: 22px 24px 24px !important;
}
.fm-step.-complete:not(.-current) .fm-step-content { display: none !important; }
.fm-step.-current .fm-step-content { display: block !important; }

/* Form fields inside steps */
.fm-step .form-control,
.fm-step .form-select,
.fm-step input[type="text"],
.fm-step input[type="email"],
.fm-step input[type="tel"],
.fm-step input[type="password"],
.fm-step select,
.fm-step textarea {
  background: #fff !important;
  border: 1.5px solid #e6eaee !important;
  border-radius: 12px !important;
  padding: 11px 14px !important;
  font-size: .95rem !important;
  transition: border-color .18s ease, box-shadow .18s ease !important;
  color: #1a2332 !important;
  box-shadow: none !important;
  height: auto !important;
}
.fm-step .form-control:focus,
.fm-step .form-select:focus,
.fm-step input:focus,
.fm-step select:focus,
.fm-step textarea:focus {
  border-color: #2dc8b8 !important;
  box-shadow: 0 0 0 4px rgba(45,200,184,.18) !important;
  outline: none !important;
}
.fm-step .form-control-label,
.fm-step label {
  font-weight: 600 !important;
  color: #1a2332 !important;
  font-size: .88rem;
  margin-bottom: 6px !important;
}
.fm-step .form-control-comment,
.fm-step .form-text { color: #9aa3ad !important; font-size: .78rem; }

/* Continue button (form-controls-submit) */
.fm-step button.continue,
.fm-step .form-footer button[type="submit"],
.fm-step button[name="confirmDeliveryOption"],
.fm-step button[name="confirm-addresses"],
.fm-step #payment-confirmation button {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 13px 26px !important;
  font-weight: 700 !important;
  font-size: .98rem !important;
  letter-spacing: .01em;
  box-shadow: 0 12px 28px rgba(45,200,184,.32) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}
.fm-step button.continue:hover,
.fm-step .form-footer button[type="submit"]:hover,
.fm-step button[name="confirmDeliveryOption"]:hover,
.fm-step button[name="confirm-addresses"]:hover,
.fm-step #payment-confirmation button:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(45,200,184,.45) !important;
}

/* Address cards inside step */
.fm-step .address-item {
  background: #fff !important;
  border: 1.5px solid #eef1f3 !important;
  border-radius: 14px !important;
  padding: 16px !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fm-step .address-item:hover { border-color: #2dc8b8 !important; }
.fm-step .address-item.selected,
.fm-step .address-item.-current {
  border-color: #2dc8b8 !important;
  background: linear-gradient(180deg, #f3fbfa 0%, #fff 100%) !important;
  box-shadow: 0 10px 24px rgba(45,200,184,.12);
}
.fm-step .address-alias { font-weight: 700; color: #1a2332; margin-bottom: 6px; }
.fm-step .address-footer { border-top: 1px dashed #eef1f3; padding-top: 10px; margin-top: 10px; }
.fm-step .address-footer .edit-address,
.fm-step .address-footer .delete-address {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .8rem; color: #4a5663 !important;
  margin-right: 10px;
}
.fm-step .address-footer .edit-address:hover { color: #1a8a7e !important; }

/* Add address button */
.fm-step .add-address {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #1a8a7e !important;
  font-weight: 600;
  text-decoration: none !important;
  padding: 10px 16px;
  border: 1.5px dashed rgba(45,200,184,.5);
  border-radius: 12px;
  transition: background .18s ease, border-color .18s ease;
}
.fm-step .add-address:hover {
  background: rgba(45,200,184,.08);
  border-color: #2dc8b8;
}

/* Delivery options */
.fm-step .delivery-option,
.fm-step .delivery-options-list .delivery-option {
  background: #fff !important;
  border: 1.5px solid #eef1f3 !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  margin-bottom: 10px !important;
  display: flex !important;
  align-items: center;
  gap: 14px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fm-step .delivery-option:hover { border-color: #2dc8b8 !important; }
.fm-step .delivery-option label { margin: 0; cursor: pointer; flex: 1; }
.fm-step .delivery-option .carrier-name { font-weight: 700; color: #1a2332; }
.fm-step .delivery-option .carrier-price { font-weight: 700; color: #1a8a7e; }
.fm-step .delivery-option input[type="radio"]:checked + label,
.fm-step .delivery-option:has(input[type="radio"]:checked) {
  border-color: #2dc8b8 !important;
  background: linear-gradient(180deg, #f3fbfa 0%, #fff 100%) !important;
}

/* Payment options */
.fm-step .payment-options { display: flex; flex-direction: column; gap: 10px; }
.fm-step .payment-option {
  background: #fff !important;
  border: 1.5px solid #eef1f3 !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fm-step .payment-option:hover { border-color: #2dc8b8 !important; }
.fm-step .payment-option:has(input[type="radio"]:checked) {
  border-color: #2dc8b8 !important;
  background: linear-gradient(180deg, #f3fbfa 0%, #fff 100%) !important;
  box-shadow: 0 8px 20px rgba(45,200,184,.12);
}
.fm-step .payment-option label { margin: 0; cursor: pointer; font-weight: 600; color: #1a2332; }
.fm-step .additional-information { color: #4a5663; font-size: .9rem; }

/* Terms & conditions */
.fm-step .custom-checkbox,
.fm-step #conditions-to-approve {
  background: #f8fbfb;
  border: 1px solid #eef1f3;
  border-radius: 12px;
  padding: 12px 14px;
  margin-top: 14px;
}
.fm-step #conditions-to-approve label { font-size: .9rem; color: #4a5663; }
.fm-step #conditions-to-approve a { color: #1a8a7e; font-weight: 600; }

/* Step content - improve "use same address" / radio buttons */
.fm-step input[type="checkbox"],
.fm-step input[type="radio"] { accent-color: #2dc8b8; cursor: pointer; }

/* ===== Right Summary card ===== */
.fm-summary.card {
  position: sticky;
  top: 90px;
  background: #fff !important;
  border: 1px solid #eef1f3 !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 36px rgba(10,30,40,.08) !important;
  overflow: hidden;
  padding: 0 !important;
}
.fm-summary-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%);
}
.fm-summary-header-icon {
  width: 40px; height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1rem;
  box-shadow: 0 6px 16px rgba(45,200,184,.32);
  flex: 0 0 auto;
}
.fm-summary-header-text { display: flex; flex-direction: column; gap: 2px; }
.fm-summary-header-text strong { color: #1a2332; font-size: 1.05rem; font-weight: 700; line-height: 1.2; }
.fm-summary-header-text small { color: #4a5663; font-size: .82rem; }

.fm-summary-body { padding: 18px 22px !important; }
.fm-summary-divider { height: 1px; background: #eef1f3; margin: 0; }
.fm-summary-section { padding: 16px 22px; }

/* Summary products list */
.fm-summary-products { font-size: .9rem; }
.fm-summary-products-toggle {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  text-decoration: none !important;
  color: #1a2332 !important;
  font-weight: 600;
  padding: 8px 0;
}
.fm-summary-products-count { display: inline-flex; align-items: center; gap: 8px; }
.fm-summary-products-count i { color: #1a8a7e; }
.fm-summary-products-cta { color: #1a8a7e; font-weight: 600; font-size: .85rem; display: inline-flex; align-items: center; gap: 4px; }
.fm-summary-products-arrow { transition: transform .25s ease; }
.fm-summary-products-toggle[aria-expanded="true"] .fm-summary-products-arrow { transform: rotate(180deg); }
.fm-summary-products-list .media-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
.fm-summary-product {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px dashed #eef1f3;
  align-items: center;
}
.fm-summary-product:first-child { border-top: 0; }
.fm-summary-product img { width: 52px; height: 52px; object-fit: contain; border-radius: 10px; background: #f8fbfb; border: 1px solid #eef1f3; padding: 4px; }
.fm-summary-product .product-name { color: #1a2332; font-weight: 600; font-size: .88rem; }
.fm-summary-product .product-quantity,
.fm-summary-product .product-price { color: #4a5663; font-size: .82rem; }
.fm-summary-edit-link {
  color: #1a8a7e !important;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none !important;
}
.fm-summary-edit-link:hover { text-decoration: underline !important; }

/* Subtotals + Totals */
.cart-summary-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 6px 0;
  font-size: .92rem;
  color: #4a5663;
}
.cart-summary-line .label { font-weight: 500; }
.cart-summary-line .value { font-weight: 600; color: #1a2332; }
.cart-summary-line.cart-total {
  font-size: 1rem;
  border-top: 1px dashed #e6eaee;
  padding-top: 12px;
  margin-top: 6px;
}
.cart-summary-line.cart-total .label,
.cart-summary-line.cart-total .value {
  color: #1a2332;
  font-weight: 800;
  font-size: 1.18rem;
}
.cart-summary-line.cart-total .value { color: #1a8a7e; }

/* Voucher input */
.cart-summary .promo-code,
.fm-summary-voucher-wrap .block-promo,
.fm-summary-voucher-wrap form {
  display: flex !important;
  gap: 8px;
  margin: 0 !important;
}
.fm-summary-voucher-wrap input[type="text"],
.fm-summary-voucher-wrap .promo-input {
  flex: 1 1 auto;
  background: #fff !important;
  border: 1.5px solid #e6eaee !important;
  border-radius: 999px !important;
  padding: 10px 14px !important;
  font-size: .88rem !important;
  color: #1a2332 !important;
  height: auto !important;
}
.fm-summary-voucher-wrap input:focus { border-color: #2dc8b8 !important; box-shadow: 0 0 0 4px rgba(45,200,184,.18) !important; outline: none !important; }
.fm-summary-voucher-wrap button {
  background: #1a2332 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  cursor: pointer;
}
.fm-summary-voucher-wrap button:hover { background: #2dc8b8 !important; }
.fm-summary-voucher-wrap .promo-code-button,
.fm-summary-voucher-wrap a.promo-link {
  color: #1a8a7e !important;
  font-weight: 600;
  font-size: .85rem;
  text-decoration: none !important;
}

/* Reassurance block under summary — brand-styled tiles */
.fm-checkout-reassurance {
  margin-top: 16px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid #eef1f3;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(10,30,40,.06);
}
.fm-checkout-reassurance #block-reassurance,
.fm-checkout-reassurance .blockreassurance_product {
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
.fm-checkout-reassurance #block-reassurance:empty,
.fm-checkout-reassurance .blockreassurance_product:empty { display: none; }
.fm-reassurance-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fm-reassurance-item {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  margin: 0 !important;
}
.fm-reassurance-icon {
  flex: 0 0 auto;
  width: 38px; height: 38px;
  border-radius: 12px;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%);
  color: #1a8a7e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .98rem;
}
.fm-reassurance-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.fm-reassurance-text strong {
  color: #1a2332;
  font-weight: 700;
  font-size: .88rem;
  line-height: 1.2;
}
.fm-reassurance-text small {
  color: #6a7480;
  font-size: .78rem;
  line-height: 1.3;
}

/* Notifications (errors, warnings) */
body#checkout .notifications-container .alert,
body.page-order .notifications-container .alert {
  border-radius: 12px !important;
  border: 0 !important;
  padding: 14px 18px !important;
  font-size: .92rem;
  margin-bottom: 14px;
}
body#checkout .notifications-container .alert-danger { background: #fdecea !important; color: #b71c1c !important; }
body#checkout .notifications-container .alert-warning { background: #fff4e8 !important; color: #b35d00 !important; }
body#checkout .notifications-container .alert-success { background: #e6f9f5 !important; color: #0f6b5e !important; }
body#checkout .notifications-container .alert-info { background: #eaf4fb !important; color: #0a558b !important; }

/* Checkout footer */
.fm-checkout-footer { background: #fff !important; border-top: 1px solid #eef1f3; margin-top: 30px; padding: 18px 0; }

/* Order confirmation page reuses the same body but with page-order-confirmation class — give it a clean white card too */
body.page-order-confirmation {
  background: linear-gradient(135deg, #f3fbfa 0%, #e8f8f6 60%, #fff 100%) !important;
  background-attachment: fixed !important;
  min-height: 100vh;
}
body.page-order-confirmation #wrapper,
body.page-order-confirmation #main-page-content,
body.page-order-confirmation #content,
body.page-order-confirmation .page-content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* ===== Responsive ===== */
@media (max-width: 992px) {
  .fm-checkout-row { flex-direction: column; gap: 18px; }
  .fm-checkout-main, .fm-checkout-aside { flex: 1 1 100%; max-width: 100%; }
  .fm-summary.card { position: static; }
}
@media (max-width: 640px) {
  .fm-checkout { padding: 42px 12px 50px !important; }
  .fm-checkout-title { font-size: 1.5rem !important; gap: 10px; }
  .fm-checkout-title-icon { width: 38px; height: 38px; font-size: 1rem; }
  .fm-checkout-sub { font-size: .88rem; }
  .fm-checkout-progress {
    padding: 12px 14px !important;
    border-radius: 16px;
  }
  .fm-progress-lbl { display: none; }
  .fm-checkout-progress-sep { min-width: 18px; }
  .fm-step-title { padding: 14px 16px !important; gap: 10px; }
  .fm-step-content { padding: 16px 16px 18px !important; }
  .fm-step-titletext-sub { display: none; }
  .fm-summary-header, .fm-summary-body, .fm-summary-section { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ================================================================
   /carrello — Cart page brand restyle (reuses .fm-checkout container)
   ================================================================ */

/* Body hero + wrapper reset for cart page */
body.page-cart,
body#cart {
  background: linear-gradient(135deg, #f3fbfa 0%, #e8f8f6 60%, #fff 100%) !important;
  background-attachment: fixed !important;
  min-height: 100vh;
}
body.page-cart #wrapper,
body.page-cart #main-page-content,
body.page-cart #content,
body.page-cart .page-content,
body.page-cart .ns-content,
body.page-cart .js-content-wrapper,
body#cart #wrapper,
body#cart #main-page-content,
body#cart #content,
body#cart .page-content,
body#cart .ns-content,
body#cart .js-content-wrapper {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
body.page-cart #main > h1.page-title,
body#cart #main > h1.page-title { display: none !important; }
/* #main keeps reset but NOT padding (handled by .fm-checkout / .fm-cart) */
body.page-cart #main,
body#cart #main {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Cart container */
.fm-cart.fm-checkout {
  max-width: 1180px;
  padding-top: 84px !important;
}
.fm-cart .cart-grid.fm-checkout-row { margin: 24px 0 0 !important; gap: 24px; }
.fm-cart .cart-grid.fm-checkout-row > [class*="col-"] { padding: 0 !important; }

/* ===== Left: product list card ===== */
.fm-cart-card {
  background: #fff;
  border: 1px solid #eef1f3;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(10,30,40,.06);
  overflow: hidden;
  margin-bottom: 18px;
}
.fm-cart-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  background: linear-gradient(135deg, #e8fbf8 0%, #d3f5ee 100%);
  border-bottom: 1px solid rgba(45,200,184,.18);
}
.fm-cart-card-icon {
  width: 40px; height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  box-shadow: 0 6px 16px rgba(45,200,184,.32);
  flex: 0 0 auto;
}
.fm-cart-card-text { display: flex; flex-direction: column; gap: 2px; }
.fm-cart-card-text strong { color: #1a2332; font-size: 1.05rem; font-weight: 700; line-height: 1.2; }
.fm-cart-card-text small { color: #4a5663; font-size: .82rem; }
.fm-cart-card-body { padding: 0; }

/* Cart product list */
.fm-cart .cart-overview { padding: 0 !important; }
.fm-cart .cart-items { list-style: none; margin: 0 !important; padding: 0 !important; }
.fm-cart .cart-item {
  padding: 18px 22px;
  border-bottom: 1px solid #f0f3f3;
}
.fm-cart .cart-item:last-child { border-bottom: 0; }

.fm-cart-line {
  display: grid;
  grid-template-columns: 90px 1fr auto auto 40px;
  gap: 16px;
  align-items: center;
}

.fm-cart-line-thumb {
  width: 90px; height: 90px;
  border-radius: 14px;
  background: #f8fbfb;
  border: 1px solid #eef1f3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 6px;
  transition: border-color .18s ease;
}
.fm-cart-line-thumb:hover { border-color: #2dc8b8; }
.fm-cart-line-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }

.fm-cart-line-info { min-width: 0; }
.fm-cart-line-name {
  display: block;
  color: #1a2332 !important;
  font-weight: 700 !important;
  font-size: 1rem;
  line-height: 1.3;
  margin-bottom: 6px;
  text-decoration: none !important;
}
.fm-cart-line-name:hover { color: #1a8a7e !important; }
.fm-cart-line-attr { font-size: .82rem; color: #6a7480 !important; margin: 0 0 4px; }
.fm-cart-line-attr .label { color: #9aa3ad; font-weight: 500; margin-right: 4px; }
.fm-cart-line-discount { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; margin-top: 6px; }
.fm-cart-line-discount .regular-price { color: #9aa3ad; text-decoration: line-through; }
.fm-cart-line-discount .discount {
  background: #fdecea;
  color: #c0392b;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 700;
  font-size: .72rem;
}
.fm-cart-line-unit {
  margin-top: 6px;
  font-size: .85rem;
  color: #6a7480;
}
.fm-cart-line-unit-price { font-weight: 600; color: #1a2332; }
.fm-cart-line-unit-extra { display: block; color: #9aa3ad; font-size: .72rem; }

/* Qty input pillola */
.fm-cart-line-qty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.fm-cart-line-qty-input {
  width: 64px;
  height: 38px;
  background: #fff !important;
  border: 1.5px solid #e6eaee !important;
  border-radius: 999px !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  color: #1a2332 !important;
  text-align: center !important;
  padding: 0 8px !important;
  -moz-appearance: textfield;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fm-cart-line-qty-input::-webkit-outer-spin-button,
.fm-cart-line-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.fm-cart-line-qty-input:focus {
  outline: none !important;
  border-color: #2dc8b8 !important;
  box-shadow: 0 0 0 4px rgba(45,200,184,.18) !important;
}
.fm-cart-line-qty-gift {
  font-weight: 700;
  color: #1a8a7e;
}

.fm-cart-line-total {
  text-align: right;
  font-weight: 800;
  font-size: 1.05rem;
  color: #1a2332;
  white-space: nowrap;
  min-width: 80px;
}
.fm-cart-line-total .gift { color: #1a8a7e; }

.fm-cart-line-actions { display: inline-flex; align-items: center; justify-content: center; }
.fm-cart-line-remove {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #9aa3ad !important;
  background: #f8fbfb;
  border: 1px solid #eef1f3;
  transition: all .18s ease;
  text-decoration: none !important;
  font-size: .95rem;
}
.fm-cart-line-remove:hover {
  color: #fff !important;
  background: #c0392b;
  border-color: #c0392b;
}

/* Continue shopping button */
.fm-cart-continue {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 11px 20px;
  background: #fff;
  color: #1a2332 !important;
  border: 1.5px solid #e6eaee;
  border-radius: 999px;
  font-weight: 600;
  font-size: .92rem;
  text-decoration: none !important;
  transition: border-color .18s ease, color .18s ease;
}
.fm-cart-continue:hover { border-color: #1a2332; color: #1a8a7e !important; }

/* ===== Right summary on cart page ===== */
.fm-cart .fm-summary { position: sticky; top: 90px; }
.fm-cart .fm-summary-cart-body { padding: 18px 22px; }
.fm-cart .cart-detailed-totals,
.fm-cart .cart-detailed-totals .card-body,
.fm-cart .cart-detailed-subtotals,
.fm-cart .cart-detailed-actions {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  margin: 0 !important;
}
.fm-cart .cart-detailed-totals hr {
  border: 0;
  border-top: 1px dashed #e6eaee;
  margin: 10px 0;
}

.fm-cart .cart-summary-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 6px 0;
  font-size: .92rem;
  color: #4a5663;
}
.fm-cart .cart-summary-line .label { font-weight: 500; }
.fm-cart .cart-summary-line .value { font-weight: 600; color: #1a2332; white-space: nowrap; }
.fm-cart .cart-summary-line.cart-total {
  font-size: 1rem;
  border-top: 1px dashed #e6eaee;
  padding-top: 12px;
  margin-top: 6px;
}
.fm-cart .cart-summary-line.cart-total .label,
.fm-cart .cart-summary-line.cart-total .value {
  font-weight: 800;
  font-size: 1.18rem;
}
.fm-cart .cart-summary-line.cart-total .value { color: #1a8a7e; }

/* Voucher block on cart */
.fm-cart .block-promo,
.fm-cart .cart-voucher,
.fm-cart .promo-code,
.fm-cart .cart-voucher-area {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.fm-cart .promo-code form { margin: 0 !important; }
.fm-cart .promo-code .input-group {
  display: flex;
  align-items: stretch;
  gap: 0;
  position: relative;
  background: #fff;
  border: 1.5px solid #e6eaee;
  border-radius: 999px;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.fm-cart .promo-code .input-group:focus-within {
  border-color: #2dc8b8;
  box-shadow: 0 0 0 4px rgba(45,200,184,.18);
}
.fm-cart .promo-code .voucher-icon {
  background: transparent !important;
  border: 0 !important;
  color: #1a8a7e !important;
  padding: 10px 4px 10px 14px !important;
  font-size: .92rem !important;
  cursor: default !important;
}
.fm-cart .promo-code input[type="text"],
.fm-cart .promo-code .form-control {
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 10px 8px !important;
  font-size: .9rem !important;
  flex: 1 1 auto;
  color: #1a2332 !important;
  height: auto !important;
}
.fm-cart .promo-code .form-control::placeholder { color: #9aa3ad; }
.fm-cart .promo-code .input-group-append button,
.fm-cart .promo-code button[type="submit"] {
  background: #1a2332 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 8px 18px !important;
  margin: 4px !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  cursor: pointer;
  transition: background .18s ease;
}
.fm-cart .promo-code .input-group-append button:hover,
.fm-cart .promo-code button[type="submit"]:hover { background: #2dc8b8 !important; }
.fm-cart .alert.js-error { display: none; border-radius: 12px; }
.fm-cart .alert.js-error[role] { background: #fdecea; color: #b71c1c; padding: 10px 14px; margin-bottom: 10px; }
.fm-cart .promo-discounts {
  list-style: none;
  margin: 12px 0 0;
  padding: 12px 14px;
  background: #f8fbfb;
  border-radius: 12px;
  font-size: .85rem;
}
.fm-cart .promo-discounts .code {
  background: #1a2332;
  color: #fff;
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 700;
  font-size: .76rem;
  margin-right: 6px;
}
.fm-cart .promo-name {
  list-style: none;
  margin: 0 0 10px;
  padding: 12px 14px;
  background: linear-gradient(180deg, #f3fbfa 0%, #fff 100%);
  border: 1px solid rgba(45,200,184,.25);
  border-radius: 12px;
  font-size: .9rem;
}
.fm-cart .promo-name a { color: #c0392b !important; margin-right: 8px; }

/* Cart CTA — Procedi al checkout */
.fm-summary-actions {
  padding: 18px 22px;
  border-top: 1px solid #eef1f3;
  background: linear-gradient(180deg, #fff 0%, #f8fbfb 100%);
}
.fm-summary-actions .text-xs-center { text-align: center; }
.fm-summary-actions .btn.btn-primary,
.fm-summary-actions a.btn-primary,
.fm-summary-actions button.btn-primary,
.fm-cart .cart-detailed-actions .btn-primary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 14px 22px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  text-decoration: none !important;
  box-shadow: 0 12px 28px rgba(45,200,184,.32) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
  height: auto !important;
}
.fm-summary-actions .btn.btn-primary:hover,
.fm-summary-actions a.btn-primary:hover,
.fm-summary-actions button.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(45,200,184,.45) !important; }
.fm-summary-actions .btn.btn-primary.disabled,
.fm-summary-actions button.btn-primary.disabled,
.fm-summary-actions button[disabled] {
  background: #d6d9de !important;
  color: #fff !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Empty cart on cart page */
.fm-cart .alert.alert-warning {
  background: #fff4e8 !important;
  color: #b35d00 !important;
  border: 0 !important;
  border-radius: 12px !important;
  padding: 16px 18px !important;
  font-size: .92rem;
  margin: 22px;
}

/* Cart empty page (cart-empty.tpl) — light catch-all */
body.page-cart .cart-empty,
body.page-cart .cart-empty-page {
  background: #fff;
  border-radius: 18px;
  padding: 40px 30px;
  text-align: center;
  box-shadow: 0 10px 28px rgba(10,30,40,.06);
}

/* ===== Mobile responsive — both /carrello and /ordine ===== */
@media (max-width: 992px) {
  .fm-cart .cart-grid.fm-checkout-row { flex-direction: column; gap: 18px; }
  .fm-cart .cart-grid.fm-checkout-row > [class*="col-"] { flex: 1 1 100%; max-width: 100%; }
  .fm-cart .fm-summary { position: static; }
}

@media (max-width: 640px) {
  /* Cart page tweaks */
  .fm-cart .cart-item { padding: 14px 16px; }
  .fm-cart-line {
    grid-template-columns: 72px 1fr auto;
    grid-template-areas:
      "thumb info info"
      "thumb qty total"
      "thumb actions actions";
    column-gap: 12px;
    row-gap: 8px;
  }
  .fm-cart-line-thumb { width: 72px; height: 72px; grid-area: thumb; align-self: start; }
  .fm-cart-line-info { grid-area: info; }
  .fm-cart-line-qty { grid-area: qty; justify-self: start; }
  .fm-cart-line-total { grid-area: total; text-align: right; min-width: 0; }
  .fm-cart-line-actions { grid-area: actions; justify-self: end; }
  .fm-cart-line-actions .fm-cart-line-remove { width: 32px; height: 32px; font-size: .85rem; }
  .fm-cart-card-header { padding: 14px 16px; gap: 10px; }
  .fm-cart-card-icon { width: 36px; height: 36px; font-size: .9rem; }
  .fm-cart .fm-summary-cart-body { padding: 14px 16px; }
  .fm-summary-actions { padding: 14px 16px; }
  .fm-summary-actions .btn.btn-primary { font-size: .95rem !important; padding: 12px 18px !important; }
  .fm-cart-continue { font-size: .88rem; padding: 9px 16px; }

  /* Top padding for both pages — less on mobile but still breathing */
  .fm-checkout { padding-top: 42px !important; }
}

/* ================================================================
   Addresses page (/indirizzi) — brand hero + card grid + ghost CTA
   ================================================================ */

/* Hero header — used on /indirizzi (body.page-addresses) and any other
   account sub-page (page-customer-account/page-my-account). Unscoped: the
   .fm-account-hero brand class is unique to this codebase. */
.fm-account-hero {
  display: flex;
  align-items: center;
  gap: 18px;
  background: linear-gradient(135deg, #1a2332 0%, #243246 100%);
  color: #fff;
  padding: 26px 28px;
  border-radius: 18px;
  margin-bottom: 22px;
  box-shadow: 0 12px 28px rgba(10, 30, 40, .14);
}
.fm-account-hero-icon {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.6rem;
  box-shadow: 0 8px 20px rgba(45, 200, 184, .35);
}
.fm-account-hero-text { min-width: 0; }
.fm-account-hero-title {
  margin: 0 0 4px;
  font-size: 1.55rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
}
.fm-account-hero-sub {
  margin: 0;
  font-size: .95rem;
  color: rgba(255, 255, 255, .82);
  line-height: 1.4;
}

/* Intro line under the .account-card-title (matches the heading
   style of /dati-personali — title sits in white card, sub follows) */
.fm-address-intro {
  margin: -6px 0 22px;
  color: #6a7480;
  font-size: .95rem;
  line-height: 1.45;
}

/* Card grid */
.fm-address-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
}

/* Address card — unscoped (brand class). Beats the older .address rule
   above on /indirizzi because that rule was scoped to page-customer-account. */
.fm-address-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #eef1f3;
  border-radius: 16px;
  padding: 0;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow: 0 4px 14px rgba(10, 30, 40, .04);
}
.fm-address-card:hover {
  transform: translateY(-3px);
  border-color: #2dc8b8;
  box-shadow: 0 14px 32px rgba(45, 200, 184, .18);
}

.fm-address-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px dashed #eef1f3;
}
.fm-address-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #e8fbf8 0%, #c8efe8 100%);
  color: #1a8a7e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex: 0 0 40px;
  transition: background .18s ease, color .18s ease;
}
.fm-address-card:hover .fm-address-card-icon {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
}
.fm-address-card-alias {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #1a2332;
  line-height: 1.2;
}

.fm-address-card-body {
  padding: 16px 20px 18px;
  flex: 1;
}
.fm-address-card-text {
  margin: 0;
  font-style: normal;
  color: #4a5663;
  line-height: 1.55;
  font-size: .95rem;
  white-space: pre-line;
}

.fm-address-card-actions {
  display: flex;
  gap: 10px;
  padding: 14px 18px;
  border-top: 1px solid #f0f3f3;
  background: #fafbfc;
}
.fm-address-card-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: all .18s ease;
  border: 1px solid transparent;
}
.fm-address-card-btn i { font-size: .95rem; }
.fm-address-card-btn-edit {
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(45, 200, 184, .25);
}
.fm-address-card-btn-edit:hover {
  background: linear-gradient(135deg, #22a99b 0%, #1a8a7e 100%);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(45, 200, 184, .35);
  color: #fff !important;
}
.fm-address-card-btn-delete {
  background: #fff;
  color: #c0392b !important;
  border-color: #f5d8d4;
}
.fm-address-card-btn-delete:hover {
  background: #fdecea;
  border-color: #c0392b;
  color: #a8312a !important;
}

/* "Add new address" ghost card — matches grid */
.fm-address-add-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 8px;
  padding: 28px 20px;
  background: transparent;
  border: 2px dashed #cfe8e3;
  border-radius: 16px;
  text-decoration: none !important;
  color: #1a8a7e !important;
  transition: all .2s ease;
  min-height: 200px;
}
.fm-address-add-card:hover {
  border-color: #2dc8b8;
  background: linear-gradient(135deg, rgba(45, 200, 184, .04) 0%, rgba(34, 169, 155, .06) 100%);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(45, 200, 184, .12);
}
.fm-address-add-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  box-shadow: 0 6px 18px rgba(45, 200, 184, .35);
  margin-bottom: 4px;
}
.fm-address-add-title {
  font-weight: 700;
  font-size: 1.05rem;
  color: #1a2332;
}
.fm-address-add-sub {
  font-size: .85rem;
  color: #6a7480;
  line-height: 1.4;
  max-width: 220px;
}

/* Empty state */
.fm-address-empty {
  text-align: center;
  padding: 50px 24px;
  background: #fff;
  border: 1px solid #eef1f3;
  border-radius: 18px;
}
.fm-address-empty-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e8fbf8 0%, #c8efe8 100%);
  color: #1a8a7e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  margin-bottom: 16px;
}
.fm-address-empty-title {
  margin: 0 0 8px;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a2332;
}
.fm-address-empty-sub {
  margin: 0 auto 22px;
  max-width: 360px;
  color: #6a7480;
  font-size: .95rem;
  line-height: 1.5;
}
.fm-address-empty-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: linear-gradient(135deg, #2dc8b8 0%, #22a99b 100%);
  color: #fff !important;
  border-radius: 12px;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(45, 200, 184, .3);
  transition: all .2s ease;
}
.fm-address-empty-cta:hover {
  background: linear-gradient(135deg, #22a99b 0%, #1a8a7e 100%);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(45, 200, 184, .4);
}

/* Hide the legacy addresses-footer link (we render the add-card instead) */
.fm-addresses-footer-legacy { display: none !important; }

/* Override the older bare .address rule (which only matched on
   page-customer-account/page-my-account) so on /indirizzi the card
   keeps white bg + zero outer padding regardless of body class. */
.address.fm-address-card {
  background: #fff;
  padding: 0;
}

@media (max-width: 540px) {
  .fm-account-hero {
    padding: 20px 18px;
    gap: 14px;
    border-radius: 14px;
  }
  .fm-account-hero-icon {
    flex: 0 0 44px; width: 44px; height: 44px; font-size: 1.25rem; border-radius: 12px;
  }
  .fm-account-hero-title { font-size: 1.2rem; }
  .fm-account-hero-sub { font-size: .85rem; }

  .fm-address-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .fm-address-card-header { padding: 14px 16px 12px; }
  .fm-address-card-body { padding: 14px 16px 16px; }
  .fm-address-card-actions { padding: 12px 14px; gap: 8px; }
  .fm-address-card-btn { padding: 9px 12px; font-size: .85rem; }
  .fm-address-add-card { min-height: 160px; padding: 22px 18px; }
}
