:root{--kc-061a15:#070919;--kc-0b4f3f:#0e134c;--kc-0b5e49:#0e165b;--kc-0c5a46:#0f1757;--kc-0e1f1a:#0f111e;--kc-0e342c:#101232;--kc-0e3a30:#101338;--kc-0f8a68:#142285;--kc-13814d:#17387d;--kc-138766:#182682;--kc-14211c:#151720;--kc-16241f:#171923;--kc-17a07a:#1c2d9b;--kc-182e22:#19212d;--kc-1d2a24:#1e2129;--kc-1e4a3f:#202448;--kc-25ac85:#2a3ca7;--kc-33463f:#343845;--kc-34544b:#353953;--kc-4d5751:#4d5257;--kc-4d6659:#4e5765;--kc-56675f:#575c66;--kc-5b6b64:#5c606a;--kc-6b7671:#6b6f76;--kc-6b8279:#6c7181;--kc-707e78:#71747d;--kc-778c84:#787c8b;--kc-79c9a8:#7c90c6;--kc-7c8983:#7d8088;--kc-80958c:#818694;--kc-8ad2b3:#8d9fcf;--kc-96a39d:#979aa2;--kc-9a6205:#9a1805;--kc-9ba8a2:#9c9fa7;--kc-9bd9bf:#9dadd7;--kc-a1b2aa:#a2a7b1;--kc-a6dcc4:#a8b7da;--kc-a6dfc6:#a8b7dd;--kc-a86a00:#a81600;--kc-b5c0bb:#b5b9c0;--kc-b7e0cd:#b9c4de;--kc-bacbc3:#bbc0ca;--kc-c5d4cd:#c6cad3;--kc-cbd9d2:#ccd0d8;--kc-cdeedd:#ced9ed;--kc-cfdfd8:#d0d4de;--kc-d0eadf:#d1d8e9;--kc-d0ecdf:#d1d9eb;--kc-d5e1db:#d5d9e1;--kc-d5eee3:#d6dded;--kc-d6e4dd:#d7dbe3;--kc-d6ede3:#d7ddec;--kc-d6eee4:#d7dded;--kc-d6f0e4:#d7deef;--kc-dbeee6:#dce0ed;--kc-dcefe6:#dde2ee;--kc-def1e8:#dfe4f0;--kc-dfeae5:#dfe3ea;--kc-dfeee7:#e0e4ed;--kc-dfefe8:#e0e4ee;--kc-e1f2ea:#e2e7f1;--kc-e3eae6:#e3e6ea;--kc-e3efe9:#e3e7ef;--kc-e4ece8:#e4e7ec;--kc-e4fbf0:#e5ecfa;--kc-e6f5ee:#e7ebf4;--kc-e7f2ed:#e7ebf2;--kc-e8eeeb:#e8eaee;--kc-e8f5ef:#e9ecf4;--kc-eafdf5:#ebeffc;--kc-edf2ef:#edeff2;--kc-edf3f0:#edeff3;--kc-eef3f0:#eef0f3;--kc-f0f4f2:#f0f1f4;--kc-f1faf5:#f1f5fa;--kc-f3f8f5:#f3f5f8;--kc-f3faf6:#f3f6fa;--kc-f3faf7:#f3f5fa;--kc-f6fbf8:#f6f8fb;--kc-f7fbf9:#f7f8fb;--kc-f8fbf9:#f8fafb;--kc-fbfcfb:#fbfcfc;--kc-ffbf2e:#ff572e;--kc-fff1c2:#ffd3c2;--kc-fff3b8:#ffd0b8;--kc-fff5d6:#ffe1d6;--kc-fffbea:#fff0ea}
/* カザミチ｜ベースの語彙（実測値）を引き継ぎ、改変した部分のスタイル */
:root {
  --kz-blue: var(--kc-17a07a);          /* ベースの芯の青（実測 var(--kc-17a07a)） */
  --kz-blue-ink: var(--kc-138766);      /* ベースの英字ラベル（実測 var(--kc-138766)） */
  --kz-blue-deep: var(--kc-0b5e49);
  --kz-pale: var(--kc-def1e8);          /* ベースの淡い面（実測 var(--kc-def1e8)） */
  --kz-pale-2: var(--kc-f1faf5);        /* ベースの FAQ の面（実測 var(--kc-f1faf5)） */
  --kz-sky: var(--kc-9bd9bf);
  --kz-ink: #000;
  --kz-sub: var(--kc-4d5751);
  --kz-line: var(--kc-d6e4dd);
  --kz-sun: var(--kc-ffbf2e);           /* 高気圧の印・山場の時刻だけに使う */
  --kz-jp: "Zen Kaku Gothic New", sans-serif;
  --kz-en: Prompt, sans-serif;
  --kz-wrap: 1200px;
}
html { scroll-behavior: smooth; }
html.kz-lock { overflow: hidden; }
body { margin: 0; background: #fff; color: var(--kz-ink); font-family: var(--kz-jp); -webkit-font-smoothing: antialiased; }
.kz-main { display: block !important; overflow: clip; }
/* ベースのリセットは全要素に色とフォントを直書きするため、改変部分の中だけ親から継承させる（詳細度はリセットと同じ・後勝ち） */
:where(.kz-main, .kz-final, .kv-final, .kv-foot, .kz-menu, .kz-header, .kz-footer, .kz-demo-note) :is(main, section, header, footer, article, h1, h2, h3, p, span, b, i, em, small, strong, dt, dd, dl, li, ul, ol, time, figcaption, figure, a, div, nav, table, tr, td, th, button) { color: inherit; font-family: inherit; }
.kz-final, .kz-footer, .kv-final, .kv-foot { align-self: stretch; width: 100%; }

.kz-main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kz-wrap { width: min(var(--kz-wrap), calc(100% - 80px)); margin: 0 auto; }
.kz-en { font-family: var(--kz-en); }
.kz-note { margin: 16px 0 0; font-size: 13px; line-height: 1.6; color: var(--kc-6b7671); letter-spacing: .04em; }
/* text-wrap は折り返すかどうかまで戻すので、pretty は text-wrap-style で当てる（.kz-nowrap を消さない） */
.kz-main :is(p, td, dd, dt, li, h1, h2, h3, b, span, a, figcaption), .kz-footer__note { word-break: auto-phrase; text-wrap-style: pretty; }
/* 文節改行と両端揃え（ベースの k082）が重なると字間が伸びるので左揃えに */
.kz-main .kb.text { word-break: auto-phrase; overflow-wrap: normal; text-align: start; }
.kz-nowrap { white-space: nowrap; }
.kz-note--white { color: rgba(255,255,255,.8); }
figure { margin: 0; }

/* デモの注記の帯 */
.kz-demo-note { word-break: auto-phrase; align-self: stretch; width: 100%; box-sizing: border-box; position: relative; z-index: 60; margin: 0; padding: 7px 16px; background: var(--kc-0e3a30); color: #fff; font: 500 12px/1.4 var(--kz-jp); letter-spacing: .06em; text-align: center; }

/* 見出しの組（ベースの k079/k080/k081 をそのまま使い、余白だけ足す） */
.kz-head { display: flex !important; flex-direction: column; align-items: flex-start !important; gap: 8px; margin-bottom: 28px; }
.kz-head .k080 { margin: 0 !important; }
.kz-head .k081 { margin: 0 !important; white-space: nowrap; }
.kz-head__en { margin: 0; font: 600 20px/1 var(--kz-en); letter-spacing: .04em; color: var(--kz-blue-ink); }
.kz-head__title { margin: 0; font: 700 48px/1.2 var(--kz-jp); letter-spacing: .04em; }
.kz-head--white .kz-head__en { color: var(--kc-cdeedd); }
.kz-head--white .kz-head__title { color: #fff; }

/* 矢印（風の線の先に小さな矢じり） */
.kz-arrow { width: 22px; height: 10px; flex: 0 0 auto; overflow: visible; }
.kz-arrow path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* ヘッダー（ベース k002〜k016 を改変） */
.kz-header.k002 { position: fixed !important; top: 26px; left: 0; right: 0; z-index: 50; transition: background .4s ease, top .3s ease, box-shadow .4s ease; }
.kz-header.k002.is-scrolled { top: 0; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.kz-header .k003 { height: 84px; }
.kz-header .k004 { align-items: center !important; flex-flow: row !important; gap: 14px !important; }
.kz-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--kz-ink); text-decoration: none; }
.kz-logo__mark { display: block; width: auto; height: 30px; flex: none; }
.kz-logo__en { font: 600 21px/1 var(--kz-en); letter-spacing: .16em; color: var(--kc-0e3a30); margin-right: -.16em; }
.kz-logo-sub { font: 600 12px/1 var(--kz-en); letter-spacing: .1em; color: var(--kz-blue-ink); padding: 6px 10px; border: 1px solid var(--kc-b7e0cd); border-radius: 50px; }
.kz-gnav { display: flex; gap: 30px; margin-left: auto; margin-right: 28px; }
.kz-gnav a { white-space: nowrap; font: 500 15px/1 var(--kz-jp); letter-spacing: .05em; color: var(--kz-ink); text-decoration: none; position: relative; padding: 8px 0; }
.kz-gnav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .4s ease; }
.kz-gnav a:hover::after { transform: scaleX(1); transform-origin: left; }
.kz-header .k007, .kz-header .k012 { width: auto !important; padding: 18px 24px 18px 24px !important; gap: 16px; text-decoration: none; }
.kz-header .k008, .kz-header .k013 { margin: 0 !important; font-size: 15px !important; white-space: nowrap; }
.kz-header .k009, .kz-header .k014 { color: #000; }
.kz-header .k014 { color: #fff; }
.kz-header .k007:hover .k009 { color: #fff; }
.kz-header .k009 .kz-arrow, .kz-header .k014 .kz-arrow { transition: transform .6s ease; }
.kz-header .k007:hover .kz-arrow, .kz-header .k012:hover .kz-arrow { transform: translateX(6px); }
.kz-menu-btn { display: none; width: 52px; height: 52px; margin-left: 14px; border: 1px solid #000; border-radius: 50%; background: #fff; cursor: pointer; padding: 0; position: relative; }
.kz-menu-btn__lines { position: absolute; left: 50%; top: 50%; width: 20px; height: 12px; transform: translate(-50%, -50%); }
.kz-menu-btn__lines i { position: absolute; left: 0; width: 100%; height: 1.6px; background: #000; border-radius: 2px; }
.kz-menu-btn__lines i:nth-child(1) { top: 0; }
.kz-menu-btn__lines i:nth-child(2) { top: 5.2px; width: 70%; }
.kz-menu-btn__lines i:nth-child(3) { top: 10.4px; }

/* メニュー（全画面） */
.kz-menu { position: fixed; inset: 0; z-index: 80; background: color-mix(in srgb, var(--kc-0e3a30) 32%, transparent); opacity: 0; pointer-events: none; transition: opacity .35s ease; }
.kz-menu.is-open { opacity: 1; pointer-events: auto; }
.kz-menu__inner { position: absolute; right: 0; top: 0; bottom: 0; width: min(460px, 100%); background: #fff; padding: 28px 32px 40px; display: flex; flex-direction: column; gap: 32px; transform: translateX(24px); transition: transform .45s cubic-bezier(.2,.7,.2,1); overflow-y: auto; }
.kz-menu.is-open .kz-menu__inner { transform: none; }
.kz-menu__head { display: flex; align-items: center; justify-content: space-between; }
.kz-menu__close { width: 52px; height: 52px; border: 1px solid #000; border-radius: 50%; background: #fff; cursor: pointer; position: relative; padding: 0; }
.kz-menu__close span::before, .kz-menu__close span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 1.6px; background: #000; transform: translate(-50%, -50%) rotate(45deg); }
.kz-menu__close span::after { transform: translate(-50%, -50%) rotate(-45deg); }
.kz-menu__nav { display: flex; flex-direction: column; }
.kz-menu__nav a { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; border-bottom: 1px solid var(--kz-line); color: #000; text-decoration: none; font: 700 22px/1.2 var(--kz-jp); letter-spacing: .04em; }
.kz-menu__nav .kz-en { font-size: 13px; font-weight: 600; color: var(--kz-blue-ink); letter-spacing: .06em; }
.kz-menu__cta { display: flex; flex-direction: column; gap: 12px; }

/* ピル型ボタン（ベースの k007/k012 の形を共通化） */
.kz-pill { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 250px; padding: 20px 26px; border: 1px solid #000; border-radius: 50px; background: #fff; color: #000; font: 700 16px/1 var(--kz-jp); letter-spacing: .04em; text-decoration: none; transition: background .5s ease, color .5s ease; }
.kz-pill .kz-arrow { transition: transform .5s ease; }
.kz-pill:hover .kz-arrow { transform: translateX(6px); }
.kz-pill:hover { background: #000; color: #fff; }
.kz-pill--dark { background: #000; color: #fff; }
.kz-pill--dark:hover { background: var(--kz-blue); border-color: var(--kz-blue); }
.kz-pill--white { background: #fff; border-color: #fff; color: #000; }
.kz-pill--white:hover { background: #000; border-color: #000; color: #fff; }
.kz-pill--line { background: transparent; border-color: rgba(255,255,255,.8); color: #fff; }
.kz-pill--line:hover { background: #fff; color: #000; }

/* 等圧線（ベースの太い帯の代わり＝風の通り道） */
.kz-iso { fill: none; stroke: var(--kz-blue); stroke-width: 1.6; stroke-linecap: round; opacity: .55; stroke-dasharray: 1 1; stroke-dashoffset: 1; }
.kz-iso[pathLength], .kz-iso { stroke-dasharray: var(--len, 3000); stroke-dashoffset: var(--len, 3000); transition: stroke-dashoffset 2.6s cubic-bezier(.3,.6,.2,1); }
.kz-iso.is-in { stroke-dashoffset: 0; }
.kz-iso--2 { opacity: .32; stroke-width: 1.3; transition-delay: .25s; }
.kz-iso--3 { opacity: .42; stroke-width: 1.4; transition-delay: .4s; }
/* ジェット気流（ベースの太い2色の帯を、風の帯として引き継ぐ） */
.kz-jet { fill: none; stroke: url(#kz-jet-g); stroke-width: 58; stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s cubic-bezier(.5,.1,.2,1); }
.kz-jet.is-in { stroke-dashoffset: 0; }
.kz-jet-flow { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 3 22; opacity: 0; animation: kz-flow 9s linear infinite; transition: opacity 1s ease 1.8s; }
.kz-jet-flow--2 { stroke-width: 1.4; stroke-dasharray: 2 30; animation-duration: 13s; }
.kz-jet-flow.is-in { opacity: .75; }
@keyframes kz-flow { to { stroke-dashoffset: -500; } }
.kz-iso-label { font: 500 12px var(--kz-en); fill: var(--kz-blue-ink); letter-spacing: .08em; dominant-baseline: text-after-edge; }

/* FV */
.kz-fv { position: relative; min-height: max(780px, 100svh); padding: 0; overflow: hidden; }
.kz-fv__lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.kz-fv__copy { position: relative; z-index: 3; padding: calc(26px + 84px + 96px) 0 0 max(40px, calc((100% - 1360px) / 2)); width: 720px; }
.kz-fv__lead { display: flex; align-items: center; gap: 14px; margin: 0 0 30px; font: 700 15px/1 var(--kz-jp); letter-spacing: .06em; }
.kz-fv__lead .kz-en { font-weight: 600; font-size: 14px; color: #fff; background: var(--kz-blue); padding: 7px 12px; border-radius: 4px; letter-spacing: .08em; }
.kz-fv__title { margin: 0; font: 700 56px/1.4 var(--kz-jp); letter-spacing: .05em; }
.kz-fv__title span { display: block; white-space: nowrap; }
.kz-fv__text { max-width: 600px; margin: 32px 0 0; font: 500 17px/1.95 var(--kz-jp); letter-spacing: .04em; color: var(--kc-16241f); }
.kz-fv__photos { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.kz-fv__ph { position: absolute; border-radius: 20px; overflow: visible; will-change: transform; }
.kz-fv__ph img { border-radius: 20px; }
.kz-fv__ph figcaption { position: absolute; left: 0; top: calc(100% + 8px); padding: 6px 10px 6px 8px; background: #fff; border-radius: 50px; box-shadow: 0 4px 14px color-mix(in srgb, var(--kc-0e3a30) 8%, transparent); display: flex; gap: 8px; align-items: baseline; font: 500 12px/1 var(--kz-en); letter-spacing: .06em; color: var(--kc-34544b); white-space: nowrap; }
.kz-fv__ph figcaption b { font-weight: 600; color: var(--kz-blue-ink); }
.kz-fv__ph figcaption::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--kz-blue); align-self: center; box-shadow: 0 0 0 4px color-mix(in srgb, var(--kc-17a07a) 15%, transparent); }
.kz-fv__ph--a { left: 50.5%; top: 150px; width: 31%; aspect-ratio: 16 / 10; }
.kz-fv__ph--b { left: 84%; top: 210px; width: 13.5%; aspect-ratio: 3 / 4; }
.kz-fv__ph--c { left: 44%; top: 540px; width: 17%; aspect-ratio: 4 / 3; }
.kz-fv__ph--d { left: 64.5%; top: 470px; width: 15%; aspect-ratio: 3 / 4; }
.kz-fv__ph--e { left: 82.5%; top: 560px; width: 15%; aspect-ratio: 4 / 3; }
.kz-fv__legend { position: absolute; z-index: 3; left: max(40px, calc((100% - 1360px) / 2)); bottom: 44px; display: flex; align-items: center; gap: 12px; font: 500 12px/1.5 var(--kz-jp); color: var(--kc-4d6659); letter-spacing: .05em; }
.kz-fv__legend b { font: 600 12px var(--kz-en); color: #000; letter-spacing: .06em; }
.kz-fv__h { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font: 700 17px/1 var(--kz-jp); color: var(--kz-blue); border: 1.5px solid var(--kz-blue); }
.kz-scroll { position: absolute; z-index: 3; right: max(40px, calc((100% - 1360px) / 2)); bottom: 40px; display: flex; align-items: center; gap: 12px; font: 600 12px var(--kz-en); letter-spacing: .14em; color: #000; text-decoration: none; }
.kz-scroll i { width: 64px; height: 1px; background: #000; position: relative; overflow: hidden; }
.kz-scroll i::after { content: ""; position: absolute; inset: 0; background: var(--kz-blue); transform: translateX(-100%); animation: kz-wind 2.4s ease-in-out infinite; }
@keyframes kz-wind { 0% { transform: translateX(-100%); } 60%, 100% { transform: translateX(100%); } }

/* メッセージ */
.kz-message { padding: 150px 0 120px; }
.kz-message__grid { display: grid; grid-template-columns: 4fr 6fr; gap: 64px; align-items: start; }
.kz-message__head { position: sticky; top: 150px; }
.kz-message__title { font-size: 44px !important; line-height: 1.45 !important; }
.kz-message__body .k082 { margin: 0 0 28px !important; font-size: 18px !important; line-height: 2.1 !important; letter-spacing: .03em; width: auto !important; max-width: 640px !important; display: block !important; }
.kz-message__last { font-weight: 700 !important; }
.kz-numbers { margin-top: 110px; position: relative; }
.kz-numbers__photo { aspect-ratio: 16 / 7; border-radius: 20px; overflow: hidden; }
.kz-numbers__list { margin: -64px 40px 0; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: 20px; box-shadow: 0 18px 40px color-mix(in srgb, var(--kc-0e3a30) 8%, transparent); padding: 28px 8px; }
.kz-numbers__list > div { padding: 6px 28px; border-left: 1px solid var(--kz-line); }
.kz-numbers__list > div:first-child { border-left: 0; }
.kz-numbers__list dt { font: 500 14px/1.5 var(--kz-jp); color: var(--kz-sub); letter-spacing: .04em; }
.kz-numbers__list dd { margin: 8px 0 0; display: flex; align-items: baseline; gap: 6px; }
.kz-numbers__list b { font: 600 52px/1 var(--kz-en); letter-spacing: .01em; color: var(--kz-blue); }
.kz-numbers__list dd span { font: 700 16px var(--kz-jp); }
.kz-numbers .kz-note { text-align: right; padding-right: 40px; }

/* 事業を知る */
.kz-business { position: relative; overflow: hidden; padding: 120px 0 140px; background: linear-gradient(#fff, #fff 30%, var(--kz-pale-2) 30%, var(--kz-pale-2)); }
.kz-business__band { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.kz-business__band .kz-jet { stroke: url(#kz-jet-g2); }
.kz-business__grid { position: relative; }
.kz-business__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 72px; align-items: center; }
.kz-business__text .k082 { width: auto !important; max-width: 460px !important; display: block !important; font-size: 18px !important; line-height: 2 !important; }
.kz-rows { list-style: none; margin: 36px 0 0; padding: 0; border-top: 1px solid var(--kc-cbd9d2); }
.kz-rows li { display: grid; grid-template-columns: 72px 1fr; grid-template-rows: auto auto; column-gap: 12px; row-gap: 6px; padding: 20px 4px; border-bottom: 1px solid var(--kc-cbd9d2); }
.kz-rows__en { grid-row: span 2; font: 600 13px/1.9 var(--kz-en); letter-spacing: .06em; color: var(--kz-blue-ink); }
.kz-rows b { font: 700 18px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kz-rows li > span:last-child { font: 500 15px/1.6 var(--kz-jp); color: var(--kz-sub); }

/* 需要予測の画面（本物の業務アプリの水準・A-043） */
.kz-app { background: #fff; border-radius: 16px; box-shadow: 0 30px 60px color-mix(in srgb, var(--kc-0e3a30) 14%, transparent), 0 0 0 1px color-mix(in srgb, var(--kc-0e342c) 8%, transparent); overflow: hidden; font-family: var(--kz-jp); color: var(--kc-182e22); }
.kz-app__bar { display: flex; align-items: center; gap: 14px; height: 42px; padding: 0 16px; border-bottom: 1px solid var(--kc-e7f2ed); background: var(--kc-fbfcfb); }
.kz-app__dots { display: flex; gap: 6px; }
.kz-app__dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--kc-dfeae5); }
.kz-app__title { font: 600 13px var(--kz-en); letter-spacing: .06em; color: var(--kc-1e4a3f); }
.kz-app__user { margin-left: auto; width: 26px; height: 26px; border-radius: 50%; background: var(--kc-d6ede3); color: var(--kc-1e4a3f); font: 700 10px/26px var(--kz-jp); text-align: center; }
.kz-app__body { display: grid; grid-template-columns: 116px 1fr; }
.kz-app__side { display: flex; flex-direction: column; gap: 2px; padding: 16px 10px; border-right: 1px solid var(--kc-edf2ef); background: var(--kc-f8fbf9); font-size: 12px; }
.kz-app__side span { padding: 8px 10px; border-radius: 8px; color: var(--kc-56675f); font-weight: 500; }
.kz-app__side span.is-on { background: var(--kc-e4fbf0); color: var(--kc-0c5a46); font-weight: 700; }
.kz-app__side-gap { margin-top: 28px; }
.kz-app__main { padding: 16px 20px 18px; min-width: 0; }
.kz-app__crumb { font-size: 11px; color: var(--kc-7c8983); letter-spacing: .03em; }
.kz-app__crumb i { font-style: normal; margin: 0 4px; }
.kz-app__headrow { display: flex; align-items: center; justify-content: space-between; margin: 8px 0 12px; }
.kz-app__headrow b { font-size: 15px; letter-spacing: .03em; }
.kz-app__chip { font-size: 11px; font-weight: 700; padding: 5px 10px; border-radius: 50px; }
.kz-app__chip--wait { background: var(--kc-fff5d6); color: var(--kc-9a6205); }
.kz-app__kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.kz-app__kpis div { border: 1px solid var(--kc-e8eeeb); border-radius: 10px; padding: 9px 10px; }
.kz-app__kpis span { display: block; font-size: 10.5px; color: var(--kc-707e78); }
.kz-app__kpis b { display: block; margin-top: 4px; font: 600 19px/1 var(--kz-en); letter-spacing: .01em; }
.kz-app__kpis small { font: 600 11px var(--kz-jp); margin-left: 2px; color: var(--kc-707e78); }
.kz-up { color: var(--kc-13814d) !important; }
.kz-app__chart { position: relative; margin-top: 12px; height: 184px; border: 1px solid var(--kc-e8eeeb); border-radius: 10px; padding: 46px 12px 22px 44px; }
.kz-app__axis { position: absolute; left: 8px; top: 46px; bottom: 22px; display: flex; flex-direction: column; justify-content: space-between; font: 500 9.5px var(--kz-en); color: var(--kc-96a39d); }
.kz-app__axis span { transform: translateY(-50%); }
.kz-app__cols { position: relative; height: 100%; display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; align-items: end; background: repeating-linear-gradient(to bottom, var(--kc-eef3f0) 0 1px, transparent 1px 25%); }
.kz-app__cols > div { position: relative; height: 100%; }
.kz-app__cols s { position: absolute; left: 22%; right: 22%; bottom: 0; height: calc(var(--p) / 1600 * 100%); background: var(--kc-25ac85); border-radius: 4px 4px 0 0; }
.kz-app__cols .is-rain s { background: var(--kc-0b5e49); }
.kz-app__cols u { position: absolute; left: 10%; right: 10%; bottom: calc(var(--y) / 1600 * 100%); height: 0; border-top: 2px solid var(--kc-b5c0bb); }
.kz-app__cols i { position: absolute; top: -22px; left: 50%; width: 14px; height: 14px; transform: translateX(-50%); }
.kz-app__cols em { position: absolute; top: -21px; left: calc(50% + 10px); font: 500 9.5px var(--kz-en); font-style: normal; color: var(--kc-707e78); }
.kz-app__cols > div > b { position: absolute; bottom: -19px; left: 0; right: 0; text-align: center; font-size: 10.5px; color: var(--kc-707e78); font-weight: 500; }
.w-sun { border-radius: 50%; background: radial-gradient(circle, var(--kc-ffbf2e) 0 40%, transparent 42%), conic-gradient(from 0deg, var(--kc-ffbf2e) 0 6%, transparent 6% 12.5%, var(--kc-ffbf2e) 12.5% 18.5%, transparent 18.5% 25%, var(--kc-ffbf2e) 25% 31%, transparent 31% 37.5%, var(--kc-ffbf2e) 37.5% 43.5%, transparent 43.5% 50%, var(--kc-ffbf2e) 50% 56%, transparent 56% 62.5%, var(--kc-ffbf2e) 62.5% 68.5%, transparent 68.5% 75%, var(--kc-ffbf2e) 75% 81%, transparent 81% 87.5%, var(--kc-ffbf2e) 87.5% 93.5%, transparent 93.5%); -webkit-mask: radial-gradient(circle, #000 0 70%, transparent 71%); mask: radial-gradient(circle, #000 0 70%, transparent 71%); }
.w-cloud { background: radial-gradient(circle at 35% 62%, var(--kc-a1b2aa) 0 32%, transparent 33%), radial-gradient(circle at 62% 50%, var(--kc-a1b2aa) 0 38%, transparent 39%), linear-gradient(var(--kc-a1b2aa), var(--kc-a1b2aa)) 20% 78% / 66% 22% no-repeat; }
.w-rain { background: radial-gradient(circle at 35% 45%, var(--kc-80958c) 0 30%, transparent 31%), radial-gradient(circle at 62% 36%, var(--kc-80958c) 0 34%, transparent 35%), linear-gradient(var(--kc-80958c), var(--kc-80958c)) 20% 58% / 66% 18% no-repeat, linear-gradient(var(--kc-25ac85), var(--kc-25ac85)) 30% 100% / 1.5px 22% no-repeat, linear-gradient(var(--kc-25ac85), var(--kc-25ac85)) 55% 100% / 1.5px 22% no-repeat, linear-gradient(var(--kc-25ac85), var(--kc-25ac85)) 78% 100% / 1.5px 22% no-repeat; }
.kz-app__legend { position: absolute; right: 12px; top: 8px; display: flex; gap: 12px; font-size: 10px; color: var(--kc-707e78); }
.kz-app__legend span::before { content: ""; display: inline-block; width: 10px; height: 8px; margin-right: 4px; vertical-align: 0; border-radius: 2px; background: var(--kc-25ac85); }
.kz-app__legend .l-y::before { height: 0; border-top: 2px solid var(--kc-b5c0bb); border-radius: 0; vertical-align: 2px; }
.kz-app__table { width: 100%; margin-top: 12px; border-collapse: collapse; font-size: 11.5px; }
.kz-app__table th { text-align: left; font-weight: 500; color: var(--kc-7c8983); padding: 6px 8px; border-bottom: 1px solid var(--kc-e8eeeb); background: var(--kc-f8fbf9); }
.kz-app__table td { padding: 7px 8px; border-bottom: 1px solid var(--kc-f0f4f2); font-variant-numeric: tabular-nums; }
.kz-app__table td:nth-child(n+3), .kz-app__table th:nth-child(n+3) { text-align: right; }
.kz-app__cap { margin: 16px 4px 0; font: 500 13px/1.7 var(--kz-jp); color: var(--kz-sub); }

/* ある1日（山場） */
.kz-day { --kz-day-sticky: 1; height: 360vh; position: relative; background: #fff; }
.kz-day__sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; }
.kz-day__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: center; }
.kz-day__who { margin: -10px 0 28px; font: 500 15px var(--kz-jp); color: var(--kz-sub); letter-spacing: .04em; }
.kz-day__times { list-style: none; margin: 0; padding: 0 0 0 30px; position: relative; }
.kz-day__times::before { content: ""; position: absolute; left: 6px; top: 10px; bottom: 10px; width: 1.5px; background: var(--kc-d5eee3); }
.kz-day__times::after { content: ""; position: absolute; left: 6px; top: 10px; width: 1.5px; height: calc((100% - 20px) * var(--kz-day-p, 0)); background: var(--kz-blue); transition: height .6s ease; }
.kz-day__times li { position: relative; padding: 12px 0; cursor: pointer; display: grid; grid-template-columns: 64px 1fr; column-gap: 12px; opacity: .55; transition: opacity .5s ease; }
.kz-day__times li::before { content: ""; position: absolute; left: -29px; top: 19px; width: 11px; height: 11px; border-radius: 50%; background: #fff; border: 1.5px solid var(--kc-bacbc3); transition: all .4s ease; z-index: 1; }
.kz-day__times li.is-on { opacity: 1; }
.kz-day__times li.is-on::before { background: var(--kz-blue); border-color: var(--kz-blue); box-shadow: 0 0 0 5px color-mix(in srgb, var(--kc-17a07a) 18%, transparent); }
.kz-day__times time { font: 600 17px/1.5 var(--kz-en); letter-spacing: .04em; grid-row: span 2; }
.kz-day__times b { font: 700 17px/1.5 var(--kz-jp); letter-spacing: .04em; }
.kz-day__times span { font: 500 14px/1.7 var(--kz-jp); color: var(--kz-sub); }
.kz-day__photos { position: relative; aspect-ratio: 4 / 3; }
.kz-day__inline { display: none; }
.kz-day__photos figure { position: absolute; inset: 0; border-radius: 20px; overflow: hidden; opacity: 0; transform: scale(1.03); transition: opacity .8s ease, transform 1.2s ease; }
.kz-day__photos figure.is-on { opacity: 1; transform: none; }
.kz-day__clock { position: absolute; right: -22px; bottom: -26px; z-index: 2; background: #fff; border-radius: 16px; padding: 14px 22px; box-shadow: 0 14px 30px color-mix(in srgb, var(--kc-0e3a30) 12%, transparent); font: 600 40px/1 var(--kz-en); letter-spacing: .03em; }

/* 先輩を知る（ベースの淡い面を、四隅の角丸の面に） */
.kz-people { padding: 40px 0 0; }
.kz-people__panel { margin: 0 24px; padding: 110px 0 120px; background: var(--kz-pale); border-radius: 40px; }
.kz-people__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 48px; }
.kz-people__top .kz-head { margin-bottom: 0; }
.kz-people__lead { margin: 0; font: 500 17px/1.9 var(--kz-jp); letter-spacing: .04em; color: var(--kc-16241f); }
.kz-people__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.kz-people__list li:nth-child(even) { margin-top: 56px; }
.kz-person { display: block; position: relative; color: #000; text-decoration: none; }
.kz-person figure { aspect-ratio: 3 / 4; border-radius: 16px; overflow: hidden; }
.kz-person figure img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
a.kz-person:hover figure img { transform: scale(1.05); }
.kz-person__role { margin: 18px 0 0; font: 700 13px/1 var(--kz-jp); color: var(--kz-blue); letter-spacing: .06em; display: flex; align-items: center; gap: 8px; }
.kz-person__role::before { content: ""; width: 14px; height: 1.5px; background: currentColor; }
.kz-person__catch { margin: 12px 0 0; font: 700 21px/1.5 var(--kz-jp); letter-spacing: .03em; }
.kz-person__name { margin: 12px 0 0; font: 700 15px/1.4 var(--kz-jp); display: flex; flex-direction: column; gap: 4px; }
.kz-person__name span { font-weight: 500; font-size: 13px; color: var(--kz-sub); }
.kz-person__go { position: absolute; right: 12px; top: 12px; width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: #000; transition: background .4s ease, color .4s ease; }
.kz-person:hover .kz-person__go { background: var(--kz-blue); color: #fff; }

/* リンクの列（ベースの k084 の行を改変） */
.kz-links { list-style: none; margin: 32px 0 0 !important; padding: 0; display: block !important; width: 100%; max-width: 460px; }
.kz-link { display: flex; align-items: center; justify-content: space-between; padding: 20px 6px 20px 2px; border-bottom: 1px solid var(--kc-cfdfd8); color: #000; text-decoration: none; font: 500 18px/1.6 var(--kz-jp); letter-spacing: .04em; }
.kz-link i { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #000; display: grid; place-items: center; transition: background .4s ease, color .4s ease, border-color .4s ease; }
.kz-link:hover i { background: var(--kz-blue); border-color: var(--kz-blue); color: #fff; }

/* 働く環境を知る */
.kz-env { padding: 150px 0 110px; }
.kz-env__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: center; }
.kz-env__text .k082 { width: auto !important; max-width: 440px !important; display: block !important; font-size: 18px !important; line-height: 2 !important; }
.kz-env__visual { position: relative; }
.kz-env__visual figure { aspect-ratio: 3 / 2; border-radius: 20px; overflow: hidden; }
.kz-env__facts { position: absolute; left: -40px; bottom: -48px; margin: 0; display: grid; grid-template-columns: repeat(3, auto); background: #fff; border-radius: 16px; box-shadow: 0 18px 40px color-mix(in srgb, var(--kc-0e3a30) 10%, transparent); padding: 18px 6px; }
.kz-env__facts > div { padding: 2px 22px; border-left: 1px solid var(--kz-line); }
.kz-env__facts > div:first-child { border-left: 0; }
.kz-env__facts dt { font: 500 12px var(--kz-jp); color: var(--kz-sub); letter-spacing: .04em; }
.kz-env__facts dd { margin: 6px 0 0; font: 700 14px var(--kz-jp); }
.kz-env__facts b { font: 600 32px/1 var(--kz-en); color: var(--kz-blue); margin: 0 3px; }

/* 会社を知る */
.kz-company { padding: 90px 0 150px; }
.kz-company__box { position: relative; display: grid; grid-template-columns: 1fr; }
.kz-company__photo { aspect-ratio: 16 / 8; border-radius: 20px; overflow: hidden; width: 78%; }
.kz-company__card { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 44%; background: #fff; border-radius: 20px; padding: 48px 48px 40px; box-shadow: 0 24px 50px color-mix(in srgb, var(--kc-0e3a30) 10%, transparent); }
.kz-company__text { margin: 0; font: 500 17px/2 var(--kz-jp); letter-spacing: .03em; }
.kz-company__card .kz-links { margin-top: 20px !important; }

/* 募集職種（ベースの青い面は残し、斜めの写真の柱をやめて表に） */
.kz-position { background: var(--kz-blue); border-radius: 50px 50px 0 0; padding: 110px 0 120px; color: #fff; }
.kz-position__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.kz-position__top .kz-head { margin-bottom: 0; }
.kz-position__photo { width: 46%; aspect-ratio: 16 / 7; border-radius: 20px; overflow: hidden; }
.kz-jobs { background: #fff; border-radius: 20px; color: #000; padding: 6px 32px; }
.kz-jobs__row { display: grid; grid-template-columns: 3fr 5.6fr 1.2fr 1.2fr 44px; gap: 24px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--kz-line); color: #000; text-decoration: none; font: 500 15px/1.75 var(--kz-jp); }
.kz-jobs__item:last-child .kz-jobs__row, .kz-jobs__item:last-child .kz-jobs__detail { border-bottom: 0; }
.kz-jobs__row > span { line-height: 1.7; }
.kz-jobs__row--head { padding: 16px 0 12px; font-size: 12px; color: var(--kc-6b7671); letter-spacing: .06em; }
.kz-jobs__name { display: flex; flex-direction: column; gap: 4px; font: 700 19px/1.4 var(--kz-jp); letter-spacing: .03em; }
.kz-jobs__name small { font: 600 12px var(--kz-en); color: var(--kz-blue-ink); letter-spacing: .08em; }
.kz-jobs__name em { font: 500 12.5px/1.4 var(--kz-jp); font-style: normal; color: var(--kz-sub); }
.kz-jobs__pay { font: 700 17px var(--kz-jp); }
.kz-jobs__row > i { width: 44px; height: 44px; border-radius: 50%; background: var(--kz-blue); color: #fff; display: grid; place-items: center; transition: background .4s ease; }
.kz-jobs__row:hover > i, .kz-jobs__item.is-open .kz-jobs__row > i { background: #000; }
.kz-jobs__row:not(.kz-jobs__row--head):hover { background: linear-gradient(90deg, transparent, var(--kc-f3faf6) 12%, var(--kc-f3faf6) 88%, transparent); }

/* 選考の流れ（縦の段＋アイコン → 横の流れ＋期間） */
.kz-flow { padding: 130px 0 120px; }
.kz-steps { list-style: none; margin: 16px 0 0; padding: 40px 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; position: relative; }
.kz-steps::before { content: ""; position: absolute; left: 8px; right: calc((100% - 80px) / 5 - 7.5px); top: 47px; height: 1.5px; background: linear-gradient(90deg, var(--kz-blue), var(--kz-sky)); }
.kz-steps li { position: relative; padding-top: 34px; }
.kz-steps li::before { content: ""; position: absolute; left: 0; top: 0; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 2px solid var(--kz-blue); }
.kz-steps li:last-child::before { background: var(--kz-blue); }
.kz-steps__when { display: block; margin-bottom: 8px; font: 600 13px var(--kz-jp); color: var(--kz-blue-ink); letter-spacing: .04em; }
.kz-steps b { display: block; font: 700 20px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kz-steps p { margin: 10px 0 0; font: 500 14.5px/1.8 var(--kz-jp); color: var(--kz-sub); }
.kz-casual { margin-top: 80px; display: grid; grid-template-columns: 5fr 6fr; background: var(--kz-pale-2); border-radius: 20px; overflow: hidden; scroll-margin-top: 120px; }
.kz-casual__photo { min-height: 340px; }
.kz-casual__text { padding: 52px 56px; display: flex; flex-direction: column; align-items: flex-start; }
.kz-casual__en { margin: 0; font: 600 16px var(--kz-en); color: var(--kz-blue-ink); letter-spacing: .04em; }
.kz-casual__title { margin: 10px 0 0; font: 700 32px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kz-casual__text p:not(.kz-casual__en) { margin: 18px 0 28px; font: 500 16px/1.95 var(--kz-jp); letter-spacing: .03em; }

/* よくある質問（ベースの開閉の作り k160〜k172 を、左見出し・右質問の2列に） */
.kz-faq { background: var(--kz-pale-2); padding: 130px 0; }
.kz-faq__grid { display: grid; grid-template-columns: 4fr 8fr; gap: 64px; align-items: start; }
.kz-faq__head { position: sticky; top: 140px; }
.kz-faq__sub { margin: 0; font: 500 15px/1.9 var(--kz-jp); color: var(--kz-sub); }
.kz-faq__list { list-style: none; margin: 0 !important; padding: 0; display: flex !important; flex-direction: column; gap: 12px; width: 100% !important; max-width: none !important; }
.kz-faq__item { align-self: stretch; width: 100%; background: #fff; border-radius: 16px; }
.kz-faq__q { width: 100%; display: grid; grid-template-columns: 34px 1fr 28px; align-items: center; gap: 12px; padding: 24px 26px; background: none; border: 0; cursor: pointer; text-align: left; color: #000; font: 700 17px/1.6 var(--kz-jp); letter-spacing: .03em; }
.kz-faq__mark { font: 600 22px/1 var(--kz-en); color: var(--kz-blue); }
.kz-faq__q > span:nth-child(2) { line-height: 1.6; }
.kz-faq__plus { position: relative; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--kc-c5d4cd); }
.kz-faq__plus::before, .kz-faq__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.6px; background: #000; transform: translate(-50%, -50%); transition: transform .4s ease; }
.kz-faq__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.kz-faq__item.is-open .kz-faq__plus::after { transform: translate(-50%, -50%) rotate(0deg); }
.kz-faq__a { max-height: 0; overflow: hidden; transition: max-height .5s ease; }
.kz-faq__a > div { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 0 26px 26px; margin-right: 40px; }
.kz-faq__a .kz-faq__mark { color: var(--kc-9ba8a2); }
.kz-faq__a p { margin: 0; font: 500 15.5px/1.95 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }

/* 最後の誘い */
.kz-final { position: relative; overflow: hidden; background: var(--kz-blue-deep); color: #fff; padding: 140px 0 150px; text-align: center; }
.kz-final__lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.kz-final .kz-iso { stroke: var(--kc-9bd9bf); opacity: .5; }
.kz-final .kz-iso-label { fill: var(--kc-cdeedd); }
.kz-final__inner { position: relative; }
.kz-final__en { margin: 0; font: 600 18px var(--kz-en); letter-spacing: .1em; color: var(--kc-cdeedd); }
.kz-final__title { margin: 18px 0 0; font: 700 52px/1.45 var(--kz-jp); letter-spacing: .06em; }
.kz-final__btns { margin-top: 44px; display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.kz-final__btns .kz-pill { width: 280px; min-width: 0; }

/* フッター（ベース k221〜 を使い、注記を足す） */
.kz-footer { display: block !important; }
.kz-footer a { text-decoration: none; }
.kz-footer .k249 { gap: 14px; text-decoration: none; color: #fff; }
.kz-footer .k250 { white-space: nowrap; }
.kz-footer__note { margin: 0; font: 500 12px/1.8 var(--kz-jp); color: var(--kc-6b7671); letter-spacing: .04em; }
.kz-logo--footer { gap: 16px; }
.kz-logo--footer .kz-logo__mark { height: 40px; }
.kz-logo--footer .kz-logo__en { font-size: 28px; }

/* 出現 */
.kz-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.kz-reveal.is-in { opacity: 1; transform: none; }

/* ===== 間の幅（ナビが1行に収まらない 1279px 以下）：ナビはメニューに、事業の帯は文字に被るので出さない ===== */
@media (max-width: 1279px) {
  .kz-gnav { display: none; }
  .kz-header .k006 { margin-left: auto !important; }
  .kz-menu-btn { display: block; }
  .kz-business__band { display: none; }
}

/* ===== タブレット（ベースの区切り 990px） ===== */
@media (max-width: 990px) {
  .kz-wrap { width: calc(100% - 48px); }
  .kz-gnav { display: none; }
  .kz-header .k006 { display: none !important; }
  .kz-menu-btn { display: block; margin-left: auto; }
  .kz-header .k003 { height: 72px; }
  .kz-fv { min-height: auto; padding-bottom: 80px; }
  .kz-fv__copy { width: auto; padding: calc(26px + 72px + 56px) 24px 0; }
  .kz-fv__title { font-size: 52px; }
  .kz-fv__photos { position: relative; inset: auto; height: 560px; margin-top: 40px; }
  .kz-fv__ph--a { left: 24px; top: 0; width: 58%; }
  .kz-fv__ph--b { left: auto; right: 24px; top: 40px; width: 28%; }
  .kz-fv__ph--c { left: 10%; top: 330px; width: 34%; }
  .kz-fv__ph--d { left: 50%; top: 270px; width: 24%; }
  .kz-fv__ph--e { left: auto; right: 24px; top: 360px; width: 22%; }
  .kz-fv__legend { left: 24px; bottom: 24px; }
  .kz-scroll { display: none; }
  .kz-message__grid, .kz-business__grid, .kz-env__grid, .kz-day__grid, .kz-faq__grid { grid-template-columns: 1fr; gap: 40px; }
  .kz-message__head, .kz-faq__head { position: static; }
  .kz-numbers__list { grid-template-columns: repeat(2, 1fr); margin: -48px 16px 0; row-gap: 20px; }
  .kz-numbers__list > div:nth-child(3) { border-left: 0; }
  .kz-business__app { order: 2; }
  .kz-business__band { display: none; }
  /* 1列では白と淡い青の境目を、本文の下（画面イメージとのすき間）に置く */
  .kz-business__text { position: relative; z-index: 0; }
  .kz-business__text::before { content: ""; position: absolute; z-index: -1; left: -100vw; right: -100vw; top: -200px; bottom: -20px; background: #fff; }
  .kz-day { height: auto; --kz-day-sticky: 0; }
  .kz-day__sticky { position: static; height: auto; padding: 100px 0; }
  .kz-day__times li { opacity: 1; }
  .kz-day__photos { display: none; }
  .kz-day__inline { display: block; grid-column: 1 / -1; margin-top: 14px; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; }
  .kz-people__list { grid-template-columns: repeat(2, 1fr); }
  .kz-people__top { flex-direction: column; align-items: flex-start; }
  .kz-env__facts { position: static; margin-top: 16px; }
  .kz-company__photo { width: 100%; }
  .kz-company__card { position: relative; top: auto; right: auto; width: auto; transform: none; margin: -60px 24px 0; }
  .kz-position__top { flex-direction: column; align-items: flex-start; }
  .kz-position__photo { width: 100%; }
  .kz-jobs { padding: 6px 24px; }
  .kz-jobs__row { grid-template-columns: 1fr 44px; gap: 8px 16px; }
  .kz-jobs__row > span:not(.kz-jobs__name) { grid-column: 1; }
  .kz-jobs__row > i { grid-row: 1 / span 2; grid-column: 2; }
  .kz-jobs__row--head { display: none; }
  .kz-jobs__row > span[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font: 500 12px/1.5 var(--kz-jp); color: var(--kc-6b7671); letter-spacing: .04em; }
  .kz-steps { grid-template-columns: 1fr; gap: 28px; padding: 0 0 0 34px; }
  .kz-steps::before { left: 7px; right: auto; top: 8px; bottom: 8px; width: 1.5px; height: auto; background: linear-gradient(var(--kz-blue), var(--kz-sky)); }
  .kz-steps li { padding-top: 0; }
  .kz-steps li::before { left: -34px; top: 4px; }
  .kz-steps__when { position: static; display: block; margin-bottom: 4px; }
  .kz-casual { grid-template-columns: 1fr; }
  .kz-casual__photo { aspect-ratio: 4 / 3; min-height: 0; }
}

/* ===== スマホ（ベースの区切り 540px） ===== */
@media (max-width: 540px) {
  .kz-demo-note__more { display: none; }
  .kz-fv__title { font-size: 8vw; letter-spacing: .02em; }
  .kz-fv__ph--b figcaption { display: none; }
  .kz-numbers__list dt { font-size: 12px; }
  .kz-numbers__list dd { flex-wrap: nowrap; white-space: nowrap; }
  .kz-numbers__list dd span { font-size: 13px; }
  .kz-wrap { width: calc(100% - 40px); }
  .kz-demo-note { font-size: 12px; line-height: 1.5; padding: 6px 12px; }
  .kz-header.k002 { top: 24px; }
  .kz-header .k003 { height: 64px; margin: 0 16px !important; width: calc(100% - 32px) !important; max-width: none !important; flex-flow: row !important; align-items: center !important; }
  .kz-logo { gap: 10px; }
  .kz-logo__mark { height: 24px; }
  .kz-logo__en { font-size: 17px; }
  .kz-logo-sub { display: none; }
  .kz-menu-btn { width: 46px; height: 46px; }
  .kz-fv__copy { padding: calc(24px + 64px + 40px) 20px 0; }
  .kz-fv__lead { margin-bottom: 22px; font-size: 13px; }
  .kz-fv__text { font-size: 15px; line-height: 1.9; margin-top: 22px; }
  .kz-fv__text br { display: none; }
  .kz-fv__photos { height: 420px; margin-top: 36px; }
  .kz-fv__ph--a { left: 20px; top: 0; width: 64%; }
  .kz-fv__ph--b { right: 20px; top: 26px; width: 27%; }
  .kz-fv__ph--c { left: 8%; top: 236px; width: 40%; }
  .kz-fv__ph--d { left: 54%; top: 200px; width: 26%; }
  .kz-fv__ph--e { display: none; }
  .kz-fv__ph figcaption { font-size: 12px; }
  .kz-fv__ph--d figcaption { display: none; }
  .kz-head__title, .kz-head .k081 { font-size: 34px !important; }
  .kz-message { padding: 100px 0 80px; }
  .kz-message__title { font-size: 34px !important; }
  .kz-message__body .k082 { font-size: 16px !important; line-height: 2 !important; }
  .kz-numbers { margin-top: 64px; }
  .kz-numbers__photo { aspect-ratio: 4 / 3; }
  .kz-numbers__list { margin: -40px 8px 0; padding: 18px 0; }
  .kz-numbers__list > div { padding: 6px 16px; }
  .kz-numbers__list b { font-size: 34px; }
  .kz-numbers .kz-note { padding-right: 8px; }
  .kz-business { padding: 90px 0 100px; }
  .kz-app__body { grid-template-columns: 1fr; }
  .kz-app__side { display: none; }
  .kz-app__user, .kz-app__crumb, .kz-app__chip, .kz-app__kpis span, .kz-app__kpis small, .kz-app__axis, .kz-app__cols em, .kz-app__cols > div > b, .kz-app__legend, .kz-app__table, .kz-app__title { font-size: 12px; }
  .kz-business__text .k082, .kz-env__text .k082 { font-size: 16px !important; }
  .kz-day__sticky { padding: 90px 0; }
  .kz-day__clock { right: 12px; bottom: -22px; font-size: 28px; padding: 10px 16px; }
  .kz-people__panel { margin: 0 12px; padding: 80px 0 90px; border-radius: 28px; }
  .kz-people__lead br { display: none; }
  .kz-people__list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 8px; scroll-padding: 0 20px; }
  .kz-people__list li { flex: 0 0 72vw; scroll-snap-align: start; }
  .kz-people__list li:nth-child(even) { margin-top: 0; }
  .kz-person__role { letter-spacing: 0; }
  .kz-person__catch { font-size: 18px; }
  .kz-person__catch br { display: none; }
  .kz-person__go { width: 36px; height: 36px; right: 8px; top: 8px; }
  .kz-env { padding: 100px 0 80px; }
  .kz-env__facts { grid-template-columns: repeat(3, 1fr); padding: 14px 0; }
  .kz-env__facts > div { padding: 2px 10px; }
  .kz-env__facts b { font-size: 24px; }
  .kz-env__facts dt { font-size: 12px; }
  .kz-company { padding: 60px 0 100px; }
  .kz-company__photo { aspect-ratio: 4 / 3; }
  .kz-company__card { margin: -40px 12px 0; padding: 32px 22px 26px; }
  .kz-position { padding: 80px 0 90px; border-radius: 32px 32px 0 0; }
  .kz-jobs { padding: 4px 18px; }
  .kz-jobs__name { font-size: 17px; }
  .kz-flow { padding: 100px 0 90px; }
  .kz-casual__text { padding: 34px 24px 36px; }
  .kz-casual__title { font-size: 26px; }
  .kz-casual__text .kz-pill { padding: 20px 18px; gap: 10px; }
  .kz-pill { min-width: 0; width: 100%; }
  .kz-faq { padding: 100px 0; }
  .kz-faq__q { grid-template-columns: 26px 1fr 26px; padding: 20px 18px; font-size: 15.5px; }
  .kz-faq__a > div { grid-template-columns: 26px 1fr; padding: 0 18px 22px; margin-right: 0; }
  .kz-final { padding: 100px 0 110px; }
  .kz-final__title { font-size: 34px; }
  .kz-final__btns { padding: 0 20px; flex-direction: column; }
  .kz-final__btns .kz-pill { width: 100%; }
}

/* ===================== 下層ページ ===================== */
.kz-head--center { align-items: center !important; text-align: center; margin-left: auto; margin-right: auto; }

/* 下層の見出し（ベースの英字の大見出し＋帯＋横長の写真を改変） */
.kz-sub-hero { position: relative; padding: calc(26px + 84px + 56px) 0 56px; overflow: hidden; }
.kz-sub-hero__band { position: absolute; left: 0; right: 0; top: 60px; width: 100%; height: 520px; pointer-events: none; }
/* 下層の見出し：左に日本語の大見出しと気圧つきの目次、右に60%幅の写真（元サイトの「英字の大見出し＋全幅写真＋横並びの目次」から組み替え） */
.kz-sub-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 60%; gap: 64px; }
.kz-sub-hero__side { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding-top: 16px; }
.kz-sub-hero__en { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; font: 600 14px/1 var(--kz-en); letter-spacing: .14em; text-transform: uppercase; color: var(--kz-blue); }
.kz-sub-hero__en::before { content: ""; width: 24px; height: 1.5px; background: currentColor; }
.kz-sub-hero__title { margin: 0; font: 700 56px/1.25 var(--kz-jp); letter-spacing: .04em; color: var(--kc-0e3a30); }
.kz-sub-hero__lead { margin: 24px 0 0; font: 500 16px/1.9 var(--kz-jp); color: var(--kc-34544b); }
.kz-sub-hero__photo { position: relative; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 60px color-mix(in srgb, var(--kc-0e3a30) 12%, transparent); }
.kz-sub-hero__photo figcaption { position: absolute; left: 16px; bottom: 16px; padding: 8px 12px 8px 10px; background: #fff; border-radius: 50px; box-shadow: 0 4px 14px color-mix(in srgb, var(--kc-0e3a30) 10%, transparent); display: flex; gap: 8px; align-items: baseline; font: 500 12px/1 var(--kz-en); letter-spacing: .06em; color: var(--kc-34544b); white-space: nowrap; }
.kz-sub-hero__photo figcaption b { font-weight: 600; color: var(--kz-blue-ink); }
.kz-sub-hero__photo figcaption::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--kz-blue); align-self: center; box-shadow: 0 0 0 4px color-mix(in srgb, var(--kc-17a07a) 15%, transparent); }
.kz-anchors { display: flex; flex-direction: column; border-top: 1px solid var(--kc-cbd9d2); }
.kz-anchors a { display: grid; grid-template-columns: 84px minmax(0, 1fr) 22px; align-items: center; gap: 12px; min-height: 64px; padding: 10px 2px; border-bottom: 1px solid var(--kc-cbd9d2); color: #000; text-decoration: none; font: 700 16px/1.5 var(--kz-jp); letter-spacing: .04em; transition: color .4s ease; }
.kz-anchors__hpa { font: 600 16px/1 var(--kz-en); color: var(--kz-blue); letter-spacing: .02em; }
.kz-anchors__hpa small { margin-left: 3px; font-size: 12px; font-weight: 500; color: var(--kc-6b8279); }
.kz-anchors a i { width: 22px; height: 22px; border-radius: 50%; background: var(--kz-pale); position: relative; transition: background .4s ease; }
.kz-anchors a i::after { content: ""; position: absolute; left: 50%; top: 39%; width: 6px; height: 6px; border-right: 1.6px solid var(--kz-blue); border-bottom: 1.6px solid var(--kz-blue); transform: translate(-50%, -50%) rotate(45deg); transition: border-color .4s ease; }
.kz-anchors a:hover { color: var(--kz-blue); }
.kz-anchors a:hover i { background: var(--kz-blue); }
.kz-anchors a:hover i::after { border-color: #fff; }
.kz-iv__top .kz-sub-hero__en { margin: 0; }

/* 数字で見る */
.kz-figs { padding: 60px 0 0; scroll-margin-top: 90px; }
.kz-figs__panel { margin: 0 24px; padding: 100px 0 110px; background: var(--kz-pale); border-radius: 40px; }
.kz-figs__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.kz-fig { background: #fff; border-radius: 20px; padding: 26px 28px 28px; display: flex; flex-direction: column; min-height: 220px; }
.kz-fig--wide { grid-column: span 2; }
.kz-fig--full { grid-column: 1 / -1; min-height: 0; }
.kz-fig__label { margin: 0 0 18px; font: 700 15px/1.5 var(--kz-jp); letter-spacing: .04em; color: var(--kc-1e4a3f); display: flex; align-items: center; gap: 8px; }
.kz-fig__label::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--kz-blue); }
.kz-fig__big { margin: auto 0 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.kz-fig__big b { font: 600 64px/1 var(--kz-en); color: var(--kz-blue); letter-spacing: .01em; }
.kz-fig__big small { font: 700 18px var(--kz-jp); color: #000; }
.kz-fig__of { flex-basis: 100%; margin-top: 10px; font: 500 13px var(--kz-jp); color: var(--kz-sub); }
.kz-fig__note { margin: 12px 0 0; font: 500 13px/1.6 var(--kz-jp); color: var(--kz-sub); }
.kz-fig__cap { display: flex; justify-content: space-between; margin: 8px 0 0; font: 700 13px var(--kz-jp); color: var(--kz-sub); }
.kz-split { display: flex; height: 10px; border-radius: 10px; overflow: hidden; margin-top: 16px; background: var(--kc-9bd9bf); }
.kz-split span:first-child { background: var(--kz-blue); }
.kz-fig__donut-row { display: grid; grid-template-columns: 170px 1fr; gap: 28px; align-items: center; margin: auto 0; }
.kz-donut { width: 170px; height: 170px; transform: rotate(-90deg); }
.kz-donut circle, .kz-ring circle { fill: none; stroke-width: 16; }
.kz-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.kz-legend li { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 10px; font: 500 14px var(--kz-jp); padding-bottom: 10px; border-bottom: 1px solid var(--kc-edf3f0); }
.kz-legend i { width: 12px; height: 12px; border-radius: 3px; }
.kz-legend b { font: 600 24px var(--kz-en); color: var(--kc-0e3a30); }
.kz-legend small { font-size: 13px; margin-left: 2px; }
.kz-ring { position: relative; width: 150px; height: 150px; margin: auto auto 0; }
.kz-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.kz-ring circle { stroke-width: 10; stroke-linecap: round; }
.kz-ring__num { position: absolute; inset: 0; justify-content: center; align-items: center; margin: 0; }
.kz-ring__num b { font-size: 46px; }
.kz-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.kz-rank li { display: grid; grid-template-columns: 28px 160px 1fr 72px; align-items: center; gap: 12px; font: 700 15px var(--kz-jp); }
.kz-rank__no { width: 26px; height: 26px; border-radius: 50%; background: var(--kz-pale); color: var(--kz-blue); display: grid; place-items: center; font: 600 13px var(--kz-en); }
.kz-rank li:first-child .kz-rank__no { background: var(--kz-blue); color: #fff; }
.kz-rank__bar { height: 8px; border-radius: 8px; background: var(--kc-edf3f0); position: relative; overflow: hidden; }
.kz-rank__bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--v); background: linear-gradient(90deg, var(--kc-9bd9bf), var(--kz-blue)); border-radius: 8px; }
.kz-rank em { font: 600 14px var(--kz-en); font-style: normal; text-align: right; color: var(--kz-sub); }

/* 成長できる環境 */
.kz-growth { padding: 130px 0 110px; scroll-margin-top: 90px; }
.kz-growth__grid { display: grid; grid-template-columns: 5fr 6fr; gap: 64px; align-items: start; }
.kz-growth__photo { aspect-ratio: 3 / 2; border-radius: 20px; overflow: hidden; position: sticky; top: 130px; }
.kz-growth__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--kc-d5e1db); }
.kz-growth__list li { padding: 26px 0; border-bottom: 1px solid var(--kc-d5e1db); }
.kz-growth__list b { display: block; font: 700 20px/1.6 var(--kz-jp); letter-spacing: .03em; }
.kz-growth__list p { margin: 8px 0 0; font: 500 15.5px/1.95 var(--kz-jp); color: var(--kc-16241f); }
.kz-strip { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: 20px; margin-top: 80px; align-items: end; }
.kz-strip figure { border-radius: 20px; overflow: hidden; aspect-ratio: 3 / 4; }
.kz-strip figure:nth-child(2) { aspect-ratio: 15 / 16; }

/* 福利厚生 */
.kz-benefit { padding: 0; scroll-margin-top: 90px; }
.kz-benefit__panel { margin: 0 24px; padding: 100px 0 110px; background: var(--kz-pale-2); border-radius: 40px; }
.kz-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--kz-pale); display: grid; place-items: center; margin-bottom: 18px; }
.kz-icon svg { width: 28px; height: 28px; fill: none; stroke: var(--kz-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; display: block; }

/* 働いている人の声 */
.kz-voices { padding: 130px 0 116px; }
.kz-voices .kz-head { margin-bottom: 44px; }
.kz-voices__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px 28px; }

/* 他のページへ（写真を上、文字と線の丸矢印を下に） */
.kz-more { padding: 80px 0 120px; }
.kz-more__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.kz-more__card { display: block; color: #000; text-decoration: none; }
.kz-more__card figure { aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden; }
.kz-more__card figure img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.kz-more__card:hover figure img { transform: scale(1.04); }
.kz-more__row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 4px 0; }
.kz-more__text { display: flex; flex-direction: column; gap: 8px; }
.kz-more__text .kz-en { font: 600 13px/1 var(--kz-en); color: var(--kz-blue-ink); letter-spacing: .06em; }
.kz-more__text b { font: 700 22px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kz-more__row i { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #000; display: grid; place-items: center; transition: background .4s ease, color .4s ease, border-color .4s ease; }
.kz-more__card:hover .kz-more__row i { background: var(--kz-blue); border-color: var(--kz-blue); color: #fff; }

/* 存在意義 */
.kz-purpose { padding: 120px 0 120px; scroll-margin-top: 90px; }
.kz-purpose__grid { display: grid; grid-template-columns: 6fr 5fr; gap: 72px; align-items: start; }
.kz-purpose__lead { margin: 8px 0 36px; font: 700 40px/1.55 var(--kz-jp); letter-spacing: .06em; }
.kz-purpose__text > p:not(.kz-purpose__lead) { margin: 0 0 22px; font: 500 17px/2.1 var(--kz-jp); letter-spacing: .03em; max-width: 560px; }
.kz-purpose__photos { position: relative; height: 640px; }
.kz-purpose__ph { position: absolute; border-radius: 20px; overflow: hidden; }
.kz-purpose__ph--a { left: 0; top: 0; width: 78%; aspect-ratio: 3 / 2; }
.kz-purpose__ph--b { right: 0; top: 290px; width: 60%; aspect-ratio: 3 / 2; z-index: 1; box-shadow: 0 20px 40px color-mix(in srgb, var(--kc-0e3a30) 14%, transparent); }
.kz-purpose__ph--c { left: 0; top: 350px; width: 34%; aspect-ratio: 3 / 4; }

/* 行動指針 */
.kz-value { padding: 0; scroll-margin-top: 90px; }
.kz-value__panel { position: relative; overflow: hidden; margin: 0 24px; padding: 110px 0 120px; background: var(--kz-pale); border-radius: 40px; }
.kz-value__band { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.kz-value .kz-wrap { position: relative; }

/* 会社概要 */
.kz-outline { padding: 130px 0 80px; scroll-margin-top: 90px; }
.kz-outline__grid { display: grid; grid-template-columns: 4fr 8fr; gap: 64px; align-items: start; }
.kz-outline__list { margin: 0; border-top: 1px solid #000; }
.kz-outline__list > div { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 24px 4px; border-bottom: 1px solid var(--kc-d5e1db); }
.kz-outline__list dt { font: 700 15px/1.9 var(--kz-jp); color: var(--kc-1e4a3f); }
.kz-outline__list dd { margin: 0; font: 500 16px/1.9 var(--kz-jp); }
.kz-outline__sample { display: inline-block; margin-left: 12px; padding: 2px 10px; border-radius: 50px; background: var(--kz-pale); color: var(--kz-blue-ink); font: 700 12px/1.7 var(--kz-jp); vertical-align: 2px; }

/* インタビュー */
.kz-iv { position: relative; padding: calc(26px + 84px + 60px) 0 100px; background: linear-gradient(var(--kz-pale-2), var(--kz-pale-2) 520px, #fff 520px); }
.kz-iv__band { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 900px; pointer-events: none; }
.kz-iv .kz-wrap { position: relative; }
.kz-iv__top { display: flex; align-items: baseline; gap: 20px; margin-bottom: 44px; }
.kz-iv__sub { margin: 0; font: 700 18px var(--kz-jp); color: var(--kz-blue-ink); letter-spacing: .08em; }
.kz-iv__grid { display: grid; grid-template-columns: 380px 1fr; gap: 64px; align-items: start; }
.kz-iv__profile { position: sticky; top: 120px; }
.kz-iv__card { background: #fff; border-radius: 24px; padding: 18px 18px 26px; box-shadow: 0 24px 50px color-mix(in srgb, var(--kc-0e3a30) 10%, transparent); }
.kz-iv__card figure { aspect-ratio: 4 / 4.4; border-radius: 16px; overflow: hidden; }
.kz-iv__card .kz-person__role { margin: 22px 8px 0; }
.kz-iv__catch { margin: 12px 8px 0; font: 700 26px/1.55 var(--kz-jp); letter-spacing: .04em; }
.kz-iv__name { margin: 16px 8px 0; font: 700 17px var(--kz-jp); display: flex; align-items: baseline; gap: 12px; }
.kz-iv__name .kz-en { font: 600 12px var(--kz-en); color: var(--kz-sub); letter-spacing: .1em; }
.kz-iv__tags { list-style: none; margin: 16px 8px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.kz-iv__tags li { padding: 6px 12px; border-radius: 50px; background: var(--kz-pale); font: 700 12px var(--kz-jp); color: var(--kc-1e4a3f); }
.kz-iv__log { background: #fff; border-radius: 24px; padding: 40px 44px 44px; box-shadow: 0 0 0 1px var(--kc-e4ece8); display: flex; flex-direction: column; gap: 18px; }
.kz-iv__day { margin: 0 0 6px; display: flex; align-items: center; gap: 16px; font: 500 13px/1.6 var(--kz-jp); color: var(--kz-sub); text-align: center; }
.kz-iv__day span { line-height: 1.6; }
.kz-iv__day::before, .kz-iv__day::after { content: ""; flex: 1; height: 1px; background: var(--kc-e4ece8); }
.kz-q { display: flex; align-items: baseline; gap: 14px; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--kc-e4ece8); }
.kz-iv__day + .kz-q { margin-top: 4px; padding-top: 0; border-top: 0; }
.kz-q__no { flex: 0 0 auto; font: 600 18px/1 var(--kz-en); color: var(--kz-blue); letter-spacing: .02em; }
.kz-q__text { margin: 0; font: 700 20px/1.6 var(--kz-jp); letter-spacing: .03em; }
.kz-a { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; max-width: 92%; }
.kz-a__face { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; display: block; }
.kz-a__body { background: var(--kc-f3f8f5); border-radius: 6px 22px 22px 22px; padding: 18px 22px 18px; }
.kz-a__body p { margin: 0; font: 500 15.5px/2 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kz-a__body p + p { margin-top: 12px; }
.kz-iv__photo { margin: 18px 0; border-radius: 18px; overflow: hidden; position: relative; aspect-ratio: 16 / 10; }
.kz-iv__photo figcaption { position: absolute; left: 14px; bottom: 14px; padding: 8px 14px; border-radius: 50px; background: rgba(255,255,255,.94); font: 700 13px/1.5 var(--kz-jp); letter-spacing: .03em; }
.kz-others { padding: 40px 0 80px; }
.kz-others__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kz-other { display: flex; flex-direction: column; color: #000; text-decoration: none; }
.kz-other figure { position: relative; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; }
.kz-other figure img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.kz-other figure img { transition: none; }
.kz-other figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.45), transparent 55%); }
.kz-other figure p { z-index: 1; position: absolute; left: 12px; bottom: 12px; right: 12px; margin: 0; font: 700 15px/1.5 var(--kz-jp); color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.45); }
.kz-other .kz-person__role { margin: 14px 0 0; }
.kz-other b { margin-top: 8px; font: 700 16px var(--kz-jp); }
.kz-other__meta { margin-top: 4px; font: 500 13px var(--kz-jp); color: var(--kz-sub); }

/* パンくず */
.kz-crumb { align-self: stretch; width: 100%; border-bottom: 1px solid var(--kc-e4ece8); }
.kz-crumb__in { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; }
.kz-crumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font: 500 13px var(--kz-jp); color: var(--kz-sub); }
.kz-crumb li + li::before { content: "›"; margin-right: 8px; color: var(--kc-9ba8a2); }
.kz-crumb a { color: #000; text-decoration: none; }
.kz-crumb a:hover { color: var(--kz-blue); }
.kz-crumb__top { font: 600 12px var(--kz-en); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }

@media (max-width: 990px) {
  .kz-sub-hero { padding-top: calc(26px + 72px + 40px); }
  .kz-sub-hero__inner { grid-template-columns: 1fr; gap: 36px; }
  .kz-sub-hero__side { display: contents; }
  .kz-sub-hero__head { order: 1; }
  .kz-sub-hero__photo { order: 2; aspect-ratio: 16 / 10; }
  .kz-anchors { order: 3; }
  .kz-figs__grid { grid-template-columns: repeat(2, 1fr); }
  .kz-growth__grid, .kz-purpose__grid, .kz-outline__grid, .kz-iv__grid { grid-template-columns: 1fr; gap: 40px; }
  .kz-growth__photo, .kz-iv__profile { position: static; }
  .kz-more__list, .kz-others__list { grid-template-columns: 1fr 1fr; }
  .kz-iv__profile { max-width: 420px; }
}
@media (max-width: 540px) {
  .kz-sub-hero { padding: calc(24px + 64px + 32px) 0 24px; }
  .kz-sub-hero__head { margin-bottom: 44px; }
  /* スマホでは写真の左右に帯の切れ端がのぞくため、見出しと写真のあいだを端から端まで横切る帯に置き換える */
  .kz-sub-hero__band, .kz-iv__band { display: none; }
  .kz-sub-hero__head, .kz-iv__top { position: relative; }
  .kz-sub-hero__head::after, .kz-iv__top::after { content: ""; position: absolute; left: -48px; right: -48px; bottom: -54px; height: 30px; border-radius: 30px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.75) 0 3px, transparent 3px 25px) center / 100% 2px no-repeat, linear-gradient(90deg, var(--kc-9bd9bf), var(--kc-17a07a) 45%, var(--kc-0b5e49)); transform: rotate(-4deg); pointer-events: none; }
  .kz-iv__top { margin-bottom: 76px; }
  .kz-sub-hero__title { font-size: 36px; }
  .kz-sub-hero__lead { margin-top: 16px; }
  .kz-sub-hero__photo { aspect-ratio: 4 / 3; }
  .kz-anchors a { grid-template-columns: 76px minmax(0, 1fr) 22px; min-height: 56px; font-size: 15px; }
  .kz-figs__panel, .kz-benefit__panel, .kz-value__panel { margin: 0 12px; padding: 72px 0 80px; border-radius: 28px; }
  .kz-figs__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kz-fig { padding: 20px 18px; min-height: 0; }
  .kz-fig--wide { grid-column: 1 / -1; }
  .kz-fig__big b { font-size: 34px; }
  .kz-fig__big small { font-size: 14px; }
  .kz-fig__label { font-size: 13px; margin-bottom: 12px; }
  .kz-fig__donut-row { grid-template-columns: 1fr; justify-items: center; }
  .kz-legend { width: 100%; }
  .kz-ring { width: 120px; height: 120px; }
  .kz-ring__num b { font-size: 34px; }
  .kz-rank li { grid-template-columns: 26px 1fr 52px; }
  .kz-rank__bar { grid-column: 2 / -1; grid-row: 2; }
  .kz-growth { padding: 90px 0 80px; }
  .kz-strip { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 48px; }
  .kz-strip figure:nth-child(3) { display: none; }
  .kz-more__list, .kz-others__list, .kz-voices__list { grid-template-columns: 1fr; }
  .kz-voices { padding: 90px 0 80px; }
  .kz-more { padding: 60px 0 80px; }
  .kz-purpose { padding: 80px 0; }
  .kz-purpose__lead { font-size: 30px; }
  .kz-purpose__text > p:not(.kz-purpose__lead) { font-size: 16px; }
  .kz-purpose__photos { height: 420px; }
  .kz-purpose__ph--b { top: 190px; }
  .kz-purpose__ph--c { top: 220px; }
  .kz-outline { padding: 90px 0 20px; }
  .kz-outline__list > div { grid-template-columns: 1fr; gap: 4px; padding: 18px 2px; }
  .kz-iv { padding-top: calc(24px + 64px + 32px); }
  .kz-iv__log { padding: 26px 16px 28px; border-radius: 20px; }
  .kz-q__text { font-size: 17px; }
  .kz-q__no { font-size: 16px; }
  .kz-a { grid-template-columns: 1fr; max-width: 100%; }
  .kz-a__face { display: none; }
  .kz-a__body { padding: 14px 16px; }
  .kz-iv__photo figcaption { right: 14px; border-radius: 12px; }
  .kz-a__body p { font-size: 15px; line-height: 1.95; }
  .kz-iv__catch { font-size: 22px; }
  .kz-crumb__in { padding: 14px 0; }
}

/* ver6：インタビューがある先輩だけを押せるカードにする */
.kz-person__read { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 0 0 4px; font: 700 13px/1 var(--kz-jp); color: var(--kz-blue); border-bottom: 1.5px solid currentColor; }
@media (min-width: 991px) and (max-width: 1279px) {
  .kz-sub-hero__inner { grid-template-columns: minmax(0, 1fr) 56%; gap: 40px; }
  .kz-sub-hero__title { font-size: 44px; }
  .kz-sub-hero__photo { aspect-ratio: auto; height: 600px; }
}

/* ver6：行動指針は「5日間の予報」の横帯。1枚のカードを縦線で5日に割る */
.kz-forecast__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.kz-forecast__lead { margin: 0 0 6px; font: 700 18px/1.7 var(--kz-jp); color: var(--kc-0e3a30); text-align: right; }
.kz-forecast__lead .kz-en { display: block; margin-bottom: 10px; font: 600 13px/1 var(--kz-en); letter-spacing: .16em; color: var(--kz-blue); }
.kz-forecast__scroll { margin-top: 8px; }
.kz-forecast { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: #fff; border-radius: 24px; box-shadow: 0 24px 50px color-mix(in srgb, var(--kc-0e3a30) 8%, transparent); }
.kz-forecast li { display: flex; flex-direction: column; padding: 30px 26px 36px; }
.kz-forecast li + li { border-left: 1px solid var(--kc-dfefe8); }
.kz-forecast__day { display: flex; align-items: baseline; gap: 10px; margin: 0; padding-bottom: 16px; border-bottom: 1px dashed var(--kc-cbd9d2); font: 700 13px/1 var(--kz-jp); color: var(--kc-34544b); }
.kz-forecast__day .kz-en { font: 600 15px/1 var(--kz-en); letter-spacing: .1em; color: var(--kz-blue-ink); }
.kz-wx { display: block; width: 56px; height: 56px; margin: 26px 0 22px; fill: none; stroke: var(--kz-blue); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.kz-forecast b { font: 700 19px/1.5 var(--kz-jp); letter-spacing: .03em; }
.kz-forecast li > p:last-child { margin: 12px 0 0; font: 500 15px/1.85 var(--kz-jp); color: var(--kc-16241f); }
@media (max-width: 1279px) {
  .kz-forecast li { padding: 26px 20px 30px; }
  .kz-forecast b { font-size: 17px; }
}
@media (max-width: 990px) {
  /* 5日を1行のまま横にたどる（天気予報アプリの週間予報と同じ見え方） */
  .kz-forecast__scroll { margin: 8px -24px 0; padding: 0 24px 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 24px; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); }
  .kz-forecast { grid-template-columns: repeat(5, 260px); width: max-content; }
  .kz-forecast li { scroll-snap-align: start; }
}
@media (max-width: 540px) {
  .kz-forecast__head { flex-direction: column; align-items: flex-start; gap: 20px; }
  .kz-forecast__lead { text-align: left; font-size: 16px; }
  .kz-forecast__scroll { margin: 4px -20px 0; padding: 0 20px 20px; scroll-padding: 0 20px; }
  .kz-forecast { grid-template-columns: repeat(5, 72vw); }
  .kz-forecast li { padding: 24px 20px 28px; }
}

/* ver6：福利厚生は「こんな日は → こうできる」の表。制度名から並べず、使う場面から引けるようにする */
.kz-ifthen { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: 0 24px 50px color-mix(in srgb, var(--kc-0e3a30) 6%, transparent); }
.kz-ifthen thead th { padding: 22px 36px 18px; text-align: left; font: 700 14px/1 var(--kz-jp); color: var(--kc-34544b); letter-spacing: .06em; border-bottom: 1px solid var(--kc-cbd9d2); }
.kz-ifthen thead th:first-child { width: 40%; border-right: 1px solid var(--kc-e3eae6); }
.kz-ifthen thead .kz-en { margin-right: 10px; font: 600 13px/1 var(--kz-en); letter-spacing: .14em; color: var(--kz-blue); }
.kz-ifthen tbody tr + tr > * { border-top: 1px solid var(--kc-e3eae6); }
.kz-ifthen tbody th { position: relative; padding: 28px 56px 28px 36px; text-align: left; vertical-align: middle; border-right: 1px solid var(--kc-e3eae6); font: 700 17px/1.65 var(--kz-jp); color: var(--kc-0e3a30); }
.kz-ifthen tbody th::after { content: ""; position: absolute; right: -11px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; background: var(--kz-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M9.5 7l4 4-4 4' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px no-repeat; z-index: 1; }
.kz-ifthen tbody td { padding: 26px 36px 26px 44px; vertical-align: middle; }
.kz-ifthen td b { display: block; font: 700 17px/1.5 var(--kz-jp); color: var(--kz-blue-ink); }
.kz-ifthen td p { margin: 6px 0 0; font: 500 15px/1.85 var(--kz-jp); color: var(--kc-16241f); }
@media (max-width: 540px) {
  .kz-ifthen thead { display: none; }
  .kz-ifthen, .kz-ifthen tbody, .kz-ifthen tr, .kz-ifthen th, .kz-ifthen td { display: block; width: auto; }
  .kz-ifthen { border-radius: 20px; }
  .kz-ifthen tbody tr + tr > * { border-top: 0; }
  .kz-ifthen tbody tr + tr { border-top: 1px solid var(--kc-cbd9d2); }
  .kz-ifthen tbody th { padding: 20px 20px 22px; font-size: 16px; border-right: 0; background: var(--kc-f7fbf9); }
  .kz-ifthen tbody th::before { content: "IF"; display: block; margin-bottom: 6px; font: 600 12px/1 var(--kz-en); letter-spacing: .14em; color: var(--kz-blue); }
  .kz-ifthen tbody th br { display: none; }
  .kz-ifthen tbody th::after { right: auto; left: 20px; top: auto; bottom: -11px; margin-top: 0; transform: rotate(90deg); }
  .kz-ifthen tbody td { padding: 24px 20px 22px; }
}

/* ver6：社員の声は「観測メモ」。日付・天気・気温の1行を見出しにして、その日に書いた記録として読ませる */
.kz-voices__list li { position: relative; display: flex; flex-direction: column; padding: 0 32px 28px 40px; border-radius: 20px; background: #fff; border: 1px solid var(--kc-dbeee6); }
.kz-voices__list li::before { content: ""; position: absolute; left: 22px; top: 0; bottom: 0; width: 1px; background: var(--kc-a6dcc4); }
.kz-voices__list li:nth-child(even) { transform: translateY(36px); }
.kz-memo__log { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 0 0 18px; padding: 18px 0 14px; border-bottom: 1px dashed var(--kc-cbd9d2); font: 700 13px/1.4 var(--kz-jp); color: var(--kc-34544b); }
.kz-memo__log .kz-en { font: 600 12px/1 var(--kz-en); letter-spacing: .14em; color: var(--kz-blue); }
.kz-memo__log time { font: 600 14px/1 var(--kz-en); letter-spacing: .04em; color: var(--kc-0e3a30); }
.kz-memo__text { margin: 0; font: 700 17px/1.9 var(--kz-jp); letter-spacing: .03em; background: repeating-linear-gradient(transparent 0 calc(1.9em - 1px), var(--kc-e8f5ef) calc(1.9em - 1px) 1.9em); }
.kz-memo__who { margin-top: auto; padding-top: 16px; font: 500 13px var(--kz-jp); color: var(--kz-sub); }
@media (max-width: 540px) {
  .kz-voices__list li { padding: 0 20px 22px 32px; }
  .kz-voices__list li::before { left: 18px; }
  .kz-voices__list li:nth-child(even) { transform: none; }
  .kz-memo__text { font-size: 16px; }
}

/* ver6：スマホの画面イメージは横スクロールさせず、スマホ幅に組み替える（数字は2×2・表は4列・気温は表に任せる） */
@media (max-width: 540px) {
  .kz-app__bar { height: 38px; padding: 0 12px; }
  .kz-app__main { padding: 14px 12px 14px; }
  .kz-app__headrow { flex-direction: column; align-items: flex-start; gap: 8px; }
  .kz-app__kpis { grid-template-columns: 1fr 1fr; }
  .kz-app__kpis b { font-size: 18px; }
  .kz-app__chart { height: 176px; padding: 40px 8px 24px 36px; }
  .kz-app__axis { left: 6px; top: 40px; bottom: 24px; }
  .kz-app__cols { gap: 4px; }
  .kz-app__cols s { left: 18%; right: 18%; }
  .kz-app__cols em { display: none; }
  .kz-app__legend { left: 12px; right: auto; }
  .kz-app__table th:nth-child(3), .kz-app__table td:nth-child(3), .kz-app__table th:nth-child(5), .kz-app__table td:nth-child(5) { display: none; }
  .kz-app__table th, .kz-app__table td { padding: 7px 6px; }
}

/* ver6：募集職種は行ごとに開閉して、1年目の仕事・向いている人・応募の条件を見せる */
.kz-jobs__list { list-style: none; margin: 0; padding: 0; }
button.kz-jobs__row { width: 100%; text-align: left; cursor: pointer; background: none; border: 0; border-bottom: 1px solid var(--kz-line); font: 500 15px/1.75 var(--kz-jp); color: #000; }
.kz-jobs__item.is-open .kz-jobs__row { border-bottom-color: transparent; }
.kz-jobs__row > i { position: relative; }
.kz-jobs__row > i::before, .kz-jobs__row > i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.6px; margin: -.8px 0 0 -7px; background: #fff; transition: transform .4s ease; }
.kz-jobs__row > i::after { transform: rotate(90deg); }
.kz-jobs__item.is-open .kz-jobs__row > i::after { transform: rotate(0deg); }
.kz-jobs__detail { max-height: 0; overflow: hidden; transition: max-height .5s cubic-bezier(.2,.7,.2,1); border-bottom: 1px solid var(--kz-line); }
.kz-jobs__item:not(.is-open) .kz-jobs__detail { border-bottom-color: transparent; }
.kz-jobs__detail dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; margin: 0 0 28px; padding: 22px 26px; background: var(--kc-f3faf6); border-radius: 14px; }
.kz-jobs__detail dt { margin: 0 0 6px; font: 700 13px/1.4 var(--kz-jp); color: var(--kz-blue-ink); letter-spacing: .04em; }
.kz-jobs__detail dd { margin: 0; font: 500 15px/1.8 var(--kz-jp); color: var(--kc-16241f); }
@media (max-width: 990px) {
  .kz-jobs__detail dl { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
}
/* ver6：スマホの本文は16pxにそろえる（キャプション・注記は除く） */
@media (max-width: 540px) {
  .kz-fv__text, .kz-faq__a p, .kz-growth__list p, .kz-purpose__text p, .kz-a__body p, .kz-jobs__detail dd, .kz-ifthen td p, .kz-forecast li > p:last-child { font-size: 16px; }
}
/* ver6：指で押すリンクは、見た目を変えずに押せる範囲を44px以上にする */
@media (max-width: 990px) {
  .kz-footer nav a.link, .kz-footer nav a.text { display: flex; align-items: center; min-height: 44px; }
  .kz-logo { padding: 10px 0; margin: -10px 0; }
  .kz-crumb a { display: inline-flex; align-items: center; min-height: 44px; margin: -15px 0; }
}
@media (max-width: 540px) {
  .kz-footer .kb.k246 { flex-wrap: wrap; row-gap: 24px; }
  .kz-logo--footer { gap: 12px; }
  .kz-logo--footer .kz-logo__mark { height: 30px; }
  .kz-logo--footer .kz-logo__en { font-size: 21px; }
}
/* ver6：数字は白い帯でまとめず、写真の上に散らした観測点のタグにする（PC） */
@media (min-width: 991px) {
  .kz-numbers { counter-reset: obs; }
  .kz-numbers__list { position: absolute; inset: 0 0 auto; aspect-ratio: 16 / 7; margin: 0 auto; width: min(var(--kz-wrap), calc(100% - 80px)); display: block; background: none; box-shadow: none; padding: 0; }
  .kz-numbers__list > div { position: absolute; padding: 16px 22px 18px; border: 0; border-radius: 16px; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 18px 40px color-mix(in srgb, var(--kc-0e3a30) 14%, transparent); counter-increment: obs; }
  .kz-numbers__list > div::before { content: "OBS 0" counter(obs); display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font: 600 12px/1 var(--kz-en); letter-spacing: .14em; color: var(--kz-blue); }
  .kz-numbers__list > div::after { content: ""; position: absolute; left: 22px; bottom: -22px; width: 9px; height: 9px; border-radius: 50%; background: var(--kz-blue); box-shadow: 0 0 0 5px rgba(255,255,255,.7); }
  .kz-numbers__list dt { font-size: 13px; }
  .kz-numbers__list b { font-size: 46px; }
  .kz-numbers__list > div:nth-child(1) { left: 4%; top: 7%; }
  .kz-numbers__list > div:nth-child(2) { right: 5%; top: 17%; }
  .kz-numbers__list > div:nth-child(3) { left: 27%; top: 52%; }
  .kz-numbers__list > div:nth-child(4) { right: 22%; top: 66%; }
  .kz-numbers .kz-note { margin-top: 16px; }
}

/* ver6：選考の流れは、まっすぐな線をやめ、上下にずらした点を等圧線のような曲線でつなぐ（PC） */
@media (min-width: 991px) {
  .kz-steps::before { display: none; }
  .kz-steps li:nth-child(1) { --dy: 0px; }
  .kz-steps li:nth-child(2) { --dy: 16px; }
  .kz-steps li:nth-child(3) { --dy: 6px; }
  .kz-steps li:nth-child(4) { --dy: 22px; }
  .kz-steps li:nth-child(5) { --dy: 10px; }
  .kz-steps li { padding-top: calc(34px + var(--dy)); }
  .kz-steps li::before { top: var(--dy); z-index: 1; }
  .kz-steps__iso { position: absolute; left: 7.5px; top: -12.5px; width: calc(100% + 20px); height: 50px; overflow: visible; pointer-events: none; }
  .kz-steps__iso path { fill: none; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
  .kz-steps__iso .kz-steps__iso2 { stroke: var(--kc-d0eadf); stroke-dasharray: 2 6; stroke-linecap: round; }
}
@media (max-width: 990px) { .kz-steps__iso { display: none; } }

/* ver6：フッターは左右を入れ替え、左にロゴ・キャッチ・面談、右にメニュー。ヘッダーの面談は枠を外した文字リンクにして、ボタンはエントリーの1つだけ */
.kz-footer__catch { margin: 0; font: 700 22px/1.6 var(--kz-jp); letter-spacing: .04em; color: var(--kc-0e3a30); }
@media (min-width: 991px) {
  .kz-footer .kb.k223 { flex-direction: row-reverse; align-items: flex-start; }
  .kz-footer .kb.k246 { gap: 28px; }
  .kz-footer .kb.k247 { height: auto; }
  .kz-header .kb.k007, .kz-header .kb.k007:hover { width: auto; padding: 12px 8px; border-color: transparent; background: transparent; }
  .kz-header .kb.k007::before { content: ""; width: 7px; height: 7px; margin-right: 12px; border-radius: 50%; background: var(--kz-blue); box-shadow: 0 0 0 4px color-mix(in srgb, var(--kc-17a07a) 15%, transparent); flex: none; }
  .kz-header .kb.k007 .kb.k008, .kz-header .kb.k007:hover .kb.k008 { color: #000; margin-right: 12px; }
  .kz-header .kb.k007:hover .kb.k008 { color: var(--kz-blue); }
  .kz-header .kb.k007 .kz-arrow { color: #000; }
  .kz-header .kb.k007:hover .kz-arrow { color: var(--kz-blue); }
  .kz-header .kb.k007:hover .kb.k010 { translate: 6px; }
}
@media (max-width: 990px) { .kz-footer__catch { display: none; } }

/* ver7：ボタンは元の黒い丸型をやめ、ロゴの紺・角丸10px・波線の矢印にそろえる */
.kz-pill { border-radius: 10px; border-color: var(--kc-0e3a30); color: var(--kc-0e3a30); }
.kz-pill:hover { background: var(--kc-0e3a30); color: #fff; }
.kz-pill--dark { background: var(--kc-0e3a30); color: #fff; }
.kz-pill--dark:hover { background: var(--kz-blue); border-color: var(--kz-blue); color: #fff; }
.kz-pill--white { color: var(--kc-0e3a30); }
.kz-pill--white:hover, .kz-pill--line:hover { background: var(--kc-0e3a30); border-color: var(--kc-0e3a30); color: #fff; }
.kz-pill--line { color: #fff; border-color: rgba(255,255,255,.8); }
.kz-header .kb.k012 { height: 48px; padding: 0 20px; width: auto; border-radius: 10px; background: var(--kc-0e3a30); border-color: var(--kc-0e3a30); gap: 14px; }
.kz-header .kb.k012:hover { background: var(--kz-blue); border-color: var(--kz-blue); }
.kz-header .kb.k012 .kb.k013, .kz-header .kb.k012:hover .kb.k013 { color: #fff; margin-right: 0; }
.kz-header .kb.k012 .kz-arrow, .kz-header .kb.k012:hover .kz-arrow { color: #fff; }
.kz-header .kb.k012:hover .kb.k015 { translate: 4px; }
.kz-header .kb.k015 { translate: 0; width: 22px; }
.kz-footer .kb.k249 { border-radius: 10px; background: var(--kc-0e3a30); }
.kz-footer .kb.k249:hover { background: var(--kz-blue); }
/* ver7：スマホの長い見出しは、文節で行の長さをそろえて折り返す（枠からはみ出さない） */
@media (max-width: 540px) {
  .kz-head .k081 { white-space: normal; word-break: auto-phrase; text-wrap: balance; }
}
/* ver7：PCのフッター本体をパンくずと同じ器にそろえ、上下に余白を取る */
@media (min-width: 991px) {
  .kz-footer .kb.k222 { width: min(var(--kz-wrap), calc(100% - 80px)); max-width: none; margin: 0 auto; height: auto; padding: 56px 0 40px; }
}
/* ver7：インタビューの無い先輩カードは、写真の上に帯を重ねない（押せるカードに見せない） */
.kz-other figure { aspect-ratio: auto; overflow: visible; border-radius: 0; }
.kz-other figure img { aspect-ratio: 16 / 10; border-radius: 16px; }
.kz-other figure::after { content: none; }
.kz-other figure p { position: static; margin: 14px 0 0; color: var(--kc-0e3a30); text-shadow: none; font: 700 16px/1.6 var(--kz-jp); }
.kz-other figure p::before { content: "“"; margin-right: 2px; color: var(--kz-blue); }
.kz-other figure p::after { content: "”"; margin-left: 2px; color: var(--kz-blue); }
/* ver7：ある1日は、固定ヘッダーの下の見える範囲の中央に置き、区画を短くする（1項目あたり約480px） */
@media (min-width: 991px) {
  .kz-day { height: 270vh; }
  .kz-day__sticky { padding-top: 84px; box-sizing: border-box; }
}

/* ver7：回遊カードは写真を使い回さず、カードごとに形の違う等圧線と気圧の数字で見せる */
.kz-more__chart { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px 32px; background: linear-gradient(135deg, var(--kc-eafdf5), var(--kc-d6f0e4)); }
.kz-more__chart svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--kc-8ad2b3); stroke-width: 1.4; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.kz-more__chart svg path:nth-child(2) { stroke: var(--kz-blue); stroke-width: 2; }
.kz-more__card:hover .kz-more__chart svg { transform: translateX(-14px); }
.kz-more__hpa { position: relative; font: 600 56px/1 var(--kz-en); letter-spacing: .01em; color: var(--kc-0e3a30); }
.kz-more__hpa small { margin-left: 6px; font-size: 16px; color: var(--kz-blue); }
.kz-more__lead { position: relative; margin-top: 10px; font: 700 16px/1.6 var(--kz-jp); color: var(--kc-0e3a30); }
@media (max-width: 540px) {
  .kz-more__chart { padding: 20px; }
  .kz-more__hpa { font-size: 44px; }
  .kz-more__lead br { display: none; }
}
/* ver7：「動きを減らす」設定では、くり返しの動きも止める */
@media (prefers-reduced-motion: reduce) {
  .kz-jet-flow, .kz-scroll i::after { animation: none; }
  .kz-more__chart svg { transition: none; }
}
/* ver8：目次の左は英字の項目名（気圧の数字はページの印＝先輩の話1016・会社のこと1012・働き方1008 にだけ使う） */
.kz-anchors__hpa { font: 600 13px/1 var(--kz-en); letter-spacing: .1em; text-transform: uppercase; }
/* ver8：ヘッダーの面談リンクは矢印を文字の直後に・青い点は外す */
@media (min-width: 991px) {
  .kz-header .kb.k007::before { content: none; }
  .kz-header .kb.k007, .kz-header .kb.k007:hover { gap: 0; }
  .kz-header .kb.k007 .kb.k009 { margin-left: 5px !important; }
  .kz-header .kb.k007 .kb.k008, .kz-header .kb.k007:hover .kb.k008 { margin-right: 6px; }
  .kz-header .kb.k007 .kb.k010 { translate: 0; }
  .kz-header .kb.k007:hover .kb.k010 { translate: 4px; }
}
/* ver8：インタビューの回答は通常の折り返し（文節の折り返しで行の長さが交互に揺れるため） */
.kz-a__body p { word-break: normal; }
.kz-fig__sub { display: block; margin-top: 6px; font: 500 13px/1.5 var(--kz-jp); color: var(--kc-5b6b64); letter-spacing: .02em; }
.kz-fig__label:has(.kz-fig__sub) { flex-wrap: wrap; }
.kz-fig__label .kz-fig__sub { flex-basis: 100%; margin-top: 2px; padding-left: 14px; }
/* 素材 E-032：数字カードのピクト（参考 I-A 人の数で量を見せる／I-B 細い線のアイコン）。ベースの線なし・2色の青に合わせる */
.kz-fig { position: relative; }
.kz-fig__icon { position: absolute; top: 20px; right: 20px; width: 30px; height: 30px; fill: none; stroke: var(--kc-79c9a8); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.kz-crowd { display: block; width: 100%; height: auto; margin: 14px 0 10px; }
.kz-crowd--ratio { max-width: 220px; }
.kz-crowd--yohoushi { max-width: 150px; }
.kz-dots { display: block; width: 100%; max-width: 280px; height: auto; margin-top: 14px; }
.kz-key { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--kc-a6dfc6); margin: 0 4px 0 8px; vertical-align: 1px; }
.kz-key--dark { background: var(--kc-0f8a68); margin-left: 0; }
/* 素材 E-032：帯の質感（ベースの帯の紙の粒＋参考 T-A リソの粒／T-B 点描の流線） */
.kz-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
svg .kz-jet.kz-jet--tex { stroke: url(#kz-grain-p); opacity: .38; pointer-events: none; }
.kz-jet-flow { stroke-dasharray: 0 9; stroke-width: 2.8; }
.kz-jet-flow--2 { stroke-dasharray: 0 6; stroke-width: 1.8; }
/* 素材 E-032：最後の誘いの帯（参考 T-A：大きな円が下へ溶ける・2色の版ずれ・リソの粒）＝明日の朝日 */
.kz-final::before { content: ""; position: absolute; inset: 0; background: url(../images/grain.png); opacity: .45; mix-blend-mode: overlay; pointer-events: none; z-index: 1; }
.kz-final__inner { z-index: 2; }
.kz-final__sun { }
@media (max-width: 990px) { .kz-final__sun { transform: translate(-260px, 40px); } }
/* 素材 E-032：観測所スタンプ（参考 S-A）。ベースのステッカーと同じく区切りの端に傾けて置く */
.kz-faq, .kz-outline, .kz-voices { position: relative; }
.kz-stamp { position: absolute; z-index: 1; color: var(--kc-0f8a68); pointer-events: none; overflow: visible; }
.kz-stamp__en { font: 700 11px var(--kz-en); letter-spacing: .14em; fill: currentColor; stroke: none; }
.kz-stamp__en--s { font-size: 10px; letter-spacing: .1em; }
.kz-stamp__jp { font: 700 14px var(--kz-jp); letter-spacing: .12em; fill: currentColor; stroke: none; }
.kz-stamp__jp--l { font-size: 19px; }
.kz-stamp--a { width: 128px; top: 300px; left: max(24px, calc(50% - 560px)); transform: rotate(-11deg); }
.kz-stamp--b { width: 168px; top: 300px; left: max(24px, calc(50% - 560px)); transform: rotate(7deg); }
.kz-stamp--c { width: 140px; top: 40px; right: max(24px, calc(50% - 600px)); transform: rotate(-8deg); }
@media (max-width: 990px) {
  .kz-stamp--a { width: 92px; top: 28px; right: 16px; left: auto; }
  .kz-stamp--b { width: 120px; top: -34px; right: 16px; left: auto; }
  .kz-stamp--c { width: 100px; top: 20px; right: 16px; }
}
.kz-stamp__en--arc { font-size: 9.4px; letter-spacing: .06em; }
/* 素材 E-032：天気記号（参考 S-B 幾何学の天気記号：塗りの円・しずく・雲の連なり／ベースの2色の青） */
.kz-wx.kz-wx--flat { fill: initial; stroke: none; }

/* ===================== ver10：配色の入れ替え＋質の底上げ（2026-10-14 大串『全体的にクオリティ足りない／もっと元サイト分析して、さらに色変えて』） =====================
   配色：元の青 #288ADF → ティールグリーン＋太陽の黄色（参考 C-A 緑と黄の採用サイト／C-B インフォマートの緑の帯）
   元サイトの強さ＝①ページを大きく横切る太い帯 ②1枚1メッセージの大きな数字 ③人に寄った大きな写真 ④色面の切り替えのリズム ⑤ステッカー等の遊び */
:root { --kz-sun: var(--kc-ffbf2e); --kz-sun-soft: var(--kc-fff1c2); --kz-ink-g: var(--kc-0e3a30); }
/* 黄色のマーカー（キャッチの1語だけ） */
.kz-mark { font-style: normal; background: linear-gradient(transparent 62%, var(--kz-sun) 62%, var(--kz-sun) 92%, transparent 92%); padding: 0 .04em; }
/* FV：キャッチと写真を一段大きく、帯を太く */
.kz-fv__title { font-size: 62px; line-height: 1.38; color: var(--kz-ink-g); }
.kz-fv__text { font-size: 18px; }
.kz-fv .kz-jet { stroke-width: 92; }
@media (min-width: 991px) { .kz-fv__ph--a { width: 33%; top: 136px; } .kz-fv__ph--d { width: 17%; } }
.kz-fv__ph img { box-shadow: 0 24px 48px color-mix(in srgb, var(--kc-0e3a30) 14%, transparent); }
/* 帯の2本目（事業）も太く */
.kz-jet--b { stroke-width: 84; }
/* 数字で見る：4列の細かい表 → 3列の「1枚1メッセージ」。数字とピクトを大きく */
.kz-figs__grid { grid-template-columns: repeat(3, 1fr); gap: 22px; }
.kz-figs__grid > .kz-fig:nth-child(7) { grid-column: span 2; }
.kz-fig { padding: 34px 36px 36px; min-height: 300px; border-radius: 24px; }
.kz-fig__label { font-size: 17px; }
.kz-fig__big b { font-size: 96px; letter-spacing: -.01em; }
.kz-fig__big small { font-size: 22px; }
.kz-fig__icon { width: 40px; height: 40px; top: 28px; right: 28px; }
.kz-crowd--ratio { max-width: 340px; }
.kz-crowd--yohoushi { max-width: 240px; }
.kz-dots { max-width: 560px; }
.kz-donut { width: 230px; height: 230px; }
.kz-fig__donut-row { grid-template-columns: 230px 1fr; gap: 44px; }
.kz-legend b { font-size: 30px; }
.kz-ring { width: 210px; height: 210px; }
.kz-ring__num b { font-size: 54px; }
.kz-ring__num small { font-size: 18px; }
/* 下層の見出し：英字を大きな飾り文字に（元サイトの英字の大見出しの性格を残す） */
.kz-sub-hero__en { font-size: 15px; }
.kz-sub-hero__title { font-size: 64px; }
.kz-sub-hero__inner::before { display: none; content: attr(data-en); position: absolute; left: -6px; bottom: -40px; font: 700 132px/1 var(--kz-en); letter-spacing: -.02em; color: transparent; -webkit-text-stroke: 1.5px var(--kc-cdeedd); pointer-events: none; white-space: nowrap; z-index: 0; }
.kz-sub-hero__inner > * { position: relative; z-index: 1; }
/* 先輩：カードを大きく、一言を強く */
.kz-people__list { gap: 28px; }
.kz-person figure { border-radius: 20px; }
.kz-person__catch { font-size: 23px; }
.kz-person__role { color: var(--kz-blue-ink); }
/* カジュアル面談：太陽の黄色の面（元サイトのオリーブの帯の役割＝ページの中の色の切り替え） */
.kz-casual { background: var(--kz-sun-soft); }
.kz-casual__en { color: var(--kc-a86a00); }
/* 最後の誘い：深い緑の地に黄色の朝日 */
.kz-final { background: var(--kc-0b4f3f); }
.kz-final__title { font-size: 58px; }
/* ボタン：深い緑の地に、押すと太陽の黄色 */
.kz-pill--dark:hover { background: var(--kz-sun); border-color: var(--kz-sun); color: var(--kc-0e3a30); }
@media (max-width: 1279px) { .kz-fv__title { font-size: 54px; } }
@media (max-width: 990px) {
  .kz-figs__grid { grid-template-columns: 1fr 1fr; }
  .kz-figs__grid > .kz-fig:nth-child(7) { grid-column: auto; }
  .kz-fig__big b { font-size: 72px; }
  .kz-sub-hero__inner::before { font-size: 88px; bottom: -24px; }
  .kz-fv .kz-jet { stroke-width: 64; }
}
@media (max-width: 540px) {
  .kz-fv__title { font-size: 8.4vw; }
  .kz-figs__grid { grid-template-columns: 1fr; }
  .kz-fig { min-height: 0; padding: 28px 24px; }
  .kz-fig__big b { font-size: 64px; }
  .kz-fig__donut-row { grid-template-columns: 1fr; justify-items: center; }
  .kz-donut { width: 180px; height: 180px; }
  .kz-sub-hero__title { font-size: 40px; }
  .kz-sub-hero__inner::before { font-size: 64px; bottom: -16px; }
  .kz-final__title { font-size: 32px; }
}
/* インタビュー：冒頭を大きな英字の見出しに、質問の区切りを強く */
.kz-iv__top { align-items: flex-end; gap: 18px; }
.kz-iv__top .kz-sub-hero__en { font: 600 76px/1 var(--kz-en); letter-spacing: .01em; text-transform: none; color: var(--kz-ink-g); }
.kz-iv__top .kz-sub-hero__en::before { display: none; }
.kz-iv__sub { padding-bottom: 8px; }
.kz-q__no { display: inline-grid; place-items: center; min-width: 40px; height: 40px; border-radius: 50%; background: var(--kz-blue-deep); color: #fff !important; font-size: 14px; }
.kz-q__text { font-size: 20px; }
@media (max-width: 540px) {
  .kz-iv__top .kz-sub-hero__en { font-size: 48px; }
  .kz-q__no { min-width: 34px; height: 34px; font-size: 13px; }
  .kz-q__text { font-size: 18px; }
}
/* メッセージ：本文の下を大きくうねる帯（元サイトのいちばんの個性＝白い区間を横切る太い帯） */
.kz-message { position: relative; padding-bottom: 360px; }
.kz-message__band { position: absolute; left: 0; bottom: 20px; width: 100%; height: 360px; pointer-events: none; }
.kz-message__band .kz-jet { stroke: url(#kz-jet-g3); stroke-width: 88; }
@media (max-width: 990px) { .kz-message { padding-bottom: 220px; } .kz-message__band { height: 220px; bottom: 0; } .kz-message__band .kz-jet { stroke-width: 60; } }
@media (max-width: 540px) { .kz-message { padding-bottom: 150px; } .kz-message__band { height: 150px; } .kz-message__band .kz-jet { stroke-width: 44; } }
/* ロゴ3案（hp-flow v5.08・v5.09）：既定は案 a だけ。切り替えは variants/v-logo.css */
.t-logo { display: inline-flex; align-items: center; gap: inherit; }
body:not([data-t-v]) .t-logo:not([data-logo="a"]) { display: none; }
.kz-logo__mark--b { height: 26px !important; }
.kz-logo__kana { font: 700 20px/1 var(--kz-jp); letter-spacing: .3em; margin-right: -.3em; color: var(--kc-0e3a30); }
.t-logo[data-logo="c"] { gap: 0; }
.kz-logo__mark--c { height: 14px !important; margin-right: -4px; align-self: flex-start; margin-top: 3px; }
.kz-logo__lc { font: 700 27px/1 var(--kz-en); letter-spacing: -.01em; color: var(--kc-0e3a30); }
.kz-logo--footer .kz-logo__mark--b { height: 36px !important; }
.kz-logo--footer .kz-logo__kana { font-size: 27px; }
.kz-logo--footer .kz-logo__mark--c { height: 18px !important; }
.kz-logo--footer .kz-logo__lc { font-size: 36px; }
@media (max-width: 540px) {
  .kz-logo__mark--b { height: 21px !important; }
  .kz-logo__kana { font-size: 16px; }
  .kz-logo__mark--c { height: 11px !important; }
  .kz-logo__lc { font-size: 22px; }
}

/* ==========================================================================
   ver11「観測ノート」：テンプレ感を剥がす作り直し（大串 10/14『テンプレ感すごい／全部／素材とかフォントも』）
   - 見出しの型をセクションごとに変える（英字ラベル＋見出しの繰り返しをやめる）
   - 白い角丸カード・業務画面の絵をやめ、手書きのメモ・付箋・ステッカー・天気記号・空の色で手作りの層を足す
   - 本文を 17〜19px に上げ、キャッチは極太 900 の斜体
   ========================================================================== */
:root { --kz-hand: "Klee One", "Zen Kaku Gothic New", cursive; --kw-ink: var(--kc-0e1f1a); }
.kw-hand { font-family: var(--kz-hand) !important; font-weight: 600; letter-spacing: .04em; }

/* 天気記号（ペンで描いた線） */

/* 縦書きの見出し（先輩・募集職種） */
.kw-vtitle { margin: 0; writing-mode: vertical-rl; font: 700 54px/1 var(--kz-jp); letter-spacing: .16em; color: var(--kw-ink); position: sticky; top: 140px; align-self: start; white-space: nowrap; }
.kw-vtitle--white { color: #fff; }

/* ---------- FV ---------- */
/* FV（相談301 YES：丸囲みをやめ・帯で勢い・人が主役の写真）。a＝帯が斜めに横切る中央の見出し＋写真の列（既定）／b・c は variants/v-fv.css */
.kw-fv { position: relative; padding: 168px 0 72px; overflow: hidden; background: #fff; }
.kw-fv__band { position: absolute; left: 0; top: 0; width: 100%; height: 900px; z-index: 0; pointer-events: none; }
.kw-fv__band .kz-jet { stroke-width: 96; }
.kw-fv__band .kz-jet--b { stroke: url(#kz-jet-g); stroke-width: 120; opacity: .9; }
.kw-fv__hero, .kw-fv__wide { display: none; margin: 0; }
.kw-fv__copy { position: relative; z-index: 2; text-align: center; padding: 0 20px; }
.kw-fv__lead { display: flex; justify-content: center; align-items: center; gap: 14px; margin: 0 0 28px; font: 700 16px/1 var(--kz-jp); letter-spacing: .08em; color: var(--kw-ink); }
.kw-fv__year { font: 700 13px/1 var(--kz-en); letter-spacing: .12em; padding: 8px 13px; border-radius: 50px; background: var(--kc-0e3a30); color: #fff; }
.kw-fv__title { margin: 0; font: 700 64px/1.3 var(--kz-jp); letter-spacing: .02em; color: var(--kw-ink); transform: skewX(-9deg); }
.kw-fv__title > span { display: block; }
.kw-fv__text { position: relative; z-index: 2; max-width: 760px; margin: 30px auto 0; text-align: center; font: 500 16px/2 var(--kz-jp); letter-spacing: .04em; color: var(--kc-16241f); }
.kw-rail { position: relative; z-index: 1; margin-top: 60px; padding-bottom: 34px; overflow: hidden; }
.kw-rail__track { display: flex; width: max-content; animation: kw-rail 90s linear infinite; }
.kw-rail__set { display: flex; gap: 18px; padding-right: 18px; align-items: flex-start; }
@keyframes kw-rail { to { transform: translateX(-50%); } }
.kw-ph { position: relative; flex: none; height: 440px; margin: 0; }
.kw-ph img { border-radius: 14px; }
.kw-ph--w { width: 640px; }
.kw-ph--t { width: 330px; margin-top: 46px; }
.kw-rail__set > :nth-child(4n+1) { margin-top: 18px; }
.kw-ph-col { display: flex; flex-direction: column; gap: 16px; width: 290px; flex: none; }
.kw-ph-col .kw-ph { height: 212px; width: 100%; }
.kw-ph figcaption { position: absolute; left: 16px; bottom: -18px; z-index: 2; padding: 8px 14px 9px; background: var(--kc-fffbea); border-radius: 3px; font-size: 15px; line-height: 1.3; color: var(--kw-ink); white-space: nowrap; transform: rotate(-2.4deg); box-shadow: 0 8px 16px -8px rgba(0,0,0,.28); }
.kw-ph figcaption::before { content: ""; position: absolute; left: 50%; top: -9px; width: 54px; height: 16px; background: color-mix(in srgb, var(--kc-ffbf2e) 55%, transparent); transform: translateX(-50%) rotate(4deg); }

/* ---------- メッセージ ---------- */
.kw-msg { position: relative; padding: 160px 0 110px; background: #fff; }
.kw-msg__inner { width: min(660px, calc(100% - 48px)); margin: 0 auto; }
.kw-msg__title { margin: 0 0 52px; font: 700 50px/1.4 var(--kz-jp); letter-spacing: .03em; color: var(--kw-ink); }
.kw-msg__body p { margin: 0 0 1.5em; font: 500 19px/2.05 var(--kz-jp); letter-spacing: .03em; color: var(--kc-14211c); }
.kw-msg__body .kw-msg__last { font-weight: 700; margin-bottom: 0; }
.kw-scatter { position: relative; height: 660px; margin-top: 100px; }
.kw-scatter__band { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; overflow: visible; }
.kw-scatter__band .kz-jet { stroke: url(#kz-jet-g3); stroke-width: 84; }
.kw-scatter__ph { position: absolute; z-index: 1; margin: 0; --r: 0deg; }
.kw-scatter__ph img { border-radius: 10px; }
.kw-scatter__ph.kz-reveal { transform: translateY(36px) rotate(var(--r)); }
.kw-scatter__ph.kz-reveal.is-in { transform: rotate(var(--r)); }
.kw-scatter__ph--1 { left: 3%; top: 40px; width: 15.5%; aspect-ratio: 3 / 4; --r: -3deg; }
.kw-scatter__ph--2 { left: 21%; top: 210px; width: 35%; aspect-ratio: 16 / 10; --r: 1deg; transition-delay: .15s !important; }
.kw-scatter__ph--3 { left: 59%; top: 10px; width: 30%; aspect-ratio: 21 / 9; --r: -1.2deg; transition-delay: .3s !important; }
.kw-scatter__ph--4 { left: 61%; top: 300px; width: 14%; aspect-ratio: 3 / 4; --r: 2.4deg; transition-delay: .45s !important; }
.kw-scatter__ph--5 { left: 78%; top: 360px; width: 27%; aspect-ratio: 21 / 9; --r: -1.6deg; transition-delay: .6s !important; }
.kw-scatter__ph figcaption { position: absolute; left: 12px; bottom: -40px; font-size: 16px; color: var(--kw-ink); white-space: nowrap; }
.kw-scatter__ph figcaption::before { content: "↑ "; color: var(--kz-blue); }

/* ---------- 事業：売れ方予報 ---------- */
.kw-cast { padding: 140px 0 150px; background: var(--kc-f1faf5); }
.kw-cast__head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 64px; align-items: end; margin-bottom: 60px; }
.kw-cast__title { margin: 0; font: 700 54px/1.3 var(--kz-jp); letter-spacing: .02em; color: var(--kw-ink); }
.kw-cast__lead { margin: 0; font: 500 17px/2 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kw-board { position: relative; background: var(--kc-0e3a30); border-radius: 30px; padding: 26px 26px 20px; color: #fff; box-shadow: 0 40px 70px -40px color-mix(in srgb, var(--kc-0e3a30) 65%, transparent); }
.kw-board__cap { display: flex; align-items: baseline; gap: 16px; margin: 4px 8px 20px; font-size: 24px; }
.kw-board__cap small { font: 500 13px var(--kz-jp); opacity: .7; letter-spacing: .05em; }
.kw-board__days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kw-bd { position: relative; display: flex; flex-direction: column; align-items: center; padding: 22px 14px 18px; border-radius: 20px; color: var(--kw-ink); text-align: center; background: linear-gradient(180deg, var(--kc-d6eee4), var(--kc-f3faf7)); }
.kw-bd__dow { font: 700 20px/1 var(--kz-jp); letter-spacing: .08em; margin-bottom: 18px; }
.kw-bd .kw-bd__temp { font: italic 700 64px/1 var(--kz-en); letter-spacing: -.02em; }
.kw-bd__temp small { font-size: .4em; margin-left: 2px; vertical-align: .9em; font-style: normal; }
.kw-bd__sky { margin-top: 6px; font: 700 14px/1.4 var(--kz-jp); letter-spacing: .06em; color: var(--kc-33463f); }
.kw-bd__sell { align-self: stretch; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 8px; align-items: end; margin: 18px 0 0; padding: 14px 14px 12px; background: #fff; border-radius: 14px; text-align: left; box-shadow: 0 6px 14px -8px rgba(0,0,0,.25); }
.kw-bd__sell b { grid-column: 1; font: 700 16px/1.35 var(--kz-jp); }
.kw-bd__sell span { grid-column: 1; grid-row: 2; font: 500 12px/1.4 var(--kz-jp); color: var(--kc-6b7671); }
.kw-bd__sell em { grid-column: 2; grid-row: 1 / span 2; font: italic 700 36px/1 var(--kz-en); color: #e0532b; }
.kw-bd__sell em small { font: 700 13px var(--kz-jp); font-style: normal; margin-left: 1px; }
.kw-board__note { margin: 14px 8px 0; font-size: 12px; opacity: .7; letter-spacing: .04em; }
.kw-cast__who { list-style: none; margin: 76px 0 0; padding: 0; display: grid; grid-template-columns: 1.1fr 1fr .8fr; gap: 48px; align-items: end; }
.kw-cast__who li { display: flex; flex-direction: column; gap: 6px; }
.kw-cast__who b { font: 700 20px/1.4 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kw-cast__who li > span:not(.kw-cast__ico) { font: 500 15px/1.7 var(--kz-jp); color: var(--kz-sub); }
.kw-tape { position: relative; aspect-ratio: 3 / 2; margin: 0 0 18px; transform: rotate(-1.8deg); box-shadow: 0 18px 30px -18px rgba(0,0,0,.45); }
.kw-tape img { border-radius: 4px; }
.kw-tape::before { content: ""; position: absolute; z-index: 1; left: 50%; top: -13px; width: 112px; height: 28px; background: color-mix(in srgb, var(--kc-ffbf2e) 60%, transparent); transform: translateX(-50%) rotate(-3deg); }
.kw-tape--r { transform: rotate(1.6deg); }
.kw-cast__ico 
/* ---------- ある1日：空の色が時刻で変わる ---------- */
.kw-day { background: transparent; }
.kw-sky { position: sticky; top: 0; height: 100vh; margin-bottom: -100vh; z-index: 0; }
.kw-sky i { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease; }
.kw-sky i:nth-child(1) { background: linear-gradient(180deg, #cde4f7, #f2f7fc); }
.kw-sky i:nth-child(2) { background: linear-gradient(180deg, #a9d4f5, #e6f2fd); }
.kw-sky i:nth-child(3) { background: linear-gradient(180deg, #8fc6f2, #f5fafe); }
.kw-sky i:nth-child(4) { background: linear-gradient(180deg, #bcd3e6, #f7efed); }
.kw-sky i:nth-child(5) { background: linear-gradient(180deg, #f6b38c, #fcd9c8); }
.kw-day:not([data-step]) .kw-sky i:nth-child(1), .kw-day[data-step="0"] .kw-sky i:nth-child(1), .kw-day[data-step="1"] .kw-sky i:nth-child(2), .kw-day[data-step="2"] .kw-sky i:nth-child(3), .kw-day[data-step="3"] .kw-sky i:nth-child(4), .kw-day[data-step="4"] .kw-sky i:nth-child(5) { opacity: 1; }
.kw-day .kz-day__sticky { z-index: 1; }
.kw-day__title { margin: 0; font-size: 26px; color: var(--kw-ink); }
.kw-day .kz-day__clock { position: static; margin: 4px 0 22px; padding: 0; background: none; border-radius: 0; box-shadow: none; font: italic 700 150px/1 var(--kz-en); letter-spacing: -.03em; color: var(--kw-ink); }
.kw-day .kz-day__who { margin: 0 0 22px; font-size: 15px; color: var(--kc-33463f); }
.kw-day .kz-day__times::before { background: color-mix(in srgb, var(--kc-0e3a30) 18%, transparent); }
.kw-day .kz-day__times::after { background: var(--kw-ink); }
.kw-day .kz-day__times li::before { background: transparent; border-color: color-mix(in srgb, var(--kc-0e3a30) 40%, transparent); }
.kw-day .kz-day__times li.is-on::before { background: var(--kz-sun); border-color: var(--kw-ink); box-shadow: none; }
.kw-day .kz-day__times b { font-size: 18px; }
.kw-day .kz-day__times span { color: var(--kc-33463f); font-size: 15px; }
.kw-day .kz-day__photos figure { border: 12px solid #fff; border-radius: 6px; box-shadow: 0 34px 60px -30px rgba(0,0,0,.45); transform: rotate(1.6deg) scale(1.03); }
.kw-day .kz-day__photos figure.is-on { transform: rotate(1.6deg); }
.kw-day .kz-day__photos figure img { border-radius: 2px; }

/* ---------- 先輩の話：方眼のノート ---------- */
.kw-people { padding: 150px 0 140px; background-color: #fff; background-image: linear-gradient(var(--kc-e3efe9) 1px, transparent 1px), linear-gradient(90deg, var(--kc-e3efe9) 1px, transparent 1px); background-size: 28px 28px; background-position: -1px -1px; }
.kw-people__wrap { display: grid; grid-template-columns: 96px 1fr; gap: 56px; }
.kw-people__lead { margin: 0 0 64px; font: 500 18px/1.95 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kw-people__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 64px; }
.kw-people__list > li { margin-bottom: 56px; }
.kw-people__list > li:nth-child(even) { margin-top: 170px; margin-bottom: -114px; }
.kw-person { position: relative; display: block; color: inherit; text-decoration: none; }
.kw-person figure { aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; }
.kw-person figure img { transition: transform 1s cubic-bezier(.2,.7,.2,1); }
a.kw-person:hover figure img { transform: scale(1.04); }
.kw-person__note { position: absolute; left: -22px; top: 58%; max-width: 66%; margin: 0; padding: 16px 20px 18px; background: var(--kc-fff3b8); font-size: 21px; line-height: 1.55; color: var(--kc-1d2a24); transform: rotate(-3deg); box-shadow: 0 12px 24px -12px rgba(0,0,0,.35); }
.kw-people__list > li:nth-child(even) .kw-person__note { left: auto; right: -22px; transform: rotate(2.6deg); }
.kw-people__list > li:nth-child(even) .kw-person__role { margin: 26px 0 6px; font: 700 14px/1.4 var(--kz-jp); color: var(--kz-blue-ink); letter-spacing: .08em; }
.kw-person__name { margin: 0; font: 700 23px/1.4 var(--kz-jp); letter-spacing: .06em; color: var(--kw-ink); }
.kw-person__name span { margin-left: 14px; font: 500 13px var(--kz-jp); color: var(--kz-sub); letter-spacing: .04em; }
.kw-person__read { display: inline-flex; align-items: center; gap: 12px; margin-top: 14px; padding-bottom: 4px; border-bottom: 2px solid var(--kw-ink); font: 700 15px var(--kz-jp); color: var(--kw-ink); }
.kw-people__key { margin: 150px 0 0; font-size: 14px; color: var(--kz-sub); text-align: right; }

/* ---------- 働き方：雨雲レーダー ---------- */
.kw-env { padding: 160px 0 150px; background: #fff; }
.kw-env__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 100px; align-items: center; }
.kw-radar { position: relative; aspect-ratio: 1; width: 100%; max-width: 560px; }
.kw-radar__ph { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; margin: 0; }
.kw-radar__rings { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.kw-radar__rings :is(circle, path) { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 1.5; }
.kw-radar__rings circle:first-child { stroke: var(--kz-blue); stroke-width: 10; }
@keyframes kw-sweep { to { transform: rotate(360deg); } }
.kw-radar__facts { margin: 0; }
.kw-radar__f { position: absolute; z-index: 2; padding: 12px 20px 14px; background: #fff; border-radius: 16px; box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--kc-0e3a30) 45%, transparent); }
.kw-radar__f dt { font-size: 14px; color: var(--kc-33463f); }
.kw-radar__f dd { margin: 2px 0 0; font: 700 15px/1 var(--kz-jp); color: var(--kw-ink); }
.kw-radar__f dd b { font: italic 700 44px/1 var(--kz-en); margin: 0 3px; letter-spacing: -.02em; }
.kw-radar__f--1 { left: -6%; top: 4%; transform: rotate(-3deg); }
.kw-radar__f--2 { right: -12%; top: 44%; transform: rotate(2deg); }
.kw-radar__f--3 { left: 8%; bottom: -4%; transform: rotate(-1.5deg); }
.kw-env__title { margin: 0 0 26px; font: 700 58px/1.2 var(--kz-jp); letter-spacing: .06em; color: var(--kw-ink); }
.kw-env__lead { margin: 0 0 30px; font: 500 17px/2 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }

/* ---------- 会社のこと：空の写真を全幅に ---------- */
.kw-co { position: relative; display: flex; align-items: flex-end; min-height: 740px; color: #fff; overflow: hidden; }
.kw-co__sky { position: absolute; inset: 0; margin: 0; }
.kw-co__sky img { object-position: 50% 32%; }
.kw-co__sky::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--kc-061a15) 0%, transparent) 30%, color-mix(in srgb, var(--kc-061a15) 62%, transparent) 100%); }
.kw-co__inner { position: relative; z-index: 1; padding: 160px 0 96px; display: grid; grid-template-columns: 1.4fr 1fr; column-gap: 72px; align-items: end; }
.kw-co__label { margin: 0; font-size: 21px; }
.kw-co__title { margin: 10px 0 24px; font: 700 74px/1.25 var(--kz-jp); letter-spacing: .02em; text-shadow: 0 2px 30px rgba(0,0,0,.25); }
.kw-co__text { margin: 0; max-width: 470px; font: 500 17px/1.95 var(--kz-jp); letter-spacing: .03em; }
.kw-co__links { grid-column: 2; grid-row: 1 / span 3; align-self: end; list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.55); }
.kw-co__links a { display: flex; justify-content: space-between; align-items: center; padding: 24px 6px; border-bottom: 1px solid rgba(255,255,255,.55); color: #fff; text-decoration: none; font: 700 19px/1.3 var(--kz-jp); letter-spacing: .06em; transition: padding .4s ease; }
.kw-co__links a:hover { padding-left: 16px; }

/* ---------- 募集職種：ざらついた深緑・縦書き・斜めの写真の柱 ---------- */
.kw-pos { position: relative; background: var(--kc-0b4f3f); overflow: hidden; padding: 130px 0 140px; }
.kw-pos::before { content: ""; position: absolute; inset: 0; background: url(../images/grain.png); opacity: .5; mix-blend-mode: overlay; pointer-events: none; }
.kw-pos__grid { position: relative; display: grid; grid-template-columns: 80px minmax(0, 1fr) 280px; gap: 56px; align-items: start; }
.kw-pos .kz-jobs { background: none; padding: 0; border-radius: 0; }
.kw-pos .kz-jobs__item { background: #fff; border-radius: 20px; margin-bottom: 14px; overflow: hidden; }
.kw-pos button.kz-jobs__row { grid-template-columns: 2.3fr 3.8fr 1fr 1fr 44px; padding: 26px 28px; border-bottom: 0; }
.kw-pos .kz-jobs__row:not(.kz-jobs__row--head):hover { background: var(--kc-f6fbf8); }
.kw-pos .kz-jobs__detail { border-bottom: 0; padding: 0 28px; }
.kw-pos .kz-jobs__name { gap: 8px; }
.kw-jobs__wx .kw-pos .kz-note--white { margin-top: 18px; }
.kw-pos__col { height: 780px; border-radius: 22px; overflow: hidden; transform: rotate(5deg) translateY(-20px); -webkit-mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent); }
.kw-pos__track { display: flex; flex-direction: column; gap: 16px; padding-bottom: 16px; animation: kw-col 46s linear infinite; }
.kw-pos__track figure { aspect-ratio: 4 / 5; border-radius: 16px; overflow: hidden; flex: none; }
@keyframes kw-col { to { transform: translateY(-50%); } }

/* ---------- 選考の流れ：だんだん晴れていく ---------- */
.kw-flow__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px 30px; margin-bottom: 30px; }
.kw-flow__title { margin: 0; font: 700 50px/1.2 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kw-flow__note { margin: 0; font-size: 19px; color: var(--kz-blue-ink); }
.kw-steps { padding-top: 0; }
.kw-steps::before { top: 44px; height: 2px; background: repeating-linear-gradient(90deg, var(--kw-ink) 0 6px, transparent 6px 12px); left: 36px; right: calc((100% - 80px) / 5 - 36px); }
.kw-steps li { padding-top: 0 !important; }
.kw-steps li::before { display: none; }
.kw-steps__wx { position: relative; z-index: 1; display: grid; place-items: center; width: 88px; height: 88px; margin-bottom: 16px; border-radius: 50%; background: #fff; }
.kw-steps__no { font: italic 700 24px/1 var(--kz-en); letter-spacing: .04em; color: var(--kw-ink); }
.kw-steps b { font-size: 21px; }
.kw-steps p { font-size: 15px; }
.kz-casual { position: relative; overflow: visible; }
.kz-casual__photo { border-radius: 20px 0 0 20px; overflow: hidden; }
.kz-casual__title { font: 700 38px/1.35 var(--kz-jp); color: var(--kw-ink); }
.kw-bubble { position: absolute; z-index: 2; margin: 0; padding: 12px 20px 13px; background: #fff; border: 2.5px solid var(--kw-ink); border-radius: 26px; font-size: 17px; color: var(--kw-ink); white-space: nowrap; }
.kw-bubble::after { content: ""; position: absolute; left: 30px; bottom: -11px; width: 16px; height: 16px; background: #fff; border-right: 2.5px solid var(--kw-ink); border-bottom: 2.5px solid var(--kw-ink); transform: rotate(45deg) skew(8deg, 8deg); }
.kw-bubble--1 { left: 28px; top: -26px; transform: rotate(-4deg); }
.kw-bubble--2 { left: 26%; top: 54%; transform: rotate(3deg); }

/* ---------- よくある質問：ステッカー ---------- */
.kw-faq__title { margin: 0 0 18px; font: 700 50px/1.2 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kw-stickers { position: relative; height: 270px; margin-top: 40px; }
.kw-sticker { position: absolute; display: grid; place-items: center; align-content: center; width: 134px; height: 134px; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 12px 24px -10px rgba(0,0,0,.3); text-align: center; font: 600 14px/1.35 var(--kz-hand); color: var(--kw-ink); --r: 0deg; }
.kw-sticker b { display: block; font: 700 25px/1.2 var(--kz-jp); }
.kw-sticker--1 { left: 0; top: 0; background: var(--kz-sun); --r: -9deg; }
.kw-sticker--2 { left: 128px; top: 64px; width: 170px; height: 112px; border-radius: 30px; background: var(--kc-17a07a); color: #fff; --r: 6deg; }
.kw-sticker--2 b { font-size: 22px; }
.kw-sticker--3 { left: 22px; top: 148px; width: 112px; height: 112px; background: #ff8a65; color: #fff; --r: 5deg; }
.kw-sticker.kz-reveal { opacity: 0; transform: rotate(var(--r)) translateY(46px) scale(.5); transition: opacity .3s ease, transform .8s cubic-bezier(.19,1,.22,1); }
.kw-sticker.kz-reveal.is-in { opacity: 1; transform: rotate(var(--r)); }
.kw-sticker--2.kz-reveal { transition-delay: .34s; }
.kw-sticker--3.kz-reveal { transition-delay: .68s; }

@media (prefers-reduced-motion: reduce) {
  .kw-rail__track, .kw-pos__track, }

@media (max-width: 990px) {
  .kw-vtitle { position: static; writing-mode: horizontal-tb; font-size: 40px; letter-spacing: .06em; margin-bottom: 26px; }
  .kw-fv { padding-top: 150px; }
  .kw-ph { height: 270px; }
  .kw-ph--w { width: 400px; }
  .kw-ph--t { width: 200px; margin-top: 30px; }
  .kw-ph-col { width: 190px; }
  .kw-ph-col .kw-ph { height: 127px; }
  .kw-msg { padding: 120px 0 90px; }
  .kw-msg__title { font-size: 40px; }
  .kw-scatter { height: 520px; }
  .kw-scatter__ph--1 { width: 24%; }
  .kw-scatter__ph--2 { left: 18%; width: 46%; }
  .kw-scatter__ph--3 { left: 50%; width: 46%; }
  .kw-scatter__ph--4 { left: 68%; top: 250px; width: 22%; }
  .kw-scatter__ph--5 { display: none; }
  .kw-cast__head { grid-template-columns: 1fr; gap: 26px; }
  .kw-cast__title { font-size: 42px; }
  .kw-board__days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kw-cast__who { grid-template-columns: 1fr 1fr; }
  .kw-cast__energy { grid-column: 1 / -1; }
  .kw-day { background: linear-gradient(180deg, #cde4f7, #f2f7fc 30%, #f5fafe 55%, #f7efed 78%, #fcd9c8); }
  .kw-sky { display: none; }
  .kw-day .kz-day__clock { display: none; }
  .kw-people__wrap { grid-template-columns: 1fr; gap: 0; }
  .kw-people__list { gap: 0 32px; }
  .kw-people__list > li:nth-child(even) { margin-top: 110px; margin-bottom: -54px; }
  .kw-people__key { margin-top: 90px; }
  .kw-env__grid { grid-template-columns: 1fr; gap: 70px; }
  .kw-radar { width: min(100%, 520px); margin: 0 auto; }
  .kw-radar__f--2 { right: -4%; }
  .kw-co__inner { grid-template-columns: 1fr; row-gap: 40px; padding: 140px 0 80px; }
  .kw-co__links { grid-column: auto; grid-row: auto; }
  .kw-co__title { font-size: 56px; }
  .kw-pos__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kw-pos__col { display: none; }
  .kw-pos button.kz-jobs__row { grid-template-columns: 1fr 44px; }
  .kw-steps::before { display: none; }
  .kw-steps li { display: grid; grid-template-columns: 76px 1fr; column-gap: 18px; }
  .kw-steps li > :not(.kw-steps__wx) { grid-column: 2; }
  .kw-steps__wx { grid-row: 1 / span 3; width: 70px; height: 70px; margin: 0; }
  .kw-steps__no { font-size: 20px; }
  .kw-stickers { height: 180px; }
  .kw-sticker--1 { left: auto; right: 190px; }
  .kw-sticker--2 { left: auto; right: 10px; top: 20px; }
  .kw-sticker--3 { left: auto; right: 330px; top: 30px; }
}

@media (max-width: 540px) {
  .kw-vtitle { font-size: 32px; }
  .kw-fv { padding-top: 130px; }
  .kw-fv__lead { font-size: 15px; margin-bottom: 22px; }
  .kw-fv__title { font-size: 40px; }
  .kw-rail { margin-top: 40px; }
  .kw-ph { height: 210px; }
  .kw-ph--w { width: 300px; }
  .kw-ph--t { width: 156px; margin-top: 22px; }
  .kw-ph-col { width: 150px; gap: 10px; }
  .kw-ph-col .kw-ph { height: 100px; }
  .kw-ph figcaption { font-size: 13px; }
  .kw-fv__text { font-size: 15px; }
  .kw-msg { padding: 96px 0 70px; }
  .kw-msg__title { font-size: 31px; margin-bottom: 34px; }
  .kw-msg__body p { font-size: 16px; line-height: 2; }
  .kw-scatter { height: 380px; margin-top: 60px; }
  .kw-scatter__band .kz-jet { stroke-width: 60; }
  .kw-scatter__ph--1 { width: 30%; top: 20px; }
  .kw-scatter__ph--2 { left: 8%; top: 190px; width: 62%; }
  .kw-scatter__ph--3 { left: 40%; top: 30px; width: 58%; }
  .kw-scatter__ph--4 { left: 72%; top: 210px; width: 26%; }
  .kw-scatter__ph figcaption { font-size: 13px; bottom: -32px; }
  .kw-cast { padding: 100px 0 110px; }
  .kw-cast__title { font-size: 32px; }
  .kw-cast__lead { font-size: 15px; }
  .kw-board { padding: 18px 12px 14px; border-radius: 22px; }
  .kw-board__cap { font-size: 19px; flex-wrap: wrap; gap: 4px 12px; }
  .kw-board__days { gap: 8px; }
  .kw-bd { padding: 16px 8px 10px; border-radius: 16px; }
  .kw-bd   .kw-bd__temp { font-size: 44px; }
  .kw-bd__sky { font-size: 12px; }
  .kw-bd__sell { padding: 10px 10px 9px; grid-template-columns: 1fr; }
  .kw-bd__sell b { font-size: 14px; }
  .kw-bd__sell em { grid-column: 1; grid-row: auto; font-size: 28px; margin-top: 4px; }
  .kw-cast__who { grid-template-columns: 1fr; gap: 34px; margin-top: 56px; }
  .kw-day .kz-day__times b { font-size: 16px; }
  .kw-people { padding: 100px 0; }
  .kw-people__lead { font-size: 15px; margin-bottom: 40px; }
  .kw-people__list { grid-template-columns: 1fr; }
  .kw-people__list > li:nth-child(even) { margin: 0 0 56px; }
  .kw-person__note { font-size: 17px; left: -8px; }
  .kw-people__list > li:nth-child(even) .kw-person__note { right: -8px; }
      .kw-env { padding: 100px 0; }
  .kw-env__title { font-size: 40px; }
  .kw-env__lead { font-size: 15px; }
  .kw-radar__f { padding: 8px 12px 10px; }
  .kw-radar__f dd b { font-size: 30px; }
  .kw-radar__f--1 { left: -2%; }
  .kw-radar__f--2 { right: -2%; }
  .kw-co { min-height: 620px; }
  .kw-co__title { font-size: 38px; }
  .kw-co__text { font-size: 15px; }
  .kw-co__links a { padding: 18px 4px; font-size: 17px; }
  .kw-pos { padding: 90px 0 100px; }
  .kw-pos button.kz-jobs__row { padding: 20px 18px; }
  .kw-pos .kz-jobs__detail { padding: 0 18px; }
  .kw-flow__title, .kw-faq__title { font-size: 34px; }
  .kw-flow__note { font-size: 16px; }
  .kz-casual__title { font-size: 30px; }
  .kw-bubble { font-size: 14px; padding: 9px 14px; }
  .kw-bubble--2 { left: 40%; top: 28%; }
  .kw-stickers { height: 170px; transform: scale(.84); transform-origin: left top; }
  .kw-sticker--1 { left: 0; right: auto; }
  .kw-sticker--2 { left: 126px; right: auto; top: 40px; }
  .kw-sticker--3 { left: 290px; right: auto; top: 10px; }
}
/* ver11 微調整 */
.kw-scatter__ph--1 figcaption { bottom: auto; top: -38px; }
.kw-steps::before { display: none; }
.kw-steps li:not(:last-child)::after { content: ""; position: absolute; left: 100px; right: -12px; top: 43px; height: 2px; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--kc-0e3a30) 55%, transparent) 0 6px, transparent 6px 13px); }
@media (max-width: 990px) { .kw-steps li:not(:last-child)::after { display: none; } }
@media (max-width: 540px) { .kw-fv__copy { padding: 0 12px; } .kw-fv__title { font-size: 32px; } }
@media (max-width: 540px) { .kw-fv__band { height: 76%; } .kw-fv__text { margin-top: 44px; } }

/* ---------- ver11 下層：共通の見出し ---------- */
.kw-h2 { margin: 0 0 40px; font: 700 50px/1.25 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kz-sub-hero { padding: calc(26px + 84px + 64px) 0 40px; }
.kz-sub-hero__band { top: 330px; height: 560px; }
.kz-sub-hero__inner { grid-template-columns: 1fr; gap: 0; }
.kz-sub-hero__side { display: contents; }
.kz-sub-hero__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.kz-sub-hero__title { font: 700 clamp(48px, 7vw, 100px)/1.1 var(--kz-jp); letter-spacing: .02em; color: var(--kw-ink); transform: skewX(-9deg); }
.kz-sub-hero__lead { margin: 0 0 10px; font: 600 21px/1.7 var(--kz-jp); color: var(--kw-ink); text-align: right; }
.kz-sub-hero__photo { aspect-ratio: 1200 / 440; border-radius: 26px; box-shadow: 0 40px 70px -40px color-mix(in srgb, var(--kc-0e3a30) 50%, transparent); }
.kz-sub-hero__photo figcaption { left: 26px; bottom: 22px; padding: 9px 16px 10px; border-radius: 3px; background: var(--kc-fffbea); box-shadow: 0 8px 16px -8px rgba(0,0,0,.3); transform: rotate(-2deg); font: 600 15px/1.3 var(--kz-hand); color: var(--kw-ink); }
.kz-sub-hero__photo figcaption::before { display: none; }
.kz-sub-hero__photo figcaption b { color: var(--kz-blue-ink); margin-right: 6px; }
.kz-anchors { flex-direction: row; justify-content: center; gap: 14px; margin-top: 34px; border-top: 0; }
.kz-anchors a { display: inline-flex; gap: 12px; min-height: 0; padding: 12px 20px 13px; border: 2px solid var(--kw-ink); border-radius: 50px; background: #fff; }
.kz-anchors a:nth-child(1) { transform: rotate(-1.5deg); }
.kz-anchors a:nth-child(3) { transform: rotate(1.5deg); }
.kz-anchors__hpa { display: none; }
.kz-anchors a b { font: 700 16px/1.2 var(--kz-jp); }
.kz-anchors a i { width: 20px; height: 20px; }

/* 働き方：観測データを方眼のノートに直接書く */
.kz-figs__panel { margin: 0; border-radius: 0; background-color: #fff; background-image: linear-gradient(var(--kc-e3efe9) 1px, transparent 1px), linear-gradient(90deg, var(--kc-e3efe9) 1px, transparent 1px); background-size: 28px 28px; }
.kz-figs__grid { gap: 0; border-top: 2.5px solid var(--kw-ink); }
.kz-fig { background: transparent !important; border-radius: 0 !important; box-shadow: none !important; border-bottom: 1.5px dashed color-mix(in srgb, var(--kc-0e3a30) 45%, transparent); padding: 30px 28px 34px; }
.kz-figs__grid > .kz-fig:not(.kz-fig--full) { border-right: 1.5px dashed color-mix(in srgb, var(--kc-0e3a30) 45%, transparent); }
.kz-fig__label { font: 600 18px/1.4 var(--kz-jp) !important; color: var(--kw-ink) !important; letter-spacing: .04em; }
.kz-fig__big b { font-style: italic; font-weight: 700; }
.kz-fig--full { border-bottom: 2.5px solid var(--kw-ink); }

/* 3か月で4チーム：手書きの番号・写真はテープで貼る */
.kz-growth__list { counter-reset: kwg; border-top: 0; }
.kz-growth__list li { position: relative; padding: 26px 0 26px 76px; border-bottom: 1.5px dashed color-mix(in srgb, var(--kc-0e3a30) 40%, transparent); counter-increment: kwg; }
.kz-growth__list li::before { content: counter(kwg); position: absolute; left: 0; top: 18px; font: italic 700 56px/1 var(--kz-en); color: var(--kz-blue); }
.kz-growth__photo { border-radius: 4px; transform: rotate(-1.5deg); box-shadow: 0 30px 50px -30px rgba(0,0,0,.5); border: 10px solid #fff; }
.kz-strip { grid-template-columns: 1fr 1.3fr .9fr; align-items: start; gap: 30px; }
.kz-strip figure { border-radius: 4px; border: 10px solid #fff; box-shadow: 0 24px 40px -26px rgba(0,0,0,.5); }
.kz-strip figure:nth-child(1) { transform: rotate(-2.5deg); margin-top: 40px; }
.kz-strip figure:nth-child(2) { transform: rotate(1.2deg); }
.kz-strip figure:nth-child(3) { transform: rotate(3deg); margin-top: 90px; }

/* 福利厚生：こんな日は＝付箋 */
.kz-benefit__panel { margin: 0; border-radius: 0; }
.kz-ifthen { box-shadow: none !important; background: transparent !important; }
.kz-ifthen__if { display: inline-block; padding: 12px 16px 14px; background: var(--kc-fff3b8); font: 600 16px/1.6 var(--kz-hand); color: var(--kw-ink); transform: rotate(-1.5deg); box-shadow: 0 8px 16px -10px rgba(0,0,0,.35); }
.kz-ifthen tr:nth-child(even) .kz-ifthen__if { transform: rotate(1.2deg); }

/* 社員の観測メモ：付箋を散らして貼る */
.kz-voices__list { gap: 40px 48px; align-items: start; }
.kz-voices__list li { position: relative; background: var(--kc-fffbea) !important; border-radius: 3px !important; box-shadow: 0 16px 28px -16px rgba(0,0,0,.4) !important; border: 0 !important; }
.kz-voices__list li::before { content: ""; position: absolute; left: 50%; top: -12px; width: 96px; height: 24px; background: color-mix(in srgb, var(--kc-ffbf2e) 60%, transparent); transform: translateX(-50%) rotate(-3deg); }
.kz-voices__list li:nth-child(1) { transform: rotate(-1.6deg); }
.kz-voices__list li:nth-child(2) { transform: rotate(1.8deg); margin-top: 50px; }
.kz-voices__list li:nth-child(3) { transform: rotate(1deg); }
.kz-voices__list li:nth-child(4) { transform: rotate(-2deg); margin-top: 30px; }
.kz-memo__text { font-family: var(--kz-hand) !important; font-weight: 600 !important; font-size: 18px !important; line-height: 1.85 !important; }

/* 行動指針：トップの売れ方予報と同じ、テレビの予報の板 */
.kz-value__panel { margin: 0; border-radius: 0; background: var(--kc-f1faf5); }
.kz-forecast__lead { font: 600 20px/1.7 var(--kz-jp); }
.kz-forecast__lead .kz-en { display: none; }
.kz-forecast { gap: 12px; padding: 26px; background: var(--kc-0e3a30) !important; border-radius: 30px !important; box-shadow: 0 40px 70px -40px color-mix(in srgb, var(--kc-0e3a30) 65%, transparent) !important; }
.kz-forecast li { border: 0 !important; border-radius: 20px; padding: 24px 22px 28px; color: var(--kw-ink); }
.kz-forecast li { background: linear-gradient(180deg, var(--kc-d6eee4), var(--kc-f3faf7)); }
.kz-forecast__day { margin-bottom: 14px !important; }
.kz-forecast__day { justify-content: center; border-bottom: 0; padding-bottom: 0; font: 600 15px/1.3 var(--kz-jp); }
.kz-forecast__day .kz-en { font: italic 700 20px/1 var(--kz-en); color: var(--kw-ink); }
.kz-forecast .kz-forecast b { font-size: 18px; }
.kz-forecast li > p:last-child { font-size: 14.5px; }

/* 先輩の話：取材ノート */
.kz-iv { background: var(--kc-f1faf5); }
.kz-iv__sub { font: 700 clamp(48px, 6vw, 84px)/1.1 var(--kz-jp); color: var(--kw-ink); letter-spacing: .02em; transform: skewX(-9deg); }
.kz-iv__card { background: transparent; box-shadow: none; padding: 0; }
.kz-iv__card figure { border: 12px solid #fff; border-radius: 4px; box-shadow: 0 30px 50px -30px rgba(0,0,0,.5); transform: rotate(-2deg); }
.kz-iv__catch { display: inline-block; margin: -40px 0 0 20px; padding: 16px 20px 18px; position: relative; z-index: 1; background: var(--kc-fff3b8); font: 600 22px/1.55 var(--kz-jp); transform: rotate(2deg); box-shadow: 0 12px 24px -12px rgba(0,0,0,.35); }
.kz-iv__log { border-radius: 4px; box-shadow: 0 30px 60px -40px color-mix(in srgb, var(--kc-0e3a30) 50%, transparent); background-color: #fff; background-image: repeating-linear-gradient(transparent 0 35px, var(--kc-dfeee7) 35px 36px); }
.kz-q { border-top: 0; }
.kz-q__no { font: italic 700 30px/1 var(--kz-en) !important; color: var(--kz-blue) !important; background: none !important; min-width: 0 !important; height: auto !important; }
.kz-q__text { font: 600 22px/1.6 var(--kz-jp); }
.kz-a__body { background: transparent; padding: 4px 0 0; }
.kz-a__body p { font-size: 16.5px; line-height: 2.15; }
.kz-iv__photo { border-radius: 4px; border: 10px solid #fff; box-shadow: 0 24px 40px -26px rgba(0,0,0,.5); transform: rotate(-1deg); overflow: visible; }
.kz-iv__photo img { border-radius: 2px; }
.kz-iv__photo figcaption { border-radius: 3px; background: var(--kc-fffbea); font: 600 14px/1.5 var(--kz-hand); transform: rotate(-2deg); left: 18px; bottom: -14px; }
.kz-other figure { border-radius: 4px !important; border: 10px solid #fff; box-shadow: 0 24px 40px -26px rgba(0,0,0,.5); overflow: visible !important; }
.kz-other figure p { font-family: var(--kz-hand) !important; font-weight: 600 !important; background: var(--kc-fff3b8) !important; color: var(--kw-ink) !important; transform: rotate(-2deg); }

/* ほかのページへ */
.kz-more__text .kz-en { font: 600 15px/1 var(--kz-jp) !important; text-transform: none !important; letter-spacing: .04em; }

@media (max-width: 990px) {
  .kw-h2 { font-size: 40px; }
  .kz-sub-hero__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .kz-sub-hero__lead { text-align: left; }
  .kz-sub-hero__photo { aspect-ratio: 16 / 9; }
  .kz-anchors { flex-wrap: wrap; justify-content: flex-start; }
  .kz-figs__grid > .kz-fig:not(.kz-fig--full) { border-right: 0; }
  .kz-forecast { padding: 14px; }
  .kz-voices__list li:nth-child(n) { margin-top: 0; }
  .kz-iv__catch { margin-top: -30px; }
}
@media (max-width: 540px) {
  .kw-h2 { font-size: 32px; margin-bottom: 28px; }
  .kz-sub-hero__title { font-size: 48px; }
  .kz-sub-hero__lead { font-size: 17px; }
  .kz-anchors a { padding: 10px 14px; }
  .kz-anchors a b { font-size: 14px; }
  .kz-growth__list li { padding-left: 56px; }
  .kz-growth__list li::before { font-size: 40px; }
  .kz-strip figure { border-width: 6px; }
  .kz-iv__sub { font-size: 44px; }
  .kz-q__text { font-size: 19px; }
}
/* G-033：写真の入れ替えで二重写りを出さない＝新しい写真が上で出し切ってから、下の古い写真を消す */
.kz-day__photos figure { z-index: 1; transition: opacity 0s linear .9s, transform 1.2s ease; }
.kz-day__photos figure.is-on { z-index: 2; transition: opacity .8s ease, transform 1.2s ease; }
/* C-016：セクション見出しの大きさ・太さは全セクションで統一（型はセクションごとに変える） */
:root { --kw-h2: 52px; }
:is(.kw-msg__title, .kw-cast__title, .kw-env__title, .kw-co__title, .kw-flow__title, .kw-faq__title, .kw-h2, .kw-vtitle) { font-size: var(--kw-h2); font-weight: 700; }
@media (max-width: 990px) { :root { --kw-h2: 40px; } }
@media (max-width: 540px) { :root { --kw-h2: 30px; } }
/* template_check（v6.0）：下層の見出しの型を並び順で変える＝縦書き→左→中央→左 */
@media (min-width: 991px) {
  .kz-figs .kz-wrap { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 48px; }
  .kz-figs .kz-wrap > :not(#kz-number-title) { grid-column: 2; }
  .kz-purpose__text { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 40px; align-content: start; }
  .kz-purpose__text > :not(#kz-purpose-title) { grid-column: 2; }
  :is(#kz-number-title, #kz-purpose-title) { grid-column: 1; grid-row: 1 / span 6; writing-mode: vertical-rl; letter-spacing: .16em; margin: 0; align-self: start; position: sticky; top: 140px; white-space: nowrap; }
}
#kz-benefit-title { text-align: center; }
.kz-forecast__head { flex-direction: column; align-items: center; text-align: center; gap: 0; margin-bottom: 30px; }
.kz-forecast__head .kw-h2 { margin-bottom: 10px; }
.kz-forecast__lead { text-align: center; }
.kz-purpose p { font-size: 17px; line-height: 2; }
.kz-forecast li > p:last-child { font-size: 15.5px; }
@media (min-width: 991px) {
  .kz-benefit .kz-wrap { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 48px; }
  .kz-benefit .kz-wrap > :not(#kz-benefit-title) { grid-column: 2; }
  #kz-benefit-title { grid-column: 1; grid-row: 1 / span 4; writing-mode: vertical-rl; letter-spacing: .16em; margin: 0; align-self: start; position: sticky; top: 140px; white-space: nowrap; text-align: start; }
}

/* ===== ver13 元サイト寄せ（2026-10-15 大串『元サイトしっかり分析してね／なんかダサそう』・解剖書の正体1〜4に戻す） ===== */
/* 正体1：帯は止まった太い線（元はコマの差分0%）。描き出しと白い点の流れをやめ、最初から見せる */
.kz-jet, .kz-jet.is-in { stroke-dashoffset: 0 !important; transition: none !important; }
.kz-jet-flow { display: none !important; }
/* 正体3：色面のリズム＝白 → 淡い面（先輩）→ 白 → 濃い面（募集）。天気の名残の空色はやめる */
.kw-day, .kz-day { background: #fff !important; }
.kz-day { height: 300vh; }
/* 事業：1枚1数字・2列・大きな数字（元の『数字で見る』と同じ。4列の暗い板はダッシュボードに見える） */
.kw-board { background: none; box-shadow: none; padding: 0; color: var(--kw-ink); }
.kw-board__days { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.kw-bd { align-items: flex-start; text-align: left; padding: 34px 40px 36px; background: #fff; border-radius: 20px; }
.kw-bd__dow { font: 700 16px/1 var(--kz-jp); letter-spacing: .08em; margin-bottom: 20px; padding: 7px 14px; background: var(--kz-blue); color: #fff; border-radius: 4px; }
.kw-bd .kw-bd__temp { font: 700 96px/1 var(--kz-en); font-style: normal; letter-spacing: -.02em; color: var(--kz-blue-ink); }
.kw-bd__temp small { font-size: .3em; vertical-align: baseline; margin-left: 6px; color: var(--kw-ink); }
.kw-bd__sky { margin-top: 16px; font: 700 18px/1.5 var(--kz-jp); color: var(--kw-ink); }
.kw-board__note { margin: 16px 4px 0; color: var(--kz-sub); opacity: 1; }
/* 先輩：元の『淡い面＋左に食い込む大きな角丸』の上に、写真の上の白い帯の太字（付箋の手書きはやめる） */
.kw-people { background: #fff !important; background-image: none !important; padding: 120px 0 0; }
.kw-people > .kw-people__wrap { position: relative; background: var(--kc-e1f2ea); border-radius: 0 0 0 120px; padding: 120px 0 140px; }
.kw-people > .kw-people__wrap::before { content: ""; position: absolute; z-index: -1; inset: 0 -100vw 0 -200px; background: var(--kc-e1f2ea); border-radius: 120px 0 0 0; }
.kw-people > .kw-people__wrap { background: transparent; isolation: isolate; }
.kw-person__note.kw-band { left: 0 !important; right: auto !important; top: auto; bottom: 22px; max-width: 86%; padding: 0; background: none; box-shadow: none; transform: none !important; font: 700 30px/1.6 var(--kz-jp); letter-spacing: .02em; color: var(--kw-ink); }
.kw-person__note.kw-band { display: block; }
.kw-person__note.kw-band span { padding: 2px 14px 4px; background: #fff; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.kw-person__role { display: inline-block; margin: 22px 0 8px !important; padding: 5px 12px; background: var(--kz-blue); color: #fff !important; font: 700 14px/1.4 var(--kz-jp) !important; letter-spacing: .06em; border-radius: 2px; }
/* 働き方：丸い写真を2色の太い帯の輪が囲む（元の『働く環境を知る』と同じ形） */
.kw-radar__rings { inset: -26px; width: calc(100% + 52px); height: calc(100% + 52px); }
.kw-radar__rings circle { fill: none; stroke-width: 40; }
.kw-radar__rings .kw-ring--l { stroke: var(--kc-9bd9bf); }
.kw-radar__rings .kw-ring--d { stroke: var(--kc-0b5e49); stroke-dasharray: 34 66; stroke-dashoffset: 8; }
@media (max-width: 990px) {
  .kw-board__days { gap: 12px; }
  .kw-bd { padding: 22px 18px 24px; }
  .kw-bd .kw-bd__temp { font-size: 56px; }
  .kw-bd__sky { font-size: 14px; }
  .kw-people { padding-top: 60px; }
  .kw-people > .kw-people__wrap { padding: 72px 0 90px; }
  .kw-people > .kw-people__wrap::before { inset: 0 -100vw 0 -24px; border-radius: 60px 0 0 0; }
  .kw-person__note.kw-band { font-size: 20px; bottom: 14px; }
  .kw-radar__rings { inset: -14px; width: calc(100% + 28px); height: calc(100% + 28px); }
  .kw-radar__rings circle { stroke-width: 22; }
}
/* 一言は写真（4:5）の下端に乗せる：padding の % は幅基準なので 125% が写真の高さ */
.kw-person__note.kw-band { top: 0 !important; bottom: auto !important; padding-top: calc(125% - 118px) !important; pointer-events: none; }
@media (max-width: 990px) { .kw-person__note.kw-band { padding-top: calc(125% - 80px) !important; } }
@media (max-width: 540px) { .kw-bd { padding: 20px 14px 22px; } .kw-bd .kw-bd__temp { font-size: 42px; white-space: nowrap; } .kw-bd__temp small { margin-left: 3px; } }
/* ヘッダーの後ろを帯が通る幅でも札が読めるよう白地を敷く */
.kz-logo-sub { background: #fff; }
/* 会社のこと：建物の窓の上でも本文が読めるよう、左下を濃くする */
.kw-co__sky::after { background: linear-gradient(80deg, color-mix(in srgb, var(--kc-061a15) 78%, transparent) 0%, color-mix(in srgb, var(--kc-061a15) 45%, transparent) 45%, color-mix(in srgb, var(--kc-061a15) 5%, transparent) 75%), linear-gradient(180deg, color-mix(in srgb, var(--kc-061a15) 0%, transparent) 40%, color-mix(in srgb, var(--kc-061a15) 45%, transparent) 100%); }

/* ===== ver14：文字の型をベースの段に収める（PC 最大 64px・SP 最大 28px）／面談リンクの地 ===== */
.kz-rank b { font-weight: 700; }
.kw-bd .kw-bd__temp { font-size: 64px; }
.kw-day .kz-day__clock { font-size: 64px; }
.kz-sub-hero__title { font-size: 64px; }
.kz-fig__big b { font-size: 64px; }
.kz-iv__sub { font-size: 64px; }
@media (min-width: 991px) {
  .kz-header .kb.k007, .kz-header .kb.k007:hover { background: #fff; border-radius: 999px; padding: 12px 20px; }
}
@media (max-width: 767px) {
  .kw-fv__title > span, .kw-msg__title, .kw-cast__title, .kw-vtitle, .kw-env__title, .kw-co__title, .kw-flow__title, .kz-casual__title, .kw-faq__title, .kz-final__title, .kw-h2, .kz-sub-hero__title, .kz-iv__sub { font-size: 28px; }
  .kw-radar__f dd b, .kz-legend b, .kz-fig__big b, .kz-more__hpa, .kw-bd .kw-bd__temp { font-size: 28px; }
}
@media (max-width: 767px) { .kz-q__no { font-size: 28px !important; } }

@media (max-width: 767px) { .kw-bd__temp small { font-size: 12px; } }

/* よくある質問の3つの数字：傾いたシールをやめ、細い線で区切った一覧に（付箋『ここ違和感』2026-10-16） */
.kw-stickers { height: auto; max-width: 300px; margin-top: 44px; border-top: 1px solid #dfe3ef; }
.kw-sticker { position: static; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; width: auto; height: auto; padding: 16px 2px; border: 0; border-bottom: 1px solid #dfe3ef; border-radius: 0; box-shadow: none; background: none !important; color: var(--kw-ink) !important; text-align: left; font: 500 14px/1.4 var(--kz-jp); }
.kw-sticker br { display: none; }
.kw-sticker b, .kw-sticker--2 b { display: inline; font: 700 22px/1.2 var(--kz-jp); color: var(--kz-blue-ink); }
.kw-sticker.kz-reveal { transform: translateY(14px); }
.kw-sticker.kz-reveal.is-in { transform: none; }
@media (max-width: 990px) { .kw-stickers { max-width: none; } }

/* 最後の誘いの案 B〜D の部品（既定＝案Aでは出さない） */
.kz-final__grille, .kz-final__band, .kz-final__ph { display: none; }
/* インタビューの答え：単語の途中で折り返さない（C-013） */
.kz-a__body p { word-break: auto-phrase; }
/* ボードの説明：意味の切れ目でだけ折り返す（C-013） */
.kw-bd__sky > span { display: inline-block; }
/* 本文・一覧・表の文も単語の途中で折り返さない（C-013） */
:where(.kz-main) :is(p, dd, li) { word-break: auto-phrase; }
.kz-nw { white-space: nowrap; }
/* 募集職種：開閉ボタンは右端の＋だけ（fit_check『ボタンに長文』）。見た目は前の i と同じ */
.kz-jobs__row[data-kz-row] { cursor: pointer; }
.kz-jobs__tg { width: 44px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.kz-jobs__tg > i { position: relative; width: 44px; height: 44px; border-radius: 50%; background: var(--kz-blue); color: #fff; display: grid; place-items: center; transition: background .4s ease; }
.kz-jobs__row:hover .kz-jobs__tg > i, .kz-jobs__item.is-open .kz-jobs__tg > i { background: #000; }
.kz-jobs__tg > i::before, .kz-jobs__tg > i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.6px; margin: -.8px 0 0 -7px; background: #fff; transition: transform .4s ease; }
.kz-jobs__tg > i::after { transform: rotate(90deg); }
.kz-jobs__item.is-open .kz-jobs__tg > i::after { transform: rotate(0deg); }
.kz-jobs__tg:focus-visible > i { outline: 2px solid var(--kz-blue-ink); outline-offset: 3px; }
@media (max-width: 990px) { .kz-jobs__tg { grid-row: 1 / span 2; grid-column: 2; } }
/* スマホ：横に流れる写真の列の添え書きは出さない（画面の外で切れるため・fit_check） */
@media (max-width: 767px) { .kw-rail .kw-hand { display: none; } }

/* ===== ver19 付箋（2026-10-22 大串）：ベースと同じ太い波の帯をやめる。背景 A＝方眼と風の細線（既定）／B・C は variants/v-bg.css ===== */
.kw-fv__band > path, .kz-sub-hero__band > path, .kz-iv__band > path, .kw-scatter__band { display: none; }
/* ver21 付箋『もっと目立つ感じの特徴的な何か』：背景 A＝天井の吹出口（入れ子の四角）を右上に大きく（既定）／B・C は variants/v-bg.css */
.kw-fv__band, .kz-sub-hero__band, .kz-iv__band { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 900' fill='none'%3E %3Cdefs%3E %3ClinearGradient id='a1' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%231c2d9b'/%3E%3Cstop offset='1' stop-color='%238fb8ff'/%3E%3C/linearGradient%3E %3ClinearGradient id='a2' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231c2d9b' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%239cc4ff' stop-opacity='.55'/%3E%3C/linearGradient%3E %3ClinearGradient id='a3' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ff7a4d'/%3E%3Cstop offset='1' stop-color='%23ff572e'/%3E%3C/linearGradient%3E %3C/defs%3E %3Cg%3E%3Crect x='1120' y='-190' width='500' height='500' rx='112' stroke='url(%23a1)' stroke-width='78' transform='rotate(14 1370 60)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 1370 60;7 1370 60;0 1370 60' dur='14s' repeatCount='indefinite'/%3E%3C/g%3E %3Cg%3E%3Crect x='-170' y='300' width='430' height='430' rx='96' fill='url(%23a2)' transform='rotate(-12 45 515)'/%3E %3Crect x='-40' y='430' width='170' height='170' rx='40' fill='%23fff' fill-opacity='.9' transform='rotate(-12 45 515)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 45 515;-6 45 515;0 45 515' dur='16s' repeatCount='indefinite'/%3E%3C/g%3E %3Cg%3E%3Crect x='312' y='226' width='44' height='44' rx='11' fill='url(%23a3)'/%3E %3CanimateTransform attributeName='transform' type='translate' values='0 0;0 -14;0 0' dur='6s' repeatCount='indefinite'/%3E%3C/g%3E %3C/svg%3E") center top / max(1440px, 100%) auto no-repeat; }
:is(.kz-sub-hero__band, .kz-iv__band) { background-position: center -60px; }
@media (max-width: 767px) { .kw-fv__band { background-position: right -40px top -70px; background-size: 760px 475px; } }

/* ===== ver19 付箋（2026-10-22 大串『デザイン微妙』）：事業・先輩の話・募集職種・選考の流れ・カジュアル面談・FAQ・最後の誘いを新しい組みに。A＝既定／B・C は variants/v-*.css ===== */
.kv-h { margin: 0; font: 700 50px/1.3 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
/* 事業 A：4列の写真と大きな数字（罫線で区切る） */
.kv-biz { padding: 140px 0; background: #fff; }
.kv-biz__head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: end; margin-bottom: 60px; }
.kv-biz__lead { margin: 0; font: 500 16px/2 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kv-biz__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid var(--kw-ink); border-bottom: 1px solid var(--kz-line); }
.kv-biz__it { display: flex; flex-direction: column; padding: 22px 24px 30px; border-left: 1px solid var(--kz-line); }
.kv-biz__it:first-child { border-left: 0; padding-left: 0; }
.kv-biz__it:last-child { padding-right: 0; }
.kv-biz__no { order: 1; margin: 0; font: 500 13px/1 var(--kz-en); letter-spacing: .1em; color: var(--kz-blue); }
.kv-biz__tag { order: 2; margin: 10px 0 0; font: 700 18px/1.4 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kv-biz__ph { order: 3; margin: 18px 0 22px; aspect-ratio: 4 / 3; overflow: hidden; }
.kv-biz__ph img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease, opacity .6s ease; }
.kv-biz__it:hover .kv-biz__ph img { transform: scale(1.04); }
.kv-biz__num { order: 4; margin: 0; display: flex; align-items: baseline; gap: 6px; color: var(--kz-blue); }
.kv-biz__num b { font: 600 56px/1 var(--kz-en); letter-spacing: -.01em; }
.kv-biz__num small { font: 600 16px/1 var(--kz-en); }
.kv-biz__what { order: 5; margin: 14px 0 0; font: 700 15px/1.6 var(--kz-jp); letter-spacing: .03em; color: var(--kw-ink); }
.kv-biz__txt { order: 6; margin: 4px 0 0; font: 500 14px/1.8 var(--kz-jp); letter-spacing: .03em; color: var(--kz-sub); }
/* 先輩の話 A：1人を大きく＋3人の行 */
.kv-ppl { padding: 140px 0; background: var(--kz-pale-2); }
.kv-ppl__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 56px; }
.kv-ppl__lead { margin: 0; max-width: 600px; font: 500 16px/2 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kv-ppl__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1.1fr 1fr; grid-template-rows: repeat(3, auto); column-gap: 64px; align-items: start; }
.kv-ppl__it:first-child { grid-row: 1 / 4; }
.kv-pp { display: block; color: inherit; text-decoration: none; }
.kv-pp__ph { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.kv-pp__ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .8s ease; }
.kv-pp:hover .kv-pp__ph img { transform: scale(1.04); }
.kv-pp__body { padding-top: 26px; }
.kv-pp__no { margin: 0; font: 500 13px/1 var(--kz-en); letter-spacing: .1em; color: var(--kz-blue); }
.kv-pp__q { margin: 12px 0 0; font: 700 30px/1.5 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kv-pp__role { display: inline-block; margin: 16px 0 0; padding: 4px 9px; border: 1px solid var(--kz-blue); font: 700 12px/1.3 var(--kz-jp); letter-spacing: .06em; color: var(--kz-blue); }
.kv-pp__name { margin: 10px 0 0; font: 700 16px/1.5 var(--kz-jp); letter-spacing: .06em; color: var(--kw-ink); }
.kv-pp__name span { margin-left: 12px; font: 500 12.5px/1.5 var(--kz-jp); color: var(--kz-sub); }
.kv-pp__read { display: inline-flex; align-items: center; gap: 12px; margin-top: 18px; padding-bottom: 6px; border-bottom: 1px solid currentColor; font: 700 14px/1 var(--kz-jp); letter-spacing: .06em; color: var(--kw-ink); }
.kv-pp:hover .kv-pp__read .kz-arrow { transform: translateX(5px); }
.kv-pp__read .kz-arrow { transition: transform .5s ease; }
.kv-ppl__it:not(:first-child) .kv-pp { display: grid; grid-template-columns: 150px 1fr; gap: 28px; align-items: center; padding: 26px 0; border-top: 1px solid var(--kz-line); }
.kv-ppl__it:nth-child(2) .kv-pp { padding-top: 0; border-top: 0; }
.kv-ppl__it:not(:first-child) .kv-pp__ph { aspect-ratio: 3 / 4; }
.kv-ppl__it:not(:first-child) .kv-pp__body { padding-top: 0; }
.kv-ppl__it:not(:first-child) .kv-pp__q { font-size: 20px; }
/* 募集職種 A：濃い帯の表（行の左に小さな写真） */
.kv-pos { padding: 130px 0 140px; background: var(--kz-blue-deep); color: #fff; }
.kv-pos .kv-h { color: #fff; }
.kv-pos__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 48px; }
.kv-pos__lead { margin: 0; font: 500 15px/1.9 var(--kz-jp); letter-spacing: .03em; color: rgba(255,255,255,.85); text-align: right; }
.kv-jobs { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.55); }
.kv-job { position: relative; display: grid; grid-template-columns: 176px 1fr; grid-template-rows: auto auto; column-gap: 36px; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.kv-job__ph { grid-row: 1 / 3; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; align-self: start; }
.kv-job__ph img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease, opacity .5s ease; }
.kv-job:hover .kv-job__ph img { transform: scale(1.05); }
.kv-job__row { display: grid; grid-template-columns: 40px 210px 1fr 168px 44px; column-gap: 24px; align-items: center; min-height: 132px; cursor: pointer; }
.kv-job__no { font: 500 14px/1 var(--kz-en); letter-spacing: .08em; color: var(--kz-sky); }
.kv-job__name { font: 700 22px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kv-job__name em { display: block; margin-top: 6px; font: 500 12px/1.5 var(--kz-jp); font-style: normal; letter-spacing: .04em; color: rgba(255,255,255,.72); }
.kv-job__desc { font: 500 15px/1.85 var(--kz-jp); letter-spacing: .03em; color: rgba(255,255,255,.9); }
.kv-job__meta { margin: 0; display: grid; gap: 8px; }
.kv-job__meta div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.kv-job__meta dt { font: 500 12px/1.4 var(--kz-jp); color: rgba(255,255,255,.66); }
.kv-job__meta dd { margin: 0; font: 700 14px/1.4 var(--kz-jp); letter-spacing: .03em; }
.kv-job__tg { position: relative; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; transition: background .4s ease, color .4s ease; }
.kv-job__tg i::before, .kv-job__tg i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.6px; background: currentColor; transform: translate(-50%, -50%); transition: transform .4s ease; }
.kv-job__tg i::after { transform: translate(-50%, -50%) rotate(90deg); }
.kv-job.is-open .kv-job__tg i::after { transform: translate(-50%, -50%) rotate(0deg); }
.kv-job__row:hover .kv-job__tg { background: #fff; color: var(--kw-ink); }
.kv-job__detail { grid-column: 2; max-height: 0; overflow: hidden; transition: max-height .5s ease; }
.kv-job__detail dl { margin: 18px 0 0 64px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; padding-top: 22px; border-top: 1px dashed rgba(255,255,255,.3); }
.kv-job__detail dt { font: 700 13px/1.4 var(--kz-jp); letter-spacing: .06em; color: var(--kz-sky); }
.kv-job__detail dd { margin: 8px 0 0; font: 500 14.5px/1.85 var(--kz-jp); letter-spacing: .03em; color: rgba(255,255,255,.9); }
.kv-pos .kz-note { color: rgba(255,255,255,.72); }
/* 選考の流れ A：矢印で区切った5つの箱 */
.kv-flow { padding: 130px 0 120px; background: #fff; }
.kv-flow__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 52px; }
.kv-flow__lead { margin: 0; font: 500 15px/1.9 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); text-align: right; }
.kv-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); }
.kv-step { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 30px 34px 32px 40px; background: var(--kz-pale-2); clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%, 20px 50%); }
.kv-step + .kv-step { margin-left: -14px; }
.kv-step:first-child { padding-left: 26px; clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%); }
.kv-step:nth-child(even) { background: var(--kz-pale); }
.kv-step__no { padding: 5px 10px; border-radius: 30px; background: var(--kw-ink); color: #fff; font: 500 11px/1 var(--kz-en); letter-spacing: .1em; }
.kv-step__when { margin-top: 6px; font: 700 12.5px/1.4 var(--kz-jp); letter-spacing: .04em; color: var(--kz-blue); }
.kv-step__t { font: 700 19px/1.4 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kv-step p { margin: 0; font: 500 13.5px/1.8 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
/* カジュアル面談 A：淡い藍の面＋窓際の立ち話の写真 */
.kv-cas { position: relative; margin-top: 90px; display: grid; grid-template-columns: 6fr 5fr; background: var(--kz-pale); scroll-margin-top: 120px; }
.kv-cas__ph { position: relative; margin: 0; min-height: 460px; overflow: hidden; }
.kv-cas__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: none; }
.kv-cas__text { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 56px; }
.kv-cas__en { margin: 0; font: 500 13px/1 var(--kz-en); letter-spacing: .14em; color: var(--kz-blue); }
.kv-cas__title { margin: 14px 0 0; font: 700 36px/1.4 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kv-cas__p { margin: 18px 0 0; font: 500 15px/1.95 var(--kz-jp); letter-spacing: .03em; color: var(--kc-16241f); }
.kv-cas__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 30px; padding: 0; }
.kv-cas__tags li { padding: 7px 12px; border: 1px solid var(--kz-blue); background: #fff; font: 700 12.5px/1 var(--kz-jp); letter-spacing: .04em; color: var(--kz-blue); }
/* FAQ A：真ん中の見出し＋罫線だけのリスト */
.kv-faq { padding: 130px 0; background: #fff; }
.kv-faq__grid { width: min(920px, calc(100% - 80px)); }
.kv-faq__head { margin-bottom: 48px; text-align: center; }
.kv-faq__sub { margin: 16px 0 0; font: 500 15px/1.9 var(--kz-jp); letter-spacing: .03em; color: var(--kz-sub); }
.kv-faq__facts { display: flex; justify-content: center; margin: 28px 0 0; }
.kv-faq__facts div { padding: 0 30px; border-left: 1px solid var(--kz-line); }
.kv-faq__facts div:first-child { border-left: 0; }
.kv-faq__facts dt { font: 500 12px/1.4 var(--kz-jp); letter-spacing: .06em; color: var(--kz-sub); }
.kv-faq__facts dd { margin: 6px 0 0; font: 700 16px/1 var(--kz-jp); letter-spacing: .04em; color: var(--kz-blue); }
.kv-faq__facts dd b { font: 600 28px/1 var(--kz-en); margin-right: 2px; }
.kv-faq .kz-faq__list { gap: 0 !important; border-top: 2px solid var(--kw-ink); }
.kv-faq .kz-faq__item { background: none; border-radius: 0; border-bottom: 1px solid var(--kz-line); }
.kv-faq .kz-faq__q { padding: 26px 4px; }
.kv-faq .kz-faq__a > div { padding: 0 4px 28px; }
/* 最後の誘い A：大きな見出し＋流れる写真の帯 */
.kv-final { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: 120px 0 0; background: #fff; text-align: center; border-top: 1px solid var(--kz-line); }
.kv-final__bg { display: none; margin: 0; }
.kv-final__bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.kv-final__inner { position: relative; z-index: 2; width: min(var(--kz-wrap), calc(100% - 80px)); margin: 0 auto; box-sizing: border-box; }
.kv-final__en { margin: 0; font: 500 14px/1 var(--kz-en); letter-spacing: .16em; color: var(--kz-blue); }
.kv-final__title { margin: 18px 0 0; font: 700 56px/1.3 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
.kv-final__btns { display: flex; justify-content: center; gap: 16px; margin-top: 44px; }
.kv-go { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 300px; padding: 21px 28px 21px 32px; border: 1px solid var(--kw-ink); border-radius: 50px; background: #fff; color: var(--kw-ink); text-decoration: none; box-sizing: border-box; transition: background .45s ease, color .45s ease, border-color .45s ease; }
.kv-go--entry { background: var(--kw-ink); color: #fff; }
.kv-go:hover { background: var(--kz-blue); border-color: var(--kz-blue); color: #fff; }
.kv-go__en { display: none; }
.kv-go__t { font: 700 16px/1.3 var(--kz-jp); letter-spacing: .04em; }
.kv-go__ar { display: inline-flex; }
.kv-go__ar .kz-arrow { transition: transform .5s ease; }
.kv-go:hover .kv-go__ar .kz-arrow { transform: translateX(6px); }
.kv-final__strip { order: 2; margin-top: 84px; overflow: hidden; }
.kv-final__track { display: flex; width: max-content; animation: kv-marq 70s linear infinite; }
.kv-final__track figure { flex: none; width: 300px; margin: 0 16px 0 0; aspect-ratio: 4 / 3; overflow: hidden; }
.kv-final__track img { display: block; width: 100%; height: 100%; object-fit: cover; }
@keyframes kv-marq { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .kv-final__track { animation: none; } }

@media (max-width: 767px) {
  .kv-h { font-size: 32px; }
  .kv-biz, .kv-ppl, .kv-faq { padding: 84px 0; }
  .kv-pos { padding: 84px 0 90px; }
  .kv-flow { padding: 84px 0 80px; }
  .kv-biz__head, .kv-ppl__head, .kv-pos__head, .kv-flow__head { display: block; margin-bottom: 36px; }
  .kv-biz__lead, .kv-ppl__lead, .kv-pos__lead, .kv-flow__lead { margin-top: 18px; text-align: left; font-size: 15px; }
  .kv-biz__list { grid-template-columns: 1fr 1fr; }
  .kv-biz__it { padding: 18px 12px 22px; }
  .kv-biz__it:nth-child(odd) { border-left: 0; padding-left: 0; }
  .kv-biz__it:nth-child(even) { padding-right: 0; }
  .kv-biz__it:nth-child(n+3) { border-top: 1px solid var(--kz-line); }
  .kv-biz__tag { font-size: 15px; }
  .kv-biz__num b { font-size: 34px; }
  .kv-biz__num small { font-size: 13px; }
  .kv-biz__what { font-size: 14px; }
  .kv-biz__txt { font-size: 13px; }
  .kv-ppl__list { grid-template-columns: 1fr; grid-template-rows: none; }
  .kv-ppl__it:first-child { grid-row: auto; margin-bottom: 28px; }
  .kv-pp__q { font-size: 24px; }
  .kv-ppl__it:not(:first-child) .kv-pp { grid-template-columns: 104px 1fr; gap: 18px; padding: 20px 0; }
  .kv-ppl__it:nth-child(2) .kv-pp { padding-top: 20px; border-top: 1px solid var(--kz-line); }
  .kv-ppl__it:not(:first-child) .kv-pp__q { font-size: 17px; }
  .kv-pp__name span { display: block; margin: 2px 0 0; }
  .kv-job { grid-template-columns: 1fr; padding: 24px 0; }
  .kv-job__ph { grid-row: auto; aspect-ratio: 16 / 9; margin-bottom: 16px; }
  .kv-job__row { grid-template-columns: 32px 1fr 40px; grid-template-areas: "no name tg" ". desc desc" ". meta meta"; row-gap: 10px; column-gap: 12px; min-height: 0; }
  .kv-job__no { grid-area: no; } .kv-job__name { grid-area: name; font-size: 20px; } .kv-job__desc { grid-area: desc; font-size: 14.5px; } .kv-job__meta { grid-area: meta; } .kv-job__tg { grid-area: tg; width: 40px; height: 40px; }
  .kv-job__detail { grid-column: 1; }
  .kv-job__detail dl { margin-left: 44px; grid-template-columns: 1fr; gap: 16px; }
  .kv-steps { grid-template-columns: 1fr; gap: 6px; }
  .kv-step, .kv-step:first-child { clip-path: none; margin: 0; padding: 22px 22px 24px; border-left: 3px solid var(--kz-blue); }
  .kv-step + .kv-step { margin-left: 0; }
  .kv-cas { grid-template-columns: 1fr; margin-top: 64px; }
  .kv-cas__ph { min-height: 240px; }
  .kv-cas__text { padding: 34px 22px 38px; }
  .kv-cas__title { font-size: 28px; }
  .kv-faq__grid { width: calc(100% - 40px); }
  .kv-faq__facts div { padding: 0 14px; }
  .kv-faq__facts dd { font-size: 14px; }
  .kv-faq__facts dd b { font-size: 22px; }
  .kv-final { padding-top: 84px; }
  .kv-final__inner { width: calc(100% - 40px); }
  .kv-final__title { font-size: 34px; }
  .kv-final__btns { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 32px; }
  .kv-go { min-width: 0; }
  .kv-final__strip { margin-top: 56px; }
  .kv-final__track figure { width: 200px; margin-right: 10px; }
}
/* フッター A（付箋『もっとデカく・デザインも変えよう』）：ロゴとキャッチ＋3列のメニュー＋画面幅いっぱいの英字 */
.kv-foot { position: relative; overflow: hidden; padding: 110px 0 0; background: var(--kz-pale-2); color: var(--kw-ink); }
.kv-foot a { color: inherit; text-decoration: none; }
.kv-foot__in { width: min(var(--kz-wrap), calc(100% - 80px)); margin: 0 auto; display: grid; grid-template-columns: 5fr 7fr; gap: 64px; }
.kv-foot__catch { margin: 30px 0 0; font: 700 30px/1.5 var(--kz-jp); letter-spacing: .04em; }
.kv-foot__cta { display: inline-flex; align-items: center; gap: 16px; margin-top: 30px; padding: 18px 24px 18px 28px; border-radius: 50px; background: var(--kw-ink); color: #fff !important; font: 700 15px/1 var(--kz-jp); letter-spacing: .04em; transition: background .4s ease; }
.kv-foot__cta:hover { background: var(--kz-blue); }
.kv-foot__cta .kz-arrow, .kv-foot__h .kz-arrow { transition: transform .5s ease; }
.kv-foot__cta:hover .kz-arrow, .kv-foot__h:hover .kz-arrow { transform: translateX(5px); }
.kv-foot__nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; align-content: start; }
.kv-foot__col { display: flex; flex-direction: column; border-top: 2px solid var(--kw-ink); }
.kv-foot__h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--kz-line); font: 700 16px/1.4 var(--kz-jp); letter-spacing: .04em; }
.kv-foot__h:hover { color: var(--kz-blue); }
.kv-foot__sub { list-style: none; margin: 0; padding: 12px 0 0; }
.kv-foot__sub a { display: block; padding: 7px 0; font: 500 14px/1.5 var(--kz-jp); letter-spacing: .04em; color: var(--kz-sub); }
.kv-foot__sub a:hover { color: var(--kz-blue); }
.kv-foot__word { margin: 80px 0 0; text-align: center; font: 600 clamp(64px, 16.4vw, 260px)/.78 var(--kz-en); letter-spacing: -.01em; color: var(--kz-blue); white-space: nowrap; }
.kv-foot__bar { position: relative; width: min(var(--kz-wrap), calc(100% - 80px)); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 32px; padding: 26px 0 30px; }
.kv-foot__copy { margin: 0; font: 500 12px/1.6 var(--kz-en); letter-spacing: .06em; color: var(--kz-sub); white-space: nowrap; }
@media (max-width: 767px) {
  .kv-foot { padding-top: 72px; }
  .kv-foot__in, .kv-foot__bar { width: calc(100% - 40px); }
  .kv-foot__in { grid-template-columns: 1fr; gap: 44px; }
  .kv-foot__catch { font-size: 24px; }
  .kv-foot__nav { grid-template-columns: 1fr; gap: 24px; }
  .kv-foot__word { margin-top: 56px; }
  .kv-foot__bar { flex-direction: column; align-items: flex-start; gap: 10px; }
}
/* ver19 微調整：見出しの改行・写真の高さをそろえる・職種の札の折り返し・面談の写真の切り替え・英字の幅 */
.kv-biz__head { grid-template-columns: max-content 1fr; }
.kv-biz__ph, .kv-pp__ph, .kv-job__ph { position: relative; }
.kv-biz__ph img, .kv-pp__ph img, .kv-job__ph img { position: absolute; inset: 0; }
@media (min-width: 768px) { .kv-job__row { grid-template-columns: 40px 200px 1fr 196px 44px; } }
.kv-job__meta dt, .kv-job__meta dd { white-space: nowrap; }
.kv-foot__word { font-size: clamp(56px, 14.2vw, 230px); }
@media (max-width: 767px) { .kv-biz__head { display: block; } }
/* ver19：働き方の円の数字札が検査で「日」「閉所」「名」だけ次の行に落ちたので、札の中は折り返さない */
.kw-radar__f dd { white-space: nowrap; display: flex; align-items: center; }   /* 数字と単位の上端の差が大きく、検査が別の行と数えていたので縦中央にそろえる */

/* ver21：事業は B（仕様書の罫線リスト）に決定（付箋【案の決定】2026-10-22） */
#business { background: var(--kz-pale-2); }
#business .kv-biz__list { grid-template-columns: 1fr; }
#business .kv-biz__it { display: grid; grid-template-columns: 48px 180px 250px 1fr 232px; grid-template-rows: auto auto; column-gap: 28px; align-items: center; padding: 26px 0; border-left: 0; border-bottom: 1px solid var(--kz-line); }
#business .kv-biz__it:last-child { border-bottom: 0; }
#business .kv-biz__no { grid-column: 1; grid-row: 1 / 3; }
#business .kv-biz__tag { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 20px; }
#business .kv-biz__num { grid-column: 3; grid-row: 1 / 3; }
#business .kv-biz__num b { font-size: 64px; }
#business .kv-biz__what { grid-column: 4; grid-row: 1; align-self: end; margin: 0; font-size: 17px; }
#business .kv-biz__txt { grid-column: 4; grid-row: 2; align-self: start; margin-top: 6px; }
#business .kv-biz__ph { grid-column: 5; grid-row: 1 / 3; margin: 0; aspect-ratio: 16 / 9; }
@media (max-width: 767px) {
  #business .kv-biz__it { grid-template-columns: 1fr auto; grid-template-areas: "ph ph" "tag num" "what what" "txt txt"; row-gap: 6px; padding: 22px 0; }
  #business .kv-biz__it > * { grid-column: auto; grid-row: auto; }
  #business .kv-biz__no { display: none; }
  #business .kv-biz__ph { grid-area: ph; margin-bottom: 10px; }
  #business .kv-biz__tag { grid-area: tag; font-size: 17px; }
  #business .kv-biz__num { grid-area: num; }
  #business .kv-biz__num b { font-size: 38px; }
  #business .kv-biz__what { grid-area: what; }
  #business .kv-biz__txt { grid-area: txt; margin: 0; }
}

/* ver21：先輩の話は C（横に流れる肖像）に決定（付箋【案の決定】2026-10-22） */
#people { background: #fff; overflow: hidden; }
#people .kv-ppl__list { display: flex; gap: 28px; margin-right: calc((100% - 100vw) / 2); padding: 0 40px 26px 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--kz-blue) var(--kz-pale); }
#people .kv-ppl__it, #people .kv-ppl__it:first-child { flex: 0 0 372px; grid-row: auto; scroll-snap-align: start; }
#people .kv-ppl__it .kv-pp, #people .kv-ppl__it:not(:first-child) .kv-pp { display: block; padding: 0; border: 0; }
#people .kv-ppl__it .kv-pp__ph { aspect-ratio: 3 / 4; }
#people .kv-ppl__it .kv-pp__body { position: relative; margin: -72px 0 0 26px; padding: 24px 26px 26px; background: #fff; border-top: 3px solid var(--kz-blue); }
#people .kv-ppl__it .kv-pp__q { font-size: 21px; }
@media (max-width: 767px) {
  #people .kv-ppl__list { gap: 16px; padding-right: 20px; }
  #people .kv-ppl__it, #people .kv-ppl__it:first-child { flex-basis: 78vw; margin: 0; }
  #people .kv-ppl__it .kv-pp__body { margin-left: 16px; padding: 20px; }
  #people .kv-ppl__it .kv-pp__q { font-size: 19px; }
}

/* ver21：よくある質問は C（質問を2列のカード）に決定（付箋【案の決定】2026-10-22） */
#faq .kv-faq__grid { width: min(var(--kz-wrap), calc(100% - 80px)); counter-reset: kvq; }
#faq .kv-faq__head { display: grid; grid-template-columns: auto 1fr auto; align-items: end; column-gap: 44px; margin-bottom: 44px; padding-bottom: 34px; border-bottom: 2px solid var(--kw-ink); text-align: left; }
#faq .kv-faq__sub { margin: 0; }
#faq .kv-faq__facts { margin: 0; }
#faq .kz-faq__list { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px !important; align-items: start; border-top: 0; }
#faq .kz-faq__item { align-self: start; counter-increment: kvq; background: var(--kz-pale-2); border: 0; }
#faq .kz-faq__q { padding: 26px 26px 24px; grid-template-columns: auto 1fr auto; column-gap: 14px; }
#faq .kz-faq__q .kz-faq__mark { font-size: 0 !important; width: auto !important; min-width: 0 !important; height: auto !important; background: none !important; border-radius: 0 !important; }
#faq .kz-faq__q .kz-faq__mark::after { content: "Q." counter(kvq, decimal-leading-zero); font: 600 15px/1 var(--kz-en); letter-spacing: .06em; color: var(--kz-blue); }
#faq .kz-faq__a > div { padding: 0 26px 26px; }
@media (max-width: 767px) {
  #faq .kv-faq__grid { width: calc(100% - 40px); display: block; }
  #faq .kv-faq__head { display: block; }
  #faq .kv-faq__facts { margin-top: 24px; justify-content: flex-start; }
  #faq .kv-faq__facts div:first-child { padding-left: 0; }
  #faq .kz-faq__list { grid-template-columns: 1fr; gap: 10px !important; }
  #faq .kz-faq__q { padding: 20px 18px; }
  #faq .kz-faq__a > div { padding: 0 18px 22px; }
}

/* ver21：フッターは B（大きなキャッチ）に決定（付箋【案の決定】2026-10-22） */
#kz-foot { padding-top: 120px; background: #fff; border-top: 1px solid var(--kz-line); }
#kz-foot .kv-foot__in { grid-template-columns: 1fr; gap: 72px; }
#kz-foot .kv-foot__brand { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "logo logo" "catch cta"; align-items: end; row-gap: 26px; }
#kz-foot .kz-logo--footer { grid-area: logo; }
#kz-foot .kv-foot__catch { grid-area: catch; margin: 0; font-size: 60px; line-height: 1.32; }
#kz-foot .kv-foot__cta { grid-area: cta; margin: 0; }
#kz-foot .kv-foot__word { display: none; }
#kz-foot .kv-foot__bar { margin-top: 72px; border-top: 1px solid var(--kz-line); }
@media (max-width: 767px) {
  #kz-foot { padding-top: 72px; }
  #kz-foot .kv-foot__brand { grid-template-columns: 1fr; grid-template-areas: "logo" "catch" "cta"; }
  #kz-foot .kv-foot__catch { font-size: 30px; }
  #kz-foot .kv-foot__cta { justify-self: start; }
}

/* ===== ver21 付箋（2026-10-22 大串『全部ダサいのと画像がせいせい感強い』）：カジュアル面談を作り直す。A＝写真なし（既定）／B・C は variants/v-cas.css ===== */
#casual { display: grid; grid-template-columns: 7fr 5fr; column-gap: 72px; align-items: start; margin-top: 110px; padding: 64px 0 0; background: none; border-top: 2px solid var(--kw-ink); }
#casual .kv-cas__ph { display: none; }
#casual .kv-cas__img { display: none; }
#casual .kv-cas__text { display: block; padding: 0; }
#casual .kv-cas__title { font-size: 48px; line-height: 1.32; }
#casual .kv-cas__p { max-width: 34em; }
#casual .kv-cas__spec { display: grid; grid-template-columns: repeat(3, 1fr); margin: 34px 0 38px; border-top: 1px solid var(--kz-line); border-bottom: 1px solid var(--kz-line); }
#casual .kv-cas__spec div { padding: 18px 20px 20px 0; }
#casual .kv-cas__spec div + div { padding-left: 20px; border-left: 1px solid var(--kz-line); }
#casual .kv-cas__spec dt { font: 500 12px/1 var(--kz-jp); letter-spacing: .1em; color: var(--kz-sub); }
#casual .kv-cas__spec dd { margin: 10px 0 0; font: 700 21px/1.3 var(--kz-jp); letter-spacing: .04em; color: var(--kw-ink); }
#casual .kv-cas__qs { padding: 40px 40px 44px; background: var(--kz-blue-deep); color: #fff; }
#casual .kv-cas__qs-h { margin: 0 0 8px; font: 700 13px/1 var(--kz-jp); letter-spacing: .12em; color: var(--kz-sun); }
#casual .kv-cas__qs ul { list-style: none; margin: 0; padding: 0; }
#casual .kv-cas__qs li { position: relative; padding: 22px 0 22px 34px; border-bottom: 1px solid rgba(255,255,255,.18); font: 700 18px/1.6 var(--kz-jp); letter-spacing: .03em; }
#casual .kv-cas__qs li:last-child { border-bottom: 0; padding-bottom: 0; }
#casual .kv-cas__qs li::before { content: "Q"; position: absolute; left: 0; top: 22px; font: italic 700 20px/1.4 var(--kz-en); color: var(--kz-sun); }
@media (max-width: 767px) {
  #casual { grid-template-columns: 1fr; row-gap: 40px; margin-top: 72px; padding-top: 44px; }
  #casual .kv-cas__title { font-size: 30px; }
  #casual .kv-cas__spec { grid-template-columns: 1fr; }
  #casual .kv-cas__spec div, #casual .kv-cas__spec div + div { display: flex; align-items: baseline; gap: 18px; padding: 14px 0; border-left: 0; }
  #casual .kv-cas__spec div + div { border-top: 1px solid var(--kz-line); }
  #casual .kv-cas__spec dt { flex: 0 0 3.5em; }
  #casual .kv-cas__spec dd { margin: 0; font-size: 18px; }
  #casual .kv-cas__qs { padding: 30px 22px 32px; }
  #casual .kv-cas__qs li { font-size: 16px; padding: 18px 0 18px 28px; }
  #casual .kv-cas__qs li::before { top: 18px; font-size: 18px; }
}
.kv-nw { display: inline-block; }

/* 背景A（大きな吹出口の輪）を FV の外にも：元サイトの帯と同じく、端で切れる大きな形をセクションの奥に置く（ver23） */
.kw-msg, .kv-biz, .kv-pos, .kv-final { isolation: isolate; overflow: clip; }
.kw-msg::before, .kw-msg::after, .kv-biz::before, .kv-biz::after, .kv-pos::before, html:not([data-t-v-final]) .kv-final::before, html:not([data-t-v-final]) .kv-final::after { content: ""; position: absolute; z-index: -1; pointer-events: none; background: center / contain no-repeat; }
.kw-msg::before { width: 560px; height: 560px; left: max(calc(50% + 380px), calc(100% - 330px)); top: 120px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%231c2d9b'/%3E%3Cstop offset='1' stop-color='%238fb8ff' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='89' y='89' width='422' height='422' rx='100' stroke='url(%23g)' stroke-width='70' transform='rotate(14 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;7 300 300;0 300 300' dur='14s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
.kw-msg::after { width: 60px; height: 80px; left: calc(50% - 600px); top: 150px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ff7a4d'/%3E%3Cstop offset='1' stop-color='%23ff572e'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='8' y='22' width='44' height='44' rx='11' fill='url(%23g)'/%3E %3CanimateTransform attributeName='transform' type='translate' values='0 0;0 -14;0 0' dur='6s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
.kv-biz { position: relative; }
.kv-biz::before { width: 420px; height: 420px; right: -260px; top: -60px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='1' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%231c2d9b' stop-opacity='.95'/%3E%3Cstop offset='1' stop-color='%239cc4ff' stop-opacity='.55'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='85' y='85' width='430' height='430' rx='96' fill='url(%23g)' transform='rotate(-12 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;-6 300 300;0 300 300' dur='16s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
.kv-biz::after { width: 340px; height: 340px; left: -210px; bottom: 60px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%238fb8ff'/%3E%3Cstop offset='1' stop-color='%231c2d9b' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='89' y='89' width='422' height='422' rx='100' stroke='url(%23g)' stroke-width='70' transform='rotate(14 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;-6 300 300;0 300 300' dur='17s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
.kv-pos { position: relative; }
.kv-pos::before { width: 720px; height: 720px; left: max(calc(50% + 420px), calc(100% - 300px)); top: -200px; opacity: .45; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%233a52d6'/%3E%3Cstop offset='1' stop-color='%236f93ff' stop-opacity='0.55'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='89' y='89' width='422' height='422' rx='100' stroke='url(%23g)' stroke-width='70' transform='rotate(14 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;6 300 300;0 300 300' dur='16s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
.kv-pos::after { width: 380px; height: 380px; left: -250px; bottom: -120px; opacity: .45; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%233a52d6'/%3E%3Cstop offset='1' stop-color='%236f93ff' stop-opacity='0.55'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='89' y='89' width='422' height='422' rx='100' stroke='url(%23g)' stroke-width='70' transform='rotate(14 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;6 300 300;0 300 300' dur='16s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); transform: rotate(-20deg); }
html:not([data-t-v-final]) .kv-final::before { width: 460px; height: 460px; left: -230px; top: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%231c2d9b'/%3E%3Cstop offset='1' stop-color='%238fb8ff' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='89' y='89' width='422' height='422' rx='100' stroke='url(%23g)' stroke-width='70' transform='rotate(14 300 300)'/%3E %3CanimateTransform attributeName='transform' type='rotate' values='0 300 300;7 300 300;0 300 300' dur='14s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
html:not([data-t-v-final]) .kv-final::after { width: 60px; height: 80px; right: calc(50% - 600px); top: 90px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80' fill='none'%3E %3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ff7a4d'/%3E%3Cstop offset='1' stop-color='%23ff572e'/%3E%3C/linearGradient%3E%3C/defs%3E %3Cg%3E%3Crect x='8' y='22' width='44' height='44' rx='11' fill='url(%23g)'/%3E %3CanimateTransform attributeName='transform' type='translate' values='0 0;0 -14;0 0' dur='6s' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E"); }
@media (max-width: 767px) {
  .kw-msg::before { width: 190px; height: 190px; left: auto; right: -125px; top: 70px; }
  .kw-msg::after { display: none; }
  .kv-biz::before { width: 200px; height: 200px; right: -130px; top: -50px; }
  .kv-biz::after { display: none; }
  .kv-pos::before { width: 340px; height: 340px; left: auto; right: -200px; top: -120px; }
  .kv-pos::after { display: none; }
  html:not([data-t-v-final]) .kv-final::before { width: 170px; height: 170px; left: -128px; top: 14px; }
  html:not([data-t-v-final]) .kv-final::after { width: 36px; height: 48px; right: 28px; top: 40px; }
}
@media (prefers-reduced-motion: reduce) { .kw-msg::after, html:not([data-t-v-final]) .kv-final::after { display: none; } }

/* 何がはみ出してもページが横に動かないように（ver25・大串「右にスクロールできる仕様辞めて」） */
html, body { overflow-x: clip; }
