/* =============================================================================
   部品（ブロック）の基本の見た目 ── 全テンプレート共通
   約束事: cms/docs/部品とレイアウトの約束事.md
   テンプレートは theme.css で上書きし、サイトごとの調整は CSS 変数で行う。
   ============================================================================= */

:root {
  --c-primary: #b91c1c;        /* アクセント（見出しの線・リンクの強調など） */
  --c-primary-ink: #ffffff;    /* アクセント色の上の文字 */
  --c-text: #1f2937;
  --c-muted: #6b7280;
  --c-link: #1d4ed8;
  --c-line: #e5e7eb;
  --c-soft: #f5f6f8;           /* 淡い背景 */
  --c-bg: #ffffff;
  --font-body: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  --font-heading: var(--font-body);
  --radius: 8px;
  --block-gap: 2.5rem;         /* 部品と部品の間 */
}

.cms-content { color: var(--c-text); font-family: var(--font-body); line-height: 1.85; font-size: 1rem; overflow-wrap: anywhere; }
.cms-content > [data-block] { margin: 0 0 var(--block-gap); }
.cms-content > [data-block]:last-child { margin-bottom: 0; }
.cms-content img { max-width: 100%; height: auto; display: block; }
.cms-content a { color: var(--c-link); }
.cms-content a:hover { text-decoration: none; }
.cms-content p { margin: 0 0 1em; }
.cms-content p:last-child { margin-bottom: 0; }
.cms-content ul, .cms-content ol { margin: 0 0 1em; padding-left: 1.5em; }
.cms-content li + li { margin-top: .3em; }
.cms-content h2, .cms-content h3, .cms-content h4 { font-family: var(--font-heading); line-height: 1.4; margin: 0 0 .8em; }
.cms-content h2 { font-size: 1.45rem; padding: .35em 0 .35em .8em; border-left: 6px solid var(--c-primary); background: var(--c-soft); }
.cms-content h3 { font-size: 1.15rem; padding-bottom: .3em; border-bottom: 2px solid var(--c-line); }
.cms-content h4 { font-size: 1.05rem; }
.cms-content figure { margin: 0; }
.cms-content figcaption { font-size: .85rem; color: var(--c-muted); margin-top: .5em; line-height: 1.6; }

/* ---- 見出し heading ---- */
[data-block="heading"] h1 { font-family: var(--font-heading); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.2rem); line-height: 1.35; margin: 0;
  padding-bottom: .4em; border-bottom: 3px solid var(--c-primary); }
[data-block="heading"] h2 { margin: 0; }

/* ---- 画像＋文章 textpic ---- */
[data-block="textpic"] { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.5rem 2rem; align-items: start; }
[data-block="textpic"][data-pos="right"] { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
[data-block="textpic"][data-pos="right"] .b-media { order: 2; }
[data-block="textpic"] .b-media img { border-radius: var(--radius); }

/* ---- 画像 image ---- */
[data-block="image"] figure { max-width: 100%; }
[data-block="image"][data-align="center"] figure { margin-inline: auto; width: fit-content; }
[data-block="image"][data-align="right"] figure { margin-left: auto; width: fit-content; }
[data-block="image"] img { border-radius: var(--radius); }

/* ---- ギャラリー gallery ---- */
[data-block="gallery"] { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 12px; }
[data-block="gallery"][data-cols="2"] { --cols: 2; }
[data-block="gallery"][data-cols="4"] { --cols: 4; }
[data-block="gallery"][data-cols="5"] { --cols: 5; }
[data-block="gallery"][data-cols="6"] { --cols: 6; }
[data-block="gallery"] img { width: 100%; border-radius: calc(var(--radius) / 2); }
[data-block="gallery"][data-fit="contain"] img { aspect-ratio: 4 / 3; object-fit: contain; background: var(--c-soft); }
[data-block="gallery"][data-fit="cover"] img { aspect-ratio: 4 / 3; object-fit: cover; }

/* ---- カード一覧 cards ---- */
[data-block="cards"] { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 1.25rem; }
[data-block="cards"][data-cols="2"] { --cols: 2; }
[data-block="cards"][data-cols="4"] { --cols: 4; }
[data-block="cards"] .b-card { display: flex; flex-direction: column; color: inherit; text-decoration: none; background: var(--c-bg);
  border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; transition: box-shadow .2s, transform .2s; }
[data-block="cards"] .b-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: translateY(-2px); }
[data-block="cards"] .b-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
[data-block="cards"] .b-card h3 { font-size: 1.05rem; margin: .9rem 1rem .4rem; padding: 0; border: 0; color: var(--c-primary); }
[data-block="cards"] .b-card p { font-size: .9rem; line-height: 1.7; color: var(--c-muted); margin: 0 1rem 1rem; }

/* ---- 表 table（横に長い表はスクロール） ---- */
[data-block="table"] { overflow-x: auto; }
[data-block="table"] table { width: 100%; border-collapse: collapse; font-size: .95rem; }
[data-block="table"] caption { text-align: left; font-weight: 700; margin-bottom: .5em; }
[data-block="table"] th, [data-block="table"] td { border: 1px solid var(--c-line); padding: .7em .9em; text-align: left; vertical-align: top; }
[data-block="table"] th { background: var(--c-soft); white-space: nowrap; font-weight: 700; }

/* ---- ファイル一覧 files ---- */
[data-block="files"] ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--c-line); }
[data-block="files"] li { margin: 0; border-bottom: 1px solid var(--c-line); }
[data-block="files"] a { display: flex; align-items: center; gap: .8em; padding: .8em .2em; text-decoration: none; }
[data-block="files"] a::before { content: attr(data-type); flex: none; min-width: 3.2em; text-align: center; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; color: #fff; background: #6b7280; border-radius: 4px; padding: .25em .4em; }
[data-block="files"] a[data-type="pdf"]::before { background: #dc2626; }
[data-block="files"] a[data-type="docx"]::before, [data-block="files"] a[data-type="doc"]::before { background: #2563eb; }
[data-block="files"] a[data-type="xlsx"]::before, [data-block="files"] a[data-type="xls"]::before { background: #16a34a; }
[data-block="files"] a::after { content: attr(data-size); margin-left: auto; font-size: .85rem; color: var(--c-muted); }

/* ---- ニュース一覧 news（中身はサーバーが作る） ---- */
[data-block="news"] ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--c-line); }
[data-block="news"] li { display: flex; gap: 1.2em; margin: 0; padding: .9em .2em; border-bottom: 1px solid var(--c-line); }
[data-block="news"] time { flex: none; min-width: 8.2em; color: var(--c-muted); font-size: .9rem; font-variant-numeric: tabular-nums; }
[data-block="news"] a { text-decoration: none; }
[data-block="news"] .b-more { text-align: right; margin-top: .8em; font-size: .9rem; }

/* ---- 埋め込み embed（iframe はサーバーが作る） ---- */
[data-block="embed"] iframe { display: block; width: 100%; border: 0; }

/* ---- 手順 steps（工程の間の矢印はテンプレートが描く） ---- */
[data-block="steps"] ol { list-style: none; margin: 0; padding: 0; counter-reset: step; }
[data-block="steps"] li { position: relative; counter-increment: step; margin: 0; padding: 1.4rem 1.5rem 1.5rem; border: 1px solid var(--c-line);
  border-radius: var(--radius); background: var(--c-bg); }
[data-block="steps"] li + li { margin-top: 2.6rem; }
[data-block="steps"] li + li::before { content: ""; position: absolute; left: 50%; top: -2.6rem; translate: -50% 0; margin-top: .55rem;
  border: 14px solid transparent; border-top: 16px solid var(--c-primary); border-bottom-width: 0; }
[data-block="steps"] li > h3 { display: flex; align-items: center; gap: .7em; margin: 0 0 .7em; padding: 0; border: 0; font-size: 1.1rem; }
[data-block="steps"] li > h3::before { content: "STEP " counter(step); flex: none; font-size: .72rem; font-weight: 700; letter-spacing: .05em;
  color: var(--c-primary-ink); background: var(--c-primary); border-radius: 999px; padding: .25em .8em; }
[data-block="steps"] .b-figs { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 1rem; }
[data-block="steps"] .b-figs img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: calc(var(--radius) / 2); }

/* ---- 共通パーツ snippet（中身は1か所で管理し、表示のたびにサーバーが入れる） ---- */
[data-block="snippet"] { padding: 1.4rem 1.6rem; background: var(--c-soft); border-radius: var(--radius); }
[data-block="snippet"] h3 { border: 0; padding: 0; margin-bottom: .5em; }

/* ---- 自由HTML html ---- */
[data-block="html"] { overflow-x: auto; }

/* ---- スマホ ---- */
@media (max-width: 760px) {
  .cms-content { --block-gap: 2rem; }
  [data-block="textpic"], [data-block="textpic"][data-pos="right"] { grid-template-columns: 1fr; }
  [data-block="textpic"][data-pos="right"] .b-media { order: 0; }
  [data-block="gallery"], [data-block="cards"] { --cols: 2 !important; }
  [data-block="news"] li { flex-direction: column; gap: .2em; }
}
@media (max-width: 420px) {
  [data-block="cards"] { --cols: 1 !important; }
}

/* ---------------------------------------------------------------- メインビジュアル（hero）
   本文の先頭に置くと、テンプレートのメインビジュアル枠（横幅いっぱい）に出る。
   data-type: image / slides / video   data-height: full / large / medium
   data-text: left / center / bottom   data-shade: 0 / 20 / 40 / 60（写真を暗くする度合い） */
[data-block="hero"] { --hero-h: clamp(320px, 42vw, 560px); --shade: .4; position: relative; display: grid; overflow: hidden;
  min-height: var(--hero-h); margin: 0; background: #1f2937; color: #fff; isolation: isolate; }
[data-block="hero"][data-height="full"] { --hero-h: min(88svh, 960px); }
[data-block="hero"][data-height="medium"] { --hero-h: clamp(220px, 28vw, 360px); }
/* 帯（セクションの見出し帯として使う低いメインビジュアル） */
[data-block="hero"][data-height="band"] { --hero-h: clamp(110px, 12vw, 150px); }
[data-block="hero"][data-height="band"] .b-hero-text { padding-block: 16px; }
[data-block="hero"][data-height="band"] .b-hero-sub { font-size: .78rem; text-transform: uppercase; }
[data-block="hero"][data-height="band"] .b-hero-title { margin-top: .1em !important; font-size: clamp(1.3rem, 1rem + 1.1vw, 1.9rem); }
[data-block="hero"][data-height="band"] .b-hero-lead { margin-top: .4em !important; font-size: .85rem; line-height: 1.6; }
[data-block="hero"][data-type="none"] { display: none; }
[data-block="hero"][data-shade="0"] { --shade: 0; }
[data-block="hero"][data-shade="20"] { --shade: .2; }
[data-block="hero"][data-shade="60"] { --shade: .6; }
.b-hero-slide { grid-area: 1 / 1; position: relative; display: grid; min-height: var(--hero-h); opacity: 0; visibility: hidden; transition: opacity 2s ease-in-out, visibility 2s; }
/* スライド（画像）のリンク: 空の a をスライド全体に重ねる（文字の上も押せる） */
.b-hero-link { position: absolute; inset: 0; z-index: 2; }
.b-hero-link:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.b-hero-slide:first-child, .b-hero-slide.is-active { opacity: 1; visibility: visible; }
[data-block="hero"].is-ready .b-hero-slide:not(.is-active) { opacity: 0; visibility: hidden; }
.b-hero-slide picture { display: contents; }
/* 写真・動画は枠いっぱいに敷く（高さは枠の高さ。写真の縦横比では決めない） */
.b-hero-slide img, .b-hero-slide video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.b-hero-slide::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, var(--shade)); pointer-events: none; }
.b-hero-text { grid-area: 1 / 1; z-index: 1; align-self: center; justify-self: start; width: min(100%, 44em); padding: clamp(20px, 4vw, 56px);
  text-shadow: 0 1px 12px rgba(0,0,0,.35); }
[data-block="hero"][data-text="center"] .b-hero-text { justify-self: center; text-align: center; }
[data-block="hero"][data-text="bottom"] .b-hero-text { align-self: end; }
.b-hero-text p { margin: 0; }
.b-hero-sub { font-size: .85rem; letter-spacing: .22em; opacity: .9; }
.b-hero-title { margin-top: .3em !important; font-size: clamp(1.45rem, 1rem + 2.2vw, 2.7rem); font-weight: 700; line-height: 1.4;
  word-break: auto-phrase; text-wrap: balance; }
.b-hero-lead { margin-top: 1em !important; max-width: 34em; font-size: .95rem; line-height: 1.9; }
[data-block="hero"][data-text="center"] .b-hero-lead { margin-inline: auto; }
.b-hero-text p:empty { display: none; }
.b-hero-ctrl { position: absolute; z-index: 3; right: 12px; bottom: 12px; display: flex; gap: 6px; align-items: center; }
.b-hero-ctrl button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(255,255,255,.75); background: rgba(0,0,0,.35);
  color: #fff; font-size: 12px; line-height: 1; cursor: pointer; padding: 0; }
.b-hero-ctrl button.dot { width: 12px; height: 12px; background: transparent; }
.b-hero-ctrl button.dot[aria-current="true"] { background: #fff; }
.b-hero-ctrl button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 640px) {
  [data-block="hero"] { --hero-h: clamp(260px, 70vw, 420px); }
  [data-block="hero"][data-height="full"] { --hero-h: 72svh; }
  [data-block="hero"][data-height="medium"] { --hero-h: 220px; }
  [data-block="hero"][data-height="band"] { --hero-h: 96px; }
}
@media (prefers-reduced-motion: reduce) { .b-hero-slide { transition: none; } }
/* PC での写真の収め方（スマホは今までどおり枠いっぱい）
   data-fit-pc: contain = 全体を見せる（余白ができる）/ ratio = 枠の高さを写真の縦横比に合わせる（--hero-ratio。ほかのスライドは全体を見せる）
   data-fill: blur = 余白に同じ写真をぼかして敷く（--hero-img）/ color = 余白を色で塗る（--hero-fill） */
@media (min-width: 641px) {
  [data-block="hero"][data-fit-pc="contain"] .b-hero-slide img, [data-block="hero"][data-fit-pc="contain"] .b-hero-slide video,
  [data-block="hero"][data-fit-pc="ratio"] .b-hero-slide img, [data-block="hero"][data-fit-pc="ratio"] .b-hero-slide video { object-fit: contain; z-index: 0; }
  [data-block="hero"][data-fit-pc="ratio"] { min-height: 0; aspect-ratio: var(--hero-ratio, 16 / 6); max-height: 88svh; }
  [data-block="hero"][data-fit-pc="ratio"] .b-hero-slide { min-height: 0; }
  [data-block="hero"][data-fit-pc="contain"] .b-hero-slide, [data-block="hero"][data-fit-pc="ratio"] .b-hero-slide { background: var(--hero-fill, #111); }
  [data-block="hero"][data-fit-pc]:not([data-fill="color"]) .b-hero-slide::before { content: ""; position: absolute; inset: -40px; z-index: 0;
    background: var(--hero-img, none) center / cover no-repeat; filter: blur(28px) brightness(.85); transform: scale(1.1); pointer-events: none; }
  [data-block="hero"][data-fit-pc] .b-hero-slide { overflow: hidden; }
  [data-block="hero"][data-fit-pc] .b-hero-slide picture img, [data-block="hero"][data-fit-pc] .b-hero-slide video { z-index: 0; }
}


/* ---------------------------------------------------------------- 上部のメニュー: ドロップダウン・メガメニュー（仕組み）
   見た目（色・余白）は各テンプレートの theme.css。中身はメニューのツリーから自動で作る。
   PC: マウスを乗せる／キーボードで移動すると開く。Esc で閉じる（/_cms/nav.js）。スマホ（ハンバーガーの中）: 下の階層を字下げして並べる */
.main-nav .has-sub > a::after { content: "▾"; font-size: .72em; margin-left: .4em; opacity: .75; }
.main-nav .sub, .main-nav .mega ul { list-style: none; margin: 0; padding: 0; }
.main-nav .sub a, .main-nav .mega a { display: block; text-decoration: none; }
@media (min-width: 761px) {
  .main-nav .sub-dropdown { position: relative; }
  .main-nav .sub-mega { position: static; }
  .main-nav .sub, .main-nav .mega { display: none; position: absolute; top: 100%; z-index: 60; }
  /* スクリプトが動かないとき: マウスを乗せると開く（CSS だけ）。動くとき（.js-nav）: 開閉は /_cms/nav.js が is-open で決める */
  .main-nav:not(.js-nav) .has-sub:hover > .sub, .main-nav:not(.js-nav) .has-sub:hover > .mega,
  .main-nav .has-sub:focus-within > .sub, .main-nav .has-sub:focus-within > .mega,
  .main-nav .has-sub.is-open > .sub, .main-nav .has-sub.is-open > .mega { display: block; }
  .main-nav .has-sub.is-closed > .sub, .main-nav .has-sub.is-closed > .mega { display: none; }
  .main-nav .sub { left: 0; min-width: 15em; padding: 6px 0; }
  .main-nav .sub a { white-space: nowrap; }
  .main-nav .mega { left: 0; right: 0; }
  /* 文字とパネルの間のすき間をふさぐ見えない面。その項目の幅だけ、文字から下へ伸ばす
     （パネルの幅いっぱいにすると、隣の項目の上にかぶさって、隣へ移れなくなる） */
  .main-nav .has-sub > a { position: relative; }
  .main-nav .has-sub > a::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 28px; }
  /* メニューの行の下端からパネルまでのすき間（高さは各テンプレートの --mega-gap。メニューの文字にはかぶせない） */
  .main-nav .mega::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: var(--mega-gap, 0px); }
  .main-nav .mega-in { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px 32px; padding: 22px 30px 26px; }
  .main-nav .mega-h { font-weight: 700; }
  .main-nav .mega ul { margin-top: .35em; }
}
@media (max-width: 760px) {
  .main-nav .sub, .main-nav .mega { display: block; }
  .main-nav .has-sub > a::after { display: none; }
  .main-nav .sub a, .main-nav .mega a { padding-left: 2.2em !important; font-size: .9em; }
  .main-nav .mega ul a { padding-left: 3.4em !important; }
}

/* ---------------------------------------------------------------- ニュース: カテゴリの印・カテゴリの切り替え・ページ送り・記事の見出し */
.b-news-cat { display: inline-block; margin: 0 .5em 0 0; padding: .05em .55em; font-size: .75rem; line-height: 1.6; border-radius: 3px;
  background: var(--c-soft, #f3f4f6); color: var(--c-muted, #4b5563); border: 1px solid var(--c-line, #e5e7eb); white-space: nowrap; vertical-align: .1em; }
[data-block="news"] li .b-news-cat { flex: none; }
.b-news-cats { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0 0 1rem; padding: 0; border: 0 !important; }
.b-news-cats li { border: 0 !important; padding: 0 !important; display: block !important; }
.b-news-cats a { display: inline-block; padding: .3em .9em; border: 1px solid var(--c-line, #e5e7eb); border-radius: 999px; font-size: .85rem; text-decoration: none; color: inherit; }
.b-news-cats .is-current a { background: var(--c-primary, #b91c1c); border-color: var(--c-primary, #b91c1c); color: #fff; }
.b-pager { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: center; margin-top: 1.4rem; }
.b-pager a { min-width: 2.4em; padding: .35em .7em; text-align: center; border: 1px solid var(--c-line, #e5e7eb); border-radius: 6px; text-decoration: none; color: inherit; font-size: .9rem; }
.b-pager a[aria-current="page"] { background: var(--c-primary, #b91c1c); border-color: var(--c-primary, #b91c1c); color: #fff; font-weight: 700; }
.b-pager a:hover:not([aria-current]) { background: var(--c-soft, #f3f4f6); }
.b-news-head { margin: 0 0 var(--block-gap, 1.5rem); }
.b-news-head .b-news-meta { margin: 0 0 .4em; color: var(--c-muted, #4b5563); font-size: .9rem; display: flex; flex-wrap: wrap; gap: .3em .8em; align-items: center; }
.b-news-head h1 { margin: 0; }
.b-news-back { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--c-line, #e5e7eb); }
.b-news-tag { font-size: .8rem; color: var(--c-muted, #4b5563); }

/* ---------------------------------------------------------------- サイドの部品（.side-area）
   左メニュー・右メニューのメニューの上下、左枠・右枠。狭い列なので、並べる部品は1列にする */
.side-area:empty { display: none; }
.side-area > * + * { margin-top: 10px; }
.side-area img { max-width: 100%; height: auto; display: block; }
.side-area figure { margin: 0; }
.side-area [data-block="image"] figure { text-align: center; }
.side-area [data-block="gallery"], .side-area [data-block="cards"] { --cols: 1 !important; }
.side-area p { margin: 0 0 .6em; }
.side-area p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------- 動画ギャラリー（videos）
   サムネイルのタイル。押すとその場で再生（/_cms/videos.js）。data-cols: 2〜4、data-feature="1": 最初の1本を大きく */
[data-block="videos"] { --cols: 3; }
[data-block="videos"][data-cols="2"] { --cols: 2; }
[data-block="videos"][data-cols="4"] { --cols: 4; }
[data-block="videos"] ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 22px 18px; }
[data-block="videos"] li { margin: 0; }
[data-block="videos"] li > a { display: block; color: inherit; text-decoration: none; }
[data-block="videos"] .b-vid-thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: calc(var(--radius) / 2); background: #000; }
[data-block="videos"] .b-vid-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
[data-block="videos"] .b-vid-thumb iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
[data-block="videos"] li > a .b-vid-thumb::after { content: ""; position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 64px; height: 44px; border-radius: 12px;
  background: rgba(220, 0, 0, .9) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 7l8 5-8 5z' fill='white'/></svg>") center / 26px no-repeat;
  box-shadow: 0 2px 10px rgba(0,0,0,.3); transition: transform .2s; }
[data-block="videos"] li > a:hover .b-vid-thumb img { transform: scale(1.04); }
[data-block="videos"] li > a:hover .b-vid-thumb::after { transform: scale(1.1); }
[data-block="videos"] .b-vid-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: .55em; font-size: .92rem; line-height: 1.5; }
[data-block="videos"] li > a:hover .b-vid-title { color: var(--c-link); text-decoration: underline; }
[data-block="videos"][data-feature="1"] li:first-child { grid-column: 1 / -1; }
[data-block="videos"][data-feature="1"] li:first-child .b-vid-thumb { max-width: 820px; }
[data-block="videos"][data-feature="1"] li:first-child .b-vid-title { font-size: 1.1rem; font-weight: 700; -webkit-line-clamp: 3; }
@media (max-width: 640px) {
  [data-block="videos"] ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  [data-block="videos"] li > a .b-vid-thumb::after { width: 48px; height: 34px; background-size: 20px; }
}

/* ---- 表を見やすく（1行おきに薄い色・数字は右寄せ。Excel から貼った表もこの形になる） ---- */
[data-block="table"] tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--c-soft) 60%, #fff); }
[data-block="table"] td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 640px) { [data-block="table"] table { font-size: .88rem; } [data-block="table"] th, [data-block="table"] td { padding: .55em .65em; } }

/* ---------------------------------------------------------------- 文字のバナー（textbanner）
   画像を使わない、リンクの箱。
   data-fill:  （なし）濃く塗る / tint（薄く塗る）/ white（白）
   data-shape: （なし）通常 / line（枠）/ left・right・top・bottom（その辺に帯）/ pill（丸いボタン）
   data-type:  （なし）通常 / phone（電話ボタン）/ number（大きな数字）/ cta（呼びかけの帯）
   data-icon:  アイコン（tb/icons.json。下の「自動で作る所」）  data-align: center
   data-bg:    背景の模様（tb/bg.json）/ photo（写真。--tb-img）
   data-badge: 目印（右上。data-badge-until を過ぎると表示側で外す）
   style の値（どれも省略可）: --tb-c 色 / --tb-ink 濃く塗ったときの文字の色 / --tb-line 枠・帯の太さ / --tb-fs 大きな文字 / --tb-fs2 小さな文字
     / --tb-py 上下の余白 / --tb-px 左右の余白 / --tb-isz アイコン / --tb-r 角の丸み / --tb-po 模様の濃さ / --tb-dim 写真の暗さ / --tb-img 写真
   中身: <a href>（リンクなしは <div>）<span class="b-tb-icon"></span><span class="b-tb-body"><span class="b-tb-title"> <span class="b-tb-sub"> <span class="b-tb-btn"></span><span class="b-tb-meta"></span></a> */
[data-block="textbanner"] { --tb-c: var(--c-primary); --tb-ink: var(--c-primary-ink, #fff);
  --tb-bg: var(--tb-c); --tb-fg: var(--tb-ink); --tb-tc: var(--tb-fg); --tb-lc: color-mix(in srgb, var(--tb-c) 70%, #000); --tb-pc: var(--tb-fg);
  position: relative; container-type: inline-size; }
[data-block="textbanner"][data-fill="tint"] { --tb-bg: color-mix(in srgb, var(--tb-c) 12%, #fff); --tb-fg: var(--c-text, #222); --tb-tc: color-mix(in srgb, var(--tb-c) 85%, #000); --tb-lc: var(--tb-c); --tb-pc: var(--tb-c); }
[data-block="textbanner"][data-fill="white"] { --tb-bg: #fff; --tb-fg: var(--c-text, #222); --tb-tc: var(--tb-c); --tb-lc: var(--tb-c); --tb-pc: var(--tb-c); --tb-sh-out: 0 1px 4px rgba(0,0,0,.1); }
[data-block="textbanner"] + [data-block="textbanner"] { margin-top: 10px; }   /* 続けて並べたときのすき間 */
[data-block="textbanner"] > a, [data-block="textbanner"] > div { position: relative; isolation: isolate; display: flex; align-items: center; gap: .85em;
  padding: var(--tb-py, .95em) calc(var(--tb-px, 1.1em) + 1.5em + var(--tb-line-r, 0px)) var(--tb-py, .95em) calc(var(--tb-px, 1.1em) + var(--tb-line-l, 0px));
  border-radius: var(--tb-r, var(--radius)); text-decoration: none; line-height: 1.45; background: var(--tb-bg); color: var(--tb-fg);
  box-shadow: var(--tb-sh-in, 0 0 0 transparent), var(--tb-sh-out, 0 0 0 transparent); transition: filter .15s, transform .15s, box-shadow .15s; }
[data-block="textbanner"] > div { padding-right: calc(var(--tb-px, 1.1em) + var(--tb-line-r, 0px)); }
/* テンプレートの本文のリンクの色（.t-〇〇 .cms-content a）より強くする */
[data-block="textbanner"]:not(#_) > a[href] { color: var(--tb-fg); text-decoration: none; }   /* :not(#_) = テンプレートの .t-〇〇 .cms-content a に負けない強さ */
[data-block="textbanner"] > a::after { content: ""; position: absolute; right: calc(var(--tb-px, 1.1em) + var(--tb-line-r, 0px)); top: 50%; width: .55em; height: .55em;
  border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translateY(-50%) rotate(45deg); opacity: .9; }
[data-block="textbanner"] > a:hover { --tb-sh-out: 0 4px 12px rgba(0,0,0,.14); filter: brightness(1.05); transform: translateY(-1px); }
.b-tb-body { flex: 1; min-width: 0; display: block; }
[data-block="textbanner"] .b-tb-title { display: block; font-weight: 700; font-size: var(--tb-fs, 1.05rem); letter-spacing: .02em; color: var(--tb-tc); }
[data-block="textbanner"] .b-tb-sub { display: block; margin-top: .2em; font-size: var(--tb-fs2, .82rem); opacity: .9; }
[data-block="textbanner"] .b-tb-sub:empty, [data-block="textbanner"] .b-tb-btn:empty, [data-block="textbanner"] .b-tb-meta:empty { display: none; }
[data-block="textbanner"] .b-tb-meta { flex: none; font-size: .72rem; padding: .15em .55em; border-radius: 4px; background: rgba(255,255,255,.22); white-space: nowrap; }
[data-block="textbanner"]:is([data-fill="tint"], [data-fill="white"]) .b-tb-meta { background: color-mix(in srgb, var(--tb-c) 14%, #fff); }
/* アイコン: data-icon の SVG を形（mask）にして、文字の色で塗る */
[data-block="textbanner"] .b-tb-icon { flex: none; width: var(--tb-isz, 2.4em); height: var(--tb-isz, 2.4em); border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; }
[data-block="textbanner"]:is([data-fill="tint"], [data-fill="white"]) .b-tb-icon { background: var(--tb-c); color: var(--tb-ink); }
[data-block="textbanner"] .b-tb-icon::before { content: ""; width: 56%; height: 56%; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
[data-block="textbanner"]:not([data-icon]) .b-tb-icon, [data-block="textbanner"][data-icon=""] .b-tb-icon { display: none; }
/* 形: 枠・帯（太さは --tb-line）・丸いボタン */
[data-block="textbanner"][data-shape="line"] { --tb-sh-in: inset 0 0 0 var(--tb-line, 2px) var(--tb-lc); }
[data-block="textbanner"][data-shape="left"] { --tb-sh-in: inset var(--tb-line, 5px) 0 0 var(--tb-lc); --tb-line-l: var(--tb-line, 5px); }
[data-block="textbanner"][data-shape="right"] { --tb-sh-in: inset calc(var(--tb-line, 5px) * -1) 0 0 var(--tb-lc); --tb-line-r: var(--tb-line, 5px); }
[data-block="textbanner"][data-shape="top"] { --tb-sh-in: inset 0 var(--tb-line, 5px) 0 var(--tb-lc); }
[data-block="textbanner"][data-shape="bottom"] { --tb-sh-in: inset 0 calc(var(--tb-line, 5px) * -1) 0 var(--tb-lc); }
[data-block="textbanner"][data-shape="top"] > * { padding-top: calc(var(--tb-py, .95em) + var(--tb-line, 5px)); }
[data-block="textbanner"][data-shape="bottom"] > * { padding-bottom: calc(var(--tb-py, .95em) + var(--tb-line, 5px)); }
[data-block="textbanner"][data-shape="pill"] { container-type: normal; width: fit-content; max-width: 100%; margin-inline: auto; }   /* 目印がボタンの右上に付くよう、ボタンの幅にする */
[data-block="textbanner"][data-shape="pill"]:not([data-align="center"]) { margin-left: 0; }
[data-block="textbanner"][data-shape="pill"] > * { border-radius: 999px; padding-block: var(--tb-py, .6em); padding-left: calc(var(--tb-px, 1.1em) + .3em); }
/* 背景の模様（--tb-pat。mask にして、文字の色か選んだ色で薄く塗る。濃さは --tb-po） */
[data-block="textbanner"][data-bg]:not([data-bg=""], [data-bg="photo"]) > *::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  background: var(--tb-pc); opacity: var(--tb-po, .18);
  -webkit-mask: var(--tb-pat) var(--tb-pat-pos, 0 0) / var(--tb-pat-size, auto) var(--tb-pat-rep, repeat); mask: var(--tb-pat) var(--tb-pat-pos, 0 0) / var(--tb-pat-size, auto) var(--tb-pat-rep, repeat); }
/* 背景の写真（暗くして白い文字。暗さは --tb-dim） */
[data-block="textbanner"][data-bg="photo"] { --tb-fg: #fff; --tb-tc: #fff; }
[data-block="textbanner"][data-bg="photo"] > * { background: linear-gradient(90deg, rgb(0 0 0 / var(--tb-dim, .6)), rgb(0 0 0 / calc(var(--tb-dim, .6) * .4))), var(--tb-img, none) center / cover no-repeat, #333;
  min-height: 6.5em; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
[data-block="textbanner"][data-bg="photo"] .b-tb-icon { background: rgba(255,255,255,.2); color: #fff; }
/* 文字の位置 */
[data-block="textbanner"][data-align="center"]:not([data-shape="pill"]) > * { justify-content: center; text-align: center; }
[data-block="textbanner"][data-align="center"]:not([data-shape="pill"], [data-type="number"], [data-type="cta"]) > a { padding-left: calc(var(--tb-px, 1.1em) + 1.5em + var(--tb-line-l, 0px)); }   /* 右の矢印の分 */
/* 種類: 電話ボタン（大きな番号） */
[data-block="textbanner"][data-type="phone"] .b-tb-title { font-size: var(--tb-fs, min(1.45rem, 10.5cqi)); letter-spacing: .04em; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* 種類: 大きな数字（実績など）。数字の下に説明 */
[data-block="textbanner"][data-type="number"] > * { flex-direction: column; text-align: center; justify-content: center; gap: .1em; padding: var(--tb-py, 1.1em) var(--tb-px, 1em); }
[data-block="textbanner"][data-type="number"] > a::after { display: none; }
[data-block="textbanner"][data-type="number"] .b-tb-title { font-size: var(--tb-fs, 2.1rem); line-height: 1.15; font-variant-numeric: tabular-nums; }
/* 種類: 呼びかけの帯（幅いっぱい・中央・ボタン風の文字） */
[data-block="textbanner"][data-type="cta"] > * { flex-direction: column; text-align: center; justify-content: center; padding: var(--tb-py, 2em) var(--tb-px, 1.5em); gap: .3em; }
[data-block="textbanner"][data-type="cta"] > a::after { display: none; }
[data-block="textbanner"][data-type="cta"] .b-tb-title { font-size: var(--tb-fs, clamp(1rem, 6.5cqi, 1.6rem)); }
[data-block="textbanner"][data-type="cta"] .b-tb-btn { display: inline-block; margin-top: .9em; padding: .55em 1.8em; border-radius: 999px; background: var(--tb-fg); color: var(--tb-bg); font-weight: 700; font-size: .9rem; text-shadow: none; }
[data-block="textbanner"][data-type="cta"]:is([data-fill="tint"], [data-fill="white"]) .b-tb-btn { background: var(--tb-c); color: var(--tb-ink); }
[data-block="textbanner"][data-type="cta"][data-bg="photo"] .b-tb-btn { background: #fff; color: #222; }
[data-block="textbanner"][data-type="cta"] .b-tb-btn::after { content: " ›"; }
/* 目印（バッジ）: 右上。data-badge の文字を出す */
[data-block="textbanner"][data-badge]:not([data-badge=""])::after { content: attr(data-badge); position: absolute; top: -.55em; right: .7em; z-index: 1;
  padding: .12em .6em; border-radius: 999px; background: #e11d48; color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .04em; box-shadow: 0 1px 4px rgba(0,0,0,.2); }

/* ---- ボタンの列・タイル（tbgroup）: 文字のバナーを2〜4列に並べる。data-layout: row（ボタンの列）/ tile（タイル） ---- */
[data-block="tbgroup"] { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 12px; }
[data-block="tbgroup"][data-cols="2"] { --cols: 2; }
[data-block="tbgroup"][data-cols="4"] { --cols: 4; }
[data-block="tbgroup"] > [data-block="textbanner"] { margin: 0; }
[data-block="tbgroup"] > [data-block="textbanner"]:not([data-shape="pill"]) > * { height: 100%; box-sizing: border-box; }
[data-block="tbgroup"][data-layout="tile"] > [data-block="textbanner"] > * { flex-direction: column; text-align: center; justify-content: flex-start; padding: var(--tb-py, 1.4em) var(--tb-px, 1em); gap: .55em; }
[data-block="tbgroup"][data-layout="tile"] > [data-block="textbanner"] > a::after { display: none; }
[data-block="tbgroup"][data-layout="tile"] .b-tb-icon { width: var(--tb-isz, 3.4em); height: var(--tb-isz, 3.4em); }
@media (max-width: 640px) {
  [data-block="tbgroup"][data-layout="row"], [data-block="tbgroup"]:not([data-layout]) { grid-template-columns: 1fr; }
  [data-block="tbgroup"][data-layout="tile"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 狭い所（サイドの列・タイルの1マス）: 字が縦に1字ずつにならないよう、詰める */
@container (max-width: 280px) {
  [data-block="textbanner"] > * { flex-wrap: wrap; gap: .6em; }
  [data-block="textbanner"] > a { padding-left: calc(min(var(--tb-px, 1.1em), .9em) + var(--tb-line-l, 0px)); padding-right: calc(min(var(--tb-px, 1.1em), .9em) + 1.1em + var(--tb-line-r, 0px)); }
  [data-block="textbanner"] > a::after { right: calc(min(var(--tb-px, 1.1em), .9em) + var(--tb-line-r, 0px)); }
  [data-block="textbanner"] .b-tb-icon { width: var(--tb-isz, 2em); height: var(--tb-isz, 2em); }
  [data-block="textbanner"] .b-tb-body { flex: 1 1 5.5em; }
  [data-block="textbanner"][data-type="phone"] .b-tb-icon { display: none; }
  [data-block="textbanner"][data-type="phone"] .b-tb-title { letter-spacing: 0; }
  [data-block="textbanner"][data-type="number"] .b-tb-title { font-size: var(--tb-fs, 1.7rem); }
  :is([data-type="number"], [data-type="cta"])[data-block="textbanner"] > * { flex-wrap: nowrap; padding-inline: min(var(--tb-px, .8em), .8em); }
  :is([data-type="number"], [data-type="cta"])[data-block="textbanner"] .b-tb-body { flex: none; }
  [data-block="textbanner"][data-type="cta"] > * { padding-block: min(var(--tb-py, 1.4em), 1.4em); }
  [data-block="tbgroup"][data-layout="tile"] > [data-block="textbanner"] > * { flex-wrap: nowrap; padding: min(var(--tb-py, 1em), 1em) .4em; }
  [data-block="tbgroup"][data-layout="tile"] .b-tb-icon { width: var(--tb-isz, 2.6em); height: var(--tb-isz, 2.6em); }
  [data-block="tbgroup"][data-layout="tile"] .b-tb-body { flex: none; }
  [data-block="tbgroup"][data-layout="tile"] .b-tb-title { font-size: var(--tb-fs, .95rem); }
}
.side-area [data-block="tbgroup"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.side-area [data-block="tbgroup"][data-layout="row"] { grid-template-columns: 1fr; }

/* ---- 文字のバナーのアイコン・背景の模様（自動で作る所。cms/tools/build-tb.mjs が tb/icons.json・tb/bg.json から書く。手で直さない） ---- */
/* tb:start */
[data-block="textbanner"][data-icon="phone"] .b-tb-icon { --ic: url("tb/icons/phone.svg"); }
[data-block="textbanner"][data-icon="smartphone"] .b-tb-icon { --ic: url("tb/icons/smartphone.svg"); }
[data-block="textbanner"][data-icon="mail"] .b-tb-icon { --ic: url("tb/icons/mail.svg"); }
[data-block="textbanner"][data-icon="send"] .b-tb-icon { --ic: url("tb/icons/send.svg"); }
[data-block="textbanner"][data-icon="message-circle"] .b-tb-icon { --ic: url("tb/icons/message-circle.svg"); }
[data-block="textbanner"][data-icon="messages-square"] .b-tb-icon { --ic: url("tb/icons/messages-square.svg"); }
[data-block="textbanner"][data-icon="headset"] .b-tb-icon { --ic: url("tb/icons/headset.svg"); }
[data-block="textbanner"][data-icon="printer"] .b-tb-icon { --ic: url("tb/icons/printer.svg"); }
[data-block="textbanner"][data-icon="contact"] .b-tb-icon { --ic: url("tb/icons/contact.svg"); }
[data-block="textbanner"][data-icon="at-sign"] .b-tb-icon { --ic: url("tb/icons/at-sign.svg"); }
[data-block="textbanner"][data-icon="pdf"] .b-tb-icon { --ic: url("tb/icons/pdf.svg"); }
[data-block="textbanner"][data-icon="download"] .b-tb-icon { --ic: url("tb/icons/download.svg"); }
[data-block="textbanner"][data-icon="file-spreadsheet"] .b-tb-icon { --ic: url("tb/icons/file-spreadsheet.svg"); }
[data-block="textbanner"][data-icon="clipboard-list"] .b-tb-icon { --ic: url("tb/icons/clipboard-list.svg"); }
[data-block="textbanner"][data-icon="notebook-pen"] .b-tb-icon { --ic: url("tb/icons/notebook-pen.svg"); }
[data-block="textbanner"][data-icon="book"] .b-tb-icon { --ic: url("tb/icons/book.svg"); }
[data-block="textbanner"][data-icon="library"] .b-tb-icon { --ic: url("tb/icons/library.svg"); }
[data-block="textbanner"][data-icon="newspaper"] .b-tb-icon { --ic: url("tb/icons/newspaper.svg"); }
[data-block="textbanner"][data-icon="folder-open"] .b-tb-icon { --ic: url("tb/icons/folder-open.svg"); }
[data-block="textbanner"][data-icon="paperclip"] .b-tb-icon { --ic: url("tb/icons/paperclip.svg"); }
[data-block="textbanner"][data-icon="files"] .b-tb-icon { --ic: url("tb/icons/files.svg"); }
[data-block="textbanner"][data-icon="scroll-text"] .b-tb-icon { --ic: url("tb/icons/scroll-text.svg"); }
[data-block="textbanner"][data-icon="calendar"] .b-tb-icon { --ic: url("tb/icons/calendar.svg"); }
[data-block="textbanner"][data-icon="calendar-days"] .b-tb-icon { --ic: url("tb/icons/calendar-days.svg"); }
[data-block="textbanner"][data-icon="calendar-check"] .b-tb-icon { --ic: url("tb/icons/calendar-check.svg"); }
[data-block="textbanner"][data-icon="clock"] .b-tb-icon { --ic: url("tb/icons/clock.svg"); }
[data-block="textbanner"][data-icon="alarm-clock"] .b-tb-icon { --ic: url("tb/icons/alarm-clock.svg"); }
[data-block="textbanner"][data-icon="hourglass"] .b-tb-icon { --ic: url("tb/icons/hourglass.svg"); }
[data-block="textbanner"][data-icon="timer"] .b-tb-icon { --ic: url("tb/icons/timer.svg"); }
[data-block="textbanner"][data-icon="map"] .b-tb-icon { --ic: url("tb/icons/map.svg"); }
[data-block="textbanner"][data-icon="map"] .b-tb-icon { --ic: url("tb/icons/map.svg"); }
[data-block="textbanner"][data-icon="navigation"] .b-tb-icon { --ic: url("tb/icons/navigation.svg"); }
[data-block="textbanner"][data-icon="building"] .b-tb-icon { --ic: url("tb/icons/building.svg"); }
[data-block="textbanner"][data-icon="building-2"] .b-tb-icon { --ic: url("tb/icons/building-2.svg"); }
[data-block="textbanner"][data-icon="home"] .b-tb-icon { --ic: url("tb/icons/home.svg"); }
[data-block="textbanner"][data-icon="store"] .b-tb-icon { --ic: url("tb/icons/store.svg"); }
[data-block="textbanner"][data-icon="school"] .b-tb-icon { --ic: url("tb/icons/school.svg"); }
[data-block="textbanner"][data-icon="landmark"] .b-tb-icon { --ic: url("tb/icons/landmark.svg"); }
[data-block="textbanner"][data-icon="hospital"] .b-tb-icon { --ic: url("tb/icons/hospital.svg"); }
[data-block="textbanner"][data-icon="factory"] .b-tb-icon { --ic: url("tb/icons/factory.svg"); }
[data-block="textbanner"][data-icon="hotel"] .b-tb-icon { --ic: url("tb/icons/hotel.svg"); }
[data-block="textbanner"][data-icon="church"] .b-tb-icon { --ic: url("tb/icons/church.svg"); }
[data-block="textbanner"][data-icon="car"] .b-tb-icon { --ic: url("tb/icons/car.svg"); }
[data-block="textbanner"][data-icon="bus"] .b-tb-icon { --ic: url("tb/icons/bus.svg"); }
[data-block="textbanner"][data-icon="train-front"] .b-tb-icon { --ic: url("tb/icons/train-front.svg"); }
[data-block="textbanner"][data-icon="bike"] .b-tb-icon { --ic: url("tb/icons/bike.svg"); }
[data-block="textbanner"][data-icon="plane"] .b-tb-icon { --ic: url("tb/icons/plane.svg"); }
[data-block="textbanner"][data-icon="ship"] .b-tb-icon { --ic: url("tb/icons/ship.svg"); }
[data-block="textbanner"][data-icon="circle-parking"] .b-tb-icon { --ic: url("tb/icons/circle-parking.svg"); }
[data-block="textbanner"][data-icon="person"] .b-tb-icon { --ic: url("tb/icons/person.svg"); }
[data-block="textbanner"][data-icon="users"] .b-tb-icon { --ic: url("tb/icons/users.svg"); }
[data-block="textbanner"][data-icon="user-plus"] .b-tb-icon { --ic: url("tb/icons/user-plus.svg"); }
[data-block="textbanner"][data-icon="user-check"] .b-tb-icon { --ic: url("tb/icons/user-check.svg"); }
[data-block="textbanner"][data-icon="handshake"] .b-tb-icon { --ic: url("tb/icons/handshake.svg"); }
[data-block="textbanner"][data-icon="baby"] .b-tb-icon { --ic: url("tb/icons/baby.svg"); }
[data-block="textbanner"][data-icon="accessibility"] .b-tb-icon { --ic: url("tb/icons/accessibility.svg"); }
[data-block="textbanner"][data-icon="person-standing"] .b-tb-icon { --ic: url("tb/icons/person-standing.svg"); }
[data-block="textbanner"][data-icon="briefcase"] .b-tb-icon { --ic: url("tb/icons/briefcase.svg"); }
[data-block="textbanner"][data-icon="id-card"] .b-tb-icon { --ic: url("tb/icons/id-card.svg"); }
[data-block="textbanner"][data-icon="contact-round"] .b-tb-icon { --ic: url("tb/icons/contact-round.svg"); }
[data-block="textbanner"][data-icon="hand-heart"] .b-tb-icon { --ic: url("tb/icons/hand-heart.svg"); }
[data-block="textbanner"][data-icon="info"] .b-tb-icon { --ic: url("tb/icons/info.svg"); }
[data-block="textbanner"][data-icon="alert"] .b-tb-icon { --ic: url("tb/icons/alert.svg"); }
[data-block="textbanner"][data-icon="circle-alert"] .b-tb-icon { --ic: url("tb/icons/circle-alert.svg"); }
[data-block="textbanner"][data-icon="bell"] .b-tb-icon { --ic: url("tb/icons/bell.svg"); }
[data-block="textbanner"][data-icon="megaphone"] .b-tb-icon { --ic: url("tb/icons/megaphone.svg"); }
[data-block="textbanner"][data-icon="question"] .b-tb-icon { --ic: url("tb/icons/question.svg"); }
[data-block="textbanner"][data-icon="lightbulb"] .b-tb-icon { --ic: url("tb/icons/lightbulb.svg"); }
[data-block="textbanner"][data-icon="sparkles"] .b-tb-icon { --ic: url("tb/icons/sparkles.svg"); }
[data-block="textbanner"][data-icon="badge-check"] .b-tb-icon { --ic: url("tb/icons/badge-check.svg"); }
[data-block="textbanner"][data-icon="shield-check"] .b-tb-icon { --ic: url("tb/icons/shield-check.svg"); }
[data-block="textbanner"][data-icon="flag"] .b-tb-icon { --ic: url("tb/icons/flag.svg"); }
[data-block="textbanner"][data-icon="pin"] .b-tb-icon { --ic: url("tb/icons/pin.svg"); }
[data-block="textbanner"][data-icon="rss"] .b-tb-icon { --ic: url("tb/icons/rss.svg"); }
[data-block="textbanner"][data-icon="ext"] .b-tb-icon { --ic: url("tb/icons/ext.svg"); }
[data-block="textbanner"][data-icon="link"] .b-tb-icon { --ic: url("tb/icons/link.svg"); }
[data-block="textbanner"][data-icon="search"] .b-tb-icon { --ic: url("tb/icons/search.svg"); }
[data-block="textbanner"][data-icon="arrow-right"] .b-tb-icon { --ic: url("tb/icons/arrow-right.svg"); }
[data-block="textbanner"][data-icon="circle-arrow-right"] .b-tb-icon { --ic: url("tb/icons/circle-arrow-right.svg"); }
[data-block="textbanner"][data-icon="chevrons-right"] .b-tb-icon { --ic: url("tb/icons/chevrons-right.svg"); }
[data-block="textbanner"][data-icon="mouse-pointer-click"] .b-tb-icon { --ic: url("tb/icons/mouse-pointer-click.svg"); }
[data-block="textbanner"][data-icon="log-in"] .b-tb-icon { --ic: url("tb/icons/log-in.svg"); }
[data-block="textbanner"][data-icon="lock"] .b-tb-icon { --ic: url("tb/icons/lock.svg"); }
[data-block="textbanner"][data-icon="key"] .b-tb-icon { --ic: url("tb/icons/key.svg"); }
[data-block="textbanner"][data-icon="settings"] .b-tb-icon { --ic: url("tb/icons/settings.svg"); }
[data-block="textbanner"][data-icon="share-2"] .b-tb-icon { --ic: url("tb/icons/share-2.svg"); }
[data-block="textbanner"][data-icon="qr-code"] .b-tb-icon { --ic: url("tb/icons/qr-code.svg"); }
[data-block="textbanner"][data-icon="list"] .b-tb-icon { --ic: url("tb/icons/list.svg"); }
[data-block="textbanner"][data-icon="grid-3x3"] .b-tb-icon { --ic: url("tb/icons/grid-3x3.svg"); }
[data-block="textbanner"][data-icon="star"] .b-tb-icon { --ic: url("tb/icons/star.svg"); }
[data-block="textbanner"][data-icon="heart"] .b-tb-icon { --ic: url("tb/icons/heart.svg"); }
[data-block="textbanner"][data-icon="thumbs-up"] .b-tb-icon { --ic: url("tb/icons/thumbs-up.svg"); }
[data-block="textbanner"][data-icon="award"] .b-tb-icon { --ic: url("tb/icons/award.svg"); }
[data-block="textbanner"][data-icon="trophy"] .b-tb-icon { --ic: url("tb/icons/trophy.svg"); }
[data-block="textbanner"][data-icon="crown"] .b-tb-icon { --ic: url("tb/icons/crown.svg"); }
[data-block="textbanner"][data-icon="gift"] .b-tb-icon { --ic: url("tb/icons/gift.svg"); }
[data-block="textbanner"][data-icon="party-popper"] .b-tb-icon { --ic: url("tb/icons/party-popper.svg"); }
[data-block="textbanner"][data-icon="check"] .b-tb-icon { --ic: url("tb/icons/check.svg"); }
[data-block="textbanner"][data-icon="circle-check"] .b-tb-icon { --ic: url("tb/icons/circle-check.svg"); }
[data-block="textbanner"][data-icon="circle-x"] .b-tb-icon { --ic: url("tb/icons/circle-x.svg"); }
[data-block="textbanner"][data-icon="ban"] .b-tb-icon { --ic: url("tb/icons/ban.svg"); }
[data-block="textbanner"][data-icon="medal"] .b-tb-icon { --ic: url("tb/icons/medal.svg"); }
[data-block="textbanner"][data-icon="target"] .b-tb-icon { --ic: url("tb/icons/target.svg"); }
[data-block="textbanner"][data-icon="video"] .b-tb-icon { --ic: url("tb/icons/video.svg"); }
[data-block="textbanner"][data-icon="play"] .b-tb-icon { --ic: url("tb/icons/play.svg"); }
[data-block="textbanner"][data-icon="circle-play"] .b-tb-icon { --ic: url("tb/icons/circle-play.svg"); }
[data-block="textbanner"][data-icon="camera"] .b-tb-icon { --ic: url("tb/icons/camera.svg"); }
[data-block="textbanner"][data-icon="image"] .b-tb-icon { --ic: url("tb/icons/image.svg"); }
[data-block="textbanner"][data-icon="images"] .b-tb-icon { --ic: url("tb/icons/images.svg"); }
[data-block="textbanner"][data-icon="music"] .b-tb-icon { --ic: url("tb/icons/music.svg"); }
[data-block="textbanner"][data-icon="mic"] .b-tb-icon { --ic: url("tb/icons/mic.svg"); }
[data-block="textbanner"][data-icon="tv"] .b-tb-icon { --ic: url("tb/icons/tv.svg"); }
[data-block="textbanner"][data-icon="monitor"] .b-tb-icon { --ic: url("tb/icons/monitor.svg"); }
[data-block="textbanner"][data-icon="radio"] .b-tb-icon { --ic: url("tb/icons/radio.svg"); }
[data-block="textbanner"][data-icon="film"] .b-tb-icon { --ic: url("tb/icons/film.svg"); }
[data-block="textbanner"][data-icon="banknote"] .b-tb-icon { --ic: url("tb/icons/banknote.svg"); }
[data-block="textbanner"][data-icon="wallet"] .b-tb-icon { --ic: url("tb/icons/wallet.svg"); }
[data-block="textbanner"][data-icon="calculator"] .b-tb-icon { --ic: url("tb/icons/calculator.svg"); }
[data-block="textbanner"][data-icon="receipt"] .b-tb-icon { --ic: url("tb/icons/receipt.svg"); }
[data-block="textbanner"][data-icon="coins"] .b-tb-icon { --ic: url("tb/icons/coins.svg"); }
[data-block="textbanner"][data-icon="piggy-bank"] .b-tb-icon { --ic: url("tb/icons/piggy-bank.svg"); }
[data-block="textbanner"][data-icon="chart-column"] .b-tb-icon { --ic: url("tb/icons/chart-column.svg"); }
[data-block="textbanner"][data-icon="trending-up"] .b-tb-icon { --ic: url("tb/icons/trending-up.svg"); }
[data-block="textbanner"][data-icon="percent"] .b-tb-icon { --ic: url("tb/icons/percent.svg"); }
[data-block="textbanner"][data-icon="scale"] .b-tb-icon { --ic: url("tb/icons/scale.svg"); }
[data-block="textbanner"][data-icon="gavel"] .b-tb-icon { --ic: url("tb/icons/gavel.svg"); }
[data-block="textbanner"][data-icon="stamp"] .b-tb-icon { --ic: url("tb/icons/stamp.svg"); }
[data-block="textbanner"][data-icon="pen-line"] .b-tb-icon { --ic: url("tb/icons/pen-line.svg"); }
[data-block="textbanner"][data-icon="credit-card"] .b-tb-icon { --ic: url("tb/icons/credit-card.svg"); }
[data-block="textbanner"][data-icon="japanese-yen"] .b-tb-icon { --ic: url("tb/icons/japanese-yen.svg"); }
[data-block="textbanner"][data-icon="graduation-cap"] .b-tb-icon { --ic: url("tb/icons/graduation-cap.svg"); }
[data-block="textbanner"][data-icon="pencil"] .b-tb-icon { --ic: url("tb/icons/pencil.svg"); }
[data-block="textbanner"][data-icon="presentation"] .b-tb-icon { --ic: url("tb/icons/presentation.svg"); }
[data-block="textbanner"][data-icon="globe"] .b-tb-icon { --ic: url("tb/icons/globe.svg"); }
[data-block="textbanner"][data-icon="languages"] .b-tb-icon { --ic: url("tb/icons/languages.svg"); }
[data-block="textbanner"][data-icon="laptop"] .b-tb-icon { --ic: url("tb/icons/laptop.svg"); }
[data-block="textbanner"][data-icon="wifi"] .b-tb-icon { --ic: url("tb/icons/wifi.svg"); }
[data-block="textbanner"][data-icon="brain"] .b-tb-icon { --ic: url("tb/icons/brain.svg"); }
[data-block="textbanner"][data-icon="puzzle"] .b-tb-icon { --ic: url("tb/icons/puzzle.svg"); }
[data-block="textbanner"][data-icon="utensils"] .b-tb-icon { --ic: url("tb/icons/utensils.svg"); }
[data-block="textbanner"][data-icon="coffee"] .b-tb-icon { --ic: url("tb/icons/coffee.svg"); }
[data-block="textbanner"][data-icon="shopping-cart"] .b-tb-icon { --ic: url("tb/icons/shopping-cart.svg"); }
[data-block="textbanner"][data-icon="shopping-bag"] .b-tb-icon { --ic: url("tb/icons/shopping-bag.svg"); }
[data-block="textbanner"][data-icon="shirt"] .b-tb-icon { --ic: url("tb/icons/shirt.svg"); }
[data-block="textbanner"][data-icon="stethoscope"] .b-tb-icon { --ic: url("tb/icons/stethoscope.svg"); }
[data-block="textbanner"][data-icon="pill"] .b-tb-icon { --ic: url("tb/icons/pill.svg"); }
[data-block="textbanner"][data-icon="heart-pulse"] .b-tb-icon { --ic: url("tb/icons/heart-pulse.svg"); }
[data-block="textbanner"][data-icon="dog"] .b-tb-icon { --ic: url("tb/icons/dog.svg"); }
[data-block="textbanner"][data-icon="cat"] .b-tb-icon { --ic: url("tb/icons/cat.svg"); }
[data-block="textbanner"][data-icon="recycle"] .b-tb-icon { --ic: url("tb/icons/recycle.svg"); }
[data-block="textbanner"][data-icon="trash-2"] .b-tb-icon { --ic: url("tb/icons/trash-2.svg"); }
[data-block="textbanner"][data-icon="bath"] .b-tb-icon { --ic: url("tb/icons/bath.svg"); }
[data-block="textbanner"][data-icon="bed"] .b-tb-icon { --ic: url("tb/icons/bed.svg"); }
[data-block="textbanner"][data-icon="sofa"] .b-tb-icon { --ic: url("tb/icons/sofa.svg"); }
[data-block="textbanner"][data-icon="wrench"] .b-tb-icon { --ic: url("tb/icons/wrench.svg"); }
[data-block="textbanner"][data-icon="hammer"] .b-tb-icon { --ic: url("tb/icons/hammer.svg"); }
[data-block="textbanner"][data-icon="paintbrush"] .b-tb-icon { --ic: url("tb/icons/paintbrush.svg"); }
[data-block="textbanner"][data-icon="shield"] .b-tb-icon { --ic: url("tb/icons/shield.svg"); }
[data-block="textbanner"][data-icon="siren"] .b-tb-icon { --ic: url("tb/icons/siren.svg"); }
[data-block="textbanner"][data-icon="flame"] .b-tb-icon { --ic: url("tb/icons/flame.svg"); }
[data-block="textbanner"][data-icon="life-buoy"] .b-tb-icon { --ic: url("tb/icons/life-buoy.svg"); }
[data-block="textbanner"][data-icon="construction"] .b-tb-icon { --ic: url("tb/icons/construction.svg"); }
[data-block="textbanner"][data-icon="hard-hat"] .b-tb-icon { --ic: url("tb/icons/hard-hat.svg"); }
[data-block="textbanner"][data-icon="umbrella"] .b-tb-icon { --ic: url("tb/icons/umbrella.svg"); }
[data-block="textbanner"][data-icon="first-aid"] .b-tb-icon { --ic: url("tb/icons/first-aid.svg"); }
[data-block="textbanner"][data-icon="sun"] .b-tb-icon { --ic: url("tb/icons/sun.svg"); }
[data-block="textbanner"][data-icon="cloud-rain"] .b-tb-icon { --ic: url("tb/icons/cloud-rain.svg"); }
[data-block="textbanner"][data-icon="snowflake"] .b-tb-icon { --ic: url("tb/icons/snowflake.svg"); }
[data-block="textbanner"][data-icon="leaf"] .b-tb-icon { --ic: url("tb/icons/leaf.svg"); }
[data-block="textbanner"][data-icon="flower"] .b-tb-icon { --ic: url("tb/icons/flower.svg"); }
[data-block="textbanner"][data-icon="tree-pine"] .b-tb-icon { --ic: url("tb/icons/tree-pine.svg"); }
[data-block="textbanner"][data-icon="sprout"] .b-tb-icon { --ic: url("tb/icons/sprout.svg"); }
[data-block="textbanner"][data-icon="mountain"] .b-tb-icon { --ic: url("tb/icons/mountain.svg"); }
[data-block="textbanner"][data-icon="waves"] .b-tb-icon { --ic: url("tb/icons/waves.svg"); }
[data-block="textbanner"][data-icon="fish"] .b-tb-icon { --ic: url("tb/icons/fish.svg"); }
[data-block="textbanner"][data-icon="apple"] .b-tb-icon { --ic: url("tb/icons/apple.svg"); }
[data-block="textbanner"][data-icon="wheat"] .b-tb-icon { --ic: url("tb/icons/wheat.svg"); }
[data-block="textbanner"][data-bg="seigaiha"] { --tb-pat: url("tb/bg/seigaiha.svg"); --tb-pat-size: 40px 20px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="shippo"] { --tb-pat: url("tb/bg/shippo.svg"); --tb-pat-size: 32px 32px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="asanoha"] { --tb-pat: url("tb/bg/asanoha.svg"); --tb-pat-size: 24px 41.569px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="kikko"] { --tb-pat: url("tb/bg/kikko.svg"); --tb-pat-size: 20.785px 36px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="ichimatsu"] { --tb-pat: url("tb/bg/ichimatsu.svg"); --tb-pat-size: 32px 32px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="uroko"] { --tb-pat: url("tb/bg/uroko.svg"); --tb-pat-size: 32px 28px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="hishi"] { --tb-pat: url("tb/bg/hishi.svg"); --tb-pat-size: 24px 32px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="yagasuri"] { --tb-pat: url("tb/bg/yagasuri.svg"); --tb-pat-size: 24px 48px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="sakura"] { --tb-pat: url("tb/bg/sakura.svg"); --tb-pat-size: 160px 160px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="dots"] { --tb-pat: url("tb/bg/dots.svg"); --tb-pat-size: 16px 16px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="dots-l"] { --tb-pat: url("tb/bg/dots-l.svg"); --tb-pat-size: 36px 36px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="stripes"] { --tb-pat: url("tb/bg/stripes.svg"); --tb-pat-size: 16px 16px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="stripes-thin"] { --tb-pat: url("tb/bg/stripes-thin.svg"); --tb-pat-size: 10px 10px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="border"] { --tb-pat: url("tb/bg/border.svg"); --tb-pat-size: 8px 16px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="pinstripe"] { --tb-pat: url("tb/bg/pinstripe.svg"); --tb-pat-size: 12px 8px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="grid"] { --tb-pat: url("tb/bg/grid.svg"); --tb-pat-size: 24px 24px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="cross"] { --tb-pat: url("tb/bg/cross.svg"); --tb-pat-size: 28px 28px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="zigzag"] { --tb-pat: url("tb/bg/zigzag.svg"); --tb-pat-size: 24px 12px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="wave-tile"] { --tb-pat: url("tb/bg/wave-tile.svg"); --tb-pat-size: 40px 14px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="rings"] { --tb-pat: url("tb/bg/rings.svg"); --tb-pat-size: 40px 40px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="diamonds"] { --tb-pat: url("tb/bg/diamonds.svg"); --tb-pat-size: 20px 20px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="triangles"] { --tb-pat: url("tb/bg/triangles.svg"); --tb-pat-size: 30px 26px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="plus-dots"] { --tb-pat: url("tb/bg/plus-dots.svg"); --tb-pat-size: 40px 40px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="confetti"] { --tb-pat: url("tb/bg/confetti.svg"); --tb-pat-size: 200px 200px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="stars"] { --tb-pat: url("tb/bg/stars.svg"); --tb-pat-size: 160px 160px; --tb-pat-rep: repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="wave-bottom"] { --tb-pat: url("tb/bg/wave-bottom.svg"); --tb-pat-size: 100% 45%; --tb-pat-rep: no-repeat; --tb-pat-pos: bottom; }
[data-block="textbanner"][data-bg="waves"] { --tb-pat: url("tb/bg/waves.svg"); --tb-pat-size: 100% 60%; --tb-pat-rep: no-repeat; --tb-pat-pos: bottom; }
[data-block="textbanner"][data-bg="mountains"] { --tb-pat: url("tb/bg/mountains.svg"); --tb-pat-size: 100% 60%; --tb-pat-rep: no-repeat; --tb-pat-pos: bottom; }
[data-block="textbanner"][data-bg="circles-right"] { --tb-pat: url("tb/bg/circles-right.svg"); --tb-pat-size: auto 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: right center; }
[data-block="textbanner"][data-bg="bubbles"] { --tb-pat: url("tb/bg/bubbles.svg"); --tb-pat-size: cover; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="diagonal"] { --tb-pat: url("tb/bg/diagonal.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="ribbons"] { --tb-pat: url("tb/bg/ribbons.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="glow"] { --tb-pat: url("tb/bg/glow.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="fade"] { --tb-pat: url("tb/bg/fade.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="rays"] { --tb-pat: url("tb/bg/rays.svg"); --tb-pat-size: cover; --tb-pat-rep: no-repeat; --tb-pat-pos: left bottom; }
[data-block="textbanner"][data-bg="curve"] { --tb-pat: url("tb/bg/curve.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
[data-block="textbanner"][data-bg="corner-dots"] { --tb-pat: url("tb/bg/corner-dots.svg"); --tb-pat-size: auto 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: right top; }
[data-block="textbanner"][data-bg="frame"] { --tb-pat: url("tb/bg/frame.svg"); --tb-pat-size: 100% 100%; --tb-pat-rep: no-repeat; --tb-pat-pos: 0 0; }
/* tb:end */
