/*
 * ======================================
 * site.css - 社会福祉法人那覇垣花福祉会
 * すがやま保育園 / 鏡原保育園 サイト固有スタイル
 * メイン:#A0D8EF(水色) / サブ:#7EC8A0(葉色) / セクション薄緑:#E9F7E8 / 薄水色:#EAF6FC
 * フォント: Chewy(英) / Noto Sans JP(和)
 *
 * ※ 配色・フォント・影は scss/_vars.scss の !default 変数を案件値に上書きして
 *   main.css を再コンパイル済み（共通フレームワークの設計どおりの上書き）。
 *
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .nkb-logo__icon / __name      - テキストロゴ（くじらモチーフ）の見た目
 * .heading-icon-bar(上書き)      - 参考サイト準拠：Chewy英字(大)＋和文、下バー非表示
 * .nkb-subtitle                 - 白ボックス内の小見出し（破線下線）
 * .nkb-section-green/blue/white - セクション背景（薄緑／薄水色／白の交互）
 * .nkb-mv / #slideshow(上書き)   - MV静止画枠（角丸＋影、§10.1 CMS差し替え対応）
 * .nkb-mv__deco--whale/--bird   - MV内の浮遊イラスト
 * .nkb-scroll                   - スクロール誘導（SCROLL＋下矢印）
 * .nkb-deco / --tl/tr/bl/br/--float - セクション角の生き物イラスト装飾
 * .nkb-contact / __card/__tel 等 - お問い合わせCTA帯（電話×2園）
 * .nkb-footer / __illust/__top/__logo/__cards/__card/__card-tel/__copyright - フッター（claude-design-output準拠：白背景＋下部イラスト＋連絡先カード＋濃紺帯）
 * .nkb-nav-icon / .nkb-spnav-icon - ヘッダーナビのイラストアイコン
 * .nkb-page-hero / .nkb-hero__en/__ja / .nkb-breadcrumb - 下層ヒーロー（写真＋波）
 * .nkb-found / __whale/__label/__title/__text/__purpose - 設立セクション（claude-design-output準拠）
 * .nkb-menu-card / __icon/__img/__body/__en/__ja/__arrow - TOP各園リンクカード
 * .nkb-doc-list / .nkb-doc-item - PDF・書類ダウンロードボタン
 * .nkb-chips / .nkb-chip        - 事業・項目チップ
 * .nkb-info-map                 - 概要＋地図の2カラム高さ揃え
 * .nkb-archive__title / __list  - ブログ月別アーカイブ サイドバー
 * .nkb-entry / __title/__date/__body - ブログ記事詳細カード
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * ・装飾パターン不足：MV／セクションに配置する「生き物イラストの浮遊装飾」
 *   （deco-item--img で代替可能だが、MV専用の大型＋アニメ配置は site.css 側で実装）
 * ・構造不足：テキストロゴ（くじらアイコン＋長い法人名＋英字サブ）の細かな調整
 *   → header-logo を基盤に site.css で微調整
 * ・装飾パターン不足：MV の角丸大枠＋影＋スクロール誘導の組み合わせ
 * ・状態不足：特になし（hover は共通 utility／コンポーネントで充足）
 * ・値の粒度不足：特になし（fz-/h-/mb- 等の刻みで充足）
 *
 */

/* ==========================================================================
   ベース：固定ヘッダー分のオフセット
   ========================================================================== */
body {
  padding-top: 80px;
}
@media screen and (max-width: 1100px) {
  body { padding-top: 60px; }
}

/* ==========================================================================
   ヘッダー（テキストロゴ / EN+JAナビ）
   ========================================================================== */
.header-bar {
  background: #ffffff;
}

/* くじらモチーフのアイコン */
.nkb-logo__icon {
  background: linear-gradient(135deg, #A0D8EF 0%, #7EC8A0 100%);
  font-size: 2rem;
  line-height: 1;
}
.nkb-logo__name {
  font-size: 1.8rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.header-logo__sub {
  font-family: 'Chewy', cursive;
  color: #A0D8EF;
  letter-spacing: 0.12em;
}
/* ヘッダーロゴのサブ行は園名（日本語）— テキストのみ */
.nkb-logo .header-logo__sub {
  font-family: inherit;
  color: #5BB8E0;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* PCナビ：EN は Chewy・水色、JA はブラウン */
.header__nav-en {
  font-family: 'Chewy', cursive;
  font-size: 1.2rem;
  font-weight: 300;
  color: #A0D8EF;
  letter-spacing: 0.09em;
}
.header__nav-ja {
  font-size: 1.15rem;
  color: #4a3728;
}
.header__tel {
  color: #5BB8E0;
  font-size: 1.7rem;
  border: 2px solid #A0D8EF;
  border-radius: 9999px;
  padding: 8px 22px;
  background: #ffffff;
  transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.header__tel::before { color: #5BB8E0; }
.header__tel:hover {
  background: #A0D8EF;
  color: #ffffff;
  opacity: 1;
  box-shadow: 0 4px 12px rgba(91, 184, 224, 0.3);
}
.header__tel:hover::before { color: #ffffff; }

@media screen and (max-width: 1280px) {
  .nkb-logo__name { font-size: 1.1rem; }
  .header__nav-item a { padding: 8px 12px; }
}

/* SPナビの英字を Chewy に */
.sp-nav__en { font-family: 'Chewy', cursive; }

/* ヘッダーナビ：イラストアイコン（参考サイト head-icon 準拠） */
.nkb-nav-icon {
  display: block;
  width: 54px;
  height: 54px;
  margin: 0 auto 5px;
  object-fit: contain;
}
.header__nav-item a:hover .nkb-nav-icon {
  animation: nkb-nav-rotate 0.7s ease-in-out both;
}
@keyframes nkb-nav-rotate {
  0%   { transform: rotate(0); }
  50%  { transform: rotate(18deg); }
  100% { transform: rotate(0); }
}
/* アイコン分ヘッダーを少し高く（ナビが出るPC幅のみ） */
@media screen and (min-width: 1101px) {
  .header__inner { height: 90px; }
  body { padding-top: 90px; }
}
/* SPナビのアイコン */
.nkb-spnav-icon {
  width: 30px;
  height: 30px;
  object-fit: contain;
  margin-right: 10px;
  flex-shrink: 0;
}

/* ==========================================================================
   セクション見出し（heading-icon-bar）— 参考サイトのトンマナ踏襲
   ========================================================================== */
.heading-icon-bar {
  text-align: center;
}
.heading-icon-bar::after {
  display: none;
}
.heading-icon-bar__en {
  display: block;
  font-family: 'Chewy', cursive;
  font-size: 5rem;
  font-weight: 400;
  color: #A0D8EF;
  line-height: 1.1;
  letter-spacing: 0.04em;
}
.heading-icon-bar__ja {
  display: block;
  font-size: 2.2rem;
  font-weight: 700;
  color: #4a3728;
  letter-spacing: 0.18em;
  line-height: 1.5;
  margin-top: 4px;
}
.heading-icon-bar--white .heading-icon-bar__ja { color: #fff; }
.heading-icon-bar--white .heading-icon-bar__en { color: #fff; }

@media screen and (max-width: 639px) {
  .heading-icon-bar__en { font-size: 3.6rem; }
  .heading-icon-bar__ja { font-size: 1.7rem; }
}

/* セクション下の小見出し（白ボックス内など） */
.nkb-subtitle {
  font-size: 2rem;
  font-weight: 700;
  color: #5BB8E0;
  letter-spacing: 0.08em;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 2px dashed rgba(160, 216, 239, 0.6);
}
.nkb-subtitle i { margin-right: 8px; color: #7EC8A0; }

/* ==========================================================================
   セクション背景（薄緑・薄水色の交互）
   ========================================================================== */
.nkb-section-green { background-color: #E9F7E8; position: relative; }
.nkb-section-blue  { background-color: #EAF6FC; position: relative; }
.nkb-section-white { background-color: #ffffff; position: relative; }

/* 背景あしらい（reaf.png：全面 cover） */
.nkb-section-green::before,
.nkb-section-blue::before,
.nkb-section-white::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/reaf.png') center center / cover no-repeat;
  pointer-events: none;
  z-index: 0;
}
/* コンテンツを花オーバーレイより前面に */
.nkb-section-green > *,
.nkb-section-blue > *,
.nkb-section-white > * {
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   メインビジュアル（#slideshow / .swiper-slide 静止画 + 浮遊装飾）
   §10.1：Swiper初期化なし・CMSスライダー差し替え対応
   ========================================================================== */
.nkb-mv {
  position: relative;
  background: linear-gradient(180deg, #EAF6FC 0%, #E9F7E8 100%);
  padding-bottom: 30px;
}

#slideshow {
  overflow: hidden;
  position: relative;
  width: 92%;
  max-width: 1600px;
  margin: 0 auto;
  border-radius: 60px 60px 40px 40px;
  box-shadow: 0 10px 40px rgba(91, 184, 224, 0.2);
}

#slideshow .swiper-slide {
  width: 100%;
}
#slideshow .main_slider__inner,
#slideshow .swiper-slide > .nkb-mv__img {
  width: 100%;
  height: 78vh;
  max-height: 760px;
  overflow: hidden;
}
#slideshow .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 浮遊する生き物イラスト */
.nkb-mv__deco {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  object-fit: contain;
}
.nkb-mv__deco--whale {
  width: 200px;
  height: 200px;
  top: 15%;
  right: 3%;
  animation: nkb-float 2s ease-in-out infinite;
}
.nkb-mv__deco--bird {
  width: 200px;
  height: 200px;
  top: 35%;
  left: 3%;
  animation: nkb-float2 2s ease-in-out infinite;
}

/* MV下部の丘イラスト（mv_oka.svg / 参考サイト準拠：右下・contain） */
.nkb-mv__hill {
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 100%;
  height: 100%;
  background: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/mv_f.png') no-repeat right bottom / contain;
  z-index: 2;
  pointer-events: none;
}

@keyframes nkb-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@keyframes nkb-float2 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(10px); }
}

@media screen and (max-width: 1200px) {
  #slideshow .main_slider__inner,
  #slideshow .swiper-slide > .nkb-mv__img { height: 60vw; }
}
@media screen and (max-width: 896px) {
  #slideshow { border-radius: 30px 30px 20px 20px; width: 94%; }
  .nkb-mv__deco--whale { width: 100px; height: 100px; top: auto; bottom: 50px; right: 3%; }
  .nkb-mv__deco--bird { width: 100px; height: 100px; top: auto; bottom: 80px; left: 3%; }
}
@media screen and (max-width: 639px) {
  #slideshow .main_slider__inner,
  #slideshow .swiper-slide > .nkb-mv__img { height: 62vh; }
}
/* PC（ナビ表示幅）はMVを全画面化：全幅・角丸なし・ヘッダー下から画面下まで */
@media screen and (min-width: 1101px) {
  .nkb-mv { padding-bottom: 0; }
  #slideshow {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
  }
  #slideshow .main_slider__inner,
  #slideshow .swiper-slide > .nkb-mv__img {
    height: calc(100vh - 90px);
    max-height: none;
  }
}

/* ==========================================================================
   浮遊装飾（セクション角の生き物イラスト）— ごちゃつかない範囲で
   ========================================================================== */
.nkb-deco {
  position: absolute;
  width: 300px;
  height: 300px;
  object-fit: contain;
  pointer-events: none;
  z-index: 2;
  opacity: 0.95;
}
.nkb-deco--tl { top: 0; left: 0; }
.nkb-deco--tr { top: 0; right: 0; }
.nkb-deco--bl { bottom: 0; left: 0; }
.nkb-deco--br { bottom: 0; right: 0; }
.nkb-deco--float { animation: nkb-float 4s ease-in-out infinite; }
.nkb-deco--sm { width: 180px; height: 180px; }
.nkb-daily-grid { position: relative; z-index: 1; }

@media screen and (max-width: 896px) {
  .nkb-deco { width: 180px; height: 180px; }
}
@media screen and (max-width: 639px) {
  .nkb-deco { width: 120px; height: 120px; opacity: 0.85; }
}

/* ==========================================================================
   お問い合わせCTA（CONTACT 帯）
   ========================================================================== */
.nkb-contact {
  position: relative;
  overflow: hidden;
  padding: 90px 0 80px;
  background: linear-gradient(135deg, #A0D8EF 0%, #8FD0E8 100%);
}
.nkb-contact .heading-icon-bar__en { color: #fff; }
.nkb-contact .heading-icon-bar__ja { color: #fff; }
.nkb-contact__lead {
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
}
.nkb-contact__grid {
  max-width: 820px;
  margin: 0 auto;
}
.nkb-contact__card {
  background: #fff;
  border-radius: 20px;
  padding: 30px 24px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.nkb-contact__name {
  font-size: 1.6rem;
  font-weight: 700;
  color: #4a3728;
  margin-bottom: 8px;
}
.nkb-contact__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Chewy', cursive;
  font-size: 2.8rem;
  font-weight: 700;
  color: #5BB8E0;
  text-decoration: none;
  letter-spacing: 0.03em;
  transition: opacity 0.2s;
}
.nkb-contact__tel i { font-size: 0.7em; color: #7EC8A0; }
.nkb-contact__tel:hover { opacity: 0.75; }
.nkb-contact__hours {
  font-size: 1.3rem;
  color: #998877;
  margin-top: 6px;
}
.nkb-contact__note {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.3rem;
}

@media screen and (max-width: 639px) {
  .nkb-contact__tel { font-size: 2.4rem; }
}

/* ==========================================================================
   フッター（claude-design-output 準拠：白背景＋下部イラスト＋連絡先カード＋濃紺帯）
   ========================================================================== */
.nkb-footer {
  position: relative;
  background: #ffffff;
}
/* 白エリア＋下部イラスト（footer.png） */
.nkb-footer__illust {
  position: relative;
  /* フッター自体の高さは元に戻す（イラストは疑似要素で上にまたがせる） */
  padding-bottom: clamp(180px, 30vw, 420px);
}
/* footer.png(2000×805) を実寸高さで下端ぞろえ配置。フッターより高い分は上（採用情報セクション）へはみ出す */
.nkb-footer__illust::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  aspect-ratio: 2000 / 805;
  background: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/footer.png') no-repeat bottom center / 100% auto;
  pointer-events: none;
  z-index: 0;
}
.nkb-footer__top {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 64px 24px 0;
  text-align: center;
}
/* ロゴ（中央） */
.nkb-footer__logo {
  display: inline-block;
  text-align: center;
  line-height: 1.3;
  text-decoration: none;
}
.nkb-footer__logo-name {
  display: block;
  font-weight: 700;
  color: #1F4E63;
  font-size: 2.1rem;
}
.nkb-footer__logo-sub {
  display: block;
  font-size: 1.2rem;
  color: #7BA6B6;
  letter-spacing: 0.06em;
  margin-top: 2px;
}
/* 連絡先カード（イラストに重ねて配置） */
.nkb-footer__cards {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  justify-content: center;
  max-width: 920px;
  margin: 34px auto -90px;
  position: relative;
  z-index: 2;
}
.nkb-footer__card {
  flex: 1 1 340px;
  max-width: 420px;
  background: rgba(240, 250, 253, 0.92);
  border: 3px solid #9FD4EC;
  border-radius: 22px;
  padding: 30px 32px;
  text-align: center;
}
.nkb-footer__card-name {
  font-weight: 700;
  color: #1F4E63;
  font-size: 1.9rem;
  margin: 0 0 12px;
}
.nkb-footer__card-addr {
  font-size: 1.4rem;
  color: #557281;
  line-height: 1.8;
  margin: 0 0 8px;
}
.nkb-footer__card-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  color: #2E94C4;
  font-size: 2.2rem;
  text-decoration: none;
  transition: opacity 0.2s;
}
.nkb-footer__card-tel:hover { opacity: 0.75; }
.nkb-footer__card-tel i { font-size: 0.8em; }
/* 濃紺コピーライト帯 */
.nkb-footer__copyright {
  background: #1F4E63;
  text-align: center;
  padding: 16px 24px;
  position: relative;
}
/* コピーライト上部の波模様あしらい（ヘッダーと同じ波・色は帯と同じ #1F4E63） */
.nkb-footer__copyright::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -12px;
  height: 13px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='13' viewBox='0 0 120 13'%3E%3Cpath d='M0,6 Q15,0 30,6 T60,6 T90,6 T120,6 V13 H0 Z' fill='%231F4E63'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 120px 13px;
  pointer-events: none;
}
.nkb-footer__copyright small {
  font-size: 1.2rem;
  color: #9FC2D0;
}
@media screen and (max-width: 639px) {
  /* SP固定バー分の余白を確保 */
  .nkb-footer__copyright { padding-bottom: 70px; }
}

/* SP固定バー：アイコン＋ラベルを縦並びに */
.sp-fixed-bar__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-weight: 700;
}
.sp-fixed-bar__link i { font-size: 1.8rem; color: #A0D8EF; }
/* ボタン間の区切り線 */
.sp-fixed-bar__item + .sp-fixed-bar__item {
  border-left: 1px solid rgba(160, 216, 239, 0.6);
}

/* SP時のページトップ位置（固定バーと重ならないよう持ち上げ） */
@media screen and (max-width: 896px) {
  .page-top { bottom: 70px; }
}

/* ==========================================================================
   ページヒーロー（下層共通）— 写真 + 暗幕 + 下部に白い波
   ========================================================================== */
.page-hero__content { padding: 70px 5%; }
.nkb-hero__en {
  display: block;
  font-family: 'Chewy', cursive;
  font-size: 5rem;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 1.1;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.nkb-hero__ja {
  display: block;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.12em;
  margin-top: 6px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
}
@media screen and (max-width: 639px) {
  .nkb-hero__en { font-size: 3.4rem; }
  .nkb-hero__ja { font-size: 1.4rem; }
}

/* yuntaku のみ：波の色を薄水色に（下の薄水色セクションと馴染ませる） */
.nkb-hero-wave-blue.page-hero--wave-bottom::after {
  background: #EAF6FC;
}

/* 下層ページヒーロー：高さ・中央寄せ・パンくず */
.nkb-page-hero .page-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 280px;
}
@media screen and (max-width: 639px) {
  .nkb-page-hero .page-hero__content { min-height: 200px; }
}
.nkb-breadcrumb {
  margin-top: 14px;
}
.nkb-breadcrumb .breadcrumb__item,
.nkb-breadcrumb .breadcrumb__link,
.nkb-breadcrumb .breadcrumb__current {
  color: rgba(255, 255, 255, 0.9);
}
.nkb-breadcrumb .breadcrumb__link:hover { color: #fff; }

/* ==========================================================================
   ウェルカムストリップ（claude-design-output 準拠）
   ========================================================================== */
.nkb-welcome {
  background: linear-gradient(to bottom, #F5F2E3 0%, #FBFAF3 45%, #FFFFFF 100%);
  text-align: center;
  padding: 54px 0 6px;
}
.nkb-welcome__whale {
  display: block;
  width: min(40vw, 240px);
  height: auto;
  margin: 0 auto 12px;
  filter: drop-shadow(0 10px 18px rgba(31, 78, 99, 0.16));
  animation: nkb-float 6s ease-in-out infinite;
}
.nkb-welcome__en {
  font-family: 'Chewy', cursive;
  color: #A0D8EF;
  font-size: 2.2rem;
  letter-spacing: 0.04em;
  margin: 0;
}
.nkb-welcome__title {
  color: #1F4E63;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 10px 0 0;
}
.nkb-welcome__lead {
  max-width: 680px;
  margin: 18px auto 0;
  color: #557281;
  line-height: 1.9;
}
@media screen and (max-width: 639px) {
  .nkb-welcome__title { font-size: 2.6rem; }
}

/* ==========================================================================
   那覇垣花福祉会の設立（claude-design-output 準拠：くじら＋設立の趣旨ボックス）
   ========================================================================== */
.nkb-found {
  position: relative;
  background-color: #ffffff;
  padding-bottom: 200px;
  overflow: hidden;
}
/* 背景下の丘イラスト（薄く） */
.nkb-found::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/oka.png') no-repeat center bottom / 100% auto;
  opacity: 0.4;
  pointer-events: none;
  z-index: 0;
}
.nkb-found > .container { position: relative; z-index: 1; }
@media screen and (max-width: 639px) {
  .nkb-found { padding-bottom: 100px; }
}
.nkb-found__wrap { max-width: 900px; }
.nkb-found__img {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(91, 184, 224, 0.2);
}
.nkb-found__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.nkb-found__head { text-align: center; margin-bottom: 34px; }
.nkb-found__whale {
  display: block;
  width: min(48vw, 360px);
  height: auto;
  margin: 0 auto 18px;
  filter: drop-shadow(0 12px 20px rgba(31, 78, 99, 0.18));
  animation: nkb-float 6s ease-in-out infinite;
}
.nkb-found__label {
  font-family: 'Chewy', cursive;
  color: #A0D8EF;
  font-size: 1.8rem;
  letter-spacing: 0.04em;
  margin: 0;
}
.nkb-found__title {
  color: #1F4E63;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 6px 0 0;
}
.nkb-found__text {
  color: #46606C;
  line-height: 1.9;
  margin: 0 0 30px;
}
.nkb-found__purpose {
  background: #EFF8F0;
  border-radius: 24px;
  padding: 34px 36px;
}
.nkb-found__purpose-title {
  color: #3E8E62;
  font-size: 1.9rem;
  font-weight: 700;
  margin: 0 0 10px;
}
.nkb-found__purpose p {
  color: #46606C;
  line-height: 1.9;
  margin: 0;
}
@media screen and (max-width: 639px) {
  .nkb-found__title { font-size: 2.2rem; }
  .nkb-found__purpose { padding: 24px 22px; }
}

/* ==========================================================================
   運営方針リスト（POLICY）— 白カードを縦に並べる
   ========================================================================== */
.nkb-policy-list {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 18px;
}
.nkb-policy-list li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: #ffffff;
  border-radius: 20px;
  padding: 24px 30px;
  box-shadow: 0 8px 30px rgba(91, 184, 224, 0.12);
}
.nkb-policy-list li i {
  flex-shrink: 0;
  margin-top: 5px;
  color: #7EC8A0;
  font-size: 1.7rem;
}
.nkb-policy-list li span {
  color: #46606C;
  line-height: 1.9;
}
@media screen and (max-width: 639px) {
  .nkb-policy-list li { padding: 20px 22px; gap: 12px; }
}

/* ==========================================================================
   各園リンクカード（TOP MENU）— 飛び出すイラスト付きカード
   ========================================================================== */
/* グリッド：飛び出すアイコン分の行間を確保（折返し時の重なり防止） */
.nkb-menu-grid {
  row-gap: 56px;
}
.nkb-menu-card {
  position: relative;
  display: block;
  text-decoration: none;
  padding-top: 44px;
}
.nkb-menu-card__icon {
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 100px;
  z-index: 2;
  transition: transform 0.3s ease;
}
.nkb-menu-card__icon img { width: 100%; height: 100%; object-fit: contain; }
.nkb-menu-card:hover .nkb-menu-card__icon { transform: translateX(-50%) translateY(-10px); }

.nkb-menu-card__img {
  display: block;
  border-radius: 18px 18px 0 0;
  overflow: hidden;
}
.nkb-menu-card__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.nkb-menu-card:hover .nkb-menu-card__img img { transform: scale(1.06); }

.nkb-menu-card__body {
  display: block;
  background: #fff;
  border-radius: 0 0 18px 18px;
  padding: 16px 18px 18px;
  text-align: center;
  box-shadow: 0 6px 20px rgba(91, 184, 224, 0.16);
  transition: background 0.25s ease;
}
.nkb-menu-card__en {
  display: block;
  font-family: 'Chewy', cursive;
  font-size: 1.3rem;
  color: #7EC8A0;
  letter-spacing: 0.04em;
}
.nkb-menu-card__ja {
  display: block;
  font-size: 1.55rem;
  font-weight: 700;
  color: #4a3728;
  margin-top: 2px;
}
.nkb-menu-card__arrow {
  display: inline-block;
  margin-top: 8px;
  color: #A0D8EF;
  transition: transform 0.2s ease;
}
.nkb-menu-card:hover .nkb-menu-card__arrow { transform: translateX(4px); }

/* お知らせ／苦情解決：3記事まで表示し、それ以降は縦スクロール */
.nkb-blog-scroll {
  max-height: 210px;
  overflow-y: auto;
  padding-right: 10px;
  scrollbar-width: thin;
  scrollbar-color: #A0D8EF #EAF6FC;
}
.nkb-blog-scroll::-webkit-scrollbar { width: 8px; }
.nkb-blog-scroll::-webkit-scrollbar-track { background: #EAF6FC; border-radius: 9999px; }
.nkb-blog-scroll::-webkit-scrollbar-thumb { background: #A0D8EF; border-radius: 9999px; }
.nkb-blog-scroll::-webkit-scrollbar-thumb:hover { background: #5BB8E0; }

/* ==========================================================================
   ブログ：月別アーカイブ サイドバー / 記事詳細
   ========================================================================== */
.nkb-archive__title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #4a3728;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.nkb-archive__title i { color: #A0D8EF; }
.nkb-archive__list { display: flex; flex-direction: column; gap: 8px; }
.nkb-archive__list a {
  display: block;
  background: #fff;
  color: #4a3728;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 1.4rem;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(91, 184, 224, 0.1);
  transition: all 0.2s ease;
}
.nkb-archive__list a:hover { background: #EAF6FC; color: #5BB8E0; }

.nkb-entry {
  background: #fff;
  border-radius: 16px;
  border-top: 5px solid #A0D8EF;
  padding: 36px 40px;
  box-shadow: 0 4px 20px rgba(91, 184, 224, 0.12);
}
.nkb-entry__title {
  font-size: 2rem;
  font-weight: 700;
  color: #4a3728;
  line-height: 1.6;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #eee;
}
.nkb-entry__date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1.3rem;
  color: #5BB8E0;
  margin-bottom: 20px;
}
.nkb-entry__body { font-size: 1.5rem; line-height: 1.9; }
.nkb-entry__body p { margin-bottom: 1em; }

/* card-icon の丸アイコンを中央寄せ（icon-circle はブロック要素のため margin:auto が必要） */
.card-icon__icon.icon-circle {
  margin-left: auto;
  margin-right: auto;
}

/* ==========================================================================
   事業・項目チップ
   ========================================================================== */
.nkb-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.nkb-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 2px solid rgba(160, 216, 239, 0.7);
  border-radius: 9999px;
  padding: 10px 22px;
  font-size: 1.45rem;
  font-weight: 700;
  color: #4a3728;
  box-shadow: 0 2px 8px rgba(91, 184, 224, 0.12);
}
.nkb-chip::before {
  content: '';
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #7EC8A0;
  flex-shrink: 0;
}
/* 4カラムグリッド表示時：セル幅いっぱい・中央寄せのカード型に */
.nkb-chips--grid .nkb-chip {
  width: 100%;
  justify-content: center;
  text-align: center;
  border-radius: 16px;
}

/* 年間行事カード（design_base_source events.php 準拠・配色は案件カラー） */
.schedule-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px 24px;
}
.schedule-list > li {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(91, 184, 224, 0.12);
}
.schedule-list > li > div { padding: 16px 18px 20px; }
.schedule-img { margin: 0; background: #FFF7F1; }
.schedule-img img { width: 90%; height: auto; display: block; margin: 0 auto; padding: 10px; }
.list_disc.type2 { list-style: none; padding: 0; margin: 0; }
.list_disc.type2 li {
  position: relative;
  padding-left: 16px;
  font-size: 1.35rem;
  line-height: 1.8;
  color: #4a3728;
}
.list_disc.type2 li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #A0D8EF;
}
.list_disc.type2 li.is-parent { color: #d4607a; font-weight: 700; }
.list_disc.type2 li.is-parent::before { background: #d4607a; }
.list_disc.type2 li.is-parent::after {
  content: '※';
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  background: #f9e0e6;
  color: #d4607a;
  font-size: 1.0rem;
  font-weight: 700;
  border-radius: 4px;
  vertical-align: middle;
  line-height: 1.6;
}
.nkb-events-note {
  font-size: 1.35rem;
  color: #998877;
  line-height: 1.9;
  padding: 16px 20px;
  background: #ffffff;
  border-radius: 10px;
  border-left: 4px solid #A0D8EF;
  box-shadow: 0 2px 12px rgba(91, 184, 224, 0.1);
}
.nkb-events-note__mark { color: #d4607a; font-weight: 700; }
.nkb-events-note strong { color: #5BB8E0; }
@media screen and (max-width: 896px) {
  .schedule-list { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
}

/* デイリープログラム（claude-design-output 準拠：縦ライン＋丸ポチ） */
.nkb-daily {
  position: relative;
  padding-left: 22px;
}
.nkb-daily::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  background: #BFE4F4;
  border-radius: 3px;
}
.nkb-daily__row {
  position: relative;
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 12px 0;
}
.nkb-daily__dot {
  position: absolute;
  left: -22px;
  top: 16px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #A0D8EF;
  border: 3px solid #ffffff;
  box-shadow: 0 0 0 2px #BFE4F4;
}
.nkb-daily__time {
  flex: 0 0 64px;
  font-family: 'Chewy', cursive;
  color: #2E94C4;
  font-size: 1.6rem;
}
.nkb-daily__text {
  flex: 1;
  color: #46606C;
  font-size: 1.45rem;
  line-height: 1.6;
}

/* CAPACITY（定員）動物アイコンカード（claude-design-output 準拠） */
.nkb-cap-card {
  border-radius: 18px;
  padding: 18px 20px 20px;
  text-align: center;
}
.nkb-cap-card--blue  { background: #EAF7FF; border: 2px solid #B7E0F3; }
.nkb-cap-card--green { background: #EFF8F0; border: 2px solid #C6E6CE; }
.nkb-cap-card--cream { background: #FFF6E3; border: 2px solid #F1E2AE; }
.nkb-cap-card--pink  { background: #FFEFF3; border: 2px solid #F7D4DD; }
.nkb-cap-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 8px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
}
.nkb-cap-card__icon img {
  width: 54px;
  height: 54px;
  object-fit: contain;
  display: block;
}
.nkb-cap-card__age {
  font-size: 1.2rem;
  font-weight: 700;
  color: #7BA6B6;
  margin: 0;
}
.nkb-cap-card__name {
  font-size: 1.8rem;
  font-weight: 700;
  color: #1F4E63;
  margin: 4px 0 6px;
}
.nkb-cap-card__num {
  font-family: 'Chewy', cursive;
  font-size: 2rem;
  color: #2E94C4;
  margin: 0;
}

/* CAPACITY（定員）テーブル：td 背景を白に（ストライプ解除） */
.nkb-cap tbody tr:nth-child(even) td,
.nkb-cap tbody tr:nth-child(odd) td {
  background: #ffffff;
}

/* 概要テーブル：項目列に色を付けて白文字で見やすく */
.nkb-table th {
  background: #5BB8E0;
  color: #ffffff;
  border: 1px solid #ffffff;
}
.nkb-table td {
  background: #ffffff;
  color: #4a3728;
  border: 1px solid #9FD4EC;
}
.nkb-table tr:nth-child(even) td {
  background: #EAF6FC;
}

/* 連絡先・情報ボックスの2カラム（情報＋地図） */
.nkb-info-map { align-items: stretch; }
.nkb-info-map .embed,
.nkb-info-map .embed iframe { min-height: 280px; height: 100%; }

/* ==========================================================================
   TOP 採用情報CTA（claude-design-output 準拠：クリーム角丸ボックス）
   ========================================================================== */
.nkb-recruit {
  position: relative;
  overflow: hidden;
  background: #FFF6E1;
  border-radius: 28px;
  padding: 48px 44px;
}
.nkb-recruit__body {
  position: relative;
  z-index: 1;
  max-width: 600px;
}
.nkb-recruit__en {
  font-family: 'Chewy', cursive;
  color: #FBC54B;
  font-size: 1.8rem;
  margin: 0;
}
.nkb-recruit__title {
  color: #1F4E63;
  font-size: 2.8rem;
  font-weight: 700;
  margin: 6px 0 12px;
}
.nkb-recruit__text {
  color: #6B5A33;
  font-size: 1.5rem;
  line-height: 1.9;
  margin: 0 0 24px;
}
.nkb-recruit__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #FBC54B;
  color: #7A5400;
  font-weight: 700;
  font-size: 1.5rem;
  padding: 14px 30px;
  border-radius: 999px;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}
.nkb-recruit__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(251, 197, 75, 0.4);
}
.nkb-recruit__deco {
  position: absolute;
  height: auto;
  z-index: 0;
  pointer-events: none;
}
/* ひよこ（大きめ・右下） */
.nkb-recruit__deco--chick {
  right: 34px;
  bottom: -6px;
  width: min(20vw, 128px);
  opacity: 0.95;
  animation: nkb-float 6s ease-in-out infinite;
}
/* りす（小さめ・ひよこの左） */
.nkb-recruit__deco--squirrel {
  right: 150px;
  bottom: 10px;
  width: 64px;
  opacity: 0.9;
  animation: nkb-float2 4.6s ease-in-out infinite;
}
@media screen and (max-width: 639px) {
  .nkb-recruit { padding: 36px 24px; }
  .nkb-recruit__title { font-size: 2.2rem; }
  .nkb-recruit__deco--chick { width: 84px; opacity: 0.6; }
  .nkb-recruit__deco--squirrel { right: 110px; width: 48px; opacity: 0.55; }
}

/* ==========================================================================
   PDF / 書類ダウンロードボタン
   ========================================================================== */
.nkb-doc-list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}
.nkb-doc-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 2px solid #A0D8EF;
  border-radius: 14px;
  padding: 16px 28px;
  color: #5BB8E0;
  font-size: 1.55rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(91, 184, 224, 0.15);
  transition: all 0.25s ease;
}
.nkb-doc-item i { color: #7EC8A0; font-size: 1.8rem; transition: color 0.25s; }
.nkb-doc-item:hover {
  background: #A0D8EF;
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(91, 184, 224, 0.3);
}
.nkb-doc-item:hover i { color: #fff; }

/* ==========================================================================
   保育方針カード（card-policy）
   水色ボーダーの白ボックス・アイコン無し・英語ラベルをオレンジに
   ========================================================================== */
.card-policy {
  background: #FFFFFF;
  border: 2px solid #E4F1F7;
  border-radius: 22px;
  padding: 28px 24px;
}
.card-policy__en {
  font-family: 'Chewy', cursive;
  color: #FBC54B;
  font-size: 1.6rem;
  margin: 0 0 4px;
}
.card-policy__title {
  color: #1F4E63;
  font-size: 1.8rem;
  font-weight: 700;
  margin: 0 0 10px;
}
.card-policy__text {
  color: #577080;
  font-size: 1.4rem;
  line-height: 1.7;
  margin: 0;
}

/* 保育方針 下段2カラム：3カラムのカード幅に合わせて中央配置 */
.nkb-policy-bottom {
  max-width: calc((100% - 40px) / 3 * 2 + 20px);
  margin: 24px auto 0;
}

/* ==========================================================================
   各ページのご案内カード（nkb-park-card / claude-design-output 準拠）
   ========================================================================== */
.nkb-park-card {
  display: block;
  background: #FFFFFF;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(31, 78, 99, .08);
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
}
.nkb-park-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(31, 78, 99, .16);
  opacity: 1;
}
.nkb-park-card__head {
  position: relative;
  display: flex;
  align-items: flex-end;
  height: 120px;
  padding: 14px 18px;
  overflow: hidden;
}
.nkb-park-card__animal {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 78px;
  height: 78px;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(31, 78, 99, .18));
}
.nkb-park-card__en {
  position: relative;
  font-family: 'Chewy', cursive;
  color: rgba(255, 255, 255, .95);
  font-size: 3rem;
  line-height: 1;
}
.nkb-park-card__body {
  display: block;
  padding: 20px 22px;
}
.nkb-park-card__ja {
  display: block;
  color: #1F4E63;
  font-size: 1.7rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.nkb-park-card__note {
  display: block;
  color: #6E8B98;
  font-size: 1.3rem;
}

/* ==========================================================================
   スマホ／レスポンシブ追加調整
   ========================================================================== */
/* ハンバーガーメニューのイラストアイコンを削除 */
.nkb-spnav-icon { display: none; }

@media screen and (max-width: 639px) {
  /* 背景あしらいの動物イラストを文字などの背面に */
  .nkb-deco { z-index: 0; }

  /* TOP：ウェルカム見出しをスマホでも1行で表示 */
  .nkb-welcome__title { font-size: 2.1rem; white-space: nowrap; }

  /* TOP：保育方針の下段ボックスも全幅に（上段と同じ横幅に揃える） */
  .nkb-policy-bottom { max-width: 100%; }

  /* about：沿革（dl-timeline）を縦積みにして見やすく */
  .dl-timeline__row { flex-direction: column; gap: 4px; }
  .dl-timeline__year { min-width: 0; }
}

/* ==========================================================================
   ヘッダー：参考サイト（mogushi.jp）準拠
   中央ロゴ＋左右分割ナビ／ナビ下部の波あしらい
   ========================================================================== */
@media screen and (min-width: 1101px) {
  .header__inner--center-logo {
    position: relative;
    justify-content: center;
    height: 150px;
  }
  body { padding-top: 150px; }

  /* 左右ナビを均等幅にしてロゴを中央固定 */
  .header__nav--left,
  .header__nav--right {
    flex: 1 1 0;
    margin: 0;
    display: flex;
  }
  .header__nav--left  { justify-content: flex-end; }
  .header__nav--right { justify-content: flex-start; }

  /* ナビ項目：横幅を均等に固定（文字数に依らず同じ幅） */
  .header__nav--left .header__nav-item a,
  .header__nav--right .header__nav-item a {
    width: 132px;
    padding: 8px 16px;
  }
  .header__nav-item .header__nav-ja {
    font-size: 1.4rem;
    font-weight: 700;
    white-space: nowrap;
  }
  .header__nav-item .header__nav-en {
    font-size: 1.2rem;
    margin-top: 2px;
  }

  /* ナビ項目間の点線ボーダー（参考サイト準拠／中央ロゴの両脇にも） */
  .header__nav--left .header__nav-item a  { border-right: 2px dotted #cdd9df; }
  .header__nav--right .header__nav-item a { border-left: 2px dotted #cdd9df; }

  /* 中央ロゴ（くじらを上・テキストを下に縦並び） */
  /* ロゴ左右の余白はナビ項目の余白(16px)と揃え、間隔を統一 */
  .nkb-logo--center {
    flex-shrink: 0;
    flex-direction: column;
    gap: 4px;
    padding: 0 16px;
  }
  .nkb-logo--center .header-logo__body { align-items: center; text-align: center; }
  .nkb-logo--center .nkb-logo__name { font-size: 1.9rem; }
  .nkb-logo--center .header-logo__sub { font-size: 1.5rem; }
}

/* ロゴ上のくじらイラスト */
.nkb-logo__whale {
  display: block;
  width: 66px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  animation: nkb-float 3.4s ease-in-out infinite;
}
@media screen and (min-width: 1280px) {
  .header__nav--left .header__nav-item a,
  .header__nav--right .header__nav-item a { padding: 8px 14px; }
  .nkb-logo--center { padding: 0 14px; }
}

/* ヘッダー背景の両サイドあしらい（半透明） */
.header__inner { position: relative; z-index: 1; }
.nkb-header-deco {
  position: absolute;
  top: 0;
  height: 100%;
  width: 340px;
  max-width: 28%;
  background-repeat: no-repeat;
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
}
.nkb-header-deco--l {
  left: 0;
  background-image: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/h_deco_l.png');
  background-position: left top;
  background-size: contain;
}
.nkb-header-deco--r {
  right: 0;
  background-image: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28158/h_deco_r.png');
  background-position: right top;
  background-size: contain;
}

/* ナビ下部の波模様あしらい */
.header-bar--wave::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -12px;
  height: 13px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='13' viewBox='0 0 120 13'%3E%3Cpath d='M0,6 Q15,0 30,6 T60,6 T90,6 T120,6 V13 H0 Z' fill='%23ffffff'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 120px 13px;
  transform: scaleY(-1);
  pointer-events: none;
  z-index: 3;
}
