.single-product form.variations_form table.variations {
  border: 0;
  margin: 0 0 .55rem;
  width: 100%;
}
.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr,
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
  display: block;
  width: 100%;
}
.single-product form.variations_form table.variations tr { margin: 0 0 .95rem; }
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) { margin-bottom: 0; }
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) td.value { padding-bottom: 1.05rem; }
.single-product form.variations_form tr:has(select[name="attribute_bredde"]) th.label { padding-top: .2rem; }
.single-product form.variations_form table.variations th.label { padding: 0 0 .7rem; text-align: left; }
.single-product form.variations_form table.variations th.label label,
.single-product .s24-ring-size > label,
.single-product .s24-ring-size--enhanced > label {
  color: var(--s24-ink) !important;
  display: block;
  font-family: inherit !important;
  font-size: .72rem !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: .13em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
.single-product form.variations_form select[name="attribute_materiale"],
.single-product form.variations_form select#materiale {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  position: absolute !important;
  pointer-events: none !important;
}
.single-product form.variations_form select[name="attribute_bredde"],
.single-product form.variations_form select#bredde {
  display: none !important;
}
.single-product .s24-choice-grid { display: grid; gap: .7rem; }
.single-product .s24-choice-grid--material { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.single-product .s24-choice-grid--width { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.single-product .s24-choice-grid--length { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.single-product .s24-variation-row--length .s24-native-variation-select { display: none !important; }
.single-product .s24-choice-grid--length .s24-choice:focus-visible { outline: 2px solid var(--s24-gold-deep); outline-offset: 3px; }
.single-product .s24-choice {
  align-items: center;
  background: #fff;
  border: 1px solid #dfe3e6;
  border-radius: 8px;
  color: var(--s24-ink);
  cursor: pointer;
  display: flex;
  font: inherit;
  justify-content: center;
  min-height: 54px;
  padding: .75rem .9rem;
  position: relative;
  text-align: center;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
  width: 100%;
}
.single-product .s24-choice:hover:not(:disabled) {
  border-color: var(--s24-gold);
  box-shadow: 0 4px 14px rgba(148, 113, 61, .08);
  transform: translateY(-1px);
}
.single-product .s24-choice.is-selected {
  background: linear-gradient(180deg, #fffefb 0%, #fbf7ef 100%);
  border-color: var(--s24-gold-deep);
  box-shadow: 0 0 0 1px rgba(148, 113, 61, .22);
}
.single-product .s24-choice.is-disabled { cursor: not-allowed; opacity: .38; }
.single-product .s24-choice-check {
  align-items: center;
  background: var(--s24-gold-deep);
  border-radius: 50%;
  color: #fff;
  display: none;
  font-size: .65rem;
  font-weight: 800;
  height: 19px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 7px;
  top: 7px;
  width: 19px;
}
.single-product .s24-choice.is-selected .s24-choice-check { display: flex; }
.single-product .s24-choice-grid--material .s24-choice {
  justify-content: flex-start;
  min-height: 68px;
  padding: .8rem 2rem .8rem .85rem;
  text-align: left;
}
.single-product .s24-material-swatch {
  border: 1px solid rgba(13, 17, 23, .12);
  border-radius: 50%;
  box-shadow: inset 0 1px 2px rgba(255,255,255,.75), 0 1px 3px rgba(13,17,23,.08);
  flex: 0 0 32px;
  height: 32px;
  margin-right: .8rem;
  width: 32px;
}
.single-product .s24-material-swatch.is-yellow-gold { background: linear-gradient(135deg, #f0df9c 0%, #c89d3d 55%, #f8edbb 100%); }
.single-product .s24-material-swatch.is-white-gold { background: linear-gradient(135deg, #f7f7f4 0%, #d7d6d1 55%, #ffffff 100%); }
.single-product .s24-material-swatch.is-rose-gold { background: linear-gradient(135deg, #efc3aa 0%, #c98667 55%, #f7d9c8 100%); }
.single-product .s24-material-swatch.is-platinum { background: linear-gradient(135deg, #f0f1f2 0%, #b8bcc1 55%, #f8f9fa 100%); }
.single-product .s24-choice-label { line-height: 1.2; }
.single-product form.variations_form .reset_variations { color: var(--s24-muted); display: inline-block; font-size: .78rem; margin-top: .55rem; }
.single-product .s24-ring-size--enhanced { margin: -1.15rem 0 1.4rem !important; }
.single-product .s24-ring-size--enhanced > label { margin-bottom: .7rem; }
.single-product .s24-ring-size--enhanced .s24-ring-size-select {
  appearance: none;
  background-color: #fff;
  background-image: linear-gradient(45deg, transparent 50%, #111827 50%), linear-gradient(135deg, #111827 50%, transparent 50%);
  background-position: calc(100% - 19px) 50%, calc(100% - 14px) 50%;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  border: 1px solid #dfe3e6;
  border-radius: 8px;
  color: var(--s24-ink);
  font-size: .98rem;
  min-height: 54px;
  padding: 0 2.8rem 0 .95rem;
  width: 100%;
}
.single-product .s24-ring-size--enhanced .s24-ring-size-select:focus {
  border-color: var(--s24-gold-deep);
  box-shadow: 0 0 0 3px rgba(199, 169, 108, .18);
  outline: none;
}
/* Materiale: show only Smykke24's visual cards. This also hides any
   dropdown replacement injected by another plugin after page load. */
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) td.value > *:not(.s24-choice-grid--material):not(.s24-choice-grid--server) {
  display: none !important;
}
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) td.value > .s24-choice-grid--material {
  display: grid !important;
}

@media (max-width: 980px) {
  .single-product .s24-choice-grid--width { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .single-product .s24-choice-grid--material,
  .single-product .s24-choice-grid--width { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .single-product .s24-choice-grid--material .s24-choice { min-height: 62px; }
}

/* Final product configurator spacing + heading consistency. */
.single-product form.variations_form table.variations {
  margin-bottom: 0 !important;
}
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) {
  margin-bottom: 0 !important;
}
.single-product form.variations_form tr:has(select[name="attribute_materiale"]) td.value {
  padding-bottom: 1.15rem !important;
}
.single-product form.variations_form tr:has(select[name="attribute_bredde"]) {
  margin-bottom: 0 !important;
}
.single-product form.variations_form tr:has(select[name="attribute_bredde"]) th.label {
  padding-top: 0 !important;
  padding-bottom: .7rem !important;
}
.single-product form.variations_form tr:has(select[name="attribute_bredde"]) td.value {
  padding-bottom: 0 !important;
}
/* Equal spacing for Material, Bredde and Lengde headings. */
.single-product form.variations_form table.variations tr {
  margin: 0 !important;
}
.single-product form.variations_form table.variations tr th.label {
  padding: 1.15rem 0 .7rem !important;
}
.single-product form.variations_form table.variations tr:first-child th.label {
  padding-top: 0 !important;
}
.single-product form.variations_form table.variations tr th.label label {
  margin: 0 !important;
}
.single-product form.variations_form table.variations tr td.value {
  padding: 0 !important;
}
.single-product form.variations_form .reset_variations {
  margin-top: .55rem !important;
  margin-bottom: 0 !important;
}
.single-product form.variations_form .single_variation_wrap {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.single-product form.variations_form .s24-ring-size,
.single-product form.variations_form .s24-ring-size--enhanced {
  margin-top: .55rem !important;
  padding-top: 0 !important;
}
.single-product form.variations_form table.variations th.label label,
.single-product form.variations_form .s24-ring-size > label,
.single-product form.variations_form .s24-ring-size--enhanced > label {
  font-family: inherit !important;
  font-size: .72rem !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: .13em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
