/* task178827 共通処理・選択画面の移植 */
.gift-selection #main-inner { max-width: 1120px; margin: 0 auto; padding: 32px 24px 80px; }
.gift-selection h1, .gift-price, .gift-intro { text-align: center; margin: 24px 0; }
.gift-selection h1 { font-size: 26px; }
.gift-price { font-size: 20px; font-weight: bold; }
.gift-course-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 40px 0; }
.gift-course-card { text-align: center; }
.gift-course-card > p { min-height: 3em; margin-bottom: 8px; }
.gift-course-button { width: 100%; height: 118px; border: 0; border-radius: 5px; padding: 12px; cursor: pointer; color: white; }
.gift-course-button strong { display: block; font-size: 22px; line-height: 1.4; }
.gift-course-button span { display: block; font-size: 14px; margin-top: 5px; }
.gift-course-button--three { background: #00578e; }
.gift-course-button--two { background: #528ac8; }
.gift-course-button--rakuraku { background: #e0f1f4; color: #00578e; }
/* エメラルド・サファイアの2品とラクラクは商品準備中のため一旦Coming Soonとして表示する */
.gift-course-card--coming-soon .gift-course-button:disabled { cursor: default; }
.gift-course-card--coming-soon .gift-course-button span { font-size: 18px; letter-spacing: .1em; }
.gift-steps, .gift-categories { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.gift-steps a, .gift-categories a { padding: 10px 18px; background: #e0f1f4; color: #00578e; border-radius: 4px; }
.gift-steps a[aria-current] { background: #00578e; color: white; }
.gift-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 32px 0; }
.gift-products--mini-bag { grid-template-columns: minmax(0,1fr); }
.gift-product { border: 1px solid #ddd; padding: 20px; border-radius: 5px; min-width: 0; }
.gift-product h2 { font-size: 18px; margin-bottom: 16px; }
.gift-product > img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.gift-product p { margin: 14px 0; }
.gift-content { white-space: pre-line; overflow-wrap: anywhere; }
.gift-colors { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.gift-colors img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.gift-colors label { cursor: pointer; }
.gift-colors span { display: block; }
.gift-button { display: block; padding: 14px 22px; margin: 24px auto; max-width: 380px; text-align: center; background: #00578e; color: white; border: 0; border-radius: 5px; cursor: pointer; }
.gift-back { display: block; text-align: center; margin: 24px auto; color: #00578e; background: none; border: 0; cursor: pointer; text-decoration: underline; }
.gift-error { background: #fff0f0; color: #9c1c1c; padding: 16px; text-align: center; }
.gift-empty, .gift-summary { text-align: center; padding: 20px; }
.gift-selection button:disabled { opacity: .6; cursor: wait; }
