.fs-cart-box {
  margin-top: 10px;
  width: 100%;
}

/*
 * 商品カード（.column-grid .list）を縦方向のflexboxにして、
 * タイトルの行数やSoldout表示の有無に関わらず
 * .fs-cart-box を常にカード最下部に揃える。
 * .column-grid 自体は元々 flex + flex-wrap で行の高さが揃っているため、
 * これでボタン位置だけがずれる問題が解消される。
 */
.column-grid .list {
  display: flex;
  flex-direction: column;
}
.column-grid .list .fs-cart-box {
  margin-top: auto;
}

.fs-cart-picker > summary,
.fs-cart-link,
.fs-cart-submit input,
.fs-cart-submit button {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 10px 6px;
  border: 0;
  border-radius: 3px;
  background: #ff8126;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.fs-cart-picker > summary {
  list-style: none;
}

.fs-cart-picker > summary::-webkit-details-marker {
  display: none;
}

.fs-cart-form {
  padding: 12px 6px;
  border: 1px solid #ffd1ae;
  background: #fff8f2;
}

.fs-quantity {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.fs-quantity button {
  flex: 0 0 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 3px;
  background: #fff;
  color: #333;
  font-size: 20px;
  cursor: pointer;
}

.fs-quantity label {
  min-width: 0;
}

.fs-quantity input {
  box-sizing: border-box;
  width: 100%;
  max-width: 64px;
  height: 44px;
  margin: 0;
  padding: 4px;
  border: 1px solid #ddd;
  background: #fff;
  color: #333;
  text-align: center;
  font-size: 16px;
}

.fs-unit {
  margin: 8px 0;
  text-align: center;
  font-size: 12px;
}

.fs-soldout {
  display: block;
  padding: 12px;
  background: #eee;
  color: #666;
  text-align: center;
}

.fs-cart-box :focus-visible {
  outline: 3px solid #155fa0;
  outline-offset: 2px;
}

.fs-cart-message {
  margin: 8px 0 0;
  padding: 8px 6px;
  border-radius: 3px;
  background: #eefbe8;
  color: #2a6e2a;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  opacity: 0;
  height: 0;
  overflow: hidden;
  transition: opacity 0.2s ease;
}

.fs-cart-message.is-visible {
  opacity: 1;
  height: auto;
  padding: 8px 6px;
}

.fs-cart-message--error {
  background: #fdeaea;
  color: #a12b2b;
}
