/* QuickGadget theme — T1: tokens, top bar, header, menu, footer. Everything is scoped under .qg-theme. */

:root {
  --qg-navy: #152331;
  --qg-pink: #ef1e60;
  --qg-pink-dark: #d4154f;
  --qg-yellow: #fdb822;
  --qg-yellow-dark: #e9a20a;
  --qg-blue: #025ab2;
  --qg-green: #06921a;
  --qg-red: #d92d20;
  --qg-bg: #f4f6f8;
  --qg-bg-soft: #f1f5f9;
  --qg-border: #e3e8ee;
  --qg-text: #152331;
  --qg-muted: #5b6b7a;
  --qg-star: #fcbb1f;
  --qg-radius: .75rem;
  --qg-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---- Base and Bootstrap bridge: the whole shop (cart, checkout, reviews...) picks up the palette ---- */
.qg-theme {
  --bs-primary: #ef1e60;
  --bs-primary-rgb: 239, 30, 96;
  --bs-link-color: #025ab2;
  --bs-link-color-rgb: 2, 90, 178;
  --bs-link-hover-color: #014a93;
  --bs-link-hover-color-rgb: 1, 74, 147;
  --bs-body-color: var(--qg-text);
  --bs-body-font-family: var(--qg-font);
  font-family: var(--qg-font);
  color: var(--qg-text);
  background: #fff;
}
.qg-theme h1, .qg-theme h2, .qg-theme h3, .qg-theme h4, .qg-theme h5, .qg-theme h6 { color: var(--qg-navy); }
.qg-theme .container { max-width: 1360px; }
.qg-theme .btn-primary {
  --bs-btn-bg: #ef1e60; --bs-btn-border-color: #ef1e60;
  --bs-btn-hover-bg: #d4154f; --bs-btn-hover-border-color: #c7134a;
  --bs-btn-active-bg: #c7134a; --bs-btn-active-border-color: #b91143;
  --bs-btn-disabled-bg: #ef1e60; --bs-btn-disabled-border-color: #ef1e60;
  --bs-btn-focus-shadow-rgb: 239, 30, 96;
  font-weight: 600;
}
.qg-theme .btn-warning {
  --bs-btn-color: #152331; --bs-btn-bg: #fdb822; --bs-btn-border-color: #fdb822;
  --bs-btn-hover-color: #152331; --bs-btn-hover-bg: #e9a20a; --bs-btn-hover-border-color: #e9a20a;
  --bs-btn-active-color: #152331; --bs-btn-active-bg: #d99700; --bs-btn-active-border-color: #d99700;
  --bs-btn-focus-shadow-rgb: 253, 184, 34;
  font-weight: 600;
}
.qg-theme .btn-outline-primary {
  --bs-btn-color: #ef1e60; --bs-btn-border-color: #ef1e60;
  --bs-btn-hover-bg: #ef1e60; --bs-btn-hover-border-color: #ef1e60;
  --bs-btn-active-bg: #d4154f; --bs-btn-active-border-color: #d4154f;
  --bs-btn-focus-shadow-rgb: 239, 30, 96;
}
.qg-theme .breadcrumb {
  background: var(--qg-bg);
  border: 0;
  border-radius: .5rem;
  padding: .6rem 1rem;
  margin-bottom: 1.25rem;
  font-size: .85rem;
}
.qg-theme .breadcrumb > li.breadcrumb-item { padding: 0 .5rem; text-shadow: none; }
.qg-theme .breadcrumb { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }

/* The default theme pins the footer with absolute positioning and padding hacks: replace with a normal flow. */
.qg-theme #container { position: relative; margin-bottom: 0; min-height: 100vh; display: flex; flex-direction: column; }
.qg-theme #container > main { flex: 1 0 auto; }
.qg-theme #content, .qg-theme #column-left, .qg-theme #column-right { padding-bottom: 2rem; }
.qg-theme #alert { z-index: 9999; }

.qg-skip { position: absolute; left: -9999px; top: 0; z-index: 10000; background: var(--qg-navy); color: #fff; padding: .5rem 1rem; border-radius: 0 0 .5rem 0; }
.qg-skip:focus { left: 0; color: #fff; }

/* ---- Top bar ---- */
.qg-topbar { background: linear-gradient(135deg, #021d3d 0%, #032450 55%, #0a2c5c 100%); color: #fff; font-size: .78rem; line-height: 1.2; }
.qg-topbar a { color: #fff; text-decoration: none; }
.qg-topbar a:hover { color: var(--qg-yellow); }
.qg-topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.1rem; }
.qg-topbar-items { display: flex; gap: 1.75rem; margin: 0; padding: 0; }
.qg-topbar-items li { display: flex; align-items: center; gap: .4rem; white-space: nowrap; }
.qg-topbar-right { display: flex; align-items: center; gap: .9rem; }
.qg-follow { opacity: .85; }
.qg-social { display: flex; gap: .7rem; margin: 0; padding: 0; }
.qg-topbar-select .btn, .qg-topbar-select a, .qg-topbar-select .dropdown-toggle { color: #fff; font-size: .78rem; padding: 0; border: 0; text-decoration: none; }
.qg-topbar-select form { margin: 0; }
@media (max-width: 767.98px) {
  .qg-topbar-items li:nth-child(n+2) { display: none; }
  .qg-topbar-inner { justify-content: center; }
  .qg-topbar-right { display: none; }
}

/* ---- Header ---- */
.qg-header { background: #fff; }
.qg-header-inner { display: flex; align-items: center; gap: 1.5rem; padding-top: .85rem; padding-bottom: .85rem; }
.qg-theme #logo { margin: 0; text-align: left; flex: 0 0 auto; }
.qg-theme #logo img { max-width: none; height: var(--qg-logo-h, 90px); width: auto; }
.qg-logo-text { font-size: 1.5rem; font-weight: 800; color: var(--qg-navy); text-decoration: none; }
.qg-search { flex: 1 1 auto; max-width: 44rem; margin: 0 auto 0 1rem; }
.qg-search-form { display: flex; border: 1.5px solid var(--qg-border); border-radius: .6rem; overflow: hidden; background: #fff; margin: 0; }
.qg-search-form:focus-within { border-color: var(--qg-pink); box-shadow: 0 0 0 .2rem rgba(239, 30, 96, .15); }
.qg-search-input { flex: 1 1 auto; border: 0; outline: 0; padding: .7rem 1rem; font-size: .92rem; background: transparent; min-width: 0; color: var(--qg-text); }
.qg-search-button { border: 0; background: var(--qg-pink); color: #fff; width: 3.2rem; font-size: 1rem; cursor: pointer; }
.qg-search-button:hover { background: var(--qg-pink-dark); }
.qg-actions { display: flex; align-items: flex-start; gap: 1.4rem; margin: 0; padding: 0; margin-left: auto; }
.qg-action { display: flex; flex-direction: column; align-items: center; gap: .15rem; background: none; border: 0; padding: 0; color: var(--qg-navy); text-decoration: none; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.qg-action:hover, .qg-action:focus-visible { color: var(--qg-pink); }
.qg-action-label { font-size: .72rem; font-weight: 500; }
/* Account, favourites and cart icons: one SVG sprite in the header (#qg-i-user, #qg-i-heart, #qg-i-cart), always the same colours */
.qg-ico { display: block; width: 2.05rem; height: 2.05rem; transition: transform .15s ease; }
.qg-action:hover .qg-ico, .qg-action:focus-visible .qg-ico { transform: translateY(-1px) scale(1.07); }
.qg-cart-icon .qg-ico { transform: scale(1.1); transform-origin: 50% 60%; }   /* the cart drawing is lighter than the circle and the heart: a little bigger, the layout does not change */
.qg-cart-button:hover .qg-cart-icon .qg-ico, .qg-cart-button:focus-visible .qg-cart-icon .qg-ico { transform: translateY(-1px) scale(1.17); }
@media (prefers-reduced-motion: reduce) { .qg-ico { transition: none; } .qg-action:hover .qg-ico, .qg-action:focus-visible .qg-ico { transform: none; } .qg-cart-button:hover .qg-cart-icon .qg-ico, .qg-cart-button:focus-visible .qg-cart-icon .qg-ico { transform: scale(1.1); } }
.qg-theme #cart { margin: 0; }
.qg-cart-button { flex-direction: column; gap: .15rem; }   /* icon on top, "Carrello" and the total under it: the three labels line up */
.qg-cart-icon { position: relative; display: inline-block; line-height: 0; }
.qg-cart-count { position: absolute; top: -.4rem; right: -.7rem; min-width: 1.15rem; height: 1.15rem; padding: 0 .25rem; border-radius: 1rem; background: var(--qg-pink); color: #fff; font-size: .68rem; font-weight: 700; line-height: 1.15rem; text-align: center; }
.qg-cart-text { display: flex; flex-direction: column; align-items: center; gap: .05rem; }
.qg-cart-text strong { font-size: .76rem; font-weight: 600; color: var(--qg-muted); }
.qg-theme #cart .dropdown-menu { background: #fff; border-radius: var(--qg-radius); box-shadow: 0 .5rem 1.5rem rgba(21, 35, 49, .15); border-color: var(--qg-border); }
.qg-burger { border: 0; background: none; font-size: 1.5rem; color: var(--qg-navy); padding: .25rem .5rem; }
@media (max-width: 991.98px) {
  .qg-header-inner { flex-wrap: wrap; gap: .75rem 1rem; padding-top: .6rem; padding-bottom: .6rem; }
  .qg-theme #logo { flex: 1 1 0; min-width: 0; }
  .qg-theme #logo img { max-width: 100%; height: var(--qg-logo-hm, 56px); object-fit: contain; object-position: left center; }
  .qg-actions { gap: 1rem; }
  .qg-action-label, .qg-cart-text { display: none; }
  .qg-search { order: 5; flex: 1 1 100%; max-width: none; margin: 0; }
}

/* ---- Menu ---- */
.qg-nav { background: #fff; border-top: 1px solid var(--qg-border); border-bottom: 1px solid var(--qg-border); margin-bottom: 1rem; }
.qg-nav-inner { display: flex; align-items: center; gap: 1.75rem; padding-top: .55rem; padding-bottom: .55rem; }
.qg-cats-button { display: inline-flex; align-items: center; gap: .55rem; background: var(--qg-pink); color: #fff; border: 0; border-radius: .5rem; padding: .65rem 1.2rem; font-weight: 700; font-size: .95rem; }
.qg-cats-button:hover, .qg-cats-button[aria-expanded="true"] { background: var(--qg-pink-dark); color: #fff; }
.qg-links { gap: 1.6rem; margin: 0; padding: 0; align-items: center; }
.qg-links a { display: inline-flex; align-items: center; gap: .45rem; color: var(--qg-navy); font-weight: 600; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.qg-links a i { color: var(--qg-pink); }
.qg-links a:hover { color: var(--qg-pink); }
.qg-nav-badge { margin-left: auto; align-items: center; gap: .4rem; font-weight: 600; font-size: .85rem; color: var(--qg-navy); }
.qg-nav-badge i { color: var(--qg-yellow-dark); }
.qg-mega { width: min(1160px, 94vw); max-height: calc(100vh - 13rem); overflow-y: auto; padding: 1.4rem 1.6rem; border: 1px solid var(--qg-border); border-radius: var(--qg-radius); box-shadow: 0 .75rem 2rem rgba(21, 35, 49, .15); margin-top: .5rem !important; }
.qg-mega-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 1.1rem 1.5rem; }
.qg-mega-title { display: block; font-weight: 700; color: var(--qg-navy); text-decoration: none; margin-bottom: .35rem; }
.qg-mega-title:hover { color: var(--qg-pink); }
.qg-mega-col ul { margin: 0; }
.qg-mega-col li a { display: block; padding: .15rem 0; font-size: .86rem; color: var(--qg-muted); text-decoration: none; }
.qg-mega-col li a:hover { color: var(--qg-pink); }
.qg-mobile { padding-top: .75rem; padding-bottom: 1rem; }
.qg-mobile-title { font-weight: 700; margin: 0 0 .4rem; }
.qg-mobile ul { margin: 0; padding: 0; }
.qg-mobile-row { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--qg-border); }
.qg-mobile-row a { flex: 1; padding: .7rem 0; color: var(--qg-navy); font-weight: 600; text-decoration: none; }
.qg-mobile-toggle { background: none; border: 0; padding: .7rem .5rem; color: var(--qg-muted); }
.qg-mobile-sub { padding: .25rem 0 .5rem 1rem !important; }
.qg-mobile-sub a { display: block; padding: .4rem 0; color: var(--qg-muted); text-decoration: none; font-size: .9rem; }
.qg-mobile-links { margin-top: 1rem !important; display: flex; flex-wrap: wrap; gap: .5rem; }
.qg-mobile-links a { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .85rem; border-radius: 2rem; background: var(--qg-bg-soft); color: var(--qg-navy); font-weight: 600; font-size: .85rem; text-decoration: none; }
.qg-mobile-links a i { color: var(--qg-pink); }

/* ---- Footer (dark, from the approved mockup): curve and heart, newsletter box, five columns, trust strip, legal links, payment logos ---- */
.qg-theme footer.qg-footer { position: static; border: 0; padding: 0; margin: 3rem 0 0; width: auto; background: transparent; color: #fff; flex-shrink: 0; --qgf-navy: #021d3d; --qgf-line: rgba(255, 255, 255, .14); --qgf-pink: #ff2d7d; --qgf-muted: rgba(255, 255, 255, .72); }
.qg-theme footer.qg-footer a { color: rgba(255, 255, 255, .94); text-decoration: none; }
.qg-theme footer.qg-footer a:hover { color: var(--qgf-pink); }
.qg-theme footer.qg-footer h2, .qg-theme footer.qg-footer strong { color: #fff; }
.qg-footer-curve { position: relative; height: 4.9rem; overflow: hidden; background: var(--qgf-navy); }
.qg-footer-curve::before { content: ""; position: absolute; left: -10%; right: -10%; top: -3.2rem; height: 6.6rem; background: #fff; border-radius: 0 0 50% 50% / 0 0 100% 100%; border-bottom: 3px solid var(--qgf-pink); }
.qg-footer-curve img, .qg-footer-curve i { position: absolute; left: 50%; top: 1.4rem; transform: translateX(-50%); width: 3.2rem; height: auto; z-index: 1; filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .25)); }
.qg-footer-curve i { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #fff; color: var(--qgf-pink); }
.qg-footer-body { background: linear-gradient(135deg, #021d3d 0%, #032450 55%, #0a2c5c 100%); padding-top: 0; }
/* newsletter box */
.qg-nl { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(19rem, 1.15fr) auto; align-items: center; gap: .5rem 1.6rem; margin: 0 0 2rem; padding: 1.1rem 1.8rem; border-radius: 1.5rem; border: 1px solid rgba(255, 255, 255, .16); background: linear-gradient(100deg, #0b55d0 0%, #0a3f9f 42%, #0a2b6f 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 10px 30px rgba(0, 0, 0, .25); overflow: hidden; }
.qg-nl-envelope { width: 8rem; height: auto; }
.qg-nl-title { margin: 0 0 .35rem; font-size: 2.1rem; line-height: 1.1; font-weight: 800; color: #fff; }
.qg-nl-title span { color: var(--qgf-pink); }
.qg-nl-copy, .qg-nl-form { min-width: 0; }
.qg-nl-copy p { margin: 0; font-size: .98rem; line-height: 1.45; color: #fff; }
.qg-nl-field { display: flex; align-items: center; gap: .6rem; padding: .3rem .3rem .3rem 1rem; border-radius: 999px; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.qg-nl-field > i { color: #6b7a8c; font-size: 1.05rem; }
.qg-nl-field input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #152331; font-size: .95rem; padding: .5rem 0; }
.qg-nl-field:focus-within { box-shadow: 0 0 0 3px rgba(255, 45, 125, .45); }
.qg-nl-button { flex: none; border: 0; border-radius: 999px; padding: .7rem 1.3rem; background: var(--qgf-pink); color: #fff; font-weight: 700; white-space: nowrap; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85); }
.qg-nl-button:hover { filter: brightness(1.08); }
.qg-nl-consent { display: flex; align-items: flex-start; gap: .5rem; margin: .65rem 0 0; font-size: .74rem; font-style: italic; line-height: 1.35; color: rgba(255, 255, 255, .9); }
.qg-nl-consent input { flex: none; margin-top: .15rem; width: 1rem; height: 1rem; }
.qg-nl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.qg-nl-say { min-height: 1.1rem; margin: .35rem 0 0; font-size: .8rem; font-weight: 600; color: #fff; }
.qg-nl-say.is-error { color: #ffd1de; }
.qg-nl-plane { width: 9rem; height: auto; align-self: start; }
/* columns */
.qg-fgrid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1.15fr; padding: 1rem 0 1.8rem; }
.qg-fgrid > * { min-width: 0; padding: 0 1.6rem; border-left: 1px solid var(--qgf-line); }
.qg-fgrid > :first-child { padding-left: 0; border-left: 0; }
.qg-fgrid > :last-child { padding-right: 0; }
.qg-flogo { display: block; width: 100%; max-width: 17rem; height: auto; }
.qg-fbrand p { margin: 1rem 0 1.2rem; font-size: 1.02rem; line-height: 1.5; color: #fff; }
.qg-fsocial { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.qg-fs { display: grid; place-items: center; width: 3rem; height: 3rem; overflow: hidden; border-radius: 50%; color: #fff !important; font-size: 1.3rem; box-shadow: 0 3px 10px rgba(0, 0, 0, .3); }
.qg-fs:hover { transform: translateY(-2px); }
.qg-fs-facebook { background: #1877f2; }
.qg-fs-instagram { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.qg-fs-tiktok { background: #000; }
.qg-fs-youtube { background: #f00; }
.qg-fs-pinterest { background: #e60023; }
.qg-fs.has-img { background: transparent; box-shadow: none; }
.qg-fs.has-img img { width: 100%; height: 100%; object-fit: contain; }
.qg-ftitle { display: flex; align-items: center; gap: .7rem; margin: 0 0 1rem; font-size: 1.05rem; font-weight: 700; color: #fff; list-style: none; cursor: default; }
.qg-ftitle::-webkit-details-marker { display: none; }
.qg-ftitle > i { width: 1.6rem; color: var(--qgf-pink); font-size: 1.35rem; text-align: center; }
.qg-fcol ul { margin: 0; padding: 0; list-style: none; }
.qg-fcol li { margin: 0 0 .6rem; font-size: .98rem; }
.qg-fshop li a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.qg-fshop li a i { font-size: .72rem; color: rgba(255, 255, 255, .55); }
.qg-fc-row { display: flex; align-items: center; gap: .8rem; margin: 0 0 .7rem; }
.qg-fc-row strong { display: block; font-size: .98rem; overflow-wrap: anywhere; }
.qg-fc-row small { display: block; font-size: .82rem; line-height: 1.3; color: var(--qgf-muted); }
.qg-fc-ico { flex: none; width: 1.8rem; font-size: 1.5rem; text-align: center; color: #fff; }
.qg-fc-wa { color: #25d366; font-size: 1.75rem; }
.qg-fperks { margin: 1rem 0 0 !important; padding-top: 1rem !important; border-top: 1px solid var(--qgf-line); }
.qg-fperks li { display: flex; align-items: center; gap: .8rem; margin-bottom: .75rem; }
.qg-fperks li > i { flex: none; width: 1.8rem; text-align: center; color: var(--qgf-pink); font-size: 1.45rem; }
.qg-fperks strong { display: block; font-size: .92rem; line-height: 1.25; }
.qg-fperks small { display: block; font-size: .8rem; font-style: italic; color: var(--qgf-muted); }
i.qg-flag-it { display: inline-block; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: linear-gradient(90deg, #009246 0 33.3%, #fff 33.3% 66.6%, #ce2b37 66.6%); box-shadow: 0 0 0 1px rgba(255, 255, 255, .3); }
/* trust strip */
.qg-ftrust { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); margin: 0 0 1.4rem; padding: 1.1rem 0; list-style: none; border: 1px solid var(--qgf-line); border-radius: 1.3rem; background: rgba(255, 255, 255, .05); }
.qg-ftrust li { display: flex; align-items: center; gap: .9rem; padding: 0 1.5rem; border-left: 1px solid var(--qgf-line); }
.qg-ftrust li:first-child { border-left: 0; }
.qg-ftrust li > i { flex: none; width: 2.6rem; text-align: center; color: var(--qgf-pink); font-size: 2rem; }
.qg-ftrust strong { display: block; font-size: 1.05rem; line-height: 1.25; }
.qg-ftrust small { display: block; font-size: .9rem; color: var(--qgf-muted); }
/* bottom line: copyright, legal links, payment logos */
.qg-fbottom-wrap { border-top: 1px solid var(--qgf-line); }
.qg-fbottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.6rem; padding-top: 1rem; padding-bottom: 1.2rem; font-size: .9rem; }
.qg-fleft { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; }
.qg-flegal { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.qg-flegal li + li::before { content: "|"; margin: 0 .9rem; color: rgba(255, 255, 255, .35); }
.qg-flegalnote { flex-basis: 100%; font-size: .78rem; color: var(--qgf-muted); }
.qg-fpay { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.qg-fpay > span:first-child { margin-right: .3rem; }
.qg-pay { display: inline-grid; place-items: center; width: 3.1rem; height: 2rem; overflow: hidden; border-radius: .4rem; background: #fff; color: #152331; font-size: 1.05rem; }
.qg-pay svg { display: block; width: 100%; height: 100%; }
.qg-pay-klarna svg { border-radius: .4rem; }
.qg-pay.is-off { filter: grayscale(1); opacity: .5; }
/* tablet and phone: columns in two, then one under another and closed (they open with a touch) */
@media (max-width: 991px) {
  .qg-nl { grid-template-columns: auto minmax(0, 1fr); padding: 1.2rem 1.3rem; }
  .qg-nl-form { grid-column: 1 / -1; }
  .qg-nl-plane { display: none; }
  .qg-fgrid { grid-template-columns: 1fr 1fr; gap: 1.8rem 0; }
  .qg-fgrid > * { padding: 0 1.2rem; }
  .qg-fgrid > :nth-child(odd) { padding-left: 0; border-left: 0; }
  .qg-fgrid > :nth-child(even) { padding-right: 0; }
  .qg-fgrid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .qg-nl { grid-template-columns: minmax(0, 1fr); text-align: left; }
  .qg-nl-envelope { width: 5.5rem; }
  .qg-nl-title { font-size: 1.7rem; }
  .qg-fgrid { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: .4rem; }
  .qg-fgrid > * { padding: 1.1rem 0; border-left: 0; border-top: 1px solid var(--qgf-line); }
  .qg-fgrid > :first-child { border-top: 0; padding-top: 0; }
  .qg-fgrid > :last-child:nth-child(odd) { grid-column: auto; }
  .qg-fcol > .qg-ftitle { margin: 0; cursor: pointer; }
  .qg-fcol[open] > .qg-ftitle { margin-bottom: .9rem; }
  details.qg-fcol > .qg-ftitle::after { content: "\f078"; margin-left: auto; font-family: "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900; font-size: .8rem; color: rgba(255, 255, 255, .6); transition: transform .2s; }
  details.qg-fcol[open] > .qg-ftitle::after { transform: rotate(180deg); }
  .qg-ftrust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 0; padding: 1rem 0; }
  .qg-ftrust li { min-width: 0; padding: 0 .8rem; gap: .6rem; }
  .qg-ftrust li > i { width: 1.8rem; font-size: 1.5rem; }
  .qg-ftrust strong { font-size: .95rem; }
  .qg-ftrust small { font-size: .8rem; }
  .qg-ftrust li:nth-child(odd) { border-left: 0; }
  .qg-fbottom { flex-direction: column; align-items: flex-start; }
  .qg-flegal { gap: .4rem 1.2rem; }
  .qg-flegal li + li::before { display: none; }
}
@media (prefers-reduced-motion: reduce) { .qg-fs:hover { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .qg-theme * { scroll-behavior: auto !important; transition: none !important; }
}

/* ---- Product page v2 (T2) ---- */
.qg-product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 19rem; gap: 1.75rem; align-items: start; margin-bottom: 2rem; }
@media (max-width: 1199.98px) {
  .qg-product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .qg-buy { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) { .qg-product { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; } }

/* Gallery: thumbnails, stage, video slide, dots (phones) */
.qg-gallery { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: .9rem; align-items: start; }
.qg-thumbs { display: flex; flex-direction: column; gap: .6rem; max-height: 34rem; overflow-y: auto; scrollbar-width: thin; }
.qg-thumb { position: relative; border: 2px solid var(--qg-border); border-radius: .6rem; padding: 2px; background: #fff; cursor: pointer; line-height: 0; overflow: hidden; }
.qg-thumb img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: .4rem; }
.qg-thumb.is-active, .qg-thumb:hover { border-color: var(--qg-pink); }
.qg-thumb-count { position: absolute; inset: 2px; display: flex; align-items: center; justify-content: center; background: rgba(21, 35, 49, .65); color: #fff; font-weight: 700; font-size: 1rem; border-radius: .4rem; line-height: 1; }
.qg-thumb-video { background: var(--qg-navy); min-height: 4.6rem; }
.qg-thumb-play { position: absolute; inset: 2px; display: flex; align-items: center; justify-content: center; background: rgba(21, 35, 49, .55); color: #fff; border-radius: .4rem; font-size: 1.1rem; line-height: 1; }
.qg-thumb-spin { background: #fff; }
.qg-thumb-badge { position: absolute; right: 4px; bottom: 4px; padding: .22rem .38rem; border-radius: 1rem; background: var(--qg-pink); color: #fff; font-size: .62rem; font-weight: 800; line-height: 1; }
.qg-thumb-label { position: absolute; left: 0; right: 0; bottom: 4px; text-align: center; color: #fff; font-size: .6rem; font-weight: 600; line-height: 1.1; text-shadow: 0 1px 2px rgba(0, 0, 0, .7); }
.qg-stage-wrap { position: relative; }
.qg-stage { position: relative; background: #fff; border: 1px solid var(--qg-border); border-radius: var(--qg-radius); overflow: hidden; }
.qg-slide { display: none; position: relative; aspect-ratio: 1 / 1; }
.qg-slide.is-active { display: block; }
.qg-slide img { display: block; width: 100%; height: 100%; object-fit: contain; cursor: zoom-in; }
.qg-slide-video { background: var(--qg-navy); }
.qg-slide-video img { cursor: default; opacity: .85; }
.qg-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 4.2rem; height: 4.2rem; border-radius: 50%; border: 0; background: rgba(21, 35, 49, .72); color: #fff; font-size: 1.5rem; display: flex; align-items: center; justify-content: center; }
.qg-play:hover, .qg-play:focus-visible { background: var(--qg-pink); }
.qg-slide-video.is-playing .qg-play, .qg-slide-video.is-playing > img, .qg-slide-video.is-playing .qg-expand { display: none; }
.qg-slide-spin img { cursor: default; }
.qg-spin-start { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .5rem; border: 0; border-radius: 2rem; padding: .55rem 1.1rem; background: var(--qg-pink); color: #fff; font-weight: 700; box-shadow: 0 .3rem 1rem rgba(21, 35, 49, .25); }
.qg-spin-start:hover, .qg-spin-start:focus-visible { background: var(--qg-pink-dark); }
.qg-slide-spin.is-spinning > img, .qg-slide-spin.is-spinning > .qg-spin-start { display: none; }
.qg-spin { position: absolute; inset: 0; background: #fff; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; outline-offset: -3px; }
.qg-spin.is-dragging { cursor: grabbing; }
.qg-spin img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; -webkit-user-drag: none; }
.qg-spin-progress { position: absolute; left: 15%; right: 15%; bottom: .9rem; height: .3rem; border-radius: .3rem; background: rgba(21, 35, 49, .15); overflow: hidden; }
.qg-spin-progress span { display: block; height: 100%; width: 0; background: var(--qg-pink); transition: width .15s; }
.qg-spin.is-ready .qg-spin-progress { display: none; }
.qg-spin-hint { position: absolute; left: 50%; top: .7rem; transform: translateX(-50%); margin: 0; padding: .25rem .8rem; border-radius: 2rem; background: rgba(21, 35, 49, .72); color: #fff; font-size: .78rem; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .2s; }
.qg-spin.is-ready .qg-spin-hint { opacity: 1; }
.qg-spin.is-dragging .qg-spin-hint { opacity: 0; }
.qg-spin-range { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.qg-viewer-panel-spin { grid-template-columns: minmax(0, 1fr); }
.qg-viewer-spin { position: relative; margin: 0 auto; border: 1px solid var(--qg-border); border-radius: .75rem; overflow: hidden; background: #fff; }
@media (prefers-reduced-motion: reduce) { .qg-spin-progress span, .qg-spin-hint { transition: none; } }
.qg-player { position: absolute; inset: 0; background: #000; }
.qg-player iframe, .qg-player video { display: block; width: 100%; height: 100%; border: 0; }
.qg-expand { position: absolute; top: .6rem; right: .6rem; z-index: 3; width: 2.3rem; height: 2.3rem; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--qg-navy); }
.qg-stage-nav { position: absolute; top: 45%; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid var(--qg-border); background: rgba(255, 255, 255, .92); color: var(--qg-navy); box-shadow: 0 .2rem .6rem rgba(21, 35, 49, .15); z-index: 2; }
.qg-stage-nav:hover { color: var(--qg-pink); }
.qg-stage-prev { left: .6rem; }
.qg-stage-next { right: .6rem; }
.qg-dots { display: none; }
.qg-zoom-hint { margin: .6rem 0 0; text-align: center; font-size: .85rem; color: var(--qg-muted); }
.qg-zoom-hint .qg-link-button { font-size: .85rem; }
@media (max-width: 575.98px) {
  .qg-gallery { grid-template-columns: minmax(0, 1fr); }
  .qg-thumbs { display: none; }
  .qg-stage-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .qg-stage-track::-webkit-scrollbar { display: none; }
  .qg-slide { display: block; flex: 0 0 100%; scroll-snap-align: center; }
  .qg-stage-nav { display: none; }
  .qg-dots { display: flex; justify-content: center; gap: .4rem; position: absolute; left: 0; right: 0; bottom: .6rem; pointer-events: none; }
  .qg-dot-item { width: .5rem; height: .5rem; border-radius: 50%; background: rgba(21, 35, 49, .3); }
  .qg-dot-item.is-active { background: var(--qg-pink); }
  .qg-zoom-hint { display: none; }
}

/* Media viewer (panel with the VIDEO and IMAGES tabs) */
body.qg-viewer-open { overflow: hidden; }
.qg-viewer { position: fixed; inset: 0; z-index: 1080; background: rgba(21, 35, 49, .62); display: flex; align-items: flex-start; justify-content: center; padding: 1rem; overflow: auto; }
.qg-viewer[hidden] { display: none; }
.qg-viewer-box { position: relative; background: #fff; border-radius: .75rem; width: min(1280px, 100%); min-height: min(40rem, calc(100vh - 2rem)); padding: 1rem 1.25rem 1.25rem; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .35); }
.qg-viewer-close { position: absolute; top: .6rem; right: .8rem; width: 2.4rem; height: 2.4rem; border: 0; background: none; font-size: 1.4rem; color: var(--qg-navy); z-index: 3; }
.qg-viewer-tabs { display: flex; gap: 1.5rem; border-bottom: 1px solid var(--qg-border); margin: 0 2.8rem .9rem 0; }
.qg-viewer-tab { background: none; border: 0; border-bottom: 3px solid transparent; padding: .55rem .1rem; font-weight: 700; letter-spacing: .02em; color: var(--qg-muted); font-size: .9rem; }
.qg-viewer-tab.is-active { color: var(--qg-navy); border-bottom-color: var(--qg-pink); }
.qg-viewer-panel { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1.5rem; }
.qg-viewer-panel[hidden] { display: none; }
.qg-viewer-player { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: .5rem; overflow: hidden; }
.qg-viewer-video-title { font-size: 1.1rem; font-weight: 700; margin: .8rem 0 .2rem; }
.qg-viewer-video-description { color: var(--qg-muted); font-size: .9rem; }
.qg-viewer-side { max-height: calc(100vh - 9rem); overflow-y: auto; padding-left: 1rem; border-left: 1px solid var(--qg-border); }
.qg-viewer-heading { font-size: .95rem; font-weight: 700; background: var(--qg-bg); padding: .55rem .75rem; margin: 0 0 .6rem; border-radius: .4rem; }
.qg-viewer-list { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1rem; }
.qg-viewer-item { display: flex; gap: .7rem; text-align: left; background: none; border: 2px solid transparent; border-radius: .5rem; padding: .3rem; }
.qg-viewer-item.is-active { border-color: var(--qg-pink); }
.qg-viewer-item-thumb { position: relative; flex: 0 0 7.5rem; aspect-ratio: 16 / 10; background: var(--qg-navy); border-radius: .4rem; overflow: hidden; display: block; }
.qg-viewer-item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qg-viewer-item-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; background: rgba(21, 35, 49, .35); }
.qg-viewer-item-text { display: flex; flex-direction: column; font-size: .8rem; line-height: 1.3; min-width: 0; }
.qg-viewer-item-text span { color: var(--qg-muted); }
.qg-viewer-image { position: relative; background: #fff; }
.qg-viewer-zoom { overflow: auto; max-height: calc(100vh - 10rem); text-align: center; }
.qg-viewer-zoom img { display: block; margin: 0 auto; max-width: none; height: auto; }
.qg-viewer-zoom-controls { position: absolute; top: .5rem; right: .5rem; display: flex; flex-direction: column; gap: .5rem; }
.qg-viewer-zoom-controls button { width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--qg-border); background: #fff; color: var(--qg-navy); }
.qg-viewer-zoom-controls button:disabled { opacity: .4; }
.qg-viewer-image-title { font-weight: 600; margin: 0 0 .8rem; }
.qg-viewer-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.qg-viewer-thumb { border: 2px solid var(--qg-border); border-radius: .4rem; background: #fff; padding: 2px; line-height: 0; }
.qg-viewer-thumb.is-active { border-color: var(--qg-pink); }
.qg-viewer-thumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
@media (max-width: 991.98px) { .qg-viewer-panel { grid-template-columns: minmax(0, 1fr); } .qg-viewer-side { max-height: none; border-left: 0; padding-left: 0; } }
@media (max-width: 575.98px) { .qg-viewer { padding: 0; } .qg-viewer-box { min-height: 100vh; border-radius: 0; padding: .75rem; } .qg-viewer-zoom { max-height: 60vh; } .qg-viewer-item-thumb { flex-basis: 6rem; } }

/* Centre */
.qg-center h1 { font-size: 1.65rem; font-weight: 800; line-height: 1.2; margin-bottom: .5rem; }
.qg-meta { margin: 0 0 .5rem; font-size: .8rem; color: var(--qg-muted); }
.qg-meta li { display: inline; margin-right: 1rem; }
.qg-center .rating p { margin-bottom: .5rem; }
.qg-center .rating .fa-star { color: var(--qg-star); }
.qg-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .75rem; margin: .25rem 0 .75rem; padding: 0; }
.qg-price-main .price-new { font-size: 1.75rem; font-weight: 800; color: var(--qg-navy); line-height: 1.1; }
/* .price-old also comes from the tier-price script, inside a plain <li>: style it wherever it is. */
.qg-price .price-old { text-decoration: line-through; color: var(--qg-muted); font-size: 1.1rem; font-weight: 500; }
.qg-iva, .qg-points { font-size: .85rem; color: var(--qg-muted); }
.qg-slot-delivery:empty { display: none; }
.qg-slot-delivery { margin: 1rem 0; }
.qg-slot-delivery > div > div { font-size: .85rem; }
.qg-discounts { margin-top: 1rem; font-size: .85rem; }
.qg-discounts .table { margin-bottom: 0; }

/* Buy box */
.qg-buy { border: 1px solid var(--qg-border); border-radius: var(--qg-radius); padding: 1.25rem; background: #fff; position: sticky; top: 1rem; box-shadow: 0 .25rem 1rem rgba(21, 35, 49, .05); }
@media (max-width: 1199.98px) { .qg-buy { position: static; } }
.qg-price-buy { margin-top: 0; }
.qg-price-buy .price-new { font-size: 1.6rem; }
.qg-stock { margin: .25rem 0; font-size: 1rem; }
.qg-dot { display: inline-block; width: .8rem; height: .8rem; border-radius: 50%; background: var(--qg-green); margin-right: .35rem; vertical-align: -.05rem; }
.qg-stock-on strong { color: var(--qg-green); }
.qg-stock-off .qg-dot { background: var(--qg-red); }
.qg-stock-off strong { color: var(--qg-red); }
.qg-eta { margin: 0 0 1rem; font-size: .95rem; }
.qg-eta-cutoff { margin: -.65rem 0 1rem; font-size: .9rem; font-weight: 600; color: var(--qg-green); }
.qg-eta-cutoff:empty { display: none; }
.qg-buy-form h3 { font-size: 1rem; }
.qg-buyqty { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.qg-qty-label { font-size: .95rem; font-weight: 700; color: var(--qg-navy); margin: 0; }
.qg-stepper { display: inline-flex; align-items: stretch; background: var(--qg-bg-soft); border-radius: .5rem; overflow: hidden; }
.qg-stepper button { width: 2.4rem; border: 0; background: transparent; color: var(--qg-navy); }
.qg-stepper button:hover { background: #e2e8ef; }
.qg-stepper input { width: 3.4rem; border: 0; background: #fff; text-align: center; border-radius: 0; font-weight: 600; box-shadow: none; }
.qg-buyqty .form-text { flex: 1 0 100%; }
.qg-cta { font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding: .8rem 1rem; }
.qg-buy-form .qg-cta + .btn { margin-top: .6rem; }
.qg-buy-links { display: flex; justify-content: center; gap: 1.2rem; margin: .9rem 0 0; }
.qg-link-button { background: none; border: 0; padding: 0; color: var(--qg-muted); font-size: .82rem; }
.qg-link-button:hover { color: var(--qg-pink); }
.qg-trust-mini { display: flex; justify-content: space-between; gap: .5rem; margin: 1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--qg-border); }
.qg-trust-mini li { display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center; font-size: .72rem; color: var(--qg-muted); flex: 1; }
.qg-trust-mini i { font-size: 1.15rem; color: var(--qg-navy); }

/* Tabs below */
.qg-theme .nav-tabs { background: #e9eff6; border: 0; border-radius: var(--qg-radius); padding: .4rem; gap: .3rem; margin-bottom: 1.25rem; }
.qg-theme .nav-tabs .nav-link { color: var(--qg-navy); font-weight: 800; font-size: 1rem; border: 0; border-radius: .55rem; padding: .7rem 1.4rem; margin: 0; background: transparent; }
.qg-theme .nav-tabs .nav-link:hover { background: rgba(21, 35, 49, .08); }
.qg-theme .nav-tabs .nav-link.active { color: #fff; background: var(--qg-navy); }

/* Trust strip under the product block (T3) */
.qg-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem 1.5rem; padding: 1.1rem 0; margin: 0 0 2rem; border-top: 1px solid var(--qg-border); border-bottom: 1px solid var(--qg-border); }
.qg-trust-item { display: flex; align-items: center; gap: .85rem; }
.qg-trust-item > i { font-size: 1.6rem; color: var(--qg-navy); flex: 0 0 2.2rem; text-align: center; }
.qg-trust-item > img { flex: 0 0 2.2rem; width: 2.2rem; height: 2.2rem; object-fit: contain; }
.qg-trust-item div { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.qg-trust-item strong { font-size: .9rem; color: var(--qg-navy); }
.qg-trust-item span { font-size: .82rem; color: var(--qg-muted); }

/* Rails: collections + related products (T5), carousels and the compact product card */
.qg-rails { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr)); gap: 2rem; margin: 0 0 2rem; }
.qg-rails:not(:has(.qg-rail)) { display: none; }
.qg-rail { min-width: 0; }
.qg-rail-title { font-size: 1.15rem; font-weight: 800; margin: 0 0 .9rem; padding-bottom: .5rem; border-bottom: 1px solid var(--qg-border); }
.qg-carousel { position: relative; }
.qg-carousel-track { display: flex; gap: .9rem; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: .25rem 0; }
.qg-carousel-track::-webkit-scrollbar { display: none; }
.qg-carousel-item { flex: 0 0 9.5rem; scroll-snap-align: start; min-width: 0; }
.qg-carousel-nav { position: absolute; top: 3.6rem; z-index: 2; width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 1px solid var(--qg-border); background: #fff; color: var(--qg-navy); box-shadow: 0 .2rem .6rem rgba(21, 35, 49, .15); }
.qg-carousel-nav:hover { color: var(--qg-pink); }
.qg-carousel-prev { left: -.6rem; }
.qg-carousel-next { right: -.6rem; }
.qg-carousel-nav[disabled] { opacity: 0; pointer-events: none; }
@media (max-width: 575.98px) { .qg-carousel-prev { left: .25rem; } .qg-carousel-next { right: .25rem; } }

/* Product card v2 (T4) */
.qg-card { display: flex; flex-direction: column; gap: .6rem; height: 100%; margin: 0; }
.qg-card-media { position: relative; }
.qg-card-image { display: block; background: var(--qg-bg); border-radius: .75rem; overflow: hidden; }
.qg-card-image img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.qg-card-badges { position: absolute; top: .5rem; right: .5rem; display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; pointer-events: none; }
.qg-badge { font-size: .68rem; font-weight: 700; padding: .2rem .55rem; border-radius: 2rem; color: #fff; line-height: 1.2; }
.qg-badge-personalizable { background: var(--qg-blue); }
.qg-badge-offer { background: var(--qg-pink); }
.qg-card-heart { position: absolute; top: .5rem; left: .5rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--qg-pink); box-shadow: 0 .15rem .4rem rgba(21, 35, 49, .15); }
.qg-card-heart:hover { background: var(--qg-pink); color: #fff; }
.qg-card-body { display: flex; flex-direction: column; gap: .25rem; flex: 1 1 auto; }
.qg-card-name { font-size: .9rem; font-weight: 600; line-height: 1.3; margin: 0; }
.qg-card-name a { color: var(--qg-navy); text-decoration: none; }
.qg-card-name a:hover { color: var(--qg-pink); }
.qg-card-rating { font-size: .75rem; color: var(--qg-star); }
.qg-card-reviews { color: var(--qg-muted); }
.qg-card-price { font-size: 1.05rem; font-weight: 800; color: var(--qg-navy); }
.qg-card-price s { font-weight: 400; font-size: .85rem; color: var(--qg-muted); margin-right: .3rem; }
.qg-card-avail { display: flex; align-items: center; gap: .4rem; margin: 0; font-size: .78rem; line-height: 1.2; }
.qg-card-avail.is-on { color: var(--qg-green); }
.qg-card-avail.is-off { color: var(--qg-red); }
.qg-card-avail .qg-dot { flex: 0 0 auto; width: .6rem; height: .6rem; margin: 0; vertical-align: baseline; }
.qg-card-avail.is-off .qg-dot { background: var(--qg-red); }
/* The name takes the free space: rating, price and availability always sit at the bottom, at the same height in every card of a row. */
.qg-card-name { flex: 1 1 auto; }
.qg-card-cta .btn { font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: .82rem; padding: .6rem .5rem; }
.qg-carousel .qg-card-cta, .qg-carousel .qg-card-avail, .qg-carousel .qg-card-heart { display: none; }
.qg-carousel .qg-card-name { font-size: .85rem; }
.qg-carousel .qg-card-price { font-size: .92rem; }

/* Category page (T4) */
.qg-cat-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; background: linear-gradient(135deg, #fde8ef, #eef4ff); border-radius: 1rem; padding: 1.5rem 1.75rem; margin-bottom: 1.25rem; }
.qg-cat-hero h1 { font-size: 1.9rem; font-weight: 800; margin: 0 0 .4rem; }
.qg-cat-desc { font-size: .95rem; color: var(--qg-muted); max-width: 46rem; }
.qg-cat-desc > :last-child { margin-bottom: 0; }
/* Text written in the editor: a "code" / "pre" style applied by mistake must not turn the description into small pink monospace text, and the font chosen in the editor must be followed. */
.qg-cat-desc code, .qg-cat-desc kbd, .qg-cat-desc samp, .qg-cat-desc pre { font: inherit; color: inherit; background: none; padding: 0; border: 0; white-space: normal; word-break: normal; }
.qg-cat-hero-img { max-height: 9rem; width: auto; border-radius: .75rem; }
@media (max-width: 575.98px) { .qg-cat-hero { padding: 1.1rem; } .qg-cat-hero h1 { font-size: 1.45rem; } .qg-cat-hero-img { display: none; } }
.qg-subcats ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; padding: 0; }
.qg-subcats a { display: inline-block; padding: .5rem 1rem; border: 1px solid var(--qg-border); border-radius: 2rem; background: #fff; color: var(--qg-navy); font-weight: 600; font-size: .88rem; text-decoration: none; }
.qg-subcats a:hover { border-color: var(--qg-pink); color: var(--qg-pink); }
.qg-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 1rem; }
.qg-count { margin: 0; font-size: .95rem; flex: 1 1 auto; }
.qg-compare { font-size: .85rem; color: var(--qg-muted); text-decoration: none; }
.qg-compare:hover { color: var(--qg-pink); }
.qg-toolbar-selects { display: flex; gap: .75rem; flex-wrap: wrap; }
.qg-select { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .85rem; }
.qg-select span { white-space: nowrap; color: var(--qg-muted); }
.qg-select .form-select { min-width: 9rem; }
.qg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 1.5rem 1.25rem; margin-bottom: 2rem; }
@media (max-width: 575.98px) { .qg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .75rem; } .qg-card-name { font-size: .82rem; } .qg-select .form-select { min-width: 7rem; } }
.qg-pager { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-bottom: 2rem; }
.qg-pagination .pagination { margin: 0; flex-wrap: wrap; justify-content: center; gap: .35rem; }
.qg-pagination .page-link { border-radius: .5rem !important; border: 1px solid var(--qg-border); color: var(--qg-navy); min-width: 2.4rem; text-align: center; }
.qg-pagination .page-link:hover { border-color: var(--qg-pink); color: var(--qg-pink); }
.qg-pagination .page-item.active .page-link { background: var(--qg-pink); border-color: var(--qg-pink); color: #fff; }
.qg-results { margin: 0; color: var(--qg-muted); font-size: .85rem; }
@media (max-width: 575.98px) { .qg-subcats ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding-bottom: .4rem; } .qg-subcats li { flex: 0 0 auto; } }

/* ---- Phones and tablets (T7): app-like product page ---- */
.qg-sticky-buy { display: none; }
.qg-more { display: none; }
@media (max-width: 991.98px) {
  html { -webkit-text-size-adjust: 100%; }
  .qg-theme { -webkit-tap-highlight-color: transparent; }
  .qg-theme button, .qg-theme a, .qg-theme input, .qg-theme select, .qg-theme label { touch-action: manipulation; }
  .qg-theme .btn:active, .qg-cta:active, .qg-sticky-cta:active, .qg-thumb:active, .qg-card:active, .qg-stepper button:active { transform: scale(.97); }
  /* Bar fixed at the bottom: price and the main button, always within reach. */
  .qg-sticky-buy { display: flex; align-items: center; gap: .9rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--qg-border); box-shadow: 0 -.5rem 1.25rem rgba(21, 35, 49, .12); transform: translateY(115%); transition: transform .2s ease; }
  .qg-sticky-buy.is-visible { transform: none; }
  .qg-sticky-price { display: flex; flex-direction: column; line-height: 1.1; flex: 0 0 auto; }
  .qg-sticky-price .price-new { font-size: 1.3rem; font-weight: 800; color: var(--qg-navy); }
  .qg-sticky-price small { font-size: .7rem; color: var(--qg-muted); }
  .qg-sticky-cta { flex: 1 1 auto; min-height: 3.1rem; border: 0; border-radius: .7rem; background: var(--qg-yellow); color: var(--qg-navy); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 1rem; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 1rem; }
  .qg-sticky-cta:disabled { background: #d5dbe1; color: var(--qg-muted); }
  body.qg-has-sticky { padding-bottom: calc(4.6rem + env(safe-area-inset-bottom)); }
  body.qg-viewer-open .qg-sticky-buy, body.modal-open .qg-sticky-buy { display: none; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  /* Tablet: photos on one side, details and purchase on the other. */
  .qg-product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .qg-gallery { grid-column: 1; grid-row: 1 / span 2; position: sticky; top: 1rem; }
  .qg-center { grid-column: 2; grid-row: 1; }
  .qg-buy { grid-column: 2; grid-row: 2; }
}
@media (max-width: 767.98px) {
  .qg-theme { font-size: 15px; }
  .qg-theme input, .qg-theme select, .qg-theme textarea, .qg-theme .form-control, .qg-theme .form-select { font-size: 16px; }   /* below 16px iOS zooms the page on focus */
  .qg-theme .btn { min-height: 2.8rem; }
  .qg-action { min-width: 2.75rem; min-height: 2.75rem; justify-content: center; }
  .qg-ico { width: 1.9rem; height: 1.9rem; }
  .qg-actions { gap: .25rem; }
  .qg-burger { min-width: 2.75rem; min-height: 2.75rem; }
  .qg-theme .breadcrumb { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; margin-bottom: .75rem; }
  .qg-theme .breadcrumb::-webkit-scrollbar { display: none; }
  .qg-theme .breadcrumb a { display: inline-block; padding: .7rem .15rem; }
  /* Order: photos, title, price, choices, quantity prices, purchase, then bullet points and delivery details. */
  .qg-product { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin-bottom: 1rem; }
  .qg-center { display: contents; }
  .qg-product > *, .qg-center > * { min-width: 0; max-width: 100%; }
  .qg-gallery { order: 1; margin-bottom: .9rem; }
  .qg-center > * { order: 2; }
  .qg-center .qg-discounts { order: 3; margin: 0 0 1rem; }
  .qg-buy { order: 4; margin-bottom: 1rem; padding: 1rem; }
  .qg-center .qgbl-list { order: 5; margin-bottom: 1rem; }
  .qg-center .qg-slot-delivery { order: 6; margin: 0 0 1rem; }
  .qg-center h1 { font-size: 1.35rem; }
  .qg-price-main .price-new { font-size: 1.7rem; }
  .qg-price .price-old { font-size: 1.1rem; }
  .qg-price-buy { display: none; }   /* the price is already right under the title */
  .qg-buy-form .qg-buyqty { margin-bottom: 1rem; }
  .qg-stepper button { width: 3.1rem; height: 3.1rem; font-size: 1rem; }
  .qg-stepper input { width: 3.6rem; height: 3.1rem; text-align: center; }
  .qg-cta { min-height: 3.4rem; font-size: 1.1rem; border-radius: .75rem; }
  .qg-buy-links { display: flex; gap: .5rem; margin-top: .6rem; }
  .qg-buy-links .qg-link-button { flex: 1 1 0; min-height: 2.75rem; justify-content: center; }
  .qg-trust-mini { display: none; }
  .qg-link-button { min-height: 2.75rem; }
  /* Strip with the delivery/payment promises: swipe sideways instead of a tall stack. */
  .qg-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .75rem; padding: 1rem 0; margin-bottom: 1.25rem; }
  .qg-trust-item { align-items: flex-start; gap: .55rem; }
  .qg-trust-item > i { flex-basis: 1.7rem; font-size: 1.3rem; }
  .qg-trust-item > img { flex-basis: 1.7rem; width: 1.7rem; height: 1.7rem; }
  .qg-trust-item strong { font-size: .85rem; }
  .qg-trust-item span { font-size: .75rem; }
  /* Related products: two comfortable cards, a third one peeking to show that the row scrolls. */
  .qg-carousel-item { flex-basis: 46%; }
  .qg-carousel .qg-card-name { font-size: .9rem; }
  .qg-carousel .qg-card-price { font-size: 1rem; }
  .qg-carousel-nav { display: none; }
  .qg-discounts .table { width: 100%; }
  /* Tabs: one scrollable row of large targets. */
  .qg-theme .nav-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .qg-theme .nav-tabs::-webkit-scrollbar { display: none; }
  .qg-theme .nav-tabs .nav-link { white-space: nowrap; padding: .85rem 1.1rem; }
  /* Long description: a few lines and "Read more". */
  #tab-description.qg-clamped { position: relative; max-height: 17rem; overflow: hidden; }
  #tab-description .qg-more { display: block; width: 100%; border: 0; background: #fff; color: var(--qg-blue); font-weight: 700; padding: .9rem 0; min-height: 2.75rem; }
  #tab-description.qg-clamped .qg-more { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(rgba(255, 255, 255, 0), #fff 55%); padding-top: 2.6rem; }
}

/* ---- "Personalizza" window (F2): preview on the left, fields on the right, price / quantity / buttons in the footer ---- */
#qgpf-modal .modal-dialog { max-width: 62rem; }
#qgpf-modal.qgpf-nopreview .modal-dialog { max-width: 40rem; }
#qgpf-modal .modal-content { border: 0; border-radius: 1rem; overflow: hidden; }
#qgpf-modal .modal-header { align-items: flex-start; padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--qg-border); }
#qgpf-modal .modal-title { font-size: 1.45rem; font-weight: 800; color: var(--qg-navy); }
.qgpf-sub { margin: .15rem 0 0; font-size: .92rem; color: var(--qg-muted); }
#qgpf-modal .modal-body { padding: 1.25rem 1.5rem; background: #fff; }
.qgpf-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.5rem; align-items: start; }
.qgpf-nopreview .qgpf-grid { grid-template-columns: minmax(0, 1fr); }
.qgpf-nopreview .qgpf-preview { display: none; }
.qgpf-preview { position: sticky; top: 0; padding: 1rem; border-radius: var(--qg-radius); background: var(--qg-bg-soft); }
.qgpf-preview-title { display: block; margin-bottom: .6rem; font-size: 1.05rem; color: var(--qg-navy); }
.qgpf-frame { display: grid; place-items: center; padding: .5rem; border-radius: .6rem; background: #fff; }
.qgpf-frame img { display: block; max-width: 100%; max-height: 26rem; width: auto; height: auto; object-fit: contain; }
.qgpf-note { margin: .7rem 0 0; font-size: .78rem; color: var(--qg-muted); }
.qgpf-fields-title { margin: 0 0 .9rem; font-size: 1.1rem; font-weight: 800; color: var(--qg-navy); }
.qgpf-fields .mb-3 { margin-bottom: 1.1rem !important; }
.qgpf-text > .form-label { display: block; margin-bottom: .3rem; font-weight: 700; }
.qgpf-count { float: right; font-size: .78rem; font-weight: 400; color: var(--qg-muted); }
.qgpf-choice > .form-label { display: block; margin-bottom: .6rem; font-size: 1.05rem; font-weight: 800; color: var(--qg-navy); }
.qgpf-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.qgpf-choices .form-check { position: relative; min-height: 0; margin: 0; padding: 0; }
.qgpf-choices .form-check-input { position: absolute; left: 1rem; top: 50%; float: none; margin: 0; transform: translateY(-50%); }
.qgpf-choices .form-check-label { display: flex; align-items: center; width: 100%; min-height: 3.1rem; padding: .7rem .9rem .7rem 2.9rem; border: 2px solid var(--qg-border); border-radius: .6rem; background: #fff; font-weight: 600; line-height: 1.2; cursor: pointer; }
.qgpf-choices .form-check-label:hover { border-color: #c4cfda; }
.qgpf-choices .form-check-input:checked + .form-check-label { border-color: var(--qg-pink); background: #fff0f5; }
.qgpf-choices .form-check-input:checked { background-color: var(--qg-pink); border-color: var(--qg-pink); }
.qgpf-choices .form-check-input:focus-visible + .form-check-label { outline: 3px solid rgba(2, 90, 178, .45); outline-offset: 2px; }
.qgpf-choices .form-check-input.is-invalid + .form-check-label { border-color: var(--qg-red); }
.qgpf-confirm { display: flex; align-items: center; flex-wrap: wrap; gap: .1rem .6rem; margin: 1.2rem 0 0; padding: .8rem 1rem; border-radius: .6rem; background: var(--qg-bg-soft); }
.qgpf-confirm .form-check-input { float: none; flex: 0 0 auto; width: 1.35rem; height: 1.35rem; margin: 0; }
.qgpf-confirm .form-check-label { flex: 1 1 12rem; font-weight: 600; }
.qgpf-confirm .invalid-feedback { flex: 1 0 100%; margin: 0; }
.qgpf-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.5rem; padding: 1rem 1.5rem; border-top: 1px solid var(--qg-border); background: #fff; }
.qgpf-footer > * { margin: 0; }
.qgpf-total { display: flex; flex-direction: column; min-width: 0; margin-right: auto !important; line-height: 1.15; }
.qgpf-total .price-new { font-size: 1.9rem; font-weight: 800; color: var(--qg-navy); }
.qgpf-meta { font-size: .82rem; color: var(--qg-muted); }
.qgpf-meta:empty { display: none; }
.qgpf-qty { display: flex; align-items: center; gap: .6rem; }
.qgpf-qty-label { margin: 0; font-size: .85rem; color: var(--qg-muted); }
.qgpf-stepper { display: flex; overflow: hidden; border: 1px solid var(--qg-border); border-radius: .6rem; }
.qgpf-stepper button { width: 2.6rem; border: 0; background: var(--qg-bg-soft); color: var(--qg-navy); font-size: 1.1rem; font-weight: 700; }
.qgpf-stepper button:hover { background: #e6ecf2; }
.qgpf-stepper input { width: 3.2rem; border: 0; border-radius: 0; text-align: center; font-weight: 700; box-shadow: none; }
.qgpf-actions { display: flex; gap: .6rem; }
.qgpf-add { display: inline-flex; align-items: center; gap: .5rem; min-height: 3rem; padding: 0 1.6rem; border-color: var(--qg-yellow); background: var(--qg-yellow); color: var(--qg-navy); font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.qgpf-add:hover, .qgpf-add:focus-visible { border-color: var(--qg-yellow-dark); background: var(--qg-yellow-dark); color: var(--qg-navy); }
.qgpf-cancel { min-height: 3rem; }
@media (max-width: 767.98px) {
  /* On phones the window is a sheet that slides up from the bottom, like an app. */
  #qgpf-modal .modal-dialog, #qgpf-modal.qgpf-nopreview .modal-dialog { display: block; position: fixed; left: 0; right: 0; bottom: 0; margin: 0; width: auto; max-width: none; height: auto; min-height: 0; max-height: 94vh; transform: none !important; }
  #qgpf-modal .modal-content { border-radius: 1rem 1rem 0 0; max-height: 94vh; padding-bottom: env(safe-area-inset-bottom); }
  #qgpf-modal .modal-header { padding: .8rem 1rem; }
  #qgpf-modal .modal-title { font-size: 1.2rem; }
  #qgpf-modal .modal-body { padding: 1rem; overflow-y: auto; }
  .qgpf-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .qgpf-preview { position: static; padding: .5rem; }
  .qgpf-preview-title, .qgpf-note { display: none; }
  .qgpf-sub, .qgpf-qty-label { display: none; }
  .qgpf-frame { padding: .25rem; }
  .qgpf-frame img { max-height: 8rem; }
  .qgpf-footer { padding: .7rem 1rem; gap: .5rem 1rem; }
  .qgpf-total { flex: 1 1 0; }
  .qgpf-total .price-new { font-size: 1.6rem; }
  .qgpf-actions { flex: 1 1 100%; }
  .qgpf-add { flex: 1 1 auto; justify-content: center; min-height: 3.2rem; }
  .qgpf-cancel { min-height: 3.2rem; }
  .qgpf-stepper button { width: 3rem; height: 3rem; }
  .qgpf-stepper input { height: 3rem; }
}
@media (max-width: 479.98px) { .qgpf-choices { grid-template-columns: minmax(0, 1fr); } }

/* Short description under the title (from quickgadget_shortdesc) */
.qg-short { margin: 0 0 .75rem; font-size: 1rem; line-height: 1.45; color: var(--qg-text); }

/* ---- Category pages (C1): banner and subcategory tiles, data from quickgadget_catpage ---- */
.qg-banner { position: relative; border-radius: var(--qg-radius); overflow: hidden; margin-bottom: 1.25rem; background: linear-gradient(120deg, #fde7ee, #e9f1fb); }
.qg-banner picture, .qg-banner img { display: block; width: 100%; height: auto; }
/* Banner with a target but no button: the whole banner is the link. */
.qg-banner-cover { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.qg-banner-cover:hover { background: rgba(255, 255, 255, .06); }
.qg-banner-cover:focus-visible { outline: 3px solid var(--qg-blue); outline-offset: -3px; }
.qg-banner-text { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .6rem; padding: 1.5rem 3rem; max-width: 56%; }
.qg-banner-text h1 { margin: 0; font-size: clamp(1.6rem, 3.6vw, 3rem); font-weight: 800; line-height: 1.05; }
.qg-banner-text p { margin: 0; font-size: clamp(.95rem, 1.5vw, 1.2rem); line-height: 1.35; }
.qg-banner-dark .qg-banner-text { color: var(--qg-navy); }
.qg-banner-light .qg-banner-text { color: #fff; text-shadow: 0 .1rem .6rem rgba(0, 0, 0, .45); }
.qg-banner-btn { display: inline-flex; align-items: center; gap: .6rem; margin-top: .4rem; padding: .8rem 1.4rem; border-radius: .5rem; background: var(--qg-pink); color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; text-decoration: none; text-shadow: none; }
.qg-banner-btn:hover, .qg-banner-btn:focus-visible { background: var(--qg-pink-dark); color: #fff; }
.qg-banner-plain .qg-banner-text { position: static; max-width: none; padding: 2rem 2.5rem; }
.qg-cat-intro { margin: 0 0 1.5rem; max-width: none; font-size: 1.02rem; line-height: 1.6; color: var(--qg-text); }
.qg-cat-intro p { margin: 0 0 .6rem; }
.qg-hub-title { font-size: 1.4rem; font-weight: 800; margin: 0 0 1rem; }
.qg-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.1rem; margin: 0 0 2rem; padding: 0; }
.qg-tile { display: flex; flex-direction: column; height: 100%; border-radius: var(--qg-radius); overflow: hidden; background: var(--qg-tile, #e9eff6); color: var(--qg-navy); text-decoration: none; box-shadow: 0 .2rem .8rem rgba(21, 35, 49, .08); transition: transform .15s ease, box-shadow .15s ease; }
.qg-tile:hover, .qg-tile:focus-visible { transform: translateY(-3px); box-shadow: 0 .5rem 1.2rem rgba(21, 35, 49, .15); color: var(--qg-navy); }
.qg-tile-art { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; padding: .8rem .8rem 0; }
.qg-tile-art img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.qg-tile-label { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 1rem; background: rgba(255, 255, 255, .66); font-weight: 700; line-height: 1.2; margin-top: auto; }
.qg-tile-label i { flex: 0 0 auto; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; border: 2px solid currentColor; font-size: .75rem; }
@media (max-width: 575.98px) {
  .qg-banner-text { position: static; max-width: none; padding: 1rem 1.1rem 1.2rem; background: #fff; color: var(--qg-navy) !important; text-shadow: none !important; }
  .qg-banner-plain .qg-banner-text { background: transparent; }
  .qg-banner-btn { width: 100%; justify-content: center; min-height: 3rem; }
  .qg-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .qg-tile-label { padding: .6rem .7rem; font-size: .88rem; }
  .qg-tile-label i { width: 1.6rem; height: 1.6rem; }
}
.qg-hub-random { margin: 0 0 2rem; }
.qg-hub-random .qg-carousel-item { flex-basis: 12rem; }
@media (max-width: 767.98px) { .qg-hub-random .qg-carousel-item { flex-basis: 46%; } }
/* Random products grid: products per row chosen per device in the category page settings (custom properties on the section).
   .qg-dense-* = many per row: smaller texts. */
.qg-hub-random .qg-grid { gap: .9rem .6rem; grid-template-columns: repeat(var(--qg-cp, 2), minmax(0, 1fr)); }
@media (min-width: 768px) { .qg-hub-random .qg-grid { grid-template-columns: repeat(var(--qg-ct, 4), minmax(0, 1fr)); } }
@media (min-width: 1200px) { .qg-hub-random .qg-grid { grid-template-columns: repeat(var(--qg-cd, 8), minmax(0, 1fr)); } }
.qg-hide-titles .qg-card-name { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.qg-hide-rating .qg-card-rating { display: none; }
@media (min-width: 1200px) {
  .qg-dense-d .qg-card-name { font-size: .78rem; }
  .qg-dense-d .qg-card-price { font-size: .9rem; }
  .qg-hub-random.qg-dense-d .qg-card-cta .btn { font-size: .62rem; padding: .35rem .2rem; letter-spacing: 0; }
  .qg-dense-d .qg-card-cta .fa-solid { display: none; }
  .qg-dense-d .qg-card-avail, .qg-dense-d .qg-card-rating { font-size: .68rem; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .qg-dense-t .qg-card-name { font-size: .78rem; }
  .qg-dense-t .qg-card-price { font-size: .9rem; }
  .qg-hub-random.qg-dense-t .qg-card-cta .btn { font-size: .62rem; padding: .35rem .2rem; letter-spacing: 0; }
  .qg-dense-t .qg-card-cta .fa-solid { display: none; }
  .qg-dense-t .qg-card-avail, .qg-dense-t .qg-card-rating { font-size: .68rem; }
}
@media (max-width: 767.98px) {
  .qg-dense-p .qg-card-name { font-size: .72rem; }
  .qg-dense-p .qg-card-price { font-size: .85rem; }
  .qg-hub-random.qg-dense-p .qg-card-cta .btn { font-size: .58rem; padding: .3rem .15rem; letter-spacing: 0; }
  .qg-dense-p .qg-card-cta .fa-solid { display: none; }
  .qg-dense-p .qg-card-avail, .qg-dense-p .qg-card-rating { font-size: .62rem; }
}

/* Random products block (slide and grid): bordered card with rounded corners, everything shown (also in the slide) and a small button. */
.qg-hub-random .qg-card { padding: .65rem; border: 1px solid var(--qg-border); border-radius: 1rem; background: #fff; box-shadow: 0 .15rem .6rem rgba(21, 35, 49, .06); }
.qg-hub-random .qg-card-image { background: #fff; }
.qg-hub-random .qg-carousel .qg-card-cta, .qg-hub-random .qg-carousel .qg-card-avail { display: block; }
.qg-hub-random .qg-carousel .qg-card-heart { display: inline-flex; align-items: center; justify-content: center; }
.qg-hub-random .qg-carousel-track { padding: .4rem .3rem .7rem; }
.qg-hub-random .qg-card-cta .btn { font-size: .74rem; padding: .42rem .5rem; border-radius: .5rem; line-height: 1.2; }
.qg-hub-random .qg-card-cta .btn { letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qg-hub-random .qg-card-cta .btn .fa-solid { display: none; }

/* ---- Category filters (C2): column on computers, sheet from the bottom on tablets and phones ---- */
.qg-filters-open, .qg-filters-close { display: none; }
.qg-listing-main { min-width: 0; }
.qg-filters-form { display: flex; flex-direction: column; gap: 1rem; }
.qg-filters-head { display: flex; align-items: center; gap: .75rem; }
.qg-filters-head strong { font-size: 1.15rem; font-weight: 800; }
.qg-filters-clear { margin-left: auto; font-size: .85rem; color: var(--qg-blue); }
.qg-filter { border: 0; padding: 0 0 1rem; margin: 0; border-bottom: 1px solid var(--qg-border); min-width: 0; }
.qg-filter legend { float: none; width: auto; padding: 0; margin: 0 0 .6rem; font-size: .95rem; font-weight: 700; }
.qg-filter-range { display: flex; gap: .6rem; }
.qg-filter-range label { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: .2rem; position: relative; font-size: .78rem; color: var(--qg-muted); }
.qg-filter-range input { width: 100%; padding: .55rem 1.6rem .55rem .6rem; border: 1px solid var(--qg-border); border-radius: .5rem; font-size: 1rem; color: var(--qg-text); }
.qg-filter-range em { position: absolute; right: .55rem; bottom: .6rem; font-style: normal; color: var(--qg-muted); pointer-events: none; }
.qg-filter-option { display: flex; align-items: center; gap: .55rem; margin: 0 0 .45rem; font-size: .92rem; cursor: pointer; min-height: 1.9rem; }
.qg-filter-option input { width: 1.1rem; height: 1.1rem; accent-color: var(--qg-pink); flex: 0 0 auto; }
.qg-filter-option small { margin-left: auto; color: var(--qg-muted); }
.qg-swatch { display: inline-block; flex: 0 0 auto; width: 1.15rem; height: 1.15rem; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .28); }
.qg-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; }
.qg-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .8rem; border-radius: 2rem; background: #e9eff6; color: var(--qg-navy); font-size: .85rem; font-weight: 600; text-decoration: none; }
.qg-chip:hover { background: var(--qg-navy); color: #fff; }
.qg-no-results { padding: 2rem 0; font-size: 1.05rem; }
.qg-empty { max-width: 640px; margin: 1.5rem auto 3rem; padding: 2.5rem 1.5rem; text-align: center; border: 1px solid var(--qg-border); border-radius: 1rem; background: linear-gradient(135deg, #fff1f5 0%, #f1f5ff 100%); }
.qg-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 4.25rem; height: 4.25rem; margin-bottom: 1rem; border-radius: 50%; background: #fff; color: var(--qg-pink); font-size: 1.75rem; box-shadow: 0 6px 18px rgba(21, 35, 49, .08); }
.qg-empty h2 { margin: 0 0 .5rem; font-size: 1.45rem; font-weight: 800; color: var(--qg-navy); }
.qg-empty p { margin: 0 auto 1.5rem; max-width: 30rem; color: var(--qg-muted); }
.qg-empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
@media (min-width: 992px) {
  .qg-has-filters { display: grid; grid-template-columns: 16.5rem minmax(0, 1fr); gap: 1.75rem; align-items: start; }
  .qg-filters { position: sticky; top: 1rem; border: 1px solid var(--qg-border); border-radius: var(--qg-radius); padding: 1.1rem; background: #fff; }
  .qg-filters-apply { display: none; }
  .qg-filters .qg-filter:last-of-type { border-bottom: 0; padding-bottom: 0; }
}
@media (max-width: 991.98px) {
  .qg-filters-open { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1rem; padding: .65rem 1.1rem; min-height: 2.9rem; border: 1px solid var(--qg-border); border-radius: 2rem; background: #fff; color: var(--qg-navy); font-weight: 700; }
  .qg-filters-badge { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding: 0 .35rem; border-radius: 1rem; background: var(--qg-pink); color: #fff; font-size: .75rem; }
  .qg-filters { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1090; max-height: 88vh; overflow-y: auto; background: #fff; border-radius: 1rem 1rem 0 0; padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom)); box-shadow: 0 -.5rem 2rem rgba(21, 35, 49, .3); transform: translateY(105%); visibility: hidden; transition: transform .22s ease, visibility 0s .22s; }
  .qg-filters.is-open { transform: none; visibility: visible; transition: transform .22s ease; }
  .qg-filters-close { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 0; background: none; font-size: 1.3rem; color: var(--qg-navy); }
  .qg-filters-clear { margin-left: auto; }
  .qg-filters-apply { position: sticky; bottom: 0; min-height: 3.2rem; font-weight: 700; }
  .qg-filters-backdrop { position: fixed; inset: 0; z-index: 1085; background: rgba(21, 35, 49, .5); }
  body.qg-filters-shown { overflow: hidden; }
}
.qg-filter-option.is-empty { opacity: .5; }

/* Random products block: every card has the same layout. The title takes two lines at most (ellipsis), so price and availability
   always sit on the same line across the row; they are pinned to the bottom of the text area, just above the button. */
.qg-hub-random .qg-card-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.3em); }
.qg-hub-random.qg-hide-titles .qg-card-name { display: block; min-height: 0; }
.qg-hub-random .qg-card-price { margin-top: auto; }

/* Strip of promises under the category banner (colours chosen in the category page settings) */
.qg-strip { background: var(--qg-strip-bg, #eef3fa); border-radius: 1rem; padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.qg-strip-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: 1rem 0; margin: 0; padding: 0; }
.qg-strip-item { display: flex; align-items: center; gap: .85rem; padding: 0 1.25rem; min-width: 0; }
.qg-strip-item:first-child { padding-left: 0; }
.qg-strip-item + .qg-strip-item { border-left: 1px solid rgba(21, 35, 49, .13); }
.qg-strip-item > i { flex: 0 0 auto; font-size: 1.9rem; width: 2.2rem; text-align: center; }
.qg-strip-item div { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.qg-strip-item strong { font-size: .95rem; color: var(--qg-navy); }
.qg-strip-item span { font-size: .82rem; color: var(--qg-muted); }
@media (max-width: 767.98px) {
  .qg-strip { padding: .9rem; }
  .qg-strip-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .75rem; }
  .qg-strip-item, .qg-strip-item:first-child { padding: 0; border-left: 0; align-items: flex-start; gap: .55rem; }
  .qg-strip-item + .qg-strip-item { border-left: 0; }
  .qg-strip-item > i { font-size: 1.4rem; width: 1.7rem; }
  .qg-strip-item strong { font-size: .85rem; }
  .qg-strip-item span { font-size: .75rem; }
}

/* Tag groups of the filters (C3): row of logos above the products, list in the filter column */
.qg-filter-scroll { max-height: 16rem; overflow-y: auto; padding-right: .25rem; }
.qg-teams { margin: 0 0 1.25rem; overflow-x: auto; scrollbar-width: thin; }
.qg-teams-list { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: max-content; gap: .6rem; margin: 0; padding: 0 0 .35rem; }
.qg-teams-list li { display: flex; scroll-snap-align: start; }
.qg-team { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; width: 100%; min-width: 5.6rem; min-height: 5.6rem; padding: .3rem .6rem .4rem; border: 1px solid var(--qg-border); border-radius: .8rem; background: #fff; color: var(--qg-navy); text-decoration: none; text-align: center; transition: border-color .15s, box-shadow .15s; }
.qg-team:hover, .qg-team:focus-visible { border-color: var(--qg-pink); color: var(--qg-navy); box-shadow: 0 .2rem .7rem rgba(21, 35, 49, .1); }
.qg-team.is-active { background: var(--qg-navy); border-color: var(--qg-navy); color: #fff; }
.qg-team-logo { display: grid; place-items: center; width: 4rem; height: 4rem; font-size: 1.9rem; }
.qg-team-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.qg-team-logo b { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: #e9eff6; color: var(--qg-navy); font-size: 1.1rem; }
.qg-team-name { max-width: 12rem; font-size: .78rem; font-weight: 600; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 575.98px) { .qg-team { min-width: 4.9rem; min-height: 5rem; padding-inline: .45rem; } .qg-team-logo { width: 3.3rem; height: 3.3rem; } }

/* Tile pictures fill the whole top of the tile (shape chosen in the category page settings) */
.qg-tile-art { padding: 0; aspect-ratio: var(--qg-tile-ratio, 1.85); }
.qg-tile-art img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; display: block; }

/* Promo banners under the products of a tiles page: coloured cards, icon + title + sentence, small picture on the side */
.qg-promos { margin: 0 0 2rem; }
/* Room between the random products and the promo banners (the cards' shadows end there) */
.qg-hub-random + .qg-promos { margin-top: 3rem; }
.qg-promo { min-height: 9rem; padding-top: .8rem; padding-bottom: .8rem; }
.qg-promos-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; margin: 0; padding: 0; }
.qg-promo { display: flex; align-items: center; justify-content: space-between; gap: .75rem; height: 100%; padding: 1rem 1.1rem; border-radius: 1.1rem; background: var(--promo-bg, #fde7ee); color: var(--qg-navy); text-decoration: none; box-shadow: 0 .15rem .6rem rgba(21, 35, 49, .05); }
a.qg-promo { transition: transform .15s ease, box-shadow .15s ease; }
a.qg-promo:hover, a.qg-promo:focus-visible { transform: translateY(-2px); box-shadow: 0 .4rem 1rem rgba(21, 35, 49, .12); color: var(--qg-navy); }
.qg-promo-main { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.qg-promo-head { display: flex; align-items: center; gap: .8rem; }
.qg-promo-head > i { flex: 0 0 auto; font-size: 2.1rem; color: var(--promo-accent, #ef1e60); width: 2.4rem; text-align: center; }
.qg-promo-title { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.qg-promo-title strong { font-size: 1.25rem; font-weight: 800; color: var(--promo-accent, #ef1e60); }
.qg-promo-title span { font-size: 1.05rem; font-weight: 700; color: var(--qg-navy); }
.qg-promo-text { font-size: .8rem; line-height: 1.3; color: var(--qg-muted); }
.qg-promo-img { flex: 0 0 auto; width: auto; height: auto; max-width: 10.5rem; max-height: 8rem; object-fit: contain; }
@media (max-width: 575.98px) { .qg-promos-list { grid-template-columns: minmax(0, 1fr); } .qg-promo-img { max-width: 7.5rem; max-height: 6.5rem; } }

/* Mega menu with a featured card, shortcuts and pictures (data from quickgadget_megamenu) */
.qg-mega-rich { width: min(1320px, 96vw); padding: 1.25rem; }
.qg-mega-layout { display: grid; grid-template-columns: 19.5rem minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.qg-mega-side { display: flex; flex-direction: column; gap: .6rem; }
.qg-mega-feature { position: relative; display: flex; align-items: center; min-height: 11rem; padding: 1.1rem; border-radius: 1rem; background: var(--mm-bg, #fde7ee); color: var(--qg-navy); text-decoration: none; overflow: hidden; }
.qg-mega-feature-img { position: absolute; right: 0; bottom: 0; top: 0; width: 52%; height: 100%; object-fit: cover; object-position: left center; }
.qg-mega-feature-text { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; max-width: 62%; }
.qg-mega-feature-text > i { font-size: 1.3rem; color: var(--mm-accent, #ef1e60); }
.qg-mega-feature-text strong { font-size: 1.25rem; font-weight: 800; line-height: 1.1; }
.qg-mega-feature-sentence { font-size: .8rem; line-height: 1.3; color: var(--qg-text); }
.qg-mega-feature-btn { display: inline-flex; align-items: center; gap: .45rem; margin-top: .2rem; padding: .45rem .8rem; border-radius: .45rem; background: var(--mm-accent, #ef1e60); color: #fff; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.qg-mega-shortcut { display: flex; align-items: center; gap: .7rem; padding: .35rem .8rem .35rem .35rem; border-radius: .75rem; background: var(--mm-bg, #eef3fa); color: var(--qg-navy); text-decoration: none; min-height: 3.4rem; }
.qg-mega-shortcut:hover, .qg-mega-feature:hover { box-shadow: 0 .25rem .8rem rgba(21, 35, 49, .14); color: var(--qg-navy); }
.qg-mega-shortcut img { flex: 0 0 auto; width: 4.4rem; height: 2.8rem; object-fit: cover; border-radius: .5rem; }
.qg-mega-shortcut-text { display: flex; flex-direction: column; line-height: 1.2; flex: 1 1 auto; min-width: 0; }
.qg-mega-shortcut-text strong { font-size: .92rem; color: var(--mm-accent, #ef1e60); }
.qg-mega-shortcut-text span { font-size: .75rem; color: var(--qg-muted); }
.qg-mega-shortcut > i { color: var(--mm-accent, #025ab2); font-size: .9rem; }
.qg-mega-rich .qg-mega-grid { grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 1.25rem 1.5rem; }
.qg-mega-rich .qg-mega-title { display: flex; align-items: center; gap: .5rem; text-transform: uppercase; font-size: .85rem; letter-spacing: .01em; }
.qg-mega-rich .qg-mega-title i { font-size: 1rem; }
.qg-mega-pic { display: block; margin: .15rem 0 .5rem; border-radius: .6rem; overflow: hidden; background: #f1f5f9; aspect-ratio: 16 / 10; }
.qg-mega-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qg-mega-more { display: inline-flex; align-items: center; gap: .35rem; margin-top: .25rem; font-size: .82rem; font-weight: 700; color: var(--qg-blue); text-decoration: none; }
.qg-mega-more:hover { color: var(--qg-pink); }
@media (max-width: 1199.98px) { .qg-mega-layout { grid-template-columns: 1fr; } .qg-mega-side { flex-direction: row; flex-wrap: wrap; } .qg-mega-feature { flex: 1 1 100%; } .qg-mega-shortcut { flex: 1 1 14rem; } }

/* Phones and tablets: pills under the search and the two-level category panel */
.qg-pills { display: flex; gap: .5rem; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; }
.qg-pills::-webkit-scrollbar { display: none; }
.qg-pills a { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; border-radius: 2rem; background: #fff; border: 1px solid var(--qg-border); color: var(--qg-navy); font-weight: 600; font-size: .92rem; text-decoration: none; white-space: nowrap; min-height: 2.75rem; }
.qg-pills a i { color: var(--qg-pink); }
@media (max-width: 991.98px) {
  .qg-nav { border: 0; background: transparent; margin-bottom: .5rem; }
  .qg-nav-inner { gap: .6rem; padding-top: .25rem; padding-bottom: .25rem; }
  .qg-cats-button-m { flex: 0 0 auto; min-height: 2.75rem; }
}
/* Phones: all the quick links are in view (they wrap onto a second row) instead of being cut off on the right. */
@media (max-width: 575.98px) {
  .qg-nav-inner { flex-wrap: wrap; gap: .4rem .5rem; }
  .qg-pills { display: contents !important; }
  .qg-pills li { flex: 0 0 auto; }
  .qg-pills a { padding: .45rem .8rem; font-size: .88rem; min-height: 2.6rem; }
  .qg-pills a:last-child { white-space: normal; }
}
.qg-panel { position: fixed; inset: 0; z-index: 1095; background: #fff; display: flex; flex-direction: column; }
.qg-panel[hidden] { display: none; }
.qg-panel-view { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
.qg-panel-view[hidden] { display: none; }
.qg-panel-view.is-entering { animation: qg-panel-in .2s ease; }
@keyframes qg-panel-in { from { transform: translateX(14%); opacity: 0; } to { transform: none; opacity: 1; } }
.qg-panel-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 1rem; padding-top: calc(.6rem + env(safe-area-inset-top)); background: var(--qg-bg); border-bottom: 1px solid var(--qg-border); min-height: 3.6rem; }
.qg-panel-head strong { font-size: 1.15rem; font-weight: 800; color: var(--qg-navy); flex: 1 1 auto; text-align: left; }
.qg-panel-back + strong { text-align: center; }
.qg-panel-back, .qg-panel-close { border: 0; background: none; color: var(--qg-navy); font-size: 1rem; min-width: 2.75rem; min-height: 2.75rem; padding: 0 .4rem; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; }
.qg-panel-close { font-size: 1.4rem; }
.qg-panel-body { flex: 1 1 auto; overflow-y: auto; padding: .9rem 1rem calc(1.5rem + env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; }
.qg-panel-list { display: flex; flex-direction: column; gap: .55rem; margin: 0; padding: 0; }
.qg-panel-row { display: flex; align-items: center; gap: .85rem; width: 100%; min-height: 4.2rem; padding: .5rem .8rem .5rem .5rem; border: 0; border-radius: .9rem; background: var(--pn-bg, #eef3fa); color: var(--qg-navy); text-align: left; text-decoration: none; font: inherit; }
.qg-panel-row:active { transform: scale(.985); }
.qg-panel-thumb { flex: 0 0 auto; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: .7rem; overflow: hidden; background: rgba(255, 255, 255, .7); color: var(--pn-accent, #ef1e60); font-size: 1.5rem; }
.qg-panel-thumb img { width: 100%; height: 100%; object-fit: cover; }
.qg-panel-thumb b { font-size: 1.3rem; }
.qg-panel-text { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; line-height: 1.25; }
.qg-panel-text strong { font-size: 1.02rem; font-weight: 800; }
.qg-panel-text span { font-size: .85rem; color: var(--qg-muted); }
.qg-panel-arrow { flex: 0 0 auto; color: var(--qg-navy); opacity: .7; }
.qg-panel-sub { background: #f4f6f8; min-height: 3.9rem; }
.qg-panel-sub .qg-panel-text strong { font-size: .95rem; }
.qg-panel-banner { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; min-height: 9.5rem; margin-bottom: .9rem; padding: 1rem; border-radius: 1rem; overflow: hidden; background: var(--pn-bg, #fde7ee); color: #fff; text-decoration: none; }
.qg-panel-banner.is-plain { background: var(--pn-accent, #ef1e60); }
.qg-panel-banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qg-panel-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(21, 35, 49, .62), rgba(21, 35, 49, 0) 62%); }
.qg-panel-banner-text, .qg-panel-banner-arrow { position: relative; z-index: 1; }
.qg-panel-banner-text { display: flex; flex-direction: column; line-height: 1.2; text-shadow: 0 .1rem .4rem rgba(0, 0, 0, .35); }
.qg-panel-banner-text strong { font-size: 1.35rem; font-weight: 800; }
.qg-panel-banner-text span { font-size: .95rem; }
.qg-panel-banner-arrow { flex: 0 0 auto; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #fff; color: var(--qg-pink); }
body.qg-panel-shown { overflow: hidden; }
@media (min-width: 992px) { .qg-panel { display: none !important; } }

/* Home sections (data from quickgadget_home: promise strip, picture tiles, product rows) */
.qg-home-block { margin: var(--qg-block-gap, 2.5rem) 0; }
.qg-home #content .qgcs { margin: var(--qg-block-gap, 2.5rem) 0; }
.qg-home-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 var(--qg-head-gap, .875rem); }
.qg-home-head .qg-hub-title { margin: 0; }
.qg-home-more { flex: 0 0 auto; font-size: .85rem; font-weight: 700; color: var(--qg-blue); text-decoration: none; white-space: nowrap; }
.qg-home-more:hover { color: var(--qg-pink); }
.qg-home-strip { margin: 1rem 0 var(--qg-block-gap, 2.5rem); }
.qg-occasions { display: grid; grid-template-columns: repeat(var(--qg-cp, 2), minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; }
@media (min-width: 768px) { .qg-occasions { grid-template-columns: repeat(var(--qg-ct, 4), minmax(0, 1fr)); } }
@media (min-width: 1200px) { .qg-occasions { grid-template-columns: repeat(var(--qg-cd, 8), minmax(0, 1fr)); } }
.qg-occasion { display: flex; flex-direction: column; height: 100%; border-radius: 1rem; background: var(--qg-tile, #eef3fa); color: var(--qg-navy); text-decoration: none; overflow: hidden; transition: box-shadow .15s, transform .15s; }
a.qg-occasion:hover, a.qg-occasion:focus-visible { color: var(--qg-navy); box-shadow: 0 .35rem 1rem rgba(21, 35, 49, .14); transform: translateY(-2px); }
.qg-occasion-art { display: grid; place-items: center; aspect-ratio: 1 / 1; padding: .6rem; }
.qg-occasion-art img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.qg-occasion-name { padding: .5rem .5rem .65rem; text-align: center; font-weight: 700; font-size: .88rem; line-height: 1.2; background: rgba(255, 255, 255, .72); overflow-wrap: anywhere; }
.qg-home-products.qg-hub-random .qg-carousel-item { flex-basis: calc((100% - (var(--qg-cp, 2) - 1) * .9rem) / var(--qg-cp, 2)); }
@media (min-width: 768px) { .qg-home-products.qg-hub-random .qg-carousel-item { flex-basis: calc((100% - (var(--qg-ct, 3) - 1) * .9rem) / var(--qg-ct, 3)); } }
@media (min-width: 1200px) { .qg-home-products.qg-hub-random .qg-carousel-item { flex-basis: calc((100% - (var(--qg-cd, 4) - 1) * .9rem) / var(--qg-cd, 4)); } }
@media (max-width: 575.98px) {
  .qg-home-strip .qg-strip-list { display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .qg-home-strip .qg-strip-list::-webkit-scrollbar { display: none; }
  .qg-home-strip .qg-strip-item { flex: 0 0 auto; scroll-snap-align: start; padding: 0 1rem; white-space: nowrap; }
  .qg-home-strip .qg-strip-item > i { font-size: 1.5rem; width: 1.8rem; }
}

/* Home: marketplace rating box (Amazon / eBay) and the photo gallery */
.qg-ratings > .qg-hub-title { margin: 0 0 1rem; }
.qg-rating-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 992px) { .qg-rating-grid.is-multi { grid-template-columns: repeat(var(--qg-rating-n, 2), minmax(0, 1fr)); } }
.qg-rating-grid.is-multi .qg-rating { flex-direction: column; align-items: flex-start; justify-content: flex-start; }
.qg-rating-grid.is-multi .qg-rating-cta { align-items: flex-start; }
.qg-rating { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; background: var(--qg-rating-bg, #eef3fa); border-radius: 1.2rem; padding: 1.1rem 1.5rem; }
.qg-rating-main { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.qg-rating-logo { font-size: 2.4rem; color: #232f3e; }
.qg-rating-title { margin: 0; font-size: 1.35rem; font-weight: 800; color: var(--qg-navy); line-height: 1.15; }
.qg-rating-source { margin: .15rem 0 0; font-size: .82rem; color: var(--qg-muted); }
.qg-rating-rating { display: flex; align-items: center; gap: .6rem .8rem; flex-wrap: wrap; }
.qg-rating-score { font-size: 2rem; font-weight: 800; color: var(--qg-navy); line-height: 1; }
.qg-rating-stars { color: #ffa41c; font-size: 1.15rem; white-space: nowrap; letter-spacing: .1rem; }
.qg-rating-count, .qg-rating-label { font-size: .88rem; color: var(--qg-text); }
.qg-rating-cta { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }
.qg-rating-cta small { font-size: .75rem; color: var(--qg-muted); }
.qg-rating-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1.2rem; border-radius: .55rem; border: 2px solid #232f3e; background: #fff; color: #232f3e; font-size: .85rem; font-weight: 800; text-decoration: none; }
.qg-rating-btn:hover { background: #232f3e; color: #fff; }
@media (max-width: 767.98px) { .qg-rating { flex-direction: column; align-items: flex-start; padding: 1rem 1.1rem; } .qg-rating-cta { align-items: flex-start; } .qg-rating-title { font-size: 1.2rem; } }
.qg-shots-head { margin: 0 0 1rem; }
.qg-shots-head .qg-hub-title { margin: 0 0 .25rem; }
.qg-shots-head p { margin: 0; color: var(--qg-muted); font-size: .92rem; }
.qg-shots-grid { display: grid; grid-template-columns: repeat(var(--qg-cp, 2), minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; }
@media (min-width: 768px) { .qg-shots-grid { grid-template-columns: repeat(var(--qg-ct, 3), minmax(0, 1fr)); } }
@media (min-width: 1200px) { .qg-shots-grid { grid-template-columns: repeat(var(--qg-cd, 4), minmax(0, 1fr)); } }
.qg-shot { margin: 0; }
.qg-shot-art { display: block; aspect-ratio: 1 / 1; border-radius: 1rem; overflow: hidden; background: #f1f5f9; }
.qg-shots-wide .qg-shot-art { aspect-ratio: 4 / 3; }
.qg-shots-tall .qg-shot-art { aspect-ratio: 3 / 4; }
.qg-shot-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
a.qg-shot-art { transition: box-shadow .15s, transform .15s; }
a.qg-shot-art:hover, a.qg-shot-art:focus-visible { box-shadow: 0 .35rem 1rem rgba(21, 35, 49, .18); transform: translateY(-2px); }
.qg-shot figcaption { margin-top: .4rem; font-size: .84rem; font-weight: 600; color: var(--qg-navy); text-align: center; overflow-wrap: anywhere; }

/* Home: "how it works" steps with a call-to-action box, and the benefits banner */
.qg-howto-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 992px) { .qg-howto-grid.has-cta { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); } }
.qg-howto-main { background: var(--qg-howto-bg, #eef3fa); border-radius: 1rem; padding: 1.1rem 1.25rem; }
.qg-howto > .qg-hub-title { margin: 0 0 .9rem; }
.qg-howto-main.is-plain { background: none; padding-left: 0; padding-right: 0; }
.qg-howto-steps { display: flex; gap: 0; margin: 0; padding: 0; }
.qg-howto-step { display: flex; align-items: center; gap: .75rem; flex: 1 1 0; min-width: 0; padding: 0 1rem; }
.qg-howto-step:first-child { padding-left: 0; }
.qg-howto-step + .qg-howto-step { border-left: 1px solid rgba(21, 35, 49, .13); }
.qg-howto-num { flex: 0 0 auto; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--qg-blue); color: #fff; font-weight: 800; font-size: 1.05rem; }
.qg-howto-text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.qg-howto-text strong { color: var(--qg-navy); font-size: .98rem; }
.qg-howto-text span { color: var(--qg-muted); font-size: .84rem; }
.qg-howto-cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--qg-cta-bg, #fde7ee); border-radius: 1rem; padding: 1rem 1.25rem; overflow: hidden; }
.qg-howto-cta-text { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; min-width: 0; }
.qg-howto-cta-text strong { color: var(--qg-cta-title, #ef1e60); font-size: 1.2rem; font-weight: 800; line-height: 1.15; }
.qg-howto-cta-text > span { color: var(--qg-text); font-size: .88rem; }
.qg-howto-btn { display: inline-block; margin-top: .25rem; padding: .5rem 1.1rem; border-radius: .5rem; background: var(--qg-cta-accent, #ef1e60); color: var(--qg-cta-text, #fff); font-size: .82rem; font-weight: 800; text-transform: uppercase; text-decoration: none; }
.qg-howto-btn:hover { color: var(--qg-cta-text, #fff); opacity: .9; }
.qg-howto-cta img { flex: 0 1 auto; max-width: 42%; height: auto; max-height: 8.5rem; object-fit: contain; }
@media (max-width: 767.98px) {
  .qg-howto-steps { flex-direction: column; gap: .75rem; }
  .qg-howto-step, .qg-howto-step:first-child { padding: 0; }
  .qg-howto-step + .qg-howto-step { border-left: 0; }
}
.qg-promo-banner { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 1rem; background: var(--qg-promo-bg, #eef3fa); border-radius: 1.2rem; padding: 1.4rem 1.5rem; overflow: hidden; }
@media (min-width: 768px) { .qg-promo-banner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); padding: 1.6rem 2rem; } }
.qg-promo-banner-text h2 { margin: 0 0 .35rem; color: var(--qg-blue); font-size: 1.7rem; font-weight: 800; line-height: 1.1; }
.qg-promo-banner-text p { margin: 0 0 .85rem; color: var(--qg-navy); font-size: .98rem; }
.qg-promo-banner-list { display: flex; flex-direction: column; gap: .5rem; margin: 0 0 1.1rem; padding: 0; }
.qg-promo-banner-list li { display: flex; align-items: center; gap: .6rem; color: var(--qg-navy); font-size: .95rem; }
.qg-promo-banner-list i { flex: 0 0 auto; width: 1.3rem; text-align: center; color: var(--qg-promo-accent, #025ab2); }
.qg-promo-banner-btn { display: inline-block; padding: .65rem 1.4rem; border-radius: .55rem; background: var(--qg-promo-accent, #025ab2); color: var(--qg-promo-text, #fff); font-size: .9rem; font-weight: 800; text-transform: uppercase; text-decoration: none; }
.qg-promo-banner-btn:hover { color: var(--qg-promo-text, #fff); opacity: .9; }
.qg-promo-banner-art { display: flex; justify-content: center; }
.qg-promo-banner-art img { max-width: 100%; height: auto; max-height: 15rem; object-fit: contain; }
@media (max-width: 767.98px) { .qg-promo-banner-text h2 { font-size: 1.4rem; } .qg-promo-banner-art img { max-height: 11rem; } }


/* Home: decorative phrase beside a heading, photo tiles, one-row steps, picture banner, fans (teams), floating strip */
.qg-home-head { flex-wrap: wrap; }
.qg-home-head-end { display: flex; align-items: center; gap: .9rem; margin-left: auto; min-width: 0; }
.qg-home-head:has(.qg-home-deco) { align-items: center; }
.qg-home-deco { display: block; height: var(--qg-deco-h, 64px); width: auto; max-width: 100%; object-fit: contain; transform: translateY(var(--qg-deco-y, 0px)); }
@media (max-width: 767.98px) { .qg-home-deco { height: var(--qg-deco-hm, 40px); max-width: 100%; } .qg-home-head-end { margin-left: 0; width: 100%; justify-content: flex-end; } }

.qg-occasion-photo { position: relative; aspect-ratio: 1 / 1.08; background: var(--qg-tile, #eef3fa); }
.qg-occasion-photo .qg-occasion-art { position: absolute; inset: 0; aspect-ratio: auto; padding: 0; }
.qg-occasion-photo .qg-occasion-art img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; }
.qg-occasion-label { position: absolute; left: .45rem; right: .45rem; bottom: .45rem; display: flex; align-items: center; justify-content: space-between; gap: .4rem; padding: .4rem .45rem .4rem .65rem; border-radius: .8rem; background: var(--qg-lab-bg, #fff); color: var(--qg-lab-text, #152331); }
.qg-occasion-photo .qg-occasion-name { padding: 0; background: none; text-align: left; font-family: var(--qg-lab-font, inherit); font-size: var(--qg-lab-size, .78rem); font-weight: var(--qg-lab-weight, 800); text-transform: var(--qg-lab-tt, uppercase); line-height: 1.1; }
.qg-occasion-arrow { flex: 0 0 auto; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--qg-lab-accent, #ef1e60); color: #fff; font-size: .72rem; }
@media (max-width: 575.98px) { .qg-occasion-photo .qg-occasion-name { font-size: var(--qg-lab-size-m, .7rem); } .qg-occasion-arrow { width: 1.5rem; height: 1.5rem; font-size: .64rem; } }

.qg-flow { margin: var(--qg-block-gap, 2.5rem) 0; }
.qg-flow-inner { display: flex; align-items: center; gap: 1.5rem 2rem; background: var(--qg-flow-bg, #eef3fa); border-radius: 1rem; padding: 1.1rem 1.5rem; }
.qg-flow.is-plain .qg-flow-inner { background: none; padding-left: 0; padding-right: 0; }
.qg-flow-title { flex: 0 0 auto; margin: 0; font-size: 1.7rem; font-weight: 800; color: var(--qg-navy); line-height: 1.1; }
.qg-flow-steps { flex: 1 1 auto; display: flex; align-items: center; gap: 1rem; margin: 0; padding: 0; min-width: 0; }
.qg-flow-step { flex: 1 1 0; display: flex; align-items: center; gap: .65rem; min-width: 0; }
.qg-flow-icon { flex: 0 0 auto; font-size: 1.9rem; color: var(--qg-navy); width: 2.4rem; text-align: center; }
.qg-flow-arrow { flex: 0 0 auto; margin-left: auto; color: var(--qg-muted); }
.qg-flow .qg-howto-num { background: var(--qg-pink); }
@media (max-width: 991.98px) {
  .qg-flow-inner { flex-direction: column; align-items: flex-start; padding: 1rem 1.1rem; }
  .qg-flow.is-plain .qg-flow-inner { padding-left: 0; padding-right: 0; }
  .qg-flow-title { font-size: 1.4rem; }
  .qg-flow-steps { flex-direction: column; align-items: stretch; gap: .85rem; width: 100%; }
  .qg-flow-arrow { display: none; }
}

.qg-banner-link { display: block; border-radius: 1rem; overflow: hidden; }
.qg-banner-img { display: block; width: 100%; height: auto; }
a.qg-banner-link { transition: box-shadow .15s; }
a.qg-banner-link:hover, a.qg-banner-link:focus-visible { box-shadow: 0 .35rem 1.1rem rgba(21, 35, 49, .18); }

.qg-fans { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 1.75rem; align-items: center; }
@media (min-width: 1200px) { .qg-fans { grid-template-columns: minmax(14rem, 19rem) minmax(0, 1fr); } }
.qg-fans-intro { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; }
.qg-fans-title { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; }
.qg-fans-title .qg-hub-title { margin: 0; }
.qg-fans-intro p { margin: 0; color: var(--qg-text); font-size: .92rem; }
.qg-fans-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .65rem 1.25rem; border-radius: 999px; background: var(--qg-pink); color: #fff; font-size: .88rem; font-weight: 800; text-decoration: none; }
.qg-fans-btn:hover { color: #fff; opacity: .92; }
.qg-fans-row { display: grid; grid-template-columns: repeat(var(--qg-cd, 8), minmax(0, 1fr)); gap: .7rem; margin: 0; padding: 0; }
.qg-fan-card { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 1rem; overflow: hidden; box-shadow: 0 .2rem .8rem rgba(21, 35, 49, .1); color: var(--qg-navy); text-decoration: none; transition: box-shadow .15s, transform .15s; }
a.qg-fan-card:hover, a.qg-fan-card:focus-visible { color: var(--qg-navy); box-shadow: 0 .4rem 1.1rem rgba(21, 35, 49, .18); transform: translateY(-2px); }
.qg-fan-art { display: block; aspect-ratio: 1 / 1.1; background: #f1f5f9; }
.qg-fan-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qg-fan-name { padding: .5rem .35rem .6rem; text-align: center; font-size: .82rem; font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; }
@media (max-width: 1199.98px) and (min-width: 768px) { .qg-fans-row { grid-template-columns: repeat(var(--qg-ct, 4), minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .qg-fans-row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--qg-cp, 3) - 1) * .6rem) / (var(--qg-cp, 3) + .35)); gap: .6rem; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: .2rem .15rem .6rem; margin: 0 -.15rem; }
  .qg-fans-row::-webkit-scrollbar { display: none; }
  .qg-fans-row > li { scroll-snap-align: start; }
}

.qg-home-strip.is-floating { position: relative; z-index: 3; margin: 1rem 0 var(--qg-block-gap, 2.5rem); border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(21, 35, 49, .16); }
.qg-home-strip.is-floating.after-hero { margin: -2.1rem 1rem var(--qg-block-gap, 2.5rem); }
.qg-home #content:has(.qg-home-strip.after-hero) .qg-hero { margin-bottom: 0; }
.qg-home-strip.is-floating .qg-strip-item strong { color: var(--qg-navy); }
.qg-home-strip.is-floating .qg-strip-item > i { font-size: 2rem; }
@media (max-width: 575.98px) { .qg-home-strip.is-floating.after-hero { margin: -1.5rem .35rem 1.75rem; } }

/* Home: thin coloured line under the headings (setting of QuickGadget Home) */
.qg-home.has-title-line .qg-hub-title, .qg-home.has-title-line .qg-flow-title, .qg-home.has-title-line .qgcs-heading { display: inline-block; padding-bottom: .3rem; border-bottom: 3px solid var(--qg-title-line, #ef1e60); border-radius: 0 0 2px 2px; }
.qg-home-head .qg-hub-title { margin-bottom: 0; }
.qg-home .qg-howto > .qg-hub-title, .qg-home .qg-ratings > .qg-hub-title { margin-bottom: var(--qg-head-gap, .875rem); }
.qg-home #content .qgcs-head { margin-bottom: var(--qg-head-gap, .875rem); }

/* Search page: compact search panel, then the same listing as a category page */
.qg-search-title { font-size: 1.6rem; font-weight: 800; margin: .25rem 0 .9rem; }
.qg-search-tag { color: var(--qg-pink); }
.qg-search-panel { display: grid; gap: .6rem; background: #f4f8fd; border-radius: 1rem; padding: .85rem 1rem; margin-bottom: 1.25rem; }
.qg-search-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; gap: .6rem; align-items: center; }
.qg-search-opts { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; font-size: .85rem; color: var(--qg-muted); }
.qg-search-opts .form-check { margin: 0; }
.qg-no-results { color: var(--qg-muted); margin: 1.5rem 0; }
.qg-search-toggle { display: none; }
@media (max-width: 767.98px) {
  .qg-search-title { font-size: 1.35rem; }
  .qg-search-row { grid-template-columns: minmax(0, 1fr) auto auto; }
  .qg-search-row #button-search span { display: none; }
  .qg-search-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .qg-search-row select.qg-search-extra { grid-column: 1 / -1; order: 5; }
  .qg-search-panel:not(.is-open) .qg-search-extra { display: none; }
}

/* Home: the "Space" block */
.qg-home-spacer { height: var(--qg-sp-h, 24px); }
@media (max-width: 767.98px) { .qg-home-spacer { height: var(--qg-sp-hm, 12px); } }

/* Share menu of the product page */
.qg-share { position: relative; display: inline-block; }
.qg-share .qg-link-button { display: inline-flex; align-items: center; gap: .3rem; }
.qg-share .dropdown-toggle::after { display: none; }
.qg-share-menu { min-width: 12.5rem; border-radius: 12px; padding: .4rem; box-shadow: 0 10px 28px rgba(21, 35, 49, .18); font-size: .95rem; }
.qg-share-menu .dropdown-item { display: flex; align-items: center; gap: .6rem; border-radius: 8px; min-height: 2.5rem; color: var(--qg-navy); }
.qg-share-menu .dropdown-item i { width: 1.2rem; text-align: center; color: var(--qg-pink); }
.qg-share-menu .dropdown-item:hover, .qg-share-menu .dropdown-item:focus { background: var(--qg-bg-soft); }

/* Home: slide of the gallery photos ("Le nostre creazioni"): every photo whole, same height, widths follow the pictures */
.qg-creations { --qg-cr-h: 260px; }
.qg-creations .qg-carousel-item { flex: 0 0 auto; }
.qg-creations .qg-creation { display: block; line-height: 0; border-radius: 14px; overflow: hidden; background: var(--qg-bg-soft); }
.qg-creations .qg-creation img { height: var(--qg-cr-h); width: auto; max-width: none; display: block; }
.qg-creations .qg-carousel-nav { top: calc(50% - 1.1rem); }
.qg-creations .qg-creation:focus-visible { outline: 3px solid var(--qg-pink); outline-offset: 2px; }
@media (max-width: 767.98px) { .qg-creations { --qg-cr-h: 200px; } .qg-creations .qg-carousel-item { flex: 0 0 auto; } }

/* Cart: the coupon box is always open and in view (the drop-down is only for the other options). */
.qg-coupon { margin: 1.25rem 0; }
.qg-coupon .accordion-item { border: 1px solid var(--qg-border); border-radius: .75rem; overflow: hidden; }
.qg-coupon .accordion-button { pointer-events: none; cursor: default; background: var(--qg-bg-soft); color: var(--qg-navy); font-weight: 700; box-shadow: none; }
.qg-coupon .accordion-button::after { display: none; }
.qg-coupon .accordion-collapse { display: block !important; height: auto !important; visibility: visible; }
.qg-coupon .accordion-body .row { align-items: center; }
.qg-coupon .accordion-body .btn { min-height: 2.6rem; }
/* Computer: field and buttons on one row (the field no longer stretches over the whole card); phone: the buttons go under the field. */
@media (min-width: 768px) {
  .qg-coupon .accordion-body { display: flex; align-items: center; gap: 1rem; }
  .qg-coupon .accordion-body > form { flex: 1 1 auto; min-width: 0; }
  .qg-coupon .accordion-body > form .row { margin-bottom: 0 !important; }
  .qg-coupon .accordion-body > .text-end { flex: none; white-space: nowrap; }
}
@media (max-width: 767.98px) {
  .qg-coupon .accordion-body > .text-end { display: flex; gap: .5rem; }
  .qg-coupon .accordion-body > .text-end .btn { flex: 1 1 0; }
}

/* Cart: the two bottom buttons have the same size; "Continua gli acquisti" is the second one (navy), "Procedi al pagamento" the main one. */
.qg-cart-actions .btn { min-height: 2.9rem; padding: .55rem 1.4rem; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.qg-cart-actions .btn-outline-secondary { background: var(--qg-navy); border-color: var(--qg-navy); color: #fff; }
.qg-cart-actions .btn-outline-secondary:hover, .qg-cart-actions .btn-outline-secondary:focus-visible { background: #223a52; border-color: #223a52; color: #fff; }
@media (max-width: 575.98px) { .qg-cart-actions { flex-direction: column-reverse; gap: .6rem; } .qg-cart-actions > .col { width: 100%; text-align: center !important; } .qg-cart-actions .btn { width: 100%; } }

/* Window after "Aggiungi al carrello" */
.qg-added .modal-content { border: 0; border-radius: 1rem; overflow: hidden; }
.qg-added .modal-body { padding: 1.75rem 1.5rem 1.5rem; position: relative; }
.qg-added-close { position: absolute; top: .75rem; right: .75rem; }
.qg-added-icon { font-size: 2.75rem; line-height: 1; color: var(--qg-green); margin-bottom: .5rem; }
.qg-added-name { margin: .25rem 0 1.25rem; color: var(--qg-text); font-weight: 600; overflow-wrap: anywhere; }
.qg-added-actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; }
.qg-added-actions .btn { flex: 1 1 10rem; }

/* Cart: quantity stepper (the change is saved by itself) and, on phones, one card per product instead of a table that has to be scrolled */
.qg-cartlist .qg-c-qty { min-width: 11rem; }
.qg-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--qg-border); border-radius: .6rem; overflow: hidden; background: #fff; }
.qg-qty .form-control { width: 3.4rem; border: 0; border-radius: 0; text-align: center; font-weight: 700; padding: .4rem .2rem; box-shadow: none; -moz-appearance: textfield; appearance: textfield; }
.qg-qty .form-control::-webkit-outer-spin-button, .qg-qty .form-control::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qg-qty-btn { width: 2.6rem; border: 0; background: var(--qg-bg-soft); color: var(--qg-navy); font-size: .85rem; }
.qg-qty-btn:hover, .qg-qty-btn:focus-visible { background: var(--qg-border); }
.qg-qty-update { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; padding: 0; margin: -1px; white-space: nowrap; }
.qg-qty-form { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .9rem; }
.qg-cartlist .btn.qg-remove { background: none; border: 0; color: var(--qg-red); padding: .25rem .1rem; font-size: .9rem; text-decoration: underline; }
.qg-cartlist .btn.qg-remove:hover { color: #a3150b; background: none; }
@media (max-width: 767.98px) {
  .qg-cartlist .table, .qg-cartlist tbody, .qg-cartlist tfoot { display: block; }
  .qg-cartlist thead { display: none; }
  .qg-cartlist .table-bordered > :not(caption) > * > * { border-width: 0; }
  .qg-cartlist tbody tr { display: grid; grid-template-columns: 5.5rem 1fr; gap: .15rem 1rem; align-items: start; padding: .9rem; margin-bottom: .8rem; border: 1px solid var(--qg-border); border-radius: .9rem; background: #fff; }
  .qg-cartlist tbody td { display: block; padding: 0; background: transparent; text-align: start !important; }
  .qg-cartlist .qg-c-img { grid-row: 1 / span 4; }
  .qg-cartlist .qg-c-img img { width: 100%; height: auto; }
  .qg-cartlist .qg-c-name { grid-column: 2; font-weight: 600; }
  .qg-cartlist .qg-c-qty { grid-column: 2; min-width: 0; margin: .4rem 0 .2rem; }
  .qg-cartlist .qg-c-price, .qg-cartlist .qg-c-total { grid-column: 2; display: flex !important; justify-content: space-between; gap: 1rem; }
  .qg-cartlist .qg-c-price::before, .qg-cartlist .qg-c-total::before { content: attr(data-label); color: var(--qg-muted, #5b6b7b); font-weight: 400; }
  .qg-cartlist .qg-c-total { font-weight: 800; border-top: 1px dashed var(--qg-border); padding-top: .3rem; margin-top: .2rem; }
  .qg-cartlist tfoot tr { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem .2rem; }
  .qg-cartlist tfoot td { display: block; border: 0; padding: 0; }
  .qg-cartlist tfoot td[colspan] { flex: 1; }
}

/* Shipping choice with a logo and a longer text (QuickGadget Corrieri): the radio and the label sit side by side, whatever the width of the text, and the text wraps inside its own column. */
.form-check:has(.qgsh-line) { display: flex; align-items: flex-start; gap: .5rem; margin-bottom: 0; }
/* the space between two carriers is set in Corrieri (QuickGadget) and lives in each block (an inline style); the checkout's own rule for its choices must not add to it, and the last block has none */
#checkout-checkout .qgco-options .form-check:has(.qgsh-line) { margin-bottom: 0; }
.form-check:has(.qgsh-line):last-child .qgsh-line { margin-bottom: 0 !important; }
.form-check:has(.qgsh-line) > input { flex: none; margin-top: calc(1.4rem - .5em); }   /* the middle of the logo box (2.8rem tall) */
.form-check:has(.qgsh-line) > label { flex: 1 1 auto; min-width: 0; width: auto; }

/* ------------------------------------------------------------------ Breadcrumb: five looks, chosen in the theme settings (class qg-bc-<name> on the body) */
.qg-theme[class*="qg-bc-"] .breadcrumb { display: flex; align-items: center; flex-wrap: nowrap; gap: 0; overflow-x: auto; scrollbar-width: none; margin-bottom: 1.25rem; padding: .5rem .9rem; border: 0; font-size: .9rem; }
.qg-theme[class*="qg-bc-"] .breadcrumb::-webkit-scrollbar { display: none; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li.breadcrumb-item { display: inline-flex; align-items: center; flex: 0 0 auto; position: relative; padding: 0; white-space: nowrap; text-shadow: none; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li.breadcrumb-item::after { content: none; display: none; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li.breadcrumb-item + li::before { content: "\f054"; font-family: "Font Awesome 7 Free", "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900; font-size: .62rem; float: none; display: inline-block; padding: 0 .8rem; color: #9aa7b4; }
.qg-theme[class*="qg-bc-"] .breadcrumb a { display: inline-flex; align-items: center; gap: .5rem; color: #1473e6; font-weight: 600; text-decoration: none; }
.qg-theme[class*="qg-bc-"] .breadcrumb a:hover { color: var(--qg-pink); }
.qg-theme[class*="qg-bc-"] .breadcrumb a:focus-visible { outline: 3px solid var(--qg-pink); outline-offset: 2px; border-radius: .4rem; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li:last-child a { color: var(--qg-navy); font-weight: 800; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li:first-child a i { font-size: 1rem; }
.qg-theme[class*="qg-bc-"] .qg-bc-home { color: #5b6b7a; font-weight: 500; }
.qg-theme[class*="qg-bc-"] .qg-bc-ico { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; color: var(--qg-pink); }
.qg-theme[class*="qg-bc-"] .qg-bc-ico i { font-size: 1rem; }
.qg-theme[class*="qg-bc-"] .breadcrumb > li:last-child .qg-bc-ico { color: #1473e6; }

/* 1 · simple: a light bar, the house in a small blue square */
.qg-theme.qg-bc-simple .breadcrumb { background: #f4f7fb; border-radius: 1rem; }
.qg-theme.qg-bc-simple .breadcrumb > li:first-child a i { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: .6rem; background: #e3eefc; color: #1473e6; }

/* 2 · arrows: a white bar, every step an arrow, the current one filled light blue */
.qg-theme.qg-bc-arrows .breadcrumb { background: #fff; border-radius: 1rem; padding: 0 .5rem 0 .3rem; box-shadow: 0 2px 10px rgba(21, 35, 49, .07); }
.qg-theme.qg-bc-arrows .breadcrumb > li.breadcrumb-item { padding: .6rem 1.7rem .6rem 1.1rem; }
.qg-theme.qg-bc-arrows .breadcrumb > li.breadcrumb-item + li::before { content: none; }
.qg-theme.qg-bc-arrows .breadcrumb > li:first-child a i { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: .6rem; background: #e3eefc; color: #1473e6; }
.qg-theme.qg-bc-arrows .breadcrumb > li:not(:last-child) { z-index: 1; }
.qg-theme.qg-bc-arrows .breadcrumb > li:not(:last-child)::after { content: ""; display: block; position: absolute; top: 50%; right: -.9rem; width: 1.8rem; height: 1.8rem; border-top: 1px solid #e1e8f0; border-right: 1px solid #e1e8f0; transform: translateY(-50%) rotate(45deg); }
.qg-theme.qg-bc-arrows .breadcrumb > li:last-child { margin-left: .2rem; padding-left: 1.9rem; background: #e9f2fe; clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%, 16px 50%); }
.qg-theme.qg-bc-arrows .breadcrumb > li:last-child a { color: #1473e6; }

/* 3 · circles: a round icon for every step, the current one in blue on a light pill */
.qg-theme.qg-bc-circles .breadcrumb { background: #f4f7fb; border-radius: 2rem; padding: .4rem .7rem; }
.qg-theme.qg-bc-circles .breadcrumb a { gap: .65rem; }
.qg-theme.qg-bc-circles .breadcrumb > li:first-child a i { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #fff; color: var(--qg-navy); box-shadow: 0 2px 8px rgba(21, 35, 49, .12); }
.qg-theme.qg-bc-circles .qg-bc-ico { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--qg-pink); color: #fff; }
.qg-theme.qg-bc-circles .breadcrumb > li:last-child .qg-bc-ico { background: #1473e6; color: #fff; }
.qg-theme.qg-bc-circles .breadcrumb > li:last-child { padding-right: 1.2rem; border-radius: 2rem; background: #e3eefc; }
.qg-theme.qg-bc-circles .breadcrumb > li:last-child a { color: #1473e6; }

/* 4 · dark: a navy bar, the current step a pink pill */
.qg-theme.qg-bc-dark .breadcrumb { background: #0f2a5c; border-radius: 1rem; padding: .4rem .7rem; }
.qg-theme.qg-bc-dark .breadcrumb a, .qg-theme.qg-bc-dark .qg-bc-home { color: #fff; }
.qg-theme.qg-bc-dark .breadcrumb > li.breadcrumb-item + li::before { color: rgba(255, 255, 255, .55); }
.qg-theme.qg-bc-dark .qg-bc-ico { color: #ff5c8a; }
.qg-theme.qg-bc-dark .breadcrumb > li:last-child { padding: .5rem 1.2rem .5rem 1rem; border-radius: 2rem; background: var(--qg-pink); }
.qg-theme.qg-bc-dark .breadcrumb > li:last-child a, .qg-theme.qg-bc-dark .breadcrumb > li:last-child .qg-bc-ico { color: #fff; }

/* 5 · minimal: no bar, the current step underlined in pink */
.qg-theme.qg-bc-minimal .breadcrumb { background: transparent; padding: .4rem .2rem; }
.qg-theme.qg-bc-minimal .breadcrumb > li:first-child a { color: var(--qg-navy); }
.qg-theme.qg-bc-minimal .breadcrumb > li:last-child a { padding-bottom: .35rem; border-bottom: 3px solid var(--qg-pink); }

@media (max-width: 767.98px) {
  .qg-theme[class*="qg-bc-"] .breadcrumb { font-size: .85rem; padding: .4rem .6rem; margin-bottom: .75rem; }
  .qg-theme[class*="qg-bc-"] .breadcrumb > li.breadcrumb-item + li::before { padding: 0 .5rem; }
  .qg-theme.qg-bc-circles .breadcrumb > li:first-child a i, .qg-theme.qg-bc-circles .qg-bc-ico { width: 2rem; height: 2rem; }
  .qg-theme.qg-bc-arrows .breadcrumb > li.breadcrumb-item { padding: .5rem 1.4rem .5rem .8rem; }
}

/* ------------------------------------------------------------------ Product card effect (mouse over), switched on or off in the theme settings (class qg-card-fx on the body) */
.qg-card-eye { display: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .qg-card-fx .qg-card { position: relative; border-radius: .9rem; }
  .qg-card-fx .qg-card-image { position: relative; }
  .qg-card-fx .qg-card::before { content: ""; position: absolute; inset: 0; border: 2px solid var(--qg-pink); border-radius: .9rem; opacity: 0; transform: scale(.94); transition: opacity .3s, transform .3s; pointer-events: none; z-index: 2; }
  .qg-card-fx .qg-card:hover::before { opacity: 1; transform: scale(1); }
  .qg-card-fx .qg-card:hover .qg-card-image img { animation: qg-card-pop .9s ease both; }
  .qg-card-fx .qg-card-eye { display: flex; align-items: center; justify-content: center; position: absolute; left: 50%; top: 50%; z-index: 1; width: 2.6rem; height: 2.6rem; margin: -1.3rem 0 0 -1.3rem; border-radius: 50%; background: var(--qg-pink); color: #fff; font-size: 1.05rem; opacity: 0; transform: scale(0); transition: opacity .3s, transform .3s; pointer-events: none; box-shadow: 0 0 0 .55rem rgba(255, 255, 255, .45); }
  .qg-card-fx .qg-card:hover .qg-card-eye { opacity: 1; transform: scale(1); }
}
@keyframes qg-card-pop { 0% { transform: scale(1); opacity: 1; } 40% { transform: scale(.84); opacity: .55; } 100% { transform: scale(1.06); opacity: 1; } }

/* Product card: the title, the price and the availability get some air at the sides and the button below, so nothing touches the edge (or the pink frame of the hover effect) */
.qg-card-body { padding: 0 .8rem; }
.qg-card-cta { padding: 0 .8rem .8rem; }
@media (max-width: 575.98px) { .qg-card-body { padding: 0 .55rem; } .qg-card-cta { padding: 0 .55rem .6rem; } }
