:root {
  --tb-ink: #0b523b;
  --tb-green: #0b523b;
  --tb-ink-deep: #063d2d;
  --tb-text: #33453d;
  --tb-muted: #68786f;
  --tb-leaf: #87b94e;
  --tb-leaf-soft: #dceac8;
  --tb-gold: #b58a38;
  --tb-paper: #fffdf8;
  --tb-warm: #f5f1e7;
  --tb-mist: #f2f6ed;
  --tb-line: #d4ddd4;
  --tb-shadow: 0 18px 46px rgba(31, 61, 47, .09);
  --tb-tap-highlight: rgba(11, 82, 59, .14);
  --tb-focus-ring: rgba(181, 138, 56, .5);
  --tb-serif: "Zen Old Mincho", "Yu Mincho", "YuMincho", serif;
  --tb-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

/* ブランド共通の開閉操作：端末既定の青を避け、タップは淡い深緑、キーボード操作は金で示す */
.tb-bs summary,
.tb-article summary {
  -webkit-tap-highlight-color: var(--tb-tap-highlight);
}

.tb-bs summary:focus-visible,
.tb-article summary:focus-visible {
  outline: 3px solid var(--tb-focus-ring);
  outline-offset: 3px;
}

/* 基本情報・法務・ご利用ガイド：ecforceの管理データを共通の読み物枠で表示する */
.tb-info-page,
.tb-info-page *,
.tb-service-page,
.tb-service-page *,
.tb-account-access,
.tb-account-access *,
.tb-account-dashboard,
.tb-account-dashboard * { box-sizing: border-box; }

.tb-info-page {
  background: var(--tb-paper);
  color: var(--tb-text);
  font-family: var(--tb-sans);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .025em;
}

.tb-info-shell { width: min(1040px, calc(100% - 64px)); margin-inline: auto; }
.tb-info-hero { padding-block: clamp(76px, 9vw, 126px); border-bottom: 1px solid var(--tb-line); background: linear-gradient(120deg, #f3f6ee 0%, #fffdf8 72%); }
.tb-info-kicker { margin: 0 0 18px !important; color: var(--tb-gold); font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .18em; }
.tb-info-kicker::before { display: inline-block; width: 25px; height: 1px; margin-right: 12px; vertical-align: middle; background: currentColor; content: ""; }
.tb-info-hero h1,
.tb-service-header h1,
.tb-account-access__hero h1 { margin: 0; color: var(--tb-ink); font-family: var(--tb-serif); font-size: clamp(34px, 4.4vw, 54px); font-weight: 500; line-height: 1.45; letter-spacing: .055em; }
.tb-info-lead,
.tb-service-header__lead,
.tb-account-access__hero > p:last-child { max-width: 43em; margin: 24px 0 0 !important; color: #52635b; font-size: 17px; line-height: 1.95; }
.tb-info-main { padding-block: clamp(54px, 7vw, 92px) clamp(86px, 10vw, 132px); }

.tb-info-local-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: clamp(42px, 6vw, 68px); border-top: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
.tb-info-local-nav a { position: relative; display: grid; place-items: center; min-height: 78px; padding: 14px 18px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); color: #4e6158; font-size: 14px; font-weight: 700; line-height: 1.65; text-align: center; text-decoration: none; transition: background .2s ease, color .2s ease; }
.tb-info-local-nav a:hover { background: var(--tb-mist); color: var(--tb-ink); }
.tb-info-local-nav a[aria-current="page"] { background: var(--tb-green); color: #fff; }
.tb-info-local-nav a[aria-current="page"]::after { position: absolute; bottom: -7px; left: 50%; width: 13px; height: 13px; background: var(--tb-green); content: ""; transform: translateX(-50%) rotate(45deg); }

.tb-info-panel { overflow: hidden; border-top: 3px solid var(--tb-green); background: #fff; box-shadow: var(--tb-shadow); }
.tb-info-table-wrap { overflow: hidden; }
.tb-info-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; table-layout: fixed; }
.tb-info-table tr { border: 0 !important; border-bottom: 1px solid var(--tb-line) !important; }
.tb-info-table tr:last-child { border-bottom: 0 !important; }
.tb-info-table th,
.tb-info-table td { padding: 26px clamp(24px, 4vw, 46px); border: 0; vertical-align: top; }
.tb-info-table th { width: 29%; background: var(--tb-mist); color: var(--tb-ink); font-size: 15px; font-weight: 700; line-height: 1.8; text-align: left; }
.tb-info-table td { color: var(--tb-text); font-size: 16px; line-height: 1.9; word-break: break-word; }
.tb-info-table pre { margin: 0; overflow: visible; color: inherit; font: inherit; white-space: pre-wrap; word-break: break-word; }

.tb-info-next,
.tb-guide-support,
.tb-account-dashboard__support { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: clamp(40px, 6vw, 64px); background: var(--tb-line); border: 1px solid var(--tb-line); }
.tb-info-next > div,
.tb-guide-support > div { padding: clamp(27px, 4vw, 38px); background: var(--tb-mist); }
.tb-info-next p,
.tb-guide-support p { margin: 0 0 12px; color: var(--tb-muted); font-size: 13px; line-height: 1.7; }
.tb-info-next a,
.tb-guide-support a,
.tb-account-dashboard__support a { display: flex; align-items: center; justify-content: space-between; gap: 18px; color: var(--tb-ink); font-size: 16px; font-weight: 700; text-decoration: none; }
.tb-info-next a span,
.tb-guide-support a span { flex: 0 0 auto; transition: transform .2s ease; }
.tb-info-next a:hover span,
.tb-guide-support a:hover span { transform: translateX(4px); }

.tb-document-index { display: grid; grid-template-columns: 120px 1fr; gap: 28px; margin-bottom: clamp(42px, 6vw, 64px); padding: clamp(28px, 4vw, 40px); border-top: 1px solid var(--tb-gold); border-bottom: 1px solid var(--tb-line); background: rgba(255,255,255,.6); }
.tb-document-index > p { margin: 0; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 18px; }
.tb-document-index ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 30px; margin: 0; padding: 0; list-style: none; counter-reset: tb-document-index; }
.tb-document-index li { counter-increment: tb-document-index; }
.tb-document-index a { display: grid; grid-template-columns: 29px 1fr; gap: 7px; padding: 4px 0; color: #52635b; font-size: 14px; line-height: 1.65; text-decoration: none; }
.tb-document-index a::before { color: var(--tb-gold); content: counter(tb-document-index, decimal-leading-zero); font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.tb-document-index a:hover { color: var(--tb-ink); text-decoration: underline; text-underline-offset: 4px; }
.tb-document { padding: clamp(40px, 7vw, 76px); }
.tb-document-intro { margin-bottom: clamp(50px, 7vw, 76px); padding-bottom: clamp(40px, 6vw, 62px); border-bottom: 1px solid var(--tb-line); }
.tb-document-intro h2,
.tb-document-list h2 { margin: 0; color: var(--tb-ink); font-family: var(--tb-serif); font-weight: 500; letter-spacing: .035em; }
.tb-document-intro h2 { font-size: clamp(25px, 3vw, 34px); line-height: 1.6; }
.tb-document-intro p { margin: 20px 0 0; font-size: 16px; line-height: 2; }
.tb-document-list { margin: 0; padding: 0; list-style: none; counter-reset: tb-document-section; }
.tb-document-list > li { scroll-margin-top: 110px; counter-increment: tb-document-section; }
.tb-document-list > li + li { margin-top: clamp(50px, 7vw, 76px); padding-top: clamp(48px, 6vw, 68px); border-top: 1px solid var(--tb-line); }
.tb-document-list h2 { display: grid; grid-template-columns: 42px 1fr; gap: 14px; font-size: clamp(21px, 2.4vw, 27px); line-height: 1.7; }
.tb-document-list h2::before { padding-top: .5em; color: var(--tb-gold); content: counter(tb-document-section, decimal-leading-zero); font-family: var(--tb-sans); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.tb-document-list pre { margin: 22px 0 0; overflow: visible; color: var(--tb-text); font: 16px/2 var(--tb-sans); white-space: pre-wrap; word-break: break-word; }

.tb-guide-index { margin-bottom: clamp(42px, 6vw, 68px); padding: clamp(30px, 5vw, 48px); border-top: 3px solid var(--tb-green); background: var(--tb-mist); }
.tb-guide-index > p { margin: 0 0 24px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 22px; font-weight: 500; }
.tb-guide-index ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.tb-guide-index a { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 72px; padding: 15px 17px; border: 1px solid var(--tb-line); background: #fff; color: var(--tb-ink); font-size: 14px; font-weight: 700; line-height: 1.55; text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.tb-guide-index a:hover { border-color: var(--tb-green); transform: translateY(-2px); }
.tb-guide-index a span { color: var(--tb-gold); font-size: 11px; letter-spacing: .08em; }
.tb-guide-content { padding: clamp(42px, 7vw, 76px); }
.tb-guide-list { margin: 0; padding: 0; list-style: none; }
.tb-guide-list > li { position: relative; scroll-margin-top: 110px; padding-left: 66px; }
.tb-guide-list > li + li { margin-top: clamp(50px, 7vw, 76px); padding-top: clamp(50px, 7vw, 76px); border-top: 1px solid var(--tb-line); }
.tb-guide-list__number { position: absolute; top: 5px; left: 0; color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.tb-guide-list > li + li .tb-guide-list__number { top: calc(clamp(50px, 7vw, 76px) + 5px); }
.tb-guide-list h2 { margin: 0; color: var(--tb-ink); font-family: var(--tb-serif); font-size: clamp(25px, 3vw, 34px); font-weight: 500; line-height: 1.6; letter-spacing: .04em; }
.tb-guide-list pre { margin: 22px 0 0; overflow: visible; color: var(--tb-text); font: 16px/2 var(--tb-sans); white-space: pre-wrap; word-break: break-word; }
.tb-guide-support > div { background: #edf3e8; }

/* お問い合わせ：送信処理を変えず、案内・入力・確認の階層を整える */
.tb-service-page { background: var(--tb-paper); color: var(--tb-text); font-family: var(--tb-sans); }
.tb-service-page__hero { max-width: none !important; margin: 0 !important; padding: clamp(72px, 8vw, 112px) max(32px, calc((100% - 1040px) / 2)) !important; border-bottom: 1px solid var(--tb-line); background: linear-gradient(120deg, #f3f6ee 0%, #fffdf8 72%); }
.tb-service-header { width: 100%; max-width: 1040px; margin: 0 auto; }
.tb-service-header .p-page_header__inner { padding: 0; text-align: left !important; }
.tb-service-header .p-page_header__inner__title.u-text--head {
  margin: 0;
  color: var(--tb-ink) !important;
  font-family: var(--tb-serif) !important;
  font-size: clamp(34px, 4.4vw, 54px) !important;
  font-weight: 500 !important;
  line-height: 1.45;
  letter-spacing: .055em;
  text-align: left !important;
}
.tb-service-page__body { max-width: 1104px !important; margin: 0 auto !important; padding: clamp(52px, 7vw, 82px) 32px clamp(88px, 10vw, 128px) !important; }
.tb-service-page .p-account_form { margin: 0; }
.tb-service-page .p-account_form__inner { width: 100%; max-width: 1040px !important; padding: clamp(30px, 5vw, 54px); border-top: 3px solid var(--tb-green); background: #fff; box-shadow: var(--tb-shadow); }
.tb-service-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 48px; }
.tb-service-links a { position: relative; display: grid; gap: 5px; min-height: 116px; padding: 22px 50px 22px 22px; border: 1px solid var(--tb-line); background: var(--tb-mist); color: var(--tb-ink); text-decoration: none; }
.tb-service-links a span { color: var(--tb-muted); font-size: 12px; line-height: 1.7; }
.tb-service-links a strong { font-size: 16px; line-height: 1.6; }
.tb-service-links a i { position: absolute; top: 50%; right: 22px; font-style: normal; transform: translateY(-50%); transition: transform .2s ease; }
.tb-service-links a:hover i { transform: translate(4px, -50%); }
.tb-contact-page .p-contact__head { margin: 0 0 24px; }
.tb-contact-page .p-contact__head__title { color: var(--tb-ink) !important; font-family: var(--tb-serif) !important; font-size: 25px !important; font-weight: 500 !important; }
.tb-contact-page .p-contact__head__notes { font-family: var(--tb-sans) !important; font-size: 14px; }
.tb-contact-business-note { width: 100%; margin: 16px 0 0 !important; padding: 12px 16px; border-left: 2px solid var(--tb-gold); background: #f7f6f1; color: #5d685f; font-family: var(--tb-sans) !important; font-size: 13px; line-height: 1.8; }
.tb-contact-page .c-form_table,
.tb-contact-page .c-form_table--confirm { width: 100%; }
.tb-contact-page .c-form_table > tbody > tr,
.tb-contact-page .c-form_table--confirm > tbody > tr { border-bottom: 1px solid var(--tb-line); }
.tb-contact-page .c-form_table > tbody > tr > th,
.tb-contact-page .c-form_table--confirm > tbody > tr > th { width: 30%; padding: 25px 22px 25px 8px; color: var(--tb-ink); font-size: 15px; font-weight: 700; vertical-align: top; }
.tb-contact-page .c-form_table > tbody > tr > td,
.tb-contact-page .c-form_table--confirm > tbody > tr > td { padding: 18px 8px; color: var(--tb-text); font-size: 16px; line-height: 1.8; }
.tb-contact-page .c-form_table input[type="text"],
.tb-contact-page .c-form_table input[type="email"],
.tb-contact-page .c-form_table input[type="tel"],
.tb-contact-page .c-form_table select,
.tb-contact-page .c-form_table textarea { width: 100%; min-height: 52px; border: 1px solid #b9c7bd !important; border-radius: 3px; background: #fff !important; color: var(--tb-text); font-size: 16px; }
.tb-contact-page .c-form_table textarea { min-height: 180px; padding: 14px 15px; }
.tb-contact-page .c-form_table__name { display: grid; grid-template-columns: repeat(2, minmax(0, 240px)); justify-content: start; gap: 12px; max-width: 492px; }
.tb-contact-page .c-form_table__name input { width: 100%; max-width: none; min-width: 0; }
.tb-contact-page .c-form_table__tel { max-width: 420px; }
.tb-contact-page .c-form_table input[type="tel"] { max-width: 320px; }
.tb-contact-page .c-form_table__tel input[type="tel"] { max-width: none; }
.tb-contact-page .c-form_table input[type="email"] { max-width: 560px; }
.tb-contact-page .c-form_table__select { display: block; max-width: 360px; }
.tb-contact-page .c-form_table textarea { width: 100%; max-width: 680px; }
.tb-contact-page .c-form_table input:focus,
.tb-contact-page .c-form_table select:focus,
.tb-contact-page .c-form_table textarea:focus { border-color: var(--tb-green) !important; outline: 2px solid rgba(11,82,59,.14); outline-offset: 1px; }
.tb-contact-page .c-form_table__newsletter { padding-block: 4px; }
.tb-contact-page .check_agree { align-items: center; min-height: 32px; cursor: pointer; }
.tb-contact-page .check_agree input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  margin: 0 10px 0 0;
  border: 2px solid #6f8c7d !important;
  border-radius: 3px;
  background: #fff !important;
  box-shadow: 0 0 0 2px rgba(11,82,59,.04);
  cursor: pointer;
}
.tb-contact-page .check_agree:hover input[type="checkbox"] { border-color: var(--tb-green) !important; }
.tb-contact-page .check_agree input[type="checkbox"]:focus-visible { outline: 3px solid rgba(181,138,56,.34); outline-offset: 3px; }
.tb-contact-page .check_agree input[type="checkbox"]:checked { border-color: var(--tb-green) !important; background: var(--tb-green) !important; }
.tb-contact-page .check_agree .c-form_table__checkbox__frame {
  top: calc(50% - 5px);
  left: 5px;
  z-index: 1;
  width: 14px;
  height: 8px;
  border-color: #fff !important;
  pointer-events: none;
}
.tb-contact-page .check_agree .c-form_table__checkbox__text { color: var(--tb-text); font-family: var(--tb-sans) !important; font-size: 15px; line-height: 1.7; }
.tb-contact-page .p-account_form__inner__bottom { margin-top: 38px; text-align: center; }
.tb-contact-page .p-account_form__inner__bottom__btn,
.tb-contact-page .p-page_header__inner__btn { display: inline-grid; place-items: center; width: min(100%, 320px); min-height: 58px; padding-inline: 34px; border-radius: 2px; background: var(--tb-green) !important; color: #fff !important; font-size: 16px; font-weight: 700; }
.tb-contact-page--complete .tb-service-page__complete { max-width: 760px !important; margin: 0 auto !important; padding: clamp(100px, 12vw, 160px) 32px !important; }
.tb-contact-page--complete .tb-service-header { padding: clamp(42px, 7vw, 70px); border-top: 3px solid var(--tb-green); background: #fff; box-shadow: var(--tb-shadow); text-align: center; }
.tb-contact-page--complete .tb-service-header .p-page_header__inner { text-align: center; }
.tb-contact-page--complete .p-page_header__inner__lead { margin-top: 24px; font-size: 16px; line-height: 1.9; }
.tb-contact-page--complete .p-page_header__inner__btn { margin-top: 32px; }

/* マイページ：ログインと会員機能の外観だけを整え、ecforceの動的処理は維持する */
.tb-account-access,
.tb-account-dashboard { background: var(--tb-paper); color: var(--tb-text); font-family: var(--tb-sans); }
.tb-account-access__body { max-width: 1200px !important; margin: 0 auto !important; padding: clamp(70px, 8vw, 110px) 32px clamp(90px, 10vw, 132px) !important; }
.tb-account-access__hero { margin-bottom: clamp(42px, 6vw, 66px); text-align: center; }
.tb-account-access__hero .tb-info-kicker::before { display: none; }
.tb-account-access__hero > p:last-child { margin-inline: auto !important; }
.tb-account-access .p-login { margin: 0; padding: 0; }
.tb-account-access .p-login__inner { align-items: stretch; gap: 1px; background: var(--tb-line); border: 1px solid var(--tb-line); box-shadow: var(--tb-shadow); }
.tb-account-access .c-form_table { width: 100%; }
.tb-account-access .p-login__inner__login,
.tb-account-access .p-login__inner__registration { margin: 0; padding: clamp(34px, 5vw, 54px); background: #fff; }
.tb-account-access .p-page_header__inner { text-align: left; }
.tb-account-access .p-page_header__inner__title { color: var(--tb-ink); font-family: var(--tb-serif); font-size: clamp(25px, 3vw, 33px); font-weight: 500; }
.tb-account-access .p-login__inner__registration__text,
.tb-account-access .c-form_table__checkbox__text,
.tb-account-access .p-login__inner__login__bottom__forget { font-family: var(--tb-sans) !important; }
.tb-account-access .c-form_table > tbody > tr > th { color: var(--tb-ink); font-size: 14px; font-weight: 700; }
.tb-account-access .c-form_table input[type="email"],
.tb-account-access .c-form_table input[type="password"] { width: 100%; min-width: 0; min-height: 52px; border: 1px solid #b9c7bd !important; background: #fff !important; font-size: 16px; }
.tb-account-access .customers_sessions_login_btn,
.tb-account-access .p-login__inner__registration__bottom__btn { width: 100%; max-width: none; min-height: 56px; border-radius: 2px; background: var(--tb-green) !important; color: #fff !important; font-size: 16px; font-weight: 700; }
.tb-account-access .c-form_table__checkbox input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  margin: 0 10px 0 0;
  border: 2px solid #6f8c7d !important;
  border-radius: 3px;
  background: #fff !important;
  box-shadow: 0 0 0 2px rgba(11,82,59,.04);
  cursor: pointer;
}
.tb-account-access .c-form_table__checkbox:hover input[type="checkbox"] { border-color: var(--tb-green) !important; }
.tb-account-access .c-form_table__checkbox input[type="checkbox"]:focus-visible { outline: 3px solid rgba(181,138,56,.34); outline-offset: 3px; }
.tb-account-access .c-form_table__checkbox input[type="checkbox"]:checked { border-color: var(--tb-green) !important; background: var(--tb-green) !important; }
.tb-account-access .c-form_table__checkbox__frame {
  top: calc(50% - 5px);
  left: 5px;
  z-index: 1;
  width: 14px;
  height: 8px;
  border-color: #fff !important;
  pointer-events: none;
}
.tb-account-access a { color: var(--tb-ink); text-underline-offset: 4px; }

@media (min-width: 901px) {
  .tb-account-access .p-page_header__inner__title { font-size: clamp(19px, 2.2vw, 24px); line-height: 1.5; white-space: nowrap; }
  .tb-account-access .p-login__inner__registration { display: flex; flex-direction: column; }
  .tb-account-access .p-login__inner__registration .p-page_header { margin-bottom: 0; }
  .tb-account-access .p-login__inner__registration__text { margin-block: auto !important; }
  .tb-account-access .p-login__inner__registration__bottom { margin-top: 0; margin-bottom: 40px; }
  .tb-account-access .p-login__inner__registration__bottom__btn { height: 60px; }
  .tb-account-access .p-login__inner__login__bottom__forget { display: block; margin-top: 8px; line-height: 20px; }
}

@media (max-width: 900px) {
  .tb-account-registration__pc-break { display: none; }
}

.tb-account-dashboard > .l-container__row { max-width: 1180px; padding-inline: 28px; }
.tb-account-dashboard .p-account__inner { gap: clamp(28px, 4vw, 54px); align-items: start; }
.tb-account-dashboard .p-account__inner__menu { overflow: hidden; border: 1px solid var(--tb-line) !important; border-top: 3px solid var(--tb-green) !important; background: #fff; }
.tb-account-dashboard .p-account__inner__content { min-width: 0; padding: clamp(28px, 5vw, 54px); border-top: 3px solid var(--tb-green); background: #fff; box-shadow: var(--tb-shadow); }
.tb-account-dashboard .p-account__inner__content__title { margin-top: 20px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: clamp(32px, 4vw, 44px) !important; font-weight: 500; }
.tb-account-dashboard__lead { max-width: 42em; margin: 18px 0 34px; color: var(--tb-muted); font-size: 16px; line-height: 1.9; }
.tb-account-dashboard .p-mypage__name { color: var(--tb-ink); font-family: var(--tb-serif); font-size: 22px !important; font-weight: 500; }
.tb-account-dashboard .c-account_menu__content { color: var(--tb-text); }
.tb-account-dashboard .c-account_menu__content:hover { background: var(--tb-mist); }
.tb-account-dashboard .c-account_menu__text { font-size: 15px; }
.tb-account-dashboard__support { margin-top: 42px; }
.tb-account-dashboard__support a { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; min-height: 100px; padding: 22px; background: var(--tb-mist); }
.tb-account-dashboard__support a span { grid-column: 1; color: var(--tb-muted); font-size: 12px; font-weight: 500; line-height: 1.6; }
.tb-account-dashboard__support a strong { grid-column: 1; font-size: 16px; }
.tb-account-dashboard__support a i { grid-column: 2; grid-row: 1 / 3; align-self: center; font-style: normal; }

.tb-info-page a:focus-visible,
.tb-service-page a:focus-visible,
.tb-service-page button:focus-visible,
.tb-account-access a:focus-visible,
.tb-account-access input:focus-visible,
.tb-account-dashboard a:focus-visible { outline: 2px solid var(--tb-green); outline-offset: 3px; }

@media (max-width: 900px) {
  .tb-info-local-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-document-index { grid-template-columns: 1fr; }
  .tb-document-index ol { grid-template-columns: 1fr; }
  .tb-guide-index ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-account-dashboard .p-account__inner { display: block; }
  .tb-account-dashboard .p-account__inner__menu { margin-bottom: 24px; }
}

@media (min-width: 720px) {
  .tb-account-access .p-login__inner__login,
  .tb-account-access .p-login__inner__registration { width: auto; flex: 1 1 0; }
  .tb-account-access .c-form_table > tbody > tr { display: grid; grid-template-columns: 100px minmax(0, 1fr); column-gap: 18px; align-items: center; }
  .tb-account-access .c-form_table > tbody > tr > th { width: auto; padding-right: 0; }
  .tb-account-access .c-form_table > tbody > tr > td { width: auto; min-width: 0; }
}

@media (min-width: 720px) and (max-width: 1100px) {
  .tb-account-access .p-login__inner__login,
  .tb-account-access .p-login__inner__registration { padding: 34px; }
}

@media (min-width: 720px) and (max-width: 900px) {
  .tb-account-access .p-login__inner { display: block; border: 0; background: transparent; box-shadow: none; }
  .tb-account-access .p-login__inner__login,
  .tb-account-access .p-login__inner__registration { width: 100%; }
  .tb-account-access .p-login__inner__registration { margin-top: 28px; }
}

@media (max-width: 719px) {
  .tb-info-shell { width: min(100% - 40px, 1040px); }
  .tb-info-hero { padding-block: 64px 68px; }
  .tb-info-hero h1,
  .tb-service-header h1,
  .tb-account-access__hero h1 { font-size: 34px; line-height: 1.5; }
  .tb-info-lead,
  .tb-service-header__lead,
  .tb-account-access__hero > p:last-child { margin-top: 20px !important; font-size: 16px; line-height: 1.9; }
  .tb-info-main { padding-block: 42px 90px; }
  .tb-info-local-nav { margin-bottom: 42px; }
  .tb-info-local-nav a { min-height: 68px; padding: 12px 10px; font-size: 16px; }
  .tb-info-table,
  .tb-info-table tbody,
  .tb-info-table tr,
  .tb-info-table th,
  .tb-info-table td { display: block; width: 100%; }
  .tb-info-table tr { padding: 0 !important; }
  .tb-info-table th { padding: 16px 20px 8px; background: var(--tb-mist); font-size: 16px; }
  .tb-info-table td { padding: 10px 20px 21px; background: var(--tb-mist); font-size: 16px; }
  .tb-info-next,
  .tb-guide-support,
  .tb-account-dashboard__support { grid-template-columns: 1fr; }
  .tb-document-index { gap: 18px; padding: 25px 22px; }
  .tb-document { padding: 34px 22px 42px; }
  .tb-document-intro { margin-bottom: 42px; padding-bottom: 38px; }
  .tb-document-list > li + li { margin-top: 44px; padding-top: 42px; }
  .tb-document-list h2 { grid-template-columns: 32px 1fr; gap: 8px; font-size: 21px; }
  .tb-document-list pre { margin-top: 18px; font-size: 16px; line-height: 1.9; }
  .tb-guide-index { padding: 26px 20px; }
  .tb-guide-index ol { grid-template-columns: 1fr; }
  .tb-guide-index a { min-height: 64px; font-size: 16px; }
  .tb-guide-content { padding: 36px 22px 44px; }
  .tb-guide-list > li { padding-left: 0; }
  .tb-guide-list__number { position: static; display: block; margin-bottom: 10px; }
  .tb-guide-list > li + li .tb-guide-list__number { position: static; }
  .tb-guide-list h2 { font-size: 25px; }
  .tb-guide-list pre { margin-top: 18px; font-size: 16px; line-height: 1.9; }
  .tb-service-page__hero { padding: 62px 20px 66px !important; }
  .tb-service-page__body { padding: 42px 20px 90px !important; }
  .tb-service-page .p-account_form__inner { padding: 30px 20px 38px; }
  .tb-service-links { grid-template-columns: 1fr; margin-bottom: 38px; }
  .tb-service-links a { min-height: 100px; }
  .tb-contact-page .c-form_table > tbody > tr,
  .tb-contact-page .c-form_table--confirm > tbody > tr { display: block; padding: 20px 0; }
  .tb-contact-page .c-form_table > tbody > tr > th,
  .tb-contact-page .c-form_table--confirm > tbody > tr > th,
  .tb-contact-page .c-form_table > tbody > tr > td,
  .tb-contact-page .c-form_table--confirm > tbody > tr > td { display: block; width: 100%; padding: 0; }
  .tb-contact-page .c-form_table > tbody > tr > td,
  .tb-contact-page .c-form_table--confirm > tbody > tr > td { margin-top: 10px; }
  .tb-contact-page .p-contact__head__notes,
  .tb-contact-page .c-form_table > tbody > tr > th,
  .tb-contact-page .c-form_table--confirm > tbody > tr > th,
  .tb-account-access .c-form_table > tbody > tr > th,
  .tb-account-dashboard .c-account_menu__text { font-size: 16px; }
  .tb-contact-page .c-form_table__name { gap: 8px; }
  .tb-contact-page .c-form_table__name input { min-width: 0; }
  .tb-contact-business-note { font-size: 16px; }
  .tb-contact-page--complete .tb-service-page__complete { padding: 70px 20px 90px !important; }
  .tb-contact-page--complete .tb-service-header { padding: 38px 22px; }
  .tb-account-access__body { padding: 64px 20px 90px !important; }
  .tb-account-access .p-login__inner { display: block; border: 0; background: transparent; box-shadow: none; }
  .tb-account-access .p-login__inner__login,
  .tb-account-access .p-login__inner__registration { padding: 34px 22px; border-top: 3px solid var(--tb-green); box-shadow: var(--tb-shadow); }
  .tb-account-access .p-login__inner__registration { margin-top: 28px; }
  .tb-account-access .c-form_table > tbody > tr { display: block; padding-block: 13px; }
  .tb-account-access .c-form_table > tbody > tr > th,
  .tb-account-access .c-form_table > tbody > tr > td { display: block; width: 100%; padding: 0; }
  .tb-account-access .c-form_table > tbody > tr > td { margin-top: 8px; }
  .tb-account-access .c-form_table input[type="email"],
  .tb-account-access .c-form_table input[type="password"] { min-width: 0; }
  .tb-account-access .p-login__inner__login__bottom { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
  .tb-account-access .customers_sessions_login_btn { width: 100%; }
  .tb-account-access .p-login__inner__login__bottom__forget { display: block; margin: 0; text-align: center; }
  .tb-account-dashboard > .l-container__row { padding-inline: 20px; }
  .tb-account-dashboard .p-account__inner__content { padding: 30px 20px 38px; }
  .tb-account-dashboard .p-account__inner__content__title { font-size: 32px !important; }
  .tb-account-dashboard__lead { font-size: 16px; }
}

@media (max-width: 420px) {
  .tb-contact-page .c-form_table__name { grid-template-columns: 1fr; max-width: none; }
}

html { scroll-behavior: smooth; }

/* ecforceの機能を残したまま、天然美活の共通外観に整える */
.l-wrapper,
.l-wrapper-none {
  background: var(--tb-paper);
  color: var(--tb-text);
  font-family: var(--tb-sans);
}

/* 全体の文字役割：ecforce標準ページも、見出しは明朝・案内と操作はゴシックに統一する。 */
.p-page_header__inner__title.u-text--head,
.p-account__inner__content__title.u-text--head {
  font-family: var(--tb-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .055em;
}

.p-page_header__inner__lead.u-text--body,
.p-account__inner__content__lead.u-text--body,
.p-account_form .u-text--body,
.p-login .u-text--body,
.p-account__inner__content__form .u-text--body {
  font-family: var(--tb-sans) !important;
}

.p-account_form .u-text--btn,
.p-login .u-text--btn,
.p-account__inner__content__form .u-text--btn {
  font-family: var(--tb-sans) !important;
}

.p-page_header__inner__lead.u-text--body,
.p-account__inner__content__lead.u-text--body {
  color: var(--tb-muted);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
}

/* カート：商品名は明朝、案内・項目・金額内訳は細めのゴシック、操作ボタンは太めのゴシックに分ける。 */
.tb-cart-page {
  color: var(--tb-text);
  font-family: var(--tb-sans);
}

.tb-cart-page .p-page_header__inner__title.u-text--head,
.tb-cart-page .c-cart_item__info__title {
  color: var(--tb-ink) !important;
  font-family: var(--tb-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .035em;
}

.tb-cart-page .u-text--body,
.tb-cart-page .c-cart_item__info__category,
.tb-cart-page .c-cart_item__info__quantity,
.tb-cart-page .c-cart_item__action,
.tb-cart-page .c-cart_submit,
.tb-cart-page .c-cart_submit__block__title,
.tb-cart-page .c-cart_submit__block__link,
.tb-cart-page .c-cart_submit__block__input,
.tb-cart-page .c-billing_list,
.tb-cart-page .c-billing_list__title,
.tb-cart-page .c-billing_list__total,
.tb-cart-page input,
.tb-cart-page label,
.tb-cart-page select,
.tb-cart-page textarea {
  font-family: var(--tb-sans) !important;
}

.tb-cart-page .c-cart_submit,
.tb-cart-page .c-cart_submit__block__input,
.tb-cart-page .c-cart_submit__block__link,
.tb-cart-page .c-billing_list,
.tb-cart-page .c-cart_item__info__category,
.tb-cart-page .c-cart_item__action {
  font-weight: 400;
}

.tb-cart-page .c-cart_submit__block__title,
.tb-cart-page .c-billing_list__title,
.tb-cart-page .c-billing_list__total__title,
.tb-cart-page .c-billing_list__total__price {
  font-family: var(--tb-sans) !important;
  font-weight: 600 !important;
}

.tb-cart-page .c-cart_submit__block__submit,
.tb-cart-page .c-cart_item__info__quantity__submit,
.tb-cart-page .p-cart_content__button,
.tb-cart-page button.u-text--btn {
  font-family: var(--tb-sans) !important;
  font-size: 16px;
  font-weight: 700 !important;
}

/* ログイン後マイページ：詳細画面の大見出しだけ明朝を維持する。 */
.tb-account-dashboard .p-history_detail__block__head__title {
  color: var(--tb-ink) !important;
  font-family: var(--tb-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .035em;
}

/* 一覧性を優先する見出し・注文番号・商品名はゴシックで統一する。 */
.tb-account-dashboard .p-mypage__block__title,
.tb-account-dashboard .p-order_history_summary__order-number,
.tb-account-dashboard .c-cart_item__info__title {
  color: var(--tb-ink) !important;
  font-family: var(--tb-sans) !important;
  font-weight: 500 !important;
  letter-spacing: .035em;
}

.tb-account-dashboard .p-mypage__block__title,
.tb-account-dashboard .p-history_detail__block__head__title {
  font-size: 22px !important;
  line-height: 1.65;
}

.tb-account-dashboard .c-cart_item__info__title {
  font-size: 17px !important;
  line-height: 1.7;
}

.tb-account-dashboard .u-text--body,
.tb-account-dashboard .u-text--btn,
.tb-account-dashboard .c-account_menu__toggle-button,
.tb-account-dashboard .p-order_history_summary,
.tb-account-dashboard button,
.tb-account-dashboard input,
.tb-account-dashboard select,
.tb-account-dashboard textarea {
  font-family: var(--tb-sans) !important;
}

.tb-account-dashboard .p-mypage__block__subscription__item__label,
.tb-account-dashboard .p-mypage__block__subscription__item__date,
.tb-account-dashboard .p-order_history_summary,
.tb-account-dashboard .p-history_list__item.u-text--body {
  font-size: 16px !important;
  line-height: 1.8;
}

.tb-account-dashboard .p-mypage__block__subscription__item__btn,
.tb-account-dashboard .p-order_history_summary__show-details,
.tb-account-dashboard .c-account_menu__logout .u-text--btn {
  font-size: 16px !important;
  font-weight: 700;
}

/* 注文確認・完了：見出しと商品名は明朝、案内・項目・操作はゴシックに統一する。 */
.tb-order-flow {
  color: var(--tb-text);
  font-family: var(--tb-sans);
}

.tb-order-flow .p-page_header__inner__title.u-text--head,
.tb-order-flow .p-checkout_confirm__inner__list__block__title,
.tb-order-flow .p-order_confirmation__heading,
.tb-order-flow .c-billing_list__title,
.tb-order-flow .c-cart_list__title,
.tb-order-flow .p-history_detail__block__head__title,
.tb-order-flow .c-cart_list__list__item__info__title,
.tb-order-flow .p-multiple_shipping_item__name_title {
  color: var(--tb-ink) !important;
  font-family: var(--tb-serif) !important;
  font-weight: 500 !important;
  letter-spacing: .035em;
}

.tb-order-flow .p-page_header__inner__title.u-text--head {
  font-size: clamp(30px, 3vw, 40px) !important;
  line-height: 1.55;
}

.tb-order-flow .p-checkout_confirm__inner__list__block__title,
.tb-order-flow .p-order_confirmation__heading,
.tb-order-flow .c-billing_list__title,
.tb-order-flow .c-cart_list__title {
  font-size: 24px !important;
  line-height: 1.65;
}

.tb-order-flow .c-cart_list__list__item__info__title,
.tb-order-flow .p-multiple_shipping_item__name_title {
  font-size: 16px !important;
  line-height: 1.7;
}

.tb-order-flow .u-text--body,
.tb-order-flow .u-text--btn,
.tb-order-flow .c-steps_to_order__text,
.tb-order-flow .c-confirm_field,
.tb-order-flow button,
.tb-order-flow input,
.tb-order-flow select,
.tb-order-flow textarea {
  font-family: var(--tb-sans) !important;
}

.tb-order-flow .p-checkout_confirm__inner__list .u-text--body,
.tb-order-flow .p-checkout_confirm__caution__block,
.tb-order-flow .c-confirm_field,
.tb-order-flow--complete .p-page_header__inner__lead {
  font-size: 16px !important;
  line-height: 1.8;
}

.tb-order-flow .p-checkout_confirm__inner__list__block__category {
  font-family: var(--tb-sans) !important;
  font-size: 18px !important;
  line-height: 1.7;
}

.tb-order-flow .c-billing_list__detail .u-text--body,
.tb-order-flow .c-cart_list__list__item__info__category,
.tb-order-flow .c-cart_list__list__item__info__variant,
.tb-order-flow .c-cart_list__list__item__info__total .u-text--body {
  font-family: var(--tb-sans) !important;
  line-height: 1.7;
}

.tb-order-flow .c-cart_list__list__item__info__category {
  font-size: 12px !important;
}

.tb-order-flow .c-cart_list__list__item__info__variant {
  font-size: 13px !important;
}

.tb-order-flow .c-cart_list__list__item__info__total .u-text--body {
  font-size: 14px !important;
}

.tb-order-flow .c-cart_list__list__item__info__title.u-text--body {
  font-family: var(--tb-serif) !important;
}

.tb-order-flow .p-checkout_confirm__inner__list__block__submit,
.tb-order-flow .p-checkout_confirm__inner__list__block__back,
.tb-order-flow .p-page_header__inner__btn {
  font-family: var(--tb-sans) !important;
}

.tb-order-flow .p-checkout_confirm__inner__list__block__submit,
.tb-order-flow .p-page_header__inner__btn {
  font-weight: 700;
}

.tb-order-flow--complete .p-page_header__inner__lead.u-text--subhead {
  color: var(--tb-ink);
  font-family: var(--tb-sans) !important;
  font-size: 16px !important;
  font-weight: 600;
  line-height: 1.8;
}

/* 注文者情報入力：大見出しだけを明朝とし、案内・項目・操作は共通のゴシックへ統一する。 */
.tb-order-flow--new .u-text--subhead,
.tb-order-flow--new .u-text--body,
.tb-order-flow--new .u-text--btn,
.tb-order-flow--new .u-text--link,
.tb-order-flow--new .p-checkout,
.tb-order-flow--new .amazon_pay_box,
.tb-order-flow--new label,
.tb-order-flow--new th,
.tb-order-flow--new td,
.tb-order-flow--new button,
.tb-order-flow--new input,
.tb-order-flow--new select,
.tb-order-flow--new textarea {
  font-family: var(--tb-sans) !important;
}

.tb-order-flow--new .p-page_header__inner__title.u-text--head {
  font-family: var(--tb-serif) !important;
}

.tb-order-flow--new .p-page_header__inner__lead,
.tb-order-flow--new .amazon_pay_subtitle,
.tb-order-flow--new .amazon_pay_message,
.tb-order-flow--new .amazon_pay_not_use_message,
.tb-order-flow--new .p-checkout__list__block__inner__content,
.tb-order-flow--new .p-checkout__list__block__inner,
.tb-order-flow--new .c-form_table {
  font-size: 16px !important;
  line-height: 1.8;
}

.tb-order-flow--new .c-form_table th,
.tb-order-flow--new .c-form_table td,
.tb-order-flow--new .c-form_table label,
.tb-order-flow--new .c-form_table input,
.tb-order-flow--new .c-form_table select,
.tb-order-flow--new .c-form_table textarea {
  font-size: 16px !important;
}

.tb-order-flow--new .amazon_pay_title,
.tb-order-flow--new .p-checkout__list__block__inner__title {
  color: var(--tb-ink) !important;
  font-family: var(--tb-sans) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.7;
}

.tb-order-flow--new .p-checkout__bottom__submit,
.tb-order-flow--new .p-checkout__bottom__select {
  font-size: 16px !important;
  font-weight: 700 !important;
}

/* 注文時の利用規約同意：初期構造を保ち、共通の枠線と本文先頭への配置だけを適用する。 */
.tb-order-flow--new .term_label.check_agree {
  align-items: flex-start;
  min-height: 30px;
  cursor: pointer;
}

.tb-order-flow--new .term_label.check_agree input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  flex: 0 0 24px;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  margin: 2px 10px 0 0;
  border: 2px solid #6f8c7d !important;
  border-radius: 3px;
  background: #fff !important;
  box-shadow: 0 0 0 2px rgba(11,82,59,.04);
  cursor: pointer;
}

.tb-order-flow--new .term_label.check_agree:hover input[type="checkbox"] {
  border-color: var(--tb-green) !important;
}

.tb-order-flow--new .term_label.check_agree input[type="checkbox"]:focus-visible {
  outline: 3px solid rgba(181,138,56,.34);
  outline-offset: 3px;
}

.tb-order-flow--new .term_label.check_agree input[type="checkbox"]:checked {
  border-color: var(--tb-green) !important;
  background: var(--tb-green) !important;
}

.tb-order-flow--new .term_label.check_agree .c-form_table__checkbox__frame {
  top: 8px;
  left: 5px;
  z-index: 1;
  width: 14px;
  height: 8px;
  border-color: #fff !important;
  pointer-events: none;
}

.tb-order-flow--new .term_label.check_agree .c-form_table__checkbox__text {
  color: var(--tb-text);
  font-family: var(--tb-sans) !important;
  font-size: 16px !important;
  line-height: 1.8;
}

.tb-order-flow--new .term_label.check_agree .c-form_table__checkbox__text a {
  color: #1769aa !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.tb-order-flow--new .term_label.check_agree .c-form_table__checkbox__text a:hover {
  color: #0f4f83 !important;
}

.tb-order-flow--new .term_label.check_agree .c-form_table__checkbox__text a:focus-visible {
  border-radius: 2px;
  outline: 3px solid rgba(23,105,170,.28);
  outline-offset: 2px;
}

@media (max-width: 719px) {
  .tb-account-dashboard .p-mypage__block__title,
  .tb-account-dashboard .p-history_detail__block__head__title,
  .tb-order-flow .p-checkout_confirm__inner__list__block__title,
  .tb-order-flow .p-order_confirmation__heading,
  .tb-order-flow .c-billing_list__title,
  .tb-order-flow .c-cart_list__title {
    font-size: 21px !important;
  }

  .tb-account-dashboard .p-mypage__block__subscription__item__label,
  .tb-account-dashboard .p-mypage__block__subscription__item__date,
  .tb-account-dashboard .p-order_history_summary,
  .tb-order-flow .p-checkout_confirm__inner__list .u-text--body,
  .tb-order-flow .p-checkout_confirm__caution__block,
  .tb-order-flow .c-confirm_field,
  .tb-order-flow--complete .p-page_header__inner__lead {
    font-size: 16px !important;
  }
}

/* パスワード関連：単独の機能ページも共通の見出し階層と主要操作色を使う。 */
#customers-password-new-view .p-page_header__inner__title.u-text--head,
#customers-password-edit-view .p-page_header__inner__title.u-text--head {
  color: var(--tb-ink) !important;
  font-size: clamp(30px, 3vw, 40px) !important;
  line-height: 1.55;
}

#customers-password-new-view .p-account_form__inner__bottom__mailbtn,
#customers-password-edit-view .p-account_form__inner__bottom__btn {
  background: var(--tb-green) !important;
  color: #fff !important;
  font-family: var(--tb-sans) !important;
  font-weight: 700;
}

#customers-password-new-view .p-account_form__inner__bottom__link,
#customers-password-edit-view .p-account_form__inner__bottom__link {
  color: var(--tb-green) !important;
  font-family: var(--tb-sans) !important;
}

.l-header {
  background: rgba(255, 253, 248, .97) !important;
  border-color: var(--tb-line) !important;
  box-shadow: 0 1px 0 rgba(11, 82, 59, .07);
}

.l-header__inner { padding-inline: clamp(16px, 3vw, 44px); }
.l-header__inner__block__logo img { height: auto; }
.l-header__inner__block__link { color: var(--tb-ink) !important; }

.tb-header__desktop-nav { display: none; }
.l-header__inner__block__item--search,
[data-section-id="login_menu"],
.p-header_menu.--search,
[data-section-id="global_navi"] { display: none !important; }

@media (min-width: 901px) {
  .l-header__inner {
    display: grid;
    width: min(1240px, calc(100% - 64px));
    min-height: 88px !important;
    max-height: none !important;
    height: 88px !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    margin-inline: auto;
    padding-inline: 0;
    align-items: center;
  }

  .tb-header__desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(22px, 2.5vw, 40px);
  }

  .tb-header__desktop-nav--primary { justify-content: flex-start; }
  .tb-header__desktop-nav--secondary { justify-content: flex-end; }
  .tb-header__desktop-nav a {
    color: var(--tb-ink) !important;
    font-family: var(--tb-sans) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    letter-spacing: .06em !important;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity .4s ease;
    will-change: opacity;
  }
  .tb-header__desktop-nav a:hover { opacity: .4; }
  .tb-header__desktop-nav a:focus-visible { outline: 2px solid var(--tb-green); outline-offset: 5px; }

  .tb-header__desktop-nav .tb-header-cart-link--desktop {
    position: relative;
    display: inline-grid;
    width: 32px;
    height: 40px;
    place-items: center;
    overflow: visible;
  }

  .tb-header-cart-link__icon,
  .tb-header-cart-link__icon i {
    display: block;
    font-size: 23px !important;
    line-height: 1;
  }

  .tb-header-cart-link__count {
    position: absolute;
    top: -2px;
    right: -8px;
    display: flex;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--tb-paper);
    border-radius: 999px;
    background: #b54842 !important;
    color: var(--tb-paper) !important;
    font-family: var(--tb-sans) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
  }

  .tb-header__mobile-actions,
  .tb-header__mobile-account { display: none !important; }

  .l-header__inner .logo__block {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0 !important;
    justify-self: center;
    flex-grow: 0;
  }
}

.tb-header-cart-link [data-tb-cart-count][hidden] { display: none !important; }

.l-footer {
  border-color: rgba(255,255,255,.16) !important;
  display: block;
  padding: clamp(58px, 6vw, 76px) 0 32px;
  color: #dfe9e2;
  font-family: var(--tb-sans);
}

.tb-footer__inner {
  width: min(1160px, calc(100% - 64px));
  margin-inline: auto;
}

.tb-footer__top {
  display: grid;
  grid-template-columns: minmax(240px, 1.3fr) minmax(0, 2fr);
  gap: clamp(54px, 7vw, 88px);
  padding-bottom: 54px;
}

.l-footer__logo { margin: 0 0 20px; }
.l-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
  opacity: .96;
}
.tb-footer-tagline {
  max-width: 27em;
  margin: 0;
  padding: 0;
  color: #fffdf8;
  font-family: var(--tb-serif);
  font-size: 14px;
  line-height: 1.9;
  text-align: left;
}

.l-footer .l-footer__menu {
  display: flex;
  justify-content: flex-end;
  max-width: none;
  margin: 0;
}

.l-footer .c-footer_menus {
  display: grid;
  flex: 0 0 auto !important;
  width: max-content !important;
  max-width: 100%;
  grid-template-columns: repeat(3, max-content);
  column-gap: clamp(32px, 3vw, 44px);
  row-gap: 0;
  margin: 0;
}

.l-footer .c-footer_menu {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}

.l-footer .c-footer_menu__title {
  width: auto;
  margin: 0 0 14px;
  color: #fffdf8;
  font-family: var(--tb-serif);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: .06em;
}

.l-footer .c-footer_menu__list {
  display: block;
  width: auto;
  margin: 0;
  padding: 0;
}

.l-footer .c-footer_menu__list__item { margin: 6px 0; }
.l-footer .c-footer_menu__list__item__inner {
  display: inline-block;
  color: #f0f6f1;
  font-family: var(--tb-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.65;
  letter-spacing: .02em;
  text-decoration: none;
}
.l-footer .c-footer_menu__list__item__inner::after { content: none; }

.l-footer .l-footer__info__store {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.2);
}

.l-footer .l-footer__info__store__sns { margin: 0; }
.l-footer .footer_body {
  font-family: var(--tb-sans) !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 900px) {
  .tb-footer__top { grid-template-columns: 1fr; gap: 42px; }
  .l-footer .l-footer__menu { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .l-footer { padding: 58px 0 28px; }
  .tb-footer__inner { width: calc(100% - 40px); }
  .tb-footer__top { padding-bottom: 42px; }
  .l-footer .c-footer_menus {
    width: 100% !important;
    grid-template-columns: 1fr 1fr;
    justify-content: stretch;
    column-gap: 24px;
    row-gap: 34px;
  }
  .l-footer .c-footer_menu__list__item__inner { font-size: 14px !important; }
  .l-footer .l-footer__info__store {
    align-items: flex-start;
    gap: 22px;
  }
}

@media (max-width: 420px) {
  .l-footer .c-footer_menus { grid-template-columns: 1fr; }
  .l-footer .l-footer__info__store { display: block; }
  .l-footer .l-footer__info__store__sns { margin-bottom: 20px; }
}

.tb-home,
.tb-home * { box-sizing: border-box; }

.tb-home {
  overflow: hidden;
  background: var(--tb-paper);
  color: var(--tb-text);
  font-family: var(--tb-sans);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .035em;
}

.tb-home img { display: block; max-width: 100%; }
.tb-home h1,
.tb-home h2,
.tb-home h3,
.tb-home p { margin: 0; }

.tb-home h1,
.tb-home h2,
.tb-home h3 {
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-weight: 500;
  letter-spacing: .055em;
}

.tb-home h2 {
  font-size: clamp(29px, 3.15vw, 48px);
  line-height: 1.55;
}

.tb-shell {
  width: min(1160px, calc(100% - 64px));
  margin-inline: auto;
}

.tb-section { padding-block: clamp(76px, 9vw, 132px); }

.tb-kicker {
  margin-bottom: 18px !important;
  color: var(--tb-ink);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
}

.tb-kicker::before {
  display: inline-block;
  width: 24px;
  height: 1px;
  margin-right: 12px;
  vertical-align: middle;
  background: var(--tb-gold);
  content: "";
}

.tb-text-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding-bottom: 5px;
  color: var(--tb-ink) !important;
  border-bottom: 1px solid currentColor;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  transition: gap .25s ease, opacity .25s ease;
}

.tb-text-link:hover { gap: 25px; opacity: .72; }

/* ファーストビュー：商品ではなく、姿勢を最初に伝える */
.tb-hero {
  position: relative;
  min-height: clamp(600px, 74vw, 790px);
  display: grid;
  align-items: center;
  background-image: linear-gradient(90deg, rgba(250,248,241,.96) 0%, rgba(250,248,241,.88) 39%, rgba(250,248,241,.16) 70%), var(--tb-hero-image);
  background-position: center;
  background-size: cover;
}

.tb-hero::after {
  position: absolute;
  inset: auto 0 0;
  height: 100px;
  background: linear-gradient(transparent, rgba(255,253,248,.72));
  content: "";
  pointer-events: none;
}

.tb-hero__inner { position: relative; z-index: 1; padding-block: 90px; }
.tb-hero__inner > * { max-width: 680px; }

.tb-hero__title {
  max-width: 900px !important;
  margin-bottom: 28px !important;
  font-size: clamp(42px, 4.65vw, 66px);
  line-height: 1.42;
}

.tb-hero__title::after {
  display: block;
  width: 78px;
  height: 5px;
  margin-top: 24px;
  background: var(--tb-leaf-soft);
  content: "";
}

.tb-hero__lead {
  margin-bottom: 0 !important;
  color: #3e5148;
  font-size: clamp(16px, 1.45vw, 19px);
  font-weight: 500;
  line-height: 2.05;
}

.tb-hero__lead-break-mobile {
  display: none;
}

/* はじめての方へ */
.tb-first {
  display: grid;
  grid-template-columns: minmax(210px, .72fr) minmax(0, 1.75fr);
  gap: clamp(44px, 7vw, 112px);
  align-items: start;
  border-bottom: 1px solid var(--tb-line);
}

.tb-first__label {
  padding-top: 11px;
  color: var(--tb-ink);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .11em;
}

.tb-first__body h2 { margin-bottom: 25px; font-size: clamp(28px, 3.3vw, 46px); }
.tb-first__body h2 span { display: block; }
.tb-first__body p { max-width: 730px; font-size: clamp(16px, 1.45vw, 18px); line-height: 2.05; }

/* ブランド思想 */
.tb-principle { background: var(--tb-ink); color: #edf3ee; }

.tb-principle__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(48px, 9vw, 136px);
  align-items: center;
}

.tb-principle .tb-kicker,
.tb-principle h2,
.tb-principle .tb-text-link { color: #fffdf8 !important; }
.tb-principle .tb-kicker::before { background: #d7b765; }
.tb-principle h2 { font-size: clamp(38px, 5vw, 66px); }
.tb-principle__copy p {
  max-width: 31em;
  margin-bottom: 0;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 2.15;
  line-break: strict;
  word-break: auto-phrase;
  white-space: pre-line;
  text-wrap: pretty;
}

@media (min-width: 768px) and (max-width: 899px) {
  .tb-principle__grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .tb-principle__copy p { max-width: 40em; }
}

@media (max-width: 359px) {
  .tb-principle .tb-shell { width: calc(100% - 24px); }
}

/* 共通セクション見出し */
.tb-section-head { max-width: 1080px; margin-bottom: clamp(46px, 6vw, 72px); }
.tb-section-head h2 { margin-bottom: 20px; }
.tb-section-head > p:last-child { max-width: 680px; color: var(--tb-muted); font-size: 16px; line-height: 2; }

.tb-section-head--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr);
  gap: clamp(48px, 9vw, 130px);
  max-width: none;
  align-items: end;
}

.tb-section-head--split > p { padding-bottom: 10px; }
.tb-home-mobile-break { display: none; }

/* ものづくり：問いから客観的な確認まで、一本の思考として見せる */
.tb-promises {
  position: relative;
  background:
    radial-gradient(circle at 91% 8%, rgba(135, 185, 78, .11), transparent 25%),
    linear-gradient(180deg, var(--tb-paper) 0%, #f7f5ed 100%);
  border-top: 1px solid rgba(180, 138, 54, .17);
  border-bottom: 1px solid rgba(180, 138, 54, .17);
}

.tb-promises__head { max-width: 860px; margin-bottom: clamp(64px, 7vw, 92px); }
.tb-promises__head h2 { text-wrap: balance; }
.tb-section-head > .tb-promises__lead {
  max-width: 780px;
  color: var(--tb-text);
  font-size: 16px;
  line-height: 2;
}
.tb-promises__lead span { display: block; }

.tb-promises__list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  view-timeline-name: --tb-promises-flow;
  view-timeline-axis: block;
}

.tb-promises__list::before,
.tb-promises__list::after {
  position: absolute;
  z-index: 0;
  top: 31px;
  right: 12.5%;
  left: 12.5%;
  height: 1px;
  content: "";
}
.tb-promises__list::before { background: var(--tb-line); }
.tb-promises__list::after {
  background: var(--tb-gold);
  transform-origin: left center;
}

.tb-promises__list li {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding-inline: clamp(14px, 2vw, 28px);
}
.tb-promises__list li:first-child { padding-left: 0; }
.tb-promises__list li:last-child { padding-right: 0; }
.tb-promises__marker {
  display: grid;
  width: 64px;
  height: 64px;
  margin: 0 auto 30px;
  place-items: center;
  border: 1px solid var(--tb-gold);
  border-radius: 50%;
  background: var(--tb-paper);
  box-shadow: 0 0 0 8px rgba(255, 253, 248, .78);
}
.tb-promises__marker span {
  color: var(--tb-gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  transform: translateX(.08em);
}
.tb-promises__content h3 {
  min-height: 3.2em;
  margin-bottom: 18px;
  font-size: clamp(20px, 1.65vw, 23px);
  line-height: 1.6;
  text-align: center;
  text-wrap: balance;
}
.tb-promises__content p {
  color: var(--tb-muted);
  font-size: 15px;
  line-height: 2;
  text-wrap: pretty;
}
.tb-promises__conclusion {
  max-width: 780px;
  margin: clamp(62px, 7vw, 88px) auto 0 !important;
  padding-top: 30px;
  border-top: 1px solid rgba(180, 138, 54, .45);
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-size: clamp(19px, 1.75vw, 23px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .045em;
  text-align: center;
  text-wrap: balance;
}

.tb-promises__conclusion span,
.tb-promises__conclusion strong {
  display: block;
}

.tb-promises__conclusion strong {
  margin-top: 10px;
  color: var(--tb-green);
  font-size: 1.16em;
  font-weight: 500;
  letter-spacing: .08em;
}

.tb-promises__conclusion strong:first-child {
  margin-top: 0;
  margin-bottom: 10px;
}

/* トップページの結び：従来のセクション高を保ちながら、3行を上下中央へ置く。 */
.tb-home > .tb-promises {
  padding-bottom: 0;
}

.tb-home > .tb-promises .tb-promises__conclusion {
  padding-block: calc(15px + clamp(38px, 4.5vw, 66px));
}

@keyframes tb-promises-flow-x {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@supports (animation-timeline: view()) {
  .tb-promises__list::after {
    animation: tb-promises-flow-x linear both;
    animation-timeline: --tb-promises-flow;
    animation-range: entry 12% cover 38%;
  }
}

/* 運営する人：実在する二人の普段の仕事に近い空気を、自然光の中で見せる */
.tb-people { background: var(--tb-warm); }
.tb-people__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); align-items: stretch; }
.tb-people__photo { position: relative; min-height: 520px; overflow: hidden; background: #e7e8dc; }
.tb-people__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.tb-people__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 4.2vw, 54px); background: var(--tb-paper); }
.tb-people__copy h2 { margin-bottom: 28px; font-size: clamp(30px, 3.3vw, 44px); }
.tb-people__copy > p:not(.tb-kicker):not(.tb-people__note) { margin-bottom: 22px; line-height: 2.05; }
.tb-people__note { margin-bottom: 28px !important; color: var(--tb-muted); font-size: 14px; }
.tb-people__copy .tb-text-link { align-self: flex-start; }

/* 商品：商品が増えても同じカードを追加するだけ */
.tb-products__grid { display: grid; grid-template-columns: 1fr; gap: 30px; }
.tb-product-card { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); min-height: 430px; overflow: hidden; border: 1px solid var(--tb-line); background: #fff; box-shadow: var(--tb-shadow); }
.tb-product-card:only-child { grid-column: 1 / -1; }
.tb-product-card__visual { display: grid; place-items: center; min-height: 380px; padding: 40px; background: radial-gradient(circle at 50% 44%, #fff 0, #f2f7ec 52%, #e8efe1 100%); }
.tb-product-card__visual img { width: 100%; max-height: 300px; object-fit: contain; transition: transform .45s ease; }
.tb-product-card__visual--photo { padding: 0 !important; }
.tb-product-card__visual--photo img { height: 100%; max-height: none !important; object-fit: cover; }
.tb-product-card:hover .tb-product-card__visual img { transform: translateY(-4px); }
.tb-product-card__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 5vw, 70px); }
.tb-product-card__category { margin-bottom: 12px !important; color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.tb-product-card h3 { margin-bottom: 20px; font-size: clamp(26px, 2.8vw, 38px); line-height: 1.5; }
.tb-product-card__content > p:not(.tb-product-card__category) { margin-bottom: 28px; color: var(--tb-muted); line-height: 2; }

.tb-button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: 24px;
  padding: 13px 26px;
  border: 1px solid var(--tb-ink);
  background: var(--tb-ink);
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  transition: background .25s ease, color .25s ease;
}
.tb-button:hover { background: #fff; color: var(--tb-ink) !important; }

/* 将来の商品領域 */
.tb-future { background: #eef2e8; }
.tb-future h2 { font-size: clamp(29px, 2.9vw, 44px); }
.tb-future__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(50px, 10vw, 150px); align-items: start; }
.tb-future__grid > div:last-child > p { margin-bottom: 34px; font-size: clamp(16px, 1.4vw, 18px); line-height: 2.1; }
.tb-future__list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); margin: 0; padding: 0; border-top: 1px solid #bdcbbd; list-style: none; }
.tb-future__list li { padding: 17px 4px; border-bottom: 1px solid #bdcbbd; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 18px; }

/* 読みもの */
.tb-journal__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.tb-journal-card { position: relative; display: block; color: var(--tb-ink) !important; text-decoration: none !important; }
.tb-journal-card__image { display: block; aspect-ratio: 4 / 3; margin-bottom: 22px; overflow: hidden; background: var(--tb-mist); }
.tb-journal-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tb-journal-card:hover .tb-journal-card__image img { transform: scale(1.025); }
.tb-journal-card__category { display: block; margin-bottom: 8px; color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.tb-journal-card strong { display: block; padding-right: 46px; font-family: var(--tb-serif); font-size: 21px; font-weight: 500; line-height: 1.65; }
.tb-journal-card__arrow { position: absolute; right: 3px; bottom: 3px; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #aebcaf; border-radius: 50%; transition: background .25s, color .25s; }
.tb-journal-card:hover .tb-journal-card__arrow { background: var(--tb-ink); color: #fff; }
.tb-journal__more { display: flex; justify-content: flex-end; margin-top: 40px; }

/* フッター前の情報導線 */
.tb-gateway { background: #f5f2e9; }
.tb-gateway__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #c9d1c9; border-left: 1px solid #c9d1c9; }
.tb-gateway-card { position: relative; display: flex; min-height: 180px; flex-direction: column; justify-content: space-between; padding: 28px; border-right: 1px solid #c9d1c9; border-bottom: 1px solid #c9d1c9; color: var(--tb-ink) !important; text-decoration: none !important; transition: background .25s; }
.tb-gateway-card:hover { background: #fff; }
.tb-gateway-card > span { font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.tb-gateway-card strong { max-width: 85%; font-family: var(--tb-serif); font-size: 21px; font-weight: 500; line-height: 1.55; }
.tb-gateway-card i { position: absolute; right: 24px; bottom: 24px; font-style: normal; }
.tb-support { margin-top: 36px; border-top: 1px solid #c9d1c9; }
.tb-support__row { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 76px; padding: 18px 28px; border-bottom: 1px solid #c9d1c9; }
.tb-support__row > span { color: var(--tb-text); }
.tb-support a { display: inline-flex; align-items: center; color: var(--tb-ink) !important; font-weight: 700; text-decoration: none !important; white-space: nowrap; }
.tb-support a span { margin-left: 16px; }

@media (max-width: 1024px) {
  .tb-shell { width: min(100% - 48px, 920px); }
  .tb-first { grid-template-columns: minmax(285px, .85fr) minmax(0, 1.6fr); gap: 40px; }
  .tb-promises__head { max-width: 760px; }
  .tb-promises__list { grid-template-columns: 1fr; }
  .tb-promises__list::before,
  .tb-promises__list::after {
    top: 32px;
    right: auto;
    bottom: 32px;
    left: 31px;
    width: 1px;
    height: auto;
  }
  .tb-promises__list::after { transform-origin: center top; }
  .tb-promises__list li,
  .tb-promises__list li:first-child,
  .tb-promises__list li:last-child {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 28px;
    padding: 0 0 48px;
  }
  .tb-promises__list li:last-child { padding-bottom: 0; }
  .tb-promises__marker { margin: 0; }
  .tb-promises__content { padding-top: 10px; }
  .tb-promises__content h3 { min-height: 0; margin-bottom: 10px; text-align: left; }
  .tb-promises__content h3 br { display: none; }
  .tb-promises__content p { max-width: 640px; }

  @keyframes tb-promises-flow-y {
    from { transform: scaleY(0); }
    to { transform: scaleY(1); }
  }

  @supports (animation-timeline: view()) {
    .tb-promises__list::after {
      animation-name: tb-promises-flow-y;
      animation-range: entry 8% cover 72%;
    }
  }
  .tb-product-card { grid-template-columns: 1fr 1fr; }
  .tb-gateway__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .tb-home { font-size: 16px; line-height: 1.85; letter-spacing: .025em; }
  .tb-shell { width: calc(100% - 40px); }
  .tb-section { padding-block: 72px; }
  .tb-kicker { margin-bottom: 14px !important; font-size: 12px; }
  .tb-home h2 { font-size: clamp(28px, 8vw, 36px); line-height: 1.55; }

  .tb-hero {
    min-height: 660px;
    align-items: start;
    background-image: linear-gradient(180deg, rgba(250,248,241,.96) 0%, rgba(250,248,241,.90) 43%, rgba(250,248,241,.1) 72%), var(--tb-hero-image);
    background-position: 63% center;
  }
  .tb-hero__inner { padding-top: 74px; }
  .tb-hero__title { max-width: none !important; margin-bottom: 22px !important; font-size: clamp(28px, 7.6vw, 31px); line-height: 1.62; }
  .tb-hero__title::after { width: 60px; margin-top: 18px; }
  .tb-hero__lead { max-width: 21em; margin-bottom: 0 !important; font-size: 16px; line-height: 1.95; }
  .tb-hero__lead-break-mobile { display: block; }

  .tb-first,
  .tb-principle__grid,
  .tb-section-head--split,
  .tb-people__grid,
  .tb-future__grid { grid-template-columns: 1fr; }
  .tb-first { gap: 24px; }
  .tb-first__label { padding-top: 0; }
  .tb-first__body h2 { font-size: clamp(25px, 7.4vw, 29px); }
  .tb-first__body h2 span { white-space: nowrap; }

  .tb-principle__grid { gap: 34px; }
  .tb-principle h2 { font-size: 42px; }
  .tb-principle__copy p { line-height: 2; }

  .tb-section-head { margin-bottom: 44px; }
  .tb-section-head--split { gap: 22px; }
  .tb-section-head--split br { display: inline; }

  .tb-promises__head { margin-bottom: 52px; }
  .tb-promises__head h2 { font-size: clamp(27px, 8vw, 32px); }
  .tb-section-head > .tb-promises__lead { font-size: 16px; line-height: 1.95; }
  .tb-promises__lead span { display: inline; }
  .tb-promises__list li,
  .tb-promises__list li:first-child,
  .tb-promises__list li:last-child { gap: 20px; padding-bottom: 44px; }
  .tb-promises__list li:last-child { padding-bottom: 0; }
  .tb-promises__content { padding-top: 8px; }
  .tb-promises__content h3 { font-size: 22px; }
  .tb-promises__content p { font-size: 16px; line-height: 1.95; }
  .tb-promises__conclusion {
    margin-top: 56px !important;
    padding-top: 24px;
    font-size: 18px;
    line-height: 1.95;
    text-align: center;
  }
  .tb-promises__conclusion strong {
    margin-bottom: 12px;
    font-size: clamp(18px, 5.8vw, 23px);
    letter-spacing: .035em;
    line-height: 1.65;
    white-space: nowrap;
  }
  .tb-promises__conclusion span { text-align: center; }

  .tb-home > .tb-promises .tb-promises__conclusion {
    padding-block: 48px;
  }

  .tb-home-mobile-break { display: inline; }

  .tb-people { padding-block: 0; }
  .tb-people__grid { width: 100%; }
  .tb-people__photo { min-height: 360px; }
  .tb-people__photo img { object-position: center; }
  .tb-people__copy { padding: 54px 20px 70px; }

  .tb-products__grid { grid-template-columns: 1fr; }
  .tb-product-card,
  .tb-product-card:only-child { grid-column: auto; grid-template-columns: 1fr; }
  .tb-product-card__visual { min-height: 270px; padding: 28px; }
  .tb-product-card__visual img { max-height: 220px; }
  .tb-product-card__content { padding: 32px 24px 36px; }
  .tb-product-card h3 { font-size: 29px; }
  .tb-button { width: 100%; align-self: stretch; }

  .tb-future__grid { gap: 32px; }
  .tb-future__list li { font-size: 16px; }

  .tb-journal__grid { grid-template-columns: 1fr; gap: 44px; }
  .tb-journal-card strong { font-size: 20px; }
  .tb-journal__more { justify-content: flex-start; margin-top: 34px; }

  .tb-gateway__grid { grid-template-columns: 1fr; }
  .tb-gateway-card { min-height: 132px; padding: 24px; }
  .tb-gateway-card strong { margin-top: 22px; font-size: 20px; }
  .tb-support__row { align-items: flex-start; flex-direction: column; gap: 8px; min-height: 0; padding: 18px 4px; }
  .tb-support__row > span { font-size: 14px; line-height: 1.7; }
  .tb-support__row a { width: 100%; justify-content: space-between; min-height: 44px; font-size: 16px; }
}

@media (max-width: 374px) {
  .tb-shell { width: calc(100% - 32px); }
  .tb-hero__title { font-size: 24px; }
  .tb-hero__lead { font-size: 16px; }
  .tb-future__list { grid-template-columns: 1fr; }
}

/* =========================================================
   ブロッコリースプラウトEX 統合商品ページ
   ========================================================= */
.tb-bs-product-page {
  overflow: clip;
  max-width: none;
  color: var(--tb-ink);
  background: var(--tb-paper);
}

.tb-bs-product-page .tb-bs,
.tb-bs-product-page .tb-bs-purchase {
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .035em;
}

.tb-bs-product-page a[href],
.tb-bs-product-page button:not(:disabled),
.tb-bs-product-page [role="tab"]:not([aria-disabled="true"]),
.tb-bs-product-page summary,
.tb-bs-product-page label[for] { cursor: pointer; }

.tb-bs-product-page .tb-bs h1,
.tb-bs-product-page .tb-bs h2,
.tb-bs-product-page .tb-bs h3,
.tb-bs-product-page .tb-bs-purchase h2 {
  margin: 0;
  color: var(--tb-green);
  font-family: "Zen Old Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 500;
}

.tb-bs-product-page .tb-bs p,
.tb-bs-product-page .tb-bs ul,
.tb-bs-product-page .tb-bs ol,
.tb-bs-product-page .tb-bs dl { margin-top: 0; }

.tb-bs-product-page .tb-shell { width: min(1160px, calc(100% - 64px)); }
.tb-bs-section { padding-block: 120px; }
.tb-bs-product-page .tb-mobile-only { display: none; }

.tb-bs-hero {
  background:
    radial-gradient(circle at 16% 22%, rgba(205, 229, 169, .34), transparent 25%),
    linear-gradient(115deg, #f8f6ee 0 48%, #eef4e9 48% 100%);
}

.tb-bs-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: center;
  min-height: 720px;
}

.tb-bs-hero__copy { position: relative; z-index: 1; padding: 96px 38px 86px 0; }
.tb-bs-hero__copy .tb-kicker { width: fit-content; max-width: 100%; margin-bottom: 24px; padding-top: 14px; border-top: 1px solid rgba(180, 138, 54, .72); }
.tb-bs-hero__copy .tb-kicker::before,
.tb-bs-hero__mobile-kicker::before { display: none; }
.tb-bs-hero__mobile-kicker { display: none; }
.tb-bs-hero__product-name {
  margin: 0 0 16px;
  color: var(--tb-gold);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
}
.tb-bs-hero__copy h1 { font-size: clamp(44px, 4.2vw, 62px); line-height: 1.5; letter-spacing: .065em; }
.tb-bs-hero__copy h1 span { display: block; white-space: nowrap; }
.tb-bs-product-page .tb-bs .tb-bs-hero__lead { margin: 44px 0 10px; color: var(--tb-green); font-weight: 600; }
.tb-bs-hero__copy > p:not(.tb-kicker):not(.tb-bs-hero__lead):not(.tb-bs-hero__product-name) { margin-bottom: 0; }
.tb-bs-hero__actions { display: flex; align-items: center; gap: 28px; margin-top: 42px; }
.tb-bs-purchase-jump-wrap { display: flex; justify-content: center; }
.tb-bs-purchase-jump { display: grid; grid-template-columns: minmax(0, 1fr) 48px; align-items: center; width: min(760px, 100%); padding: 20px 24px 20px 28px; border-top: 1px solid rgba(180, 138, 54, .52); border-bottom: 1px solid rgba(180, 138, 54, .52); color: var(--tb-green); background: rgba(255, 253, 248, .72); text-decoration: none; transition: background .2s ease, border-color .2s ease; }
.tb-bs-purchase-jump:hover { border-color: var(--tb-gold); background: #fffdf8; }
.tb-bs-purchase-jump > span { display: grid; gap: 4px; }
.tb-bs-purchase-jump small { color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.tb-bs-purchase-jump strong { font-family: "Zen Old Mincho", serif; font-size: 22px; font-weight: 500; line-height: 1.55; letter-spacing: .055em; }
.tb-bs-purchase-jump i { display: grid; width: 42px; height: 42px; border: 1px solid #9db6a7; border-radius: 50%; place-items: center; font-style: normal; font-size: 17px; transition: color .2s ease, background .2s ease; }
.tb-bs-purchase-jump:hover i { color: #fff; background: var(--tb-green); }
.tb-bs-hero__secondary { padding: 8px 2px; border-bottom: 1px solid rgba(0, 76, 59, .44); white-space: nowrap; }

.tb-button--purchase {
  min-width: 190px;
  min-height: 58px;
  border-radius: 14px;
  background: #c94c2d;
  border-color: #c94c2d;
  box-shadow: 0 4px 0 #9e351f;
}
.tb-button--purchase:hover { background: #b83f24; border-color: #b83f24; transform: translateY(1px); box-shadow: 0 3px 0 #8f2f1d; }

.tb-bs-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin: 0;
  padding: 0;
  color: var(--tb-green);
  font-size: 13px;
  list-style: none;
}
.tb-bs-product-page .tb-bs .tb-bs-hero__facts { margin-top: 50px; }
.tb-bs-hero__facts li::before { content: "✓"; margin-right: 7px; color: #74a945; font-weight: 700; }
.tb-bs-hero__visual { align-self: center; overflow: hidden; aspect-ratio: 4 / 3; }
.tb-bs-hero__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.tb-bs-purchase { padding: 88px 0 48px; background: #eef3e9; }
.tb-bs-purchase__head { width: min(760px, 100%); margin: 0 auto 52px; text-align: center; }
.tb-bs-purchase__head .tb-kicker { margin-bottom: 16px; }
.tb-bs-purchase__head h2 { font-size: clamp(34px, 4vw, 48px); line-height: 1.55; letter-spacing: .065em; }
.tb-bs-purchase__head > p:last-child { margin: 22px 0 0; color: var(--tb-muted); }
.tb-bs-purchase__native { padding: 26px 46px 46px; border: 1px solid #c8d7ca; border-radius: 18px; background: #fff; box-shadow: 0 22px 60px rgba(43, 76, 57, .08); }
.tb-bs-purchase__native .l-container__row { width: 100%; max-width: none; margin: 0; padding: 0; }
.tb-bs-purchase__native .p-product_content { width: 100%; max-width: none; }
.tb-bs-product-page .p-product_content__breadcrumbs { display: none; }
.tb-bs-purchase__native .p-product_content__inner { gap: 52px; }
.tb-bs-purchase__native .p-product_content__inner__img,
.tb-bs-purchase__native .p-product_content__inner__info { min-width: 0; }
.tb-bs-purchase__native .c-product_info__name { color: var(--tb-green); font-family: "Zen Old Mincho", "Yu Mincho", serif; font-size: 30px; line-height: 1.55; }
.tb-bs-purchase__native .c-product_info__co_selling { margin-top: 28px; }
.tb-bs-purchase__native .c-product_info__co_selling__nav { overflow: hidden; border: 1px solid #aec6ae; border-radius: 10px 10px 0 0; }
.tb-bs-purchase__native .tb-bs-purchase-tabs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; overflow: visible; border: 0; border-radius: 0; }
.tb-bs-purchase__native .tb-bs-purchase-tabs .c-product_info__co_selling__nav__list { display: block !important; width: 100% !important; min-width: 0; min-height: 64px; overflow: hidden; float: none !important; border: 1px solid #aec6ae; border-radius: 9px; box-sizing: border-box; }
.tb-bs-purchase__native .tb-bs-purchase-tabs__single { order: 1; }
.tb-bs-purchase__native .tb-bs-purchase-tabs__recurring { order: 2; }
.tb-bs-purchase__native .tb-bs-purchase-tabs__related { order: 3; grid-column: 1 / -1; }
.tb-bs-purchase__native .c-product_info__co_selling__nav__list { min-height: 64px; }
.tb-bs-purchase__native .c-product_info__co_selling__nav__list a { display: flex; min-height: 64px; flex-direction: column; gap: 1px !important; align-items: center; justify-content: center; border-radius: 8px; font-weight: 700; line-height: 1.35; text-decoration: none; transition: border-color .24s ease, color .24s ease, background-color .24s ease, box-shadow .24s ease; }
.tb-bs-purchase__native .c-product_info__co_selling__nav__list a::after { margin: 0 !important; color: currentColor; content: "タップして表示"; font-size: 12px; font-weight: 700; line-height: 1.2; transition: color .24s ease, background-color .24s ease, opacity .24s ease; }
.tb-bs-purchase__native .c-product_info__co_selling__nav__list.active a,
.tb-bs-purchase__native .c-product_info__co_selling__nav__list a.active { color: #fff !important; background: var(--tb-green) !important; box-shadow: 0 6px 16px rgba(11, 82, 59, .16); }
.tb-bs-purchase__native .c-product_info__co_selling__nav__list.active a::after,
.tb-bs-purchase__native .c-product_info__co_selling__nav__list a.active::after { padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .17); content: "✓ 選択中"; }
.tb-bs-purchase__native .c-product_info__co_selling__tab_contents { border-color: #aec6ae; }
.tb-bs-purchase__native .c-product_info__co_selling__tab_content { padding: 24px; border-bottom: 1px solid var(--tb-line); }
.tb-bs-purchase__native .c-product_info__co-selling-product__co-btn-add-wide,
.tb-bs-purchase__native .c-product_info__co-selling-product__co-btn-add,
.tb-bs-purchase__native .c-product_info__btn,
.tb-bs-purchase__native button[type="submit"] {
  min-height: 58px;
  border-radius: 12px;
  color: #fff !important;
  background: #c94c2d !important;
  box-shadow: 0 4px 0 #9e351f;
  font-size: 16px;
  font-weight: 700;
}

.tb-bs-heading--split { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 100px; align-items: start; }
.tb-bs-heading--split > div { min-width: 0; }
.tb-bs-heading--split h2,
.tb-bs-heading--center h2 { font-size: clamp(38px, 4.6vw, 58px); line-height: 1.55; letter-spacing: .06em; }
.tb-bs-heading__copy { padding-top: 54px; color: var(--tb-muted); }
.tb-bs-product-page .tb-bs-heading__copy > p { margin: 0 !important; line-height: 2; }
.tb-bs-product-page .tb-bs-heading__copy > p + p { margin-top: 20px !important; }
.tb-bs-heading--center { width: min(820px, 100%); margin: 0 auto 68px; text-align: center; }
.tb-bs-heading--center .tb-kicker { justify-content: center; }
.tb-bs-heading--center > p:last-child { margin-top: 26px; color: var(--tb-muted); }

.tb-bs-origin { background: #f7f4ea; }
.tb-bs-equation { margin-top: 80px; }
.tb-bs-equation__ingredients { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; align-items: stretch; }
.tb-bs-equation article { overflow: hidden; min-width: 0; min-height: 440px; border: 1px solid var(--tb-line); border-radius: 14px; background: rgba(255,255,255,.72); box-shadow: 0 14px 38px rgba(43, 76, 57, .055); }
.tb-bs-equation__visual { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tb-bs-equation__visual img { width: 100%; height: 100%; object-fit: cover; }
.tb-bs-equation__body { padding: 28px 24px 30px; }
.tb-bs-equation__answer { color: #fff; border-color: var(--tb-green) !important; background: var(--tb-green) !important; }
.tb-bs-equation__answer .tb-bs-equation__visual { border-bottom: 1px solid rgba(255,255,255,.2); }
.tb-bs-equation__answer .tb-bs-equation__visual img { object-position: center 38%; }
.tb-bs-equation__number { color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .12em; }
.tb-bs-product-page .tb-bs-equation h3 { margin: 18px 0 22px; font-size: 25px; line-height: 1.55; letter-spacing: .05em; }
.tb-bs-product-page .tb-bs-equation__answer h3 { color: #fff; }
.tb-bs-equation p { margin-bottom: 0; color: var(--tb-muted); font-size: 14px; line-height: 1.85; }
.tb-bs-equation__answer p { color: rgba(255,255,255,.82); }
.tb-bs-equation__connector {
  display: none;
  align-items: center;
  justify-content: center;
}
.tb-bs-equation__merge {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  width: min(1000px, calc(100% - 80px));
  margin: 64px auto 0;
  overflow: hidden;
  border: 1px solid rgba(180, 138, 54, .38);
  border-radius: 18px;
  background: rgba(238, 244, 233, .76);
  box-shadow: 0 18px 46px rgba(43, 76, 57, .06);
}
.tb-bs-equation__merge-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 54px 50px;
}
.tb-bs-product-page .tb-bs-equation__merge h3 {
  margin: 17px 0 24px;
  font-size: clamp(29px, 3.2vw, 40px);
  line-height: 1.62;
  letter-spacing: .06em;
}
.tb-bs-product-page .tb-bs-equation__merge-copy > p:not(.tb-bs-equation__product-name) {
  margin: 0;
  color: var(--tb-muted);
  font-size: 15px;
  line-height: 2;
}
.tb-bs-product-page .tb-bs-equation__merge-copy > p:not(.tb-bs-equation__product-name) + p:not(.tb-bs-equation__product-name) { margin-top: 12px; }
.tb-bs-equation__source-mark { margin-left: .08em; font-size: .62em; line-height: 0; vertical-align: super; }
.tb-bs-equation__source-note { width: min(1000px, calc(100% - 80px)); margin: 18px auto 0; color: #68756d !important; font-size: 12px !important; line-height: 1.85 !important; }
.tb-bs-product-page .tb-bs-equation__product-name {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin: 28px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(180, 138, 54, .48);
  color: var(--tb-green);
  font-family: "Zen Old Mincho", "Yu Mincho", serif;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: .08em;
}
.tb-bs-equation__merge-visual { display: block; min-height: 100%; overflow: hidden; }
.tb-bs-equation__merge-visual img { width: 100%; height: 100%; object-fit: cover; }
.tb-bs-equation__answer { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); width: min(1000px, 100%); min-height: 0 !important; margin: 0 auto; }
.tb-bs-equation__answer .tb-bs-equation__visual { height: 100%; aspect-ratio: auto; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 0; }
.tb-bs-equation__answer .tb-bs-equation__body { display: flex; flex-direction: column; justify-content: center; padding: 46px 52px; }

.tb-bs-development { padding-bottom: 0; background: #fffdf9; }
.tb-bs-development__steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; list-style: none; }
.tb-bs-development__steps::before { content: ""; position: absolute; top: 33px; left: 12.5%; right: 12.5%; height: 1px; background: var(--tb-gold); }
.tb-bs-development__steps li { position: relative; padding: 0 28px; text-align: center; }
.tb-bs-development__steps li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 66px; height: 66px; margin: 0 auto 34px; border: 1px solid var(--tb-gold); border-radius: 50%; background: #fffdf9; color: var(--tb-gold); font-size: 13px; font-weight: 700; }
.tb-bs-development__steps h3 { min-height: 92px; font-size: 25px; line-height: 1.65; }
.tb-bs-development__steps p { margin: 22px 0 0; color: var(--tb-muted); font-size: 14px; text-align: left; }

.tb-bs-formulation { padding-top: 72px; background: #eef4e9; }
.tb-bs-formulation__intro { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 58px; align-items: center; width: min(1080px, 100%); margin: 0 auto; }
.tb-bs-formulation__heading { width: 100%; margin: 0; text-align: left; }
.tb-bs-formulation__heading h2 { margin-top: 16px; font-size: clamp(44px, 4.2vw, 52px); line-height: 1.5; letter-spacing: .055em; }
.tb-bs-formulation__heading > p:last-child { margin: 24px 0 0; color: var(--tb-muted); font-size: 16px; line-height: 1.95; }
.tb-bs-formulation__visual { display: block; overflow: hidden; width: 100%; aspect-ratio: 4 / 3; border: 1px solid rgba(11, 82, 59, .16); background: #fff; }
.tb-bs-formulation__visual img { width: 100%; height: 100%; object-fit: cover; }
.tb-bs-formulation__method { width: min(1080px, 100%); margin: 58px auto 0; }
.tb-bs-product-page .tb-bs-formulation__method > h3 { margin-bottom: 16px; font-size: 30px; line-height: 1.6; }
.tb-bs-formulation__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border: 1px solid #b9cbb8; background: rgba(255,255,255,.82); list-style: none; }
.tb-bs-formulation__steps li { position: relative; box-sizing: border-box; min-width: 0; min-height: 210px; padding: 30px 26px 32px; text-align: center; }
.tb-bs-formulation__steps li + li { border-left: 1px solid #c7d5c4; }
.tb-bs-formulation__steps li:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: 50%; right: -7px; width: 12px; height: 12px; border-top: 1px solid var(--tb-gold); border-right: 1px solid var(--tb-gold); background: #fbfcf8; transform: translateY(-50%) rotate(45deg); }
.tb-bs-formulation__steps span,
.tb-bs-formulation__steps strong { display: block; }
.tb-bs-formulation__steps span { color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .14em; }
.tb-bs-formulation__steps strong { margin-top: 16px; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 23px; font-weight: 500; line-height: 1.55; }
.tb-bs-product-page .tb-bs-formulation__steps p { margin: 12px 0 0; color: var(--tb-muted); font-size: 16px; line-height: 1.82; }
.tb-bs-formulation__steps .tb-bs-formulation__ingredient { display: inline-block; color: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; }
.tb-bs-formulation__kale { display: grid; box-sizing: border-box; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(1080px, 100%); margin: 52px auto 0; overflow: hidden; border: 1px solid #b8cbb9; background: rgba(255,255,255,.88); }
.tb-bs-formulation__kale-visual { display: block; min-height: 420px; overflow: hidden; background: #dfe8d8; }
.tb-bs-formulation__kale-visual img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; object-position: center 48%; }
.tb-bs-formulation__kale-copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 42px 44px 44px; }
.tb-bs-formulation__kale-eyebrow { margin: 0; color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .1em; }
.tb-bs-formulation__kale-location { display: inline-flex; align-self: flex-start; align-items: baseline; gap: 12px; margin: 18px 0 0; padding: 7px 12px 8px; border-left: 2px solid var(--tb-gold); color: var(--tb-green); background: #f5f6ef; }
.tb-bs-formulation__kale-location strong { font-family: "Zen Old Mincho", serif; font-size: 20px; font-weight: 600; letter-spacing: .08em; }
.tb-bs-formulation__kale-location span { color: #637169; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.tb-bs-product-page .tb-bs-formulation__kale h3 { margin: 20px 0 0; font-size: 30px; line-height: 1.6; }
.tb-bs-formulation__kale h3 span { display: block; }
.tb-bs-formulation__kale-text { margin: 18px 0 0; color: var(--tb-muted); font-size: 16px; line-height: 1.95; }
.tb-bs-formulation__kale-text + .tb-bs-formulation__kale-text { margin-top: 18px; }
.tb-bs-formulation__kale + .tb-bs-formulation__trust { margin-top: 28px; }
.tb-bs-formulation__trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; width: min(1080px, 100%); margin: 64px auto 0; }
.tb-bs-formulation__heritage { display: grid; grid-template-rows: auto minmax(230px, 1fr); overflow: hidden; border: 1px solid #c7d5c4; background: rgba(255,255,255,.86); }
.tb-bs-formulation__heritage-copy { padding: 40px 42px 36px; }
.tb-bs-formulation__eyebrow { margin: 0 0 18px; color: var(--tb-muted); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.tb-bs-product-page .tb-bs-formulation__heritage h3 { margin-bottom: 16px; font-size: 28px; line-height: 1.55; }
.tb-bs-formulation__heritage-copy > h3 + p { margin-bottom: 0; color: var(--tb-muted); font-size: 16px; line-height: 1.9; }
.tb-bs-formulation__heritage-visual { display: block; box-sizing: border-box; min-height: 250px; overflow: hidden; background: #e9eee4; }
.tb-bs-formulation__heritage-visual img { width: 100%; height: 100%; min-height: 250px; object-fit: cover; object-position: center 46%; }
.tb-bs-formulation__award { display: flex; flex-direction: column; min-width: 0; padding: 40px 42px 38px; border: 1px solid rgba(180, 138, 54, .54); background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(249,246,235,.86)); }
.tb-bs-formulation__award-label { margin-bottom: 22px; color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.tb-bs-product-page .tb-bs-formulation__award h3 { margin-bottom: 14px; font-size: 28px; line-height: 1.6; }
.tb-bs-formulation__award h3 span { display: block; }
.tb-bs-formulation__award-copy > p:last-child { margin-bottom: 0; color: var(--tb-muted); font-size: 16px; line-height: 1.9; }
.tb-bs-formulation__award-visual { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-height: 260px; margin-top: 28px; padding: 24px 10px 4px; border-top: 1px solid rgba(180, 138, 54, .44); }
.tb-bs-formulation__award-product { display: grid; place-items: center; width: 100%; }
.tb-bs-formulation__award-product img { display: block; width: auto; max-width: 100%; height: auto; max-height: 185px; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(37, 66, 46, .13)); }
.tb-bs-formulation__award-stamp { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; }
.tb-bs-formulation__award-stamp strong { font-size: 46px; font-weight: 500; line-height: 1; letter-spacing: .02em; }
.tb-bs-formulation__award-stamp span { padding-left: 18px; border-left: 1px solid rgba(180, 138, 54, .55); color: var(--tb-gold); font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: .08em; }
.tb-bs-lifestyle__carousel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; width: min(1120px, 100%); margin: 68px auto 0; padding: 32px 32px 22px; border: 1px solid rgba(180, 138, 54, .28); background: #f7f4ea; overflow: hidden; }
.tb-bs-lifestyle__carousel-title { min-width: 0; margin: 0 24px 18px 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 27px; font-weight: 500; line-height: 1.65; letter-spacing: .045em; white-space: nowrap; }
.tb-bs-routine__carousel-actions { display: flex; grid-column: 2; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: 18px; }
.tb-bs-routine__carousel-actions > span { margin-right: 6px; color: #68756d; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.tb-bs-routine__carousel-actions button { display: grid; width: 42px; height: 42px; padding: 0; border: 1px solid #9db6a7; border-radius: 50%; color: var(--tb-green); background: rgba(255, 253, 248, .82); place-items: center; font-size: 18px; line-height: 1; cursor: pointer; transition: color .2s ease, background .2s ease; }
.tb-bs-routine__carousel-actions button:hover { color: #fff; background: var(--tb-green); }
.tb-bs-routine__carousel-actions button:disabled { border-color: #c7d2ca; color: #aab5ae; background: transparent; cursor: default; }
.tb-bs-routine__carousel-actions button:disabled:hover { color: #aab5ae; background: transparent; }
.tb-bs-routine__carousel-actions button:focus-visible { outline: 2px solid rgba(116, 169, 69, .58); outline-offset: 2px; }
.tb-bs-routine__habits-track { display: flex; grid-column: 1 / -1; gap: 18px; padding: 0 0 10px; overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; user-select: none; }
.tb-bs-routine__habits-track.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.tb-bs-routine__habits-track.is-normalizing { scroll-behavior: auto; scroll-snap-type: none; }
.tb-bs-routine__habits-track::-webkit-scrollbar { display: none; }
.tb-bs-routine__habit-card { box-sizing: border-box; flex: 0 0 calc((100% - 54px) / 4); overflow: hidden; border: 1px solid var(--tb-line); background: #fffdf8; scroll-snap-align: start; }
.tb-bs-routine__habit-card picture { display: block; overflow: hidden; aspect-ratio: 1; }
.tb-bs-routine__habit-card img { width: 100%; height: 100%; object-fit: cover; }
.tb-bs-routine__habit-card > div { position: relative; min-height: 232px; padding: 24px 20px 26px; }
.tb-bs-routine__habit-index { position: absolute; top: 24px; right: 20px; margin: 0; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.tb-bs-routine__habit-card h4 { min-height: 58px; margin: 0 34px 13px 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 18px; font-weight: 600; line-height: 1.65; letter-spacing: .035em; }
.tb-bs-routine__habit-card > div > p:last-child { margin: 0; color: #53635a; font-size: 15px; line-height: 1.85; }

.tb-bs-evidence { padding-top: 56px; padding-bottom: 72px; background: #fffdf9; }
.tb-bs-evidence__comparison { margin-bottom: 76px; }
.tb-bs-evidence__comparison-heading { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); gap: 18px 56px; align-items: start; margin: 0 0 30px; padding: 34px 38px; border-top: 1px solid var(--tb-gold); border-bottom: 1px solid var(--tb-line); background: #f7f4ea; }
.tb-bs-evidence__comparison-kicker { grid-column: 1; margin: 0; color: var(--tb-gold); font-size: 12px; font-weight: 700; line-height: 1.7; letter-spacing: .12em; }
.tb-bs-evidence__comparison-heading h2 { grid-column: 1; margin: 0; font-size: clamp(30px, 2.7vw, 36px); line-height: 1.62; letter-spacing: .045em; white-space: nowrap; }
.tb-bs-evidence__comparison-heading > p:last-child { grid-column: 2; grid-row: 2; align-self: start; margin: 5px 0 0; color: var(--tb-muted); }
.tb-bs-evidence__compare-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 30px; border-block: 1px solid var(--tb-line); background: #fff; }
.tb-bs-evidence__compare-item { min-width: 0; }
.tb-bs-evidence__compare-item + .tb-bs-evidence__compare-item { border-left: 1px solid var(--tb-line); }
.tb-bs-evidence__compare-item picture { display: block; overflow: hidden; aspect-ratio: 16 / 10; background: #f7f4ea; }
.tb-bs-evidence__compare-item picture img { width: 100%; height: 100%; object-fit: cover; }
.tb-bs-evidence__compare-item--product { background: #f4f8f0; }
.tb-bs-evidence__compare-item > div { display: flex; min-height: 94px; box-sizing: border-box; padding: 17px 18px 19px; flex-direction: column; justify-content: center; text-align: center; }
.tb-bs-evidence__compare-item h3 { margin: 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 19px; font-weight: 500; line-height: 1.6; }
.tb-bs-evidence__compare-item p { margin: 4px 0 0; color: var(--tb-muted); font-size: 13px; line-height: 1.7; }
.tb-bs-evidence__switch-input,
.tb-bs-evidence__mobile-switch { display: none; }
.tb-bs-evidence__table-wrap { overflow: visible; }
.tb-bs-evidence__table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; }
.tb-bs-evidence__table caption { padding: 17px 22px; color: #fff; background: var(--tb-green); font-size: 16px; font-weight: 700; text-align: left; }
.tb-bs-evidence__caption-desktop { display: block; }
.tb-bs-evidence__caption-option { display: none; }
.tb-bs-evidence__comparison-table thead th { width: 25%; padding: 20px 16px 18px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); color: var(--tb-green); background: #f5f6f0; font-size: 15px; line-height: 1.55; text-align: center; vertical-align: bottom; }
.tb-bs-evidence__comparison-table thead th:first-child { border-left: 1px solid var(--tb-line); text-align: left; }
.tb-bs-evidence__comparison-table thead th span { display: block; }
.tb-bs-evidence__comparison-table thead th small { display: block; margin-top: 5px; color: var(--tb-muted); font-size: 12px; font-weight: 500; line-height: 1.5; }
.tb-bs-evidence__comparison-table th.tb-bs-evidence__product-column { position: relative; color: #fff; background: var(--tb-green); }
.tb-bs-evidence__comparison-table th.tb-bs-evidence__product-column small { color: rgba(255, 255, 255, .78); }
.tb-bs-evidence__comparison-table tbody th,
.tb-bs-evidence__comparison-table tbody td { width: 25%; padding: 17px 16px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); font-size: 15px; line-height: 1.6; text-align: center; vertical-align: middle; }
.tb-bs-evidence__comparison-table tbody th { border-left: 1px solid var(--tb-line); color: var(--tb-green); background: #fbfaf6; font-weight: 700; text-align: left; }
.tb-bs-evidence__comparison-table tbody td.tb-bs-evidence__product-column { color: var(--tb-green); background: #edf4e9; font-size: 16px; font-weight: 700; }
.tb-bs-evidence__comparison-table .tb-bs-evidence__group th { width: 100%; padding: 11px 16px; color: #66736a; background: #e8ece4; font-size: 12px; line-height: 1.5; letter-spacing: .12em; }
.tb-bs-evidence__no-data { color: #7a827c; font-size: 13px !important; }
.tb-bs-evidence__sources { margin-top: 18px; padding-left: 2px; }
.tb-bs-evidence__sources p { margin: 5px 0 0; color: #6f7b72; font-size: 12px; line-height: 1.75; }
.tb-bs-evidence__meaning { margin: 0 0 30px; text-align: center; }
.tb-bs-evidence__meaning .tb-bs-evidence__comparison-kicker { margin-bottom: 8px; }
.tb-bs-evidence__meaning h3 { margin: 0; font-size: clamp(26px, 3vw, 38px); line-height: 1.55; }
.tb-bs-evidence__scenes { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.tb-bs-evidence__scenes article { grid-column: span 2; }
.tb-bs-evidence__scenes article:nth-child(-n + 2) { grid-column: span 3; }
.tb-bs-evidence__scenes article { overflow: hidden; border: 1px solid var(--tb-line); background: #fff; }
.tb-bs-evidence__scenes picture,
.tb-bs-evidence__scene-visual { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tb-bs-evidence__scenes picture > img,
.tb-bs-evidence__scene-photo { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.tb-bs-evidence__package {
  position: absolute;
  z-index: 1;
  right: 4%;
  bottom: 6%;
  width: 36%;
  height: auto;
  aspect-ratio: 1400 / 743;
  object-fit: contain;
  filter: drop-shadow(0 7px 8px rgba(55, 48, 34, .18));
}
.tb-bs-evidence__scenes article > div:not(.tb-bs-evidence__scene-visual) { padding: 30px 28px 28px; }
.tb-bs-evidence__label { min-height: 42px; margin-bottom: 8px; color: var(--tb-gold); font-size: 12px; font-weight: 700; line-height: 1.7; letter-spacing: .08em; }
.tb-bs-evidence__scenes h3 { margin-bottom: 18px; font-size: 24px; line-height: 1.6; }
.tb-bs-evidence__scenes article > div > p:not(.tb-bs-evidence__label):not(.tb-bs-evidence__value) { min-height: 92px; margin-bottom: 0; color: var(--tb-muted); font-size: 14px; }
.tb-bs-evidence__value { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--tb-line); color: var(--tb-green); font-size: 12px; font-weight: 700; letter-spacing: 0; }
.tb-bs-note { margin: 18px 0 0; color: #6f7b72; font-size: 12px; line-height: 1.75; }

.tb-bs-routine { padding-block: 0; background: #fffdf9; }
.tb-bs-routine__survey { border-top: 1px solid var(--tb-line); background: #fffdf9; }
.tb-bs-routine__survey-inner { padding-block: 126px 108px; }
.tb-bs-routine__survey-heading { max-width: 880px; margin-inline: auto; text-align: center; }
.tb-bs-routine__survey-heading .tb-kicker { justify-content: center; }
.tb-bs-routine__survey-heading h3 { margin: 22px 0 32px; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: clamp(34px, 3.6vw, 48px); font-weight: 500; line-height: 1.55; letter-spacing: .06em; }
.tb-bs-routine__survey-heading > p:last-child { margin: 0; color: var(--tb-muted); font-size: 16px; line-height: 1.9; }
.tb-bs-routine__survey-result { max-width: 1060px; margin: 54px auto 0; overflow: hidden; border: 1px solid #b8cbbd; background: #eef3e9; box-shadow: 0 24px 44px rgba(26, 65, 46, .08); }
.tb-bs-routine__survey-visual { position: relative; display: grid; min-height: 520px; overflow: hidden; background: radial-gradient(circle at 10% 35%, rgba(255,255,255,.98) 0 14%, transparent 38%), radial-gradient(circle at 88% 10%, rgba(193,218,173,.55), transparent 34%), linear-gradient(135deg, #fffdf8, #edf4e8); place-items: end center; }
.tb-bs-routine__survey-visual::before,
.tb-bs-routine__survey-visual::after { position: absolute; width: 210px; height: 210px; border: 1px solid rgba(80, 130, 88, .13); border-radius: 54% 46% 62% 38%; content: ""; transform: rotate(28deg); }
.tb-bs-routine__survey-visual::before { top: -76px; right: -46px; }
.tb-bs-routine__survey-visual::after { bottom: -116px; left: -52px; transform: rotate(-18deg); }
.tb-bs-routine__survey-summary { position: absolute; z-index: 2; top: 34px; left: 50%; color: var(--tb-green); text-align: center; transform: translateX(-50%); }
.tb-bs-routine__survey-summary > span { display: inline-flex; color: var(--tb-gold); align-items: center; gap: 12px; font-size: 12px; font-weight: 700; letter-spacing: .12em; white-space: nowrap; }
.tb-bs-routine__survey-summary > span::before,
.tb-bs-routine__survey-summary > span::after { width: 36px; height: 1px; background: var(--tb-gold); content: ""; }
.tb-bs-routine__survey-summary p { margin: 16px 0 0; font-family: "Zen Old Mincho", serif; font-size: 21px; letter-spacing: .12em; }
.tb-bs-routine__survey-summary strong { display: block; margin-top: 2px; font-family: "Zen Old Mincho", serif; font-size: 62px; font-weight: 500; line-height: 1.2; letter-spacing: .08em; }
.tb-bs-routine__survey-visual > img { position: relative; z-index: 1; width: min(52%, 560px); height: auto; margin-bottom: 24px; object-fit: contain; }
.tb-bs-routine__survey-ranking { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 36px 36px; padding: 0; border-top: 1px solid var(--tb-gold); background: #fffdf8; list-style: none; }
.tb-bs-routine__survey-ranking li { min-height: 150px; padding: 20px 18px 22px; border-right: 1px solid var(--tb-line); text-align: center; }
.tb-bs-routine__survey-ranking li:last-child { border-right: 0; }
.tb-bs-routine__survey-ranking li > span { display: block; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.tb-bs-routine__survey-ranking li > strong { display: block; margin: 5px 0 4px; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 31px; font-weight: 500; line-height: 1.2; }
.tb-bs-routine__survey-ranking li > strong small { font-size: 14px; }
.tb-bs-routine__survey-ranking li > p { margin: 0; color: #344e41; font-size: 14px; line-height: 1.75; }
.tb-bs-routine__survey-story { margin: 58px 0 0; text-align: center; }
.tb-bs-routine__survey-story h4 { margin: 0 0 18px; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 24px; font-weight: 500; line-height: 1.7; letter-spacing: .06em; }
.tb-bs-routine__survey-story p { margin: 0; color: var(--tb-muted); font-size: 15px; line-height: 1.9; }
.tb-bs-routine__survey-story .tb-bs-routine__survey-note { max-width: 1080px; margin: 28px auto 0; padding-top: 22px; border-top: 1px solid var(--tb-line); color: #6b756f; font-size: 12px; line-height: 1.85; text-align: left; }

.tb-bs-details { background: #fffdf9; }
.tb-bs-details > .tb-shell > .tb-bs-heading h2 { font-size: clamp(38px, 3.75vw, 46px); }
.tb-bs-details__list { margin: 68px 0 0; border-top: 1px solid var(--tb-line); }
.tb-bs-details__list > div { display: grid; grid-template-columns: 210px 1fr; gap: 32px; padding: 25px 20px; border-bottom: 1px solid var(--tb-line); }
.tb-bs-details__list dt { color: var(--tb-green); font-weight: 700; }
.tb-bs-details__list dd { margin: 0; color: var(--tb-muted); }
.tb-bs-purchase-guide { padding: 0 0 104px; background: #eef3e9; }
.tb-bs-purchase-guide[hidden] { display: none; }
.tb-bs-stepup { padding: 68px 46px 46px; border: 1px solid #c7d5c4; background: rgba(255,255,255,.9); box-shadow: 0 18px 48px rgba(43,76,57,.06); }
.tb-bs-stepup__label { display: table; margin: 0 auto; padding: 8px 18px; border: 1px solid rgba(180, 138, 54, .88); border-radius: 2px; color: #fff; background: var(--tb-green); box-shadow: 0 4px 12px rgba(11, 82, 59, .09); font-size: 16px; font-weight: 700; letter-spacing: .12em; line-height: 1.4; text-align: center; }
.tb-bs-product-page .tb-bs .tb-bs-stepup h2 { margin: 24px 0 0; color: var(--tb-green); font-size: 34px; line-height: 1.55; letter-spacing: .055em; text-align: center; }
.tb-bs-stepup__scenario { display: grid; gap: 3px; margin: 26px auto 0; text-align: center; }
.tb-bs-stepup__scenario strong { color: var(--tb-green); font-size: 16px; line-height: 1.7; }
.tb-bs-stepup__scenario strong span { display: inline; }
.tb-bs-stepup__scenario small { color: #68746d; font-size: 12px; line-height: 1.7; }
.tb-bs-stepup__levels { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 850px; margin: 42px auto 0; }
.tb-bs-stepup__levels::before { position: absolute; z-index: 0; top: 38px; right: 10%; left: 10%; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #9db989 0%, #8eaf78 58%, #b48a36 100%); box-shadow: 0 1px 0 rgba(255,255,255,.72), 0 0 0 1px rgba(104,139,82,.12); content: ""; }
.tb-bs-stepup__level { position: relative; z-index: 1; display: grid; min-width: 0; padding: 0 8px 10px; text-align: center; justify-items: center; }
.tb-bs-stepup__level::before { position: absolute; z-index: 1; top: 33px; left: 50%; width: 11px; height: 11px; border: 2px solid #fdfcf8; border-radius: 50%; background: #8eb36e; box-shadow: 0 0 0 1px rgba(110,145,86,.22); content: ""; transform: translateX(-50%); }
.tb-bs-stepup__level--max::before { width: 13px; height: 13px; background: var(--tb-gold); box-shadow: 0 0 0 4px rgba(180,138,54,.12); }
.tb-bs-stepup__level > span { color: #536259; font-size: 14px; font-weight: 700; line-height: 1.45; }
.tb-bs-stepup__level > strong { margin-top: 34px; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 36px; font-weight: 500; line-height: 1.2; }
.tb-bs-stepup__level--max > strong { display: grid; width: 72px; height: 72px; margin-top: 16px; border-radius: 50%; color: #987322; background: radial-gradient(circle, rgba(248,235,194,.72) 0, rgba(250,241,211,.42) 56%, rgba(255,255,255,0) 73%); font-size: 40px; place-items: center; }
.tb-bs-stepup__level > small { margin-top: 4px; color: #59675f; font-size: 13px; font-weight: 700; }
.tb-bs-stepup__details { max-width: 760px; margin: 22px auto 0; border-top: 1px solid rgba(11,82,59,.16); }
.tb-bs-stepup__details summary { position: relative; padding: 17px 30px 5px 8px; color: var(--tb-green); font-size: 13px; font-weight: 700; text-align: center; cursor: pointer; list-style: none; }
.tb-bs-stepup__details summary::-webkit-details-marker { display: none; }
.tb-bs-stepup__details summary::after { position: absolute; top: 14px; margin-left: 9px; color: #7e9b6c; font-size: 16px; content: "+"; }
.tb-bs-stepup__details[open] summary::after { content: "−"; }
.tb-bs-stepup__details > p { margin: 14px 0 0; color: #6c756f; font-size: 12px; line-height: 1.8; text-align: center; }
.tb-bs-stepup__details table { width: min(100%, 560px); margin: 12px auto 0; border-collapse: collapse; color: #536259; background: #fff; font-size: 13px; }
.tb-bs-stepup__details caption { padding: 0 10px 8px; color: #6c756f; font-size: 12px; }
.tb-bs-stepup__details th,
.tb-bs-stepup__details td { padding: 9px 14px; border-top: 1px solid rgba(11,82,59,.12); }
.tb-bs-stepup__details th { color: var(--tb-green); text-align: left; }
.tb-bs-stepup__details td { text-align: right; }
.tb-bs-faq { margin-top: 112px; }
.tb-bs-faq > header { margin-bottom: 36px; text-align: center; }
.tb-bs-faq > header .tb-kicker { justify-content: center; }
.tb-bs-faq > header h2 { margin: 18px 0 0; color: var(--tb-green); font-size: 40px; line-height: 1.55; letter-spacing: .055em; }
.tb-bs-faq__list { max-width: 860px; margin: 0 auto; border-top: 1px solid rgba(11,82,59,.2); counter-reset: tb-bs-faq; }
.tb-bs-faq__list details { border-bottom: 1px solid rgba(11,82,59,.2); counter-increment: tb-bs-faq; }
.tb-bs-faq__list summary { display: grid; grid-template-columns: 52px minmax(0, 1fr) 34px; align-items: center; min-height: 78px; padding: 18px 6px 18px 10px; color: var(--tb-green); cursor: pointer; list-style: none; }
.tb-bs-faq__list summary::-webkit-details-marker { display: none; }
.tb-bs-faq__list summary::before { color: var(--tb-gold); font-family: "Zen Old Mincho", serif; font-size: 14px; font-weight: 600; letter-spacing: .08em; content: counter(tb-bs-faq, decimal-leading-zero); }
.tb-bs-faq__list summary::after { color: #76935f; font-size: 28px; font-weight: 400; text-align: center; content: "+"; }
.tb-bs-faq__list details[open] summary::after { content: "−"; }
.tb-bs-faq__list summary { font-size: 18px; font-weight: 600; line-height: 1.7; letter-spacing: .025em; }
.tb-bs-faq__list details > p { margin: 0 42px 0 62px; padding: 0 0 25px; color: #4d5c52; font-size: 16px; line-height: 1.95; }
.tb-bs-confirm { padding-block: 104px 120px; background: #fffdf9; }
.tb-bs-confirm__heading { width: min(940px, 100%); margin: 0 auto; text-align: center; }
.tb-bs-confirm__heading h2 { margin: 18px 0 0; color: var(--tb-green); font-size: clamp(32px, 3.3vw, 42px); line-height: 1.6; letter-spacing: .05em; }
.tb-bs-confirm__heading h2 span { display: block; white-space: nowrap; }
.tb-bs-confirm__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 68px; align-items: stretch; margin-top: 64px; }
.tb-bs-confirm__product { padding-right: 52px; border-right: 1px solid rgba(11,82,59,.18); }
.tb-bs-confirm__label { margin: 0; color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .1em; }
.tb-bs-confirm__product h3,
.tb-bs-confirm .tb-bs-faq h3 { margin: 14px 0 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 30px; font-weight: 500; line-height: 1.6; letter-spacing: .055em; }
.tb-bs-confirm__serving { display: grid; gap: 8px; margin-top: 30px; padding: 22px 24px; background: #eef3e9; }
.tb-bs-confirm__serving strong { color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 26px; font-weight: 500; line-height: 1.6; }
.tb-bs-confirm__serving span { color: #5f6e65; font-size: 16px; line-height: 1.85; }
.tb-bs-confirm__product .tb-bs-details__list { margin-top: 22px; }
.tb-bs-confirm__product .tb-bs-details__list > div { display: block; padding: 18px 0; }
.tb-bs-confirm__product .tb-bs-details__list dt { margin-bottom: 6px; font-size: 14px; }
.tb-bs-confirm__product .tb-bs-details__list dd { font-size: 14px; line-height: 1.85; }
.tb-bs-confirm .tb-bs-faq { margin-top: 0; }
.tb-bs-confirm .tb-bs-faq > header { margin-bottom: 25px; text-align: left; }
.tb-bs-confirm .tb-bs-faq__list { width: 100%; max-width: none; }
.tb-bs-confirm .tb-bs-faq__list summary { grid-template-columns: 40px minmax(0, 1fr) 28px; min-height: 72px; padding: 16px 0; font-size: 16px; line-height: 1.75; }
.tb-bs-confirm .tb-bs-faq__list details > p { margin: 0 24px 0 40px; padding-bottom: 22px; font-size: 15px; line-height: 1.9; }
@media (min-width: 769px) {
  .tb-bs-confirm__product,
  .tb-bs-confirm .tb-bs-faq { display: flex; flex-direction: column; }
  .tb-bs-confirm__product .tb-bs-details__list { display: flex; flex: 1; flex-direction: column; }
  .tb-bs-confirm__product .tb-bs-details__list > div:last-child { flex: 1; }
  .tb-bs-confirm .tb-bs-faq__list { display: flex; flex: 1; flex-direction: column; }
  .tb-bs-confirm .tb-bs-faq__list details { display: flex; min-height: 0; flex: 1 1 0; flex-direction: column; }
  .tb-bs-confirm .tb-bs-faq__list details[open] { flex: 0 0 auto; }
  .tb-bs-confirm .tb-bs-faq__list summary { box-sizing: border-box; min-height: 84px; flex: 1; }
  .tb-bs-confirm .tb-bs-faq__list details[open] summary { flex: 0 0 auto; }
}

/* ブロッコリースプラウトEX：30本・60本の購入カード */
.tb-bs-purchase__native .p-product_content { box-sizing: border-box; padding: 0; }
.tb-bs-purchase__native .tb-bs-purchase__base-form { display: none !important; }
.tb-bs-purchase__native .p-product_content__inner { display: block; width: 100%; max-width: none; }
.tb-bs-purchase__native .p-product_content__inner__img,
.tb-bs-purchase__native .p-product_content__images { display: none; }
.tb-bs-purchase__native .p-product_content__inner__info,
.tb-bs-purchase__native .p-product_content__info { position: static; width: 100%; max-width: none; height: auto; margin: 0; padding: 0; }
.tb-bs-purchase__native .c-product_info,
.tb-bs-purchase__native .c-product_info__co_selling,
.tb-bs-purchase__native .c-product_info__co_selling__tab_contents,
.tb-bs-purchase__native .tb-bs-plan-grid { width: 100%; max-width: none; box-sizing: border-box; }
.tb-bs-purchase__native .c-product_info__co_selling { margin-top: 0; }
.tb-bs-purchase__native .tb-bs-purchase-panel { box-sizing: border-box; width: 100%; padding: 30px !important; border: 1px solid #aac2ab !important; border-radius: 9px; background: #fff; }
.tb-bs-purchase-preview { display: block; }
.tb-bs-purchase-preview__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; padding: 0; list-style: none; }
.tb-bs-purchase-preview__tabs button { display: flex; width: 100%; min-height: 64px; flex-direction: column; gap: 1px; align-items: center; justify-content: center; border: 1px solid #aac2ab; border-radius: 9px; color: var(--tb-green) !important; background: #f7faf5 !important; box-shadow: 0 2px 8px rgba(11, 82, 59, .06); font-size: 15px; font-weight: 700; line-height: 1.35; transition: border-color .24s ease, color .24s ease, background-color .24s ease, box-shadow .24s ease; }
.tb-bs-purchase-preview__tabs button::after { margin: 0; color: currentColor; content: "タップして表示"; font-size: 12px; font-weight: 700; line-height: 1.2; }
.tb-bs-purchase-preview__tabs button[aria-selected="true"] { border-color: var(--tb-green); color: #fff !important; background: var(--tb-green) !important; box-shadow: 0 6px 16px rgba(11, 82, 59, .16); }
.tb-bs-purchase-preview__tabs button[aria-selected="true"]::after { padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .17); content: "✓ 選択中"; }
.tb-bs-purchase-preview__tabs button:focus-visible { outline: 3px solid rgba(180, 138, 54, .45); outline-offset: 2px; }
.tb-bs-purchase-preview__panel { padding: 30px; border: 1px solid #aac2ab; border-radius: 9px; background: #fff; }
.tb-bs-purchase-preview__panel[hidden] { display: none; }
.tb-bs-tab-content--enter { animation: tb-bs-tab-content-enter .26s ease-out both; }
@keyframes tb-bs-tab-content-enter {
  from { opacity: .3; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}
.tb-bs-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.tb-bs-plan-card { position: relative; overflow: hidden; box-sizing: border-box; padding: 0 !important; border: 1px solid #afc5b2 !important; border-radius: 3px; background: #fff; box-shadow: inset 0 0 0 1px rgba(11, 82, 59, .035), 0 12px 34px rgba(20, 67, 50, .06); }
.tb-bs-plan-card--best { border-color: rgba(180, 138, 54, .86) !important; box-shadow: inset 0 0 0 1px rgba(180, 138, 54, .08), 0 12px 34px rgba(20, 67, 50, .06); }
.tb-bs-plan-card__ribbon { margin: 0; padding: 9px 18px; color: #fff; background: #9a792b; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-align: center; }
.tb-bs-plan-card__visual { display: grid; height: 210px; place-items: center; box-sizing: border-box; padding: 24px; background: linear-gradient(145deg, #f8faf5, #eef4e9); }
.tb-bs-plan-card--best .tb-bs-plan-card__visual { height: 165px; background: linear-gradient(145deg, #fbf9f1, #f1f5e9); }
.tb-bs-plan-card__boxes { position: relative; display: block; width: 100%; height: 100%; }
.tb-bs-plan-card__boxes img { position: absolute; top: 50%; left: 50%; width: min(88%, 390px); height: auto; transform: translate(-50%, -50%); filter: drop-shadow(0 12px 16px rgba(27, 65, 49, .12)); }
.tb-bs-plan-card__visual--double .tb-bs-plan-card__boxes img { width: min(68%, 300px); }
.tb-bs-plan-card__visual--double .tb-bs-plan-card__boxes img:first-child { left: 41%; }
.tb-bs-plan-card__visual--double .tb-bs-plan-card__boxes img:last-child { left: 61%; }
.tb-bs-plan-card__body { display: flex; min-height: 420px; flex-direction: column; box-sizing: border-box; padding: 28px 30px 30px; text-align: center; }
.tb-bs-plan-card__mode { margin: 0; color: var(--tb-green); font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.tb-bs-product-page .tb-bs-plan-card__title { margin: 10px 0 0; color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 27px; font-weight: 500; line-height: 1.55; letter-spacing: .055em; }
.tb-bs-plan-card__regular { min-height: 30px; margin: 20px 0 0; color: #4f5c55; font-size: 14px; line-height: 1.75; }
.tb-bs-plan-card__regular s { text-decoration-color: #b06250; text-decoration-thickness: 1px; }
.tb-bs-plan-card__price { display: flex; justify-content: center; align-items: baseline; gap: 5px; margin: 5px 0 0; color: var(--tb-green); white-space: nowrap; }
.tb-bs-plan-card__price > span:first-child { margin-right: 2px; font-size: 14px; font-weight: 700; }
.tb-bs-plan-card__price strong { font-family: "Zen Old Mincho", serif; font-size: clamp(40px, 4vw, 52px); font-weight: 500; line-height: 1; letter-spacing: -.025em; }
.tb-bs-plan-card__price > span:last-child { display: inline-flex; flex-direction: column; align-items: flex-start; font-size: 15px; line-height: 1.15; }
.tb-bs-plan-card__price small { font-size: 10px; }
.tb-bs-plan-card__saving { margin: 12px 0 0; color: #6c594a; font-size: 14px; }
.tb-bs-plan-card__saving strong { color: #c34f31; font-size: 19px; }
.tb-bs-plan-card__benefit { display: grid; gap: 4px; margin: 22px 0 0; padding: 16px 14px; border: 1px solid rgba(180, 138, 54, .42); background: #fffbf1; }
.tb-bs-plan-card__benefit small { color: #655e50; font-size: 12px; font-weight: 700; }
.tb-bs-plan-card__benefit strong { color: var(--tb-green); font-family: "Zen Old Mincho", serif; font-size: 20px; font-weight: 500; line-height: 1.55; }
.tb-bs-plan-card .c-product_info__co-selling-product__labels { margin-top: 16px; }
.tb-bs-plan-card .c-product_info__co-selling-product__option_types__wrapper_quantity { display: none; }
.tb-bs-plan-card .c-product_info__shop-cart-form { margin-top: auto; padding-top: 22px; }
.tb-bs-plan-card .c-product_info__co-selling-product__co-btn-group { margin: 0; }
.tb-bs-plan-card .c-product_info__co-selling-product__co-btn-add,
.tb-bs-plan-card .c-product_info__co-selling-product__co-btn-add-wide,
.tb-bs-plan-card .tb-bs-purchase-preview__cart { display: flex; width: 100%; min-height: 56px; align-items: center; justify-content: center; box-sizing: border-box; margin: 22px 0 0; padding: 14px 20px; border: 0; border-radius: 6px; color: #fff !important; background: linear-gradient(180deg, #146044, var(--tb-green)) !important; box-shadow: 0 4px 0 #083d2d, 0 8px 16px rgba(17, 69, 48, .14), inset 0 1px 0 rgba(255, 255, 255, .16); font-size: 17px; font-weight: 800; text-align: center; text-decoration: none; }
.tb-bs-plan-card--best .c-product_info__co-selling-product__co-btn-add,
.tb-bs-plan-card--best .c-product_info__co-selling-product__co-btn-add-wide,
.tb-bs-plan-card--best .tb-bs-purchase-preview__cart { background: linear-gradient(180deg, #aa892e, #9a792b) !important; box-shadow: 0 4px 0 #70581f, 0 8px 16px rgba(112, 88, 31, .14), inset 0 1px 0 rgba(255, 255, 255, .16); }
.tb-bs-product-page .tb-bs-purchase__native .tb-bs-plan-card button.c-product_info__co-selling-product__co-btn-add,
.tb-bs-product-page .tb-bs-purchase__native .tb-bs-plan-card button.c-product_info__co-selling-product__co-btn-add-wide { border: 0 !important; border-radius: 6px !important; color: #fff !important; background: linear-gradient(180deg, #146044, var(--tb-green)) !important; box-shadow: 0 4px 0 #083d2d, 0 8px 16px rgba(17, 69, 48, .14), inset 0 1px 0 rgba(255, 255, 255, .16) !important; }
.tb-bs-product-page .tb-bs-purchase__native .tb-bs-plan-card--best button.c-product_info__co-selling-product__co-btn-add,
.tb-bs-product-page .tb-bs-purchase__native .tb-bs-plan-card--best button.c-product_info__co-selling-product__co-btn-add-wide { background: linear-gradient(180deg, #aa892e, #9a792b) !important; box-shadow: 0 4px 0 #70581f, 0 8px 16px rgba(112, 88, 31, .14), inset 0 1px 0 rgba(255, 255, 255, .16) !important; }
.tb-bs-plan-card .tb-bs-plan-card__cta { height: 60px !important; min-height: 60px !important; align-items: center !important; justify-content: center !important; gap: .58em; overflow: hidden; padding: 0 20px !important; font-family: var(--tb-sans) !important; font-size: 19px !important; font-weight: 900 !important; line-height: 1.15 !important; letter-spacing: .04em; white-space: nowrap; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.tb-bs-plan-card .tb-bs-plan-card__cta::after { display: inline-block; flex: 0 0 auto; font-family: inherit; font-size: 22px; font-weight: 900; line-height: 1; content: "→"; transition: transform .18s ease; }
.tb-bs-plan-card .tb-bs-plan-card__cta:focus-visible { outline: 3px solid rgba(198, 162, 77, .72); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .tb-bs-plan-card .tb-bs-plan-card__cta:hover { filter: saturate(1.04) brightness(1.025); transform: translateY(-2px); }
  .tb-bs-plan-card .tb-bs-plan-card__cta:hover::after { transform: translateX(4px); }
}
.tb-bs-product-page .tb-bs-plan-card:not(.tb-bs-plan-card--best) .tb-bs-plan-card__cta:active { box-shadow: 0 1px 0 #083d2d, 0 4px 9px rgba(17, 69, 48, .12) !important; transform: translateY(3px); }
.tb-bs-product-page .tb-bs-plan-card--best .tb-bs-plan-card__cta:active { box-shadow: 0 1px 0 #70581f, 0 4px 9px rgba(112, 88, 31, .12) !important; transform: translateY(3px); }
@media (prefers-reduced-motion: reduce) {
  .tb-bs-plan-card .tb-bs-plan-card__cta,
  .tb-bs-plan-card .tb-bs-plan-card__cta::after { transition: none; }
}
@media (max-width: 420px) {
  .tb-bs-plan-card .tb-bs-plan-card__cta { gap: .32em; padding: 0 4px !important; font-size: 17px !important; line-height: 1 !important; letter-spacing: 0; }
  .tb-bs-plan-card .tb-bs-plan-card__cta::after { font-size: 20px; }
}
.tb-bs-purchase-card__promises { margin: 22px 0 0; padding: 22px; border: 1px solid rgba(11, 82, 59, .18); border-radius: 6px; background: linear-gradient(135deg, #f4f7f0, #edf3e9); }
.tb-bs-purchase-card__promises ul { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, .9fr) minmax(0, 1.2fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.tb-bs-purchase-card__promises li { position: relative; display: flex; min-height: 82px; flex-direction: column; justify-content: center; box-sizing: border-box; padding: 15px 16px 15px 58px; border: 1px solid rgba(11, 82, 59, .14); border-radius: 4px; color: var(--tb-green); background: rgba(255, 253, 248, .94); box-shadow: 0 5px 16px rgba(25, 65, 46, .055); line-height: 1.55; }
.tb-bs-purchase-card__promises li::before { position: absolute; top: 50%; left: 16px; display: grid; width: 29px; height: 29px; border: 1px solid rgba(11, 82, 59, .23); border-radius: 50%; color: var(--tb-green); background: #e7efe2; content: "✓"; font-size: 13px; font-weight: 700; place-items: center; transform: translateY(-50%); }
.tb-bs-purchase-card__promises li > span { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.tb-bs-purchase-card__promises li strong { margin-top: 4px; color: var(--tb-green); font-size: 16px; font-weight: 700; letter-spacing: .035em; line-height: 1.55; }
.tb-bs-purchase-card__promises .tb-bs-purchase-card__payment { grid-column: 1 / -1; min-height: 72px; }
.tb-bs-purchase-card__promises .tb-bs-purchase-card__payment::before { content: "¥"; }
.tb-bs-purchase-card__payment strong { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; }
.tb-bs-purchase-card__payment strong i { display: inline-flex; align-items: center; font-style: normal; }
.tb-bs-purchase-card__payment strong small { font-size: inherit; font-weight: inherit; }
.tb-bs-purchase-card__payment strong i + i::before { margin: 0 10px; color: #91a299; content: "・"; }
.tb-bs-purchase-card__fee-unit { white-space: nowrap; }
.tb-bs-purchase-card__mobile-break { display: none; }
.tb-bs-purchase-preview__disclaimer { margin: 18px 0 0; color: #7a817c; font-size: 11px; line-height: 1.7; }

@media (max-width: 1024px) {
  .tb-bs-hero__grid { grid-template-columns: 1fr 1fr; min-height: 650px; }
  .tb-bs-heading--split { gap: 60px; }
  .tb-bs-equation__ingredients { gap: 24px; }
  .tb-bs-equation article { min-height: 410px; }
  .tb-bs-equation__body { padding: 24px 18px 26px; }
  .tb-bs-product-page .tb-bs-equation h3 { font-size: 22px; }
  .tb-bs-equation p { font-size: 13px; }
  .tb-bs-equation__answer .tb-bs-equation__body { padding: 36px 34px; }
  .tb-bs-development__steps { grid-template-columns: repeat(2, 1fr); gap: 56px 0; }
  .tb-bs-development__steps::before { display: none; }
  .tb-bs-formulation__intro { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; }
  .tb-bs-formulation__heading h2 { font-size: 44px; }
  .tb-bs-formulation__steps li { padding-inline: 20px; }
  .tb-bs-formulation__steps strong { font-size: 21px; }
  .tb-bs-formulation__kale { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-bs-formulation__kale-visual,
  .tb-bs-formulation__kale-visual img { min-height: 390px; }
  .tb-bs-formulation__kale-copy { padding: 38px 34px 40px; }
  .tb-bs-formulation__trust { gap: 22px; }
  .tb-bs-formulation__heritage-copy,
  .tb-bs-formulation__award { padding-inline: 34px; }
  .tb-bs-formulation__heritage-visual { min-height: 230px; }
  .tb-bs-routine__habit-card { flex-basis: calc((100% - 36px) / 3); }
}

@media (max-width: 1025px) {
  .tb-bs-routine__habit-card { flex-basis: calc((100% - 36px) / 3); }
}

@media (max-width: 768px) {
  .tb-bs-product-page .tb-shell { width: min(100% - 40px, 680px); }
  .tb-bs-section { padding-block: 82px; }
  .tb-bs-development { padding-bottom: 0; }
  .tb-bs-evidence { padding-top: 38px; }
  .tb-bs-product-page .tb-desktop-only { display: none; }
  .tb-bs-product-page .tb-mobile-only { display: block; }
  .tb-bs-hero { background: #f7f4ea; }
  .tb-bs-hero__grid { display: flex; flex-direction: column; width: 100% !important; min-height: 0; }
  .tb-bs-hero__mobile-kicker {
    display: flex;
    order: -2;
    box-sizing: border-box;
    width: fit-content;
    max-width: min(calc(100% - 40px), 680px);
    margin: 0 auto;
    padding: 15px 0 16px;
    border-top: 1px solid rgba(180, 138, 54, .72);
    text-align: center;
  }
  .tb-bs-hero__desktop-kicker { display: none; }
  .tb-bs-hero__visual { order: -1; width: 100%; min-height: 0; aspect-ratio: 4 / 3; }
  .tb-bs-hero__copy {
    box-sizing: border-box;
    width: min(calc(100% - 32px), 680px);
    margin: -28px auto 0;
    padding: 44px 22px 56px;
    border-radius: 28px 28px 0 0;
    background: rgba(247, 244, 234, .985);
    box-shadow: 0 -14px 34px rgba(50, 73, 54, .08);
  }
  .tb-bs-hero__product-name { margin-bottom: 14px; font-size: 13px; }
  .tb-bs-hero__copy h1 { font-size: clamp(38px, 9.8vw, 52px); }
  .tb-bs-product-page .tb-bs .tb-bs-hero__lead { margin-top: 30px; }
  .tb-bs-hero__actions { align-items: stretch; flex-direction: column; gap: 14px; margin-top: 32px; }
  .tb-bs-purchase-jump { grid-template-columns: minmax(0, 1fr) 44px; padding: 18px 16px 18px 20px; }
  .tb-bs-purchase-jump strong { font-size: 20px; }
  .tb-bs-purchase-jump i { width: 40px; height: 40px; }
  .tb-bs-hero__actions .tb-button { box-sizing: border-box; width: 100%; max-width: 100%; }
  .tb-bs-hero__actions .tb-text-link {
    box-sizing: border-box;
    align-self: stretch;
    justify-content: center;
    min-height: 52px;
    padding: 11px 20px;
    border: 1px solid rgba(0, 76, 59, .48);
    border-radius: 14px;
    background: rgba(255, 255, 255, .46);
  }
  .tb-bs-product-page .tb-bs .tb-bs-hero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 36px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 76, 59, .18);
  }
  .tb-bs-hero__facts li { padding: 0 8px; line-height: 1.65; text-align: center; }
  .tb-bs-hero__facts li + li { border-left: 1px solid rgba(0, 76, 59, .15); }
  .tb-bs-purchase { padding-block: 82px; }
  .tb-bs-purchase__head { margin-bottom: 38px; }
  .tb-bs-purchase__head h2 { font-size: clamp(30px, 8vw, 39px); }
  .tb-bs-purchase__native { padding: 20px; border-radius: 12px; }
  .tb-bs-purchase__native .p-product_content__inner { gap: 34px; }
  .tb-bs-heading--split { grid-template-columns: 1fr; gap: 28px; }
  .tb-bs-heading--split h2,
  .tb-bs-heading--center h2 { font-size: clamp(32px, 8.4vw, 44px); }
  .tb-bs-heading--split .tb-bs-origin__question { font-size: clamp(32px, 8.4vw, 44px); }
  .tb-bs-heading__copy { padding-top: 0; }
  .tb-bs-heading--center { margin-bottom: 50px; text-align: left; }
  .tb-bs-heading--center .tb-kicker { justify-content: flex-start; }
  .tb-bs-equation { margin-top: 54px; }
  .tb-bs-equation__ingredients { grid-template-columns: 1fr; gap: 0; }
  .tb-bs-equation article { display: flex; flex-direction: column; min-height: 0; }
  .tb-bs-equation__visual { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .tb-bs-equation__body { padding: 30px 28px 34px; }
  .tb-bs-equation__connector { position: relative; display: flex; height: 64px; }
  .tb-bs-equation__connector::before { content: ""; width: 1px; height: 100%; background: rgba(180, 138, 54, .5); }
  .tb-bs-equation__connector::after { content: ""; position: absolute; bottom: -2px; width: 5px; height: 5px; border-radius: 50%; background: var(--tb-gold); }
  .tb-bs-equation__merge { grid-template-columns: 1fr; width: 100%; margin: 42px 0 0; border-radius: 16px; }
  .tb-bs-equation__source-note { width: 100%; margin-top: 16px; }
  .tb-bs-equation__merge-copy { padding: 36px 28px 38px; }
  .tb-bs-product-page .tb-bs-equation__merge h3 { margin: 18px 0 20px; font-size: clamp(28px, 7.6vw, 37px); line-height: 1.65; }
  .tb-bs-product-page .tb-bs-equation__merge-copy > p:not(.tb-bs-equation__product-name) { font-size: 16px; line-height: 1.95; }
  .tb-bs-product-page .tb-bs-equation__product-name { margin-top: 24px; font-size: 17px; }
  .tb-bs-equation__merge-visual { aspect-ratio: 4 / 3; }
  .tb-bs-equation__answer { display: grid; grid-template-columns: 1fr; width: 100%; margin-top: 0; }
  .tb-bs-equation__answer .tb-bs-equation__visual { height: auto; aspect-ratio: 4 / 3; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .tb-bs-equation__answer .tb-bs-equation__body { padding: 34px 28px 38px; }
  .tb-bs-product-page .tb-bs-equation h3 { margin-top: 20px; margin-bottom: 20px; font-size: 27px; }
  .tb-bs-development__steps { grid-template-columns: 1fr; gap: 0; }
  .tb-bs-development__steps li { display: grid; grid-template-columns: 58px 1fr; gap: 0 20px; padding: 30px 0; border-top: 1px solid var(--tb-line); text-align: left; }
  .tb-bs-development__steps li:last-child { border-bottom: 1px solid var(--tb-line); }
  .tb-bs-development__steps li > span { grid-row: 1 / span 2; width: 58px; height: 58px; margin: 0; }
  .tb-bs-development__steps h3 { min-height: 0; font-size: 24px; }
  .tb-bs-development__steps p { grid-column: 2; margin-top: 12px; font-size: 16px; }
  .tb-bs-formulation { padding-top: 72px; }
  .tb-bs-formulation__intro { grid-template-columns: 1fr; gap: 34px; }
  .tb-bs-formulation__heading { margin: 0; }
  .tb-bs-formulation__heading h2 { margin-top: 14px; font-size: clamp(34px, 7vw, 42px); }
  .tb-bs-formulation__heading > p:last-child { margin-top: 20px; font-size: 16px; line-height: 1.95; }
  .tb-bs-formulation__visual { aspect-ratio: 4 / 3; }
  .tb-bs-formulation__method { margin-top: 48px; }
  .tb-bs-product-page .tb-bs-formulation__method > h3 { margin-bottom: 14px; font-size: 27px; }
  .tb-bs-formulation__steps { grid-template-columns: 1fr; }
  .tb-bs-formulation__steps li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 0 14px; min-height: 0; padding: 25px 20px 26px 0; text-align: left; }
  .tb-bs-formulation__steps li + li { border-top: 1px solid #c7d5c4; border-left: 0; }
  .tb-bs-formulation__steps li:not(:last-child)::after { display: none; }
  .tb-bs-formulation__steps span { grid-row: 1 / span 2; padding-top: 5px; text-align: center; }
  .tb-bs-formulation__steps strong { margin-top: 0; font-size: 22px; }
  .tb-bs-product-page .tb-bs-formulation__steps p { grid-column: 2; margin-top: 8px; font-size: 16px; line-height: 1.85; }
  .tb-bs-formulation__kale { grid-template-columns: 1fr; margin-top: 46px; }
  .tb-bs-formulation__kale-visual { min-height: 0; aspect-ratio: 5 / 3; }
  .tb-bs-formulation__kale-visual img { min-height: 0; }
  .tb-bs-formulation__kale-copy { padding: 36px 32px 40px; }
  .tb-bs-formulation__kale + .tb-bs-formulation__trust { margin-top: 28px; }
  .tb-bs-formulation__trust { grid-template-columns: 1fr; gap: 24px; margin-top: 60px; }
  .tb-bs-formulation__heritage { grid-template-columns: 1fr; grid-template-rows: auto minmax(250px, 1fr); margin: 0; }
  .tb-bs-formulation__heritage-copy { padding: 38px 32px 40px; }
  .tb-bs-formulation__heritage-visual { min-height: 0; aspect-ratio: 3 / 2; }
  .tb-bs-formulation__heritage-visual img { min-height: 0; }
  .tb-bs-formulation__award { gap: 0; padding: 38px 32px 36px; }
  .tb-bs-product-page .tb-bs-formulation__award h3 { font-size: 27px; }
  .tb-bs-formulation__award-product img { max-height: 190px; }
  .tb-bs-lifestyle__carousel { grid-template-columns: 1fr; padding: 26px 24px 20px; }
  .tb-bs-lifestyle__carousel-title { grid-column: 1; margin: 0 0 16px; font-size: clamp(24px, 5vw, 28px); white-space: normal; }
  .tb-bs-routine__carousel-actions { grid-column: 1; }
  .tb-bs-evidence__comparison-heading { grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); gap: 8px 32px; padding: 30px 28px; }
  .tb-bs-evidence__scenes { grid-template-columns: 1fr; gap: 18px; }
  .tb-bs-evidence__scenes article,
  .tb-bs-evidence__scenes article:nth-child(-n + 2) { grid-column: auto; }
  .tb-bs-evidence__scenes article { display: grid; grid-template-columns: minmax(110px, .72fr) minmax(0, 1.28fr); }
  .tb-bs-evidence__scenes picture,
  .tb-bs-evidence__scene-visual { height: 100%; aspect-ratio: auto; }
  .tb-bs-evidence__scenes article > div:not(.tb-bs-evidence__scene-visual) { padding: 24px 22px; }
  .tb-bs-evidence__scenes article > div > p:not(.tb-bs-evidence__label):not(.tb-bs-evidence__value) { min-height: 0; }
  .tb-bs-evidence__value { margin-top: 16px; }
  .tb-bs-routine__survey-heading h3 { font-size: clamp(30px, 6vw, 39px); }
  .tb-bs-routine__survey-inner { padding-block: 92px 88px; }
  .tb-bs-routine__survey-visual { min-height: 400px; }
  .tb-bs-routine__survey-ranking { grid-template-columns: 1fr; grid-auto-rows: 1fr; margin: 0 24px 24px; }
  .tb-bs-routine__survey-ranking li { display: grid; grid-template-columns: 40px 86px minmax(0, 1fr); min-height: 0; padding: 18px 20px; border-right: 0; border-bottom: 1px solid var(--tb-line); align-items: center; text-align: left; }
  .tb-bs-routine__survey-ranking li:last-child { border-bottom: 0; }
  .tb-bs-routine__survey-ranking li > span { text-align: center; }
  .tb-bs-routine__survey-ranking li > strong { margin: 0; text-align: center; }
  .tb-bs-routine__survey-ranking li > p br { display: none; }
  .tb-bs-details > .tb-shell > .tb-bs-heading h2 { font-size: clamp(31px, 8.4vw, 38px); }
  .tb-bs-details__list > div { grid-template-columns: 1fr; gap: 8px; padding-inline: 4px; }
  .tb-bs-stepup { padding: 48px 28px 36px; }
  .tb-bs-faq { margin-top: 92px; }
  .tb-bs-plan-grid { grid-template-columns: 1fr; }
  .tb-bs-plan-card { width: min(100%, 520px); margin-inline: auto; }
  .tb-bs-plan-card__visual { height: 200px; }
  .tb-bs-plan-card--best .tb-bs-plan-card__visual { height: 155px; }
}

@media (max-width: 900px) {
  .tb-bs-evidence__comparison-heading { display: block; }
  .tb-bs-evidence__comparison-kicker { margin-bottom: 18px; }
  .tb-bs-evidence__comparison-heading h2 { margin: 0 0 16px; font-size: clamp(28px, 4.8vw, 34px); }
  .tb-bs-evidence__comparison-heading > p:last-child { margin-top: 24px; font-size: 16px; line-height: 1.8; }
  .tb-bs-routine__habit-card { flex: 0 0 min(47vw, 390px); scroll-snap-align: start; }
}

@media (max-width: 520px) {
  .tb-bs-product-page .tb-bs,
  .tb-bs-product-page .tb-bs-purchase { font-size: 16px; line-height: 1.95; letter-spacing: .02em; }
  .tb-bs-product-page .tb-bs-purchase .tb-shell { width: min(100% - 24px, 680px); }
  .tb-bs-purchase__native { padding: 8px; }
  .tb-bs-evidence__comparison { margin-bottom: 46px; }
  .tb-bs-evidence__comparison-heading { display: block; margin-bottom: 22px; padding: 26px 20px 28px; }
  .tb-bs-evidence__comparison-heading h2 { margin: 0; font-size: clamp(19px, 6.1vw, 31px); line-height: 1.7; white-space: normal; }
  .tb-bs-evidence__comparison-heading > p:last-child { margin-top: 26px; font-size: 16px; line-height: 1.8; }
  .tb-bs-evidence__compare-guide { grid-template-columns: 1fr; margin-bottom: 22px; }
  .tb-bs-evidence__compare-item { display: grid; grid-template-columns: minmax(112px, .82fr) minmax(0, 1.18fr); align-items: stretch; }
  .tb-bs-evidence__compare-item + .tb-bs-evidence__compare-item { border-top: 1px solid var(--tb-line); border-left: 0; }
  .tb-bs-evidence__compare-item picture { height: 100%; min-height: 118px; aspect-ratio: auto; }
  .tb-bs-evidence__compare-item > div { min-height: 118px; align-self: stretch; padding: 15px 14px 16px; text-align: left; }
  .tb-bs-evidence__compare-item h3 { font-size: clamp(16px, 4.7vw, 19px); line-height: 1.55; }
  .tb-bs-evidence__compare-item p { margin-top: 2px; font-size: 12px; }
  .tb-bs-evidence__switch-input {
    position: absolute;
    display: block;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .tb-bs-evidence__mobile-switch { display: block; margin-bottom: 16px; }
  .tb-bs-evidence__mobile-switch > p { margin: 0 0 10px; color: #53635a; font-size: 13px; font-weight: 600; line-height: 1.65; }
  .tb-bs-evidence__mobile-switch > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .tb-bs-evidence__mobile-switch label { display: flex; box-sizing: border-box; min-height: 94px; padding: 10px 8px; border: 1px solid #b9c9bf; border-radius: 8px; color: var(--tb-green); background: #fff; box-shadow: 0 3px 10px rgba(11, 82, 59, .08); flex-direction: column; align-items: center; justify-content: center; font-size: 13px; line-height: 1.45; text-align: center; cursor: pointer; transition: border-color .24s ease, color .24s ease, background-color .24s ease, box-shadow .24s ease, transform .24s ease; }
  .tb-bs-evidence__mobile-switch label strong { font-weight: 700; }
  .tb-bs-evidence__switch-state { display: inline-flex; min-height: 24px; margin-top: 8px; padding: 3px 9px; border-radius: 999px; color: var(--tb-green); background: var(--tb-soft-green); align-items: center; justify-content: center; font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .02em; transition: color .24s ease, background-color .24s ease, opacity .24s ease; }
  .tb-bs-evidence__switch-active { display: none; }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-sprout"],
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-green"] { border-color: var(--tb-green); color: #fff; background: var(--tb-green); box-shadow: 0 0 0 2px rgba(11, 82, 59, .11), 0 5px 14px rgba(11, 82, 59, .14); transform: none; }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-sprout"] .tb-bs-evidence__switch-state,
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-green"] .tb-bs-evidence__switch-state { color: #fff; background: rgba(255, 255, 255, .16); }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-sprout"] .tb-bs-evidence__switch-idle,
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-green"] .tb-bs-evidence__switch-idle { display: none; }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-sprout"] .tb-bs-evidence__switch-active,
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-green"] .tb-bs-evidence__switch-active { display: inline; }
  #tb-bs-evidence-target-sprout:focus-visible ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-sprout"],
  #tb-bs-evidence-target-green:focus-visible ~ .tb-bs-evidence__mobile-switch label[for="tb-bs-evidence-target-green"] { outline: 3px solid rgba(180, 138, 54, .62); outline-offset: 2px; }
  .tb-bs-evidence__table-wrap { margin-inline: -4px; }
  .tb-bs-evidence__table caption { display: block; box-sizing: border-box; width: 100%; padding: 13px 16px 14px; font-size: 15px; }
  .tb-bs-evidence__caption-desktop { display: none; }
  .tb-bs-evidence__caption-option strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.55; }
  .tb-bs-evidence__caption-option small { display: block; margin-top: 1px; color: rgba(255, 255, 255, .82); font-size: 12px; font-weight: 500; line-height: 1.55; }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__caption-sprout,
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__caption-green { display: block; }
  .tb-bs-evidence__comparison-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .tb-bs-evidence__comparison-table,
  .tb-bs-evidence__comparison-table tbody { display: block; width: 100%; }
  .tb-bs-evidence__comparison-table tbody tr:not(.tb-bs-evidence__group) { display: block; margin: 0; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
  .tb-bs-evidence__comparison-table tbody tr:not(.tb-bs-evidence__group) + tr:not(.tb-bs-evidence__group) { border-top: 0; }
  .tb-bs-evidence__comparison-table tbody th,
  .tb-bs-evidence__comparison-table tbody td { display: block; width: 100%; border: 0; font-size: 16px; text-align: left; }
  .tb-bs-evidence__comparison-table tbody tr:not(.tb-bs-evidence__group) > th { padding: 14px 16px 10px; background: #fbfaf6; font-size: 17px; }
  .tb-bs-evidence__comparison-table tbody td { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 16px; border-top: 1px solid #edf0e9; white-space: nowrap; }
  .tb-bs-evidence__comparison-table tbody td::before { content: attr(data-label); color: #68736c; font-size: 15px; font-weight: 500; line-height: 1.5; white-space: normal; }
  .tb-bs-evidence__comparison-table tbody td[data-label="ブロッコリースプラウトEX"]::before { content: "ブロッコリー\AスプラウトEX"; white-space: pre-line; }
  .tb-bs-evidence__comparison-table tbody td[data-label="ブロッコリースプラウト"]::before { content: "ブロッコリー\Aスプラウト"; white-space: pre-line; }
  .tb-bs-evidence__comparison-table tbody td[data-label="これまでのケール青汁"]::before { content: "これまでの\Aケール青汁"; white-space: pre-line; }
  .tb-bs-evidence__comparison-table tbody td.tb-bs-evidence__product-column { border-left: 0; color: var(--tb-green); background: #fff; font-size: 18px; font-weight: 700; }
  .tb-bs-evidence__comparison-table tbody td.tb-bs-evidence__product-column::before { color: var(--tb-green); background: transparent; font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1.5; letter-spacing: .02em; }
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__comparison-table thead th:nth-child(4),
  #tb-bs-evidence-target-sprout:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__comparison-table tbody tr:not(.tb-bs-evidence__group) > td:nth-child(4),
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__comparison-table thead th:nth-child(3),
  #tb-bs-evidence-target-green:checked ~ .tb-bs-evidence__table-wrap .tb-bs-evidence__comparison-table tbody tr:not(.tb-bs-evidence__group) > td:nth-child(3) { display: none; }
  .tb-bs-evidence__comparison-table .tb-bs-evidence__group { display: block; }
  .tb-bs-evidence__comparison-table .tb-bs-evidence__group th { display: block; width: 100%; padding: 11px 14px; border-right: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
  .tb-bs-evidence__no-data { font-size: 15px !important; white-space: normal !important; }
  .tb-bs-evidence__sources { margin-top: 16px; }
  .tb-bs-evidence__sources p { font-size: 12px; line-height: 1.8; }
  .tb-bs-evidence__meaning { margin-bottom: 24px; text-align: center; }
  .tb-bs-evidence__meaning h3 { font-size: clamp(25px, 7.8vw, 34px); }
  .tb-bs-hero__mobile-kicker { max-width: calc(100% - 32px); padding-top: 14px; }
  .tb-bs-hero__copy { width: calc(100% - 24px); margin-top: -24px; padding: 38px 8px 50px; border-radius: 24px 24px 0 0; }
  .tb-bs-hero__copy h1 { font-size: 44px; line-height: 1.48; }
  .tb-bs-hero__facts { font-size: 11.5px; }
  .tb-bs-hero__facts li { padding-inline: 5px; }
  .tb-bs-purchase__native { padding: 14px; }
  .tb-bs-evidence__scenes article { grid-template-columns: 1fr; }
  .tb-bs-evidence__scenes picture,
  .tb-bs-evidence__scene-visual { height: auto; aspect-ratio: 16 / 9; }
  .tb-bs-evidence__scenes article:first-child .tb-bs-evidence__package { right: 5%; bottom: 6%; width: 52%; }
  .tb-bs-evidence__scenes article > div:not(.tb-bs-evidence__scene-visual) { padding: 24px 20px 26px; }
  .tb-bs-lifestyle__carousel { margin-top: 48px; padding: 22px 18px 16px; }
  .tb-bs-lifestyle__carousel-title { font-size: clamp(22px, 6.7vw, 26px); line-height: 1.7; }
  .tb-bs-routine__carousel-actions { gap: 6px; margin-bottom: 14px; }
  .tb-bs-routine__carousel-actions > span { margin-right: 2px; margin-left: auto; font-size: clamp(10px, 2.8vw, 11px); white-space: nowrap; }
  .tb-bs-routine__carousel-actions button { width: 40px; height: 40px; }
  .tb-bs-routine__habit-card { flex-basis: 82vw; }
  .tb-bs-routine__habit-card > div { min-height: 0; padding: 20px 20px 22px; }
  .tb-bs-routine__habit-index { top: 24px; right: 20px; }
  .tb-bs-routine__habit-card h4 { min-height: 0; margin-bottom: 14px; font-size: 19px; }
  .tb-bs-routine__habit-card > div > p:last-child { font-size: 16px; }
  .tb-bs-routine__survey-inner { width: calc(100% - 32px); padding-block: 82px 82px; }
  .tb-bs-routine__survey-heading { text-align: left; }
  .tb-bs-routine__survey-heading .tb-kicker { justify-content: flex-start; }
  .tb-bs-routine__survey-heading h3 { margin: 16px 0 0; font-size: clamp(28px, 8vw, 34px); letter-spacing: .04em; }
  .tb-bs-routine__survey-heading > p:last-child { margin-top: 26px; font-size: 16px; }
  .tb-bs-routine__survey-result { margin-top: 38px; }
  .tb-bs-routine__survey-visual { display: flex; flex-direction: column; min-height: 0; padding: 24px 14px 20px; place-items: initial; }
  .tb-bs-routine__survey-summary { position: relative; top: auto; left: auto; width: 100%; transform: none; }
  .tb-bs-routine__survey-summary p { margin-top: 12px; font-size: 17px; }
  .tb-bs-routine__survey-summary strong { font-size: 48px; }
  .tb-bs-routine__survey-visual > img { width: min(100%, 420px); margin: 14px auto 0; }
  .tb-bs-routine__survey-ranking { margin: 0 12px 12px; }
  .tb-bs-routine__survey-ranking li { grid-template-columns: 30px 72px minmax(0, 1fr); gap: 6px; min-height: 124px; padding: 16px 12px; }
  .tb-bs-routine__survey-ranking li > strong { font-size: 27px; }
  .tb-bs-routine__survey-ranking li > p { font-size: 16px; line-height: 1.8; }
  .tb-bs-routine__survey-story { margin: 42px 0 0; text-align: left; }
  .tb-bs-routine__survey-story h4 { font-size: 21px; }
  .tb-bs-routine__survey-story p { font-size: 16px; }
  .tb-bs-routine__survey-note { margin-top: 0; font-size: 12px; }
  .tb-bs-purchase-preview__panel,
  .tb-bs-purchase__native .tb-bs-purchase-panel { padding: 10px !important; }
  .tb-bs-purchase-preview__tabs button { padding-inline: 8px; font-size: 16px; }
  .tb-bs-plan-grid { gap: 20px; }
  .tb-bs-plan-card__visual { height: 170px; padding: 16px; }
  .tb-bs-plan-card--best .tb-bs-plan-card__visual { height: 127px; }
  .tb-bs-plan-card__ribbon { font-size: 13px; }
  .tb-bs-plan-card__body { min-height: 0; padding: 24px 20px 26px; }
  .tb-bs-product-page .tb-bs-plan-card__title { font-size: 23px; }
  .tb-bs-plan-card__regular { min-height: 0; margin-top: 16px; }
  .tb-bs-plan-card__price strong { font-size: 42px; }
  .tb-bs-plan-card__benefit { margin-top: 18px; }
  .tb-bs-plan-card .tb-bs-purchase-preview__cart { margin-top: 18px; }
  .tb-bs-equation__body { padding: 24px 18px; }
  .tb-bs-product-page .tb-bs-equation h3 { margin-bottom: 18px; font-size: 22px; }
  .tb-bs-equation p { font-size: 16px; line-height: 1.9; }
  .tb-bs-formulation__intro { gap: 28px; }
  .tb-bs-formulation__heading { margin: 0; }
  .tb-bs-formulation__heading h2 { font-size: clamp(30px, 9vw, 36px); }
  .tb-bs-product-page .tb-bs-formulation__method > h3 { font-size: 25px; }
  .tb-bs-formulation__steps li { grid-template-columns: 40px minmax(0, 1fr); padding-right: 14px; }
  .tb-bs-formulation__steps strong { font-size: clamp(18px, 5.6vw, 20px); }
  .tb-bs-formulation__kale { margin-top: 38px; }
  .tb-bs-formulation__kale-visual { aspect-ratio: 4 / 3; }
  .tb-bs-formulation__kale-copy { padding: 28px 22px 32px; }
  .tb-bs-formulation__kale-location { gap: 9px; margin-top: 16px; }
  .tb-bs-formulation__kale-location strong { font-size: 19px; }
  .tb-bs-product-page .tb-bs-formulation__kale h3 { font-size: clamp(25px, 7.8vw, 30px); }
  .tb-bs-formulation__kale-text { font-size: 16px; line-height: 1.95; }
  .tb-bs-formulation__kale + .tb-bs-formulation__trust { margin-top: 24px; }
  .tb-bs-formulation__heritage-copy { padding: 30px 22px 34px; }
  .tb-bs-product-page .tb-bs-formulation__heritage h3 { font-size: 25px; }
  .tb-bs-formulation__heritage-visual { aspect-ratio: 3 / 2; }
  .tb-bs-formulation__award { padding: 30px 22px 28px; }
  .tb-bs-product-page .tb-bs-formulation__award h3 { font-size: 23px; }
  .tb-bs-formulation__award-visual { min-height: 230px; margin-top: 24px; padding: 22px 0 0; }
  .tb-bs-formulation__award-product img { max-height: 140px; }
  .tb-bs-formulation__award-stamp { gap: 14px; }
  .tb-bs-formulation__award-stamp strong { font-size: 38px; }
  .tb-bs-formulation__award-stamp span { padding-left: 14px; font-size: 12px; }
  .tb-bs-purchase__native .c-product_info__name {
    font-size: clamp(18px, 5.4vw, 22px);
    letter-spacing: .015em;
    white-space: nowrap;
  }
  .tb-bs-title-fit { white-space: normal; letter-spacing: .035em !important; }
  .tb-bs-title-fit--medium { font-size: clamp(20px, 6.3vw, 32px) !important; }
  .tb-bs-title-fit--long { font-size: clamp(16.5px, 5.2vw, 32px) !important; }
  .tb-bs-title-fit--closing { font-size: clamp(20px, 6.2vw, 35px) !important; }
  .tb-bs-equation__answer h3 { font-size: clamp(16.5px, 5.2vw, 22px) !important; white-space: nowrap; }
  .tb-bs-development__steps h3 { font-size: clamp(16.5px, 5.2vw, 24px); white-space: nowrap; }
  .tb-bs-evidence__scenes h3 { font-size: clamp(18px, 5.6vw, 24px); white-space: nowrap; }
  .tb-bs-product-page .tb-bs-formulation__heritage h3 { font-size: clamp(20px, 6.4vw, 25px); white-space: nowrap; }
  .tb-bs-product-page .tb-bs-formulation__award h3 { font-size: clamp(21px, 6.5vw, 27px); }
  .tb-bs-formulation__award h3 span { white-space: nowrap; }
  .tb-bs-stepup { padding: 54px 18px 40px; }
  .tb-bs-product-page .tb-bs .tb-bs-stepup h2 { font-size: 27px; letter-spacing: .04em; }
  .tb-bs-stepup__scenario { margin-top: 20px; }
  .tb-bs-stepup__scenario strong { font-size: 16px; }
  .tb-bs-stepup__levels { grid-template-columns: 1fr; gap: 0; margin-top: 36px; padding-left: 24px; }
  .tb-bs-stepup__levels::before { top: 25px; right: auto; bottom: 25px; left: 29px; width: 4px; height: auto; background: linear-gradient(180deg, #9db989 0%, #8eaf78 58%, #b48a36 100%); }
  .tb-bs-stepup__level { grid-template-columns: 92px 76px minmax(0, 1fr); min-height: 70px; padding: 8px 0 8px 24px; align-items: center; justify-items: start; text-align: left; }
  .tb-bs-stepup__level::before { top: 50%; left: 6px; transform: translate(-50%, -50%); }
  .tb-bs-stepup__level > span { font-size: 13px; }
  .tb-bs-stepup__level > strong { margin: 0; font-size: 32px; }
  .tb-bs-stepup__level--max > strong { width: 58px; height: 58px; margin: 0; font-size: 34px; }
  .tb-bs-stepup__level > small { margin: 0; font-size: 12px; }
  .tb-bs-stepup__details summary { padding-inline: 4px 24px; }
  .tb-bs-stepup__details > p { text-align: left; }
  .tb-bs-faq { margin-top: 82px; }
  .tb-bs-faq > header { margin-bottom: 26px; text-align: left; }
  .tb-bs-faq > header .tb-kicker { justify-content: flex-start; }
  .tb-bs-faq > header h2 { margin-top: 14px; font-size: 31px; }
  .tb-bs-faq__list summary { grid-template-columns: 38px minmax(0, 1fr) 28px; min-height: 72px; padding: 17px 0 17px 4px; font-size: 16px; line-height: 1.75; }
  .tb-bs-faq__list details > p { margin: 0 24px 0 42px; padding-bottom: 23px; font-size: 16px; line-height: 1.9; }
  .tb-bs-routine__habit-card > div > p:last-child,
  .tb-bs-evidence__scenes article > div > p:not(.tb-bs-evidence__label):not(.tb-bs-evidence__value),
  .tb-bs-plan-card__regular,
  .tb-bs-confirm__product .tb-bs-details__list dt,
  .tb-bs-confirm__product .tb-bs-details__list dd { font-size: 16px; line-height: 1.9; }
}

@media (max-width: 1024px) {
  .tb-bs-routine__survey-inner { padding-bottom: 88px; }
  .tb-bs-purchase { padding-block: 78px 44px; }
  .tb-bs-purchase-guide { padding-bottom: 92px; }
  .tb-bs-confirm { padding-block: 92px 104px; }
  .tb-bs-confirm__grid { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 42px; margin-top: 54px; }
  .tb-bs-confirm__product { padding-right: 36px; }
}

@media (max-width: 768px) {
  .tb-bs-purchase { padding-block: 72px 38px; }
  .tb-bs-purchase-guide { padding-bottom: 82px; }
  .tb-bs-confirm { padding-block: 82px 94px; }
  .tb-bs-confirm__heading { text-align: left; }
  .tb-bs-confirm__heading .tb-kicker { justify-content: flex-start; }
  .tb-bs-confirm__heading h2 { font-size: clamp(30px, 7vw, 38px); }
  .tb-bs-confirm__heading h2 span { white-space: normal; }
  .tb-bs-confirm__grid { grid-template-columns: 1fr; gap: 58px; margin-top: 48px; }
  .tb-bs-confirm__product { padding: 0 0 58px; border-right: 0; border-bottom: 1px solid rgba(11,82,59,.18); }
  .tb-bs-confirm__product h3,
  .tb-bs-confirm .tb-bs-faq h3 { font-size: 28px; }
  .tb-bs-purchase-card__promises ul { grid-template-columns: 1fr; gap: 10px; }
  .tb-bs-purchase-card__promises li { min-height: 72px; }
  .tb-bs-purchase-card__promises .tb-bs-purchase-card__payment { grid-column: auto; }
}

@media (max-width: 520px) {
  .tb-bs-routine__survey-inner { padding-bottom: 72px; }
  .tb-bs-routine__survey-story { margin-bottom: 0; }
  .tb-bs-purchase { padding-block: 62px 32px; }
  .tb-bs-purchase__head { margin-bottom: 32px; text-align: left; }
  .tb-bs-purchase__head .tb-kicker { justify-content: flex-start; }
  .tb-bs-purchase__head h2 { font-size: clamp(29px, 8.6vw, 35px); }
  .tb-bs-purchase__head > p:last-child { margin-top: 26px; font-size: 16px; line-height: 1.9; }
  .tb-bs-purchase-guide { padding-bottom: 70px; }
  .tb-bs-purchase-card__promises { padding: 18px 16px; }
  .tb-bs-purchase-card__promises ul { grid-template-columns: 1fr; gap: 10px; }
  .tb-bs-purchase-card__promises li { min-height: 72px; padding: 12px 10px 12px 48px; }
  .tb-bs-purchase-card__promises li::before { left: 14px; width: 27px; height: 27px; }
  .tb-bs-purchase-card__payment strong { display: grid; gap: 3px; font-size: 16px; letter-spacing: .02em; }
  .tb-bs-purchase-card__payment strong i { display: block; }
  .tb-bs-purchase-card__payment strong small { display: block; font-size: 14px; line-height: 1.65; white-space: nowrap; }
  .tb-bs-purchase-card__payment strong i + i::before { display: none; }
  .tb-bs-purchase-card__mobile-line { display: block; }
  .tb-bs-purchase-card__mobile-break { display: block; }
  .tb-bs-confirm { padding-block: 72px 82px; }
  .tb-bs-confirm__heading h2 { font-size: clamp(28px, 8.1vw, 33px); }
  .tb-bs-confirm__grid { gap: 48px; margin-top: 42px; }
  .tb-bs-confirm__product { padding-bottom: 48px; }
  .tb-bs-confirm__product h3,
  .tb-bs-confirm .tb-bs-faq h3 { font-size: 25px; }
  .tb-bs-confirm__serving { margin-top: 24px; padding: 18px 20px; }
  .tb-bs-confirm__serving strong { font-size: 24px; }
  .tb-bs-confirm .tb-bs-faq > header { margin-bottom: 18px; }
  .tb-bs-confirm .tb-bs-faq__list summary { grid-template-columns: 34px minmax(0, 1fr) 24px; padding: 15px 0; font-size: 16px; }
  .tb-bs-confirm .tb-bs-faq__list details > p { margin-inline: 34px 18px; font-size: 16px; }
}

/* 商品ページ：モバイル見出しの行単位フィットと追従購入導線 */
.tb-bs-product-page [data-tb-fit-lines] > span { display: block; white-space: nowrap; }

/* 商品ページ：役割別にそろえた見出しと説明文のリズム */
.tb-bs-product-page .tb-bs .tb-bs-heading--split .tb-kicker,
.tb-bs-product-page .tb-bs .tb-bs-formulation__heading .tb-kicker { margin-bottom: 24px !important; }
.tb-bs-product-page .tb-bs .tb-bs-development__steps h3 + p { margin-top: 18px; }
.tb-bs-product-page .tb-bs .tb-bs-evidence__compare-item h3 + p { margin-top: 6px; }
.tb-bs-product-page .tb-bs .tb-bs-evidence__scenes h3 { margin-bottom: 18px; }
.tb-bs-product-page .tb-bs .tb-bs-routine__survey-heading h3 { margin: 0 0 30px; }
.tb-bs-product-page .tb-bs .tb-bs-routine__survey-heading > p:last-child { margin-top: 0; }
.tb-bs-product-page .tb-bs .tb-bs-lifestyle__carousel-title { margin: 0 24px 18px 0; }
.tb-bs-lifestyle__mobile-break { display: none; }

.tb-bs-floating-buy {
  position: fixed;
  z-index: 90;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  width: min(calc(100% - 40px), 920px);
  overflow: hidden;
  border: 1px solid rgba(11, 82, 59, .28);
  border-radius: 10px;
  color: var(--tb-green);
  background: rgba(255, 253, 248, .97);
  box-shadow: 0 18px 46px rgba(17, 55, 38, .18);
  opacity: 0;
  pointer-events: none;
  text-decoration: none;
  transform: translate(-50%, calc(100% + 42px));
  visibility: hidden;
  transition: opacity .36s ease, transform .36s cubic-bezier(.2, .76, .28, 1), visibility 0s linear .36s;
}
.tb-bs-floating-buy.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
  transition-delay: 0s;
}
.tb-bs-floating-buy__copy { display: grid; align-content: center; gap: 3px; min-width: 0; padding: 13px 22px 14px; }
.tb-bs-floating-buy__copy small { overflow: hidden; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-overflow: ellipsis; white-space: nowrap; }
.tb-bs-floating-buy__copy strong { font-family: "Zen Old Mincho", serif; font-size: 19px; font-weight: 500; letter-spacing: .045em; }
.tb-bs-floating-buy__action { display: flex; min-width: 250px; min-height: 64px; align-items: center; justify-content: center; gap: 16px; padding-inline: 26px; color: #fff; background: #c94b2e; font-size: 16px; font-weight: 700; letter-spacing: .055em; }
.tb-bs-floating-buy__action i { font-style: normal; font-size: 18px; transition: transform .2s ease; }
.tb-bs-floating-buy:hover .tb-bs-floating-buy__action { background: #b94228; }
.tb-bs-floating-buy:hover .tb-bs-floating-buy__action i { transform: translateY(3px); }
.tb-bs-floating-buy.is-return:hover .tb-bs-floating-buy__action i { transform: translateY(-3px); }

@media (max-width: 520px) {
  .tb-bs-product-page [data-tb-fit-lines] { max-width: 100%; }
  .tb-bs-product-page [data-tb-fit-lines] > span { width: max-content; max-width: 100%; }
  .tb-bs-product-page .tb-bs-equation__merge h3[data-tb-fit-lines],
  .tb-bs-product-page .tb-bs-formulation__method > h3[data-tb-fit-lines],
  .tb-bs-product-page .tb-bs-formulation__heritage h3[data-tb-fit-lines] { font-size: 30px; }
  .tb-bs-product-page .tb-bs .tb-bs-development__steps h3 + p { margin-top: 16px; }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__scenes h3 { margin-bottom: 16px; }
  .tb-bs-product-page .tb-bs .tb-bs-routine__survey-heading h3 { margin: 0 0 28px; }
  .tb-bs-product-page .tb-bs .tb-bs-lifestyle__carousel-title { margin: 0 0 14px; }
  .tb-bs-lifestyle__mobile-break { display: block; }
  .tb-bs-formulation__heading > p:last-child,
  .tb-bs-heading--center > p:last-child { margin-top: 26px; }
  .tb-bs-floating-buy {
    bottom: max(10px, env(safe-area-inset-bottom));
    grid-template-columns: minmax(0, 1fr) 144px;
    width: calc(100% - 24px);
    border-radius: 9px;
  }
  .tb-bs-floating-buy__copy { padding: 10px 13px 11px; }
  .tb-bs-floating-buy__copy small { font-size: 10px; letter-spacing: .04em; }
  .tb-bs-floating-buy__copy strong { font-size: 16px; line-height: 1.45; letter-spacing: .025em; }
  .tb-bs-floating-buy__action { min-width: 0; min-height: 68px; gap: 8px; padding-inline: 10px; font-size: 16px; line-height: 1.45; text-align: center; }
}

@media (max-width: 359px) {
  .tb-bs-details > .tb-shell > .tb-bs-heading h2 { font-size: 26.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .tb-bs-product-page *,
  .tb-bs-product-page *::before,
  .tb-bs-product-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (prefers-reduced-motion: reduce) {
  .tb-home *, .tb-home *::before, .tb-home *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .tb-promises__list::after { animation: none !important; transform: none !important; }
}

/* ローカル確認用。ecforce本体では既存ヘッダー・フッターを上の共通指定で整える */
.tb-preview-header {
  position: relative;
  z-index: 20;
  background: rgba(255,253,248,.98);
  border-bottom: 1px solid var(--tb-line);
  color: var(--tb-ink);
  font-family: var(--tb-sans);
}
.tb-preview-header__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  width: min(1240px, calc(100% - 56px));
  min-height: 88px;
  margin-inline: auto;
  align-items: center;
}
.tb-preview-header__logo img { width: 152px; height: auto; }
.tb-preview-header__nav { display: flex; gap: clamp(22px, 2.6vw, 40px); }
.tb-preview-header__nav a,
.tb-preview-header__actions a { color: var(--tb-ink); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-decoration: none; transition: opacity .4s ease; will-change: opacity; }
.tb-preview-header__nav a:hover,
.tb-preview-header__actions a:hover { opacity: .4; }
.tb-preview-header__actions { display: flex; justify-content: flex-end; gap: 24px; }
.tb-preview-header__actions .tb-preview-header__cart {
  position: relative;
  display: inline-grid;
  width: 32px;
  height: 36px;
  place-items: center;
  overflow: visible;
}
.tb-preview-header__cart i { font-size: 23px; line-height: 1; }
.tb-preview-header__cart span {
  position: absolute;
  top: -4px;
  right: -8px;
  display: flex;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--tb-paper);
  border-radius: 999px;
  background: #b54842;
  color: var(--tb-paper);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.tb-preview-header__menu { display: none; border: 0; background: transparent; color: var(--tb-ink); font-size: 14px; }

@media (prefers-reduced-motion: reduce) {
  .tb-header__desktop-nav a,
  .tb-preview-header__nav a,
  .tb-preview-header__actions a { transition: none; }
}

.tb-preview-footer {
  padding: 72px 0 34px;
  background: var(--tb-ink);
  color: #dfe9e2;
  font-family: var(--tb-sans);
}
.tb-preview-footer__inner { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.tb-preview-footer__top { display: grid; grid-template-columns: 1.3fr 2fr; gap: 80px; padding-bottom: 56px; }
.tb-preview-footer__brand img { width: 184px; margin-bottom: 20px; filter: brightness(0) invert(1); opacity: .96; }
.tb-footer-home-link,
.tb-preview-footer__brand > a { display: inline-block; }
.tb-footer-home-link:focus-visible,
.tb-preview-footer__brand > a:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.tb-preview-footer__brand p { max-width: 27em; font-family: var(--tb-serif); font-size: 14px; line-height: 1.9; }
.tb-preview-footer__menus { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.tb-preview-footer__menus h2 { margin: 0 0 18px; color: #fff; font-family: var(--tb-serif); font-size: 14px; font-weight: 500; }
.tb-preview-footer__menus a { display: block; margin: 10px 0; color: #dfe9e2; font-size: 13px; text-decoration: none; }
.tb-preview-footer__bottom { padding-top: 24px; border-top: 1px solid rgba(255,255,255,.2); font-size: 10.5px; }

@media (max-width: 900px) {
  .tb-preview-header__inner { grid-template-columns: 1fr auto 1fr; width: calc(100% - 36px); min-height: 72px; }
  .tb-preview-header__nav { display: none; }
  .tb-preview-header__menu { display: block; justify-self: start; }
  .tb-preview-header__logo img { width: 132px; }
  .tb-preview-header__actions a { display: none; }
  .tb-preview-header__actions a:last-child { display: grid; }
  .tb-preview-footer__top { grid-template-columns: 1fr; gap: 42px; }
}
@media (max-width: 600px) {
  .tb-preview-header__actions { gap: 0; }
  .tb-preview-footer { padding-top: 58px; }
  .tb-preview-footer__inner { width: calc(100% - 40px); }
  .tb-preview-footer__menus { grid-template-columns: 1fr 1fr; row-gap: 34px; }
  .tb-preview-footer__menus a { font-size: 14px; }
}
@media (max-width: 420px) {
  .tb-preview-footer__menus { grid-template-columns: 1fr; }
}

/* 天然美活について：トップの結論を、始まりと判断基準まで深める */
.tb-about,
.tb-about * { box-sizing: border-box; }

.tb-about {
  overflow: clip;
  background: var(--tb-paper);
  color: var(--tb-text);
  font-family: var(--tb-sans);
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: .035em;
  line-break: strict;
  word-break: auto-phrase;
}

.tb-about-keep { white-space: nowrap; }

.tb-about img { display: block; width: 100%; max-width: 100%; }
.tb-about h1,
.tb-about h2,
.tb-about h3,
.tb-about p { margin: 0; }
.tb-about h1,
.tb-about h2,
.tb-about h3 {
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-weight: 500;
  letter-spacing: .055em;
}
.tb-about h2 {
  font-size: clamp(30px, 3.25vw, 49px);
  line-height: 1.52;
}
.tb-about-section { padding-block: clamp(82px, 9vw, 136px); }

/* トップページと共通のものづくり図は、文字組みと余白も同一にする */
.tb-about-making {
  padding-block: clamp(76px, 9vw, 132px);
  line-height: 1.9;
  line-break: auto;
  word-break: normal;
}
.tb-about-making .tb-promises__head h2 {
  margin-bottom: 20px;
  font-size: clamp(29px, 3.15vw, 48px);
  line-height: 1.55;
}
.tb-about-making .tb-promises__content h3 { margin-bottom: 18px; }
.tb-about-copy p + p,
.tb-about-principle__copy p + p,
.tb-about-people__copy p + p { margin-top: 22px; }
.tb-about-hero__copy > p:last-child,
.tb-about-copy p,
.tb-about-story__copy p,
.tb-about-principle__copy p,
.tb-about-heading > p:last-child,
.tb-about-making__steps p,
.tb-about-setback__copy p,
.tb-about-lesson > p:last-child,
.tb-about-lessons__conclusion,
.tb-about-communication__intro > p:last-child,
.tb-about-editorial__intro > p:last-child,
.tb-about-editorial__copy p,
.tb-about-people__copy > p:not(.tb-kicker),
.tb-about-renewal__copy > p:not(.tb-kicker),
.tb-about-history__list p,
.tb-about-future__inner > p:not(.tb-kicker) {
  white-space: normal;
  text-wrap: wrap;
  line-break: strict;
  overflow-wrap: break-word;
  word-break: normal;
}

.tb-about-hero { background: var(--tb-warm); }
.tb-about-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  min-height: 640px;
  align-items: stretch;
}
.tb-about-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(72px, 8vw, 118px) clamp(44px, 6vw, 88px) clamp(72px, 8vw, 118px) 0;
}

/* ecforceの共通ページ余白に影響されても、読みもの記事と同じ導入余白を保つ */
@media (min-width: 769px) {
  .tb-about .tb-about-hero .tb-about-hero__copy {
    padding-top: clamp(76px, 8vw, 118px) !important;
  }
}
.tb-about-hero__copy h1 {
  margin-bottom: 34px;
  font-size: clamp(39px, 4.25vw, 62px);
  line-height: 1.48;
}
.tb-about-hero__copy h1 span {
  display: block;
  white-space: nowrap;
}
.tb-about-hero__copy h1::after {
  display: block;
  width: 76px;
  height: 4px;
  margin-top: 27px;
  background: var(--tb-leaf-soft);
  content: "";
}
.tb-about-hero__copy > p:last-child {
  max-width: 35em;
  font-size: clamp(16px, 1.34vw, 18px);
  line-height: 2.05;
}
.tb-about-opening,
.tb-about-story__scene,
.tb-about-closing,
.tb-about-future__line,
.tb-about-lessons__conclusion span {
  display: block;
}
.tb-about-opening { margin-bottom: .35em; }
.tb-about-story__scene { margin-bottom: .55em; }
.tb-about-closing { margin-top: .55em; }
.tb-about-hero__visual {
  position: relative;
  min-height: 640px;
  overflow: hidden;
}
.tb-about-hero__visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(245,241,231,.2), transparent 24%);
  content: "";
  pointer-events: none;
}
.tb-about-hero__visual img { height: 100%; object-fit: cover; object-position: center; }

.tb-about-nav { border-top: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); background: var(--tb-paper); }
.tb-about-nav__inner { display: grid; grid-template-columns: repeat(6, 1fr); }
.tb-about-nav a {
  min-height: 76px;
  display: grid;
  place-items: center;
  padding: 14px;
  border-right: 1px solid var(--tb-line);
  color: var(--tb-ink);
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: background .25s ease, color .25s ease;
}
.tb-about-nav a:first-child { border-left: 1px solid var(--tb-line); }
.tb-about-nav a:hover { background: var(--tb-mist); }

.tb-about-origin__grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(52px, 7vw, 96px);
  align-items: start;
}
.tb-about-origin__title span:first-child { display: block; }
.tb-about-origin .tb-about-copy {
  padding-top: 46px;
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 2.1;
}

.tb-about-turning { overflow: hidden; background: var(--tb-warm); }
.tb-about-story {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(50px, 7vw, 96px);
  align-items: center;
}
.tb-about-story__question { position: relative; }
.tb-about-story__mark {
  position: absolute;
  top: 18px;
  left: -42px;
  color: rgba(180,138,54,.17);
  font-family: Georgia, serif;
  font-size: clamp(120px, 15vw, 210px);
  line-height: 1;
  pointer-events: none;
}
.tb-about-story__question h2 { position: relative; z-index: 1; }
.tb-about-story__copy { font-size: clamp(16px, 1.35vw, 18px); line-height: 2.1; }
.tb-about-story__copy p + p { margin-top: 24px; }
.tb-about-story__quote {
  grid-column: 1 / -1;
  margin: clamp(18px, 3vw, 38px) 0 0;
  padding: clamp(32px, 4vw, 52px) 20px;
  border-top: 1px solid var(--tb-line);
  border-bottom: 1px solid var(--tb-line);
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-size: clamp(25px, 3.3vw, 42px);
  font-weight: 500;
  line-height: 1.72;
  letter-spacing: .075em;
  text-align: center;
}

.tb-about-principle { background: var(--tb-ink); color: #f4f0e6; }
.tb-about-principle__grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(48px, 7vw, 96px);
  align-items: center;
}
.tb-about-principle .tb-kicker,
.tb-about-principle h2 { color: #fffdf8; }
.tb-about-principle .tb-kicker::before { background: #d2b16b; }
.tb-about-principle h2 { font-size: clamp(48px, 5.9vw, 76px); line-height: 1.42; }
.tb-about-principle h2 span { display: block; white-space: nowrap; }
.tb-about-principle__copy { font-size: clamp(17px, 1.55vw, 20px); font-weight: 500; line-height: 2.08; }

.tb-about-founding { background: var(--tb-paper); }
.tb-about-founding__grid {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(52px, 7vw, 96px);
  align-items: start;
}
.tb-about-founding__grid .tb-about-copy {
  padding-top: 42px;
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 2.1;
}
.tb-about-setback {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(46px, 7vw, 94px);
  margin-top: clamp(78px, 10vw, 138px);
  padding: clamp(46px, 6vw, 74px);
  background: var(--tb-mist);
}
.tb-about-setback__lead h2 { font-size: clamp(29px, 3.9vw, 48px); }
.tb-about-setback__copy { font-size: 16px; line-height: 2.05; }
.tb-about-setback__copy p + p { margin-top: 22px; }
.tb-about-setback__line {
  grid-column: 1 / -1;
  margin: 10px 0 0;
  padding-top: clamp(28px, 4vw, 42px);
  border-top: 1px solid #bdcbbc;
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-size: clamp(26px, 3.3vw, 40px);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .07em;
  text-align: center;
}
.tb-about-setback__mobile-break { display: none; }

.tb-about-lessons {
  background: var(--tb-warm);
}
.tb-about-lessons .tb-about-heading {
  max-width: 850px;
}
.tb-about-lessons__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 3.2vw, 46px);
}
.tb-about-lesson {
  position: relative;
  padding: clamp(34px, 4.5vw, 58px);
  border-top: 3px solid var(--tb-gold);
  background: rgba(255,255,255,.62);
}
.tb-about-lesson__number {
  color: var(--tb-gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
}
.tb-about-lesson__label {
  margin-top: 28px !important;
  color: var(--tb-ink);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
}
.tb-about-lesson h3 {
  margin-top: 14px;
  font-size: clamp(23px, 2.4vw, 32px);
  line-height: 1.65;
}
.tb-about-lesson > p:last-child {
  margin-top: 24px;
  color: var(--tb-muted);
  font-size: 16px;
  line-height: 2.05;
}
.tb-about-lessons__conclusion {
  max-width: 900px;
  margin: clamp(46px, 6vw, 76px) auto 0 !important;
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--tb-line);
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: .055em;
  text-align: center;
}
.tb-about-lessons__mobile-break { display: none; }

.tb-about-heading { max-width: 790px; margin-bottom: clamp(48px, 6vw, 82px); }
.tb-about-heading > p:last-child { max-width: 47em; margin-top: 26px; font-size: 17px; line-height: 2.05; }
.tb-about-heading--center { margin-inline: auto; text-align: center; }
.tb-about-heading--center .tb-kicker::before { display: none; }

.tb-about-making { background: var(--tb-paper); }
.tb-about-making__steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--tb-line);
  border-bottom: 1px solid var(--tb-line);
  list-style: none;
}
.tb-about-making__steps::before {
  position: absolute;
  top: -2px;
  left: 0;
  width: 25%;
  height: 3px;
  background: var(--tb-gold);
  content: "";
}
.tb-about-making__steps li {
  min-height: 310px;
  padding: 38px clamp(22px, 2.4vw, 34px) 42px;
  border-right: 1px solid var(--tb-line);
}
.tb-about-making__steps li:first-child { border-left: 1px solid var(--tb-line); }
.tb-about-making__steps span { color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.tb-about-making__steps h3 { min-height: 3.4em; margin-top: 44px; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.7; }
.tb-about-making__steps p { margin-top: 22px; color: var(--tb-muted); font-size: 15px; line-height: 1.95; }

.tb-about-communication { background: var(--tb-mist); }
.tb-about-communication__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.22fr);
  gap: clamp(64px, 9vw, 132px);
  align-items: start;
}
.tb-about-communication__intro > p:last-child { max-width: 40em; margin-top: 28px; font-size: 17px; line-height: 2.05; }
.tb-about-communication__list { margin: 0; padding: 0; border-top: 1px solid #bdcbbc; list-style: none; }
.tb-about-communication__list li {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 22px;
  min-height: 130px;
  align-items: center;
  padding: 24px 16px;
  border-bottom: 1px solid #bdcbbc;
}
.tb-about-communication__list span { color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.tb-about-communication__list strong { color: var(--tb-ink); font-family: var(--tb-serif); font-size: clamp(20px, 2vw, 26px); font-weight: 500; line-height: 1.7; letter-spacing: .055em; }

.tb-about-editorial {
  scroll-margin-top: 96px;
  background: var(--tb-paper);
}
.tb-about-editorial__grid {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  gap: clamp(56px, 8vw, 112px);
  align-items: start;
}
.tb-about-editorial__intro h2 { margin-bottom: 28px; }
.tb-about-editorial__intro > p:last-child,
.tb-about-editorial__copy { font-size: 17px; line-height: 2.05; }
.tb-about-editorial__copy {
  padding: clamp(34px, 4.5vw, 56px);
  border-top: 3px solid var(--tb-gold);
  background: var(--tb-warm);
}
.tb-about-editorial__copy p + p {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--tb-line);
}

.tb-about-people { padding-block: 0; background: var(--tb-warm); }
.tb-about-people__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); width: 100%; max-width: none; }
.tb-about-people__visual { min-height: 650px; overflow: hidden; }
.tb-about-people__visual img { height: 100%; object-fit: cover; object-position: center; }
.tb-about-people__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(74px, 9vw, 132px) clamp(48px, 8vw, 116px); }
.tb-about-people__copy > p:not(.tb-kicker) { max-width: 35em; font-size: 17px; line-height: 2.05; }
.tb-about-people__copy h2 { margin-bottom: 32px; }

.tb-about-renewal { overflow: hidden; background: var(--tb-paper); }
.tb-about-renewal__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(210px, .58fr) minmax(0, 1.42fr);
  gap: clamp(56px, 9vw, 132px);
  align-items: center;
}
.tb-about-renewal__number {
  display: flex;
  align-items: flex-end;
  color: rgba(180,138,54,.18);
  font-family: var(--tb-serif);
  line-height: 1;
  white-space: nowrap;
}
.tb-about-renewal__number span { font-size: clamp(128px, 15vw, 218px); letter-spacing: -.06em; }
.tb-about-renewal__number small { margin: 0 0 30px 10px; color: var(--tb-gold); font-size: 16px; font-weight: 700; letter-spacing: .12em; }
.tb-about-renewal__copy { max-width: 710px; }
.tb-about-renewal__copy h2 { margin-bottom: 34px; }
.tb-about-renewal__copy > p:not(.tb-kicker) { font-size: clamp(16px, 1.35vw, 18px); line-height: 2.08; }
.tb-about-renewal__copy > p:not(.tb-kicker) + p { margin-top: 22px; }

.tb-about-history__list { max-width: 910px; margin: 0 auto; padding: 0; border-top: 1px solid var(--tb-line); list-style: none; }
.tb-about-history__list li {
  display: grid;
  grid-template-columns: 165px 1fr;
  gap: clamp(34px, 5vw, 76px);
  padding: 38px 14px;
  border-bottom: 1px solid var(--tb-line);
}
.tb-about-history__list time,
.tb-about-history__list li > span { padding-top: 8px; color: var(--tb-gold); font-size: 13px; font-weight: 700; letter-spacing: .13em; }
.tb-about-history__list h3 { font-size: clamp(21px, 2vw, 27px); line-height: 1.6; }
.tb-about-history__list p { margin-top: 12px; color: var(--tb-muted); line-height: 1.95; }
.tb-about-history__list--compact {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 1120px;
}
.tb-about-history__list--compact li {
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 24px;
  padding: 30px 26px;
}
.tb-about-history__list--compact li:nth-child(odd) { border-right: 1px solid var(--tb-line); }
.tb-about-history__list--compact h3 { font-size: clamp(18px, 1.55vw, 22px); }
.tb-about-history__list--compact p { margin-top: 8px; font-size: 15px; }

.tb-about-future { position: relative; background: #eaf1e2; text-align: center; }
.tb-about-future::before,
.tb-about-future::after {
  position: absolute;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(135,185,78,.32);
  border-radius: 50%;
  content: "";
}
.tb-about-future::before { top: -110px; left: -90px; }
.tb-about-future::after { right: -110px; bottom: -125px; }
.tb-about-future__inner { position: relative; z-index: 1; max-width: 780px; }
.tb-about-future .tb-kicker::before { display: none; }
.tb-about-future h2 { margin-bottom: 30px; }
.tb-about-future__inner > p:not(.tb-kicker) { font-size: 17px; line-height: 2.1; }
.tb-about-future__actions { display: flex; justify-content: center; align-items: center; gap: 40px; margin-top: 42px; }

@media (max-width: 1024px) {
  .tb-about-hero__grid { grid-template-columns: 1fr 1fr; min-height: 590px; }
  .tb-about-hero__copy { padding-right: 44px; }
  .tb-about-hero__visual { min-height: 590px; }
  .tb-about-origin__grid,
  .tb-about-principle__grid,
  .tb-about-communication__grid,
  .tb-about-founding__grid { gap: 60px; }
  .tb-about-story { gap: 60px; }
  .tb-about-setback { gap: 46px; }
  .tb-about-renewal__grid { grid-template-columns: minmax(180px, .5fr) minmax(0, 1.5fr); gap: 54px; }
  .tb-about-making__steps { grid-template-columns: 1fr 1fr; }
  .tb-about-making__steps::before { width: 50%; }
  .tb-about-making__steps li:nth-child(2) { border-right: 1px solid var(--tb-line); }
  .tb-about-making__steps li:nth-child(n+3) { border-top: 1px solid var(--tb-line); }
  .tb-about-making__steps li:nth-child(3) { border-left: 1px solid var(--tb-line); }
  .tb-about-making__steps h3 { min-height: auto; }
  .tb-about-people__visual { min-height: 610px; }
}

@media (max-width: 768px) {
  .tb-about-section { padding-block: 82px; }
  .tb-about-making { padding-block: 72px; }
  .tb-about-making .tb-promises__head h2 {
    font-size: clamp(27px, 8vw, 32px);
    line-height: 1.55;
  }
  .tb-about-hero__grid { grid-template-columns: 1fr; width: 100%; min-height: 0; }
  .tb-about-hero__copy { width: min(100% - 48px, 680px); margin-inline: auto; padding: 72px 0 58px; }
  .tb-about-hero__visual { min-height: 0; aspect-ratio: 4 / 3; }
  .tb-about-hero__visual::after { background: linear-gradient(180deg, rgba(245,241,231,.22), transparent 26%); }
  .tb-about-nav { overflow-x: auto; }
  .tb-about-nav__inner { width: max-content; min-width: 100%; }
  .tb-about-nav a { width: 146px; min-height: 68px; }
  .tb-about-origin__grid,
  .tb-about-principle__grid,
  .tb-about-communication__grid,
  .tb-about-editorial__grid,
  .tb-about-people__grid,
  .tb-about-story,
  .tb-about-founding__grid,
  .tb-about-renewal__grid { grid-template-columns: 1fr; }
  .tb-about-origin__grid { gap: 36px; }
  .tb-about-origin .tb-about-copy { padding-top: 0; }
  .tb-about-story { gap: 40px; }
  .tb-about-editorial__grid { gap: 38px; }
  .tb-about-editorial__intro > p:last-child,
  .tb-about-editorial__copy { font-size: 16px; }
  .tb-about-story__mark { left: -24px; }
  .tb-about-story__quote { margin-top: 10px; }
  .tb-about-principle__grid { gap: 46px; }
  .tb-about-principle h2 { font-size: clamp(45px, 11vw, 68px); }
  .tb-about-founding__grid .tb-about-copy { padding-top: 0; }
  .tb-about-setback { grid-template-columns: 1fr; }
  .tb-about-setback__line { grid-column: 1; }
  .tb-about-lessons__grid { grid-template-columns: 1fr; }
  .tb-about-history__list--compact { grid-template-columns: 1fr; }
  .tb-about-history__list--compact li:nth-child(odd) { border-right: 0; }
  .tb-about-communication__grid { gap: 48px; }
  .tb-about-people__visual { min-height: 0; aspect-ratio: 3 / 2; }
  .tb-about-people__copy { padding: 68px max(24px, calc((100vw - 680px) / 2)); }
  .tb-about-renewal__number { margin-bottom: -26px; }
  .tb-about-renewal__number span { font-size: 154px; }
  .tb-about-renewal__number small { margin-bottom: 22px; }
  .tb-about-history__list li { grid-template-columns: 120px 1fr; gap: 30px; }
}

@media (max-width: 600px) {
  .tb-preview-header__actions a { display: none; }
  .tb-about { font-size: 16px; line-height: 1.9; letter-spacing: .02em; }
  .tb-about-section { padding-block: 70px; }
  .tb-about-making {
    padding-block: 72px;
    line-height: 1.85;
    letter-spacing: .025em;
  }
  .tb-about-making .tb-promises__content h3 { margin-bottom: 10px; }
  .tb-about h2 { font-size: clamp(27px, 8.1vw, 34px); line-height: 1.6; }
  .tb-about-origin__title span { display: block; white-space: nowrap; }
  .tb-about-hero__copy { width: calc(100% - 40px); padding-block: 62px 48px; }
  .tb-about-hero__copy h1 { margin-bottom: 28px; font-size: clamp(29px, 8.3vw, 36px); line-height: 1.58; }
  .tb-about-hero__copy > p:last-child,
  .tb-about-origin .tb-about-copy,
  .tb-about-story__copy,
  .tb-about-heading > p:last-child,
  .tb-about-founding__grid .tb-about-copy,
  .tb-about-communication__intro > p:last-child,
  .tb-about-people__copy > p:not(.tb-kicker),
  .tb-about-renewal__copy > p:not(.tb-kicker),
  .tb-about-future__inner > p:not(.tb-kicker) { font-size: 16px; line-height: 1.95; }
  .tb-about-story__mark { top: 26px; left: -12px; font-size: 116px; }
  .tb-about-story__quote { padding-inline: 0; font-size: 24px; line-height: 1.75; letter-spacing: .045em; }
  .tb-about-nav__inner { margin: 0; }
  .tb-about-nav a { width: 132px; font-size: 13px; }
  .tb-about-principle__copy { font-size: 16px; line-height: 1.95; }
  .tb-about-setback { margin-top: 64px; padding: 38px 22px; }
  .tb-about-setback__copy { font-size: 16px; line-height: 1.95; }
  .tb-about-setback__line { padding-top: 28px; font-size: clamp(22px, 6.4vw, 25px); line-height: 1.72; letter-spacing: .045em; }
  .tb-about-setback__mobile-break { display: block; }
  .tb-about-lesson { padding: 34px 22px 38px; }
  .tb-about-lesson__label { margin-top: 22px !important; }
  .tb-about-lesson h3 { font-size: 23px; }
  .tb-about-lesson > p:last-child { font-size: 16px; line-height: 1.95; }
  .tb-about-lessons__conclusion { font-size: clamp(21px, 6vw, 23px); line-height: 1.8; text-align: center; }
  .tb-about-lessons__mobile-break { display: block; }
  .tb-about-heading { margin-bottom: 42px; }
  .tb-about-making__steps { grid-template-columns: 1fr; border-bottom: 0; }
  .tb-about-making__steps::before { width: 100%; }
  .tb-about-making__steps li,
  .tb-about-making__steps li:first-child,
  .tb-about-making__steps li:nth-child(3) { min-height: 0; padding: 30px 22px 34px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
  .tb-about-making__steps li:nth-child(n+3) { border-top: 0; }
  .tb-about-making__steps h3 { margin-top: 22px; font-size: 21px; }
  .tb-about-making__steps p { font-size: 16px; }
  .tb-about-communication__list li { grid-template-columns: 46px 1fr; gap: 12px; min-height: 112px; padding-inline: 4px; }
  .tb-about-communication__list strong { font-size: 20px; }
  .tb-about-people__copy { padding: 58px 20px 70px; }
  .tb-about-renewal__number { margin-bottom: -20px; }
  .tb-about-renewal__number span { font-size: 126px; }
  .tb-about-renewal__number small { margin-bottom: 17px; font-size: 14px; }
  .tb-about-renewal__copy h2 { margin-bottom: 28px; }
  .tb-about-history__list li { grid-template-columns: 1fr; gap: 12px; padding: 30px 4px; }
  .tb-about-history__list time,
  .tb-about-history__list li > span { padding-top: 0; }
  .tb-about-history__list p { font-size: 16px; }
  .tb-about-history__list--compact li { grid-template-columns: 1fr; gap: 10px; padding: 26px 4px; }
  .tb-about-future__actions { flex-direction: column; gap: 26px; }
  .tb-about-future__actions .tb-button { width: 100%; }
}

@media (max-width: 374px) {
  .tb-about-hero__copy { width: calc(100% - 32px); }
  .tb-about-hero__copy h1 { font-size: 27px; }
  .tb-about-people__copy { padding-inline: 16px; }
}

/* 中央配置のサブタイトルは、左右の細線で視線の軸を揃える */
.tb-kicker--centered {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 24px !important;
}

.tb-kicker--centered::before,
.tb-kicker--centered::after {
  display: block;
  flex: 0 0 28px;
  width: 28px;
  height: 1px;
  margin: 0;
  background: var(--tb-gold);
  content: "";
}

.tb-bs-hero__mobile-kicker.tb-kicker--centered { display: none; }

.tb-bs-hero__copy .tb-kicker {
  margin-bottom: 22px !important;
  padding-top: 16px;
}

@media (max-width: 768px) {
  .tb-kicker--centered {
    gap: 11px;
  }

  .tb-kicker--centered::before,
  .tb-kicker--centered::after {
    flex-basis: 22px;
    width: 22px;
  }

  .tb-bs-hero__mobile-kicker.tb-kicker--centered {
    display: inline-flex;
    margin-bottom: 0 !important;
    padding: 17px 0;
    border-top: 0;
  }

  .tb-bs-heading--center .tb-kicker--centered {
    justify-content: flex-start;
  }

  .tb-bs-heading--center .tb-kicker--centered::after {
    display: none;
  }
}

/* 読みもの：ブロッコリースプラウトの基礎知識 */
.tb-article,
.tb-article * { box-sizing: border-box; }

.tb-article {
  overflow: clip;
  background: var(--tb-paper);
  color: var(--tb-text);
  font-family: var(--tb-sans);
  font-size: 17px;
  line-height: 1.95;
  letter-spacing: .025em;
}

.tb-article img { display: block; max-width: 100%; }
.tb-article h1,
.tb-article h2,
.tb-article h3,
.tb-article h4,
.tb-article p,
.tb-article figure { margin: 0; }
.tb-article h1,
.tb-article h2,
.tb-article h3,
.tb-article h4 {
  color: var(--tb-ink);
  font-family: var(--tb-serif);
  font-weight: 500;
  letter-spacing: .045em;
}
.tb-article .tb-article-title-flow {
  overflow-wrap: normal;
  text-wrap: wrap;
  word-break: keep-all;
}
.tb-article-title-flow > span { white-space: nowrap; }
.tb-article a { color: var(--tb-ink); text-underline-offset: .2em; }
.tb-article sup { margin-left: .18em; font-size: .68em; vertical-align: super; }
.tb-article sup + sup { margin-left: .08em; }
.tb-article sup a { font-weight: 700; text-decoration: none; }

.tb-article-shell {
  width: min(1160px, calc(100% - 64px));
  margin-inline: auto;
}

.tb-article-hero {
  border-bottom: 1px solid var(--tb-line);
  background:
    radial-gradient(circle at 16% 6%, rgba(135,185,78,.12), transparent 26%),
    var(--tb-warm);
}
.tb-article-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, .93fr) minmax(420px, 1.07fr);
  min-height: 640px;
  align-items: stretch;
}
.tb-article-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(76px, 8vw, 118px) clamp(50px, 7vw, 96px) clamp(68px, 7vw, 104px) 0;
}
.tb-article-kicker {
  margin-bottom: 24px !important;
  color: var(--tb-gold);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
}
.tb-article-kicker::before {
  display: inline-block;
  width: 28px;
  height: 1px;
  margin-right: 12px;
  vertical-align: middle;
  background: currentColor;
  content: "";
}
.tb-article-hero h1 {
  margin-bottom: 30px;
  font-size: clamp(36px, 3.4vw, 46px);
  line-height: 1.48;
}
.tb-article-hero h1 span { display: block; white-space: nowrap; }
.tb-article-hero__lead {
  max-width: 37em;
  color: #44574e;
  font-size: 17px;
  line-height: 2.05;
}
.tb-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 36px;
  color: var(--tb-muted);
  font-size: 12px;
  letter-spacing: .05em;
}
.tb-article-meta__link {
  display: inline-block;
  margin: -4px -2px;
  padding: 4px 2px;
  color: #315f4f;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(49, 95, 79, .48);
  text-decoration-thickness: 1px;
  text-underline-offset: .28em;
}
.tb-article-meta__link:hover { text-decoration-color: currentColor; }
.tb-article-meta__link:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--tb-green);
  outline-offset: 3px;
}
.tb-article-hero__visual { min-height: 640px; overflow: hidden; }
.tb-article-hero__visual picture,
.tb-article-hero__visual img { width: 100%; height: 100%; }
.tb-article-hero__visual img { object-fit: cover; object-position: center; }

.tb-article-opening { padding-block: clamp(72px, 9vw, 126px) clamp(96px, 11vw, 156px); }
.tb-article-answer {
  max-width: 1000px;
  margin: 0 auto clamp(84px, 10vw, 132px);
  padding: clamp(42px, 6vw, 72px);
  border-top: 4px solid var(--tb-green);
  background: #f1f5ec;
}
.tb-article-answer__label {
  margin-bottom: 12px !important;
  color: var(--tb-gold);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
}
.tb-article-answer h2 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.55; }
.tb-article-answer__lead { max-width: 45em; margin-top: 22px !important; font-size: 18px; }
.tb-article-answer__lead strong { color: var(--tb-ink); font-weight: 700; }
.tb-article-answer__grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 38px; border-top: 1px solid #c6d4c2; border-left: 1px solid #c6d4c2; }
.tb-article-answer__grid > div { min-height: 210px; padding: 26px 22px; border-right: 1px solid #c6d4c2; border-bottom: 1px solid #c6d4c2; background: rgba(255,255,255,.55); }
.tb-article-answer__grid span { display: block; margin-bottom: 26px; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .13em; }
.tb-article-answer__grid strong { display: block; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 19px; font-weight: 500; }
.tb-article-answer__grid p { margin-top: 10px; color: var(--tb-muted); font-size: 14px; line-height: 1.85; }
.tb-article-answer__note { margin-top: 26px !important; color: var(--tb-muted); font-size: 13px; line-height: 1.8; }

.tb-article--aojiru .tb-article-answer__grid p,
.tb-article--aojiru .tb-article-steps p,
.tb-article--aojiru .tb-article-recipes p { font-size: 16px; }

.tb-article-layout { display: grid; grid-template-columns: 240px minmax(0, 760px); gap: clamp(64px, 8vw, 118px); align-items: start; justify-content: center; }
.tb-article-toc { position: sticky; top: 112px; }
.tb-article-toc nav { padding: 28px 0; border-top: 1px solid var(--tb-gold); border-bottom: 1px solid var(--tb-line); }
.tb-article-toc__title { margin-bottom: 16px !important; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 17px; font-weight: 500; }
.tb-article-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: tb-article-toc; }
.tb-article-toc li { counter-increment: tb-article-toc; }
.tb-article-toc a { display: grid; grid-template-columns: 27px 1fr; gap: 6px; padding: 7px 0; color: var(--tb-muted); font-size: 13px; line-height: 1.55; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.tb-article-toc a::before { color: var(--tb-gold); content: counter(tb-article-toc, decimal-leading-zero); font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.tb-article-toc a:hover { color: var(--tb-ink); transform: translateX(3px); }
.tb-article-content { min-width: 0; }
.tb-article-section { padding-bottom: clamp(72px, 8vw, 104px); scroll-margin-top: 110px; }
.tb-article-section + .tb-article-section { padding-top: clamp(68px, 7vw, 94px); border-top: 1px solid var(--tb-line); }
.tb-article-section__number { margin-bottom: 18px !important; color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.tb-article-section > h2 { margin-bottom: 28px; font-size: clamp(31px, 3.6vw, 45px); line-height: 1.55; text-wrap: balance; }
.tb-article-section > h3 { margin-top: 56px; margin-bottom: 18px; padding-left: 18px; border-left: 3px solid var(--tb-gold); font-size: clamp(22px, 2.2vw, 27px); line-height: 1.65; }
.tb-article-section > p + p { margin-top: 20px; }
.tb-article-lead { margin-bottom: 38px !important; color: #42564c; font-size: 18px; font-weight: 500; line-height: 2; }
.tb-article-caption { margin-top: 14px !important; color: var(--tb-muted); font-size: 12px; line-height: 1.75; }

.tb-article-growth { display: grid; grid-template-columns: 1fr 30px 1fr 30px 1fr 30px 1fr; align-items: center; margin-top: 42px; padding: 32px 24px; border: 1px solid var(--tb-line); background: #fff; }
.tb-article-growth > div { text-align: center; }
.tb-article-growth > i { color: var(--tb-gold); font-family: var(--tb-serif); font-size: 24px; font-style: normal; text-align: center; }
.tb-article-growth strong { display: block; margin-top: 14px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 18px; font-weight: 500; }
.tb-article-growth small { display: block; margin-top: 5px; color: var(--tb-muted); font-size: 11px; line-height: 1.55; }
.tb-article-growth > div > span { position: relative; display: block; width: 54px; height: 54px; margin: 0 auto; }
.tb-article-growth__seed::before { position: absolute; inset: 14px 10px; border-radius: 55% 42% 58% 45%; background: #9b7440; box-shadow: inset -5px -4px 0 rgba(77,49,20,.14); content: ""; transform: rotate(-18deg); }
.tb-article-growth__root::before { position: absolute; top: 8px; left: 17px; width: 24px; height: 27px; border-radius: 55% 42% 58% 45%; background: #9b7440; content: ""; transform: rotate(-18deg); }
.tb-article-growth__root::after { position: absolute; top: 31px; left: 29px; width: 2px; height: 22px; border-radius: 2px; background: #e0d1aa; content: ""; transform: rotate(18deg); }
.tb-article-growth__leaf::before,
.tb-article-growth__leaf::after { position: absolute; top: 3px; width: 25px; height: 31px; border-radius: 72% 28% 65% 35%; background: #7ca64d; content: ""; }
.tb-article-growth__leaf::before { left: 4px; transform: rotate(-36deg); }
.tb-article-growth__leaf::after { right: 4px; transform: scaleX(-1) rotate(-36deg); }
.tb-article-growth__leaf { border-bottom: 31px solid #b7c898; }
.tb-article-growth__broccoli::before { position: absolute; top: 3px; left: 4px; width: 46px; height: 34px; border-radius: 50%; background: radial-gradient(circle at 25% 35%, #79a74b 0 14%, transparent 15%), radial-gradient(circle at 55% 22%, #729e45 0 17%, transparent 18%), radial-gradient(circle at 76% 45%, #84ad54 0 17%, transparent 18%), radial-gradient(circle at 44% 62%, #668f3d 0 24%, transparent 25%); content: ""; }
.tb-article-growth__broccoli::after { position: absolute; top: 33px; left: 25px; width: 7px; height: 20px; background: #aac285; content: ""; }

.tb-article-table-wrap { margin-top: 42px; }
.tb-article-table { width: 100%; border-collapse: collapse; border-top: 2px solid var(--tb-green); background: #fff; font-size: 14px; line-height: 1.7; }
.tb-article-table caption { margin-bottom: 14px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 20px; font-weight: 500; text-align: left; }
.tb-article-table th,
.tb-article-table td { padding: 18px 16px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); vertical-align: top; }
.tb-article-table th:first-child,
.tb-article-table td:first-child { border-left: 1px solid var(--tb-line); }
.tb-article-table thead th { background: #eef3e8; color: var(--tb-ink); font-weight: 700; text-align: left; }
.tb-article-table tbody th { color: var(--tb-ink); font-weight: 700; text-align: left; }
.tb-article-table small { font-size: 10px; font-weight: 500; }
.tb-article-table--compare th:first-child { width: 21%; }
.tb-article-table--nutrition th:not(:first-child),
.tb-article-table--nutrition td:not(:first-child) { text-align: right; }

.tb-article-note,
.tb-article-factcheck,
.tb-article-caution,
.tb-article-warning { margin-top: 44px; padding: clamp(28px, 4vw, 42px); }
.tb-article-note { border-left: 3px solid var(--tb-gold); background: var(--tb-warm); }
.tb-article-note strong,
.tb-article-factcheck__label,
.tb-article-caution > strong,
.tb-article-warning > strong { display: block; margin-bottom: 12px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 20px; font-weight: 500; }
.tb-article-note p { color: var(--tb-muted); font-size: 15px; }

.tb-article-conversion { display: grid; grid-template-columns: minmax(0, 1fr) 38px minmax(0, 1fr) 48px minmax(0, 1fr); align-items: stretch; margin-top: 42px; }
.tb-article-conversion > div { padding: 28px 22px; border: 1px solid var(--tb-line); background: #fff; text-align: center; }
.tb-article-conversion > span { display: grid; place-items: center; color: var(--tb-gold); font-family: var(--tb-serif); font-size: 28px; }
.tb-article-conversion small { display: block; margin-bottom: 12px; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.tb-article-conversion strong { display: block; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 20px; font-weight: 500; line-height: 1.5; }
.tb-article-conversion p { margin-top: 10px; color: var(--tb-muted); font-size: 12px; line-height: 1.65; }
.tb-article-conversion__result { background: #eaf2df !important; border-color: #b8caa8 !important; }
.tb-article-factcheck { border-top: 3px solid var(--tb-gold); background: #f6f1e5; }
.tb-article-factcheck > p:not(.tb-article-factcheck__label) { font-size: 16px; }
.tb-article-factcheck ul,
.tb-article-caution ol { margin: 20px 0 0; padding-left: 1.5em; }
.tb-article-factcheck li + li,
.tb-article-caution li + li { margin-top: 8px; }

.tb-article-evidence { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border-top: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
.tb-article-evidence > div { min-height: 310px; padding: 30px 24px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); background: #fff; }
.tb-article-evidence span { display: block; min-height: 3.6em; color: var(--tb-gold); font-size: 11px; font-weight: 700; line-height: 1.7; letter-spacing: .08em; }
.tb-article-evidence strong { display: block; margin-top: 18px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 19px; font-weight: 500; line-height: 1.65; }
.tb-article-evidence p { margin-top: 14px; color: var(--tb-muted); font-size: 14px; line-height: 1.85; }
.tb-article-caution { background: var(--tb-ink); color: #edf3ee; }
.tb-article-caution > strong { color: #fffdf8; }
.tb-article-caution ol { color: #fffdf8; }
.tb-article-caution p { margin-top: 18px; color: #d9e4dd; font-size: 14px; }

.tb-article-qa-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 42px; border-top: 1px solid var(--tb-line); border-left: 1px solid var(--tb-line); }
.tb-article-qa-grid > div { min-height: 190px; padding: 28px; border-right: 1px solid var(--tb-line); border-bottom: 1px solid var(--tb-line); background: #fff; }
.tb-article-qa-grid strong { color: var(--tb-ink); font-family: var(--tb-serif); font-size: 22px; font-weight: 500; }
.tb-article-qa-grid p { margin-top: 12px; color: var(--tb-muted); font-size: 15px; line-height: 1.9; }
.tb-article-recipe-intro { margin-top: 0 !important; color: var(--tb-muted); }
.tb-article-recipes { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 32px; }
.tb-article-recipes article { display: grid; grid-template-columns: minmax(270px, 40%) minmax(0, 1fr); min-height: 0; overflow: hidden; border: 1px solid var(--tb-line); background: #fff; }
.tb-article-recipes article:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(270px, 40%); }
.tb-article-recipes--timing article,
.tb-article-recipes--timing article:nth-child(even) { grid-template-columns: minmax(220px, 34%) minmax(0, 1fr); }
.tb-article-recipes--timing .tb-article-recipe__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(30px, 4vw, 42px); }
.tb-article-recipes--timing .tb-article-recipe__copy > span { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.tb-article-recipes--timing h4 { text-align: center; }
.tb-article-recipes--timing .tb-article-recipe__media,
.tb-article-recipes--timing .tb-article-recipe__media picture { min-height: 100%; }
.tb-article-recipes--timing .tb-article-recipe__media img { height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tb-article-recipes article:nth-child(even) .tb-article-recipe__media { order: 2; }
.tb-article-recipes article:nth-child(even) .tb-article-recipe__copy { order: 1; }
.tb-article-recipes--timing article:nth-child(even) .tb-article-recipe__media,
.tb-article-recipes--timing article:nth-child(even) .tb-article-recipe__copy { order: initial; }
.tb-article-recipe__media { min-height: 100%; margin: 0; overflow: hidden; background: #eef2e8; }
.tb-article-recipe__media picture { display: block; height: 100%; }
.tb-article-recipe__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tb-article-recipe__copy { padding: clamp(26px, 3.4vw, 38px); }
.tb-article-recipe__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.tb-article-recipe__number { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.tb-article-recipe__head small { color: var(--tb-muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.tb-article-recipes h4 { margin-top: 16px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 23px; font-weight: 500; line-height: 1.55; }
.tb-article-recipes p { margin-top: 16px; color: var(--tb-muted); font-size: 16px; line-height: 1.85; }
.tb-article-recipes .tb-article-recipe__ingredients { padding: 14px 16px; background: #f6f3ea; font-size: 16px; }
.tb-article-recipe__ingredients strong { display: block; margin-bottom: 5px; color: var(--tb-ink); font-size: 12px; letter-spacing: .06em; }
.tb-article-recipe__items { display: flex; flex-wrap: wrap; }
.tb-article-recipe__items > span { white-space: nowrap; }
.tb-article-recipe__items > span:not(:last-child)::after { content: "、"; }
.tb-article-recipes ol { margin: 18px 0 0; padding-left: 1.45em; color: var(--tb-muted); font-size: 16px; line-height: 1.85; }
.tb-article-recipes li + li { margin-top: 7px; }
.tb-article-placeholder { margin-top: 42px; }
.tb-article-placeholder > div { display: grid; aspect-ratio: 3 / 2; place-content: center; padding: 30px; border: 1px dashed #aab9a7; background: repeating-linear-gradient(135deg, #f4f6ef 0, #f4f6ef 12px, #eef2e8 12px, #eef2e8 24px); color: var(--tb-ink); text-align: center; }
.tb-article-placeholder span { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .2em; }
.tb-article-placeholder strong { display: block; margin-top: 18px; font-family: var(--tb-serif); font-size: clamp(22px, 2.5vw, 30px); font-weight: 500; }
.tb-article-placeholder small { display: block; margin-top: 9px; color: var(--tb-muted); font-size: 12px; }
.tb-article-placeholder figcaption { margin-top: 12px; color: var(--tb-muted); font-size: 12px; line-height: 1.7; }
.tb-article-placeholder--growth > div { aspect-ratio: 16 / 8; }

.tb-article-feature-photo { margin: 42px 0 0; }
.tb-article-feature-photo picture { display: block; overflow: hidden; background: #e9eadf; }
.tb-article-feature-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.tb-article-feature-photo figcaption { margin-top: 12px; color: var(--tb-muted); font-size: 12px; line-height: 1.7; }
.tb-article .tb-article-feature-photo--founders { width: min(86%, 650px); margin: clamp(56px, 6vw, 72px) auto 0; }

.tb-article-checklist,
.tb-article-tool-list { margin: 28px 0 0; padding: 0; border-top: 1px solid var(--tb-line); list-style: none; }
.tb-article-checklist li,
.tb-article-tool-list li { display: grid; grid-template-columns: 145px 1fr; gap: 30px; padding: 20px 10px; border-bottom: 1px solid var(--tb-line); }
.tb-article-checklist strong,
.tb-article-tool-list strong { color: var(--tb-ink); font-weight: 700; }
.tb-article-checklist span,
.tb-article-tool-list span { color: var(--tb-muted); }
.tb-article-experience-source { margin-top: -14px !important; color: var(--tb-muted); font-size: 13px; line-height: 1.8; }
.tb-article-grow-case { margin-top: 48px; padding: clamp(30px, 5vw, 48px); border-top: 3px solid var(--tb-gold); background: #f7f3e9; }
.tb-article-grow-case__head > p:first-child { margin: 0; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.tb-article-grow-case__head h3 { margin-top: 9px; font-size: clamp(24px, 2.8vw, 31px); line-height: 1.6; }
.tb-article-grow-case__head > p:last-child { margin-top: 18px; color: var(--tb-muted); font-size: 15px; line-height: 1.9; }
.tb-article-grow-case > h4 { margin-top: 38px; font-size: 20px; line-height: 1.6; }
.tb-article-grow-photo { min-width: 0; margin: 0; }
.tb-article-grow-photo picture { display: block; overflow: hidden; background: #e9eadf; }
.tb-article-grow-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.tb-article-grow-photo figcaption { margin-top: 9px; color: var(--tb-muted); font-size: 12px; line-height: 1.7; }
.tb-article-grow-photo--main { margin-top: 30px; }
.tb-article-grow-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.tb-article-grow-case__note { margin-top: 24px !important; padding-top: 18px; border-top: 1px solid #ddd4c2; color: var(--tb-muted); font-size: 12px; line-height: 1.75; }
.tb-article-step-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 22px; }
.tb-article-warning { border: 1px solid #e2c7a6; background: #fff5e8; }
.tb-article-warning > strong::before { margin-right: 9px; color: #b56d2d; content: "!"; font-family: var(--tb-sans); font-weight: 700; }

.tb-article-products { margin-top: 44px; padding: clamp(34px, 5vw, 52px); background: var(--tb-mist); }
.tb-article-products__head > p:first-child { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.tb-article-products__head h3 { margin-top: 9px; font-size: 26px; line-height: 1.6; }
.tb-article-products__head > p:last-child { margin-top: 18px; color: var(--tb-muted); font-size: 13px; line-height: 1.8; }
.tb-article-product-card { display: grid; grid-template-columns: 88px 1fr; gap: 26px; margin-top: 26px; padding: 28px; border: 1px solid var(--tb-line); background: #fff; }
.tb-article-product-card__mark { display: grid; width: 78px; height: 78px; place-items: center; border: 1px solid #b9c8b4; border-radius: 50%; color: var(--tb-gold); font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.tb-article-product-card__type { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.tb-article-product-card h4 { margin-top: 4px; font-size: 21px; line-height: 1.55; }
.tb-article-product-card h4 + p { margin-top: 10px; color: var(--tb-muted); font-size: 14px; line-height: 1.8; }
.tb-article-product-card a { display: inline-flex; gap: 12px; margin-top: 16px; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: 13px; font-weight: 700; text-decoration: none; }
.tb-article-steps { margin: 30px 0 0; padding: 0; border-top: 1px solid var(--tb-line); list-style: none; }
.tb-article-steps li { display: grid; grid-template-columns: 64px 1fr; gap: 24px; padding: 25px 10px; border-bottom: 1px solid var(--tb-line); }
.tb-article-steps li > span { padding-top: 4px; color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.tb-article-steps strong { color: var(--tb-ink); font-size: 16px; }
.tb-article-steps p { margin-top: 5px; color: var(--tb-muted); font-size: 14px; line-height: 1.8; }

.tb-article-faq { margin-top: 42px; border-top: 1px solid var(--tb-line); }
.tb-article-faq details { border-bottom: 1px solid var(--tb-line); }
.tb-article-faq summary { position: relative; padding: 24px 54px 24px 46px; color: var(--tb-ink); font-family: var(--tb-serif); font-size: 18px; font-weight: 500; line-height: 1.65; cursor: pointer; list-style: none; }
.tb-article-faq summary::-webkit-details-marker { display: none; }
.tb-article-faq summary::before { position: absolute; top: 25px; left: 8px; color: var(--tb-gold); content: "Q"; font-family: var(--tb-serif); font-size: 18px; }
.tb-article-faq summary::after { position: absolute; top: 50%; right: 12px; width: 12px; height: 12px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; content: ""; transform: translateY(-70%) rotate(45deg); transition: transform .2s ease; }
.tb-article-faq details[open] summary::after { transform: translateY(-25%) rotate(225deg); }
.tb-article-faq details p { padding: 0 48px 26px; color: var(--tb-muted); font-size: 15px; line-height: 1.9; }

.tb-article-summary { margin-top: 0; padding: clamp(48px, 6vw, 68px) !important; border: 0 !important; background: #eaf2df; }
.tb-article-summary ul { margin: 30px 0 0; padding: 0; list-style: none; }
.tb-article-summary li { position: relative; padding: 13px 0 13px 31px; border-bottom: 1px solid #c5d3bb; }
.tb-article-summary li::before { position: absolute; top: 18px; left: 5px; width: 10px; height: 6px; border-bottom: 2px solid var(--tb-green); border-left: 2px solid var(--tb-green); content: ""; transform: rotate(-45deg); }
.tb-article-summary > p:last-child { margin-top: 30px; }

.tb-article-related { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); margin-top: 72px; border: 1px solid var(--tb-line); background: #fff; box-shadow: var(--tb-shadow); }
.tb-article-related__visual { display: grid; min-height: 320px; place-items: center; padding: 36px; background: radial-gradient(circle, #fff 0, #eff5e8 62%, #e7efdf 100%); }
.tb-article-related__visual img { width: 100%; max-height: 230px; object-fit: contain; }
.tb-article-related__copy { display: flex; flex-direction: column; justify-content: center; padding: 44px; }
.tb-article-related__copy > p:first-child { color: var(--tb-gold); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.tb-article-related h2 { margin-top: 10px; font-size: 29px; line-height: 1.5; }
.tb-article-related h2 + p { margin-top: 17px; color: var(--tb-muted); font-size: 14px; line-height: 1.9; }
.tb-article-related a { display: inline-flex; align-self: flex-start; gap: 18px; margin-top: 25px; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 700; text-decoration: none; }

.tb-article-sources { margin-top: 84px; padding-top: 40px; border-top: 1px solid var(--tb-line); }
.tb-article-sources h2 { font-size: 25px; }
.tb-article-sources ol { margin: 24px 0 0; padding-left: 1.6em; color: var(--tb-muted); font-size: 12px; line-height: 1.8; }
.tb-article-sources li { scroll-margin-top: 110px; }
.tb-article-sources li + li { margin-top: 10px; }
.tb-article-sources li a { margin-left: 8px; font-weight: 700; white-space: nowrap; }
.tb-article-sources > p { margin-top: 20px; color: var(--tb-muted); font-size: 11px; }

.tb-article-return { display: flex; justify-content: center; padding-bottom: clamp(86px, 10vw, 132px); }
.tb-article-return a { display: inline-flex; gap: 18px; padding-bottom: 5px; border-bottom: 1px solid currentColor; color: var(--tb-ink); font-family: var(--tb-sans); font-size: 14px; font-weight: 700; text-decoration: none; }

.tb-article + .c-article_nav,
.tb-article-nav { font-family: var(--tb-sans); }

@media (max-width: 1024px) {
  .tb-article-shell { width: min(100% - 48px, 940px); }
  .tb-article-hero__grid { grid-template-columns: 1fr 1fr; min-height: 580px; }
  .tb-article-hero__copy { padding-right: 46px; }
  .tb-article-hero__visual { min-height: 580px; }
  .tb-article-answer__grid { grid-template-columns: repeat(2, 1fr); }
  .tb-article-layout { grid-template-columns: 200px minmax(0, 680px); gap: 54px; }
  .tb-article-evidence { grid-template-columns: 1fr; }
  .tb-article-evidence > div { min-height: 0; }
  .tb-article-evidence span { min-height: 0; }
}

@media (max-width: 768px) {
  .tb-article { font-size: 16px; line-height: 1.9; letter-spacing: .02em; }
  .tb-article-shell { width: calc(100% - 40px); }
  .tb-article-hero__grid { grid-template-columns: 1fr; width: 100%; min-height: 0; }
  .tb-article-hero__copy { width: min(100% - 40px, 680px); margin-inline: auto; padding: 62px 0 50px; }
  .tb-article-hero h1 { margin-bottom: 24px; font-size: clamp(30px, 8.3vw, 39px); line-height: 1.55; }
  .tb-article-hero__lead { font-size: 16px; line-height: 1.95; }
  .tb-article-meta { margin-top: 28px; }
  .tb-article-hero__visual { min-height: 0; aspect-ratio: 4 / 3; }
  .tb-article-opening { padding-block: 64px 104px; }
  .tb-article-answer { margin-bottom: 70px; padding: 36px 22px; }
  .tb-article-answer__lead { font-size: 16px; }
  .tb-article-answer__grid { grid-template-columns: 1fr; margin-top: 28px; }
  .tb-article-answer__grid > div { min-height: 0; }
  .tb-article-answer__grid span { margin-bottom: 14px; }
  .tb-article-layout { grid-template-columns: 1fr; gap: 70px; }
  .tb-article-toc { position: static; }
  .tb-article-toc nav { padding: 26px 22px; border: 1px solid var(--tb-line); background: #fff; }
  .tb-article-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
  .tb-article-toc a { padding-block: 9px; }
  .tb-article-section { padding-bottom: 72px; }
  .tb-article-break--wide { display: none; }
  .tb-article-section + .tb-article-section { padding-top: 64px; }
  .tb-article-section > h2 { font-size: clamp(28px, 7.4vw, 35px); line-height: 1.6; }
  .tb-article-section > h3 { margin-top: 46px; font-size: 22px; }
  .tb-article-lead { font-size: 16px; line-height: 1.95; }
  .tb-article-growth { grid-template-columns: 1fr; gap: 15px; padding: 28px 22px; }
  .tb-article-growth > i { transform: rotate(90deg); }
  .tb-article-growth small { font-size: 12px; }
  .tb-article-conversion { grid-template-columns: 1fr; gap: 14px; }
  .tb-article-conversion > span { min-height: 30px; transform: rotate(90deg); }
  .tb-article-qa-grid { grid-template-columns: 1fr; }
  .tb-article-related { grid-template-columns: 1fr; }
  .tb-article-related__visual { min-height: 280px; }
  .tb-article-answer__grid p,
  .tb-article-note p,
  .tb-article-evidence p,
  .tb-article-caution p,
  .tb-article-qa-grid p,
  .tb-article-grow-case__head > p:last-child,
  .tb-article-product-card h4 + p,
  .tb-article-steps p,
  .tb-article-related h2 + p { font-size: 16px; line-height: 1.9; }
  .tb-article-table,
  .tb-article-related a,
  .tb-article-return a { font-size: 16px; }
}

@media (max-width: 600px) {
  .tb-article-shell { width: calc(100% - 32px); }
  .tb-article-hero__copy { width: calc(100% - 32px); }
  .tb-article-kicker { font-size: 11px; }
  .tb-article-toc ol { grid-template-columns: 1fr; }
  .tb-article-table { display: block; border-top: 0; background: transparent; }
  .tb-article-table caption { display: block; margin-bottom: 18px; }
  .tb-article-table thead { display: none; }
  .tb-article-table tbody { display: grid; gap: 14px; }
  .tb-article-table tr { display: block; padding: 18px; border-top: 2px solid var(--tb-green); background: #fff; }
  .tb-article-table th,
  .tb-article-table td,
  .tb-article-table th:first-child,
  .tb-article-table td:first-child { display: flex; width: 100% !important; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--tb-line); text-align: right !important; }
  .tb-article-table th:first-child { display: block; padding-top: 0; color: var(--tb-ink); font-size: 16px; text-align: left !important; }
  .tb-article-table td::before { flex: 0 0 43%; color: var(--tb-muted); content: attr(data-label); font-size: 11px; font-weight: 700; text-align: left; }
  .tb-article-table tr > :last-child { border-bottom: 0; }
  .tb-article-note,
  .tb-article-factcheck,
  .tb-article-caution,
  .tb-article-warning { padding: 28px 22px; }
  .tb-article-recipes article,
  .tb-article-recipes article:nth-child(even) { grid-template-columns: 1fr; }
  .tb-article-recipes article:nth-child(even) .tb-article-recipe__media,
  .tb-article-recipes article:nth-child(even) .tb-article-recipe__copy { order: initial; }
  .tb-article-recipe__media { min-height: auto; }
  .tb-article-recipe__media picture { height: auto; }
  .tb-article-recipe__media img { height: auto; aspect-ratio: 4 / 3; }
  .tb-article-recipe__copy { padding: 26px 22px 30px; }
  .tb-article .tb-article-feature-photo--founders { width: 100%; margin-top: 52px; }
  .tb-article-checklist li,
  .tb-article-tool-list li { grid-template-columns: 1fr; gap: 5px; padding-inline: 4px; }
  .tb-article-grow-case { padding: 30px 18px; }
  .tb-article-grow-photo-grid,
  .tb-article-step-media { grid-template-columns: 1fr; gap: 20px; }
  .tb-article-products { padding: 30px 18px; }
  .tb-article-product-card { grid-template-columns: 1fr; gap: 18px; padding: 24px 20px; }
  .tb-article-product-card__mark { width: 64px; height: 64px; }
  .tb-article-steps li { grid-template-columns: 44px 1fr; gap: 14px; padding-inline: 2px; }
  .tb-article-faq summary { padding: 22px 38px 22px 34px; font-size: 17px; }
  .tb-article-faq summary::before { left: 2px; }
  .tb-article-faq summary::after { right: 4px; }
  .tb-article-faq details p { padding: 0 4px 24px 34px; font-size: 16px; }
  .tb-article-summary { padding: 38px 22px !important; }
  .tb-article-related__copy { padding: 34px 24px 40px; }
  .tb-article-placeholder > div { aspect-ratio: 4 / 3; padding: 22px; }
  .tb-article-placeholder--growth > div { aspect-ratio: 4 / 3; }
}

@media (max-width: 359px) {
  .tb-article-shell,
  .tb-article-hero__copy { width: calc(100% - 24px); }
  .tb-article-hero h1 { font-size: 27px; }
  .tb-article-answer h2 { font-size: 29px; }
  .tb-article-section > .tb-article-title-flow--compact-320 { font-size: 24px; }
  .tb-article-answer,
  .tb-article-toc nav { padding-inline: 18px; }
  .tb-article-section > h2 { font-size: 27px; }
}

/* ================================================================
   商品一覧・読みもの一覧
   ================================================================ */
.tb-collection-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--tb-paper);
  color: var(--tb-ink);
  font-family: var(--tb-sans);
}
.tb-collection-page *,
.tb-collection-page *::before,
.tb-collection-page *::after { box-sizing: border-box; }
.tb-collection-shell { width: min(100% - 64px, 1120px); margin-inline: auto; }
.tb-collection-hero { position: relative; display: flex; min-height: clamp(450px, 43vw, 590px); align-items: center; padding: 84px 0; overflow: hidden; background-color: #edf2e9; background-image: linear-gradient(90deg, rgba(255, 253, 248, .96) 0%, rgba(255, 253, 248, .88) 34%, rgba(255, 253, 248, .42) 60%, rgba(255, 253, 248, .08) 100%), var(--tb-collection-hero-image); background-position: var(--tb-collection-hero-position, center); background-size: cover; }
.tb-collection-hero--products { --tb-collection-hero-position: 68% center; }
.tb-collection-hero--journal { --tb-collection-hero-position: 58% center; }
.tb-collection-hero .tb-collection-shell { position: relative; z-index: 1; }
.tb-collection-kicker { margin: 0 0 18px; color: var(--tb-gold); font-size: 12px; font-weight: 700; letter-spacing: .22em; }
.tb-collection-hero h1 { margin: 0; color: var(--tb-green); font-family: var(--tb-serif); font-size: clamp(46px, 6vw, 72px); font-weight: 500; line-height: 1.28; letter-spacing: .04em; }
.tb-collection-lead { max-width: 34em; margin: 26px 0 0; color: #3f5147; font-size: 17px; line-height: 2; letter-spacing: .03em; }
.tb-collection-lead__desktop-break { display: block; }

.tb-products-index__content { padding: clamp(76px, 9vw, 116px) 0 0; }
.tb-products-index .p-product_list { width: 100%; }
.tb-products-index .p-product_list > .l-container__row { width: min(100% - 64px, 1120px); margin-inline: auto; }
.tb-products-index .p-product_list > .l-container__row.u-margin__top--60 { margin-top: 0 !important; }
.tb-products-index .p-list_header { display: none; }
.tb-products-index .p-list_header__inner { display: flex; min-height: 42px; align-items: center; justify-content: flex-end; }
.tb-products-index .p-list_header__inner__title { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tb-products-index .p-category_tool { margin-bottom: 34px; }
.tb-products-index .p-product_list__list { display: grid !important; grid-template-columns: 1fr; gap: 38px; width: 100%; margin: 0; padding: 0; list-style: none; }
.tb-products-index .p-product_list__list__item,
.tb-products-index .p-product_list__list__item[class*="medium-up--one-"] { width: auto !important; max-width: none; margin: 0 !important; padding: 0 !important; }
.tb-products-index .p-product_list__list__item:only-child { width: 100% !important; }
.tb-products-index .c-product_item { position: relative; display: grid !important; height: 100%; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); overflow: hidden; border: 1px solid #d6ddd2; border-radius: 3px; background: #fff; box-shadow: 0 18px 45px rgba(33, 70, 50, .07); transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.tb-products-index .c-product_item:hover { border-color: #aab9aa; box-shadow: 0 24px 58px rgba(33, 70, 50, .12); transform: translateY(-3px); }
.tb-products-index .c-product_item__link { position: absolute; z-index: 1; inset: 0; }
.tb-products-index .c-product_item__inner__eyecatch { position: relative; min-height: 430px; overflow: hidden; aspect-ratio: auto; background: radial-gradient(circle at 50% 44%, #fff 0, #eff5e9 63%, #e7efe1 100%); }
.tb-products-index .c-product_item__inner__eyecatch__img { display: grid; width: 100%; height: 100%; min-height: 430px; place-items: center; overflow: hidden; aspect-ratio: auto; }
.tb-products-index .c-product_item__inner__eyecatch__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.tb-products-index .c-product_item:hover .c-product_item__inner__eyecatch__img img { transform: scale(1.018); }
.tb-products-index .c-product_item__inner__eyecatch__img__hover { position: absolute; inset: 0; }
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode .c-product_item__inner__eyecatch__img__primary,
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode .c-product_item__inner__eyecatch.--hover .c-product_item__inner__eyecatch__img__primary { z-index: 1; opacity: 1 !important; transform: scale(1); transform-origin: center; transition: transform .58s cubic-bezier(.22, .61, .36, 1), opacity .4s ease !important; will-change: transform; }
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode .c-product_item__inner__eyecatch__img__hover,
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode .c-product_item__inner__eyecatch.--hover .c-product_item__inner__eyecatch__img__hover { display: none !important; opacity: 0 !important; }
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode:hover .c-product_item__inner__eyecatch__img__primary,
.tb-products-index .tb-products-index-card--broccoli .c-product_item.--hover-mode .c-product_item__inner__eyecatch.--hover .c-product_item__inner__eyecatch__img__primary { transform: scale(1.045); }
.tb-products-index .c-product_item__actions { position: absolute; z-index: 3; right: 18px; bottom: 18px; display: flex; gap: 8px; }
.tb-products-index .c-product_item__button { display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border-radius: 50%; box-shadow: 0 5px 16px rgba(20, 56, 39, .15); cursor: pointer; }
.tb-products-index .c-product_item__inner__content { display: flex; width: auto !important; min-height: 430px; flex-direction: column; align-items: flex-start; justify-content: center; margin-top: 0; padding: 48px 50px; }
.tb-products-index .c-product_item__inner__title { color: var(--tb-green); font-family: var(--tb-serif); font-size: clamp(25px, 2.4vw, 31px); font-weight: 500; line-height: 1.55; letter-spacing: .02em; }
.tb-products-index .c-product_item__inner__category { margin-top: 11px; color: var(--tb-gold); font-family: var(--tb-sans) !important; font-size: 12px; font-weight: 700; line-height: 1.7; letter-spacing: .08em; }
.tb-products-index .c-product_item__inner__price { margin-top: 17px; color: #344a3e; font-family: var(--tb-sans) !important; font-size: 16px; line-height: 1.8; }
.tb-products-index .c-product_item__inner__price.word-break-all { margin-top: 15px; color: var(--tb-muted); }
.tb-products-index .c-product_item__inner__content::after { display: inline-block; margin-top: 24px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--tb-green); content: "商品を見る　→"; font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item { display: grid !important; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr) !important; }
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item__inner__eyecatch,
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item__inner__content { width: 100% !important; min-width: 0; max-width: none !important; }
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item__inner__title { color: var(--tb-green) !important; font-family: var(--tb-serif) !important; font-size: clamp(25px, 2.4vw, 31px) !important; font-weight: 500 !important; line-height: 1.55 !important; }
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item__inner__category { color: var(--tb-gold) !important; font-size: 12px !important; font-weight: 700 !important; line-height: 1.7 !important; }
.tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item__inner__price { color: #344a3e !important; font-size: 16px !important; line-height: 1.8 !important; }
.tb-products-index .p-zero-result { width: min(100% - 64px, 1120px); margin: 0 auto; padding: 36px; background: var(--tb-mist); color: var(--tb-muted); font-size: 16px; line-height: 1.9; text-align: center; }

.tb-journal-index__body { padding: clamp(78px, 9vw, 118px) 0 0; }
.tb-journal-index__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 70px 34px; }
.tb-journal-index-card { min-width: 0; }
.tb-journal-index-card > a { display: flex; height: 100%; flex-direction: column; color: var(--tb-ink); text-decoration: none; }
.tb-journal-index-card__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--tb-mist); }
.tb-journal-index-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tb-journal-index-card:hover .tb-journal-index-card__image img { transform: scale(1.025); }
.tb-journal-index-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 23px; color: var(--tb-gold); font-size: 12px; font-weight: 700; line-height: 1.7; letter-spacing: .09em; }
.tb-journal-index-card__meta time { flex: 0 0 auto; color: #718077; font-size: 11px; font-weight: 500; letter-spacing: .08em; }
.tb-journal-index-card strong { display: block; margin-top: 11px; color: var(--tb-green); font-family: var(--tb-serif); font-size: clamp(23px, 2.25vw, 29px); font-weight: 500; line-height: 1.65; letter-spacing: .02em; }
.tb-journal-index-card__description { display: block; margin-top: 16px; color: var(--tb-muted); font-size: 16px; line-height: 1.9; }
.tb-journal-index-card__link { display: inline-flex; align-self: flex-start; gap: 18px; margin-top: 24px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--tb-green); font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.tb-journal-index-card__link span { transition: transform .2s ease; }
.tb-journal-index-card:hover .tb-journal-index-card__link span { transform: translateX(4px); }
.tb-collection-empty { padding: 52px 28px; border: 1px solid var(--tb-line); background: #fff; color: var(--tb-muted); font-size: 16px; line-height: 1.9; text-align: center; }
.tb-collection-pagination { margin-top: 70px; }
.tb-collection-page .c-pagination__list { justify-content: center; }
.tb-collection-page .c-pagination__list__item__page,
.tb-collection-page .c-pagination__list__item__prev,
.tb-collection-page .c-pagination__list__item__next { min-width: 42px; min-height: 42px; }

.tb-collection-support { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(86px, 10vw, 132px); padding-bottom: clamp(92px, 11vw, 142px); }
.tb-collection-support > div { padding: 30px 34px; border-top: 1px solid #cbd5c9; border-bottom: 1px solid #cbd5c9; }
.tb-collection-support > div + div { border-left: 1px solid #cbd5c9; }
.tb-collection-support p { margin: 0; color: var(--tb-muted); font-size: 16px; line-height: 1.8; }
.tb-collection-support a { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 12px; color: var(--tb-green); font-family: var(--tb-serif); font-size: 20px; font-weight: 600; line-height: 1.5; text-decoration: none; }
.tb-collection-support a span { transition: transform .2s ease; }
.tb-collection-support a:hover span { transform: translateX(4px); }

@media (min-width: 960px) and (max-width: 1100px) {
  .tb-products-index .c-product_item__inner__content { padding: 38px 34px; }
}

@media (max-width: 959px) {
  .tb-collection-shell,
  .tb-products-index .p-product_list > .l-container__row { width: min(100% - 48px, 820px); }
  .tb-products-index .p-product_list__list { gap: 30px; }
  .tb-products-index .c-product_item { grid-template-columns: 1fr; }
  .tb-products-index .p-product_list .tb-products-index-card--broccoli .c-product_item { grid-template-columns: 1fr !important; }
  .tb-products-index .c-product_item__inner__eyecatch { min-height: 0; }
  .tb-products-index .c-product_item__inner__eyecatch__img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .tb-products-index .c-product_item__inner__content { min-height: 0; }
  .tb-products-index .c-product_item__inner__content { padding: 38px 34px; }
  .tb-journal-index__grid { gap: 56px 26px; }
}

@media (max-width: 719px) {
  .tb-collection-shell,
  .tb-products-index .p-product_list > .l-container__row { width: calc(100% - 40px); }
  .tb-collection-hero { min-height: 430px; padding: 64px 0; background-image: linear-gradient(90deg, rgba(255, 253, 248, .94) 0%, rgba(255, 253, 248, .82) 56%, rgba(255, 253, 248, .30) 100%), var(--tb-collection-hero-image); }
  .tb-collection-hero--products { --tb-collection-hero-position: 64% center; }
  .tb-collection-hero--journal { --tb-collection-hero-position: 60% center; }
  .tb-collection-hero h1 { font-size: clamp(39px, 12vw, 52px); }
  .tb-collection-lead { margin-top: 20px; font-size: 16px; line-height: 1.9; }
  .tb-collection-lead__desktop-break { display: none; }
  .tb-products-index__content,
  .tb-journal-index__body { padding-top: 66px; }
  .tb-products-index .p-product_list__list,
  .tb-journal-index__grid { grid-template-columns: 1fr; }
  .tb-products-index .p-product_list__list { gap: 28px; }
  .tb-products-index .c-product_item { grid-template-columns: 1fr; }
  .tb-products-index .c-product_item__inner__eyecatch { min-height: 0; }
  .tb-products-index .c-product_item__inner__eyecatch__img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .tb-products-index .c-product_item__inner__content { min-height: 0; padding: 30px 24px 34px; }
  .tb-products-index .c-product_item__inner__title { font-size: 23px; }
  .tb-products-index .c-product_item__inner__price { font-size: 16px; }
  .tb-products-index .c-product_item__inner__content::after,
  .tb-journal-index-card__link { font-size: 16px; }
  .tb-journal-index__grid { gap: 58px; }
  .tb-journal-index-card__meta { margin-top: 20px; }
  .tb-journal-index-card strong { font-size: 24px; }
  .tb-journal-index-card__description { font-size: 16px; }
  .tb-collection-support { grid-template-columns: 1fr; margin-top: 78px; padding-bottom: 92px; }
  .tb-collection-support > div { padding: 25px 20px; }
  .tb-collection-support > div + div { border-top: 0; border-left: 0; }
  .tb-collection-support a { font-size: 19px; }
}

@media (max-width: 359px) {
  .tb-collection-shell,
  .tb-products-index .p-product_list > .l-container__row { width: calc(100% - 32px); }
  .tb-collection-hero h1 { font-size: 37px; }
  .tb-collection-kicker { font-size: 11px; }
  .tb-journal-index-card__meta { align-items: flex-start; flex-direction: column; gap: 5px; }
  .tb-journal-index-card strong { font-size: 22px; }
}

/* 40〜60代の読みやすさを優先し、タブレット以下の通常段落は16pxを下限とする。 */
@media (max-width: 768px) {
  .tb-home p,
  .tb-about p:not(.tb-about-setback__line):not(.tb-about-lessons__conclusion),
  .tb-bs-product-page .tb-bs p,
  .tb-bs-product-page .tb-bs dd,
  .tb-bs-product-page .tb-bs-purchase p,
  .tb-article p { font-size: 16px !important; line-height: 1.9; }

  .tb-bs-product-page .tb-bs .tb-bs-equation__source-note,
  .tb-bs-product-page .tb-bs .tb-bs-evidence__sources p,
  .tb-bs-product-page .tb-bs .tb-bs-routine__survey-note,
  .tb-bs-product-page .tb-bs-purchase .tb-bs-purchase-preview__disclaimer { font-size: 12px !important; }

  .tb-article .tb-article-caption,
  .tb-article .tb-article-answer__note,
  .tb-article .tb-article-experience-source,
  .tb-article .tb-article-grow-case__note { font-size: 13px !important; }

  .tb-home .tb-people__note { font-size: 14px !important; }
}

/* 商品ページ「栄養を、これからの私へ。」：LPと同一の構造・比率・ブレークポイント。 */
.tb-bs-product-page .tb-bs-evidence {
  padding-bottom: 0;
}
.tb-bs-product-page .tb-bs-evidence__comparison {
  margin-bottom: 0;
}
.tb-bs-product-page .tb-bs-evidence__reasons {
  box-sizing: border-box;
  width: min(798px, calc(100vw - 50px));
  margin: 0 auto;
  padding: 72px 18px 64px;
  border-top: 1px solid rgba(11, 74, 52, .10);
  background: #fbfaf5;
}
.tb-bs-product-page .tb-bs-evidence__meaning {
  display: block;
  margin: 0 0 34px;
  text-align: center;
}
.tb-bs-product-page .tb-bs-evidence__reasons-kicker {
  margin: 0 0 9px;
  color: #ad8740;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .08em;
}
.tb-bs-product-page .tb-bs-evidence__meaning h3 {
  margin: 0;
  color: var(--tb-green);
  font-family: "Zen Old Mincho", var(--tb-serif);
  font-size: 34px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .045em;
}
.tb-bs-product-page .tb-bs-evidence__meaning h3 span {
  display: inline;
}
.tb-bs-product-page .tb-bs-evidence__meaning h3 span + span {
  margin-left: .18em;
}
.tb-bs-product-page .tb-bs-evidence__scenes {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  border: 0;
}
.tb-bs-product-page .tb-bs-evidence__scenes article,
.tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) {
  display: block;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(11, 74, 52, .18);
  background: #fff;
}
.tb-bs-product-page .tb-bs-evidence__scenes article {
  grid-column: span 2;
}
.tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) {
  grid-column: span 3;
}
.tb-bs-product-page .tb-bs-evidence__scenes picture,
.tb-bs-product-page .tb-bs-evidence__scene-visual {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #eef1e8;
}
.tb-bs-product-page .tb-bs-evidence__scenes picture > img,
.tb-bs-product-page .tb-bs-evidence__scene-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.tb-bs-product-page .tb-bs-evidence__package {
  position: absolute;
  z-index: 1;
  right: -1%;
  bottom: 2%;
  display: block;
  width: 42%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  filter: drop-shadow(0 6px 7px rgba(55, 48, 34, .18));
}
.tb-bs-product-page .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body {
  min-width: 0;
  padding: 21px 16px 24px;
}
.tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) > .tb-bs-evidence__scene-body {
  padding: 24px 22px 27px;
}
.tb-bs-product-page .tb-bs-evidence__label {
  min-height: 42px;
  margin: 0;
  padding: 0;
  color: #ad8740;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .045em;
}
.tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes h3 {
  margin: 8px 0 0;
  color: var(--tb-green);
  font-family: "Zen Old Mincho", var(--tb-serif);
  font-size: 17.5px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .015em;
  white-space: nowrap;
}
.tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes article:nth-child(-n + 2) h3 {
  font-size: 22px;
}
.tb-bs-product-page .tb-bs-evidence__reasons .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body > .tb-bs-evidence__scene-copy {
  min-height: 0;
  margin: 10px 0 0;
  color: #536158;
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: .005em;
}
.tb-bs-product-page .tb-bs-evidence__reasons > .tb-bs-note {
  margin: 17px 0 0;
  color: #6b766f;
  font-size: 11.5px;
  line-height: 1.75;
  text-align: left;
}

@media (max-width: 819px) {
  .tb-bs-product-page .tb-bs-evidence__reasons {
    padding: 56px 17px 52px;
  }
  .tb-bs-product-page .tb-bs-evidence__meaning {
    margin-bottom: 28px;
  }
  .tb-bs-product-page .tb-bs-evidence__meaning h3 {
    font-size: 30px;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes {
    grid-template-columns: 1fr;
    gap: 17px;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes article,
  .tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) {
    grid-column: auto;
    display: grid;
    grid-template-columns: minmax(210px, .86fr) minmax(0, 1.14fr);
    align-items: stretch;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes picture,
  .tb-bs-product-page .tb-bs-evidence__scene-visual {
    width: 100%;
    height: 100%;
    min-height: 238px;
    aspect-ratio: auto;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body,
  .tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) > .tb-bs-evidence__scene-body {
    padding: 23px 20px 25px;
  }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__label {
    min-height: 0;
    font-size: 12px !important;
    line-height: 1.7;
  }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons-kicker {
    font-size: 11.5px !important;
    line-height: 1.7;
  }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes h3,
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes article:nth-child(-n + 2) h3 {
    margin-top: 8px;
    font-size: 21px;
    white-space: normal;
  }
  .tb-bs-product-page .tb-bs-evidence__reasons .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body > .tb-bs-evidence__scene-copy {
    margin-top: 9px;
    font-size: 16px !important;
    line-height: 1.8;
  }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons > .tb-bs-note {
    font-size: 11.5px !important;
    line-height: 1.75;
  }
}

@media (max-width: 600px) {
  .tb-bs-product-page .tb-bs-evidence__reasons {
    position: relative;
    left: auto;
    width: calc(100% + 40px);
    margin-left: -20px;
  }
}

@media (max-width: 480px) {
  .tb-bs-product-page .tb-bs-evidence__reasons-kicker {
    font-size: 11px;
  }
  .tb-bs-product-page .tb-bs-evidence__meaning h3 {
    font-size: 29px;
    line-height: 1.55;
  }
  .tb-bs-product-page .tb-bs-evidence__meaning h3 span {
    display: block;
  }
  .tb-bs-product-page .tb-bs-evidence__meaning h3 span + span {
    margin-left: 0;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes article,
  .tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) {
    display: block;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes picture,
  .tb-bs-product-page .tb-bs-evidence__scene-visual {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .tb-bs-product-page .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body,
  .tb-bs-product-page .tb-bs-evidence__scenes article:nth-child(-n + 2) > .tb-bs-evidence__scene-body {
    padding: 23px 19px 25px;
  }
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes h3,
  .tb-bs-product-page .tb-bs .tb-bs-evidence__reasons .tb-bs-evidence__scenes article:nth-child(-n + 2) h3 {
    font-size: clamp(20px, 5.8vw, 22px);
  }
  .tb-bs-product-page .tb-bs-evidence__reasons .tb-bs-evidence__scenes article > .tb-bs-evidence__scene-body > .tb-bs-evidence__scene-copy {
    font-size: 16px !important;
  }
}

/* Cart prices: keep the CTA price and the cart's primary amount tax-inclusive. */
.tb-cart-item-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  line-height: 1.35;
}

.p-cart_modal .c-cart_item__price.tb-cart-item-price {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.tb-cart-item-price__value {
  color: var(--tb-green, #0b523b);
  font-weight: 700;
}

.tb-cart-item-price__note,
.tb-cart-item-price__guide {
  display: block;
  color: #68736c;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .01em;
}

.tb-cart-tax-note {
  margin: 12px 0 0;
  color: #68736c;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
  font-size: 12px;
  line-height: 1.7;
  text-align: left;
}

/* 空カート：メッセージをフッターから独立させ、次の行動を分かりやすくする。 */
.tb-cart-page__content {
  margin-bottom: clamp(88px, 10vw, 132px) !important;
}

.tb-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(100%, 720px);
  min-height: 240px;
  margin-inline: auto;
  padding: clamp(44px, 6vw, 68px) 28px;
  border: 1px solid var(--tb-line);
  border-top: 3px solid var(--tb-green);
  border-radius: 8px;
  background: linear-gradient(135deg, #fff 0%, var(--tb-mist) 100%);
  box-shadow: 0 16px 38px rgba(31,61,47,.08);
  text-align: center;
}

.tb-cart-empty__message {
  margin: 0;
  color: var(--tb-text);
  font-family: var(--tb-sans) !important;
  font-size: 16px !important;
  font-weight: 500;
  line-height: 1.8;
}

.tb-cart-empty__link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding: 10px 2px 8px;
  border-bottom: 1px solid currentColor;
  color: var(--tb-green) !important;
  font-family: var(--tb-sans) !important;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none !important;
  transition: color .22s ease, gap .22s ease, opacity .22s ease;
}

.tb-cart-empty__link:hover {
  gap: 18px;
  color: var(--tb-gold) !important;
}

.tb-cart-empty__link:focus-visible {
  outline: 3px solid var(--tb-focus-ring);
  outline-offset: 4px;
}

.p-cart_modal__total-price,
.c-billing_list__total__price {
  color: var(--tb-green, #0b523b);
}

@media (max-width: 719px) {
  .tb-cart-item-price {
    align-items: flex-start;
  }

  .tb-cart-item-price__note,
  .tb-cart-item-price__guide,
  .tb-cart-tax-note {
    font-size: 12px;
  }

  .tb-cart-page__content {
    margin-bottom: 76px !important;
  }

  .tb-cart-empty {
    width: calc(100% - 24px);
    min-height: 210px;
    padding: 40px 20px;
  }
}

/* 商品ページの文字役割：本文は16px、出典・注記・番号・小ラベルは12pxを基準にする。 */
.tb-bs-product-page .tb-bs-equation p:not(.tb-bs-equation__source-note):not(.tb-bs-equation__product-name),
.tb-bs-product-page .tb-bs-equation__merge-copy > p:not(.tb-bs-equation__product-name),
.tb-bs-product-page .tb-bs-development__steps p,
.tb-bs-product-page .tb-bs-routine__habit-card > div > p:last-child,
.tb-bs-product-page .tb-bs-evidence__scenes article > div > p:not(.tb-bs-evidence__label):not(.tb-bs-evidence__value),
.tb-bs-product-page .tb-bs-evidence__reasons .tb-bs-evidence__scene-copy,
.tb-bs-product-page .tb-bs-routine__survey-ranking li > p,
.tb-bs-product-page .tb-bs-routine__survey-story > p:not(.tb-bs-routine__survey-note),
.tb-bs-product-page .tb-bs-confirm .tb-bs-faq__list details > p {
  font-size: 16px !important;
  line-height: 1.9;
}

.tb-bs-product-page .tb-bs-note,
.tb-bs-product-page .tb-bs-equation__source-note,
.tb-bs-product-page .tb-bs-evidence__sources p,
.tb-bs-product-page .tb-bs-routine__survey-note,
.tb-bs-product-page .tb-bs-evidence__reasons-kicker,
.tb-bs-product-page .tb-bs-plan-card__price small,
.tb-bs-product-page .tb-bs-purchase-card__promises li > span,
.tb-bs-product-page .tb-bs-purchase-preview__disclaimer,
.tb-bs-product-page .tb-bs-routine__habit-index,
.tb-bs-product-page .tb-bs-routine__survey-ranking li > span {
  font-size: 12px !important;
}
