@charset "utf-8";
/* ==========================================================================
   株式会社スタンドバイミー コーポレートサイト
   design_handoff_standbyme_corporate / 採用案 1a（回廊）
   モバイルファースト：ベース = SP 390 / @media (min-width:768px) = PC 1180
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
  /* colors */
  --bg:            #fbfaf9;
  --bg-band:       #e5e1da;
  --ink:           #1a1b1c;
  --ink-body:      #55534f;
  --ink-band:      #4c4a46;
  --ink-table:     #2b2c2d;
  --ink-nav:       #3b3c3d;
  --ink-cap:       #8b8880;
  --ink-cap-band:  #8a857d;
  --ink-pending:   #a8a49d;
  --ink-sec:       #7c7a75;
  --ink-sec2:      #6f6b64;

  --line-strong:   rgba(26, 27, 28, .16);
  --line-weak:     rgba(26, 27, 28, .10);
  --line-div:      rgba(26, 27, 28, .14);
  --line-rule:     rgba(26, 27, 28, .22);
  --line-frame:    rgba(26, 27, 28, .18);
  --line-field:    rgba(26, 27, 28, .30);
  --line-check:    rgba(26, 27, 28, .45);

  /* type */
  --mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --gothic: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;

  /* layout */
  --rail:   1180px;  /* コンテンツ最大幅 */
  --gutter: 22px;    /* SP 外側左右 */
  --inset:  22px;    /* SP 本文ブロック左右 */

  /* 素材待ちプレースホルダのハッチング */
  --hatch: repeating-linear-gradient(135deg, #eeebe6 0 7px, #e6e2dc 7px 14px);
  --hatch-fine: repeating-linear-gradient(135deg, #eeebe6 0 6px, #e6e2dc 6px 12px);
}

/* --------------------------------------------------------------------------
   2. Reset / base
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
[id] { scroll-margin-top: 24px; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--mincho);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

h1, h2, h3, h4, p, dl, dd, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img, svg, iframe { display: block; max-width: 100%; }
img { height: auto; }

a { color: var(--ink); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--ink-sec2); }

button { font: inherit; color: inherit; }
fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
legend { display: block; width: 100%; padding: 0; }

:focus-visible { outline: 1px solid var(--ink); outline-offset: 3px; }

/* 画面には出さないが読み上げ・SEO には残す */
.u-visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}

.u-skip {
  position: absolute; left: 22px; top: -60px; z-index: 100;
  background: var(--ink); color: var(--bg);
  font-family: var(--gothic); font-size: 12px; letter-spacing: .18em;
  padding: 12px 20px; transition: top .2s ease;
}
.u-skip:focus { top: 12px; color: var(--bg); }

/* 改行の出し分け（デザインの折り返し位置に合わせる） */
.u-sp { display: inline; }
.u-pc { display: none; }

/* --------------------------------------------------------------------------
   3. Layout primitives
   -------------------------------------------------------------------------- */

/* 1180 のレール。全幅バンドの内側に置いて中身だけを揃える */
.l-inner { max-width: var(--rail); margin: 0 auto; }

/* ヘッダー・フッター・ページタイトル・CTA の外側余白 */
.l-gutter { padding-left: var(--gutter); padding-right: var(--gutter); }

/* 本文ブロック（左寄せ）。PC で 88px の内側余白＋本文幅 900px */
.l-block { max-width: none; padding: 0 var(--inset); }
.l-block--form { max-width: none; }   /* PC: 本文幅 820px */
.l-block--doc  { max-width: none; }   /* PC: 本文幅 880px */

/* 全幅ベタ塗りバンド */
.l-band { width: 100%; }
/* レール内で左右 88px（PC）だけ空ける広めのブロック：地図・募集要項・インタビュー */
.l-pad { padding: 0 var(--inset); }
.l-band--greige { background: var(--bg-band); }
.l-band--base   { background: var(--bg); }

/* --------------------------------------------------------------------------
   4. Header / drawer
   -------------------------------------------------------------------------- */
.site-header { position: relative; z-index: 20; }

.site-header__inner {
  max-width: var(--rail); margin: 0 auto;
  padding: 18px var(--gutter);
  display: flex; align-items: center; justify-content: space-between;
}

.site-header__logo { display: block; width: 104px; }
.site-header__logo img { width: 100%; }

.site-nav { display: none; }

.nav-toggle {
  width: 22px; height: 22px; padding: 0;
  display: flex; flex-direction: column; justify-content: center; gap: 5px;
  background: none; border: 0; cursor: pointer;
}
.nav-toggle span { display: block; height: 1px; background: var(--ink); transition: transform .3s ease, opacity .3s ease; }
.nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(20deg); }
.nav-toggle[aria-expanded="true"] span:last-child  { transform: translateY(-3px) rotate(-20deg); }

/* 全画面ドロワー */
.drawer {
  position: fixed; inset: 0; z-index: 30;
  background: var(--bg);
  display: flex; flex-direction: column;
  padding: 18px var(--gutter) 48px;
  opacity: 0; visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.drawer[data-open="true"] { opacity: 1; visibility: visible; }

.drawer__head { display: flex; align-items: center; justify-content: space-between; }
.drawer__logo { display: block; width: 104px; }

.drawer__close {
  width: 22px; height: 22px; padding: 0; position: relative;
  background: none; border: 0; cursor: pointer;
}
.drawer__close span {
  position: absolute; left: 0; top: 50%; width: 22px; height: 1px; background: var(--ink);
}
.drawer__close span:first-child { transform: rotate(45deg); }
.drawer__close span:last-child  { transform: rotate(-45deg); }

.drawer__nav {
  margin-top: 56px;
  display: flex; flex-direction: column; gap: 30px;
  font-size: 20px; letter-spacing: .14em;
}
.drawer__nav a { display: inline-block; }
.drawer__nav a[aria-current="page"] { border-bottom: 1px solid var(--ink); padding-bottom: 5px; }

.drawer__sub {
  margin-top: auto; padding-top: 48px;
  display: flex; flex-direction: column; gap: 14px;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .14em; color: var(--ink-nav);
}
.drawer__sub a { color: var(--ink-nav); }

body.is-locked { overflow: hidden; }

/* --------------------------------------------------------------------------
   5. Key visual
   -------------------------------------------------------------------------- */
.kv { height: 420px; overflow: hidden; background: var(--bg); }
.kv picture { display: block; height: 100%; }
.kv img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 60%;
  opacity: .75;
  filter: grayscale(1) contrast(.9) brightness(1.16);
  -webkit-mask-image: linear-gradient(to bottom,
    transparent 0%, rgba(0,0,0,.35) 20%, rgba(0,0,0,.8) 40%,
    #000 56%, rgba(0,0,0,.8) 76%, rgba(0,0,0,.3) 92%, transparent 100%);
          mask-image: linear-gradient(to bottom,
    transparent 0%, rgba(0,0,0,.35) 20%, rgba(0,0,0,.8) 40%,
    #000 56%, rgba(0,0,0,.8) 76%, rgba(0,0,0,.3) 92%, transparent 100%);
}

/* --------------------------------------------------------------------------
   6. トップ：キャッチ／事業領域／カード
   -------------------------------------------------------------------------- */
.catch { padding: 44px var(--gutter) 0; text-align: center; }
.catch__lead {
  font-size: 17px; letter-spacing: .16em; line-height: 2.2;
}
.catch__body {
  margin-top: 30px; text-align: left;
  font-family: var(--gothic); font-size: 12.5px; line-height: 2.3; letter-spacing: .07em;
  color: var(--ink-sec);
}
.catch__after { height: 72px; }

.biz { padding: 48px 0; }
.biz__inner { max-width: var(--rail); margin: 0 auto; padding: 0 var(--gutter); }
.biz__label {
  font-family: var(--gothic); font-size: 10.5px; letter-spacing: .28em;
  color: var(--ink-sec2); margin-bottom: 28px;
}
.biz__list { display: flex; flex-direction: column; }
.biz__item {
  display: block; border-top: 1px solid var(--line-rule);
  padding: 20px 0; font-size: 16px; letter-spacing: .1em;
}
.biz__item:last-of-type { border-bottom: 1px solid var(--line-rule); }
.biz__more { display: flex; }
.biz__more a {
  display: inline-block; margin-top: 28px;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .2em;
  border-bottom: 1px solid var(--ink); padding-bottom: 5px;
}

.cards { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--line-div); }
.card { background: var(--bg); padding: 48px var(--gutter); display: block; }
.card__num { font-family: var(--gothic); font-size: 10px; letter-spacing: .3em; color: var(--ink-cap); }
.card__title { margin-top: 16px; font-size: 23px; letter-spacing: .14em; font-weight: 400; }
.card__sub {
  margin-top: 12px; font-family: var(--gothic); font-size: 12.5px;
  line-height: 2; letter-spacing: .06em; color: var(--ink-sec);
}

/* --------------------------------------------------------------------------
   7. ページタイトル
   -------------------------------------------------------------------------- */
.page-head { padding: 64px var(--gutter) 52px; text-align: center; }
.page-head__label {
  font-family: var(--gothic); font-size: 10px; letter-spacing: .3em; color: var(--ink-cap);
}
.page-head__title { margin-top: 20px; font-size: 25px; letter-spacing: .14em; font-weight: 400; }
.page-head__title--wrap { line-height: 1.8; }
.page-head__lead {
  margin-top: 26px; font-family: var(--gothic); font-size: 12.5px;
  line-height: 2.3; letter-spacing: .07em; color: var(--ink-sec);
}
.page-head--form { padding-bottom: 44px; }
.page-head--doc {
  text-align: left; padding: 56px var(--gutter) 40px;
}
.page-head--doc .page-head__label { letter-spacing: .28em; }
.page-head--doc .page-head__title { margin-top: 18px; font-size: 22px; line-height: 1.8; }

/* リード文バンド */
.lead-band { padding: 48px 0; }
.lead-band p {
  font-family: var(--gothic); font-size: 13px; line-height: 2.4;
  letter-spacing: .06em; color: var(--ink-band);
}

/* --------------------------------------------------------------------------
   8. 連番バンド（事業内容 / 採用 職種）
   -------------------------------------------------------------------------- */
.entry-band { padding: 44px 0; }
.entry__num { font-family: var(--gothic); font-size: 10.5px; letter-spacing: .26em; }
.l-band--greige .entry__num { color: var(--ink-cap-band); }
.l-band--base   .entry__num { color: var(--ink-pending); }

.entry__title { margin-top: 14px; font-size: 20px; letter-spacing: .12em; line-height: 1.7; font-weight: 400; }
.entry--job .entry__title { font-size: 21px; letter-spacing: .14em; }
.entry__cond {
  margin-top: 10px; font-family: var(--gothic); font-size: 11.5px; letter-spacing: .14em;
}
.l-band--greige .entry__cond { color: var(--ink-sec2); }
.l-band--base   .entry__cond { color: var(--ink-cap); }

.entry__body {
  margin-top: 20px; font-family: var(--gothic); font-size: 13px;
  line-height: 2.4; letter-spacing: .06em;
}
.l-band--greige .entry__body { color: var(--ink-band); }
.l-band--base   .entry__body { color: var(--ink-body); }

.entry__note {
  margin-top: 20px; font-family: var(--gothic); font-size: 11.5px;
  line-height: 2; letter-spacing: .05em; color: var(--ink-cap-band);
}
/* バンド内の小見出しと箇条書き（募集要項の仕事内容・キャリアステップ） */
.entry__sub {
  margin-top: 34px; font-family: var(--gothic); font-weight: 400;
  font-size: 10.5px; letter-spacing: .26em; color: var(--ink-cap);
}
.l-band--greige .entry__sub { color: var(--ink-cap-band); }
.entry__sub + .entry__body { margin-top: 14px; }
.entry__body + .entry__body { margin-top: 1.6em; }

.entry__listlabel {
  margin-top: 26px; font-family: var(--gothic); font-size: 11px;
  letter-spacing: .2em; color: var(--ink-cap);
}
.l-band--greige .entry__listlabel { color: var(--ink-cap-band); }

.entry__list {
  margin-top: 14px; font-family: var(--gothic); font-size: 12.5px;
  letter-spacing: .05em;
}
.entry__list li { border-top: 1px solid var(--line-weak); padding: 11px 0; line-height: 1.8; }
.entry__list li:last-child { border-bottom: 1px solid var(--line-weak); }
.l-band--greige .entry__list { color: var(--ink-band); }
.l-band--greige .entry__list li { border-color: var(--line-rule); }
.l-band--base .entry__list { color: var(--ink-body); }

.entry__link {
  display: inline-block; margin-top: 22px;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .18em;
  border-bottom: 1px solid var(--ink); padding-bottom: 5px;
}
.entry__meta {
  margin-top: 18px; font-family: var(--gothic); font-size: 11px;
  letter-spacing: .05em; color: var(--ink-cap-band);
}

/* SNS 縦動画モックアップ（素材待ち） */
.reels { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.reel {
  flex: 1 1 0; height: 280px;
  border: 1px solid var(--line-frame); border-radius: 16px;
  background: var(--hatch-fine);
  display: flex; align-items: center; justify-content: center; text-align: center;
  overflow: hidden;
}
.reel video { width: 100%; height: 100%; object-fit: cover; }
.reel__ph {
  font-family: var(--gothic); font-size: 9.5px; line-height: 1.8;
  letter-spacing: .06em; color: var(--ink-cap);
}
.reels__credit {
  flex: 0 0 100%; margin-top: 4px;
  font-family: var(--gothic); font-size: 11px;
  letter-spacing: .18em; color: var(--ink-cap);
}
.reels__credit b { font-weight: 400; }
.reels__credit b::before { content: "\3000"; }

/* --------------------------------------------------------------------------
   9. 表（会社概要 / 募集要項）
   -------------------------------------------------------------------------- */
.section { padding: 48px 0 0; }
.section--spec { padding-top: 20px; }
.section--people { padding-top: 52px; }
.section__label {
  font-family: var(--gothic); font-size: 10.5px; letter-spacing: .28em;
  color: var(--ink-cap); margin-bottom: 20px;
}

.section__label--tight { margin-bottom: 12px; }
.section__note {
  margin-bottom: 24px; font-family: var(--gothic); font-size: 11.5px;
  line-height: 2; letter-spacing: .05em; color: var(--ink-cap);
}

.spec { display: grid; grid-template-columns: 1fr; font-family: var(--gothic); }
.spec dt {
  border-top: 1px solid var(--line-weak); padding-top: 16px;
  font-size: 10.5px; letter-spacing: .2em; color: var(--ink-cap);
}
.spec dt:first-of-type { border-top-color: var(--line-strong); }
.spec dd {
  padding: 8px 0 16px; font-size: 13px; line-height: 1.9;
  letter-spacing: .04em; color: var(--ink-table);
}
.spec dd:last-of-type { border-bottom: 1px solid var(--line-strong); }
/* 表セル内：副項目・注記・箇条書き */
.spec dd .spec__sub { display: block; margin-top: 6px; }
.spec dd .spec__sub b {
  display: inline-block; margin-right: .8em; font-weight: 500;
  font-size: 11px; letter-spacing: .12em; color: var(--ink-cap);
}
.spec dd .spec__note {
  display: block; margin-top: 8px; font-size: 11.5px;
  line-height: 1.9; color: var(--ink-cap-band);
}
.spec dd ul { margin-top: 6px; }
.spec dd li { padding-left: 1em; text-indent: -1em; }
.spec dd li::before { content: "─\00a0"; color: var(--ink-cap); }

.is-pending { color: var(--ink-pending); }

/* 地図 */
.map { padding: 48px 0 0; }
.map__frame { height: 220px; background: var(--hatch); }
.map__frame iframe {
  width: 100%; height: 100%; border: 0;
  filter: grayscale(1) contrast(.95);  /* モノトーンに寄せる。不要なら1行削除 */
}

/* --------------------------------------------------------------------------
   10. 社員インタビュー（素材待ち）
   -------------------------------------------------------------------------- */
.people__list { display: grid; grid-template-columns: 1fr; gap: 44px; align-items: start; }
.person__photo {
  height: 240px; background: var(--hatch);
  display: flex; align-items: flex-end; padding: 0px;
}
.person__photo span { font-family: var(--gothic); font-size: 9.5px; color: var(--ink-cap); }
.person__photo:has(img) { padding: 0; }
.person__photo img {
  width: 100%; height: 100%; object-fit: cover;
  /*filter: grayscale(1) contrast(.97); */  /* 要件定義3章「写真：モノトーン」。カラーで出す場合はこの行を削除 */
}

/* 1カラム版：2人目の素材が揃うまでの暫定レイアウト。
   .people__list に people__list--solo を足すと有効になり、
   .person に is-waiting が付いた人は非表示になる。外せば元の2カラムに戻る。 */
.people__list--solo .person.is-waiting { display: none; }
.person__name { margin-top: 20px; font-size: 19px; letter-spacing: .14em; font-weight: 400; }
.person__role {
  margin-top: 10px; font-family: var(--gothic); font-size: 11px;
  letter-spacing: .14em; line-height: 1.8; color: var(--ink-cap);
}
.person__qa {
  margin-top: 16px; font-family: var(--gothic); font-size: 12.5px;
  line-height: 2.2; letter-spacing: .05em;
}
.person__q { color: var(--ink-cap); }
.person__q + .person__a { margin-top: 6px; }
.person__a + .person__q { margin-top: 22px; }
.person__a p + p { margin-top: 1.1em; }

/* --------------------------------------------------------------------------
   11. CTA
   -------------------------------------------------------------------------- */
.cta { padding: 56px var(--gutter); text-align: center; }
.cta__title { font-size: 19px; letter-spacing: .14em; line-height: 1.9; font-weight: 400; }
.btn-outline {
  display: block; margin-top: 26px; text-align: center;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .22em;
  border: 1px solid var(--ink); padding: 17px 0;
}
.btn-outline:hover { color: var(--ink-sec2); border-color: var(--ink-sec2); }

/* --------------------------------------------------------------------------
   12. フッター
   -------------------------------------------------------------------------- */
.site-footer { border-top: 1px solid var(--line-div); }

/* 簡易版（下層ページ） */
.footer-min {
  padding: 32px 0;
  font-family: var(--gothic); font-size: 10.5px; line-height: 2.1;
  letter-spacing: .06em; color: var(--ink-cap);
}
.footer-min__inner { max-width: var(--rail); margin: 0 auto; padding: 0 var(--gutter); }
.footer-min__inner > span { display: block; }
.footer-min a { color: inherit; }

/* 通常版（トップ） */
.footer-full { padding: 40px 0; }
.footer-full__inner { max-width: var(--rail); margin: 0 auto; padding: 0 var(--gutter); }
.footer-full__logo { display: block; width: 112px; }
.footer-full__address {
  margin-top: 20px; font-family: var(--gothic); font-size: 11px;
  line-height: 2.1; letter-spacing: .05em; color: var(--ink-sec);
}
.footer-full__address a { color: inherit; }
.footer-full__nav {
  display: flex; flex-direction: column; gap: 12px; margin-top: 26px;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .14em;
}
.footer-full__nav a { color: var(--ink-nav); }
.footer-full__copy {
  margin-top: 26px; font-family: var(--gothic); font-size: 10.5px;
  letter-spacing: .1em; color: var(--ink-pending);
}

/* --------------------------------------------------------------------------
   13. フォーム
   -------------------------------------------------------------------------- */
.notice {
  background: var(--bg-band); padding: 24px 22px;
  font-family: var(--gothic); font-size: 12px; line-height: 2.2;
  letter-spacing: .04em; color: var(--ink-band);
}

.form { display: flex; flex-direction: column; gap: 30px; margin-top: 44px; font-family: var(--gothic); }
.field--pair { display: flex; flex-direction: column; gap: 30px; }
.field { display: block; }
.field__label {
  display: block; margin-bottom: 10px;
  font-size: 11px; letter-spacing: .18em; color: var(--ink-sec2);
}
.field__req { color: var(--ink-cap); }

.field__input,
.field__textarea {
  display: block; width: 100%;
  font: inherit; font-size: 16px;           /* iOS のズーム回避 */
  letter-spacing: .04em; color: var(--ink);
  background: transparent; border: 0;
  border-bottom: 1px solid var(--line-field);
  border-radius: 0; -webkit-appearance: none; appearance: none;
  padding: 0 0 6px; height: 44px;
}
.field__textarea { height: 140px; padding-top: 10px; line-height: 1.9; resize: vertical; }
.field__input:focus,
.field__textarea:focus { outline: 0; border-bottom-color: var(--ink); }

.field__error {
  display: none; margin-top: 10px;
  font-size: 12px; letter-spacing: .04em; line-height: 1.8; color: var(--ink);
}
.field.is-error .field__error { display: block; }
.field.is-error .field__input,
.field.is-error .field__textarea { border-bottom-color: var(--ink); }

/* ラジオ */
.choices { display: flex; flex-direction: column; gap: 16px; }
.choice { display: flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: .04em; cursor: pointer; }
.choice input {
  flex: none; width: 15px; height: 15px; margin: 0;
  border: 1px solid var(--line-check); border-radius: 50%;
  background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer;
}
.choice input:checked { box-shadow: inset 0 0 0 3.5px var(--bg), inset 0 0 0 15px var(--ink); }

/* チェックボックス */
.consent { display: flex; align-items: center; gap: 12px; }
.consent input {
  flex: none; width: 18px; height: 18px; margin: 0;
  border: 1px solid var(--line-check); border-radius: 0;
  background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer;
}
.consent input:checked { box-shadow: inset 0 0 0 3px var(--bg), inset 0 0 0 18px var(--ink); }
.consent__text { font-size: 12px; letter-spacing: .04em; color: var(--ink-nav); }
.consent__text a { border-bottom: 1px solid currentColor; }
.field--consent.is-error .field__error { display: block; }

/* 履歴書添付 */
.upload { border: 1px dashed var(--line-field); padding: 24px; text-align: center; }
.upload__name:empty { display: none; }
.upload__btn {
  display: inline-block; font-size: 11.5px; letter-spacing: .18em;
  border-bottom: 1px solid var(--ink); padding-bottom: 4px; cursor: pointer;
}
.upload__hint { margin-top: 10px; font-size: 11px; letter-spacing: .04em; color: var(--ink-cap); }
.upload__name { margin-top: 12px; font-size: 12px; letter-spacing: .04em; color: var(--ink-table); }
.upload input[type="file"] {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
.upload:focus-within { border-color: var(--ink); }

/* 送信 */
.form__submit { margin-top: 14px; }
.btn-solid {
  display: block; width: 100%; text-align: center;
  font-family: var(--gothic); font-size: 12px; letter-spacing: .26em;
  color: var(--bg); background: var(--ink);
  border: 0; padding: 20px 0; cursor: pointer;
  transition: opacity .2s ease;
}
.btn-solid:hover { opacity: .85; color: var(--bg); }

/* honeypot */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 送信エラー総括 */
.form-alert {
  margin-top: 32px; border: 1px solid var(--line-strong); padding: 20px 22px;
  font-family: var(--gothic); font-size: 12.5px; line-height: 2; letter-spacing: .04em;
  color: var(--ink);
}
.form-alert ul { margin-top: 8px; }
.form-alert li { padding-left: 1em; text-indent: -1em; }

/* 連絡先併記 */
.contact-direct { padding-top: 56px; }
.contact-direct__inner { border-top: 1px solid var(--line-div); padding-top: 28px; }
.contact-direct__list {
  font-family: var(--gothic); font-size: 12.5px; line-height: 2.2;
  letter-spacing: .05em; color: var(--ink-table);
}
.contact-direct__list dt { display: none; }
.contact-direct__list dd a { color: inherit; }

/* 送信完了 */
.done__body {
  font-family: var(--gothic); font-size: 13px; line-height: 2.4;
  letter-spacing: .06em; color: var(--ink-band);
}
.done__back {
  display: inline-block; margin-top: 40px;
  font-family: var(--gothic); font-size: 11.5px; letter-spacing: .2em;
  border-bottom: 1px solid var(--ink); padding-bottom: 5px;
}

/* --------------------------------------------------------------------------
   14. プライバシーポリシー
   -------------------------------------------------------------------------- */
.doc {
  font-family: var(--gothic); font-size: 12.5px; line-height: 2.3;
  letter-spacing: .05em; color: var(--ink-band);
}
.doc__article { margin-top: 34px; }
.doc__article:first-of-type { margin-top: 40px; }
.doc__h { font-family: var(--mincho); font-size: 16px; letter-spacing: .1em; color: var(--ink); font-weight: 400; }
.doc__article p { margin-top: 12px; }
.doc__date { margin-top: 48px; font-size: 11px; color: var(--ink-cap); }
.doc__after { height: 64px; }
.doc a { border-bottom: 1px solid currentColor; }

/* --------------------------------------------------------------------------
   15. スクロール演出
   -------------------------------------------------------------------------- */
.js .reveal { opacity: 0; transform: translateY(12px); }
.js .reveal.is-in {
  opacity: 1; transform: none;
  transition: opacity .6s ease-out, transform .6s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ==========================================================================
   PC — min-width: 768px
   ========================================================================== */
@media (min-width: 768px) {
  :root { --gutter: 44px; --inset: 44px; }

  .u-sp { display: none; }
  .u-pc { display: inline; }

  .l-block       { max-width: 1076px; padding: 0 var(--inset); }  /* 本文幅 900 */
  .l-block--form { max-width:  996px; margin: auto;}                           /* 本文幅 820 */
  .l-block--doc  { max-width: 1056px; }                           /* 本文幅 880 */

  /* --- header --- */
  .site-header__inner { padding: 26px var(--gutter); }
  .site-header__logo { width: 132px; }
  .nav-toggle, .drawer { display: none; }

  .site-nav {
    display: flex; gap: 34px;
    font-family: var(--gothic); font-size: 11.5px; letter-spacing: .24em; color: var(--ink-nav);
  }
  .site-nav a { color: inherit; }
  .site-nav a:hover { color: var(--ink-sec2); }
  .site-nav a[aria-current="page"] {
    color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 3px;
  }

  /* --- kv --- */
  .kv { height: 560px; }

  /* --- トップ --- */
  .catch { padding: 96px var(--gutter) 0; }
  .catch__inner { max-width: 640px; margin: 0 auto; }
  .catch__lead { font-size: 20px; letter-spacing: .20em; line-height: 2.3; }
  .catch__body { margin-top: 44px; text-align: center; font-size: 12.5px; line-height: 2.4; letter-spacing: .09em; }
  .catch__after { height: 120px; }

  .biz { padding: 82px 0; }
  .biz__inner { display: flex; gap: 64px; align-items: flex-start; }
  .biz__label { flex: none; width: 150px; margin: 0; padding-top: 8px; }
  .biz__list {
    flex: 1; display: grid; grid-template-columns: 1fr 1fr;
    column-gap: 72px; row-gap: 34px;
  }
  .biz__item {
    border-top: 1px solid var(--line-rule); border-bottom: 0;
    padding: 16px 0 0; font-size: 19px; letter-spacing: .1em;
  }
  .biz__item:last-of-type { border-bottom: 0; }
  .biz__more { align-items: flex-end; }
  .biz__more a { margin-top: 0; letter-spacing: .22em; }

  .cards-wrap { max-width: var(--rail); margin: 0 auto; padding: 104px var(--gutter); }
  .cards { grid-template-columns: 1fr 1fr; }
  .card { padding: 56px 48px 52px; }
  .card__num { font-size: 10.5px; }
  .card__title { margin-top: 22px; font-size: 26px; }
  .card__sub { margin-top: 16px; line-height: 2.1; letter-spacing: .08em; }

  /* --- ページタイトル --- */
  .page-head { padding: 110px var(--gutter) 96px; }
  .page-head__inner { max-width: var(--rail); margin: 0 auto; }
  .page-head__label { font-size: 10.5px; letter-spacing: .34em; }
  .page-head__title { margin-top: 30px; font-size: 34px; letter-spacing: .16em; line-height: 1.7; }
  .page-head__title--wrap { line-height: 1.7; }
  .page-head__lead { margin-top: 38px; line-height: 2.4; letter-spacing: .09em; }
  .page-head--form { padding-bottom: 84px; }
  .page-head--form .page-head__title { line-height: 1.4; }
  .page-head--doc { padding: 110px 0 76px; }
  .page-head--doc .page-head__inner { padding: 0 var(--inset); }
  .page-head--doc .page-head__label { letter-spacing: .34em; }
  .page-head--doc .page-head__title { margin-top: 26px; font-size: 30px; letter-spacing: .16em; line-height: 1.4; }

  /* --- リード文バンド --- */
  .lead-band { padding: 84px 0; }
  .lead-band p { line-height: 2.6; letter-spacing: .08em; }

  /* --- 連番バンド --- */
  .entry-band { padding: 76px 0; }
  .entry {
    display: grid; grid-template-columns: 104px 1fr; gap: 36px;
  }
  .entry__num { font-size: 11px; letter-spacing: .28em; padding-top: 10px; }
  .entry__title { margin-top: 0; font-size: 23px; letter-spacing: .14em; line-height: 1.7; }
  .entry__cond { margin-top: 14px; letter-spacing: .16em; }
  .entry__body { margin-top: 26px; line-height: 2.5; letter-spacing: .07em; }
  .entry__sub { margin-top: 44px; font-size: 10.5px; letter-spacing: .3em; }
  .entry__sub + .entry__body { margin-top: 16px; }
  .entry__listlabel { margin-top: 32px; letter-spacing: .22em; }
  .entry__list { margin-top: 18px; font-size: 13px; letter-spacing: .06em; }
  .entry__list li { padding: 13px 0; line-height: 1.9; }

  .entry--job .entry__title { font-size: 23px; line-height: 1.5; }
  .entry--job .entry__body { margin-top: 24px; }
  .entry__note { margin-top: 26px; line-height: 2.1; letter-spacing: .06em; }
  .entry__link { letter-spacing: .2em; }
  .entry__foot { display: flex; gap: 26px; align-items: baseline; margin-top: 26px; }
  .entry__foot .entry__link { margin-top: 0; }
  .entry__foot .entry__meta { margin-top: 0; letter-spacing: .06em; }

  .reels { flex-wrap: nowrap; gap: 26px; margin-top: 36px; align-items: flex-end; }
  .reel { flex: none; width: 150px; height: 266px; }
  .reels__credit {
    flex: 0 0 auto; margin: 0 0 8px;
    font-size: 11px; letter-spacing: .2em;
  }
  .reels__credit b {
    display: block; margin-top: 10px;
    font-family: var(--mincho); font-size: 16px; letter-spacing: .1em; color: var(--ink);
  }
  .reels__credit b::before { content: none; }

  /* --- 表 --- */
  .section { padding: 88px 0 0; }
  .section__label { font-size: 10.5px; letter-spacing: .3em; margin-bottom: 24px; }

  .section--spec { padding-top: 88px; }
  .section--spec .section__label { margin-bottom: 28px; }
  .section--spec .section__label--tight { margin-bottom: 14px; }
  .section__note { margin-bottom: 30px; font-size: 11.5px; letter-spacing: .06em; }
  .section--people { padding-top: 104px; }
  .section--people .section__label { margin-bottom: 44px; }

  .spec { grid-template-columns: 200px 1fr; font-size: 13px; letter-spacing: .06em; }
  .spec dt {
    border-top: 1px solid var(--line-weak); padding: 22px 0;
    font-size: 13px; letter-spacing: .06em;
  }
  .spec dd {
    border-top: 1px solid var(--line-weak); padding: 22px 0;
    font-size: 13px; line-height: 1.7; letter-spacing: .06em;
  }
  .spec dt:first-of-type, .spec dd:first-of-type { border-top-color: var(--line-strong); }
  .spec dt:last-of-type, .spec dd:last-of-type { border-bottom: 1px solid var(--line-strong); }

  .map { padding: 88px 0 0; }
  .map__frame { height: 360px; }

  /* --- インタビュー --- */
  .people__list { grid-template-columns: 1fr 1fr; gap: 56px; }

  /* 1人版：左に「写真＋氏名＋役職」、右に一問一答。
     .person__head が写真まわりを1つにまとめているので、2カラムを並べるだけで済む。 */
  .people__list--solo { grid-template-columns: 1fr; }
  .people__list--solo .person {
    display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px; align-items: start;
  }
  .people__list--solo .person__qa { margin-top: 0; }
  .person__photo { height: 300px; padding: 0px; }
  .person__name { margin-top: 26px; font-size: 21px; }
  .person__role { margin-top: 12px; font-size: 11.5px; letter-spacing: .16em; }
  .person__qa { margin-top: 22px; line-height: 2.3; letter-spacing: .06em; }
  .person__q + .person__a { margin-top: 8px; }
  .person__a + .person__q { margin-top: 26px; }

  /* --- CTA --- */
  .cta { padding: 104px var(--gutter); }
  .cta--wide { padding: 110px var(--gutter); }
  .cta__title { font-size: 24px; letter-spacing: .16em; line-height: 1.9; }
  .btn-outline {
    display: inline-block; width: auto; margin-top: 34px;
    font-size: 11.5px; letter-spacing: .24em; padding: 17px 44px;
  }

  /* --- フッター --- */
  .footer-min {
    padding: 50px 0;
    font-size: 11px; line-height: 1.6; letter-spacing: .1em;
  }
  .footer-min__inner { display: flex; justify-content: space-between; gap: 32px; }
  .footer-min__inner > span { display: inline; }

  .footer-full { padding: 60px 0 44px; }
  .footer-full__inner {
    display: flex; justify-content: space-between; align-items: flex-end; gap: 48px;
  }
  .footer-full__address { margin-top: 22px; font-size: 11.5px; letter-spacing: .06em; }
  .footer-full__side { text-align: right; }
  .footer-full__nav { margin-top: 0; gap: 12px; font-size: 11px; letter-spacing: .16em; }
  .footer-full__copy { margin-top: 12px; font-size: 11px; }

  /* --- フォーム --- */
  .notice { padding: 32px 36px; font-size: 12px; line-height: 2.3; letter-spacing: .05em; }
  .form { gap: 38px; margin-top: 64px; }
  .field__label { margin-bottom: 12px; letter-spacing: .2em; }
  .field__input, .field__textarea { height: 38px; font-size: 14px; }
  .field__textarea { height: 150px; }

  .field--pair { display: grid; grid-template-columns: 1fr 200px; gap: 48px; }
  .field--pair .field { margin: 0; }

  .choices { flex-direction: row; gap: 36px; }
  .choice input { width: 13px; height: 13px; }
  .choice input:checked { box-shadow: inset 0 0 0 3px var(--bg), inset 0 0 0 13px var(--ink); }
  .field--choice .field__label { margin-bottom: 16px; }

  .consent { gap: 14px; margin-top: 6px; }
  .consent input { width: 15px; height: 15px; }
  .consent input:checked { box-shadow: inset 0 0 0 2.5px var(--bg), inset 0 0 0 15px var(--ink); }
  .consent__text { letter-spacing: .05em; }

  .upload {
    padding: 30px; text-align: left;
    display: grid; grid-template-columns: 1fr auto; align-items: center;
    grid-template-areas: "hint btn" "name name"; column-gap: 24px;
  }
  .upload__btn  { grid-area: btn; letter-spacing: .2em; }
  .upload__hint { grid-area: hint; margin: 0; font-size: 12px; letter-spacing: .05em; }
  .upload__name { grid-area: name; margin-top: 14px; }

  .form__submit { display: flex; justify-content: center; padding-top: 50px; margin-top: 0; }
  .btn-solid { width: auto; font-size: 12px; letter-spacing: .28em; padding: 19px 76px; }

  .contact-direct { padding-top: 104px; }
  .contact-direct__inner { padding-top: 40px; }
  .contact-direct__list { display: flex; gap: 64px; }
  .contact-direct__list > div { display: block; }
  .contact-direct__list dt {
    display: block; font-size: 10.5px; letter-spacing: .26em; color: var(--ink-cap);
  }
  .contact-direct__list dd { margin-top: 10px; font-size: 12.5px; }

  .done__body { font-size: 13px; line-height: 2.5; letter-spacing: .07em; }

  /* --- プライバシーポリシー --- */
  .doc { font-size: 13px; line-height: 2.5; letter-spacing: .06em; }
  .doc__article { margin-top: 44px; }
  .doc__article:first-of-type { margin-top: 52px; }
  .doc__h { font-size: 17px; letter-spacing: .12em; }
  .doc__article p { margin-top: 16px; }
  .doc__date { margin-top: 64px; font-size: 11.5px; }
  .doc__after { height: 120px; }
}

/* 中間幅：本文ブロックの内側 88px は 1024 以上で適用 */
@media (min-width: 1024px) {
  :root { --inset: 88px; }
}

/* 印刷 */
@media print {
  .site-header, .drawer, .cta, .form__submit, .u-skip { display: none; }
  body { background: #fff; }
}

img.ceo {
    display: inline-block;
    height: 1.4em;
    width: auto;
    vertical-align: -0.28em;
    margin-left: 0em;
}