/* header-sidebar-pc-01 */
/* CTA文言に入力した改行をそのまま表示する。 */
.c-sidebar__cta-btn-text {
  flex: 1;
  white-space: pre-line;
  text-align: var(--ps-button-align, center);
}

/* header-entry-02 */
/* 常時表示のヘッダーエントリーボタン。 */
.c-header__entry-btn {
  background-color: var(--ps-entryButton-bg, var(--color-text-dark));
}

.c-header__entry-btn-text {
  color: var(--ps-entryButton-text, #ffffff);
  flex: 1;
  white-space: pre-line;
  text-align: var(--ps-entryButton-align, center);
}

/* モバイルナビCTAボタン: テンプレ共通CSS(c-mobile-nav__cta-btn)の色指定を二段フォールバック化。
   ナビ内に限定したセレクタで共通CSSより確実に優先する。 */
.c-mobile-nav .c-mobile-nav__cta-btn {
  background-color: var(--ps-button-bg, var(--color-accent));
}

.c-mobile-nav .c-mobile-nav__cta-btn-text {
  color: var(--ps-button-text, #ffffff);
  white-space: pre-line;
  text-align: var(--ps-button-align, center);
}

/* section-spacer-04 */
/* 空白（スペーサー） */
.p-section-spacer {
  /* 高さの初期値。インライン style の height が不正値のときのフォールバック */
  height: 4.8rem;
  background-color: var(--ps-section-bg, #ffffff);
}

/* section-image-01 */
.p-section-image__img {
  display: block;
  width: 100%;
  height: auto;
}

/* form-step-01 */
/* 応募フォーム（4ステップ）。色はテンプレ共通クラス（.c-form / .c-form__btn--next / form.css）由来のため、
   安全に二段化できる「進む・送信」ボタンとフォームカード背景だけを要素単位スタイルで上書き可能にする。
   ステップインジケーター（#fa861a 固定色）・戻るボタン（#e6e6e6 固定グレー）・入力欄・バッジ等は
   fallback token 表に対応する色を使っていない、またはテンプレJSへの依存が大きいため対象外（見送り）。
   .c-form__btn--next の矢印アイコンは stroke="currentColor" のためテキスト色に自動追従する。
   parts.css は style.css の後に読み込まれるためカスケードで優先される。 */
.c-form__btn--next {
  background-color: var(--ps-button-bg, var(--color-accent));
  color: var(--ps-button-text, var(--color-white));
}

.c-form__btn--next span {
  flex: 1;
  text-align: var(--ps-button-align, center);
}

.c-form {
  background-color: var(--ps-section-bg, var(--color-white));
}

/* section-title-eyebrow-02 */
/* ドット + 英語アイブロウ + 日本語タイトル（左寄せ・2段） */
.p-st-dot {
  padding: 2.4rem 1.6rem;
  text-align: left;
  /* ナビの目次アンカーとして使うため、固定ヘッダー分のオフセットを確保 */
  scroll-margin-top: 6rem;
}

.p-st-dot__eyebrow-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.p-st-dot__dot {
  flex: none;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background: var(--ps-eyebrow-bg, var(--color-main));
}

.p-st-dot__eyebrow {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ps-eyebrow-text, var(--color-main));
}

.p-st-dot__title {
  margin-top: 0.8rem;
  font-family: var(--font-family-primary);
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 1.4;
  color: var(--ps-heading-text, var(--color-text-dark));
}

/* cards-stats-02 */
/* ======== cards-stats-02（数字で見る◯◯） ======== */
.p-cards-stats {
  background-color: var(--ps-section-bg, var(--color-bg));
  padding: 4rem 0;
}

.p-cards-stats__wrap {
  width: 35.8rem;
  max-width: calc(100% - 3.2rem);
  margin: 0 auto;
}

.p-cards-stats__title {
  margin: 0 0 2.4rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--ps-heading-text, var(--color-text-dark));
  letter-spacing: 0.1rem;
  font-feature-settings: "palt" 1;
}

.p-cards-stats__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

.p-cards-stats__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background-color: var(--ps-card-bg, var(--color-white));
  border-radius: var(--radius-large);
  padding: 2rem 1.2rem;
  box-shadow: 0 0.2rem 0.8rem 0 rgba(0, 0, 0, 0.06);
  text-align: center;
}

.p-cards-stats__label {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-text);
}

.p-cards-stats__value-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.3rem;
}

.p-cards-stats__value {
  font-family: "Montserrat", sans-serif;
  font-size: 3.6rem;
  font-weight: 600;
  line-height: 1.1;
  color: var(--ps-stat-text, var(--color-main));
}

.p-cards-stats__unit {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-text);
}

.p-cards-stats__note {
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-text-muted);
}

.p-cards-stats__icon {
  display: block;
  margin-top: 0.8rem;
  color: var(--ps-stat-icon, var(--color-text-dark));
}

.p-cards-stats__icon svg {
  display: block;
  width: 4rem;
  height: 4rem;
}

/* cta-entry-inline-02 */
/* ページ内に差し込むCTAボタンのラッパ。追従版（.c-entry-btn）と違い固定表示しない。 */
.p-entry-inline {
  display: flex;
  justify-content: center;
  padding: 3.2rem 1.6rem;
}

.p-entry-inline__btn {
  width: 34.3rem;
  max-width: 100%;
}

/* 色はテンプレ共通クラス（.c-mobile-nav__cta-btn / common.css）由来のため、
   要素単位スタイル（--ps-button-*）で上書きできるよう最小限のオーバーライドを追加する。 */
.p-entry-inline__btn.c-mobile-nav__cta-btn {
  background-color: var(--ps-button-bg, var(--color-accent));
}

.p-entry-inline__btn .c-mobile-nav__cta-btn-text {
  color: var(--ps-button-text, var(--color-white));
  white-space: pre-line;
  text-align: var(--ps-button-align, center);
}

/* recruit-accordion-02 */
/* 複数行の説明文（"\n" 区切り）を改行として表示する。単行の場合は見た目に影響しない。 */
.p-recruit-accordion__text {
  white-space: pre-line;
}

/* card: カード背景(既定 #fff → white) をテーマ二段フォールバック化 */
.p-recruit-accordion__card {
  background-color: var(--ps-card-bg, var(--color-white));
}

/* ======== セクション区切り（.lp-divider）関連の調整 ======== */
/* カーブ区切りは次のセクションの先頭 4rem に重なるため、
   直後にくる CTA・フォームは上余白を広げてボタンやカードとの被りを防ぐ。 */
.lp-divider-host + .p-entry-inline,
.lp-divider-host + .lp-part-style-scope > .p-entry-inline {
  padding-top: 6.8rem;
}

.lp-divider-host + .p-form-step,
.lp-divider-host + .lp-part-style-scope > .p-form-step {
  padding-top: 7.2rem;
}

.lp-divider-host + .p-st-dot,
.lp-divider-host + .lp-part-style-scope > .p-st-dot {
  padding-top: 6.4rem;
}

/* ======== 背景色の統一（薄紫ベース） ======== */
/* フォームセクションは白カードが映えるよう、コンテンツ系セクション（#eeebf6）より
   ひとつ淡い薄紫で揃える。 */
.p-form-step {
  background-color: #f4f1fa;
}

/* ======== c-mobile-nav CTA（サイドバーと揃える） ======== */
.c-mobile-nav__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
}

.c-mobile-nav__cta > .c-mobile-nav__cta-btn {
  align-self: stretch;
}

.c-mobile-nav__cta-balloon {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.c-mobile-nav__cta-balloon-text {
  margin: 0;
  background-color: #222;
  border-radius: 1.7rem;
  padding: 0.4rem 1.6rem 0.6rem;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.c-mobile-nav__cta-balloon-tail {
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 6px solid #222;
}

/* ======== p-qa（よくある不安・ご質問） ======== */
.p-qa {
  background: linear-gradient(180deg, #f1eff8 0%, #e8e4f2 100%);
  padding: 3.2rem 0 4rem;
}

.p-qa__wrap {
  width: 35.8rem;
  max-width: calc(100% - 3.2rem);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.p-qa__card {
  display: grid;
  grid-template-columns: 1fr 11.6rem;
  grid-template-areas:
    "q q"
    "a person";
  column-gap: 1.2rem;
  background-color: var(--ps-card-bg, var(--color-white));
  border-radius: 2rem;
  padding: 2.4rem 2rem;
  box-shadow: 0 0.4rem 1.6rem 0 rgba(85, 81, 126, 0.1);
}

.p-qa__card--reverse {
  grid-template-columns: 11.6rem 1fr;
  grid-template-areas:
    "q q"
    "person a";
}

.p-qa__q-row {
  grid-area: q;
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
  padding-bottom: 1.4rem;
  border-bottom: 0.2rem dotted #b9b3d8;
}

.p-qa__q-num,
.p-qa__a-num {
  font-family: Georgia, "Times New Roman", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 3.4rem;
  font-weight: 400;
  line-height: 1;
  color: #55517e;
  flex: none;
}

.p-qa__a-num {
  font-size: 2.8rem;
}

.p-qa__q-text {
  margin: 0.5rem 0 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--color-text-dark);
  font-feature-settings: "palt" 1;
}

.p-qa__a-row {
  grid-area: a;
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
  padding-top: 1.6rem;
}

.p-qa__a-text {
  margin: 0.3rem 0 0;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--color-text);
  text-align: justify;
  font-feature-settings: "palt" 1;
}

.p-qa__person {
  grid-area: person;
  align-self: end;
  width: 100%;
  height: auto;
  display: block;
  margin-top: 1.6rem;
}

/* ======== p-night（夜勤の過ごし方） ======== */
.p-night {
  background-color: var(--ps-section-bg, #eeebf6);
  padding: 1.6rem 1.6rem 4rem;
}

.p-night__card {
  width: 35.8rem;
  max-width: 100%;
  margin: 0 auto;
  background-color: var(--ps-card-bg, var(--color-white));
  border-radius: 2rem;
  padding: 3.2rem 2.4rem;
  box-shadow: 0 0.4rem 1.6rem 0 rgba(85, 81, 126, 0.1);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.p-night__title {
  margin: 0;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: center;
  color: #55517e;
  font-feature-settings: "palt" 1;
}

.p-night__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-night__list-item {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  background-color: #f4f1fa;
  border-radius: 1.2rem;
  padding: 1.2rem 1.6rem;
}

.p-night__list-icon {
  flex: none;
  display: block;
  color: #8b7fb8;
}

.p-night__list-icon svg {
  display: block;
  width: 2.2rem;
  height: 2.2rem;
}

.p-night__list-text {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text);
}

.p-night__note {
  margin: -0.8rem 0 0;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  color: var(--color-text);
}

.p-night__closing {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2;
  text-align: center;
  color: #55517e;
}

.p-night__illust {
  display: block;
  width: 22rem;
  height: auto;
  margin: 0 auto;
  border-radius: 1.6rem;
}

/* ======== p-reason-card（選ばれる理由スライダーカード） ======== */
.p-reason-card {
  background-color: var(--ps-card-bg, var(--color-white));
  border-radius: 2rem;
  padding: 2rem 2rem 2.8rem;
  box-shadow: 0 0.4rem 1.6rem 0 rgba(85, 81, 126, 0.1);
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  height: 100%;
}

.p-reason-card__illust img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1.4rem;
}

.p-reason-card__title {
  margin: 0;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
  color: #55517e;
  font-feature-settings: "palt" 1;
}

.p-reason-card__divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 16rem;
  margin: 0 auto;
  color: #8b7fb8;
}

.p-reason-card__divider-line {
  flex: 1;
  height: 0.1rem;
  background-color: #c9c2e0;
}

.p-reason-card__divider svg {
  flex: none;
  display: block;
  width: 1.6rem;
  height: 1.6rem;
}

.p-reason-card__body {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.p-reason-card__text {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: var(--color-text);
  text-align: justify;
  font-feature-settings: "palt" 1;
}

/* ======== p-recruit-accordion リスタイル（LP トンマナ合わせ） ======== */
/* テンプレ既定（index.css）のグレー基調・オレンジアクセントを、
   LP の淡紫背景 + ピンクアクセントに上書きする。 */
.p-recruit-accordion {
  background-color: #eeebf6;
}

.p-recruit-accordion__card {
  border-radius: var(--radius-large);
  padding: 2.4rem 2rem;
  box-shadow: 0 0.4rem 1.6rem 0 rgba(85, 81, 126, 0.1);
}

.p-recruit-accordion__title {
  border-left: 0.4rem solid var(--color-main);
  padding-left: 1.2rem;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-text-dark);
}

.p-recruit-accordion__item {
  gap: 0.8rem;
}

.p-recruit-accordion__label {
  background-color: #f0edf8;
  border-radius: 0.8rem;
  padding: 0.9rem 1.2rem;
  color: #55517e;
}

.p-recruit-accordion__text,
.p-recruit-accordion__text p {
  color: var(--color-text);
  letter-spacing: 0.04em;
  line-height: 1.8;
}

.p-recruit-accordion__toggle {
  color: var(--color-main);
}

.p-recruit-accordion__fade {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 71.831%);
}

/* ======== Turnstile ウィジェット（フォーム内） ======== */
.c-form__turnstile {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
  min-height: 65px;
}

/* ======== p-thx（サンクスページ） ======== */
/* Figma SP_サンクスページ の構成を LP トンマナ（ピンク #D46582 / 淡紫 #f4f1fa / #55517e）に置き換えたもの。
   旧テンプレの .p-thanks とは独立したブロックとして定義する。 */
.p-thx {
  background-color: var(--color-white);
  /* 上部は固定ヘッダー（c-common-header）の高さぶんを含めて確保する */
  padding: 10.4rem 1.6rem 6rem;
}

.p-thx__wrap {
  width: 35.8rem;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}

/* ---- ヒーロー ---- */
.p-thx__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}

/* 吹き出し + チェックのアイコン */
.p-thx__check {
  position: relative;
  width: 5rem;
  height: 4.4rem;
  border-radius: 1rem;
  background-color: var(--color-accent);
}

.p-thx__check-mark {
  position: absolute;
  left: 1.85rem;
  top: 1.1rem;
  width: 1.1rem;
  height: 1.9rem;
  border-right: 0.4rem solid #fff;
  border-bottom: 0.4rem solid #fff;
  transform: rotate(45deg);
}

.p-thx__check-tail {
  position: absolute;
  left: 0.9rem;
  bottom: -0.7rem;
  width: 0;
  height: 0;
  border-left: 0.7rem solid transparent;
  border-right: 0.7rem solid transparent;
  border-top: 0.8rem solid var(--color-accent);
}

.p-thx__title {
  margin: 0.8rem 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--color-accent);
  text-align: center;
  font-feature-settings: "palt" 1;
}

.p-thx__illust {
  display: block;
  width: 17.8rem;
  height: auto;
}

.p-thx__greeting {
  width: 100%;
  background-color: #55517e;
  border-radius: 0.8rem;
  padding: 1.6rem;
}

.p-thx__greeting-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "palt" 1;
}

/* ---- ご応募からのステップ ---- */
.p-thx__steps {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}

.p-thx__steps-title {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--color-text-dark);
  text-align: center;
  font-feature-settings: "palt" 1;
}

.p-thx__steps-flow {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-thx__step {
  width: 100%;
  background-color: #f4f1fa;
  border-radius: 1.2rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.p-thx__step-head {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid #c9c2e0;
  text-align: center;
}

.p-thx__step-num {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--color-main);
}

.p-thx__step-name {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  color: var(--color-text-dark);
  font-feature-settings: "palt" 1;
}

.p-thx__step-text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--color-text);
  font-feature-settings: "palt" 1;
}

/* 最終ステップ（内定・入社）は反転カードで強調 */
.p-thx__step--goal {
  background-color: #55517e;
}

.p-thx__step--goal .p-thx__step-head {
  border-bottom-color: rgba(255, 255, 255, 0.5);
}

.p-thx__step--goal .p-thx__step-num,
.p-thx__step--goal .p-thx__step-name,
.p-thx__step--goal .p-thx__step-text {
  color: var(--color-white);
}

/* ステップ間のつなぎ線（4本のグラデーション縦線） */
.p-thx__step-connector {
  display: flex;
  gap: 0.1rem;
}

.p-thx__step-connector span {
  width: 0.1rem;
  height: 2.4rem;
  background: linear-gradient(180deg, #f4f1fa 0%, #8b7fb8 100%);
}

/* ---- メール案内 ---- */
.p-thx__address {
  background-color: #f4f1fa;
  border-radius: 1.2rem;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--color-text-dark);
  font-feature-settings: "palt" 1;
}

.p-thx__address-highlight {
  background-color: var(--color-white);
  border-radius: 0.8rem;
  padding: 1.2rem;
}

.p-thx__address-highlight-text {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.p-thx__address-email {
  color: var(--color-link);
  word-break: break-all;
}

.p-thx__address-text {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.p-thx__address-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-thx__address-item {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.p-thx__address-note {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

/* ---- 戻るボタン ---- */
/* c-form__submit-btn（form.css）を <a> で流用するための最小上書き */
.p-thx__back-btn {
  text-decoration: none;
  box-sizing: border-box;
}

/* footer-01 */
/* シンプルフッター。「上へ戻る」帯の色はテンプレ共通クラス（.c-footer__totop / index.css・common.css）由来。
   index.css は common.css の後に読み込まれ同一詳細度で上書きするため、実効色は index.css の値
   （bg: #333 = --color-text, text: #fff = white）。要素単位スタイル（--ps-band-*）で上書きできるよう
   最小限のオーバーライドを追加する（parts.css は style.css の後に読み込まれカスケードで優先される）。 */
.c-footer__totop {
  background-color: var(--ps-band-bg, var(--color-text));
}

.c-footer__totop-text {
  flex: 1;
  color: var(--ps-band-text, var(--color-white));
  white-space: pre-line;
  text-align: var(--ps-band-align, center);
}