/* /tenban/ — table top order pages.
   Everything is scoped under .tenban so the shop's common CSS is not affected.
   Look follows the design mockup (navy accents, photo cards, pill tabs). */

.tenban {
  /* shop design system (theme style.css :root) */
  --tb-navy-900: #333;      /* ink: buttons, active tabs, icons (the shop's --color_333) */
  --tb-navy-700: #666;      /* --color_666 */
  --tb-navy-050: #eee;      /* --color_eee: tinted sections */
  --tb-price: #aa2b2b;      /* --color_red1: prices, as on the shop's product lists */
  --tb-gray-900: #333;
  --tb-gray-700: #666;
  --tb-gray-500: #999;
  --tb-gray-300: #ddd;
  --tb-gray-100: #eee;
  --tb-wood-700: #8A5A2B;
  --tb-wood-100: #F7F1EA;
  --tb-radius: 8px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;          /* the shop's <main> is a flex box: without this the tab row widens the page */
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 16px 64px;
  color: var(--tb-gray-900);
  font-family: 'Roboto', 'Noto Sans JP', -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
  letter-spacing: .05em;
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
  overflow-wrap: anywhere;
}
.tenban *, .tenban *::before, .tenban *::after { box-sizing: border-box; }
.tenban [hidden] { display: none !important; }
.tenban p { margin: 0 0 1em; font-size: inherit; line-height: inherit; }
.tenban img { max-width: 100%; height: auto; display: block; }
.tenban a { color: var(--tb-navy-700); }
.tenban h1, .tenban h2, .tenban h3, .tenban h4 {
  margin: 0; padding: 0; border: 0; background: none; color: var(--tb-gray-900);
  font-weight: 700; line-height: 1.4; text-align: left;
}
.tenban h1 { font-size: 34px; letter-spacing: .04em; color: var(--tb-gray-900); }
.tenban h2 { font-size: 22px; margin-bottom: 16px; }
/* section titles like the shop's .ttl01: a large English word, then the Japanese title between dashes */
.tenban h2.tb-ttl { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 4px 20px; margin: 0 0 24px; text-align: center; }
.tb-ttl__en { max-width: 100%; font-family: 'Roboto', sans-serif; font-size: 40px; font-weight: 700; letter-spacing: .02em; line-height: 1.2; }
.tb-ttl__ja { position: relative; max-width: 100%; padding: 0 20px; font-size: 16px; font-weight: 700; }
.tb-ttl__ja::before, .tb-ttl__ja::after { content: ""; position: absolute; top: 50%; width: 10px; height: 1px; background: var(--tb-gray-900); }
.tb-ttl__ja::before { left: 0; }
.tb-ttl__ja::after { right: 0; }
.tenban h3 { font-size: 18px; margin-bottom: 8px; }
.tenban h4 { font-size: 16px; }
.tenban small { font-size: 12px; font-weight: 400; color: var(--tb-gray-700); }
.tb-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.tb-section { margin-top: 56px; }
.tb-section--list { margin-top: 24px; }
.tenban .tb-note { font-size: 13px; color: var(--tb-gray-700); margin-top: 12px; }
.tb-more { margin-top: 16px; }

/* breadcrumb */
.tb-breadcrumb { font-size: 12px; color: var(--tb-gray-700); margin-bottom: 16px; }
.tb-breadcrumb__sep { margin: 0 6px; color: var(--tb-gray-500); }

/* hero */
.tb-hero { background: var(--tb-wood-100); border-radius: var(--tb-radius); padding: 24px; }
.tenban .tb-hero__lead { margin: 10px 0 0; }
.tenban .tb-hero__sub { margin: 10px 0 0; font-size: 16px; font-weight: 700; color: var(--tb-gray-900); }
.tb-hero--image { position: relative; overflow: hidden; padding: 0; min-height: 320px; display: flex; align-items: center; background: #F4F1EC; }
.tenban .tb-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: right center; }
.tb-hero--image::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(250, 248, 244, .95) 0%, rgba(250, 248, 244, .85) 40%, rgba(250, 248, 244, 0) 72%);
}
.tb-hero__text { position: relative; z-index: 2; padding: 40px; max-width: 640px; }
.tb-hero--image .tb-hero__lead { font-size: 15px; color: var(--tb-gray-700); }

/* pill tabs (scroll sideways on phones) */
.tb-tabs { display: flex; max-width: 100%; gap: 10px; margin: 0 0 14px; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: none; }
.tb-tabs::-webkit-scrollbar { display: none; }
.tenban a.tb-tab {
  flex: 0 0 auto; padding: 10px 22px; border-radius: 999px; background: var(--tb-gray-100); color: var(--tb-gray-900);
  font-weight: 700; font-size: 15px; line-height: 1.4; text-decoration: none; white-space: nowrap;
}
.tenban a.tb-tab.is-active { background: var(--tb-navy-900); color: #fff; }
.tenban.tb-js .tb-panel { display: none; }
.tenban.tb-js .tb-panel.is-active { display: block; }
.tb-panel + .tb-panel { margin-top: 36px; }
.tb-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 12px; }
.tenban .tb-panel__title {
  position: relative; margin: 0 26px 0 0; padding: 8px 14px 8px 16px; background: var(--tb-gray-700); color: #fff; font-size: 17px; line-height: 1.4;
}
.tenban .tb-panel__title::after {   /* arrow tip of the ribbon */
  content: ""; position: absolute; top: 0; left: 100%; border-style: solid; border-width: 20px 0 20px 14px; border-color: transparent transparent transparent var(--tb-gray-700);
}
.tenban .tb-panel__all {
  flex: 0 0 auto; padding: 0; border: 0; background: none; color: var(--tb-gray-700); font: inherit; font-size: 14px; cursor: pointer;
}
.tenban .tb-panel__all::before { font-family: "Font Awesome 5 Free"; content: "\f35a"; font-weight: 700; margin-right: .5em; }
.tenban .tb-card.is-over { display: none; }
.tenban.tb-js .tb-panel.is-collapsed .tb-more { display: none; }

/* size switch (lists) */
.tb-switch { display: flex; gap: 8px; margin: 12px 0; flex-wrap: wrap; }
.tb-switch__btn {
  flex: 1 1 0; min-width: 120px; padding: 10px 8px; border: 1px solid var(--tb-gray-300); border-radius: 10px; background: #fff;
  color: var(--tb-gray-900); font: inherit; font-weight: 700; font-size: 14px; line-height: 1.4; text-align: center; cursor: pointer;
}
.tb-switch__btn small { display: block; }
.tb-switch__btn.is-active { border-color: var(--tb-navy-900); background: var(--tb-navy-900); color: #fff; }
.tb-switch__btn.is-active small { color: #fff; }

/* sort and filter selects */
.tb-filter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.tb-select { position: relative; margin: 0; }
.tb-select::after {
  content: ""; position: absolute; right: 14px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
  border-right: 2px solid var(--tb-gray-700); border-bottom: 2px solid var(--tb-gray-700); transform: rotate(45deg); pointer-events: none;
}
.tenban .tb-select select {
  -webkit-appearance: none; appearance: none; width: 100%; height: 48px; padding: 0 36px 0 14px;
  border: 1px solid var(--tb-gray-300); border-radius: 10px; background: #fff; color: var(--tb-gray-900);
  font: inherit; font-size: 15px; cursor: pointer;
}
.tenban .tb-filter__none { font-size: 14px; color: var(--tb-gray-700); }

/* product cards */
.tb-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tb-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--tb-gray-300); border-radius: var(--tb-radius); overflow: hidden; background: #fff; transition: box-shadow .2s; }
.tb-card:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .1); }
.tb-card__img { position: relative; }
/* board picture: one texture per species, cut into the shape by CSS; the side of the board is a darker band */
.tb-board-stage { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #F6F6F4; }
.tb-board { position: relative; display: block; overflow: hidden; box-shadow: 0 5px 0 var(--edge), 0 12px 18px rgba(0, 0, 0, .18); }
.tenban .tb-board img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.tb-board--square { width: 84%; aspect-ratio: 2 / 1; border-radius: 3px; }
.tb-board--oval { width: 84%; aspect-ratio: 2 / 1; border-radius: 999px; }
.tb-board--round { width: 66%; aspect-ratio: 1 / 1; border-radius: 50%; }
.tb-product__photo .tb-board-stage { border-radius: var(--tb-radius); }
.tb-product__photo .tb-board { box-shadow: 0 8px 0 var(--edge), 0 18px 28px rgba(0, 0, 0, .2); }
.tb-card .tb-badge { position: absolute; left: 10px; top: 10px; }
.tb-card__body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.tenban .tb-card__name { font-size: 16px; margin: 0; line-height: 1.5; }
.tenban .tb-card__name a { color: var(--tb-gray-900); text-decoration: none; }
.tenban .tb-card__name a::after { content: ""; position: absolute; inset: 0; }   /* whole card is the link */
.tenban .tb-card__price { margin: 2px 0 0; line-height: 1.4; }
.tb-card__price b { font-size: 24px; color: var(--tb-price); white-space: nowrap; letter-spacing: .01em; }
.tb-card__price small { display: block; }
.tenban .tb-card__price--na { font-size: 15px; font-weight: 700; color: var(--tb-gray-700); }
.tenban .tb-card__tags { margin: 6px 0 0; font-size: 13px; color: var(--tb-gray-700); line-height: 1.5; }
.tb-badge { display: inline-block; padding: 3px 12px; border-radius: 999px; background: rgba(35, 40, 39, .78); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.5; }
/* one price per size; the first is shown unless the container says otherwise */
.tb-size { display: none; }
.tenban:not([data-tb-size]) .tb-size--0,
.tenban[data-tb-size="0"] .tb-size--0,
.tenban[data-tb-size="1"] .tb-size--1,
.tenban[data-tb-size="2"] .tb-size--2 { display: block; }

/* trust bar and guide links */
.tb-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 32px; background: var(--tb-gray-100); border-radius: var(--tb-radius); }
.tb-trust__item { display: flex; align-items: center; gap: 12px; padding: 18px 20px; font-weight: 700; font-size: 15px; line-height: 1.5; }
.tb-trust__item + .tb-trust__item { border-left: 1px solid var(--tb-gray-300); }
.tb-guidelinks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.tenban a.tb-guidelink {
  position: relative; display: flex; align-items: center; gap: 12px; padding: 16px 36px 16px 18px; border: 1px solid var(--tb-gray-300);
  border-radius: var(--tb-radius); background: #fff; color: var(--tb-gray-900); font-weight: 700; font-size: 15px; text-decoration: none; line-height: 1.4;
}
.tenban a.tb-guidelink::after {
  content: ""; position: absolute; right: 16px; top: 50%; width: 8px; height: 8px; margin-top: -4px;
  border-right: 2px solid var(--tb-gray-700); border-top: 2px solid var(--tb-gray-700); transform: rotate(45deg);
}
.tenban a.tb-guidelink:hover { border-color: var(--tb-navy-900); }
/* icons are CSS masks (no inline SVG: the shop's heightLine.js breaks on SVG elements) */
.tb-icon { flex: 0 0 auto; width: 34px; height: 34px; background: var(--tb-navy-900); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.tb-icon--ruler { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='2' y='8' width='20' height='8' rx='1'/%3E%3Cpath d='M6 8v3M10 8v4M14 8v3M18 8v4'/%3E%3C/svg%3E"); }
.tb-icon--brush { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 3 10 13'/%3E%3Cpath d='M10 13c-2-1-4 0-4.5 2S5 19 3 20c3 1 7 0 8-2s.5-3.5-1-5z'/%3E%3C/svg%3E"); }
.tb-icon--truck { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M2 6h12v10H2zM14 10h4l3 3v3h-7z'/%3E%3Ccircle cx='6' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E"); }
.tb-icon--book { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 6c-2-1.5-5-2-9-2v14c4 0 7 .5 9 2 2-1.5 5-2 9-2V4c-4 0-7 .5-9 2zM12 6v14'/%3E%3C/svg%3E"); }
.tb-icon--tree { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 3c-3 0-5 2.2-5 4.6C5.3 8.3 4 9.9 4 11.8 4 14.6 6.5 16 9 16h6c2.5 0 5-1.4 5-4.2 0-1.9-1.3-3.5-3-4.2C17 5.2 15 3 12 3zM12 16v5M12 12l-2.5-2M12 13l2.5-2.5'/%3E%3C/svg%3E"); }
.tb-icon--question { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M9.5 9.5a2.5 2.5 0 1 1 3.5 2.3c-.7.3-1 .9-1 1.7'/%3E%3Ccircle cx='12' cy='17' r='.6' fill='black'/%3E%3C/svg%3E"); }

/* tables */
.tb-table-wrap { overflow-x: auto; }
.tenban table { width: 100%; border-collapse: collapse; margin: 0; background: #fff; }
.tenban th, .tenban td { border: 1px solid var(--tb-gray-300); padding: 12px; font-size: 15px; line-height: 1.5; text-align: left; vertical-align: middle; }
.tenban thead th { background: var(--tb-gray-100); font-size: 13px; }
.tb-price-table th small { display: block; }
.tenban td.tb-price b { font-size: 21px; color: var(--tb-price); white-space: nowrap; }
.tenban td.tb-price-table__na { color: var(--tb-gray-700); font-size: 14px; }
.tenban .tb-spec-table th { width: 30%; background: var(--tb-gray-100); }
.tenban tr.tb-price-table__group th { background: var(--tb-navy-050); font-size: 13px; padding: 6px 12px; }

/* buttons and links */
.tenban a.tb-btn, .tenban button.tb-btn {
  display: inline-block; padding: 14px 28px; border: 0; border-radius: 999px; background: var(--tb-navy-900); color: #fff;
  font: inherit; font-weight: 700; text-decoration: none; text-align: center; line-height: 1.4; cursor: pointer;
}
/* the shop's circled arrow after button labels (Font Awesome is loaded by the shop header) */
.tenban a.tb-btn::after, .tenban button.tb-btn::after, .tenban a.tb-sticky::after {
  font-family: "Font Awesome 5 Free"; content: "\f35a"; font-weight: 700; margin-left: .5em;
}
.tenban a.tb-btn:hover, .tenban button.tb-btn:hover { opacity: .7; }
.tenban a.tb-btn--small { padding: 8px 16px; font-size: 14px; white-space: nowrap; }
.tenban a.tb-btn--small::after { content: none; }   /* no room for the arrow in table rows */
.tb-order-free { margin-top: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.tb-order-free span { font-size: 13px; color: var(--tb-gray-700); }
.tb-links { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tenban a.tb-link { display: inline-block; padding: 8px 16px; border: 1px solid var(--tb-gray-900); font-size: 14px; text-decoration: none; background: #fff; color: var(--tb-gray-900); }
.tenban a.tb-link::after { font-family: "Font Awesome 5 Free"; content: "\f35a"; font-weight: 700; margin-left: .5em; }
.tenban a.tb-link:hover { opacity: .7; }
.tenban .tb-soldout { padding: 20px; border-radius: var(--tb-radius); background: var(--tb-gray-100); font-weight: 700; text-align: center; }

/* search by size */
.tb-search { background: var(--tb-navy-050); border-radius: var(--tb-radius); padding: 20px 24px; margin-top: 32px; }
.tb-search__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; }
.tb-field { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; margin: 0; }
.tb-field > span:first-child { flex-basis: 100%; }
.tb-field > span:last-child { font-weight: 400; }
.tenban .tb-field input, .tenban .tb-field select {
  width: 110px; height: 48px; padding: 0 10px; border: 1px solid var(--tb-gray-300); border-radius: 10px; background: #fff;
  font-size: 18px; color: var(--tb-gray-900); box-sizing: border-box; font-family: inherit;
}
.tenban .tb-search__form button.tb-btn { height: 48px; padding: 0 32px; font-size: 16px; }
.tb-proc { margin-bottom: 12px; }
.tb-proc .tb-note { margin: 6px 0 0; }
.tenban .tb-field--proc select { width: auto; max-width: 100%; }
.tenban [aria-disabled="true"] { opacity: .6; pointer-events: none; }
.tb-price__loading { color: var(--tb-gray-500); }
.tb-search__result { margin-top: 16px; background: #fff; border-radius: var(--tb-radius); padding: 12px 16px; }
.tenban .tb-result__head { font-weight: 700; margin: 0 0 4px; }
.tenban .tb-result__status { font-size: 13px; color: var(--tb-gray-700); margin: 0 0 4px; }
.tb-result__row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--tb-gray-300); }
.tb-result__row img { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; }
.tenban .tb-result__name, .tenban .tb-result__price { margin: 0; line-height: 1.4; }
.tb-result__name a { font-weight: 700; color: var(--tb-gray-900); }
.tb-result__name small { display: block; }
.tb-result__price b { font-size: 20px; color: var(--tb-price); white-space: nowrap; }

/* shape / use entry cards (list pages) */
.tb-shapes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tenban a.tb-shape {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 18px; border: 1px solid var(--tb-gray-300);
  border-radius: var(--tb-radius); text-decoration: none; color: var(--tb-gray-900); background: #fff;
}
.tenban a.tb-shape:hover { border-color: var(--tb-navy-900); }
.tb-shape__icon { display: none; }
.tb-shape__name { font-weight: 700; font-size: 17px; }
.tb-shape__text { font-size: 13px; color: var(--tb-gray-700); }
.tb-shape__price { font-size: 13px; }
.tb-shape__price b { font-size: 18px; color: var(--tb-price); }
.tb-shape__from { white-space: nowrap; }
.tb-shape__go { margin-top: 6px; padding: 6px 16px; border-radius: 999px; background: var(--tb-navy-900); color: #fff; font-size: 14px; font-weight: 700; }

/* product header */
.tb-product { display: grid; grid-template-columns: 2fr 3fr; gap: 28px; align-items: start; }
.tenban .tb-product__desc { margin-top: 14px; }
.tenban .tb-product h1 { font-size: 28px; }
.tb-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tb-tag { padding: 2px 12px; border-radius: 999px; background: var(--tb-gray-100); color: var(--tb-gray-700); font-size: 13px; }
.tenban .tb-related__label { font-weight: 700; margin: 16px 0 8px; font-size: 14px; }

/* processing, guide, steps */
.tb-procs, .tb-guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tb-proc, .tb-guide, .tb-step { border: 1px solid var(--tb-gray-300); border-radius: var(--tb-radius); padding: 16px; background: #fff; }
.tb-proc { padding: 0; overflow: hidden; }
.tb-proc__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.tb-proc__body { padding: 16px; }
.tb-proc p, .tb-guide p, .tb-step p { font-size: 14px; margin-bottom: .6em; }
.tb-proc p:last-child, .tb-guide p:last-child, .tb-step p:last-child { margin-bottom: 0; }
.tb-cost { margin-left: 10px; font-size: 13px; font-weight: 700; color: var(--tb-navy-700); white-space: nowrap; }
.tb-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.tenban .tb-step__no { font-size: 12px; font-weight: 700; color: var(--tb-navy-700); letter-spacing: .08em; margin-bottom: 2px; }

/* lists written in Markdown */
.tenban .tb-list__item { position: relative; padding-left: 1.2em; margin-bottom: .4em; }
.tb-list__item::before { content: "・"; position: absolute; left: 0; }

/* customer works */
.tb-cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tb-case { border: 1px solid var(--tb-gray-300); border-radius: var(--tb-radius); overflow: hidden; background: #fff; }
.tb-case__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tenban .tb-case__title { padding: 10px 12px 0; margin: 0; font-weight: 700; font-size: 15px; line-height: 1.5; }
.tenban .tb-case__spec { padding: 2px 12px 0; margin: 0; font-size: 12px; color: var(--tb-gray-700); line-height: 1.6; }
.tenban .tb-case__quote { padding: 6px 12px 0; margin: 0; font-size: 13px; line-height: 1.7; }
.tenban .tb-case__order { padding: 10px 12px 12px; margin: 0; }
.tb-case > p:last-child { padding-bottom: 12px; }

/* FAQ */
.tb-faq__item { border-bottom: 1px solid var(--tb-gray-300); padding: 16px 0; }
.tenban .tb-faq__q { font-size: 16px; padding-left: 1.6em; position: relative; }
.tb-faq__q::before { content: "Q."; position: absolute; left: 0; color: var(--tb-navy-900); }
.tenban .tb-faq__a { margin: 6px 0 0; padding-left: 1.6em; position: relative; font-size: 15px; }
.tb-faq__a::before { content: "A."; position: absolute; left: 0; font-weight: 700; color: var(--tb-wood-700); }

/* sticky button: phones only, clear of the shop's chat and page-top buttons on the right */
.tenban a.tb-sticky { display: none; }

@media (max-width: 900px) {
  .tb-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tenban { padding: 12px 12px 96px; font-size: 15px; }
  .tenban h1 { font-size: 25px; }
  .tenban .tb-panel__title { font-size: 14px; white-space: nowrap; }
  .tenban .tb-panel__all { font-size: 13px; }
  .tb-ttl__en { font-size: 30px; }
  .tb-ttl__ja { font-size: 14px; }
  .tenban h2.tb-ttl { flex-direction: column; align-items: center; }
  .tenban h2 { font-size: 19px; }
  .tb-section { margin-top: 40px; }
  .tb-hero { padding: 18px 16px; }
  /* phones: plain heading first, then the photo as a strip with nothing laid over it */
  .tb-hero--image { display: flex; flex-direction: column; min-height: 0; padding: 0; background: none; border-radius: 0; overflow: visible; }
  .tb-hero--image::before { display: none; }
  .tb-hero__text { order: 1; padding: 4px 2px 14px; max-width: none; }
  .tb-hero__pic { order: 2; }
  .tenban .tb-hero__img { position: static; width: 100%; height: auto; aspect-ratio: 5 / 2; object-fit: cover; object-position: center; border-radius: var(--tb-radius); }
  .tenban .tb-hero__sub { font-size: 14px; }
  .tb-hero--image .tb-hero__lead { font-size: 13px; }
  .tb-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .tenban .tb-select select { height: 44px; font-size: 14px; }
  .tb-cards, .tb-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tb-card__body { padding: 10px 10px 12px; }
  .tenban .tb-card__name { font-size: 14px; }
  .tb-card__price b { font-size: 20px; }
    .tenban .tb-card__tags { font-size: 12px; }
  .tb-trust__item { flex-direction: column; text-align: center; gap: 6px; padding: 14px 6px; font-size: 12px; }
  .tb-icon { width: 28px; height: 28px; }
  .tb-guidelinks { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .tb-shapes, .tb-procs, .tb-steps, .tb-guides { grid-template-columns: minmax(0, 1fr); }
  .tb-product { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .tenban th, .tenban td { padding: 10px 8px; font-size: 14px; }
  .tenban a.tb-btn--small { padding: 8px 12px; font-size: 13px; }
  .tb-search { padding: 16px 12px; }
  .tb-field { flex: 1 1 28%; }
  .tb-field--proc { flex-basis: 100%; }
  .tenban .tb-field--proc select { width: 100%; }
  .tenban .tb-field input, .tenban .tb-field select { width: calc(100% - 40px); padding: 0 6px; }
  .tenban .tb-search__form button.tb-btn { width: 100%; }
  .tb-result__row { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; }
  .tb-result__row img { width: 48px; height: 36px; }
  .tb-result__row .tb-btn { grid-column: 2 / -1; justify-self: end; }
  /* price table: one block per size instead of four squeezed columns */
  .tb-price-table thead { display: none; }
  .tb-price-table, .tb-price-table tbody { display: block; }
  .tb-price-table tr { display: grid; grid-template-columns: auto 1fr auto; align-items: center; column-gap: 12px; border: 1px solid var(--tb-gray-300); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
  .tenban .tb-price-table th, .tenban .tb-price-table td { border: 0; padding: 0; background: none; }
  .tenban .tb-price-table th { grid-column: 1 / -1; margin-bottom: 4px; }
  .tb-price-table th small { display: inline; margin-left: 8px; }
  .tenban .tb-price-table td.tb-price-table__na { grid-column: 1 / -1; }
  .tb-price-table tr.tb-price-table__group { display: block; border: 0; padding: 8px 0 0; margin-bottom: 4px; }
  .tenban a.tb-sticky {
    display: block; position: fixed; left: 12px; right: 96px; bottom: 12px; z-index: 50; padding: 13px 8px; border-radius: 999px;
    background: var(--tb-navy-900); color: #fff; font-weight: 700; font-size: 15px; text-align: center; text-decoration: none;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
  }
  .tenban a.tb-sticky.is-hidden { display: none; }
}

/* ---------- all-products page (like a shop collection page) ---------- */
.tb-shop { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; align-items: start; }
.tb-side { position: sticky; top: 80px; border-top: 2px solid var(--tb-gray-900); }
.tb-side__toggle { list-style: none; padding: 12px 0; font-weight: 700; font-size: 16px; cursor: default; }
.tb-side__toggle::-webkit-details-marker { display: none; }
.tb-side__group { padding: 12px 0; border-top: 1px solid var(--tb-gray-300); }
.tenban .tb-side__label { margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.tb-check { display: flex; align-items: center; gap: 8px; margin: 0; padding: 3px 0; font-size: 14px; line-height: 1.5; cursor: pointer; }
.tenban .tb-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--tb-gray-900); -webkit-appearance: checkbox; appearance: auto; }
.tb-check span { color: var(--tb-gray-500); font-size: 12px; }
.tb-side__species { max-height: 260px; overflow-y: auto; }
.tenban .tb-side__clear { margin: 8px 0 4px; padding: 6px 12px; border: 1px solid var(--tb-gray-900); background: #fff; color: var(--tb-gray-900); font: inherit; font-size: 13px; cursor: pointer; }
.tenban a.tb-side__link { display: block; padding: 3px 0; font-size: 14px; color: var(--tb-gray-900); }
.tenban a.tb-side__link::before { font-family: "Font Awesome 5 Free"; content: "\f35a"; font-weight: 700; margin-right: .5em; color: var(--tb-gray-700); }
.tb-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.tenban .tb-toolbar__count { margin: 0; font-size: 14px; color: var(--tb-gray-700); }
.tb-toolbar .tb-select { width: 200px; }
.tb-cards--all { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tb-cards--all .tb-card__price b { font-size: 22px; }
.tenban .tb-cards--all .tb-card__summary { margin: 6px 0 0; font-size: 13px; line-height: 1.6; color: var(--tb-gray-700); }
@media (max-width: 900px) {
  .tb-shop { grid-template-columns: 180px minmax(0, 1fr); gap: 18px; }
  .tb-cards--all { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tb-shop { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .tb-side { position: static; border: 1px solid var(--tb-gray-300); border-radius: var(--tb-radius); padding: 0 14px; }
  .tb-side__toggle { cursor: pointer; }
  .tb-side__toggle::after { font-family: "Font Awesome 5 Free"; content: "\f078"; font-weight: 700; float: right; }
  .tb-side[open] .tb-side__toggle::after { content: "\f077"; }
  .tb-side__group:first-child { border-top: 0; }
  .tb-side__species { max-height: 220px; }
  .tb-toolbar .tb-select { width: 170px; }
  .tenban .tb-cards--all .tb-card__summary { display: none; }
}

/* ---------- product page with the order panel (pilot) ---------- */
.tb-pdp { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px; align-items: start; margin-bottom: 48px; }
.tb-pdp__main h1 { font-size: 28px; margin: 0 0 8px; }
.tb-gallery { position: sticky; top: 16px; }
.tb-gallery__stage { background: var(--tb-gray-100); border-radius: var(--tb-radius); aspect-ratio: 3 / 2; overflow: hidden; position: relative; }
.tb-gallery__slide { display: none; margin: 0; height: 100%; }
.tb-gallery__slide[data-active], .tb-gallery__slide:target { display: flex; flex-direction: column; justify-content: center; }
.tb-gallery__stage:has(.tb-gallery__slide:target) .tb-gallery__slide[data-active]:not(:target) { display: none; }
.tb-gallery__slide > img { width: 100%; height: 100%; object-fit: contain; display: block; min-height: 0; }
.tb-gallery__slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 10px; font-size: 12px; color: #fff; background: rgba(0, 0, 0, .45); }
.tb-gallery__slide .tb-board-stage { height: 100%; }
.tb-gallery__thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 8px; }
.tb-gallery__thumb { display: block; border: 2px solid transparent; border-radius: 6px; overflow: hidden; aspect-ratio: 3 / 2; background: var(--tb-gray-100); }
.tb-gallery__thumb[aria-current] { border-color: var(--tb-gray-900); }
.tb-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.tb-buy { margin-top: 20px; border-top: 1px solid var(--tb-gray-300); }
.tenban .tb-buy__group { border: 0; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--tb-gray-100); min-width: 0; }
.tenban .tb-buy__group legend { font-weight: 700; font-size: 15px; padding: 0; margin-bottom: 8px; }
.tb-buy__label { font-size: 13px; color: var(--tb-gray-700); margin: 0 0 6px; }
.tb-chips, .tb-choices--chip { display: flex; flex-wrap: wrap; gap: 6px; }
.tenban .tb-chip { border: 1px solid var(--tb-gray-300); background: #fff; border-radius: 6px; padding: 6px 10px; font-size: 13px; cursor: pointer; color: var(--tb-gray-900); font-family: inherit; }
.tb-chips:has(.tb-chip--size) { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.tenban .tb-chip--size { text-align: left; line-height: 1.35; padding: 8px 10px; }
.tenban .tb-chip--size small { display: block; font-size: 11px; font-weight: 400; color: var(--tb-gray-700); }
.tenban .tb-chip[aria-pressed="true"] { border-color: var(--tb-gray-900); box-shadow: inset 0 0 0 1px var(--tb-gray-900); font-weight: 700; }

.tb-range { display: grid; grid-template-columns: 5.5em 1fr auto; align-items: center; gap: 10px; margin-top: 12px; }
.tb-range__label { font-size: 14px; font-weight: 700; }
.tb-range__slider { width: 100%; accent-color: var(--tb-gray-900); }
.tb-range__num { font-size: 13px; white-space: nowrap; }
.tenban .tb-range__num input { width: 5.5em; height: 40px; border: 1px solid var(--tb-gray-300); border-radius: 6px; padding: 0 6px; font-size: 16px; text-align: right; margin-right: 4px; font-family: inherit; }

.tb-choices--img { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tb-choices--swatch { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.tb-choice { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; border: 1px solid var(--tb-gray-300); border-radius: 8px; padding: 6px; cursor: pointer; background: #fff; font-size: 13px; text-align: center; line-height: 1.3; }
.tb-choice input { position: absolute; opacity: 0; pointer-events: none; }
.tb-choice:has(input:checked) { border-color: var(--tb-gray-900); box-shadow: inset 0 0 0 1px var(--tb-gray-900); font-weight: 700; }
.tb-choice:has(input:focus-visible) { outline: 2px solid var(--tb-gray-900); outline-offset: 2px; }
.tb-choice--chip { flex-direction: row; padding: 6px 12px; }
.tb-choice:has(input:disabled) { opacity: .4; cursor: not-allowed; }
.tb-choice__text small { display: block; font-size: 11px; font-weight: 400; }
.tb-choice__img { display: block; width: 100%; aspect-ratio: 3 / 2; border-radius: 4px; background: var(--tb-gray-100) no-repeat center / cover; }
.tb-buybar:not([hidden]) { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; align-items: center; justify-content: flex-end;
  gap: 20px; padding: 10px max(16px, calc((100% - 1100px) / 2)) calc(10px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -2px 10px rgba(0, 0, 0, .12); }
.tenban .tb-buybar__info { margin: 0; line-height: 1.2; text-align: right; }
.tb-buybar__price { display: block; font-size: 22px; font-weight: 700; color: var(--tb-price); }
.tenban .tb-buybar button.tb-btn { flex: 0 0 auto; padding: 14px 32px; font-size: 16px; }
.tenban .tb-pdp__price { margin: 4px 0 12px; }
.tb-pdp__price [data-tb-top-price] { font-size: 28px; font-weight: 700; color: var(--tb-price); margin-right: 10px; }
.tb-pdp__price [data-tb-top-price] small { font-size: 13px; }
.tb-choices--svg { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
[data-tb-group="hpos"] .tb-choices--svg { grid-template-columns: repeat(3, 1fr); }
[data-tb-group="cr"] .tb-choices--svg { grid-template-columns: repeat(3, 1fr); }
[data-tb-group="sori"] .tb-choices--svg { grid-template-columns: repeat(4, 1fr); }
.tb-choice__svg { display: block; width: 100%; aspect-ratio: 120 / 72; background: no-repeat center / contain; }
@media (max-width: 860px) {
  .tb-buybar:not([hidden]) { justify-content: space-between; }
  .tenban .tb-buybar__info { text-align: left; }
  .tenban .tb-buybar button.tb-btn { padding: 12px 20px; }
  .tb-choices--svg { grid-template-columns: repeat(3, 1fr); }
  [data-tb-group="sori"] .tb-choices--svg { grid-template-columns: repeat(2, 1fr); }
}
.tb-choice__swatch { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .12); background-size: cover; background-position: center; position: relative; overflow: hidden; }
.tb-choice__swatch.is-gloss::after { content: ""; position: absolute; left: 8px; top: 7px; width: 14px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .7); transform: rotate(-25deg); }

.tb-buy__qty { display: flex; align-items: center; gap: 12px; padding: 16px 0; font-weight: 700; font-size: 15px; }
.tenban .tb-buy__qty select { height: 40px; min-width: 80px; border: 1px solid var(--tb-gray-300); border-radius: 6px; padding: 0 8px; font-size: 16px; font-family: inherit; }
.tb-buy__total { background: var(--tb-wood-100); border-radius: var(--tb-radius); padding: 14px 16px; margin: 8px 0 12px; }
.tenban .tb-buy__total-label { font-size: 13px; margin: 0; color: var(--tb-gray-700); }
.tenban .tb-buy__price { font-size: 30px; font-weight: 700; color: var(--tb-price); margin: 2px 0; transition: opacity .15s; }
.tb-buy__price small { font-size: 13px; margin-left: 4px; }
.tb-buy__price.is-loading { opacity: .35; }
.tenban .tb-buy__breakdown { font-size: 12px; color: var(--tb-gray-700); margin: 0; }
.tenban .tb-buy__error { font-size: 13px; color: var(--tb-price); margin: 6px 0 0; }
.tenban button.tb-buy__cart { width: 100%; height: 56px; font-size: 17px; }
.tb-buy__more { font-size: 13px; margin: 8px 0; }
.tb-buy__notice { margin-top: 12px; border: 1px solid var(--tb-gray-300); border-radius: 8px; padding: 10px 14px; font-size: 13px; }
.tb-buy__notice summary { cursor: pointer; font-weight: 700; color: var(--tb-price); }

.tb-story__lead { font-size: 18px; font-weight: 700; line-height: 1.7; }
.tb-story h3, #care h3, #processing h3 { font-size: 17px; margin: 28px 0 8px; padding-left: 10px; border-left: 4px solid var(--tb-wood-700); }
.tb-spec { width: 100%; border-collapse: collapse; margin-top: 24px; font-size: 14px; }
.tenban .tb-spec th, .tenban .tb-spec td { border: 1px solid var(--tb-gray-300); padding: 10px 12px; text-align: left; }
.tenban .tb-spec th { background: var(--tb-gray-100); width: 9em; white-space: nowrap; }
.tb-proc-figs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.tb-proc-fig { margin: 0; }
.tb-proc-fig img { width: 100%; height: auto; display: block; border: 1px solid var(--tb-gray-100); }
.tb-proc-fig figcaption { font-size: 13px; margin-top: 6px; }
.tb-proc-fig--wide { max-width: 560px; }

@media (max-width: 860px) {
  .tb-pdp { grid-template-columns: 1fr; gap: 16px; }
  .tb-gallery { position: static; }
  .tb-pdp__main h1 { font-size: 22px; }
  .tb-gallery__thumbs { grid-template-columns: repeat(5, 1fr); }
  .tb-choices--swatch { grid-template-columns: repeat(3, 1fr); }
  .tb-proc-figs { grid-template-columns: 1fr; }
  .tb-range { grid-template-columns: 1fr auto; }
  .tb-range__slider { grid-column: 1 / -1; grid-row: 2; }
}
#breadcrumbsWrapper {
  display: none !important;
}