/* カート・ご注文ページ（cart.html）。指で押しやすい大きさ（48px以上）と、読みやすい16pxの入力欄を基本にする */
#checkout{--danger:#b4453a;--danger-l:#f8e4e1;--ok:#3f7a4f}
#checkout [hidden]{display:none!important}
.co-loading{padding:60px 0;text-align:center;color:var(--muted)}
.co-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.co-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px 20px}
.co-card>h2{display:flex;align-items:center;gap:12px;font:700 19px/1.5 "Shippori Mincho",serif;color:var(--ink);margin-bottom:16px}
.co-step{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--deep);color:var(--deep-on);font:700 14px/1 "Space Grotesk",sans-serif;flex:0 0 auto}
.co-sub{font-size:13px;color:var(--muted);line-height:1.8;margin:-6px 0 14px}

/* 商品の行 */
.co-items{display:grid;gap:14px}
.co-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.co-item:last-child{border-bottom:0;padding-bottom:0}
.co-item img{width:76px;height:76px;border-radius:10px;object-fit:cover;background:var(--cream)}
.co-item h3{font-size:15px;line-height:1.55;font-weight:700;color:var(--ink)}
.co-item .opts{margin-top:4px;font-size:12.5px;color:var(--muted);line-height:1.7}
.co-item .unit{margin-top:4px;font-size:13px;color:var(--ink-soft)}
.co-item .bad{margin-top:6px;padding:8px 10px;border-radius:8px;background:var(--danger-l);color:#8f2f26;font-size:13px;font-weight:700}
.co-item-foot{grid-column:1/-1;display:flex;align-items:center;gap:10px}
.co-item-foot .sum{margin-left:auto;white-space:nowrap;font:700 17px/1 "Space Grotesk",sans-serif;color:var(--deep-ink)}
.co-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;overflow:hidden}
.co-qty button{width:48px;height:48px;border:0;background:transparent;font-size:20px;color:var(--deep-ink);line-height:1;cursor:pointer}
.co-qty button:hover{background:var(--cream)}
.co-qty span{min-width:36px;text-align:center;font-weight:700;font-size:16px}
.co-remove{min-height:48px;padding:0 6px;white-space:nowrap;border:0;background:transparent;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.co-remove:hover{color:var(--danger)}
.co-more{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;color:var(--deep-ink);font-weight:700;font-size:14px;text-decoration:underline;text-underline-offset:4px}

/* 受け取り方法 */
.co-seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.co-seg label{position:relative;display:flex;flex-direction:column;gap:2px;min-height:68px;padding:12px 14px 12px 46px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-weight:700;font-size:15px;line-height:1.5}
.co-seg label small{font-weight:400;font-size:12px;color:var(--muted)}
.co-seg input{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:22px;height:22px;accent-color:var(--deep)}
.co-seg label:has(input:checked){border-color:var(--deep);background:#f3f4d8}
.co-seg label:has(input:disabled){opacity:.5;cursor:not-allowed}

/* 入力欄 */
.co-f{margin-bottom:16px}
.co-f>label,.co-f>.lbl{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-weight:700;font-size:14px;color:var(--ink);margin-bottom:6px}
.co-req{padding:0 7px;border-radius:4px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1.8}
.co-opt{font-size:12px;font-weight:400;color:var(--muted)}
.co-f input[type=text],.co-f input[type=email],.co-f input[type=tel],.co-f select,.co-f textarea{width:100%;min-height:50px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;
  font:inherit;font-size:16px;color:var(--ink);line-height:1.6;-webkit-appearance:none;appearance:none}
.co-f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23746b63' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.co-f textarea{min-height:96px;resize:vertical}
.co-f input:focus,.co-f select:focus,.co-f textarea:focus{outline:2px solid var(--gold-l);border-color:var(--gold)}
.co-f [aria-invalid="true"]{border-color:var(--danger);background:#fffafa}
.co-f .help{margin-top:6px;font-size:12.5px;color:var(--muted);line-height:1.7}
.co-f .err{margin-top:6px;font-size:13px;font-weight:700;color:var(--danger)}
.co-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.co-zip{display:flex;gap:10px;align-items:center}
.co-zip input{max-width:180px}
.co-zip span{font-size:12.5px;color:var(--muted)}
.co-f>label.co-check{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;min-height:52px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:14px;line-height:1.7;cursor:pointer}
.co-check input{width:24px;height:24px;margin:0;accent-color:var(--deep);flex:0 0 auto}
.co-check a{color:var(--deep-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.co-box{margin:4px 0 16px;padding:16px 14px 2px;border-radius:12px;background:var(--cream)}

/* 金額 */
.co-summary dl{display:grid;grid-template-columns:1fr auto;gap:10px 16px;font-size:14px;color:var(--ink-soft)}
.co-summary dd{text-align:right;font-weight:700;color:var(--ink)}
.co-summary .ship-detail{grid-column:1/-1;margin-top:-6px;font-size:12px;color:var(--muted);text-align:right}
.co-summary .total{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.co-summary .total span{font-weight:700;color:var(--ink)}
.co-summary .total b{font:700 26px/1 "Space Grotesk",sans-serif;color:var(--deep-ink)}
.co-summary .total b small{font:400 12px/1 "Zen Kaku Gothic New",sans-serif;color:var(--muted);margin-left:6px}
.co-summary .mini{margin-top:14px;display:grid;gap:6px;font-size:13px;color:var(--ink-soft)}
.co-summary .mini div{display:flex;justify-content:space-between;gap:12px;min-width:0}
.co-summary .mini span:first-child{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.co-summary .mini span:last-child{flex:0 0 auto;white-space:nowrap}

/* お支払い */
.co-cardwrap{min-height:96px;padding:14px 12px 2px;border:1px solid var(--line);border-radius:10px;background:#fff}
.co-cardstate{padding:10px 2px 14px;font-size:13px;color:var(--muted)}
.co-note{margin:14px 0 0;padding:14px 16px;border-radius:10px;background:#eef3d9;font-size:13px;line-height:1.9;color:var(--ink)}
.co-note strong{display:block;margin-bottom:2px}
.co-alert{margin:0 0 16px;padding:14px 16px;border-radius:10px;background:var(--danger-l);border:1px solid #e9b9b3;color:#7d2a22;font-size:14px;font-weight:700;line-height:1.8}
.co-info{margin:0 0 16px;padding:14px 16px;border-radius:10px;background:#f3f4d8;border:1px solid #cfe1e6;font-size:14px;line-height:1.8;white-space:pre-wrap}
.co-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:60px;margin-top:16px;border:0;border-radius:10px;background:var(--deep);color:var(--deep-on);
  font:700 17px/1.3 "Zen Kaku Gothic New",sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.co-submit:hover{background:var(--deep-l)}
.co-submit:disabled{opacity:.55;cursor:not-allowed}
.co-secure{margin-top:10px;text-align:center;font-size:12px;color:var(--muted)}
.co-spin{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:coSpin .8s linear infinite}
@keyframes coSpin{to{transform:rotate(360deg)}}

/* 空・受付停止・完了 */
.co-empty{max-width:640px;margin:0 auto;padding:44px 22px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:16px}
.co-empty h2{font:700 22px/1.6 "Shippori Mincho",serif;margin-bottom:10px}
.co-empty p{font-size:14px;color:var(--ink-soft);line-height:1.9}
.co-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px}
.co-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:10px;background:var(--deep);color:var(--deep-on);font-weight:700;font-size:15px}
.co-btn.line{background:transparent;border:1.5px solid var(--deep);color:var(--deep-ink)}
.co-done-mark{display:inline-grid;place-items:center;width:64px;height:64px;margin-bottom:14px;border-radius:50%;background:#e3f0e6;color:var(--ok)}
.co-orderno{display:inline-block;margin:14px 0 6px;padding:10px 20px;border-radius:10px;background:var(--cream);font:700 20px/1.4 "Space Grotesk",sans-serif;letter-spacing:.06em}
.co-flow{margin:22px auto 0;max-width:460px;text-align:left;display:grid;gap:10px;counter-reset:f}
.co-flow li{list-style:none;display:grid;grid-template-columns:30px 1fr;gap:12px;font-size:14px;line-height:1.8;color:var(--ink-soft)}
.co-flow li::before{counter-increment:f;content:counter(f);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold-l);color:var(--ink);font:700 14px/1 "Space Grotesk",sans-serif}

@media (min-width:960px){
  .co-grid{grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
  .co-a{grid-column:1;grid-row:1;display:grid;gap:20px}
  .co-b{grid-column:1;grid-row:2}
  .co-aside{grid-column:2;grid-row:1 / span 2;position:sticky;top:112px}
  .co-card{padding:28px}
}
@media (max-width:959px){
  .co-a{display:grid;gap:20px}
}
@media (max-width:520px){
  .co-two{grid-template-columns:1fr}
  .co-card{padding:20px 16px;border-radius:14px}
  .co-seg{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.co-spin{animation-duration:2s}}

/* 狭い画面ではブランド名とメニューを優先する。 */
@media(max-width:768px){
  .site-header .header-cta,.site-header .brand-copy span{display:none}
  .site-header .brand-copy strong{white-space:nowrap;font-size:16px}
  .site-header .inner{gap:12px}
}

/* 店頭受け取り日：営業日のみ選択できるカレンダー */
.co-calendar{max-width:440px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.co-calendar[aria-invalid="true"]{border-color:var(--danger)}
.co-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.co-calendar-head strong{font-size:16px;color:var(--ink)}
.co-calendar-head button{width:44px;height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--deep-ink);font-size:25px;cursor:pointer}
.co-calendar-head button:disabled{opacity:.35;cursor:not-allowed}
.co-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.co-calendar-week{padding:7px 0;color:var(--muted);font-size:12px;font-weight:700}
.co-calendar-day{min-width:0;min-height:44px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);font:inherit;font-size:14px;font-weight:700;line-height:1;cursor:pointer}
.co-calendar-day:not(:disabled):hover{background:#eef3d9;border-color:var(--deep)}
.co-calendar-day[aria-pressed="true"]{background:var(--deep);color:var(--deep-on);border-color:var(--deep-ink)}
.co-calendar-day:disabled{color:#aaa;cursor:not-allowed;background:#f5f3ef;font-weight:400}
.co-calendar button:focus-visible,.co-calendar:focus-visible{outline:3px solid var(--deep-ink);outline-offset:2px}
.co-calendar-selection,.co-calendar-empty{margin:10px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.7}

/* 注文内容確認後に、それぞれの公式ウォレットボタンを表示する。 */
.co-wallet{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14px;line-height:1.8}
.co-wallet-prepare{margin-top:12px;min-height:48px;padding:10px 18px;border:1px solid var(--deep);border-radius:8px;background:#f3f4d8;color:var(--deep-ink);font:inherit;font-weight:700;cursor:pointer}
.co-wallet-prepare:disabled{opacity:.6;cursor:wait}
#coWalletTotal{margin-top:14px;font-weight:700}
.co-wallet-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:center;margin-top:12px}
.co-apple-pay{display:block;-webkit-appearance:-apple-pay-button;appearance:-apple-pay-button;-apple-pay-button-type:buy;-apple-pay-button-style:black;width:100%;min-width:140px;height:48px;border:0;border-radius:4px;background:#000;cursor:pointer}
.co-apple-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:48px;padding:0;border:0;border-radius:4px;background:#000;cursor:pointer}
.co-apple-fallback img{display:block;width:58px;height:58px}
#coGooglePay{width:100%;min-height:48px}
.co-wallet-help{margin-top:12px;font-size:12px;color:var(--ink-soft)}
.co-payment-label{font-size:14px;font-weight:700;margin:0 0 10px}
.co-payment-divider{display:flex;align-items:center;gap:12px;margin:22px 0;font-size:13px;color:var(--ink-soft)}
.co-payment-divider::before,.co-payment-divider::after{content:"";height:1px;flex:1;background:var(--line)}
.co-wallet [hidden]{display:none!important}
@media(max-width:560px){.co-wallet-buttons{grid-template-columns:minmax(0,1fr)}}
