/* カート・購入手続き・完了。ページ背景は現行テーマから継承する。 */
.shop-cart-page,.shop-checkout-page,.shop-complete-page{padding:32px 16px 72px;color:var(--uh-sumi)}
/* ショップは全ページ同じ幅（一覧と同じ1560px）にそろえる */
.shop-cart-page__inner,.shop-checkout-page__inner{width:min(100%,1560px);margin:auto}.shop-complete-page__inner{width:min(100%,1560px);margin:auto}.shop-cart-empty{text-align:center;padding:56px 0}
.shop-cart{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start;max-width:1280px;margin:auto}.shop-cart__list{list-style:none;margin:0;padding:0}.shop-cart__item{background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);margin:0 0 12px;display:grid;grid-template-columns:92px minmax(0,1fr) 70px 100px 34px;gap:14px;align-items:center;padding:16px}.shop-cart__item.is-unavailable{opacity:.65}.shop-cart__thumb{aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--uh-line);overflow:hidden;color:var(--uh-line);font-size:16px}.shop-cart__thumb img{width:100%;height:100%;object-fit:cover}.shop-cart__detail{display:grid;gap:4px}.shop-cart__sku{font-size:16px;letter-spacing:.1em;color:var(--shop-gold)}.shop-cart__name{color:inherit;font:600 1rem var(--uh-serif);text-decoration:none}.shop-cart__unit-price{font-size:16px}.shop-cart__unavailable{color:var(--shop-alert);font-size:16px}.shop-cart__qty,.shop-cart__line-total{white-space:nowrap}.shop-cart__line-total{font-weight:800;text-align:right}.shop-cart__remove{width:32px;height:32px;border:1px solid var(--uh-line);border-radius:50%;color:inherit;cursor:pointer}.shop-cart__remove:hover{border-color:var(--shop-ink);color:var(--shop-ink)}
.shop-cart__summary{position:sticky;top:20px;background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);padding:20px}
.shop-checkout__summary{background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);padding:20px;margin:0}.shop-cart__costs,.shop-checkout__totals,.shop-complete__totals{margin:0}.shop-cart__costs>div,.shop-checkout__totals>div,.shop-complete__totals>div{display:flex;justify-content:space-between;gap:18px;padding:8px 0}.shop-cart__costs dt,.shop-cart__costs dd,.shop-checkout__totals dt,.shop-checkout__totals dd,.shop-complete__totals dt,.shop-complete__totals dd{margin:0}.shop-cart__note,.shop-cart__warning{font-size:16px;line-height:1.7}.shop-cart__warning{color:var(--shop-alert);font-weight:700}.shop-cart__continue,.shop-checkout__back{display:block;text-align:center;margin-top:13px;color:inherit}
.shop-checkout__errors{background:#fff;border:2px solid var(--shop-alert);border-radius:6px;padding:12px 18px;margin-bottom:20px;color:var(--shop-alert)}.shop-checkout__errors ul{margin:0;padding-left:1.3em}.shop-checkout__step-label{font:700 18px/1.5 var(--uh-serif);margin:0 0 18px;padding-bottom:10px;border-bottom:1px solid var(--uh-line)}/* 左=ご連絡先・お届け先／右=受取方法・支払い方法・ご注文内容。横に広げて縦スクロールを減らす */
.shop-checkout__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:32px;align-items:start;max-width:1400px;margin:auto}
.shop-checkout__side{display:grid;gap:14px;align-content:start}.shop-checkout__section{background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);margin:0 0 14px;padding:20px}
.shop-checkout__side .shop-checkout__section{margin:0}.shop-checkout__section:first-child{padding-top:20px}.shop-checkout__section h2,.shop-checkout__summary h2{font:700 1.15rem var(--uh-serif);margin:0 0 14px}.shop-choice-grid,.shop-payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-choice{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--uh-line);border-radius:6px;padding:14px;cursor:pointer}.shop-choice:has(input:checked){border:2px solid var(--shop-gold);padding:13px}.shop-choice input{margin-top:4px;accent-color:var(--shop-gold)}.shop-choice span{display:grid;gap:3px}.shop-choice small{line-height:1.5}.shop-field{margin:0 0 13px}.shop-field label{display:grid;gap:5px;font-weight:700}.shop-field input,.shop-field select,.shop-field textarea,.shop-checkout__section>textarea{width:100%;border:1px solid var(--uh-line);border-radius:3px;padding:10px;color:inherit;font:inherit;background:#fff}
/* 都道府県の選択欄も他の入力欄と同じ大きさにそろえる */
/* 未選択のときは他の入力欄のプレースホルダと同じ薄いグレーにする */
.shop-field select:has(option[value=""]:checked){color:rgba(10,10,10,.5)}
.shop-field select{appearance:none;-webkit-appearance:none;min-height:44px;padding-right:38px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%236a7282' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}
/* 郵便番号と都道府県は横に並べる（縦の長さを詰める） */
.shop-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:start}
.shop-field-row .shop-field{margin:0 0 13px}
@media(max-width:640px){.shop-field-row{grid-template-columns:1fr;gap:0}}
.shop-field__hint{display:block;margin:4px 0 0;font-size:16px;color:#6f6a5d;line-height:1.6}
/* 入力の誤りは「見出しのすぐ右・入力欄の上」に出す */
.shop-field label{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:12px;row-gap:5px;align-items:center;font-weight:700}
.shop-field label>input,.shop-field label>textarea,.shop-field label>select,.shop-field label>.shop-toolbar__select-wrap{grid-column:1/-1}
.shop-field__error{color:var(--shop-alert,#b3402f);font-size:16px;font-weight:700;line-height:1.5}
.shop-field__notice{margin:0 0 14px;padding:10px 14px;background:#fff8e6;border:1px solid #e3c46b;color:#5a4a1a;font-size:16px;line-height:1.7}
.shop-field__error::before{content:"⚠ "}
.shop-field.has-error input,.shop-field.has-error textarea,.shop-field.has-error select{border-color:var(--shop-alert,#b3402f);background:#fff8f7}
@media(max-width:560px){.shop-field label{grid-template-columns:1fr}.shop-field__error{grid-column:1}}
/* 会員のお届け先（入力省略時） */
.shop-saved-address{background:#faf8f3;border:1px solid var(--uh-line);border-radius:6px;padding:16px;margin:0 0 12px}
.shop-saved-address__note{margin:0 0 8px;font-weight:700}
.shop-saved-address__body{margin:0 0 12px;line-height:1.9}
/* ログインのご案内 */
.shop-login-hint{background:#fff;border:1px solid var(--uh-line);border-left:5px solid var(--shop-gold-bright,#c9a54b);border-radius:6px;padding:16px 18px;margin:0 0 20px}
.shop-login-hint p{margin:0 0 8px}.shop-login-hint p:last-child{margin:0}
.shop-login-hint__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.shop-login-hint__or{color:#6f6a5d;font-size:16px}
.shop-login-hint__guest{font-size:16px;color:#6f6a5d}
.shop-cart__login-hint{font-size:16px;line-height:1.7;margin:10px 0 0;color:#6f6a5d}.shop-field input:focus,.shop-field textarea:focus,.shop-checkout__section>textarea:focus{outline:3px solid color-mix(in srgb,var(--shop-gold) 38%,transparent);outline-offset:1px}.shop-check{font-size:16px}.shop-checkout__items,.shop-complete__items{list-style:none;margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid var(--uh-line)}.shop-checkout__items li,.shop-complete__items li{display:flex;justify-content:space-between;gap:14px;padding:5px 0;font-size:16px}.shop-checkout__grand,.shop-complete__grand{border-top:1px solid var(--uh-line);font-size:1.1rem;font-weight:800}.shop-checkout__final{background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);padding:22px}.shop-checkout__final-list{margin:0}.shop-checkout__final-list>div{display:grid;grid-template-columns:180px 1fr;gap:18px;padding:10px 0;border-bottom:1px dotted var(--uh-line)}.shop-checkout__final-list dt{font-weight:800}.shop-checkout__final-list dd{margin:0;line-height:1.7}.shop-checkout__final-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}
.shop-complete__card{max-width:760px;margin:auto;text-align:center;background:#fff;border:1px solid var(--uh-line);border-radius:6px;box-shadow:0 1px 4px rgba(47,47,47,.06);padding:34px}.shop-complete__mark{width:58px;height:58px;border:2px solid var(--shop-gold);border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;color:var(--shop-gold);font-size:1.8rem}.shop-complete__title{font:700 1.7rem var(--uh-serif)}.shop-complete__number{padding:12px;border-block:1px solid var(--uh-line)}.shop-complete__detail{text-align:left;margin:24px 0}.shop-complete__detail h2{font:700 1.1rem var(--uh-serif)}.shop-complete__notice{border-left:4px solid var(--shop-gold-bright);padding-left:14px}
@media(max-width:1000px){.shop-cart,.shop-checkout__grid{grid-template-columns:1fr}.shop-payment-methods{grid-template-columns:1fr}.shop-cart__summary,.shop-checkout__summary{position:static}.shop-cart__item{grid-template-columns:76px minmax(0,1fr) 34px;grid-template-areas:"thumb detail remove" "thumb qty total"}.shop-cart__thumb{grid-area:thumb}.shop-cart__detail{grid-area:detail}.shop-cart__qty{grid-area:qty}.shop-cart__line-total{grid-area:total}.shop-cart__remove{grid-area:remove}.shop-choice-grid{grid-template-columns:1fr}}
@media(max-width:560px){.shop-cart-page,.shop-checkout-page,.shop-complete-page{padding:22px 12px 56px}.shop-cart__item{grid-template-columns:64px minmax(0,1fr) 32px;gap:10px}.shop-complete__card{padding:24px 16px}.shop-checkout__final-list>div{grid-template-columns:1fr;gap:3px}.shop-checkout__final-actions{flex-direction:column-reverse}.shop-checkout__final-actions .btn{width:100%}}

/* 狭い画面でも金額と操作を別領域に確保する。支払い・在庫ロジックは変更しない。 */
.shop-cart-page,.shop-checkout-page,.shop-complete-page{font-family:var(--uh-sans);line-height:1.7}
.shop-cart-page__inner,.shop-checkout-page__inner,.shop-complete-page__inner{max-width:1440px}
.shop-cart__name{font-family:var(--uh-sans);line-height:1.6;overflow-wrap:anywhere}
.shop-cart__summary,.shop-checkout__section,.shop-checkout__summary,.shop-complete__card,.shop-cart__item{border-radius:4px;box-shadow:none}
.shop-cart__costs>div,.shop-checkout__totals>div,.shop-complete__totals>div{gap:12px}
.shop-cart__costs dd,.shop-checkout__totals dd,.shop-complete__totals dd{text-align:right;font-variant-numeric:tabular-nums}
.shop-cart__costs dt{flex:none}
.shop-cart__remove{width:44px;height:44px;font-size:22px;background:#fff}
.shop-cart__item{grid-template-columns:80px minmax(0,1fr) 58px 90px 44px;gap:12px}
.shop-checkout__items li,.shop-complete__items li{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:12px}
.shop-checkout__items li>span:first-child,.shop-complete__items li>span:first-child{overflow-wrap:anywhere}
.shop-checkout__items li>span:last-child,.shop-complete__items li>span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.shop-checkout__items li>span:first-child small{display:block;color:#62605a;font-size:12px;font-weight:400}
.shop-checkout__grid>*{min-width:0}
.shop-checkout__step[hidden],.shop-checkout [hidden]{display:none!important}
.shop-choice span{min-width:0}.shop-choice{font-size:16px}
.shop-field input,.shop-field select,.shop-field textarea,.shop-checkout__section>textarea{font-size:16px;min-height:46px}
.shop-check label{display:inline-block;padding-block:6px;cursor:pointer}.shop-check input{width:20px;height:20px;vertical-align:middle;accent-color:var(--shop-gold)}
.shop-checkout__final-list dd{overflow-wrap:anywhere}
.shop-complete__card>.shop-complete__detail+p{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.shop-cart-page .btn,.shop-checkout-page .btn,.shop-complete-page .btn{min-height:46px;white-space:normal;line-height:1.6}
@media(max-width:1100px){.shop-cart{grid-template-columns:1fr}.shop-cart__summary{position:static}}
@media(max-width:1000px){
  .shop-cart__item{grid-template-columns:76px minmax(0,1fr) 44px;grid-template-areas:"thumb detail remove" "thumb qty qty" "thumb total total";gap:6px 12px}
  .shop-cart__line-total{text-align:left}.shop-cart__remove{align-self:start}
  .shop-choice-grid,.shop-payment-methods{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .shop-cart__item{padding:12px;grid-template-columns:64px minmax(0,1fr) 44px;gap:6px 10px}
  .shop-cart__sku,.shop-cart__unit-price,.shop-cart__qty{font-size:13px}
  .shop-cart__thumb{font-size:12px}
  .shop-cart__summary,.shop-checkout__section,.shop-checkout__summary{padding:16px}
  .shop-cart__costs>div{font-size:14px}
  .shop-choice-grid,.shop-payment-methods{grid-template-columns:1fr}
  .shop-checkout__final{padding:16px}
  .shop-checkout__step>h2{font-size:18px;line-height:1.7}
  .shop-complete__card>.shop-complete__detail+p .btn{width:100%}
}

/* カートから完了まで、現在地と次の操作を同じ位置・同じ言葉で示す。 */
.shop-order-progress{max-width:720px;margin:0 auto 36px;padding:0 10px}
.shop-order-progress ol{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0}
.shop-order-progress li{position:relative;display:grid;justify-items:center;gap:6px;min-width:0;color:#7a766d;font-size:13px;text-align:center}
.shop-order-progress li::before{content:"";position:absolute;z-index:0;top:17px;left:0;width:100%;border-top:1px solid #bdb9b0}
.shop-order-progress li:first-child::before{left:50%;width:50%}.shop-order-progress li:last-child::before{width:50%}
.shop-order-progress li span{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:1px solid #bdb9b0;border-radius:50%;background:#e6e6e6;color:#62605a;font-weight:800;font-variant-numeric:tabular-nums}
.shop-order-progress li.is-complete span,.shop-order-progress li.is-current span{border-color:var(--shop-ink);background:var(--shop-ink);color:#fff}
.shop-order-progress li.is-current strong{color:var(--shop-ink)}
.shop-order-progress li.is-current span{box-shadow:0 0 0 4px #e6e6e6,0 0 0 5px var(--shop-gold)}
.shop-order-progress strong{font-weight:700;line-height:1.4;white-space:nowrap}
.shop-cart-empty{max-width:680px;margin:auto;padding:48px 24px;border-block:1px solid var(--uh-line);background:#fff}
.shop-cart-empty h2{margin:0 0 8px;font:700 24px/1.5 var(--uh-serif)}.shop-cart-empty p{margin:0 0 22px;color:#62605a}
.shop-cart-empty__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.shop-cart-empty__actions .btn{min-width:150px}
.shop-checkout__policy{margin-top:18px;padding:18px;border-left:4px solid var(--shop-gold);background:#faf8f3;font-size:15px;line-height:1.8}
.shop-checkout__final h3{margin:0 0 8px;font:700 18px/1.5 var(--uh-serif)}.shop-checkout__final>.shop-checkout__items{margin-bottom:10px}
.shop-checkout__policy p{margin:5px 0}.shop-checkout__policy a{color:inherit;font-weight:700;text-underline-offset:3px}
.shop-checkout__commit-note{margin:16px 0 0;font-size:14px;color:#62605a;text-align:right}
.shop-checkout__privacy{max-width:1400px;margin:0 auto 20px;font-size:16px;line-height:1.8;overflow-wrap:anywhere}
.shop-checkout__privacy a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.shop-checkout__privacy a:focus-visible{outline:2px solid var(--shop-gold);outline-offset:3px}
.shop-complete__actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}.shop-complete__contact{display:inline-flex;align-items:center;min-height:46px;padding:8px 10px;color:inherit;font-weight:700}
.shop-complete__card--error .shop-complete__mark{border-color:var(--shop-alert);color:var(--shop-alert)}
@media(max-width:560px){
  .shop-order-progress{margin-bottom:26px;padding:0}.shop-order-progress li{font-size:11px}.shop-order-progress li span{width:32px;height:32px}.shop-order-progress li::before{top:15px}
  .shop-cart-empty{padding:36px 16px}.shop-cart-empty__actions{display:grid}.shop-cart-empty__actions .btn{width:100%}
  .shop-complete__title{font-size:22px;line-height:1.55;letter-spacing:.02em}
  .shop-checkout__commit-note{text-align:left}.shop-complete__actions{display:grid}.shop-complete__actions .btn,.shop-complete__contact{width:100%;justify-content:center}
}
.shop-field__label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.shop-field__editable{display:inline-block;padding:2px 7px;border:1px solid #c4b68e;border-radius:3px;background:#faf8f1;color:#64542e;font-size:12px;font-weight:400;line-height:1.5;white-space:nowrap}
.shop-cart__login-link{border:0;background:none;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}

/* お届け希望日 */
.shop-delivery-wish{margin:16px 0 0;padding:14px 16px;border:1px solid var(--uh-line);background:#faf8f3}
.shop-delivery-wish__title{margin:0 0 6px;font:700 16px/1.5 var(--uh-serif)}
.shop-delivery-wish input[type=date]{width:100%;height:44px;padding:8px 12px;border:1px solid var(--sand-line,#b9ab8c);background:#fff;font-size:16px;color:#0a0a0a}
.shop-delivery-wish input[type=date]:disabled,.shop-delivery-wish select:disabled{background:#efefec;color:#8a8780}
