@charset "UTF-8";
/* ==========================================================================
   株式会社ロングファーマシー 採用サイト
   style.scss — エントリーポイント
   ※ビルドは VS Code 拡張「Live Sass Compiler」（Glenn Marks版 / Dart Sass）
     出力先: assets/css/style.css
   ※CSSは直接編集せず、必ずSCSSを編集すること
   ========================================================================== */
/* foundation ------------------------------------------------------------- */
/* ==========================================================================
   リセットCSS
   ※ここで初期化した値（色・font-family・margin等）は
     個別のパーシャルで再指定しないこと
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd,
dt,
ul,
ol,
li,
fieldset,
legend {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
picture,
video,
svg,
iframe {
  display: block;
  max-width: 100%;
  height: auto;
  border-style: none;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
  background-color: transparent;
  border: none;
  border-radius: 0;
  appearance: none;
}

button {
  cursor: pointer;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

th,
td {
  padding: 0;
  text-align: left;
  vertical-align: top;
  font-weight: inherit;
}

address {
  font-style: normal;
}

dfn,
cite,
em,
i {
  font-style: normal;
}

main {
  display: block;
}

/* 動きを減らす設定のユーザーにはアニメーションを無効化 */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
/* ==========================================================================
   global 一括読み込み用
   各パーシャルの先頭で @use "../global" as *; と書けば
   変数・関数・mixin がすべて使えるようになる
   ========================================================================== */
/* ==========================================================================
   関数
   ========================================================================== */
/* --------------------------------------------------------------
   rem()
   px値をremに変換する。単位はremを使用するルールのため、
   数値はデザインデータのpxのまま rem(24) の形で記述する。
   基準は html { font-size: 100%; }（= 16px）

   単位なし（24）・px付き（24px）のどちらを渡しても正しく変換する。
   rem・em・% など変換不要な単位はそのまま返す。
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   lh()
   デザインデータの「フォントサイズ / 行送り」から line-height を算出する
   例: lh(16, 28) → 1.75
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   ls()
   デザインデータのトラッキング（1/1000em）を em に変換する
   例: ls(40) → 0.04em
   -------------------------------------------------------------- */
/* ==========================================================================
   変数定義｜採用サイト
   ※色・フォント・余白・幅はすべてここで管理する。
     個別ファイルに直接値を書かないこと（修正時に複数箇所を触らないため）

   【重要】色は「ブランド色」と「濃色（AA版）」の2種を使い分ける。
   仕様書のブランド色は明度が高く、白文字を載せると
   コントラスト比が WCAG AA（通常文字 4.5:1／大文字 3:1）に届かないため、
   文字がのる面・文字そのものには "-strong" を使う。
     例）#F0883E に白文字 = 2.53:1（AA未達）
         #B3520E に白文字 = 5.08:1（AA達成）
   ブランド色は装飾シェイプ・淡い面・細い罫線・マーカーに使用する。
   ========================================================================== */
/* --------------------------------------------------------------
   カラー
   -------------------------------------------------------------- */
/* プライマリ（サンライズオレンジ） */
/* セカンダリ（空色ブルー｜コーポレートと共通） */
/* CTA（エントリー＝本命／見学＝低ハードル） */
/* ベース・テキスト */
/* 経歴ラベルの色（スタッフ紹介） */
/* --------------------------------------------------------------
   フォント
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   レイアウト
   採用サイトは写真を大きく見せるため、コンテンツ幅をやや広めに取る
   -------------------------------------------------------------- */
/* セクション余白（装飾に関係のない余白は上側に付けるため padding-top / margin-top で使用） */
/* 角丸・シャドウ */
/* トランジション */
/* --------------------------------------------------------------
   ブレイクポイント（SPファースト設計。375px〜対応／分岐は 768・1024）
   -------------------------------------------------------------- */
/* ==========================================================================
   global 一括読み込み用
   各パーシャルの先頭で @use "../global" as *; と書けば
   変数・関数・mixin がすべて使えるようになる
   ========================================================================== */
/* ==========================================================================
   mixin｜採用サイト
   ========================================================================== */
/* --------------------------------------------------------------
   mq() メディアクエリ
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   inner() コンテンツ幅
   要素は必ず .inner の中に入れ、幅はこのmixinで指定する
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   section-space() セクション上下余白
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   img-wrap() 画像ラッパー
   imgに直接サイズ指定をしないため、必ずラッパー側で比率と幅を制御する
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   arch() アーチ型の写真マスク（採用サイトのあしらい）
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   hover() マウス操作可能な環境のみhoverを適用
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   heading-en() セクションの英字ラベル（Poppins）
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   marker() 手書き風の下線あしらい（少量だけ使う）
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   line-clamp() 指定行数でテキストを省略
   -------------------------------------------------------------- */
/* --------------------------------------------------------------
   focus-visible() フォーカスリング（アクセシビリティ）
   -------------------------------------------------------------- */
/* ==========================================================================
   ベース設定｜採用サイト
   ※基準となる文字色・フォント・行間はここで一括指定する
   ========================================================================== */
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8125;
  letter-spacing: 0.02em;
  color: #3a3532;
  background-color: #ffffff;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 0.9375rem;
    /* SP下部固定バーの高さ分だけコンテンツ末尾に余白を確保 */
    padding-bottom: 4rem;
  }
}

/* ドロワー展開中のスクロールロック */
body.is-fixed {
  overflow: hidden;
}

h1,
h2,
h3,
h4 {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  line-height: 1.625;
  color: #43342a;
}

a {
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
a:focus-visible {
  outline: 0.1875rem solid #b6501b;
  outline-offset: 0.1875rem;
}

button:focus-visible {
  outline: 0.1875rem solid #b6501b;
  outline-offset: 0.1875rem;
}

/* 画像はラッパー側で幅を制御するため、img自体は流し込みのみ */
img {
  width: 100%;
}

/* スクリーンリーダー専用テキスト */
.sr-only {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  margin: -0.0625rem;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* layout ---------------------------------------------------------------- */
/* ==========================================================================
   共通コンポーネント｜採用サイト
   ========================================================================== */
/* --------------------------------------------------------------
   .inner コンテンツ幅
   -------------------------------------------------------------- */
.inner {
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.inner--wide {
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .inner--wide {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.inner--narrow {
  width: 100%;
  max-width: 57.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .inner--narrow {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

/* --------------------------------------------------------------
   .sec セクション共通
   背景色・帯・装飾シェイプはsection側、幅は.inner側で持つ
   -------------------------------------------------------------- */
.sec {
  position: relative;
  overflow: hidden;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .sec {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.sec--sm {
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
}
@media screen and (max-width: 767px) {
  .sec--sm {
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
  }
}

.sec--base {
  background-color: #fbf6ef;
}

.sec--pale {
  background-color: #fdf1e8;
}

.sec--dark {
  color: #ffffff;
  background-color: #43342a;
}

.sec__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .sec__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.sec__inner--wide {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .sec__inner--wide {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.sec__inner--narrow {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 57.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .sec__inner--narrow {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.sec__body {
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .sec__body {
    margin-top: 2rem;
  }
}

.sec__deco-1 {
  top: -8.75rem;
  right: -9.375rem;
  width: 25rem;
  height: 25rem;
}

.sec__deco-2 {
  bottom: -9.375rem;
  left: -8.125rem;
  width: 20rem;
  height: 20rem;
}

/* --------------------------------------------------------------
   .deco 装飾シェイプ（白い余白に置く色のついたシェイプ）
   -------------------------------------------------------------- */
.deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.deco__circle {
  border-radius: 50%;
}

.deco__blob {
  border-radius: 58% 42% 47% 53%/44% 51% 49% 56%;
}

.deco--primary {
  background-color: rgba(240, 136, 62, 0.14);
}

.deco--secondary {
  background-color: rgba(62, 143, 196, 0.12);
}

.deco--visit {
  background-color: rgba(111, 174, 143, 0.16);
}

.deco--line {
  border: 0.0625rem solid rgba(240, 136, 62, 0.3);
  background-color: transparent;
}

/* --------------------------------------------------------------
   .sec-head セクション見出し
   採用サイトは見出しを大きく取る
   -------------------------------------------------------------- */
.sec-head--center {
  text-align: center;
}

.sec-head__en {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .sec-head__en {
    font-size: 0.75rem;
  }
}
.sec-head__en::before {
  flex-shrink: 0;
  width: 2rem;
  height: 0.125rem;
  background-color: currentColor;
  border-radius: 62.4375rem;
  content: "";
}

.sec-head--center .sec-head__en::after {
  flex-shrink: 0;
  width: 2rem;
  height: 0.125rem;
  background-color: currentColor;
  border-radius: 62.4375rem;
  content: "";
}

.sec-head__title {
  margin-top: 1.125rem;
  font-size: 2.75rem;
  line-height: 1.5454545455;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 1024px) {
  .sec-head__title {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  .sec-head__title {
    margin-top: 0.75rem;
    font-size: 1.625rem;
    line-height: 1.6153846154;
  }
}

.sec-head__title--sm {
  font-size: 2.125rem;
  line-height: 1.5882352941;
}
@media screen and (max-width: 767px) {
  .sec-head__title--sm {
    font-size: 1.4375rem;
    line-height: 1.652173913;
  }
}

.sec-head__lead {
  margin-top: 1.75rem;
  font-size: 1.0625rem;
  line-height: 2;
  /* 最後の行に1〜2文字だけ残る「取り残し」を避ける（対応ブラウザのみ） */
  text-wrap: pretty;
}
@media screen and (max-width: 767px) {
  .sec-head__lead {
    margin-top: 1rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

/* .sec-head--center は入れ物側にも本文側にも付けられるので、
   同じ要素に併記された場合（例: <p class="sec-head__lead sec-head--center">）も
   1行の文字数が増えすぎないよう幅を絞る */
.sec-head--center .sec-head__lead,
.sec-head__lead.sec-head--center {
  max-width: 50rem;
  margin-right: auto;
  margin-left: auto;
}

/* 暗い面での色調整 */
.sec--dark .sec-head__title,
.sec--dark .sec-head__lead {
  color: #ffffff;
}

.sec--dark .sec-head__en {
  color: #ffffff;
}

/* --------------------------------------------------------------
   .btn ボタン
   エントリー（本命）と見学（低ハードル）を色で区別する
   -------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-width: 18.75rem;
  min-height: 4.5rem;
  padding: 1rem 2.25rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  border-radius: 62.4375rem;
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .btn {
    min-width: 100%;
    min-height: 3.875rem;
    font-size: 1rem;
  }
}

.btn__icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* エントリー（本命CTA） */
.btn--entry {
  color: #ffffff;
  background-color: #b6501b;
  box-shadow: 0 0.5rem 1.25rem rgba(182, 80, 27, 0.3);
}
@media (hover: hover) {
  .btn--entry:hover {
    background-color: #8f3e13;
    transform: translateY(-0.1875rem);
  }
  .btn--entry:hover .btn__icon {
    transform: translateX(0.25rem);
  }
}

/* 見学（低ハードルCTA） */
.btn--visit {
  color: #ffffff;
  background-color: #44795f;
  box-shadow: 0 0.5rem 1.25rem rgba(68, 121, 95, 0.28);
}
@media (hover: hover) {
  .btn--visit:hover {
    background-color: #345c48;
    transform: translateY(-0.1875rem);
  }
  .btn--visit:hover .btn__icon {
    transform: translateX(0.25rem);
  }
}

.btn--primary {
  color: #ffffff;
  background-color: #b3520e;
}
@media (hover: hover) {
  .btn--primary:hover {
    background-color: #8a3f09;
    transform: translateY(-0.1875rem);
  }
  .btn--primary:hover .btn__icon {
    transform: translateX(0.25rem);
  }
}

.btn--outline {
  color: #43342a;
  background-color: #ffffff;
  box-shadow: inset 0 0 0 0.125rem #f0883e;
}
@media (hover: hover) {
  .btn--outline:hover {
    color: #ffffff;
    background-color: #b3520e;
    box-shadow: inset 0 0 0 0.125rem #b3520e;
  }
  .btn--outline:hover .btn__icon {
    transform: translateX(0.25rem);
  }
}

.btn--white {
  color: #43342a;
  background-color: #ffffff;
}
@media (hover: hover) {
  .btn--white:hover {
    color: #b3520e;
    transform: translateY(-0.1875rem);
  }
  .btn--white:hover .btn__icon {
    transform: translateX(0.25rem);
  }
}

.btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}
@media screen and (max-width: 767px) {
  .btn-group {
    flex-direction: column;
    gap: 0.75rem;
  }
}

.btn-group--center {
  justify-content: center;
}

/* --------------------------------------------------------------
   .link-text テキストリンク（矢印付き）
   -------------------------------------------------------------- */
.link-text {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #b3520e;
}
@media (hover: hover) {
  .link-text:hover {
    color: #8a3f09;
  }
  .link-text:hover .link-text__icon {
    transform: translateX(0.25rem);
  }
}

.link-text__icon {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --------------------------------------------------------------
   .tel 電話番号
   -------------------------------------------------------------- */
.tel {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.2;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .tel {
    font-size: 1.6875rem;
  }
}
@media (hover: hover) {
  .tel:hover {
    opacity: 0.75;
  }
}

.tel__icon {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  fill: currentColor;
}
@media screen and (max-width: 767px) {
  .tel__icon {
    width: 1.5rem;
    height: 1.5rem;
  }
}

.tel__note {
  margin-top: 0.375rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  color: #655f59;
}

/* --------------------------------------------------------------
   .tag 経歴ラベル（未経験入社・ブランクあり・子育て中 など）
   -------------------------------------------------------------- */
.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tag {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.875rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.6;
  color: #ffffff;
  background-color: #655f59;
  border-radius: 62.4375rem;
}

.tag--rookie {
  background-color: #b3520e;
}

.tag--blank {
  background-color: #3174a1;
}

.tag--parenting {
  background-color: #44795f;
}

/* --------------------------------------------------------------
   .marker 手書き風の下線あしらい
   -------------------------------------------------------------- */
.marker {
  position: relative;
  z-index: 1;
}
.marker::after {
  position: absolute;
  right: -0.25rem;
  bottom: 0.125rem;
  left: -0.25rem;
  z-index: -1;
  height: 0.875rem;
  background-color: rgba(240, 136, 62, 0.34);
  border-radius: 62.4375rem;
  content: "";
}

.marker--blue {
  position: relative;
  z-index: 1;
}
.marker--blue::after {
  position: absolute;
  right: -0.25rem;
  bottom: 0.125rem;
  left: -0.25rem;
  z-index: -1;
  height: 0.875rem;
  background-color: rgba(62, 143, 196, 0.3);
  border-radius: 62.4375rem;
  content: "";
}

/* --------------------------------------------------------------
   .num-badge 連番バッジ
   -------------------------------------------------------------- */
.num-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  font-family: "Poppins", sans-serif;
  font-size: 1.4375rem;
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .num-badge {
    width: 3.25rem;
    height: 3.25rem;
    font-size: 1.1875rem;
  }
}

/* --------------------------------------------------------------
   表示切り替えユーティリティ
   -------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .u-pc-only {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}

/* --------------------------------------------------------------
   .phrase 文節（意味のかたまり）で折り返す

   長い一文を <span class="phrase"> で区切っておくと、
   PCではその区切りより内側で改行されなくなり、
   「だからこ／そ、」のような読みにくい折り返しを防げる。
   画面幅に応じて改行位置は自動で変わるので、<br> のような
   固定の改行より安全。SPは1行に入る文字数が少ないため、
   無理に区切ると行末が大きく余ってしまうので通常の折り返しに戻す。

   ※ span どうしの間に改行や空白を入れると余分な隙間が出るので、
     HTMLでは必ず続けて書く（1行で書く）
   -------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .phrase {
    display: inline-block;
  }
}

/* --------------------------------------------------------------
   スクロール出現アニメーション
   JSで .is-inview を付与する（IntersectionObserver）
   -------------------------------------------------------------- */
[data-anim] {
  opacity: 0;
  transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--anim-delay, 0s);
  will-change: opacity, transform;
}

[data-anim=up] {
  transform: translateY(3rem);
}

[data-anim=fade] {
  transform: none;
}

[data-anim=left] {
  transform: translateX(-3rem);
}
@media screen and (max-width: 767px) {
  [data-anim=left] {
    transform: translateY(2.5rem);
  }
}

[data-anim=right] {
  transform: translateX(3rem);
}
@media screen and (max-width: 767px) {
  [data-anim=right] {
    transform: translateY(2.5rem);
  }
}

[data-anim=scale] {
  transform: scale(0.94);
}

/* clipのみ clip-path を使う（他のtypeに掛けるとはみ出した装飾が切れるため） */
[data-anim=clip] {
  opacity: 1;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--anim-delay, 0s);
}

[data-anim].is-inview {
  opacity: 1;
  transform: none;
}

[data-anim=clip].is-inview {
  clip-path: inset(0 0 0 0);
}

/* --------------------------------------------------------------
   .check 要確認・要取材マーカー
   確定後は class="check" ごと削除する（"check" で全文検索すれば洗い出せる）
   -------------------------------------------------------------- */
.check {
  display: inline-block;
  padding: 0.0625rem 0.5rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.7;
  color: #b3520e;
  background-color: #fdf1e8;
  border: 0.0625rem dashed #f0883e;
  border-radius: 0.25rem;
}

/* --------------------------------------------------------------
   .logo-lockup ロゴ（マーク＋社名）
   社名は画像ではなくテキストで出しているので、拡大しても文字がぼけない
   -------------------------------------------------------------- */
.logo-lockup {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.logo-lockup__mark {
  flex-shrink: 0;
  display: block;
  width: 2.5rem;
}
@media screen and (max-width: 1024px) {
  .logo-lockup__mark {
    width: 2.125rem;
  }
}

.logo-lockup__mark > img {
  display: block;
  width: 100%;
  height: auto;
}

/* いただいたロゴと同じ組み方（「株式会社」を上に小さく、社名を大きく） */
.logo-lockup__text {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
  white-space: nowrap;
  color: #43342a;
}
@media screen and (max-width: 1024px) {
  .logo-lockup__text {
    font-size: 1.0625rem;
  }
}
@media screen and (max-width: 767px) {
  .logo-lockup__text {
    font-size: 0.9375rem;
    letter-spacing: 0;
  }
}

.logo-lockup__corp {
  display: block;
  font-size: 0.55em;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* フッターなど濃色の面にのせる場合 */
.logo-lockup--white .logo-lockup__text {
  color: #ffffff;
}

/* ==========================================================================
   下層ページ共通パーツ｜採用サイト
   ※複数ページで使い回す部品はすべてここに置く
   ========================================================================== */
/* --------------------------------------------------------------
   .page-head 下層ページのヒーロー
   写真を大きく使うため、テキストの下に横長の写真を敷く構成
   -------------------------------------------------------------- */
.page-head {
  position: relative;
  overflow: hidden;
  padding-top: 10rem;
  padding-bottom: 3rem;
  background-color: #fbf6ef;
}
@media screen and (max-width: 1024px) {
  .page-head {
    padding-top: 6.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page-head {
    padding-top: 5.75rem;
    padding-bottom: 1.75rem;
  }
}

.page-head__deco-1 {
  top: -10.625rem;
  right: -8.125rem;
  width: 27.5rem;
  height: 27.5rem;
  background-color: rgba(240, 136, 62, 0.14);
}
@media screen and (max-width: 767px) {
  .page-head__deco-1 {
    top: -8.125rem;
    right: -9.375rem;
    width: 18.75rem;
    height: 18.75rem;
  }
}

.page-head__deco-2 {
  bottom: -9.375rem;
  left: -6.25rem;
  width: 17.5rem;
  height: 17.5rem;
  background-color: rgba(111, 174, 143, 0.14);
}
@media screen and (max-width: 767px) {
  .page-head__deco-2 {
    display: none;
  }
}

.page-head__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .page-head__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.page-head__en {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .page-head__en {
    font-size: 0.75rem;
  }
}
.page-head__en::before {
  flex-shrink: 0;
  width: 2rem;
  height: 0.125rem;
  background-color: currentColor;
  border-radius: 62.4375rem;
  content: "";
}

.page-head__title {
  margin-top: 1rem;
  font-size: 2.875rem;
  line-height: 1.5217391304;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 1024px) {
  .page-head__title {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page-head__title {
    margin-top: 0.625rem;
    font-size: 1.6875rem;
    line-height: 1.6296296296;
  }
}

.page-head__sub {
  margin-top: 0.875rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.7647058824;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .page-head__sub {
    font-size: 0.9375rem;
  }
}

/* ページヘッダー直下の大きな写真 */
.page-head__photo {
  position: relative;
  z-index: 1;
  margin-top: 3rem;
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .page-head__photo {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page-head__photo {
    margin-top: 1.75rem;
  }
}

.page-head__photo-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 21/8;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.page-head__photo-img > img,
.page-head__photo-img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .page-head__photo-img {
    aspect-ratio: 16/10;
  }
}

/* --------------------------------------------------------------
   .breadcrumb パンくず
   -------------------------------------------------------------- */
.breadcrumb {
  padding-top: 1rem;
  padding-bottom: 1rem;
  background-color: #ffffff;
}

.breadcrumb--offset {
  padding-top: 7rem;
}
@media screen and (max-width: 1024px) {
  .breadcrumb--offset {
    padding-top: 5rem;
  }
}

.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.625rem;
  font-size: 0.8125rem;
  color: #655f59;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .breadcrumb__list {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.breadcrumb__item:not(:first-child)::before {
  width: 0.375rem;
  height: 0.375rem;
  border-top: 0.0625rem solid currentColor;
  border-right: 0.0625rem solid currentColor;
  content: "";
  transform: rotate(45deg);
}

@media (hover: hover) {
  .breadcrumb__link:hover {
    color: #b3520e;
    text-decoration: underline;
  }
}

/* --------------------------------------------------------------
   .photo-band 全幅の大きな写真（セクションの区切りに使う）
   -------------------------------------------------------------- */
.photo-band {
  position: relative;
  overflow: hidden;
}

.photo-band__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 24/7;
  border-radius: 0;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.photo-band__img > img,
.photo-band__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .photo-band__img {
    aspect-ratio: 16/10;
  }
}

.photo-band__copy {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  z-index: 1;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.55;
  text-align: center;
  color: #ffffff;
  text-shadow: 0 0.125rem 1.25rem rgba(67, 52, 42, 0.6);
  transform: translateY(-50%);
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .photo-band__copy {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .photo-band__copy {
    font-size: 1.4375rem;
    line-height: 1.652173913;
  }
}

/* --------------------------------------------------------------
   .txtimg 写真＋テキストの2カラム（写真を大きく取る）
   -------------------------------------------------------------- */
.txtimg {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 4rem;
}
@media screen and (max-width: 1024px) {
  .txtimg {
    gap: 2.5rem;
  }
}
@media screen and (max-width: 767px) {
  .txtimg {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
}

/* 写真を左に置く */
.txtimg--reverse .txtimg__visual {
  order: -1;
}
@media screen and (max-width: 767px) {
  .txtimg--reverse .txtimg__visual {
    order: 0;
  }
}

/* SPでは常に写真を先に出す */
.txtimg__visual {
  position: relative;
}
@media screen and (max-width: 767px) {
  .txtimg__visual {
    order: -1;
  }
}

.txtimg__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.txtimg__img > img,
.txtimg__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* アーチ型マスク */
.txtimg__img--arch {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/4.4;
  border-radius: 0;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.txtimg__img--arch > img,
.txtimg__img--arch > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.txtimg__img--arch {
  border-radius: 15rem 15rem 1.75rem 1.75rem;
}
@media screen and (max-width: 767px) {
  .txtimg__img--arch {
    aspect-ratio: 4/4;
    border-radius: 10rem 10rem 1.75rem 1.75rem;
  }
}

.txtimg__badge {
  position: absolute;
  right: -1rem;
  bottom: -1.25rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 8.75rem;
  height: 8.75rem;
  padding: 0.75rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 50%;
  box-shadow: 0 0.5rem 1.375rem rgba(179, 82, 14, 0.3);
}
@media screen and (max-width: 767px) {
  .txtimg__badge {
    right: -0.375rem;
    bottom: -0.875rem;
    width: 6rem;
    height: 6rem;
    font-size: 0.6875rem;
  }
}

.txtimg__title {
  font-size: 2.125rem;
  line-height: 1.5882352941;
}
@media screen and (max-width: 1024px) {
  .txtimg__title {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .txtimg__title {
    font-size: 1.375rem;
    line-height: 1.6363636364;
  }
}

.txtimg__text {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .txtimg__text {
    margin-top: 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}
.txtimg__text > p + p {
  margin-top: 1.25rem;
}

.txtimg__btn {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .txtimg__btn {
    margin-top: 1.5rem;
  }
}

/* --------------------------------------------------------------
   .merit 働く魅力（番号＋写真つきカード）
   -------------------------------------------------------------- */
.merit__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem 2.5rem;
}
@media screen and (max-width: 767px) {
  .merit__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }
}

.merit__item {
  position: relative;
}

.merit__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/10;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.merit__img > img,
.merit__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.merit__num {
  position: absolute;
  top: -1rem;
  left: -0.75rem;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .merit__num {
    top: -0.75rem;
    left: -0.375rem;
  }
}

.merit__title {
  margin-top: 1.5rem;
  font-size: 1.5625rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .merit__title {
    margin-top: 1rem;
    font-size: 1.25rem;
    line-height: 1.6;
  }
}

.merit__text {
  margin-top: 0.875rem;
  font-size: 1rem;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .merit__text {
    margin-top: 0.625rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

/* --------------------------------------------------------------
   .stat 数字で見る
   -------------------------------------------------------------- */
.stat__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}
@media screen and (max-width: 1024px) {
  .stat__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .stat__list {
    gap: 1rem;
  }
}

.stat__item {
  padding: 2rem 1.25rem;
  text-align: center;
  background-color: #ffffff;
  border-radius: 1.75rem;
  box-shadow: 0 0.375rem 1.75rem rgba(67, 52, 42, 0.09);
}
@media screen and (max-width: 767px) {
  .stat__item {
    padding: 1.25rem 0.75rem;
  }
}

.stat__label {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.6;
  color: #655f59;
}
@media screen and (max-width: 767px) {
  .stat__label {
    font-size: 0.8125rem;
  }
}

.stat__value {
  margin-top: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 3.25rem;
  font-weight: 700;
  line-height: 1;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .stat__value {
    font-size: 2.25rem;
  }
}

.stat__unit {
  margin-left: 0.25rem;
  font-size: 1.3125rem;
}
@media screen and (max-width: 767px) {
  .stat__unit {
    font-size: 1rem;
  }
}

.stat__note {
  margin-top: 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  color: #655f59;
}

/* --------------------------------------------------------------
   .voice スタッフの声（写真大きめの横並びカード）
   -------------------------------------------------------------- */
.voice__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
@media screen and (max-width: 1024px) {
  .voice__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .voice__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
}

.voice__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
@media (hover: hover) {
  .voice__card:hover .voice__img > img {
    transform: scale(1.06);
  }
  .voice__card:hover .voice__copy {
    color: #b3520e;
  }
}

.voice__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/4.6;
  border-radius: 0;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.voice__img > img,
.voice__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.voice__img {
  border-radius: 11.25rem 11.25rem 1.75rem 1.75rem;
}
.voice__img > img {
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .voice__img {
    aspect-ratio: 4/4;
    border-radius: 9.375rem 9.375rem 1.75rem 1.75rem;
  }
}

.voice__meta {
  margin-top: 1.25rem;
  font-size: 0.875rem;
  color: #655f59;
}
@media screen and (max-width: 767px) {
  .voice__meta {
    margin-top: 0.875rem;
  }
}

.voice__name {
  margin-top: 0.25rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
  color: #43342a;
}
@media screen and (max-width: 767px) {
  .voice__name {
    font-size: 1.125rem;
  }
}

.voice__copy {
  margin-top: 0.875rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.7894736842;
  color: #b3520e;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .voice__copy {
    margin-top: 0.625rem;
    font-size: 1.0625rem;
  }
}

.voice__tags {
  margin-top: 0.875rem;
}

/* --------------------------------------------------------------
   .job-card 募集職種カード
   -------------------------------------------------------------- */
.job-card__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem;
}
@media screen and (max-width: 767px) {
  .job-card__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }
}

.job-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem;
  background-color: #ffffff;
  border-radius: 1.75rem;
  box-shadow: 0 0.375rem 1.75rem rgba(67, 52, 42, 0.09);
  transition: box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .job-card {
    padding: 1.25rem;
  }
}
@media (hover: hover) {
  .job-card:hover {
    box-shadow: 0 0.875rem 2.25rem rgba(67, 52, 42, 0.16);
    transform: translateY(-0.3125rem);
  }
  .job-card:hover .job-card__more {
    color: #8a3f09;
  }
}

.job-card__tags {
  margin-bottom: 0.875rem;
}

.job-card__title {
  font-size: 1.5625rem;
  line-height: 1.52;
}
@media screen and (max-width: 767px) {
  .job-card__title {
    font-size: 1.25rem;
    line-height: 1.6;
  }
}

.job-card__data {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 0.5rem 1rem;
  margin-top: 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.7333333333;
}
@media screen and (max-width: 767px) {
  .job-card__data {
    grid-template-columns: 4.375rem minmax(0, 1fr);
    font-size: 0.875rem;
  }
}

.job-card__data-title {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  color: #655f59;
}

.job-card__salary {
  font-family: "Poppins", sans-serif;
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.4;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .job-card__salary {
    font-size: 1.0625rem;
  }
}

.job-card__more {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin-top: auto;
  padding-top: 1.5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #b3520e;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.job-card__more-icon {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* --------------------------------------------------------------
   .def-table 定義表（募集要項）
   -------------------------------------------------------------- */
.def-table {
  display: grid;
  grid-template-columns: 13.75rem minmax(0, 1fr);
  border-top: 0.0625rem solid #e6ddd2;
}
@media screen and (max-width: 767px) {
  .def-table {
    grid-template-columns: minmax(0, 1fr);
  }
}

.def-table__title {
  padding: 1.25rem 1.5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  color: #43342a;
  background-color: #fdf1e8;
  border-bottom: 0.0625rem solid #ffffff;
}
@media screen and (max-width: 767px) {
  .def-table__title {
    padding: 0.75rem 1rem;
    font-size: 0.9375rem;
  }
}

.def-table__body {
  padding: 1.25rem 1.5rem;
  font-size: 1rem;
  line-height: 1.75;
  background-color: #ffffff;
  border-bottom: 0.0625rem solid #e6ddd2;
}
@media screen and (max-width: 767px) {
  .def-table__body {
    padding: 0.875rem 1rem 1.125rem;
    font-size: 0.9375rem;
  }
}

.def-table__salary {
  font-family: "Poppins", sans-serif;
  font-size: 1.5625rem;
  font-weight: 700;
  line-height: 1.4;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .def-table__salary {
    font-size: 1.3125rem;
  }
}

.def-table__list-item {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  margin-top: 0.5rem;
}
.def-table__list-item:first-child {
  margin-top: 0;
}

.def-table__list-item::before {
  flex-shrink: 0;
  width: 0.375rem;
  height: 0.375rem;
  background-color: #f0883e;
  border-radius: 50%;
  content: "";
  transform: translateY(-0.1875rem);
}

/* --------------------------------------------------------------
   .step ステップ（教育体制・選考フロー）
   -------------------------------------------------------------- */
.step__item {
  position: relative;
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 2rem;
  margin-top: 2.75rem;
  padding-bottom: 2.75rem;
}
.step__item:first-child {
  margin-top: 0;
}
.step__item:last-child {
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .step__item {
    grid-template-columns: 4.25rem minmax(0, 1fr);
    gap: 1rem;
    margin-top: 1.625rem;
    padding-bottom: 1.625rem;
  }
}

.step__item:not(:last-child)::before {
  position: absolute;
  top: 6.5rem;
  bottom: 0.875rem;
  left: 3.1875rem;
  width: 0.125rem;
  background-color: rgba(240, 136, 62, 0.28);
  content: "";
}
@media screen and (max-width: 767px) {
  .step__item:not(:last-child)::before {
    top: 4.25rem;
    bottom: 0.5rem;
    left: 2.0625rem;
  }
}

.step__num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 6.5rem;
  height: 6.5rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .step__num {
    width: 4.25rem;
    height: 4.25rem;
    font-size: 0.625rem;
  }
}

.step__num-value {
  display: block;
  font-size: 1.875rem;
}
@media screen and (max-width: 767px) {
  .step__num-value {
    font-size: 1.25rem;
  }
}

.step__body {
  padding-top: 0.875rem;
}
@media screen and (max-width: 767px) {
  .step__body {
    padding-top: 0.25rem;
  }
}

.step__title {
  font-size: 1.5625rem;
  line-height: 1.52;
}
@media screen and (max-width: 767px) {
  .step__title {
    font-size: 1.125rem;
    line-height: 1.6666666667;
  }
}

.step__text {
  margin-top: 0.875rem;
  font-size: 1rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .step__text {
    margin-top: 0.5rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

/* --------------------------------------------------------------
   .timeline 1日の流れ

   丸（.timeline__body::before）と縦線（.timeline__item::before）は
   同じ基準位置に置きたいので、寸法を変数にして計算で出している。
   基準位置＝「時刻カラムの幅＋カラム間の余白」＝本文カラムの左端。
   ここを中心に、丸は直径の半分だけ左にずらし、
   縦線は線幅の半分だけ左にずらす。
   （数値を直接書くと、カラム幅を変えたときに必ずズレる）
   -------------------------------------------------------------- */
.timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 8.75rem minmax(0, 1fr);
  gap: 2rem;
  padding-bottom: 2.25rem;
}
.timeline__item:last-child {
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .timeline__item {
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: 1rem;
    padding-bottom: 1.5rem;
  }
}

.timeline__item:not(:last-child)::before {
  position: absolute;
  /* 丸の下端から次の項目の丸の上端まで、途切れずにつなぐ */
  top: 1.375rem;
  bottom: -0.5rem;
  left: 10.75rem;
  width: 0.125rem;
  margin-left: -0.0625rem;
  background-color: rgba(240, 136, 62, 0.24);
  content: "";
}
@media screen and (max-width: 767px) {
  .timeline__item:not(:last-child)::before {
    top: 1.125rem;
    bottom: -0.375rem;
    left: 7rem;
  }
}

.timeline__time {
  padding-top: 0.125rem;
  font-family: "Poppins", sans-serif;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: right;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .timeline__time {
    font-size: 0.9375rem;
  }
}

.timeline__body {
  position: relative;
  padding-left: 2.25rem;
}
@media screen and (max-width: 767px) {
  .timeline__body {
    padding-left: 1.625rem;
  }
}

.timeline__body::before {
  position: absolute;
  top: 0.5rem;
  /* 本文カラムの左端を中心に置く */
  left: -0.4375rem;
  width: 0.875rem;
  height: 0.875rem;
  background-color: #b3520e;
  border: 0.1875rem solid #ffffff;
  border-radius: 50%;
  content: "";
}
@media screen and (max-width: 767px) {
  .timeline__body::before {
    top: 0.375rem;
    left: -0.375rem;
    width: 0.75rem;
    height: 0.75rem;
  }
}

.timeline__title {
  font-size: 1.25rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .timeline__title {
    font-size: 1.0625rem;
    line-height: 1.6470588235;
  }
}

.timeline__text {
  margin-top: 0.625rem;
  font-size: 1rem;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .timeline__text {
    margin-top: 0.375rem;
    font-size: 0.9375rem;
    line-height: 1.7333333333;
  }
}

/* --------------------------------------------------------------
   .interview インタビュー（1カラム縦読み＋抜き出しコピー）
   -------------------------------------------------------------- */
.interview__hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.interview__hero > img,
.interview__hero > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.interview__profile {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-top: 2rem;
  padding-bottom: 1.75rem;
  border-bottom: 0.125rem solid #fdf1e8;
}
@media screen and (max-width: 767px) {
  .interview__profile {
    margin-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
}

.interview__name {
  font-size: 1.875rem;
  line-height: 1.4666666667;
}
@media screen and (max-width: 767px) {
  .interview__name {
    font-size: 1.375rem;
  }
}

.interview__role {
  font-size: 0.9375rem;
  color: #655f59;
}

.interview__qa {
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .interview__qa {
    margin-top: 1.75rem;
  }
}

.interview__item {
  margin-top: 3rem;
}
.interview__item:first-child {
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .interview__item {
    margin-top: 2rem;
  }
}

.interview__q {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  font-size: 1.4375rem;
  line-height: 1.652173913;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .interview__q {
    gap: 0.625rem;
    font-size: 1.1875rem;
    line-height: 1.6842105263;
  }
}

.interview__q-mark {
  flex-shrink: 0;
  font-family: "Poppins", sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .interview__q-mark {
    font-size: 1.375rem;
  }
}

.interview__a {
  margin-top: 1.125rem;
  font-size: 1rem;
  line-height: 2.125;
}
@media screen and (max-width: 767px) {
  .interview__a {
    margin-top: 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}
.interview__a > p + p {
  margin-top: 1.25rem;
}

/* 発言の抜き出しコピー（大きく見せる） */
.interview__pull {
  position: relative;
  margin-top: 3.5rem;
  padding: 2.5rem 3rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1.7333333333;
  color: #b3520e;
  background-color: #fdf1e8;
  border-radius: 1.75rem;
}
@media screen and (max-width: 767px) {
  .interview__pull {
    margin-top: 2rem;
    padding: 1.5rem 1.25rem;
    font-size: 1.25rem;
    line-height: 1.8;
  }
}

.interview__photo {
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .interview__photo {
    margin-top: 1.75rem;
  }
}

.interview__photo-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/2;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.interview__photo-img > img,
.interview__photo-img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.interview__caption {
  margin-top: 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  color: #655f59;
}

/* --------------------------------------------------------------
   .faq アコーディオン（details / summary。JS不要）
   -------------------------------------------------------------- */
.faq__cat {
  margin-top: 3.5rem;
}
.faq__cat:first-child {
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .faq__cat {
    margin-top: 2.25rem;
  }
}

.faq__cat-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.4375rem;
  line-height: 1.4782608696;
}
@media screen and (max-width: 767px) {
  .faq__cat-title {
    font-size: 1.1875rem;
  }
}

.faq__cat-title::before {
  flex-shrink: 0;
  width: 0.375rem;
  height: 1.625rem;
  background-color: #f0883e;
  border-radius: 62.4375rem;
  content: "";
}

.faq__list {
  margin-top: 1.5rem;
}
@media screen and (max-width: 767px) {
  .faq__list {
    margin-top: 1rem;
  }
}

.faq__item {
  margin-top: 1rem;
  overflow: hidden;
  background-color: #ffffff;
  border-radius: 0.875rem;
  box-shadow: 0 0.375rem 1.75rem rgba(67, 52, 42, 0.09);
}
.faq__item:first-child {
  margin-top: 0;
}

.faq__q {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem 4rem 1.5rem 1.75rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.7647058824;
  color: #43342a;
  cursor: pointer;
  list-style: none;
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .faq__q {
    gap: 0.75rem;
    padding: 1rem 3rem 1rem 1rem;
    font-size: 1rem;
  }
}
@media (hover: hover) {
  .faq__q:hover {
    background-color: #fdf1e8;
  }
}
.faq__q::-webkit-details-marker {
  display: none;
}
.faq__q:focus-visible {
  outline: 0.1875rem solid #b6501b;
  outline-offset: 0.1875rem;
}

.faq__q-mark {
  flex-shrink: 0;
  font-family: "Poppins", sans-serif;
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1.4;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .faq__q-mark {
    font-size: 1.125rem;
  }
}

.faq__q::after {
  position: absolute;
  top: 1.875rem;
  right: 1.75rem;
  width: 0.875rem;
  height: 0.875rem;
  border-bottom: 0.125rem solid #b3520e;
  border-right: 0.125rem solid #b3520e;
  content: "";
  transform: rotate(45deg);
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .faq__q::after {
    top: 1.375rem;
    right: 1.125rem;
  }
}

.faq__item[open] .faq__q::after {
  transform: rotate(-135deg);
}

.faq__a {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0.25rem 1.75rem 1.75rem;
  font-size: 1rem;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .faq__a {
    gap: 0.75rem;
    padding: 0.25rem 1rem 1.125rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

.faq__a-mark {
  flex-shrink: 0;
  font-family: "Poppins", sans-serif;
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1.4;
  color: #44795f;
}
@media screen and (max-width: 767px) {
  .faq__a-mark {
    font-size: 1.125rem;
  }
}

/* --------------------------------------------------------------
   .circle-nav 丸を基調にした関連ページナビ（仕事をもっと知る）
   丸の中にアイコン、その下に英字ラベルと日本語ラベルを置く。
   5項目がPCで横一列に収まるサイズにしている
   -------------------------------------------------------------- */
.circle-nav__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1.5rem 1.25rem;
}
@media screen and (max-width: 1024px) {
  .circle-nav__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1rem;
  }
}
@media screen and (max-width: 767px) {
  .circle-nav__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 0.75rem;
  }
}

.circle-nav__link {
  display: block;
  text-align: center;
}

/* 丸 */
.circle-nav__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 100%;
  max-width: 10.5rem;
  margin-right: auto;
  margin-left: auto;
  background-color: #ffffff;
  border: 0.125rem solid rgba(240, 136, 62, 0.5);
  border-radius: 50%;
  box-shadow: 0 0.375rem 1.75rem rgba(67, 52, 42, 0.09);
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .circle-nav__circle {
    max-width: 8.25rem;
  }
}

.circle-nav__icon {
  width: 3.375rem;
  height: 3.375rem;
  fill: none;
  stroke: #b3520e;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .circle-nav__icon {
    width: 2.75rem;
    height: 2.75rem;
  }
}

.circle-nav__en {
  display: block;
  margin-top: 1rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .circle-nav__en {
    margin-top: 0.75rem;
  }
}

.circle-nav__name {
  display: block;
  margin-top: 0.375rem;
  font-family: "Zen Maru Gothic", sans-serif;
  /* 一番長い「ロングファーマシーで働く」が1行に収まるサイズ。
     ラベルを増やす／長くするときはここも確認する */
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.7142857143;
}
@media screen and (max-width: 767px) {
  .circle-nav__name {
    font-size: 0.8125rem;
  }
}

/* hover：丸が淡く色づいて少し浮く */
@media (hover: hover) {
  .circle-nav__link:hover .circle-nav__circle {
    background-color: #fdf1e8;
    border-color: #f0883e;
    box-shadow: 0 0.875rem 2.25rem rgba(67, 52, 42, 0.16);
    transform: translateY(-0.375rem);
  }
  .circle-nav__link:hover .circle-nav__name {
    color: #b3520e;
  }
}

/* 現在のページ：丸をベタ塗りにする */
.circle-nav__item--current .circle-nav__link {
  pointer-events: none;
}

.circle-nav__item--current .circle-nav__circle {
  background-color: #b3520e;
  border-color: #b3520e;
  box-shadow: none;
}

.circle-nav__item--current .circle-nav__icon {
  stroke: #ffffff;
}

.circle-nav__item--current .circle-nav__name {
  color: #b3520e;
}

/* --------------------------------------------------------------
   .local-nav ページ間の相互リンク
   -------------------------------------------------------------- */
.local-nav__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .local-nav__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.875rem;
  }
}

.local-nav__link {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  height: 100%;
  padding: 1.5rem 1.75rem;
  background-color: #ffffff;
  border-radius: 0.875rem;
  border-left: 0.25rem solid #f0883e;
  box-shadow: 0 0.375rem 1.75rem rgba(67, 52, 42, 0.09);
  transition: box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .local-nav__link {
    padding: 1.125rem;
  }
}
@media (hover: hover) {
  .local-nav__link:hover {
    box-shadow: 0 0.875rem 2.25rem rgba(67, 52, 42, 0.16);
    transform: translateY(-0.25rem);
  }
}

.local-nav__item--current .local-nav__link {
  background-color: #fdf1e8;
  box-shadow: none;
  pointer-events: none;
}

.local-nav__en {
  font-family: "Poppins", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #b3520e;
}

.local-nav__name {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5555555556;
  color: #43342a;
}
@media screen and (max-width: 767px) {
  .local-nav__name {
    font-size: 1.0625rem;
  }
}

/* --------------------------------------------------------------
   .cta-band 下層共通のCTA（エントリー＋見学）
   写真を背景に敷いて訴求する
   -------------------------------------------------------------- */
.cta-band {
  position: relative;
  overflow: hidden;
  background-color: #43342a;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .cta-band {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

/* 背景に写真は敷かず、濃色の面＋控えめなシェイプだけで見せる */
.cta-band__deco-1 {
  top: -10rem;
  right: -8.75rem;
  width: 28.75rem;
  height: 28.75rem;
  background-color: rgba(255, 255, 255, 0.05);
}
@media screen and (max-width: 767px) {
  .cta-band__deco-1 {
    width: 17.5rem;
    height: 17.5rem;
  }
}

.cta-band__deco-2 {
  bottom: -7.5rem;
  left: -6.25rem;
  width: 18.75rem;
  height: 18.75rem;
  background-color: rgba(240, 136, 62, 0.14);
}
@media screen and (max-width: 767px) {
  .cta-band__deco-2 {
    width: 12.5rem;
    height: 12.5rem;
  }
}

.cta-band__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .cta-band__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.cta-band__en {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .cta-band__en {
    font-size: 0.75rem;
  }
}
.cta-band__en {
  justify-content: center;
  color: #ffffff;
}
.cta-band__en::before, .cta-band__en::after {
  flex-shrink: 0;
  width: 2rem;
  height: 0.125rem;
  background-color: currentColor;
  border-radius: 62.4375rem;
  content: "";
}

.cta-band__title {
  margin-top: 1.25rem;
  font-size: 2.5rem;
  line-height: 1.55;
  color: #ffffff;
}
@media screen and (max-width: 1024px) {
  .cta-band__title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .cta-band__title {
    margin-top: 0.875rem;
    font-size: 1.5rem;
    line-height: 1.6666666667;
  }
}

.cta-band__text {
  margin-top: 1.5rem;
  font-size: 1.0625rem;
  line-height: 1.8823529412;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .cta-band__text {
    margin-top: 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

.cta-band__btns {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .cta-band__btns {
    margin-top: 1.5rem;
  }
}

.cta-band__tel {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .cta-band__tel {
    margin-top: 1.25rem;
  }
}

.cta-band__tel .tel {
  color: #ffffff;
}

.cta-band__tel .tel__note {
  color: rgba(255, 255, 255, 0.86);
}

/* --------------------------------------------------------------
   .form フォーム（エントリー・見学申込）
   -------------------------------------------------------------- */
.form__list {
  border-top: 0.0625rem solid #e6ddd2;
}

.form__row {
  display: grid;
  grid-template-columns: 16.25rem minmax(0, 1fr);
  gap: 1.5rem;
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
  border-bottom: 0.0625rem solid #e6ddd2;
}
@media screen and (max-width: 767px) {
  .form__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.625rem;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
}

.form__label {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  padding-top: 0.875rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  color: #43342a;
}
@media screen and (max-width: 767px) {
  .form__label {
    padding-top: 0;
    font-size: 0.9375rem;
  }
}

.form__required {
  flex-shrink: 0;
  padding: 0.125rem 0.625rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
  color: #ffffff;
  background-color: #b6501b;
  border-radius: 62.4375rem;
}

.form__optional {
  flex-shrink: 0;
  padding: 0.125rem 0.625rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.6;
  color: #655f59;
  background-color: #fbf6ef;
  border-radius: 62.4375rem;
}

.form__input,
.form__textarea,
.form__select {
  width: 100%;
  padding: 0.875rem 1.125rem;
  font-size: 1rem;
  line-height: 1.75;
  background-color: #ffffff;
  border: 0.0625rem solid #e6ddd2;
  border-radius: 0.875rem;
  transition: border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.form__input::placeholder,
.form__textarea::placeholder,
.form__select::placeholder {
  color: #655f59;
}
.form__input:focus,
.form__textarea:focus,
.form__select:focus {
  border-color: #b3520e;
  box-shadow: 0 0 0 0.1875rem rgba(240, 136, 62, 0.24);
  outline: none;
}

.form__textarea {
  min-height: 12.5rem;
  resize: vertical;
}

.form__select-wrap {
  position: relative;
}

.form__select-wrap::after {
  position: absolute;
  top: 50%;
  right: 1.25rem;
  width: 0.625rem;
  height: 0.625rem;
  border-bottom: 0.125rem solid #b3520e;
  border-right: 0.125rem solid #b3520e;
  content: "";
  transform: translateY(-0.25rem) rotate(45deg);
  pointer-events: none;
}

.form__select {
  padding-right: 3rem;
  cursor: pointer;
}

.form__note {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  color: #655f59;
}

.form__check-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  padding-top: 0.875rem;
}
@media screen and (max-width: 767px) {
  .form__check-list {
    gap: 0.625rem;
    padding-top: 0.25rem;
  }
}

.form__radio {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1rem;
  line-height: 1.6;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .form__radio {
    font-size: 0.9375rem;
  }
}

.form__radio-input {
  flex-shrink: 0;
  width: 1.375rem;
  height: 1.375rem;
  background-color: #ffffff;
  border: 0.0625rem solid #e6ddd2;
  border-radius: 50%;
  transition: border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.form__radio-input:checked {
  border-color: #b3520e;
  border-width: 0.4375rem;
}
.form__radio-input:focus-visible {
  outline: 0.1875rem solid #b6501b;
  outline-offset: 0.1875rem;
}

.form__privacy {
  margin-top: 2.5rem;
  padding: 1.75rem 2rem;
  background-color: #fbf6ef;
  border-radius: 0.875rem;
}
@media screen and (max-width: 767px) {
  .form__privacy {
    margin-top: 1.75rem;
    padding: 1.125rem;
  }
}

.form__privacy-title {
  font-size: 1.0625rem;
  line-height: 1.6470588235;
}
@media screen and (max-width: 767px) {
  .form__privacy-title {
    font-size: 1rem;
  }
}

.form__privacy-text {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.8571428571;
}

.form__check {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1.25rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.625;
  color: #43342a;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .form__check {
    font-size: 0.9375rem;
  }
}

.form__check-input {
  position: relative;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  background-color: #ffffff;
  border: 0.0625rem solid #e6ddd2;
  border-radius: 0.25rem;
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.form__check-input:checked {
  background-color: #b3520e;
  border-color: #b3520e;
}
.form__check-input:checked::after {
  position: absolute;
  top: 0.25rem;
  left: 0.4375rem;
  width: 0.4375rem;
  height: 0.8125rem;
  border-bottom: 0.125rem solid #ffffff;
  border-right: 0.125rem solid #ffffff;
  content: "";
  transform: rotate(45deg);
}
.form__check-input:focus-visible {
  outline: 0.1875rem solid #b6501b;
  outline-offset: 0.1875rem;
}

.form__submit {
  margin-top: 2.5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .form__submit {
    margin-top: 1.75rem;
  }
}

.form__submit-note {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: #655f59;
}

/* --------------------------------------------------------------
   .post-card ブログ一覧（サムネイル付きカード）
   -------------------------------------------------------------- */
.post__filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.post__cat-link {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.25rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.6;
  color: #43342a;
  background-color: #ffffff;
  border: 0.0625rem solid #e6ddd2;
  border-radius: 62.4375rem;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .post__cat-link:hover {
    color: #ffffff;
    background-color: #b3520e;
    border-color: #b3520e;
  }
}

.post__cat-item--current .post__cat-link {
  color: #ffffff;
  background-color: #b3520e;
  border-color: #b3520e;
  pointer-events: none;
}

.post-card__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem 2rem;
}
@media screen and (max-width: 1024px) {
  .post-card__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .post-card__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
}

.post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
@media (hover: hover) {
  .post-card:hover .post-card__img > img {
    transform: scale(1.06);
  }
  .post-card:hover .post-card__title {
    color: #b3520e;
  }
}

.post-card__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  border-radius: 0.875rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.post-card__img > img,
.post-card__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.post-card__img {
  background-color: #fdf1e8;
}
.post-card__img > img {
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 画像未登録時のプレースホルダー */
.post-card__img--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
}
.post-card__img--noimage > .post-card__img-placeholder {
  width: 60%;
  max-width: 12.5rem;
  height: auto;
  object-fit: contain;
  opacity: 0.35;
}

.post-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.125rem;
}
@media screen and (max-width: 767px) {
  .post-card__meta {
    margin-top: 0.75rem;
  }
}

.post__date {
  font-family: "Poppins", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #655f59;
}

.post__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.4;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 62.4375rem;
}

.post-card__title {
  margin-top: 0.75rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6666666667;
  color: #43342a;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .post-card__title {
    margin-top: 0.5rem;
    font-size: 1.0625rem;
  }
}

.post-card__excerpt {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.7333333333;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
@media screen and (max-width: 767px) {
  .post-card__excerpt {
    margin-top: 0.5rem;
  }
}

/* ページネーション */
.pager {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .pager {
    margin-top: 2rem;
  }
}

.pager__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 3rem;
  height: 3rem;
  padding: 0.25rem 0.75rem;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: #43342a;
  background-color: #ffffff;
  border: 0.0625rem solid #e6ddd2;
  border-radius: 0.875rem;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .pager__link:hover {
    color: #ffffff;
    background-color: #b3520e;
    border-color: #b3520e;
  }
}

.pager__item--current .pager__link {
  color: #ffffff;
  background-color: #b3520e;
  border-color: #b3520e;
  pointer-events: none;
}

/* --------------------------------------------------------------
   .article 記事詳細（ブログ）
   -------------------------------------------------------------- */
.article__head {
  padding-bottom: 1.75rem;
  border-bottom: 0.125rem solid #fdf1e8;
}

.article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.article__title {
  margin-top: 1.125rem;
  font-size: 2.125rem;
  line-height: 1.5882352941;
}
@media screen and (max-width: 767px) {
  .article__title {
    margin-top: 0.75rem;
    font-size: 1.4375rem;
    line-height: 1.652173913;
  }
}

.article__eyecatch {
  margin-top: 2rem;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  border-radius: 1.75rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.article__eyecatch > img,
.article__eyecatch > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .article__eyecatch {
    margin-top: 1.25rem;
  }
}

.article__body {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .article__body {
    margin-top: 1.75rem;
  }
}

.article__back {
  margin-top: 3.5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .article__back {
    margin-top: 2.25rem;
  }
}

/* --------------------------------------------------------------
   .wysiwyg 本文（WordPressの入力領域想定）
   -------------------------------------------------------------- */
.wysiwyg {
  font-size: 1rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .wysiwyg {
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}
.wysiwyg > * + * {
  margin-top: 1.5rem;
}
.wysiwyg h2 {
  margin-top: 3.5rem;
  padding-bottom: 0.75rem;
  font-size: 1.5625rem;
  line-height: 1.6;
  border-bottom: 0.125rem solid #fdf1e8;
}
@media screen and (max-width: 767px) {
  .wysiwyg h2 {
    margin-top: 2.25rem;
    font-size: 1.25rem;
  }
}
.wysiwyg h3 {
  margin-top: 2.5rem;
  font-size: 1.1875rem;
  line-height: 1.6842105263;
}
@media screen and (max-width: 767px) {
  .wysiwyg h3 {
    margin-top: 1.75rem;
    font-size: 1.0625rem;
  }
}
.wysiwyg a {
  color: #b3520e;
  text-decoration: underline;
}
@media (hover: hover) {
  .wysiwyg a:hover {
    color: #8a3f09;
  }
}
.wysiwyg strong {
  font-weight: 700;
  color: #43342a;
}
.wysiwyg ul,
.wysiwyg ol {
  padding-left: 0.25rem;
}
.wysiwyg li {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  margin-top: 0.625rem;
}
.wysiwyg ul > li::before {
  flex-shrink: 0;
  width: 0.375rem;
  height: 0.375rem;
  background-color: #f0883e;
  border-radius: 50%;
  content: "";
  transform: translateY(-0.1875rem);
}
.wysiwyg ol {
  counter-reset: wysiwyg-ol;
}
.wysiwyg ol > li {
  counter-increment: wysiwyg-ol;
}
.wysiwyg ol > li::before {
  flex-shrink: 0;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  color: #b3520e;
  content: counter(wysiwyg-ol) ".";
}

/* 本文中の画像 */
.wysiwyg__figure {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .wysiwyg__figure {
    margin-top: 1.5rem;
  }
}

.wysiwyg__figure-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/2;
  border-radius: 0.875rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.wysiwyg__figure-img > img,
.wysiwyg__figure-img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wysiwyg__figure-img--square {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1/1;
  border-radius: 0.875rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.wysiwyg__figure-img--square > img,
.wysiwyg__figure-img--square > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wysiwyg__figure-img--wide {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  border-radius: 0.875rem;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.wysiwyg__figure-img--wide > img,
.wysiwyg__figure-img--wide > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 1025px) {
  .wysiwyg__figure--wide {
    margin-right: -3.75rem;
    margin-left: -3.75rem;
  }
}

.wysiwyg__caption {
  margin-top: 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.6923076923;
  color: #655f59;
}

.wysiwyg__figures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .wysiwyg__figures {
    gap: 0.75rem;
    margin-top: 1.5rem;
  }
}

.wysiwyg__figures > .wysiwyg__figure {
  margin-top: 0;
}

/* --------------------------------------------------------------
   .sitemap / .thanks
   -------------------------------------------------------------- */
.sitemap__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem;
}
@media screen and (max-width: 1024px) {
  .sitemap__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .sitemap__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
  }
}

.sitemap__title {
  padding-bottom: 0.75rem;
  font-size: 1.1875rem;
  line-height: 1.5789473684;
  border-bottom: 0.125rem solid #fdf1e8;
}
@media screen and (max-width: 767px) {
  .sitemap__title {
    font-size: 1.0625rem;
  }
}

.sitemap__child {
  margin-top: 1rem;
}

.sitemap__child-item {
  margin-top: 0.75rem;
}
.sitemap__child-item:first-child {
  margin-top: 0;
}

.sitemap__link {
  display: inline-flex;
  align-items: baseline;
  gap: 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.7333333333;
}
@media (hover: hover) {
  .sitemap__link:hover {
    color: #b3520e;
    text-decoration: underline;
  }
}

.sitemap__link::before {
  flex-shrink: 0;
  width: 0.375rem;
  height: 0.375rem;
  border-top: 0.0625rem solid #f0883e;
  border-right: 0.0625rem solid #f0883e;
  content: "";
  transform: translateY(-0.1875rem) rotate(45deg);
}

.thanks {
  text-align: center;
}

.thanks__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6rem;
  height: 6rem;
  margin-right: auto;
  margin-left: auto;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 50%;
}
@media screen and (max-width: 767px) {
  .thanks__icon {
    width: 4.5rem;
    height: 4.5rem;
  }
}

.thanks__icon > svg {
  width: 2.75rem;
  height: 2.75rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
}
@media screen and (max-width: 767px) {
  .thanks__icon > svg {
    width: 2rem;
    height: 2rem;
  }
}

.thanks__title {
  margin-top: 1.75rem;
  font-size: 2rem;
  line-height: 1.5625;
}
@media screen and (max-width: 767px) {
  .thanks__title {
    margin-top: 1.25rem;
    font-size: 1.4375rem;
    line-height: 1.652173913;
  }
}

.thanks__text {
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .thanks__text {
    margin-top: 1rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

.thanks__btn {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .thanks__btn {
    margin-top: 1.75rem;
  }
}

/* --------------------------------------------------------------
   注記
   -------------------------------------------------------------- */
.note {
  margin-top: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.7142857143;
  color: #655f59;
}

/* --------------------------------------------------------------
   .sign 署名（代表メッセージの社名・代表者名）
   注釈の .note とは別物なので、専用のクラスにしている
   -------------------------------------------------------------- */
.sign {
  margin-top: 2.25rem;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .sign {
    margin-top: 1.5rem;
  }
}

.sign__company {
  display: block;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .sign__company {
    font-size: 0.9375rem;
  }
}

.sign__name {
  display: block;
  margin-top: 0.375rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.5;
  color: #8a3f09;
}
@media screen and (max-width: 767px) {
  .sign__name {
    font-size: 1.3125rem;
  }
}

/* ==========================================================================
   ヘッダー｜採用サイト
   ========================================================================== */
.header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  background-color: #ffffff;
  transition: box-shadow 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
  /* backdrop-filter は position: fixed の子要素の包含ブロックになってしまい、
     タブレット以下のドロワーが画面全高に広がらなくなるため、
     ドロワーを使わないPCのみに適用する */
}
@media screen and (min-width: 1025px) {
  .header {
    background-color: rgba(255, 255, 255, 0.93);
    backdrop-filter: blur(0.625rem);
  }
}

.header.is-scrolled {
  box-shadow: 0 0.125rem 1rem rgba(67, 52, 42, 0.08);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  height: 5.5rem;
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .header__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (max-width: 1024px) {
  .header__inner {
    height: 3.75rem;
  }
}

/* --------------------------------------------------------------
   ロゴ（採用サイトは RECRUIT の表記を添える）
   -------------------------------------------------------------- */
.header__logo {
  flex-shrink: 0;
}

.header__logo-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
@media (hover: hover) {
  .header__logo-link:hover {
    opacity: 0.7;
  }
}

.header__logo-label {
  padding: 0.1875rem 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #ffffff;
  background-color: #b3520e;
  border-radius: 0.25rem;
}
@media screen and (max-width: 1024px) {
  .header__logo-label {
    font-size: 0.625rem;
  }
}

/* --------------------------------------------------------------
   ナビゲーション
   -------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
  .header__nav {
    position: fixed;
    top: 3.75rem;
    right: 0;
    bottom: 0;
    left: 0;
    overflow-y: auto;
    padding-top: 1.75rem;
    padding-bottom: 3.5rem;
    background-color: #ffffff;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.75rem);
    transition: opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
}

@media screen and (max-width: 1024px) {
  .header__nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}

.header__nav-list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
@media screen and (min-width: 1025px) {
  .header__nav-list {
    gap: 1.25rem;
  }
}
@media screen and (max-width: 1024px) {
  .header__nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 77.5rem;
    margin-right: auto;
    margin-left: auto;
    padding-right: 2.5rem;
    padding-left: 2.5rem;
  }
}
@media screen and (max-width: 1024px) and (max-width: 767px) {
  .header__nav-list {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

@media screen and (max-width: 1024px) {
  .header__nav-item {
    border-bottom: 0.0625rem solid #e6ddd2;
  }
}

.header__nav-link {
  display: block;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  color: #43342a;
}
@media (hover: hover) {
  .header__nav-link:hover {
    color: #b3520e;
  }
}
@media screen and (max-width: 1024px) {
  .header__nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 1.0625rem;
    padding-bottom: 1.0625rem;
    font-size: 1.0625rem;
    white-space: normal;
  }
}

@media screen and (max-width: 1024px) {
  .header__nav-link::before {
    flex-shrink: 0;
    width: 0.5rem;
    height: 0.5rem;
    background-color: #f0883e;
    border-radius: 50%;
    content: "";
  }
}

.header__nav-link.is-current {
  color: #b3520e;
  pointer-events: none;
}
@media screen and (min-width: 1025px) {
  .header__nav-link.is-current {
    position: relative;
  }
}

@media screen and (min-width: 1025px) {
  .header__nav-link.is-current::after {
    position: absolute;
    right: 0;
    bottom: -0.5rem;
    left: 0;
    height: 0.125rem;
    background-color: currentColor;
    border-radius: 62.4375rem;
    content: "";
  }
}

/* --------------------------------------------------------------
   ヘッダーCTA（見学・エントリー）
   -------------------------------------------------------------- */
.header__cta {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-shrink: 0;
}
@media screen and (max-width: 1024px) {
  .header__cta {
    display: none;
  }
}

.header__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3.125rem;
  padding: 0.5rem 1.375rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  color: #ffffff;
  border-radius: 62.4375rem;
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.header__cta-btn--visit {
  background-color: #44795f;
}
@media (hover: hover) {
  .header__cta-btn--visit:hover {
    background-color: #345c48;
    transform: translateY(-0.125rem);
  }
}

.header__cta-btn--entry {
  background-color: #b6501b;
}
@media (hover: hover) {
  .header__cta-btn--entry:hover {
    background-color: #8f3e13;
    transform: translateY(-0.125rem);
  }
}

.header__cta-icon {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* ドロワー内のCTA・コーポレートサイトへのリンク */
.header__nav-cta {
  margin-top: 1.75rem;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .header__nav-cta {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (min-width: 1025px) {
  .header__nav-cta {
    display: none;
  }
}

.header__nav-sub {
  margin-top: 1.5rem;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .header__nav-sub {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (min-width: 1025px) {
  .header__nav-sub {
    display: none;
  }
}

.header__nav-sub-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: #655f59;
  text-decoration: underline;
}

.header__nav-sub-icon {
  flex-shrink: 0;
  width: 0.9375rem;
  height: 0.9375rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* --------------------------------------------------------------
   ハンバーガーボタン
   -------------------------------------------------------------- */
.header__burger {
  position: relative;
  z-index: 1;
  display: none;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
}
@media screen and (max-width: 1024px) {
  .header__burger {
    display: block;
  }
}

.header__burger-bar {
  position: absolute;
  right: 0.5625rem;
  left: 0.5625rem;
  height: 0.125rem;
  background-color: #43342a;
  border-radius: 62.4375rem;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.header__burger-bar:nth-of-type(1) {
  top: 0.8125rem;
}
.header__burger-bar:nth-of-type(2) {
  top: 1.25rem;
}
.header__burger-bar:nth-of-type(3) {
  top: 1.6875rem;
}

.header__burger.is-open .header__burger-bar:nth-of-type(1) {
  transform: translateY(0.4375rem) rotate(37deg);
}
.header__burger.is-open .header__burger-bar:nth-of-type(2) {
  opacity: 0;
}
.header__burger.is-open .header__burger-bar:nth-of-type(3) {
  transform: translateY(-0.4375rem) rotate(-37deg);
}

.header__burger-text {
  position: absolute;
  right: 0;
  bottom: -0.0625rem;
  left: 0;
  font-family: "Poppins", sans-serif;
  font-size: 0.5625rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.06em;
  color: #43342a;
}

/* --------------------------------------------------------------
   PC 右下フロートCTA
   -------------------------------------------------------------- */
.floatcta {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.75rem);
  transition: opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (max-width: 767px) {
  .floatcta {
    display: none;
  }
}

.floatcta.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.floatcta__link {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-width: 12.5rem;
  padding: 1rem 1.5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
  border-radius: 62.4375rem;
  box-shadow: 0 0.5rem 1.5rem rgba(67, 52, 42, 0.22);
  transition: background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .floatcta__link:hover {
    transform: translateX(-0.25rem);
  }
}

.floatcta__link--entry {
  background-color: #b6501b;
}
@media (hover: hover) {
  .floatcta__link--entry:hover {
    background-color: #8f3e13;
  }
}

.floatcta__link--visit {
  background-color: #44795f;
}
@media (hover: hover) {
  .floatcta__link--visit:hover {
    background-color: #345c48;
  }
}

.floatcta__icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

/* --------------------------------------------------------------
   SP下部固定バー（エントリー／見学）
   -------------------------------------------------------------- */
.fixedbar {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 90;
  display: none;
}
@media screen and (max-width: 767px) {
  .fixedbar {
    display: block;
  }
}

.fixedbar__list {
  display: flex;
}

.fixedbar__item {
  flex: 1 1 0;
}

.fixedbar__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 4rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
}

.fixedbar__link--entry {
  background-color: #b6501b;
}

.fixedbar__link--visit {
  background-color: #44795f;
}

.fixedbar__icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

/* --------------------------------------------------------------
   ページトップボタン
   -------------------------------------------------------------- */
.pagetop {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  color: #ffffff;
  background-color: #43342a;
  border-radius: 50%;
  box-shadow: 0 0.375rem 1.125rem rgba(67, 52, 42, 0.28);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
  /* PCはフロートCTAがあるので少し上に逃がす */
}
@media screen and (min-width: 768px) {
  .pagetop {
    bottom: 10rem;
  }
}
@media screen and (max-width: 767px) {
  .pagetop {
    right: 0.875rem;
    bottom: 4.875rem;
    width: 2.75rem;
    height: 2.75rem;
  }
}
@media (hover: hover) {
  .pagetop:hover {
    transform: translateY(-0.25rem);
  }
}

.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
}

.pagetop__icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* ==========================================================================
   フッター｜採用サイト
   ========================================================================== */
.footer {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background-color: #43342a;
}

.footer__deco-1 {
  top: -10rem;
  right: -7.5rem;
  width: 26.25rem;
  height: 26.25rem;
  background-color: rgba(240, 136, 62, 0.12);
}

.footer__deco-2 {
  bottom: -11.25rem;
  left: -8.75rem;
  width: 21.25rem;
  height: 21.25rem;
  background-color: rgba(255, 255, 255, 0.04);
}

.footer__inner {
  position: relative;
  z-index: 1;
  padding-top: 5rem;
  padding-bottom: 2.25rem;
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .footer__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .footer__inner {
    padding-top: 3.25rem;
    padding-bottom: 1.5rem;
  }
}

.footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 4rem;
}
@media screen and (max-width: 1024px) {
  .footer__top {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
  }
}

.footer__logo-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
@media (hover: hover) {
  .footer__logo-link:hover {
    opacity: 0.7;
  }
}

.footer__logo-label {
  padding: 0.1875rem 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #43342a;
  background-color: #ffffff;
  border-radius: 0.25rem;
}

.footer__company {
  margin-top: 1.5rem;
  font-size: 0.9375rem;
  line-height: 1.8666666667;
}

.footer__company-name {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #ffffff;
}

.footer__company-address {
  margin-top: 0.625rem;
}

.footer__company-tel {
  margin-top: 0.875rem;
  font-family: "Poppins", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #ffffff;
}
@media (hover: hover) {
  .footer__company-tel:hover {
    opacity: 0.75;
  }
}

.footer__company-note {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

/* コーポレートサイトへの相互リンク */
.footer__corporate {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  margin-top: 1.5rem;
  padding: 0.75rem 1.5rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.4;
  color: #ffffff;
  border: 0.0625rem solid rgba(255, 255, 255, 0.4);
  border-radius: 62.4375rem;
  transition: color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .footer__corporate:hover {
    color: #43342a;
    background-color: #ffffff;
  }
}

.footer__corporate-icon {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* --------------------------------------------------------------
   フッターナビ
   -------------------------------------------------------------- */
.footer__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .footer__nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.footer__nav-title {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.7);
}

.footer__nav-list {
  margin-top: 0.875rem;
}

.footer__nav-item {
  margin-top: 0.625rem;
}
.footer__nav-item:first-child {
  margin-top: 0;
}

.footer__nav-link {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.6;
}
@media (hover: hover) {
  .footer__nav-link:hover {
    color: #f0883e;
  }
}

.footer__nav-link::before {
  flex-shrink: 0;
  width: 0.3125rem;
  height: 0.3125rem;
  background-color: #f0883e;
  border-radius: 50%;
  content: "";
  transform: translateY(-0.1875rem);
}

/* --------------------------------------------------------------
   フッター下段
   -------------------------------------------------------------- */
.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 3.5rem;
  padding-top: 1.5rem;
  border-top: 0.0625rem solid rgba(255, 255, 255, 0.2);
}
@media screen and (max-width: 767px) {
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 2.5rem;
  }
}

.footer__sub-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}

.footer__sub-link {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.84);
}
@media (hover: hover) {
  .footer__sub-link:hover {
    color: #f0883e;
  }
}

.footer__copyright {
  font-family: "Poppins", sans-serif;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.66);
}

/* page ------------------------------------------------------------------ */
/* ==========================================================================
   採用サイト TOP
   写真を大きく使い、キャッチコピーを重ねる構成
   ========================================================================== */
/* --------------------------------------------------------------
   メインビジュアル（写真の上にコピーを重ねる）
   -------------------------------------------------------------- */
.mv {
  position: relative;
  overflow: hidden;
  background-color: #fbf6ef;
}

.mv__visual {
  position: relative;
}

.mv__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  border-radius: 0;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.mv__img > img,
.mv__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 1024px) {
  .mv__img {
    aspect-ratio: 4/3;
  }
}
@media screen and (max-width: 767px) {
  .mv__img {
    aspect-ratio: 3/4.4;
  }
}

/* 写真の上に置く文字を読みやすくするグラデーション */
.mv__img::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(41, 30, 22, 0.78) 0%, rgba(41, 30, 22, 0.5) 46%, rgba(41, 30, 22, 0.14) 100%);
  content: "";
  /* SPは写真を見せたいので上半分は薄く、
     コピーがのる下半分だけ濃くする */
}
@media screen and (max-width: 767px) {
  .mv__img::after {
    background: linear-gradient(180deg, rgba(41, 30, 22, 0.16) 0%, rgba(41, 30, 22, 0.28) 34%, rgba(41, 30, 22, 0.84) 100%);
  }
}

.mv__body {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  z-index: 1;
  transform: translateY(-50%);
  width: 100%;
  max-width: 90rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .mv__body {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .mv__body {
    top: auto;
    bottom: 2.25rem;
    transform: none;
  }
}

.mv__catch {
  font-size: 4.125rem;
  line-height: 1.5151515152;
  letter-spacing: 0.01em;
  color: #ffffff;
  text-shadow: 0 0.125rem 1.5rem rgba(41, 30, 22, 0.5);
}
@media screen and (min-width: 1025px) {
  .mv__catch {
    font-size: clamp(2.75rem, 4.4vw, 4.125rem);
  }
}
@media screen and (max-width: 1024px) {
  .mv__catch {
    font-size: 2.75rem;
    line-height: 1.5909090909;
  }
}
.mv__catch {
  /* SPは「誰かのためになる仕事を、」が375px幅でも1行に収まるサイズにする */
}
@media screen and (max-width: 767px) {
  .mv__catch {
    font-size: 1.5625rem;
    line-height: 1.76;
    letter-spacing: 0;
  }
}

.mv__catch-mark {
  position: relative;
  z-index: 1;
  display: inline-block;
}

.mv__catch-mark::after {
  position: absolute;
  right: -0.375rem;
  bottom: 0.375rem;
  left: -0.375rem;
  z-index: -1;
  height: 1rem;
  background-color: rgba(240, 136, 62, 0.72);
  border-radius: 62.4375rem;
  content: "";
}
@media screen and (max-width: 767px) {
  .mv__catch-mark::after {
    height: 0.625rem;
  }
}

.mv__sub {
  max-width: 38.75rem;
  margin-top: 1.75rem;
  font-size: 1.125rem;
  line-height: 1.8888888889;
  color: #ffffff;
  text-shadow: 0 0.125rem 1rem rgba(41, 30, 22, 0.6);
}
@media screen and (max-width: 767px) {
  .mv__sub {
    margin-top: 1rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

.mv__btns {
  margin-top: 2.75rem;
}
@media screen and (max-width: 767px) {
  .mv__btns {
    margin-top: 1.5rem;
  }
}

@media screen and (min-width: 768px) {
  .mv__btns .btn {
    min-width: 17.5rem;
  }
}

/* MV下のスクロール誘導 */
.mv__scroll {
  position: absolute;
  right: 3rem;
  bottom: 2rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  writing-mode: vertical-rl;
  color: #ffffff;
  /* 写真の上に置くため、影で可読性を確保する */
  text-shadow: 0 0.0625rem 0.625rem rgba(41, 30, 22, 0.9);
}
@media screen and (max-width: 1024px) {
  .mv__scroll {
    display: none;
  }
}

.mv__scroll::after {
  width: 0.0625rem;
  height: 4rem;
  background-color: rgba(255, 255, 255, 0.7);
  content: "";
}

/* --------------------------------------------------------------
   リード文
   -------------------------------------------------------------- */
.intro {
  position: relative;
  overflow: hidden;
  background-color: #ffffff;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .intro {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.intro__deco-1 {
  top: 3.75rem;
  left: -8.125rem;
  width: 20rem;
  height: 20rem;
}
@media screen and (max-width: 767px) {
  .intro__deco-1 {
    display: none;
  }
}

.intro__deco-2 {
  right: -6.875rem;
  bottom: -5.625rem;
  width: 16.25rem;
  height: 16.25rem;
}
@media screen and (max-width: 767px) {
  .intro__deco-2 {
    display: none;
  }
}

.intro__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  width: 100%;
  max-width: 57.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .intro__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.intro__title {
  margin-top: 1.25rem;
  font-size: 2.125rem;
  line-height: 1.7058823529;
}
@media screen and (max-width: 767px) {
  .intro__title {
    font-size: 1.4375rem;
    line-height: 1.7391304348;
  }
}

.intro__text {
  margin-top: 2rem;
  font-size: 1rem;
  line-height: 2.125;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .intro__text {
    margin-top: 1.25rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}
.intro__text > p + p {
  margin-top: 1.25rem;
}

/* --------------------------------------------------------------
   こんな人に向いています
   -------------------------------------------------------------- */
.fit {
  position: relative;
  overflow: hidden;
  background-color: #fbf6ef;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .fit {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.fit__deco-1 {
  top: -8.125rem;
  right: -8.75rem;
  width: 23.75rem;
  height: 23.75rem;
}

.fit__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .fit__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.fit__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 3.5rem;
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .fit__body {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
    margin-top: 1.75rem;
  }
}

.fit__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/4.4;
  border-radius: 0;
  /* <picture> でSP用の画像を出し分ける場合も同じ扱いにする */
}
.fit__img > img,
.fit__img > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.fit__img {
  border-radius: 15rem 15rem 1.75rem 1.75rem;
}
@media screen and (max-width: 767px) {
  .fit__img {
    aspect-ratio: 4/3.6;
    border-radius: 10rem 10rem 1.75rem 1.75rem;
  }
}

.fit__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-top: 1.25rem;
  padding: 1.375rem 1.75rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.6666666667;
  color: #43342a;
  background-color: #ffffff;
  border-radius: 0.875rem;
}
.fit__item:first-child {
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .fit__item {
    gap: 0.75rem;
    margin-top: 0.75rem;
    padding: 1rem 1.125rem;
    font-size: 1rem;
  }
}

.fit__item-icon {
  flex-shrink: 0;
  width: 1.625rem;
  height: 1.625rem;
  margin-top: 0.1875rem;
  fill: none;
  stroke: #b3520e;
  stroke-width: 2.4;
}
@media screen and (max-width: 767px) {
  .fit__item-icon {
    width: 1.375rem;
    height: 1.375rem;
  }
}

.fit__note {
  margin-top: 2.5rem;
  font-size: 1rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .fit__note {
    margin-top: 1.5rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

/* --------------------------------------------------------------
   働く魅力
   -------------------------------------------------------------- */
.merit {
  position: relative;
  overflow: hidden;
  background-color: #ffffff;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .merit {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.merit__deco-1 {
  top: 7.5rem;
  left: -8.75rem;
  width: 21.25rem;
  height: 21.25rem;
}
@media screen and (max-width: 767px) {
  .merit__deco-1 {
    display: none;
  }
}

.merit__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .merit__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

/* --------------------------------------------------------------
   数字で見る
   -------------------------------------------------------------- */
.stat {
  position: relative;
  overflow: hidden;
  background-color: #fbf6ef;
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
}
@media screen and (max-width: 767px) {
  .stat {
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
  }
}

.stat__deco-1 {
  right: -8.125rem;
  bottom: -8.75rem;
  width: 20rem;
  height: 20rem;
}

.stat__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .stat__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

/* --------------------------------------------------------------
   スタッフの声
   -------------------------------------------------------------- */
.voice {
  position: relative;
  overflow: hidden;
  background-color: #ffffff;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .voice {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.voice__deco-1 {
  top: -7.5rem;
  right: -8.75rem;
  width: 22.5rem;
  height: 22.5rem;
}

.voice__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .voice__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.voice__btn {
  margin-top: 3.5rem;
}
@media screen and (max-width: 767px) {
  .voice__btn {
    margin-top: 2rem;
  }
}

/* --------------------------------------------------------------
   募集職種
   -------------------------------------------------------------- */
.jobs {
  position: relative;
  overflow: hidden;
  background-color: #fbf6ef;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .jobs {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.jobs__deco-1 {
  bottom: -9.375rem;
  left: -8.125rem;
  width: 21.25rem;
  height: 21.25rem;
}

.jobs__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .jobs__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.jobs__btn {
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .jobs__btn {
    margin-top: 1.75rem;
  }
}

/* --------------------------------------------------------------
   見学・訪問体験バンド
   -------------------------------------------------------------- */
.visit-band {
  position: relative;
  overflow: hidden;
  background-color: #44795f;
  padding-top: 5.5rem;
  padding-bottom: 5.5rem;
}
@media screen and (max-width: 767px) {
  .visit-band {
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
  }
}

.visit-band__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.3;
}
.visit-band__bg > img,
.visit-band__bg > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.visit-band__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .visit-band__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.visit-band__en {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: "Poppins", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  color: #b3520e;
}
@media screen and (max-width: 767px) {
  .visit-band__en {
    font-size: 0.75rem;
  }
}
.visit-band__en {
  justify-content: center;
  color: #ffffff;
}
.visit-band__en::before, .visit-band__en::after {
  flex-shrink: 0;
  width: 2rem;
  height: 0.125rem;
  background-color: currentColor;
  border-radius: 62.4375rem;
  content: "";
}

.visit-band__title {
  margin-top: 1.25rem;
  font-size: 2.25rem;
  line-height: 1.6111111111;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .visit-band__title {
    margin-top: 0.875rem;
    font-size: 1.4375rem;
    line-height: 1.652173913;
  }
}

.visit-band__text {
  max-width: 47.5rem;
  margin-top: 1.5rem;
  margin-right: auto;
  margin-left: auto;
  font-size: 1.0625rem;
  line-height: 1.8823529412;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .visit-band__text {
    margin-top: 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}

.visit-band__btn {
  margin-top: 2.25rem;
}
@media screen and (max-width: 767px) {
  .visit-band__btn {
    margin-top: 1.5rem;
  }
}

/* --------------------------------------------------------------
   FAQ抜粋・ブログ
   -------------------------------------------------------------- */
.top-faq {
  position: relative;
  overflow: hidden;
  background-color: #ffffff;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .top-faq {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.top-faq__deco-1 {
  top: -7.5rem;
  left: -8.125rem;
  width: 20rem;
  height: 20rem;
}
@media screen and (max-width: 767px) {
  .top-faq__deco-1 {
    display: none;
  }
}

.top-faq__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 57.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .top-faq__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.top-faq__btn {
  margin-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .top-faq__btn {
    margin-top: 1.5rem;
  }
}

.top-blog {
  position: relative;
  overflow: hidden;
  background-color: #fbf6ef;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .top-blog {
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }
}

.top-blog__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 77.5rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2.5rem;
  padding-left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .top-blog__inner {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
}

.top-blog__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
}
@media screen and (max-width: 767px) {
  .top-blog__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
}
