/**
 * Takahashi Brand Theme — レイアウト（ヘッダー・サイドバー・フッター）
 */

/* ═══════════════════════════════════════════════════════════════
   グローバル変数：ページ余白（site-inner padding と統一して
   alignfull のネガティブマージン計算に再利用）
══════════════════════════════════════════════════════════════ */
:root {
  --tbt-page-gutter: 1.5rem;
  --tbt-content-max-width: none;         /* カスタマイザーで上書き */
  --tbt-content-wide-max: 1400px;        /* alignwide の上限（常時） */
  /* サイドバーあり時：左端からの追加インデント（画面幅の約10％・上限で過剰にならないよう抑制） */
  --tbt-sidebar-viewport-inset: min(15vw, 6.75rem);
}


@media (max-width: 781px) {
  :root {
    --tbt-page-gutter: 1rem;
    /* 公式サイト・本文（モバイル）：ページ横断で同系の読みサイズに寄せる（見出し・キャッチはページ別ルール可） */
    --tbt-prose-mobile-font-size: 0.875rem;
    --tbt-prose-mobile-line-height: 1.62;
  }
}

/* 個人情報保護方針：見出しを必ず1行（他ページ実績のある強指定を踏襲） */
@media (max-width: 1100px) {
  body:is(.tbt-page-privacy-policy, .page-privacy-policy, .page-privacy, .page-kojin-joho, .page-kojin-joho-hogo) main.site-main header.entry-header h1.entry-title,
  .entry-header-privacy-policy h1.entry-title {
    font-size: min(0.9rem, 2.85vw) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.035em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  body:is(.tbt-page-privacy-policy, .page-privacy-policy, .page-privacy, .page-kojin-joho, .page-kojin-joho-hogo) main.site-main header.entry-header h1.entry-title br,
  .entry-header-privacy-policy h1.entry-title br {
    display: none !important;
  }

  body:is(.tbt-page-privacy-policy, .page-privacy-policy, .page-privacy, .page-kojin-joho, .page-kojin-joho-hogo) main.site-main header.entry-header h1.entry-title *,
  .entry-header-privacy-policy h1.entry-title * {
    display: inline !important;
    white-space: inherit !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   公式サイト・モバイル本文タイポ（通販・トップ・スタッフ除外）
   ※ ブロックの「文字サイズ」プリセット付きは上書きしない
══════════════════════════════════════════════════════════════ */
@media (max-width: 781px) {
  body.tbt-context-official:not(.page-staff-only):not(.home):not(.front-page):not(.tbt-page-contact)
    .site-main
    .entry-content
    :where(p, td, th, dd, dt, figcaption):not(:has(input, select, textarea)):not(.tbt-heading-eyebrow):not(.entry-eyebrow):not(
        .has-small-font-size
      ):not(.has-medium-font-size):not(.has-large-font-size):not(.has-x-large-font-size):not(.has-xx-large-font-size):not(
        .has-xxx-large-font-size
      ):not(.tbt-page-section-nav__title) {
    font-size: var(--tbt-prose-mobile-font-size);
    line-height: var(--tbt-prose-mobile-line-height);
  }

  body.tbt-context-official:not(.page-staff-only):not(.home):not(.front-page):not(.tbt-page-contact)
    .site-main
    .entry-content
    :where(ul, ol):not(.wp-block-navigation__container):not(.wp-block-social-links) {
    font-size: var(--tbt-prose-mobile-font-size);
    line-height: var(--tbt-prose-mobile-line-height);
  }
}

/* 通販：tbt-shop-reading-typo 付与ページの本文を、ご利用ガイドのモバイル prose（0.8rem / line-height 1.5）に寄せる */
@media (max-width: 781px) {
  body.tbt-context-shop.tbt-shop-reading-typo .site-main .entry-content
    :where(p, li, dd, dt, figcaption):not(:has(input, select, textarea)):not(.tbt-heading-eyebrow):not(.entry-eyebrow):not(
        .has-small-font-size
      ):not(.has-medium-font-size):not(.has-large-font-size):not(.has-x-large-font-size):not(.has-xx-large-font-size):not(
        .has-xxx-large-font-size
      ):not(.tbt-page-section-nav__title) {
    font-size: 0.8rem;
    line-height: 1.5;
  }

  body.tbt-context-shop.tbt-shop-reading-typo .site-main .entry-content
    :where(ul, ol):not(.wp-block-navigation__container):not(.wp-block-social-links):not(.products) {
    font-size: 0.8rem;
    line-height: 1.5;
  }

  /* WooCommerce ブロック内は商品カード用の既定に戻す */
  body.tbt-context-shop.tbt-shop-reading-typo .site-main .entry-content .woocommerce :where(p, li, dd, dt, figcaption, ul, ol) {
    font-size: revert;
    line-height: revert;
  }
}

/* ═══════════════════════════════════════════════════════════════
   個人情報保護方針：モバイルで見出し周り・段落密度を詰める
══════════════════════════════════════════════════════════════ */
@media (max-width: 781px) {
  body.tbt-page-privacy-policy .entry-header {
    margin-bottom: 0.55rem;
  }

  body.tbt-page-privacy-policy .entry-eyebrow {
    font-size: 0.74rem;
    margin-bottom: 0.1rem;
  }

  /* 「-個人情報保護方針-」は改行せず、画面幅に合わせて縮小のみ（拡大しない） */
  body:is(.tbt-page-privacy-policy, .page-privacy-policy, .page-privacy, .page-kojin-joho, .page-kojin-joho-hogo) .entry-title,
  .entry-header-privacy-policy .entry-title {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    font-size: min(0.9rem, 2.85vw);
    letter-spacing: -0.035em;
    line-height: 1.14;
    margin-bottom: 0.46rem;
    padding-inline: 0;
  }

  body:is(.tbt-page-privacy-policy, .page-privacy-policy, .page-privacy, .page-kojin-joho, .page-kojin-joho-hogo) .entry-title br,
  .entry-header-privacy-policy .entry-title br {
    display: none;
  }

  body.tbt-page-privacy-policy .entry-content :where(h2, h3).wp-block-heading,
  body.tbt-page-privacy-policy .entry-content :where(h2, h3):not(.wp-block-heading) {
    margin-top: 0.72rem;
    margin-bottom: 0.34rem;
    font-size: clamp(0.95rem, 3.35vw, 1.15rem);
    line-height: 1.24;
  }

  body.tbt-page-privacy-policy .entry-content :where(h2, h3).wp-block-heading:first-child,
  body.tbt-page-privacy-policy .entry-content :where(h2, h3):not(.wp-block-heading):first-child {
    margin-top: 0.28rem;
  }

  body.tbt-page-privacy-policy .entry-content :where(p, li) {
    font-size: 0.8rem;
    line-height: 1.5;
    margin-top: 0;
    margin-bottom: 0.38rem;
  }

  body.tbt-page-privacy-policy .entry-content :where(ul, ol) {
    margin-top: 0.2rem;
    margin-bottom: 0.42rem;
    padding-left: 1rem;
  }
}

/* ═══════════════════════════════════════════════════════════════
   ヘッダー（スクロール連動はプラグイン側で制御。ここはベース）
══════════════════════════════════════════════════════════════ */
.site-header,
#masthead {
  font-family: var(--tbt-font-serif);
  width: 100%;
}

.site-header-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.site-branding .site-logo {
  font-size: 1.25rem;
  font-weight: 600;
  display: inline-block;
  padding: var(--tbt-logo-padding-y, 10px) 0;
}
.site-branding .site-logo img {
  max-width: var(--tbt-logo-width-pc, 180px);
  height: auto;
  display: block;
  transition: max-width 0.25s ease;
}
#masthead.is-scrolled .site-branding .site-logo img,
.site-header.is-scrolled .site-branding .site-logo img {
  max-width: var(--tbt-logo-width-pc-scrolled, 140px);
}
@media (max-width: 781px) {
  .site-branding .site-logo img {
    max-width: var(--tbt-logo-width-mobile, 140px);
  }
  #masthead.is-scrolled .site-branding .site-logo img,
  .site-header.is-scrolled .site-branding .site-logo img {
    max-width: var(--tbt-logo-width-mobile-scrolled, 110px);
  }
}
.site-header,
#masthead {
  border-bottom: calc(var(--tbt-header-border-show, 1) * var(--tbt-header-border-width, 2px)) solid var(--tbt-header-border-color, #B88B46);
}

/*
 * 公式4ページ：TCF の fixed モードは sticky のため、ビューポート上部への追従を明示（通販は対象外）。
 * トップ（.home）はヒーロー全画面のため除外。#primary へヘッダー相当の上余白を付与。
 */
body.tbt-header-viewport-fixed:not(.home) #masthead,
body.tbt-header-viewport-fixed:not(.home) .site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1000;
}

body.admin-bar.tbt-header-viewport-fixed:not(.home) #masthead,
body.admin-bar.tbt-header-viewport-fixed:not(.home) .site-header {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.admin-bar.tbt-header-viewport-fixed:not(.home) #masthead,
  body.admin-bar.tbt-header-viewport-fixed:not(.home) .site-header {
    top: 46px !important;
  }
}

body.tbt-header-viewport-fixed:not(.home) #masthead ~ #primary {
  margin-top: calc(var(--tbt-h-pt-init) + var(--tbt-h-pb-init) + 2.9rem);
}

/* 固定追従ヘッダー時の「前のページに戻る」導線の食い込み回避（FAQに近い余白感） */
body.tbt-header-viewport-fixed:not(.home) #masthead ~ #primary .tbt-inline-back-wrap {
  margin-top: 1.05rem;
}

@media (max-width: 781px) {
  body.tbt-header-viewport-fixed:not(.home) #masthead ~ #primary .tbt-inline-back-wrap {
    margin-top: 3.05rem;
  }
}

.main-navigation .nav-menu {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 1rem 1.5rem;
}

.main-navigation .nav-menu a {
  padding: 0.25em 0;
  letter-spacing: var(--tbt-menu-letter-spacing, 0.05em);
}

/* 通販ヘッダー：アイコンメニュー（マイアカウント/カート） */
.main-navigation .nav-menu .tbt-menu-item-icon-only > a {
  letter-spacing: 0;
  min-width: 1.6em;
  text-align: center;
}
.main-navigation .nav-menu .tbt-menu-item-icon-only .tbt-menu-icon-svg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  vertical-align: middle;
}
.main-navigation .nav-menu .tbt-menu-item-icon-only .tbt-menu-icon-svg svg {
  display: block;
  width: 1.05rem;
  height: 1.05rem;
  fill: currentColor;
  stroke: currentColor;
}

/* 文字色は #masthead の color を継承（class-tcf-header-footer.php の CSS変数で制御） */
.site-header .site-branding a,
#masthead .site-branding a,
.site-header .nav-menu a,
#masthead .nav-menu a {
  color: inherit;
}

.tbt-shop-header-quick {
  display: none;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
}

.tbt-shop-header-quick__link {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(184, 139, 70, 0.4);
  background: rgba(255, 252, 248, 0.95);
  color: #2f2418 !important;
  text-decoration: none !important;
  font-size: 1rem;
  line-height: 1;
}

.tbt-shop-header-quick__icon {
  width: 1.08em;
  height: 1.08em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tbt-shop-header-quick__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* 通販のヘッダートグルはモバイルのみ表示（PCではロゴ横の余計な記号化を防ぐ） */
body.tbt-context-shop .tbt-official-nav-toggle {
  display: none;
}

/* 通販系ページ：ヘッダーを常時固定表示 */
body.tbt-context-shop #masthead,
body.tbt-context-shop .site-header {
  position: sticky !important;
  top: 0;
  z-index: 120;
  background-color: rgba(248, 244, 237, 0.96) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
body.admin-bar.tbt-context-shop #masthead,
body.admin-bar.tbt-context-shop .site-header {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar.tbt-context-shop #masthead,
  body.admin-bar.tbt-context-shop .site-header {
    top: 46px;
  }
}

/* 固定ヘッダー時の本文干渉を避けるため、通販ページでは見出し系のスクロール位置を補正 */
body.tbt-context-shop :where(h1, h2, h3, h4, h5, h6, [id]) {
  scroll-margin-top: 120px;
}
body.tbt-context-shop .site-inner {
  /* ヘッダー直下の余白（以前の受取方法帯ぶんの“空間”だけ残す） */
  padding-top: calc(0.7rem + 44px);
}
@media (max-width: 782px) {
  body.tbt-context-shop .site-inner {
    padding-top: calc(0.7rem + 38px);
  }
}

/* サイドメニュー（おすすめ商品〜惣菜類など）：ホバーで選択中感 */
@media (hover: hover) and (pointer: fine) {
  .sidebar-wrap .menu-item a,
  .sidebar-wrap .widget a {
    border-radius: 8px;
    transition: transform 0.12s ease, background-color 0.12s ease, box-shadow 0.12s ease, color 0.12s ease;
  }
  .sidebar-wrap .menu-item a:hover,
  .sidebar-wrap .widget a:hover {
    background: rgba(127, 38, 41, 0.08);
    color: var(--tbt-enzhi);
    transform: translateX(2px);
    box-shadow: 0 6px 14px rgba(127, 38, 41, 0.10);
  }
}
.sidebar-wrap .menu-item a:focus-visible,
.sidebar-wrap .widget a:focus-visible {
  outline: 2px solid rgba(127, 38, 41, 0.55);
  outline-offset: 2px;
  background: rgba(127, 38, 41, 0.08);
  border-radius: 8px;
}

/* 固定ページ「商品一覧」：件数・並び替えツールバー */
.tbt-shop-products__toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 16px;
  margin:0 0 1rem;
}
.tbt-shop-products__toolbar .woocommerce-result-count{
  margin:0;
  font-weight:700;
  color:#5a4a3e;
}
.tbt-shop-products__toolbar .woocommerce-ordering{
  margin:0;
}
.tbt-shop-products__toolbar-end{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:12px 16px;
}
.tbt-shop-products__toolbar-end .tbt-shop-products__pager-top{
  margin:0;
}
.tbt-shop-products__pager-top{
  margin: 0 0 1rem;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(148,132,106,.28);
  background: rgba(255,255,255,.7);
}
.tbt-shop-products__pager-top label{
  margin: 0;
  font-size: .82rem;
  font-weight: 700;
  color: #5a4a3e;
}
.tbt-shop-products__pager-top select{
  min-width: 110px;
  border: 1px solid rgba(127,38,41,.28);
  border-radius: 999px;
  background: #fff;
  color: #3f2d26;
  padding: 4px 10px;
  height: 32px;
  font-size: .82rem;
  font-weight: 700;
}
.tbt-shop-products__pager-top--loop{
  margin: .4rem 0 1rem;
}
.tbt-shop-products__pager-top--bottom{
  margin: 1.1rem 0 0;
}

/* 通販トップ：ショートコード一覧内のページ送りは常に表示（誤った兄弟セレクタで隠れないよう保険） */
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products > .tbt-shop-pagination,
body.tbt-shop-landing-page #primary .tbt-shop-products > .tbt-shop-pagination{
  display:flex !important;
}

/* 商品グリッド直下の数値ページ送り */
.tbt-shop-pagination--below-grid{
  margin-top: 1.35rem;
  margin-bottom: 10px;
}

/*
 * 通販トップ：Woo の既定ループ（div.woocommerce.columns-4 …）はページ送りが付かない。
 * テーマの .tbt-shop-products があるとき、同じラッパー内の「先に来る」.woocommerce だけ隠す。
 * （DOM 例: .tbt-shop-top-wrap > .woocommerce + .tbt-shop-products）
 * tbt-context-shop＝通販サイト／商品一覧など（body に tbt-shop-landing-page が無い固定ページも含む）
 */
body.tbt-context-shop .tbt-shop-top-wrap:has(.tbt-shop-products) > .woocommerce,
body.tbt-shop-landing-page .tbt-shop-top-wrap:has(.tbt-shop-products) > .woocommerce{
  display: none !important;
}
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .tbt-shop-top-wrap > .woocommerce,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .tbt-shop-top-wrap > .woocommerce,
body.tbt-context-shop .entry-content:has(.tbt-shop-products) .tbt-shop-top-wrap > .woocommerce{
  display: none !important;
}
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) > .woocommerce,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) > .woocommerce{
  display: none !important;
}
body.tbt-context-shop #primary .tbt-shop-top-wrap:has(.tbt-shop-products) > .woocommerce,
body.tbt-shop-landing-page #primary .tbt-shop-top-wrap:has(.tbt-shop-products) > .woocommerce{
  display: none !important;
}
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .tbt-shop-top-wrap > .woocommerce,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .tbt-shop-top-wrap > .woocommerce{
  display: none !important;
}
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) > .woocommerce,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) > .woocommerce{
  display: none !important;
}
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-grid__products,
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-product-template,
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-product-collection,
body.tbt-context-shop .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-all-products,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-grid__products,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-product-template,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-product-collection,
body.tbt-shop-landing-page .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-all-products{
  display: none !important;
}
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-grid__products,
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-product-template,
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-product-collection,
body.tbt-context-shop #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-all-products,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-grid__products,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wc-block-product-template,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-product-collection,
body.tbt-shop-landing-page #primary .tbt-shop-landing-body.entry-content:has(.tbt-shop-products) .wp-block-woocommerce-all-products{
  display: none !important;
}

/* [tbt_shop_product_list] 専用: ページ文脈に依存しない商品グリッド */
.tbt-shop-products ul.products{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 16px;
}
.tbt-shop-products ul.products::before,
.tbt-shop-products ul.products::after{
  content: none !important;
  display: none !important;
}
.tbt-shop-products ul.products > li.product{
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
@media (max-width: 1100px){
  .tbt-shop-products ul.products{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 780px){
  .tbt-shop-products ul.products{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}
@media (max-width: 480px){
  .tbt-shop-products ul.products{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

/* 固定ページ「商品一覧」：ページ送りの見た目を整える */
.tbt-shop-pagination{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
  margin: 18px 0 10px;
}
.tbt-shop-pagination__count{
  font-weight: 800;
  color: #5a4a3e;
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(148,132,106,0.22);
  border-radius: 999px;
  padding: 4px 10px;
}
.tbt-shop-pagination a,
.tbt-shop-pagination span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 40px;
  height: 36px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(127,38,41,0.22);
  background: rgba(255,255,255,0.82);
  color: #2f211a;
  text-decoration:none;
  font-weight: 800;
}
.tbt-shop-pagination span.current{
  background: rgba(127,38,41,0.10);
  border-color: rgba(127,38,41,0.28);
  color: #7F2629;
}
.tbt-shop-pagination a:hover{
  border-color: rgba(127,38,41,0.45);
  transform: translateY(-1px);
}

/* 商品カテゴリ（ジャンル）アーカイブ：カスタマイザー上部（ブロック or レガシーHTML） */
.tbt-genre-banner{
  max-width: 1040px;
  margin: 0 auto 1rem;
  padding: 0 20px;
}
.tbt-genre-banner--blocks{
  width: 100%;
  max-width: 1040px;
}
.tbt-genre-banner--blocks.alignwide,
.tbt-genre-banner--blocks .alignwide{
  max-width: min(100%, 1180px);
}

/* 商品カテゴリ一覧の下：通販トップへ・ページ上部へ */
.tbt-shop-end-nav{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: center;
  max-width: 1040px;
  margin: 2rem auto 1.25rem;
  padding: 0 20px;
}
.tbt-shop-end-nav .tbt-shop-top-action-btn{
  flex: 1 1 220px;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 999px;
  border: 1.5px solid rgba(127, 38, 41, 0.52);
  background: transparent !important;
  color: #6e2326 !important;
  font-weight: 800;
  text-decoration: none;
  box-shadow: none !important;
  transition: background-color .12s ease, border-color .12s ease, transform .12s ease;
}
.tbt-shop-end-nav .tbt-shop-top-action-btn:focus-visible{
  outline: 2px solid rgba(127, 38, 41, 0.4);
  outline-offset: 2px;
}
@media (hover: hover) and (pointer: fine) {
  .tbt-shop-end-nav .tbt-shop-top-action-btn:hover{
    background: rgba(127, 38, 41, 0.08) !important;
    border-color: rgba(127, 38, 41, 0.64);
    transform: translateY(-1px);
  }
}
.tbt-shop-end-nav--content{
  margin: 2rem auto 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(148, 132, 106, 0.2);
}
.tbt-shop-end-nav--content .tbt-shop-top-action-btn{
  background: transparent !important;
  border-color: rgba(127, 38, 41, 0.52);
  box-shadow: none !important;
}

/* 通販トップ：特集・読みもの（ご利用ガイドの下） */
.tbt-shop-topics{
  margin: 0 0 2.1rem;
}
.tbt-shop-topics__title{
  margin: 0 0 .8rem;
  font-size: 1.02rem;
  font-weight: 800;
  color: #5b2d22;
  letter-spacing: .04em;
}
.tbt-shop-topics__track{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.tbt-shop-topics__card{
  display: flex;
  align-items: stretch;
  min-height: 92px;
  border-radius: 12px;
  border: 1px solid rgba(127,38,41,.18);
  background: rgba(255,252,247,.92);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.tbt-shop-topics__image{
  flex: 0 0 36%;
  min-height: 92px;
  background-size: cover;
  background-position: center;
}
.tbt-shop-topics__image--fallback{
  background: linear-gradient(135deg, rgba(127,38,41,.16), rgba(106,117,201,.2));
}
.tbt-shop-topics__meta{
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}
.tbt-shop-topics__card-title{
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.35;
  color: #3f2d26;
}
.tbt-shop-topics__card-subtitle{
  font-size: .76rem;
  line-height: 1.35;
  color: #6d5b50;
}
@media (hover: hover) and (pointer: fine) {
  .tbt-shop-topics__card:hover{
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(32,24,20,.09);
    border-color: rgba(127,38,41,.36);
  }
}
@media (max-width: 980px){
  .tbt-shop-topics__track{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  .tbt-shop-topics__track{
    grid-template-columns: 1fr;
  }
}

/* 通販トップ：人気・おすすめ（横スクロール・タイルカード） */
.tbt-shop-rankings {
  margin: .35rem 0 2.2rem;
}
.tbt-shop-rank-section {
  margin: 0 0 2.2rem;
  padding: 1.15rem 0 0;
  border-top: 1px solid rgba(127, 38, 41, 0.12);
}
.tbt-shop-rank-section:first-child {
  border-top: 0;
  padding-top: 0.2rem;
}
.tbt-shop-rank-section__title {
  margin: 0 0 1.2rem;
  font-size: 1.15rem;
  font-weight: 800;
  color: #5b2d22;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(127, 38, 41, 0.28);
  background: rgba(255, 251, 245, 0.82);
}
.tbt-shop-rank-section__title::before {
  content: "";
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #b94f68;
  box-shadow: 0 0 0 4px rgba(185,79,104,.15);
}
.tbt-shop-rank-section--popular .tbt-shop-rank-section__title {
  color: #5f2a2a;
  border-color: rgba(186, 72, 97, .35);
  background: linear-gradient(180deg, rgba(255,246,250,.92), rgba(255,251,246,.9));
}
.tbt-shop-rank-section--popular .tbt-shop-rank-section__title::before {
  background: #c34d6b;
  box-shadow: 0 0 0 4px rgba(195,77,107,.16);
}
.tbt-shop-rank-section--recommended .tbt-shop-rank-section__title {
  color: #3f3d67;
  border-color: rgba(88, 99, 163, .28);
  background: linear-gradient(180deg, rgba(245,248,255,.92), rgba(252,250,255,.9));
}
.tbt-shop-rank-section--recommended .tbt-shop-rank-section__title::before {
  background: #6a75c9;
  box-shadow: 0 0 0 4px rgba(106,117,201,.16);
}
.tbt-shop-rank-scroll {
  margin: 0 -4px;
  padding: 4px 4px 10px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 4px;
  outline: none;
}
.tbt-shop-rank-scroll:focus-visible {
  box-shadow: 0 0 0 2px rgba(127, 38, 41, 0.35);
  border-radius: 12px;
}
.tbt-shop-rank-list--hscroll {
  list-style: none;
  margin: 0;
  padding: 0 2px 0 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 12px;
  width: max-content;
  min-width: 100%;
}

/* モバイル全体: 横スクロール起因の画面揺れを抑止 */
@media (max-width: 781px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overscroll-behavior-x: none;
  }

  #page,
  .site,
  .site-inner {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }
}
.tbt-shop-rank-list--hscroll .tbt-shop-rank-list__item {
  flex: 0 0 auto;
  width: min(210px, 52vw);
  scroll-snap-align: start;
}
.tbt-shop-rank-card--tile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  height: 100%;
  min-height: 268px;
  padding: 12px 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(127, 38, 41, 0.18);
  background: linear-gradient(180deg, rgba(255, 253, 249, .96), rgba(252, 246, 238, .9));
  text-decoration: none;
  color: inherit;
  box-shadow: 0 4px 14px rgba(32, 24, 20, 0.05);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.tbt-shop-rank-section--recommended .tbt-shop-rank-card--tile {
  border-color: rgba(86, 102, 168, .2);
  background: linear-gradient(180deg, rgba(249,251,255,.96), rgba(244,248,255,.92));
}
.tbt-shop-rank-section--popular .tbt-shop-rank-card--tile {
  border-color: rgba(192, 77, 109, .2);
  background: linear-gradient(180deg, rgba(255,249,252,.96), rgba(255,245,239,.92));
}
@media (hover: hover) and (pointer: fine) {
  .tbt-shop-rank-card--tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(32, 24, 20, 0.08);
  }
}
.tbt-shop-rank-card--tile .tbt-shop-rank-card__media {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 1;
  max-height: 152px;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
}
.tbt-shop-rank-card--tile .tbt-shop-rank-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tbt-shop-rank-card--tile .tbt-shop-rank-card__meta {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
  text-align: center;
}
.tbt-shop-rank-card__name {
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.38;
  color: #3d2c26;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tbt-shop-rank-card__pop-badge {
  align-self: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #c94b6a, #a83858);
}
.tbt-shop-rank-card__rec-badge {
  align-self: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.25;
  color: #fff;
  text-align: center;
}
.tbt-shop-rank-card__rec-badge--owner {
  background: linear-gradient(135deg, #6d4c41, #4e342e);
}
.tbt-shop-rank-card__rec-badge--manager {
  background: linear-gradient(135deg, #8d6e63, #5d4037);
}
.tbt-shop-rank-card__rec-badge--female_staff {
  background: linear-gradient(135deg, #c48b9f, #ad6b7f);
}
.tbt-shop-rank-section__cta {
  margin: 0.85rem 0 0;
  text-align: center;
}
.tbt-shop-rank-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid rgba(127, 38, 41, 0.35);
  background: linear-gradient(180deg, rgba(255, 250, 245, 0.98), rgba(246, 237, 225, 0.98));
  color: #7f2629 !important;
  font-weight: 800;
  font-size: 0.88rem;
  text-decoration: none;
  box-shadow: 0 6px 16px rgba(32, 24, 20, 0.06);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
@media (hover: hover) and (pointer: fine) {
  .tbt-shop-rank-more-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(32, 24, 20, 0.09);
  }
}

.tbt-shop-category-jump {
  margin: -0.2rem 0 1.2rem;
  display: flex;
  justify-content: center;
}

.tbt-shop-category-jump__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-width: min(88vw, 420px);
  padding: 0.78rem 1.08rem;
  border-radius: 999px;
  border: 2px solid #7f2629;
  background: #fffdf8 !important;
  color: #7f2629 !important;
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.015em;
  text-shadow: none !important;
  box-shadow: 0 5px 14px rgba(32, 24, 20, 0.08);
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease, color 0.12s ease;
}

.tbt-shop-category-jump__btn::before {
  content: "";
  color: #7f2629 !important;
  font-size: 0.66em;
  line-height: 1;
}

@media (hover: hover) and (pointer: fine) {
  .tbt-shop-category-jump__btn:hover {
    transform: translateY(-1px);
    background: #fff6eb !important;
    color: #6f1f24 !important;
    box-shadow: 0 9px 22px rgba(32, 24, 20, 0.1);
  }
}

/* 手動おすすめ枠：商品ページのひとこと */
.single-product .tbt-rec-pick-note {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  border: 1px dashed rgba(127, 38, 41, 0.28);
  background: rgba(255, 252, 248, 0.92);
}
.tbt-rec-pick-note__badge {
  margin: 0 0 0.45rem;
}
.tbt-rec-pick-note__badge span {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
  color: #fff;
}
.tbt-rec-pick-note__badge--owner span {
  background: linear-gradient(135deg, #6d4c41, #4e342e);
}
.tbt-rec-pick-note__badge--manager span {
  background: linear-gradient(135deg, #8d6e63, #5d4037);
}
.tbt-rec-pick-note__badge--female_staff span {
  background: linear-gradient(135deg, #c48b9f, #ad6b7f);
}
.tbt-rec-pick-note__comment {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.65;
  color: #3d2c26;
}

/* フェア・キャンペーン用の空き枠（子テーマやプラグインで中身を差し込み可） */
.tbt-shop-fair-slot {
  margin: 0 0 1rem;
  min-height: 0;
}
.tbt-shop-fair-slot__inner:empty {
  display: none;
}

/* 商品一覧：人気順のとき 全体1〜3位バッジ */
.woocommerce ul.products li.product {
  position: relative;
}
.tbt-popularity-rank-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 3;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  background: linear-gradient(135deg, #c94b6a, #a83858);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

/* 通販トップ：テーマ商品一覧の2つ目以降を非表示（本文・#primary 内の重複保険） */
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ .tbt-shop-products,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ .tbt-shop-products,
body.tbt-shop-landing-page .site-main .tbt-shop-products ~ .tbt-shop-products,
body.tbt-shop-landing-page .content-area .tbt-shop-products ~ .tbt-shop-products {
  display: none !important;
}

/* 通販トップ：ショートコード一覧の後ろに出る Woo 標準ループ（件数/並び替え/グリッド/ページ送り）を非表示 */
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ .woocommerce-result-count,
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ form.woocommerce-ordering,
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ ul.products,
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ nav.woocommerce-pagination,
body.tbt-shop-landing-page .tbt-shop-landing-body .tbt-shop-products ~ .tbt-shop-pagination,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ .woocommerce-result-count,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ form.woocommerce-ordering,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ ul.products,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ nav.woocommerce-pagination,
body.tbt-shop-landing-page #primary .tbt-shop-products ~ .tbt-shop-pagination {
  display: none !important;
}

/* 通販トップ：旧「注文」タブは非表示（受取方法パネルへ統合） */
.tbt-shop-top-tabs__tab[data-tbt-shop-top-tabs-target="order"],
.tbt-shop-top-tabs__panel[data-tbt-shop-top-tabs-panel="order"] {
  display: none !important;
}

/* 通販トップ：受取方法パネル（現代的カードUI） */
.tbt-shop-method-panel {
  border: 1px solid rgba(127, 38, 41, 0.24);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 250, 245, 0.99), rgba(244, 234, 220, 0.96));
  padding: 16px 16px 14px;
  margin-bottom: 1rem;
  box-shadow: 0 10px 24px rgba(32, 24, 20, 0.08);
}
.tbt-shop-method-panel__eyebrow {
  margin: 0 0 10px;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: var(--tbt-enzhi);
}
.tbt-shop-method-panel .dps-content-selector {
  margin: 0;
}
.tbt-shop-method-panel .dps-selector-container {
  overflow: visible;
  border: 1px solid rgba(127, 38, 41, 0.18);
  background: linear-gradient(180deg, rgba(255, 252, 248, 0.97), rgba(246, 239, 228, 0.94));
  border-radius: 12px;
  padding: 14px;
}
.tbt-shop-method-panel .dps-selector-title {
  margin: 0 0 10px;
  font-family: var(--tbt-font-sans, 'Noto Sans JP', sans-serif);
  font-size: 0.96rem;
  font-weight: 800;
  color: #111;
}
.tbt-shop-method-panel .dps-selector-buttons {
  overflow: visible;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.tbt-shop-method-panel .dps-selector-btn {
  position: relative;
  overflow: visible;
  border: 1px solid rgba(148, 132, 106, 0.5);
  border-radius: 999px;
  background: linear-gradient(180deg, #fffefb, #f7efe3);
  padding: 10px 12px 10px 10px;
  font-weight: 800;
  color: #111 !important;
  letter-spacing: 0.03em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}
/* 店頭／配送：単色シルエット（影絵風・絵文字なし） */
.tbt-shop-method-panel .dps-selector-btn.dps-btn-pickup::before,
.tbt-shop-method-panel .dps-selector-btn.dps-btn-delivery::before {
  content: '';
  width: 1.3rem;
  height: 1.3rem;
  flex-shrink: 0;
  background-color: #221c19;
  opacity: 0.88;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.tbt-shop-method-panel .dps-selector-btn.dps-btn-pickup::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 21V9.5L12 4l9 5.5V21h-5.5v-6h-5v6H3zm9-11h3v6h-3v-6z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 21V9.5L12 4l9 5.5V21h-5.5v-6h-5v6H3zm9-11h3v6h-3v-6z'/%3E%3C/svg%3E");
}
.tbt-shop-method-panel .dps-selector-btn.dps-btn-delivery::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 8h-3V4H3v13h2.18c.42 1.16 1.53 2 2.82 2s2.4-.84 2.82-2H15.18c.42 1.16 1.53 2 2.82 2s2.4-.84 2.82-2H21v-5l-3-4zM6 18c-.83 0-1.5-.67-1.5-1.5S5.17 15 6 15s1.5.67 1.5 1.5S6.83 18 6 18zm12 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5S18.83 18 18 18zm-6-9h4l2 2.5V11h-6V9z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 8h-3V4H3v13h2.18c.42 1.16 1.53 2 2.82 2s2.4-.84 2.82-2H15.18c.42 1.16 1.53 2 2.82 2s2.4-.84 2.82-2H21v-5l-3-4zM6 18c-.83 0-1.5-.67-1.5-1.5S5.17 15 6 15s1.5.67 1.5 1.5S6.83 18 6 18zm12 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5S18.83 18 18 18zm-6-9h4l2 2.5V11h-6V9z'/%3E%3C/svg%3E");
}
.tbt-shop-method-panel .dps-selector-btn:hover {
  border-color: rgba(127, 38, 41, 0.48);
  box-shadow: 0 6px 14px rgba(127, 38, 41, 0.12);
}
.tbt-shop-method-panel .dps-selector-btn:active {
  transform: translateY(1px);
}
.tbt-shop-method-panel .dps-selector-btn {
  cursor: pointer;
}
.tbt-shop-method-panel .dps-selector-btn.active {
  border-color: var(--tbt-enzhi);
  box-shadow: inset 0 0 0 1px rgba(127, 38, 41, 0.14);
  background: linear-gradient(180deg, #fff5ef, #f7e9da);
  color: #111 !important;
}
.tbt-shop-method-panel .dps-selector-btn.dps-inactive,
.tbt-shop-method-panel .dps-selector-btn.dps-unselected {
  opacity: 1 !important;
  filter: none !important;
  color: #111 !important;
}
.tbt-shop-method-panel [data-dps-method].dps-inactive,
.tbt-shop-method-panel [data-method].dps-inactive,
.tbt-shop-method-panel [data-dps-method].dps-unselected,
.tbt-shop-method-panel [data-method].dps-unselected {
  opacity: 1 !important;
  filter: none !important;
}
.tbt-shop-method-panel .dps-selector-btn.dps-active {
  outline: none !important;
  outline-offset: 0 !important;
}
/* 通販トップ：選択中バッジ（臙脂地＋白文字・はみ出し可） */
.tbt-shop-method-panel .dps-selector-btn.active::after,
.tbt-shop-method-panel .dps-selector-btn.dps-active::after,
.tbt-shop-method-panel [data-method].dps-active.dps-selector-btn::after,
.tbt-shop-method-panel [data-dps-method].dps-active.dps-selector-btn::after {
  content: '✓ 選択中' !important;
  display: block !important;
  position: absolute;
  top: -11px;
  right: -2px;
  z-index: 4;
  background: #7f2629 !important;
  color: #fff !important;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(42, 22, 16, 0.2);
  margin: 0 !important;
}
.tbt-shop-method-panel [data-method].dps-active:not(.dps-selector-btn),
.tbt-shop-method-panel [data-dps-method].dps-active:not(.dps-selector-btn) {
  outline: none !important;
  outline-offset: 0 !important;
}
.tbt-shop-method-panel [data-method].dps-active:not(.dps-selector-btn)::after,
.tbt-shop-method-panel [data-dps-method].dps-active:not(.dps-selector-btn)::after {
  display: none !important;
  content: none !important;
}

/*
 * DPS の updateUI が [data-method] 一致の「すべて」に dps-active を付与するため、
 * .dps-content-selector 親ブロック・最短日ステータス行にも「✓ 選択中」::after が乗る。
 * バッジは .dps-selector-btn（およびテーマ側の Gutenberg 用リンク）にのみ付ける。
 */
.dps-content-selector.dps-active::after {
  display: none !important;
  content: none !important;
}
.dps-content-selector.dps-active {
  outline: none !important;
}
.tbt-shop-method-status__row.dps-active::after {
  display: none !important;
  content: none !important;
}
.tbt-shop-method-status__row.dps-active {
  outline: none !important;
  filter: none !important;
  opacity: 1 !important;
}

.tbt-shop-method-status {
  margin-top: 10px;
  display: grid;
  gap: 8px;
}
.tbt-shop-method-status__row {
  margin: 0;
  display: none;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 252, 248, 0.94);
  border: 1px solid rgba(127, 38, 41, 0.18);
  pointer-events: none;
}
.tbt-shop-method-status__row.is-active {
  display: flex;
}
.tbt-shop-method-status__badge {
  font-size: 0.74rem;
  font-weight: 800;
  color: #fff;
  border-radius: 999px;
  padding: 4px 10px;
  min-width: 2.6rem;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  background: var(--tbt-kachiiro);
}
.tbt-shop-method-status__row[data-method="pickup"] .tbt-shop-method-status__badge {
  background: #a36722;
}
.tbt-shop-method-status__row[data-method="delivery"] .tbt-shop-method-status__badge {
  background: #2f4f9f;
}
.tbt-shop-method-status__text {
  color: #111;
  font-weight: 700;
}
@media (max-width: 781px) {
  .tbt-shop-method-panel {
    padding: 12px;
  }
  .tbt-shop-method-panel .dps-selector-buttons {
    grid-template-columns: 1fr;
  }
}

/* 通販一覧では「お買い物カゴに追加」を非表示 */
body.tbt-context-shop ul.products li.product .button,
body.tbt-context-shop .wc-block-grid__product-add-to-cart,
body.tbt-context-shop .add_to_cart_button {
  display: none !important;
}
body.tbt-context-shop .woocommerce-ordering select,
body.tbt-context-shop .woocommerce .woocommerce-ordering .orderby {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(127, 38, 41, 0.28);
  border-radius: 999px;
  background: linear-gradient(180deg, #fff, #f7f2ea);
  color: var(--tbt-shouzumi);
  font-weight: 600;
  padding: 0.45rem 2rem 0.45rem 0.8rem;
  box-shadow: 0 2px 6px rgba(30, 22, 18, 0.08);
}
body.tbt-context-shop .woocommerce .woocommerce-ordering .orderby option {
  color: #2f211a;
}

/* ═══════════════════════════════════════════════════════════════
   メインラッパー：ページ全体 100%。セクション幅はブロック align で制御
══════════════════════════════════════════════════════════════ */
.site-inner {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 var(--tbt-page-gutter, 1.5rem);  /* 変数化 → alignfull の計算と統一 */
  box-sizing: border-box;
}

@media (max-width: 781px) {
  .site-inner {
    padding: 0 var(--tbt-page-gutter, 1rem);
    flex-direction: column;
  }
}

/* ─── コンテンツエリア：flex アイテムを全幅化（左寄り問題の根本修正） ─── */
/* サイドバーなし時も #primary が .site-inner の全幅を占めるよう flex-grow を設定 */
#primary,
#primary.content-area {
  flex: 1 1 100%;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

/* ─── コンテンツ幅・配置（カスタマイザー連動） ───────────────────────────
   --tbt-content-max-width  : 通常幅 1080px / 幅広 1400px / 全幅 none
   --tbt-content-wide-max   : alignwide ブロックの上限（常に 1400px）
   --tbt-page-gutter        : site-inner の padding と同値
   ─────────────────────────────────────────────────────────────────────── */

/* フロントページ本文ラッパー：常に全幅コンテナとして機能 */
.tbt-front-content {
  width: 100%;
  box-sizing: border-box;
}

/* 通常ブロック：--tbt-content-max-width で最大幅を制限し中央寄せ
   デフォルト（none）では制限なし → カスタマイザーで 1080px 等を設定 */
.tbt-front-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
  max-width: var(--tbt-content-max-width, none);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 幅広ブロック：--tbt-content-wide-max（1400px）まで拡張し中央寄せ */
.tbt-front-content > .alignwide,
.tbt-front-content .wp-block-group.alignwide {
  max-width: var(--tbt-content-wide-max, 1400px);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 全幅ブロック：site-inner の gutter を打ち消してビューポート端まで広げる */
.tbt-front-content > .alignfull,
.tbt-front-content .wp-block-group.alignfull,
.tbt-front-content .wp-block-cover.alignfull,
.tbt-front-content .wp-block-image.alignfull {
  max-width: none;
  width: calc(100% + var(--tbt-page-gutter, 1.5rem) * 2);
  margin-left: calc(-1 * var(--tbt-page-gutter, 1.5rem));
  margin-right: calc(-1 * var(--tbt-page-gutter, 1.5rem));
  box-sizing: border-box;
}

/* 左寄せ・右寄せブロック */
.tbt-front-content > .alignleft,
.tbt-front-content .alignleft {
  float: left;
  margin-right: 2rem;
  margin-bottom: 1rem;
  max-width: 50%;
}
.tbt-front-content > .alignright,
.tbt-front-content .alignright {
  float: right;
  margin-left: 2rem;
  margin-bottom: 1rem;
  max-width: 50%;
}
.tbt-front-content > .aligncenter,
.tbt-front-content .aligncenter {
  margin-left: auto;
  margin-right: auto;
  display: block;
}

/* モバイル：最大幅制限を解除して常に全幅 */
@media (max-width: 781px) {
  .tbt-front-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
    max-width: 100%;
  }
  .tbt-front-content > .alignwide,
  .tbt-front-content .wp-block-group.alignwide {
    max-width: 100%;
  }
  .tbt-front-content > .alignleft,
  .tbt-front-content .alignleft,
  .tbt-front-content > .alignright,
  .tbt-front-content .alignright {
    float: none;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ─── 固定ページ・投稿の .entry-content：エディタ（theme.json）の幅に合わせる ───
   カスタマイザー「コンテンツ幅：全幅」では --tbt-content-max-width が none になり
   最大幅が消えるが、エディタは常に contentSize（1080px）で組むため実サイトだけ暴れる。
   そのためブロック用の上限は --wp--style--global--content-size を優先し、
   未設定時は 1080px（theme.json の contentSize と一致）をフォールバックする。
   style.css の 75rem / alignfull より layout.css が後ろで上書き（staff-only は除外） */
body:not(.page-staff-only) .site-main .entry-content {
  width: 100%;
  box-sizing: border-box;
}

body:not(.page-staff-only) .site-main .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
  max-width: min(100%, var(--wp--style--global--content-size, 1080px));
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 幅広：エディタの wideSize（カスタマイザー連動時は --wp--style--global--wide-size） */
body:not(.page-staff-only) .site-main .entry-content .alignwide {
  max-width: min(100%, var(--wp--style--global--wide-size, var(--tbt-content-wide-max, 1400px)));
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/*
 * グループ「コンテンツ幅」内の幅広ブロック：コアが 50vw ベースのマージンで中央寄せするが、
 * .site-inner のパディングやスクロールバーと噛み合わず、メディアとテキストだけ左寄り・右に余白が残ることがある。
 * 本文内ではシンプルな auto マージン + 同じ max-width に統一する。
 */
body:not(.page-staff-only) .site-main .entry-content .is-layout-constrained .alignwide {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: min(100%, var(--wp--style--global--wide-size, var(--tbt-content-wide-max, 1400px))) !important;
  width: min(100%, var(--wp--style--global--wide-size, var(--tbt-content-wide-max, 1400px))) !important;
  box-sizing: border-box;
}

/* メディアとテキスト（alignfull 以外）：子孫でも左右中央を明示 */
body:not(.page-staff-only) .site-main .entry-content .wp-block-media-text:not(.alignfull) {
  margin-left: auto;
  margin-right: auto;
}

/* 全幅：ビューポート基準のネガティブマージンではなく site-inner gutter と整合 */
body:not(.page-staff-only) .site-main .entry-content .alignfull {
  max-width: none;
  width: calc(100% + var(--tbt-page-gutter, 1.5rem) * 2);
  margin-left: calc(-1 * var(--tbt-page-gutter, 1.5rem));
  margin-right: calc(-1 * var(--tbt-page-gutter, 1.5rem));
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

body:not(.page-staff-only) .site-main .entry-content > .alignleft,
body:not(.page-staff-only) .site-main .entry-content .alignleft {
  float: left;
  margin-right: 2rem;
  margin-bottom: 1rem;
  max-width: 50%;
}
body:not(.page-staff-only) .site-main .entry-content > .alignright,
body:not(.page-staff-only) .site-main .entry-content .alignright {
  float: right;
  margin-left: 2rem;
  margin-bottom: 1rem;
  max-width: 50%;
}
body:not(.page-staff-only) .site-main .entry-content > .aligncenter,
body:not(.page-staff-only) .site-main .entry-content .aligncenter {
  margin-left: auto;
  margin-right: auto;
  display: block;
}

@media (max-width: 781px) {
  body:not(.page-staff-only) .site-main .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright) {
    max-width: 100%;
  }
  body:not(.page-staff-only) .site-main .entry-content .alignwide {
    max-width: 100%;
  }
  body:not(.page-staff-only) .site-main .entry-content > .alignleft,
  body:not(.page-staff-only) .site-main .entry-content .alignleft,
  body:not(.page-staff-only) .site-main .entry-content > .alignright,
  body:not(.page-staff-only) .site-main .entry-content .alignright {
    float: none;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* サイドバー左・メイン右：横幅は抑えめ、縦の余白で品よく */
.has-sidebar .sidebar-wrap {
  width: 278px;
  flex-shrink: 0;
  align-self: flex-start;
  order: -1;
}
@media (min-width: 782px) {
  /* 画面左端からカラム全体を約10vwぶん内側へ（上限あり）。alignfull 計算は site-inner の対称パディングのまま */
  .has-sidebar .sidebar-wrap {
    margin-left: var(--tbt-sidebar-viewport-inset, min(10vw, 4.5rem));
  }
}
.has-sidebar .site-main,
.has-sidebar #primary {
  flex: 1 1 0%;
  min-width: 0;
  order: 0;
}
.has-sidebar .sidebar-wrap--aux {
  flex: 0 0 100%;
  max-width: 278px;
  width: 100%;
  order: 2;
  margin-top: 0.6rem;
}

@media (max-width: 781px) {
  .has-sidebar .sidebar-wrap {
    width: 100%;
    order: -1;
  }
  .has-sidebar .sidebar-wrap--aux {
    width: 100%;
    order: 2;
    max-width: none;
    margin-top: 0.45rem;
  }
}

/* ═══════════════════════════════════════════════════════════════
   左サイドメニュー：和風・お品書きデザイン（Z-index・景観維持）
══════════════════════════════════════════════════════════════ */
@media (min-width: 782px) {
  .sidebar-wrap:not(.sidebar-wrap--aux) .widget_tbt_delivery_bar,
  .sidebar-wrap:not(.sidebar-wrap--aux) .widget_tbt_business_calendar {
    display: none !important;
  }
  .sidebar-wrap .sidebar-wrap__aux-inline .widget_tbt_business_calendar--aux {
    display: block !important;
  }
  body.tbt-context-shop .sidebar-wrap:not(.sidebar-wrap--aux) {
    max-height: none !important;
    overflow: visible !important;
    /* margin-left は .has-sidebar .sidebar-wrap のインデントに含める（二重に足さない） */
    margin-right: 0.55rem;
  }
  .sidebar-wrap {
    position: var(--tbt-sidebar-position, sticky);
    top: var(--tbt-sidebar-top, 100px);
    z-index: 1;
    max-height: calc(100vh - 92px);
    overflow-y: auto;
    margin-right: 0.5rem;
    border: none;
    border-radius: 10px;
    padding: 0.62rem 0.58rem 0.66rem;
    box-shadow:
      0 2px 8px rgba(32, 24, 20, 0.06),
      0 12px 28px rgba(32, 24, 20, 0.05);
    background: transparent;
  }
  .sidebar-wrap.sidebar-wrap--aux {
    position: static !important;
    top: auto !important;
    z-index: 0;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 0.55rem;
    margin-right: 0;
    padding: 0;
    border: none;
    box-shadow: none;
    background: transparent;
  }
  .sidebar-wrap.sidebar-wrap--aux::before {
    display: none;
  }
  .sidebar-wrap--aux .widget {
    margin-bottom: 0.9rem;
  }
  .sidebar-wrap--aux .widget:last-child {
    margin-bottom: 0;
  }
  .sidebar-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background-color: var(--tbt-washi-cream);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
    opacity: var(--tbt-sidebar-bg-opacity, 1);
  }
  .sidebar-wrap .widget {
    margin-bottom: 0.52rem;
  }
  .sidebar-wrap .widget:last-child {
    margin-bottom: 0;
  }
  .sidebar-wrap .widget-title {
    font-family: var(--tbt-font-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--tbt-shouzumi);
    margin: 0 0 0.34rem;
    padding: 0.3em 0 0.3em 0.62em;
    line-height: 1.3;
    border-left: 3px solid var(--tbt-enzhi);
    letter-spacing: 0.07em;
  }
  .sidebar-wrap .menu,
  .sidebar-wrap .widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .sidebar-wrap .menu-item,
  .sidebar-wrap .widget li {
    margin-bottom: 0;
    line-height: 1.16;
  }
  .sidebar-wrap .menu-item a,
  .sidebar-wrap .widget a {
    display: block;
    padding: 0.12em 0.3em 0.12em 0.4em;
    line-height: 1.16;
    color: var(--tbt-shouzumi);
    text-decoration: none;
    letter-spacing: 0.035em;
    border-radius: 8px;
  }
  /* ナビに span 等を入れたときの行間膨張を抑える */
  .sidebar-wrap .menu-item a .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .sidebar-wrap .menu-item a:hover,
  .sidebar-wrap .widget a:hover {
    color: var(--tbt-enzhi);
  }
}

/* モバイル：和紙風＋拡張メニュー（タップで開閉） */
@media (max-width: 781px) {
  #masthead .site-header-inner {
    min-height: 56px;
    padding-top: 0.72rem;
    padding-bottom: 0.72rem;
  }

  #masthead .tbt-official-nav-toggle {
    min-width: 2.7rem;
    height: 2.7rem;
  }

  #masthead .tbt-official-nav-toggle__bar {
    width: 1.14rem;
  }

  body.tbt-context-shop .site-header-inner {
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    padding-top: 0.72rem;
    padding-bottom: 0.72rem;
    align-items: center;
    transition: padding 0.22s ease, gap 0.22s ease;
  }

  body.tbt-context-shop .site-branding {
    flex: 1;
    min-width: 0;
  }

  body.tbt-context-shop .site-branding .site-logo img {
    max-width: var(--tbt-logo-width-mobile, 140px);
  }

  body.tbt-context-shop #masthead.is-scrolled .site-header-inner {
    padding-top: 0.28rem;
    padding-bottom: 0.28rem;
    gap: 0.35rem;
  }

  body.tbt-context-shop #masthead.is-scrolled .site-branding .site-logo img {
    max-width: var(--tbt-logo-width-mobile-scrolled, 110px);
  }

  body.tbt-context-shop .tbt-shop-header-quick {
    display: inline-flex;
    order: 3;
    margin-left: 0.25rem;
    gap: 0.28rem;
    transition: gap 0.2s ease;
  }

  body.tbt-context-shop .tbt-shop-header-quick__link {
    width: 2.14rem;
    height: 2.14rem;
    font-size: 1.02rem;
    transition: width 0.2s ease, height 0.2s ease, font-size 0.2s ease;
  }

  body.tbt-context-shop #masthead.is-scrolled .tbt-shop-header-quick {
    gap: 0.2rem;
  }

  body.tbt-context-shop #masthead.is-scrolled .tbt-shop-header-quick__link {
    width: 1.74rem;
    height: 1.74rem;
    font-size: 0.88rem;
  }

  body.tbt-context-shop .tbt-official-nav-toggle {
    display: inline-flex;
    position: fixed;
    top: calc(var(--tbt-shop-header-bottom, 58px) + 0.35rem);
    left: max(0.55rem, env(safe-area-inset-left));
    right: auto;
    z-index: 9996;
    width: 2.7rem;
    min-width: 2.7rem;
    height: 2.7rem;
    padding: 0;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: linear-gradient(90deg, rgba(127, 38, 41, 0.97), rgba(154, 52, 56, 0.96));
    color: #fff;
    box-shadow: 0 4px 14px rgba(24, 18, 16, 0.22);
    transition: width 0.22s ease, min-width 0.22s ease, height 0.22s ease, transform 0.22s ease;
  }

  body.tbt-context-shop .tbt-official-nav-toggle__bar {
    display: block;
    width: 1.14rem;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .tbt-official-nav-toggle__bar:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .tbt-official-nav-toggle__bar:nth-child(2) {
    opacity: 0;
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .tbt-official-nav-toggle__bar:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  body.tbt-context-shop #masthead.is-scrolled .tbt-official-nav-toggle {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
  }

  /* 通販モバイルのヘッダー追従を強制（ドロワー開閉時も維持） */
  body.tbt-context-shop #masthead,
  body.tbt-context-shop .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 120 !important;
  }

  body.tbt-context-shop .site-inner {
    padding-top: calc(0.88rem + 58px) !important;
  }

  body.tbt-context-shop #masthead:not(.tbt-official-nav-open) .main-navigation {
    display: none !important;
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .main-navigation {
    display: block !important;
    position: fixed;
    top: calc(max(0.5rem, env(safe-area-inset-top)) + 5.55rem);
    left: max(0.55rem, env(safe-area-inset-left));
    right: max(0.55rem, env(safe-area-inset-right));
    z-index: 9995;
    width: auto;
    max-height: min(72vh, 30rem);
    overflow: auto;
    padding: 0.6rem 0.5rem 0.5rem;
    border-radius: 12px;
    border: 1px solid rgba(184, 139, 70, 0.26);
    background: rgba(255, 252, 248, 0.97);
    box-shadow: 0 10px 24px rgba(24, 18, 16, 0.2);
    margin-top: 0;
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .main-navigation .nav-menu {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0.15rem;
    align-items: stretch;
  }

  body.tbt-context-shop #masthead.tbt-official-nav-open .main-navigation .nav-menu a {
    display: block;
    padding: 0.55rem 0.35rem;
    border-radius: 8px;
  }

  /* モバイル通販：メニュー内のアカウント/カート（icon-only）は出さず、ヘッダー右側の2アイコンを使う */
  body.tbt-context-shop #masthead.tbt-official-nav-open .main-navigation .nav-menu .tbt-menu-item-icon-only {
    display: none !important;
  }

  .sidebar-wrap:not(.sidebar-wrap--aux) .widget_tbt_delivery_bar,
  .sidebar-wrap:not(.sidebar-wrap--aux) .widget_tbt_business_calendar {
    display: none !important;
  }
  .sidebar-wrap {
    background-color: var(--tbt-washi-cream);
    border: double 2px var(--tbt-gold);
    border-radius: 6px;
    padding: 1rem;
    margin-bottom: 1rem;
  }
  .sidebar-wrap .widget {
    border: 1px solid rgba(148, 132, 106, 0.25);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.6);
  }
  .sidebar-wrap .widget-title {
    border-left: 3px solid var(--tbt-enzhi);
    padding: 12px 2.5rem 12px 0.75em;
    margin: 0;
    font-size: 1rem;
    cursor: pointer;
    user-select: none;
    position: relative;
  }
  .sidebar-wrap .widget-title::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 50%;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid var(--tbt-namakabe);
    transform: translateY(-50%);
    transition: transform 0.2s ease;
  }
  .sidebar-wrap .widget.is-expanded .widget-title::after {
    transform: translateY(-50%) rotate(180deg);
  }
  .sidebar-wrap .widget .widget-title + * {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }
  .sidebar-wrap .widget.is-expanded .widget-title + * {
    max-height: 1200px;
  }
  .sidebar-wrap .menu {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(148, 132, 106, 0.2);
  }
  .sidebar-wrap .menu-item {
    border-bottom: 1px solid rgba(148, 132, 106, 0.15);
    margin-bottom: 0;
  }
  .sidebar-wrap .menu-item:last-child {
    border-bottom: none;
  }
  .sidebar-wrap .menu-item a {
    display: block;
    padding: 9px 0.72rem;
    line-height: 1.32;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    color: var(--tbt-shouzumi);
  }
  .sidebar-wrap.sidebar-wrap--aux {
    border: none;
    padding: 0;
    margin-top: 0.4rem;
    background: transparent;
  }
  .sidebar-wrap--aux .widget {
    border: none;
    background: transparent;
  }
  .sidebar-wrap--aux .widget .widget-title + * {
    max-height: none;
    overflow: visible;
  }
  .sidebar-wrap--aux .widget-title::after {
    display: none;
  }
}

body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu-item {
  margin-bottom: 0;
  line-height: 0.7;
}

body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu-item + .menu-item {
  margin-top: 0;
}

body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu-item a {
  padding: 0 0.56rem 1px;
  line-height: 0.7;
  letter-spacing: 0.01em;
}

/* PC ではモバイル専用 UI を確実に隠す（ショップ以外のページも含む） */
@media (min-width: 782px) {
  body .tbt-shop-top-toc-toggle,
  body .tbt-shop-top-toc-close,
  body .tbt-shop-top-toc-backdrop,
  body #tbt-mobile-footer-nav,
  body #tbt-mobile-jump-dock,
  body .tbt-inline-back-wrap,
  body .tcf-sp-back-wrap,
  body .tcf-pub-calendar-footer-link--ghost,
  body .tcf-store-info__footer-link--ghost {
    display: none !important;
  }

  /* 何らかの条件でモバイル用クラスが残っても PC のサイドバー表示を維持 */
  body.tbt-context-shop.has-sidebar .sidebar-wrap {
    position: var(--tbt-sidebar-position, sticky) !important;
    left: auto !important;
    right: auto !important;
    top: var(--tbt-sidebar-top, 100px) !important;
    bottom: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    width: 278px !important;
    max-width: 278px !important;
    max-height: calc(100vh - 116px) !important;
    overflow-y: auto !important;
    margin-top: 0 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   フッター
══════════════════════════════════════════════════════════════ */
.site-footer {
  margin-top: 2rem;
  padding: 1.35rem 1.25rem;
  background: var(--tbt-kachiiro);
  color: var(--tbt-washi-white);
}

/* TCF の #colophon padding-top（カスタマイザー・旧デフォルト60px）より優先し、上の空きを抑える */
#colophon.site-footer {
  padding-top: min(var(--tbt-footer-pt, 28px), 40px) !important;
}

.site-footer a {
  color: rgba(250, 249, 247, 0.9);
}

.site-footer a:hover {
  color: var(--tbt-washi-white);
}

.footer-inner {
  max-width: 1400px;
  margin: 0 auto;
  text-align: center;
  font-size: 0.9rem;
}

.footer-nav .footer-menu {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 1.5rem;
}

.footer-nav .footer-menu a {
  color: rgba(250, 249, 247, 0.9);
}

/* フッター直下の横並びナビは非表示（必要なら子テーマで .footer-nav{display:flex} 等で上書き） */
.footer-nav {
  display: none !important;
}

.footer-copy {
  margin: 0;
  opacity: 0.9;
}

/* フッター3列ウィジェット — 帯の色を #colophon と一体に（重ね塗りをやめる） */
.footer-widgets {
  padding: 1.35rem 1.25rem 0.85rem;
  background: transparent;
  border-top: 1px solid rgba(250, 249, 247, 0.08);
}
.footer-widgets-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.35rem;
}
.footer-widget-col {
  min-width: 0;
}
.footer-widget-col .widget-title {
  color: var(--tbt-washi-white);
  font-size: 0.95rem;
  margin-bottom: 0.55rem;
}
.footer-widget-col .widget {
  color: rgba(250, 249, 247, 0.85);
  font-size: 0.9rem;
}
.footer-widget-col a {
  color: rgba(250, 249, 247, 0.9);
}
.footer-widget-col a:hover {
  color: var(--tbt-washi-white);
}
@media (max-width: 781px) {
  .footer-widgets-inner {
    grid-template-columns: 1fr;
  }
}

/* 同一ページスクロール用アンカー（先頭・スクリーンリーダー用に視覚非表示） */
.tbt-scroll-anchor {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ページ上部へ戻る（固定・スマホナビより下の z-index） */
.tbt-scroll-to-top {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 9970;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.55rem 0.85rem;
  font-family: var(--tbt-font-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--tbt-washi-white);
  background: var(--tbt-enzhi);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(24, 18, 16, 0.2);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease, background 0.2s;
}

.tbt-scroll-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.tbt-scroll-to-top:hover,
.tbt-scroll-to-top:focus-visible {
  background: var(--tbt-kachiiro);
  color: var(--tbt-washi-white);
  outline: 2px solid var(--tbt-gold);
  outline-offset: 2px;
}

.tbt-scroll-to-top__icon {
  font-size: 1rem;
  line-height: 1;
}

body.tbt-has-mobile-nav .tbt-scroll-to-top {
  bottom: max(6.2rem, calc(5.6rem + env(safe-area-inset-bottom)));
}

/* ページジャンプ導線（「ページ内へ」）を下部の横長CTAに統一 */
@media (max-width: 781px) {
  .tbt-mobile-section-jump-trigger {
    position: fixed !important;
    left: max(1.05rem, env(safe-area-inset-left)) !important;
    right: auto !important;
    bottom: max(5.8rem, calc(5.2rem + env(safe-area-inset-bottom))) !important;
    z-index: 9997 !important;
    width: 3.65rem !important;
    min-width: 3.65rem !important;
    max-width: 3.65rem !important;
    min-height: 2.55rem !important;
    height: 2.55rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    padding: 0 !important;
    border-radius: 12px !important;
    border: 1px solid rgba(127, 38, 41, 0.92) !important;
    background: linear-gradient(135deg, rgba(127, 38, 41, 0.98), rgba(154, 52, 56, 0.97)) !important;
    box-shadow: 0 5px 16px rgba(24, 18, 16, 0.25) !important;
    color: transparent !important;
    font-size: 0 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: none !important;
    margin: 0 !important;
    text-indent: -9999px;
    overflow: hidden;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(6px) !important;
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease !important;
  }

  /* ジャンプ導線は「上へスクロール」と同型の↑にしない（縦三点） */
  .tbt-mobile-section-jump-trigger::before {
    content: "";
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 7px 0 #fff, 0 14px 0 #fff;
    transform: translateY(-7px);
    text-indent: 0;
  }

  body.tbt-show-floating-shortcuts .tbt-mobile-section-jump-trigger {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }

  body.tbt-has-mobile-nav .tbt-mobile-section-jump-trigger {
    bottom: calc(4.5rem + env(safe-area-inset-bottom)) !important;
  }

  /* ジャンプドック本体（下から引き出す） */
  [data-tbt-jump-dock] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9996;
    pointer-events: none;
  }

  [data-tbt-jump-dock] [data-tbt-jump-dock-toggle],
  [data-tbt-jump-dock] .tbt-mobile-section-jump-trigger {
    pointer-events: auto;
  }

  [data-tbt-jump-dock].is-open [data-tbt-jump-dock-panel],
  [data-tbt-jump-dock].is-open [data-tbt-jump-dock-panel] *,
  [data-tbt-jump-dock].is-open [data-tbt-jump-dock-backdrop] {
    pointer-events: auto;
  }

  [data-tbt-jump-dock] [data-tbt-jump-dock-panel] {
    position: fixed;
    left: max(0.5rem, env(safe-area-inset-left));
    right: max(0.5rem, env(safe-area-inset-right));
    bottom: max(5.2rem, calc(4.8rem + env(safe-area-inset-bottom)));
    z-index: 9998;
    transform: translateY(calc(100% + 1rem));
    transition: transform 0.28s ease;
    border-radius: 14px 14px 0 0;
    border: 1px solid rgba(127, 38, 41, 0.3);
    background: linear-gradient(180deg, rgba(255, 253, 250, 0.98), rgba(246, 239, 228, 0.97));
    box-shadow: 0 -8px 24px rgba(24, 18, 16, 0.24);
    overflow: hidden;
  }

  [data-tbt-jump-dock].is-open [data-tbt-jump-dock-panel] {
    transform: translateY(0);
  }

  [data-tbt-jump-dock] [data-tbt-jump-dock-backdrop] {
    position: fixed;
    inset: 0;
    z-index: 9995;
    background: rgba(20, 14, 10, 0.22);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  [data-tbt-jump-dock].is-open [data-tbt-jump-dock-backdrop] {
    opacity: 1;
    visibility: visible;
  }
}

/* 通販トップ（モバイル）：EC風に収納UI + 高密度表示 */
@media (max-width: 781px) {
  /* トップ文面（事業紹介セクション）: 出力元差異があっても確実に半分サイズを適用 */
  body:is(.home, .front-page) .entry-content .tcf-catalog-canvas :where(p, li) {
    font-size: 0.36rem !important;
    line-height: 1.55 !important;
  }
  body:is(.home, .front-page) .entry-content .tcf-catalog-canvas :where(h2, h3, h4, .wp-block-heading) {
    font-size: 0.68rem !important;
    line-height: 1.6 !important;
  }
  /* クラス差分の保険: washi/menu-typography 側にも同値を強制 */
  body:is(.home, .front-page) .entry-content .is-style-takahashi-menu-typography :where(p, li),
  body:is(.home, .front-page) .entry-content .is-style-takahashi-washi .is-style-takahashi-menu-typography :where(p, li) {
    font-size: 0.36rem !important;
    line-height: 1.55 !important;
  }
  body:is(.home, .front-page) .entry-content .is-style-takahashi-menu-typography :where(h2, h3, h4, .wp-block-heading),
  body:is(.home, .front-page) .entry-content .is-style-takahashi-washi .is-style-takahashi-menu-typography :where(h2, h3, h4, .wp-block-heading) {
    font-size: 0.68rem !important;
    line-height: 1.6 !important;
  }

  body.tbt-shop-landing-page .tbt-shop-top-wrap {
    margin-top: 1.02rem !important;
    padding: 0 0.35rem !important;
  }

  /* 通販モバイル（サイドバーあり）：閉じているときだけヘッダー内メニューを隠す（ハンバーガーで拡張メニュー） */
  body.tbt-context-shop.has-sidebar #masthead:not(.tbt-official-nav-open) .main-navigation {
    display: none !important;
  }

  body.tbt-shop-landing-page .tbt-shop-top-actions {
    gap: 0.42rem !important;
    margin-bottom: 0.6rem !important;
  }

  body.tbt-shop-landing-page .tbt-shop-top-action-btn {
    flex: 1 1 calc(50% - 0.21rem);
    min-height: 2.35rem;
    padding: 0.52rem 0.55rem !important;
    font-size: 0.76rem !important;
    border-radius: 10px !important;
  }

  body.tbt-shop-landing-page .tbt-shop-method-panel {
    padding: 0.62rem 0.65rem 0.58rem !important;
    border-radius: 11px;
    margin-bottom: 0.56rem;
  }

  body.tbt-shop-landing-page .tbt-shop-method-panel__eyebrow {
    margin-bottom: 0.36rem;
    font-size: 0.64rem;
    text-align: center;
  }

  body.tbt-shop-landing-page .tbt-shop-method-panel .dps-selector-container {
    padding: 0.6rem 0.55rem;
  }

  body.tbt-shop-landing-page .tbt-shop-method-panel .dps-selector-title {
    font-size: 0.84rem;
    margin-bottom: 0.45rem;
    text-align: center;
  }

  body.tbt-shop-landing-page .tcf-top-section {
    margin: 1rem 0 !important;
  }

  body.tbt-shop-landing-page .tcf-section-title {
    font-size: 1.04rem !important;
    margin-bottom: 0.6rem !important;
    padding-bottom: 0.28rem !important;
  }

  body.tbt-shop-landing-page .tcf-carousel-item {
    flex-basis: min(170px, 47vw);
  }

  body.tbt-shop-landing-page .tcf-carousel-title {
    padding: 0.55rem 0.62rem 0.2rem;
    font-size: 0.8rem;
    line-height: 1.32;
  }

  body.tbt-shop-landing-page .tcf-carousel-price {
    padding: 0 0.62rem 0.58rem;
    font-size: 0.76rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rankings {
    margin: 0.16rem 0 1.28rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-section {
    margin: 0 0 1.22rem;
    padding-top: 0.56rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-section__title {
    margin-bottom: 0.56rem;
    font-size: 0.82rem;
    padding: 0.22rem 0.66rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-section__title::before {
    width: 0.4rem;
    height: 0.4rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-list--hscroll .tbt-shop-rank-list__item {
    width: min(172px, 43vw);
  }

  body.tbt-shop-landing-page .tbt-shop-rank-card--tile {
    gap: 0.4rem;
    min-height: 206px;
    padding: 0.45rem 0.45rem 0.5rem;
    border-radius: 10px;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-card--tile .tbt-shop-rank-card__media {
    max-height: none;
    border-radius: 8px;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-card__name {
    font-size: 0.68rem;
    line-height: 1.22;
    -webkit-line-clamp: 2;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-card__pop-badge,
  body.tbt-shop-landing-page .tbt-shop-rank-card__rec-badge {
    font-size: 0.5rem;
    padding: 0.08rem 0.34rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-section__cta {
    margin-top: 0.46rem;
  }

  body.tbt-shop-landing-page .tbt-shop-rank-more-btn {
    padding: 0.42rem 0.78rem;
    font-size: 0.64rem;
  }

  /* 通販トップ：お知らせ簡易表示を一段小さく */
  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__eyebrow {
    font-size: 0.78rem !important;
  }

  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__top-title {
    font-size: clamp(1.02rem, 4.6vw, 1.2rem) !important;
    line-height: 1.28 !important;
  }

  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__title {
    font-size: 0.9rem !important;
    line-height: 1.35 !important;
  }

  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__excerpt,
  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__body {
    font-size: 0.74rem !important;
    line-height: 1.45 !important;
  }

  /* 通販トップ：お知らせ簡易表示のセクション自体をコンパクト化 */
  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list {
    margin-top: 0.1rem !important;
    margin-bottom: 0.72rem !important;
  }

  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__top-head {
    margin-bottom: 0.56rem !important;
  }

  body.tbt-shop-landing-page .tcf-site-news--top.tcf-site-news--list .tcf-site-news__item {
    margin-bottom: 0.42rem !important;
    padding: 0.5rem 0.7rem 0.56rem !important;
    border-radius: 8px !important;
  }

  /* 反映優先: 通販トップ（実ページ）で見出しとお知らせ簡易表示を最終上書き */
  body.tbt-shop-landing-page .tbt-shop-rank-section__title {
    font-size: 0.96rem !important;
    line-height: 1.35 !important;
  }

  body.tbt-shop-landing-page .entry-content .tcf-site-news--top.tcf-site-news--list,
  body.tbt-shop-landing-page #primary .tcf-site-news--top.tcf-site-news--list {
    margin-top: 0.1rem !important;
    margin-bottom: 0.48rem !important;
  }

  body.tbt-shop-landing-page .entry-content .tcf-site-news--top.tcf-site-news--list .tcf-site-news__top-head,
  body.tbt-shop-landing-page #primary .tcf-site-news--top.tcf-site-news--list .tcf-site-news__top-head {
    margin-bottom: 0.38rem !important;
  }

  body.tbt-shop-landing-page .entry-content .tcf-site-news--top.tcf-site-news--list .tcf-site-news__item,
  body.tbt-shop-landing-page #primary .tcf-site-news--top.tcf-site-news--list .tcf-site-news__item {
    margin-bottom: 0.28rem !important;
    padding: 0.34rem 0.47rem 0.38rem !important;
    border-radius: 6px !important;
  }
  /* deploy-retry marker: no visual change */

  body.tbt-shop-landing-page .tbt-shop-category-jump {
    margin: -0.1rem 0 0.9rem;
  }

  body.tbt-shop-landing-page .tbt-shop-category-jump__btn {
    min-width: 100%;
    padding: 0.58rem 0.72rem;
    font-size: 0.8rem;
  }

  body.tbt-shop-landing-page .tcf-ranking-item a {
    gap: 0.58rem;
    padding: 0.56rem 0.05rem;
  }

  body.tbt-shop-landing-page .tcf-ranking-num {
    width: 1.78rem;
    height: 1.78rem;
    font-size: 0.82rem;
  }

  body.tbt-shop-landing-page .tcf-ranking-name,
  body.tbt-shop-landing-page .tcf-ranking-price {
    font-size: 0.8rem;
  }

  body.tbt-shop-landing-page .tcf-category-grid {
    gap: 0.72rem;
  }

  body.tbt-shop-landing-page .tcf-category-block {
    padding: 0.66rem 0.6rem;
    border-radius: 10px;
  }

  body.tbt-shop-landing-page .tcf-category-block-title {
    font-size: 0.92rem;
    margin-bottom: 0.58rem;
    padding-bottom: 0.28rem;
  }

  body.tbt-shop-landing-page .tcf-cat-product-item a {
    gap: 0.5rem;
    padding: 0.42rem 0.05rem;
  }

  body.tbt-shop-landing-page .tcf-cat-product-name {
    font-size: 0.76rem;
    line-height: 1.3;
  }

  /* 商品一覧は常に2列 */
  body.tbt-shop-landing-page .tbt-shop-products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  /* 目次（サイドバー）を中央モーダル化 */
  body.tbt-context-shop.has-sidebar .sidebar-wrap {
    display: block !important;
    position: fixed;
    left: max(0.55rem, env(safe-area-inset-left));
    right: max(0.55rem, env(safe-area-inset-right));
    top: calc(max(0.5rem, env(safe-area-inset-top)) + 4.05rem);
    bottom: auto;
    width: min(92vw, 26rem);
    max-width: min(92vw, 26rem);
    max-height: min(72vh, 560px);
    z-index: 9999;
    overflow: auto;
    margin: 0 auto;
    padding: 0.55rem;
    border-radius: 14px;
    border: 1px solid rgba(184, 139, 70, 0.28);
    background: rgba(247, 241, 230, 0.72) !important;
    box-shadow: 0 16px 36px rgba(24, 18, 16, 0.24);
    transform: translateY(-12px) scale(0.97);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.26s ease, opacity 0.22s ease, visibility 0.22s ease;
  }

  body.tbt-context-shop.has-sidebar .sidebar-wrap::before {
    display: none !important;
  }

  /* 通販モバイル：メニューと営業日カレンダーの上下順を入れ替え */
  body.tbt-context-shop.has-sidebar .sidebar-wrap {
    display: flex !important;
    flex-direction: column;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap > .sidebar-wrap__aux-inline {
    order: 2;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap > .widget.widget_nav_menu {
    order: 3;
  }

  /* 通販モバイル：サイドメニュー（おすすめ商品〜惣菜類）の行間を圧縮 */
  body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu {
    margin-bottom: 0.34rem;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .widget-title {
    font-size: 0.68rem;
    margin-bottom: 0.18rem;
    padding: 0.34rem 0.5rem;
    line-height: 1.25;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu {
    border-top-width: 1px;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu-item {
    margin: 0;
    border-bottom: 1px solid rgba(148, 132, 106, 0.11);
    line-height: 1.2;
  }
  body.tbt-context-shop.has-sidebar .sidebar-wrap .widget.widget_nav_menu .menu-item a {
    padding: 0.42rem 0.48rem;
    font-size: 0.73rem;
    line-height: 1.2;
    letter-spacing: 0.02em;
  }

  body.tbt-context-shop.tbt-shop-toc-open .sidebar-wrap {
    transform: translateY(0) scale(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .tbt-shop-top-toc-backdrop {
    display: none;
  }

  body.tbt-context-shop.tbt-shop-toc-open .tbt-shop-top-toc-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 9997;
    /* 通販ページがうっすら見える（global-palette の button 臙脂を上書き） */
    background: rgba(32, 24, 18, 0.22) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border: none !important;
    color: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  body.tbt-context-shop.tbt-shop-toc-open .tbt-shop-top-toc-backdrop:hover,
  body.tbt-context-shop.tbt-shop-toc-open .tbt-shop-top-toc-backdrop:focus-visible {
    background: rgba(32, 24, 18, 0.28) !important;
    border: none !important;
    color: transparent !important;
  }

  .tbt-shop-top-toc-toggle {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    z-index: auto;
    order: 4;
    margin-left: 0.28rem;
    width: 2rem;
    min-width: 2rem;
    max-width: 2rem;
    height: 2rem;
    min-height: 2rem;
    border-radius: 8px;
    border: 1px solid rgba(184, 139, 70, 0.44);
    background: rgba(141, 41, 46, 0.96);
    color: #fff;
    font-size: 0;
    font-weight: 800;
    letter-spacing: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
  }

  .tbt-shop-top-toc-toggle::before {
    content: "";
    display: block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #fff;
    box-shadow:
      6px 0 0 #fff,
      12px 0 0 #fff,
      0 6px 0 #fff,
      6px 6px 0 #fff,
      12px 6px 0 #fff,
      0 12px 0 #fff,
      6px 12px 0 #fff,
      12px 12px 0 #fff;
    transform: translate(-6px, -6px);
    font-size: 0;
    line-height: 0;
  }

  .tbt-shop-top-toc-close {
    position: sticky;
    top: 0;
    margin: -0.2rem -0.2rem 0.3rem auto;
    width: 1.9rem;
    height: 1.9rem;
    border: 1px solid rgba(184, 139, 70, 0.45);
    border-radius: 999px;
    background: rgba(127, 38, 41, 0.94);
    color: #fff;
    font-size: 1.08rem;
    line-height: 1;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
  }

  body.tbt-has-mobile-nav .tbt-shop-top-toc-toggle {
    top: auto;
  }
}

/* PCトップ：お知らせ幅を下セクションと揃える */
@media (min-width: 782px) {
  body.home .tcf-site-news--top.tcf-site-news--list {
    max-width: min(960px, 100%);
  }
}

/* サイドバー検索：タイトル行を省き1行でコンパクト（ラベルはプレースホルダー＋スクリーンリーダー） */
.sidebar-wrap .widget_search .widget-title,
.sidebar-wrap .wp-block-search .wp-block-search__label:not(.screen-reader-text) {
  display: none;
}

.sidebar-wrap .search-form,
.sidebar-wrap form.wp-block-search,
.sidebar-wrap .woocommerce-product-search {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.35rem;
  margin: 0;
}

.sidebar-wrap .search-form label {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.sidebar-wrap .woocommerce-product-search > .search-box,
.sidebar-wrap .woocommerce-product-search > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
}

.sidebar-wrap .search-form .search-field,
.sidebar-wrap .woocommerce-product-search .search-field,
.sidebar-wrap .wp-block-search__input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 0.36rem 0.5rem;
  font-size: 0.82rem;
  line-height: 1.35;
  border-radius: 8px;
  border: 1px solid rgba(148, 132, 106, 0.42);
  background: rgba(255, 255, 255, 0.94);
  color: var(--tbt-shouzumi);
}

.sidebar-wrap .search-form .search-field::placeholder,
.sidebar-wrap .woocommerce-product-search .search-field::placeholder,
.sidebar-wrap .wp-block-search__input::placeholder {
  color: rgba(63, 63, 63, 0.42);
  opacity: 1;
}

.sidebar-wrap .search-form .search-submit,
.sidebar-wrap .woocommerce-product-search button[type='submit'],
.sidebar-wrap .woocommerce-product-search input[type='submit'],
.sidebar-wrap .wp-block-search__button {
  flex: 0 0 auto;
  align-self: stretch;
  padding: 0.36rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  border-radius: 8px;
  border: 1px solid var(--tbt-enzhi);
  background: var(--tbt-enzhi);
  color: var(--tbt-washi-white);
  cursor: pointer;
}

@media (hover: hover) and (pointer: fine) {
  .sidebar-wrap .search-form .search-submit:hover,
  .sidebar-wrap .woocommerce-product-search button[type='submit']:hover,
  .sidebar-wrap .woocommerce-product-search input[type='submit']:hover,
  .sidebar-wrap .wp-block-search__button:hover {
    background: var(--tbt-kachiiro);
    border-color: var(--tbt-kachiiro);
    color: var(--tbt-washi-white);
  }
}

.sidebar-wrap .widget_search,
.sidebar-wrap .widget_product_search,
.sidebar-wrap .wp-block-search {
  margin-bottom: 0.5rem;
}

/* ショップ検索モーダル（サイド/ベントウ検索結果） */
.tbt-shop-search-modal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: none;
}
.tbt-shop-search-modal.is-open {
  display: block;
}
.tbt-shop-search-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(22, 16, 12, 0.46);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.tbt-shop-search-modal__panel {
  position: relative;
  width: min(92vw, 720px);
  max-height: min(82vh, 760px);
  margin: 6vh auto 0;
  overflow: auto;
  border-radius: 14px;
  border: 1px solid rgba(184, 139, 70, 0.35);
  background: rgba(255, 252, 247, 0.98);
  box-shadow: 0 16px 36px rgba(24, 18, 16, 0.24);
  padding: 0.9rem 0.9rem 0.7rem;
}
.tbt-shop-search-modal__close {
  display: inline-flex;
  margin-left: auto;
  margin-bottom: 0.35rem;
  padding: 0.34rem 0.62rem;
  border-radius: 999px;
  border: 1px solid rgba(127, 38, 41, 0.36);
  background: rgba(127, 38, 41, 0.92);
  color: #fff;
  font-size: 0.78rem;
  line-height: 1;
  cursor: pointer;
}
.tbt-shop-search-modal__title {
  margin: 0 0 0.62rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: #2f2418;
}
.tbt-shop-search-modal__body {
  padding-bottom: 0.2rem;
}
.tbt-shop-search-modal-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.tbt-shop-search-modal-item + .tbt-shop-search-modal-item {
  margin-top: 0.42rem;
}
.tbt-shop-search-modal-link {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: 0.52rem;
  padding: 0.42rem 0.5rem;
  border-radius: 10px;
  border: 1px solid rgba(148, 132, 106, 0.25);
  background: rgba(255, 255, 255, 0.74);
  text-decoration: none;
}
.tbt-shop-search-modal-thumb {
  width: 56px;
  height: 56px;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.06);
}
.tbt-shop-search-modal-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tbt-shop-search-modal-meta {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}
.tbt-shop-search-modal-title {
  color: #2f2418;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
}
.tbt-shop-search-modal-price {
  color: #7f2629;
  font-size: 0.8rem;
  font-weight: 700;
}
.tbt-shop-search-modal-empty {
  margin: 0.5rem 0.2rem;
  font-size: 0.84rem;
  color: #55483c;
}

/* 左サイドメニュー内の補助枠（営業日カレンダー） */
.sidebar-wrap__aux-inline {
  margin-top: 0.6rem;
  padding-top: 0.72rem;
  border-top: 1px solid rgba(148, 132, 106, 0.2);
}
.sidebar-wrap__aux-inline .sidebar-wrap__aux-inline-widget {
  margin: 0;
}
.sidebar-wrap__aux-inline .widget-title {
  display: none !important;
}
.sidebar-wrap__aux-inline .tbt-mini-calendar-legend {
  display: none !important;
}

/* サイドバー内カレンダー：縦方向の余白・セル寸法を少し拡げてバランス調整 */
@media (min-width: 782px) {
  .sidebar-wrap__aux-inline .tbt-mini-calendar-wrap {
    border-radius: 16px;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-meta {
    padding: 0.78rem 0.85rem 0.58rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-panel {
    padding: 0.82rem 0.75rem 0.72rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar {
    width: min(100%, calc(7 * 1.52rem + 6 * 0.42rem));
    font-size: 0.84rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-head {
    margin: 0 0 0.52rem;
    padding-bottom: 0.42rem;
    font-size: 0.9rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-dow {
    grid-template-columns: repeat(7, 1.52rem);
    gap: 0.42rem;
    margin-bottom: 0.4rem;
    font-size: 0.68rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-grid {
    grid-template-columns: repeat(7, 1.52rem);
    gap: 0.42rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-cell {
    width: 1.52rem;
    height: 1.52rem;
    font-size: 0.78rem;
  }
  .sidebar-wrap__aux-inline .tbt-mini-calendar-footer-meta {
    padding: 0.52rem 0.7rem 0.62rem;
  }
}

@media (max-width: 480px) {
  .tbt-scroll-to-top__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .tbt-scroll-to-top {
    padding: 0.65rem 0.75rem;
    border-radius: 50%;
    min-width: 2.75rem;
    min-height: 2.75rem;
    justify-content: center;
  }
}

/* =========================================================
   常設読みもの: ステーキガイド（プロ調理ページ風）
========================================================= */
body.tbt-page-steak-guide .entry-content {
  margin-top: 50px;
}

body.tbt-page-steak-guide .entry-content .tbt-steak-guide-hero {
  background:
    linear-gradient(135deg, rgba(31, 28, 27, 0.9), rgba(90, 38, 30, 0.88)),
    radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.14), transparent 42%);
  color: #fff6ea;
  border: 1px solid rgba(184, 139, 70, 0.42);
  border-radius: 16px;
  padding: clamp(20px, 3.4vw, 34px);
  margin: 0 0 1.2rem;
  box-shadow: 0 14px 28px rgba(25, 12, 8, 0.26);
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-hero h2 {
  color: #fff;
  margin: 0 0 0.7rem;
  letter-spacing: 0.03em;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-kicker {
  display: inline-block;
  margin: 0 0 0.55rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #ffd8a2;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-point {
  margin: 0 0 1.25rem;
  border-left: 4px solid #b88b46;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 10px;
  padding: 0.75rem 0.95rem;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-point p {
  margin: 0;
  line-height: 1.9;
}
body.tbt-page-steak-guide .entry-content > p:not(.tbt-steak-guide-kicker),
body.tbt-page-steak-guide .entry-content > .wp-block-paragraph:not(.tbt-steak-guide-kicker) {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(184, 139, 70, 0.24);
  border-radius: 10px;
  padding: 0.68rem 0.85rem;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-cta {
  margin: 0 0 1.1rem;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety {
  margin: 0 0 1.1rem;
  padding: 0.9rem 1rem 0.25rem;
  border: 1px solid rgba(142, 46, 38, 0.34);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 245, 244, 0.92), rgba(255, 255, 255, 0.86));
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety h3 {
  margin-top: 0;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety ul {
  margin-bottom: 0.7rem;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-cta .wp-block-buttons,
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-cta .wp-block-button {
  margin: 0;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-cta .wp-block-button__link {
  min-width: min(100%, 360px);
  border-radius: 999px;
  box-shadow: 0 8px 16px rgba(42, 20, 10, 0.16);
}
body.tbt-page-steak-guide .entry-content h3 {
  position: relative;
  margin-top: 1.5rem;
  padding-left: 0.95rem;
}
body.tbt-page-steak-guide .entry-content h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.34em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #8e2e26;
  box-shadow: 0 0 0 3px rgba(184, 139, 70, 0.25);
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps,
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips {
  margin: 0.55rem 0 1.05rem;
  padding: 0;
  list-style: none;
  counter-reset: tbt-steak-step;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps > li,
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips > li {
  margin: 0 0 0.72rem;
  padding: 0.72rem 0.85rem 0.72rem 3rem;
  border: 1px solid rgba(184, 139, 70, 0.34);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 250, 242, 0.9));
  box-shadow: 0 4px 12px rgba(60, 40, 27, 0.08);
  position: relative;
  line-height: 1.85;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps > li::before {
  counter-increment: tbt-steak-step;
  content: counter(tbt-steak-step);
  position: absolute;
  left: 0.95rem;
  top: 0.75rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: #8e2e26;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 0.86rem;
  font-weight: 700;
}
body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips > li::before {
  content: "●";
  position: absolute;
  left: 0.8rem;
  top: 0.8rem;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  background: rgba(184, 139, 70, 0.18);
  color: #5f3828;
  display: grid;
  place-items: center;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0;
  padding: 0;
}
@media (max-width: 781px) {
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-hero {
    padding: clamp(12px, 3vw, 20px);
    margin: 0 0 0.85rem;
    border-radius: 14px;
    box-shadow: 0 10px 22px rgba(25, 12, 8, 0.2);
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-hero h2 {
    font-size: clamp(1rem, 3.75vw, 1.18rem);
    margin: 0 0 0.42rem;
    line-height: 1.32;
    font-weight: 700;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-hero p:not(.tbt-steak-guide-kicker) {
    font-size: 0.8rem;
    line-height: 1.5;
    margin: 0;
    font-weight: 500;
    color: rgba(255, 250, 242, 0.96);
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-kicker {
    font-size: 0.62rem;
    margin: 0 0 0.36rem;
    letter-spacing: 0.14em;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-point {
    margin: 0 0 0.72rem;
    padding: 0.62rem 0.78rem;
    border-radius: 10px;
    border-left-width: 3px;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-point p {
    font-size: 0.8rem;
    line-height: 1.5;
    font-weight: 500;
    color: #2a1e16;
    -webkit-font-smoothing: antialiased;
  }
  body.tbt-page-steak-guide .entry-content > p:not(.tbt-steak-guide-kicker),
  body.tbt-page-steak-guide .entry-content > .wp-block-paragraph:not(.tbt-steak-guide-kicker) {
    padding: 0.58rem 0.75rem;
    font-size: 0.8rem;
    line-height: 1.5;
    border-radius: 10px;
    margin-bottom: 0.55rem;
  }
  /* 安全の目安〜CTA〜手順見出し：縦方向の余白を広げ窮屈さを解消 */
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety {
    margin: 0 0 1.5rem;
    padding: 0.85rem 0.88rem 0.55rem;
    border-radius: 11px;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety h3 {
    font-size: 1.05rem;
    font-weight: 800;
    margin-bottom: 0.55rem;
    color: #241810;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety ul {
    margin: 0 0 0.15rem;
    padding-left: 1.15rem;
    font-size: 0.8rem;
    line-height: 1.5;
    font-weight: 500;
    color: #2c2218;
    -webkit-font-smoothing: antialiased;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety li {
    margin-bottom: 0.45rem;
    font-weight: 500;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-safety li:last-child {
    margin-bottom: 0;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-cta {
    margin: 0.65rem 0 1.65rem;
    padding: 0.15rem 0;
  }
  body.tbt-page-steak-guide .entry-content h3 {
    margin-top: 1.35rem;
    padding-left: 0.82rem;
    font-size: 1.06rem;
    line-height: 1.42;
    font-weight: 800;
    color: #241810;
  }
  body.tbt-page-steak-guide .entry-content h3::before {
    width: 0.42rem;
    height: 0.42rem;
    top: 0.4em;
    box-shadow: 0 0 0 2px rgba(184, 139, 70, 0.24);
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps,
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips {
    margin: 0.55rem 0 0.95rem;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps > li,
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips > li {
    margin: 0 0 0.62rem;
    padding: 0.68rem 0.78rem 0.68rem 2.72rem;
    border-radius: 11px;
    line-height: 1.5;
    font-size: 0.8rem;
    font-weight: 500;
    color: #2c2218;
    -webkit-font-smoothing: antialiased;
    box-shadow: 0 3px 10px rgba(60, 40, 27, 0.07);
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps > li strong,
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips > li strong {
    font-weight: 700;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-steps > li::before {
    left: 0.82rem;
    top: 0.65rem;
    width: 1.38rem;
    height: 1.38rem;
    font-size: 0.78rem;
  }
  body.tbt-page-steak-guide .entry-content .tbt-steak-guide-tips > li::before {
    left: 0.72rem;
    top: 0.65rem;
    min-width: 1.68rem;
    height: 1.12rem;
    font-size: 0.62rem;
    padding: 0 0.32rem;
  }
}

/* =========================================================
   店舗案内: エディタとの差分を抑える局所補正
========================================================= */
@media (min-width: 782px) {
  /* PC: 見出しへの直接上乗せは弱める */
  body:is(.tbt-page-jigyounaiyou, .tbt-page-store-info) .entry-header {
    padding-top: clamp(0.2rem, 0.55vw, 0.45rem);
  }

  /* 事業内容（ユーザー配置ブロック）：ページ内ナビラッパーの上に90px確保 */
  body.tbt-page-jigyounaiyou .entry-content > .tbt-page-section-nav__wrap {
    margin-top: 0 !important;
  }

  /* 店舗案内（生成セクション）：店舗案内本体の上に150px確保 */
  body.tbt-page-store-info .entry-content .tcf-store-info {
    margin-top: 150px !important;
  }

  /* 営業カレンダー（生成セクション）：カレンダー本体の上に150px確保 */
  .entry-content .tcf-pub-calendar-wrap {
    margin-top: 150px !important;
  }

  /* お問い合わせ: ページ先頭に150px確保（コンテンツ領域自体を下げる） */
  body.tbt-page-contact #masthead ~ #primary {
    margin-top: 150px !important;
  }
  body.tbt-page-contact #primary {
    padding-top: 0 !important;
  }
  /* フォーム自体は通常位置に戻す */
  body.tbt-page-contact .entry-content .wpcf7 {
    margin-top: 0 !important;
  }
}

body.tbt-page-store-info .entry-content {
  max-width: min(1100px, 100%);
  margin-left: auto;
  margin-right: auto;
  min-width: 0;
}
body.tbt-page-store-info .entry-content > * {
  max-width: min(980px, 100%);
  margin-left: auto;
  margin-right: auto;
}
/* 店舗案内ショートコード：グリッド子の min-width:auto による右はみ出しを防ぐ */
body.tbt-page-store-info .entry-content .tcf-store-info {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.tbt-page-store-info .entry-content :where(.alignwide, .alignfull) {
  margin-left: auto;
  margin-right: auto;
}
body.tbt-page-store-info .entry-content .wp-block-columns {
  gap: clamp(14px, 2vw, 28px);
  align-items: flex-start;
}
body.tbt-page-store-info .entry-content .wp-block-column {
  min-width: 0;
}
body.tbt-page-store-info .entry-content .wp-block-media-text {
  grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
  align-items: start;
}
body.tbt-page-store-info .entry-content .wp-block-media-text__media img,
body.tbt-page-store-info .entry-content .wp-block-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
body.tbt-page-store-info .entry-content :where(p, li, a) {
  writing-mode: horizontal-tb;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* =========================================================
   お問い合わせ: 雰囲気を合わせて崩れを抑える
========================================================= */
body.tbt-page-contact .entry-content {
  max-width: min(980px, 100%);
  margin: 0 auto;
}
body.tbt-page-contact .entry-content > * {
  max-width: min(760px, 100%);
  margin-left: auto;
  margin-right: auto;
}
/* 見出しは媒体・演出クラスに依らずヘッダー中央に固定（-お問い合わせ- の見え方ズレ対策） */
body.tbt-page-contact .entry-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: center;
}

body.tbt-page-contact .entry-title,
body.tbt-page-contact .entry-header h1.entry-title {
  text-align: center !important;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 0.06rem !important;
  padding: 0 0 0.22rem;
  border-bottom: 2px solid rgba(184, 139, 70, 0.55);
  align-self: center !important;
  box-sizing: border-box;
}

body.tbt-page-contact .entry-header h1.entry-title:is(.tbt-heading-reveal-underline, .tbt-heading-reveal-frame, .tbt-heading-reveal-accent-left, .tbt-heading-reveal-fade-up) {
  align-self: center !important;
  margin-inline: auto !important;
}

/* 英字（CONTACT）を必須バッジ風にしない（.req 等の広いセレクタ誤マッチ対策） */
body.tbt-page-contact .entry-header .entry-eyebrow {
  display: block;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  color: #7f2e35 !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  line-height: 1.05;
  transform: none !important;
  vertical-align: baseline !important;
  width: 100%;
  max-width: min(100%, var(--wp--style--global--content-size, 1080px));
  text-align: center;
  box-sizing: border-box;
}

/* 行間はブロック側の has-*-line-height / インライン指定を優先（エディタと実働の差を減らす） */
body.tbt-page-contact .entry-content > p:not(:has(input, select, textarea)):not([class*="-line-height"]) {
  text-align: center;
  color: rgba(63, 50, 39, 0.92);
  line-height: 1.85;
}
/* 先頭段落への自動カード背景は撤廃（ユーザー配置の段落まで白枠が付くのを防ぐ）。
   導入文を強調したい場合はブロックに「追加 CSS クラス」で tbt-contact-lead を付与 */
body.tbt-page-contact .entry-content > p.tbt-contact-lead:not(:has(input, select, textarea)):not([class*="-line-height"]) {
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(184, 139, 70, 0.22);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  margin-bottom: 1.1rem;
}
body.tbt-page-contact .entry-content > p:first-of-type:not(:has(input, select, textarea)):not([class*="-line-height"]):not(.tbt-contact-lead) {
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-bottom: 1.1rem;
}
body.tbt-page-contact .entry-content form + p,
body.tbt-page-contact .entry-content p + form {
  margin-top: 1rem;
}
body.tbt-page-contact .entry-content form {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(148, 132, 106, 0.38);
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(50, 40, 30, 0.08);
  padding: clamp(14px, 2.5vw, 24px);
}
/*
 * お問い合わせ CF7 フォーム再設計（TBT）
 * - functions.php の wpcf7_form_class_attr で .tbt-contact-form を付与
 * - プラグイン CSS より強く当てるため .wpcf7 form.wpcf7-form 直下に限定し !important を使用
 */
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form.tbt-contact-form > p,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 0 2.25rem !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(148, 132, 106, 0.28) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.55rem !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form.tbt-contact-form > p:last-child,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:last-child {
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form.tbt-contact-form > p br,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p br {
  display: none !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:has(.wpcf7-acceptance),
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:has(> label input[type="checkbox"]),
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:has(> label input[type="radio"]) {
  display: block !important;
  text-align: center !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:first-child {
  text-align: center !important;
  align-items: center !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:first-of-type {
  text-align: center !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .wpcf7-acceptance {
  display: inline-flex !important;
  justify-content: center !important;
  width: 100%;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p:has(.wpcf7-submit) + p {
  text-align: center !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .wpcf7-list-item {
  margin-right: 1rem !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p > label:not(:has(input[type="checkbox"], input[type="radio"], input[type="file"])) {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  column-gap: 0.4rem !important;
  row-gap: 0.45rem !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: 1rem !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #3f3227 !important;
  box-sizing: border-box !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p > label:not(:has(input[type="checkbox"], input[type="radio"], input[type="file"])) .wpcf7-form-control-wrap {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
/* 必須：ラベル行の行高（1rem×1.45）にバッジの外枠を揃え、内側で文字を中央 */
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .tbt-required-badge,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form abbr.required,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form span.required,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .req,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .is-required {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  margin: 0 0 0 0.35rem !important;
  padding: 0 0.42rem !important;
  height: calc(1rem * 1.45) !important;
  min-height: calc(1rem * 1.45) !important;
  max-height: calc(1rem * 1.45) !important;
  border: 0 !important;
  border-bottom: 0 !important;
  border-radius: 4px !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  color: #fff !important;
  background: #6d2023 !important;
  background-color: #6d2023 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  -webkit-tap-highlight-color: transparent !important;
}
body.tbt-page-contact .entry-content .mw_wp_form span.required,
body.tbt-page-contact .entry-content .mw_wp_form .req,
body.tbt-page-contact .entry-content .mw_wp_form .is-required {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 0.35rem !important;
  padding: 0 0.42rem !important;
  height: calc(1rem * 1.45) !important;
  min-height: calc(1rem * 1.45) !important;
  border-radius: 4px !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: #fff !important;
  background-color: #6d2023 !important;
  box-sizing: border-box !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > *:first-child {
  margin-top: 0 !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(127, 38, 41, 0.38) !important;
  border-radius: 10px !important;
  background: #fffefb !important;
  color: #3e3229 !important;
  padding: 0.65rem 0.75rem !important;
  line-height: 1.5 !important;
  font-size: 1rem !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form textarea {
  min-height: 160px !important;
  resize: vertical !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea):focus {
  outline: none !important;
  border-color: rgba(127, 38, 41, 0.65) !important;
  box-shadow: 0 0 0 3px rgba(127, 38, 41, 0.1) !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form :is(input[type="submit"], input[type="button"].wpcf7-submit, button[type="submit"]) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0.75rem auto 0 !important;
  border: 1px solid rgba(127, 38, 41, 0.65) !important;
  border-radius: 999px !important;
  background: #7f2629 !important;
  color: #fff !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  min-height: 48px !important;
  padding: 0.7rem 1.35rem !important;
  min-width: min(100%, 280px) !important;
  cursor: pointer !important;
  transition: background-color 0.18s ease, transform 0.1s ease !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form :is(input[type="submit"], button[type="submit"]):hover {
  background: #962f33 !important;
  transform: translateY(-1px) !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form p:has(.wpcf7-submit),
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form p:has(input[type="submit"]) {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form p:has(.wpcf7-submit) + p,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form p:has(input[type="submit"]) + p,
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .wpcf7-submit + p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.tbt-page-contact .entry-content .wpcf7 .wpcf7-spinner {
  display: block !important;
  margin: 0.75rem auto 0 !important;
}
body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form .wpcf7-not-valid-tip {
  margin-top: 0.4rem !important;
  color: #7f2629 !important;
  font-weight: 600 !important;
  font-size: 0.88rem !important;
}
body.tbt-page-contact .entry-content form .mw_wp_form .horizontal-item {
  display: block !important;
  margin-top: 0.4rem !important;
}
body.tbt-page-contact .entry-content .mw_wp_form_error {
  margin-top: 0.4rem !important;
  color: #7f2629 !important;
  font-weight: 600 !important;
}
body.tbt-page-contact .entry-content .mw_wp_form_submit input[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border: 1px solid rgba(127, 38, 41, 0.65) !important;
  border-radius: 999px !important;
  background: #7f2629 !important;
  color: #fff !important;
  font-weight: 700 !important;
  min-height: 48px !important;
  padding: 0.7rem 1.35rem !important;
  min-width: min(100%, 280px) !important;
  cursor: pointer !important;
}
/* CF7 以外のフォーム（短文用） */
body.tbt-page-contact .entry-content form:not(.wpcf7-form) :where(p, .wp-block-paragraph) {
  margin: 0 0 1.25rem !important;
}
body.tbt-page-contact .entry-content form:not(.wpcf7-form) :where(p, .wp-block-paragraph):last-child {
  margin-bottom: 0 !important;
}
body.tbt-page-contact .entry-content label {
  display: inline-block;
  margin: 0 0 0.55rem;
  font-weight: 600;
  color: #3f3227;
}

/* ワイド：本文ブロックを中央にまとめ、フォーム内の左右余白を均等に（左寄りに見える問題の緩和） */
@media (min-width: 782px) {
  body.tbt-page-contact .entry-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: min(960px, 100%);
    margin-left: auto;
    margin-right: auto;
    padding-inline: clamp(0.75rem, 2.5vw, 1.75rem);
    box-sizing: border-box;
  }

  body.tbt-page-contact .entry-content > * {
    width: min(760px, 100%) !important;
    max-width: min(760px, 100%) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.tbt-page-contact .entry-content .wpcf7 {
    width: min(760px, 100%) !important;
    max-width: min(760px, 100%) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.tbt-page-contact .entry-content form.wpcf7-form,
  body.tbt-page-contact .entry-content .wpcf7 > form.wpcf7-form {
    padding: 1.9rem clamp(2rem, 5vw, 3rem) 2.15rem !important;
  }

  body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form.tbt-contact-form > p,
  body.tbt-page-contact .entry-content .wpcf7 form.wpcf7-form > p {
    padding-bottom: 2.75rem !important;
  }
}

/* お問い合わせ末尾に出る空ブロックのゴースト表示を抑制（.wp-block-spacer は空要素のため除外しないこと） */
body.tbt-page-contact .entry-content > :is(p, div, section, article):empty:not(.wp-block-spacer),
body.tbt-page-contact .entry-content > .wp-block-group:empty {
  display: none !important;
}
body.tbt-page-contact .entry-content .wp-block-separator {
  display: none !important;
}

/* =========================================================
   よくある質問・当店のこだわり: デザインクオリティ（パララックス維持）
   - .entry-content に背景色は付けず透明のまま
   - 対応マークアップ: コア「詳細」(details) / コア「Accordion」(6.9+) ほか
   - いずれもカード化（半透明で背後が透ける）
   - こだわりページのアコーディオンは body クラスを :is(.tbt-page-faq,.tbt-page-kodawari) で共有
========================================================= */
body.tbt-page-faq .entry-content {
  max-width: min(920px, 100%);
  margin-left: auto;
  margin-right: auto;
}

/* 左目次あり FAQ：本文エリアを事業内容ページに近い幅へ */
body.tbt-page-faq .entry-content:has(.tbt-page-section-nav__wrap) {
  max-width: min(1120px, 100%);
}

body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-header {
  text-align: center;
}

body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-eyebrow {
  color: var(--tbt-gold, #b88b46);
  font-weight: 600;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}

body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-title {
  display: inline-block;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  padding: 0 0 0.4rem;
  border-bottom: 2px solid rgba(184, 139, 70, 0.52);
  font-family: var(--tbt-font-serif, 'Shippori Mincho', 'Noto Serif JP', serif);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--tbt-shouzumi, #3f3f3f);
}

/* ご利用ガイド実体（[tcf_user_guide]）を直接検出してFAQと同じヘッダー位置を強制 */
main.site-main:has(.entry-content .tcf-user-guide) .entry-header {
  text-align: center !important;
}
main.site-main:has(.entry-content .tcf-user-guide) .entry-eyebrow {
  color: var(--tbt-gold, #b88b46) !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  font-size: 0.78rem !important;
  text-transform: uppercase !important;
  margin-bottom: 0.35rem !important;
}
main.site-main:has(.entry-content .tcf-user-guide) .entry-title,
main.site-main:has(.entry-content .tcf-user-guide) .entry-header h1.entry-title {
  display: inline-block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  padding: 0 0 0.4rem !important;
  border-bottom: 2px solid rgba(184, 139, 70, 0.52) !important;
  font-family: var(--tbt-font-serif, 'Shippori Mincho', 'Noto Serif JP', serif) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: var(--tbt-shouzumi, #3f3f3f) !important;
}

/* カテゴリ見出し（FAQ 本文内のセクション）— 臙脂より消炭寄りで赤みを抑える */
body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading,
body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading {
  margin-top: 2.35rem;
  margin-bottom: 0.95rem;
  text-align: center;
  color: var(--tbt-shouzumi, #3f3f3f);
  font-family: var(--tbt-font-serif, 'Shippori Mincho', 'Noto Serif JP', serif);
  font-weight: 700;
  letter-spacing: 0.07em;
  font-size: clamp(1.22rem, 2.5vw, 1.48rem);
  padding-bottom: 0.5rem;
  border-bottom: 2px solid rgba(184, 139, 70, 0.38);
}

body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading:first-child,
body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading:first-child {
  margin-top: 0;
}

/* reveal-underline は border を消すため、FAQ 既定の下線が消えて見えなくなる。テーマの臙脂系下線を復元する */
body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading.tbt-heading-reveal-underline,
body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading.tbt-heading-reveal-underline {
  border-bottom: 2px solid rgba(184, 139, 70, 0.38) !important;
  background-image: none !important;
  transition: none;
}

body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading.tbt-heading-reveal-underline.is-inview,
body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading.tbt-heading-reveal-underline.is-inview {
  border-bottom: 2px solid rgba(184, 139, 70, 0.38) !important;
  background-image: none !important;
}

/* コア「詳細」ブロック・素の details */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details {
  margin: 0 0 0.58rem;
  border: 1px solid rgba(148, 124, 98, 0.4);
  border-radius: 12px;
  border-left: 3px solid rgba(184, 139, 70, 0.88);
  background: linear-gradient(
    180deg,
    rgba(252, 248, 240, 0.58) 0%,
    rgba(245, 238, 226, 0.52) 100%
  );
  box-shadow:
    0 2px 12px rgba(45, 36, 28, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details:hover {
  border-color: rgba(148, 124, 98, 0.48);
  box-shadow:
    0 4px 18px rgba(45, 36, 28, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details:last-child {
  margin-bottom: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.86rem 1rem 0.86rem 1.05rem;
  margin: 0;
  cursor: pointer;
  font-weight: 600;
  color: #3a3028;
  line-height: 1.55;
  list-style: none;
  background: linear-gradient(
    180deg,
    rgba(252, 250, 246, 0.68) 0%,
    rgba(241, 233, 220, 0.62) 100%
  );
  border-bottom: 1px solid transparent;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary::-webkit-details-marker {
  display: none;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary::marker {
  content: "";
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary:hover {
  background: linear-gradient(
    180deg,
    rgba(253, 250, 244, 0.78) 0%,
    rgba(235, 226, 212, 0.72) 100%
  );
  box-shadow: inset 3px 0 0 rgba(184, 139, 70, 0.32);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary:focus-visible {
  outline: 2px solid rgba(184, 139, 70, 0.55);
  outline-offset: 2px;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details[open] > summary {
  border-bottom-color: rgba(184, 139, 70, 0.28);
  background: linear-gradient(
    180deg,
    rgba(250, 246, 238, 0.74) 0%,
    rgba(232, 223, 210, 0.68) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details .wp-block-details__summary-arrow {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.95rem;
  height: 1.95rem;
  border-radius: 8px;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  color: #4a3f36;
  background: rgba(255, 252, 247, 0.5);
  border: 1px solid rgba(184, 139, 70, 0.42);
  box-shadow: 0 1px 3px rgba(45, 36, 28, 0.06);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details[open] .wp-block-details__summary-arrow {
  background: rgba(184, 139, 70, 0.12);
  border-color: rgba(184, 139, 70, 0.4);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details:not(:has(.wp-block-details__summary-arrow)) > summary::after {
  content: "+";
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.95rem;
  height: 1.95rem;
  border-radius: 8px;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  color: #4a3f36;
  background: rgba(255, 252, 247, 0.5);
  border: 1px solid rgba(184, 139, 70, 0.42);
  box-shadow: 0 1px 3px rgba(45, 36, 28, 0.06);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details:not(:has(.wp-block-details__summary-arrow))[open] > summary::after {
  content: "−";
  font-size: 1rem;
  background: rgba(184, 139, 70, 0.12);
  border-color: rgba(184, 139, 70, 0.4);
}

/* 解説エリア：うっすら和紙白の読み面（パララックスは親 details の透過で維持） */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) {
  margin: 0;
  padding: 1.05rem 1.15rem 1.15rem 1.2rem;
  background: linear-gradient(
    175deg,
    rgba(255, 253, 250, 0.94) 0%,
    rgba(252, 249, 244, 0.92) 35%,
    rgba(248, 244, 237, 0.9) 100%
  );
  color: #3a342e;
  line-height: 1.88;
  border-top: 1px solid rgba(184, 139, 70, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 3px 0 0 rgba(184, 139, 70, 0.22);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(p, ul, ol),
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(p, ul, ol) {
  margin-top: 0;
  margin-bottom: 0.65rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(p, ul, ol):last-child,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(p, ul, ol):last-child {
  margin-bottom: 0;
}

/* 見出し・区切りが入ったときの階調（解説内のみ） */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(h2, h3, h4, h5, h6),
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(h2, h3, h4, h5, h6) {
  color: var(--tbt-shouzumi, #3f3f3f);
  font-family: var(--tbt-font-serif, 'Shippori Mincho', 'Noto Serif JP', serif);
  font-weight: 700;
  margin: 1rem 0 0.5rem;
  letter-spacing: 0.03em;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(h2, h3, h4, h5, h6):first-child,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(h2, h3, h4, h5, h6):first-child {
  margin-top: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(ul, ol),
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(ul, ol) {
  padding-left: 1.35rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) :where(li)::marker,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel :where(li)::marker {
  color: rgba(184, 139, 70, 0.72);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) a,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel a {
  color: #5a4a3d;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary) a:hover,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel a:hover {
  color: var(--tbt-gold, #b88b46);
}

/* ----- WordPress コア Accordion（core/accordion・interactivity API） ----- */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion {
  display: flex;
  flex-direction: column;
  gap: 0.58rem;
}

/* 本文上部の「前ページに戻る」導線（対象ページ共通） */
.tbt-inline-back-wrap {
  margin: 0.15rem 0 0.8rem;
}

.tbt-inline-back-guide-spacer,
.tbt-inline-back-wrap--guide-clone {
  display: none;
}

.tbt-inline-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  color: #7f2629;
  border: 1px solid rgba(148, 124, 98, 0.36);
  border-radius: 999px;
  padding: 0.34rem 0.72rem;
  background: rgba(255, 252, 246, 0.76);
  text-decoration: none;
  transition: border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}

/* PC/SP 可変スペーサー（[tbt_responsive_spacer pc="150" sp="90"]） */
.tbt-responsive-spacer {
  display: block;
  width: 100%;
  height: var(--tbt-rsp-spacer-pc, 120px);
  pointer-events: none;
}

.tbt-inline-back:hover {
  color: #692022;
  border-color: rgba(127, 38, 41, 0.45);
  background: rgba(255, 249, 242, 0.92);
}

@media (max-width: 781px) {
  .tbt-responsive-spacer {
    height: var(--tbt-rsp-spacer-sp, 64px);
  }

  /* 事業内容: 先頭スペーサーの余白をモバイルで抑制 */
  body.tbt-page-jigyounaiyou .entry-content > .wp-block-spacer:first-child {
    display: none !important;
  }

  /* 店舗案内（モバイル）: 上部余白を30px追加 */
  body.tbt-page-store-info .entry-content .tcf-store-info {
    margin-top: 30px !important;
  }

  /* 営業日カレンダー（モバイル）: 上部余白を150px追加 */
  .entry-content .tcf-pub-calendar-wrap {
    margin-top: 150px !important;
  }

  body.tbt-page-jigyounaiyou .entry-content {
    position: relative;
  }

  /* 事業内容（モバイル）: ページ先頭に90pxの上部余白を確保 */
  body.tbt-page-jigyounaiyou .entry-content > .tbt-page-section-nav__wrap {
    margin-top: 0 !important;
  }

  /* モバイルの拡張ヘッダー左上ボタンとの重なり回避 */
  .tbt-inline-back-wrap {
    margin-top: 2.75rem;
    margin-bottom: 0.72rem;
    padding-left: 0.15rem;
    clear: both;
  }

  /* 上部空白ページ: 戻るボタンを空白内の最下部に配置 */
  body:is(.tbt-page-jigyounaiyou, .tbt-page-store-info, .tbt-page-contact, .tbt-page-news) .tbt-inline-back-wrap {
    margin-top: 0 !important;
    margin-bottom: 0.72rem !important;
    padding-left: 0.15rem !important;
    min-height: 90px;
    display: flex;
    align-items: flex-end;
  }

  /* 事業内容: 既存の戻る導線は非表示（ガイド準拠の追加導線のみ使う） */
  body.tbt-page-jigyounaiyou .tbt-inline-back-wrap:not(.tbt-inline-back-wrap--guide-clone) {
    display: none !important;
  }

  /* 事業内容: 既存配置は残したまま、ご利用ガイド相当の導線を追加表示 */
  body.tbt-page-jigyounaiyou .tbt-inline-back-guide-spacer {
    display: block;
    height: 0;
  }

  body.tbt-page-jigyounaiyou .tbt-inline-back-wrap--guide-clone {
    display: block !important;
    position: fixed;
    top: calc(var(--tbt-shop-header-bottom, 58px) + 0.35rem);
    left: calc(max(0.55rem, env(safe-area-inset-left)) + 3.05rem);
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0;
    text-align: left !important;
    z-index: 10005;
    clear: both;
    width: auto !important;
    transform: none !important;
  }

  body.tbt-page-jigyounaiyou .tbt-inline-back-wrap--guide-clone .tbt-inline-back {
    display: inline-flex !important;
    align-items: center;
    width: auto;
    float: none !important;
    margin: 0 !important;
    text-align: left !important;
    transform: none !important;
    font-size: 0 !important;
    line-height: 1 !important;
    padding: 0.34rem 0.72rem !important;
  }

  body.tbt-page-jigyounaiyou .tbt-inline-back-wrap--guide-clone .tbt-inline-back::before {
    content: "前のページに戻る";
    font-size: 0.78rem;
    line-height: 1.2;
  }

  /* 店舗案内・お問い合わせ・お知らせ・こだわり: ハンバーガー横に固定配置 */
  body:is(.tbt-page-store-info, .tbt-page-contact, .tbt-page-news, .tbt-page-kodawari) .tbt-inline-back-wrap {
    display: block !important;
    position: fixed;
    top: calc(var(--tbt-shop-header-bottom, 58px) + 0.35rem);
    left: calc(max(0.55rem, env(safe-area-inset-left)) + 3.05rem);
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    width: auto !important;
    z-index: 10005;
    transform: none !important;
  }
  body:is(.tbt-page-store-info, .tbt-page-contact, .tbt-page-news, .tbt-page-kodawari) .tbt-inline-back-wrap .tbt-inline-back {
    display: inline-flex !important;
    align-items: center;
    width: auto;
    margin: 0 !important;
    font-size: 0 !important;
    line-height: 1 !important;
    padding: 0.34rem 0.72rem !important;
  }
  body:is(.tbt-page-store-info, .tbt-page-contact, .tbt-page-news, .tbt-page-kodawari) .tbt-inline-back-wrap .tbt-inline-back::before {
    content: "前のページに戻る";
    font-size: 0.78rem;
    line-height: 1.2;
  }

  /* こだわり: ヘッダー/ハンバーガーと同じく初期は隠し、表示開始後に出す */
  body.tbt-page-kodawari .tbt-inline-back-wrap {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease;
  }
  body.tbt-page-kodawari #masthead.is-scrolled ~ #primary .tbt-inline-back-wrap,
  body.tbt-page-kodawari #masthead.tbt-official-nav-open ~ #primary .tbt-inline-back-wrap {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-item {
  margin: 0;
  border: 1px solid rgba(148, 124, 98, 0.4);
  border-radius: 12px;
  border-left: 3px solid rgba(184, 139, 70, 0.88);
  background: linear-gradient(
    180deg,
    rgba(252, 248, 240, 0.58) 0%,
    rgba(245, 238, 226, 0.52) 100%
  );
  box-shadow:
    0 2px 12px rgba(45, 36, 28, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-item:hover {
  border-color: rgba(148, 124, 98, 0.48);
  box-shadow:
    0 4px 18px rgba(45, 36, 28, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading {
  margin: 0;
  background: linear-gradient(
    180deg,
    rgba(252, 250, 246, 0.68) 0%,
    rgba(241, 233, 220, 0.62) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-item.is-open .wp-block-accordion-heading {
  border-bottom: 1px solid rgba(184, 139, 70, 0.28);
  background: linear-gradient(
    180deg,
    rgba(250, 246, 238, 0.74) 0%,
    rgba(232, 223, 210, 0.68) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  width: 100%;
  margin: 0;
  padding: 0.86rem 1rem 0.86rem 1.05rem;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
  color: #3a3028;
  line-height: 1.55;
  text-align: left;
  background: transparent;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  transition: box-shadow 0.2s ease;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle:hover {
  box-shadow: inset 3px 0 0 rgba(184, 139, 70, 0.32);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle:focus-visible {
  outline: 2px solid rgba(184, 139, 70, 0.55);
  outline-offset: 2px;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle-title {
  flex: 1;
  min-width: 0;
}

/* アイコン列（コアが出力する SVG ラッパー） */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle .wp-block-accordion-heading__toggle-icon,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-heading__toggle svg {
  flex-shrink: 0;
  color: #6b5a48;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel {
  margin: 0;
  padding: 1.05rem 1.15rem 1.15rem 1.2rem;
  background: linear-gradient(
    175deg,
    rgba(255, 253, 250, 0.94) 0%,
    rgba(252, 249, 244, 0.92) 35%,
    rgba(248, 244, 237, 0.9) 100%
  );
  color: #3a342e;
  line-height: 1.88;
  border-top: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 3px 0 0 rgba(184, 139, 70, 0.22);
}

/* ----- Kadence Accordion ----- */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-item,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-kadence-accordion .wp-block-kadence-pane {
  margin: 0 0 0.58rem;
  border: 1px solid rgba(148, 124, 98, 0.4);
  border-radius: 12px;
  border-left: 3px solid rgba(184, 139, 70, 0.88);
  background: linear-gradient(
    180deg,
    rgba(252, 248, 240, 0.58) 0%,
    rgba(245, 238, 226, 0.52) 100%
  );
  box-shadow:
    0 2px 12px rgba(45, 36, 28, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
  overflow: hidden;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-item:last-child,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-kadence-accordion .wp-block-kadence-pane:last-child {
  margin-bottom: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-header-wrap {
  background: linear-gradient(
    180deg,
    rgba(252, 250, 246, 0.68) 0%,
    rgba(241, 233, 220, 0.62) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-item.kt-accordion-item-active .kt-accordion-header-wrap,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-kadence-accordion .wp-block-kadence-pane.kt-accordion-item-active .kt-accordion-header-wrap,
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-kadence-accordion .wp-block-kadence-pane.kt-pane-active .kt-accordion-header-wrap {
  border-bottom: 1px solid rgba(184, 139, 70, 0.28);
  background: linear-gradient(
    180deg,
    rgba(250, 246, 238, 0.74) 0%,
    rgba(232, 223, 210, 0.68) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-blocks-accordion-header {
  font-weight: 600;
  color: #3a3028;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-header-trigger {
  font-weight: 600;
  color: #3a3028;
  padding: 0.86rem 1rem 0.86rem 1.05rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner {
  padding: 1.05rem 1.15rem 1.15rem 1.2rem;
  background: linear-gradient(
    175deg,
    rgba(255, 253, 250, 0.94) 0%,
    rgba(252, 249, 244, 0.92) 35%,
    rgba(248, 244, 237, 0.9) 100%
  );
  color: #3a342e;
  line-height: 1.88;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 3px 0 0 rgba(184, 139, 70, 0.22);
}

/* Kadence パネル内タイポ（コアパネルと同等） */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(p, ul, ol) {
  margin-top: 0;
  margin-bottom: 0.65rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(p, ul, ol):last-child {
  margin-bottom: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(h2, h3, h4, h5, h6) {
  color: var(--tbt-shouzumi, #3f3f3f);
  font-family: var(--tbt-font-serif, 'Shippori Mincho', 'Noto Serif JP', serif);
  font-weight: 700;
  margin: 1rem 0 0.5rem;
  letter-spacing: 0.03em;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(h2, h3, h4, h5, h6):first-child {
  margin-top: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(ul, ol) {
  padding-left: 1.35rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner :where(li)::marker {
  color: rgba(184, 139, 70, 0.72);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

/* ----- Spectra / UAGB Accordion（wp-block-uagb-accordion） ----- */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-item {
  margin: 0 0 0.58rem;
  border: 1px solid rgba(148, 124, 98, 0.4);
  border-radius: 12px;
  border-left: 3px solid rgba(184, 139, 70, 0.88);
  background: linear-gradient(
    180deg,
    rgba(252, 248, 240, 0.58) 0%,
    rgba(245, 238, 226, 0.52) 100%
  );
  box-shadow:
    0 2px 12px rgba(45, 36, 28, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.38);
  overflow: hidden;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-item:last-child {
  margin-bottom: 0;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-toggler {
  font-weight: 600;
  color: #3a3028;
  padding: 0.86rem 1rem 0.86rem 1.05rem;
  background: linear-gradient(
    180deg,
    rgba(252, 250, 246, 0.68) 0%,
    rgba(241, 233, 220, 0.62) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-item-active .uagb-accordion-toggler {
  border-bottom: 1px solid rgba(184, 139, 70, 0.28);
  background: linear-gradient(
    180deg,
    rgba(250, 246, 238, 0.74) 0%,
    rgba(232, 223, 210, 0.68) 100%
  );
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-content {
  padding: 1.05rem 1.15rem 1.15rem 1.2rem;
  background: linear-gradient(
    175deg,
    rgba(255, 253, 250, 0.94) 0%,
    rgba(252, 249, 244, 0.92) 35%,
    rgba(248, 244, 237, 0.9) 100%
  );
  color: #3a342e;
  line-height: 1.88;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 3px 0 0 rgba(184, 139, 70, 0.22);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-content :where(p, ul, ol) {
  margin-top: 0;
  margin-bottom: 0.65rem;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-content :where(p, ul, ol):last-child {
  margin-bottom: 0;
}

/* 本文の通常リンク（ボタン風・目次は除外）：臙脂リンクより茶系＋黄金ホバー */
body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content a:not(.wp-block-button__link):not(.wp-element-button):not(.added_to_cart):not(.button) {
  color: #5a4a3d;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content a:not(.wp-block-button__link):not(.wp-element-button):not(.added_to_cart):not(.button):hover {
  color: var(--tbt-gold, #b88b46);
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner a {
  color: #5a4a3d;
}

body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner a:hover {
  color: var(--tbt-gold, #b88b46);
}

/* FAQ：モバイル（ページ見出し1行維持・本文は読みやすさ優先） */
@media (max-width: 781px) {
  /* site-inner の横ガターを打ち消し、Q&Aカード列を広く */
  body.tbt-page-faq #primary .site-main,
  body.tbt-page-faq .site-main {
    margin-left: calc(-1 * var(--tbt-page-gutter, 1rem));
    margin-right: calc(-1 * var(--tbt-page-gutter, 1rem));
    width: calc(100% + 2 * var(--tbt-page-gutter, 1rem));
    max-width: none;
    box-sizing: border-box;
  }

  body.tbt-page-faq .entry-content,
  body.tbt-page-faq .entry-content:has(.tbt-page-section-nav__wrap) {
    max-width: 100% !important;
    padding-left: max(0.35rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.35rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }

  /* FAQモバイル：core/accordion の親 gap を無効化して項目間隔を単一ルール化 */
  body.tbt-page-faq .entry-content .wp-block-accordion {
    gap: 0 !important;
  }

  body.tbt-page-faq .tbt-page-section-nav__wrap {
    max-width: 100% !important;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-title,
  body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-header h1.entry-title {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    white-space: normal !important;
    padding-bottom: 0.38rem;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }

  body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-title br,
  body:is(.tbt-page-faq, .tbt-page-user-guide) .entry-header h1.entry-title br {
    display: block !important;
  }

  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details {
    margin-bottom: 0.42rem;
    border-radius: 10px;
  }

  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > summary {
    gap: 0.55rem;
    padding: 0.62rem 0.72rem 0.62rem 0.76rem;
    font-size: 0.76rem;
    line-height: 1.35;
    font-weight: 600;
  }

  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details .wp-block-details__summary-arrow,
  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details:not(:has(.wp-block-details__summary-arrow)) > summary::after {
    width: 1.52rem;
    height: 1.52rem;
    font-size: 0.92rem;
    border-radius: 6px;
  }

  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content details > :not(summary),
  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-accordion-panel,
  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .kt-accordion-panel-inner,
  body:is(.tbt-page-faq,.tbt-page-kodawari) .entry-content .wp-block-uagb-accordion .uagb-accordion-content {
    padding: 0.78rem 0.8rem 0.86rem 0.86rem;
  }

  /* FAQのみ: 見出しサイズはエディタ設定を優先（ここでは余白のみ調整） */
  body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading,
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading {
    margin-top: 1.4rem !important;
    margin-bottom: 0.7rem !important;
    padding-bottom: 0.42rem !important;
  }

  body.tbt-page-faq .entry-content > :is(h2, h3, h4).wp-block-heading:first-child,
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(h2, h3, h4).wp-block-heading:first-child {
    margin-top: 0.35rem !important;
  }

  /* FAQモバイル：セクション直前の空段落/Spacerが重なると間隔が不揃いになるため、見出し前は基準余白へ統一 */
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :where(p, .wp-block-spacer):has(+ :is(h2, h3, h4).wp-block-heading) {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > details + :is(h2, h3, h4).wp-block-heading {
    margin-top: 1.35rem !important;
  }

  /* FAQモバイル：同一見出し内のQ項目間を完全に均等化（空段落/Spacer混在時も同じ間隔） */
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) {
    margin: 0 !important;
  }

  /* FAQモバイル：編集側で混ざりやすいラッパーブロック余白を除去（カード間の不均等防止） */
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(
    .wp-block-group,
    .wp-block-columns,
    .wp-block-column,
    .wp-block-details
  ) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(
    .wp-block-group,
    .wp-block-columns,
    .wp-block-column
  ) > :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > :is(
    .wp-block-group,
    .wp-block-columns,
    .wp-block-column
  ) > :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) + :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) {
    margin-top: 0.38rem !important;
  }

  /* FAQモバイル（ピンポイント）:
     「お届け・保存状態について」(#tbt-faq-delivery) のみ、次見出し(#tbt-faq-packaging)までカード間を均等化 */
  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > #tbt-faq-delivery.wp-block-heading ~ :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ):has(~ #tbt-faq-packaging.wp-block-heading) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > #tbt-faq-delivery.wp-block-heading ~ :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ):has(~ #tbt-faq-packaging.wp-block-heading) + :is(
    details,
    .wp-block-details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ):has(~ #tbt-faq-packaging.wp-block-heading) {
    margin-top: 0.38rem !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main > #tbt-faq-delivery.wp-block-heading ~ :is(
    .wp-block-group,
    .wp-block-columns,
    .wp-block-column
  ):has(~ #tbt-faq-packaging.wp-block-heading) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) + :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) {
    margin-top: 0.38rem !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) + :where(p, .wp-block-spacer):has(+ :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  )) {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  body.tbt-page-faq .entry-content .tbt-page-section-nav__main :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) + :where(p, .wp-block-spacer):has(+ :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  )) + :is(
    details,
    .wp-block-accordion-item,
    .kt-accordion-item,
    .wp-block-uagb-accordion .uagb-accordion-item
  ) {
    margin-top: 0.38rem !important;
  }

  /* FAQのみ: Qカードは圧縮しすぎない（本文はやや小さめで可） */
  body.tbt-page-faq .entry-content details {
    margin-bottom: 0.38rem !important;
    border-radius: 10px !important;
  }

  body.tbt-page-faq .entry-content details > summary {
    gap: 0.5rem !important;
    padding: 0.58rem 0.65rem 0.58rem 0.72rem !important;
    font-size: 0.8rem !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
  }

  body.tbt-page-faq .entry-content details .wp-block-details__summary-arrow,
  body.tbt-page-faq .entry-content details:not(:has(.wp-block-details__summary-arrow)) > summary::after {
    width: 1.42rem !important;
    height: 1.42rem !important;
    font-size: 0.88rem !important;
  }

  body.tbt-page-faq .entry-content details > :not(summary),
  body.tbt-page-faq .entry-content .wp-block-accordion-panel,
  body.tbt-page-faq .entry-content .kt-accordion-panel-inner,
  body.tbt-page-faq .entry-content .wp-block-uagb-accordion .uagb-accordion-content {
    padding: 0.65rem 0.72rem 0.72rem 0.78rem !important;
    font-size: 0.8rem !important;
    line-height: 1.5 !important;
  }

  /* FAQのみ: コア Accordion / Kadence / 見出しトグルをガイド prose 相当に */
  body.tbt-page-faq .entry-content .wp-block-accordion-heading__toggle-title {
    font-size: 0.8rem !important;
    line-height: 1.5 !important;
  }

  body.tbt-page-faq .entry-content .kt-blocks-accordion-header {
    font-size: 0.8rem !important;
    line-height: 1.5 !important;
  }
}

/* --------------------------------------------------------------------------
 * TOP最終上書き（反映漏れ対策）
 * -------------------------------------------------------------------------- */
@media (max-width: 781px) {
  /* お知らせ簡易表示セクション: 約2/3に圧縮 */
  body:is(.home, .front-page, .tbt-shop-landing-page) .tcf-site-news--top.tcf-site-news--list {
    margin-top: 0.06rem !important;
    margin-bottom: 0.48rem !important;
    padding: 0.62rem 0.72rem !important;
    border-radius: 10px !important;
  }

  body:is(.home, .front-page, .tbt-shop-landing-page) .tcf-site-news--top.tcf-site-news--list .tcf-site-news__top-head {
    margin-bottom: 0.34rem !important;
  }

  body:is(.home, .front-page, .tbt-shop-landing-page) .tcf-site-news--top.tcf-site-news--list .tcf-site-news__item {
    margin-bottom: 0.28rem !important;
    padding: 0.34rem 0.46rem 0.38rem !important;
    border-radius: 6px !important;
  }

  /* トップ赤見出しの最終固定（x-large / xx-large 両対応） */
  body:is(.home, .front-page, .tbt-shop-landing-page)
    p.has-enzhi-color.has-sawarabi-mincho-font-family.has-x-large-font-size,
  body:is(.home, .front-page, .tbt-shop-landing-page)
    p.has-enzhi-color.has-sawarabi-mincho-font-family.has-xx-large-font-size,
  body:is(.home, .front-page, .tbt-shop-landing-page)
    p.is-style-default.has-enzhi-color.has-sawarabi-mincho-font-family.has-x-large-font-size,
  body:is(.home, .front-page, .tbt-shop-landing-page)
    p.is-style-default.has-enzhi-color.has-sawarabi-mincho-font-family.has-xx-large-font-size {
    font-size: 1.28rem !important;
    line-height: 1.4 !important;
  }

}
