/*
Theme Name: アバンシア
Theme URI: http://2026082709327r46r8a3.conohawing.com/
Author: 株式会社I am.
Author URI: http://2026082709327r46r8a3.conohawing.com/
Description: 株式会社AVANCIA コーポレートサイト用オリジナルテーマ。TOP / SERVICE / PRIVACY POLICY の3ページ構成。デザイン基準幅1440px、レスポンシブ対応。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: avancia
*/

/* =========================================================
   0. Design Tokens
   ========================================================= */
:root {
  /* Color */
  --c-ink:        #1C1C1F; /* ヘッダー / ダーク背景 */
  --c-ink-soft:   #23232A; /* ダークカード内側 */
  --c-gray:       #6E6E70; /* グレー帯（選ばれる理由） */
  --c-gray-card:  #EEEEEE; /* 明るいカード背景（MEDICAL等・グレー帯内カード） */
  --c-cream:      #F3EFE7; /* 会社概要などのクリーム背景 */
  --c-beige:      #E9E2D4; /* 課題カードのベージュ */
  --c-line:       #D8D2C6; /* 罫線 */
  --c-gold:       #AD9461; /* アクセント（ゴールド） */
  --c-gold-dark:  #9C8455;
  --c-text:       #2A2A2C; /* 基本テキスト */
  --c-text-soft:  #6B6B70; /* サブ・ライトグレー文字 */
  --c-text-light: #6B6B70; /* ダーク背景上のサブ文字 */
  --c-fv-sub:     #EBEBED; /* FVサブタイトル文字 */
  --c-white:      #FFFFFF;
  --c-card:       #EEEEEE; /* 明るいカードの下帯（医療/管理職） */

  /* Type */
  --f-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --f-sans:  "Montserrat", "Helvetica Neue", Arial, sans-serif;

  /* Layout */
  --w-max: 1440px;
  --w-inner: 1180px;
  --header-h: 153px;

  /* Motion */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* =========================================================
   1. Reset / Base
   ========================================================= */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--f-serif);
  color: var(--c-text);
  background: var(--c-white);
  line-height: 1.9;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity .3s var(--ease), color .3s var(--ease); }
a:hover { opacity: .7; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4, p, figure { margin: 0; }

:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* =========================================================
   2. Utilities
   ========================================================= */
.u-inner {
  width: 100%;
  max-width: var(--w-inner);
  margin-inline: auto;
  padding-inline: 24px;
}
.u-en {
  font-family: var(--f-sans);
  font-weight: 500;
  letter-spacing: .32em;
}
.u-sp { display: none; }

/* Eyebrow (欧文ラベル：M E D I C A L 等) */
.u-eyebrow {
  font-family: var(--f-sans);
  font-weight: 500;
  letter-spacing: .42em;
  font-size: 13px;
  color: var(--c-gold);
  text-indent: .42em;
}

/* Section title（和文見出し + 下線 60×3px） */
.c-sectitle {
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: 28px;
  letter-spacing: .06em;
  line-height: 1.5;
  padding-bottom: 28px;   /* テキスト下から下線まで 28px */
  position: relative;
}
.c-sectitle::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 60px;
  height: 3px;
  background: var(--c-gold);
}
/* 白い下線バリエーション（グレー帯内など） */
.c-sectitle--white::after { background: var(--c-white); }

/* =========================================================
   3. Buttons
   ========================================================= */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-serif);
  font-size: 15px;
  letter-spacing: .1em;
  padding: 14px 34px;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.c-btn--line {
  background: var(--c-gold);
  color: var(--c-white);
}
.c-btn--line:hover { background: var(--c-gold-dark); opacity: 1; }
.c-btn--ghost {
  border: 1px solid var(--c-gold);
  color: var(--c-gold);
  background: transparent;
}
.c-btn--ghost:hover { background: var(--c-gold); color: var(--c-white); opacity: 1; }

/* =========================================================
   4. Header
   ========================================================= */
.l-header {
  background: var(--c-ink);
  position: relative;
  z-index: 50;
}
.l-header__inner {
  max-width: var(--w-max);
  margin-inline: auto;
  height: 153px;
  display: flex;
  align-items: center;
  padding-inline: 51px;
  position: relative;
}
/* ナビ下の罫線（白：左透明→右100%） */
.l-header__inner::after {
  content: "";
  position: absolute;
  left: 191px;   /* ロゴ左51px + ロゴ幅120px + 余白20px */
  right: 51px;
  bottom: 34px;
  height: 1px;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,1));
}
.l-header__logo {
  width: 120px;
  height: 120px;
  flex: 0 0 auto;
}
.l-header__logo img { width: 100%; height: 100%; }
.l-header__nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 44px;
}
.l-gnav {
  display: flex;
  align-items: center;
  gap: 44px;
}
.l-gnav a {
  color: var(--c-white);
  font-family: var(--f-serif);
  font-weight: 500;
  letter-spacing: .14em;
  font-size: 16px;
  line-height: 1;
}
.l-gnav a.is-current { color: var(--c-gold); }
.l-header__cta {
  font-family: var(--f-serif);
  font-size: 16px;
  line-height: 1;
  letter-spacing: .1em;
  padding: 14px 34px;
}

/* Hamburger */
.l-burger {
  display: none;
  width: 34px; height: 26px;
  position: relative;
  background: none; border: 0; padding: 0;
  cursor: pointer;
  z-index: 60;
}
.l-burger span {
  position: absolute; left: 0;
  width: 100%; height: 2px;
  background: var(--c-white);
  transition: transform .35s var(--ease), opacity .25s var(--ease);
}
.l-burger span:nth-child(1) { top: 0; }
.l-burger span:nth-child(2) { top: 12px; }
.l-burger span:nth-child(3) { top: 24px; }
.l-burger.is-open span:nth-child(1) { top: 12px; transform: rotate(45deg); }
.l-burger.is-open span:nth-child(2) { opacity: 0; }
.l-burger.is-open span:nth-child(3) { top: 12px; transform: rotate(-45deg); }

/* =========================================================
   5. First View
   ========================================================= */
.p-fv {
  background: var(--c-ink);
  position: relative;
}
.p-fv__inner {
  max-width: var(--w-max);
  margin-inline: auto;
  position: relative;
}
.p-fv__media {
  position: relative;
  line-height: 0;
}
/* TOP：左寄せ、画像を大きく（FV高さいっぱい）。右にダーク余白 */
.p-fv--top .p-fv__media img {
  width: 81.4%;   /* 1172/1440 */
  height: auto;
  object-fit: cover;
}
/* 下層ページ：やや狭く */
.p-fv--sub .p-fv__media img { width: 69.4%; }  /* 1000/1440 */

/* TOP のコピー（画像上に重ねる／右下寄り） */
.p-fv__copy {
  position: absolute;
  right: 7%;
  bottom: 20%;
  color: var(--c-white);
  max-width: 620px;
  z-index: 2;
}
.p-fv__copy-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;               /* 帯の上下間 6px */
}
.p-fv__copy-main .line {
  display: inline-block;
  height: 74px;           /* 帯高 74px */
  line-height: 74px;      /* テキストを帯内で縦中央に */
  padding: 0 20px;
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: 56px;        /* フォント 56px */
  letter-spacing: .1em;
  background: var(--c-gold);
  color: var(--c-white);
  white-space: nowrap;
}
.p-fv__copy-sub {
  margin-top: 26px;
  font-size: 17px;
  line-height: 2;
  letter-spacing: .04em;
  color: var(--c-fv-sub);
}

/* 下層ページのFVタイトル（画像右端に重なる位置・縦中央寄り） */
.p-fv__pagetitle {
  position: absolute;
  right: 7%;
  top: 38%;
  transform: translateY(-2px);
  text-align: left;
  color: var(--c-white);
  z-index: 2;
}
.p-fv__pagetitle .ja {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 487px;
  max-width: 100%;
  color: #FFF;
  font-family: var(--f-serif);
  font-size: 56px;
  font-weight: 500;
  line-height: 78px;
  letter-spacing: .04em;
  background: var(--c-gold);
}
.p-fv__pagetitle .en {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 30px;
  color: #FFF;
  font-family: var(--f-serif);
  font-size: 56px;
  font-weight: 500;
  line-height: 78px;
  letter-spacing: .04em;
  background: var(--c-gold);
}
.p-fv__pagetitle p {
  margin-top: 21px;              /* 帯の下 21px */
  padding-right: 21px;          /* 帯の右から 21px 内側に右端 */
  width: 487px;
  max-width: 100%;
  text-align: right;
  color: #EBEBED;
  font-family: var(--f-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: normal;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}

/* =========================================================
   6. Sections – 汎用
   ========================================================= */
.p-section { padding-block: 96px; }
.p-section--tight { padding-block: 72px; }

.p-lead {
  font-size: 26px;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: .04em;
}
.p-lead__note {
  position: relative;
  margin-top: 34px;
  padding-top: 26px;
  font-size: 15px;
  line-height: 2.1;
  color: var(--c-text-soft);
  max-width: 940px;
}
.p-lead__note::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 60px;
  height: 3px;
  background: var(--c-gold);
}
.p-lead__note--plain { padding-top: 0; }
.p-lead__note--plain::before { display: none; }

/* 課題カード 01/02/03 */
.p-issues {
  margin-top: 46px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.p-issue {
  background: #F1EEE7;
  padding: 30px 28px 34px;
}
.p-issue__num {
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: 30px;
  letter-spacing: .1em;
  color: var(--c-gold);
}
.p-issue__title {
  margin-top: 14px;
  font-size: 17px;
  font-weight: 600;
}
.p-issue__desc {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.9;
  color: var(--c-text-soft);
}

/* ターゲット2枚（MEDICAL / EXECUTIVE） */
.p-targets {
  margin-top: 54px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.p-target {
  position: relative;
  box-shadow: 14px 14px 0 var(--c-ink);
}
.p-target__img { line-height: 0; }
.p-target__body {
  background: var(--c-card);
  text-align: center;
  padding: 20px 16px 26px;
}
.p-target__eyebrow {
  font-family: "Montserrat", var(--f-sans);
  font-weight: 500;
  font-size: 18px;
  line-height: normal;
  letter-spacing: .2em;
  color: var(--c-gold);
  text-align: center;
  text-indent: .2em;
}
.p-target__name {
  margin-top: 8px;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: .06em;
}
.p-target__meta {
  margin-top: 8px;
  font-size: 12px;
  color: var(--c-text-soft);
  letter-spacing: .08em;
}
.p-center { text-align: center; margin-top: 56px; }

/* =========================================================
   7. 選ばれる理由（グレー帯）
   ========================================================= */
.p-reason {
  background: var(--c-gray);
  color: var(--c-white);
  padding-block: 84px;
}
.p-reason .c-sectitle { color: var(--c-white); }
.p-reason .c-sectitle::after { background: var(--c-white); }
.p-reason__grid {
  margin-top: 46px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.p-reason__card {
  background: var(--c-gray-card);
  color: var(--c-text);
  padding: 34px 24px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-reason__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.p-reason__icon { width: 34px; height: 34px; flex: 0 0 auto; }
.p-reason__label { font-size: 19px; font-weight: 600; letter-spacing: .04em; }
.p-reason__text {
  margin-top: 22px;
  width: 367px;
  max-width: 100%;
  min-height: 97px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px 20px;
  font-size: 14px;
  line-height: 2;
  color: var(--c-text);
  background: rgba(106, 106, 106, 0.3);   /* #6A6A6A / opacity 0.3 */
}

/* =========================================================
   8. PROCESS（ご利用の流れ）
   ========================================================= */
/* 画像＋グレー帯をひとまとまりにし、その後ろ全体に影 */
.p-process__card {
  margin-top: 44px;
  box-shadow: 16px 16px 0 var(--c-ink);
}
.p-process__banner {
  position: relative;
  line-height: 0;
}
/* 画像下の PROCESS 帯（1240×110 #EEE） */
.p-process__cap {
  width: 100%;
  height: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #EEE;
  line-height: 1.5;
}
.p-process__cap .en {
  font-family: var(--f-sans);
  font-weight: 500;
  letter-spacing: .4em;
  font-size: 13px;
  text-indent: .4em;
  color: var(--c-gold);
}
.p-process__cap .ja {
  display: block;
  margin-top: 6px;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--c-text);
}
.p-steps {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 44px;
  max-width: 900px;
  margin-inline: auto;
}
.p-step {
  background: #DED9CE;
  text-align: center;
  padding: 26px 16px;
  position: relative;
}
.p-step:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -30px; top: 50%;
  transform: translateY(-50%);
  border-left: 12px solid var(--c-gold);
  border-block: 8px solid transparent;
}
.p-step__num {
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .1em;
  color: var(--c-text-soft);
}
.p-step__label { margin-top: 6px; font-size: 16px; font-weight: 600; }

/* =========================================================
   9. 運営会社概要（テーブル）
   ========================================================= */
.p-company { background: var(--c-cream); padding-block: 90px; }
.p-company__inner { max-width: 900px; }
.p-table {
  margin-top: 34px;
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.p-table th, .p-table td {
  border: 1px solid var(--c-line);
  padding: 16px 22px;
  text-align: left;
  vertical-align: middle;
  line-height: 1.9;
}
.p-table th {
  width: 150px;
  background: var(--c-gray-card);
  font-weight: 600;
  white-space: nowrap;
}
.p-table td { background: var(--c-white); }

/* =========================================================
   10. CTA 帯（ダーク box）
   ========================================================= */
.p-cta {
  background: var(--c-white);
  padding-top: 56px;   /* 上セクションとの隙間（白） */
  padding-bottom: 62px; /* フッターまでの隙間（白） */
}
.p-cta__box {
  width: 100%;
  max-width: 1240px;
  min-height: 200px;
  margin-inline: auto;
  background: var(--c-ink);
  color: var(--c-white);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
}
.p-cta__title {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: .08em;
}
.p-cta__btn { margin-top: 26px; }

/* =========================================================
   11. Footer
   ========================================================= */
.l-footer {
  background: var(--c-ink);
  color: var(--c-text-light);
  padding-block: 46px 30px;
}
.l-footer__inner {
  max-width: var(--w-inner);
  margin-inline: auto;
  padding-inline: 24px;
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
.l-footer__brand { display: flex; align-items: center; gap: 20px; }
.l-footer__logo { width: 78px; height: 78px; flex: 0 0 auto; }
.l-footer__logo img { width: 100%; height: 100%; }
.l-footer__name { font-size: 17px; font-weight: 600; color: var(--c-white); letter-spacing: .04em; }
.l-footer__addr { margin-top: 6px; font-size: 12px; line-height: 1.9; color: var(--c-white); }
.l-footer__nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: var(--f-sans);
  font-weight: 500;
  letter-spacing: .16em;
  font-size: 13px;
  text-align: right;
}
.l-footer__nav a { color: var(--c-white); }
.l-footer__nav span { color: var(--c-text-light); }
.l-footer__copy {
  margin-top: 40px;
  text-align: center;
  font-family: var(--f-sans);
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--c-text-light);
}

/* =========================================================
   12. SERVICE ページ固有
   ========================================================= */
.p-flow {
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: stretch;
  gap: 18px;
}
.p-flow__box {
  background: var(--c-cream);
  text-align: center;
  padding: 26px 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-flow__box--dark { background: var(--c-ink); color: var(--c-white); }
.p-flow__box .role { font-size: 20px; font-weight: 600; letter-spacing: .04em; }
.p-flow__box .sub { margin-top: 8px; font-size: 12px; line-height: 1.8; color: var(--c-text-soft); }
.p-flow__box--dark .sub { color: var(--c-white); }
.p-flow__box .tag {
  margin-top: 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-gold);
  letter-spacing: .06em;
}
.p-flow__arrow {
  align-self: center;
  border-left: 12px solid var(--c-gold);
  border-block: 8px solid transparent;
}
.p-flow__note {
  margin-top: 20px;
  text-align: center;
  font-size: 12px;
  color: var(--c-text-soft);
}

.p-forwho {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.p-forwho__card {
  box-shadow: 14px 14px 0 var(--c-ink);
  display: flex;
  flex-direction: column;
}
.p-forwho__img { line-height: 0; }
.p-forwho__img img { width: 100%; }
.p-forwho__body {
  background: var(--c-gray-card);
  text-align: center;
  width: 100%;
  flex: 1 1 auto;      /* カード下端までグレーで埋める */
  min-height: 164px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 22px 20px 28px;
}
.p-forwho__en {
  font-family: "Montserrat", var(--f-sans);
  font-weight: 500;
  font-size: 18px;
  line-height: normal;
  letter-spacing: .2em;
  color: var(--c-gold);
  text-align: center;
  text-indent: .2em;
}
.p-forwho__ja { margin-top: 8px; font-size: 21px; font-weight: 600; }
.p-forwho__desc { margin-top: 10px; font-size: 13px; line-height: 1.9; color: var(--c-text-soft); }

/* 対応領域（クリーム帯） */
.p-fields { background: var(--c-cream); padding-block: 80px; }
.p-fields__head { text-align: center; }
.p-fields__head .c-sectitle { display: inline-block; }
.p-fields__head .c-sectitle::after {
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
}
.p-fields__grid {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 360px));
  gap: 24px;
  justify-content: center;
}
.p-field {
  background: var(--c-white);
  padding: 28px 30px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-field__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.p-field__icon { width: 34px; height: 34px; flex: 0 0 auto; }
.p-field__titles { display: flex; flex-direction: column; align-items: flex-start; }
.p-field__name {
  color: #6A6A6A;
  font-family: "Noto Sans JP", var(--f-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 1px;
  text-align: left;
}
.p-field__meta {
  color: #6B6B70;
  text-align: left;
  font-family: "Noto Sans JP", var(--f-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 1px;
}
.p-field__text {
  margin-top: 18px;
  width: 367px;
  max-width: 100%;
  min-height: 97px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px 20px;
  font-size: 14px;
  line-height: 1.9;
  color: var(--c-text);
  background: #DED9CE;
}
.p-fields__note { margin-top: 28px; text-align: center; font-size: 12px; color: var(--c-text-soft); }

/* 紹介会社さまへ（ダーク帯） */
.p-agency { background: var(--c-white); }
.p-agency__banner {
  background: var(--c-ink);
  color: var(--c-white);
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-agency .c-sectitle { color: var(--c-white); }
.p-agency .c-sectitle::after { background: var(--c-white); }
.p-agency__lead {
  margin-top: 24px;
  font-size: 15px;
  line-height: 2.1;
  color: #D9D9DE;
}
.p-agency__body { background: var(--c-white); padding-block: 56px 80px; }
.p-agency__grid {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.p-agency__card { background: var(--c-cream); color: var(--c-text); text-align: center; padding: 28px 22px; }
.p-agency__card .t { font-size: 17px; font-weight: 600; }
.p-agency__card .d { margin-top: 10px; font-size: 12px; line-height: 1.9; color: var(--c-text-soft); }
.p-agency__center { text-align: center; margin-top: 44px; }

/* FAQ */
.p-faq { padding-block: 90px; background: #F1EEE7; }
.p-faq__list { margin-top: 34px; }
.p-faq__item { border-bottom: 1px solid var(--c-line); padding: 24px 4px; }
.p-faq__q { display: flex; gap: 16px; font-size: 17px; font-weight: 600; align-items: baseline; }
.p-faq__q .mark { font-family: var(--f-sans); color: var(--c-gold); font-size: 18px; }
.p-faq__a { margin-top: 10px; padding-left: 30px; font-size: 14px; line-height: 1.9; color: var(--c-text-soft); }

/* =========================================================
   13. PRIVACY POLICY ページ固有
   ========================================================= */
.p-policy__intro { font-size: 15px; line-height: 2.1; padding-bottom: 30px; border-bottom: 1px solid var(--c-line); }
.p-policy__list { margin-top: 10px; }
.p-policy__item { display: grid; grid-template-columns: 60px 1fr; gap: 24px; padding: 32px 0; border-bottom: 1px solid var(--c-line); }
.p-policy__num { font-family: var(--f-sans); font-weight: 500; font-size: 15px; color: var(--c-gold); letter-spacing: .08em; padding-top: 4px; }
.p-policy__title { font-size: 19px; font-weight: 600; letter-spacing: .04em; }
.p-policy__text { margin-top: 12px; font-size: 14px; line-height: 2; color: var(--c-text); }
.p-policy__link { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; color: inherit; }
.p-policy__link:hover { color: var(--c-gold); opacity: 1; }
.p-policy__contact { padding: 34px 0 0; }
.p-policy__contact .p-policy__title { padding-left: 0; }
.p-policy__contact-body { margin-top: 12px; font-size: 14px; line-height: 2; }

/* =========================================================
   14. Responsive
   ========================================================= */

/* --- Tablet (〜1024px) --- */
@media (max-width: 1024px) {
  .l-header__inner { padding-inline: 28px; height: 128px; }
  .l-header__inner::after { left: 156px; right: 28px; bottom: 28px; }
  .l-header__logo { width: 96px; height: 96px; }
  .l-gnav { gap: 30px; }

  .p-fv--top .p-fv__media img,
  .p-fv--sub .p-fv__media img { width: 82%; }
  .p-fv__copy-main .line { height: 60px; line-height: 60px; font-size: 42px; }
  .p-fv__copy-sub { font-size: 15px; }
  .p-fv__pagetitle .en,
  .p-fv__pagetitle .ja { font-size: 27px; }

  .p-lead { font-size: 22px; }
  .p-reason__grid,
  .p-agency__grid { gap: 18px; }
  .p-target,
  .p-forwho__card { box-shadow: 10px 10px 0 var(--c-ink); }
}

/* --- Smartphone (〜768px) --- */
@media (max-width: 768px) {
  body { font-size: 15px; }

  /* Header → drawer */
  .l-header__inner { height: 72px; padding-inline: 18px; }
  .l-header__inner::after { display: none; } /* SPは罫線を消す */
  .l-header__logo { width: 56px; height: 56px; }
  .l-burger { display: block; margin-left: auto; }

  .l-header__nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(78vw, 320px);
    background: var(--c-ink);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 34px;
    padding: 80px 40px;
    transform: translateX(100%);
    transition: transform .4s var(--ease);
    margin-left: 0;
  }
  .l-header__nav.is-open { transform: translateX(0); }
  .l-gnav { flex-direction: column; align-items: flex-start; gap: 28px; }
  .l-gnav a { font-size: 17px; }
  .l-header__cta { align-self: flex-start; }

  /* FV */
  .p-fv__inner { display: flex; flex-direction: column; }
  .p-fv--top .p-fv__media img,
  .p-fv--sub .p-fv__media img { width: 100%; }
  .p-fv__copy {
    position: static;
    max-width: none;
    padding: 26px 20px 34px;
    background: var(--c-ink);
  }
  .p-fv__copy-main .line {
    height: auto;
    line-height: 1.5;
    font-size: 28px;
    letter-spacing: .04em;
    padding: 6px 14px;
  }
  .p-fv__copy-sub { font-size: 14px; }
  .p-fv__pagetitle {
    position: static;
    padding: 24px 20px 30px;
    background: var(--c-ink);
  }
  .p-fv__pagetitle .en,
  .p-fv__pagetitle .ja { font-size: 22px; }

  /* Sections */
  .p-section { padding-block: 60px; }
  .p-company, .p-reason, .p-fields, .p-agency, .p-faq { padding-block: 60px; }
  .c-sectitle { font-size: 23px; }
  .p-lead { font-size: 19px; }

  /* Grids → 1 col */
  .p-issues,
  .p-targets,
  .p-reason__grid,
  .p-agency__grid,
  .p-fields__grid,
  .p-forwho { grid-template-columns: 1fr; }
  .p-targets, .p-forwho { gap: 28px; }
  .p-target, .p-forwho__card { box-shadow: 8px 8px 0 var(--c-ink); }

  /* Steps / Flow → 縦積み、矢印を下向きに */
  .p-steps { grid-template-columns: 1fr; gap: 34px; max-width: 360px; }
  .p-step:not(:last-child)::after {
    right: 50%; top: auto; bottom: -24px;
    transform: translateX(50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 12px solid var(--c-gold);
    border-bottom: 0;
  }
  .p-flow { grid-template-columns: 1fr; }
  .p-flow__arrow {
    justify-self: center;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 12px solid var(--c-gold);
    border-bottom: 0;
  }

  /* Table → カード化 */
  .p-table, .p-table tbody, .p-table tr, .p-table th, .p-table td { display: block; width: 100%; }
  .p-table tr { margin-bottom: 14px; border: 1px solid var(--c-line); }
  .p-table th { width: 100%; border: 0; border-bottom: 1px solid var(--c-line); }
  .p-table td { border: 0; }

  /* Policy */
  .p-policy__item { grid-template-columns: 1fr; gap: 6px; }

  /* Footer */
  .l-footer__inner { flex-direction: column; gap: 22px; align-items: center; text-align: center; }
  .l-footer__brand { flex-direction: column; align-items: center; gap: 14px; text-align: center; }
  .l-footer__nav { align-items: center; text-align: center; }
  /* メニュー(TOP/SERVICE/PRIVACY POLICY)は非表示、準備中の1行のみ中央表示 */
  .l-footer__nav a { display: none; }
  .l-footer__nav span { color: var(--c-text-light); }

  .p-cta__title { font-size: 21px; }
}

/* ===== SP時のカード内テキスト帯の左右バランス調整 ===== */
@media (max-width: 768px) {
  /* 「選ばれる理由」カードの半透明帯：固定367pxをやめてカード幅に合わせる */
  .p-reason__text {
    width: 100%;
  }
  /* SERVICEページ：対応領域カードの説明帯も同様に */
  .p-field__text {
    width: 100%;
  }
  /* SERVICEページ：FOR CANDIDATES / FOR AGENCIES の本文帯も同様に */
  .p-forwho__body {
    width: 100%;
  }
}