/* ブース装飾ページ */
:root {
  --bk-blue: #158add;
  --bk-blue-light: #46aaff;
  --bk-blue-sky: #5ccdff;
  --bk-blue-pale: #eff8ff;
  --bk-pink: #ff6796;
  --bk-pink-light: #ffb3cb;
  --bk-pink-pale: #ffedf1;
  --bk-yellow: #fff184;
  --bk-red: #ff0000;
  --bk-black: #000;
  --bk-formal: #3681C0;
  --bk-gray: #707070;
  --bk-gray-pale: #f5f5f5;
  --bk-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --bk-max: 1200px;
}

.bk { font-family: var(--bk-font); color: var(--bk-black); line-height: 1.6; font-size: 16px; font-weight: 700; overflow-x: clip; }
.bk *, .bk *::before, .bk *::after { box-sizing: border-box; }
.bk img { max-width: 100%; height: auto; display: block; }
.bk a { color: inherit; text-decoration: none; }
.bk button { font-family: inherit; cursor: pointer; border: 0; background: none; color: inherit; font-weight: inherit; }
.bk p { margin: 0; }
.bk .inner { max-width: var(--bk-max); margin: 0 auto; padding: 0 40px; }
.bk .sec { padding: 50px 0; }
.bk .bg-yellow { background: var(--bk-yellow); }
.bk .bg-blue { background: var(--bk-blue); color: #fff; }
.bk .bg-pink-pale { background: var(--bk-pink-pale); }
.bk .bg-gray { background: var(--bk-gray-pale); }
.bk .bg-black { background: var(--bk-black); color: #fff; }
.bk .accent-blue { color: var(--bk-blue); }
.bk .accent-pink { color: var(--bk-pink); }
.bk .accent-yellow { color: var(--bk-yellow); }
.bk .marker { background: linear-gradient(transparent 0, var(--bk-yellow) 0); padding: 2px 8px; }
.bk .note { font-size: 14px; color: #222; text-align: center; line-height: 1.7; font-weight: 500; }
.bk .center { text-align: center; }
.bk .sp-only { display: none; }
@media (max-width: 767px) { .bk .sp-only { display: block; } .bk .pc-only { display: none; } .bk .sec { padding: 36px 0; } .bk .inner { padding: 0 16px; } }

/* 見出し */
.bk .h2 { font-size: 36px; font-weight: 900; text-align: center; line-height: 1.3; margin: 0 0 24px; letter-spacing: .01em; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }
.bk .h2 .ico { width: 1em; height: 1em; flex: 0 0 auto; margin-right: .3em; }
.bk .h2 .big { font-size: 1.35em; }
.bk .lead { text-align: center; font-size: 20px; font-weight: 700; margin: -8px 0 20px; }
@media (max-width: 767px) { .bk .h2 { font-size: 24px; margin-bottom: 18px; } .bk .lead { font-size: 15px; } }

/* ボタン(汎用) */
.bk .btn { display: inline-flex; align-items: center; justify-content: center; gap: .3em; min-height: 44px; padding: 8px 28px; border-radius: 999px; font-weight: 700; font-size: 18px; line-height: 1.2; transition: transform .25s, box-shadow .25s, opacity .25s, background-color .25s, color .25s; }
.bk .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
.bk .btn:active { transform: translateY(1px); box-shadow: none; transition-duration: .08s; }
.bk .btn-blue { background: var(--bk-blue); color: #fff; }
.bk .btn-pink { background: var(--bk-pink); color: #fff; }
.bk .btn-red { background: var(--bk-red); color: #fff; }
.bk .btn-black { background: var(--bk-black); color: #fff; }
.bk .btn-white { background: #fff; color: var(--bk-black); }
.bk .btn-sm { min-height: 40px; padding: 6px 18px; font-size: 16px; }
.bk .btn-outline { background: #fff; color: var(--bk-gray); border: 1px solid #bbb; font-weight: 700; }

/* タグ(フィルタ) */
.bk .tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; margin: 0 0 24px; }
.bk .tag { border: 1.5px solid var(--bk-pink); color: var(--bk-pink); background: #fff; border-radius: 999px; padding: 4px 24px; font-size: 16px; font-weight: 500; line-height: 1.6; transition: background-color .25s, color .25s, transform .25s; }
.bk .tag.is-active, .bk .tag:hover { background: var(--bk-pink); color: #fff; }
.bk .tag:hover { transform: translateY(-2px); }
.bk .tags-blue .tag { border-color: var(--bk-blue); color: var(--bk-blue); font-size: 15px; padding: 2px 18px; }
.bk .tags-blue .tag.is-active, .bk .tags-blue .tag:hover { background: var(--bk-blue); color: #fff; }
@media (max-width: 767px) { .bk .tag { font-size: 13px; padding: 3px 14px; } }

/* ==== ファーストビュー ==== */
.bk-fv { position: relative; background: #fff; overflow: hidden; min-height: 450px; }
.bk-fv .inner { position: relative; height: 450px; padding: 0; max-width: 1400px; }
.bk-fv .fv-img { position: absolute; right: 0; top: 0; width: 790px; height: 450px; z-index: 1; }
.bk-fv .fv-img img { width: 100%; height: 100%; object-fit: cover; object-position: right center; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 42%); mask-image: linear-gradient(90deg, transparent 0, #000 42%); }
.bk-fv .fv-body { position: relative; z-index: 3; padding: 39px 0 0 max(35px, calc((100% - 1200px) / 2 + 35px)); width: auto; }
.bk-fv h1 { font-size: 125px; font-weight: 900; color: var(--bk-blue); line-height: 1; margin: 0 0 16px; letter-spacing: 0; white-space: nowrap; -webkit-text-stroke: 10px #fff; paint-order: stroke fill; }
.bk-fv .fv-txt { font-size: 20px; font-weight: 700; line-height: 32px; margin: 0 0 16px 8px; width: 440px; }
.bk-fv .fv-btns { display: flex; gap: 16px; margin-left: 8px; }
.bk-fv .fv-btn { display: flex; align-items: center; justify-content: center; text-align: center; width: 182px; height: 106px; border-radius: 20px; color: #fff; font-size: 30px; font-weight: 900; line-height: 1.15; letter-spacing: .02em; transition: transform .25s, box-shadow .25s; }
.bk-fv .fv-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.2); }
.bk-fv .fv-btn-blue { background: var(--bk-blue); }
.bk-fv .fv-btn-pink { background: var(--bk-pink); font-size: 27px; }
.bk-fv .fv-deco { position: absolute; right: 0; top: 0; width: 790px; height: 450px; z-index: 2; pointer-events: none; overflow: hidden; }
.bk-fv .fv-deco span { position: absolute; display: block; background: #7bc7ff; border-radius: 999px; }
.bk-fv .fv-deco .d1 { right: 19px; bottom: 238px; width: 108px; height: 600px; transform-origin: 50% 100%; transform: rotate(45deg); }
.bk-fv .fv-deco .d2 { right: 108px; bottom: 309px; width: 17px; height: 600px; transform-origin: 50% 100%; transform: rotate(45deg); }
.bk-fv .fv-deco .d3 { right: 68px; top: -9px; width: 43px; height: 43px; }
.bk-fv .fv-deco .d4 { right: 175px; top: 38px; width: 29px; height: 29px; }
.bk-fv .fv-deco .d5 { display: none; }
@media (max-width: 1100px) { .bk-fv .fv-img, .bk-fv .fv-deco { width: 66%; } }
@media (max-width: 767px) {
  .bk-fv { min-height: 0; }
  .bk-fv .inner { height: auto; }
  .bk-fv .fv-img { position: relative; width: 100%; height: auto; aspect-ratio: 375/230; }
  .bk-fv .fv-img img { -webkit-mask-image: none; mask-image: none; }
  .bk-fv .fv-body { width: auto; padding: 16px 16px 24px; }
  .bk-fv h1 { font-size: 64px; -webkit-text-stroke: 0; text-align: center; }
  .bk-fv .fv-txt { width: auto; font-size: 15px; line-height: 1.6; margin-left: 0; }
  .bk-fv .fv-btns { justify-content: center; margin-left: 0; }
  .bk-fv .fv-btn { width: 48%; height: 72px; font-size: 20px; border-radius: 14px; }
  .bk-fv .fv-btn-pink { font-size: 18px; }
  .bk-fv .fv-deco { width: 100%; height: auto; aspect-ratio: 375/230; }
  .bk-fv .fv-deco .d1 { right: 9px; bottom: 129px; width: 51px; }
  .bk-fv .fv-deco .d2 { right: 52px; bottom: 163px; width: 8px; }
  .bk-fv .fv-deco .d3 { right: 32px; top: -4px; width: 20px; height: 20px; }
  .bk-fv .fv-deco .d4 { right: 83px; top: 18px; width: 14px; height: 14px; }
}

/* 右下固定ボタン */
.bk-side { position: fixed; right: 0; bottom: 30px; z-index: 90; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; transition: opacity .2s; }
.bk-side.is-hidden { opacity: 0; pointer-events: none; }
.bk-side > a, .bk-side > button { position: relative; display: flex; align-items: center; width: 120px; height: 95px; padding: 0 0 0 16px; border-radius: 20px 0 0 20px; color: #fff; font-weight: 900; font-size: 23px; line-height: 27px; text-align: left; }
.bk-side > a, .bk-side > button { transition: width .25s, box-shadow .25s; }
.bk-side > a:hover, .bk-side > button:hover { width: 134px; box-shadow: -6px 6px 16px rgba(0,0,0,.2); }
.bk-side .side-informal { background: var(--bk-red); }
.bk-side .side-formal { background: var(--bk-formal); }
.bk-side .cart-count { position: absolute; right: 4px; top: -9px; min-width: 24px; height: 24px; line-height: 24px; border-radius: 12px; background: var(--bk-black); color: #fff; font-size: 14px; text-align: center; padding: 0 6px; }
.bk-side .cart-count[hidden] { display: none; }
.bk-side .side-formal .cart-count { background: var(--bk-red); }
/* 見積りリストのパネル */
.bk-side .bk-cartpop { display: block; opacity: 0; visibility: hidden; transform: translateX(16px); transition: opacity .3s, transform .3s, visibility 0s linear .3s; position: absolute; right: 100%; bottom: 0; width: min(66vw, 1100px); max-height: 66vh; overflow: auto; background: #fff; color: var(--bk-black); border-radius: 20px; box-shadow: 0 12px 40px rgba(0,0,0,.3); padding: 22px 26px 24px; border-right: 10px solid transparent; background-clip: padding-box; text-align: left; font-family: var(--bk-font); font-weight: 700; font-size: 16px; line-height: 1.5; }
.bk-side.has-items:hover .bk-cartpop, .bk-side .bk-cartpop.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .3s, transform .3s; }
@media (max-width: 767px) {
  .bk-side.has-items:hover .bk-cartpop:not(.is-open) { opacity: 0; visibility: hidden; }
  .bk-side .bk-cartpop { right: 8px; bottom: 100%; margin-bottom: 8px; width: calc(100vw - 16px); max-height: 60vh; padding: 16px 14px 18px; border-right: 0; border-radius: 16px; transform: translateY(12px); }
  .bk-side .bk-cartpop.is-open { transform: none; }
  .bk-side .bk-cartpop .cp-tit { font-size: 18px; margin-bottom: 10px; }
  .bk-side .bk-cartpop .cp-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .bk-side .bk-cartpop .cp-card { padding: 8px; }
  .bk-side .bk-cartpop .cp-card .nm { font-size: 13px; }
  .bk-side .bk-cartpop .cp-total { font-size: 15px; margin-top: 12px; }
  .bk-side .bk-cartpop .cp-total strong { font-size: 20px; }
  .bk-side .bk-cartpop .cp-note { font-size: 11px; }
  .bk-side .bk-cartpop .cp-btns .btn { font-size: 15px; min-height: 40px; padding: 6px 18px; }
}
.bk-cartpop .cp-tit { font-size: 22px; font-weight: 900; margin: 0 0 14px; }
.bk-cartpop .cp-tit span { font-size: 15px; font-weight: 700; color: var(--bk-gray); margin-left: 8px; }
.bk-cartpop .cp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.bk-cartpop .cp-card { border: 1px solid #ddd; border-radius: 14px; padding: 12px; display: flex; flex-direction: column; gap: 6px; transition: opacity .3s, transform .3s; }
.bk-cartpop .cp-card.is-removing { opacity: 0; transform: scale(.85); }
.bk-cartpop .cp-card img, .bk-cartpop .cp-card .noimg { width: 100%; aspect-ratio: 4/3; object-fit: contain; background: var(--bk-blue-pale); border-radius: 10px; }
.bk-cartpop .cp-card .nm { font-size: 15px; line-height: 1.3; }
.bk-cartpop .cp-card .pr { color: var(--bk-red); font-weight: 400; font-size: 14px; }
.bk-cartpop .cp-card .pr small { color: var(--bk-gray); font-size: 11px; }
.bk-cartpop .cp-card .ctl { display: flex; align-items: center; gap: 6px; margin-top: auto; }
.bk-cartpop .cp-card .ctl .minus, .bk-cartpop .cp-card .ctl .plus { position: relative; width: 24px; height: 24px; flex: 0 0 auto; border-radius: 50%; background: #fff; border: 2px solid var(--bk-black); padding: 0; }
.bk-cartpop .cp-card .ctl .minus::before, .bk-cartpop .cp-card .ctl .plus::before, .bk-cartpop .cp-card .ctl .plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 2px; background: var(--bk-black); transform: translate(-50%, -50%); }
.bk-cartpop .cp-card .ctl .plus::after { width: 2px; height: 10px; }
.bk-cartpop .cp-card .ctl .minus:hover, .bk-cartpop .cp-card .ctl .plus:hover { background: var(--bk-gray-pale); }
.bk-cartpop .cp-card .ctl .n { min-width: 2em; text-align: center; font-size: 18px; line-height: 1; }
.bk-cartpop .cp-card .ctl .del { margin-left: auto; width: auto; height: auto; background: none; color: #888; font-size: 13px; text-decoration: underline; }
.bk-cartpop .cp-total { margin: 16px 0 4px; font-size: 18px; }
.bk-cartpop .cp-total strong { color: var(--bk-red); font-size: 24px; font-weight: 400; margin-left: 6px; }
.bk-cartpop .cp-note { font-size: 12px; font-weight: 500; color: #444; margin: 0 0 14px; }
.bk-cartpop .cp-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.bk-cartpop .cp-btns .cp-formal { background: var(--bk-formal); color: #fff; }
.bk-side[data-mode="formal"] .cp-btns .cp-informal, .bk-side:not([data-mode="formal"]) .cp-btns .cp-formal { display: none; }
@media (max-width: 767px) { .bk-side { bottom: 16px; gap: 6px; } .bk-side > a, .bk-side > button { width: 92px; height: 70px; font-size: 17px; line-height: 21px; padding-left: 12px; border-radius: 14px 0 0 14px; } .bk-side .cart-count { min-width: 20px; height: 20px; line-height: 20px; font-size: 12px; top: -7px; } }

/* ==== 理由3選 ==== */
.bk-reason { padding: 28px 0 40px; }
.bk-reason .h2 { font-size: 40px; margin-bottom: 19px; }
.bk-reason .h2 .hl { color: var(--bk-blue); padding: 0 4px; background-image: linear-gradient(#fff, #fff); background-repeat: no-repeat; background-position: 0 calc(100% - 2px); background-size: 0% 11px; transition: background-size 1.2s cubic-bezier(.2,.8,.2,1); }
.bk-reason .h2.is-in .hl { background-size: 100% 11px; }
.bk-reason .h2 .accent-pink { font-size: 1.3em; line-height: 1; }
.bk-reason .reasons { display: grid; gap: 20px; max-width: 800px; margin: 0 auto; }
.bk-reason .reason { position: relative; background: #fff; border-radius: 30px; padding: 14px 40px 14px 130px; text-align: center; min-height: 120px; display: flex; flex-direction: column; justify-content: center; }
.bk-reason .reason { opacity: 0; transform: translateY(36px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.bk-reason .reasons.is-in .reason { opacity: 1; transform: none; }
.bk-reason .reasons.is-in .reason:nth-child(2) { transition-delay: .2s; }
.bk-reason .reasons.is-in .reason:nth-child(3) { transition-delay: .4s; }
.bk-reason .reason .num { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); font-size: 56px; font-weight: 900; line-height: 1; }
.bk-reason .reason .tit { font-size: 32px; font-weight: 900; line-height: 1.25; margin: 0 0 4px; }
.bk-reason .reason .tit em { font-style: normal; }
.bk-reason .reason p:not(.tit) { font-size: 18px; font-weight: 700; }
@media (max-width: 767px) { .bk-reason .h2 { font-size: 24px; } .bk-reason .reason { padding: 14px 14px 14px 62px; min-height: 0; border-radius: 14px; } .bk-reason .reason .num { left: 16px; font-size: 36px; } .bk-reason .reason .tit { font-size: 20px; } .bk-reason .reason p:not(.tit) { font-size: 13px; } }

/* ==== セットピックアップ ==== */
.bk-pickup { padding: 36px 0 26px; }
.bk-pickup .h2 { margin-bottom: 30px; }
.bk-pickup .pick-grid { display: flex; justify-content: center; gap: 26px; margin-bottom: 36px; }
.bk-pickup .pick { width: 300px; height: 360px; background: #fff; color: var(--bk-black); border-radius: 30px; padding: 40px 14px 18px; text-align: center; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; }
.bk-pickup .pick .badge { position: absolute; left: 0; top: 0; background: #b7e1ff; color: var(--bk-black); font-size: 15px; font-weight: 900; padding: 4px 16px 4px 14px; border-radius: 30px 0 8px 0; }
.bk-pickup .pick .badge.badge-yellow { background: var(--bk-yellow); color: var(--bk-black); }
.bk-pickup .pick .badge.badge-red { background: var(--bk-pink); }
.bk-pickup .pick img { margin: 0 auto 8px; width: 100%; height: 215px; object-fit: contain; }
.bk-pickup .pick .name { font-size: 24px; font-weight: 900; line-height: 1.2; letter-spacing: -.03em; white-space: nowrap; }
.bk-pickup .pick .price { font-size: 22px; font-weight: 400; margin: 4px 0 0; line-height: 1.3; }
.bk-pickup .pick .price small { display: block; font-size: 15px; font-weight: 400; }
.bk-pickup .more { display: flex; width: 350px; height: 62px; margin: 0 auto; border: 2px solid var(--bk-black); border-radius: 14px; background: var(--bk-black); color: #fff; font-size: 22px; font-weight: 700; align-items: center; justify-content: center; transition: background-color .3s, color .3s, transform .25s, box-shadow .25s; }
.bk-pickup .more:hover { background: #fff; color: var(--bk-black); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.15); }
@media (max-width: 1000px) { .bk-pickup .pick-grid { flex-wrap: wrap; } }
@media (max-width: 767px) { .bk-pickup .pick-grid { flex-direction: column; align-items: center; gap: 16px; margin-bottom: 24px; } .bk-pickup .pick { width: 100%; max-width: 320px; height: auto; } .bk-pickup .more { width: 100%; max-width: 320px; height: 54px; font-size: 18px; } }

/* ==== 3秒で判断 ==== */
.bk-3sec { padding: 44px 0 40px; }
.bk-3sec .catch { font-size: 40px; font-weight: 900; text-align: center; margin: 0 0 14px; display: flex; align-items: center; justify-content: center; gap: .3em; line-height: 1.2; }
.bk-3sec .catch .ico { width: 44px; height: 44px; flex: 0 0 auto; }
.bk-3sec .hl { padding: 0 4px; background-image: linear-gradient(var(--bk-yellow), var(--bk-yellow)); background-repeat: no-repeat; background-position: 0 calc(100% - 2px); background-size: 0% 11px; transition: background-size 1.2s cubic-bezier(.2,.8,.2,1); }
.bk-3sec .is-in .hl { background-size: 100% 11px; }
.bk-3sec .catch .hl { font-size: 48px; color: var(--bk-blue); }
.bk-3sec p { text-align: center; font-weight: 700; font-size: 18px; line-height: 1.7; }
.bk-3sec .quote { font-size: 28px; font-weight: 900; margin: 16px 0; }
.bk-3sec .note { font-weight: 700; color: var(--bk-black); }
.bk-3sec .strong { font-size: 28px; font-weight: 900; }
.bk-3sec .band-top { font-weight: 900; font-size: 22px; margin: 40px 0 4px; }
.bk-3sec .band-top::before, .bk-3sec .band-top::after { content: "／"; margin: 0 .2em; } .bk-3sec .band-top::before { content: "＼"; }
.bk-3sec .band { background: var(--bk-blue); color: #fff; font-size: 30px; font-weight: 900; text-align: center; padding: 4px 24px; width: 565px; margin: 0 auto 30px; line-height: 1.4; }
.bk-3sec .ba-sub { font-weight: 900; font-size: 18px; margin: 0; }
.bk-3sec .ba-tit { font-size: 48px; font-weight: 900; margin: 0 0 18px; line-height: 1.2; }
@media (max-width: 767px) { .bk-reason .h2 .hl, .bk-3sec .hl { background-size: 0% 8px; background-position: 0 calc(100% - 1px); } .bk-reason .h2.is-in .hl, .bk-3sec .is-in .hl { background-size: 100% 8px; } .bk-3sec .catch { font-size: 24px; flex-wrap: wrap; } .bk-3sec .catch .hl { font-size: 30px; } .bk-3sec .catch .ico { width: 28px; height: 28px; } .bk-3sec p { font-size: 14px; } .bk-3sec .quote, .bk-3sec .strong { font-size: 18px; } .bk-3sec .band-top { font-size: 16px; } .bk-3sec .band { width: 100%; font-size: 20px; } .bk-3sec .ba-tit { font-size: 30px; } }

/* ビフォーアフター スライダー */
.bk-ba { position: relative; width: 676px; max-width: 100%; margin: 0 auto 8px; aspect-ratio: 676/430; overflow: hidden; background: #eee; user-select: none; touch-action: pan-y; }
.bk-ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bk-ba .ba-after { clip-path: inset(0 0 0 var(--ba, 50%)); }
.bk-ba .ba-handle { position: absolute; top: 0; bottom: 0; left: var(--ba, 50%); width: 3px; background: #000; transform: translateX(-50%); }
.bk-ba .ba-handle::after { content: "◀▶"; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 36px; height: 36px; border-radius: 50%; background: #000; color: #fff; font-size: 11px; font-weight: 900; display: flex; align-items: center; justify-content: center; letter-spacing: -1px; }
.bk-ba .ba-label { position: absolute; top: 8px; padding: 2px 10px; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; font-weight: 700; border-radius: 3px; }
.bk-ba .ba-label.before { left: 8px; }
.bk-ba .ba-label.after { right: 8px; background: var(--bk-pink); font-size: 15px; font-weight: 900; padding: 3px 14px; }
.bk-ba input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }

/* ==== 実績(ピンクの円) ==== */
.bk-stats { padding: 40px 0 44px; }
.bk-stats .stats { display: flex; justify-content: center; gap: 44px; }
.bk-stats .stat { text-align: center; }
.bk-stats .ring { --p: 0; width: 240px; height: 240px; margin: 0 auto; border-radius: 50%; background: conic-gradient(var(--bk-pink) calc(var(--p) * 1%), #ffb7c2 0); display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; color: var(--bk-black); transition: color .35s; }
.bk-stats .ring::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--bk-pink); transition: opacity .5s; }
.bk-stats .ring > span { position: relative; }
.bk-stats .ring .lab { font-size: 24px; font-weight: 900; line-height: 1.2; }
.bk-stats .ring .val, .bk-stats .ring .sub { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s ease, opacity .5s ease .1s; }
.bk-stats .ring .val > span, .bk-stats .ring .sub > span { min-height: 0; overflow: hidden; }
.bk-stats .ring .val { font-size: 80px; font-weight: 900; color: #fff; line-height: 1; }
.bk-stats .ring .val small { font-size: 36px; }
.bk-stats .ring .sub { font-size: 15px; font-weight: 700; line-height: 1.5; padding: 0 20px; transition-delay: .15s, .3s; }
.bk-stats .ring.is-white { color: #fff; }
.bk-stats .ring.is-white::before { opacity: 0; }
.bk-stats .ring.is-on .val, .bk-stats .ring.is-on .sub { grid-template-rows: 1fr; opacity: 1; }
.bk-stats .src { text-align: center; font-size: 14px; font-weight: 500; margin: 20px 0 0; }
@media (max-width: 767px) { .bk-stats .stats { flex-direction: column; gap: 20px; } .bk-stats .ring { width: 200px; height: 200px; } .bk-stats .ring .lab { font-size: 20px; } .bk-stats .ring .val { font-size: 60px; } .bk-stats .ring .val small { font-size: 28px; } .bk-stats .ring .sub { font-size: 13px; } }

/* ==== 業種 ==== */
.bk-industry { padding: 40px 0 44px; }
.bk-industry .inds { display: flex; justify-content: center; gap: 26px; flex-wrap: wrap; }
.bk-industry .ind { width: 150px; height: 150px; border-radius: 50%; background: var(--bk-blue-pale); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: var(--bk-blue); font-weight: 700; font-size: 16px; padding-top: 6px; }
.bk-industry .ind svg { width: 66px; height: 66px; order: 2; }
.bk-industry .ind { opacity: 0; transform: translateY(36px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.bk-industry .inds.is-in .ind { opacity: 1; transform: none; }
.bk-industry .inds.is-in .ind:nth-child(2) { transition-delay: .2s; }
.bk-industry .inds.is-in .ind:nth-child(3) { transition-delay: .4s; }
.bk-industry .inds.is-in .ind:nth-child(4) { transition-delay: .6s; }
.bk-industry .inds.is-in .ind:nth-child(5) { transition-delay: .8s; }
.bk-industry .ind span { order: 1; }
@media (max-width: 767px) { .bk-industry .inds { gap: 12px; } .bk-industry .ind { width: 104px; height: 104px; font-size: 11px; } .bk-industry .ind svg { width: 40px; height: 40px; } }

/* ==== お客様の声 ==== */
.bk-voice { padding: 44px 0 40px; }
.bk-voice .h2 .big { font-size: 60px; line-height: 1; }
.bk-voice .voices { display: grid; grid-template-columns: repeat(3, 300px); justify-content: center; gap: 30px; }
.bk-voice .voice { background: #fff; border-radius: 20px; padding: 22px 20px 26px; position: relative; display: none; min-height: 215px; }
.bk-voice .voice.is-visible { display: block; animation: bkPop .45s ease; }
.bk-voice .voice p { font-size: 16px; font-weight: 700; line-height: 1.6; margin: 0 0 10px; }
.bk-voice .voice .meta { font-size: 13px; color: #555; font-weight: 500; line-height: 1.7; }
.bk-voice .voice .vico { position: absolute; right: 16px; bottom: 14px; width: 58px; height: 58px; border-radius: 50%; background: var(--bk-pink-pale); display: flex; align-items: center; justify-content: center; color: var(--bk-pink); }
.bk-voice .voice .vico svg { width: 32px; height: 32px; }
.bk-voice .more { width: 960px; max-width: 100%; margin: 20px auto 0; text-align: right; font-weight: 900; font-size: 16px; }
@media (max-width: 1000px) { .bk-voice .voices { grid-template-columns: repeat(2, minmax(0, 300px)); } }
@media (max-width: 767px) { .bk-voice .h2 .big { font-size: 40px; } .bk-voice .voices { grid-template-columns: 1fr; gap: 14px; } .bk-voice .voice { min-height: 0; } }

/* ==== 診断 ==== */
.bk-quiz { position: relative; overflow: hidden; padding: 44px 0 50px; }
.bk-quiz .deco { position: absolute; inset: 0; pointer-events: none; }
.bk-quiz .deco span { position: absolute; display: block; background: #7bc7ff; border-radius: 999px; transform-origin: 50% 50%; }
.bk-quiz .deco .q1 { width: 527px; height: 125px; right: -271px; top: 33px; transform: rotate(-45deg); }
.bk-quiz .deco .q2 { width: 310px; height: 17px; right: -32px; top: 25px; transform: rotate(-45deg); }
.bk-quiz .deco .q3 { width: 364px; height: 57px; left: -173px; bottom: -12px; transform: rotate(-45deg); }
.bk-quiz .deco .q4 { width: 290px; height: 22px; left: -10px; bottom: 11px; transform: rotate(-45deg); }
.bk-quiz .deco .q5 { width: 262px; height: 57px; left: -158px; top: 112px; transform: rotate(-45deg); background: repeating-linear-gradient(135deg, transparent 0 3px, #7bc7ff 3px 8px); }
.bk-quiz .deco .q6 { width: 31px; height: 31px; right: 93px; bottom: 50px; }
.bk-quiz .deco .q7 { width: 22px; height: 22px; left: 185px; top: 265px; }
@media (max-width: 767px) {
  .bk-quiz .deco .q1 { width: 264px; height: 63px; right: -136px; top: 17px; }
  .bk-quiz .deco .q2 { width: 155px; height: 9px; right: -16px; top: 13px; }
  .bk-quiz .deco .q3 { width: 182px; height: 29px; left: -87px; bottom: -6px; }
  .bk-quiz .deco .q4 { width: 145px; height: 11px; left: -5px; bottom: 6px; }
  .bk-quiz .deco .q5 { width: 131px; height: 29px; left: -79px; top: 56px; background: repeating-linear-gradient(135deg, #7bc7ff 0 2.5px, transparent 2.5px 4px); }
  .bk-quiz .deco .q6 { width: 16px; height: 16px; right: 47px; bottom: 25px; }
  .bk-quiz .deco .q7 { width: 11px; height: 11px; left: 93px; top: 133px; }
}
.bk-quiz .inner { position: relative; z-index: 1; }
.bk-quiz .q-tit { color: var(--bk-yellow); font-size: 26px; font-weight: 900; text-align: center; margin: 0 0 18px; }
.bk-quiz .q-list { display: grid; gap: 16px; width: 600px; max-width: 100%; margin: 0 auto; }
.bk-quiz .q-opt { background: #fff; color: var(--bk-black); border-radius: 12px; height: 62px; padding: 8px 20px; font-size: 22px; font-weight: 700; text-align: center; transition: background-color .25s, transform .25s, box-shadow .25s; }
.bk-quiz .q-opt:hover { background: var(--bk-yellow); transform: translateX(8px); box-shadow: 0 6px 16px rgba(0,0,0,.15); }
.bk-quiz .q-step { display: none; }
.bk-quiz .q-step.is-pending { display: block; visibility: hidden; }
.bk-quiz .q-step.is-active { display: block; animation: bkQIn .5s cubic-bezier(.2,.7,.2,1) both; }
.bk-quiz .q-step.is-active.is-leaving { animation: bkQOut .25s ease both; }
.bk-quiz .q-result.is-active { animation: bkQResult 1.2s ease both; }
@keyframes bkQIn { from { opacity: 0; transform: translateX(80px); } }
.bk-quiz .q-step.is-active .q-opt { animation: bkOptIn .4s cubic-bezier(.2,.7,.2,1) backwards; }
.bk-quiz .q-step.is-active .q-opt:nth-child(1) { animation-delay: .2s; }
.bk-quiz .q-step.is-active .q-opt:nth-child(2) { animation-delay: .3s; }
.bk-quiz .q-step.is-active .q-opt:nth-child(3) { animation-delay: .4s; }
.bk-quiz .q-step.is-active .q-opt:nth-child(4) { animation-delay: .5s; }
.bk-quiz .q-step.is-active .q-opt:nth-child(5) { animation-delay: .6s; }
.bk-quiz .q-step.is-active .q-opt:nth-child(6) { animation-delay: .7s; }
@keyframes bkOptIn { from { opacity: 0; transform: translateY(28px); } }
@keyframes bkQOut { to { opacity: 0; } }
@keyframes bkQResult { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .bk-quiz .q-step.is-active, .bk-quiz .q-step.is-active.is-leaving, .bk-quiz .q-result.is-active, .bk-quiz .q-step.is-active .q-opt { animation: none; } .bk-flow .step, .bk-industry .ind, .bk-reason .reason { opacity: 1; transform: none; transition: none; } .bk-flow .steps::before { width: calc(100% - 170px); transition: none; } }
.bk-quiz .q-result { text-align: center; }
.bk-quiz .q-result .r-sub { color: var(--bk-yellow); font-weight: 900; font-size: 22px; }
.bk-quiz .q-result .r-name { font-size: 40px; font-weight: 900; margin: 0 0 16px; }
.bk-quiz .q-result .r-box { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; max-width: 720px; margin: 0 auto 20px; text-align: left; }
.bk-quiz .q-result .r-box img { border-radius: 14px; background: #fff; }
.bk-quiz .q-result .r-items { background: rgba(255,255,255,.2); border-radius: 10px; padding: 14px 18px; font-size: 15px; font-weight: 700; }
.bk-quiz .q-result .r-items strong { display: block; margin-bottom: 4px; }
.bk-quiz .q-result .r-items ul { list-style: none; margin: 0; padding: 0; }
.bk-quiz .q-result .r-price { font-size: 32px; font-weight: 400; margin: 8px 0 0; }
.bk-quiz .q-result .r-price small { font-size: 14px; font-weight: 400; }
.bk-quiz .q-result .r-btns { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.bk-quiz .q-result .r-btns .btn-red { width: 480px; max-width: 100%; height: 60px; padding: 8px 20px; border-radius: 10px; font-size: 22px; white-space: nowrap; }
/* 診断結果 */
.bk-quiz [hidden] { display: none !important; }
.bk-quiz .q-result .r-use { display: inline-block; margin: -6px 0 18px; padding: 4px 16px; border: 1.5px solid #fff; border-radius: 999px; font-size: 15px; font-weight: 700; }
.bk-quiz .q-result .r-reason { max-width: 720px; margin: 0 auto 24px; padding: 16px 22px; background: #fff; color: var(--bk-black); border-radius: 14px; text-align: left; font-size: 16px; line-height: 1.8; }
.bk-quiz .q-result .r-reason p { margin: 0; }
.bk-quiz .q-result .r-box { position: relative; }
.bk-quiz .q-result .r-box:not(.is-soldout) > .soldout { display: none; }
.bk-quiz .q-result .r-soldout { margin: 0; font-size: 18px; font-weight: 900; }
.bk-quiz .q-result .r-reason .r-note { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #bbb; font-size: 15px; }
.bk-quiz .q-result .r-retry { color: #fff; font-size: 20px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; background: none; border: 0; padding: 6px; cursor: pointer; }
.bk-quiz .q-result .r-btns .r-sub-link { width: 480px; max-width: 100%; height: 60px; padding: 8px 20px; border-radius: 10px; font-size: 22px; white-space: nowrap; background: #fff; color: var(--bk-formal); border: 2px solid var(--bk-formal); }
.bk-quiz .q-result .r-tel { display: inline-flex; align-items: center; gap: .25em; color: #fff; font-size: 34px; font-weight: 900; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.bk-quiz .q-result .r-tel img { height: 1em; width: auto; }
.bk-quiz .q-result .r-retry:hover, .bk-quiz .q-result .r-tel:hover { opacity: .8; }
@media (max-width: 767px) { .bk-quiz .q-tit { font-size: 18px; } .bk-quiz .q-opt { font-size: 15px; height: auto; min-height: 52px; padding: 10px 12px; } .bk-quiz .q-result .r-box { grid-template-columns: 1fr; } .bk-quiz .q-result .r-name { font-size: 26px; } .bk-quiz .q-result .r-reason { font-size: 15px; padding: 14px 16px; } .bk-quiz .q-result .r-reason .r-note { font-size: 14px; } .bk-quiz .q-result .r-btns .btn-red, .bk-quiz .q-result .r-btns .r-sub-link { width: 100%; padding: 8px 12px; font-size: 16px; } .bk-quiz .q-result .r-tel { font-size: 30px; } .bk-quiz .q-result .r-retry { font-size: 18px; } }

/* ==== ブース装飾セット ==== */
.bk-sets { padding: 44px 0 40px; }
.bk-sets .h2 { margin-bottom: 8px; }
.bk-sets .h2 .big { font-size: 48px; line-height: 1; }
.bk-sets .lead { font-size: 18px; margin: 0 0 24px; }
.bk-sets .set-grid { display: grid; grid-template-columns: repeat(3, 320px); justify-content: center; gap: 30px 26px; }
.bk-sets .set { background: #fff; border-radius: 20px; padding: 16px 18px 20px; display: flex; flex-direction: column; }
.bk-sets .set img { width: 100%; aspect-ratio: 4/3; object-fit: contain; margin-bottom: 8px; }
.bk-sets .set .ship { display: inline-block; background: var(--bk-black); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.5; padding: 0 8px; margin-bottom: 4px; align-self: flex-start; }
.bk-sets .set .name { font-size: 26px; font-weight: 900; line-height: 1.25; }
.bk-sets .set .use { align-self: flex-start; margin: 6px 0 2px; padding: 3px 10px; border: 1.5px solid var(--bk-blue); border-radius: 8px; color: var(--bk-blue); font-size: 13px; font-weight: 700; line-height: 1.5; }
.bk-sets .set .use span { display: inline-block; white-space: nowrap; } 
.bk-sets .set .regular { font-size: 14px; font-weight: 700; margin: 4px 0 2px; }
.bk-sets .set .regular .save { background: var(--bk-yellow); color: var(--bk-red); padding: 0 4px; font-weight: 900; }
.bk-sets .set .price { color: var(--bk-red); font-weight: 400; margin: 0; line-height: 1.05; white-space: nowrap; }
.bk-sets .set .price .tax { font-size: 22px; } .bk-sets .set .price .num { font-size: 44px; letter-spacing: -.01em; } .bk-sets .set .price .yen { font-size: 18px; }
.bk-sets .set .taxin { color: var(--bk-red); font-size: 14px; font-weight: 400; margin: 0 0 10px; text-align: right; }
.bk-sets .set .items { font-size: 14px; font-weight: 500; line-height: 1.6; margin: 0 0 18px; padding: 0; flex: 1; list-style: none; }
.bk-sets .set .items strong { display: block; font-size: 16px; font-weight: 700; margin-bottom: 2px; }
.bk-sets .set .btns { display: grid; gap: 10px; }
.bk-sets .set .btns .btn-black { min-height: 42px; font-size: 18px; }
.bk-sets .set .btns .btn-red { min-height: 60px; border-radius: 10px; font-size: 22px; }
.bk-sets .note { margin-top: 28px; }
@media (max-width: 1100px) { .bk-sets .set-grid { grid-template-columns: repeat(2, minmax(0, 320px)); } }
@media (max-width: 767px) { .bk-sets .h2 .big { font-size: 34px; } .bk-sets .lead { font-size: 14px; } .bk-sets .set-grid { grid-template-columns: 1fr; max-width: 340px; margin: 0 auto; gap: 18px; } .bk-sets .set .price .num { font-size: 38px; } }

/* 比較表(ヘッダー固定 + 横スクロール) */
.bk-compare { padding: 30px 0 40px; }
.bk-compare .table-wrap { width: 1000px; max-width: 100%; margin: 0 auto; overflow-x: auto; max-height: 70vh; overflow-y: auto; -webkit-overflow-scrolling: touch; background: #fff; }
.bk-compare table { border-collapse: collapse; width: 100%; min-width: 760px; font-size: 16px; }
.bk-compare th, .bk-compare td { border: 1px solid #ccc; padding: 12px 8px; text-align: center; font-weight: 500; height: 50px; }
.bk-compare td { font-size: 18px; }
.bk-compare thead th { position: sticky; top: 0; z-index: 2; font-size: 15px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.bk-compare thead th small { display: block; font-weight: 700; font-size: 14px; margin-top: 2px; }
.bk-compare thead th small .in { font-size: 12px; }
.bk-compare tbody th, .bk-compare tfoot th { text-align: left; background: #fff; position: sticky; left: 0; z-index: 1; min-width: 300px; padding-left: 14px; }
.bk-compare thead th:first-child { left: 0; z-index: 3; background: var(--bk-gray-pale); }
.bk-compare .c1 { background: #bae673; } .bk-compare .c2 { background: var(--bk-yellow); } .bk-compare .c3 { background: #bda5ff; }
.bk-compare .c4 { background: #ffbd29; } .bk-compare .c5 { background: #ffb3cb; } .bk-compare .c6 { background: #5ccdff; }
.bk-compare tfoot td, .bk-compare tfoot th { background: #e9f3f5; font-size: 18px; font-weight: 700; }
@media (max-width: 767px) { .bk-compare .table-wrap { max-height: none; }  .bk-compare table { font-size: 13px; } .bk-compare td { font-size: 15px; } .bk-compare tbody th, .bk-compare tfoot th { min-width: 180px; } .bk-compare thead th { font-size: 13px; } .bk-compare thead th small { font-size: 11px; } }

/* ==== 単品ラインアップ ==== */
.bk-items { padding: 30px 0 60px; }
.bk-items .h2 .big { font-size: 44px; line-height: 1; }
.bk-items .h2 .accent-pink { font-size: 44px; line-height: 1; }
.bk-items .item-grid { display: grid; grid-template-columns: repeat(3, 300px); justify-content: center; gap: 48px 27px; }
.bk-items .item { display: none; }
.bk-items .item.is-visible { display: block; animation: bkPop .45s ease; }
.bk-items .item .thumb { position: relative; background: var(--bk-blue-pale); aspect-ratio: 300/190; overflow: hidden; margin-bottom: 10px; }
.bk-items .item .thumb img { width: 100%; height: 100%; object-fit: cover; }
.bk-items .item .name { font-size: 24px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; min-height: 60px; }
.bk-items .item .name small { display: block; font-size: 24px; }
.bk-items .item .btns { display: flex; gap: 6px; }
.bk-items .item .btns .btn { min-height: 44px; padding: 6px 16px; font-size: 18px; flex: 0 0 auto; }
@media (max-width: 1000px) { .bk-items .item-grid { grid-template-columns: repeat(2, minmax(0, 300px)); gap: 32px; } }
@media (max-width: 767px) { .bk-items .h2 .big, .bk-items .h2 .accent-pink { font-size: 30px; } .bk-items .item-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 12px; } .bk-items .item .name { font-size: 15px; min-height: 40px; } .bk-items .item .name small { font-size: 14px; } .bk-items .item .btns { flex-direction: column; } .bk-items .item .btns .btn { min-height: 36px; font-size: 14px; } }

/* ==== 印刷・制作 ==== */
.bk-print { padding: 50px 0 40px; }
.bk-print .h2 { margin-bottom: 12px; }
.bk-print .lead { margin: 0 0 16px; }
.bk-print .carousel { position: relative; width: 760px; max-width: 100%; margin: 0 auto; }
.bk-print .slides { overflow: hidden; }
.bk-print .slide { display: none; text-align: center; }
.bk-print .slide.is-active { display: block; animation: bkSlideR .45s cubic-bezier(.2,.7,.2,1); }
.bk-print .slide.is-active.from-left { animation-name: bkSlideL; }
@keyframes bkSlideR { from { transform: translateX(60%); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes bkSlideL { from { transform: translateX(-60%); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .bk-print .slide.is-active { animation: none; } }
.bk-print .slide img { width: 550px; max-width: 100%; height: 330px; margin: 0 auto 20px; object-fit: contain; }
.bk-print .slide p { font-size: 16px; font-weight: 500; margin: 0; line-height: 1.6; }
.bk-print .arrow { position: absolute; top: 140px; width: 44px; height: 44px; font-size: 44px; line-height: 1; color: #bbb; }
.bk-print .arrow.prev { left: 0; } .bk-print .arrow.next { right: 0; }
.bk-print .dots { display: flex; justify-content: center; gap: 16px; margin-top: 30px; }
.bk-print .dots button { width: 10px; height: 10px; border-radius: 50%; background: #ccc; }
.bk-print .dots button.is-active { background: var(--bk-blue); }
@keyframes bkPop { from { opacity: 0; transform: translateY(12px); } }
@media (max-width: 767px) { .bk-print .slide img { height: auto; aspect-ratio: 5/3; } .bk-print .arrow { top: 30%; } }

/* ==== ご注文フロー ==== */
.bk-flow { padding: 44px 0 44px; }
.bk-flow .h2 { margin-bottom: 56px; }
.bk-flow .steps { display: flex; justify-content: center; gap: 40px; margin-bottom: 34px; position: relative; }
.bk-flow .steps::before { content: ""; position: absolute; left: 85px; width: 0; top: 85px; border-top: 4px dotted #999; transition: width .35s ease-out; }
.bk-flow .steps.is-in::before { width: calc(100% - 170px); }
.bk-flow .step { position: relative; width: 170px; text-align: center; opacity: 0; transform: translateX(56px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.bk-flow .steps.is-in .step { opacity: 1; transform: none; transition-delay: .4s; }
.bk-flow .steps.is-in .step:nth-child(2) { transition-delay: .7s; }
.bk-flow .steps.is-in .step:nth-child(3) { transition-delay: 1s; }
.bk-flow .steps.is-in .step:nth-child(4) { transition-delay: 1.3s; }
.bk-flow .steps.is-in .step:nth-child(5) { transition-delay: 1.6s; }
.bk-flow .step .num { position: absolute; left: -8px; top: -8px; font-size: 36px; font-weight: 700; line-height: 1; }
.bk-flow .step .circle { width: 170px; height: 170px; margin: 0 auto; border-radius: 50%; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; font-weight: 700; font-size: 20px; color: var(--bk-black); }
.bk-flow .step .circle svg { width: 60px; height: 60px; color: var(--bk-pink); }
.bk-flow .lead-time { text-align: center; font-weight: 700; font-size: 16px; line-height: 1.7; }
.bk-flow .lead-time strong { font-size: 20px; display: block; margin-bottom: 2px; }
@media (max-width: 767px) { .bk-flow .steps { gap: 10px; flex-wrap: wrap; } .bk-flow .step { width: 100px; } .bk-flow .step .circle { width: 100px; height: 100px; font-size: 12px; gap: 4px; } .bk-flow .step .circle svg { width: 32px; height: 32px; } .bk-flow .step .num { font-size: 20px; left: -2px; } .bk-flow .steps::before { display: none; } .bk-flow .h2 { margin-bottom: 24px; } .bk-flow .lead-time { font-size: 13px; } .bk-flow .lead-time strong { font-size: 15px; } }

/* ==== FAQ ==== */
.bk-faq { padding: 44px 0 50px; }
.bk-faq .faq-wrap { width: 960px; max-width: 100%; margin: 0 auto; }
.bk-faq .faq-cat { font-size: 20px; font-weight: 900; margin: 26px 0 10px; padding-left: 12px; border-left: 6px solid var(--bk-pink); }
.bk-faq .faq { background: #fff; border-radius: 12px; margin-bottom: 10px; overflow: hidden; transition: background-color .25s; }
.bk-faq .faq:hover { background: var(--bk-gray-pale); }
.bk-faq .faq-q { width: 100%; display: flex; transition: background-color .25s; align-items: center; gap: 12px; padding: 16px 18px; text-align: left; font-weight: 700; font-size: 17px; }
.bk-faq .faq-q .mark { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--bk-pink); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 900; }
.bk-faq .faq-q .plus { margin-left: auto; position: relative; flex: 0 0 22px; width: 22px; height: 22px; }
.bk-faq .faq-q .plus::before, .bk-faq .faq-q .plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 3px; border-radius: 2px; background: var(--bk-pink); transform: translate(-50%, -50%); transition: transform .3s; }
.bk-faq .faq-q .plus::after { width: 3px; height: 16px; }
.bk-faq .faq.is-open .faq-q .plus::after { transform: translate(-50%, -50%) scaleY(0); }
.bk-faq .faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease, padding-bottom .4s ease; padding: 0 18px 0 62px; font-size: 15px; font-weight: 500; line-height: 1.8; }
.bk-faq .faq-a > div { min-height: 0; overflow: hidden; opacity: 0; transition: opacity .25s ease; }
.bk-faq .faq.is-open .faq-a { grid-template-rows: 1fr; padding-bottom: 18px; }
.bk-faq .faq.is-open .faq-a > div { opacity: 1; transition: opacity .3s ease .15s; }
.bk-faq .faq-a strong { font-weight: 900; }
@media (max-width: 767px) { .bk-faq .faq-q { font-size: 14px; padding: 14px; } .bk-faq .faq-a { padding: 0 14px; } }

/* ==== 利用シーン ==== */
.bk-scene { padding: 44px 0 40px; }
.bk-scene .scenes { display: grid; grid-template-columns: repeat(3, 308px); justify-content: center; gap: 20px; margin-bottom: 24px; }
.bk-scene .scene p { text-align: center; font-weight: 700; font-size: 16px; margin: 0 0 6px; }
.bk-scene .scene img { width: 100%; aspect-ratio: 308/190; object-fit: cover; }
.bk-scene .scene-txt { text-align: center; font-weight: 700; font-size: 16px; line-height: 1.8; }
@media (max-width: 767px) { .bk-scene .scenes { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto 20px; } .bk-scene .scene-txt { font-size: 14px; } }

/* ==== 電話(黒帯) ==== */
.bk-tel { padding: 36px 0 34px; text-align: center; }
.bk-tel .t1 { font-size: 24px; font-weight: 900; margin: 0; }
.bk-tel .num { font-size: 64px; font-weight: 900; line-height: 1.2; margin: 6px 0; letter-spacing: .02em; }
.bk-tel .num a { color: #fff; display: inline-flex; align-items: center; gap: .2em; }
.bk-tel .num .fc { height: .95em; width: auto; flex: 0 0 auto; }
.bk-tel .t2 { font-weight: 700; margin: 0; font-size: 20px; }
@media (max-width: 767px) { .bk-tel .t1 { font-size: 18px; } .bk-tel .num { font-size: 40px; } .bk-tel .t2 { font-size: 14px; } }

/* ==== 入稿規定 ==== */
.bk-spec { padding: 40px 0 44px; }
.bk-spec .spec-sub { text-align: center; font-weight: 900; font-size: 20px; margin: 0; }
.bk-spec .h2 { margin-bottom: 30px; }
.bk-spec .warn { color: var(--bk-red); text-align: center; font-weight: 900; font-size: 20px; margin: 0 0 10px; }
.bk-spec .spec-list { text-align: center; font-weight: 500; font-size: 20px; line-height: 1.6; margin: 0 0 20px; }
.bk-spec .spec-box { width: 730px; max-width: 100%; margin: 0 auto; border: 1px solid var(--bk-red); color: var(--bk-red); font-weight: 700; text-align: center; padding: 30px 20px; font-size: 20px; line-height: 1.7; }
@media (max-width: 767px) { .bk-spec .spec-sub, .bk-spec .warn, .bk-spec .spec-list, .bk-spec .spec-box { font-size: 15px; } .bk-spec .spec-box { padding: 18px 12px; } }
.bk-check { padding: 40px 0 44px; }
.bk-check .checks { display: grid; grid-template-columns: repeat(2, 355px); justify-content: center; gap: 24px 30px; margin: 0 auto 40px; }
.bk-check .check { background: #fff; border: 1px solid #333; padding: 30px 16px; text-align: center; font-weight: 700; font-size: 20px; line-height: 1.5; }
.bk-check .check small { display: none; }
.bk-check table { width: 740px; max-width: 100%; margin: 0 auto; border-collapse: collapse; font-size: 15px; font-weight: 500; color: var(--bk-gray); }
.bk-check th, .bk-check td { border: 0; border-bottom: 1px solid #555; padding: 18px 14px; text-align: left; vertical-align: middle; line-height: 1.7; }
.bk-check th { width: 220px; font-weight: 500; text-align: center; }
@media (max-width: 767px) { .bk-check .checks { grid-template-columns: 1fr; gap: 12px; } .bk-check .check { font-size: 15px; padding: 18px 12px; }  .bk-check table, .bk-check tbody, .bk-check tr { display: block; width: auto; max-width: none; } .bk-check th, .bk-check td { display: block; width: auto; padding: 8px 4px; overflow-wrap: anywhere; } .bk-check th { border-bottom: 0; text-align: left; padding-bottom: 0; color: #333; } }


/* ==== 汎用モーダル(商品詳細・見積りリスト) ==== */
.bk-modal { position: fixed; inset: 0; z-index: 10000;  display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s; }
.bk-modal.is-open { opacity: 1; visibility: visible; transition: opacity .35s ease; }
.bk-modal.is-open .m-box { transform: none; }
.bk-modal .m-bg { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.bk-modal .m-box { position: relative; background: #fff; border-radius: 14px; max-width: 900px; width: 100%; max-height: 90vh; overflow: auto; padding: 36px 28px 24px; font-family: var(--bk-font); color: var(--bk-black); transform: translateY(24px) scale(.98); transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.bk-modal .m-close { position: absolute; right: 12px; top: 8px; font-size: 30px; line-height: 1; color: #888; }
.bk-modal .m-copy { color: var(--bk-black); font-weight: 900; margin: 0; font-size: 14px; }
.bk-modal .m-tit { font-size: 26px; font-weight: 900; margin: 0 0 16px; }
.bk-modal .m-flex { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; }
.bk-modal .m-img { border-radius: 10px; background: var(--bk-blue-pale); }
.bk-modal .m-price-lab { display: inline-block; background: var(--bk-red); color: #fff; font-size: 12px; font-weight: 900; padding: 2px 10px; }
.bk-modal .m-price { color: var(--bk-red); font-weight: 400; font-size: 32px; line-height: 1.2; margin: 6px 0; }
.bk-modal .m-price small { font-size: 13px; font-weight: 400; }
.bk-modal .m-note { font-size: 11px; color: #444; line-height: 1.7; font-weight: 500; }
.bk-modal .m-items h4 { margin: 0 0 8px; font-weight: 900; }
.bk-modal .m-items table { width: 100%; border-collapse: collapse; font-size: 13px; }
.bk-modal .m-items th { background: #eee; text-align: left; padding: 6px 10px; font-weight: 900; }
.bk-modal .m-items td { padding: 6px 10px; border-bottom: 1px solid #eee; font-weight: 500; }
.bk-modal .m-items td.qty { text-align: right; white-space: nowrap; }
.bk-modal .m-spec { list-style: none; padding: 0; margin: 12px 0 0; font-size: 13px; font-weight: 500; }
.bk-modal .m-spec li { padding: 6px 0; border-bottom: 1px solid #eee; display: grid; grid-template-columns: 70px 1fr; gap: 8px; }
.bk-modal .m-spec li span:first-child { font-weight: 900; }
.bk-modal .m-video { position: relative; aspect-ratio: 16/9; margin-top: 16px; }
.bk-modal .m-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.bk-modal .m-btns { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 20px; }
.bk-modal .m-btns .btn-red { width: 320px; max-width: 100%; height: 60px; border-radius: 10px; font-size: 22px; }
.bk-modal .m-btns .btn-outline { min-height: 36px; font-size: 13px; }
.bk-modal .fire-txt { display: inline-block; border: 1.5px solid var(--bk-red); color: var(--bk-red); font-size: 11px; font-weight: 900; padding: 0 8px; border-radius: 999px; margin-bottom: 6px; }
@media (max-width: 767px) { .bk-modal .m-flex { grid-template-columns: 1fr; } .bk-modal .m-box { padding: 40px 16px 20px; } .bk-modal .m-tit { font-size: 20px; } }


/* 販売終了の表示 */
.bk .is-soldout { position: relative; }
.bk .is-soldout > :not(.soldout) { filter: grayscale(1); opacity: .45; }
.bk .soldout { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.25); border-radius: inherit; }
.bk .soldout b { background: #333; color: #fff; font-size: 20px; font-weight: 900; padding: 10px 24px; border-radius: 8px; transform: rotate(-8deg); box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.bk .soldout-tag { display: inline-block; background: #333; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.6; padding: 0 8px; border-radius: 4px; margin-top: 4px; }
.bk-modal .m-soldout { color: #c00; font-weight: 900; margin: 0; }
/* トースト */
.bk-toast { position: fixed; left: 50%; bottom: 90px; transform: translate(-50%, 20px); background: var(--bk-black); color: #fff; padding: 10px 20px; border-radius: 999px; font-weight: 700; font-size: 14px; opacity: 0; transition: .25s; z-index: 10001; pointer-events: none; }
.bk-toast.is-show { opacity: 1; transform: translate(-50%, 0); }
.bk-fly { position: fixed; z-index: 10002; margin: 0; pointer-events: none; overflow: hidden; border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.25); opacity: 1; transform: none; transition: transform .75s cubic-bezier(.55, 0, .85, .35), opacity .75s ease-in; will-change: transform; font-family: var(--bk-font); color: var(--bk-black); font-weight: 700; line-height: 1.6; font-size: 16px; }
.bk-side .is-bump { animation: bkBump .45s ease; }
@keyframes bkBump { 35% { transform: scale(1.12); } }

/* スクロール出現 */
.bk .fade-up { opacity: 0; transform: translateY(18px); transition: opacity .6s, transform .6s; }
.bk .fade-up.is-in { opacity: 1; transform: none; }
.bk-voice .voice { transition: transform .3s, box-shadow .3s; }
.bk-voice .voice:hover { transform: translateY(-5px); box-shadow: 0 14px 28px rgba(0,0,0,.14); }
@media (prefers-reduced-motion: reduce) { .bk .fade-up { opacity: 1; transform: none; transition: none; } .bk *, .bk *::before, .bk *::after, .bk-modal, .bk-modal * { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

@media (min-width: 768px) {
  #contact_form .contact_form_wrap { padding: 36px 50px 40px; }
  #contact_form .contact_form_ttl { font-size: 36px; line-height: 1.4; margin-bottom: 16px; }
  #contact_form dt.form_head { font-size: 18px; margin-bottom: 6px; }
  #contact_form dd.form_item { font-size: 16px; line-height: 1.5; margin-bottom: 14px; }
  #contact_form .form_input { font-size: 16px; padding: 11px 14px; margin-bottom: 4px; }
  #contact_form .placeholder { font-size: 13px; margin-bottom: 4px; }
  #contact_form .ico_label { font-size: 14px; padding: 0 12px; margin-right: 12px; }
}

/* ==== スマホ ==== */
@media (max-width: 767px) {
  .bk .inner { width: auto; margin: 0; }
  .bk .tag { font-size: 16px; padding: 6px 20px; }
  .bk .tags { gap: 6px 8px; }

  /* ---- ファーストビュー ---- */
  .bk-fv .inner { display: flex; flex-direction: column; }
  .bk-fv .fv-body { order: 1; padding: 16px 20px 16px 37px; }
  .bk-fv .fv-img { order: 2; aspect-ratio: 375/252; }
  .bk-fv .fv-img img { object-position: center; }
  .bk-fv h1 { font-size: 60px; letter-spacing: -.03em; text-align: left; margin: 0 0 12px; }
  .bk-fv .fv-txt { font-size: 14px; line-height: 20px; margin: 0 0 10px; }
  .bk-fv .fv-btns { justify-content: flex-start; gap: 12px; }
  .bk-fv .fv-btn { width: 118px; height: 44px; font-size: 20px; border-radius: 10px; letter-spacing: 0; }
  .bk-fv .fv-btn-pink { width: 175px; font-size: 18px; }
  .bk-fv .fv-deco { left: 0; width: 100%; height: 243px; aspect-ratio: auto; }
  .bk-fv .fv-deco .d1 { right: 12px; bottom: 158px; width: 31px; height: 400px; }
  .bk-fv .fv-deco .d2 { right: 41px; bottom: 193px; width: 6px; height: 400px; }
  .bk-fv .fv-deco .d3 { right: 11px; top: 126px; width: 21px; height: 21px; }
  .bk-fv .fv-deco .d4 { right: 40px; top: 8px; width: 15px; height: 15px; }
  .bk-fv .fv-deco .d5 { display: block; left: 14px; top: 202px; width: 10px; height: 10px; }

  /* ---- 理由3選 ---- */
  .bk .bk-reason { padding: 20px 0 25px; }
  .bk-reason .h2 { display: block; font-size: 26px; line-height: 1.5; margin-bottom: 14px; }
  .bk-reason .h2 .hl { padding: 0 0 0 7px; background-size: 0% 9px; background-position: 0 calc(100% - 3px); }
  .bk-reason .h2.is-in .hl { background-size: 100% 9px; }
  .bk-reason .reasons { max-width: 300px; gap: 17px; }
  .bk-reason .reason { padding: 10px 8px 14px 52px; border-radius: 20px; min-height: 0; }
  .bk-reason .reason .num { left: 2px; top: -5px; transform: none; font-size: 44px; }
  .bk-reason .reason .tit { font-size: 24px; line-height: 1.3; margin: 0 0 8px; }
  .bk-reason .reason p:not(.tit) { font-size: 14px; line-height: 1.3; }

  /* ---- ピックアップ ---- */
  .bk .bk-pickup { padding: 14px 0 44px; }
  .bk-pickup .h2 { justify-content: flex-start; align-items: flex-start; text-align: left; padding-left: 22px; margin-bottom: 18px; line-height: 1.3; }
  .bk-pickup .h2 .ico { width: 32px; height: 32px; margin: 2px 18px 0 0; }
  .bk-pickup .h2 .big { display: block; font-size: 36px; line-height: 1.2; }
  .bk-pickup .pick-grid { gap: 14px; margin-bottom: 14px; }
  .bk-pickup .pick { max-width: 300px; border-radius: 20px; padding: 40px 12px 14px 21px; text-align: left; }
  .bk-pickup .pick .badge { font-size: 18px; padding: 0 26px 0 23px; height: 31px; line-height: 31px; border-radius: 20px 0 8px 0; }
  .bk-pickup .pick img { margin: 0 auto 14px; }
  .bk-pickup .pick .name { font-size: 25px; }
  .bk-pickup .pick .price { font-size: 22px; font-weight: 700; margin-top: 4px; }
  .bk-pickup .pick .price small { font-size: 15px; font-weight: 700; }
  .bk-pickup .more { max-width: 300px; height: 49px; font-size: 20px; border-radius: 18px; }

  /* ---- 3秒で判断 ---- */
  .bk .bk-3sec { padding: 20px 0; }
  .bk-3sec p { font-size: 15px; line-height: 1.7; letter-spacing: -.02em; }
  .bk-3sec .catch { display: block; font-size: 24px; line-height: 1.25; margin: 0 0 14px; }
  .bk-3sec .catch .ico { display: inline-block; vertical-align: -.15em; width: 30px; height: 30px; margin-right: .2em; }
  .bk-3sec .catch .hl { font-size: 36px; background-size: 0% 11px; background-position: 0 100%; }
  .bk-3sec .catch.is-in .hl { background-size: 100% 11px; }
  .bk-3sec .quote { font-size: 22px; line-height: 1.45; margin: 12px 0 10px; }
  .bk-3sec .quote .hl { background-size: 0% 12px; background-position: 0 calc(100% - 2px); }
  .bk-3sec .quote.is-in .hl { background-size: 100% 12px; }
  .bk-3sec .strong { font-size: 22px; margin-top: 4px; }
  .bk-3sec .band-top { font-size: 20px; margin: 26px 0 4px; }
  .bk-3sec .band { width: auto; background: none; padding: 0; font-size: 24px; line-height: 1.7; margin-bottom: 30px; }
  .bk-3sec .band span { background: var(--bk-blue); padding: 2px 10px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  .bk-3sec .ba-sub { font-size: 17px; }
  .bk-3sec .ba-tit { font-size: 30px; margin-bottom: 10px; }
  .bk-ba { width: 300px; }
  .bk-3sec .note { font-size: 12px; }

  /* ---- 3つの実績 ---- */
  .bk .bk-stats { padding: 24px 0 25px; }
  .bk-stats .h2 { line-height: 1.5; margin-bottom: 16px; align-items: flex-start; }
  .bk-stats .h2 .ico { margin-top: 5px; }
  .bk-stats .stats { gap: 8px; margin: 0 -1px; }
  .bk-stats .ring { width: 100%; height: 70px; border-radius: 6px; background: var(--bk-pink); display: grid; grid-template-columns: 1fr auto; grid-template-areas: "lab val" "sub val"; align-items: center; align-content: center; column-gap: 6px; padding: 0 12px 0 11px; text-align: left; color: #fff; }
  .bk-stats .ring::before { border-radius: inherit; }
  .bk-stats .ring .lab { grid-area: lab; font-size: 22px; line-height: 1.2; align-self: end; }
  .bk-stats .ring .sub { grid-area: sub; font-size: 12px; line-height: 1.4; padding: 0; grid-template-rows: 1fr; opacity: 1; align-self: start; }
  .bk-stats .ring .val { grid-area: val; font-size: 64px; line-height: 1; grid-template-rows: 1fr; opacity: 1; justify-self: end; }
  .bk-stats .ring .val small { font-size: 30px; }
  .bk-stats .src { font-size: 13px; margin-top: 18px; }

  /* ---- 業種 ---- */
  .bk .bk-industry { padding: 14px 0 24px; }
  .bk-industry .h2 { display: block; margin-bottom: 12px; }
  .bk-industry .inds { gap: 12px; }
  .bk-industry .ind { width: 106px; height: 104px; border-radius: 12px; font-size: 13px; gap: 6px; padding-top: 4px; }
  .bk-industry .ind svg { width: 56px; height: 56px; }
  .bk-industry .ind:nth-child(4) { order: 1; }

  /* ---- お客様の声 ---- */
  .bk .bk-voice { padding: 24px 0 38px; }
  .bk-voice .h2 { margin-bottom: 18px; }
  .bk-voice .tags { margin-bottom: 14px; }
  .bk-voice .voices { max-width: 300px; margin: 0 auto; gap: 18px; }
  .bk-voice .voice { padding: 20px 20px 24px; border-radius: 24px; min-height: 212px; }
  .bk-voice .voice p { font-size: 15px; line-height: 1.65; margin-bottom: 8px; }
  .bk-voice .voice .meta { font-size: 12px; line-height: 2; }
  .bk-voice .voice .vico { width: 60px; height: 60px; right: 14px; bottom: 14px; }
  .bk-voice .more { text-align: center; font-size: 13px; margin-top: 24px; }

  /* ---- 診断 ---- */
  .bk .bk-quiz { padding: 16px 0 30px; }
  .bk-quiz .h2 { display: block; text-align: left; padding-left: 6px; margin-bottom: 12px; line-height: 1.3; }
  .bk-quiz .h2 .ico { display: inline-block; vertical-align: -.2em; width: 34px; height: 34px; margin-right: 8px; }
  .bk-quiz .q-tit { margin-bottom: 10px; }
  .bk-quiz .q-list { width: 300px; gap: 10px; }
  .bk-quiz .q-opt { font-size: 15px; min-height: 49px; border-radius: 10px; padding: 8px; }

  /* ---- ブース装飾セット ---- */
  .bk .bk-sets { padding: 24px 0 36px; }
  .bk-sets .h2 { margin-bottom: 6px; }
  .bk-sets .h2 .big { font-size: 36px; }
  .bk-sets .h2 .ico { width: 38px; height: 38px; margin-right: .15em; }
  .bk-sets .lead { font-size: 12px; margin: 0 0 16px; }
  .bk-sets .set-grid { max-width: 320px; gap: 20px; }
  .bk-sets .set { padding: 20px 20px 16px; border-radius: 24px; }
  .bk-sets .set img { margin-bottom: 6px; }
  .bk-sets .set .ship { font-size: 13px; }
  .bk-sets .set .name { font-size: 24px; }
  .bk-sets .set .regular { font-size: 13px; }
  .bk-sets .set .price .tax { font-size: 16px; } .bk-sets .set .price .num { font-size: 40px; } .bk-sets .set .price .yen { font-size: 16px; }
  .bk-sets .set .taxin { font-size: 12px; margin-bottom: 8px; }
  .bk-sets .set .items { font-size: 13px; margin-bottom: 20px; }
  .bk-sets .set .btns { gap: 8px; }
  .bk-sets .set .btns .btn-black { min-height: 46px; }

  /* ---- 比較表 ---- */
  .bk-compare .h2 { margin-bottom: 16px; }
  .bk-compare tbody th, .bk-compare tfoot th { min-width: 150px; background: #f2f2f2; font-size: 13px; padding-left: 10px; }
  .bk-compare thead th:first-child { background: #f2f2f2; }

  /* ---- 単品 ---- */
  .bk .bk-items { padding: 28px 0 40px; }
  .bk-items .h2 { margin-bottom: 16px; }
  .bk-items .tags { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 8px; margin: 0 0 22px; }
  .bk-items .tag { font-size: 16px; padding: 10px 4px; line-height: 1.5; }
  .bk-items .item-grid { grid-template-columns: 1fr; max-width: 300px; margin: 0 auto; gap: 30px; }
  .bk-items .item .thumb { margin-bottom: 18px; }
  .bk-items .item .name { font-size: 24px; line-height: 1.2; min-height: 0; margin: 0 0 10px; }
  .bk-items .item .name small { font-size: 24px; }
  .bk-items .item .btns { flex-direction: row; gap: 6px; }
  .bk-items .item .btns .btn { min-height: 45px; font-size: 18px; padding: 6px 16px; }
  .bk-items .item .btns .btn-black { padding: 6px 34px; }

  /* ---- 印刷・制作 ---- */
  .bk .bk-print { padding: 30px 0; }
  .bk-print .h2 { margin-bottom: 14px; }
  .bk-print .lead { font-size: 14px; line-height: 1.45; margin: 0 0 14px; }
  .bk-print .tags { gap: 10px; margin: 0 0 18px; }
  .bk-print .tags-blue .tag { font-size: 16px; padding: 3px 18px; }
  .bk-print .slide img { width: 280px; aspect-ratio: 5/3; margin-bottom: 18px; }
  .bk-print .slide p { font-size: 14px; }
  .bk-print .arrow { width: 30px; height: 40px; font-size: 40px; top: 64px; }
  .bk-print .dots { margin-top: 28px; }

  /* ---- ご注文フロー ---- */
  .bk .bk-flow { padding: 32px 0 44px; }
  .bk-flow .h2 { font-size: 22px; margin-bottom: 28px; }
  .bk-flow .h2 .ico { width: 34px; height: 34px; }
  .bk-flow .steps { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px 20px; padding: 6px 0 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .bk-flow .steps::-webkit-scrollbar { display: none; }
  .bk-flow .step { flex: 0 0 100%; width: 100%; scroll-snap-align: center; }
  .bk-flow .step .circle { width: 174px; height: 174px; font-size: 20px; gap: 10px; }
  .bk-flow .step .circle svg { width: 60px; height: 60px; }
  .bk-flow .step .num { font-size: 42px; left: calc(50% - 87px); top: -6px; }
  .bk-flow .step::after { content: ""; position: absolute; right: 56px; top: 50%; width: 24px; height: 24px; border-top: 4px solid #000; border-right: 4px solid #000; transform: translateY(-50%) rotate(45deg); }
  .bk-flow .step:last-child::after { display: none; }
  .bk-flow .lead-time { font-size: 13px; line-height: 1.6; }
  .bk-flow .lead-time strong { font-size: 16px; line-height: 1.5; margin-bottom: 4px; }

  /* ---- FAQ ---- */
  .bk .bk-faq { padding: 30px 0 40px; }
  .bk-faq .faq-cat { font-size: 18px; }

  /* ---- 利用シーン ---- */
  .bk .bk-scene { padding: 28px 0 44px; }
  .bk-scene .scenes { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; max-width: none; margin: 0 -16px 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .bk-scene .scenes::-webkit-scrollbar { display: none; }
  .bk-scene .scene { flex: 0 0 100%; width: 100%; scroll-snap-align: center; position: relative; }
  .bk-scene .scene p { margin-bottom: 14px; }
  .bk-scene .scene img { width: 248px; margin: 0 auto; }
  .bk-scene .scene::after { content: ""; position: absolute; right: 26px; top: calc(50% + 12px); width: 24px; height: 24px; border-top: 4px solid #000; border-right: 4px solid #000; transform: translateY(-50%) rotate(45deg); }
  .bk-scene .scene:last-child::after { display: none; }
  .bk-scene .scene-txt { font-size: 14px; line-height: 1.6; }

  /* ---- 電話 ---- */
  .bk .bk-tel { padding: 30px 0 34px; }
  .bk-tel .t1 { font-size: 24px; line-height: 1.3; }
  .bk-tel .num { font-size: clamp(24px, 9.6vw, 44px); margin: 10px 0 8px; letter-spacing: 0; white-space: nowrap; }
  .bk-tel .t2 { font-size: 15px; line-height: 1.5; }

  /* ---- 入稿規定 ---- */
  .bk .bk-spec { padding: 28px 0 18px; }
  .bk-spec .spec-sub { font-size: 17px; }
  .bk-spec .h2 { margin-bottom: 16px; }
  .bk-spec .warn { font-size: 14px; line-height: 1.6; margin-bottom: 8px; }
  .bk-spec .spec-list { font-size: 14px; line-height: 1.6; margin: 0 -3px 18px; }
  .bk-spec .spec-box { width: 330px; padding: 12px 6px; font-size: 18px; line-height: 1.5; }

  /* ---- ご入稿前にチェック ---- */
  .bk .bk-check { padding: 36px 0 38px; }
  .bk-check .checks { max-width: 330px; gap: 12px; margin-bottom: 40px; }
  .bk-check .check { font-size: 18px; padding: 20px 8px; line-height: 1.5; }
  .bk-check table { display: table; width: 330px; max-width: 100%; table-layout: fixed; font-size: 13px; }
  .bk-check tbody { display: table-row-group; }
  .bk-check tr { display: table-row; }
  .bk-check th, .bk-check td { display: table-cell; width: auto; padding: 14px 6px; line-height: 1.45; overflow-wrap: anywhere; border-bottom: 1px solid #555; }
  .bk-check th { width: 130px; text-align: left; padding-left: 8px; color: var(--bk-gray); font-size: 14px; }
}

/* ==== スマホ追加調整 ==== */
.bk-stats .ring .fill, .bk .sl-prev, .bk .sl-next { display: none; }
@media (max-width: 767px) {
  .bk-reason .h2 .hl { font-size: 30px; }
  .bk-reason .reason .tit { margin-left: -44px; }

  .bk-3sec .catch { font-size: 29px; }
  .bk-3sec .catch .ico { width: 34px; height: 34px; }
  .bk-3sec .catch .hl { font-size: 43px; }
  .bk-3sec .ba-tit { font-size: 24px; }
  .bk-3sec .ba-tit .accent-blue { font-size: 30px; }

  .bk-stats .h2 { font-size: 28px; }
  .bk-stats .ring, .bk-stats .ring.is-white { background: none; color: var(--bk-pink); }
  .bk-stats .ring::before { display: none; }
  .bk-stats .ring .val { color: var(--bk-pink); }
  .bk-stats .ring .fill { display: grid; position: absolute; inset: 0; grid-template-columns: 1fr auto; grid-template-areas: "lab val" "sub val"; align-items: center; align-content: center; column-gap: 6px; padding: 0 12px 0 11px; border-radius: inherit; background: var(--bk-pink); color: #fff; clip-path: inset(0 calc(100% - var(--p) * 1%) 0 0 round 6px); }
  .bk-stats .ring .fill .val { color: #fff; }

  .bk-voice .tags, .bk-print .tags { justify-content: flex-start; }
  .bk-items .tag { text-align: center; }

  .bk-compare thead th small { display: none; }

  .bk-flow .step::after, .bk-scene .scene::after { display: none; }
  .bk .sl-prev, .bk .sl-next { display: block; position: absolute; top: 50%; width: 44px; height: 44px; margin-top: -22px; padding: 0; background: none; border: 0; cursor: pointer; }
  .bk .sl-prev::before, .bk .sl-next::before { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 20px; margin: -10px 0 0 -14px; border-top: 4px solid #000; border-right: 4px solid #000; transform: rotate(45deg); }
  .bk-flow .sl-next { right: 42px; } .bk-flow .sl-prev { left: 42px; }
  .bk-scene .scene .sl-next, .bk-scene .scene .sl-prev { top: calc(50% + 12px); }
  .bk-scene .sl-next { right: 14px; } .bk-scene .sl-prev { left: 14px; }
  .bk-scene .sl-prev::before { transform: rotate(-135deg); margin-left: -6px; }
  .bk-scene .dots { display: flex; justify-content: center; gap: 16px; margin: -6px 0 20px; }
  .bk-scene .dots button { width: 10px; height: 10px; padding: 0; border-radius: 50%; background: #ccc; transition: background-color .25s; }
  .bk-scene .dots button.is-active { background: var(--bk-blue); }
}
@media (max-width: 767px) {
  .bk-voice .tags { max-width: 300px; margin: 0 auto 14px; }
  .bk-print .arrow { font-size: 0; width: 44px; height: 72px; top: 48px; color: #aaa; }
  .bk-print .arrow::before { content: ""; position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -20px; border-top: 5px solid currentColor; border-right: 5px solid currentColor; transform: rotate(45deg); border-radius: 2px; }
  .bk-print .arrow.prev::before { transform: rotate(-135deg); margin-left: -8px; }
  .bk-print .arrow.prev { left: -8px; } .bk-print .arrow.next { right: -8px; }
  .bk-flow .step, .bk-flow .steps.is-in .step { transform: none; }
  .bk-flow .step > * { transform: translateX(56px); transition: transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: inherit; }
  .bk-flow .steps.is-in .step > * { transform: none; }
}

.bk .price strong, .bk-modal .m-price strong, .bk-quiz .r-price strong, .bk-compare thead th small strong, .bk-cartpop .cp-card .pr strong { font-weight: 700; }
.bk-cartpop .cp-total strong { font-weight: 700; }
.bk-cartpop .cp-total strong .tax { font-weight: 400; font-size: .7em; }

/* 正式見積依頼フォーム上の電話番号 */
#contact_form .contact_tel_date a { color: inherit; text-decoration: none; }

/* 正式見積依頼フォーム上のフリーコールアイコン(スマホ) */
@media (max-width: 767px) {
  #contact_form .contact_tel_date { display: flex; align-items: center; justify-content: center; gap: .25em; white-space: nowrap; font-size: clamp(22px, 7.4vw, 30px); }
  #contact_form .contact_tel_date::before { content: ""; flex: 0 0 auto; width: 1.25em; height: 1em; background: url(../img/common/ico_freecall_wh.svg) no-repeat center / contain; }
}
