@charset "utf-8";
/* ============================================================
   woocommerce-all.css
   テイクアウト予約（WooCommerce）の商品一覧・商品詳細の体裁。
   現行テイクアウト（EC-CUBE）の見た目に寄せる。
   読み込みは inc/woocommerce.php で、WooCommerceのページだけ。
   PC/タブレット/スマホは @media で出し分ける（common-all.css と同じ方式）。
   ※色は現行画面から目で拾った暫定値。確定したら差し替える。
   ============================================================ */

/* ---- 変数がわりのメモ ----
   ボタン赤   : #e05a52
   商品名の色 : #55798f
   注記の赤   : #d0121b
   罫線       : #e5e5e5
--------------------------- */

/* ===== 器 ===== */
main.dp-shop,
body.dp-shop #main-content {
  max-width: 1180px;
  margin: 0 auto;
  padding: 24px 40px 70px;   /* 左右の余白。狭いと詰まって見えるため40pxを確保 */
}
.dp-shop .woocommerce-products-header__title,
.dp-shop h1.page-title {
  font-size: 20px;
  font-weight: bold;
  margin: 0 0 14px;
}

/* ===== パンくず（現行の「全て｜ピッツァ」に相当） ===== */
.dp-shop .woocommerce-breadcrumb {
  font-size: 13px;
  color: #55798f;
  padding: 0 0 10px;
  margin: 0 0 14px;
  border-bottom: 1px solid #e5e5e5;
}
.dp-shop .woocommerce-breadcrumb a { color: #55798f; text-decoration: none; }
.dp-shop .woocommerce-breadcrumb a:hover { text-decoration: underline; }

/* ===== 上部ツールバー（件数 ／ 表示件数 ／ 並び替え） ===== */
.dp-shop .dp-result-count {
  float: left;
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 30px;
}
.dp-shop .woocommerce-ordering,
.dp-shop .dp-per-page {
  float: right;
  margin: 0 0 18px 8px;
}
.dp-shop .woocommerce-ordering select,
.dp-shop .dp-per-page select {
  height: 30px;
  padding: 2px 6px;
  font-size: 13px;
  border: 1px solid #ccc;
  background: #fff;
}
.dp-shop .woocommerce-notices-wrapper { clear: both; }

/* ===== 商品一覧（4列グリッド） ===== */
.dp-shop ul.products {
  clear: both;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* 【重要】WooCommerceのCSSは ul.products に ::before / ::after を入れている（昔のfloat解除用）。
   CSSグリッドでは疑似要素も1マスとして数えられるため、先頭に空のマスができて
   1段目だけ3つになる。必ず消す。2026-08-12 に実際に発生した。 */
.dp-shop ul.products::before,
.dp-shop ul.products::after { display: none !important; content: none !important; }

/* WooCommerce標準のfloat・幅指定を打ち消す（gridに任せる） */
.dp-shop ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  clear: none !important;
}
.dp-shop ul.products li.product a img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 0 10px;
}
.dp-shop ul.products li.product .woocommerce-loop-product__title {
  font-size: 14px;
  font-weight: normal;
  color: #55798f;
  line-height: 1.5;
  margin: 0 0 4px;
  padding: 0;
}
.dp-shop ul.products li.product a { text-decoration: none; }
.dp-shop ul.products li.product .price {
  display: block;
  font-size: 14px;
  color: #333;
  margin: 0 0 8px;
}
.dp-shop ul.products li.product .price del { color: #999; margin-right: 4px; }
.dp-shop ul.products li.product .price ins { text-decoration: none; }

/* カートに入れるボタン（現行の赤いボタン） */
.dp-shop ul.products li.product .button,
.dp-shop .single_add_to_cart_button {
  display: block;
  width: 100%;
  padding: 17px 10px;      /* 現行EC-CUBEのボタンに合わせて太くした（2026-08-13 利用者要望） */
  border: 0;
  border-radius: 4px;
  background: #e05a52;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  cursor: pointer;
  line-height: 1.5;
}
.dp-shop ul.products li.product .button:hover,
.dp-shop .single_add_to_cart_button:hover { background: #c94a43; color: #fff; }
.dp-shop ul.products li.product .added_to_cart {
  display: block;
  margin: 6px 0 0;
  font-size: 13px;
  color: #55798f;
  text-align: center;
}

/* ===== 商品詳細 ===== */
.dp-shop .product .product_title {
  font-size: 24px;
  font-weight: normal;
  letter-spacing: .08em;
  margin: 0 0 14px;
}
.dp-shop .product .woocommerce-product-details__short-description { font-size: 14px; }
.dp-shop .product p.price {
  font-size: 26px;
  color: #d0121b;
  margin: 0 0 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid #e5e5e5;
}
.dp-shop .product table.variations { width: 100%; border: 0; margin: 0 0 14px; }
.dp-shop .product table.variations th,
.dp-shop .product table.variations td { border: 0; padding: 6px 0; vertical-align: middle; }
.dp-shop .product table.variations th.label { width: 6em; font-weight: normal; font-size: 14px; }
.dp-shop .product table.variations select {
  width: 100%;
  height: 34px;
  padding: 4px 8px;
  font-size: 14px;
  border: 1px solid #ccc;
  background: #fff;
}
.dp-shop .product .quantity input.qty {
  width: 5em;
  height: 34px;
  padding: 4px 8px;
  text-align: center;
  border: 1px solid #ccc;
}
.dp-shop .product form.cart { margin: 14px 0 0; }
.dp-shop .product .woocommerce-tabs { margin-top: 30px; }

/* ===== ページ送り ===== */
.dp-shop .woocommerce-pagination { clear: both; margin: 30px 0 0; text-align: center; }
.dp-shop .woocommerce-pagination ul { display: inline-block; list-style: none; margin: 0; padding: 0; }
.dp-shop .woocommerce-pagination li { display: inline-block; margin: 0 3px; }
.dp-shop .woocommerce-pagination a,
.dp-shop .woocommerce-pagination span {
  display: block;
  min-width: 34px;
  padding: 7px 10px;
  border: 1px solid #ddd;
  background: #fff;
  color: #55798f;
  text-decoration: none;
  font-size: 14px;
}
.dp-shop .woocommerce-pagination span.current { background: #e05a52; border-color: #e05a52; color: #fff; }

/* ===== タブレット ===== */
@media screen and (max-width: 1179px) {
  .dp-shop ul.products { grid-template-columns: repeat(3, 1fr); gap: 24px 16px; }
}

/* ===== スマホ ===== */
@media screen and (max-width: 767px) {
  main.dp-shop,
  body.dp-shop #main-content { padding: 16px 16px 50px; }
  .dp-shop ul.products { grid-template-columns: repeat(2, 1fr); gap: 20px 12px; }
  .dp-shop .dp-result-count { float: none; display: block; margin-bottom: 8px; }
  .dp-shop .woocommerce-ordering,
  .dp-shop .dp-per-page { float: none; display: inline-block; margin: 0 6px 12px 0; }
  .dp-shop ul.products li.product .button { font-size: 15px; padding: 14px 6px; }
  .dp-shop .product table.variations th.label { display: block; width: auto; }
}

/* ===== 一覧のセル: ボタンを行内で下端に揃える ===== */
.dp-shop ul.products li.product {
  display: flex;
  flex-direction: column;
}
.dp-shop ul.products li.product .dp-loop-form { margin-top: auto; }

/* ===== 一覧の中の「生地・サイズ・数量」フォーム =====
   商品詳細と同じフォームを一覧に出しているので、余白と文字を詰めて1セルに収める。 */
.dp-shop ul.products li.product form.cart,
.dp-shop ul.products li.product form.variations_form { margin: 0; }
.dp-shop ul.products li.product table.variations {
  width: 100%;
  border: 0;
  margin: 0 0 6px;
  table-layout: fixed;
}
.dp-shop ul.products li.product table.variations tr { display: block; margin: 0 0 6px; }
.dp-shop ul.products li.product table.variations th,
.dp-shop ul.products li.product table.variations td {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  text-align: left;
}
.dp-shop ul.products li.product table.variations th.label {
  font-size: 12px;
  font-weight: normal;
  color: #666;
  margin: 0 0 2px;
}
.dp-shop ul.products li.product table.variations select {
  width: 100%;
  height: 32px;
  padding: 3px 6px;
  font-size: 13px;
  border: 1px solid #ccc;
  background: #fff;
}
/* 「選択をクリア」は一覧では邪魔なので隠す */
.dp-shop ul.products li.product .reset_variations { display: none !important; }
/* 選択後に出る価格 */
.dp-shop ul.products li.product .woocommerce-variation-price .price {
  font-size: 16px;
  color: #d0121b;
  margin: 0 0 6px;
}
.dp-shop ul.products li.product .woocommerce-variation-availability { font-size: 12px; }
/* 数量 */
.dp-shop ul.products li.product .quantity {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
}
.dp-shop ul.products li.product .quantity::before {
  content: "数量";
  font-size: 12px;
  color: #666;
  white-space: nowrap;
}
.dp-shop ul.products li.product .quantity input.qty {
  width: 4.5em;
  height: 32px;
  padding: 3px 6px;
  text-align: center;
  border: 1px solid #ccc;
}
.dp-shop ul.products li.product .quantity .screen-reader-text { display: none; }

/* ============================================================
   テイクアウト予約 専用ヘッダー（parts/header-takeout.php）
   現行EC-CUBEと同じ「検索＋カート ／ ロゴ ／ カテゴリーナビ」の3段。
   ============================================================ */
.to-header { background: #fff; }
.to-header__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 12px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* --- 商品検索 --- */
.to-search { display: flex; align-items: stretch; }
.to-search__cat select {
  height: 34px;
  padding: 4px 26px 4px 12px;
  font-size: 13px;
  color: #fff;
  background: #222;
  border: 1px solid #222;
  border-radius: 3px 0 0 3px;
  -webkit-appearance: none;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
  background-position: calc(100% - 14px) 15px, calc(100% - 9px) 15px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.to-search__word input {
  height: 34px;
  width: 190px;
  padding: 4px 10px;
  font-size: 13px;
  border: 1px solid #ddd;
  border-left: 0;
  background: #f7f7f7;
}
.to-search__btn {
  height: 34px;
  width: 42px;
  border: 1px solid #ddd;
  border-left: 0;
  border-radius: 0 3px 3px 0;
  background: #f7f7f7;
  cursor: pointer;
  line-height: 1;
}
.to-search__btn:hover { background: #eee; }

/* --- カート --- */
.to-cart {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 18px;
  border-radius: 20px;
  background: #222;
  color: #fff;
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
}
.to-cart:hover { background: #444; color: #fff; }
.to-cart__count {
  display: inline-block;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: #e05a52;
  color: #fff;
  font-size: 11px;
  line-height: 18px;
  text-align: center;
}
.to-cart__total .amount { color: #fff; }

/* --- ロゴ --- */
.to-header__logo { text-align: center; padding: 18px 20px 10px; }
.to-header__logo img { width: 100%; max-width: 520px; height: auto; }

/* --- カテゴリーナビ --- */
.to-nav { padding: 6px 20px 16px; }
.to-nav ul {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 30px;
}
.to-nav a {
  display: block;
  padding: 6px 2px;
  color: #333;
  font-size: 15px;
  font-weight: bold;
  letter-spacing: .04em;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.to-nav a:hover { color: #e05a52; }
.to-nav li.is-current a { color: #e05a52; border-bottom-color: #e05a52; }

@media screen and (max-width: 1179px) {
  .to-header__inner { padding: 10px 20px; }
  .to-nav ul { gap: 4px 20px; }
  .to-nav a { font-size: 14px; }
}
@media screen and (max-width: 767px) {
  .to-header__inner { flex-wrap: wrap; padding: 10px 16px; gap: 10px; }
  .to-search { flex: 1 1 100%; }
  .to-search__word input { width: 100%; }
  .to-search__word { flex: 1; }
  .to-cart { margin-left: auto; }
  .to-header__logo { padding: 10px 16px 6px; }
  .to-header__logo img { max-width: 300px; }
  .to-nav ul { justify-content: flex-start; gap: 2px 16px; }
  .to-nav a { font-size: 13px; }
}

/* ============================================================
   テイクアウトのトップ（固定ページ /takeout/）
   本文HTMLは固定ページ側で管理。ここは体裁だけ。
   ============================================================ */
.to-top__slider { margin: 0 0 22px; }
.to-top__slider img { width: 100%; height: auto; display: block; }
/* slickの初期化が終わるまで2枚目以降を隠す（縦に積まれるのを防ぐ） */
.to-top__slider .to-top__slide { display: none; }
.to-top__slider .to-top__slide:first-child,
.to-top__slider.slick-initialized .to-top__slide { display: block; }
.to-top__slider .slick-dots { text-align: center; padding: 10px 0 0; margin: 0; list-style: none; }
.to-top__slider .slick-dots li { display: inline-block; margin: 0 4px; }
.to-top__slider .slick-dots button {
  width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%;
  background: #ccc; color: transparent; overflow: hidden; cursor: pointer;
}
.to-top__slider .slick-dots li.slick-active button { background: #e05a52; }

.to-top__lead {
  margin: 0 0 26px;
  padding: 14px 16px;
  background: #faf7f2;
  border: 1px solid #eee5d8;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.9;
  text-align: center;
}
.to-top__h2 {
  margin: 0 0 16px;
  padding: 0 0 8px;
  border-bottom: 2px solid #e05a52;
  font-size: 19px;
  font-weight: bold;
  letter-spacing: .06em;
}

/* カテゴリーバナー */
.to-top__cats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 34px;
  padding: 0;
  list-style: none;
}
.to-top__cats img { width: 100%; height: auto; display: block; border-radius: 3px; }
.to-top__cats a { display: block; text-decoration: none; }
.to-top__cats a:hover img { opacity: .82; }

/* クーポン・ご利用について */
.to-top__coupon { text-align: center; margin: 0 0 34px; }
.to-top__coupon img { max-width: 640px; width: 100%; height: auto; }
/* .to-top__info は使用をやめ、下記の figure / row 方式にした（2026-08-12） */

@media screen and (max-width: 1179px) {
  .to-top__cats { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
@media screen and (max-width: 767px) {
  .to-top__cats { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .to-top__h2 { font-size: 17px; }
  .to-top__lead { font-size: 13px; padding: 12px; }
}

/* ===== パンくず「全て｜ピッツァ」・注記・税込表記 ===== */
.dp-shop .dp-crumb {
  clear: both;
  margin: 0 0 12px;
  padding: 0 0 10px;
  border-bottom: 1px solid #e5e5e5;
  font-size: 13px;
  color: #55798f;
}
.dp-shop .dp-crumb a { color: #55798f; text-decoration: none; }
.dp-shop .dp-crumb a:hover { text-decoration: underline; }
.dp-shop .dp-crumb__sep { margin: 0 6px; color: #bbb; }
.dp-shop .dp-crumb__current { color: #55798f; font-weight: bold; }

.dp-shop .dp-shop-notice { clear: both; margin: 0 0 18px; }
.dp-shop .dp-shop-notice p {
  margin: 0 0 4px;
  color: #d0121b;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.7;
}
.dp-shop .dp-tax-note { font-size: 11px; color: #777; font-weight: normal; }
.dp-shop ul.products li.product .woocommerce-variation-price .dp-tax-note { color: #a35; }

@media screen and (max-width: 767px) {
  .dp-shop .dp-shop-notice p { font-size: 13px; }
}

/* ============================================================
   テーマの reset.css が `a { width: 100% }` を全リンクに当てているため、
   専用ヘッダーのリンク（ロゴ・カート・ナビ）が横幅いっぱいに広がってしまう。
   ロゴが中央に来ない・カートのボタンが伸びる原因がこれ。ここで打ち消す。
   2026-08-12 発覚
   ============================================================ */
.to-header a,
.dp-shop .dp-crumb a { width: auto; }

/* ロゴは text-align に頼らず、画像自体を margin:auto で中央に置く */
.to-header__logo { text-align: center; }
.to-header__logo a { display: inline-block; width: auto; }
.to-header__logo img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: auto;
  max-width: 520px;
  height: auto;
}

/* カートは中身の幅で止める */
.to-header__inner .to-cart { flex: 0 0 auto; width: auto; }
.to-header__inner .to-search { flex: 0 0 auto; }

/* テイクアウトのトップは固定ページなので page.php が <h1>テイクアウト予約</h1> を出す。
   現行には無い見出しなので隠す。カート・レジの見出し（ショッピングカート等）は残す。 */
body.dp-takeout-top #main-content > article > h1 { display: none; }

@media screen and (max-width: 767px) {
  .to-header__logo img { max-width: 300px; }
  .to-header__inner .to-search { flex: 1 1 100%; }
}

/* ============================================================
   テイクアウトのトップ ご利用案内の並べ方（現行の組み合わせに合わせる）
   画像そのものに文字とデザインが入っているので、並べ方だけ合わせる。
   figure = 1枚を中央に、row--2 = 2列、row--3 = 3列。
   ============================================================ */
.to-top__figure { margin: 0 0 30px; text-align: center; }
.to-top__figure img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: auto;
  max-width: 100%;
  height: auto;
}
.to-top__figure--narrow img { max-width: 720px; }

.to-top__row {
  display: grid;
  gap: 20px;
  margin: 0 0 30px;
  align-items: start;
}
.to-top__row--2 { grid-template-columns: repeat(2, 1fr); }
.to-top__row--3 { grid-template-columns: repeat(3, 1fr); }
.to-top__row img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.to-top__coupon img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: auto;
  max-width: 700px;
  height: auto;
}

/* 見出しは案内セクションでも同じ体裁。上に余白を足して塊が分かるようにする */
.to-top .to-top__h2 { margin-top: 34px; }
.to-top .to-top__h2:first-of-type { margin-top: 0; }

@media screen and (max-width: 767px) {
  .to-top__row--2,
  .to-top__row--3 { grid-template-columns: 1fr; gap: 14px; }
  .to-top__figure { margin-bottom: 22px; }
}

/* ===== ご利用案内の細部（現行の並びに合わせる・2026-08-12） ===== */
/* 画像の左に写真・右に説明文（容器代の段） */
.to-top__media {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  align-items: start;
  margin: 0 0 30px;
}
.to-top__media-img img { display: block; width: 100%; max-width: 100%; height: auto; }
.to-top__media-body p { margin: 0; font-size: 14px; line-height: 1.9; }

/* 小見出し（・クラフト生地 など） */
.to-top__label {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.6;
}
.to-top__label--star { color: #333; font-size: 14px; text-align: center; }

/* 注意文（※カットはしておりません など） */
.to-top__note {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.8;
  color: #444;
}

/* 見出しを中央に置きたいとき（クーポンの段） */
.to-top__h2--center {
  text-align: center;
  border-bottom: 0;
  color: #d0121b;
  font-size: 18px;
}

@media screen and (max-width: 767px) {
  .to-top__media { grid-template-columns: 1fr; gap: 12px; }
  .to-top__media-img img { max-width: 260px; margin: 0 auto; }
}

/* ============================================================
   専用ヘッダー 2026-08-12 夕方の調整
   ・ロゴを一番上、その下に検索とカート（利用者要望）
   ・カートは「カートの中を見る」の文言を入れて大きく目立たせる
     （カートという言葉・アイコンが分からないお客様が多いため）
   ============================================================ */
.to-header__logo { padding: 20px 20px 8px; }
.to-header__utility { padding: 0 0 6px; }
.to-header__inner { padding: 8px 40px 12px; }

/* カート … 赤くして文字を入れ、ヘッダーで一番目立つ要素にする */
.to-header .to-cart {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 24px;
  border-radius: 8px;
  background: #e05a52;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 2px 0 #b8443d;
  width: auto;
}
.to-header .to-cart:hover { background: #c94a43; color: #fff; }
.to-header .to-cart__icon { display: inline-flex; align-items: center; }
.to-header .to-cart__label { font-size: 16px; letter-spacing: .02em; }
/* 点数の丸。inline-block ＋ padding だと文字が上下で中央に来ないので、
   flex で縦横とも中央に置き、幅と高さを同じにして真円にする（2026-08-13 利用者要望）。 */
.to-header .to-cart__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 34px;
  height: 34px;
  padding: 0 7px;
  border-radius: 999px;
  background: #fff;
  color: #d0121b;
  font-size: 15px;
  font-weight: bold;
  line-height: 1;
}
.to-header .to-cart__unit { font-size: 11px; margin-left: 1px; line-height: 1; }
.to-header .to-cart__total { font-size: 16px; }
.to-header .to-cart__total .amount { color: #fff; }

@media screen and (max-width: 767px) {
  .to-header__inner { padding: 8px 16px 12px; }
  .to-header .to-cart {
    width: 100%;
    justify-content: center;
    padding: 12px 14px;
    font-size: 15px;
  }
  .to-header .to-cart__label { font-size: 15px; }
}

/* ============================================================
   ハーフ＆ハーフ カテゴリー下部「ピッツァ トッピング一覧」（2026-08-13）
   現行(EC-CUBE)はBootstrap3のグリッド col-lg-3/col-md-3/col-sm-4/col-xs-6 で
   PC4列・TB3列・SP2列。テーマもBootstrap3.4.1を読むのでそのままでも並ぶが、
   Bootstrapの区切り(1200/992/768)とテーマの区切り(1179/767)がずれて
   商品一覧と列数が食い違うため、ここでgridに置き換えて商品一覧と揃える。
   floatを使わないので、説明文の長さで段がずれる問題も起きない。
   ============================================================ */
.harfharf-under {
  clear: both;
  margin: 50px 0 0;
  padding-top: 30px;
  border-top: 1px solid #e5e5e5;
}
.harfharf-under .container-fluid { padding: 0; }

.harfharf-under .harfharf-under-title {
  text-align: center;
  margin: 0 0 26px;
}
.harfharf-under .harfharf-under-title h2 {
  display: inline-block;
  font-size: 22px;
  font-weight: bold;
  color: #333;
  margin: 0;
  padding: 0 0 8px;
  border-bottom: 3px solid #e05a52;
  line-height: 1.4;
}

/* Bootstrapのfloat・%幅・負マージンを打ち消してgridに任せる */
.harfharf-under .row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px 20px;
  margin: 0;
}
/* 【重要・教訓29と同じ罠】Bootstrap3の .row には float 解除用の
   ::before / ::after（clearfix）がある。grid ではこれも1マスとして数えられ、
   1段目の先頭に空マスができて商品が3つに見える。必ず打ち消す。
   grid化する親要素は、既存CSSの ::before / ::after を毎回確認すること。 */
.harfharf-under .row::before,
.harfharf-under .row::after {
  display: none !important;
  content: none !important;
}
.harfharf-under .row > div {
  width: auto;
  float: none;
  padding: 0;
}

.harfharf-under img {
  width: 100%;
  height: auto;
  display: block;
}
.harfharf-under .title-matchHeigtht {
  font-size: 15px;
  font-weight: bold;
  color: #55798f;
  line-height: 1.45;
  margin: 10px 0 6px;
}
.harfharf-under .topping-matchHeigtht {
  font-size: 12px;
  line-height: 1.7;
  color: #555;
  margin: 0;
}

/* ===== タブレット ===== */
@media screen and (max-width: 1179px) {
  .harfharf-under .row { grid-template-columns: repeat(3, 1fr); }
}
/* ===== スマホ ===== */
@media screen and (max-width: 767px) {
  .harfharf-under { margin-top: 34px; padding-top: 22px; }
  .harfharf-under .harfharf-under-title h2 { font-size: 18px; }
  .harfharf-under .row { grid-template-columns: repeat(2, 1fr); gap: 22px 14px; }
  .harfharf-under .title-matchHeigtht { font-size: 13px; }
  .harfharf-under .topping-matchHeigtht { font-size: 11px; line-height: 1.6; }
}

/* ============================================================
   ハーフ＆ハーフ トッピング2種の選択（共通プラグイン dp-takeout の M8 が出力）
   一覧・商品詳細の両方に同じフォームが出るので、余白は一覧に合わせて詰める。
   ============================================================ */
.dp-hh { margin: 0 0 8px; }
.dp-hh__lead {
  font-size: 12px;
  font-weight: bold;
  color: #d0121b;
  margin: 0 0 6px;
  line-height: 1.4;
}
.dp-hh__row { margin: 0 0 6px; }
.dp-hh__label {
  display: block;
  font-size: 12px;
  color: #666;
  margin: 0 0 2px;
}
.dp-hh__select {
  width: 100%;
  height: 32px;
  padding: 3px 6px;
  font-size: 13px;
  border: 1px solid #ccc;
  background: #fff;
}
/* 2つ選ぶと出る金額 */
.dp-hh__price {
  font-size: 16px;
  font-weight: bold;
  color: #d0121b;
  margin: 0 0 6px;
  min-height: 1.2em;   /* 表示前後で高さが動かないように場所を確保しておく */
}
/* 商品詳細では一覧より少しゆったり見せる */
.dp-shop .single-product .dp-hh__lead,
.single-product .dp-shop .dp-hh__lead { font-size: 14px; }
.single-product .dp-shop .dp-hh__select { max-width: 420px; }
.single-product .dp-shop .dp-hh__price { font-size: 20px; }

/* 2つ選んだあとの金額。客がここだけ見て判断するので、一覧の中で一番目立たせる。 */
.dp-hh__price {
  margin: 8px 0 10px;
  padding: 6px 8px;
  background: #fdf3f2;
  border: 1px solid #f0cfcc;
  line-height: 1.4;
}
.dp-hh__price-label {
  display: block;
  font-size: 11px;
  color: #666;
}
.dp-hh__price-value {
  display: block;
  font-size: 20px;
  font-weight: bold;
  color: #d0121b;
}
.dp-hh__price-wait {
  display: block;
  font-size: 11px;
  color: #999;
}
/* 2つ選ぶまでは案内文だけ、選んだら金額だけを出す */
.dp-hh .dp-hh__price-label { display: none; }
.dp-hh.is-ready .dp-hh__price-label { display: block; }
.dp-hh.is-ready .dp-hh__price-wait { display: none; }
.single-product .dp-hh__price-value { font-size: 26px; }

/* ============================================================
   ボタンの太さを揃える（2026-08-13 利用者要望）
   現行EC-CUBEのボタンは高さがあり指で押しやすい。客が押す「主要ボタン」を
   一覧・商品詳細・カート・レジで同じ太さに揃える。
   ・主要 = カートに入れる／購入手続きに進む／注文する
   ・補助 = お買い物カゴを更新／クーポンを適用（主要より控えめにして押し間違いを防ぐ）
   ============================================================ */
body.dp-shop .wc-proceed-to-checkout a.checkout-button,
body.dp-shop #place_order,
.dp-shop .wc-proceed-to-checkout a.checkout-button,
.dp-shop #place_order {
  display: block;
  width: 100%;
  padding: 18px 12px;
  border: 0;
  border-radius: 4px;
  background: #e05a52;
  color: #fff;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
}
body.dp-shop .wc-proceed-to-checkout a.checkout-button:hover,
body.dp-shop #place_order:hover,
.dp-shop .wc-proceed-to-checkout a.checkout-button:hover,
.dp-shop #place_order:hover { background: #c94a43; color: #fff; }

/* 補助ボタン */
body.dp-shop .woocommerce-cart-form button.button,
body.dp-shop .coupon button.button,
.dp-shop .woocommerce-cart-form button.button,
.dp-shop .coupon button.button {
  padding: 12px 16px;
  border: 1px solid #bbb;
  border-radius: 4px;
  background: #f5f5f5;
  color: #333;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  body.dp-shop .wc-proceed-to-checkout a.checkout-button,
  body.dp-shop #place_order,
  .dp-shop .wc-proceed-to-checkout a.checkout-button,
  .dp-shop #place_order { padding: 16px 10px; font-size: 16px; }
}

/* ============================================================
   【重要】テーマ共通の `.button`（common-all.css）を打ち消す（2026-08-13 発覚）
   common-all.css はサイト全体の装飾ボタン用に
     .button { width:200px; height:34px; line-height:30px; border:2px solid #fff }
     .button::before, .button::after { position:absolute; width:50%; height:100%; background:#804000 }
   を持っている。WooCommerceのボタンにも class="button" が付くため、これを丸ごと受けてしまう。
   ・height:34px が効くので、padding を足しても箱が伸びず文字が下がって下端が切れる
   ・疑似要素は z-index:-1 だが、CSSの描画順では「自分の背景 → 負のz-indexの子」なので
     ボタンの背景色より前面に来る。赤 #e05a52 が茶色 #804000 に覆われていた
   教訓27（reset.css の a{width:100%}）と同じ型。共通CSSの緩いセレクタは、
   新しい部品を足すたびに疑わしいものとして確認する。
   ============================================================ */
.dp-shop ul.products li.product .button,
.dp-shop .single_add_to_cart_button,
.dp-shop .button,
body.dp-shop .button,
body.dp-shop a.button,
body.dp-shop button.button,
body.dp-shop input.button,
body.dp-shop #place_order {
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  position: relative;
  z-index: 0;
  transition: background-color .2s;
}
.dp-shop ul.products li.product .button::before,
.dp-shop ul.products li.product .button::after,
.dp-shop .single_add_to_cart_button::before,
.dp-shop .single_add_to_cart_button::after,
body.dp-shop .button::before,
body.dp-shop .button::after,
body.dp-shop #place_order::before,
body.dp-shop #place_order::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

/* ============================================================
   商品詳細の体裁を一覧に合わせる（2026-08-13 利用者要望）
   ============================================================ */

/* (1) ボタンの色。WooCommerce標準の `.woocommerce button.button.alt`（紫 #a46497）は
       詳細度が (0,3,1) あり、こちらの `.dp-shop .single_add_to_cart_button` (0,2,0) では負ける。
       一覧側はセレクタが長いため勝っていて、詳細だけ紫のままだった。
       他人のCSSを上書きするときは「詳細度で勝っているか」を必ず確認する。 */
.dp-shop .product form.cart button.single_add_to_cart_button,
.dp-shop .product form.cart button.single_add_to_cart_button.alt {
  display: block;
  width: 100%;
  max-width: 420px;
  padding: 17px 10px;
  border: 0;
  border-radius: 4px;
  background: #e05a52;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  height: auto;
  cursor: pointer;
}
.dp-shop .product form.cart button.single_add_to_cart_button:hover,
.dp-shop .product form.cart button.single_add_to_cart_button.alt:hover { background: #c94a43; color: #fff; }

/* (2) 商品詳細の数量にも「数量」の文字を出す。
       WooCommerce標準のラベルは .screen-reader-text で読み上げ専用のため、画面には何も出ない。
       一覧では ::before で補っていたが、詳細に入れ忘れていた。 */
.dp-shop .product form.cart .quantity {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
}
.dp-shop .product form.cart .quantity::before {
  content: "数量";
  font-size: 13px;
  color: #666;
  white-space: nowrap;
}
.dp-shop .product form.cart .quantity input.qty {
  width: 5em;
  height: 36px;
  padding: 3px 6px;
  text-align: center;
  border: 1px solid #ccc;
}
.dp-shop .product form.cart .quantity .screen-reader-text { display: none; }

/* (3) 商品詳細に出すトッピング一覧は、上の余白を広めにして塊が分かるようにする */
.single-product .harfharf-under { margin-top: 40px; }

/* ============================================================
   商品詳細の整理（2026-08-13）
   ============================================================ */

/* 【重要】「生地タイプ」「サイズ」のラベルが見えなくなっていた原因（教訓34と同じ型）。
   WooCommerceは <th class="label"> を使うが、**Bootstrap3 の `.label` はバッジ用**で
   `color:#fff; font-size:75%; display:inline; padding:.2em .6em .3em` が入っている。
   そのため白背景に白文字となり、HTMLには出ているのに画面から消えていた。
   共通CSS（Bootstrap）の単一クラスは、WooCommerceのクラス名と衝突しやすい。 */
.dp-shop .product table.variations th.label,
.dp-shop .product table.variations th.label label {
  display: table-cell;
  padding: 8px 12px 8px 0;
  color: #333;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  background: none;
  border-radius: 0;
  white-space: nowrap;
  text-align: left;
  vertical-align: middle;
}
.dp-shop .product table.variations th.label label { display: inline; padding: 0; }
.dp-shop .product table.variations { width: auto; border: 0; margin: 0 0 10px; }
.dp-shop .product table.variations td.value { padding: 6px 0; }
.dp-shop .product table.variations select {
  min-width: 260px;
  height: 36px;
  padding: 4px 8px;
  font-size: 14px;
  border: 1px solid #ccc;
  background: #fff;
}
.dp-shop .product .reset_variations { font-size: 12px; }

/* 商品情報（現行の【具材】など）。カテゴリー行の下に置く。 */
.dp-product-info {
  margin: 18px 0 0;
  padding: 14px 16px;
  background: #fafafa;
  border: 1px solid #e5e5e5;
}
.dp-product-info__title {
  font-size: 15px;
  font-weight: bold;
  color: #333;
  margin: 0 0 8px;
  padding: 0 0 6px;
  border-bottom: 1px solid #e5e5e5;
}
.dp-product-info p {
  font-size: 13px;
  line-height: 1.8;
  color: #555;
  margin: 0;
}

/* 同じカテゴリーの商品（WooCommerce標準の「関連商品」を置き換えたもの）
   ここは主役ではない。客が見たいのは今開いている商品なので、
   ・十分に下げて、商品の情報を読み終えてから目に入る位置に置く
   ・見出しは左寄せ・控えめな色で、線だけ横いっぱいに引いて「別の区切り」だと分かるようにする
   （2026-08-13 利用者要望） */
.dp-same-cat {
  clear: both;
  margin: 80px 0 0;
}
.dp-same-cat__title {
  display: block;
  width: 100%;
  text-align: left;
  font-size: 16px;
  font-weight: bold;
  color: #666;
  margin: 0 0 20px;
  padding: 0 0 10px;
  border-bottom: 2px solid #e5e5e5;
}
@media screen and (max-width: 767px) {
  .dp-shop .product table.variations select { min-width: 0; width: 100%; }
  .dp-shop .product table.variations,
  .dp-shop .product table.variations tbody,
  .dp-shop .product table.variations tr { display: block; width: 100%; }
  .dp-shop .product table.variations th.label,
  .dp-shop .product table.variations td.value { display: block; width: 100%; padding: 0 0 4px; }
  .dp-same-cat { margin-top: 48px; }
  .dp-same-cat__title { font-size: 15px; margin-bottom: 14px; }
}

/* ============================================================
   カテゴリーナビの子カテゴリー・ドロップダウン（2026-08-13 利用者要望）
   現行EC-CUBEと同じく、マウスを乗せると子カテゴリーが黒い箱で降りてくる。
   注意: `.to-nav ul` の指定（flex・中央寄せ・gap・max-width）は入れ子のULにも当たるので、
   子メニュー側で必ず打ち消す。共通の親セレクタで ul を指定しているときの定番の罠。
   ============================================================ */
.to-nav { position: relative; z-index: 50; }
.to-nav > ul > li { position: relative; }

/* 子を持つ親は、当たり判定を広げて押しやすくする */
.to-nav > ul > li.has-sub > a { padding-left: 12px; padding-right: 12px; }
.to-nav > ul > li.has-sub:hover > a,
.to-nav > ul > li.has-sub:focus-within > a { background: #f0f0f0; }
.to-nav__arrow {
  display: inline-block;
  margin-left: 6px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  vertical-align: middle;
}

/* 子メニュー本体 */
.to-nav .to-nav__sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 60;
  /* 親の ul 指定（flex・中央寄せ・max-width・gap・margin auto）を打ち消す */
  max-width: none;
  min-width: 210px;
  margin: 0;
  padding: 0;
  gap: 0;
  list-style: none;
  background: #111;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .25);
}
.to-nav > ul > li.has-sub:hover > .to-nav__sub,
.to-nav > ul > li.has-sub:focus-within > .to-nav__sub { display: block; }

.to-nav .to-nav__sub li { display: block; width: 100%; }
.to-nav .to-nav__sub li + li { border-top: 1px solid #333; }
.to-nav .to-nav__sub a {
  display: block;
  width: 100%;
  padding: 13px 18px;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.4;
  white-space: nowrap;
  border-bottom: 0;
  text-decoration: none;
}
.to-nav .to-nav__sub a:hover { background: #e05a52; color: #fff; }
.to-nav .to-nav__sub li.is-current a { color: #ffb3ae; }

/* 右端の「ドリンク」「かき氷」は、はみ出さないよう右揃えで開く */
.to-nav > ul > li.has-sub:nth-last-child(-n+2) .to-nav__sub { left: auto; right: 0; }

/* スマホはマウスオーバーが無いので出さない（親をタップすれば子の商品も一覧に出る） */
@media screen and (max-width: 767px) {
  .to-nav .to-nav__sub { display: none !important; }
  .to-nav__arrow { display: none; }
  .to-nav > ul > li.has-sub > a { padding-left: 2px; padding-right: 2px; }
}

/* ============================================================
   スマホのカテゴリーナビをボタン並びにする（2026-08-13 利用者要望）
   ハンバーガーメニューは作らない。理由:
   ・子カテゴリーまで含めた選択は、2段目の検索の「全ての商品」プルダウンで既にできる
   ・カテゴリーは8件しかないので、そのまま並べたほうが1タップで選べて分かりやすい
   文字リンクのままだと指で押しにくいので、2列のボタンにして当たり判定を広げる。
   ============================================================ */
@media screen and (max-width: 767px) {
  .to-nav { padding: 4px 12px 16px; }
  .to-nav > ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    justify-content: stretch;
  }
  .to-nav > ul > li > a {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    padding: 10px 6px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.3;
    text-align: center;
  }
  .to-nav > ul > li.is-current > a {
    background: #e05a52;
    border-color: #e05a52;
    color: #fff;
  }
  /* スマホでは押しっぱなしでドロップダウンが残るので出さない。
     子カテゴリーは検索のプルダウンから選ぶ。 */
  .to-nav .to-nav__sub { display: none !important; }
  .to-nav__arrow { display: none; }
  .to-nav > ul > li.has-sub > a { padding-left: 6px; padding-right: 6px; }
}

/* ============================================================
   カート画面（2026-08-13 利用者要望）
   ・客は商品名より写真で商品を覚えているので、サムネイルを大きく出す
   ・WooCommerce標準はスマホでサムネイルを display:none にしている
     （woocommerce-smallscreen.css の
       `.woocommerce table.cart .product-thumbnail{display:none}`）。
     テイクアウトでは写真が手がかりなので、スマホでも必ず出す。
   ・クーポン欄と「お買い物カゴを更新」は使わないので出さない。
     数量の変更は inc/woocommerce.php のJSで自動反映する。
   ・配送（受け取り）欄は inc/woocommerce.php 側で出力そのものを止めている。
   【注意】WooCommerceのスマホ用CSSは media="(max-width:768px)" で読み込まれる。
           テーマの区切り(767px)と1pxずれるので、ここだけ 768px に合わせる。
           767pxにすると、幅768pxのときだけ表が縦積みなのに画像が消える。
   ============================================================ */

/* ---- 表全体 ---- */
body.dp-shop .woocommerce-cart-form table.cart {
  width: 100%;
  margin-bottom: 24px;
  border: 1px solid #e5e5e5;
  border-collapse: collapse;
}
body.dp-shop .woocommerce-cart-form table.cart thead th {
  padding: 12px 10px;
  background: #f7f7f7;
  border-bottom: 1px solid #e5e5e5;
  color: #333;
  font-size: 14px;
  font-weight: bold;
}
body.dp-shop .woocommerce-cart-form table.cart tbody td {
  padding: 14px 10px;
  border-bottom: 1px solid #eee;
  vertical-align: middle;
}

/* ---- 商品画像（PC） ---- */
body.dp-shop table.cart td.product-thumbnail { width: 150px; text-align: center; }
/* 教訓27: reset.css の a{width:100%} でリンクが全幅に広がるので戻す */
body.dp-shop table.cart td.product-thumbnail a { display: inline-block; width: auto; }
body.dp-shop table.cart td.product-thumbnail img {
  display: block;
  width: 130px;
  height: auto;
  max-width: none;
  border-radius: 4px;
}

/* ---- 商品名・トッピング ---- */
body.dp-shop table.cart td.product-name { font-size: 16px; line-height: 1.6; }
body.dp-shop table.cart td.product-name > a { color: #55798f; font-weight: bold; }
body.dp-shop table.cart td.product-name dl.variation { margin: 6px 0 0; font-size: 14px; color: #444; }
body.dp-shop table.cart td.product-name dl.variation dt { float: none; display: inline; margin: 0 4px 0 0; font-weight: bold; }
body.dp-shop table.cart td.product-name dl.variation dd { display: inline; margin: 0; }
body.dp-shop table.cart td.product-name dl.variation dd p { display: inline; margin: 0; }
/* トッピング①と②を別の行にする（dd を inline にしたので改行が要る） */
body.dp-shop table.cart td.product-name dl.variation dd::after { content: ""; display: block; }

/* ---- 金額・小計・数量 ---- */
body.dp-shop table.cart td.product-price,
body.dp-shop table.cart td.product-subtotal { text-align: right; font-size: 16px; white-space: nowrap; }
body.dp-shop table.cart td.product-subtotal { font-weight: bold; }
body.dp-shop table.cart td.product-quantity { text-align: center; }
body.dp-shop table.cart td.product-quantity .quantity input.qty {
  width: 70px;
  height: 44px;
  padding: 4px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
  text-align: center;
}
body.dp-shop table.cart td.product-quantity .screen-reader-text { display: none; }

/* ---- 削除の × ---- */
body.dp-shop table.cart td.product-remove { width: 52px; text-align: center; }
body.dp-shop table.cart td.product-remove a.remove {
  display: inline-block;
  width: 30px;
  height: 30px;
  line-height: 28px;
  border-radius: 50%;
  background: #f0f0f0;
  color: #b3453d !important;
  font-size: 18px;
  text-align: center;
  text-decoration: none;
}
body.dp-shop table.cart td.product-remove a.remove:hover { background: #e05a52; color: #fff !important; }

/* ---- 使わない部品（クーポン欄・お買い物カゴを更新） ----
   nonce等の hidden はこのセルの中にあるので、セルごと消さずに中身だけ隠す。
   （display:none でも hidden は送信されるが、行そのものは残しておく） */
body.dp-shop table.cart td.actions { padding: 0; border: 0; }
body.dp-shop table.cart td.actions .coupon,
body.dp-shop table.cart td.actions button[name="update_cart"],
body.dp-shop table.cart td.actions input[name="update_cart"] { display: none !important; }

/* ---- 合計欄 ---- */
body.dp-shop .cart_totals h2 { margin: 0 0 10px; font-size: 20px; }
body.dp-shop .cart_totals table.shop_table {
  width: 100%;
  border: 1px solid #e5e5e5;
  border-collapse: collapse;
}
body.dp-shop .cart_totals table.shop_table th,
body.dp-shop .cart_totals table.shop_table td {
  padding: 12px 14px;
  border-bottom: 1px solid #eee;
  font-size: 15px;
}
body.dp-shop .cart_totals table.shop_table th {
  width: 40%;
  background: #f7f7f7;
  text-align: left;
  font-weight: bold;
}
body.dp-shop .cart_totals table.shop_table td { text-align: right; }
body.dp-shop .cart_totals tr.order-total td { font-size: 18px; }
body.dp-shop .cart_totals tr.order-total .includes_tax { font-size: 13px; color: #666; }
body.dp-shop .cart_totals .wc-proceed-to-checkout { margin-top: 16px; }

/* ---- タブレット・スマホ（WooCommerceが表を縦積みにする幅） ---- */
@media screen and (max-width: 768px) {
  body.dp-shop .woocommerce-cart-form table.cart tbody tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 120px 1fr;
    grid-template-areas:
      "thumb name"
      "thumb price"
      "thumb qty"
      "thumb sub";
    gap: 0 12px;
    padding: 14px 10px;
    border-bottom: 1px solid #e5e5e5;
  }
  body.dp-shop .woocommerce-cart-form table.cart tbody tr.cart_item td {
    padding: 2px 0;
    border: 0;
    background: none;
  }
  body.dp-shop table.cart td.product-thumbnail {
    display: block !important; /* WooCommerce標準は display:none */
    grid-area: thumb;
    width: auto;
    padding: 0;
  }
  body.dp-shop table.cart td.product-thumbnail img { width: 120px; }
  body.dp-shop table.cart td.product-thumbnail::before { display: none; }
  body.dp-shop table.cart td.product-name {
    grid-area: name;
    padding-right: 34px; /* 右上の×と重ならないように */
    padding-bottom: 6px;
    text-align: left !important;
  }
  body.dp-shop table.cart td.product-name::before { display: none; }
  body.dp-shop table.cart td.product-price { grid-area: price; }
  body.dp-shop table.cart td.product-quantity { grid-area: qty; text-align: right !important; }
  body.dp-shop table.cart td.product-subtotal { grid-area: sub; }
  body.dp-shop table.cart td.product-remove {
    position: absolute;
    top: 10px;
    right: 8px;
    width: auto;
    padding: 0;
  }
  body.dp-shop .cart_totals h2 { margin-top: 20px; }
}

/* ---- 配送欄は出さない（PHP側でも止めているが、取りこぼしの保険） ---- */
body.dp-shop .cart_totals tr.shipping,
body.dp-shop .cart_totals tr.woocommerce-shipping-totals { display: none !important; }

/* ---- 合計の「(¥502 消費税を含む)」は出さない（2026-08-13 利用者要望） ----
   商品は軽減8%・箱代は10%と税率が混ざるうえ、いまの内訳は箱代の10%分を含んでいないため
   （箱代を taxable=false でカートに足しているため）、客に見せると紛らわしい。
   金額そのもの（合計）は正しいので、内訳の表示だけを止める。
   ※税額の計算そのものを直す件は CLAUDE.md G章「次の一手」に残す。 */
body.dp-shop .cart_totals .includes_tax { display: none !important; }

/* ============================================================
   ご注文手続き（レジ）（2026-08-13 利用者要望）
   「請求先情報の詳細」の見出しは、住所を消したあとでは中身と合わないので出さない。
   （テンプレート form-billing.php が出す <h3>。項目自体は dp-takeout の M4 で削っている）
   ============================================================ */
body.dp-shop .woocommerce-billing-fields > h3 { display: none; }
body.dp-shop .woocommerce-checkout h3#order_review_heading { margin-top: 24px; }

/* ---- レジのご注文表：配送（受け取り方法）の行は出さない（2026-08-13 利用者要望） ----
   店頭受取しかないので選ばせる意味がない。選択済みの hidden は残るので注文には影響しない。 */
body.dp-shop .woocommerce-checkout-review-order-table tr.shipping,
body.dp-shop .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { display: none; }

/* ============================================================
   ご注文手続き（レジ）の仕上げ（2026-08-18 利用者指示）
   ・利用者が実物を見て出した指摘を上から順に反映したもの。
   ・body には woocommerce-checkout が付き、フォームにも同じクラスが付く。
     どちらでも効くように両方の書き方を並べている。
   ============================================================ */

/* ---- (1)「(オプション)」の表記は出さない ----
   WooCommerceが任意項目のラベルに自動で付ける <span class="optional">。
   必須には * が付くので、任意側に注記が無くても迷わない。 */
body.dp-shop.woocommerce-checkout .optional,
body.dp-shop .woocommerce-checkout .optional { display: none; }

/* ---- (2) 合計の「(¥382 消費税を含む)」はレジでも出さない ----
   カート画面と同じ理由。商品は軽減8%・箱代は10%と税率が混ざるうえ、
   いまの内訳は箱代の10%分を含んでいないため紛らわしい（金額そのものは正しい）。 */
body.dp-shop .woocommerce-checkout-review-order-table .includes_tax { display: none !important; }

/* ---- (3)「ご要望」の入力欄を広げる ---- */
body.dp-shop #order_comments {
  min-height: 120px;
  padding: 10px;
  font-size: 15px;
  line-height: 1.6;
}

/* ---- (4) 支払い欄 ----
   【重要】「注文する」ボタンは #payment の中（div.form-row.place-order）にある。
           #payment ごと display:none にするとボタンまで消えるので、背景と中の部品だけを消す。
   ・支払い方法は「店頭でお支払い（受取時）」の1つだけなので一覧は出さない。
     ラジオは display:none でも送信されるため注文には影響しない。
   ・英文のプライバシーポリシー文（.woocommerce-privacy-policy-text）も出さない。
   ・代わりに inc/woocommerce.php の (e) が出す案内を大きく見せる。 */
body.dp-shop #payment { background: transparent; border-radius: 0; }
body.dp-shop #payment ul.wc_payment_methods,
body.dp-shop #payment .woocommerce-privacy-policy-text { display: none !important; }
body.dp-shop #payment div.form-row.place-order { padding: 0; }

body.dp-shop .dp-pay-notice {
  margin: 0 0 18px;
  padding: 18px 16px;
  border: 2px solid #e05a52;
  border-radius: 6px;
  background: #fff7f6;
  text-align: center;
}
body.dp-shop .dp-pay-notice__main {
  margin: 0;
  color: #c9302c;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
}
body.dp-shop .dp-pay-notice__sub {
  margin: 8px 0 0;
  color: #444;
  font-size: 15px;
  line-height: 1.6;
}

/* ---- (5) 受取日の上の「店頭受取のみ」の案内（出力は dp-takeout プラグイン） ---- */
body.dp-shop .dp-pickup-notice {
  margin: 6px 0 14px;
  padding: 10px 12px;
  border-left: 4px solid #55798f;
  border-radius: 3px;
  background: #f2f6f9;
  color: #33566b;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  body.dp-shop .dp-pay-notice { padding: 14px 12px; }
  body.dp-shop .dp-pay-notice__main { font-size: 17px; }
  body.dp-shop .dp-pay-notice__sub { font-size: 14px; }
  body.dp-shop .dp-pickup-notice { font-size: 14px; }
}

/* ---- (6) ご注文内容の表：商品の行と合計の行で背景色を分ける（2026-08-18 利用者指示） ----
   それまでは全部が白一色で、どこまでが商品でどこからが合計なのか目で追えなかった。
   見出し(thead)と合計欄(tfoot)に薄いグレーを敷き、商品(tbody)を白にして区切る。
   色はカート画面の合計欄と同じ #f7f7f7 に揃えている。 */
body.dp-shop .woocommerce-checkout-review-order-table {
  width: 100%;
  border: 1px solid #e5e5e5;
  border-collapse: collapse;
}
body.dp-shop .woocommerce-checkout-review-order-table th,
body.dp-shop .woocommerce-checkout-review-order-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #eee;
  font-size: 15px;
}
body.dp-shop .woocommerce-checkout-review-order-table thead th {
  background: #f7f7f7;
  color: #333;
  font-weight: bold;
}
body.dp-shop .woocommerce-checkout-review-order-table tbody td {
  background: #fff;
}
body.dp-shop .woocommerce-checkout-review-order-table tfoot th,
body.dp-shop .woocommerce-checkout-review-order-table tfoot td {
  background: #f7f7f7;
  font-weight: bold;
}
/* 合計の行だけ少し濃くして大きく */
body.dp-shop .woocommerce-checkout-review-order-table tfoot tr.order-total th,
body.dp-shop .woocommerce-checkout-review-order-table tfoot tr.order-total td {
  background: #efefef;
  border-bottom: 0;
  font-size: 18px;
}
/* 金額の列は右寄せ・折り返さない */
body.dp-shop .woocommerce-checkout-review-order-table td.product-total,
body.dp-shop .woocommerce-checkout-review-order-table th.product-total,
body.dp-shop .woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
  white-space: nowrap;
}

/* ---- (7) 受取日の下の「本日／明日のお受け取りです」（出力は dp-takeout の M1-3） ----
   入力欄には日付しか入れられない（datepicker が値を日付として読み書きするため）ので、
   欄の下に1行で出している。 */
body.dp-shop .dp-pickup-when {
  margin: 6px 0 0;
  color: #c9302c;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
}

/* 店頭受取の案内文の中のリンク（UberEats）。
   教訓27: reset.css に a{width:100%} があるので、文中のリンクは必ず幅を戻す。 */
body.dp-shop .dp-pickup-notice a {
  display: inline;
  width: auto;
  color: #b3453d;
  text-decoration: underline;
}
body.dp-shop .dp-pickup-notice a:hover { color: #e05a52; }

/* ============================================================
   (8) 注文完了画面（2026-08-18 利用者指示）
   ・全体的に文字が小さく、行が詰まっていて読みにくい → 文字を大きく・行間を広げる
   ・注文詳細の表は、レジと同じ配色で「商品」と「小計以降」を分ける
   ・請求先住所は出さない（テンプレート woocommerce/order/order-details-customer.php で
     「ご来店お待ちしております」に差し替え）
   ============================================================ */

body.dp-shop.woocommerce-order-received .woocommerce-order {
  font-size: 17px;
  line-height: 1.9;
}
body.dp-shop.woocommerce-order-received .woocommerce-order > p {
  margin: 0 0 14px;
  font-size: 17px;
}

/* ---- 上部の枠：お受け取り日時 ＋ キャンセルの連絡先（2026-08-18 利用者指示で合体） ----
   注文番号の一覧に氏名・会社名・ご要望を足したぶん、受取日時を下に置くと画面外に出てしまう。
   ページの先頭に1つの枠としてまとめ、受取日時をいちばん大きくした。
   ※ WooCommerce のテンプレートはこの中身を <p> の中に出すので、
     入れ子にできるのは <span>（block 化して行にしている）。<div> は使えない。 */
body.dp-shop .woocommerce-thankyou-order-received {
  margin: 0 0 22px;
  padding: 20px 16px;
  border: 3px solid #c9302c;
  border-radius: 8px;
  background: #fff7f6;
  text-align: center;
}
body.dp-shop .dp-thx__label {
  display: block;
  margin: 0 0 8px;
  color: #c9302c;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
}
body.dp-shop .dp-thx__value {
  display: block;
  margin: 0 0 14px;
  color: #c9302c;
  font-size: 27px;
  font-weight: bold;
  line-height: 1.4;
}
body.dp-shop .dp-thx__note {
  display: block;
  padding-top: 12px;
  border-top: 1px solid #f0c8c5;
  color: #c9302c;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.7;
}
/* 受取日時が無い注文（将来の商品構成の変化に備えて）は区切り線を出さない */
body.dp-shop .dp-thx__note:first-child {
  padding-top: 0;
  border-top: 0;
}
/* 教訓27: reset.css の a{width:100%} があるので文中のリンクは幅を戻す */
body.dp-shop .woocommerce-thankyou-order-received a {
  display: inline;
  width: auto;
  color: #c9302c;
  text-decoration: underline;
}

/* ---- 注文番号・日付・合計・決済方法の一覧 ---- */
body.dp-shop ul.woocommerce-order-overview {
  margin: 0 0 24px;
  padding: 0;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  list-style: none;
}
body.dp-shop ul.woocommerce-order-overview li {
  float: none;
  width: auto;
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #eee;
  font-size: 16px;
  text-transform: none;
}
body.dp-shop ul.woocommerce-order-overview li:last-child { border-bottom: 0; }
body.dp-shop ul.woocommerce-order-overview li strong {
  display: inline-block;
  margin-left: 10px;
  font-size: 17px;
}

/* ---- 見出し ---- */
body.dp-shop .woocommerce-order-details__title,
body.dp-shop .woocommerce-column__title {
  margin: 26px 0 12px;
  font-size: 20px;
}

/* ---- 注文詳細の表（商品＝白／見出しと合計＝薄いグレー） ---- */
body.dp-shop table.order_details {
  width: 100%;
  border: 1px solid #e5e5e5;
  border-collapse: collapse;
}
body.dp-shop table.order_details th,
body.dp-shop table.order_details td {
  padding: 14px;
  border-bottom: 1px solid #eee;
  font-size: 16px;
  line-height: 1.8;
}
body.dp-shop table.order_details thead th {
  background: #f7f7f7;
  color: #333;
  font-weight: bold;
}
body.dp-shop table.order_details tbody td { background: #fff; }
body.dp-shop table.order_details tfoot th,
body.dp-shop table.order_details tfoot td {
  background: #f7f7f7;
  font-weight: bold;
}
body.dp-shop table.order_details tfoot tr:last-child th,
body.dp-shop table.order_details tfoot tr:last-child td { border-bottom: 0; }
body.dp-shop table.order_details th.product-total,
body.dp-shop table.order_details td.product-total,
body.dp-shop table.order_details tfoot td { text-align: right; white-space: nowrap; }
body.dp-shop table.order_details tbody td.product-name a {
  display: inline;
  width: auto;
  color: #55798f;
  font-weight: bold;
}
/* 消費税の内訳はカート・レジと同じ理由で出さない（税率が混ざり、箱代の10%分を含んでいないため） */
body.dp-shop table.order_details .includes_tax { display: none !important; }

/* ---- 受取日・受取時刻（プラグインが表の下に出す） ---- */
body.dp-shop .woocommerce-order-details > p {
  margin: 12px 0 0;
  font-size: 17px;
}

/* ---- 「ご来店お待ちしております」 ---- */
body.dp-shop .dp-order-thanks {
  margin-top: 28px;
  text-align: center;
}
body.dp-shop .dp-order-thanks__text {
  margin: 0;
  padding: 18px;
  border: 2px solid #55798f;
  border-radius: 6px;
  background: #f2f6f9;
  color: #33566b;
  font-size: 20px;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  body.dp-shop.woocommerce-order-received .woocommerce-order { font-size: 16px; }
  body.dp-shop table.order_details th,
  body.dp-shop table.order_details td { padding: 12px 10px; font-size: 15px; }
  body.dp-shop .dp-order-thanks__text { font-size: 17px; padding: 14px 12px; }
}

/* ---- (9) 注文完了画面：受け取りの案内を目立たせる（2026-08-18 利用者指示） ----
   利用者の言葉「間違える人が多いので」。受取日時の取り違えが実際に起きているため、
   ページの中で **受取日時をいちばん大きく** する。
   3つの案内の強さの順は 受取日時（赤・特大）＞ キャンセルの電話（赤枠）＞ この画面を見せる（紺帯）。 */

/* 受取時にこの画面を見せる案内（見出しの直下） */
body.dp-shop .dp-show-screen {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 6px;
  background: #33566b;
  color: #fff;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.6;
  text-align: center;
}

@media screen and (max-width: 767px) {
  body.dp-shop .dp-show-screen { font-size: 15px; padding: 12px; }
  body.dp-shop .woocommerce-thankyou-order-received { padding: 16px 12px; }
  body.dp-shop .dp-thx__value { font-size: 21px; }
  body.dp-shop .dp-thx__label { font-size: 15px; }
  body.dp-shop .dp-thx__note { font-size: 15px; }
}

/* ---- 注文番号一覧に足した項目（氏名（フリガナ）・会社名・ご要望）（2026-08-18 利用者指示） ----
   ご要望は長くなることがあるので、ラベルと値を同じ行に置きつつ折り返せるようにする。 */
body.dp-shop ul.woocommerce-order-overview li.dp-note strong {
  display: inline;
  font-weight: bold;
  word-break: break-all;
}

/* ============================================================
   (10) カート以降の画面ではヘッダーを小さくする（2026-08-18 利用者指示）

   理由（利用者の言葉）:
   「スマホで観ると肝心の手続きなどが画面下に追いやられて見えにくい」。
   ロゴ・商品検索・カートボタン・カテゴリーナビの3段で画面の上半分が埋まってしまい、
   カートの中身や入力欄までスクロールしないと見えなかった。

   対象は カート（body.woocommerce-cart）／ご注文手続き・注文完了（body.woocommerce-checkout）。
   ※ 注文完了ページは body に woocommerce-checkout も付くので、この2つで3画面すべてを拾える。

   残すのはロゴだけ。ロゴはテイクアウトのトップ（/takeout/）へのリンクなので、
   買い物に戻る道は残る。
   ============================================================ */
body.dp-shop.woocommerce-cart .to-header__utility,
body.dp-shop.woocommerce-cart .to-nav,
body.dp-shop.woocommerce-checkout .to-header__utility,
body.dp-shop.woocommerce-checkout .to-nav {
  display: none !important;
}

/* ロゴだけになるので、下の余白を詰めて本文を上げる */
body.dp-shop.woocommerce-cart .to-header,
body.dp-shop.woocommerce-checkout .to-header {
  margin-bottom: 10px;
}

/* ---- (11) 「戻る」ボタン（2026-08-18 利用者指示） ----
   カートの「購入手続きに進む」の下＝「商品画面に戻る」、
   レジの「注文する」の下＝「ショッピングカートに戻る」。
   主要ボタン（赤）より控えめなグレーにして、押し間違いを防ぐ。
   ※ class="button" を付けていないので common-all.css の装飾は乗らない（意図的）。
   ※ reset.css の a{width:100%} と噛み合うよう box-sizing を指定する。 */
body.dp-shop .dp-back-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 10px 0 0;
  padding: 16px 12px;
  border: 1px solid #bbb;
  border-radius: 4px;
  background: #eeeeee;
  color: #333 !important;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}
body.dp-shop .dp-back-button:hover {
  background: #dddddd;
  color: #333 !important;
}

@media screen and (max-width: 767px) {
  body.dp-shop .dp-back-button { padding: 14px 10px; font-size: 15px; }
}

/* ---- (12) 主要ボタン・戻るボタンの幅と間隔（2026-08-24 利用者指示） ----
   利用者の言葉:「注文するとショッピングカートに戻るの間にスペースを開けてほしい」
                「そのボタンも横長すぎてボタンに見えない」。
   PCでは幅を絞って中央に置き、影を付けて「押せるもの」に見せる。
   スマホは指で押す面積を確保したいので全幅のまま（幅の制限を外す）。
   幅は --dp-btn-max の1か所だけ直せばよい。 */
body.dp-shop {
  --dp-btn-max: 440px;
}
body.dp-shop .wc-proceed-to-checkout a.checkout-button,
body.dp-shop #place_order,
body.dp-shop .dp-back-button {
  max-width: var(--dp-btn-max);
  margin-left: auto;
  margin-right: auto;
  border-radius: 6px;
}
/* 主要ボタンだけ影を付けて、補助ボタンとの差をはっきりさせる */
body.dp-shop .wc-proceed-to-checkout a.checkout-button,
body.dp-shop #place_order {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
}
/* 主要ボタンと戻るボタンの間隔（もとは 10px で、くっついて見えていた） */
body.dp-shop .dp-back-button {
  margin-top: 26px;
}

@media screen and (max-width: 767px) {
  body.dp-shop {
    --dp-btn-max: none;
  }
  body.dp-shop .dp-back-button { margin-top: 20px; }
}

/* ---- (12-b) 【重要】WooCommerce本体の float を止める（2026-08-24 実機で発覚） ----
   本体CSSに次の指定がある。
     .woocommerce #payment #place_order { float: right }   ← ID2つ+クラス1つ
   (12) で幅を 100% から 440px に絞った途端、この float が効いて「注文する」が
   右に浮き、「ショッピングカートに戻る」と重なった。
   幅が全幅のうちは float していても見た目に出ないので、今まで気づかなかった。
   ID2つ+クラス1つ+要素 で本体を上回るセレクタにして打ち消す。 */
body.dp-shop #payment #place_order {
  float: none;
  clear: both;
}
body.dp-shop .dp-back-button {
  clear: both;
}
