@charset "UTF-8";
/*
 * ======================================
 * にこにこ三豊 サイト固有CSS
 * ======================================
 *
 * 【元データ（claude-design-output/）の実数値 — 目視推定は禁止。以降はこの値が基準】
 *
 *  コンテナ最大幅 ........ 1300px（左右 padding 24px → 実コンテンツ幅 1252px）
 *  ヘッダー内側幅 ........ 96%（padding 12px 0 / gap 24px / align-items:stretch）
 *  セクション上下 padding
 *    TOP  MV .............. margin 22px auto 0（幅96%）
 *         SERVICE ......... 116px 24px 0
 *         ABOUT帯 ......... margin-top 96px ＋ padding 84px 0
 *         RECRUIT ......... 130px 24px 0
 *         NEWS ............ 90px 24px 0
 *         OFFICE帯 ........ margin-top 96px ＋ padding 84px 0
 *         CTA ............. 90px 24px 100px
 *    下層 ヒーロー ........ 66px 0
 *         1本目セクション .. 84px 24px 0
 *         色帯 ............ margin-top 92px ＋ padding 84px 0
 *         以降セクション ... 90px 24px 0
 *  基準 gap .............. 56px（2カラム）/ 30px（サービス3枚）/ 26px・28px・22px（カード）
 *  カラム比率 ............ 下記 .nk-split--* の grid-template-columns に実数記載
 *
 *  配色  #f2c900 メイン黄 / #ff9538 オレンジ / #e07a17 濃オレンジ
 *        #fffdf7 body / #fff6dc セクション帯 / #ffe3c3 罫線 / #fff2dd 淡オレンジ
 *        #3f362b 本文 / #5d5142・#4f4536 本文濃 / #6d6152 補助 / #8a7454・#b09a75 ラベル
 *        #d9c9a8・#ead9b6・#f0e3c8・#cbb794 罫線系 / #e0a93a 第3アクセント
 *  影    カード 0 2px 14px rgba(180,150,90,.10) → hover 0 8px 22px rgba(180,150,90,.18)
 *        ボタン 0 4px 0 #e07a17 → hover 0 4px 0 #d4ae00
 *        MVコピー 5px/6px 5px/6px 0 rgba(242,201,0,0.9)
 *
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .nk-container / .nk-sec / .nk-band          - 1300px コンテナ・セクション余白・色帯
 * .nk-eyebrow / .nk-h2 / .nk-h3 / .nk-lead    - 英字ラベル付き見出しセット
 * .nk-btn（--orange/--outline/--fill ほか）    - 角丸pill＋下方向ベタ影ボタン
 * .nk-pill / .nk-badge                        - Instagram導線・種別バッジ
 * .nk-header* / .nk-footer*                   - 2段ナビヘッダー・4列ナビフッター
 * .nk-mv*                                     - 左下だけ大きく丸いMV枠（CMSスライダー差替対応）
 * .nk-svc-card                                - 上部が半円のサービスカード
 * .nk-news-row / .nk-mag                      - 新着情報行・広報誌ボックス
 * .nk-card / .nk-cta / .nk-voice / .nk-merit  - 白カード・CTA枠・お客様の声・魅力カード
 * .nk-dl / .nk-jobrow                         - 法人概要・募集要項の定義リスト
 * .nk-form-*                                  - フォーム（種別ラジオカード含む）
 * .nk-fz-* / .nk-mt-* / .nk-mb-* / .nk-gap-*
 * .nk-h-* / .nk-r-* / .nk-photo               - 値の粒度を補うサイト内utility
 * .nk-fade                                    - スクロールふわっとフェードイン
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * ・値の粒度不足
 *     fz-* に 11/15/17/19/21/23/26/30/34/44/84px がない（元データが多用）
 *     余白 utility が 5px 刻み以上のみで 8/12/18/22/26/34/38/44/48px を作れない
 *     gap utility に 8/12/14/18/22/24/26/28/36/44/48/56/64px がない
 *     h-* に 190/210/220/240/320/340/420/460/470px がない
 *     container が 1200/1500px の2択で 1300px を作れない
 * ・指定方向不足
 *     角丸を1隅だけ極端に大きくする指定（MV枠 40/40/40/180px、
 *     サービスカード 999/999/20/20px）が rounded-* にない
 * ・状態不足
 *     hover で「影の色と文字色を同時に反転」する組み合わせがない
 *     （hover-shadow は $shadow_base 固定で、下方向ベタ影を作れない）
 * ・構造不足
 *     ヘッダーが「ロゴ｜(上:サブ導線 / 下:ナビ)｜右端に食い込む電話ブロック」の
 *     2段構造に対応していない（header__inner は1行flex固定）
 *     フッターが「背景イラスト＋左情報4列ナビ＋右Map/CTA」構成に対応していない
 * ・装飾パターン不足
 *     ドット地の淡色ページヒーロー（radial-gradient 18px 市松）がない
 *     ボタンの「下方向ベタ影（0 4px 0）」プリセットがない
 *
 */

/* ==========================================================================
   1. ベース調整
   ========================================================================== */
body {
  font-weight: 500;
}

a {
  color: #e07a17;
}

a:hover {
  color: #f2c900;
  opacity: 1;
}

img {
  max-width: 100%;
}

/* ==========================================================================
   3. レイアウト
   ========================================================================== */
.nk-container {
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 24px;
}

.nk-sec {
  position: relative;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 90px 24px 0;
}

.nk-sec--pt84 { padding-top: 84px; }
.nk-sec--pt116 { padding-top: 116px; }
.nk-sec--pt130 { padding-top: 130px; }
.nk-sec--pb100 { padding-bottom: 100px; }
.nk-sec--cta { padding: 90px 24px 100px; z-index: 3; }

/* 色帯セクション（#fff6dc） */
.nk-band {
  margin-top: 96px;
  padding: 84px 0;
  background: #fff6dc;
}

.nk-band--sub { margin-top: 92px; }
.nk-band--clip { position: relative; overflow: hidden; }

/* grid カラム比率（元データの grid-template-columns をそのまま実数で保持） */
.nk-split {
  display: grid;
  gap: 56px;
}

.nk-split--half { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nk-split--third { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nk-split--txt-img400 { grid-template-columns: minmax(0, 1fr) minmax(260px, 400px); }
.nk-split--img400-txt { grid-template-columns: minmax(260px, 400px) minmax(0, 1fr); }
.nk-split--txt-img420 { grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); }
.nk-split--img340-txt { grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); }
.nk-split--txt-img230 { grid-template-columns: minmax(0, 1fr) minmax(180px, 230px); }
.nk-split--img300-txt { grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); }
.nk-split--txt-map { grid-template-columns: minmax(0, 1fr) minmax(150px, 200px); }
.nk-split--form { grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); }
.nk-split--news { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
.nk-split--recruit { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }

.nk-stack {
  display: flex;
  flex-direction: column;
}

/* ==========================================================================
   4. 見出し・テキスト
   ========================================================================== */
.nk-eyebrow {
  font-family: "Quicksand", sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: normal;
  color: #ff9538;
}

.nk-h1 {
  margin: 8px 0 0;
  font-size: 4rem;
  font-weight: 600;
  line-height: normal;
}

.nk-h2 {
  margin: 0;
  font-size: 3.2rem;
  font-weight: 600;
  line-height: normal;
}

.nk-h3 {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: normal;
}

.nk-lead {
  margin: 0;
  font-size: 1.7rem;
  line-height: 1.95;
  color: #6d6152;
}

.nk-lead--16 {
  font-size: 1.6rem;
}

/* 本文（元データ 17px / line-height 2.05〜2.1 / #5d5142） */
.nk-txt {
  margin: 0;
  font-size: 1.7rem;
  line-height: 2.05;
  color: #5d5142;
  text-wrap: pretty;
}

.nk-txt--21 { line-height: 2.1; }
.nk-txt--muted { color: #6d6152; }

.nk-note {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #6d6152;
  text-wrap: pretty;
}

.nk-note--2 { line-height: 2; }
.nk-note--195 { line-height: 1.95; }

/* ==========================================================================
   5. ボタン
   ========================================================================== */
.nk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  font-size: 1.5rem;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.nk-btn--orange {
  padding: 16px 36px;
  background: #ff9538;
  color: #fff;
  box-shadow: 0 4px 0 #e07a17;
}

.nk-btn--orange:hover {
  background: #f2c900;
  color: #4a3b12;
  box-shadow: 0 4px 0 #d4ae00;
  opacity: 1;
}

/* ヘッダー内（影なし・小さめ） */
.nk-btn--head {
  padding: 9px 26px;
  font-size: 1.4rem;
  box-shadow: none;
}

.nk-btn--head:hover {
  box-shadow: 0 4px 0 #d4ae00;
}

.nk-btn--wide { padding: 16px 38px; }
.nk-btn--narrow { padding: 16px 34px; }
.nk-btn--submit {
  padding: 16px 48px;
  font-size: 1.6rem;
  border: 0;
  cursor: pointer;
  font-family: inherit;
}

.nk-btn--foot {
  display: block;
  width: 100%;
  padding: 15px;
  font-weight: 500;
  text-align: center;
}

.nk-btn--block {
  display: flex;
  width: 100%;
}

/* 枠線（hover は淡オレンジ塗り） */
.nk-btn--outline {
  padding: 14px 34px;
  background: #fff;
  border: 2px solid #ff9538;
  color: #e07a17;
}

.nk-btn--outline:hover {
  background: #fff2dd;
  color: #e07a17;
  opacity: 1;
}

/* 枠線（hover でオレンジ塗り反転） */
.nk-btn--fill {
  padding: 13px 30px;
  background: #fff;
  border: 2px solid #ff9538;
  color: #e07a17;
}

.nk-btn--fill--lg { padding: 14px 30px; }

.nk-btn--fill:hover {
  background: #ff9538;
  color: #fff;
  opacity: 1;
}

/* カード内の「詳しく見る」枠 */
.nk-btn-ghost {
  display: block;
  margin-top: 26px;
  padding: 11px 30px;
  border: 1.5px solid #cbb794;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #5d5142;
}

/* 電話（大） */
.nk-tel-lg {
  font-size: 2.6rem;
  font-weight: 700;
  color: #3f362b;
  white-space: nowrap;
}

.nk-tel-lg:hover { color: #e07a17; }

/* Instagram等のピル型導線 */
.nk-pill {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  border: 1.5px solid #d9c9a8;
  border-radius: 999px;
  font-size: 1.25rem;
  font-weight: 600;
  color: #6d6152;
  white-space: nowrap;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.nk-pill:hover {
  border-color: #ff9538;
  color: #e07a17;
  opacity: 1;
}

/* 種別バッジ */
.nk-badge {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: normal;
}

.nk-badge--yellow { background: #f2c900; color: #4a3b12; }
.nk-badge--orange { background: #ff9538; color: #fff; }
.nk-badge--sm { padding: 5px 14px; font-size: 1.2rem; }


/* ==========================================================================
   6. ヘッダー
   ========================================================================== */
.nk-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 253, 247, 0.97);
  backdrop-filter: blur(6px);
}

.nk-header__inner {
  display: flex;
  align-items: stretch;
  gap: 24px;
  width: 96%;
  margin: 0 auto;
  padding: 12px 0;
}

.nk-header__logo {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 14px;
  color: inherit;
}

.nk-header__logo:hover { color: inherit; opacity: 1; }

.nk-header__logo img {
  width: 104px;
  height: auto;
}

.nk-header__logo-name {
  display: block;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.nk-header__logo-en {
  display: block;
  margin-top: 3px;
  font-family: "Quicksand", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: normal;
  color: #b09a75;
}

.nk-header__center {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}

.nk-header__utility {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.nk-header__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}

.nk-header__nav-item {
  padding: 8px 11px;
  border-radius: 999px;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: #3f362b;
  background: transparent;
}

.nk-header__nav-item:hover {
  background: #fff2c9;
  color: #3f362b;
  opacity: 1;
}

.nk-header__nav-item.is-current {
  background: #fff2c9;
  color: #e07a17;
}

/* 右端に食い込む電話ブロック（元データ margin-right:-2.084% ＝ 意図的なはみ出し） */
.nk-header__tel-wrap {
  display: flex;
  flex: 0 0 auto;
  align-items: stretch;
  margin-right: -2.084%;
  white-space: nowrap;
}

.nk-header__tel {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 0 26px 0 30px;
  border-radius: 18px 0 0 18px;
  background: #fff;
  color: #3f362b;
  line-height: 1.2;
}

.nk-header__tel:hover { color: #e07a17; opacity: 1; }

.nk-header__tel-label {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #b09a75;
}

.nk-header__tel-num {
  font-size: 3rem;
  font-weight: 700;
}

/* SPナビ（共通 .sp-nav の配色をサイトのトンマナに合わせる） */
.sp-nav {
  background: linear-gradient(135deg, rgba(255, 246, 220, 0.985), rgba(255, 227, 195, 0.99));
}

.sp-nav__item,
.sp-nav__item:first-child {
  border-color: rgba(176, 154, 117, 0.35);
}

.sp-nav__link { color: #3f362b; }
.sp-nav__link:hover { background: rgba(255, 255, 255, 0.55); }
.sp-nav__en { color: #b09a75; opacity: 1; }

.sp-nav__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
}

.nk-spnav__tel {
  font-size: 2.6rem;
  font-weight: 700;
  color: #3f362b;
}

.nk-spnav__sns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  font-size: 1.2rem;
  font-weight: 500;
}

.nav-toggle { background: rgba(255, 253, 247, 0.88); }

/* ==========================================================================
   7. フッター
   ========================================================================== */
.nk-footer {
  position: relative;
  margin-top: 0;
  background: transparent;
}

.nk-footer__bg {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 0;
  width: 100%;
  height: auto;
}

.nk-footer__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 56px;
  max-width: 1300px;
  margin: 0 auto;
  padding: 56px 24px 0;
}

.nk-footer__logo {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
}

.nk-footer__logo img {
  width: 96px;
  height: auto;
}

.nk-footer__name {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: normal;
}

.nk-footer__en {
  margin-top: 6px;
  font-family: "Quicksand", sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  line-height: normal;
  color: #b09a75;
}

.nk-footer__addr {
  margin: 0 0 8px;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #6d6152;
}

.nk-footer__addr--last { margin-bottom: 22px; }

.nk-footer__nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 22px;
  font-size: 1.4rem;
}

.nk-footer__nav a { color: #6d6152; }
.nk-footer__nav a:hover { color: #e07a17; opacity: 1; }

.nk-footer__map {
  display: block;
  width: 100%;
  height: 190px;
  margin-bottom: 18px;
  border: 0;
  border-radius: 18px;
}

.nk-footer__sns {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 16px;
  font-size: 1.2rem;
  font-weight: 500;
}

.nk-footer__bottom {
  position: relative;
  z-index: 1;
  margin-top: 56px;
  border-top: 1px solid #ffe3c3;
}

.nk-footer__copy {
  max-width: 1300px;
  margin: 0 auto;
  padding: 20px 24px;
  font-size: 1.2rem;
  line-height: normal;
  color: #b09a75;
}

/* ==========================================================================
   8. メインビュー（#slideshow ＝ CMSスライダー差替枠）
   ========================================================================== */
.nk-mv {
  position: relative;
  width: 96%;
  margin: 22px auto 0;
}

.nk-mv__frame {
  position: relative;
  height: 680px;
  overflow: hidden;
  border-radius: 40px 40px 40px 180px;
  background: #fff6dc;
}

#slideshow {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 680px;
}

#slideshow .swiper-slide {
  width: 100%;
  height: 100%;
}

#slideshow .swiper-slide img,
#slideshow .main_slider__inner {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nk-mv__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 24px;
}

.nk-mv__ttl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: flex-start;
  gap: 14px;
  margin: 0;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.nk-mv__catch {
  display: inline-block;
  padding: 10px 28px;
  border-radius: 16px;
  background: #fffdf7;
  font-size: 2.6rem;
  letter-spacing: 0.14em;
  color: #e07a17;
  box-shadow: 5px 5px 0 rgba(242, 201, 0, 0.9);
}

.nk-mv__line {
  display: inline-block;
  padding: 12px 34px;
  border-radius: 16px;
  background: #fffdf7;
  font-size: 4.4rem;
  line-height: 1.35;
  color: #3f362b;
  box-shadow: 6px 6px 0 rgba(242, 201, 0, 0.9);
}

/* 山・海のイラストは画面の左端に付ける。
   .nk-mv は width:96% で中央寄せ＝左に2vwの余白があるため、その分を戻す。 */
.nk-mv__illust {
  position: absolute;
  left: -2.4%;
  bottom: -34px;
  z-index: 2;
  width: 46%;
  height: auto;
}

/* ==========================================================================
   9. 装飾イラスト（セクション上の絶対配置）
   ========================================================================== */
.nk-deco {
  position: absolute;
  height: auto;
  pointer-events: none;
}

/* ゆっくりした浮遊（ラフ「イラストあしらいのゆっくりした浮遊アニメ」／共通 keyframes fuwafuwa を利用） */
.nk-deco--float { animation: fuwafuwa 6s ease-in-out infinite; }
.nk-deco--float-slow { animation: fuwafuwa 8s ease-in-out 1s infinite; }

/* TOP：SERVICE */
.nk-deco--top-cloud { right: 6%; top: 20px; width: 220px; opacity: 0.9; }
.nk-deco--top-bird { left: 8%; top: 108px; width: 64px; }
.nk-deco--top-fish { right: 7%; top: 132px; width: 92px; }
/* TOP：RECRUIT / NEWS / CTA */
.nk-deco--top-recruit { right: 46px; top: 18px; z-index: 3; width: 170px; }
.nk-deco--top-wash { left: -90px; top: 30px; width: 420px; opacity: 0.5; }
.nk-deco--top-ctadots { right: 6px; top: 34px; width: 190px; opacity: 0.9; }
/* 私たちについて */
.nk-deco--about-wash { right: -60px; top: -40px; width: 300px; opacity: 0.45; }
.nk-deco--about-cloud { right: 2%; top: 12px; width: 180px; opacity: 0.85; }
.nk-deco--about-bird { left: 4%; top: 66px; width: 56px; }
/* 訪問介護・居宅介護支援 */
.nk-deco--hc-wash { left: -110px; top: -10px; width: 380px; opacity: 0.42; }
/* デイサービス */
.nk-deco--ds-fish { left: 2%; top: -6px; width: 84px; }
.nk-deco--ds-wash { right: -40px; top: 20px; width: 260px; opacity: 0.4; }
.nk-deco--ds-family { left: 3%; top: -14px; width: 180px; }
/* まごころケア・福祉輸送 */
.nk-deco--ls-cloud { right: 1%; top: -18px; width: 190px; opacity: 0.85; }
/* 採用情報 */
.nk-deco--rc-wash { left: -120px; top: -20px; width: 360px; opacity: 0.4; }
.nk-deco--rc-bird { left: 40%; top: -24px; width: 54px; }
.nk-deco--rc-fish { right: 1%; top: 18px; z-index: 0; width: 80px; }

/* ==========================================================================
   10. サービスカード（TOP）
   ========================================================================== */
.nk-svc-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 26px 26px 34px;
  border-radius: 999px 999px 20px 20px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(180, 150, 90, 0.10);
  text-align: center;
  color: #3f362b;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.nk-svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(180, 150, 90, 0.18);
  color: #3f362b;
  opacity: 1;
}

.nk-svc-card__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: 100%;
  height: 240px;
  border-radius: 999px 999px 12px 12px;
}

.nk-svc-card__thumb img {
  width: 86%;
  height: 86%;
  object-fit: contain;
}

.nk-svc-card__ttl {
  display: block;
  margin: 30px 0 0;
  padding-bottom: 10px;
  border-bottom: 3px dotted #f2c900;
  font-size: 2.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: normal;
}

.nk-svc-card__txt {
  display: block;
  margin: 22px 0 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #6d6152;
}

/* ==========================================================================
   11. TOP：採用バナー / 新着情報 / 広報誌 / 事業所案内
   ========================================================================== */
.nk-recruit-en {
  position: relative;
  z-index: 2;
  margin: 0 0 -30px 34px;
  font-family: "Quicksand", sans-serif;
  font-size: 8.4rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1;
  color: #f2c900;
}

.nk-recruit-box {
  position: relative;
  padding: 76px 60px 66px;
  border-radius: 40px;
  background: #fff6dc;
}

.nk-news-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #f0e3c8;
}

.nk-news-row {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 22px 4px;
  border-bottom: 1px solid #f0e3c8;
  transition: background 0.2s ease;
}

.nk-news-row:hover { background: #fffaee; }

.nk-news-row__date {
  flex: 0 0 92px;
  font-family: "Quicksand", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #b09a75;
}

.nk-news-row__ttl {
  font-size: 1.6rem;
  line-height: 1.7;
}

/* 広報誌ボックス（外枠の幅・余白・背景は元データのまま）
   上段：左=表紙 / 右=テキスト  下段：PDFリンク3件を横並び */
.nk-mag {
  padding: 28px 26px 32px;
  border-radius: 24px;
  background: #fff6dc;
}

.nk-mag__head {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

.nk-mag__label {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #5d5142;
}

.nk-mag__label::before,
.nk-mag__label::after {
  content: "";
  display: block;
  width: 2px;
  height: 22px;
  background: #d9c79c;
}

.nk-mag__label::before { transform: rotate(-22deg); }
.nk-mag__label::after { transform: rotate(22deg); }

.nk-mag__img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 0 6px 20px rgba(150, 120, 60, 0.18);
}

.nk-mag__name {
  margin: 0 0 8px;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: normal;
}

.nk-mag__note {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.9;
  color: #6d6152;
}

/* バックナンバーPDF（横並び3件） */
.nk-mag__pdfs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.nk-mag__pdf {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 100%;
  padding: 12px 6px;
  border: 1.5px solid #ead9b6;
  border-radius: 14px;
  background: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  color: #5d5142;
  transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.nk-mag__pdf:hover {
  border-color: #ff9538;
  color: #e07a17;
  box-shadow: 0 4px 12px rgba(180, 150, 90, 0.16);
  opacity: 1;
}

.nk-mag__pdf-ico {
  font-size: 1.7rem;
  line-height: 1;
  color: #ff9538;
}

.nk-mag__pdf:hover .nk-mag__pdf-ico { color: #e07a17; }

/* 白カード（事業所案内・理念・募集職種などの共通ボックス） */
.nk-card {
  padding: 30px;
  border-radius: 24px;
  background: #fff;
}

.nk-card--40 { padding: 36px 40px; }
.nk-card--28-32 { padding: 28px 32px; }
.nk-card--34 { padding: 34px; }
.nk-card--36 { padding: 36px 32px; }
.nk-card--48 { padding: 40px 48px; }
.nk-card--soft { background: #fff6dc; }

/* あしらいイラスト付き白カード。カードの右上から外へはみ出させる。
   本文が下へ回り込まないよう、カード側で右に逃げを取っている。 */
.nk-card--ill {
  position: relative;
  padding-right: 176px;
}

.nk-card__ill {
  position: absolute;
  top: -34px;
  right: 8px;
  width: 152px;
  height: auto;
  pointer-events: none;
}

.nk-map-embed {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 170px;
  border: 0;
  border-radius: 16px;
}

/* Googleマップ未確定枠（初稿提出時にお客様確認） */
.nk-map-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 170px;
  border-radius: 16px;
  background: repeating-linear-gradient(135deg, #fff0bf 0 8px, #fffae6 8px 16px);
  font-family: "Quicksand", monospace;
  font-size: 1.1rem;
  line-height: 1.6;
  text-align: center;
  color: #b0973a;
}

/* ==========================================================================
   12. CTA枠
   ========================================================================== */
.nk-cta {
  position: relative;
  padding: 50px;
  border: 3px solid #f2c900;
  border-radius: 28px;
  background: #fff;
  text-align: center;
}

.nk-cta--54 { padding: 54px; }
.nk-cta--54-60 { padding: 54px 60px; }
.nk-cta--left { text-align: left; }

/* 意図的なはみ出し。overflow で clip しないこと */
.nk-cta__deco {
  position: absolute;
  right: -22px;
  top: -46px;
  width: 150px;
  height: auto;
  opacity: 0.9;
}

.nk-cta__ttl {
  margin: 0 0 12px;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: normal;
}

.nk-cta__lead {
  margin: 0 0 30px;
  font-size: 1.6rem;
  line-height: 1.95;
  color: #6d6152;
}

.nk-cta__btns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.nk-cta__btns--18 { gap: 18px; }

/* ==========================================================================
   13. 下層ページヒーロー（ドット地の淡色帯）
   ========================================================================== */
.nk-page-hero {
  padding: 66px 0;
  background-color: #fff6dc;
  background-image: radial-gradient(#fdeec4 1.8px, transparent 1.9px), radial-gradient(#fdeec4 1.8px, transparent 1.9px);
  background-size: 18px 18px, 18px 18px;
  background-position: 0 0, 9px 9px;
}

/* ==========================================================================
   14. 下層ページ用パーツ
   ========================================================================== */
/* 理念カード（愛・忍耐・技術） */
.nk-mind {
  padding: 34px;
  border-radius: 22px;
  background: #fff;
  text-align: center;
}

.nk-mind__key {
  font-size: 3.4rem;
  font-weight: 900;
  line-height: normal;
}

.nk-mind__key--love { color: #ff9538; }
.nk-mind__key--patience { color: #ff9538; }
.nk-mind__key--skill { color: #ff9538; }

/* 法人概要・情報リスト */
.nk-dl {
  border-top: 2px solid #ffe3c3;
}

.nk-dl__row {
  display: grid;
  grid-template-columns: minmax(150px, 240px) minmax(0, 1fr);
  gap: 24px;
  padding: 20px 8px;
  border-bottom: 1px solid #ffe3c3;
}

.nk-dl__key {
  font-size: 1.5rem;
  font-weight: 700;
  color: #8a7454;
}

.nk-dl__val {
  font-size: 1.6rem;
  line-height: 1.9;
  color: #4f4536;
}

/* 情報開示バナー */
.nk-flat-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 44px 48px;
  border-radius: 24px;
  background: #fff6dc;
}

.nk-flat-box > .nk-btn { flex: 0 0 auto; }

/* 情報開示PDF（運営規程・重要事項説明書） */
.nk-doc {
  margin-top: 40px;
  padding: 36px 40px 40px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(180, 150, 90, 0.1);
}

.nk-doc__title {
  position: relative;
  margin: 0 0 22px;
  padding-left: 18px;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  color: #4f4536;
}

.nk-doc__title::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 6px;
  height: 1.1em;
  border-radius: 3px;
  background: #f2c900;
}

.nk-doc__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-doc__link {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  padding: 16px 20px;
  border: 1.5px solid #ead9b6;
  border-radius: 14px;
  background: #fffdf7;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
  color: #5d5142;
  transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.nk-doc__link:hover {
  border-color: #ff9538;
  background: #fff;
  color: #e07a17;
  box-shadow: 0 4px 12px rgba(180, 150, 90, 0.16);
  opacity: 1;
}

.nk-doc__ico {
  flex: 0 0 auto;
  font-size: 2rem;
  line-height: 1;
  color: #ff9538;
}

.nk-doc__link:hover .nk-doc__ico { color: #e07a17; }

.nk-doc__name { flex: 1 1 auto; }

.nk-doc__ext {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 6px;
  background: #fff2dd;
  font-family: "Quicksand", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #b09a75;
}

.nk-doc__link:hover .nk-doc__ext { color: #e07a17; }

/* 特徴ミニカード（身体介護／生活援助・入浴／昼食／機能訓練） */
.nk-mini {
  padding: 26px;
  border-radius: 20px;
  background: #fff6dc;
}

.nk-mini--center {
  padding: 24px;
  text-align: center;
}

/* 白背景のミニカード */
.nk-mini--white {
  background: #fff;
}

.nk-mini__ttl {
  margin: 0 0 12px;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: normal;
}

.nk-mini__ttl--center {
  margin: 0 0 8px;
  font-size: 1.7rem;
}

.nk-mini__txt {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.95;
  color: #6d6152;
}

.nk-mini__txt--sm {
  font-size: 1.3rem;
  line-height: 1.9;
}

/* あしらいイラスト付きミニカード（身体介護／生活援助）
   黄色ボックスの右上から外へはみ出させる。
   本文が下へ回り込まないよう、カード側で右に逃げを取っている。 */
.nk-mini--ill {
  position: relative;
  padding-right: 104px;
}

.nk-mini__ill {
  position: absolute;
  top: -30px;
  right: -16px;
  width: 116px;
  height: auto;
  pointer-events: none;
}

/* 中央寄せミニカードの上部イラスト（.nk-mini--center と併用）。
   カードの上辺から少しはみ出させるため、上マージンを負で取っている。 */
.nk-mini__pic {
  display: block;
  width: 152px;
  height: auto;
  margin: -46px auto 6px;
}

/* ミニカード内の箇条書き（1項目のときは .nk-mini__txt をそのまま使う） */
.nk-mini__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-mini__list-item {
  position: relative;
  padding-left: 18px;
  font-size: 1.6rem;
  line-height: 1.95;
  color: #6d6152;
}

.nk-mini__list-item + .nk-mini__list-item { margin-top: 6px; }

/* 項目が短いときの2カラム組み（行間は gap で取るので margin は打ち消す） */
.nk-mini__list--2col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 24px;
}

.nk-mini__list--2col .nk-mini__list-item + .nk-mini__list-item,
.nk-mini__list--2col .nk-mini__list-item { margin-top: 0; }

.nk-mini__list-item::before {
  content: "";
  position: absolute;
  top: 0.85em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff9538;
}

/* 一日のスケジュール（タイムライン）
   タイムラインは中央寄せの固定幅。右に空く余白を“あしらい”置き場にしている。 */
.nk-tl-wrap {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
}

.nk-tl {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-tl__item {
  position: relative;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-bottom: 14px;
}

/* 縦線。最終行は下へ伸ばさない */
.nk-tl__item::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 82px;
  width: 2px;
  height: 100%;
  background: #f0dcb2;
}

.nk-tl__item:last-child { padding-bottom: 0; }
.nk-tl__item:last-child::before { display: none; }

/* 時刻ありの行＝塗りの点 */
.nk-tl__item::after {
  content: "";
  position: absolute;
  top: 14px;
  left: 76px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #f2c900;
}

/* 時刻なしの行＝小さい抜きの点 */
.nk-tl__item--sub::after {
  top: 16px;
  left: 78px;
  width: 10px;
  height: 10px;
  border: 2px solid #f2c900;
  background: #fff6dc;
}

.nk-tl__time {
  margin: 0;
  padding-top: 8px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #8a7454;
  text-align: right;
}

.nk-tl__txt {
  margin: 0;
  padding: 8px 22px;
  border-radius: 12px;
  background: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  color: #4f4536;
}

/* 同じ時間帯に複数の内容がある行はタグ並びにする */
.nk-tl__txt--tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 16px;
}

.nk-tl__tag {
  padding: 6px 14px;
  border-radius: 999px;
  background: #fff6dc;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.6;
  color: #5d5142;
}

/* タイムライン全体の右余白へ置く“あしらい”（$DAY_ILL['schedule']）。
   行ごとの .nk-tl__deco と場所が重なるため、併用はしないこと。 */
.nk-tl__ill {
  position: absolute;
  top: 50%;
  left: calc(100% + 40px);
  width: 200px;
  height: auto;
  transform: translateY(-50%);
  pointer-events: none;
}

/* 行に紐づく“あしらい”。その行の上辺を中心に、タイムライン右の余白へ置く。
   （置いた行と、その一つ上の行にまたがって見える） */
.nk-tl__deco {
  position: absolute;
  top: 0;
  left: calc(100% - 136px);
  width: 148px;
  height: auto;
  transform: translateY(-50%);
  pointer-events: none;
}

/* 利用料金 */
.nk-fee {
  position: relative;
  padding: 32px 36px 34px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(180, 150, 90, 0.1);
}

.nk-fee__ttl {
  margin: 0 0 20px;
  padding: 10px 20px;
  border-radius: 12px;
  background: #fff6dc;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: #4f4536;
  text-align: center;
}

/* 要介護1〜5（キー＋金額の1行） */
.nk-fee__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 10px;
  border-bottom: 1px dashed #f0dcb2;
}

.nk-fee__row:last-child { border-bottom: none; }

.nk-fee__key {
  font-size: 1.6rem;
  font-weight: 700;
  color: #5d5142;
}

.nk-fee__val {
  font-size: 2rem;
  font-weight: 700;
  color: #e07a17;
}

/* 要支援1・2（区分ごとに2列の料金） */
.nk-fee__group + .nk-fee__group { margin-top: 22px; }

.nk-fee__name {
  margin: 0 0 12px;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  color: #5d5142;
}

.nk-fee__freq {
  font-size: 1.3rem;
  font-weight: 500;
  color: #8a7454;
}

.nk-fee__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.nk-fee__col {
  padding: 14px 12px 16px;
  border: 1.5px solid #ffe3c3;
  border-radius: 14px;
  background: #fffdf7;
  text-align: center;
}

.nk-fee__col-key {
  margin: 0 0 6px;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.5;
  color: #8a7454;
}

.nk-fee__col-val {
  margin: 0;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.4;
  color: #e07a17;
}

/* あしらいイラスト：カード右下から外へはみ出させる */
.nk-fee--ill { z-index: 2; }

.nk-fee__ill {
  position: absolute;
  right: -22px;
  bottom: -40px;
  width: 148px;
  height: auto;
  pointer-events: none;
}

/* 帯セクション内で見出しブロックをもう一段だけ重ねるときの間隔 */
.nk-subblock { margin-top: 84px; }

/* ご利用の流れ（居宅介護支援） */
.nk-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 44px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-flow__item {
  position: relative;
  padding: 32px 26px 30px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(180, 150, 90, 0.1);
  text-align: center;
}

/* カード間の矢印 */
.nk-flow__item + .nk-flow__item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -30px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 14px solid #ff9538;
  transform: translateY(-50%);
}

.nk-flow__ill {
  display: block;
  width: 116px;
  height: auto;
  margin: 0 auto 14px;
}

.nk-flow__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #f2c900;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.nk-flow__txt {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #5d5142;
  text-align: left;
  text-wrap: pretty;
}

/* サービスの内容（居宅介護支援） */
.nk-svc {
  position: relative;
  padding: 32px 40px 34px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(180, 150, 90, 0.1);
}

.nk-svc + .nk-svc { margin-top: 26px; }

/* あしらいイラスト：白カードの右下から外へはみ出させる。
   .nk-svc__list は 5項目 × 2カラム＝右下1マスが空くので、そこへ重ねている。
   後続カードより手前に出すため、イラストを持つカードだけ z-index を上げる。 */
.nk-svc--ill { z-index: 2; }

/* DOM上はリストより前にあり、position: relative の項目に隠れるため z-index で前面へ */
.nk-svc__ill {
  position: absolute;
  z-index: 1;
  right: -22px;
  bottom: -86px;
  width: 148px;
  height: auto;
  pointer-events: none;
}

/* カードの右下の角へぴったり寄せる置き方（外へはみ出させない）。
   項目数が少なく、右下に余白が残るカード用。 */
.nk-svc__ill--corner {
  right: 0;
  bottom: 0;
  width: 150px;
}

.nk-svc__title {
  position: relative;
  margin: 0 0 20px;
  padding-left: 18px;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
  color: #4f4536;
}

.nk-svc__title::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 6px;
  height: 1.1em;
  border-radius: 3px;
  background: #ff9538;
}

.nk-svc__note {
  margin-left: 12px;
  font-size: 1.4rem;
  font-weight: 500;
  color: #e07a17;
}

.nk-svc__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-svc__item {
  position: relative;
  padding: 10px 16px 10px 34px;
  border-radius: 12px;
  background: #fffdf7;
  font-size: 1.5rem;
  line-height: 1.8;
  color: #5d5142;
}

.nk-svc__item::before {
  content: "";
  position: absolute;
  top: 1.05em;
  left: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f2c900;
}

/* 暮らしのお手伝いリスト */
.nk-tagbox {
  padding: 18px 22px;
  border-radius: 16px;
  background: #fff6dc;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: normal;
}

/* お客様の声 */
.nk-voice {
  padding: 26px 30px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(180, 150, 90, 0.10);
}

.nk-voice__mark {
  font-family: "Quicksand", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  color: #f2c900;
}

.nk-voice__txt {
  margin: 2px 0 0;
  font-size: 1.7rem;
  line-height: 1.95;
  color: #5d5142;
  text-wrap: pretty;
}

/* 写真の準備中プレースホルダー（.nk-photo と同じ枠で差し替える） */
.nk-photo-soon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  border: 2px dashed #ead9b6;
  border-radius: 24px;
  background: #fff6dc;
  text-align: center;
}

.nk-photo-soon__ttl {
  margin: 0;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.4;
  color: #8a7454;
}

.nk-photo-soon__txt {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.6;
  color: #b09a75;
}

/* しくみ図（インラインSVG）を収める枠。狭い画面では横スクロールさせる */
.nk-figure {
  padding: 30px;
  overflow-x: auto;
  border-radius: 24px;
  background: #fff;
}

.nk-figure__svg {
  display: block;
  width: 100%;
  max-width: 880px;
  min-width: 620px;
  height: auto;
  margin: 0 auto;
  font-family: inherit;
}

.nk-figure__cap {
  margin: 14px 0 0;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #b09a75;
  text-align: center;
}

/* 料金表。狭い画面では横スクロールさせる */
.nk-table-wrap {
  overflow-x: auto;
  border-radius: 20px;
  background: #fff;
}

.nk-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
}

.nk-table th,
.nk-table td {
  padding: 18px 22px;
  border-bottom: 1px dashed #ffe3c3;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: left;
  vertical-align: middle;
}

.nk-table thead th {
  border-bottom: 2px solid #ffe3c3;
  background: #fff6dc;
  font-size: 1.4rem;
  font-weight: 700;
  color: #8a7454;
}

.nk-table tbody th {
  width: 30%;
  font-weight: 600;
  color: #4f4536;
}

.nk-table tbody tr:last-child th,
.nk-table tbody tr:last-child td { border-bottom: 0; }

.nk-table__price {
  font-weight: 700;
  color: #e07a17;
  white-space: nowrap;
}

.nk-table__note {
  font-size: 1.4rem;
  color: #6d6152;
}

/* ==========================================================================
   15. 採用ページ
   ========================================================================== */
.nk-step__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 50%;
  font-family: "Quicksand", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.nk-step__num--1 { background: #f2c900; }
.nk-step__num--2 { background: #ff9538; }
.nk-step__num--3 { background: #e0a93a; }

/* 番号の丸に代えて置くイラスト（.nk-step__num と同じ位置・同じ余白） */
.nk-step__pic {
  display: block;
  width: 128px;
  height: auto;
  margin: 0 auto 14px;
}

.nk-step__ttl {
  margin: 0 0 12px;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: normal;
}

/* 働く魅力カード（イラストが下端で外にはみ出す設計 → 上に100pxの逃げを取る） */
.nk-merits { padding-top: 100px; }

.nk-merit {
  position: relative;
  padding: 34px 36px 34px 200px;
  border: 2px solid #ffe3c3;
  border-radius: 24px;
  background: #fff;
}

.nk-merit__img {
  position: absolute;
  left: 26px;
  bottom: 20px;
  display: block;
  width: auto;
  max-width: 168px;
  height: 205px;
  object-fit: contain;
  object-position: bottom;
}

.nk-merit__ttl {
  margin: 0 0 12px;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: normal;
}

/* 歓迎条件リスト */
.nk-check {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 24px;
  border-radius: 16px;
  background: #fff6dc;
}

.nk-check__mark {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #f2c900;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.nk-check__txt {
  font-size: 1.6rem;
  font-weight: 500;
}

/* 働きやすいポイント */
.nk-point {
  padding: 12px 22px;
  border: 2px solid #ff9538;
  border-radius: 10px;
  background: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: normal;
  color: #e07a17;
}

/* 募集職種カード。雇用形態が一目で分かるよう、左端のラインを色分けしている。
   色は .nk-card--job--full / --part で切り替え、雇用形態ラベルにも同じ色を使う。 */
.nk-card--job { border-left: 8px solid #ffe3c3; }
.nk-card--job--full { border-left-color: #ff9538; }
.nk-card--job--part { border-left-color: #f2c900; }

/* 雇用形態は職種名より先に読ませたいので、独立した行にして上に置く */
.nk-jobhead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.nk-jobtype {
  padding: 8px 22px;
  border-radius: 999px;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0.04em;
}

.nk-card--job--full .nk-jobtype { background: #ff9538; color: #fff; }
.nk-card--job--part .nk-jobtype { background: #f2c900; color: #4a3b12; }

/* 雇用形態への補足（正社員登用制度あり など） */
.nk-jobtype-note {
  padding: 6px 16px;
  border: 2px solid #ffe3c3;
  border-radius: 999px;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: normal;
  color: #e07a17;
}

/* 募集要項の行 */
.nk-jobrows { border-top: 1px dashed #ffe3c3; }

.nk-jobrow {
  display: grid;
  grid-template-columns: minmax(110px, 160px) minmax(0, 1fr);
  gap: 20px;
  padding: 14px 4px;
  border-bottom: 1px dashed #ffe3c3;
}

.nk-jobrow__key {
  font-size: 1.4rem;
  font-weight: 700;
  color: #8a7454;
}

.nk-jobrow__val {
  font-size: 1.6rem;
  line-height: 1.85;
  color: #4f4536;
}

/* ==========================================================================
   16. フォーム
   ========================================================================== */
.nk-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.nk-form__label {
  display: block;
  margin-bottom: 8px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: normal;
}

.nk-form__label--head { margin-bottom: 10px; }

.nk-form__req { color: #e07a17; }

.nk-form__input {
  width: 100%;
  padding: 14px;
  border: 2px solid #ffe3c3;
  border-radius: 12px;
  background: #fffdf7;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  color: #3f362b;
}

.nk-form__input:focus {
  outline: none;
  border-color: #ff9538;
}

textarea.nk-form__input {
  height: 120px;
  resize: vertical;
}

.nk-form__kinds {
  display: flex;
  gap: 14px;
}

.nk-form__kind {
  display: block;
  flex: 1;
  padding: 16px;
  border: 2px solid #ffe3c3;
  border-radius: 14px;
  background: #fffdf7;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
  cursor: pointer;
}

.nk-form__kind.is-selected {
  border-color: #ff9538;
  background: #fff2dd;
}

.nk-form__kind input { margin-right: 8px; }

.nk-form__msg {
  padding: 26px 30px;
  border-radius: 16px;
  background: #fff6dc;
  font-size: 1.6rem;
  line-height: 1.9;
}

.nk-form__error {
  padding: 22px 26px;
  border: 2px solid #ff9538;
  border-radius: 16px;
  background: #fff2dd;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #b35c00;
}

.nk-form__side {
  padding: 30px;
  border-radius: 22px;
  background: #fff6dc;
}

.nk-form__side-tel {
  display: block;
  margin-bottom: 6px;
  font-size: 2.6rem;
  font-weight: 700;
  color: #3f362b;
}

.nk-form__side-note {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.8;
  color: #8a7454;
}

.nk-form__side-mail {
  font-size: 1.4rem;
  font-weight: 700;
  word-break: break-all;
}

/* --------------------------------------------------------------------------
   16-2. CMSフォーム（#cms-contact-1-1-area / rs-sys 埋め込み）
   ベンダーCSS（https://cdn.rs-sys.jp/css/cms/mail-form.css）は body 内に
   後から挿入されるため、同詳細度では向こうが勝つ。
   そのため必ず #cms-contact-1-1-area スコープ（ID）で上書きすること。
   見た目は上の .nk-form 系（自前フォーム時代のデザイン）に合わせている。
   -------------------------------------------------------------------------- */
#cms-contact-1-1-area .form-contents {
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 0;
}

#cms-contact-1-1-area form dl {
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
}

/* dt/dd の左右2カラム（ベンダー既定）を解除して、ラベル上・入力下の縦積みに */
#cms-contact-1-1-area form dl dt,
#cms-contact-1-1-area form dl dd {
  display: block;
  float: none;
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: left;
  border: 0;
  box-sizing: border-box;
}

#cms-contact-1-1-area form dl dt {
  margin-bottom: 8px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: normal;
  color: #3f362b;
}

#cms-contact-1-1-area form dl dd { margin-bottom: 20px; }
#cms-contact-1-1-area form dl dd:last-of-type { margin-bottom: 0; }

/* 必須マーク：ベンダーの赤い「必須」バッジ → サイトの橙アスタリスク（.nk-form__req）に差し替え */
#cms-contact-1-1-area form dl dt span.required::before,
#cms-contact-1-1-area form dl dt span.optional::before { content: none; }

#cms-contact-1-1-area form dl dt span.required::after {
  content: " *";
  color: #e07a17;
}

/* 入力欄 */
#cms-contact-1-1-area .textarea,
#cms-contact-1-1-area .textarea-serect,
#cms-contact-1-1-area .textarea-date,
#cms-contact-1-1-area .textarea-time,
#cms-contact-1-1-area .textarea-datetime,
#cms-contact-1-1-area .textarea-datetimepicker {
  width: 100%;
  height: auto;
  padding: 14px;
  border: 2px solid #ffe3c3;
  border-radius: 12px;
  background: #fffdf7;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  color: #3f362b;
  box-sizing: border-box;
}

#cms-contact-1-1-area input.textarea { height: auto; }
#cms-contact-1-1-area textarea.textarea { height: 160px; resize: vertical; }

#cms-contact-1-1-area .textarea:focus,
#cms-contact-1-1-area .textarea-serect:focus {
  outline: none;
  border-color: #ff9538;
}

#cms-contact-1-1-area .textarea::placeholder { color: #b3a58e; }

/* ラジオ／チェックボックス：.nk-form__kind と同じカード風 */
#cms-contact-1-1-area dd label {
  display: inline-block;
  margin: 0 10px 10px 0;
  padding: 14px 18px;
  border: 2px solid #ffe3c3;
  border-radius: 14px;
  background: #fffdf7;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: normal;
  color: #3f362b;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

#cms-contact-1-1-area dd label:hover { border-color: #ff9538; }
#cms-contact-1-1-area dd label:has(input:checked) {
  border-color: #ff9538;
  background: #fff2dd;
}
#cms-contact-1-1-area dd label input { margin-right: 8px; }

/* 送信ボタン：.nk-btn--orange + .nk-btn--submit と同じ見た目 */
#cms-contact-1-1-area .submit-btn,
#cms-contact-1-1-area button {
  display: flex;              /* auto margin で中央寄せするため flex（inline-flex では効かない） */
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: fit-content;
  min-width: 260px;
  margin: 8px auto 0;
  padding: 16px 48px;
  border: 0;
  border-radius: 999px;
  background: #ff9538;
  box-shadow: 0 4px 0 #e07a17;
  color: #fff;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: normal;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

#cms-contact-1-1-area .submit-btn:hover,
#cms-contact-1-1-area button:hover {
  background: #f2c900;
  box-shadow: 0 4px 0 #d4ae00;
  color: #4a3b12;
}

/* ベンダーの封筒アイコン（mask画像）はサイトのボタン意匠に無いので非表示 */
#cms-contact-1-1-area .submit-btn::before { content: none; }

/* エラー表示：.nk-form__error と同じ */
#cms-contact-1-1-area .form-err-msg {
  margin: 0 0 24px;
  padding: 22px 26px;
  border: 2px solid #ff9538;
  border-radius: 16px;
  background: #fff2dd;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #b35c00;
}

#cms-contact-1-1-area .form-err-msg ul { list-style: none; margin: 0; padding: 0; }

/* 送信完了メッセージ：.nk-form__msg と同じ */
#cms-contact-1-1-area .form-thanks-msg {
  padding: 30px;
  border: 0;
  border-radius: 16px;
  background: #fff6dc;
}

#cms-contact-1-1-area .form-thanks-msg p {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #3f362b;
}

#cms-contact-1-1-area .form-thanks-msg .back-home-btn {
  width: auto;
  margin-top: 26px;
  text-align: center;
}

#cms-contact-1-1-area .form-thanks-msg .back-home-btn a {
  display: inline-block;
  width: auto;
  padding: 16px 48px;
  border: 0;
  border-radius: 999px;
  background: #ff9538;
  box-shadow: 0 4px 0 #e07a17;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: normal;
}

#cms-contact-1-1-area .form-thanks-msg .back-home-btn a:hover {
  background: #f2c900;
  box-shadow: 0 4px 0 #d4ae00;
  color: #4a3b12;
}

/* ファイルアップロード欄（現状の設問には無いが、CMS側で追加された場合の保険） */
#cms-contact-1-1-area .upload-area {
  border: 2px dashed #ffcf94;
  border-radius: 14px;
  background: #fff6dc;
}

#cms-contact-1-1-area .upload-area .upload-msg p { color: #8a7454; }
#cms-contact-1-1-area .upload-msg button,
#cms-contact-1-1-area .input-file-clear {
  min-width: 0;
  box-shadow: none;
  font-size: 1.4rem;
}

/* ==========================================================================
   17. スクロールでふわっとフェードイン（インタラクションレベル：中）
   ========================================================================== */
.nk-fade {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.nk-fade.is-shown {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .nk-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* utility はコンポーネント定義より後に読ませる。
   component 側の margin ショートハンドに打ち消されないようにするため。 */

/* ==========================================================================
   19. サイト内 utility（値の粒度不足の補完）
   ========================================================================== */
/* 写真の共通ふるまい（width:100% / cover / block） */
.nk-photo {
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 24px;
}

/* main.css の .fz-* はコンポーネント定義より前に読まれるため、
   .nk-h2 等と併用すると打ち消される。併用する場合はこちらを使う。 */
.nk-fz-11 { font-size: 1.1rem; }
.nk-fz-13 { font-size: 1.3rem; }
.nk-fz-14 { font-size: 1.4rem; }
.nk-fz-16 { font-size: 1.6rem; }
.nk-fz-18 { font-size: 1.8rem; }
.nk-fz-20 { font-size: 2rem; }
.nk-fz-24 { font-size: 2.4rem; }
.nk-fz-28 { font-size: 2.8rem; }
.nk-fz-32 { font-size: 3.2rem; }
.nk-fz-36 { font-size: 3.6rem; }
.nk-fz-40 { font-size: 4rem; }

.nk-fw-500 { font-weight: 500; }
.nk-fw-600 { font-weight: 600; }
.nk-fw-700 { font-weight: 700; }
.nk-fw-900 { font-weight: 900; }

.nk-fz-12-5 { font-size: 1.25rem; }
.nk-fz-15 { font-size: 1.5rem; }
.nk-fz-17 { font-size: 1.7rem; }
.nk-fz-19 { font-size: 1.9rem; }
.nk-fz-21 { font-size: 2.1rem; }
.nk-fz-23 { font-size: 2.3rem; }
.nk-fz-26 { font-size: 2.6rem; }
.nk-fz-30 { font-size: 3rem; }
.nk-fz-34 { font-size: 3.4rem; }
.nk-fz-44 { font-size: 4.4rem; }
.nk-fz-84 { font-size: 8.4rem; }

.nk-mt-0 { margin-top: 0; }
.nk-mb-0 { margin-bottom: 0; }
.nk-obj-28 { object-position: center 28%; }

.nk-mt-6 { margin-top: 6px; }
.nk-mt-8 { margin-top: 8px; }
.nk-mt-10 { margin-top: 10px; }
.nk-mt-12 { margin-top: 12px; }
.nk-mt-16 { margin-top: 16px; }
.nk-mt-18 { margin-top: 18px; }
.nk-mt-22 { margin-top: 22px; }
.nk-mt-26 { margin-top: 26px; }
.nk-mt-28 { margin-top: 28px; }
.nk-mt-30 { margin-top: 30px; }

.nk-mb-8 { margin-bottom: 8px; }
.nk-mb-10 { margin-bottom: 10px; }
.nk-mb-12 { margin-bottom: 12px; }
.nk-mb-14 { margin-bottom: 14px; }
.nk-mb-16 { margin-bottom: 16px; }
.nk-mb-18 { margin-bottom: 18px; }
.nk-mb-20 { margin-bottom: 20px; }
.nk-mb-22 { margin-bottom: 22px; }
.nk-mb-24 { margin-bottom: 24px; }
.nk-mb-26 { margin-bottom: 26px; }
.nk-mb-30 { margin-bottom: 30px; }
.nk-mb-34 { margin-bottom: 34px; }
.nk-mb-38 { margin-bottom: 38px; }
.nk-mb-40 { margin-bottom: 40px; }
.nk-mb-44 { margin-bottom: 44px; }
.nk-mb-48 { margin-bottom: 48px; }

/* .nk-split 等が gap ショートハンドを持つため、main.css の .gap-* では上書きできない。
   併用する場合はこちらを使う。 */
.nk-gap-8 { gap: 8px; }
.nk-gap-10 { gap: 10px; }
.nk-gap-15 { gap: 15px; }
.nk-gap-20 { gap: 20px; }
.nk-gap-30 { gap: 30px; }
.nk-gap-40 { gap: 40px; }
.nk-gap-60 { gap: 60px; }
.nk-gap-12 { gap: 12px; }
.nk-gap-14 { gap: 14px; }
.nk-gap-16 { gap: 16px; }
.nk-gap-18 { gap: 18px; }
.nk-gap-22 { gap: 22px; }
.nk-gap-24 { gap: 24px; }
.nk-gap-26 { gap: 26px; }
.nk-gap-28 { gap: 28px; }
.nk-gap-36 { gap: 36px; }
.nk-gap-44 { gap: 44px; }
.nk-gap-48 { gap: 48px; }
.nk-gap-56 { gap: 56px; }
.nk-gap-64 { gap: 64px; }
.nk-gap-60-26 { gap: 60px 26px; }

.nk-h-190 { height: 190px; }
.nk-h-210 { height: 210px; }
.nk-h-220 { height: 220px; }
.nk-h-240 { height: 240px; }
.nk-h-300 { height: 300px; }
.nk-h-320 { height: 320px; }
.nk-h-340 { height: 340px; }
.nk-h-380 { height: 380px; }
.nk-h-420 { height: 420px; }
.nk-h-460 { height: 460px; }
.nk-h-470 { height: 470px; }

/* 各行の長さを均し、日本語を文節単位で折り返す
   （中央揃えの見出し・本文が語の途中で切れるのを防ぐ。
     word-break:auto-phrase 未対応ブラウザは通常の折り返しにフォールバック） */
.nk-balance {
  text-wrap: balance;
  word-break: auto-phrase;
}

.nk-lh-normal { line-height: normal; }
.nk-lh-15 { line-height: 1.5; }
.nk-lh-155 { line-height: 1.55; }
.nk-lh-17 { line-height: 1.7; }
.nk-lh-185 { line-height: 1.85; }
.nk-lh-19 { line-height: 1.9; }
.nk-lh-195 { line-height: 1.95; }
.nk-lh-2 { line-height: 2; }
.nk-lh-205 { line-height: 2.05; }
.nk-lh-21 { line-height: 2.1; }

.nk-ls-04 { letter-spacing: 0.04em; }
.nk-ls-06 { letter-spacing: 0.06em; }
.nk-ls-08 { letter-spacing: 0.08em; }

.nk-ml-10 { margin-left: 10px; }

.nk-r-8 { border-radius: 8px; }
.nk-r-16 { border-radius: 16px; }
.nk-r-18 { border-radius: 18px; }
.nk-r-20 { border-radius: 20px; }
.nk-r-22 { border-radius: 22px; }
.nk-r-24 { border-radius: 24px; }
.nk-r-28 { border-radius: 28px; }

/* ==========================================================================
   18. レスポンシブ
   ========================================================================== */
@media (max-width: 1320px) {
  .nk-header__logo-name { font-size: 1.7rem; }
  .nk-header__tel-num { font-size: 2.6rem; }
  .nk-header__nav-item { font-size: 1.5rem; padding: 8px 9px; }
}

@media (max-width: 1100px) {
  .nk-header__center,
  .nk-header__tel-wrap { display: none; }

  .nk-header__inner { padding: 10px 0; }
  .nk-header__logo img { width: 76px; }
  .nk-header__logo-name { font-size: 1.6rem; }

  .nk-mv__frame { height: 520px; border-radius: 32px 32px 32px 120px; }
  #slideshow { height: 520px; }
  .nk-mv__catch { font-size: 2.2rem; }
  .nk-mv__line { font-size: 3.4rem; }
}

@media (max-width: 896px) {
  .nk-sec,
  .nk-sec--pt84,
  .nk-sec--pt116,
  .nk-sec--pt130 { padding: 60px 20px 0; }

  .nk-sec--cta { padding: 60px 20px 70px; }
  .nk-sec--pb100 { padding-bottom: 70px; }

  .nk-container { padding: 0 20px; }

  .nk-band,
  .nk-band--sub { margin-top: 64px; padding: 60px 0; }

  .nk-split { gap: 32px; }
  .nk-split--half,
  .nk-split--third,
  .nk-split--txt-img400,
  .nk-split--img400-txt,
  .nk-split--txt-img420,
  .nk-split--img340-txt,
  .nk-split--txt-img230,
  .nk-split--img300-txt,
  .nk-split--txt-map,
  .nk-split--form,
  .nk-split--news,
  .nk-split--recruit { grid-template-columns: minmax(0, 1fr); }

  .nk-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .nk-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .nk-h1 { font-size: 3rem; }
  .nk-h2 { font-size: 2.6rem; }
  .nk-recruit-en { font-size: 5.6rem; margin-left: 16px; }
  .nk-recruit-box { padding: 48px 28px 40px; border-radius: 28px; }
  .nk-cta,
  .nk-cta--54,
  .nk-cta--54-60 { padding: 36px 24px; }
  .nk-cta__ttl { font-size: 2.2rem; }
  .nk-flat-box { flex-direction: column; align-items: flex-start; padding: 32px 28px; }
  .nk-doc { margin-top: 30px; padding: 28px 24px 30px; }
  .nk-doc__list { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .nk-doc__link { padding: 14px 16px; font-size: 1.4rem; }

  .nk-mini--ill { padding-right: 88px; }
  .nk-mini__ill { top: -24px; right: -8px; width: 92px; }

  .nk-tl__item { grid-template-columns: 58px minmax(0, 1fr); gap: 16px; }
  .nk-tl__item::before { left: 64px; }
  .nk-tl__item::after { left: 58px; }
  .nk-tl__item--sub::after { left: 60px; }
  .nk-tl__time { font-size: 1.3rem; }
  .nk-tl__txt { padding: 8px 16px; font-size: 1.4rem; }
  .nk-tl__txt--tags { padding: 10px 12px; gap: 6px; }
  .nk-tl__tag { padding: 5px 12px; font-size: 1.3rem; }
  /* タイムライン横に余白が残らないため、あしらいは出さない */
  .nk-tl__ill,
  .nk-tl__deco { display: none; }

  .nk-fee { padding: 26px 22px 28px; }
  .nk-fee__ill { display: none; }

  .nk-subblock { margin-top: 56px; }
  /* 1カラムになると横向きの矢印が成立しないため、下向きに置き換える */
  .nk-flow { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .nk-flow__item { padding: 26px 22px 24px; }
  .nk-flow__item + .nk-flow__item::before {
    top: -24px;
    left: 50%;
    border-top: 14px solid #ff9538;
    border-right: 10px solid transparent;
    border-bottom: 0;
    border-left: 10px solid transparent;
    transform: translateX(-50%);
  }
  .nk-flow__ill { width: 96px; }
  .nk-svc { padding: 26px 24px 28px; }
  .nk-svc__list { grid-template-columns: minmax(0, 1fr); }
  /* 1カラムでは右下に余白が生まれず本文に重なるため、あしらいは出さない */
  .nk-svc__ill { display: none; }
  .nk-merits { padding-top: 40px; }
  .nk-merit { padding: 26px 24px 200px; }
  .nk-merit__img { left: 50%; transform: translateX(-50%); height: 170px; }
  .nk-card--48 { padding: 32px 28px; }
  .nk-dl__row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .nk-jobrow { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .nk-page-hero { padding: 46px 0; }
}

@media (max-width: 639px) {
  .nk-mv { width: 92%; margin-top: 14px; }
  .nk-mv__frame { height: 420px; border-radius: 24px 24px 24px 80px; }
  #slideshow { height: 420px; }
  .nk-mv__inner { padding: 0 16px; }
  .nk-mv__ttl { gap: 10px; }
  .nk-mv__catch { font-size: 1.6rem; padding: 8px 16px; box-shadow: 4px 4px 0 rgba(242, 201, 0, 0.9); }
  .nk-mv__line { font-size: 2.2rem; padding: 8px 18px; box-shadow: 4px 4px 0 rgba(242, 201, 0, 0.9); }
  /* SPは .nk-mv が width:92%（左に4vw）なので -4/92 = -4.348% */
  .nk-mv__illust { width: 62%; bottom: -18px; left: -4.348%; }

  .nk-h1 { font-size: 2.6rem; }
  .nk-h2 { font-size: 2.2rem; }
  .nk-h3 { font-size: 1.8rem; }
  .nk-lead,
  .nk-txt { font-size: 1.5rem; }

  .nk-svc-card__thumb { height: 190px; }
  .nk-svc-card__ttl { font-size: 2rem; }

  .nk-news-row { flex-wrap: wrap; gap: 8px 14px; padding: 18px 2px; }
  .nk-news-row__date { flex: 0 0 auto; }
  .nk-news-row__ttl { flex: 1 0 100%; font-size: 1.5rem; }

  .nk-mag__head { grid-template-columns: 112px minmax(0, 1fr); gap: 14px; }
  .nk-mag__pdfs { gap: 8px; }
  .nk-mag__pdf { padding: 10px 4px; font-size: 1.2rem; }

  .nk-footer__nav { grid-template-columns: minmax(0, 1fr); }
  .nk-footer__logo img { width: 76px; }
  .nk-footer__name { font-size: 1.7rem; }
  .nk-footer__bottom { padding-bottom: 60px; }

  .nk-cta__btns,
  .nk-cta__btns--18 { flex-direction: column; gap: 14px; }
  .nk-btn { width: 100%; }
  .nk-btn--head { width: auto; }
  .nk-form__kinds { flex-direction: column; }
  .nk-merit { padding: 24px 20px 180px; }
  .nk-mind__key { font-size: 2.8rem; }
  .nk-recruit-en { font-size: 4.4rem; margin-bottom: -18px; }

  /* 装飾イラストがコンテンツに被るためSPでは間引く */
  .nk-deco--top-bird,
  .nk-deco--top-fish,
  .nk-deco--top-wash,
  .nk-deco--about-bird,
  .nk-deco--hc-wash,
  .nk-deco--ds-fish,
  .nk-deco--rc-wash,
  .nk-deco--rc-bird,
  .nk-deco--rc-fish { display: none; }

  .nk-deco--top-cloud,
  .nk-deco--about-cloud,
  .nk-deco--ls-cloud { width: 110px; }

  .nk-deco--top-recruit { width: 96px; right: 12px; }
  /* PC では意図的に右へはみ出す装飾。SPでは画面外へ出さない */
  .nk-deco--about-wash,
  .nk-deco--ds-wash { width: 150px; right: 0; }
  .nk-deco--top-ctadots { width: 110px; right: 0; }
}
