@charset "UTF-8";
/*!
Theme Name: Hello Elementor Child
Description: Hello Elementor Child Theme for TUPS JAPAN
Author: FREEBE Inc.
Template: hello-elementor
Version: 1.0.4
*/
/* サイト全体の基礎設定 */
body {
  background-color: #ffffff !important;
  color: #000000 !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}

/* メインコンテナ：700px制限と余白の確保 */
.site-main,
.entry-content,
.tups-auth-container,
#customer_login {
  max-width: 700px !important;
  margin: 0 auto !important;
  width: 100% !important;
  padding: 60px 0 !important;
  box-sizing: border-box;
  border: none !important;
  box-shadow: none !important;
}
@media (max-width: 767px) {
  .site-main,
  .entry-content,
  .tups-auth-container,
  #customer_login {
    padding: 40px 10px !important;
  }
}

/* タイトル装飾：下線 1px 黒実線 */
h1, .entry-title, .woocommerce-products-header__title {
  font-size: 1.6rem;
  font-weight: 500;
  border-bottom: 1px solid #000000;
  padding-bottom: 20px;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 1024px) {
  h1, .entry-title, .woocommerce-products-header__title {
    font-size: 1.6rem;
  }
}
@media (max-width: 767px) {
  h1, .entry-title, .woocommerce-products-header__title {
    font-size: 1.4rem;
  }
}

/* hidden input を確実に非表示（親テーマ reset.css が display を上書きするケース対策） */
input[type=hidden] {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ============================================================
   WooCommerce notices（エラー・メッセージ・インフォ）サイトデザイン統一
   WooCommerce デフォルトの色付き背景・矢印アイコン等を除去し
   黒/白のシンプルなデザインに統一する。PC・モバイル共通。
   ============================================================ */
.woocommerce-notices-wrapper {
  width: 100%;
  box-sizing: border-box;
}

/* エラー（ul > li 構造） */
.woocommerce-error {
  list-style: none !important;
  padding: 12px 16px !important;
  margin: 0 0 20px !important;
  background: #ffffff !important;
  border: 1px solid #000000 !important;
  color: #000000 !important;
  font-size: 0.85rem !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  box-shadow: none !important;
}
.woocommerce-error::before {
  display: none !important;
}
.woocommerce-error li {
  padding: 0 !important;
  margin: 4px 0 0 !important;
  background: none !important;
  border: none !important;
  color: #000000 !important;
  font-size: inherit !important;
}
.woocommerce-error li:first-child {
  margin-top: 0 !important;
}
.woocommerce-error li::before {
  display: none !important;
}
.woocommerce-error li::after {
  display: none !important;
}

/* 成功メッセージ */
.woocommerce-message {
  padding: 12px 16px !important;
  margin: 0 0 20px !important;
  background: #ffffff !important;
  border: 1px solid #000000 !important;
  color: #000000 !important;
  font-size: 0.85rem !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  box-shadow: none !important;
}
.woocommerce-message::before {
  display: none !important;
}
.woocommerce-message .button {
  font-size: 0.85rem !important;
  color: #000000 !important;
  text-decoration: underline;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

/* インフォ */
.woocommerce-info {
  padding: 12px 16px !important;
  margin: 0 0 20px !important;
  background: #ffffff !important;
  border: 1px solid #000000 !important;
  color: #000000 !important;
  font-size: 0.85rem !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  box-shadow: none !important;
}
.woocommerce-info::before {
  display: none !important;
}

/* リンク */
a {
  color: #000000;
  text-decoration: none;
  transition: 0.3s;
}
a:visited {
  color: #000000;
}
a:hover {
  color: #555555 !important;
}

/* -----------------------------------------------------
   1. レイアウトコンテナ (マスターメモ: .tups-auth-layout)
----------------------------------------------------- */
.tups-auth-layout {
  max-width: 700px !important;
  margin: 0 auto !important;
  padding: 60px 0 !important;
}
@media (max-width: 767px) {
  .tups-auth-layout {
    padding: 40px 15px !important;
  }
}
.tups-auth-layout .woocommerce::before, .tups-auth-layout .woocommerce::after {
  display: none !important;
}
.tups-auth-layout .woocommerce .col2-set, .tups-auth-layout .woocommerce .u-columns {
  display: block !important;
  margin: 0 !important;
  width: 100% !important;
}
.tups-auth-layout .woocommerce .col2-set .u-column1, .tups-auth-layout .woocommerce .col2-set .u-column2, .tups-auth-layout .woocommerce .u-columns .u-column1, .tups-auth-layout .woocommerce .u-columns .u-column2 {
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
}

/* -----------------------------------------------------
   2. フォームコンテナ (マスターメモ: .tups-auth-container)
----------------------------------------------------- */
.tups-auth-container {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* -----------------------------------------------------
   3. 見出し (マスターメモ: .tups-title-border)
----------------------------------------------------- */
.tups-title-border,
.tups-auth-title {
  font-size: 1.6rem;
  font-weight: 500;
  border-bottom: 1px solid #000000;
  padding-bottom: 20px;
  margin-bottom: 40px;
  text-align: center;
  color: #000000;
}
@media (max-width: 767px) {
  .tups-title-border,
  .tups-auth-title {
    font-size: 1.4rem;
  }
}

/* -----------------------------------------------------
   4. ボタン (マスターメモ: .tups-btn-primary)
----------------------------------------------------- */
.tups-btn-primary {
  background-color: #dddddd !important;
  color: #000000 !important;
  border-radius: 4px !important;
  padding: 15px 30px !important;
  border: none !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  cursor: pointer;
  transition: 0.3s;
  display: block !important;
  margin: 40px auto 0 !important;
  min-width: 240px;
  text-align: center;
}
.tups-btn-primary:hover {
  opacity: 0.7;
  color: #555555 !important;
}

/* -----------------------------------------------------
   5. 入力項目・注釈
----------------------------------------------------- */
.tups-input-standard {
  width: 100% !important;
  height: 45px;
  border: 1px solid #ccc !important;
  padding: 0 10px !important;
  box-sizing: border-box !important;
}

.tups-form-label {
  font-weight: 500;
  margin-bottom: 10px;
  display: block;
}

.tups-text-note {
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 20px;
}

/* 登録フォームの区切り見出し（お振込先口座・2026-10-15）。.tups-input-standard は select にも効く */
.tups-auth-subheading {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 40px 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #000;
}

/* -----------------------------------------------------
   6. 登録完了メッセージ (マスターメモ: .tups-registration-complete)
----------------------------------------------------- */
.tups-registration-complete {
  padding: 40px 0;
}
.tups-registration-complete__msg {
  font-size: 1rem;
  line-height: 1.8;
  color: #000000;
}
@media (max-width: 767px) {
  .tups-registration-complete__msg {
    font-size: 0.8rem;
  }
}

/* ----------------------------------------------------
   1. ショップ全体・不要要素の制御
---------------------------------------------------- */
.post-type-archive-product .site-main,
.post-type-archive-product .entry-content,
.post-type-archive-product .elementor-container,
.tax-product_cat .site-main,
.tax-product_cat .entry-content,
.tax-product_cat .elementor-container {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
@media (max-width: 1024px) {
  .post-type-archive-product .site-main,
  .post-type-archive-product .entry-content,
  .post-type-archive-product .elementor-container,
  .tax-product_cat .site-main,
  .tax-product_cat .entry-content,
  .tax-product_cat .elementor-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }
}
@media (max-width: 480px) {
  .post-type-archive-product .site-main,
  .post-type-archive-product .entry-content,
  .post-type-archive-product .elementor-container,
  .tax-product_cat .site-main,
  .tax-product_cat .entry-content,
  .tax-product_cat .elementor-container {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
.post-type-archive-product .woocommerce-breadcrumb,
.post-type-archive-product .woocommerce-result-count,
.post-type-archive-product .woocommerce-ordering,
.tax-product_cat .woocommerce-breadcrumb,
.tax-product_cat .woocommerce-result-count,
.tax-product_cat .woocommerce-ordering {
  display: none !important;
}

/* カタログページ h1 タイトル（/cart/ ・ /checkout/ の page-title ルールと同形式） */
.post-type-archive-product .page-title,
.post-type-archive-product .woocommerce-products-header__title,
.tax-product_cat .page-title,
.tax-product_cat .woocommerce-products-header__title {
  font-size: 1.6rem;
  font-weight: 500;
  color: #000000 !important;
  display: block !important;
  border-bottom: 1px solid #000000;
  padding-bottom: 20px;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 767px) {
  .post-type-archive-product .page-title,
  .post-type-archive-product .woocommerce-products-header__title,
  .tax-product_cat .page-title,
  .tax-product_cat .woocommerce-products-header__title {
    font-size: 1.4rem;
  }
}

/* ----------------------------------------------------
   2. ショップレイアウト（カタログ＋サイドカート）
---------------------------------------------------- */
.tups-shop-container {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  margin-top: 30px;
}
@media (max-width: 1024px) {
  .tups-shop-container {
    flex-direction: column;
    align-items: stretch;
  }
}

.tups-catalog-area {
  flex: 1;
  min-width: 0;
}
@media (max-width: 1024px) {
  .tups-catalog-area {
    padding-bottom: 100px;
  }
}

.tups-side-cart-area {
  width: 300px;
  flex-shrink: 0;
  position: sticky;
  top: 20px;
  background: #ffffff;
  border: 1px solid #000000;
  padding: 20px;
  box-sizing: border-box;
}
@media (max-width: 1024px) {
  .tups-side-cart-area {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    width: 100% !important;
    max-height: none;
    overflow-y: visible;
    padding: 12px 20px !important;
    border: none;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
    z-index: 500;
    background: #ffffff;
    box-sizing: border-box;
  }
}

/* ----------------------------------------------------
   3. 商品カタログ UI（2カラム・左上の空き解消）
---------------------------------------------------- */
.tups-catalog-area ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 40px 30px;
  margin: 0 !important;
  padding: 0 !important;
  clear: both !important;
}
.tups-catalog-area ul.products::before, .tups-catalog-area ul.products::after {
  display: none !important;
}
@media (max-width: 767px) {
  .tups-catalog-area ul.products {
    gap: 24px 15px;
  }
}
@media (max-width: 480px) {
  .tups-catalog-area ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px 10px;
  }
}
.tups-catalog-area ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  list-style: none;
  overflow: hidden;
}
.tups-catalog-area ul.products li.product .tups-product-image img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
}
.tups-catalog-area ul.products li.product .woocommerce-loop-product__title {
  /* 変数参照：variables.scssの設定を反映 */
  font-size: 0.8rem;
  color: #000000;
  height: auto;
  min-height: 2.8em;
  line-height: 1.4;
  margin-top: 15px !important;
}
@media (max-width: 480px) {
  .tups-catalog-area ul.products li.product .woocommerce-loop-product__title {
    min-height: auto;
    margin-top: 10px !important;
  }
}
.tups-catalog-area ul.products li.product .tups-price-block {
  display: block;
  margin-bottom: 15px !important;
}
.tups-catalog-area ul.products li.product .tups-price-block .tups-wholesale-price {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  color: #000000;
}
.tups-catalog-area ul.products li.product .tups-price-block .tups-regular-price {
  display: block;
  font-size: 0.7rem;
  color: #999999;
}

.tups-catalog-qty-wrapper {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #eee;
}
.tups-catalog-qty-wrapper label {
  font-size: 0.8rem;
  color: #000000;
}
.tups-catalog-qty-wrapper input.qty {
  width: 60px !important;
  box-sizing: border-box !important;
  text-align: center;
  border: 1px solid #000000 !important;
  padding: 4px 4px !important;
}
@media (max-width: 480px) {
  .tups-catalog-qty-wrapper {
    flex-wrap: wrap;
    gap: 8px;
  }
}

.tups-out-of-stock-notice {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #eee;
  font-size: 0.85rem;
  font-weight: 600;
  color: #999999;
}

/* フッターが固定ミニカートバー（bottom:0）に隠れないよう余白を追加 */
@media (max-width: 1024px) {
  body.post-type-archive-product,
  body.single-product {
    padding-bottom: 80px;
  }
}
/* ----------------------------------------------------
   2-B. モバイル簡略サマリー（≤1024px /shop/ 固定フッター内）
        .tups-mobile-cart-summary は mini-cart.php で常時出力
        デスクトップでは非表示、≤1024px の /shop/ のみ表示
---------------------------------------------------- */
/* デスクトップ: 常時非表示 */
.tups-mobile-cart-summary {
  display: none;
}

/* ≤1024px /shop/ ・商品詳細: フルカート要素を非表示にしてサマリーを表示 */
@media (max-width: 1024px) {
  .post-type-archive-product .tups-side-cart-area .woocommerce-mini-cart,
  .post-type-archive-product .tups-side-cart-area .tups-cart-totals,
  .post-type-archive-product .tups-side-cart-area .tups-side-cart-title,
  .post-type-archive-product .tups-side-cart-area .woocommerce-mini-cart__buttons,
  .post-type-archive-product .tups-side-cart-area .tups-mini-cart-empty,
  .single-product .tups-side-cart-area .woocommerce-mini-cart,
  .single-product .tups-side-cart-area .tups-cart-totals,
  .single-product .tups-side-cart-area .tups-side-cart-title,
  .single-product .tups-side-cart-area .woocommerce-mini-cart__buttons,
  .single-product .tups-side-cart-area .tups-mini-cart-empty {
    display: none !important;
  }
  .post-type-archive-product .tups-side-cart-area .tups-mobile-cart-summary,
  .single-product .tups-side-cart-area .tups-mobile-cart-summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
  }
  .post-type-archive-product .tups-side-cart-area .tups-mobile-summary-text,
  .single-product .tups-side-cart-area .tups-mobile-summary-text {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    flex: 1;
  }
  .post-type-archive-product .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-count,
  .single-product .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-count {
    font-size: 0.8rem;
    font-weight: 600;
    color: #000000;
    white-space: nowrap;
  }
  .post-type-archive-product .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-total,
  .single-product .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-total {
    font-size: 0.95rem;
    font-weight: 700;
    color: #000000;
    white-space: nowrap;
  }
  .post-type-archive-product .tups-side-cart-area,
  .single-product .tups-side-cart-area {
    /* ボタンコンテナ */
  }
  .post-type-archive-product .tups-side-cart-area .tups-mobile-cart-buttons,
  .single-product .tups-side-cart-area .tups-mobile-cart-buttons {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .post-type-archive-product .tups-side-cart-area,
  .single-product .tups-side-cart-area {
    /* /shop/: 「内容を確認」表示・「発注を続ける」非表示 */
  }
  .post-type-archive-product .tups-side-cart-area .tups-btn-cart-continue-mobile,
  .single-product .tups-side-cart-area .tups-btn-cart-continue-mobile {
    display: none !important;
  }
  .post-type-archive-product .tups-side-cart-area,
  .single-product .tups-side-cart-area {
    /* 白ボタン：「内容を確認」 */
  }
  .post-type-archive-product .tups-side-cart-area .tups-btn-cart-confirm,
  .single-product .tups-side-cart-area .tups-btn-cart-confirm {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    box-sizing: border-box;
    display: inline-block;
    white-space: nowrap;
    text-align: center;
    transition: opacity 0.2s;
    border-radius: 0 !important;
  }
  .post-type-archive-product .tups-side-cart-area .tups-btn-cart-confirm:hover,
  .single-product .tups-side-cart-area .tups-btn-cart-confirm:hover {
    opacity: 0.7;
    color: #000000 !important;
  }
  .post-type-archive-product .tups-side-cart-area,
  .single-product .tups-side-cart-area {
    /* 黒ボタン：「発注手続き」 */
  }
  .post-type-archive-product .tups-side-cart-area .tups-btn-cart-checkout-mobile,
  .single-product .tups-side-cart-area .tups-btn-cart-checkout-mobile {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 1px solid #000000 !important;
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    box-sizing: border-box;
    display: inline-block;
    white-space: nowrap;
    text-align: center;
    transition: opacity 0.2s;
    border-radius: 0 !important;
  }
  .post-type-archive-product .tups-side-cart-area .tups-btn-cart-checkout-mobile:hover,
  .single-product .tups-side-cart-area .tups-btn-cart-checkout-mobile:hover {
    opacity: 0.8;
    color: #ffffff !important;
  }
}
/* ----------------------------------------------------
   4-A. 商品詳細ページ（single-product body class）
        1024px・2カラム構成、_base.scss の700px制限を上書き
        フォント・ボタンはカタログページ（4-B以降）と同一の変数・クラスを使用
---------------------------------------------------- */
.single-product .site-main,
.single-product .entry-content,
.single-product .elementor-container {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
@media (max-width: 1024px) {
  .single-product .site-main,
  .single-product .entry-content,
  .single-product .elementor-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }
}
@media (max-width: 480px) {
  .single-product .site-main,
  .single-product .entry-content,
  .single-product .elementor-container {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
.single-product {
  /* 不要表示を非表示 */
}
.single-product .product_meta,
.single-product .stock,
.single-product .woocommerce-breadcrumb {
  display: none !important;
}

/* 商品詳細エリア内の各要素：カタログ変数に統一 */
.tups-single-product-area .product_title {
  font-size: 0.8rem;
  font-weight: 600;
  color: #000000;
  border-bottom: 1px solid #000000;
  padding-bottom: 15px;
  margin-bottom: 15px;
  line-height: 1.4;
}
.tups-single-product-area .price {
  font-size: 0.7rem !important;
  color: #000000 !important;
  display: block;
  margin-bottom: 15px;
}
.tups-single-product-area .price span, .tups-single-product-area .price ins, .tups-single-product-area .price del, .tups-single-product-area .price .amount {
  color: inherit !important;
  font-size: inherit !important;
}
.tups-single-product-area .woocommerce-product-details__short-description {
  font-size: 0.8rem;
  line-height: 1.8;
  margin-bottom: 20px;
}
.tups-single-product-area {
  /* 商品タブ（説明・追加情報） */
}
.tups-single-product-area .woocommerce-tabs {
  margin-top: 30px;
}
.tups-single-product-area .woocommerce-tabs ul.tabs {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  border-bottom: 1px solid #000000;
}
.tups-single-product-area .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
}
.tups-single-product-area .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 10px 20px;
  font-size: 0.8rem;
  color: #999999 !important;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.tups-single-product-area .woocommerce-tabs ul.tabs li a:hover {
  color: #000000 !important;
}
.tups-single-product-area .woocommerce-tabs ul.tabs li.active a {
  color: #000000 !important;
  border-bottom: 2px solid #000000;
  font-weight: 600;
}
.tups-single-product-area .woocommerce-tabs .woocommerce-Tabs-panel {
  font-size: 0.8rem;
  line-height: 1.8;
}
.tups-single-product-area {
  /* 商品画像 */
}
.tups-single-product-area .woocommerce-product-gallery {
  margin-bottom: 20px;
}
.tups-single-product-area .woocommerce-product-gallery img {
  width: 100%;
  height: auto;
}

/* カタログ商品名リンク：ホバー時のみ色変化、下線なし */
.tups-catalog-area ul.products li.product .tups-product-image a,
.tups-catalog-area ul.products li.product .woocommerce-loop-product__title a {
  text-decoration: none !important;
  color: inherit !important;
}
.tups-catalog-area ul.products li.product .tups-product-image a:hover,
.tups-catalog-area ul.products li.product .woocommerce-loop-product__title a:hover {
  opacity: 0.75;
}

/* ----------------------------------------------------
   4. 個別商品「追加」ボタン（content-product.php）
   font-size・見た目をサイドカートの「内容を確認」ボタン（0.85rem）に合わせる
---------------------------------------------------- */
.tups-add-to-cart-btn {
  background-color: #dddddd !important;
  color: #000000 !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 6px 14px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  cursor: pointer;
  transition: opacity 0.3s;
  white-space: nowrap;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-decoration: none !important;
}
.tups-add-to-cart-btn:hover {
  opacity: 0.8;
  color: #000000 !important;
}
.tups-add-to-cart-btn:disabled {
  background-color: #999999;
  cursor: not-allowed;
}
@media (max-width: 480px) {
  .tups-add-to-cart-btn {
    width: 100% !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    padding: 10px 14px !important;
    white-space: normal;
  }
}

/* ============================================================
   1. サイドカートエリア共通（/shop/ / /cart/ / /checkout/ 共通）
   ============================================================ */
.tups-side-cart-area {
  width: 300px;
  flex-shrink: 0;
  background-color: #dddddd !important;
  border: none !important;
  padding: 20px !important;
  box-sizing: border-box;
}

.tups-side-cart-area .tups-side-cart-title {
  font-size: 1.2rem;
  font-weight: 600;
  color: #000000;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin-bottom: 20px;
  text-align: center;
}

/* 商品リスト */
.tups-side-cart-area .widget_shopping_cart_content .cart_list {
  padding: 0 !important;
  margin: 0 !important;
}

.tups-side-cart-area .widget_shopping_cart_content .cart_list li {
  padding: 12px 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  min-height: auto;
}

.tups-side-cart-area .widget_shopping_cart_content .cart_list li img {
  display: none !important;
}

/* 削除ボタン (×) */
.tups-side-cart-area .widget_shopping_cart_content .cart_list li .remove {
  position: static !important;
  margin-right: 8px !important;
  font-size: 1.2rem !important;
  color: #000000 !important;
  line-height: 1;
  flex-shrink: 0;
}

.tups-side-cart-area .widget_shopping_cart_content .cart_list li .remove:hover {
  color: #ff0000 !important;
  background: none !important;
}

/* 商品情報ラッパー：名前・価格・数量を横並び */
.tups-side-cart-area .widget_shopping_cart_content .cart_list li .tups-mini-cart-info {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* 商品名 */
.tups-side-cart-area .widget_shopping_cart_content .cart_list li .tups-mini-product-name,
.tups-side-cart-area .widget_shopping_cart_content .cart_list li a:not(.remove) {
  font-size: 0.8rem !important;
  color: #000000 !important;
  font-weight: 500 !important;
  text-decoration: none;
  line-height: 1.4;
  display: block;
  padding: 0 !important;
  margin: 0 !important;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 価格 × 数量 */
.tups-side-cart-area .widget_shopping_cart_content .cart_list li .quantity {
  width: auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 0;
  margin-top: 0;
  font-size: 0.7rem !important;
  color: #000000 !important;
}

.tups-side-cart-area .widget_shopping_cart_content .cart_list li .quantity .amount {
  color: inherit !important;
  font-weight: 600;
}

/* 合計エリア（WC標準 .total クラス — 互換維持のため残す） */
.tups-side-cart-area .widget_shopping_cart_content .total {
  border-top: 1px solid #000000 !important;
  margin-top: 15px !important;
  padding-top: 15px !important;
  font-size: 0.9rem !important;
  color: #000000;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tups-side-cart-area .widget_shopping_cart_content .total strong {
  font-weight: 600;
}

/* ボタンエリア共通 */
.tups-side-cart-area .widget_shopping_cart_content .buttons {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tups-side-cart-area .widget_shopping_cart_content .buttons a {
  width: 100% !important;
  text-align: center;
  padding: 14px 0 !important;
  font-size: 0.85rem !important;
  line-height: 1 !important;
  font-weight: 600;
  text-decoration: none;
  box-sizing: border-box;
  display: block;
  transition: opacity 0.2s;
}

/* 白ボタン（「商品発注を続ける」「内容を確認」） */
.tups-side-cart-area .widget_shopping_cart_content .buttons a.wc-forward:not(.checkout) {
  background-color: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #000000 !important;
}

.tups-side-cart-area .widget_shopping_cart_content .buttons a.wc-forward:not(.checkout):hover {
  opacity: 0.7;
}

/* 黒ボタン（「注文手続きへ」） */
.tups-side-cart-area .widget_shopping_cart_content .buttons a.checkout {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
}

.tups-side-cart-area .widget_shopping_cart_content .buttons a.checkout:hover {
  opacity: 0.8;
}

/* ============================================================
   1-A. サイドカート レスポンシブ（タブレット縦・スマホ）
        767px以下でカートリストとボタンのタッチ操作しやすさを向上
   ============================================================ */
@media (max-width: 767px) {
  .tups-side-cart-area .widget_shopping_cart_content .cart_list li {
    padding: 14px 0 !important;
  }
  .tups-side-cart-area .widget_shopping_cart_content .cart_list li .remove {
    font-size: 1.4rem !important;
  }
  .tups-mini-cart-qty-edit .tups-mini-qty-input {
    width: 65px !important;
    height: 34px !important;
  }
  .tups-side-cart-area .widget_shopping_cart_content .buttons a {
    padding: 16px 0 !important;
  }
}
/* ============================================================
   1-B. サイドカート ボタンのページ別表示制御
        body クラスで切り替え。セレクターを 5クラス (0,5,0) にして
        「.buttons a { display: block !important; }」(0,3,1) に勝つ。
   ============================================================ */
/*
 * /shop/ : 「内容を確認」＋「注文手続きへ」を表示
 *          「商品発注を続ける」を非表示
 * 商品詳細 : /shop/ と同じルールを適用
 */
.post-type-archive-product .tups-side-cart-area .widget_shopping_cart_content .buttons .tups-btn-continue,
.single-product .tups-side-cart-area .widget_shopping_cart_content .buttons .tups-btn-continue {
  display: none !important;
}

/*
 * /cart/ : 「商品発注を続ける」＋「注文手続きへ」を表示
 *          「内容を確認」を非表示
 */
.woocommerce-cart .tups-side-cart-area .widget_shopping_cart_content .buttons .tups-btn-view-cart {
  display: none !important;
}

/*
 * /checkout/ : 「商品発注を続ける」のみ表示
 *              「内容を確認」「注文手続きへ」を非表示
 */
.woocommerce-checkout .tups-side-cart-area .widget_shopping_cart_content .buttons .tups-btn-view-cart,
.woocommerce-checkout .tups-side-cart-area .widget_shopping_cart_content .buttons .tups-btn-checkout {
  display: none !important;
}

/* ============================================================
   2. ミニカート内 数量入力欄
   ============================================================ */
.tups-mini-cart-qty-edit {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.tups-mini-cart-qty-edit .tups-mini-qty-input {
  width: 55px !important;
  height: 28px !important;
  padding: 0 2px 0 5px !important;
  text-align: left;
  border: 1px solid #ccc !important;
  background: #ffffff !important;
  font-size: 0.8rem !important;
  border-radius: 0 !important;
  appearance: number-input !important;
  -moz-appearance: number-input !important;
  -webkit-appearance: number-input !important;
}

.tups-mini-cart-qty-edit span {
  font-size: 0.7rem;
  color: #000000;
}

/* ============================================================
   2-B. ミニカート 合計エリア（mini-cart.php の新クラス）
   ============================================================ */
.tups-cart-totals {
  margin-top: 10px;
  padding-top: 10px;
}

.tups-cart-totals .tups-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  padding: 0;
  border: none;
  font-size: 0.85rem;
  color: #000000;
}

.tups-cart-totals .tups-mini-discount-row {
  color: #cc0000;
}

.tups-cart-totals .tups-final-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 2px solid #000000;
  padding-top: 10px;
  margin-top: 10px;
  font-size: 1.1rem;
  font-weight: 700;
  color: #000000;
}

/* ============================================================
   2-C. ミニカート 空状態メッセージ
   ============================================================ */
.tups-mini-cart-empty {
  text-align: center;
  padding: 20px 0;
  font-size: 0.8rem;
  color: #000000;
}

/* ============================================================
   3. /cart/ ・ /checkout/ ページ共通
      幅：1024px、タブレット・スマホは左右20px/16px の余白を追加して中央寄せ
   ============================================================ */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 60px 0 !important;
  box-sizing: border-box !important;
}
@media (max-width: 1024px) {
  .woocommerce-cart .site-main,
  .woocommerce-checkout .site-main {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (max-width: 767px) {
  .woocommerce-cart .site-main,
  .woocommerce-checkout .site-main {
    padding: 40px 20px !important;
  }
}

.woocommerce-cart .woocommerce-products-header__title,
.woocommerce-cart .page-title,
.woocommerce-checkout .woocommerce-products-header__title,
.woocommerce-checkout .page-title {
  font-size: 1.6rem;
  font-weight: 500;
  color: #000000 !important;
  display: block !important;
  border-bottom: 1px solid #000000;
  padding-bottom: 20px;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 767px) {
  .woocommerce-cart .woocommerce-products-header__title,
  .woocommerce-cart .page-title,
  .woocommerce-checkout .woocommerce-products-header__title,
  .woocommerce-checkout .page-title {
    font-size: 1.4rem;
  }
}

/* /cart/ サイドカート：デスクトップは sticky で右カラム表示
   ≤1024px は position:fixed で画面下部の固定フッターバーに変換（/shop/ と同じ方式） */
.woocommerce-cart .tups-side-cart-area {
  background-color: #dddddd !important;
  border: none !important;
  position: sticky;
  top: 20px;
}
@media (max-width: 1024px) {
  .woocommerce-cart .tups-side-cart-area {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    width: 100% !important;
    padding: 20px !important;
    border: none !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
    z-index: 500;
    background-color: #dddddd !important;
    box-sizing: border-box;
  }
}

/* /cart/ ≤1024px: フルカート要素を非表示にしてモバイルサマリーを表示 */
@media (max-width: 1024px) {
  .woocommerce-cart .tups-side-cart-area .woocommerce-mini-cart,
  .woocommerce-cart .tups-side-cart-area .tups-cart-totals,
  .woocommerce-cart .tups-side-cart-area .tups-side-cart-title,
  .woocommerce-cart .tups-side-cart-area .woocommerce-mini-cart__buttons,
  .woocommerce-cart .tups-side-cart-area .tups-mini-cart-empty {
    display: none !important;
  }
  .woocommerce-cart .tups-side-cart-area .tups-mobile-cart-summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
  }
  .woocommerce-cart .tups-side-cart-area .tups-mobile-summary-text {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    flex: 1;
  }
  .woocommerce-cart .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-count {
    font-size: 0.8rem;
    font-weight: 600;
    color: #000000;
    white-space: nowrap;
  }
  .woocommerce-cart .tups-side-cart-area .tups-mobile-summary-text .tups-mobile-total {
    font-size: 0.95rem;
    font-weight: 700;
    color: #000000;
    white-space: nowrap;
  }
  .woocommerce-cart .tups-side-cart-area {
    /* ボタンコンテナ */
  }
  .woocommerce-cart .tups-side-cart-area .tups-mobile-cart-buttons {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .woocommerce-cart .tups-side-cart-area {
    /* /cart/: 「内容を確認」を非表示・「発注を続ける」を表示 */
  }
  .woocommerce-cart .tups-side-cart-area .tups-btn-cart-confirm {
    display: none !important;
  }
  .woocommerce-cart .tups-side-cart-area {
    /* 白ボタン：「発注を続ける」 */
  }
  .woocommerce-cart .tups-side-cart-area .tups-btn-cart-continue-mobile {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    box-sizing: border-box;
    display: inline-block;
    white-space: nowrap;
    text-align: center;
    transition: opacity 0.2s;
    border-radius: 0 !important;
  }
  .woocommerce-cart .tups-side-cart-area .tups-btn-cart-continue-mobile:hover {
    opacity: 0.7;
    color: #000000 !important;
  }
  .woocommerce-cart .tups-side-cart-area {
    /* 黒ボタン：「発注手続き」 */
  }
  .woocommerce-cart .tups-side-cart-area .tups-btn-cart-checkout-mobile {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 1px solid #000000 !important;
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    box-sizing: border-box;
    display: inline-block;
    white-space: nowrap;
    text-align: center;
    transition: opacity 0.2s;
    border-radius: 0 !important;
  }
  .woocommerce-cart .tups-side-cart-area .tups-btn-cart-checkout-mobile:hover {
    opacity: 0.8;
    color: #ffffff !important;
  }
}
/* /cart/ フッターが固定ミニカートバーに隠れないよう余白を追加 */
@media (max-width: 1024px) {
  body.woocommerce-cart {
    padding-bottom: 80px;
  }
}
/* /cart/ モバイル用：金額内訳（小計・消費税・送料）
   ≤1024px でサイドカートが固定フッターバー（点数＋合計のみ）に切り替わり
   内訳が見えなくなるため、カート内容の下に内訳を表示する（2026-09-04 追加）。
   PC では既にサイドカート（.tups-cart-totals）で表示済みのため非表示。 */
.tups-mobile-cart-breakdown {
  display: none;
}

@media (max-width: 1024px) {
  .tups-mobile-cart-breakdown {
    display: block;
    margin-top: 20px;
    padding: 16px 20px;
    background-color: #dddddd;
  }
  .tups-mobile-cart-breakdown .tups-cart-totals {
    margin-top: 0;
    padding-top: 0;
  }
}
/* /checkout/ 注文内容確認エリアのグレー背景を除去 */
.woocommerce-checkout #order_review {
  background: transparent !important;
  padding: 0 !important;
}

/* /checkout/ 下部ナビゲーションボタン */
.tups-checkout-nav-btns {
  display: flex;
  gap: 16px;
  margin-top: 30px;
  flex-wrap: wrap;
}
@media (max-width: 480px) {
  .tups-checkout-nav-btns {
    flex-direction: column;
  }
}

.tups-btn-continue-ordering,
.tups-btn-view-cart-link {
  display: inline-block !important;
  background-color: #ffffff !important;
  color: #000000 !important;
  border: 1px solid #000000 !important;
  padding: 10px 20px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-radius: 0 !important;
  transition: opacity 0.2s;
}
.tups-btn-continue-ordering:hover,
.tups-btn-view-cart-link:hover {
  opacity: 0.7;
  color: #000000 !important;
}

/* ============================================================
   3-A. /cart/ テーブル スマホ縦積み（≤767px）
        thead を非表示にして各行を dt/dd 風に表示
   ============================================================ */
@media (max-width: 767px) {
  .woocommerce-cart .woocommerce-cart-form table.shop_table thead {
    display: none !important;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody tr {
    display: block;
    padding: 12px 0;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0 !important;
    border: none !important;
    border-top: none !important;
    font-size: 0.8rem;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td::before {
    content: attr(data-title);
    font-weight: 600;
    color: #000000;
    flex-shrink: 0;
    margin-right: 8px;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table {
    /* 削除ボタン列：ラベルなし・左端 */
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.product-remove {
    justify-content: flex-start;
    padding-bottom: 0 !important;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.product-remove::before {
    display: none;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table {
    /* actions 行（WC nonce等）：ラベルなし・右端 */
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.actions {
    border-top: 1px solid #000000 !important;
    padding-top: 12px !important;
    justify-content: flex-end;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.actions::before {
    display: none;
  }
}
/* ============================================================
   3-B. /checkout/ 登録情報リスト スマホ対応（≤480px）
        横並びを維持しつつ dt 幅をモバイル向けに縮小
   ============================================================ */
@media (max-width: 480px) {
  .tups-checkout-info-list .tups-checkout-info-row {
    gap: 8px;
    padding: 8px 0;
  }
  .tups-checkout-info-list .tups-checkout-info-row dt {
    width: 120px;
    flex-shrink: 0;
  }
  .tups-checkout-info-list .tups-checkout-info-row dd {
    word-break: break-all;
  }
}
/* ============================================================
   3-C. /checkout/ 注文内容テーブル スマホ対応（≤767px）
        2カラムテーブルは幅が狭くても表示できるが
        padding・font-size を調整してタッチ操作しやすくする
   ============================================================ */
@media (max-width: 767px) {
  .woocommerce-checkout #order_review .tups-review-order-table {
    font-size: 0.6rem;
  }
  .woocommerce-checkout #order_review .tups-review-order-table thead tr th {
    padding: 8px 0;
  }
  .woocommerce-checkout #order_review .tups-review-order-table tbody tr td {
    padding: 10px 0 !important;
    font-size: 0.6rem;
  }
  .woocommerce-checkout #order_review .tups-review-order-table tfoot tr th,
  .woocommerce-checkout #order_review .tups-review-order-table tfoot tr td {
    padding: 6px 0;
    font-size: 0.6rem;
  }
  .woocommerce-checkout #order_review .tups-review-order-table tfoot tr.order-total th,
  .woocommerce-checkout #order_review .tups-review-order-table tfoot tr.order-total td {
    font-size: 0.7rem;
  }
}
/* ============================================================
   4. /cart/ カートテーブル
   ============================================================ */
.woocommerce-cart .woocommerce-cart-form table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}

/*
 * テーブル外枠ボーダーを完全除去
 * WooCommerce・Hello Elementor テーマが table / thead / tbody / tfoot / tr / th / td
 * それぞれに border を付与するため、全子孫要素に border: none を適用してから
 * 必要な罫線のみ個別に上書きする。
 */
.woocommerce-cart .woocommerce-cart-form table.shop_table,
.woocommerce-cart .woocommerce-cart-form table.shop_table thead,
.woocommerce-cart .woocommerce-cart-form table.shop_table tbody,
.woocommerce-cart .woocommerce-cart-form table.shop_table tfoot,
.woocommerce-cart .woocommerce-cart-form table.shop_table tr,
.woocommerce-cart .woocommerce-cart-form table.shop_table th,
.woocommerce-cart .woocommerce-cart-form table.shop_table td {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ヘッダー行：下線のみ表示 */
.woocommerce-cart .woocommerce-cart-form table.shop_table thead tr th {
  border-bottom: 1px solid #000000 !important;
  padding: 10px 8px;
  font-weight: 600;
  background: transparent !important;
  text-align: left;
}

/* 商品行：背景透過・線なし */
.woocommerce-cart .woocommerce-cart-form table.shop_table tbody tr,
.woocommerce-cart .woocommerce-cart-form table.shop_table tbody tr td {
  background: transparent !important;
  background-color: transparent !important;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table tbody tr td {
  padding: 12px 8px;
  vertical-align: middle;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table .product-remove a.remove {
  color: #000000 !important;
  font-size: 1.2rem;
  font-weight: bold;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table .product-remove a.remove:hover {
  color: #ff0000 !important;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table .product-name a {
  color: #000000 !important;
  text-decoration: none;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table .tups-fixed-qty {
  font-size: 0.8rem;
  font-weight: 500;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table .actions {
  padding-top: 15px;
  text-align: right;
}

/* 金額内訳ブロック（cart-totals.php） */
.woocommerce-cart .tups-cart-totals-block {
  margin-top: 30px;
  padding: 20px;
  background-color: #dddddd;
  border: none;
}

.woocommerce-cart .tups-cart-totals-block .tups-totals-heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin-bottom: 15px;
  text-align: left;
}

.woocommerce-cart .tups-cart-totals-block table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: none !important;
}

.woocommerce-cart .tups-cart-totals-block table.shop_table tr th,
.woocommerce-cart .tups-cart-totals-block table.shop_table tr td {
  padding: 8px 0;
  border: none !important;
  font-size: 0.9rem;
}

.woocommerce-cart .tups-cart-totals-block table.shop_table tr td {
  text-align: right;
}

.woocommerce-cart .tups-cart-totals-block table.shop_table tr.tups-discount-row th,
.woocommerce-cart .tups-cart-totals-block table.shop_table tr.tups-discount-row td {
  color: #cc0000 !important;
}

.woocommerce-cart .tups-cart-totals-block table.shop_table tr.order-total th,
.woocommerce-cart .tups-cart-totals-block table.shop_table tr.order-total td {
  border-top: 2px solid #000000 !important;
  padding-top: 12px !important;
  font-size: 0.8rem;
  font-weight: 700;
}

/* 「注文手続きへ進む」ボタン */
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout {
  margin-top: 20px;
}

.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.button,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.button.alt,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.checkout-button {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
  padding: 14px 0 !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  transition: opacity 0.2s;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
}

.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a:hover,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.button:hover,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.button.alt:hover,
.woocommerce-cart .tups-cart-totals-block .wc-proceed-to-checkout a.checkout-button:hover {
  opacity: 0.8 !important;
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* ============================================================
   5. /checkout/ チェックアウトフォーム
   ============================================================ */
.woocommerce-checkout .tups-section-heading,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  border-top: none !important;
  padding-bottom: 10px;
  margin: 30px 0 20px;
  text-align: left;
}

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
  margin-bottom: 30px;
}

.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: 30px;
}

/*
 * ⚠️ dead CSS — form-checkout.php は .woocommerce-billing-fields を使用していない。
 * 実際の構造： #customer_details > .woocommerce-billing-fields__field-wrapper > .form-row
 * 有効なスタイルはセクション8（#customer_details .form-row）で定義している。
 * 2026-05-15 コメントアウト
 */
/*
 * 注文内容確認テーブル（review-order.php: .tups-review-order-table）
 * /cart/ テーブルと同様に全子孫要素をリセットしてから必要な罫線を個別付与
 */
.woocommerce-checkout #order_review .tups-review-order-table,
.woocommerce-checkout #order_review .tups-review-order-table thead,
.woocommerce-checkout #order_review .tups-review-order-table tbody,
.woocommerce-checkout #order_review .tups-review-order-table tfoot,
.woocommerce-checkout #order_review .tups-review-order-table tr,
.woocommerce-checkout #order_review .tups-review-order-table th,
.woocommerce-checkout #order_review .tups-review-order-table td {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* 共通設定 */
.woocommerce-checkout #order_review .tups-review-order-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  font-size: 0.8rem;
  font-family: inherit;
}

/* ヘッダー行：下線のみ表示 */
.woocommerce-checkout #order_review .tups-review-order-table thead tr th {
  border-bottom: 1px solid #000000 !important;
  padding: 10px 0;
  font-weight: 600;
  font-size: 0.8rem;
  background: transparent !important;
}

/* 商品行：行間セパレーターのみ表示 */
.woocommerce-checkout #order_review .tups-review-order-table tbody tr td {
  border-bottom: 1px solid #eee !important;
  padding: 12px 0;
  font-size: 0.8rem;
}

/* フッター行（小計・値引・送料・合計） */
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr th,
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr td {
  padding: 8px 0;
  font-size: 0.8rem;
}

/* 値引額行 */
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr.tups-discount-row th,
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr.tups-discount-row td {
  color: #cc0000 !important;
}

/* 合計行：上に太線 */
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr.order-total th,
.woocommerce-checkout #order_review .tups-review-order-table tfoot tr.order-total td {
  border-top: 2px solid #000000 !important;
  padding-top: 14px !important;
  font-weight: 700;
  font-size: 0.8rem;
}

/* 「注文を確定して決済へ進む」ボタン */
.woocommerce-checkout #place_order {
  display: block;
  width: 100%;
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
  border-radius: 0 !important;
  padding: 14px 0 !important;
  font-size: 0.85rem !important;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  margin-top: 10px;
  transition: opacity 0.2s;
}

.woocommerce-checkout #place_order:hover {
  opacity: 0.8;
}

/* ============================================================
   6. カート空状態
   ============================================================ */
.tups-cart-empty-msg {
  text-align: center;
  font-size: 0.8rem;
  padding: 40px 0 20px;
  color: #000000;
}

.tups-btn-back {
  display: inline-block;
  background: transparent;
  color: #000000 !important;
  border: 1px solid #000000;
  padding: 10px 20px;
  font-size: 0.9rem;
  text-decoration: none;
  border-radius: 0;
  transition: 0.2s;
}

.tups-btn-back:hover {
  background: #000000;
  color: #ffffff !important;
}

/* ============================================================
   7. フォント統一
   ブラウザは input / select / textarea に system font を適用するため
   font-family・font-size を明示指定する。
   _base.scss の body 指定だけでは form 要素に届かない。
   2026-05-15: font-size を追加（body 継承が効かないケースに対応）
   ============================================================ */
.woocommerce-cart input,
.woocommerce-cart select,
.woocommerce-cart textarea,
.woocommerce-cart button,
.woocommerce-cart label,
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout button,
.woocommerce-checkout label {
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  font-size: 0.8rem !important;
}

.tups-mini-cart-qty-edit .tups-mini-qty-input {
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  font-size: 0.8rem !important;
}

/* ============================================================
   8. #customer_details フォームフィールド（form-checkout.php 専用）
   既存の .woocommerce-billing-fields セレクターは
   form-checkout.php の HTML 構造（#customer_details >
   .woocommerce-billing-fields__field-wrapper > .form-row）と
   一致しないため、#customer_details を起点に再定義する。
   ============================================================ */
.woocommerce-checkout #customer_details .form-row {
  margin-bottom: 15px;
}
.woocommerce-checkout #customer_details .form-row label {
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
  display: block;
  margin-bottom: 5px;
}
.woocommerce-checkout #customer_details .form-row input.input-text,
.woocommerce-checkout #customer_details .form-row select,
.woocommerce-checkout #customer_details .form-row textarea {
  width: 100%;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  font-size: 0.8rem;
  border: 1px solid #000000 !important;
  border-radius: 0 !important;
  padding: 10px 12px;
  box-sizing: border-box;
  background: #ffffff;
}
.woocommerce-checkout #customer_details .form-row input.input-text:focus,
.woocommerce-checkout #customer_details .form-row select:focus,
.woocommerce-checkout #customer_details .form-row textarea:focus {
  outline: none;
  border-color: #000000 !important;
  box-shadow: none !important;
}

/* ============================================================
   9. チェックアウト 登録情報 読み取り専用表示
   ============================================================ */
.tups-checkout-info-list {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #000000;
}
.tups-checkout-info-list .tups-checkout-info-row {
  display: flex;
  gap: 16px;
  padding: 10px 0;
}
.tups-checkout-info-list .tups-checkout-info-row dt {
  width: 160px;
  flex-shrink: 0;
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
  font-weight: 400;
}
.tups-checkout-info-list .tups-checkout-info-row dd {
  margin: 0;
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}

.tups-checkout-info-note {
  margin: 10px 0 0;
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-checkout-info-note a {
  color: #000000 !important;
  text-decoration: underline !important;
}
.tups-checkout-info-note a:hover {
  opacity: 0.7;
}

.woocommerce-checkout #customer_details {
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-checkout #customer_details .tups-section-heading {
  margin-top: 0 !important;
}

.tups-hidden-fields {
  display: none !important;
}

.woocommerce-checkout #order_review_heading {
  margin-top: 20px !important;
}

/* ============================================================
   10. /checkout/ Square 決済フォーム
       ラジオボタン・Square ロゴ・WC デフォルト装飾を除去し
       サイトデザイン（黒枠・白背景）に統一
   ============================================================ */
/* 決済セクション外枠リセット */
.woocommerce-checkout #payment {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* ul/li リスト装飾除去 */
.woocommerce-checkout #payment ul.payment_methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* ラジオボタン非表示（Square 1択のため不要） */
.woocommerce-checkout #payment ul.payment_methods li input[type=radio] {
  display: none !important;
}

/* 支払い方法ラベル（「クレジットカード」） */
.woocommerce-checkout #payment ul.payment_methods li label {
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: #000000 !important;
  cursor: default;
  display: block;
  margin-bottom: 10px !important;
  padding: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods li label img {
  display: none !important;
}

/* WooCommerce デフォルトの吹き出し三角形を除去 */
.woocommerce-checkout #payment .payment_box::before,
.woocommerce-checkout #payment .payment_box::after {
  display: none !important;
}

/* 決済フォームボックス（.payment_box）デフォルト装飾リセット */
.woocommerce-checkout #payment .payment_box {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Square カード入力フォーム fieldset リセット（内側 DIV でスタイル制御） */
.woocommerce-checkout #payment fieldset#wc-square-credit-card-credit-card-form {
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* 新カード入力フォーム DIV（黒枠・白背景に統一、表示/非表示は Square JS に委譲） */
.woocommerce-checkout #payment .wc-square-credit-card-new-payment-method-form {
  border: 1px solid #000000 !important;
  padding: 20px !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  margin-top: 12px !important;
  border-radius: 0 !important;
}

/* Square フォーム内ラベル */
.woocommerce-checkout #payment .payment_box label {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  color: #000000 !important;
  display: block;
  margin-bottom: 5px !important;
}

/* Place Order ボタン上部余白 */
.woocommerce-checkout #payment .form-row.place-order {
  padding: 0 !important;
  margin-top: 20px !important;
  background: transparent !important;
}

/* 保存済みカードエリア（Square 実際の DOM: P.form-row.form-row-wide） */
.woocommerce-checkout #payment .payment_method_square_credit_card .payment_box .form-row.form-row-wide {
  margin: 0 !important;
  padding: 0 !important;
}

/* 保存済みカードラジオ・新カードラジオを非表示（ラベルクリックでラジオ選択される） */
.woocommerce-checkout #payment .js-sv-wc-payment-gateway-payment-token,
.woocommerce-checkout #payment #wc-square-credit-card-use-new-payment-method {
  display: none !important;
}

/* 保存済みカードのラベル（カード番号 "• • • 1000"） */
.woocommerce-checkout #payment .sv-wc-payment-gateway-payment-form-saved-payment-method {
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  cursor: default !important;
  color: #000000 !important;
  flex: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* JS が tups-saved-card-row を付与 → flex 横並び */
/* [ご登録のカード] [• • • 1000 (expires xx/xx)] ........... [保存済みカードを管理] */
.woocommerce-checkout #payment .payment_method_square_credit_card .form-row.tups-saved-card-row {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0 8px !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* スマホ：両ボタンを二段表示・テキストセンター揃え */
/* ul.payment_methods li を追加し詳細度を (1,5,2) に引き上げ、メインルール (1,4,2) を上書き */
@media (max-width: 767px) {
  .woocommerce-checkout #payment ul.payment_methods li .form-row.tups-saved-card-row .tups-btn-manage-cards {
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-top: 8px !important;
    text-align: center !important;
  }
  .woocommerce-checkout #payment ul.payment_methods li .form-row.tups-saved-card-row .tups-new-card-heading {
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-top: 8px !important;
    text-align: center !important;
  }
}
/* BR を flex 内で非表示 */
.woocommerce-checkout #payment .form-row.tups-saved-card-row br {
  display: none !important;
}

/* CSS order で表示順序を制御 */
/* PC Row 1:     [ご利用中のカード(1)] [• • • 1000(2, flex:1)] [管理(3)] [新しいカード(4)] */
/* Mobile Row 1: [ご利用中のカード(1)] [• • • 1000(2, flex:1)]            */
/* Mobile Row 2: [管理(3, flex:100%)]                                      */
/* Mobile Row 3: [新しいカード(4, flex:100%)]                              */
.woocommerce-checkout #payment .form-row.tups-saved-card-row .tups-saved-card-label {
  order: 1 !important;
  flex: none !important;
}

.woocommerce-checkout #payment .form-row.tups-saved-card-row .sv-wc-payment-gateway-payment-form-saved-payment-method {
  order: 2 !important;
}

.woocommerce-checkout #payment .form-row.tups-saved-card-row .tups-btn-manage-cards {
  order: 3 !important;
  margin-left: auto !important;
}

.woocommerce-checkout #payment .form-row.tups-saved-card-row .tups-new-card-heading {
  order: 4 !important;
}

/* 「ご登録のカード」ラベル */
.woocommerce-checkout #payment .tups-saved-card-label {
  font-size: 0.8rem !important;
  color: #000000 !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
  margin-right: 16px !important;
}

/* 「保存済みカードを管理」ボタン */
.woocommerce-checkout #payment .tups-btn-manage-cards {
  display: inline-block !important;
  background-color: #dddddd !important;
  color: #000000 !important;
  padding: 8px 12px !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  margin-left: auto !important;
  white-space: nowrap !important;
}
.woocommerce-checkout #payment .tups-btn-manage-cards:hover {
  opacity: 0.8;
}

/* 「新しいカードで支払う」ボタン（「保存済みカードを管理」と同スタイル）
   ul.payment_methods li label (1,2,3) を超えるため ul li を含め詳細度 (1,4,2) に */
.woocommerce-checkout #payment ul.payment_methods li .payment_box .tups-new-card-heading {
  flex: 0 0 auto !important;
  width: auto !important;
  display: inline-block !important;
  background-color: #dddddd !important;
  color: #000000 !important;
  padding: 8px 12px !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  border-radius: 2px !important;
  border-top: none !important;
  text-decoration: none !important;
  margin: 0 0 0 8px !important;
  white-space: nowrap !important;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box .tups-new-card-heading:hover {
  opacity: 0.8;
}

/* ============================================================
   マイページ幅：/shop/ /cart/ /checkout/ と同じ body クラス方式
   ============================================================ */
/* 親テーマ theme.json の contentSize: 800px が生成する
   --wp--style--global--content-size 変数を上書き */
body.woocommerce-account {
  --wp--style--global--content-size: 100%;
}

.woocommerce-account {
  /* #main ID + クラスで詳細度を最大化して親テーマの700px制限を確実に上書き */
}
.woocommerce-account #main.site-main,
.woocommerce-account .site-main {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
.woocommerce-account {
  /* Gutenberg block layout の is-layout-constrained による幅制限を解除 */
}
.woocommerce-account .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.woocommerce-account {
  /* WP ブロックラッパーの幅制限を解除 */
}
.woocommerce-account .wp-block-shortcode,
.woocommerce-account .wp-block-group,
.woocommerce-account .wp-block-post-content {
  max-width: 100% !important;
  padding-inline: 0 !important;
}
.woocommerce-account {
  /* Elementor ページビルダー経由の場合の保険 */
}
.woocommerce-account .elementor-container,
.woocommerce-account .elementor-section-boxed > .elementor-container {
  max-width: 1024px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   マイページ専用コンテナ（woocommerce-myaccount-page.php が出力）
   archive-product.php / single-product.php と同じ方式で
   親テーマのコンテナ制約を完全に回避
   ============================================================ */
#main.tups-myaccount-main,
.tups-myaccount-main {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 60px 24px !important;
  box-sizing: border-box !important;
  color: #000000;
}
@media (max-width: 767px) {
  #main.tups-myaccount-main,
  .tups-myaccount-main {
    padding: 40px 16px !important;
  }
}

/* WooCommerce デフォルトの 2カラム浮動を解除 */
.tups-myaccount-main .woocommerce {
  max-width: 100% !important;
  width: 100% !important;
}
.tups-myaccount-main .woocommerce .woocommerce-MyAccount-navigation,
.tups-myaccount-main .woocommerce .woocommerce-MyAccount-content {
  width: 100% !important;
  float: none !important;
  display: block !important;
}
.tups-myaccount-main .woocommerce {
  /* WC 自動挿入「こんにちは...」非表示 */
}
.tups-myaccount-main .woocommerce .woocommerce-MyAccount-content > p:first-of-type {
  display: none !important;
}

/* ============================================================
   WooCommerce 通知メッセージ：シンプルテキストのみ
   ============================================================ */
.tups-myaccount-main .woocommerce-message,
.tups-myaccount-main .woocommerce-info,
.tups-myaccount-main .woocommerce-error {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 20px !important;
  margin: 0 0 24px !important;
  color: #000000 !important;
  font-size: 0.9rem !important;
}
.tups-myaccount-main .woocommerce-message::before,
.tups-myaccount-main .woocommerce-info::before,
.tups-myaccount-main .woocommerce-error::before {
  display: none !important;
}
.tups-myaccount-main .woocommerce-message a.button,
.tups-myaccount-main .woocommerce-message a.woocommerce-Button,
.tups-myaccount-main .woocommerce-info a.button,
.tups-myaccount-main .woocommerce-info a.woocommerce-Button,
.tups-myaccount-main .woocommerce-error a.button,
.tups-myaccount-main .woocommerce-error a.woocommerce-Button {
  display: none !important;
}
.tups-myaccount-main .woocommerce-error {
  color: #c0392b !important;
}
.tups-myaccount-main {
  /* WC 成功・情報通知の青ボーダー解除 */
}
.tups-myaccount-main .woocommerce-message,
.tups-myaccount-main .woocommerce-info {
  border-top-color: transparent !important;
}

/* ============================================================
   共通ボタン（カタログ「追加」ボタンに統一）
   ============================================================ */
.tups-myaccount-main .button,
.tups-myaccount-main button[type=submit],
.tups-myaccount-main input[type=submit],
.tups-myaccount-main .tups-btn-primary,
.tups-myaccount-main .tups-btn-address,
.tups-myaccount-main .tups-btn-order-detail,
.tups-myaccount-main .tups-btn-reorder,
.tups-myaccount-main .tups-btn-to-shop,
.tups-myaccount-main .tups-btn-page,
.tups-myaccount-main .tups-guide-item-btn {
  background-color: #dddddd !important;
  color: #000000 !important;
  border: none !important;
  padding: 6px 14px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
  letter-spacing: 0.05em;
  cursor: pointer;
  text-decoration: none !important;
  display: inline-block;
  transition: opacity 0.3s;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.tups-myaccount-main .button:hover, .tups-myaccount-main .button:focus,
.tups-myaccount-main button[type=submit]:hover,
.tups-myaccount-main button[type=submit]:focus,
.tups-myaccount-main input[type=submit]:hover,
.tups-myaccount-main input[type=submit]:focus,
.tups-myaccount-main .tups-btn-primary:hover,
.tups-myaccount-main .tups-btn-primary:focus,
.tups-myaccount-main .tups-btn-address:hover,
.tups-myaccount-main .tups-btn-address:focus,
.tups-myaccount-main .tups-btn-order-detail:hover,
.tups-myaccount-main .tups-btn-order-detail:focus,
.tups-myaccount-main .tups-btn-reorder:hover,
.tups-myaccount-main .tups-btn-reorder:focus,
.tups-myaccount-main .tups-btn-to-shop:hover,
.tups-myaccount-main .tups-btn-to-shop:focus,
.tups-myaccount-main .tups-btn-page:hover,
.tups-myaccount-main .tups-btn-page:focus,
.tups-myaccount-main .tups-guide-item-btn:hover,
.tups-myaccount-main .tups-guide-item-btn:focus {
  opacity: 0.8 !important;
  color: #000000 !important;
  background-color: #dddddd !important;
  text-decoration: none !important;
}
.tups-myaccount-main .button:disabled, .tups-myaccount-main .button[disabled],
.tups-myaccount-main button[type=submit]:disabled,
.tups-myaccount-main button[type=submit][disabled],
.tups-myaccount-main input[type=submit]:disabled,
.tups-myaccount-main input[type=submit][disabled],
.tups-myaccount-main .tups-btn-primary:disabled,
.tups-myaccount-main .tups-btn-primary[disabled],
.tups-myaccount-main .tups-btn-address:disabled,
.tups-myaccount-main .tups-btn-address[disabled],
.tups-myaccount-main .tups-btn-order-detail:disabled,
.tups-myaccount-main .tups-btn-order-detail[disabled],
.tups-myaccount-main .tups-btn-reorder:disabled,
.tups-myaccount-main .tups-btn-reorder[disabled],
.tups-myaccount-main .tups-btn-to-shop:disabled,
.tups-myaccount-main .tups-btn-to-shop[disabled],
.tups-myaccount-main .tups-btn-page:disabled,
.tups-myaccount-main .tups-btn-page[disabled],
.tups-myaccount-main .tups-guide-item-btn:disabled,
.tups-myaccount-main .tups-guide-item-btn[disabled] {
  background-color: #999999 !important;
  color: #ffffff !important;
  cursor: not-allowed;
  opacity: 1 !important;
}

/* ============================================================
   ナビゲーション
   ============================================================ */
.tups-myaccount-navigation {
  width: 100%;
  margin-bottom: 50px;
  border-bottom: 1px solid #000000;
}
.tups-myaccount-navigation .tups-nav-list {
  display: flex;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tups-myaccount-navigation .tups-nav-list .tups-nav-item a {
  display: inline-block;
  padding: 15px 0;
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  color: #999999 !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent;
  transition: color 0.3s;
}
.tups-myaccount-navigation .tups-nav-list .tups-nav-item a:hover {
  color: #000000 !important;
}
.tups-myaccount-navigation .tups-nav-list .tups-nav-item.is-active a {
  color: #000000 !important;
  border-bottom: 2px solid #000000;
  font-weight: 600;
}
@media (max-width: 767px) {
  .tups-myaccount-navigation .tups-nav-list {
    flex-wrap: wrap;
  }
  .tups-myaccount-navigation .tups-nav-list .tups-nav-item {
    width: 50%;
    text-align: center;
  }
  .tups-myaccount-navigation .tups-nav-list .tups-nav-item a {
    padding: 12px 0;
    font-size: 0.8rem;
  }
}
@media (max-width: 480px) {
  .tups-myaccount-navigation .tups-nav-list .tups-nav-item {
    width: 33.333%;
  }
  .tups-myaccount-navigation .tups-nav-list .tups-nav-item a {
    padding: 10px 2px;
    font-size: 0.7rem;
    letter-spacing: 0;
  }
}
.tups-myaccount-navigation {
  /* 7項目以上（「ご紹介報酬」のあるサロン）：スマホは4列（4＋3の2段）
     navigation.php が tups-nav-list--many を付ける。上の幅指定より後に置くこと */
}
@media (max-width: 767px) {
  .tups-myaccount-navigation .tups-nav-list--many {
    justify-content: flex-start; /* 2段目も1段目の列にそろえる */
  }
  .tups-myaccount-navigation .tups-nav-list--many .tups-nav-item {
    width: 25%;
  }
}
.tups-myaccount-navigation {
  /* 360px で「ダッシュボード」「アカウント詳細」（7文字）が 0.4px あふれて折れるため、左右の余白を外す */
}
@media (max-width: 480px) {
  .tups-myaccount-navigation .tups-nav-list--many .tups-nav-item a {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 860px) {
  .tups-myaccount-navigation .tups-nav-list--many .tups-nav-item a {
    letter-spacing: 0;
  }
}
@media (max-width: 767px) {
  .tups-myaccount-navigation .tups-nav-list--many .tups-nav-item a {
    word-break: keep-all;
  }
}

/* ============================================================
   ダッシュボード
   ============================================================ */
.tups-dashboard-container {
  text-align: center;
  color: #000000;
}
.tups-dashboard-container .tups-sub-title {
  display: block;
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  color: #999999;
  margin-bottom: 8px;
}
.tups-dashboard-container .tups-main-title {
  font-size: 1.8rem;
  font-weight: 500;
  margin: 0 0 40px;
}

/* 会員基本情報（ボーダーなし） */
.tups-dashboard-member-info {
  display: inline-block;
  text-align: left;
  margin: 0 auto 48px;
}
.tups-dashboard-member-info p {
  margin: 0 0 8px;
  font-size: 0.9rem;
}
.tups-dashboard-member-info p:last-child {
  margin: 0;
}
.tups-dashboard-member-info .tups-dashboard-label {
  display: inline-block;
  width: 80px;
  color: #999999;
}
.tups-dashboard-member-info .tups-dashboard-value {
  font-weight: 500;
}

/* ガイド：横並び（ボタン＋説明） */
.tups-dashboard-guide {
  max-width: 600px;
  margin: 0 auto;
  text-align: left;
}

.tups-guide-item {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 10px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tups-guide-item:first-child {
  border-top: 1px solid #e0e0e0;
}
.tups-guide-item .tups-guide-item-btn {
  flex-shrink: 0;
  min-width: 120px;
}
.tups-guide-item .tups-guide-item-desc {
  font-size: 0.8rem;
  color: #000000;
  line-height: 1.6;
  margin: 0;
}

/* ガイドアイテム スマホ対応（≤480px）：縦積みに変更 */
@media (max-width: 480px) {
  .tups-guide-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .tups-guide-item .tups-guide-item-btn {
    min-width: auto;
  }
}
/* ============================================================
   注文履歴
   ============================================================ */
.tups-orders-table {
  width: 100%;
  border-collapse: collapse;
}
.tups-orders-table thead tr {
  border-bottom: 1px solid #000000;
}
.tups-orders-table th {
  padding: 10px 12px;
  font-weight: 600;
  text-align: left;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-orders-table td {
  padding: 14px 12px;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-orders-table .tups-orders-item-count {
  font-size: 0.8rem;
  color: #999999;
}
.tups-orders-table .tups-orders-col-actions {
  white-space: nowrap;
}
.tups-orders-table .tups-orders-col-actions a {
  margin-right: 8px;
}
.tups-orders-table .tups-orders-col-actions a:last-child {
  margin-right: 0;
}
@media (max-width: 767px) {
  .tups-orders-table thead {
    display: none;
  }
  .tups-orders-table tr {
    display: block;
    border-bottom: 1px solid #000000;
    padding: 12px 0;
  }
  .tups-orders-table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border: none;
  }
  .tups-orders-table td::before {
    content: attr(data-title);
    font-weight: 600;
    color: #999999;
  }
}

/* 空状態：センター揃え */
.tups-orders-empty-wrap {
  text-align: center;
  padding: 40px 0;
}
.tups-orders-empty-wrap .tups-orders-empty {
  color: #000000 !important;
  font-size: 0.9rem;
  margin-bottom: 20px;
}

.tups-orders-pagination {
  margin-top: 24px;
  display: flex;
  gap: 12px;
}

/* ============================================================
   ご紹介報酬（woocommerce/myaccount/salon-report.php）
   表は注文履歴（.tups-orders-table）と同じ組み方。スマホは1行＝1ブロック
   ============================================================ */
.tups-reward {
  color: #000000;
}
.tups-reward .tups-section-heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin: 0 0 20px;
  display: flex;
  align-items: baseline;
  gap: 12px;
  color: #000000;
}
.tups-reward .tups-section-heading .tups-section-note {
  font-size: 0.9rem;
  font-weight: 400;
  color: #999999;
}
.tups-reward .tups-reward-detail-heading {
  margin-top: 50px;
}
.tups-reward .tups-reward-sample {
  border: 1px solid #000000;
  padding: 10px 14px;
  margin: 0 0 30px;
  font-size: 0.9rem;
  color: #000000;
}
.tups-reward .tups-reward-lead,
.tups-reward .tups-reward-note {
  font-size: 0.9rem;
  line-height: 1.8;
  color: #000000;
  margin: 0 0 24px;
}
.tups-reward .tups-reward-note {
  margin: 40px 0 0;
  font-size: 0.8rem;
  color: #999999;
}
.tups-reward .tups-reward-guide {
  margin: 0 0 30px;
  font-size: 0.9rem;
}
.tups-reward .tups-reward-guide a {
  color: #000000 !important;
  text-decoration: underline !important;
}
.tups-reward .tups-reward-empty {
  font-size: 0.9rem;
  color: #000000;
  padding: 20px 0;
}
.tups-reward .tups-reward-months,
.tups-reward .tups-reward-lines {
  width: 100%;
  border-collapse: collapse;
}
.tups-reward .tups-reward-months thead tr,
.tups-reward .tups-reward-lines thead tr {
  border-bottom: 1px solid #000000;
}
.tups-reward .tups-reward-months,
.tups-reward .tups-reward-lines {
  /* 親テーマ reset.css の「全セルに格子の罫線」「奇数行にグレーの背景」を打ち消す（2026-10-03 実物で発見） */
}
.tups-reward .tups-reward-months th,
.tups-reward .tups-reward-months td,
.tups-reward .tups-reward-lines th,
.tups-reward .tups-reward-lines td {
  border: none;
  background-color: transparent;
}
.tups-reward .tups-reward-months th,
.tups-reward .tups-reward-lines th {
  /* reset.css の `table thead:first-child tr:first-child th`（見出しの上の線）は詳細度が高く、!important でないと外れない */
  border: none !important;
  padding: 10px 12px;
  font-weight: 600;
  text-align: left;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
  white-space: nowrap;
}
.tups-reward .tups-reward-months td,
.tups-reward .tups-reward-lines td {
  padding: 14px 12px;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-reward .tups-reward-months a,
.tups-reward .tups-reward-lines a {
  color: #000000 !important;
  text-decoration: underline !important;
}
@media (max-width: 767px) {
  .tups-reward .tups-reward-months thead,
  .tups-reward .tups-reward-lines thead {
    display: none;
  }
  .tups-reward .tups-reward-months tr,
  .tups-reward .tups-reward-lines tr {
    display: block;
    border-bottom: 1px solid #000000;
    padding: 12px 0;
  }
  .tups-reward .tups-reward-months td,
  .tups-reward .tups-reward-lines td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 6px 0;
    border: none;
    text-align: right;
  }
  .tups-reward .tups-reward-months td::before,
  .tups-reward .tups-reward-lines td::before {
    content: attr(data-title);
    font-weight: 600;
    color: #999999;
    text-align: left;
    flex-shrink: 0;
  }
}
.tups-reward {
  /* 選んでいる月 */
}
.tups-reward .tups-reward-month-row.is-current td {
  background-color: #f5f5f5;
  font-weight: 600;
}
.tups-reward .tups-reward-col-total {
  font-weight: 600;
}
.tups-reward .tups-reward-col-payment {
  white-space: nowrap;
}
.tups-reward .tups-reward-summary {
  margin: 24px 0 0 auto;
  max-width: 360px;
}
.tups-reward .tups-reward-summary > div {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 0.9rem;
}
.tups-reward .tups-reward-summary dt {
  font-weight: 400;
}
.tups-reward .tups-reward-summary dd {
  margin: 0;
}
.tups-reward .tups-reward-summary .tups-reward-summary-total {
  border-top: 1px solid #000000;
  margin-top: 6px;
  padding-top: 10px;
  font-weight: 600;
}
@media (max-width: 767px) {
  .tups-reward .tups-reward-summary {
    max-width: none;
  }
}

/* ============================================================
   お振込先口座（woocommerce/myaccount/salon-bank.php）
   入力欄は「アカウント詳細」（.tups-edit-account-form）と同じ見た目
   ============================================================ */
.tups-bank {
  color: #000000;
}
.tups-bank .tups-section-heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin: 0 0 20px;
  color: #000000;
}
.tups-bank .tups-bank-sample {
  border: 1px solid #000000;
  padding: 10px 14px;
  margin: 0 0 30px;
  font-size: 0.9rem;
  line-height: 1.8;
  color: #000000;
}
.tups-bank .tups-bank-lead {
  font-size: 0.9rem;
  line-height: 1.8;
  color: #000000;
  margin: 0 0 24px;
}
.tups-bank .tups-bank-empty {
  font-size: 0.9rem;
  padding: 20px 0;
}
.tups-bank .tups-bank-status {
  font-size: 0.9rem;
  font-weight: 600;
  margin: 0 0 20px;
}
.tups-bank .tups-bank-status.is-empty {
  color: #999999;
  font-weight: 400;
}
.tups-bank .tups-bank-form {
  max-width: 600px;
}
.tups-bank .form-row {
  margin-bottom: 16px;
}
.tups-bank .form-row label {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 6px;
  color: #000000;
}
.tups-bank .form-row input[type=text],
.tups-bank .form-row select {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #000000;
  border-radius: 0;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  color: #000000;
  background: #ffffff;
  outline: none;
}
.tups-bank .form-row input[type=text]:focus,
.tups-bank .form-row select:focus {
  border-color: #666;
}
.tups-bank {
  /* 入力の誤り：赤の太い枠と淡い赤地で、通常の通知（白地・黒枠）と見分ける */
}
.tups-bank .tups-bank-errors {
  border: 2px solid #c0392b;
  background-color: #fdf2f1;
  color: #c0392b;
  padding: 14px 16px;
  margin: 0 0 24px;
  max-width: 600px;
  box-sizing: border-box;
}
.tups-bank .tups-bank-errors .tups-bank-errors-title {
  margin: 0 0 8px;
  font-size: 0.9rem;
  font-weight: 700;
  color: #c0392b;
}
.tups-bank .tups-bank-errors ul {
  margin: 0;
  padding-left: 1.2em;
  list-style: disc;
}
.tups-bank .tups-bank-errors li {
  font-size: 0.9rem;
  line-height: 1.7;
  color: #c0392b;
}
.tups-bank .form-row.has-error label {
  color: #c0392b;
  font-weight: 600;
}
.tups-bank .form-row.has-error input[type=text],
.tups-bank .form-row.has-error select {
  border: 2px solid #c0392b;
  background-color: #fdf2f1;
}
.tups-bank .tups-bank-field-error {
  display: block;
  margin-top: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.6;
  color: #c0392b;
}
.tups-bank .tups-bank-note {
  font-size: 0.9rem;
  line-height: 1.8;
  color: #999999;
  margin: 0 0 12px;
}
.tups-bank .tups-bank-note.is-caution {
  color: #000000;
  font-weight: 600;
}
.tups-bank .tups-bank-actions {
  margin: 24px 0 0;
}

/* ============================================================
   決済方法
   ============================================================ */
.tups-payment-methods-table {
  width: 100%;
  border-collapse: collapse;
}
.tups-payment-methods-table thead tr {
  border-bottom: 1px solid #000000;
}
.tups-payment-methods-table th {
  padding: 10px 12px;
  font-weight: 600;
  text-align: left;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-payment-methods-table td {
  padding: 14px 12px;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
  font-size: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000;
}
.tups-payment-methods-table .tups-payment-col-name .tups-card-brand {
  font-weight: 600;
  margin-right: 8px;
}
.tups-payment-methods-table .tups-payment-col-name .tups-card-last4 {
  margin-right: 8px;
  letter-spacing: 0.05em;
}
.tups-payment-methods-table .tups-payment-col-name .tups-default-badge {
  display: inline-block;
  font-size: 0.7rem;
  padding: 2px 8px;
  border: 1px solid #000000;
  border-radius: 2px;
}
.tups-payment-methods-table .tups-payment-col-actions {
  white-space: nowrap;
}
.tups-payment-methods-table .tups-payment-col-actions .button {
  margin-right: 8px;
}
.tups-payment-methods-table .tups-payment-col-actions .button:last-child {
  margin-right: 0;
}
.tups-payment-methods-table .tups-payment-default-label {
  font-size: 0.8rem;
  color: #000000;
}
@media (max-width: 767px) {
  .tups-payment-methods-table thead {
    display: none;
  }
  .tups-payment-methods-table tr {
    display: block;
    border-bottom: 1px solid #000000;
    padding: 12px 0;
  }
  .tups-payment-methods-table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border: none;
  }
  .tups-payment-methods-table td::before {
    content: attr(data-title);
    font-weight: 600;
    color: #999999;
  }
}

/* カード追加ボタン */
.tups-add-payment-method-wrap {
  margin-top: 24px;
}

.tups-payment-methods-empty {
  text-align: center;
  padding: 40px 0;
}
.tups-payment-methods-empty p {
  color: #000000;
  font-size: 0.9rem;
  margin-bottom: 12px;
}
.tups-payment-methods-empty .tups-payment-hint {
  font-size: 0.8rem;
  color: #000000;
}

/* ============================================================
   カード追加フォーム（/my-account/add-payment-method/）
   Square フォームを /checkout/ §10 と同じ黒枠・白背景に統一
   ============================================================ */
#add_payment_method {
  /* ラジオボタン非表示 */
}
#add_payment_method input[type=radio] {
  display: none !important;
}
#add_payment_method {
  /* カードブランドロゴ非表示 */
}
#add_payment_method .sv-wc-payment-gateway-icon {
  display: none !important;
}
#add_payment_method {
  /* #payment コンテナ・リストのデフォルトスタイルリセット */
}
#add_payment_method #payment,
#add_payment_method ul.payment_methods,
#add_payment_method ul.woocommerce-PaymentMethods {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
#add_payment_method li.payment_method_square_credit_card {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
}
#add_payment_method {
  /* Square payment_box のデフォルト吹き出し・背景を除去 */
}
#add_payment_method .payment_box::before, #add_payment_method .payment_box::after {
  display: none !important;
}
#add_payment_method .payment_box {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#add_payment_method {
  /* fieldset（Square カード入力ラッパー）のボーダーリセット */
}
#add_payment_method fieldset {
  border: none !important;
  padding: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
#add_payment_method {
  /* カード入力エリア（黒枠・白背景） */
}
#add_payment_method .wc-square-credit-card-new-payment-method-form {
  border: 1px solid #000000 !important;
  padding: 20px !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
}
#add_payment_method {
  /* フォーム内ラベル */
}
#add_payment_method label {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  color: #000000 !important;
  margin-bottom: 5px !important;
}

/* 送信ボタンエリア */
.tups-add-pm-submit {
  margin-top: 20px;
}

/* 「← 決済方法に戻る」リンク */
.tups-add-pm-back {
  margin-top: 16px;
  font-size: 0.9rem;
}
.tups-add-pm-back a {
  color: #000000 !important;
  text-decoration: none !important;
}
.tups-add-pm-back a:hover {
  opacity: 0.6;
}

/* ============================================================
   住所変更
   ============================================================ */
.tups-address-section {
  max-width: 600px;
  color: #000000;
}
.tups-address-section .tups-address-title {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin: 0 0 24px;
  color: #000000;
}
.tups-address-section .tups-address-body {
  margin-bottom: 24px;
}
.tups-address-section address,
.tups-address-section .tups-address-formatted,
.tups-address-section p {
  font-style: normal !important;
  font-size: 0.9rem;
  line-height: 1.8;
  color: #000000;
}
.tups-address-section .tups-address-empty {
  color: #999999;
}

/* WC デフォルトの address 斜体を解除 */
.tups-myaccount-main address {
  font-style: normal !important;
}

/* 住所変更フォーム */
.tups-edit-address-form {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.tups-edit-address-form .tups-section-heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin: 0 0 24px;
  color: #000000;
}
.tups-edit-address-form .form-row {
  margin-bottom: 16px;
}
.tups-edit-address-form .form-row label {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 6px;
  color: #000000;
}
.tups-edit-address-form .form-row input[type=text],
.tups-edit-address-form .form-row input[type=email],
.tups-edit-address-form .form-row input[type=password] {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #000000;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  color: #000000;
  background: #ffffff;
  outline: none;
  font-style: normal;
}
.tups-edit-address-form .form-row input[type=text]:focus,
.tups-edit-address-form .form-row input[type=email]:focus,
.tups-edit-address-form .form-row input[type=password]:focus {
  border-color: #666;
}
.tups-edit-address-form .tups-address-static-row {
  margin-bottom: 16px;
}
.tups-edit-address-form .tups-address-static-row .tups-address-static-label {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 6px;
  color: #000000;
}
.tups-edit-address-form .tups-address-static-row .tups-address-static-value {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #999999;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  color: #000000;
  background: #f5f5f5;
}
.tups-edit-address-form .tups-address-static-note {
  font-size: 0.9rem;
  color: #000000;
  margin-bottom: 24px;
}
.tups-edit-address-form .tups-address-static-note a {
  color: #000000;
  text-decoration: underline;
}

/* ============================================================
   アカウント詳細フォーム
   ============================================================ */
.tups-edit-account-form {
  /* WooCommerceが挿入する目アイコン（ブラウザのネイティブと二重になる）を非表示 */
}
.tups-edit-account-form .show-password-input {
  display: none !important;
}
.tups-edit-account-form {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  color: #000000;
}
.tups-edit-account-form .tups-section-heading {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #000000;
  padding-bottom: 10px;
  margin: 40px 0 20px;
  display: flex;
  align-items: baseline;
  gap: 12px;
  color: #000000;
}
.tups-edit-account-form .tups-section-heading:first-of-type {
  margin-top: 0;
}
.tups-edit-account-form .tups-section-heading .tups-section-note {
  font-size: 0.9rem;
  font-weight: 400;
  color: #999999;
}
.tups-edit-account-form .form-row {
  margin-bottom: 16px;
}
.tups-edit-account-form .form-row label {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 6px;
  color: #000000;
}
.tups-edit-account-form .form-row input[type=text],
.tups-edit-account-form .form-row input[type=email],
.tups-edit-account-form .form-row input[type=password] {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #000000;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  color: #000000;
  background: #ffffff;
  outline: none;
}
.tups-edit-account-form .form-row input[type=text]:focus,
.tups-edit-account-form .form-row input[type=email]:focus,
.tups-edit-account-form .form-row input[type=password]:focus {
  border-color: #666;
}

/* ============================================================
   ヘッダー共通（header.php インラインstyle代替 + ハンバーガー）
   ============================================================ */
#masthead.site-header {
  border: none !important;
  position: relative;
}

.tups-header-container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

.tups-header-logo {
  display: block;
  line-height: 0;
}

.tups-logo-img {
  height: 30px !important;
  width: auto !important;
  display: block;
  margin: 0;
}

/* ヘッダー右側グループ（カートアイコン＋ハンバーガー＋ナビをまとめる） */
.tups-header-right {
  display: flex;
  align-items: center;
  gap: 28px;
}

/* ヘッダーカートアイコン */
.tups-header-cart-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #000000 !important;
  text-decoration: none !important;
  padding: 4px 6px;
  transition: opacity 0.3s;
}
.tups-header-cart-link:hover {
  opacity: 0.6;
}

.tups-cart-icon {
  display: block;
  stroke: #000000;
}

.tups-cart-badge {
  position: absolute;
  top: -2px;
  right: -4px;
  background-color: #000000;
  color: #ffffff;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 0.55rem;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  line-height: 1;
}
.tups-cart-badge.is-zero {
  display: none;
}

/* ヘッダー・フッターナビ */
.tups-header-nav .tups-header-links {
  display: flex;
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.tups-header-nav .tups-header-links a {
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: #000000 !important;
  text-decoration: none !important;
  transition: opacity 0.3s;
}
.tups-header-nav .tups-header-links a:hover {
  opacity: 0.6;
}

/* ハンバーガーボタン（デスクトップでは非表示） */
.tups-hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer;
  padding: 8px;
  width: 40px;
  height: 40px;
}
.tups-hamburger-btn:focus, .tups-hamburger-btn:active, .tups-hamburger-btn:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  background: none !important;
}
.tups-hamburger-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background-color: #000000;
  transition: transform 0.3s, opacity 0.3s;
}
.tups-hamburger-btn[aria-expanded=true] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.tups-hamburger-btn[aria-expanded=true] span:nth-child(2) {
  opacity: 0;
}
.tups-hamburger-btn[aria-expanded=true] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* モバイル（767px以下）：ハンバーガー表示 + ドロップダウンナビ */
@media (max-width: 767px) {
  .tups-hamburger-btn {
    display: flex;
  }
  #tups-site-nav.tups-header-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: #ffffff;
    border-bottom: 1px solid #000000;
    z-index: 600;
  }
  #tups-site-nav.tups-header-nav.is-open {
    display: block;
  }
  #tups-site-nav.tups-header-nav .tups-header-links {
    flex-direction: column;
    gap: 0;
    padding: 8px 20px 12px;
  }
  #tups-site-nav.tups-header-nav .tups-header-links li a {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  #tups-site-nav.tups-header-nav .tups-header-links li:last-child a {
    border-bottom: none;
  }
}
.tups-footer-nav {
  margin-bottom: 20px;
}
.tups-footer-nav .tups-footer-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tups-footer-nav .tups-footer-links li a,
.tups-footer-nav .tups-footer-links li a:link,
.tups-footer-nav .tups-footer-links li a:visited,
.tups-footer-nav .tups-footer-links li a:hover,
.tups-footer-nav .tups-footer-links li a:active {
  font-size: 0.9rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 400 !important;
  color: #000000 !important;
  text-decoration: none !important;
  transition: opacity 0.3s;
}
.tups-footer-nav .tups-footer-links li a:hover {
  opacity: 0.6;
}

.site-footer {
  text-align: center !important;
  font-family: "Inter", sans-serif !important;
  font-weight: 300 !important;
  /* 親テーマが設定する max-width: 1140px を上書きしてコンテンツ（1024px）と揃える */
  max-width: 1024px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  /* フッターコンテナをメインコンテンツ（1024px）と揃える */
}
.site-footer .container {
  max-width: 1024px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  box-sizing: border-box !important;
}
.site-footer .copyright {
  font-size: 0.8rem;
}
@media (max-width: 1024px) {
  .site-footer .copyright {
    font-size: 0.7rem;
  }
}
@media (max-width: 767px) {
  .site-footer .copyright {
    font-size: 0.6rem;
  }
}

.site-footer, footer, [data-elementor-type=footer] {
  text-align: center !important;
}
.site-footer p, .site-footer small, .site-footer .elementor-widget-container, footer p, footer small, footer .elementor-widget-container, [data-elementor-type=footer] p, [data-elementor-type=footer] small, [data-elementor-type=footer] .elementor-widget-container {
  font-family: "Inter", sans-serif !important;
  font-weight: 300 !important;
  font-size: 0.8rem !important;
}
@media (max-width: 1024px) {
  .site-footer p, .site-footer small, .site-footer .elementor-widget-container, footer p, footer small, footer .elementor-widget-container, [data-elementor-type=footer] p, [data-elementor-type=footer] small, [data-elementor-type=footer] .elementor-widget-container {
    font-size: 0.7rem !important;
  }
}
@media (max-width: 767px) {
  .site-footer p, .site-footer small, .site-footer .elementor-widget-container, footer p, footer small, footer .elementor-widget-container, [data-elementor-type=footer] p, [data-elementor-type=footer] small, [data-elementor-type=footer] .elementor-widget-container {
    font-size: 0.6rem !important;
  }
}

/* フッターナビリンク：#colophon ID で最高優先度を確保 */
#colophon a,
#colophon a:link,
#colophon a:visited,
#colophon a:hover,
#colophon a:active {
  color: #000000 !important;
  text-decoration: none !important;
  font-family: "Inter", "Noto Sans JP", sans-serif !important;
}

#colophon a:hover {
  opacity: 0.6;
}

/* ============================================================
   お知らせページ（/news/）
   archive-product.php・woocommerce-myaccount-page.php と同じ方式で
   親テーマのコンテナ制約を回避しつつ1024px幅を直接制御
   ============================================================ */
#main.tups-news-main,
.tups-news-main {
  max-width: 1024px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 60px 24px !important;
  box-sizing: border-box !important;
  color: #000000;
}
@media (max-width: 767px) {
  #main.tups-news-main,
  .tups-news-main {
    padding: 40px 16px !important;
  }
}

.tups-news-header {
  text-align: center;
  margin-bottom: 40px;
}
.tups-news-header .tups-sub-title {
  display: block;
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  color: #999999;
  margin-bottom: 8px;
}
.tups-news-header .tups-main-title {
  font-size: 1.8rem;
  font-weight: 500;
  margin: 0;
}

.tups-news-list {
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.tups-news-card {
  border: 1px solid #000000;
  padding: 24px;
}

.tups-news-card-date {
  font-size: 0.8rem;
  color: #999999;
  margin-bottom: 8px;
}

.tups-news-card-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 12px;
}

.tups-news-card-body {
  font-size: 0.9rem;
  line-height: 1.8;
}

.tups-news-actions {
  max-width: 700px;
  margin: 40px auto 0;
  text-align: center;
}

/* ============================================================
   購入特典（同じ商品を10個ごとに1個・金額に入らない別枠）
   2026-10-16　出す場所：/cart/・/checkout/・サイドカート（ミニカート）
   部品は inc/gift.php。色は白黒＋薄いグレーの地（pro の他の画面に合わせる）
   ============================================================ */
.tups-gift-badge {
  display: inline-block;
  padding: 1px 8px;
  background: #000000;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  vertical-align: middle;
  white-space: nowrap;
}

/* カートの上の案内 */
.tups-gift-notice {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #000000;
  background: #f5f5f5;
  font-size: 0.85rem;
  line-height: 1.6;
}
.tups-gift-notice .tups-gift-notice-title {
  font-weight: 700;
}
.tups-gift-notice .tups-gift-notice-sub {
  margin-top: 4px;
  font-size: 0.78rem;
  color: #333;
}
.tups-gift-notice .tups-gift-notice-now {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #000000;
  font-weight: 600;
}
.tups-gift-notice .tups-gift-notice-now strong {
  font-size: 1.05rem;
}

/* 商品名の下の「あと○個で…」 */
.tups-gift-hint {
  margin-top: 4px;
  font-size: 0.75rem;
  color: #555;
}

/* カート・注文手続きの「購入特典」の行 */
.woocommerce-cart .woocommerce-cart-form table.shop_table tr.tups-gift-row,
table.tups-review-order-table tr.tups-gift-row {
  background: #f5f5f5;
}
.woocommerce-cart .woocommerce-cart-form table.shop_table tr.tups-gift-row td,
table.tups-review-order-table tr.tups-gift-row td {
  font-weight: 600;
}

/* ミニカート（サイドカート）の商品の下
   商品情報の行（.tups-mini-cart-info）は名前・価格・数量の横並び（flex）。
   折り返しを許し、購入特典は次の行いっぱいに出す（出さないと名前が押しつぶされて消える） */
.tups-side-cart-area .widget_shopping_cart_content .cart_list li .tups-mini-cart-info {
  flex-wrap: wrap;
}

.tups-side-cart-area .widget_shopping_cart_content .cart_list li .tups-mini-cart-info .tups-mini-gift {
  flex: 0 0 100%;
  margin-top: 2px;
  font-size: 0.8rem;
  line-height: 1.6;
  white-space: nowrap;
}

/* 合計のところのまとまり（ミニカート・カートのスマホ用の内訳） */
.tups-gift-total-block {
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid #000000;
  background: #f5f5f5;
  font-size: 0.85rem;
}
.tups-gift-total-block .tups-gift-total-sub {
  margin-top: 2px;
  font-size: 0.75rem;
  color: #333;
}

/* 注文手続きの合計の表の「購入特典」 */
table.tups-review-order-table tfoot tr.tups-gift-total-row {
  background: #f5f5f5;
}
table.tups-review-order-table tfoot tr.tups-gift-total-row .tups-gift-total-sub {
  font-size: 0.75rem;
  color: #333;
}

/* スマホで、カートの表を縦積みにしたとき、購入特典の行の「削除」のセルは出さない */
@media (max-width: 767px) {
  .woocommerce-cart .woocommerce-cart-form table.shop_table tr.tups-gift-row td.product-remove {
    display: none !important;
  }
  /* 商品名の下の案内は、次の行に落として全幅で出す */
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.product-name {
    flex-wrap: wrap;
  }
  .woocommerce-cart .woocommerce-cart-form table.shop_table tbody td.product-name .tups-gift-hint {
    flex: 0 0 100%;
    margin-top: 6px;
    text-align: left;
  }
}
