.organic-card {
  position: relative;
  background: linear-gradient(145deg, #e6d7b8 0%, #d1c1a0 50%, #f1e4c3 100%);
  border-radius: clamp(6px, 1.5vw, 10px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2),
    inset 0 1px 4px rgba(255, 255, 255, 0.3);
}

.organic-card::before {
  content: "";
  position: absolute;
  top: -8px;
  left: -8px;
  right: -8px;
  bottom: -8px;
  background: linear-gradient(145deg, #cab394 0%, #a8956b 50%, #d1c1a0 100%);
  border-radius: clamp(10px, 2vw, 14px);
  z-index: -1;
  box-shadow: 0 0 0 2px #b8a482, 0 0 0 4px #a8956b,
    0 8px 32px rgba(0, 0, 0, 0.3);
}

.organic-card::after {
  content: "";
  position: absolute;
  top: -6px;
  left: -6px;
  right: -6px;
  bottom: -6px;
  background: radial-gradient(
      circle at 20% 30%,
      rgba(255, 255, 255, 0.2) 0%,
      transparent 50%
    ),
    radial-gradient(circle at 80% 70%, rgba(0, 0, 0, 0.1) 0%, transparent 50%),
    linear-gradient(145deg, #d1c1a0 0%, #cab394 50%, #a8956b 100%);
  border-radius: clamp(8px, 1.5vw, 12px);
  z-index: -1;
  clip-path: polygon(
    2% 8%,
    8% 2%,
    15% 1%,
    25% 3%,
    35% 1%,
    45% 2%,
    55% 1%,
    65% 3%,
    75% 1%,
    85% 2%,
    92% 8%,
    98% 15%,
    99% 25%,
    97% 35%,
    99% 45%,
    98% 55%,
    99% 65%,
    97% 75%,
    99% 85%,
    98% 92%,
    92% 98%,
    85% 99%,
    75% 97%,
    65% 99%,
    55% 98%,
    45% 99%,
    35% 97%,
    25% 99%,
    15% 98%,
    8% 92%,
    2% 85%,
    1% 75%,
    3% 65%,
    1% 55%,
    2% 45%,
    1% 35%,
    3% 25%,
    1% 15%
  );
}

.marble-button {
  position: relative;
  background: #d4c4b0;
  border: 3px solid #a8956b;
  border-radius: 12px;
  padding: 10px 20px;
  cursor: pointer;
  font-weight: 700;
  color: #3a2f25;
  text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.7);
  transition: all 0.15s ease;
  box-shadow: 0 6px 0 #8b7a54, 0 8px 15px rgba(0, 0, 0, 0.2);
  transform: translateY(0);
}

.marble-button::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 4px;
  right: 4px;
  height: 3px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 8px 8px 0 0;
  pointer-events: none;
}

.marble-button::after {
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 2px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  transform: rotate(-15deg);
  pointer-events: none;
}

.marble-button:hover {
  transform: translateY(-2px);
  background: #e8ddd0;
  box-shadow: 0 8px 0 #8b7a54, 0 10px 20px rgba(0, 0, 0, 0.25);
}

.marble-button:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 #8b7a54, 0 4px 8px rgba(0, 0, 0, 0.3);
}

.marble-textarea {
  position: relative;
  background: #f8f3ec;
  border: none;
  border-radius: 6px;
  padding: 12px;
  font-family: inherit;
  font-size: 15px;
  color: #3a2f25;
  resize: vertical;
  min-height: 30px;
  width: 100%;
  box-shadow: inset 0 3px 0 #c8b8a4, inset 3px 0 0 #d4c4b0,
    inset 0 6px 12px rgba(0, 0, 0, 0.15), 0 1px 3px rgba(255, 255, 255, 0.8);
  transition: all 0.2s ease;
}

.marble-textarea::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 8px;
  width: 6px;
  height: 6px;
  background: rgba(168, 149, 107, 0.3);
  border-radius: 50%;
  pointer-events: none;
}

.marble-textarea::after {
  content: "";
  position: absolute;
  bottom: 8px;
  right: 12px;
  width: 20px;
  height: 1px;
  background: rgba(168, 149, 107, 0.4);
  pointer-events: none;
}

.marble-textarea:focus {
  outline: none;
  background: #fffbf5;
  box-shadow: inset 0 4px 0 #a8956b, inset 4px 0 0 #c8b8a4,
    inset 0 8px 16px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(255, 255, 255, 1),
    0 0 0 3px rgba(168, 149, 107, 0.4);
}

.marble-textarea::placeholder {
  color: rgba(58, 47, 37, 0.4);
  font-style: italic;
  font-weight: 300;
}

.marble-textarea.with-icon {
  padding-left: 48px !important; /* email icon override */
}

.som-horizontal-input {
  width: 100%;
  padding: .5rem .75rem;
  border: 1px solid transparent;
  background-color: #FFEAD0;
  border-radius: var(--radius-xl);
  transition: border-color .25s, background-position-y .25s;

  &:focus {
    outline: none;
    border: 1px solid var(--color-som-dark);
  }
}

.som-horizontal-input[placeholder=" "] {
  background-position-y: -200%;
  background-image: url("/assets/input-bg-b766bbb9.svg");
  background-repeat: repeat-x;

  &:placeholder-shown {
    background-position-y: 80%;
  }

  &:focus {
    background-position-y: -200%;
  }
}

textarea.som-horizontal-input[placeholder=" "] {
  background-position-y: 200%;

  &:placeholder-shown {
    background-position-y: 100%;
  }

  &:focus {
    background-position-y: 200%;
  }
}

@media (max-width: 48rem) {
  .som-horizontal-input {
    font-size: var(--text-sm);
  }
}

.som-button-primary, .som-button-secondary, .som-button-danger, .som-button-buy {
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 5px 5px 6px 0px rgba(0, 0, 0, 5%);
  padding: .5em 2em;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  transition: background .25s, transform .25s;
  background: var(--bg-color);
  color: var(--fg-color);

  &:not(.disabled):active {
    transform: scale(.8);
    background: var(--click-color);
  }

  &:not(.disabled):hover {
    background: var(--hover-color);
    transform: scale(1.05);
  }

  &.disabled {
    cursor: not-allowed;
    background: var(--bg-disabled-color);
  }
}

.som-button-primary {
  --bg-color: #FFE8CD;
  --bg-disabled-color: #b8a795;
  --fg-color: var(--color-som-dark);
  --hover-color: #ffe4c4;
  --click-color: #f0d9be;
}

.som-button-secondary {
  --bg-color: #523A52;
  --bg-disabled-color: #3b353b;
  --fg-color: var(--color-som-bright);
  --hover-color: #6d4f6d;
  --click-color: #362736;
}

.som-button-danger {
  --bg-color: #FFBABA;
  --bg-disabled-color: #b8a795;
  --fg-color: var(--color-som-dark);
  --hover-color: #ff9f9f;
  --click-color: #ff8c8c;
}

.som-button-buy {
  --bg-color: #B8FFC2;
  --bg-disabled-color: #b8a795;
  --fg-color: var(--color-som-dark);
  --hover-color: #a3ffb0;
  --click-color: #8cff9e;
}

.som-link-content {
  position: relative;
  z-index: 10;
  align-items: center;
  display: flex;
  gap: 4px;
  transition: transform .3s;
}

.som-link-hop:hover {
  animation: single-hop 0.3s ease;
}

.som-link-push {
  transition: transform .3s;

  &:active {
    transform: scale(0.8);
  }
}

@keyframes single-hop {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

.som-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  background: var(--color-bread);
  border: 1px solid var(--color-som-dark);
  border-radius: .25rem;
  justify-content: center;
  align-items: center;
  display: flex;
  cursor: pointer;
  transition-property: background-color, border-color;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  transition-duration: .15s;

  &.checked {
    background: var(--color-som-dark);
  }
}
