/* ============================================================================
   100年企業録 — メディア専用CSS（/media/）
   design.html を実テーマ値へ翻訳。ブランド赤は #C90000（design.htmlの#C8342Aは不使用）。
   本体CSS（front/sub.min.css）はメディアでは読み込まない。全ルールを body.kmedia に
   スコープし、本体側へ漏れないようにしている。
   ========================================================================== */

body.kmedia{
  /* ---- トークン（実テーマ準拠） ---- */
  --washi:#fbf4ee;      /* 生成り */
  --washi2:#efe6d5;
  --washi-d:#e7dcc6;
  --sumi:#171717;       /* 文字 */
  --sumi2:#4a4239;
  --gray:#6c6c6c;       /* サブ文字 */
  --line:#d8cdb4;
  --shu:#C90000;        /* メイン赤（実テーマ） */
  --shu-d:#a00000;
  --usu-aka:#ffbebe;    /* 薄赤 */
  --gold:#A88848;
  --mincho:"Shippori Mincho B1","Shippori Mincho",serif;
  --serif:"Noto Serif JP",serif;
  --gothic:"Zen Kaku Gothic New",sans-serif;

  margin:0;
  color:var(--sumi);
  font-family:var(--gothic);
  line-height:1.95;
  letter-spacing:.06em;
  -webkit-font-smoothing:antialiased;
  background-color:var(--washi);
  background-image:
    repeating-linear-gradient(90deg,rgba(120,100,70,.020) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(0deg,rgba(120,100,70,.016) 0 1px,transparent 1px 4px),
    radial-gradient(circle at 20% 30%,rgba(150,120,80,.04),transparent 40%),
    radial-gradient(circle at 80% 70%,rgba(150,120,80,.035),transparent 45%);
}
body.kmedia *{box-sizing:border-box;}
body.kmedia img{max-width:100%;height:auto;vertical-align:bottom;}
html:has(body.kmedia){scroll-padding-top:96px;scroll-behavior:smooth;}
body.kmedia a{color:inherit;}

/* ============================ ヘッダー ============================ */
.kmedia-head{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 30px;border-bottom:1px solid var(--line);background:rgba(251,244,238,.94);backdrop-filter:blur(6px);}
.kmedia-brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;line-height:1;}
.kmedia-brand .nm{font-family:var(--mincho);font-weight:800;font-size:24px;letter-spacing:.14em;color:var(--sumi);}
.kmedia-brand .en{font-family:var(--gothic);font-size:9px;letter-spacing:.28em;color:var(--gray);}
.kmedia-nav{display:flex;align-items:center;gap:30px;}
.kmedia-nav a{text-decoration:none;color:var(--sumi);font-family:var(--gothic);font-size:13px;
  display:flex;flex-direction:column;align-items:center;gap:3px;letter-spacing:.05em;}
.kmedia-nav a .en{font-size:8.5px;color:var(--shu);letter-spacing:.2em;}
.kmedia-nav a.cv{background:var(--shu);color:#fff;padding:12px 22px;}
.kmedia-nav a.cv .en{color:var(--usu-aka);}
.kmedia-burger{display:none;background:none;border:0;flex-direction:column;gap:5px;cursor:pointer;padding:8px;}
.kmedia-burger span{display:block;width:24px;height:2px;background:var(--sumi);transition:.25s;}

.kmedia-main{display:block;}

/* 共通ラッパ・見出し */
.kmedia-sec{max-width:1120px;margin:0 auto;padding:40px 30px 0;}
.kmedia-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px;}
.kmedia-sec-h.center{justify-content:center;text-align:center;}
.kmedia-sec-h.center .l{align-items:center;}
.kmedia-sec-h .l{display:flex;flex-direction:column;gap:8px;}
.kmedia-sec-h .en{font-family:var(--gothic);font-size:10.5px;letter-spacing:.28em;color:var(--shu);}
.kmedia-sec-h .ja{font-family:var(--mincho);font-weight:800;font-size:26px;letter-spacing:.08em;}
.kmedia-sec-h .more{font-family:var(--gothic);font-size:12px;color:var(--sumi2);text-decoration:none;border-bottom:1px solid var(--sumi2);padding-bottom:2px;}

/* ============================ カード ============================ */
.kmedia-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1120px;margin:0 auto;padding:0 30px;}
.kmedia-card{background:#fffdf8;border:1px solid var(--line);text-decoration:none;color:var(--sumi);
  display:flex;flex-direction:column;transition:border-color .25s ease,box-shadow .25s ease;}
.kmedia-card:hover{border-color:var(--shu);box-shadow:0 4px 14px rgba(80,60,30,.07);}
.kmedia-card .im{height:186px;position:relative;background:#2b2621 center/cover no-repeat;}
.kmedia-card .badge{position:absolute;left:0;top:0;font-family:var(--gothic);font-size:10px;letter-spacing:.14em;
  background:rgba(23,23,23,.82);color:#f2ead9;padding:4px 11px;z-index:2;}
.kmedia-card .badge.new{background:var(--shu);color:#fff;font-weight:700;}
.kmedia-card .bd{padding:18px 18px 20px;flex:1;display:flex;flex-direction:column;}
.kmedia-card .cat{font-family:var(--gothic);font-size:10.5px;letter-spacing:.12em;color:var(--gray);}
.kmedia-card h3{font-family:var(--mincho);font-weight:700;font-size:18px;line-height:1.6;margin:9px 0 auto;letter-spacing:.03em;}
.kmedia-card .co{font-family:var(--serif);font-size:12px;color:var(--sumi2);margin-top:12px;}
.kmedia-card .dt{font-family:var(--gothic);font-size:10px;color:var(--gray);margin-top:5px;}
.kmedia-card .pr{font-family:var(--gothic);font-size:10px;color:var(--shu);margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);}
.kmedia-morebtn{text-align:center;margin:28px 0 0;}
.kmedia-morebtn a{font-family:var(--gothic);font-size:13px;color:var(--sumi);text-decoration:none;border:1px solid var(--sumi);padding:14px 44px;letter-spacing:.08em;transition:.2s;}
.kmedia-morebtn a:hover{background:var(--sumi);color:var(--washi);}
.kmedia-noresult{text-align:center;color:var(--gray);font-family:var(--serif);padding:40px 20px;}

/* ============================ トップ MV ============================ */
.kmedia-mv{position:relative;overflow:hidden;padding:72px 30px 60px;text-align:center;border-bottom:1px solid var(--line);}
.kmedia-mv .bgen{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-family:var(--mincho);font-weight:800;
  font-size:190px;letter-spacing:.06em;color:rgba(23,23,23,.035);white-space:nowrap;z-index:0;pointer-events:none;}
.kmedia-mv .maru{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:360px;height:360px;opacity:.12;
  z-index:0;background:center/contain no-repeat;pointer-events:none;}
.kmedia-mv .mv-in{position:relative;z-index:1;max-width:820px;margin:0 auto;}
.kmedia-mv .en{font-family:var(--gothic);font-size:11px;letter-spacing:.3em;color:var(--gray);margin-bottom:26px;}
.kmedia-mv h1{font-family:var(--mincho);font-weight:800;font-size:56px;line-height:1.42;letter-spacing:.1em;margin:0 0 28px;
  transform:translateX(.3em);} /* 末尾の句読点＋字間で左に寄って見えるのを視覚的に中央補正（文言は不変） */
.kmedia-mv .sub{font-family:var(--mincho);font-weight:600;font-size:17px;line-height:1.9;letter-spacing:.08em;color:var(--sumi2);margin:0;}

.kmedia-counter{display:flex;justify-content:center;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.kmedia-counter .c{padding:26px 46px;text-align:center;border-right:1px solid var(--line);}
.kmedia-counter .c:last-child{border-right:0;}
.kmedia-counter .c .n{font-family:var(--mincho);font-weight:800;font-size:38px;line-height:1;color:var(--sumi);}
.kmedia-counter .c .n small{font-size:15px;font-weight:700;margin-left:3px;color:var(--sumi2);}
.kmedia-counter .c .l{font-family:var(--gothic);font-size:10.5px;color:var(--gray);letter-spacing:.16em;margin-top:10px;}

.kmedia-creed{margin-top:44px;padding:48px 30px;text-align:center;position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.kmedia-creed .maru{position:absolute;right:8%;top:50%;transform:translateY(-50%);width:120px;height:120px;opacity:.14;background:center/contain no-repeat;}
.kmedia-creed .lead{font-family:var(--mincho);font-weight:700;font-size:26px;line-height:1.7;letter-spacing:.09em;margin:0 auto;max-width:640px;position:relative;}
.kmedia-creed .sub{font-family:var(--serif);font-size:15px;line-height:2;letter-spacing:.04em;color:var(--sumi2);margin:16px auto 0;max-width:600px;position:relative;}
.kmedia-creed .note{font-family:var(--gothic);font-size:12.5px;line-height:1.9;letter-spacing:.08em;color:var(--gray);margin:22px auto 0;position:relative;}
/* 「100年企業録とは →」: 旧テキストリンクより一段上げた枠線リンク。直下の赤い取材ボタンより控えめ（主従維持） */
.kmedia-creed .cta{display:inline-block;margin-top:20px;font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.06em;color:var(--sumi);text-decoration:none;border:1px solid var(--shu);padding:11px 26px;transition:background .2s,color .2s;position:relative;}
.kmedia-creed .cta:hover{background:var(--shu);color:#fff;}
.kmedia-topcta{text-align:center;padding:48px 20px 64px;}
.kmedia-topcta .btn{display:inline-block;background:var(--shu);color:#fff;text-decoration:none;font-family:var(--mincho);font-weight:700;font-size:18px;letter-spacing:.12em;padding:18px 52px;box-shadow:0 6px 18px rgba(201,0,0,.22);}
.kmedia-topcta .mc{font-family:var(--gothic);font-size:12px;color:var(--gray);margin-top:16px;}

/* ============================ 企業ページ ============================ */
.cp-hero{position:relative;height:560px;color:#fff;display:flex;align-items:flex-end;overflow:hidden;}
.cp-hero-img{position:absolute;inset:0;background:#2b2621 center/cover no-repeat;}
.cp-hero-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,15,10,.88) 12%,rgba(20,15,10,.1) 58%,transparent);}
.cp-hero .in{position:relative;padding:0 46px 46px;max-width:1120px;margin:0 auto;width:100%;}
.cp-hero .en{font-family:var(--gothic);font-size:11px;letter-spacing:.24em;color:#e7cfb0;margin-bottom:14px;}
.cp-hero .co{font-family:var(--mincho);font-weight:800;font-size:40px;letter-spacing:.06em;margin:0 0 10px;color:#fff;}
.cp-hero .meta{font-family:var(--serif);font-size:14.5px;letter-spacing:.1em;opacity:.95;}
.cp-lead{max-width:760px;margin:36px auto 0;padding:0 30px;text-align:center;}
.cp-lead p{font-family:var(--mincho);font-weight:600;font-size:21px;line-height:2.05;letter-spacing:.06em;}
.cp-credit{max-width:720px;margin:24px auto 0;padding:0 30px;text-align:center;font-family:var(--gothic);font-size:11px;color:var(--gray);letter-spacing:.08em;}

.cp-toc{max-width:720px;margin:30px auto;padding:24px 30px;background:#fffdf8;border:1px solid var(--line);position:relative;}
.cp-toc:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--shu);}
.cp-toc .en{font-family:var(--gothic);font-size:10.5px;letter-spacing:.24em;color:var(--gray);margin-bottom:14px;}
.cp-toc a{display:block;text-decoration:none;color:var(--sumi);font-family:var(--serif);font-size:15px;padding:11px 0;border-bottom:1px dashed var(--line);letter-spacing:.03em;}
.cp-toc a:last-child{border-bottom:0;}
.cp-toc a .rl{font-family:var(--gothic);font-size:10px;color:#fff;background:var(--sumi);letter-spacing:.1em;margin-right:12px;padding:2px 9px;}

.cp-person{max-width:720px;margin:48px auto;padding:0 30px;scroll-margin-top:96px;}
.cp-person .rl{display:inline-block;font-family:var(--gothic);font-size:11px;letter-spacing:.18em;color:#fff;background:var(--shu);padding:5px 15px;margin-bottom:20px;}
.cp-person .rl.dark{background:var(--sumi);}
.cp-person .one{font-family:var(--mincho);font-weight:800;font-size:29px;line-height:1.6;letter-spacing:.05em;margin:0 0 28px;}
.cp-person .pc{display:flex;gap:20px;align-items:center;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.cp-person .pc .ph{width:88px;height:88px;border-radius:50%;flex:0 0 88px;overflow:hidden;background:#2b2621;}
.cp-person .pc .ph img{width:100%;height:100%;object-fit:cover;}
.cp-person .pc .nm{font-family:var(--mincho);font-weight:700;font-size:16px;}
.cp-person .pc .tt{font-family:var(--gothic);font-size:12px;color:var(--gray);margin-top:5px;}
.cp-person .b{font-family:var(--serif);font-size:15.5px;line-height:2.2;letter-spacing:.02em;color:#2b241b;}
.cp-person .b p{margin:0 0 1.7em;}
.cp-person .b h1,.cp-person .b h2,.cp-person .b h3,.cp-person .b h4{
  font-family:var(--mincho);font-weight:700;font-size:19px;margin:46px 0 18px;padding-left:16px;position:relative;letter-spacing:.05em;line-height:1.6;}
.cp-person .b h1:before,.cp-person .b h2:before,.cp-person .b h3:before,.cp-person .b h4:before{
  content:"";position:absolute;left:0;top:.2em;width:5px;height:1.1em;background:var(--shu);}
.cp-person .b img{margin:24px 0;}

.cp-soon{max-width:720px;margin:40px auto;padding:36px 30px;text-align:center;background:var(--washi2);border:1px dashed var(--line);scroll-margin-top:96px;}
.cp-soon .rl{display:inline-block;font-family:var(--gothic);font-size:11px;letter-spacing:.18em;color:#fff;background:var(--gray);padding:5px 15px;margin-bottom:14px;}
.cp-soon p{font-family:var(--mincho);font-weight:700;font-size:19px;margin:0;letter-spacing:.08em;}

.cp-pull{max-width:780px;margin:40px auto;padding:0 30px;}
.cp-pull .box{position:relative;padding:44px 40px;text-align:center;border-top:2px solid var(--shu);border-bottom:2px solid var(--shu);}
.cp-pull .box .qm{position:absolute;left:24px;top:12px;font-family:var(--mincho);font-size:60px;color:rgba(201,0,0,.14);line-height:1;}
.cp-pull .box p{font-family:var(--mincho);font-weight:800;font-size:26px;line-height:1.8;letter-spacing:.05em;margin:0;position:relative;}
.cp-pull .who{font-family:var(--gothic);font-size:11.5px;color:var(--gray);margin-top:16px;}
.cp-pull .share{margin-top:18px;}
.cp-pull .share a{display:inline-flex;align-items:center;gap:7px;font-family:var(--gothic);font-size:12px;color:#fff;background:var(--shu);text-decoration:none;padding:9px 20px;letter-spacing:.04em;}

.cp-afterword{max-width:720px;margin:48px auto 0;padding:0 30px;scroll-margin-top:96px;}
.cp-afterword .box{background:var(--washi2);padding:34px 34px 28px;border:1px solid var(--line);}
.cp-afterword .en{font-family:var(--gothic);font-size:10.5px;letter-spacing:.24em;color:var(--shu);}
.cp-afterword .lbl{font-family:var(--mincho);font-weight:700;font-size:17px;letter-spacing:.08em;margin:4px 0 18px;}
.cp-afterword .one{padding:18px 0;border-bottom:1px dashed var(--line);}
.cp-afterword .one:last-child{border-bottom:0;}
.cp-afterword .one .b{font-family:var(--serif);font-size:14.5px;line-height:2.15;color:#2b241b;margin-bottom:16px;}
.cp-afterword .by{display:flex;align-items:center;gap:11px;}
.cp-afterword .by .ph{width:40px;height:40px;border-radius:50%;overflow:hidden;background:#2b2621;flex:0 0 40px;}
.cp-afterword .by .ph img{width:100%;height:100%;object-fit:cover;}
.cp-afterword .by .nm{font-family:var(--gothic);font-size:12px;color:var(--sumi2);}

.cp-signoff{text-align:center;font-family:var(--mincho);font-weight:600;font-size:21px;letter-spacing:.18em;color:var(--sumi2);margin:44px 0;}

.cp-voice{max-width:760px;margin:40px auto;padding:30px;background:var(--washi2);border:1px solid var(--line);scroll-margin-top:96px;}
.cp-voice .en{font-family:var(--gothic);font-size:10.5px;letter-spacing:.22em;color:var(--shu);}
.cp-voice .lbl{font-family:var(--mincho);font-weight:700;font-size:17px;letter-spacing:.08em;margin:4px 0 16px;}
.cp-voice .it{background:#fffdf8;border:1px solid var(--line);padding:18px 20px;margin-bottom:12px;}
.cp-voice .it .b{font-family:var(--serif);font-size:13.5px;line-height:2;}
.cp-voice .it .by{font-family:var(--gothic);font-size:11px;color:var(--gray);margin-top:8px;}
.cp-voice .del{margin-top:18px;text-align:center;}
.cp-voice .del a{font-family:var(--gothic);font-size:12.5px;color:var(--sumi2);text-decoration:none;border-bottom:1px solid var(--gray);padding-bottom:2px;}

.cp-next{max-width:1120px;margin:44px auto;padding:0 30px;}
.cp-next .kmedia-cards{padding:0;}
.cp-endcta{text-align:center;padding:40px 20px 72px;}
.cp-endcta p{font-family:var(--mincho);font-weight:600;font-size:19px;letter-spacing:.06em;margin-bottom:20px;}
.cp-endcta a{font-family:var(--gothic);font-size:13px;color:var(--shu);text-decoration:none;border-bottom:1px solid var(--shu);padding-bottom:3px;}

/* ============================ 一覧（archive） ============================ */
.kmedia-arc{max-width:1120px;margin:0 auto;padding:0 0 56px;}
.kmedia-arc-head{text-align:center;padding:44px 30px 24px;}
.kmedia-arc-head .en{font-family:var(--gothic);font-size:11px;letter-spacing:.3em;color:var(--shu);margin-bottom:14px;}
.kmedia-arc-head h1{font-family:var(--mincho);font-weight:800;font-size:40px;letter-spacing:.1em;margin:0 0 16px;}
.kmedia-arc-head .lead{font-family:var(--mincho);font-weight:600;font-size:15px;color:var(--sumi2);margin:0;}
.kmedia-filter{max-width:1000px;margin:0 auto 28px;padding:22px 30px;background:#fffdf8;border:1px solid var(--line);}
.kmedia-filter .frow{display:flex;align-items:flex-start;gap:14px;padding:8px 0;flex-wrap:wrap;}
.kmedia-filter .fk{font-family:var(--gothic);font-size:11px;letter-spacing:.16em;color:var(--gray);padding-top:8px;flex:0 0 44px;}
.kmedia-filter .fbtns{display:flex;flex-wrap:wrap;gap:8px;}
.kmedia-filter .fbtns button{font-family:var(--gothic);font-size:12px;letter-spacing:.04em;background:var(--washi2);border:1px solid var(--line);
  color:var(--sumi2);padding:7px 15px;cursor:pointer;transition:.15s;}
.kmedia-filter .fbtns button:hover{border-color:var(--shu);}
.kmedia-filter .fbtns button.on{background:var(--shu);color:#fff;border-color:var(--shu);font-weight:700;}
.kmedia-card[hidden]{display:none;}
.kmedia-arc-empty{text-align:center;padding:60px 30px;font-family:var(--mincho);font-size:18px;line-height:2;}
.kmedia-arc-empty a{color:var(--shu);text-decoration:none;border-bottom:1px solid var(--shu);}

/* ============================ このメディアについて（没入型） ============================ */
.km-about{position:relative;background:#181410;}
/* [1] 冒頭ブロック: 明るい和紙地・約100vhの独立導入（英小見出し＋大見出し。noimage不使用） */
.km-about-head{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:48px 30px;}
.km-about-head-in{max-width:840px;}
.km-about-head .en{font-family:var(--gothic);font-size:12px;letter-spacing:.34em;color:var(--shu);margin:0 0 22px;}
.km-about-head h1{font-family:var(--mincho);font-weight:800;font-size:clamp(34px,6vw,54px);line-height:1.5;letter-spacing:.12em;margin:0;color:var(--sumi);}
/* [3] 日の丸: 黒ゾーン内だけを固定追従（sticky）。トップMVと同じ circle_red / opacity .12 */
.km-hinomaru{position:sticky;top:0;height:100vh;margin-bottom:-100vh;z-index:0;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.km-hinomaru span{display:block;width:min(82vw,620px);height:min(82vw,620px);background:center/contain no-repeat;opacity:.12;}
/* [2] 黒ゾーンの各ブロック（無地黒・背景画像なし・日の丸の上に重なる） */
.km-scene{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:62px 24px;}
.km-scene-in{position:relative;z-index:2;text-align:center;color:#f3ecdd;max-width:900px;}
.km-q{font-family:var(--gothic);font-size:11px;letter-spacing:.3em;color:var(--usu-aka);margin:0 0 40px;opacity:.9;}
.km-vtext{display:flex;flex-direction:column;align-items:center;gap:.5em;}
/* 大型ステートメント: 広告コピーのように大きく読ませる（明朝・縦組み扱い維持）。
   初期は伏せてJS(GSAP)で一行ずつ速く出現。GSAP不在時は .is-in で表示（他ページに km-line は存在しない） */
.km-line{font-family:var(--mincho);font-weight:600;font-size:clamp(20px,2.4vw,30px);line-height:1.9;letter-spacing:.06em;margin:0;max-width:820px;
  opacity:0;transform:translateY(16px);}
.km-line.is-in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease;}
.km-note{font-family:var(--gothic);font-size:10px;color:#8a7d63;letter-spacing:.06em;margin-top:40px;opacity:.7;}
.km-scene-link{margin-top:44px;}
.km-scene-link a{font-family:var(--gothic);font-size:13px;color:#f3ecdd;text-decoration:none;border-bottom:1px solid var(--usu-aka);padding-bottom:4px;letter-spacing:.08em;}
.km-cta{display:inline-block;background:var(--shu);color:#fff !important;border:0 !important;padding:16px 44px;font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.1em;}
.km-signoff{font-family:var(--mincho);font-weight:600;font-size:18px;letter-spacing:.2em;color:#c7bba3;margin-top:40px;}
.km-members{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin:40px 0;}
.km-member{margin:0;text-align:center;}
.km-member .ph{display:block;width:108px;height:108px;border-radius:50%;background:#2b2621 center/cover no-repeat;margin:0 auto 14px;}
.km-member .nm{display:block;font-family:var(--mincho);font-weight:700;font-size:16px;color:#f3ecdd;}
.km-member .rl{display:block;font-family:var(--gothic);font-size:12px;color:#a99;letter-spacing:.1em;margin-top:5px;}
.km-orgline{margin-top:28px;}
.km-orgline a{font-family:var(--gothic);font-size:15px;color:#e7cfb0;text-decoration:none;border-bottom:1px solid #5a4f3f;padding-bottom:3px;}
/* [5] 最終CVゾーン: 約100vh・締めコピー＋大きな主役ボタン */
.km-cv{min-height:100vh;}
.km-cv .km-scene-in{display:flex;flex-direction:column;align-items:center;justify-content:center;}
.km-cv-copy{font-family:var(--mincho);font-weight:700;font-size:clamp(28px,4.6vw,48px);line-height:1.7;letter-spacing:.1em;color:#f3ecdd;margin:0 0 48px;}
.km-cv-btn{display:inline-block;background:var(--shu);color:#fff;text-decoration:none;font-family:var(--mincho);font-weight:700;font-size:clamp(19px,2.6vw,26px);letter-spacing:.12em;padding:24px 64px;box-shadow:0 12px 32px rgba(201,0,0,.38);transition:transform .2s,box-shadow .2s;}
.km-cv-btn:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(201,0,0,.48);}

/* ============================ 取材のご依頼 ============================ */
.km-req{max-width:820px;margin:0 auto;padding:0 30px 40px;}
.km-req .kmedia-sec-h{margin-bottom:16px;} /* request内のセクション見出し下だけ圧縮（他ページの kmedia-sec-h は不変） */
.km-req-head{text-align:center;padding:28px 0 14px;}
.km-req-head .en{font-family:var(--gothic);font-size:11px;letter-spacing:.3em;color:var(--shu);margin-bottom:8px;}
.km-req-head h1{font-family:var(--mincho);font-weight:800;font-size:38px;letter-spacing:.1em;margin:0 0 10px;}
.km-req-head .lead{font-family:var(--mincho);font-weight:600;font-size:19px;line-height:1.9;letter-spacing:.06em;color:var(--sumi2);margin:0;}
/* base.min.css の body section{padding:max(8vw,4rem) 0} を request セクションだけ打ち消し、
   セクション間隔は margin-top の一呼吸に一本化（特に短い「編集について」枠の浮きを解消） */
.km-flow,.km-faq,.km-form,.km-line-sec{margin-top:18px;padding:0;}
.km-steps{list-style:none;counter-reset:none;margin:0;padding:0;}
.km-step{display:flex;gap:20px;align-items:flex-start;padding:11px 0;border-bottom:1px dashed var(--line);}
.km-step .num{font-family:var(--mincho);font-weight:800;font-size:26px;color:var(--shu);flex:0 0 44px;line-height:1.3;}
.km-step h3{font-family:var(--mincho);font-weight:700;font-size:18px;margin:0 0 3px;letter-spacing:.05em;}
.km-step p{font-family:var(--serif);font-size:14px;line-height:1.9;margin:0;color:var(--sumi2);}
.km-flow-note{text-align:center;font-family:var(--gothic);font-size:12px;color:var(--gray);margin-top:12px;letter-spacing:.06em;}
.km-line-sec .box{background:var(--washi2);border:1px solid var(--line);padding:20px 30px;text-align:center;}
.km-line-sec h2{font-family:var(--mincho);font-weight:700;font-size:20px;letter-spacing:.08em;margin:0 0 10px;}
.km-line-sec p{font-family:var(--serif);font-size:15px;line-height:2;margin:0;}
.km-faq-list{border-top:1px solid var(--line);}
.km-faq-item{border-bottom:1px solid var(--line);}
.km-faq-item summary{font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.04em;padding:13px 40px 13px 0;cursor:pointer;position:relative;list-style:none;}
.km-faq-item summary::-webkit-details-marker{display:none;}
.km-faq-item summary:before{content:"Q";font-family:var(--gothic);color:var(--shu);font-weight:700;margin-right:12px;}
.km-faq-item summary:after{content:"＋";position:absolute;right:4px;top:13px;color:var(--gray);transition:.2s;}
.km-faq-item[open] summary:after{content:"−";}
.km-faq-item .a{font-family:var(--serif);font-size:14px;line-height:2;color:var(--sumi2);padding:0 0 14px 26px;}
.km-form-wrap{display:flex;flex-direction:column;gap:10px;max-width:560px;margin:0 auto;}
.km-form-wrap label{display:flex;flex-direction:column;gap:5px;font-family:var(--gothic);font-size:13px;color:var(--sumi2);letter-spacing:.06em;}
.km-form-wrap input,.km-form-wrap textarea{font-family:var(--serif);font-size:15px;padding:10px 13px;border:1px solid var(--line);background:#fffdf8;color:var(--sumi);}
.km-form-wrap input:focus,.km-form-wrap textarea:focus{outline:2px solid var(--shu);border-color:var(--shu);}
.km-submit{background:var(--shu);color:#fff;border:0;font-family:var(--mincho);font-weight:700;font-size:16px;letter-spacing:.1em;padding:14px;cursor:pointer;}
.km-form-note{font-family:var(--gothic);font-size:11px;color:var(--gray);text-align:center;margin:0;}

/* ============================ フッター ============================ */
.kmedia-foot{background:#26201a;color:#d3c7b0;padding:44px 30px 28px;margin-top:20px;}
.kmedia-foot .fin{max-width:1120px;margin:0 auto;}
.kmedia-foot .ft{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid #443b30;}
.kmedia-foot .fl{font-family:var(--mincho);font-weight:800;font-size:22px;letter-spacing:.14em;color:#fff;}
.kmedia-foot .fn{display:flex;gap:28px;flex-wrap:wrap;}
.kmedia-foot .fn a{font-family:var(--gothic);font-size:12.5px;color:#d3c7b0;text-decoration:none;}
.kmedia-foot .fo{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:24px 0;border-bottom:1px solid #443b30;font-family:var(--gothic);font-size:12px;}
.kmedia-foot .fo .k{color:#8a7d63;letter-spacing:.16em;font-size:10.5px;}
.kmedia-foot .fo .t{color:#d3c7b0;text-decoration:none;}
.kmedia-foot .fo .bn{border:1px solid #5a4f3f;color:#bdb199;text-decoration:none;font-size:10.5px;letter-spacing:.14em;padding:5px 11px;}
.kmedia-foot .fb{display:flex;gap:22px;flex-wrap:wrap;padding-top:20px;font-family:var(--gothic);font-size:11px;color:#8a7d63;}
.kmedia-foot .fb a{color:#8a7d63;text-decoration:none;}

/* ============================ 出現（fade 演出は廃止・本体と同じ静かな表示） ============================ */
/* スクロール連動の fade（opacity/transform）は撤去。要素は最初から通常表示。
   .fadeIN / .fadeL / .is-in のクラスが HTML に残っていても無害なよう明示的に通常表示にする。 */
body.kmedia .fadeIN,
body.kmedia .fadeL,
body.kmedia .fadeIN.is-in,
body.kmedia .fadeL.is-in{opacity:1;transform:none;}

/* ============================ レスポンシブ ============================ */
@media(max-width:860px){
  .kmedia-nav{gap:16px;}
  .kmedia-nav a .en{display:none;}
  .kmedia-cards{grid-template-columns:1fr 1fr;}
  .kmedia-mv h1{font-size:36px;}
  .kmedia-mv .bgen{font-size:110px;}
  .kmedia-brand .nm{font-size:20px;}
  .cp-hero .co{font-size:30px;}
  .cp-hero{height:440px;}
  .cp-person .one{font-size:23px;}
}
@media(max-width:680px){
  /* ヘッダーはB(ハンバーガー)採用。3項目のうち「100年企業録とは」が長く、
     ~680px幅ではインライン(A)だと窮屈なため、この幅から畳む（681〜860pxはインラインA）。 */
  .kmedia-head{padding:12px 18px;}
  .kmedia-nav{position:fixed;inset:56px 0 auto;flex-direction:column;background:rgba(251,244,238,.98);gap:0;padding:10px 0;
    border-bottom:1px solid var(--line);transform:translateY(-120%);transition:transform .25s;box-shadow:0 12px 24px rgba(0,0,0,.08);}
  .kmedia-nav.is-open{transform:none;}
  .kmedia-nav a{flex-direction:row;padding:16px 24px;width:100%;justify-content:flex-start;border-bottom:1px solid var(--line);}
  .kmedia-nav a.cv{justify-content:center;}
  .kmedia-burger{display:flex;}
  .kmedia-cards{grid-template-columns:1fr;}
  .kmedia-counter .c{padding:18px 22px;}
  .kmedia-counter .c .n{font-size:28px;}
  .kmedia-mv{padding:52px 20px 44px;}
  .kmedia-mv h1{font-size:30px;letter-spacing:.06em;}
  .cp-hero .in{padding:0 24px 30px;}
  .km-line{letter-spacing:.03em;}
  .km-members{gap:16px;}
  .km-about-head{padding:40px 20px;}
  .km-about-head h1{font-size:clamp(28px,8vw,40px);}
  .km-cv-copy{margin-bottom:36px;}
  .km-cv-btn{padding:18px 40px;}
  /* モバイルはさらに余白を詰める（本体もSPで縮む） */
  .kmedia-sec{padding:32px 20px 0;}
  .kmedia-cards{padding:0 20px;}
  .kmedia-creed{margin-top:32px;padding:36px 20px;}
  .kmedia-topcta{padding:36px 20px 48px;}
  .kmedia-arc-head{padding:32px 20px 20px;}
  .kmedia-filter{padding:18px 20px;margin-bottom:22px;}
  .cp-lead,.cp-credit,.cp-toc,.cp-person,.cp-soon,.cp-pull,.cp-afterword,.cp-voice,.cp-next{padding-left:20px;padding-right:20px;}
  .cp-person{margin:36px auto;}
  .cp-afterword{margin-top:36px;}
  .cp-endcta{padding:32px 20px 56px;}
  .km-req{padding:0 20px 32px;}
  .km-req-head{padding:22px 0 12px;}
  .km-flow,.km-faq,.km-form,.km-line-sec{margin-top:14px;padding:0;}
  .km-req .kmedia-sec-h{margin-bottom:12px;}
  .km-step{padding:10px 0;}
  .km-line-sec .box{padding:18px 20px;}
  .km-faq-item summary{padding:12px 34px 12px 0;}
  .km-faq-item summary:after{top:12px;}
  .km-faq-item .a{padding:0 0 12px 22px;}
  .km-form-wrap{gap:9px;}
  .km-scene{padding:40px 20px;}
  .kmedia-foot{padding:36px 20px 24px;}
  /* 一覧フィルタ: 折り返しても押しやすいタップサイズ・間隔に */
  .kmedia-filter .frow{gap:10px;}
  .kmedia-filter .fbtns{gap:10px;}
  .kmedia-filter .fbtns button{padding:10px 16px;font-size:13px;}
  .kmedia-filter .fk{flex:0 0 auto;padding-top:10px;}
  /* MV見出し: SPでも中央補正を維持しつつ窮屈さを解消（transformはベース継承） */
  .kmedia-mv h1{transform:translateX(.22em);}
  /* 下部メッセージ: SPで見出しを一段小さく、行間確保 */
  .kmedia-creed .lead{font-size:22px;}
  .kmedia-creed .sub{font-size:14px;}
  /* フッター: ナビ・運営表記を縦に整える */
  .kmedia-foot .ft{flex-direction:column;align-items:flex-start;gap:14px;}
  .kmedia-foot .fn{gap:16px 20px;}
  .kmedia-foot .fo{gap:8px 12px;}
  .kmedia-foot .fb{gap:10px 18px;}
}

/* 縦書きは横スクロール負荷が高くスマホで速度低下するため、没入型はPCで縦書き寄りの
   余白感を演出しつつ、実際の文字は横組みで軽量に保つ（要件: スマホは速度優先）。 */
