/* ===========================
   ページコンテナ
   =========================== */
.page-order {
  min-height: 100vh;
  overflow-x: hidden;
}

/* ===========================
   ステップ完了状態（doneは active と同じ cyan で塗りつぶし）
   =========================== */
.deliv-steps__item--done .deliv-steps__num {
  background: var(--cyan);
}

.deliv-steps__item--done .deliv-steps__label {
  color: var(--cyan);
}

.deliv-steps__item--done:not(:last-child)::after {
  background: var(--cyan);
}

/* ===========================
   order-form 全体
   =========================== */
.order-form {
  gap: 76px;
}

/* ===========================
   ブロック単位（お支払方法 / お届け時間 / その他お問い合わせ）
   =========================== */
.order-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.order-block__heading {
  font-family: 'M PLUS 1', sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: var(--cyan);
  line-height: 1.4;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--cyan);
  margin-bottom: 8px;
}

.order-block__lead {
  font-family: 'M PLUS 1', sans-serif;
  font-weight: 500;
  font-size: 15px;
  color: var(--navy);
  line-height: 1.7;
}

.order-block__alert {
  font-family: 'M PLUS 1', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--error);
  line-height: 1.7;
}

.order-block__sub {
  font-family: 'M PLUS 1', sans-serif;
  font-weight: 500;
  font-size: 13px;
  color: #666;
  line-height: 1.7;
  margin-top: -4px;
}

.order-block__counter {
  font-family: 'M PLUS 1', sans-serif;
  font-size: 12px;
  color: var(--error);
  text-align: right;
}

/* ===========================
   お支払方法 行
   =========================== */
.order-payment {
  border: 2px solid var(--cyan);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
  gap: 0;
  margin-top: 8px;
}

.order-payment__row {
  display: flex;
  align-items: center;
  padding: 18px 24px;
  border-bottom: 2px solid var(--cyan);
  background: var(--white);
  transition: background 0.2s;
}

.order-payment__row:last-child {
  border-bottom: none;
}

.order-payment__row:hover {
  background: rgba(93, 194, 208, 0.06);
}

.order-payment__row .form-radio {
  width: 100%;
}

/* ===========================
   お届け時間 行
   =========================== */
.order-delivery {
  margin-top: 8px;
}

/* ===========================
   アクセシビリティ用ユーティリティ
   =========================== */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===========================
   レスポンシブ: 767px以下
   =========================== */
@media (max-width: 767px) {
  .order-form {
    gap: 64px;
  }

  .order-block__heading {
    font-size: 17px;
  }

  .order-block__lead {
    font-size: 14px;
  }

  .order-block__alert {
    font-size: 13px;
  }

  .order-payment__row {
    padding: 14px 18px;
  }
}
