/*
 * Negozio e archivi WooCommerce coordinati con la nuova homepage Joker.
 * Le regole sono volutamente circoscritte a .jhp-catalog-page, cosi la
 * scheda prodotto e le altre pagine del tema non vengono alterate.
 */

body.jhp-catalog-page {
  margin: 0;
  color: var(--jhp-ink);
  background: var(--jhp-paper);
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  line-height: 1.5;
}

/* Il contenitore serve al fallback per i vecchi temi; display: contents fa
   restare l'header sticky rispetto all'intera pagina. */
.jhp-catalog-shell-top {
  display: contents;
}

/* Il nuovo shell sostituisce visivamente header, titolo, ricerca e footer del tema. */
body.jhp-catalog-page .fixed-header-box,
body.jhp-catalog-page .page-header.layout-centered,
body.jhp-catalog-page #sub-header,
body.jhp-catalog-page #sub-header .meta-header,
body.jhp-catalog-page #header-sidebars,
body.jhp-catalog-page footer.main-footer,
body.jhp-catalog-page .footer-wrapper,
body.jhp-catalog-page .wpv-subfooter {
  display: none !important;
}

body.jhp-catalog-page .main-container,
body.jhp-catalog-page #page,
body.jhp-catalog-page .boxed-layout,
body.jhp-catalog-page #main-content,
body.jhp-catalog-page #main {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  background: var(--jhp-paper) !important;
}

/* Nelle pagine operative WooCommerce il vecchio tema aggiunge widget laterali
   non pertinenti (Archivi, Categorie e listino demo). */
body.jhp-cart-page #main .page-wrapper > aside,
body.jhp-cart-page #main .page-wrapper > .sidebar,
body.jhp-cart-page #main .page-wrapper > .left-sidebar,
body.jhp-cart-page #main .page-wrapper > .right-sidebar,
body.jhp-checkout-page #main .page-wrapper > aside,
body.jhp-checkout-page #main .page-wrapper > .sidebar,
body.jhp-checkout-page #main .page-wrapper > .left-sidebar,
body.jhp-checkout-page #main .page-wrapper > .right-sidebar {
  display: none !important;
}

body.jhp-content-page #main .page-wrapper > aside,
body.jhp-content-page #main .page-wrapper > .sidebar,
body.jhp-content-page #main .page-wrapper > .left-sidebar,
body.jhp-content-page #main .page-wrapper > .right-sidebar {
  display: none !important;
}

body.jhp-cart-page #main .page-wrapper > article,
body.jhp-cart-page #main .page-wrapper > .page-content,
body.jhp-cart-page #main .page-wrapper > .content,
body.jhp-checkout-page #main .page-wrapper > article,
body.jhp-checkout-page #main .page-wrapper > .page-content,
body.jhp-checkout-page #main .page-wrapper > .content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body.jhp-content-page #main .page-wrapper > article,
body.jhp-content-page #main .page-wrapper > .page-content,
body.jhp-content-page #main .page-wrapper > .content {
  width: 100% !important;
  max-width: 1040px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

body.jhp-catalog-page #main-content {
  padding-top: 68px !important;
  padding-bottom: 84px !important;
}

body.jhp-catalog-page #main .limit-wrapper {
  width: min(calc(100% - 40px), var(--jhp-max)) !important;
  max-width: none !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding: 0 !important;
}

body.jhp-catalog-page #main .row.page-wrapper,
body.jhp-catalog-page #main article.full,
body.jhp-catalog-page #main .page-content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.jhp-catalog-page #main article.full::before,
body.jhp-catalog-page #main article.full::after,
body.jhp-catalog-page #main .page-content::before,
body.jhp-catalog-page #main .page-content::after {
  display: none !important;
}

/* Pagine Account, Contatti e richiesta prodotti. */
body.jhp-content-page .page-header,
body.jhp-content-page #search-wrapper,
body.jhp-content-page .search-wrapper:not(.jhp-search) {
  display: none !important;
}

body.jhp-content-page #comments,
body.jhp-content-page .comments-area,
body.jhp-content-page .comments-wrapper,
body.jhp-content-page .comment-respond {
  display: none !important;
}

body.jhp-content-page #main article,
body.jhp-content-page #main .page-content,
body.jhp-content-page #main .entry-content {
  color: var(--jhp-ink);
}

body.jhp-content-page #main article.full,
body.jhp-content-page #main .page-wrapper > article,
body.jhp-content-page #main .page-wrapper > .page-content {
  padding: clamp(24px, 4vw, 48px) !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: var(--jhp-shadow) !important;
}

body.jhp-content-page #main h1,
body.jhp-content-page #main h2,
body.jhp-content-page #main h3 {
  color: var(--jhp-ink) !important;
  letter-spacing: -0.025em;
}

body.jhp-content-page #main h2 {
  margin-top: 0;
  margin-bottom: 22px;
  font-size: clamp(28px, 3vw, 40px) !important;
}

body.jhp-content-page #main input[type="text"],
body.jhp-content-page #main input[type="email"],
body.jhp-content-page #main input[type="password"],
body.jhp-content-page #main input[type="tel"],
body.jhp-content-page #main textarea,
body.jhp-content-page #main select {
  min-height: 48px;
  padding: 10px 13px !important;
  border: 1px solid #d8d5e5 !important;
  border-radius: 10px !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.jhp-content-page #main textarea {
  min-height: 130px;
}

body.jhp-content-page #main input:focus,
body.jhp-content-page #main textarea:focus,
body.jhp-content-page #main select:focus {
  border-color: var(--jhp-brand) !important;
  outline: 3px solid rgba(53, 52, 155, 0.12) !important;
}

body.jhp-content-page #main button,
body.jhp-content-page #main .button {
  min-height: 46px;
  padding: 12px 20px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--jhp-brand) !important;
  font-weight: 850 !important;
  box-shadow: none !important;
}

body.jhp-content-page #main button:hover,
body.jhp-content-page #main .button:hover {
  background: var(--jhp-brand-dark) !important;
}

body.jhp-contact-page #main a[href^="tel:"],
body.jhp-contact-page #main a[href^="mailto:"],
body.jhp-contact-page #main a[href*="wa.me"] {
  color: var(--jhp-brand) !important;
  font-weight: 800;
}

/* Area cliente: navigazione, login, registrazione e contenuti account. */
body.jhp-account-page #main .woocommerce {
  width: 100%;
}

body.jhp-account-page #main .woocommerce::after {
  content: "";
  display: table;
  clear: both;
}

body.jhp-account-page #main .u-columns.col2-set,
body.jhp-account-page #main .woocommerce-MyAccount-content {
  gap: 22px;
}

body.jhp-account-page #main .u-columns.col2-set {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.jhp-account-page #main .u-column1,
body.jhp-account-page #main .u-column2,
body.jhp-account-page #main form.login,
body.jhp-account-page #main form.register {
  width: 100% !important;
  padding: 24px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 16px !important;
  background: var(--jhp-soft) !important;
}

body.jhp-account-page #main .woocommerce-MyAccount-navigation {
  width: 250px !important;
  margin-right: 28px;
}

body.jhp-account-page #main .woocommerce-MyAccount-navigation ul {
  margin: 0 !important;
  padding: 8px !important;
  list-style: none !important;
  border: 1px solid var(--jhp-line);
  border-radius: 14px;
  background: var(--jhp-soft);
}

body.jhp-account-page #main .woocommerce-MyAccount-navigation a {
  padding: 11px 13px;
  display: block;
  border-radius: 9px;
  color: var(--jhp-ink);
  font-weight: 750;
}

body.jhp-account-page #main .woocommerce-MyAccount-navigation .is-active a,
body.jhp-account-page #main .woocommerce-MyAccount-navigation a:hover {
  color: #fff;
  background: var(--jhp-brand);
}

body.jhp-account-page #main .woocommerce-MyAccount-content {
  width: calc(100% - 278px) !important;
  padding: 4px 0;
}

/* Scelta documento fiscale: la select originale resta la fonte dei dati e
   continua ad attivare le validazioni del plugin Danea. */
body.jhp-checkout-page #billing_wcexd_invoice_type_field {
  margin: 0 0 28px !important;
  padding: 0 !important;
}

body.jhp-checkout-page #billing_wcexd_invoice_type_field > label,
body.jhp-checkout-page #billing_wcexd_invoice_type_field > .woocommerce-input-wrapper {
  display: none !important;
}

body.jhp-checkout-page .jhp-invoice-choice {
  width: 100%;
}

body.jhp-checkout-page .jhp-invoice-choice-title {
  margin: 0 0 4px !important;
  color: var(--jhp-ink) !important;
  font-size: 21px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}

body.jhp-checkout-page .jhp-invoice-choice-help {
  margin: 0 0 14px !important;
  color: var(--jhp-muted) !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body.jhp-checkout-page .jhp-invoice-choice-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

body.jhp-checkout-page .jhp-invoice-option {
  min-height: 86px;
  padding: 14px 16px !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  border: 2px solid var(--jhp-line) !important;
  border-radius: 14px !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: inherit !important;
  text-align: left !important;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

body.jhp-checkout-page .jhp-invoice-option:hover,
body.jhp-checkout-page .jhp-invoice-option:focus-visible {
  border-color: var(--jhp-brand) !important;
  transform: translateY(-1px);
}

body.jhp-checkout-page .jhp-invoice-option.is-selected {
  border-color: var(--jhp-brand) !important;
  color: #fff !important;
  background: var(--jhp-brand) !important;
}

body.jhp-checkout-page .jhp-invoice-option-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--jhp-brand) !important;
  background: var(--jhp-soft) !important;
  font-size: 21px;
}

body.jhp-checkout-page .jhp-invoice-option > span:last-child {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

body.jhp-checkout-page .jhp-invoice-option strong {
  color: inherit !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}

body.jhp-checkout-page .jhp-invoice-option small {
  margin-top: 4px;
  color: var(--jhp-muted) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}

body.jhp-checkout-page .jhp-invoice-option.is-selected .jhp-invoice-option-icon {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.15) !important;
}

body.jhp-checkout-page .jhp-invoice-option.is-selected strong,
body.jhp-checkout-page .jhp-invoice-option.is-selected small,
body.jhp-checkout-page .jhp-invoice-option.is-selected span,
body.jhp-checkout-page .jhp-invoice-option.is-selected::before,
body.jhp-checkout-page .jhp-invoice-option.is-selected::after {
  color: #fff !important;
}

/* Per gli ospiti la destinazione predefinita "ROMA" e' fuorviante. */
body.jhp-cart-page.jhp-guest-customer .woocommerce-shipping-destination {
  display: none !important;
}

/* Intro compatta: stessa atmosfera della home, senza rallentare l'arrivo ai prodotti. */
.jhp-catalog-hero {
  overflow: hidden;
  border-bottom: 1px solid var(--jhp-line);
  background:
    radial-gradient(
      circle at 82% 5%,
      rgba(239, 60, 112, 0.17),
      transparent 29%
    ),
    radial-gradient(
      circle at 94% 95%,
      rgba(53, 52, 155, 0.18),
      transparent 32%
    ),
    linear-gradient(135deg, #fbfaf7, #f2f0fb);
}

.jhp-catalog-hero-grid {
  min-height: 300px;
  padding-block: 48px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);
  align-items: center;
  gap: 58px;
}

.jhp-catalog-hero h1 {
  max-width: 820px;
  margin: 16px 0 13px;
  font-size: clamp(40px, 4.9vw, 66px);
  line-height: 1.02;
  letter-spacing: -0.052em;
}

.jhp-catalog-hero p {
  max-width: 720px;
  margin: 0;
  color: var(--jhp-muted);
  font-size: clamp(16px, 1.45vw, 19px);
}

.jhp-catalog-summary {
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, 0.86);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: var(--jhp-shadow);
  backdrop-filter: blur(12px);
}

.jhp-catalog-summary > strong {
  display: block;
  color: var(--jhp-brand);
  font-size: 23px;
  letter-spacing: -0.025em;
}

.jhp-catalog-summary > span {
  margin-top: 6px;
  display: block;
  color: var(--jhp-muted);
  font-size: 13px;
}

.jhp-catalog-summary > div {
  margin-top: 17px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.jhp-catalog-summary > div span {
  padding: 7px 9px;
  border-radius: 8px;
  color: var(--jhp-brand);
  background: var(--jhp-soft);
  font-size: 11px;
  font-weight: 850;
}

.jhp-catalog-context {
  border-bottom: 1px solid var(--jhp-line);
  background: #fff;
}

.jhp-catalog-context-inner {
  min-height: 62px;
  padding-block: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.jhp-breadcrumbs {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  color: var(--jhp-muted);
  font-size: 12px;
}

.jhp-breadcrumbs a {
  color: var(--jhp-brand);
  font-weight: 750;
}

.jhp-breadcrumbs a:hover,
.jhp-breadcrumbs a:focus {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.jhp-breadcrumbs strong {
  max-width: 380px;
  overflow: hidden;
  color: var(--jhp-ink);
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jhp-back-parent {
  min-height: 40px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 1px solid var(--jhp-brand);
  border-radius: 999px;
  color: var(--jhp-brand);
  background: #fff;
  font-size: 12px;
  font-weight: 850;
}

.jhp-back-parent:hover,
.jhp-back-parent:focus {
  color: #fff;
  background: var(--jhp-brand);
}

/* L'H1 pubblico e' quello dell'introduzione; quello duplicato dal tema viene nascosto. */
body.jhp-catalog-page .woocommerce-products-header__title {
  display: none !important;
}

body.jhp-catalog-page .woocommerce-products-header {
  width: 100%;
  margin: 0;
  padding: 0;
}

body.jhp-catalog-page .joker-ods-featured-products {
  margin: 0 0 72px !important;
  padding: 0 !important;
  scroll-margin-top: 170px;
}

body.jhp-catalog-page .joker-ods-featured-products > h2,
body.jhp-catalog-page .jhp-catalog-loop-heading h2 {
  margin: 0 0 7px !important;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: clamp(29px, 3vw, 42px) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
  text-transform: none !important;
}

body.jhp-catalog-page .joker-ods-featured-products > h2::after {
  content: "Offerte selezionate sui prodotti professionali più richiesti.";
  margin-top: 7px;
  display: block;
  color: var(--jhp-muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
}

body.jhp-catalog-page .joker-products-grid {
  margin-top: 28px !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

body.jhp-catalog-page .joker-product-card {
  min-width: 0;
  padding: 0 0 16px !important;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--jhp-line) !important;
  border-radius: var(--jhp-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
  text-align: left !important;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

body.jhp-catalog-page .joker-product-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--jhp-shadow) !important;
}

body.jhp-catalog-page .joker-product-link {
  display: flex !important;
  flex-direction: column;
  color: var(--jhp-ink) !important;
}

body.jhp-catalog-page .joker-product-link img {
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  aspect-ratio: 1;
  padding: 14px;
  object-fit: contain;
  background: #faf9fc;
}

body.jhp-catalog-page .joker-product-card h3 {
  min-height: 58px;
  margin: 0 !important;
  padding: 16px 16px 8px !important;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

body.jhp-catalog-page .joker-product-price {
  min-height: 32px;
  padding: 0 16px !important;
  color: var(--jhp-ink) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  text-align: center !important;
}

body.jhp-catalog-page .joker-product-price del {
  margin-right: 5px;
  color: var(--jhp-muted);
  font-size: 12px;
  font-weight: 650;
  opacity: 0.8;
}

body.jhp-catalog-page .joker-product-price ins {
  text-decoration: none;
}

body.jhp-catalog-page .joker-product-card > .button {
  min-height: 43px;
  margin: 13px 16px 0 !important;
  padding: 10px 13px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--jhp-brand) !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: var(--jhp-brand) !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  text-align: center;
}

body.jhp-catalog-page .joker-product-card > .button:hover,
body.jhp-catalog-page .joker-product-card > .button:focus {
  background: var(--jhp-brand-dark) !important;
}

body.jhp-catalog-page .joker-product-card .onsale,
body.jhp-catalog-page .joker-product-card .jcd-sale-badge {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 6px 9px !important;
  position: absolute !important;
  top: 13px !important;
  right: auto !important;
  left: 13px !important;
  z-index: 3;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--jhp-accent) !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

/* Titolo e barra risultati prima delle categorie/prodotti. */
body.jhp-catalog-page .jhp-catalog-loop-heading {
  margin: 0 0 26px;
  clear: both;
}

body.jhp-catalog-page .jhp-catalog-loop-heading p {
  margin: 0;
  color: var(--jhp-muted);
}

body.jhp-catalog-page .woocommerce-result-count {
  margin: 0 0 24px !important;
  padding: 12px 15px;
  float: left !important;
  border: 1px solid var(--jhp-line);
  border-radius: 11px;
  color: var(--jhp-muted);
  background: var(--jhp-soft);
  font-size: 13px;
}

body.jhp-catalog-page .woocommerce-ordering {
  display: none !important;
}

body.jhp-catalog-page .woocommerce-ordering select {
  min-height: 46px;
  padding: 0 44px 0 14px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 11px !important;
  color: var(--jhp-ink) !important;
  background-color: #fff !important;
  font-family: inherit !important;
  font-size: 13px !important;
}

/* Griglia nativa: categorie, sottocategorie e prodotti. */
body.jhp-catalog-page ul.products.vamtam-wc {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  clear: both;
}

body.jhp-catalog-page ul.products.vamtam-wc::before,
body.jhp-catalog-page ul.products.vamtam-wc::after {
  display: none !important;
}

body.jhp-catalog-page ul.products.vamtam-wc > li.product {
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 0 16px !important;
  display: flex;
  float: none !important;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--jhp-line) !important;
  border-radius: var(--jhp-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
  list-style: none;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

body.jhp-catalog-page ul.products.vamtam-wc > li.product:hover {
  transform: translateY(-5px);
  box-shadow: var(--jhp-shadow) !important;
}

body.jhp-catalog-page ul.products.vamtam-wc > li.product > a {
  color: var(--jhp-ink) !important;
}

body.jhp-catalog-page li.product-category {
  padding-bottom: 0 !important;
}

body.jhp-catalog-page li.product-category > a {
  height: 100%;
  display: flex !important;
  flex-direction: column;
}

body.jhp-catalog-page li.product-category img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1;
  margin: 0 !important;
  padding: 17px;
  object-fit: contain;
  background: var(--jhp-soft-warm);
}

body.jhp-catalog-page li.product-category .woocommerce-loop-category__title {
  min-height: 76px;
  margin: 0 !important;
  padding: 16px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-transform: none !important;
}

body.jhp-catalog-page li.product-category .count {
  margin-top: 5px;
  color: var(--jhp-brand) !important;
  background: transparent !important;
  font-size: 11px !important;
  font-weight: 750 !important;
}

body.jhp-catalog-page li.type-product > .woocommerce-LoopProduct-link {
  min-width: 0;
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column;
}

body.jhp-catalog-page ul.products.vamtam-wc > li.type-product > .onsale,
body.jhp-catalog-page ul.products.vamtam-wc > li.type-product > .jcd-sale-badge {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 6px 9px !important;
  position: absolute !important;
  top: 13px !important;
  right: auto !important;
  left: 13px !important;
  z-index: 3;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--jhp-accent) !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

body.jhp-catalog-page li.type-product .product-thumbnail {
  width: 100%;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #faf9fc;
}

body.jhp-catalog-page li.type-product .product-thumbnail img,
body.jhp-catalog-page li.type-product > a > img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 14px;
  object-fit: contain;
}

body.jhp-catalog-page li.type-product .woocommerce-loop-product__title {
  min-height: 64px;
  margin: 0 !important;
  padding: 16px 16px 8px !important;
  order: 2;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-transform: none !important;
}

body.jhp-catalog-page li.type-product .price {
  min-height: 34px;
  margin: 0 !important;
  padding: 0 16px 8px !important;
  display: block !important;
  order: 3;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-align: center !important;
}

body.jhp-catalog-page li.type-product .price del {
  margin-right: 5px;
  color: var(--jhp-muted) !important;
  font-size: 12px !important;
  font-weight: 650;
  opacity: 0.8;
}

body.jhp-catalog-page li.type-product .price ins {
  text-decoration: none !important;
}

body.jhp-catalog-page li.type-product .woocommerce-price-suffix,
body.jhp-catalog-page li.type-product .woocommerce-Price-taxLabel {
  color: var(--jhp-muted) !important;
  font-size: 10px !important;
  font-weight: 650 !important;
}

body.jhp-catalog-page .joker-quantity-cart-pair {
  width: auto !important;
  margin: 8px 16px 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px !important;
}

body.jhp-catalog-page .joker-quantity-cart {
  width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 8px 7px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px !important;
  border: 1px solid var(--jhp-brand) !important;
  border-radius: 10px !important;
  color: var(--jhp-brand) !important;
  background: #fff !important;
  font-family: inherit !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  text-align: center;
}

body.jhp-catalog-page .joker-quantity-cart--three {
  color: #fff !important;
  background: var(--jhp-brand) !important;
}

body.jhp-catalog-page .joker-quantity-cart--three:visited,
body.jhp-catalog-page .joker-quantity-cart--three span,
body.jhp-catalog-page .joker-quantity-cart--three .icon,
body.jhp-catalog-page .joker-quantity-cart--three .icon::before,
body.jhp-catalog-page .joker-quantity-cart--three::before,
body.jhp-catalog-page .joker-quantity-cart--three::after {
  color: #fff !important;
}

body.jhp-catalog-page .joker-quantity-cart--three svg,
body.jhp-catalog-page .joker-quantity-cart--three svg * {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}

/* Contrasto uniforme sui comandi blu: il tema Hair Beauty forza spesso il
   nero sui link visitati, sulle icone interne e sugli pseudo-elementi. */
body.jhp-catalog-page .joker-product-card > .button:visited,
body.jhp-catalog-page .joker-product-card > .button *,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart):visited,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart) *,
body.jhp-content-page #main button *,
body.jhp-content-page #main .button *,
body.jhp-account-page #main .woocommerce-MyAccount-navigation .is-active a *,
body.jhp-cart-page .return-to-shop .button *,
body.jhp-checkout-page .jhp-invoice-option.is-selected * {
  color: #fff !important;
}

body.jhp-catalog-page .joker-product-card > .button::before,
body.jhp-catalog-page .joker-product-card > .button::after,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart)::before,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart)::after,
body.jhp-content-page #main button::before,
body.jhp-content-page #main button::after,
body.jhp-content-page #main .button::before,
body.jhp-content-page #main .button::after,
body.jhp-checkout-page .jhp-invoice-option.is-selected::before,
body.jhp-checkout-page .jhp-invoice-option.is-selected::after {
  color: #fff !important;
}

body.jhp-catalog-page .joker-product-card > .button svg,
body.jhp-catalog-page .joker-product-card > .button svg *,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart) svg,
body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart) svg *,
body.jhp-content-page #main button svg,
body.jhp-content-page #main button svg *,
body.jhp-content-page #main .button svg,
body.jhp-content-page #main .button svg *,
body.jhp-checkout-page .jhp-invoice-option.is-selected svg,
body.jhp-checkout-page .jhp-invoice-option.is-selected svg * {
  color: #fff !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

body.jhp-catalog-page .joker-quantity-cart:hover,
body.jhp-catalog-page .joker-quantity-cart:focus {
  color: #fff !important;
  background: var(--jhp-brand-dark) !important;
}

body.jhp-catalog-page .joker-quantity-cart .icon {
  margin: 0 !important;
  color: currentColor !important;
  font-size: 19px !important;
  line-height: 1 !important;
}

body.jhp-catalog-page li.type-product > .button:not(.joker-quantity-cart) {
  min-height: 44px;
  margin: 8px 16px 0 !important;
  padding: 9px 11px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--jhp-brand) !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: var(--jhp-brand) !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  text-align: center;
}

/* Disponibilita' leggibile gia' dalla vetrina. Il comando Esaurito non e' un
   link e non puo' quindi aprire involontariamente la scheda prodotto. */
body.jhp-catalog-page li.type-product .jhp-out-of-stock-badge,
body.jhp-catalog-page .joker-product-card .jhp-out-of-stock-badge {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 7px 11px !important;
  position: absolute !important;
  top: 13px !important;
  right: 13px !important;
  z-index: 5;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: #b42318 !important;
  box-shadow: 0 5px 14px rgba(180, 35, 24, 0.22) !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  pointer-events: none;
}

body.jhp-catalog-page li.type-product > .jhp-out-of-stock-action,
body.jhp-catalog-page .joker-product-card > .jhp-out-of-stock-action {
  min-height: 44px;
  margin: 8px 16px 0 !important;
  padding: 9px 11px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid #d8d5dd !important;
  border-radius: 10px !important;
  color: #5f5b66 !important;
  background: #efedf2 !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  text-align: center;
  text-transform: uppercase;
  cursor: not-allowed;
  pointer-events: none;
}

/* Le azioni Compra 1/3 aggiunte da altre plugin non devono sopravvivere su
   una scheda che WooCommerce ha marcato come esaurita. */
body.jhp-catalog-page li.type-product.outofstock .joker-quantity-cart-pair,
body.jhp-catalog-page .joker-product-card.outofstock .joker-quantity-cart-pair {
  display: none !important;
}

body.jhp-catalog-page .woocommerce-message,
body.jhp-catalog-page .woocommerce-info,
body.jhp-catalog-page .woocommerce-error {
  border-radius: 12px;
  font-family: inherit;
}

/* Carrello coordinato con la nuova homepage. */
body.jhp-cart-page .woocommerce {
  width: 100%;
}

body.jhp-cart-page .woocommerce-message,
body.jhp-cart-page .woocommerce-info,
body.jhp-cart-page .woocommerce-error {
  margin-bottom: 24px !important;
  padding: 16px 18px 16px 52px !important;
  border: 1px solid var(--jhp-line) !important;
  border-top: 3px solid var(--jhp-brand) !important;
  border-radius: 13px;
  color: var(--jhp-ink) !important;
  background: var(--jhp-soft) !important;
  box-shadow: none !important;
}

body.jhp-cart-page .woocommerce-cart-form {
  margin: 0 0 40px !important;
}

body.jhp-cart-page .jhp-cart-order-note {
  margin: 0 0 24px;
  padding: 22px;
  border: 1px solid rgba(53, 52, 155, 0.2);
  border-radius: 17px;
  background: linear-gradient(135deg, #f8f7fd, #fff);
  box-shadow: 0 10px 30px rgba(27, 24, 73, 0.08);
}

body.jhp-cart-page .jhp-cart-order-note-heading {
  margin-bottom: 14px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

body.jhp-cart-page .jhp-cart-order-note-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff !important;
  background: var(--jhp-brand);
  font-size: 21px;
  font-weight: 900;
}

body.jhp-cart-page .jhp-cart-order-note h2 {
  margin: 0 0 4px !important;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 21px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

body.jhp-cart-page .jhp-cart-order-note h2 small {
  margin-left: 5px;
  color: var(--jhp-muted) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

body.jhp-cart-page .jhp-cart-order-note-heading p {
  margin: 0 !important;
  color: var(--jhp-muted) !important;
  font-size: 12px !important;
}

body.jhp-cart-page #jhpCartOrderNote {
  width: 100% !important;
  min-height: 112px;
  padding: 13px 14px !important;
  resize: vertical;
  border: 1px solid #d8d5e5 !important;
  border-radius: 12px !important;
  outline: 0 !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body.jhp-cart-page #jhpCartOrderNote:focus {
  border-color: var(--jhp-brand) !important;
  box-shadow: 0 0 0 4px rgba(53, 52, 155, 0.11) !important;
}

body.jhp-cart-page #jhpCartOrderNote::placeholder {
  color: #77758a;
  opacity: 1;
}

body.jhp-cart-page .jhp-cart-order-note-status {
  min-height: 17px;
  margin-top: 7px;
  display: block;
  color: #18794e;
  font-size: 11px;
  font-weight: 800;
  text-align: right;
}

body.jhp-cart-page .jhp-cart-order-note-status.is-error {
  color: #b42318;
}

body.jhp-cart-page table.shop_table {
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden;
  border: 1px solid var(--jhp-line) !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-radius: var(--jhp-radius) !important;
  background: #fff;
  box-shadow: none !important;
}

body.jhp-cart-page table.shop_table th {
  padding: 15px 14px !important;
  border: 0 !important;
  color: var(--jhp-ink) !important;
  background: var(--jhp-soft) !important;
  font-size: 12px;
  font-weight: 850 !important;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

body.jhp-cart-page table.shop_table td {
  padding: 16px 14px !important;
  border-width: 1px 0 0 !important;
  border-color: var(--jhp-line) !important;
  color: var(--jhp-ink) !important;
  vertical-align: middle !important;
}

body.jhp-cart-page td.product-thumbnail {
  width: 104px;
}

body.jhp-cart-page td.product-thumbnail img {
  width: 82px !important;
  height: 82px !important;
  padding: 5px;
  border-radius: 12px;
  background: var(--jhp-soft-warm);
  object-fit: contain;
}

body.jhp-cart-page td.product-name a {
  color: var(--jhp-ink) !important;
  font-weight: 800;
}

body.jhp-cart-page td.product-name a:hover,
body.jhp-cart-page td.product-name a:focus {
  color: var(--jhp-brand) !important;
}

body.jhp-cart-page td.product-price,
body.jhp-cart-page td.product-subtotal {
  font-weight: 850;
  white-space: nowrap;
}

body.jhp-cart-page td.product-remove {
  width: 52px;
  text-align: center;
}

body.jhp-cart-page td.product-remove a.remove {
  width: 34px !important;
  height: 34px !important;
  display: inline-grid !important;
  place-items: center;
  border: 1px solid #f1ccd7;
  border-radius: 50%;
  color: var(--jhp-accent) !important;
  background: #fff5f8 !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

body.jhp-cart-page .quantity .qty {
  width: 76px !important;
  min-height: 44px;
  padding: 0 8px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 10px !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  text-align: center;
}

body.jhp-cart-page table.shop_table td.actions {
  padding: 14px !important;
  background: var(--jhp-soft) !important;
}

body.jhp-cart-page .coupon {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.jhp-cart-page .coupon .input-text {
  width: min(240px, 45vw) !important;
  min-height: 44px;
  padding: 0 13px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
}

body.jhp-cart-page .button,
body.jhp-cart-page button.button,
body.jhp-cart-page input.button {
  min-height: 44px !important;
  padding: 10px 16px !important;
  border: 1px solid var(--jhp-brand) !important;
  border-radius: 10px !important;
  color: var(--jhp-brand) !important;
  background: #fff !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}

body.jhp-cart-page .button:hover,
body.jhp-cart-page .button:focus {
  color: #fff !important;
  background: var(--jhp-brand) !important;
}

body.jhp-cart-page .cart-collaterals {
  width: 100% !important;
  margin-top: 8px !important;
  display: grid;
  grid-template-columns: minmax(340px, 480px) minmax(0, 1fr);
  gap: 28px;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

body.jhp-cart-page .cart-collaterals::before,
body.jhp-cart-page .cart-collaterals::after {
  display: none !important;
}

body.jhp-cart-page .cart_totals {
  width: 100% !important;
  padding: 24px;
  grid-column: 1;
  float: none !important;
  margin-right: auto !important;
  margin-left: 0 !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: var(--jhp-radius) !important;
  outline: 0 !important;
  background: #fff !important;
  box-shadow: var(--jhp-shadow) !important;
}

body.jhp-cart-page .cart_totals h2 {
  margin: 0 0 17px !important;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 25px !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em;
  text-transform: none !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.jhp-cart-page .cart_totals table.shop_table {
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

body.jhp-cart-page .cart_totals table.shop_table th,
body.jhp-cart-page .cart_totals table.shop_table td {
  background: #fff !important;
  text-transform: none;
}

body.jhp-cart-page .cart_totals .order-total th,
body.jhp-cart-page .cart_totals .order-total td {
  color: var(--jhp-brand) !important;
  font-size: 17px;
  font-weight: 900 !important;
}

body.jhp-cart-page .wc-proceed-to-checkout {
  padding: 18px 0 0 !important;
}

/* Hair Beauty duplica il comando di aggiornamento dentro il blocco checkout.
   Lo separiamo dal pulsante principale con uno spazio reale e non collassabile. */
body.jhp-cart-page .wc-proceed-to-checkout > [name="update_cart"] {
  width: auto !important;
  display: block !important;
  clear: both;
  margin: 0 0 24px !important;
}

body.jhp-cart-page .wc-proceed-to-checkout .checkout-button {
  width: 100%;
  display: block !important;
  clear: both;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 13px 18px !important;
  border-color: var(--jhp-accent) !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: var(--jhp-accent) !important;
  font-size: 15px !important;
}

body.jhp-cart-page .wc-proceed-to-checkout .checkout-button:hover,
body.jhp-cart-page .wc-proceed-to-checkout .checkout-button:focus {
  border-color: #d82f62 !important;
  background: #d82f62 !important;
}

body.jhp-cart-page .cart-empty.woocommerce-info {
  padding: 34px 24px !important;
  border-top: 0 !important;
  border-radius: var(--jhp-radius);
  text-align: center;
  font-size: 18px;
  font-weight: 800;
}

body.jhp-cart-page .return-to-shop {
  text-align: center;
}

body.jhp-cart-page .return-to-shop .button {
  min-height: 48px !important;
  color: #fff !important;
  background: var(--jhp-brand) !important;
}

/* Checkout classico e Checkout Blocks coordinati con il resto del sito. */
body.jhp-checkout-page .woocommerce,
body.jhp-checkout-page .wc-block-checkout {
  width: 100%;
  color: var(--jhp-ink);
  font-family: inherit;
}

body.jhp-checkout-page .woocommerce-notices-wrapper,
body.jhp-checkout-page .woocommerce-form-coupon-toggle,
body.jhp-checkout-page .woocommerce-form-login-toggle {
  margin-bottom: 18px;
}

body.jhp-checkout-page .woocommerce-message,
body.jhp-checkout-page .woocommerce-info,
body.jhp-checkout-page .woocommerce-error {
  margin-bottom: 18px !important;
  padding: 15px 18px 15px 50px !important;
  border: 1px solid var(--jhp-line) !important;
  border-top: 3px solid var(--jhp-brand) !important;
  border-radius: 13px;
  color: var(--jhp-ink) !important;
  background: var(--jhp-soft) !important;
  box-shadow: none !important;
}

body.jhp-checkout-page form.checkout.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.25fr) minmax(350px, 0.75fr);
  grid-template-areas:
    "customer heading"
    "customer review";
  grid-template-rows: auto 1fr;
  align-items: start;
  column-gap: 28px;
  row-gap: 0;
}

body.jhp-checkout-page form.checkout .col2-set,
body.jhp-checkout-page form.checkout #customer_details {
  width: 100% !important;
  margin: 0 !important;
  grid-area: customer;
}

body.jhp-checkout-page form.checkout .col2-set .col-1,
body.jhp-checkout-page form.checkout .col2-set .col-2,
body.jhp-checkout-page form.checkout #customer_details .col-1,
body.jhp-checkout-page form.checkout #customer_details .col-2 {
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 24px !important;
  float: none !important;
  border: 1px solid var(--jhp-line);
  border-radius: var(--jhp-radius);
  background: #fff;
  box-shadow: var(--jhp-shadow);
}

body.jhp-checkout-page form.checkout #order_review_heading {
  margin: 0 !important;
  padding: 24px 24px 0 !important;
  grid-area: heading;
  border: 1px solid var(--jhp-line);
  border-bottom: 0;
  border-radius: var(--jhp-radius) var(--jhp-radius) 0 0;
  background: #fff;
  font-family: inherit !important;
  font-size: 25px !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em;
  text-transform: none !important;
}

body.jhp-checkout-page form.checkout #order_review {
  margin: 0 !important;
  padding: 16px 24px 24px !important;
  grid-area: review;
  border: 1px solid var(--jhp-line);
  border-top: 0;
  border-radius: 0 0 var(--jhp-radius) var(--jhp-radius);
  background: #fff;
  box-shadow: var(--jhp-shadow);
}

/* Il tema Hair Beauty inserisce entrambe le sezioni dentro #customer_details:
   .col-1 contiene fatturazione/spedizione e .col-2 contiene il riepilogo.
   Su desktop la griglia va quindi applicata a quel contenitore, non al form. */
@media (min-width: 761px) {
  body.jhp-checkout-page form.checkout.woocommerce-checkout {
    display: block !important;
  }

  body.jhp-checkout-page form.checkout #customer_details.col2-set {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.25fr) minmax(380px, 0.75fr);
    align-items: start;
    gap: 28px;
  }

  /* I clearfix del tema diventano elementi impliciti della CSS Grid e
     spostano .col-1 in alto a destra e .col-2 nella riga seguente. */
  body.jhp-checkout-page form.checkout #customer_details.col2-set::before,
  body.jhp-checkout-page form.checkout #customer_details.col2-set::after {
    content: none !important;
    display: none !important;
  }

  body.jhp-checkout-page form.checkout #customer_details.col2-set > .col-1,
  body.jhp-checkout-page form.checkout #customer_details.col2-set > .col-2 {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
  }

  body.jhp-checkout-page form.checkout #customer_details.col2-set > .col-2 {
    padding: 0 !important;
    overflow: hidden;
  }

  body.jhp-checkout-page form.checkout #customer_details.col2-set > .col-2 #order_review_heading {
    margin: 0 !important;
    padding: 24px 24px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.jhp-checkout-page form.checkout #customer_details.col2-set > .col-2 #order_review {
    margin: 0 !important;
    padding: 16px 24px 24px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

body.jhp-checkout-page .woocommerce-billing-fields > h3,
body.jhp-checkout-page .woocommerce-additional-fields > h3,
body.jhp-checkout-page .woocommerce-shipping-fields h3,
body.jhp-checkout-page .woocommerce-order-details__title,
body.jhp-checkout-page .woocommerce-column__title {
  margin: 0 0 18px !important;
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-size: 25px !important;
  font-weight: 850 !important;
  letter-spacing: -0.025em;
  text-transform: none !important;
}

body.jhp-checkout-page form.checkout .form-row {
  margin: 0 0 15px !important;
  padding: 0 !important;
}

body.jhp-checkout-page form.checkout .form-row label {
  margin-bottom: 6px;
  color: var(--jhp-ink);
  font-size: 12px;
  font-weight: 800;
}

body.jhp-checkout-page form.checkout input.input-text,
body.jhp-checkout-page form.checkout textarea,
body.jhp-checkout-page form.checkout select,
body.jhp-checkout-page .select2-container .select2-selection--single {
  width: 100% !important;
  min-height: 48px !important;
  padding: 10px 13px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 10px !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  font-family: inherit !important;
  box-shadow: none !important;
}

body.jhp-checkout-page form.checkout textarea {
  min-height: 110px !important;
  resize: vertical;
}

/* Protezione visiva per campi ristampati da estensioni del checkout: le note
   sono raccolte nel carrello e il codice fiscale non viene piu' richiesto. */
body.jhp-checkout-page #order_comments_field,
body.jhp-checkout-page textarea#order_comments,
body.jhp-checkout-page #billing_wcexd_cf_field,
body.jhp-checkout-page input#billing_wcexd_cf {
  display: none !important;
}

body.jhp-checkout-page .select2-container .select2-selection__rendered {
  padding: 0 !important;
  line-height: 26px !important;
}

body.jhp-checkout-page .select2-container .select2-selection__arrow {
  top: 11px !important;
  right: 8px !important;
}

body.jhp-checkout-page form.checkout input:focus,
body.jhp-checkout-page form.checkout textarea:focus,
body.jhp-checkout-page form.checkout select:focus,
body.jhp-checkout-page .select2-container--focus .select2-selection {
  border-color: var(--jhp-brand) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(53, 52, 155, 0.12) !important;
}

body.jhp-checkout-page #order_review table.shop_table,
body.jhp-checkout-page .woocommerce-order-details table.shop_table {
  width: 100% !important;
  margin: 0 0 18px !important;
  border: 1px solid var(--jhp-line) !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-radius: 12px !important;
  background: #fff;
}

body.jhp-checkout-page #order_review table.shop_table th,
body.jhp-checkout-page #order_review table.shop_table td,
body.jhp-checkout-page .woocommerce-order-details table.shop_table th,
body.jhp-checkout-page .woocommerce-order-details table.shop_table td {
  padding: 13px 11px !important;
  border-width: 1px 0 0 !important;
  border-color: var(--jhp-line) !important;
  color: var(--jhp-ink) !important;
}

body.jhp-checkout-page #order_review table.shop_table thead th {
  border-top: 0 !important;
  background: var(--jhp-soft) !important;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

body.jhp-checkout-page #order_review .order-total th,
body.jhp-checkout-page #order_review .order-total td {
  color: var(--jhp-brand) !important;
  font-size: 17px;
  font-weight: 900 !important;
}

body.jhp-checkout-page #payment {
  border: 1px solid var(--jhp-line) !important;
  border-radius: 13px !important;
  color: var(--jhp-ink) !important;
  background: var(--jhp-soft) !important;
}

body.jhp-checkout-page #payment ul.payment_methods {
  padding: 16px !important;
  border-bottom-color: var(--jhp-line) !important;
}

body.jhp-checkout-page #payment .payment_box {
  border-radius: 10px !important;
  color: var(--jhp-muted) !important;
  background: #fff !important;
  font-size: 12px;
}

body.jhp-checkout-page #payment .place-order {
  margin: 0 !important;
  padding: 16px !important;
}

body.jhp-checkout-page #place_order,
body.jhp-checkout-page .wc-block-components-checkout-place-order-button {
  width: 100% !important;
  min-height: 54px !important;
  padding: 13px 18px !important;
  border: 1px solid var(--jhp-accent) !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: var(--jhp-accent) !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

body.jhp-checkout-page #place_order:hover,
body.jhp-checkout-page #place_order:focus,
body.jhp-checkout-page .wc-block-components-checkout-place-order-button:hover,
body.jhp-checkout-page .wc-block-components-checkout-place-order-button:focus {
  border-color: #d82f62 !important;
  background: #d82f62 !important;
}

/* Compatibilita con il Checkout Block di WooCommerce. */
body.jhp-checkout-page .wc-block-components-sidebar-layout {
  align-items: start;
  gap: 28px;
}

body.jhp-checkout-page .wc-block-components-main,
body.jhp-checkout-page .wc-block-components-sidebar {
  margin: 0 !important;
  padding: 24px !important;
  border: 1px solid var(--jhp-line);
  border-radius: var(--jhp-radius);
  background: #fff;
  box-shadow: var(--jhp-shadow);
}

body.jhp-checkout-page .wc-block-components-title,
body.jhp-checkout-page .wc-block-components-checkout-step__title {
  color: var(--jhp-ink) !important;
  font-family: inherit !important;
  font-weight: 850 !important;
}

body.jhp-checkout-page .wc-block-components-text-input input,
body.jhp-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  min-height: 48px !important;
  border-color: var(--jhp-line) !important;
  border-radius: 10px !important;
  color: var(--jhp-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.jhp-checkout-page .wc-block-components-order-summary,
body.jhp-checkout-page .wc-block-components-totals-wrapper,
body.jhp-checkout-page .wc-block-checkout__payment-method {
  border-color: var(--jhp-line) !important;
}

/* Conferma ordine. */
body.jhp-order-received-page .woocommerce-order,
body.jhp-order-received-page .wc-block-order-confirmation {
  padding: 26px;
  border: 1px solid var(--jhp-line);
  border-radius: var(--jhp-radius);
  background: #fff;
  box-shadow: var(--jhp-shadow);
}

body.jhp-order-received-page .woocommerce-thankyou-order-received {
  margin: 0 0 22px !important;
  padding: 17px 18px !important;
  border-radius: 12px;
  color: #11633f;
  background: #eef9f3;
  font-size: 16px;
  font-weight: 850;
}

body.jhp-order-received-page ul.order_details {
  margin: 0 0 26px !important;
  padding: 17px !important;
  border: 1px solid var(--jhp-line);
  border-radius: 12px;
  background: var(--jhp-soft);
}

/* L'indirizzo della pagina Ordine ricevuto non deve ereditare il vecchio
   riquadro rosso del tema. Manteniamo un'unica scheda neutra e coordinata. */
body.jhp-order-received-page .woocommerce-customer-details,
body.jhp-order-received-page .woocommerce-columns--addresses,
body.jhp-order-received-page .woocommerce-column--billing-address,
body.jhp-order-received-page .woocommerce-column--shipping-address {
  border-color: var(--jhp-line) !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.jhp-order-received-page .woocommerce-customer-details address,
body.jhp-order-received-page .woocommerce-column address,
body.jhp-order-received-page address.woocommerce-customer-details--address {
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid var(--jhp-line) !important;
  border-radius: 12px !important;
  outline: 0 !important;
  color: var(--jhp-ink) !important;
  background: var(--jhp-soft) !important;
  box-shadow: none !important;
  font-style: normal !important;
}

body.jhp-order-received-page .woocommerce-customer-details address::before,
body.jhp-order-received-page .woocommerce-customer-details address::after,
body.jhp-order-received-page .woocommerce-column address::before,
body.jhp-order-received-page .woocommerce-column address::after {
  content: none !important;
  display: none !important;
}

body.jhp-catalog-page .woocommerce-pagination,
body.jhp-catalog-page .load-more,
body.jhp-catalog-page .vamtam-load-more {
  margin-top: 34px !important;
}

body.jhp-catalog-page .woocommerce-pagination a,
body.jhp-catalog-page .woocommerce-pagination span,
body.jhp-catalog-page .load-more a,
body.jhp-catalog-page .vamtam-load-more a {
  border-radius: 9px !important;
}

body.jhp-catalog-page .jhp-catalog-footer {
  position: relative;
  z-index: 2;
}

/* La freccia del vecchio tema si sovrappone al nuovo carrello flottante. */
body.jhp-catalog-page #scroll-to-top {
  display: none !important;
}

/* Pagine di servizio: moduli interni, spedizioni, resi e condizioni. */
.jhp-service-content {
  width: 100%;
}

.jhp-service-lead {
  max-width: 760px;
  margin-bottom: 32px;
}

.jhp-service-lead.is-compact {
  margin-bottom: 24px;
}

.jhp-service-kicker {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--jhp-brand);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.jhp-content-page #main .jhp-service-lead h2 {
  margin: 0 0 12px !important;
}

.jhp-service-lead p,
.jhp-policy-sections p,
.jhp-policy-sections li {
  color: #4f4d62;
  font-size: 16px;
  line-height: 1.72;
}

.jhp-service-form-layout {
  display: grid;
  grid-template-columns: minmax(230px, 0.68fr) minmax(0, 1.45fr);
  align-items: start;
  gap: 24px;
  scroll-margin-top: 180px;
}

.jhp-form-help,
.jhp-service-form-card {
  border: 1px solid var(--jhp-line);
  border-radius: 18px;
}

.jhp-form-help {
  padding: 26px;
  color: #fff;
  background: linear-gradient(145deg, var(--jhp-brand-dark), var(--jhp-brand));
}

.jhp-form-help-icon {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 14px;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  font-size: 24px;
  font-weight: 900;
}

body.jhp-content-page #main .jhp-form-help h3,
body.jhp-content-page #main .jhp-form-help p,
body.jhp-content-page #main .jhp-form-help li,
body.jhp-content-page #main .jhp-form-help a {
  color: #fff !important;
}

.jhp-form-help h3 {
  margin: 0 0 13px !important;
  font-size: 23px !important;
}

.jhp-form-help ul {
  margin: 18px 0 22px;
  padding-left: 20px;
}

.jhp-form-help p,
.jhp-form-help li {
  line-height: 1.6;
}

.jhp-service-form-card {
  padding: clamp(22px, 3vw, 34px);
  background: #f8f8fc;
}

.jhp-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.jhp-form-grid > p {
  margin: 0 !important;
}

.jhp-form-grid .jhp-form-wide {
  grid-column: 1 / -1;
}

.jhp-service-form label:not(.jhp-privacy-check) {
  display: block;
  margin-bottom: 7px;
  color: var(--jhp-ink);
  font-size: 14px;
  font-weight: 800;
}

.jhp-service-form label small {
  color: #747184;
  font-weight: 600;
}

body.jhp-content-page #main .jhp-service-form input[type="text"],
body.jhp-content-page #main .jhp-service-form input[type="email"],
body.jhp-content-page #main .jhp-service-form input[type="tel"],
body.jhp-content-page #main .jhp-service-form textarea,
body.jhp-content-page #main .jhp-service-form select {
  width: 100% !important;
  margin: 0 !important;
  background: #fff !important;
}

.jhp-privacy-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 21px 0 18px;
  color: #555267;
  font-size: 13px;
  line-height: 1.5;
}

.jhp-privacy-check input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0 !important;
  flex: 0 0 18px;
  accent-color: var(--jhp-brand);
}

.jhp-privacy-check a,
.jhp-policy-sections a {
  color: var(--jhp-brand) !important;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.jhp-content-page #main .jhp-service-submit,
body.jhp-content-page #main .jhp-inline-button {
  color: #fff !important;
  background: var(--jhp-brand) !important;
}

body.jhp-content-page #main .jhp-service-submit {
  width: 100%;
}

body.jhp-content-page #main .jhp-inline-button {
  width: fit-content;
  min-height: 42px;
  padding: 10px 17px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 850;
  text-decoration: none;
}

body.jhp-content-page #main .jhp-form-help .jhp-inline-button {
  color: var(--jhp-brand-dark) !important;
  background: #fff !important;
}

.jhp-form-footnote {
  margin: 13px 0 0;
  color: #767386;
  font-size: 12px;
  text-align: center;
}

.jhp-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.jhp-form-notice {
  margin: 0 0 22px;
  padding: 15px 16px;
  display: grid;
  gap: 3px;
  border: 1px solid #b9ded0;
  border-radius: 12px;
  color: #165a43;
  background: #eefaf5;
}

.jhp-form-notice.is-error {
  border-color: #efc5c7;
  color: #8a1f27;
  background: #fff3f3;
}

.jhp-contact-cards {
  margin-bottom: 30px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.jhp-contact-card {
  min-width: 0;
  padding: 20px 16px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  border: 1px solid var(--jhp-line);
  border-radius: 15px;
  color: var(--jhp-ink) !important;
  background: #fff;
  text-decoration: none;
}

.jhp-contact-card > span {
  grid-row: 1 / 3;
  color: var(--jhp-brand);
  font-size: 25px;
  font-weight: 900;
}

.jhp-contact-card small {
  color: #767386;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.jhp-contact-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--jhp-ink);
  font-size: 14px;
}

.jhp-policy-highlight-grid {
  margin-bottom: 34px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.jhp-policy-highlight {
  min-height: 185px;
  padding: 23px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  border: 1px solid var(--jhp-line);
  border-radius: 17px;
  background: #f8f8fc;
}

.jhp-policy-highlight > span {
  margin-bottom: 16px;
  color: var(--jhp-brand);
  font-size: 25px;
  font-weight: 900;
}

.jhp-policy-highlight small {
  color: #696679;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.jhp-policy-highlight strong {
  margin: 4px 0 8px;
  color: var(--jhp-ink);
  font-size: 24px;
}

.jhp-policy-highlight p {
  margin: auto 0 0;
  color: #5f5c70;
  line-height: 1.55;
}

.jhp-policy-highlight.is-featured {
  border-color: var(--jhp-brand);
  color: #fff;
  background: linear-gradient(145deg, var(--jhp-brand-dark), var(--jhp-brand));
}

.jhp-policy-highlight.is-featured > span,
.jhp-policy-highlight.is-featured small,
.jhp-policy-highlight.is-featured strong,
.jhp-policy-highlight.is-featured p {
  color: #fff !important;
}

.jhp-policy-callout {
  margin-bottom: 30px;
  padding: 19px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  border-left: 5px solid var(--jhp-brand);
  border-radius: 12px;
  color: #48455b;
  background: #f2f1fb;
}

.jhp-policy-callout strong {
  flex: 0 0 auto;
  color: var(--jhp-brand-dark);
}

.jhp-policy-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: 34px;
}

.jhp-policy-index {
  position: sticky;
  top: 178px;
  padding: 20px;
  display: grid;
  gap: 3px;
  border: 1px solid var(--jhp-line);
  border-radius: 15px;
  background: #f8f8fc;
}

.jhp-policy-index strong {
  margin-bottom: 9px;
  color: var(--jhp-ink);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.jhp-policy-index a {
  padding: 7px 8px;
  border-radius: 8px;
  color: #575469 !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.jhp-policy-index a:hover {
  color: var(--jhp-brand) !important;
  background: #eeedf8;
}

.jhp-policy-sections {
  counter-reset: jhp-policy-section;
}

.jhp-policy-sections > section {
  padding: 0 0 30px;
  scroll-margin-top: 185px;
}

.jhp-policy-sections > section + section {
  padding-top: 30px;
  border-top: 1px solid var(--jhp-line);
}

body.jhp-content-page #main .jhp-policy-sections h2 {
  margin: 0 0 13px !important;
  font-size: clamp(25px, 2.7vw, 34px) !important;
}

.jhp-numbered-sections > section {
  counter-increment: jhp-policy-section;
}

.jhp-numbered-sections > section h2::before {
  content: counter(jhp-policy-section) ". ";
  color: var(--jhp-brand);
}

.jhp-policy-sections ul,
.jhp-policy-sections ol {
  padding-left: 22px;
}

.jhp-withdrawal-template {
  margin: 18px 0;
  padding: 20px;
  border: 1px dashed #aaa6bf;
  border-radius: 12px;
  background: #fafafe;
}

.jhp-withdrawal-template p {
  margin: 0 0 13px;
  color: #403d50;
}

.jhp-withdrawal-template p:last-child {
  margin-bottom: 0;
}

.jhp-policy-source {
  color: #6c697b !important;
  font-size: 13px !important;
}

@media (max-width: 1040px) {
  .jhp-catalog-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(270px, 0.55fr);
    gap: 30px;
  }

  body.jhp-catalog-page .joker-products-grid,
  body.jhp-catalog-page ul.products.vamtam-wc {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .jhp-contact-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jhp-policy-layout {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 24px;
  }
}

@media (max-width: 760px) {
  body.jhp-catalog-page #main-content {
    padding-top: 48px !important;
    padding-bottom: 60px !important;
  }

  body.jhp-catalog-page #main .limit-wrapper {
    width: min(calc(100% - 26px), var(--jhp-max)) !important;
  }

  .jhp-catalog-hero-grid {
    min-height: auto;
    padding-block: 38px 42px;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .jhp-catalog-hero h1 {
    font-size: clamp(38px, 11.5vw, 54px);
  }

  .jhp-catalog-summary {
    padding: 19px;
  }

  body.jhp-content-page #main article.full,
  body.jhp-content-page #main .page-wrapper > article,
  body.jhp-content-page #main .page-wrapper > .page-content {
    padding: 22px 16px !important;
    border-radius: 16px !important;
  }

  .jhp-service-form-layout,
  .jhp-policy-layout,
  .jhp-policy-highlight-grid {
    grid-template-columns: 1fr;
  }

  .jhp-form-grid,
  .jhp-contact-cards {
    grid-template-columns: 1fr;
  }

  .jhp-policy-index {
    position: static;
    top: auto;
  }

  .jhp-policy-callout {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .jhp-policy-highlight {
    min-height: 0;
  }

  body.jhp-account-page #main .u-columns.col2-set {
    grid-template-columns: 1fr;
  }

  body.jhp-account-page #main .woocommerce-MyAccount-navigation,
  body.jhp-account-page #main .woocommerce-MyAccount-content {
    width: 100% !important;
    margin-right: 0 !important;
    float: none !important;
  }

  body.jhp-account-page #main .woocommerce-MyAccount-navigation {
    margin-bottom: 22px;
  }

  .jhp-catalog-context-inner {
    padding-block: 12px;
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
  }

  .jhp-breadcrumbs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .jhp-breadcrumbs::-webkit-scrollbar {
    display: none;
  }

  .jhp-breadcrumbs a,
  .jhp-breadcrumbs strong,
  .jhp-breadcrumbs > span {
    flex: 0 0 auto;
  }

  .jhp-back-parent {
    width: 100%;
  }

  body.jhp-catalog-page .joker-ods-featured-products {
    margin-bottom: 54px !important;
    scroll-margin-top: 20px;
  }

  body.jhp-catalog-page .joker-products-grid,
  body.jhp-catalog-page ul.products.vamtam-wc {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.jhp-catalog-page .joker-product-card h3,
  body.jhp-catalog-page li.type-product .woocommerce-loop-product__title {
    min-height: 66px;
    padding: 12px 11px 7px !important;
    font-size: 13px !important;
  }

  body.jhp-catalog-page .joker-product-price,
  body.jhp-catalog-page li.type-product .price {
    padding-right: 11px !important;
    padding-left: 11px !important;
    font-size: 15px !important;
  }

  body.jhp-catalog-page .joker-product-card > .button {
    margin-right: 11px !important;
    margin-left: 11px !important;
  }

  body.jhp-catalog-page .joker-quantity-cart-pair {
    margin-right: 11px !important;
    margin-left: 11px !important;
    grid-template-columns: 1fr;
    gap: 7px !important;
  }

  body.jhp-catalog-page .joker-quantity-cart {
    min-height: 41px !important;
  }

  body.jhp-catalog-page li.product-category .woocommerce-loop-category__title {
    min-height: 74px;
    padding: 12px !important;
    font-size: 13px !important;
  }

  body.jhp-catalog-page .woocommerce-result-count,
  body.jhp-catalog-page .woocommerce-ordering {
    width: 100% !important;
    margin-bottom: 10px !important;
    float: none !important;
  }

  body.jhp-catalog-page .woocommerce-ordering select {
    width: 100%;
  }

  body.jhp-cart-page .cart-collaterals {
    display: block;
  }

  body.jhp-cart-page .cart_totals {
    padding: 18px 14px;
  }

  body.jhp-cart-page .jhp-cart-order-note {
    padding: 17px 14px;
  }

  body.jhp-cart-page .jhp-cart-order-note h2 {
    font-size: 18px !important;
  }

  body.jhp-cart-page table.shop_table_responsive tr td,
  body.jhp-cart-page table.shop_table_responsive tr th {
    padding: 11px 12px !important;
  }

  body.jhp-cart-page table.shop_table_responsive tr td.product-thumbnail {
    display: none !important;
  }

  body.jhp-cart-page table.shop_table_responsive tr td.product-name {
    padding-top: 16px !important;
  }

  body.jhp-cart-page table.shop_table_responsive tr td::before {
    color: var(--jhp-muted);
    font-size: 11px;
    font-weight: 800;
  }

  body.jhp-cart-page table.shop_table td.actions {
    padding: 12px !important;
  }

  body.jhp-cart-page .coupon {
    display: grid;
    grid-template-columns: 1fr auto;
  }

  body.jhp-cart-page .coupon .input-text {
    width: 100% !important;
  }

  body.jhp-cart-page table.shop_table td.actions > .button {
    width: 100% !important;
    margin-top: 9px !important;
  }

  body.jhp-checkout-page form.checkout.woocommerce-checkout {
    display: block;
  }

  body.jhp-checkout-page .jhp-invoice-choice-options {
    grid-template-columns: 1fr;
  }

  body.jhp-checkout-page .jhp-invoice-option {
    min-height: 76px;
  }

  body.jhp-checkout-page form.checkout .col2-set .col-1,
  body.jhp-checkout-page form.checkout .col2-set .col-2,
  body.jhp-checkout-page form.checkout #customer_details .col-1,
  body.jhp-checkout-page form.checkout #customer_details .col-2 {
    padding: 18px 14px !important;
  }

  body.jhp-checkout-page form.checkout #order_review_heading {
    margin-top: 22px !important;
    padding: 18px 14px 0 !important;
  }

  body.jhp-checkout-page form.checkout #order_review {
    margin: 0 !important;
    padding: 14px !important;
  }

  body.jhp-checkout-page .wc-block-components-sidebar-layout {
    display: block !important;
  }

  body.jhp-checkout-page .wc-block-components-main,
  body.jhp-checkout-page .wc-block-components-sidebar {
    width: 100% !important;
    margin-bottom: 18px !important;
    padding: 18px 14px !important;
  }

  body.jhp-order-received-page .woocommerce-order,
  body.jhp-order-received-page .wc-block-order-confirmation {
    padding: 18px 14px;
  }
}

@media (max-width: 360px) {
  body.jhp-catalog-page .joker-products-grid,
  body.jhp-catalog-page ul.products.vamtam-wc {
    grid-template-columns: 1fr !important;
  }

  body.jhp-catalog-page .joker-product-card h3,
  body.jhp-catalog-page li.type-product .woocommerce-loop-product__title {
    min-height: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.jhp-catalog-page .joker-product-card,
  body.jhp-catalog-page ul.products.vamtam-wc > li.product {
    transition: none !important;
  }
}
