@charset "utf-8";
/* ============================================================
   天膳茶 事業者様向けページ（BtoB）
   体質チェック（BtoC）と同じデザイン言語で統一
   ============================================================ */

:root{
  --ink:#241F1C; --ink-sub:#6E6862; --ink-3:#3E3833;
  --line:#EAE1D3; --line-soft:#F1EADF;
  --cream:#FBF7F0; --cream2:#F6EFE3;
  --or:#E95B0C; --or-d:#C94B08; --or-l:#FDF0E6; --or-l2:#FCE4D2;
  --kin:#B08A46; --kin-soft:#E3D3AE;
  --mincho:"Shippori Mincho",serif;
  /* ヘッダーのロゴ用。テロップ明朝（N仕様）に近い、字面が大きく線の太い画面向け明朝 */
  --telop:"BIZ UDPMincho","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --gothic:"Zen Kaku Gothic New",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  --maru:"Zen Maru Gothic","Zen Kaku Gothic New",sans-serif;
  --r:22px;
  --sh:0 3px 18px rgba(90,70,45,.07);
  --sh-lift:0 14px 34px rgba(90,70,45,.14);
  --w:1080px;
  /* ブレンド別カラー */
  --c-you:#D2481C; --c-sou:#2F86B4; --c-kirei:#DC6F94; --c-sukkiri:#C79A18; --c-yasuragi:#4F9059;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--gothic);font-size:16px;line-height:1.95;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;text-size-adjust:100%;overflow-x:hidden;
  background-image:radial-gradient(rgba(180,150,105,.16) 1.3px,transparent 1.3px);
  background-size:18px 18px;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;line-height:1.5;font-weight:700}
p{margin:0 0 1em}p:last-child{margin-bottom:0}
ul{margin:0;padding:0;list-style:none}
a{color:inherit}

/* ---------- レイアウト ---------- */
.wrap{width:min(100% - 32px,var(--w));margin-inline:auto}
.wrap.narrow{--w:860px}
.section{padding:clamp(56px,8vw,96px) 0}
.section.tint{background:var(--cream2);border-block:1px solid var(--line)}
.section.paper{background:#fff;border-block:1px solid var(--line)}

/* ---------- ヘッダー ---------- */
.hd{position:sticky;top:0;z-index:50;background:rgba(251,247,240,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd .in{display:flex;align-items:center;gap:18px;
  width:min(100% - 32px,var(--w));margin-inline:auto;padding:11px 0}
.hd .lg{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.hd .lg b{font-family:var(--telop);font-size:18px;font-weight:700;letter-spacing:.12em;line-height:1.25}
.hd .lg span{display:block;font-family:var(--telop);font-size:10.5px;font-weight:700;
  letter-spacing:.16em;color:var(--or)}
.hd nav{margin-left:auto;display:flex;align-items:center;gap:22px}
.hd nav a{font-size:13px;font-weight:700;color:var(--ink-sub);text-decoration:none;
  white-space:nowrap;transition:color .18s}
.hd nav a:hover{color:var(--or)}
/* ボタンは .hd nav a の文字色指定より優先させて白のままにする */
.hd nav a.btn,.hd nav a.btn:hover{color:#fff}
.hd .btn{padding:11px 22px;font-size:13.5px;box-shadow:0 4px 0 var(--or-d)}
@media (max-width:900px){.hd nav a:not(.btn){display:none}}
@media (max-width:520px){
  .hd .in{gap:10px}
  .hd .lg b{font-size:15px}
  .hd .btn{padding:10px 15px;font-size:12.5px;letter-spacing:.02em}
}

/* PC専用の改行・語句（スマホでは非表示） */
.pc{display:inline}
@media (max-width:700px){.pc{display:none}}
/* スマホ専用の改行（PCでは非表示） */
.sp{display:none}
@media (max-width:700px){.sp{display:inline}}

/* スマホでは、中央寄せセクションの本文だけ左寄せにする（見出し・ボタンは中央のまま） */
@media (max-width:700px){
  .center .lead,
  .note.center,
  .cta h2,
  .cta p:not(.eyebrow){text-align:left}
  /* 特徴タグは2つずつ2段に */
  .marks span{flex:0 0 calc((100% - 8px) / 2);text-align:center}
}

/* ---------- 見出し ---------- */
.eyebrow{display:flex;align-items:center;gap:10px;
  font-size:11.5px;font-weight:900;letter-spacing:.2em;color:var(--or);margin:0 0 16px}
.eyebrow::before{content:"";width:24px;height:3px;border-radius:3px;background:var(--or);flex:none}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:24px;height:3px;border-radius:3px;background:var(--or)}

.h2{font-family:var(--mincho);font-weight:700;letter-spacing:.03em;
  font-size:clamp(23px,4.2vw,33px);line-height:1.5}
.h2 em{font-style:normal;color:var(--or)}
.h2 + .rule{width:100%;height:1px;background:var(--line);margin:20px 0 0;position:relative}
.h2 + .rule::before{content:"";position:absolute;left:0;top:-1px;width:76px;height:3px;
  border-radius:3px;background:var(--or)}
.center{text-align:center}
.center .h2 + .rule::before{left:50%;transform:translateX(-50%)}
.lead{font-size:15px;color:var(--ink-sub);line-height:2.05;margin-top:22px}
.h3{font-family:var(--mincho);font-size:20px;font-weight:700;letter-spacing:.03em}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  padding:17px 34px;border:2px solid transparent;border-radius:999px;cursor:pointer;
  font-family:var(--gothic);font-weight:900;font-size:16px;letter-spacing:.06em;
  background:var(--or);color:#fff;text-decoration:none;
  box-shadow:0 6px 0 var(--or-d),0 12px 22px rgba(233,91,12,.26);
  transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-3px);box-shadow:0 8px 0 var(--or-d),0 18px 30px rgba(233,91,12,.32)}
.btn:active{transform:translateY(3px);box-shadow:0 3px 0 var(--or-d)}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--line);
  box-shadow:var(--sh);font-weight:700;font-size:15px}
.btn.ghost:hover{border-color:var(--or);color:var(--or);box-shadow:var(--sh-lift)}
.btn.wide{width:100%}
.btn svg{width:18px;height:18px;flex:none}
.btnrow{display:flex;flex-wrap:wrap;gap:14px}
.btnrow.center{justify-content:center}
/* スマホではボタン内の文言を1行に保つ */
@media (max-width:700px){
  .btn{padding:16px 22px;font-size:15px;letter-spacing:.02em;white-space:nowrap}
  .btn.ghost{font-size:14.5px}
  .hd .btn{padding:10px 15px;font-size:12.5px}
}

/* ---------- ヒーロー ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(44px,7vw,78px) 0 clamp(52px,7vw,86px)}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--line)}
.hero .grid{display:grid;grid-template-columns:1fr .92fr;gap:clamp(26px,4vw,54px);align-items:center}
.hero .tag{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:900;
  letter-spacing:.18em;color:var(--or);background:var(--or-l);border:1px solid var(--or-l2);
  border-radius:999px;padding:7px 18px;margin-bottom:22px}
.hero h1{font-family:var(--mincho);font-weight:700;letter-spacing:.02em;
  font-size:clamp(25px,4.4vw,40px);line-height:1.52}
.hero h1 em{font-style:normal;color:var(--or)}
.hero .sub{margin-top:22px;font-family:var(--mincho);font-size:clamp(16px,2.2vw,20px);
  font-weight:700;line-height:1.75;color:var(--ink)}
.hero .txt{margin-top:14px;font-size:14.5px;color:var(--ink-sub);line-height:2}
.hero .btnrow{margin-top:32px}
.hero .marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.hero .marks span{font-size:11.5px;font-weight:900;letter-spacing:.06em;color:var(--kin);
  border:1px solid var(--kin-soft);border-radius:8px;padding:6px 13px;background:#fff}
.hero .shot{position:relative}
.hero .shot .a{border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-lift)}
.hero .shot .b{position:absolute;right:-6px;bottom:-30px;width:46%;border-radius:16px;
  overflow:hidden;border:4px solid #fff;box-shadow:var(--sh-lift)}
@media (max-width:820px){
  .hero .grid{grid-template-columns:1fr}
  .hero .shot .b{width:38%;bottom:-18px}
  /* スマホでは商品写真を一番上に */
  .hero .shot{order:-1;margin-bottom:26px}
}

/* ---------- 汎用カード ---------- */
.cards{display:grid;gap:18px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;
  box-shadow:var(--sh);overflow:hidden}
.card .bd{padding:22px 22px 24px}
.card h3{font-family:var(--mincho);font-size:19px;font-weight:700;letter-spacing:.03em}
.card p{margin-top:10px;font-size:13.5px;color:var(--ink-sub);line-height:1.95}
.card .ph{aspect-ratio:3/2;overflow:hidden;background:var(--cream2)}
.card .ph img{width:100%;height:100%;object-fit:cover}

/* ---------- メリット ---------- */
.merit{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.merit li{background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:26px 18px 24px;text-align:center;box-shadow:var(--sh);position:relative}
.merit li .no{font-family:var(--mincho);font-size:11px;font-weight:800;letter-spacing:.2em;
  color:var(--or);display:block;margin-bottom:12px}
.merit li .ic{width:54px;height:54px;margin:0 auto 14px;border-radius:50%;
  border:2px solid var(--or-l2);display:grid;place-items:center;color:var(--or);background:var(--or-l)}
.merit li .ic svg{width:26px;height:26px}
.merit li b{display:block;font-family:var(--mincho);font-size:15.5px;font-weight:700;line-height:1.65}
/* 画面が狭いときは3列2段に。余った2枚は下段中央に寄せる（横スクロールはさせない） */
@media (max-width:960px){
  .merit{--mg:clamp(8px,1.6vw,16px);
    display:flex;flex-wrap:wrap;justify-content:center;gap:var(--mg)}
  .merit li{flex:0 0 calc((100% - var(--mg) * 2) / 3);
    padding:clamp(14px,2.4vw,26px) clamp(6px,1.4vw,18px) clamp(12px,2.2vw,24px)}
  .merit li .no{font-size:clamp(8.5px,1.7vw,11px);letter-spacing:.1em;margin-bottom:clamp(6px,1.2vw,12px)}
  .merit li .ic{width:clamp(38px,7vw,54px);height:clamp(38px,7vw,54px);
    margin-bottom:clamp(9px,1.6vw,14px);border-width:1.5px}
  .merit li .ic svg{width:clamp(18px,3.4vw,26px);height:clamp(18px,3.4vw,26px)}
  .merit li b{font-size:clamp(11.5px,2.3vw,15.5px);letter-spacing:-.02em;line-height:1.55}
}

/* ---------- ラインナップ ---------- */
.blends{display:grid;gap:14px;margin-top:30px}
.blend{display:grid;grid-template-columns:150px 190px 1fr;gap:22px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 24px;box-shadow:var(--sh)}
.blend .pk{display:flex;align-items:flex-end;justify-content:center;gap:6px}
/* 実寸比に合わせる（10包入り 12×20cm ／ 1包入り 10×15cm） */
.blend .pk img{width:72px}
.blend .pk img.s{width:60px}
.blend .nm{font-family:var(--mincho);font-size:30px;font-weight:800;line-height:1.2;color:var(--bc)}
.blend .nm small{font-family:var(--gothic);font-size:11px;font-weight:700;color:var(--ink-sub);
  margin-left:8px;letter-spacing:.08em}
.blend .bar{width:100%;height:2px;background:var(--bc);border-radius:2px;margin:10px 0 10px;opacity:.85}
.blend .when{font-size:12.5px;color:var(--ink-sub);line-height:1.75}
.blend .ds{font-size:14px;line-height:1.95;color:var(--ink-3)}
.blend .mat{margin-top:8px;font-size:11.5px;color:var(--ink-sub);letter-spacing:.02em}
@media (max-width:820px){
  .blend{grid-template-columns:110px 1fr;gap:16px;padding:16px}
  .blend .pk img{width:54px}.blend .pk img.s{width:45px}
  .blend .nm{font-size:25px}
  .blend .txt{grid-column:1/-1}
}

/* ---------- 特徴タグ ---------- */
.specs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}
.specs li{text-align:center;border:1px solid var(--or-l2);border-radius:14px;background:var(--or-l);
  padding:14px 10px}
.specs li b{display:block;font-family:var(--mincho);font-size:15px;font-weight:700;color:var(--or-d)}
.specs li span{display:block;font-size:10.5px;color:var(--ink-sub);margin-top:4px;line-height:1.6}
@media (max-width:640px){.specs{grid-template-columns:repeat(2,1fr)}}

/* ---------- 体質チェック ---------- */
.check{display:grid;grid-template-columns:1fr .8fr;gap:clamp(24px,4vw,48px);align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--sh-lift)}
.check .bd{padding:clamp(26px,4vw,44px)}
.check .ph{position:relative;height:100%;min-height:240px}
.check .ph img{width:100%;height:100%;object-fit:cover}
.check .ph img.mini{position:absolute;right:16px;bottom:16px;width:36%;aspect-ratio:1/1;height:auto;
  border-radius:50%;border:4px solid #fff;box-shadow:var(--sh-lift);object-fit:cover}
@media (max-width:820px){
  .check{grid-template-columns:1fr}
  .check .ph{order:-1;min-height:200px}
  .check .ph img.mini{width:32%;right:12px;bottom:12px}
}

/* ---------- 業態別 ---------- */
.uses{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:34px}
.use{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--sh);
  transition:transform .25s,box-shadow .25s}
.use:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.use .ph{aspect-ratio:16/7;overflow:hidden;background:var(--cream2)}
.use .ph img{width:100%;height:100%;object-fit:cover}
.use .bd{padding:22px 24px 26px}
.use h3{font-family:var(--mincho);font-size:20px;font-weight:700;letter-spacing:.04em;
  display:flex;align-items:center;gap:10px}
.use h3::before{content:"";width:5px;height:20px;border-radius:3px;background:var(--or);flex:none}
/* letter-spacing を詰めて4カードとも本文4行に揃える */
.use p{margin-top:12px;font-size:13.5px;color:var(--ink-sub);line-height:2;letter-spacing:0}
@media (max-width:720px){.uses{grid-template-columns:1fr}}

/* ---------- 導入店舗の声 ---------- */
.voices{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:34px}
.voice{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--sh)}
.voice .ph{aspect-ratio:16/9;overflow:hidden;background:var(--cream2)}
.voice .ph img{width:100%;height:100%;object-fit:cover}
.voice .bd{padding:24px 26px 26px}
.voice .q{font-family:var(--mincho);font-size:18.5px;font-weight:700;color:var(--or-d);
  line-height:1.6;letter-spacing:.02em}
.voice .q::before{content:"“";font-size:26px;color:var(--or-l2);margin-right:2px;line-height:0}
.voice p{margin-top:14px;font-size:13.5px;color:var(--ink-sub);line-height:2}
.voice .who{display:flex;align-items:center;gap:16px;margin-top:20px;padding-top:18px;
  border-top:1px dashed var(--line)}
.voice .who img{width:84px;height:64px;object-fit:cover;border-radius:10px;flex:none;border:1px solid var(--line)}
.voice .who .t b{display:block;font-family:var(--mincho);font-size:15px;font-weight:700;line-height:1.5}
.voice .who .t span{display:block;font-size:11.5px;color:var(--ink-sub);line-height:1.75}
@media (max-width:720px){.voices{grid-template-columns:1fr}}
/* スマホでも見出しを1行に収める */
@media (max-width:700px){
  .voice .q{font-size:15px;letter-spacing:0}
  .voice .q::before{font-size:20px}
}

/* ---------- サポート ---------- */
.supports{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}
.supports li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 20px;
  box-shadow:var(--sh);text-align:center}
.supports li .ic{width:48px;height:48px;margin:0 auto 14px;color:var(--or)}
.supports li .ic svg{width:100%;height:100%}
.supports li b{display:block;font-family:var(--mincho);font-size:15.5px;font-weight:700;line-height:1.6}
.supports li span{display:block;margin-top:8px;font-size:12px;color:var(--ink-sub);line-height:1.85}
@media (max-width:860px){
  .supports{grid-template-columns:repeat(2,1fr)}
  /* 見出しの行数が違っても、説明文の書き出し位置を揃える */
  .supports li{display:flex;flex-direction:column}
  .supports li b{min-height:calc(15.5px * 1.6 * 2)}
  .supports li span{margin-top:auto;padding-top:8px}
}

/* ---------- お取引の流れ ---------- */
.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin-top:30px}
.flow .st{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 18px;
  text-align:center;box-shadow:var(--sh)}
.flow .st .no{font-family:var(--mincho);font-size:11px;font-weight:800;letter-spacing:.22em;
  color:var(--or);display:block;margin-bottom:8px}
.flow .st b{font-family:var(--mincho);font-size:17px;font-weight:700;line-height:1.6}
.flow .ar{color:var(--or-l2);font-size:22px;line-height:1;font-weight:900}
@media (max-width:720px){
  .flow{grid-template-columns:1fr}
  .flow .ar{transform:rotate(90deg);text-align:center}
}

/* ---------- CTA ---------- */
.cta{position:relative;border-radius:26px;overflow:hidden;background:var(--or);color:#fff;
  padding:clamp(34px,5vw,56px) clamp(24px,4vw,54px);box-shadow:var(--sh-lift)}
.cta::before{content:"";position:absolute;inset:0;opacity:.14;
  background-image:radial-gradient(rgba(255,255,255,.9) 1.4px,transparent 1.4px);background-size:16px 16px}
.cta > *{position:relative}
.cta .eyebrow{color:#fff}
.cta .eyebrow::before,.cta .eyebrow::after{background:#fff}
.cta h2{font-family:var(--mincho);font-size:clamp(22px,3.6vw,31px);font-weight:700;line-height:1.5}
.cta p{margin-top:18px;font-size:14.5px;line-height:2;color:rgba(255,255,255,.94)}
.cta .btn{background:#fff;color:var(--or-d);box-shadow:0 6px 0 rgba(0,0,0,.18);margin-top:28px}
.cta .btn:hover{box-shadow:0 8px 0 rgba(0,0,0,.18),0 18px 30px rgba(0,0,0,.2)}
.cta .note{margin-top:18px;font-size:12px;color:rgba(255,255,255,.85);line-height:1.9}

/* ---------- 開発者：ストーリー年表 ---------- */
.story{--gap:clamp(26px,4vw,44px);
  position:relative;display:grid;gap:var(--gap);
  list-style:none;margin:0;padding:0}
.story li{position:relative;display:grid;grid-template-columns:68px minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(16px,2.6vw,30px);align-items:center}
/* 章バッジの中心を通る縦の点線。項目間のすき間も埋めて1本につなぐ */
.story li::before{content:"";position:absolute;left:33px;
  top:calc(var(--gap) / -2);bottom:calc(var(--gap) / -2);
  border-left:2px dotted var(--or-l2);z-index:0}
.story li:first-child::before{top:50%}
/* 最後の「進化」の下も、点線が続いていくように少し伸ばす */
.story li:last-child::before{bottom:-46px}
.story li.rev .ph{order:3}
.story li.rev .tx{order:2}
.story .ch{width:68px;height:68px;border-radius:50%;background:var(--or);color:#fff;
  display:grid;place-items:center;font-family:var(--mincho);font-weight:800;font-size:19px;
  letter-spacing:.06em;line-height:1.2;box-shadow:0 4px 12px rgba(233,91,12,.28);
  position:relative;z-index:1;align-self:center}
.story .ph{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh)}
.story .ph img{width:100%;height:100%;object-fit:cover;display:block}
.story .tx p{font-size:14px;line-height:2.05;color:var(--ink-3)}
.story .tx em{font-style:normal;color:var(--or-d);font-weight:700}
.story .tx.wide{grid-column:2/-1}
@media (max-width:860px){
  .story li::before{display:none}
  .story li,.story li.rev{grid-template-columns:1fr;gap:14px}
  .story li.rev .ph,.story li.rev .tx{order:initial}
  .story .ch{width:56px;height:56px;font-size:17px}
  .story .tx.wide{grid-column:auto}
}

/* ---------- 開発者ボックス ---------- */
.devbox{margin-top:clamp(34px,5vw,52px);display:grid;grid-template-columns:1fr 330px;
  gap:clamp(24px,4vw,44px);align-items:center;background:var(--or);color:#fff;
  border-radius:24px;padding:clamp(28px,4vw,44px);box-shadow:var(--sh-lift);position:relative;overflow:hidden}
.devbox::before{content:"";position:absolute;inset:0;opacity:.13;
  background-image:radial-gradient(rgba(255,255,255,.9) 1.4px,transparent 1.4px);background-size:16px 16px}
.devbox > *{position:relative}
.devbox h3{font-family:var(--mincho);font-size:clamp(19px,2.8vw,25px);font-weight:700;line-height:1.55}
.devbox .bd p{margin-top:18px;font-size:13.5px;line-height:2;color:rgba(255,255,255,.94)}
.devbox .pf{display:flex;align-items:stretch;gap:18px;
  border-left:1px solid rgba(255,255,255,.35);padding-left:clamp(18px,2.6vw,30px)}
/* 写真の天地を、右の肩書きテキストの上下ラインに合わせる */
.devbox .pf img{width:140px;height:auto;align-self:stretch;object-fit:cover;
  border-radius:12px;flex:none;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.devbox .pf .t{display:flex;flex-direction:column;justify-content:center}
.devbox .pf .rl{display:block;font-size:10px;font-weight:900;letter-spacing:.2em;
  color:rgba(255,255,255,.8);margin-bottom:6px}
.devbox .pf b{display:block;font-family:var(--mincho);font-size:21px;font-weight:700;letter-spacing:.08em}
.devbox .pf span{display:block;font-size:11px;line-height:1.8;color:rgba(255,255,255,.9);margin-top:8px}
@media (max-width:820px){
  .devbox{grid-template-columns:1fr}
  .devbox .pf{border-left:0;border-top:1px solid rgba(255,255,255,.35);padding-left:0;padding-top:24px}
}

/* ---------- FAQ ---------- */
.faq{margin-top:30px;display:grid;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh);
  overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:19px 54px 19px 22px;position:relative;
  font-weight:700;font-size:15px;line-height:1.7;display:flex;gap:12px;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--mincho);font-weight:800;color:var(--or);
  font-size:17px;line-height:1.5;flex:none}
.faq summary::after{content:"";position:absolute;right:24px;top:26px;width:10px;height:10px;
  border-right:2.5px solid var(--or);border-bottom:2.5px solid var(--or);
  transform:rotate(45deg);transition:transform .22s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .a{padding:0 24px 22px 54px;font-size:13.5px;color:var(--ink-sub);line-height:2;position:relative}
.faq .a::before{content:"A";position:absolute;left:22px;top:0;font-family:var(--mincho);
  font-weight:800;color:var(--kin);font-size:17px}

/* ---------- ダウンロード / 資材 ---------- */
.assets{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.assets.c4{grid-template-columns:repeat(4,1fr)}
.assets.c5{grid-template-columns:repeat(5,1fr)}
.asset{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  box-shadow:var(--sh);display:flex;flex-direction:column}
/* 高さを固定にして、種類が違うカード同士でも写真下のラインが揃うようにする */
.asset .ph{position:relative;height:236px;background:var(--cream2);display:grid;place-items:center;
  border-bottom:1px solid var(--line);overflow:hidden}
/* 画像は絶対配置で枠にぴったり収める。
   （grid + place-items:center のままだと height:100% が解決されず、
     画像が width/height 属性の比率で伸びて枠からはみ出し、下が切れてしまう） */
.asset .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:480px){.asset .ph{height:190px}}
.asset .ph .ready{text-align:center;color:#B7ADA0;font-size:11.5px;line-height:1.8;padding:14px}
.asset .ph .ready svg{width:34px;height:34px;margin:0 auto 8px;opacity:.6}
.asset .bd{padding:16px 16px 18px;text-align:center;display:flex;flex-direction:column;gap:12px;
  flex:1;justify-content:space-between}
.asset .bd b{font-family:var(--mincho);font-size:14px;font-weight:700;line-height:1.55;
  letter-spacing:-.01em}
.asset .bd span{display:block;font-size:11px;color:var(--ink-sub);line-height:1.7;margin-top:6px}
.asset .dl{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 14px;
  border-radius:999px;background:var(--or);color:#fff;font-weight:900;font-size:12.5px;
  text-decoration:none;box-shadow:0 3px 0 var(--or-d);transition:transform .18s}
.asset .dl:hover{transform:translateY(-2px)}
.asset .dl svg{width:14px;height:14px}
/* 準備中のダウンロード枠 */
.asset .dl.is-soon{background:var(--cream2);color:#A9A093;box-shadow:none;cursor:default;
  border:1px dashed var(--line)}
.asset .dl.is-soon:hover{transform:none}
/* 二次元コードのサムネイル枠は余白をとって全体を見せる（高さは共通の .ph に合わせる） */
/* 余白は画像側の padding で取る（絶対配置は枠の padding を無視するため） */
.asset .ph.qr{background:#fff}
.asset .ph.qr img{padding:22px;object-fit:contain}
/* 価格表などA4の帳票サムネイルは、欠けないよう全体を収めて表示する */
.asset .ph.doc{background:#fff}
.asset .ph.doc img{padding:10px;object-fit:contain}
@media (max-width:900px){.assets,.assets.c4,.assets.c5{grid-template-columns:repeat(2,1fr)}}

/* ---------- 商品リーフレット（大きく2面を見せる） ---------- */
.dlmark{display:inline-block;background:var(--or);color:#fff;border-radius:6px;
  padding:1px 8px;font-size:12px;font-weight:900;letter-spacing:.04em;margin-inline:2px}
.leaflet{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(22px,3.4vw,40px);align-items:center;margin-top:30px;
  background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:clamp(20px,3vw,32px);box-shadow:var(--sh)}
.leaflet .ph{display:grid;gap:10px}
/* 実物は角が立っているので角丸にしない */
.leaflet .ph img{width:100%;height:auto;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(90,70,45,.08)}
.leaflet .bd h3{font-family:var(--mincho);font-size:clamp(19px,2.6vw,23px);font-weight:700;
  letter-spacing:.03em;margin-top:12px}
.leaflet .bd p{margin-top:12px;font-size:13.5px;color:var(--ink-sub);line-height:2}
.leaflet .bd p.sub{margin-top:10px;font-size:12px;color:#9C9184}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;
  letter-spacing:.1em;border-radius:999px;padding:6px 14px}
.badge.mail{background:var(--or-l);color:var(--or-d);border:1px solid var(--or-l2)}
.badge.mail::before{content:"✉";font-size:12px;line-height:1}
@media (max-width:820px){.leaflet{grid-template-columns:1fr}}

/* ---------- PCでは中央寄せ、スマホでは左寄せ（ボタンは常に中央） ---------- */
.ctr{text-align:center}
.ctr .numh{justify-content:center}
.ctr .btnrow{justify-content:center}
/* 左右のカード列は中央寄せの影響を受けないよう戻す */
.ctr .leaflet .bd,.ctr .asset .bd{text-align:left}
.ctr .asset .bd{text-align:center}
@media (max-width:700px){
  .ctr{text-align:left}
  .ctr .numh{justify-content:flex-start}
  .ctr .btnrow{justify-content:center}
  /* ヒーローの本文もスマホでは左寄せ（見出し・タグは中央のまま） */
  .hero .wrap.center .txt{text-align:left}
}

/* ---------- 番号つき見出し ---------- */
.numh{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.numh .n{width:38px;height:38px;border-radius:50%;background:var(--or);color:#fff;flex:none;
  display:grid;place-items:center;font-family:var(--mincho);font-weight:800;font-size:17px}
.numh h2{font-family:var(--mincho);font-size:clamp(20px,3.2vw,26px);font-weight:700;letter-spacing:.03em}

/* ---------- フッター ---------- */
.ft{background:#fff;border-top:1px solid var(--line);padding:clamp(40px,6vw,60px) 0 34px}
.ft .top{display:grid;grid-template-columns:250px 1fr;gap:clamp(24px,4vw,46px);align-items:start}
.ft .co img{width:112px;margin-bottom:14px}
.ft .co b{font-family:var(--mincho);font-size:18px;font-weight:700;letter-spacing:.06em}
.ft dl{display:grid;grid-template-columns:88px 1fr;gap:8px 16px;margin:0;font-size:13px;line-height:1.95}
.ft dt{color:var(--or);font-weight:900;font-size:11.5px;letter-spacing:.1em;padding-top:3px}
.ft dd{margin:0;color:var(--ink-sub)}
.ft dd .site{color:var(--or);font-weight:700;text-decoration:none;
  border-bottom:1px solid var(--or-l2);transition:border-color .18s}
.ft dd .site:hover{border-bottom-color:var(--or)}
.ft .links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;padding-top:22px;
  border-top:1px solid var(--line)}
.ft .links a{font-size:12.5px;font-weight:700;color:var(--ink-sub);text-decoration:none}
.ft .links a:hover{color:var(--or)}
.copy{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);
  font-size:11px;color:#9C9184;line-height:1.85}
.copy .cr{margin-top:12px;text-align:center;letter-spacing:.06em}
@media (max-width:760px){.ft .top{grid-template-columns:1fr}.ft dl{grid-template-columns:76px 1fr}}

/* ---------- 汎用 ---------- */
.note{font-size:12px;color:var(--ink-sub);line-height:1.9;margin-top:14px}
.mt{margin-top:34px}
.hr{height:1px;background:var(--line);margin:clamp(40px,6vw,64px) 0}
