[data-controller="wrapped-cart"],
[data-controller="wrapped-item"],
[data-controller="wrapped-product"] {
  margin-bottom: 1em;
  margin-top: 1em;
}

[data-controller="wrapped-cart"],
[data-controller="wrapped-item"] {
  max-width: 400px;
}

[data-controller="wrapped-cart"] {
  margin-left: auto;
  margin-right: 0;
}

[data-controller="wrapped-item"] [data-features--powered-by-target="wrapper"] label,
[data-controller="wrapped-product"] [data-features--powered-by-target="wrapper"] label {
  padding-left: 2.5em;
}

[data-features--checkbox-target="wrapper"],
[data-features--message-target="wrapper"],
[data-features--variants-target="wrapper"] {
  padding-bottom: 0.5em;
}

[data-features--checkbox-target="wrapper"] label {
  margin-bottom: unset;
}

[data-features--checkbox-target="wrapper"] label,
[data-features--checkbox-target="wrapper"] input {
  display: inline-block;
  vertical-align: middle;
}
[data-features--checkbox-target="wrapper"] label[data-order-limit-reached="true"] {
  pointer-events: none;
}

[data-features--checkbox-target='thumbnail'] {
  background-color: white;
  width: 40px;
  display: inline-block;
  overflow: hidden;
  border: 1px solid #ddd;
  vertical-align: middle;
}
[data-features--checkbox-target='thumbnail'] img {
  height: auto;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
}

[data-features--message-target="wrapper"] {
  width: 100%
}
[data-features--message-target="wrapper"] label {
  display: block;
  letter-spacing: inherit;
  text-transform: none;
}
[data-features--message-target="wrapper"] textarea {
  font-family: inherit;
  margin-bottom: 0.5em;
  min-height: 80px;
  padding: 0.5em;
  width: 100%;
}
[data-features--message-target="wrapper"] span[data-features--message-target="counter"] {
  display: block;
  letter-spacing: normal;
  line-height: normal;
  text-align: right;
}

[data-features--powered-by-target="wrapper"] {
  margin-bottom: 1em;
}
[data-features--powered-by-target="wrapper"] label {
  justify-content: flex-end;
  opacity: 0.8;
}

[data-features--sender-recipient-target="wrapper"] {
  margin-bottom: 0.5em;
}
[data-features--sender-recipient-target='wrapper'] div[data-container] {
  display: flex;
  justify-content: space-between;
  gap: 1em;
}
[data-features--sender-recipient-target='wrapper'] label {
  display: block;
  letter-spacing: inherit;
  text-transform: none;
}
[data-features--sender-recipient-target="wrapper"] input {
  border-style: solid;
  border-width: 1px;
  font-family: inherit;
  margin-bottom: 0.5em;
  padding: 0.5em;
  width: 100%;
}
[data-features--sender-recipient-target="wrapper"] [data-features--sender-recipient-target='sender'],
[data-features--sender-recipient-target="wrapper"] [data-features--sender-recipient-target='recipient'] {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

[data-features--variants-target="wrapper"] select {
  padding: 0.5em;
  width: 100%;
}
[data-features--variants-target="wrapper"] fieldset {
  display: flex;
  flex-flow: column;
  padding: 0.75em;
}
[data-features--variants-target="wrapper"] fieldset label[data-available="false"] {
  opacity: 50%;
  pointer-events: none;
}
[data-features--variants-target="wrapper"] fieldset label[data-filtered="true"] {
  opacity: 50%;
  pointer-events: none;
}
[data-features--variants-target="wrapper"] fieldset label input {
  vertical-align: top;
}
[data-features--variants-target="wrapper"] fieldset label + label {
  padding-top: 0.5em;
}

/* shared styling for labels */
[data-features--checkbox-target="wrapper"] label,
[data-features--variants-target="wrapper"] label,
[data-features--powered-by-target="wrapper"] label {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-flow: row;
  line-height: normal;
  letter-spacing: unset;
  text-transform: none;
  word-wrap: break-word;
}

/* default checkbox and radio button sizes */
[data-features--checkbox-target="wrapper"] label input[type="checkbox"],
[data-features--variants-target="wrapper"] label input[type="radio"] {
  border-radius: 0.15em;
  cursor: pointer;
  height: 1.15em;
  margin-right: 0.6em;
  width: 1.15em;
  position: unset;
  top: unset;
  right: unset;
  appearance: auto;
  -webkit-appearance: auto;
  -moz-appearance: auto;
}

[data-features--checkbox-target="wrapper"] label input[type="checkbox"]:before,
[data-features--checkbox-target="wrapper"] label input[type="checkbox"]:after,
[data-features--checkbox-target="wrapper"] label input[type="checkbox"]:checked:before,
[data-features--checkbox-target="wrapper"] label input[type="checkbox"]:checked:after,
[data-features--variants-target="wrapper"] label input[type="radio"]:before,
[data-features--variants-target="wrapper"] label input[type="radio"]:after,
[data-features--variants-target="wrapper"] label input[type="radio"]:checked:before,
[data-features--variants-target="wrapper"] label input[type="radio"]:checked:after {
  content: unset;
}

/* helpers: collapse gift option variants */
[data-features--variants-target="button"] {
  align-self: flex-end;
  background: none;
  border: none;
  cursor: pointer;
  display: none;
  height: 20px;
  margin: 0;
  margin-top: -0.5em;
  margin-right: -0.5em;
  overflow: hidden;
  padding: 0;
  width: 20px;
}
[data-features--variants-target="button"] svg {
  fill: darkgrey;
  height: 100%;
  width: 100%;
  transition: all .2s ease-in-out 0s;
}
[data-features--variants-target="button"] svg:hover {
  opacity: 85%;
}
[data-features--variants-target="button"] span.collapsed {
  display: none;
  height: 100%;
  width: 100%;
}
[data-features--variants-target="button"] span.expanded {
  display: block;
  height: 100%;
  width: 100%;
}
[data-features--variants-collapsed-value="true"] fieldset label[data-selected="false"] {
  display: none;
}
[data-features--variants-collapsed-value="true"] fieldset label[data-selected="true"] {
  display: flex;
  padding-top: unset;
}
[data-features--variants-collapsed-value="true"] [data-features--variants-target="button"] span.collapsed {
  display: block;
}
[data-features--variants-collapsed-value="true"] [data-features--variants-target="button"] span.expanded {
  display: none;
}
