/* ============================================================
   utilities.css
   全ページ共通ユーティリティ
   - インラインstyle分離クラス
   - パンくず統一余白
   - 「もっと見る」ボタン余白
   - section-label バリアント
   ============================================================ */


/* ===== section-label バリアント ===== */
.section-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--pink-main);
  margin-bottom: 10px;
  display: block;
}
.section-label--pink  { color: rgba(240,62,122,0.85); }
.section-label--light { color: rgba(255,214,229,0.85); }  /* ダーク背景用 */
.section-label--mb    { margin-bottom: 8px; }
.section-label--mb16  { margin-bottom: 16px; }


/* ===== パンくず 統一余白 ===== */
/* 全ページ共通：本文エリア最上部 */
.section-inner  > .ladyreq-breadcrumb,
.content-inner  > .ladyreq-breadcrumb,
.contact-inner  > .ladyreq-breadcrumb,
.exp-inner      > .ladyreq-breadcrumb,
.flow-page-inner > .ladyreq-breadcrumb,
.travel-inner   > .ladyreq-breadcrumb,
.news-arc-body .section-inner > .ladyreq-breadcrumb,
.col-arc-body  .section-inner > .ladyreq-breadcrumb,
.faq-arc-body  .section-inner > .ladyreq-breadcrumb {
  margin-top: 0;
  margin-bottom: 28px;
  padding-top: 0;
}

/* ダーク背景ページ用（voice/column/treatment/single系） */
.voice-archive-body .ladyreq-breadcrumb a,
.col-arc-body       .ladyreq-breadcrumb a,
.armt-body          .ladyreq-breadcrumb a,
.strmt-inner        .ladyreq-breadcrumb a { color: rgba(255,255,255,0.32); }
.voice-archive-body .ladyreq-breadcrumb a:hover,
.col-arc-body       .ladyreq-breadcrumb a:hover,
.armt-body          .ladyreq-breadcrumb a:hover,
.strmt-inner        .ladyreq-breadcrumb a:hover { color: var(--pink-main); }
.voice-archive-body .ladyreq-breadcrumb span,
.col-arc-body       .ladyreq-breadcrumb span,
.armt-body          .ladyreq-breadcrumb span,
.strmt-inner        .ladyreq-breadcrumb span { color: rgba(255,255,255,0.3); }


/* ===== 「もっと見るボタン」周辺の余白統一 ===== */
/* トップページ各セクションのもっと見るボタン */
.news-more-wrap,
.treatment-more-wrap,
.column-more-wrap,
.voice-more-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 26px;
}

/* archiveページのページネーション上下余白統一 */
.news-arc-pager,
.col-arc-pager,
.armt-pager,
.faq-arc-pager {
  text-align: center;
  margin: 42px 0 40px;
}

/* ページネーション共通 */
.news-arc-pager .page-numbers,
.col-arc-pager  .page-numbers,
.armt-pager     .page-numbers,
.faq-arc-pager  .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 10px;
  border-radius: 50px;
  margin: 0 3px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
/* ライトページ用 */
.news-arc-pager .page-numbers {
  color: var(--navy);
  border: 1px solid rgba(30,34,64,0.15);
}
.news-arc-pager .page-numbers.current,
.news-arc-pager .page-numbers:hover {
  background: var(--pink-main); color: #fff; border-color: var(--pink-main);
}
/* ダークページ用 */
.col-arc-pager .page-numbers,
.armt-pager    .page-numbers,
.faq-arc-pager .page-numbers {
  color: rgba(255,255,255,0.6);
  border: 1px solid rgba(255,255,255,0.12);
}
.col-arc-pager .page-numbers.current,
.col-arc-pager .page-numbers:hover,
.armt-pager    .page-numbers.current,
.armt-pager    .page-numbers:hover,
.faq-arc-pager .page-numbers.current,
.faq-arc-pager .page-numbers:hover {
  background: var(--pink-main); color: #fff; border-color: var(--pink-main);
}


/* ===== インラインstyle分離クラス ===== */

/* 給与金額 */
.salary-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--pink-main);
  line-height: 1.2;
}

/* チェックリスト */
.check-list {
  margin-top: 10px;
  padding-left: 18px;
  line-height: 2;
  color: var(--gray-text);
}
.check-list li::marker { color: var(--pink-main); }

/* テキストリンク */
.text-link {
  color: var(--pink-main);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity .2s;
}
.text-link:hover { opacity: .7; }

/* ボタン中央寄せラッパー */
.btn-center-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 26px;
}

/* section-label--mb の下余白 */
.section-label--mb  { margin-bottom: 8px; }
.section-label--mb16 { margin-bottom: 16px; }

/* フォームお知らせ */
.cf7-notice {
  background: var(--pink-pale);
  padding: 18px 16px;
  border-radius: 12px;
  color: var(--gray-text);
  font-size: 14px;
  line-height: 1.8;
  display: block;
  margin-bottom: 16px;
}

/* 個人情報見出し */
.privacy-ttl {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
  font-weight: 700;
}

/* contact-info-card small */
.contact-info-card--sm {
  font-size: 13px;
  color: var(--gray-text);
}

/* ハイライトノート（experienced/travel共通） */
.highlight-note {
  background: var(--pink-pale);
  border-radius: 14px;
  padding: 16px 26px;
  margin-top: 16px;
  border-left: 4px solid var(--pink-main);
}
.highlight-note__text {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--gray-text);
  line-height: 1.9;
}

/* voiceの続きを読む */
.voice-read-more {
  font-size: 12px;
  color: var(--pink-main);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  text-decoration: none;
  transition: gap .2s;
}
.voice-read-more:hover { gap: 7px; }

/* btn-outline小 */
.btn-outline--sm { font-size: 12px; }

/* カード内リンクラッパー */
.fi-card-link-wrap { margin-top: 10px; }

/* note-text（travel等の注意書き） */
.note-text {
  font-size: 13px;
  color: var(--gray-text);
  line-height: 1.8;
  margin-top: 8px;
}

/* sub-nav（経験者・遠方ページ） */
.sub-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 26px;
}

/* col-link 小サイズ */
.col-link--sm { font-size: 10px; }


/* ===== FAQ archiveページ専用 ===== */
.faq-arc-page { background: var(--navy); min-height: 100vh; }

.faq-arc-hero {
  position: relative;
  padding: 68px 26px 68px;
  text-align: center;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,214,229,0.10);
}
.faq-arc-hero-deco {
  position: absolute; right: -10px; bottom: -18px;
  font-size: clamp(68px,12vw,140px);
  font-family: 'Noto Serif JP',serif; font-weight: 700;
  color: rgba(255,255,255,0.028); line-height: 1;
  pointer-events: none; user-select: none;
  letter-spacing: .06em; white-space: nowrap;
}
.faq-arc-hero-inner { position: relative; z-index:1; max-width: 640px; margin: 0 auto; }
.faq-arc-title {
  font-family: 'Noto Serif JP',serif;
  font-size: clamp(26px,5vw,40px); font-weight: 700;
  color: #fff; margin: 12px 0 16px; line-height: 1.3;
}
.faq-arc-lead { font-size: 14px; color: rgba(255,255,255,0.5); line-height: 2.0; }

.faq-arc-body { padding: 52px 0 80px; }
.faq-arc-empty { color: rgba(255,255,255,0.4); text-align: center; padding: 40px 0; }

@media(max-width:640px){
  .faq-arc-hero { padding: 56px 20px 44px; }
  .btn-center-wrap { flex-direction: column; }
  .btn-center-wrap .btn-primary,
  .btn-center-wrap .btn-outline { width: 100%; text-align: center; }
}

/* ============================================================
   No-Image 共通スタイル
   .ladyreq-noimg がついたすべての no-image 画像に適用
   ============================================================ */

/* 基本：親要素いっぱいに広がるobject-fit */
.ladyreq-noimg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ---- アーカイブ・カード系サムネ ---- */

/* お知らせ archive */
.narc-thumb-noimg {
  width: 100%;
  height: 100%;
  background: var(--gray-light, #f2f2f4);
}
.narc-thumb-noimg .ladyreq-noimg {
  opacity: .75;
}

/* コラム カード thumbnail */
.col-thumb-noimg {
  width: 100%;
  height: 100%;
  background: #f0eef4;
  display: flex;
  align-items: center;
  justify-content: center;
}
.col-thumb-noimg .ladyreq-noimg {
  opacity: .72;
}

/* 待遇 archive カードサムネ */
.treatment-card-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 10px 10px 0 0;
  background: #f0eef4;
}
.treatment-card-thumb .ladyreq-noimg,
.treatment-card-thumb .treatment-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---- single hero系 ---- */

/* single-news ヒーロー noimg */
.snews-hero-bg--noimg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.snews-hero-bg--noimg .ladyreq-noimg,
.snews-hero-noimg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .45;
  filter: blur(2px) saturate(.6);
  transform: scale(1.04);
}

/* single-column ヒーロー noimg */
.scol-hero-bg--noimg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.scol-hero-bg--noimg .ladyreq-noimg,
.scol-hero-noimg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .35;
  filter: blur(3px) saturate(.5);
  transform: scale(1.04);
}

/* single-column 関連記事サムネ */
.scol-rel-thumb-noimg {
  width: 100%;
  height: 100%;
  background: #f0eef4;
}
.scol-rel-thumb-noimg .ladyreq-noimg {
  opacity: .75;
}

/* ---- レスポンシブ：カードサムネ高さ ---- */
/* お知らせ archive (.narc-thumb) → CSS側で定義済みの場合はそちらが優先 */
@media (max-width: 640px) {
  .treatment-card-thumb { aspect-ratio: 16 / 7; }
}

/* CTAセクション直前の下余白をSPで削減 */
@media (max-width: 640px) {
  .content-page,
  .exp-page,
  .flow-page-section,
  .travel-page,
  .faq-arc-body,
  .voice-archive-body,
  .news-arc-body,
  .armt-body,
  .column-arc-body { padding-bottom: 16px !important; }
}
